/* Lyceum — olivier, terre cuite, parchemin */
:root {
  --olive: #2f4a3a; --olive-clair: #5d7d5f; --terre: #b5562f; --terre-clair: #e8b48f; --terre-fonce: #7a3519; --ocre: #c9962e;
  --fond: #f5efe3; --carte: #fffaf0; --encre: #1e2622; --muted: #6a6a5e; --ligne: #e3d9c4; --ok: #3f7a4f; --err: #a83a2a;
  --k-nom: #2560a3; --k-acc: #b0361f; --k-gen: #7b4fa0; --k-dat: #2f7d4f; --k-abl: #9a6a12; --k-voc: #1f7f86; --k-verbe: #1e2622;
  --taille: 1; --r: 14px;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --antique: "Gentium Plus", "GFS Didot", "Palatino Linotype", Palatino, "Times New Roman", serif;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --fond: #161b18; --carte: #1f2622; --encre: #ece5d6; --muted: #a9a593; --ligne: #34403a; --olive: #8fb08f; --olive-clair: #6f9270;
    --terre: #d9774c; --terre-clair: #f0c09c; --terre-fonce: #9c4a26; --ok: #78b486; --err: #e07b6a;
    --k-nom: #7fb0ef; --k-acc: #f08a72; --k-gen: #c4a0e6; --k-dat: #7fd19c; --k-abl: #e3b45c; --k-voc: #6fd0d6; --k-verbe: #ece5d6;
  }
}
:root[data-theme="dark"] {
  --fond: #161b18; --carte: #1f2622; --encre: #ece5d6; --muted: #a9a593; --ligne: #34403a; --olive: #8fb08f; --olive-clair: #6f9270;
  --terre: #d9774c; --terre-clair: #f0c09c; --terre-fonce: #9c4a26; --ok: #78b486; --err: #e07b6a;
  --k-nom: #7fb0ef; --k-acc: #f08a72; --k-gen: #c4a0e6; --k-dat: #7fd19c; --k-abl: #e3b45c; --k-voc: #6fd0d6; --k-verbe: #ece5d6;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
html { font-size: calc(16px * min(var(--taille), 1.25)); -webkit-text-size-adjust: 100%; }
@media (min-width: 700px) { html { font-size: calc(16px * var(--taille)); } }
body { background: var(--fond); color: var(--encre); font-family: var(--sans); line-height: 1.5; overflow-x: clip; padding-bottom: env(safe-area-inset-bottom); }
body.modal-open { overflow: hidden; }
a { color: var(--terre); }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: 1.2; margin: .2em 0 .4em; }
h1 { font-size: 1.5rem; } h2 { font-size: 1.2rem; } h3 { font-size: 1.02rem; }
.muted { color: var(--muted); } .petit { font-size: .85rem; } .centre { text-align: center; }

/* bandeau */
header#top { position: sticky; top: 0; z-index: 20; background: var(--olive); color: #f5efe3; padding-top: env(safe-area-inset-top); box-shadow: 0 2px 8px #0002; }
:root[data-theme="dark"] header#top { background: #1b2a21; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) header#top { background: #1b2a21; } }
.bar { display: flex; align-items: center; gap: .6rem; height: 48px; padding: 0 max(16px, env(safe-area-inset-left)); max-width: 960px; margin: 0 auto; }
.logo { display: flex; align-items: center; gap: .45rem; color: inherit; text-decoration: none; font-family: var(--serif); font-size: 1.25rem; letter-spacing: .04em; margin-right: auto; }
.logo-mark { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--terre); color: #fff8ec; font-size: 1rem; }
.sync { font-size: .75rem; padding: .15rem .5rem; border-radius: 99px; background: #ffffff1f; white-space: nowrap; }
.sync.off { background: #a83a2a; } .sync.demo { background: var(--ocre); color: #1e2622; }
.icon-btn { background: none; border: 0; color: inherit; font-size: 1.25rem; width: 40px; height: 40px; border-radius: 50%; cursor: pointer; }
.card .icon-btn { color: var(--encre); }
.icon-btn:hover { background: #ffffff22; }
.tabs { display: flex; overflow-x: auto; scrollbar-width: none; max-width: 960px; margin: 0 auto; padding: 0 8px; }
.tabs::-webkit-scrollbar { display: none; }
.tabs a { flex: 1 0 auto; text-align: center; color: #f5efe3cc; text-decoration: none; padding: .5rem .55rem; font-size: .9rem; border-bottom: 3px solid transparent; white-space: nowrap; }
.tabs a.on { color: #fff; border-bottom-color: var(--ocre); font-weight: 600; }
.demo-banner { background: var(--ocre); color: #1e2622; text-align: center; font-size: .8rem; padding: .25rem 16px; }

main { max-width: 960px; margin: 0 auto; padding: 14px 16px 120px; }
.loading, .err { padding: 2rem 0; text-align: center; } .err { color: var(--err); }
.card { background: var(--carte); border: 1px solid var(--ligne); border-radius: var(--r); padding: 14px 16px; margin: 0 0 14px; }
details.card > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .4rem; }
details.card > summary::before { content: "›"; transition: transform .2s; color: var(--terre); font-size: 1.3rem; }
details.card[open] > summary::before { transform: rotate(90deg); }
details.card > summary h2 { margin: 0; }
.kicker { text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; color: var(--terre); font-weight: 600; }
.row-between { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.row-gap { display: flex; flex-wrap: wrap; gap: .5rem; }
.pill { display: inline-block; font-size: .78rem; padding: .1rem .55rem; border-radius: 99px; background: var(--ligne); }
.pill.exam, b.exam { background: var(--terre); color: #fff8ec; font-size: .72rem; padding: .05rem .45rem; border-radius: 99px; font-weight: 600; }
.btn { display: inline-block; font: inherit; font-size: .95rem; padding: .55rem 1rem; border-radius: 10px; border: 1px solid var(--ligne); background: var(--carte); color: var(--encre); cursor: pointer; text-decoration: none; min-height: 44px; }
.btn.primary { background: var(--terre); border-color: var(--terre); color: #fff8ec; }
.btn.link { background: none; border: 0; color: var(--terre); text-decoration: underline; }
.btn:disabled { opacity: .6; cursor: default; }
.retour { display: inline-block; margin: 0 0 10px; text-decoration: none; font-size: .9rem; }

/* Aujourd'hui */
.hero { background: linear-gradient(135deg, var(--carte), color-mix(in srgb, var(--terre-clair) 30%, var(--carte))); }
.hero-top { display: flex; justify-content: space-between; gap: 1rem; }
.compteur { text-align: center; min-width: 88px; }
.compteur b { display: block; font-family: var(--serif); font-size: 1.9rem; color: var(--terre); line-height: 1; }
.compteur span { font-size: .72rem; color: var(--muted); }
.serie { margin-top: .6rem; font-weight: 600; color: var(--olive); }
.taches { list-style: none; padding: 0; margin: .4rem 0; }
.taches li a { display: flex; gap: .7rem; align-items: center; padding: .6rem .2rem; border-bottom: 1px solid var(--ligne); text-decoration: none; color: var(--encre); }
.taches li:last-child a { border-bottom: 0; }
.coche { flex: none; width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--olive-clair); display: grid; place-items: center; color: #fff; font-weight: 700; }
.taches li.fait .coche { background: var(--ok); border-color: var(--ok); }
.taches li.fait .t-titre { text-decoration: line-through; color: var(--muted); }
.t-main { display: flex; flex-direction: column; min-width: 0; }
.t-sous { font-size: .8rem; color: var(--muted); }
.barre { display: flex; height: 8px; border-radius: 99px; background: var(--ligne); overflow: hidden; margin: .4rem 0; }
.barre i { display: block; background: var(--ok); } .barre i.pret { background: color-mix(in srgb, var(--ok) 30%, transparent); }
.barre.fine { height: 6px; }
.tampon { margin: 1rem auto .2rem; width: max-content; border: 3px double var(--terre); color: var(--terre); padding: .4rem 1rem; transform: rotate(-6deg); font-family: var(--serif); letter-spacing: .15em; text-align: center; animation: tampon .5s ease-out; }
.tampon small { display: block; letter-spacing: 0; font-size: .75rem; }
@keyframes tampon { from { transform: rotate(-6deg) scale(2); opacity: 0; } }
.cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; font-size: .85rem; }
.cal b { color: var(--muted); font-weight: 500; font-size: .75rem; }
.cal-j { padding: .35rem 0; border-radius: 8px; background: color-mix(in srgb, var(--ligne) 50%, transparent); }
.cal-j.ok { background: var(--ok); color: #fff; } .cal-j.part { background: var(--terre-clair); color: #1e2622; } .cal-j.repos { opacity: .5; }
.cal-j.auj { outline: 2px solid var(--terre); }
.ue-prog { display: grid; gap: .5rem; }
.ue-l { display: grid; grid-template-columns: 4.2rem 1fr 3rem; grid-template-areas: "n t c" "n b c"; column-gap: .5rem; align-items: center; }
.ue-n { grid-area: n; font-weight: 700; color: var(--olive); font-size: .85rem; } .ue-t { grid-area: t; font-size: .85rem; } .ue-l .barre { grid-area: b; margin: .15rem 0; } .ue-c { grid-area: c; text-align: right; font-size: .8rem; color: var(--muted); }

/* Textes */
.grille { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.oeuvre { text-decoration: none; color: var(--encre); display: flex; flex-direction: column; gap: .2rem; border-left: 5px solid var(--olive); }
.oeuvre.grc { border-left-color: var(--terre); }
.o-langue { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.morceaux, .volets { list-style: none; padding: 0; margin: 0; }
.morceaux li > a, .morceaux li > span, .volets li a { display: flex; align-items: center; gap: .6rem; padding: .55rem .2rem; border-bottom: 1px solid var(--ligne); text-decoration: none; color: var(--encre); }
.volets li a { justify-content: space-between; }
.m-ic { flex: none; width: 1.4rem; text-align: center; color: var(--terre); }
.m-t { flex: 1; min-width: 0; } .m-min { font-size: .8rem; color: var(--muted); white-space: nowrap; }
.morceaux li.fait .m-ic { color: var(--ok); } .morceaux li.avenir { opacity: .55; } .morceaux li.lock { opacity: .75; }
.specimen { background: color-mix(in srgb, var(--ocre) 18%, transparent); border-left: 3px solid var(--ocre); padding: .4rem .7rem; font-size: .85rem; border-radius: 0 8px 8px 0; }
.outils { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .85rem; margin-bottom: .4rem; }
.legende { display: flex; flex-wrap: wrap; gap: .3rem .7rem; font-size: .75rem; margin-bottom: .6rem; }
.legende.off { display: none; }
.legende span { font-weight: 600; }
.phrases { font-family: var(--antique); font-size: 1.22rem; line-height: 2; }
.phrase { margin-bottom: .8rem; }
.p-n { font-family: var(--sans); font-size: .7rem; color: var(--muted); vertical-align: super; margin-right: .2rem; }
.tok { cursor: pointer; border-radius: 4px; padding: 0 1px; -webkit-tap-highlight-color: transparent; }
.tok:hover, .tok:focus { background: color-mix(in srgb, var(--terre-clair) 45%, transparent); outline: none; }
.phrases.cas .k-nom, .legende .k-nom { color: var(--k-nom); } .phrases.cas .k-acc, .legende .k-acc { color: var(--k-acc); }
.phrases.cas .k-gen, .legende .k-gen { color: var(--k-gen); } .phrases.cas .k-dat, .legende .k-dat { color: var(--k-dat); }
.phrases.cas .k-abl, .legende .k-abl { color: var(--k-abl); } .phrases.cas .k-voc, .legende .k-voc { color: var(--k-voc); }
.phrases.cas .k-verbe, .legende .k-verbe { color: var(--k-verbe); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; font-weight: 600; }
.p-lit { font-family: var(--serif); font-size: 1rem; line-height: 1.5; color: var(--muted); margin: .2rem 0 0; padding-left: .7rem; border-left: 2px solid var(--ligne); }
.trad { font-family: var(--serif); font-size: 1.05rem; }
.libre { border-top: 1px solid var(--ligne); padding-top: .5rem; margin-top: .6rem; }
textarea, input[type=email], input[type=password], input[type=date] { width: 100%; font: inherit; padding: .55rem .7rem; border-radius: 10px; border: 1px solid var(--ligne); background: var(--fond); color: var(--encre); }
.q { border: 1px solid var(--ligne); border-radius: 10px; margin: 0 0 .7rem; padding: .5rem .7rem; }
.q legend { font-weight: 600; padding: 0 .3rem; }
.opt { display: flex; gap: .5rem; align-items: flex-start; padding: .35rem .2rem; cursor: pointer; border-radius: 8px; }
.opt input { margin-top: .3rem; }
.q.bon { border-color: var(--ok); } .q.faux { border-color: var(--err); }
.opt.juste { background: color-mix(in srgb, var(--ok) 18%, transparent); }
.q-expl { font-size: .85rem; color: var(--muted); margin-top: .3rem; }
.quiz-actions { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }

/* Glose */
.glose .g-forme { font-family: var(--antique); font-size: 1.8rem; color: var(--terre); }
.glose .g-lemme { font-family: var(--antique); font-size: 1.1rem; }
.glose .g-sens { font-weight: 600; margin: .2rem 0 .5rem; }
.g-ana { margin-bottom: .5rem; } .g-ana .pill { color: #fff; }
.pill.k-nom { background: var(--k-nom); } .pill.k-acc { background: var(--k-acc); } .pill.k-gen { background: var(--k-gen); } .pill.k-dat { background: var(--k-dat); } .pill.k-abl { background: var(--k-abl); } .pill.k-verbe { background: var(--olive); } .pill.k-autre { background: var(--muted); }
.g-note { background: var(--fond); padding: .5rem .7rem; border-radius: 8px; font-size: .92rem; }

/* Cours, langue */
.ue-h { margin-top: 1rem; } .ue-h small { color: var(--muted); font-family: var(--sans); font-weight: 400; font-size: .75rem; }
.avant-propos { font-style: italic; }
.table-wrap { overflow-x: auto; }
table.para { border-collapse: collapse; width: 100%; font-size: .92rem; }
table.para th, table.para td { border-bottom: 1px solid var(--ligne); padding: .35rem .5rem; text-align: left; }
@media (max-width: 640px) {
  table.para thead { display: none; } table.para tr { display: block; border-bottom: 2px solid var(--ligne); padding: .3rem 0; }
  table.para td { display: flex; justify-content: space-between; border: 0; } table.para td::before { content: attr(data-h); color: var(--muted); margin-right: 1rem; }
}

/* Vocabulaire */
.puces { display: flex; gap: .4rem; overflow-x: auto; margin: 0 0 12px; scrollbar-width: none; }
.puce { flex: none; font: inherit; font-size: .85rem; padding: .35rem .8rem; border-radius: 99px; border: 1px solid var(--ligne); background: var(--carte); color: var(--encre); cursor: pointer; }
.puce.on { background: var(--olive); border-color: var(--olive); color: #fff; }
.vocab-liste { list-style: none; padding: 0; margin: 0; } .vocab-liste li { padding: .45rem 0; border-bottom: 1px solid var(--ligne); }
.carte { text-align: center; }
.c-mot { font-family: var(--antique); font-size: 1.8rem; color: var(--terre); }
.c-phrase { font-family: var(--antique); font-size: 1.1rem; } .c-phrase mark { background: var(--terre-clair); color: #1e2622; border-radius: 3px; padding: 0 2px; }
.c-sens { font-weight: 700; font-size: 1.2rem; margin: .6rem 0; }
.notes { display: grid; grid-template-columns: repeat(4, 1fr); gap: .4rem; margin-top: .6rem; }
.notes .btn { padding: .5rem .2rem; font-size: .85rem; }
.notes .n0 { border-color: var(--err); } .notes .n3 { border-color: var(--ok); }

/* Connexion */
.login { max-width: 420px; margin: 2rem auto; text-align: center; }
.login form { display: grid; gap: .7rem; text-align: left; }
.login label, .champ { display: grid; gap: .25rem; font-size: .9rem; margin-bottom: .5rem; }
.login-owl { width: 90px; margin: 0 auto; }
.msg { min-height: 1.2em; font-size: .9rem; color: var(--terre); }

/* Fenêtre */
.modal { position: fixed; inset: 0; background: #0007; z-index: 50; display: flex; align-items: flex-end; justify-content: center; }
.modal[hidden] { display: none; }
.modal-box { position: relative; background: var(--carte); color: var(--encre); width: 100%; max-width: 560px; max-height: 85vh; overflow: auto; border-radius: 18px 18px 0 0; padding: 18px 18px calc(18px + env(safe-area-inset-bottom)); }
@media (min-width: 700px) { .modal { align-items: center; } .modal-box { border-radius: 18px; } }
.modal-close { position: absolute; top: 6px; right: 8px; background: none; border: 0; font-size: 1.8rem; color: var(--muted); cursor: pointer; width: 44px; height: 44px; }

/* Mascotte Noctua */
.mascotte { position: fixed; right: max(12px, env(safe-area-inset-right)); bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 30; display: flex; flex-direction: row-reverse; align-items: flex-end; gap: .4rem; pointer-events: none; }
.mascotte .owl { width: 54px; height: 61px; filter: drop-shadow(0 2px 3px #0003); }
.mascotte .bulle { background: var(--carte); border: 1px solid var(--ligne); border-radius: 14px 14px 2px 14px; padding: .5rem .75rem; font-size: .88rem; max-width: 230px; box-shadow: 0 3px 10px #0002; animation: bulle .3s ease-out; }
@keyframes bulle { from { opacity: 0; transform: translateY(6px); } }
.mascotte.joie .owl { animation: saut .6s ease-in-out 2; }
@keyframes saut { 50% { transform: translateY(-10px) rotate(-4deg); } }
.mascotte.calme .owl { animation: tete 7s ease-in-out infinite; transform-origin: 50% 90%; }
@keyframes tete { 0%, 80%, 100% { transform: rotate(0); } 85% { transform: rotate(-8deg); } 92% { transform: rotate(6deg); } }
.mascotte.dort .owl { opacity: .85; }
body.modal-open .mascotte .bulle { display: none; }
@media (prefers-reduced-motion: reduce) { .mascotte .owl, .tampon, .bulle { animation: none !important; } }
.confettis { position: fixed; inset: 0; pointer-events: none; z-index: 60; overflow: hidden; }
.confettis i { position: absolute; top: -10px; width: 8px; height: 14px; border-radius: 2px; animation: tombe 2.4s ease-in forwards; }
@keyframes tombe { to { transform: translateY(105vh) rotate(540deg); } }
.liste{margin:.3rem 0 .6rem;padding-left:1.3rem}
.resume{font-style:italic;margin:.4rem 0}
/* Poésie : un vers par ligne (retrait suspendu si le vers déborde), numéro en marge */
.phrase:has(.vers) { padding-left: 2em; }
.phrase:has(.vers) > .p-n { display: none; }
.vers { display: block; padding-left: 1.2em; text-indent: -1.2em; position: relative; }
.vers .v-n { position: absolute; left: -2.2em; width: 1.9em; text-indent: 0; text-align: right; font-size: .72em; line-height: inherit; color: var(--muted); font-variant-numeric: tabular-nums; user-select: none; }
.m-sep { display: flex; flex-direction: column; gap: .1rem; padding: .9rem .2rem .3rem; border-bottom: 2px solid var(--terre); color: var(--terre-fonce); font-family: var(--serif); }
/* Séances en blocs */
.cache { display: none !important; }
.bloc-n { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--olive-clair); margin: 18px 4px 6px; font-weight: 600; }
.serie { border-left: 4px solid var(--terre); }
.trous { line-height: 2.2; }
.trou { font: inherit; padding: .1rem .35rem; border: 0; border-bottom: 2px solid var(--terre); background: var(--fond); color: var(--encre); border-radius: 4px 4px 0 0; }
.trou.ok, .assoc select.ok { border-color: var(--ok); background: color-mix(in srgb, var(--ok) 14%, transparent); }
.trou.ko, .assoc select.ko { border-color: var(--err); background: color-mix(in srgb, var(--err) 12%, transparent); }
.assoc { display: grid; gap: .45rem; }
.as-l { display: grid; grid-template-columns: 1fr minmax(9rem, 45%); gap: .5rem; align-items: center; }
.as-l select { font: inherit; padding: .35rem; border-radius: 8px; border: 1px solid var(--ligne); background: var(--fond); color: var(--encre); max-width: 100%; }
@media (max-width: 480px) { .as-l { grid-template-columns: 1fr; } }
.vf { display: flex; gap: 1rem; }
/* Scansion */
.sc-vers { display: flex; flex-wrap: wrap; align-items: flex-end; font-family: var(--antique); font-size: 1.15rem; row-gap: .5rem; padding: .2rem 0; }
.sc-vers .sy { display: inline-flex; flex-direction: column; align-items: center; min-width: 1.2em; }
.sc-vers .sy.dm { margin-left: .55em; }
.sc-vers .mk { height: 1.25em; line-height: 1.25em; font-family: var(--sans); font-size: .95em; color: var(--terre); font-weight: 700; }
.sc-vers .sy.elid .tx { color: var(--muted); text-decoration: line-through; }
.sc-vers .sy.elid .mk { color: var(--muted); }
.sc-vers .sep { align-self: stretch; display: inline-flex; align-items: flex-end; padding-bottom: .1em; color: var(--muted); font-family: var(--sans); min-width: 2px; }
.sc-vers .sep.pied, .sc-vers .sep.coupe { color: var(--olive); font-weight: 700; padding: 0 .1em .1em; }
.sc-vers .sep.coupe { color: var(--terre); }
.sc-info { font-size: .85rem; margin: .2rem 0; } .sc-rem { font-size: .85rem; color: var(--muted); margin: .2rem 0 .6rem; }
.sc-l { border-top: 1px solid var(--ligne); padding: .5rem 0; } .sc-l .btn.petit { min-height: 36px; padding: .3rem .7rem; font-size: .85rem; }
.sc-zone { position: relative; margin: .5rem 0; padding: .3rem .2rem; background: var(--fond); border-radius: 10px; }
.sc-zone canvas { position: absolute; inset: 0; pointer-events: none; }
.sc-zone.dessin canvas { pointer-events: auto; touch-action: none; cursor: crosshair; }
.sc-vers.ex { font-size: 1.3rem; row-gap: 1rem; }
.sc-vers.ex .sy { cursor: pointer; padding: 0 2px; border-radius: 6px; }
.sc-vers.ex .mk { height: 1.6em; line-height: 1.6em; min-width: 1em; border-bottom: 1px dashed var(--ligne); }
.sc-vers.ex .sy.e .tx { text-decoration: line-through; color: var(--muted); }
.sc-vers.ex .gap { align-self: stretch; width: 14px; display: inline-flex; align-items: flex-end; justify-content: center; cursor: pointer; border-radius: 4px; }
.sc-vers.ex .gap i { font-style: normal; color: var(--olive); font-weight: 700; font-family: var(--sans); }
.sc-vers.ex .gap:hover { background: color-mix(in srgb, var(--terre-clair) 40%, transparent); }
.sc-vers.ex .ok .mk, .sc-vers.ex .gap.ok i { color: var(--ok); } .sc-vers.ex .ko { background: color-mix(in srgb, var(--err) 14%, transparent); }
.sc-vers.ex .sy.ko .mk { color: var(--err); }
.sc-outils { display: flex; flex-wrap: wrap; gap: .3rem 1rem; align-items: center; font-size: .9rem; }
.sc-sol { margin-top: .6rem; padding-top: .5rem; border-top: 1px dashed var(--ligne); }
fieldset.q { min-width: 0; }
.as-l select { width: 100%; }
.as-l > span { min-width: 0; overflow-wrap: anywhere; }
