/* Bibliothèque d'exercices : surfaces et couleurs du système 2.17. */
.xl-page{width:min(100%,1180px);margin:0 auto;min-width:0;padding:var(--sp-3) 0 var(--sp-8);color:var(--ink)}
.xl-header{display:flex;align-items:end;justify-content:space-between;gap:var(--sp-6);padding:var(--sp-8);border-radius:var(--r-lg);background:var(--navy);color:var(--ink-inverse);margin-bottom:var(--sp-5)}
.xl-eyebrow{font-size:var(--fs-12);font-weight:800;letter-spacing:.09em;line-height:1.4;margin:0 0 var(--sp-2);color:var(--live-text)}
.xl-header .xl-eyebrow{color:var(--teal-100)}
.xl-header h1,.xl-detail h1{font-size:clamp(var(--fs-30),4vw,42px);line-height:1.12;margin:0 0 var(--sp-3);letter-spacing:-.025em}
.xl-header p:last-child{max-width:58ch;margin:0;font-size:var(--fs-16);line-height:var(--lh-relaxed)}
.xl-header-count{display:grid;gap:var(--sp-1);flex:0 0 180px;text-align:right;line-height:1.15}.xl-header-count strong{font-size:clamp(38px,5vw,64px);font-variant-numeric:tabular-nums}.xl-header-count span{font-size:var(--fs-13);color:var(--teal-100)}
.xl-filters{display:grid;gap:var(--sp-4);padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);box-shadow:var(--shadow-1)}
.xl-search-row,.xl-select-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--sp-3);align-items:end}
.xl-quick-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}
.xl-query{grid-column:span 4}.xl-number{grid-column:span 1}.xl-search-row>.btn{grid-column:span 1;min-height:46px}
.xl-field{display:grid;gap:var(--sp-2);min-width:0;color:var(--ink-2);font-size:var(--fs-13);font-weight:700}
.xl-field input,.xl-field select{width:100%;min-height:46px;min-width:0;padding:var(--sp-2) var(--sp-3);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font:inherit;font-size:var(--fs-16)}
.xl-advanced{border-top:1px solid var(--line);padding-top:var(--sp-2)}.xl-advanced summary{min-height:var(--tap);display:flex;align-items:center;font-weight:700;color:var(--live-text);cursor:pointer}.xl-advanced[open] summary{margin-bottom:var(--sp-3)}
.xl-chapters{border:0;border-top:1px solid var(--line);margin:var(--sp-4) 0 0;padding:var(--sp-3) 0 0;min-width:0}.xl-chapters legend{font-weight:700;padding:0 var(--sp-2) 0 0}
.xl-chapter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2) var(--sp-4);padding:var(--sp-2) 0}
.xl-check{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-14);line-height:1.35;min-height:var(--tap)}
.xl-check input{width:18px;height:18px;accent-color:var(--live)}
.xl-filter-actions{display:flex;justify-content:flex-end}
.xl-atlas{margin-top:var(--sp-6)}.xl-atlas-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.xl-atlas-head h2{font-size:var(--fs-20);margin:0}.xl-atlas-head p{font-size:var(--fs-13);color:var(--muted);margin:0}.xl-atlas-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2)}.xl-atlas-item{appearance:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-2);min-height:68px;width:100%;padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.xl-atlas-item:hover,.xl-atlas-item[aria-pressed=true]{border-color:var(--live);background:var(--progress-soft)}.xl-atlas-item:focus-visible{outline:3px solid var(--live);outline-offset:2px}.xl-atlas-number{font-size:var(--fs-12);font-weight:800;color:var(--live-text)}.xl-atlas-name{font-size:var(--fs-13);font-weight:700;line-height:1.3}.xl-atlas-count{font-size:var(--fs-12);font-variant-numeric:tabular-nums;color:var(--muted)}
.xl-result-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin:var(--sp-6) 0 var(--sp-4);color:var(--muted)}
.xl-result-head h2{font-size:var(--fs-20);color:var(--ink);margin:0}
.xl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}
.xl-card{min-width:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);overflow:hidden;box-shadow:var(--shadow-1)}
.xl-card a{display:block;height:100%;color:inherit;text-decoration:none}.xl-card a:hover .xl-card-action{text-decoration:underline}
.xl-card-media{aspect-ratio:8/5;background:var(--bg-sunken);display:grid;place-items:center;overflow:hidden}
.xl-card-media img{width:100%;height:100%;object-fit:contain}.xl-no-image{padding:var(--sp-4);color:var(--muted);text-align:center}
.xl-card-media:has(.xl-card-mission){place-items:center start;background:var(--progress-soft)}
.xl-card-mission{margin:0;padding:var(--sp-4) var(--sp-5);font-size:var(--fs-16);line-height:1.5;color:var(--ink);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-wrap:pretty}
.xl-card-mission strong{color:var(--progress-text)}
@media (max-width:640px){.xl-card-media:has(.xl-card-mission){aspect-ratio:auto}}
.xl-card-body{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);min-height:190px}
.xl-card-meta,.xl-card-state{font-size:var(--fs-12);line-height:1.45;color:var(--muted);margin:0}
.xl-card h2{font-size:var(--fs-18);line-height:1.3;margin:0}.xl-chip-row{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.xl-chip{display:inline-flex;align-items:center;border-radius:var(--r-pill);padding:var(--sp-1) var(--sp-2);background:var(--progress-soft);color:var(--progress-text);font-size:var(--fs-12);font-weight:700;line-height:1.4}
.xl-card-action{margin-top:auto;color:var(--live-text);font-weight:700;font-size:var(--fs-14)}
.xl-pages{display:flex;justify-content:center;gap:var(--sp-3);padding:var(--sp-6)}
.xl-state{border:1px dashed var(--line-strong);border-radius:var(--r-lg);padding:var(--sp-8);background:var(--paper);color:var(--ink-2);text-align:center}
.xl-state.xl-error{border-color:var(--danger);background:var(--danger-soft);color:var(--danger-text)}
.xl-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(290px,.9fr);gap:var(--sp-5);align-items:stretch}
.xl-back{grid-column:1/-1;display:inline-flex;align-items:center;min-height:var(--tap);width:max-content;color:var(--live-text);font-weight:700;text-decoration:none}
.xl-detail-head{grid-column:1/-1}.xl-detail-head>p:not(.xl-eyebrow){margin:0 0 var(--sp-3);color:var(--muted)}
.xl-visual{grid-column:1;margin:0;min-width:0;min-height:300px;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line);overflow:hidden;display:grid;place-items:center}
.xl-visual img{display:block;width:100%;height:100%;max-height:400px;object-fit:contain}
.xl-visual+.xl-detail-block{grid-column:2}
.xl-detail-block{min-width:0;padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper)}
.xl-detail-block h2{font-size:var(--fs-20);margin:0 0 var(--sp-3)}.xl-detail-block p{margin:0;line-height:1.65}
.xl-statement{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}
.xl-detail-block pre,.xl-correction pre{white-space:pre-wrap;overflow-wrap:anywhere;overflow-x:auto;font:var(--fs-14)/1.55 var(--font-mono);margin:0;padding:var(--sp-4);background:var(--bg-sunken);border-radius:var(--r-sm)}
.xl-actions{grid-column:1/-1;display:flex;gap:var(--sp-3);align-items:center;flex-wrap:wrap;padding:var(--sp-4);border-radius:var(--r-lg);background:var(--paper);border:1px solid var(--line)}
.xl-note{margin:0;color:var(--muted);font-size:var(--fs-13)}
[data-xl-correction]{grid-column:1/-1}.xl-correction{padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper)}
.xl-correction h2{margin:0 0 var(--sp-4)}.xl-correction-block{margin-bottom:var(--sp-5)}.xl-correction-block h3{margin:0 0 var(--sp-2);font-size:var(--fs-16)}
.xl-solution-prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.xl-analysis{display:grid;gap:var(--sp-3);margin:0}.xl-analysis div{display:grid;grid-template-columns:minmax(90px,120px) minmax(0,1fr);gap:var(--sp-3)}.xl-analysis dt{font-weight:800}.xl-analysis dd{margin:0;overflow-wrap:anywhere;line-height:1.6}.xl-table-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-sm)}
.xl-correction table{width:100%;min-width:360px;border-collapse:collapse;font-size:var(--fs-14);text-align:left}.xl-correction th,.xl-correction td{padding:var(--sp-3);border-bottom:1px solid var(--line);vertical-align:top;white-space:normal;overflow-wrap:normal}.xl-correction th{background:var(--bg-sunken);font-weight:800;white-space:nowrap}.xl-correction tr:last-child td{border-bottom:0}
.xl-types{display:grid;gap:var(--sp-2)}.xl-type{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2) var(--sp-4);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-sunken)}.xl-type strong{font-size:var(--fs-14)}.xl-type span{font-size:var(--fs-14);color:var(--ink-2)}
.xl-neighbors{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.xl-neighbors a{display:grid;gap:var(--sp-1);min-width:0;min-height:var(--tap);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--live-text);font-weight:800;text-decoration:none}.xl-neighbors a:hover{text-decoration:underline}.xl-neighbors a span{color:var(--ink-2);font-size:var(--fs-13);font-weight:500;overflow-wrap:anywhere}.xl-neighbors a:last-child{text-align:right;grid-column:2}
@media(max-width:900px){.xl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.xl-select-row{grid-template-columns:repeat(3,minmax(0,1fr))}.xl-chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.xl-atlas-track{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.xl-header{padding:var(--sp-5);display:block}.xl-header-count{display:flex;align-items:baseline;gap:var(--sp-2);text-align:left;margin-top:var(--sp-4)}.xl-header-count strong{font-size:var(--fs-30)}.xl-filters{padding:var(--sp-4)}.xl-search-row{grid-template-columns:minmax(0,1fr) 100px}.xl-query{grid-column:1}.xl-number{grid-column:2}.xl-search-row>.btn{grid-column:1/-1}.xl-select-row{grid-template-columns:minmax(0,1fr)}.xl-atlas-head{display:block}.xl-atlas-head p{margin-top:var(--sp-1)}.xl-grid{grid-template-columns:minmax(0,1fr)}.xl-detail{grid-template-columns:minmax(0,1fr)}.xl-detail-block,.xl-visual,.xl-visual+.xl-detail-block{grid-column:1}.xl-visual{min-height:0}.xl-visual img{height:auto}.xl-actions .btn{width:100%}.xl-neighbors{grid-template-columns:minmax(0,1fr)}.xl-neighbors a:last-child{grid-column:1;text-align:left}.xl-analysis div{grid-template-columns:minmax(0,1fr);gap:0}}
@media(max-width:360px){.xl-search-row,.xl-quick-row,.xl-chapter-grid,.xl-atlas-track{grid-template-columns:minmax(0,1fr)}.xl-query,.xl-number{grid-column:1}}
