:root{--nuit:#13293D;--faisceau:#F2C14E;--ecume:#F3F5F7;--maree:#2C5F86;--signal:#C2552D;--brume:#6B7C8C;--line:#D9E1E8}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--nuit);color:var(--nuit);font:16px/1.5 "Atkinson Hyperlegible",system-ui,sans-serif;
  background-image:radial-gradient(120% 70% at 85% -10%,rgba(242,193,78,.16),transparent 60%);min-height:100vh}
.gate{max-width:420px;margin:0 auto;padding:56px 16px 40px}
.mark{display:flex;align-items:center;gap:10px;color:var(--ecume);text-decoration:none;font:600 30px/1 Spectral,Georgia,serif;margin:0 0 28px 4px}
.mark svg{width:46px;height:46px}
.card{background:#fff;border-radius:14px;padding:28px 26px 24px;box-shadow:0 18px 50px rgba(0,0,0,.28)}
h1{font:600 26px/1.2 Spectral,Georgia,serif;margin:0 0 14px}
label{display:block;font-weight:700;font-size:14px;margin:14px 0 6px}
input{width:100%;font:inherit;padding:11px 12px;border:1px solid #B9C6D2;border-radius:8px;background:#fff;color:inherit}
input:focus{outline:3px solid rgba(44,95,134,.35);border-color:var(--maree)}
button,.btn{display:inline-block;margin-top:20px;width:100%;text-align:center;font-family:inherit;font-weight:700;font-size:16px;line-height:1;padding:13px 16px;border:0;border-radius:8px;background:var(--nuit);color:#fff;cursor:pointer;text-decoration:none}
button:hover,.btn:hover{background:#1d3a55}
.err{background:#FBEDE7;color:#8A3517;border-left:4px solid var(--signal);padding:10px 12px;border-radius:6px;margin:0 0 6px}
.ok{background:#E8F1E8;color:#24502A;border-left:4px solid #3E7D47;padding:10px 12px;border-radius:6px}
.small{color:#5A6B7B;font-size:14px;font-weight:400}
code{background:#EEF2F6;padding:2px 6px;border-radius:4px;font-size:14px;word-break:break-all}
a{color:var(--maree)}
@media (prefers-color-scheme:dark){.card{background:#222E3B;color:#E7EEF4}input{background:#1A2430;border-color:#41546A}.small{color:#A3B1BE}code{background:#2A3847}a{color:#A9CBEA}button,.btn{background:var(--faisceau);color:#1F1A08}button:hover,.btn:hover{background:#f5cd6c}.err{background:#3a1d14;color:#F3C2AE}.ok{background:#173020;color:#BFE3C4}}
h2{font:600 18px/1.3 Spectral,Georgia,serif;margin:26px 0 2px;padding-top:18px;border-top:1px solid var(--line)}
h2+.small{margin:0 0 4px}
@media (prefers-color-scheme:dark){h2{border-color:#34424F}}
.gate.wide{max-width:860px}
.ch{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.ch h1{margin:0}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.grid .full{grid-column:1/-1}
.grid button{margin-top:16px}
@media (max-width:640px){.grid{grid-template-columns:1fr}}
select{width:100%;font:inherit;padding:11px 12px;border:1px solid #B9C6D2;border-radius:8px;background:#fff;color:inherit}
.btn.ghost,.ghostbtn{background:transparent;color:var(--nuit);border:1.5px solid var(--nuit)}
.btn.ghost:hover,.ghostbtn:hover{background:#EEF2F6}
.btn.small{width:auto;margin:0;padding:10px 14px;font-size:14px}
.invite{margin:14px 0 6px}
.invite p{margin:.3rem 0}
.invite .btn.ghost{width:auto;margin-top:8px}
.linkrow{display:flex;gap:8px;margin:10px 0}
.linkrow input{font-size:14px}
.school{border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:10px 0}
.school .sh{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;flex-wrap:wrap}
.school h3{margin:0;font-size:17px}
.school ul{margin:8px 0 2px;padding-left:18px}
.school li{margin:3px 0}
.school li.wait{color:#8A5A00}
@media (prefers-color-scheme:dark){select{background:#1A2430;border-color:#41546A}.btn.ghost,.ghostbtn{color:#E7EEF4;border-color:#E7EEF4;background:transparent}.btn.ghost:hover,.ghostbtn:hover{background:#2A3847}.school{border-color:#34424F}.school li.wait{color:#F2C14E}}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:16px 0 4px}
.facts div{background:#F3F5F7;border-radius:8px;padding:10px 12px}
.facts dt{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#5A6B7B}
.facts dd{margin:2px 0 0;font-weight:700;word-break:break-word}
form.inline{display:flex;gap:10px;align-items:stretch}
form.inline button{width:auto;margin:0;white-space:nowrap}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (prefers-color-scheme:dark){.facts div{background:#2A3847}.facts dt{color:#A3B1BE}}

/* ---------- console de l'administrateur : la vigie ---------- */
body.console{background:#F3F5F7;background-image:none;display:grid;grid-template-columns:15.5rem minmax(0,1fr);min-height:100vh;color:var(--nuit)}
.cnav{background:var(--nuit);color:var(--ecume);padding:22px 18px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh;
  background-image:radial-gradient(140% 50% at 0% 0%,rgba(242,193,78,.14),transparent 60%)}
.cnav .mark{margin:0;font-size:24px}
.cnav .mark svg{width:38px;height:38px}
.cnav .mark span{display:flex;flex-direction:column;line-height:1.05}
.cnav .mark small{font:400 13px "Atkinson Hyperlegible",sans-serif;color:#A9BCCD;margin-top:3px}
.cnav nav{display:grid;gap:2px}
.cnav nav a{display:flex;justify-content:space-between;align-items:center;color:#D3DEE8;text-decoration:none;padding:9px 12px;border-radius:8px;font-weight:700}
.cnav nav a span{font-weight:400;font-size:13px;color:#93A8BA}
.cnav nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.cnav nav a[aria-current="page"]{background:rgba(242,193,78,.14);color:#fff;box-shadow:inset 3px 0 0 var(--faisceau)}
.cme{margin-top:auto;display:grid;gap:3px;font-size:14px;border-top:1px solid rgba(255,255,255,.12);padding-top:14px}
.cme > span:first-child{font-weight:700}
.cme .small{color:#93A8BA}
.cme a{color:#D3DEE8;display:inline-block;margin-top:6px}
.cme form{margin:0}
.linkbtn{background:none!important;border:0;padding:0;margin:6px 0 0;width:auto;color:#D3DEE8;text-decoration:underline;font:inherit;font-weight:400;cursor:pointer}
.cmain{padding:34px clamp(18px,4vw,48px) 60px;max-width:980px}
.vh h1{font:600 34px/1.15 Spectral,Georgia,serif;margin:0 0 4px}
.vh{margin:0 0 18px}
.cbox{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 18px;margin:0 0 22px}
.cbox summary{cursor:pointer;font-weight:700;color:var(--maree)}
.cbox[open] summary{margin-bottom:6px}
.srow{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px 12px;margin:0 0 14px;box-shadow:0 1px 0 rgba(19,41,61,.04),0 12px 28px -22px rgba(19,41,61,.45)}
.srow-h{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:start}
.srow-h h2{margin:0;padding:0;border:0;font:600 21px/1.2 Spectral,Georgia,serif}
.srow-h p{margin:3px 0 0}
.srow-h form.enter{margin:0}
.srow-h form.enter .btn{white-space:nowrap}
.lamp{width:14px;height:14px;border-radius:50%;margin-top:6px;background:#C9D3DC;box-shadow:0 0 0 3px #EEF2F6}
.lamp.on{background:var(--faisceau);box-shadow:0 0 0 3px rgba(242,193,78,.25),0 0 14px 2px rgba(242,193,78,.55)}
.lamp.mid{background:#E8C979;box-shadow:0 0 0 3px rgba(242,193,78,.18)}
.lamp.low{background:#9FB0BF}
.ppl{list-style:none;margin:12px 0 6px 28px;padding:0;display:grid;gap:4px}
.ppl li{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}
.ppl .when{margin-left:auto}
.ppl li.wait b{color:#8A5A00}
.srow-a{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;margin-left:28px;font-size:14px;border-top:1px solid #EEF2F6;padding-top:8px}
.srow-a details{flex:1 1 20rem}
.srow-a summary{cursor:pointer;color:var(--maree);font-weight:700}
.srow-a details[open]{flex-basis:100%}
.srow-a a{margin-left:auto}
.tw{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:12px}
table.ct{width:100%;border-collapse:collapse;font-size:15px}
table.ct th{text-align:left;font-size:13px;color:#5A6B7B;font-weight:700;padding:10px 14px;border-bottom:1px solid var(--line)}
table.ct td{padding:10px 14px;border-bottom:1px solid #EEF2F6;vertical-align:top}
table.ct tr:last-child td{border-bottom:0}
table.ct tr.wait td{color:#8A5A00}
.jf{margin:0 0 10px;max-width:22rem}
h3.jd{font:600 17px/1.3 Spectral,Georgia,serif;margin:22px 0 6px}
ol.jl{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:12px}
ol.jl li{display:grid;grid-template-columns:3.4rem minmax(0,1fr) auto;gap:10px;padding:9px 14px;border-bottom:1px solid #EEF2F6;align-items:start}
ol.jl li:last-child{border-bottom:0}
ol.jl time{font-variant-numeric:tabular-nums;color:#5A6B7B;font-size:14px;padding-top:1px}
ol.jl li.sup{background:linear-gradient(90deg,rgba(242,193,78,.13),transparent 60%)}
.tag{font-style:normal;font-size:12px;font-weight:700;background:var(--faisceau);color:var(--nuit);border-radius:20px;padding:2px 9px;align-self:center}
@media (max-width:760px){
  body.console{grid-template-columns:1fr}
  .cnav{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 18px}
  .cnav nav{display:flex;flex-wrap:wrap}
  .cme{margin:0;border:0;padding:0;width:100%}
  .srow-h{grid-template-columns:auto minmax(0,1fr)}
  .srow-h form.enter{grid-column:1/-1}
  .ppl,.srow-a{margin-left:0}
}
@media (prefers-color-scheme:dark){
  body.console{background:#1A2430;color:#E7EEF4}
  .cbox,.srow,.tw,ol.jl{background:#222E3B;border-color:#34424F}
  .srow-a,ol.jl li,table.ct td{border-color:#2C3A48}
  .lamp{box-shadow:0 0 0 3px #2A3847;background:#41546A}
  table.ct th{color:#A3B1BE;border-color:#34424F}
  ol.jl time{color:#A3B1BE}
  .cbox summary,.srow-a summary{color:#A9CBEA}
  .ppl li.wait b,table.ct tr.wait td{color:#F2C14E}
}
ol.jl.compact{margin-top:8px}
ol.jl.compact li{grid-template-columns:10.5rem minmax(0,1fr)}
.card ol.jl{background:transparent}
.supnote{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;background:repeating-linear-gradient(135deg,#F2C14E 0 14px,#EDB93F 14px 28px);color:#13293D;border-radius:10px;padding:10px 14px;margin:0 0 18px}
.supnote span{margin-right:auto}
.supnote form{margin:0}
.supnote .btn.ghost{color:#13293D;border-color:#13293D}
.btn.small{color:#fff}
.btn.small.ghost,.supnote .btn.ghost{color:var(--nuit)}
body.console{background:linear-gradient(90deg,var(--nuit) 15.5rem,#F3F5F7 15.5rem)}
@media (max-width:760px){body.console{background:#F3F5F7}}
@media (prefers-color-scheme:dark){body.console{background:linear-gradient(90deg,var(--nuit) 15.5rem,#1A2430 15.5rem)}.btn.small{color:#1F1A08}.btn.small.ghost{color:#E7EEF4}}
.supnote .btn:not(.ghost){background:#13293D;color:#fff}
.supnote .btn.small.ghost{color:#13293D;border-color:#13293D;background:transparent}
.acro{list-style:none;margin:26px 0 0 6px;padding:0;color:#A9BCCD;font-size:15px;line-height:1.55}
.acro b{font:600 19px/1 Spectral,Georgia,serif;color:var(--faisceau);display:inline-block;min-width:0}
label.check{display:flex;gap:8px;align-items:flex-start;font-weight:400;font-size:15px;margin:14px 0 0;cursor:pointer}
label.check input{width:auto;margin:3px 0 0;accent-color:var(--nuit)}
@media (prefers-color-scheme:dark){label.check input{accent-color:var(--faisceau)}}

/* ---------- console : tuiles, fiche d'école, recherche ---------- */
.cmain{max-width:1180px}
.vh{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 20px}
.vh .small{margin:2px 0 0}
.newschool{position:relative}
.newschool summary{list-style:none;width:auto;margin:0;padding:10px 16px}
.newschool summary::-webkit-details-marker{display:none}
.newschool .pop{position:absolute;right:0;top:calc(100% + 8px);z-index:5;width:min(380px,90vw);background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px 18px;box-shadow:0 24px 50px -20px rgba(19,41,61,.45)}
form.stack label{margin:10px 0 4px;font-size:13px}
form.stack button{margin-top:14px}
form.stack .btn.small{width:auto}
.search{position:relative;margin:4px 0 18px;max-width:560px}
.search svg{position:absolute;left:13px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:#6B7C8C;pointer-events:none}
.search input{padding-left:40px;padding-right:40px;background:#fff;border-radius:10px;font-size:15px}
.search kbd{position:absolute;right:11px;top:50%;transform:translateY(-50%);font:12px/1 "Atkinson Hyperlegible",sans-serif;color:#6B7C8C;border:1px solid var(--line);border-radius:5px;padding:3px 6px;background:#F3F5F7}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.tile{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px 14px;display:flex;flex-direction:column;gap:8px;
  box-shadow:0 1px 0 rgba(19,41,61,.04),0 14px 30px -24px rgba(19,41,61,.5);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.tile:hover{border-color:#9DB3C6;transform:translateY(-1px);box-shadow:0 1px 0 rgba(19,41,61,.04),0 20px 36px -24px rgba(19,41,61,.6)}
.tile:focus-within{outline:2px solid var(--maree);outline-offset:2px}
.tile[hidden]{display:none}
.tile header{display:flex;gap:10px;align-items:flex-start}
.tile h2{margin:0;padding:0;border:0;font:600 19px/1.25 Spectral,Georgia,serif}
.tile h2 a{color:inherit;text-decoration:none}
.tile h2 a::after{content:"";position:absolute;inset:0;border-radius:14px}
.tile .lamp{margin-top:5px;flex:0 0 auto}
.tdir{margin:-2px 0 2px 24px;font-size:14px}
.tile dl{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:4px 0 2px;padding:10px 0 0;border-top:1px solid #EEF2F6}
.tile dt{font-size:12px;color:#6B7C8C}
.tile dd{margin:1px 0 0;font-size:14px;font-weight:700}
.tile dd .small{font-weight:400}
.tile .wait,.ppl .wait{color:#8A5A00;font-weight:400}
.tile footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:8px}
.tile footer form{position:relative;z-index:2;margin:0}
.tile .more{font-size:14px;font-weight:700;color:var(--maree);text-decoration:none}
.lamp.off{background:#D5DDE4}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:18px 0 0}
.legend .lamp{margin:0 2px 0 10px;width:10px;height:10px;box-shadow:none}
.legend .lamp:first-child{margin-left:0}
.none{margin:10px 0}
.crumb{margin:0 0 6px;font-size:14px;color:#6B7C8C}
.crumb a{color:var(--maree)}
.school-h{margin-bottom:20px}
.school-h h1{display:flex;align-items:center;gap:12px}
.school-h h1 .lamp{margin:0}
.school-h form.enter .btn{width:auto;margin:0}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px 16px;margin:0 0 16px}
.panel h2{margin:0 0 8px;padding:0;border:0;font:600 18px/1.3 Spectral,Georgia,serif}
.panel .tw{border:0;border-radius:0;margin:0 -18px -16px}
.panel ol.jl{border:0;border-radius:0;margin:0 -18px -16px}
.panel ol.jl li{grid-template-columns:8.5rem minmax(0,1fr)}
.panel details summary{cursor:pointer;font-weight:700;color:var(--maree)}
.kv{margin:0;display:grid;gap:10px}
.kv dt{font-size:12px;color:#6B7C8C}
.kv dd{margin:1px 0 0;font-weight:700}
.sl{margin:0 0 8px;padding-left:18px}
.sl li{margin:2px 0}
td.act{text-align:right;white-space:nowrap}
td.act .linkbtn{color:var(--maree);margin:0}
table.ct tr.off td{color:#8A99A7}
.filters{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 6px}
.filters form{margin:0;min-width:15rem}
.seg2{display:inline-flex;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px}
.seg2 a{padding:7px 12px;border-radius:7px;text-decoration:none;color:var(--nuit);font-size:14px;font-weight:700}
.seg2 a[aria-current="true"]{background:var(--nuit);color:#fff}
.linkrow .btn.small{flex:0 0 auto}
.supline{margin-top:10px}
@media (max-width:900px){.cols{grid-template-columns:1fr}}
@media (prefers-color-scheme:dark){
  .tile,.panel,.newschool .pop,.search input,.seg2{background:#222E3B;border-color:#34424F}
  .tile dl{border-color:#2C3A48}
  .tile dt,.kv dt,.crumb{color:#A3B1BE}
  .tile .more,.crumb a,td.act .linkbtn,.panel details summary{color:#A9CBEA}
  .search kbd{background:#2A3847;border-color:#34424F}
  .seg2 a{color:#E7EEF4}.seg2 a[aria-current="true"]{background:var(--faisceau);color:#1F1A08}
  .tile .wait{color:#F2C14E}
}
textarea{width:100%;font:inherit;padding:11px 12px;border:1px solid #B9C6D2;border-radius:8px;background:#fff;color:inherit;resize:vertical}
@media (prefers-color-scheme:dark){textarea{background:#1A2430;border-color:#41546A}}
.req{background:#fff;border:1px solid var(--line);border-left:4px solid var(--faisceau);border-radius:12px;padding:12px 16px;margin:0 0 12px}
.req.done{border-left-color:var(--line);opacity:.75}
.req header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.req header .when{margin-left:auto}
.req .tag.kind{background:#EEF2F6;color:var(--nuit)}
.req .who{margin:4px 0 8px}
.req .body{margin:0 0 10px;white-space:normal}
.req footer{display:flex;align-items:center;gap:14px}
.req footer form{margin:0}
.req footer .btn.small{width:auto;margin:0}
.warnt{color:#8A3517}
@media (prefers-color-scheme:dark){.req{background:#222E3B;border-color:#34424F}.req .tag.kind{background:#2A3847;color:#E7EEF4}.warnt{color:#F3C2AE}}
.req .linkbtn,td.act .linkbtn{color:var(--maree);margin:0}
@media (prefers-color-scheme:dark){.req .linkbtn{color:#A9CBEA}}

/* messagerie du support */
.thread{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;gap:.8rem}
.thread .msg{border:1px solid var(--line, #D9E1E8);border-radius:.8rem;padding:.8rem 1rem;max-width:88%;background:var(--surface, #fff)}
.thread .msg.sup{margin-left:auto;background:color-mix(in srgb, #F2C14E 14%, var(--surface, #fff));border-color:color-mix(in srgb, #F2C14E 45%, var(--line, #D9E1E8))}
.thread .mh{display:flex;flex-wrap:wrap;gap:.2rem .8rem;align-items:baseline;font-size:.9rem}
.thread .mh time{color:var(--muted, #5A6B7B);font-size:.82rem}
.thread .mb{margin-top:.4rem;line-height:1.5;overflow-wrap:anywhere}
.thread .mf{margin-top:.6rem;display:flex;flex-wrap:wrap;gap:.4rem}
.att{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line, #D9E1E8);border-radius:999px;padding:.2rem .7rem;font-size:.86rem;text-decoration:none;color:inherit;background:var(--surface, #fff)}
.att svg{width:15px;height:15px}
.att span{color:var(--muted, #5A6B7B)}
.empty-thread{margin-top:1rem;padding:1rem 1.2rem;border:1px dashed var(--line, #D9E1E8);border-radius:.8rem}
/* Les comptes de l'école (Mon compte) */
.advice{background:#EEF4F9;border-left:3px solid var(--maree);padding:10px 12px;border-radius:6px;margin:6px 0 12px}
table.acc td:last-child{width:1%;white-space:nowrap}
table.acc tr.off td{color:#8A98A6}
table.acc tr.wait td{color:#8A5A00}
.linkbtn{display:inline;width:auto;margin:0;padding:0;background:none;border:0;color:var(--maree);text-decoration:underline;font-weight:700;font-size:14px;cursor:pointer}
.linkbtn:hover{background:none;color:var(--nuit)}
form.inl{display:inline}
details.accedit summary{cursor:pointer;color:var(--maree);font-weight:700;font-size:14px}
details.accedit[open]{white-space:normal;min-width:min(560px,80vw)}
details.accedit form{margin-top:10px}
details.accadd{margin:14px 0 0}
details.accadd > summary,details.staffnote > summary{display:inline-block;width:auto;margin:0;padding:10px 14px;border-radius:8px;cursor:pointer;list-style:none;font-weight:700}
details.accadd > summary::-webkit-details-marker,details.staffnote > summary::-webkit-details-marker{display:none}
details.accadd[open] > summary,details.staffnote[open] > summary{margin-bottom:10px}
.pcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:12px 0}
.pcard{display:flex;flex-direction:column;gap:2px;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;font-weight:400}
.pcard input{width:auto;margin:0 0 4px}
.pcard:has(input:checked){border-color:var(--nuit);background:#F3F5F7}
.pgrid table td.lv{display:flex;flex-wrap:wrap;gap:4px 14px}
.pgrid label{display:inline-flex;align-items:center;gap:5px;font-weight:400;margin:0}
.pgrid input{width:auto;margin:0}
@media (prefers-color-scheme:dark){.advice{background:#1d2c3b}.pcard:has(input:checked){border-color:#E7EEF4;background:#2A3847}.linkbtn{color:#A9CBEA;background:none}}

/* droits partie par partie : un sélecteur à trois positions par ligne */
table.pt th{font-weight:700;font-size:14px;white-space:nowrap}
table.pt td{text-align:right}
.lvseg{display:inline-flex;border:1.5px solid var(--line);border-radius:8px;overflow:hidden;vertical-align:middle}
.lvseg label{position:relative;display:block;margin:0;cursor:pointer;font-weight:400}
.lvseg label+label{border-left:1.5px solid var(--line)}
.lvseg input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.lvseg span{display:block;padding:6px 11px;font-size:13.5px;font-weight:700;color:#5A6B7B;white-space:nowrap}
.lvseg input:checked+span{background:var(--nuit);color:#fff}
.lvseg input[value="hidden"]:checked+span{background:#8A98A6;color:#fff}
.lvseg input:focus-visible+span{outline:2px solid var(--maree);outline-offset:-2px}
@media (prefers-color-scheme:dark){.lvseg span{color:#A3B1BE}.lvseg input:checked+span{background:var(--faisceau);color:#1F1A08}.lvseg input[value="hidden"]:checked+span{background:#41546A;color:#E7EEF4}}
@media (max-width:640px){table.pt th,table.pt td{display:block;text-align:left;border:0;padding:6px 0}table.pt tr{display:block;padding:6px 0;border-bottom:1px solid var(--line)}}
/* double vérification */
ol.steps{padding-left:22px;margin:8px 0 12px}
ol.steps li{margin:0 0 12px}
.qr{width:200px;height:200px;margin:10px 0;background:#fff;padding:6px;border-radius:8px;border:1px solid var(--line)}
.qr svg{width:100%;height:100%;display:block}
code.key{letter-spacing:.06em;white-space:nowrap}
.ok-tag{color:#2E7D4F}
details.tfamore{margin:8px 0}
details.tfamore summary{cursor:pointer;color:var(--maree);font-weight:700;font-size:14px}
details.tfamore form{margin-top:10px}
.tfacodes{background:#FFF8E1;border-left:3px solid var(--faisceau,#F2C14E);padding:10px 14px;border-radius:6px}
ol.codes{columns:2;padding-left:28px;font-size:16px}
ol.codes li{margin:4px 0}
@media (prefers-color-scheme:dark){.tfacodes{background:#2B2614}.ok-tag{color:#7FD3A0}}
@media print{body:has(.tfacodes) *{visibility:hidden}.tfacodes,.tfacodes *{visibility:visible}.tfacodes{position:absolute;left:0;top:0}.tfacodes button{display:none}}
/* contrat de sous-traitance */
.contract{border:1px solid var(--line);border-radius:8px;padding:6px 18px 14px;margin:14px 0;max-height:52vh;overflow:auto;font-size:15px;line-height:1.55}
.contract h2{font-size:19px;margin-top:12px}
.contract h3{font-size:16px;margin:16px 0 4px}
.contract ul{padding-left:20px}
.ok + .noprint + .contract,.ch ~ .contract{max-height:none;overflow:visible}
form.agree{margin:12px 0 8px}
form.agree button{margin-top:12px}
form.later{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.staffnote textarea{width:100%;min-height:22rem;font:inherit;font-size:14px;line-height:1.5}
@media print{.noprint,.mark,a[href="compte.php"],a[href="console.php"]{display:none}.contract{border:0;padding:0;max-height:none;overflow:visible}}
a.ghostbtn{display:inline-block;padding:10px 14px;border-radius:8px;font-weight:700;text-decoration:none}
details.staffnote{margin:6px 0 10px}
/* Mon compte : boutons à la taille de leur texte, pas sur toute la largeur */
main.gate.wide .card button.ghostbtn{width:auto;padding:10px 16px}
tr.late td{background:#FBEDE7}
@media (prefers-color-scheme:dark){tr.late td{background:#3A2219}}
