/* RP3 · administration — robe CESV (variables de site.css, vert relevé sur le site) */
:root{--brand:#3a8323;--brand-h:#326f1f;--brand-soft:#e8f3e7;--ink:#212936;--text:#1f2937;--muted:#6b7280;--bg:#ffffff;--subtle:#f3f5f8;--border:#e2e6ec;--border-s:#d3d9e1;--ok:#15803d;--ok-bg:#dcfce7;--warn:#92400e;--warn-bg:#fef3c7;--bad:#b91c1c;--bad-bg:#fee2e2;--count:#fef9cc;
  --font:"Atkinson Hyperlegible",-apple-system,"Segoe UI",Arial,sans-serif;--head:"Figtree",-apple-system,"Segoe UI",Arial,sans-serif;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--brand:#6cc35a;--brand-h:#86d375;--brand-soft:rgba(108,195,90,.15);--ink:#f5f7fa;--text:#e6e9ee;--muted:#a3adba;--bg:#0f1318;--subtle:#171c23;--border:#2a313b;--border-s:#3a4350;--ok:#4ade80;--ok-bg:rgba(34,197,94,.15);--warn:#fbbf24;--warn-bg:rgba(245,158,11,.16);--bad:#f87171;--bad-bg:rgba(239,68,68,.16);--count:#3a3410;color-scheme:dark}}
:root[data-theme=dark]{--brand:#6cc35a;--brand-h:#86d375;--brand-soft:rgba(108,195,90,.15);--ink:#f5f7fa;--text:#e6e9ee;--muted:#a3adba;--bg:#0f1318;--subtle:#171c23;--border:#2a313b;--border-s:#3a4350;--ok:#4ade80;--ok-bg:rgba(34,197,94,.15);--warn:#fbbf24;--warn-bg:rgba(245,158,11,.16);--bad:#f87171;--bad-bg:rgba(239,68,68,.16);--count:#3a3410;color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px}
body{margin:0;background:var(--bg);color:var(--text);font:1rem/1.55 var(--font)}
a{color:var(--brand)}
h1,h2,h3{font-family:var(--head);color:var(--ink);line-height:1.15;margin:.2rem 0 .8rem}
h1{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800}h2{font-size:1.25rem;margin-top:2rem}h3{font-size:1rem;margin-top:1.4rem}
.wrap{max-width:1180px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left,0px))}
.nav{border-bottom:1px solid var(--border);position:relative}
.nav .wrap{display:flex;align-items:center;gap:1rem;min-height:64px;flex-wrap:wrap}
.brand{display:flex;gap:.6rem;align-items:center;text-decoration:none;color:var(--ink)}
.brand small{display:block;color:var(--muted);font-size:.75rem}
.logo{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--brand-soft);color:var(--brand);font:800 .8rem var(--head)}
.links{display:flex;gap:.2rem;margin-left:auto;flex-wrap:wrap}
.links a{font:600 .88rem var(--font);color:var(--text);text-decoration:none;padding:.5rem .7rem;border-bottom:2px solid transparent}
.links a[aria-current]{border-color:var(--brand);color:var(--brand)}
.links a.out{color:var(--muted)}
main{padding-block:1.8rem 3rem}
.eyebrow{font:600 .78rem var(--head);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:.4rem;font:700 .9rem/1 var(--head);padding:.75rem 1.1rem;border-radius:10px;border:1.5px solid transparent;cursor:pointer;text-decoration:none}
.btn.brand{background:var(--brand);color:#fff}.btn.brand:hover{background:var(--brand-h)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn.brand{color:#0f1318}}
:root[data-theme=dark] .btn.brand{color:#0f1318}
.btn.ghost{background:transparent;border-color:var(--border-s);color:var(--text)}
.btn.small{padding:.45rem .7rem;font-size:.8rem}
label{display:block;font:700 .85rem var(--head);color:var(--ink);margin:.9rem 0 .3rem}
label.inline{display:inline-flex;gap:.35rem;align-items:center;margin:0;font-weight:600}
input,select{font:inherit;color:var(--text);background:var(--bg);border:1.5px solid var(--border-s);border-radius:10px;padding:.55rem .7rem;max-width:100%}
input[type=file]{padding:.45rem;width:100%}
input:focus,select:focus{outline:3px solid color-mix(in srgb,var(--brand) 35%,transparent);border-color:var(--brand)}
.card{background:var(--subtle);border:1px solid var(--border);border-radius:18px;padding:1.3rem}
.card .btn{margin-top:1rem}
.narrow{max-width:420px;margin:2rem auto}
.narrow input{width:100%}
.grid2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1.2rem}
@media (max-width:820px){.grid2{grid-template-columns:minmax(0,1fr)}}
.grid2 select,.grid2 input{width:100%}
.hint{font-size:.85rem;color:var(--muted)}
.note{border-radius:12px;padding:.7rem .9rem;margin:.8rem 0}
.note.ok{background:var(--ok-bg);color:var(--ok)}.note.bad{background:var(--bad-bg);color:var(--bad)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.7rem;margin:1rem 0 1.4rem}
.tile{background:var(--subtle);border:1px solid var(--border);border-radius:14px;padding:.9rem 1rem}
.tile b{display:block;font:800 1.6rem var(--head);color:var(--ink);font-variant-numeric:tabular-nums}
.tile span{font-size:.82rem;color:var(--muted)}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.88rem}
th,td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--border);white-space:nowrap}
th{font:700 .75rem var(--head);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.num{text-align:right;font-variant-numeric:tabular-nums}
.empty{color:var(--muted);text-align:center}
.pill{display:inline-block;border-radius:999px;padding:.1rem .55rem;font:700 .72rem var(--head);background:var(--subtle);border:1px solid var(--border)}
.pill.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}.pill.warn{background:var(--count);color:var(--warn);border-color:transparent}
.sum{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}
.chip{border-radius:999px;padding:.35rem .8rem;font:700 .85rem var(--head);background:var(--subtle);border:1px solid var(--border)}
.chip.add{background:var(--ok-bg);color:var(--ok);border-color:transparent}.chip.mod{background:var(--count);color:var(--warn);border-color:transparent}.chip.ret{background:var(--bad-bg);color:var(--bad);border-color:transparent}
.checks{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.3rem 1rem;max-width:640px;margin:0}
.checks dt{color:var(--muted)}.checks dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.warns{padding-left:1.1rem}.warns li{background:var(--warn-bg);color:var(--warn);border-radius:10px;padding:.5rem .7rem;margin:.4rem 0;list-style-position:inside;overflow-wrap:anywhere}
details{border:1px solid var(--border);border-radius:12px;margin:.6rem 0;padding:.5rem .8rem}
summary{cursor:pointer;font:700 .9rem var(--head)}
.list{columns:2 22rem;font-size:.85rem;padding-left:1.1rem}
.list .more{color:var(--muted);list-style:none}
.actions{margin:1.4rem 0}
.help li{margin:.35rem 0}
.branch{border:1px solid var(--border);border-radius:14px;padding:.8rem 1rem;margin:.7rem 0}
.bhead{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.bname{font:700 1rem var(--head);min-width:14rem}
.muted{color:var(--muted);font-size:.82rem}
.aliases{display:grid;gap:.35rem;margin-top:.6rem}
.alias{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;font-size:.85rem}
.alias code{background:var(--subtle);border-radius:6px;padding:.15rem .4rem;min-width:16rem}
.alias select{max-width:16rem}.alias input{max-width:12rem}
.foot{color:var(--muted);font-size:.75rem;padding-block:1rem 2rem}
/* ---------- Réunions et assistant ---------- */
.lead{font-size:1.05rem;max-width:62ch}
.back{font-size:.88rem;text-decoration:none}
.reus{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:1rem}
.reu-h{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;flex-wrap:wrap}
.reu h2{margin:.1rem 0 .2rem}
.pill.info{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.pill.muted{color:var(--muted)}
.pill.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}
.stepper{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem;list-style:none;padding:0;margin:1rem 0 1.6rem;counter-reset:s}
.stepper a{display:flex;gap:.5rem;align-items:center;text-decoration:none;color:var(--muted);padding:.55rem .6rem;border-radius:12px;border:1px solid var(--border);background:var(--bg);height:100%}
.stepper .n{flex:none;display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--subtle);border:1px solid var(--border-s);font:800 .8rem var(--head)}
.stepper .l{font:700 .82rem/1.2 var(--head)}
.stepper .done a{color:var(--text)}.stepper .done .n{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.stepper .cur a{border-color:var(--brand);color:var(--ink);box-shadow:inset 0 -3px 0 var(--brand)}.stepper .cur .n{background:var(--brand);color:#fff;border-color:var(--brand)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .stepper .cur .n{color:#0f1318}}
:root[data-theme=dark] .stepper .cur .n{color:#0f1318}
@media (max-width:700px){.stepper{grid-template-columns:repeat(5,auto);justify-content:space-between}.stepper .l{display:none}.stepper .cur .l{display:inline}.stepper a{padding:.45rem}}
.form h2:first-of-type{margin-top:0}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:0 1rem}
.fields input{width:100%}.fields .span2{grid-column:span 2}
@media (max-width:560px){.fields .span2{grid-column:auto}}
fieldset{border:0;padding:0;margin:.9rem 0 0;min-width:0}
legend{font:700 .85rem var(--head);color:var(--ink);padding:0;margin-bottom:.4rem}
.opts{display:flex;flex-wrap:wrap;gap:.5rem}
.opt{display:inline-flex;align-items:center;gap:.4rem;margin:0;font:600 .9rem var(--font);border:1.5px solid var(--border-s);border-radius:10px;padding:.5rem .75rem;background:var(--bg);cursor:pointer}
.opt:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.opt input{accent-color:var(--brand);margin:0}
.opt-l{font-weight:400;color:var(--muted)}
.check{display:flex;gap:.6rem;align-items:flex-start;font:600 .92rem var(--font);margin:1rem 0 0}
.check input{margin-top:.25rem;accent-color:var(--brand);flex:none}
.cal-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.3rem 1rem;align-items:center;padding:.4rem 0;border-bottom:1px solid var(--border)}
.cal-row label{margin:0}.cal-row .hint{margin:.1rem 0 0}
@media (max-width:560px){.cal-row{grid-template-columns:minmax(0,1fr)}.cal-row input{width:100%}}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:.8rem;padding:.6rem 0 .6rem .9rem;border-left:3px solid var(--border-s);position:relative}
.timeline li::before{content:"";position:absolute;left:-7px;top:.9rem;width:11px;height:11px;border-radius:50%;background:var(--bg);border:2px solid var(--border-s)}
.timeline li.past{border-color:var(--brand)}.timeline li.past::before{background:var(--brand);border-color:var(--brand)}
.timeline li.now::before{background:var(--brand);border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.timeline .when{font:700 .8rem/1.35 var(--head);color:var(--muted)}
.timeline .hint{margin:.15rem 0 0}
aside .timeline li{grid-template-columns:minmax(0,1fr)}
@media (max-width:560px){.timeline li{grid-template-columns:minmax(0,1fr);gap:.1rem}}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:0 1.5rem}
.todos{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.7rem}
.todo{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.9rem;align-items:start;border:1px solid var(--border);border-radius:16px;padding:1rem;background:var(--bg)}
.todo.done{background:var(--subtle)}
.todo .n{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--subtle);border:1px solid var(--border-s);font:800 .9rem var(--head)}
.todo.done .n{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.todo-h{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.todo p{margin:.3rem 0 0}.todo-a .btn{margin:0;white-space:nowrap}
@media (max-width:640px){.todo{grid-template-columns:auto minmax(0,1fr)}.todo-a{grid-column:2}}
.blockers{padding-left:1.1rem}.blockers li{color:var(--bad);margin:.3rem 0}
.danger-zone{margin-top:1rem}
.note.ctx{background:var(--brand-soft);color:var(--ink)}
aside .card + .card, aside > .card + form, aside form + form{margin-top:1rem}
.grid2 input[type=checkbox],.grid2 input[type=radio],.check input{width:auto}
.card h2:first-child,.card > div > h2:first-child,.card > form > h2:first-child{margin-top:0}
.grid2 > .card .timeline li{grid-template-columns:12rem minmax(0,1fr)}
@media (max-width:560px){.grid2 > .card .timeline li{grid-template-columns:minmax(0,1fr)}}
.manual{margin-top:1.4rem}
.manual table td{vertical-align:middle}.manual form{margin:0}.manual .btn{margin:0}
.fields.add{align-items:end;margin-top:.6rem}.fields.add select{width:100%}
.add-btn .btn{margin-top:.9rem;width:100%;justify-content:center}
.keys{white-space:pre-wrap;overflow-wrap:anywhere;font:600 .85rem ui-monospace,monospace}
/* ---------- Personnel ---------- */
.tabs{display:flex;flex-wrap:wrap;gap:.3rem;border-bottom:1px solid var(--border);margin:1rem 0}
.tabs a{text-decoration:none;color:var(--muted);font:700 .88rem var(--head);padding:.55rem .75rem;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a[aria-current]{color:var(--brand);border-color:var(--brand)}
.count{display:inline-block;min-width:1.5rem;text-align:center;border-radius:99px;background:var(--subtle);border:1px solid var(--border);font-size:.75rem;padding:0 .35rem;margin-left:.2rem}
.search{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1rem}.search input{flex:1 1 14rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0}
.staff td{vertical-align:top}.staff .wrap-cell{white-space:normal;min-width:18rem;line-height:1.5}
.man{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}.inline{display:inline;margin:0}.inline .btn{margin:0}
/* ---------- Familles ---------- */
.fams{display:grid;gap:.7rem}
.fam{border:1px solid var(--border);border-radius:14px;padding:.8rem 1rem;background:var(--bg)}
.fam-h{margin-bottom:.4rem}.fam-c{list-style:none;padding:0;margin:.2rem 0 .5rem;display:grid;gap:.35rem;font-size:.9rem}
.fam-c code{background:var(--subtle);border-radius:6px;padding:.1rem .4rem}
.fam-add{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.fam-add input[type=email]{flex:1 1 15rem}.fam-add input{flex:0 1 11rem}.fam-add .btn{margin:0}
a.tile.link{text-decoration:none;color:inherit;border-color:var(--brand)}a.tile.link:hover{background:var(--brand-soft)}
/* ---------- Locaux ---------- */
.locs{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.loc{border:1px solid var(--border);border-radius:14px;padding:.7rem .9rem;background:var(--bg);display:grid;gap:.45rem}
.loc.is-sans{border-color:color-mix(in srgb,var(--warn) 45%,var(--border))}.loc.is-abs{background:var(--subtle)}
.loc-f{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:0}
.loc-f select{flex:0 1 13rem}.loc-f input[name=local]{flex:0 1 10rem}.loc-f input[name=info]{flex:1 1 12rem}.loc-f .btn{margin:0}
.check-i{display:inline-flex;gap:.35rem;align-items:center;margin:0;font:600 .88rem var(--font)}.check-i input{accent-color:var(--brand)}
.alt{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;font-size:.88rem}
.loc-f input.short{flex:0 1 9rem}
#a-traiter{margin:1rem 0 1.4rem}#a-traiter .locs{margin-top:.6rem}
/* ---------- Classes, réglages ---------- */
h2.grp{margin:1.6rem 0 .6rem;font-size:1.05rem}
.cls{display:grid;grid-template-columns:minmax(7rem,auto) minmax(0,1fr) auto;gap:.5rem 1rem;align-items:center;border-bottom:1px solid var(--border);padding:.55rem 0}
.cls-t{display:flex;flex-wrap:wrap;gap:.35rem}
.chip-t{display:inline-flex;align-items:center;gap:.3rem;border:1px solid var(--border-s);border-radius:99px;padding:.15rem .3rem .15rem .65rem;font-size:.85rem;background:var(--bg)}
.chip-t small{color:var(--muted)}
.x{border:0;background:transparent;color:var(--muted);font-size:1.1rem;line-height:1;cursor:pointer;padding:.1rem .35rem;border-radius:99px}.x:hover{background:var(--bad-bg);color:var(--bad)}
.cls-add{display:flex;gap:.3rem;margin:0}.cls-add input{width:7rem}.cls-add .btn{margin:0}
@media (max-width:640px){.cls{grid-template-columns:minmax(0,1fr)}}
.row-f{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border);margin:0}
.row-f .grow{flex:1 1 16rem}.row-f .mid{flex:0 1 12rem}.row-f .tiny{width:5rem}.row-f .btn{margin:0}
.num-b{display:inline-grid;place-items:center;min-width:2.6rem;height:2.2rem;padding:0 .4rem;border-radius:10px;background:var(--brand-soft);color:var(--brand);font:800 .85rem var(--head)}
.sets{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:1rem}
a.card.set{text-decoration:none;color:inherit}a.card.set:hover{border-color:var(--brand)}a.card.set h2{margin:0 0 .3rem;font-size:1.05rem}
/* ---------- Barre fixe, logo, recherche instantanée ---------- */
[hidden]{display:none !important}
.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:saturate(1.4) blur(8px);-webkit-backdrop-filter:saturate(1.4) blur(8px)}
.brand-logo{height:40px;width:auto;display:block}
.brand-t{border-left:1px solid var(--border);padding-left:.7rem}
@media (max-width:820px){
  .nav .wrap{flex-wrap:nowrap;gap:.6rem;min-height:56px}
  .brand-t{display:none}.brand-logo{height:32px}
  .links{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,#000 85%,transparent)}
  .links::-webkit-scrollbar{display:none}
  .links a{white-space:nowrap}
}
:target{scroll-margin-top:80px}
.search{position:relative;align-items:center}
.filtre-n{font:700 .8rem var(--head);color:var(--muted);min-width:4rem}
/* ---------- Logos ---------- */
.logo-sets{display:grid;gap:1rem}
.logo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1rem}
.logo-slot{display:grid;gap:.5rem;align-content:start}
.logo-slot form{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:0}.logo-slot .btn{margin:0}
.logo-prev{display:grid;place-items:center;height:120px;border-radius:12px;border:1px solid var(--border);padding:.8rem}
.logo-prev img{max-height:96px;max-width:100%}
.logo-slot.couleur .logo-prev{background:#fff}
.logo-slot.blanc .logo-prev{background:#1f2937}
.logo-slot.blanc .logo-prev .muted{color:#cbd5e1}
.mt{margin-top:1rem}h2.tight{margin:.1rem 0}
/* barre sur une seule ligne */
.nav{background:var(--bg)}
.nav .wrap{flex-wrap:nowrap;min-height:60px}
.links{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.links::-webkit-scrollbar{display:none}
.links a{white-space:nowrap;padding:.5rem .55rem}
@media (max-width:1320px){.brand-t{display:none}}
.brand picture{display:block;flex:none}.brand-logo{max-width:180px;object-fit:contain}
/* ---------- Implantations : couleur ---------- */
.site{display:inline-block;border-radius:6px;padding:.05rem .4rem;font:800 .72rem var(--head);letter-spacing:.03em;color:#fff;background:var(--site,#6b7280);vertical-align:middle}
tr.site-row{box-shadow:inset 4px 0 0 var(--site,transparent)}
.site.big{font-size:.85rem;padding:.35rem .55rem;border-radius:8px}input.color{width:3rem;height:2.3rem;padding:.15rem;cursor:pointer}
/* ---------- Tableau des locaux ---------- */
.loc-table{font-size:.88rem}
.loc-table td{padding:.3rem .4rem;vertical-align:middle}
.loc-table td.nm{white-space:normal;min-width:10rem}
.loc-table select{padding:.35rem .4rem;font-weight:700}
.loc-table input{padding:.35rem .5rem}
.loc-table .c-local{width:9rem}.loc-table .c-info{width:14rem}
.loc-table .c{text-align:center}.loc-table input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--brand)}
.loc-table tr.is-abs td{color:var(--muted)}.loc-table tr.is-abs .c-local{opacity:.5}
.loc-table tr.is-sans{background:color-mix(in srgb,var(--warn-bg) 55%,transparent)}
.loc-table tr.modifie{background:var(--brand-soft)}
.loc-table td.etat{white-space:normal;min-width:9rem}.loc-table td.etat .btn{margin:.1rem .1rem 0 0}
.lnk{border:0;background:none;color:var(--brand);font:600 .8rem var(--font);text-decoration:underline;cursor:pointer;padding:0}
.savebar{position:sticky;bottom:0;z-index:20;display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--bg);border-top:1px solid var(--border);padding:.7rem 0;margin-top:.5rem}
.savebar .btn{margin:0}.js-modifs{color:var(--muted);font-size:.85rem}
form.a-enregistrer .js-modifs{color:var(--warn);font-weight:700}
.verifs{margin:1rem 0}.verif-l{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.verif-l li{border-radius:10px;padding:.55rem .75rem;border:1px solid var(--border)}
.verif-l li > div{font-size:.88rem;margin-top:.2rem;overflow-wrap:anywhere}
.verif-l .v-warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}
.verif-l .v-warn a{color:inherit}
.verif-l .v-ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.partages{list-style:none;padding:0;margin:.3rem 0 0;display:grid;gap:.3rem}
.partages li{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.partages li.ok{opacity:.65}.partages .btn{margin:0}
.note.ctx a{color:inherit;font-weight:700}
/* ---------- Impression des locaux ---------- */
.print-tools{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:center;margin-bottom:1rem}.print-tools .tabs{margin:0}.print-tools .btn{margin:0}
.print-doc{background:#fff;color:#111827;border:1px solid var(--border);border-radius:16px;padding:1.5rem}
.print-h{display:flex;gap:1.2rem;align-items:center;border-bottom:2px solid #111827;padding-bottom:.8rem;margin-bottom:1rem}
.print-h h1{color:#111827;margin:0;font-size:1.5rem}.print-h p{margin:.2rem 0 0}
.print-logo{height:56px;width:auto}

.print-site{break-inside:avoid-page;margin-bottom:1.2rem}
.print-site h2{color:#111827;font-size:1.15rem;margin:0 0 .4rem;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.print-site h2 small{font:400 .8rem var(--font);color:#4b5563}
.print-t{font-size:.95rem;width:100%}.print-t th,.print-t td{color:#111827;border-bottom:1px solid #d1d5db;padding:.3rem .5rem}
.print-t td.lc{font-weight:800;font-size:1.05rem}
.print-site{box-shadow:inset 4px 0 0 var(--site,transparent);padding-left:.8rem}
.abs-l{margin:0;color:#374151}
.print-f{margin-top:1rem;font-size:.75rem;color:#6b7280}
@media print{
  .nav,.foot,.no-print{display:none !important}
  body{background:#fff}main{padding:0}.wrap{max-width:none;padding:0}
  .print-doc{border:0;padding:0;border-radius:0}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-t{columns:1}
  @page{margin:12mm}
}
.print-site{break-inside:auto}
.print-site h2{break-after:avoid}
.print-l{list-style:none;padding:0;margin:0;columns:2 18rem;column-gap:2.5rem}
.print-l li{display:flex;justify-content:space-between;gap:1rem;break-inside:avoid;border-bottom:1px dotted #9ca3af;padding:.22rem 0;color:#111827;font-size:.95rem}
.print-l .lc{font-weight:800;white-space:nowrap}.print-l small{color:#6b7280}
@media print{.print-l{columns:2;font-size:10.5pt}.print-l li{padding:.12rem 0}}
/* puces de filtre « données manquantes » */
.chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:-.3rem 0 1rem}
.fchip{display:inline-flex;align-items:center;gap:.3rem;text-decoration:none;color:var(--text);border:1px solid var(--border-s);border-radius:99px;padding:.25rem .7rem;font:600 .82rem var(--font);background:var(--bg)}
.fchip:hover{border-color:var(--brand)}
.fchip.on{background:var(--brand);border-color:var(--brand);color:#fff}.fchip.on .count{background:rgba(255,255,255,.25);border-color:transparent;color:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .fchip.on{color:#0f1318}}
:root[data-theme=dark] .fchip.on{color:#0f1318}
/* ===================== Page Locaux (v2) ===================== */
.loc-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.6rem 1rem;margin-bottom:.6rem}
.loc-head h1{margin:0}
.loc-head-r{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.loc-head-r .btn{margin:0}.loc-head-r select{padding:.35rem .5rem}
.vis{display:inline-flex;align-items:center;gap:.35rem;border-radius:99px;padding:.3rem .7rem;font:700 .8rem var(--head)}
.vis::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:currentColor}
.vis.off{background:var(--warn-bg);color:var(--warn)}.vis.on{background:var(--ok-bg);color:var(--ok)}
a.mini{font-size:.8rem}
.loc-bar{position:sticky;top:var(--bandeau-h,60px);z-index:30;background:var(--bg);padding:.6rem 0 .5rem;border-bottom:1px solid var(--border);display:grid;gap:.45rem}
.loc-bar-1{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.loc-bar-1 input[type=search]{flex:1 1 18rem;font-size:1rem;padding:.6rem .8rem}
.sites-f{display:flex;flex-wrap:wrap;gap:.3rem}
.loc-bar .chips{margin:0}
.fchip{cursor:pointer;font-family:var(--font)}
button.fchip{line-height:1.2}
.fchip.alerte:not(.on){border-color:color-mix(in srgb,var(--warn) 55%,var(--border));color:var(--warn)}
.fchip.sitechip.on{background:var(--site);border-color:var(--site)}
.loc-table thead th{position:sticky;top:0}
.loc-table td.ab{white-space:nowrap}
.loc-table td.etat{min-width:12rem;white-space:normal;line-height:1.9}
.loc-table td.st{width:1.6rem;text-align:center;padding:0}
.js-st{font:800 1rem var(--head)}.js-st.s-dirty{color:var(--warn)}.js-st.s-saving{color:var(--muted)}.js-st.s-ok{color:var(--ok)}.js-st.s-err{color:var(--bad)}
.tag{display:inline-block;border-radius:6px;padding:.05rem .45rem;font:700 .74rem var(--head);border:1px solid var(--border-s);background:var(--bg);color:var(--text);white-space:nowrap;line-height:1.5}
button.tag{cursor:pointer}button.tag:hover{border-color:var(--brand)}
.tag.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}
.tag.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.tag.info{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.tag.muted{color:var(--muted)}
.loc-table tr.modifie{background:var(--brand-soft)}
.loc-table tr.is-sans,.loc-table tr.is-abs{background:none}
.loc-table input:focus,.loc-table select:focus{outline:2px solid var(--brand);outline-offset:0}
.toast{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);z-index:80;background:var(--ink);color:var(--bg);padding:.65rem 1rem;border-radius:12px;font:600 .9rem var(--font);box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:min(92vw,40rem)}
.toast.bad{background:var(--bad);color:#fff}
.panel-traiter{margin:.5rem 0 1rem}.panel-h{display:flex;justify-content:space-between;align-items:center;gap:1rem}.panel-h h2{margin:0}.panel-h .btn{margin:0}
.aide-clavier{margin-top:.8rem}kbd{font:600 .78rem ui-monospace,monospace;border:1px solid var(--border-s);border-bottom-width:2px;border-radius:5px;padding:0 .3rem;background:var(--subtle)}
@media (max-width:820px){.loc-bar{top:56px}.loc-table td.etat{min-width:9rem}}
/* menu d'actions de ligne, boutons de retrait */
td.act{width:2.2rem;padding:0 .2rem;text-align:right}
details.menu{position:relative;border:0;margin:0;padding:0}
details.menu summary{list-style:none;cursor:pointer;border-radius:8px;padding:.2rem .5rem;font:800 1rem var(--head);color:var(--muted)}
details.menu summary::-webkit-details-marker{display:none}
details.menu[open] summary,details.menu summary:hover{background:var(--subtle);color:var(--ink)}
details.menu > div{position:absolute;right:0;top:100%;z-index:40;display:grid;min-width:13rem;background:var(--bg);border:1px solid var(--border-s);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.15);padding:.3rem}
details.menu > div button{all:unset;cursor:pointer;padding:.5rem .7rem;border-radius:8px;font:600 .88rem var(--font);color:var(--text)}
details.menu > div button:hover,details.menu > div button:focus-visible{background:var(--subtle)}
.danger{color:var(--bad) !important}
.btn.danger{border-color:color-mix(in srgb,var(--bad) 40%,var(--border-s))}
.arme{background:var(--bad) !important;color:#fff !important;border-color:var(--bad) !important}
.loc-table td.etat .tag{white-space:normal}
/* ===================== Barre d'outils collante (toutes les pages) ===================== */
.toolbar{position:sticky;top:var(--bandeau-h,60px);z-index:30;background:var(--bg);padding:.55rem 0 .5rem;margin-bottom:.8rem;border-bottom:1px solid var(--border);display:grid;gap:.45rem}
.toolbar .tabs,.toolbar .chips,.toolbar .search,.toolbar p{margin:0}
.toolbar-1,.toolbar-2{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center}
.toolbar-1 .btn,.toolbar-2 .btn{margin:0}
.toolbar .search input{font-size:1rem;padding:.55rem .8rem}
.toolbar .hint{margin:0}
.tabs.small a{font-size:.82rem;padding:.25rem .6rem}
a.back{font-weight:700;text-decoration:none}
@media (max-width:820px){.toolbar{top:56px}}
@media print{.toolbar{display:none !important}}
/* ---------- tableau des locaux (comme le fichier A3) ---------- */
.print-grid{width:100%;border-collapse:collapse;font-size:.85rem;color:#111827}
.print-grid th,.print-grid td{border:1px solid #9ca3af;padding:.22rem .4rem;color:#111827;text-align:left;vertical-align:top}
.print-grid thead th{background:#f3f4f6;font:800 .78rem var(--head);position:static}
.print-grid th.th-site{background:color-mix(in srgb,var(--site,#e5e7eb) 22%,#fff);border-top:4px solid var(--site,#9ca3af)}
.print-grid td.lc{font-weight:800;text-align:center;white-space:nowrap}
.print-grid td.ab{white-space:nowrap;font-weight:700}
.print-grid tr:nth-child(even) td{background:#f9fafb}
.print-grid tr.abs td{color:#6b7280}
.print-grid thead{display:table-header-group}
.print-grid tr{break-inside:avoid}
@page paysage{size:A4 landscape;margin:10mm}
@media print{.print-doc.paysage{page:paysage}.print-grid{font-size:8.5pt}}
td.civ{width:4.2rem;padding:.15rem .3rem}td.civ select{padding:.2rem .3rem;font-size:.85rem}
select.js-civ.ok{outline:2px solid var(--ok)}select.js-civ.err{outline:2px solid var(--bad)}
.radios{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;align-items:center}.radios label{display:flex;gap:.4rem;align-items:center;font-weight:500}.radios .btn{margin:0}
.toolbar .stepper{margin:0}
.scroll{position:relative}@media print{.scroll{overflow:visible}}
@page{size:A4}@media print{.print-grid th,.print-grid td{padding:.08rem .3rem;line-height:1.25}}
table.staff td.act{width:auto;white-space:nowrap;padding-right:.4rem}
button.linkbtn{all:unset;cursor:pointer;color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:2px}
button.linkbtn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
tr.contacts-row td{background:var(--subtle);padding:.5rem .8rem}
ul.contacts{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
ul.contacts li{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:center}ul.contacts li.inactif{opacity:.6}
td small.muted{font-size:.75rem}
.site-local{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.local-box{display:inline-block;border:1.5px solid var(--site,var(--border-s));border-radius:6px;padding:0 .45rem;font:700 .88rem var(--head);line-height:1.6;color:var(--ink);background:var(--bg);white-space:nowrap}

/* =====================================================================
   Thème épuré « Flat UI » (esprit de l'ancienne interface), lignes Bootstrap 5
   Lato, bandeau bleu ardoise, onglets classiques, boutons plats, étiquettes carrées.
   ===================================================================== */
:root{--font:"Lato",-apple-system,"Segoe UI",Arial,sans-serif;--head:"Lato",-apple-system,"Segoe UI",Arial,sans-serif;
  --ink:#2c3e50;--text:#34495e;--muted:#6d7879;--subtle:#f4f6f7;--border:#e3e8ea;--border-s:#cfd6d9;--clouds:#ecf0f1;--slate:#34495e;--slate-d:#2c3e50;--r:6px}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#f2f5f6;--text:#dfe5e8;--muted:#9aa7ad;--subtle:#1a2128;--border:#2b343d;--border-s:#3b4651;--clouds:#222b33;--slate:#1b242d;--slate-d:#141b22}}
:root[data-theme=dark]{--ink:#f2f5f6;--text:#dfe5e8;--muted:#9aa7ad;--subtle:#1a2128;--border:#2b343d;--border-s:#3b4651;--clouds:#222b33;--slate:#1b242d;--slate-d:#141b22}
body{font-size:1rem;line-height:1.6;letter-spacing:.005em}
h1{font-weight:900;letter-spacing:-.01em}h2,h3{font-weight:700}
.eyebrow{font:700 .74rem var(--font);letter-spacing:.08em}
/* bandeau */
.nav{background:var(--slate);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:0;color:#fff}
.nav .wrap{min-height:60px}
.nav .brand,.nav .brand small{color:#fff}.nav .brand small{opacity:.75}
.nav .brand-t{border-left-color:rgba(255,255,255,.25)}
.nav .logo{background:rgba(255,255,255,.12);color:#fff;border-radius:var(--r)}
.links a{color:rgba(255,255,255,.82);font:700 .9rem var(--font);border-bottom:3px solid transparent;padding:1.05rem .65rem .9rem}
.links a:hover{color:#fff}
.links a[aria-current]{color:#fff;border-color:#7fd06b}
.links a.out{color:rgba(255,255,255,.6)}
@media (max-width:820px){.links a{padding:.6rem .55rem}}
/* boutons plats */
.btn{border-radius:var(--r);border:0;font:700 .92rem/1 var(--font);padding:.7rem 1.05rem;box-shadow:none}
.btn.small{padding:.45rem .7rem;font-size:.82rem}
.btn.ghost{background:var(--clouds);color:var(--text);border:0}
.btn.ghost:hover{background:color-mix(in srgb,var(--clouds) 80%,var(--text) 12%)}
.btn.ghost.danger{color:#c0392b}.btn.ghost.danger:hover{background:#c0392b;color:#fff}
/* champs façon Flat UI */
input,select,textarea{border:2px solid var(--border-s);border-radius:var(--r);box-shadow:none}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--brand)}
input:focus-visible,select:focus-visible{outline:0;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent)}
label{font:700 .85rem var(--font)}
/* cartes et tuiles : à plat */
.card,.tile{border-radius:var(--r);border:0;background:var(--subtle)}
a.card.set{border:2px solid transparent}a.card.set:hover{border-color:var(--brand)}
.note{border-radius:var(--r)}
/* onglets classiques (Bootstrap nav-tabs), sans pastilles-boutons */
.tabs{gap:0;border-bottom:1px solid var(--border-s);margin:1rem 0 .2rem}
.tabs a{font:700 .92rem var(--font);color:var(--muted);padding:.6rem 1rem;border:1px solid transparent;border-bottom:0;border-radius:var(--r) var(--r) 0 0;margin-bottom:-1px}
.tabs a:hover{color:var(--ink)}
.tabs a[aria-current]{color:var(--ink);background:var(--bg);border-color:var(--border-s);border-bottom:1px solid var(--bg)}
.tabs .count,.count{background:none;border:0;padding:0;min-width:0;margin-left:.3rem;font:400 .85rem var(--font);color:var(--muted)}
.tabs .count::before{content:"("}.tabs .count::after{content:")"}
.tabs.small{border-bottom:0;margin:0;gap:.2rem}
.tabs.small a{border:0;border-radius:var(--r);padding:.3rem .6rem;font-size:.84rem;margin:0}
.tabs.small a[aria-current]{background:var(--clouds);color:var(--ink)}
/* filtres « données manquantes » : liens discrets, étiquette pleine quand actif */
.chips{gap:.15rem .3rem}
.fchip{border:0;background:none;border-radius:4px;padding:.2rem .45rem;font:700 .84rem var(--font);color:var(--text);text-decoration:none}
.fchip:hover{background:var(--clouds);color:var(--ink)}
.fchip .count{font-size:.8rem;margin-left:.15rem}
.fchip.on{background:var(--brand);color:#fff}.fchip.on .count{color:rgba(255,255,255,.85)}
.fchip.alerte:not(.on){color:var(--warn)}
.fchip.sitechip.on{background:var(--site)}
/* étiquettes façon Flat UI (coins carrés) */
.pill,.tag{border-radius:4px;border:0;font:700 .74rem var(--font);padding:.12rem .5rem}
.pill{background:var(--clouds)}
.chip-t{border-radius:4px;border:0;background:var(--clouds)}
.site{border-radius:4px}
/* tableaux : en-têtes sobres */
th{font:700 .74rem var(--font);color:var(--muted);letter-spacing:.06em}
thead th{background:var(--bg);border-bottom:2px solid var(--border-s)}
tbody tr:hover td{background:color-mix(in srgb,var(--clouds) 55%,transparent)}
/* barre collante */
.toolbar,.loc-bar{border-bottom:1px solid var(--border)}
.stepper a{border-radius:var(--r)}
.stepper .cur a{box-shadow:inset 0 -3px 0 var(--brand)}
/* fiche personnel */
.fiche-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:0 1.2rem}
.fiche-g input,.fiche-g select{width:100%}.fiche-g .wide{grid-column:1/-1}
.fiche .actions{margin-top:1rem;display:flex;gap:.5rem;flex-wrap:wrap}.fiche .actions .btn{margin:0}
a.nm-edit{color:inherit;text-decoration:none;border-bottom:1px dashed var(--border-s)}a.nm-edit:hover{color:var(--brand);border-color:var(--brand)}
.cls-del{margin-left:.5rem}.cls-del .btn{margin:0}
.toolbar-1 .tb-r,.toolbar .tb-r{justify-self:start}
/* en-têtes de colonnes figés sous la barre d'outils (grand écran) */
@media (min-width:821px){
  .scroll.fige{overflow:visible}
  .scroll.fige > table > thead th{position:sticky;top:var(--thead-top,60px);z-index:20;background:var(--bg)}
}
@media print{.scroll.fige > table > thead th{position:static}}

@media (min-width:821px){
  .scroll.fige-int{overflow:auto;max-height:calc(100vh - var(--thead-top,120px) - 1rem)}
  .scroll.fige-int > table > thead th{position:sticky;top:0;z-index:20;background:var(--bg)}
}
@media print{.scroll.fige-int{max-height:none;overflow:visible}}
.staff td.civ+td{white-space:normal;min-width:11rem}
@media (max-width:1400px){.nav .brand-t{display:none}}.links{flex-wrap:nowrap}.links a{white-space:nowrap}@media (max-width:1100px){.links a{padding-inline:.45rem;font-size:.85rem}}
/* ---------- Messages ---------- */
.msg-form .card{margin-bottom:1rem}.msg-form h2{margin-top:0}
.msg-form .row-f{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;align-items:center;margin:.4rem 0}
.msg-form .row-f .grow{flex:1 1 14rem}
.full{width:100%}textarea{font:inherit;color:var(--text);background:var(--bg);border:2px solid var(--border-s);border-radius:var(--r);padding:.55rem .7rem;max-width:100%;resize:vertical}
.cl-box{max-height:16rem;overflow:auto;border:1px solid var(--border);border-radius:var(--r);background:var(--bg);padding:.4rem .7rem;margin-top:.4rem}
.cl-grp{display:flex;flex-wrap:wrap;gap:.15rem .9rem;padding:.35rem 0;border-bottom:1px solid var(--border)}.cl-grp:last-child{border-bottom:0}
.cl-grp > b{flex:1 0 100%;font-size:.82rem;color:var(--muted)}
label.cl{font-weight:600;font-size:.88rem}
.lbl{font:700 .85rem var(--font);color:var(--ink);margin:.9rem 0 .2rem}
.modeles{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;margin:.8rem 0 .2rem}
.warn-t{color:var(--warn);font-weight:700}
.actions{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;margin:.8rem 0}.actions .btn,.actions form{margin:0}
.meta{color:var(--muted);font-size:.9rem}
.apercus{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1rem;margin-top:1rem}
.apercus h2{margin-top:0}.apercus h2 small{font:400 .85rem var(--font);color:var(--muted)}
.mail{border:1px solid var(--border-s);border-radius:var(--r);background:var(--bg)}
.mail-h{padding:.6rem .9rem;border-bottom:1px solid var(--border);background:var(--subtle)}.mail-b{padding:.9rem;line-height:1.6}
.bulle{background:var(--clouds);border-radius:16px 16px 16px 4px;padding:.7rem .9rem;max-width:22rem;line-height:1.45}
progress.prog{width:100%;height:.8rem;accent-color:var(--brand)}
.essai{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.8rem 0}.essai .grow{flex:1 1 16rem}.essai .btn{margin:0}
details.errs{margin-top:.8rem}details.errs ul{margin:.4rem 0;padding-left:1.2rem;font-size:.9rem}
code{font:600 .85rem ui-monospace,monospace;background:var(--clouds);border-radius:4px;padding:0 .3rem}
ul.sugg{list-style:none;margin:.2rem 0 0;padding:.25rem;border:1px solid var(--border-s);border-radius:var(--r);background:var(--bg);max-height:15rem;overflow:auto;box-shadow:0 8px 20px rgba(0,0,0,.08)}
ul.sugg li{padding:.4rem .6rem;border-radius:4px;cursor:pointer}ul.sugg li:hover,ul.sugg li:focus{background:var(--clouds);outline:0}ul.sugg li.muted{cursor:default;color:var(--muted)}
.choisis{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0}
.chip-t .x{all:unset;cursor:pointer;padding:0 .35rem;font-weight:800;color:var(--muted)}.chip-t .x:hover{color:#c0392b}
fieldset.modele{margin:0 0 1rem;border:0}fieldset.modele legend{font:700 1.05rem var(--font);color:var(--ink);padding:0;float:left;width:100%;margin-bottom:.2rem}fieldset.modele legend+*{clear:both}label.del{margin-top:.6rem;color:#c0392b}
/* ---------- tableau compact pour les parents : 2 colonnes par page, en-têtes sur chaque page ---------- */
table.pt{width:100%;table-layout:fixed;border-collapse:collapse;color:#111827;font-size:.86rem;margin-bottom:1rem}
table.pt th,table.pt td{padding:0 .35rem;height:1.45rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid #d1d5db;color:#111827;vertical-align:middle}
table.pt thead th{position:static;background:#f3f4f6;font:800 .7rem var(--font);text-transform:uppercase;letter-spacing:.04em;border-bottom:1.5px solid #111827}
table.pt .nm{width:19%}table.pt .ti{width:6.5%;font-size:.74rem;color:#374151}table.pt .lo{width:22.5%}
table.pt .sep{width:4%;border:0 !important;background:#fff !important}
table.pt td.lo .site-local{gap:.25rem;flex-wrap:nowrap}table.pt .site{font-size:.62rem;padding:0 .3rem}
table.pt .local-box{font-size:.8rem;line-height:1.35;padding:0 .3rem;border-width:1px}
table.pt i{color:#6b7280}
table.pt tbody tr:nth-child(even) td:not(.sep){background:#f9fafb}
@media print{
  table.pt{font-size:8.6pt;margin:0;break-after:page}table.pt:last-of-type{break-after:auto}
  table.pt th,table.pt td{height:4.7mm;line-height:4.6mm}table.pt thead th{height:6mm}
  .print-doc:has(table.pt) .print-h{margin-bottom:3mm;padding-bottom:2mm}
  .print-doc:has(table.pt) .print-logo{height:40px}
  .print-doc:has(table.pt) .print-f{margin-top:2mm}
}
@media print{
  table.pt td .site-local,table.pt td .site,table.pt td .local-box{line-height:1.15 !important;vertical-align:middle}
  table.pt td .site-local{display:inline-flex;max-height:4.2mm;overflow:hidden}
  table.pt tbody tr{height:4.7mm;max-height:4.7mm}
}
/* ---------- Locaux : mode tableur ---------- */
.tb-h{font-size:1.25rem;margin:0}.tb-h small{font:400 .85rem var(--font);color:var(--muted);margin-left:.4rem}
.sync{margin-left:auto;font:700 .82rem var(--font);color:var(--ok)}.sync.busy{color:var(--warn)}
.toolbar-2 .grow{flex:1 1 16rem}
table.grille{border-collapse:collapse;font-size:.86rem;width:100%}
table.grille th,table.grille td{border:1px solid var(--border-s);padding:0;white-space:nowrap}
table.grille th{padding:.35rem .45rem;background:var(--subtle)}
table.grille th.st{border-top:3px solid var(--site);background:color-mix(in srgb,var(--site) 12%,var(--bg))}
table.grille td.ab,table.grille td.nm{padding:.2rem .45rem}table.grille td.ab{font-weight:800}
table.grille td.nm{max-width:14rem;overflow:hidden;text-overflow:ellipsis}
table.grille input:not([type=checkbox]){border:0;border-radius:0;width:100%;min-width:5rem;padding:.3rem .45rem;background:transparent;font:inherit}
table.grille td.st input{text-align:center;font-weight:700;min-width:7rem}
table.grille input:focus{outline:2px solid var(--brand);outline-offset:-2px;box-shadow:none;background:var(--bg)}
table.grille td.abs{text-align:center;width:4.5rem}table.grille .c-abs{width:1.1rem;height:1.1rem;accent-color:var(--brand)}
table.grille input:disabled{background:repeating-linear-gradient(45deg,transparent 0 6px,var(--subtle) 6px 12px)}
table.grille tr.is-abs td.nm,table.grille tr.is-abs td.ab{color:var(--muted)}
table.grille tr.sauve td{background:color-mix(in srgb,var(--warn-bg) 60%,transparent)}
table.grille tr.ok td{background:color-mix(in srgb,var(--ok-bg) 70%,transparent);transition:background .6s}
table.grille tr.distant td{background:color-mix(in srgb,#3498db 18%,transparent)}
table.grille .c-inf{min-width:12rem}
.scroll.fige > table > thead th{box-shadow:0 -10px 0 var(--bg),inset 0 -1px 0 var(--border-s)}
/* local sans cadre (demande du 26/10) : texte gras simple à côté du badge */
.local-box{border:0 !important;padding:0 !important;background:none !important;font-weight:800}
table.pt{font-size:.78rem}table.pt .local-box{font-size:.74rem}
@media print{
  table.pt{font-size:7.6pt}table.pt .local-box{font-size:7.4pt}table.pt .site{font-size:5.8pt;padding:0 .25rem}
  table.pt th,table.pt td{height:4.2mm;line-height:4.1mm}table.pt tbody tr{height:4.2mm;max-height:4.2mm}
  table.pt td .site-local{max-height:3.8mm}table.pt thead th{height:5.5mm;font-size:6.6pt}
}
@media print{table.pt .ti{font-size:6.8pt}}
.toolbar-2 .search.grow{flex:1 1 18rem;margin:0}.fiche-g.par{border-top:1px solid var(--border);padding-top:.3rem;margin-top:.5rem}
/* ===================== Bandeau à deux niveaux (26/10) =====================
   1. bande bleu ardoise : logo, titre, utilisateur, déconnexion (défile avec la page)
   2. barre des sections, claire, qui reste en haut de l'écran */
:root{--top-h:56px;--nav-h:46px}
.nav{position:sticky;top:calc(-1 * var(--top-h));z-index:50;background:var(--bg);color:var(--text);border-bottom:1px solid var(--border-s);box-shadow:0 2px 6px rgba(44,62,80,.06)}
.nav .wrap{min-height:0;display:flex;align-items:center;gap:1rem;flex-wrap:nowrap}
.nav-top{background:var(--slate);color:#fff;height:var(--top-h)}
.nav-top .wrap{height:var(--top-h)}
.nav-top .brand{color:#fff}.nav-top .brand small{color:rgba(255,255,255,.7)}
.nav .brand-t{display:block !important;border-left:1px solid rgba(255,255,255,.25);padding-left:.8rem;line-height:1.2}
.nav .brand-t strong{font:900 1.05rem var(--font)}
.brand-logo{height:38px}
.who{margin-left:auto;display:flex;align-items:center;gap:1.2rem;font:700 .88rem var(--font)}
.who .me{color:rgba(255,255,255,.85);display:inline-flex;align-items:center;gap:.4rem}
.who .me::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:#7fd06b}
.who .out{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.35);border-radius:var(--r);padding:.35rem .7rem}
.who .out:hover{background:rgba(255,255,255,.12)}
.links{display:block;margin:0;background:var(--bg)}
.links .wrap{gap:.1rem;overflow-x:auto;scrollbar-width:none;height:var(--nav-h)}
.links .wrap::-webkit-scrollbar{display:none}
.links a{color:var(--muted);font:700 .92rem var(--font);padding:0 .75rem;height:var(--nav-h);display:inline-flex;align-items:center;border-bottom:3px solid transparent;white-space:nowrap;text-decoration:none}
.links a:hover{color:var(--ink)}
.links a[aria-current]{color:var(--ink);border-color:var(--brand)}
@media (max-width:820px){.nav-top .brand-t{display:none !important}.who .me{display:none}.links a{padding:0 .55rem}}


@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .nav{border-bottom-color:var(--border)}}
:root[data-theme=dark] .nav{border-bottom-color:var(--border)}
@media print{.nav{display:none}}
/* ---------- Accueil : cartes « applications » ---------- */
.apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15.5rem),1fr));gap:1.1rem;margin:1rem 0 2rem}
.app{background:var(--clouds);border-radius:var(--r);padding:1.4rem 1.1rem 1.1rem;display:flex;flex-direction:column;align-items:center;text-align:center}
.app-a{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:inherit}
.app-ic{width:92px;height:92px;margin-bottom:.8rem;transition:transform .15s}
.app-a:hover .app-ic{transform:translateY(-3px)}
.app h2{font:900 1.15rem var(--font);color:var(--ink);margin:0 0 .3rem}
.app p{margin:0;color:var(--text);font-size:.92rem;line-height:1.45;flex:1}
.app-info{min-height:1.7rem;margin:.6rem 0 .8rem;display:flex;flex-wrap:wrap;gap:.3rem;justify-content:center}
.app-btn{width:100%;justify-content:center;margin:0}
details.hist{margin-top:1rem}details.hist summary{cursor:pointer;font:700 1rem var(--font);color:var(--ink);padding:.4rem 0}
.mep-logo{height:48px;width:auto}.mail-logo{padding:.7rem .9rem;border-bottom:3px solid #3a8323;background:#fff}.mail-logo img{height:44px;width:auto}.mail-p{padding:.6rem .9rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--muted)}
/* ---------- Grilles ---------- */
.g-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.g-head h1{margin:.1rem 0 .3rem;font-size:1.5rem}.g-head p{margin:0}
.g-sec{margin-bottom:1rem}.g-sec h2{margin-top:0}
.seg{display:inline-flex;border:2px solid var(--border-s);border-radius:var(--r);overflow:hidden}
.seg label{margin:0}.seg input{position:absolute;opacity:0}.seg span{display:block;padding:.5rem 1.1rem;font-weight:800;cursor:pointer;background:var(--bg)}
.seg input:checked+span{background:var(--brand);color:#fff}.seg input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--brand) 40%,transparent)}
.g-duree-n{width:6rem}
.g-outils{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:.6rem 0 .8rem}
.g-outils label{margin:0}.g-outils input[type=radio]{position:absolute;opacity:0}
.g-outils span{display:inline-block;padding:.45rem .9rem;border-radius:var(--r);border:2px solid var(--border-s);font-weight:800;cursor:pointer}
.g-outils input:checked+span{border-color:var(--ink);box-shadow:inset 0 -3px 0 var(--ink)}
.o-pause{background:#fdebd0}.o-papier{background:#d6eaf8}.o-libre{background:var(--bg)}
.g-note{flex:1 1 16rem}
.g-compte{margin:.3rem 0 .7rem}
.g-cr{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.6rem,1fr));gap:.4rem}
button.cr{all:unset;box-sizing:border-box;cursor:pointer;border-radius:var(--r);padding:.4rem .5rem;text-align:center;border:2px solid var(--border-s);background:var(--bg);display:flex;flex-direction:column;gap:.05rem;min-height:3.6rem}
button.cr b{font:900 1rem var(--font);color:var(--ink)}button.cr span{font-size:.75rem;color:var(--muted)}button.cr small{font-size:.68rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
button.cr:hover{border-color:var(--brand)}button.cr:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 40%,transparent)}
button.cr-pause{background:#fdebd0;border-color:#e67e22}button.cr-pause span{color:#a04000;font-weight:800}
button.cr-papier{background:#d6eaf8;border-color:#2980b9}button.cr-papier span{color:#1b4f72;font-weight:800}
button.cr-prot{background:repeating-linear-gradient(135deg,var(--bg) 0 8px,var(--subtle) 8px 16px);cursor:not-allowed}
button.cr-prot span::before{content:"🔒 "}
button.cr-wait{opacity:.5}button.cr:disabled{cursor:default}
.as-banner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;background:#fef5e7;border:2px solid #f39c12;border-radius:var(--r);padding:.6rem .9rem;margin-bottom:1rem;color:#7e5109}
.as-banner .btn{margin:0}
ul.dem{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}ul.dem li{border-bottom:1px solid var(--border);padding-bottom:.6rem}
.dem-act{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.dem-act form{display:flex;gap:.3rem}.dem-act input{padding:.3rem .5rem}
.pill.bad{background:var(--bad-bg);color:var(--bad)}
.login .btn{margin-top:1rem}.code-in{font:900 1.6rem ui-monospace,monospace;letter-spacing:.3em;width:100%;text-align:center}
.g-steps{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:700px){.g-steps{grid-template-columns:repeat(4,auto)}}
.g-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.2rem}.g-nav .btn{margin:0}
.g-apercu{margin:1rem 0 0;font-weight:700}
dl.recap{display:grid;gap:.5rem;margin:0 0 1rem}dl.recap div{display:grid;grid-template-columns:minmax(8rem,12rem) 1fr;gap:1rem;border-bottom:1px solid var(--border);padding:.35rem 0}
dl.recap dt{font-weight:700;color:var(--muted)}dl.recap dd{margin:0}
@media (max-width:600px){dl.recap div{grid-template-columns:1fr;gap:.1rem}}
.g-envois{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1rem;margin-bottom:1rem}.g-envois p{margin:.2rem 0 .5rem}.g-envois .btn{margin:.15rem 0}
.fn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:.3rem 1.5rem;margin:.5rem 0}.fn-d{display:flex;align-items:center;gap:.5rem;justify-content:space-between;border-bottom:1px solid var(--border);padding:.25rem 0}.fn-d label{margin:0;font-weight:600}.fn-d input{width:5rem}#durees .btn{margin-top:.8rem}.g-fixe{margin:.2rem 0}
/* réglage des durées : un tableau rôle × durée */
table.durees-t{width:auto;min-width:min(100%,40rem);border-collapse:collapse;margin:.6rem 0 1rem;background:var(--bg);border-radius:var(--r)}
table.durees-t th,table.durees-t td{padding:.45rem .7rem;border-bottom:1px solid var(--border);white-space:nowrap}
table.durees-t thead th{font:800 .95rem var(--font);color:var(--ink);text-transform:none;letter-spacing:0;border-bottom:0;padding-bottom:0}
table.durees-t tr.unit th{font:400 .75rem var(--font);color:var(--muted);padding-top:0;border-bottom:2px solid var(--border-s)}
table.durees-t tbody th{text-align:left;font-weight:700;color:var(--ink)}
table.durees-t tbody th small{display:block;font-weight:400;color:var(--muted);font-size:.78rem}
table.durees-t .c{text-align:center;width:3.4rem}
table.durees-t input{width:1.25rem;height:1.25rem;accent-color:var(--brand);cursor:pointer}
table.durees-t tbody tr:hover td,table.durees-t tbody tr:hover th{background:var(--subtle)}
/* ---------- Assistant de grille : étapes et horaire ---------- */
.wiz{margin:1.2rem 0 1.4rem}
.wiz ol{list-style:none;margin:0;padding:0;display:flex}
.wiz li{flex:1;position:relative;text-align:center}
.wiz li::before{content:"";position:absolute;top:1.15rem;left:-50%;right:50%;height:4px;background:var(--border-s);z-index:0}
.wiz li:first-child::before{display:none}
.wiz li.done::before,.wiz li.cur::before{background:var(--brand)}
.wiz a{position:relative;z-index:1;display:inline-flex;flex-direction:column;align-items:center;gap:.4rem;text-decoration:none;color:var(--muted)}
.wiz .dot{width:2.3rem;height:2.3rem;border-radius:50%;display:grid;place-items:center;font:900 1rem var(--font);background:var(--bg);border:3px solid var(--border-s);color:var(--muted);transition:transform .15s}
.wiz .t{font:700 .88rem var(--font)}
.wiz li.done .dot{background:var(--brand);border-color:var(--brand);color:#fff}
.wiz li.done .t{color:var(--text)}
.wiz li.cur .dot{border-color:var(--brand);color:var(--brand);box-shadow:0 0 0 5px color-mix(in srgb,var(--brand) 18%,transparent);transform:scale(1.08)}
.wiz li.cur .t{color:var(--ink)}
.wiz a:hover .dot{border-color:var(--brand)}
@media (max-width:600px){.wiz .t{font-size:.72rem}.wiz li:not(.cur) .t{display:none}}
.g-info{background:var(--bg);border:1px solid var(--border-s);border-left:4px solid var(--brand);border-radius:var(--r);padding:.8rem 1rem;margin-bottom:1.2rem}
.g-info p{margin:.25rem 0}
.g-champs{display:grid;grid-template-columns:repeat(3,minmax(0,13rem));gap:1rem 1.5rem;align-items:end}
@media (max-width:700px){.g-champs{grid-template-columns:1fr 1fr}.g-ch-duree{grid-column:1/-1}}
.g-ch label{margin:0 0 .35rem}
.g-ch select{width:100%;font:800 1.1rem var(--font);padding:.6rem .7rem;border-width:2px}
.g-ch-duree select{border-color:#2980b9;background:#eaf2fa}
#g-debut{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,var(--bg))}
#g-fin{border-color:#c0392b;background:#fbeeec}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .g-ch-duree select,:root:not([data-theme=light]) #g-debut,:root:not([data-theme=light]) #g-fin{background:var(--bg)}}
:root[data-theme=dark] .g-ch-duree select,:root[data-theme=dark] #g-debut,:root[data-theme=dark] #g-fin{background:var(--bg)}
.g-fixe{font:800 1.1rem var(--font);margin:0;padding:.6rem 0}
.g-apercu{margin:1.2rem 0 0;font-size:1.05rem}.g-resume{font-weight:900;color:var(--ink)}
table.durees-t tbody th{text-transform:none;letter-spacing:0;font:700 .95rem var(--font)}table.durees-t tbody th small{text-transform:none;letter-spacing:0}
.durees-w{overflow-x:auto}table.durees-t thead th{padding:.6rem .7rem .5rem;border-bottom:2px solid var(--border-s);line-height:1.1;vertical-align:bottom}table.durees-t thead th small{display:block;font:400 .72rem var(--font);color:var(--muted)}
.o-convoc{background:#ebdef0}
button.cr-convocation{background:#ebdef0;border-color:#8e44ad}button.cr-convocation span{color:#5b2c6f;font-weight:800}
.g-convoc{border:2px solid #8e44ad;margin:.4rem 0 1rem;background:var(--bg)}.g-convoc h3{margin-top:0}
.g-c-choix{font-weight:800;color:#5b2c6f;margin:.5rem 0}
.login-intro{margin:.2rem 0 1rem}.login-intro p{margin:.3rem 0}
/* ---------- Page d'accueil publique ---------- */
.home-h{text-align:center;margin:2rem auto 1.5rem;max-width:44rem}
.home-h h1{font-size:clamp(2rem,5vw,2.8rem);margin:.3rem 0}
.home-date{font:700 1.2rem var(--font);color:var(--brand);margin:.2rem 0 1rem}
.home-intro{color:var(--text)}
.home-apps{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),22rem));justify-content:center}
/* connexion du personnel : formulaire + aide à onglets (comme la v2) */
.login-g{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.5rem;align-items:start;margin-top:1.5rem}
@media (max-width:820px){.login-g{grid-template-columns:1fr}}
.login input[type=email],.login .code-in{width:100%}
.aide-t{background:var(--bg);border:2px solid var(--border-s);display:flex;flex-wrap:wrap;padding:0}
.aide-t>input{position:absolute;opacity:0}
.aide-t>label{margin:0;padding:.7rem 1rem;cursor:pointer;color:var(--muted);font:700 .95rem var(--font);border-bottom:2px solid var(--border-s);flex:1;text-align:center}
.aide-t>input:checked+label{color:var(--ink);border-bottom:3px solid var(--brand);background:var(--subtle)}
.aide-t>input:focus-visible+label{outline:3px solid color-mix(in srgb,var(--brand) 40%,transparent)}
.aide-p{display:none;flex-basis:100%;padding:1.1rem 1.3rem}
#t1:checked~.p1,#t2:checked~.p2,#t3:checked~.p3{display:block}
.aide-p h2{margin-top:0;display:inline-block;background:#2980b9;color:#fff;border-radius:var(--r);padding:.3rem .8rem;font-size:1.15rem}
ol.etapes-l{padding-left:1.2rem;line-height:2}
/* ---------- Assistance ---------- */
.btn.as-btn{background:#6c5ce7;border-color:#6c5ce7;color:#fff}.btn.as-btn:hover{background:#5a4bd1;border-color:#5a4bd1;color:#fff}
.as-band{display:flex;gap:1rem;align-items:center;justify-content:space-between;max-width:46rem;margin:0 auto 2rem;padding:1rem 1.2rem;border-radius:var(--r);background:var(--clouds);border-left:4px solid #6c5ce7}
.as-band small{display:flex;margin-top:.3rem}
@media (max-width:600px){.as-band{flex-direction:column;align-items:stretch;text-align:center}.as-band small{justify-content:center}}
.as-tete{text-align:center;margin:1.6rem auto .4rem;max-width:44rem}
.as-tete h1{margin:.2rem 0 .5rem}
.as-intro p{margin:.3rem 0}
.as-etat{display:inline-flex;gap:.5rem;align-items:center;font-weight:700;margin:.4rem 0;color:var(--text)}
.as-led{width:.7rem;height:.7rem;border-radius:50%;background:#95a5a6;flex:none}
.as-etat.ouvert .as-led{background:#27ae60;box-shadow:0 0 0 4px color-mix(in srgb,#27ae60 25%,transparent)}
.as-etat.ferme .as-led{background:#e67e22}
.as-h{margin:.2rem auto;font-size:.9rem;color:var(--muted)}.as-h summary{cursor:pointer}.as-h ul{list-style:none;padding:0;margin:.4rem 0}
.as-q{text-align:center;margin:.4rem 0 1rem}
.as-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:.9rem;max-width:56rem;margin:0 auto}
.as-grille.deux{max-width:40rem}
.as-choix{display:flex;flex-direction:column;gap:.3rem;padding:1.1rem 1.2rem;border:2px solid var(--border-s);border-radius:var(--r);background:var(--bg);text-decoration:none;color:var(--text);transition:border-color .12s,transform .12s}
.as-choix b{font:900 1.05rem var(--font);color:var(--ink)}
.as-choix span{font-size:.88rem;color:var(--muted)}
.as-choix:hover,.as-choix:focus-visible{border-color:#6c5ce7;transform:translateY(-2px)}
.as-choix.parent{border-top:5px solid #2c9f87}.as-choix.perso{border-top:5px solid #2980b9}
.as-choix.tech{border-style:dashed}.as-choix.autre{background:var(--clouds)}
.as-grille.deux .as-choix{text-align:center;padding:1.6rem 1.2rem}
.as-bas{text-align:center;margin:1.4rem 0}
.as-conseil{max-width:46rem;margin:0 auto 1.2rem;padding:1rem 1.3rem;border-radius:var(--r);background:var(--ok-bg);border-left:4px solid var(--ok)}
.as-conseil h3{margin:0 0 .4rem;color:var(--ok)}.as-conseil p{margin:.35rem 0}
.as-c-btn{margin-top:.8rem !important}
.as-form{max-width:46rem;margin:0 auto 2rem}.as-form h3{margin-top:0}
.as-champs{display:grid;grid-template-columns:1fr 1fr;gap:.2rem 1.2rem}
.as-champs .pleine{grid-column:1/-1}
.as-champs input,.as-champs textarea,.as-champs select{width:100%}
@media (max-width:640px){.as-champs{grid-template-columns:1fr}}
.as-piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.as-ok{max-width:36rem;margin:0 auto 2rem;text-align:center}
.as-ok-ic{width:3.6rem;height:3.6rem;border-radius:50%;margin:.4rem auto .6rem;display:grid;place-items:center;background:var(--ok-bg);color:var(--ok);font:900 1.8rem var(--font)}
label.chk{display:flex;gap:.5rem;align-items:center;font-weight:500;margin:.4rem 0}
label.chk input{width:auto;margin:0}
/* administration */
.as-p-parent{background:#e3f4f0;color:#1e7a66}.as-p-perso{background:#e3eef8;color:#1f6391}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .as-p-parent{background:#173a33;color:#7fd8c4}:root:not([data-theme=light]) .as-p-perso{background:#16304a;color:#8ec3ea}}
:root[data-theme=dark] .as-p-parent{background:#173a33;color:#7fd8c4}:root[data-theme=dark] .as-p-perso{background:#16304a;color:#8ec3ea}
tr.as-new td{font-weight:700}
.as-sub{display:block;color:var(--muted);font-size:.78rem;font-weight:400}
.as-act{display:flex;gap:.3rem;flex-wrap:wrap}.as-act form{margin:0}
.as-d{display:grid;grid-template-columns:minmax(0,1fr) 19rem;gap:1.2rem;align-items:start}
@media (max-width:900px){.as-d{grid-template-columns:minmax(0,1fr)}}
.as-d-h{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.as-d-h h2{margin:0;flex:1 1 auto}
.as-dl{display:grid;grid-template-columns:max-content 1fr;gap:.45rem 1.2rem;margin:1rem 0}
.as-dl dt{font-weight:700;color:var(--muted)}.as-dl dd{margin:0}
@media (max-width:520px){.as-dl{grid-template-columns:1fr}.as-dl dd{margin-bottom:.4rem}}
.as-pre{white-space:pre-wrap;overflow-wrap:anywhere}
.as-fil{list-style:none;padding:0;margin:.5rem 0 1rem;border-left:3px solid var(--border-s)}
.as-fil li{padding:.4rem .8rem;margin:0 0 .5rem}
.as-fil .as-s-h{font-size:.82rem;color:var(--muted)}
.as-fil .as-s-reponse{background:var(--ok-bg);border-radius:0 var(--r) var(--r) 0}
.as-fil .as-s-note{background:var(--warn-bg);border-radius:0 var(--r) var(--r) 0}
.as-fil .as-s-statut,.as-fil .as-s-systeme{font-size:.85rem;color:var(--muted)}
.as-r-b{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;margin:.4rem 0 1rem}
.as-note summary{cursor:pointer;font-weight:700;margin:.4rem 0}
.as-side h3{margin:.2rem 0 .5rem}.as-side h3+p{margin-top:0}
.as-side form{margin:.4rem 0 .9rem}
.as-inline{display:flex;gap:.4rem;align-items:center}.as-inline .btn{margin:0}
.as-stat{display:flex;flex-wrap:wrap;gap:.4rem}.as-stat .btn{margin:0}.as-inline select{flex:1;min-width:0}
.as-cats{border:1px solid var(--border-s);border-radius:var(--r);padding:.4rem 1rem .6rem;margin:.8rem 0}
.as-cats legend{font-weight:700;padding:0 .3rem}
.as-cats label.chk{margin:.25rem 0}
.as-hor select,.as-hor input{min-width:0}
.as-hor th[scope=row]{text-align:left;font-weight:700;white-space:nowrap}
.as-pl{display:inline-flex;gap:.4rem;align-items:center;white-space:nowrap}
.as-pl select{width:auto;min-width:5.6rem}
.as-pl select:disabled{opacity:.4}
.as-horaires h3{margin:1.4rem 0 .2rem}
.as-fil .as-s-demandeur{background:var(--brand-soft);border-radius:0 var(--r) var(--r) 0}
/* suivi de la demande par le demandeur */
.as-l{max-width:46rem;margin-left:auto;margin-right:auto}
section.as-l,.as-avis{margin-bottom:1.2rem}
.as-cat{font-weight:700;display:flex;gap:.5rem;justify-content:center;align-items:center;flex-wrap:wrap;margin:.2rem 0 1rem}
.as-resolu{border-left:4px solid #27ae60}
/* Réglages → Icônes des cartes */
.ic-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,24rem),1fr));gap:1rem;align-items:start}
.ic-carte{display:flex;gap:1rem;align-items:flex-start;margin:0}
.ic-apercu svg{width:76px;height:76px;flex:none}
.ic-corps{flex:1;min-width:0}.ic-corps h2{margin:.1rem 0 .5rem;font-size:1.05rem}
.ic-reg{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center}
.ic-coul{display:flex;gap:.5rem;align-items:center;margin:0;font-weight:700}
.ic-coul input{width:2.6rem;height:2rem;padding:0;border:1px solid var(--border-s);border-radius:6px;background:none;cursor:pointer}
.ic-det summary{cursor:pointer;font-weight:700;color:var(--brand);margin:.5rem 0}
.ic-galerie{display:grid;grid-template-columns:repeat(auto-fill,minmax(4.2rem,1fr));gap:.3rem}
.ic-g{position:relative;display:flex;flex-direction:column;align-items:center;gap:.15rem;margin:0;padding:.3rem .1rem;border:2px solid transparent;border-radius:8px;cursor:pointer;font:400 .68rem var(--font);color:var(--muted);text-align:center}
.ic-g input{position:absolute;opacity:0}
.ic-g svg{width:44px;height:44px}
.ic-g:hover{background:var(--clouds)}
.ic-g:has(input:checked){border-color:var(--brand);background:var(--brand-soft);color:var(--ink)}
.ic-g:has(input:focus-visible){outline:3px solid color-mix(in srgb,var(--brand) 40%,transparent)}
.ic-save{position:sticky;bottom:0;padding:.8rem 0;background:linear-gradient(transparent,var(--bg) 40%);text-align:right}

:root[data-theme=light]{color-scheme:light}
/* bouton du thème (en-tête) */
.theme-b{display:inline-flex;align-items:center;gap:.35rem;background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:999px;padding:.25rem .65rem;font:700 .8rem var(--font);cursor:pointer;margin-right:.6rem}
.theme-b:hover{background:rgba(255,255,255,.12)}
.theme-i{width:.95rem;height:.95rem;border-radius:50%;border:2px solid currentColor;background:linear-gradient(90deg,currentColor 50%,transparent 50%)}
.theme-b[data-theme-cur=light] .theme-i{background:currentColor;box-shadow:0 0 0 2px rgba(255,255,255,.25)}
.theme-b[data-theme-cur=dark] .theme-i{background:transparent;border-color:currentColor;box-shadow:inset -4px -1px 0 0 currentColor;border-width:0}
@media (max-width:560px){.theme-b .theme-l{display:none}}
/* encart de compatibilité */
.compat{border:1px solid var(--border-s);border-radius:var(--r);padding:.8rem 1rem;margin:1rem 0;background:var(--bg)}
.compat h3{margin:0 0 .3rem;font-size:1rem}
.compat ul{list-style:none;padding:0;margin:.4rem 0 0}
.compat li{display:flex;justify-content:space-between;gap:.6rem;align-items:center;padding:.3rem 0;border-top:1px solid var(--border);font-size:.9rem}
.compat li .pill{text-align:right}
.compat-bilan{font-weight:700;margin:.2rem 0}.compat-bilan.ok{color:var(--ok)}.compat-bilan.bad{color:var(--bad)}
.as-cat-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:.6rem 1.4rem}
.as-cat-g>b{display:block;margin:.3rem 0 .1rem;font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
/* Réglages → E-mail du code de connexion */
.otp-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:1.2rem;align-items:start}
@media (max-width:1000px){.otp-g{grid-template-columns:minmax(0,1fr)}}
.otp-b{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.otp-b .btn{margin:0}
.otp-ap{position:sticky;top:5rem}
.otp-ap iframe{width:100%;height:820px;border:1px solid var(--border-s);border-radius:var(--r);background:#f2f4f1}

/* ---------- Espace du personnel ---------- */
.pa-info{display:flex;flex-wrap:wrap;gap:.6rem 2rem;background:var(--clouds);border-radius:var(--r);padding:.8rem 1.1rem;margin:.6rem 0 1rem}
.pa-info div{display:flex;flex-direction:column}.pa-info b{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.rv-titre h1{font-size:clamp(1.3rem,3vw,1.8rem)}.rv-titre small{color:var(--muted);font-weight:400}
.rv-prog-h{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}
.rv-barre{height:12px;border-radius:999px;background:var(--subtle);border:1px solid var(--border);overflow:hidden}
.rv-barre span{display:block;height:100%;background:linear-gradient(90deg,#3a8323,#6cc35a);border-radius:999px}
.rv-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.6rem}
.rv-t td{vertical-align:top}
.rv-h{font-weight:800;white-space:nowrap}
.rv-pause td,.rv-libre td{color:var(--muted)}
.rv-pris{background:color-mix(in srgb,var(--ok-bg) 55%,transparent)}
.rv-convocation{background:color-mix(in srgb,var(--brand-soft) 70%,transparent)}
.rv-c{display:flex;flex-direction:column;font-size:.85rem;margin-bottom:.3rem}.rv-c a{overflow-wrap:anywhere}
.rv-o{white-space:nowrap}.rv-o form{display:inline;margin:0}
.rv-b{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;border:0;text-decoration:none;font:700 1.05rem var(--font);cursor:pointer;vertical-align:middle;margin-right:.2rem}
.rv-msg{background:#e67e22;color:#fff}.rv-plus{background:#27ae60;color:#fff;font-size:1.3rem}.rv-suppr{background:var(--clouds);color:var(--bad)}
.rv-b:hover{filter:brightness(1.1)}
.rv-b.arme{width:auto;border-radius:999px;padding:0 .7rem;font-size:.8rem;background:var(--bad);color:#fff}
.rv-q{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.rv-q input{flex:1;min-width:12rem}.rv-q .btn{margin:0}
.rv-conv{border:2px solid #27ae60}
.rv-res{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:.1rem 1rem;margin:.6rem 0}
.ms-dl{list-style:none;padding:0;margin:0}.ms-d{padding:.6rem 0;border-top:1px solid var(--border)}.ms-d:first-child{border-top:0}
.ms-d>div{margin-bottom:.3rem}
.ms-txt{font-size:1.02rem;line-height:1.6}.ms-sign{font-weight:700;margin-top:1rem}
.el-res{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:.5rem}
.el-res a{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .8rem;border:1px solid var(--border-s);border-radius:var(--r);text-decoration:none;color:var(--text);background:var(--bg)}
.el-res a:hover{border-color:var(--brand)}
.el-pl{list-style:none;padding:0;margin:.4rem 0 1rem}.el-p{display:flex;flex-direction:column;gap:.15rem;padding:.6rem 0;border-top:1px solid var(--border)}
.el-p a{overflow-wrap:anywhere}
.rv-barre .w0{width:0%}.rv-barre .w5{width:5%}.rv-barre .w10{width:10%}.rv-barre .w15{width:15%}.rv-barre .w20{width:20%}.rv-barre .w25{width:25%}.rv-barre .w30{width:30%}.rv-barre .w35{width:35%}.rv-barre .w40{width:40%}.rv-barre .w45{width:45%}.rv-barre .w50{width:50%}.rv-barre .w55{width:55%}.rv-barre .w60{width:60%}.rv-barre .w65{width:65%}.rv-barre .w70{width:70%}.rv-barre .w75{width:75%}.rv-barre .w80{width:80%}.rv-barre .w85{width:85%}.rv-barre .w90{width:90%}.rv-barre .w95{width:95%}.rv-barre .w100{width:100%}
.g-c-par{border:1px solid var(--border-s);border-radius:var(--r);padding:.3rem .9rem .5rem;margin:.4rem 0}.g-c-par legend{font-weight:700;padding:0 .3rem}
.rv-el{display:block;padding:.45rem .7rem;border:1px solid var(--border-s);border-radius:var(--r);text-decoration:none;color:var(--text);background:var(--bg)}
.rv-el:hover{border-color:#27ae60}.rv-el.on{border:2px solid #27ae60;font-weight:700;background:color-mix(in srgb,#27ae60 10%,var(--bg))}
/* Réglages : pages détaillées (cartes) puis paramètres, bien séparés */
.reg-sep{display:flex;align-items:center;gap:1rem;margin:2.4rem 0 1.2rem;font:800 .82rem var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.reg-sep::before,.reg-sep::after{content:"";flex:1;height:1px;background:var(--border-s)}
.reg-sep::before{flex:0 0 1.5rem}
.reg-params{display:flex;flex-direction:column;gap:1.4rem}.reg-params>.card{margin:0}
.noms-msg{flex-direction:column;align-items:flex-start;gap:.35rem}.pa-sig{margin-top:1.5rem}.pa-sig select{flex:1;min-width:0}
/* ---------- Interrupteur (pré-accès…) ---------- */
.switch{position:relative;flex:none;width:3rem;height:1.7rem;border-radius:999px;border:0;background:var(--border-s);cursor:pointer;padding:0;transition:background .15s}
.switch-k{position:absolute;top:.2rem;left:.2rem;width:1.3rem;height:1.3rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:left .15s}
.switch.on{background:#27ae60}.switch.on .switch-k{left:1.5rem}
.switch:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 40%,transparent);outline-offset:2px}
.app-sw,.fa-sw{display:flex;align-items:center;gap:.6rem;margin:0}
.app-sw{flex-basis:100%;justify-content:center;font:700 .82rem var(--font);margin-top:.3rem}
.fa-sw{margin:.6rem 0 .9rem;align-items:flex-start}.fa-sw .switch{margin-top:.15rem}
/* ---------- Familles (administration) ---------- */
.fa-enf{list-style:none;padding:0;margin:0}.fa-enf li{padding:.5rem 0;border-top:1px solid var(--border)}.fa-enf li:first-child{border-top:0}
.fa-enf li.fa-moi b{color:var(--brand)}
.fa-cv{font-size:.88rem;color:#5b2c6f;margin-top:.2rem}
.fa-pars{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1rem;margin-bottom:1rem}
.fa-par{margin:0}.fa-par-h{display:flex;gap:.5rem;align-items:center}.fa-par h3{margin:0}
code.fa-cle{font:800 1rem 'Courier New',monospace;letter-spacing:.08em}
.fa-act{display:flex;flex-wrap:wrap;gap:.4rem}.fa-act form{margin:0}
.fa-cles{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.8rem 0}.fa-cles form{margin:0}
/* ---------- Espace famille (parents) ---------- */
.fa-modes{display:flex;flex-wrap:wrap;margin-top:.6rem}
.fa-modes>input{position:absolute;opacity:0}
.fa-modes>label{flex:1;text-align:center;margin:0;padding:.6rem .5rem;cursor:pointer;border-bottom:2px solid var(--border-s);color:var(--muted);font-weight:700}
.fa-modes>input:checked+label{color:var(--ink);border-bottom:3px solid var(--brand)}
.fa-modes>input:focus-visible+label{outline:3px solid color-mix(in srgb,var(--brand) 40%,transparent)}
.fa-modes>form{display:none;flex-basis:100%;padding-top:.8rem}
#fm1:checked~.fa-m1,#fm2:checked~.fa-m2{display:block}
.fa-modes input[type=email],.fa-modes .code-in{width:100%}
.fa-h{margin:1rem 0}.fa-h .home-date{margin:.1rem 0 .6rem}
.fa-t{margin:1.4rem 0 .6rem}
.fa-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1rem}
.fa-e{margin:0}.fa-e-h{display:flex;gap:.8rem;align-items:center}.fa-e-h h2{margin:0;font-size:1.15rem}.fa-e-h p{margin:.1rem 0 0}
.fa-av{flex:none;width:2.8rem;height:2.8rem;border-radius:50%;display:grid;place-items:center;background:#2c9f87;color:#fff;font:900 1.2rem var(--font)}
.fa-profs summary{cursor:pointer;font-weight:700;margin:.8rem 0 .3rem;color:var(--brand)}
.fa-l{list-style:none;padding:0;margin:0}.fa-l li{display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding:.4rem 0;border-top:1px solid var(--border)}
.fa-l li:first-child{border-top:0}.fa-l a{text-decoration:none;color:var(--text)}.fa-l li.fa-nl b{color:var(--brand)}
.fa-conv{border:2px solid #8e44ad}.fa-conv h2{margin-top:0;color:#8e44ad}.fa-conv ul{margin:.3rem 0 0;padding-left:1.2rem;line-height:1.8}
.fa-info{margin-top:1rem}
.fa-apercu{position:sticky;top:0;z-index:5}
/* ---------- Lettres (clés) ---------- */
.lettre{max-width:46rem;margin:0 auto 2rem}
.lt-a{font-size:1.1rem;margin:1rem 0}
.lt-et{line-height:1.8}
.lt-cles{display:flex;flex-direction:column;gap:.6rem;margin:1rem 0}
.lt-cle{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:2px dashed #3a8323;border-radius:10px;padding:.7rem 1rem}
.lt-cle small{display:block;color:#6b7280}
.lt-cle code{font:900 1.5rem 'Courier New',monospace;letter-spacing:.12em;color:#1f2d3d}
.lt-p{font-size:.85rem;color:#6b7280}
@media print{.lettre{break-after:page;margin:0;max-width:none}.lettre:last-of-type{break-after:auto}}
/* ---------- Assistant de grille : boutons dans le style de la V2 ---------- */
.btn.v2-prec,.btn.v2-suiv{display:inline-flex;align-items:center;gap:.6rem;border:0;border-radius:6px;padding:.7rem 1.3rem;font:700 1rem var(--font);color:#fff;text-decoration:none;box-shadow:0 2px 0 rgba(0,0,0,.12)}
.btn.v2-prec{background:#d9534f}.btn.v2-prec:hover{background:#c9302c;color:#fff}
.btn.v2-suiv{background:#5cb85c;margin-left:auto}.btn.v2-suiv:hover{background:#449d44;color:#fff}
.btn.v2-suiv:disabled{background:#a5d6a5;cursor:not-allowed;box-shadow:none}
.btn.v2-prec::before,.btn.v2-suiv::before{content:"";width:.5rem;height:.5rem;border:solid currentColor;border-width:0 0 3px 3px;transform:rotate(45deg);margin-left:.15rem}
.btn.v2-suiv::before{transform:rotate(-135deg);margin:0 .1rem 0 0}
@media (max-width:600px){.g-nav{flex-direction:column-reverse;align-items:stretch}.btn.v2-prec,.btn.v2-suiv{justify-content:center;margin:0}}
.g-outils{gap:.5rem}
.g-outils span{border:0;border-radius:6px;padding:.6rem 1.1rem;color:#fff;font:700 .95rem var(--font);box-shadow:0 2px 0 rgba(0,0,0,.15);transition:transform .1s,box-shadow .1s,filter .1s}
.g-outils span:hover{filter:brightness(1.07)}
.o-pause{background:#f39c12}.o-papier{background:#3498db}.o-convoc{background:#9b59b6}.o-libre{background:#7f8c8d}
.g-outils input:checked+span{box-shadow:0 0 0 3px var(--bg),0 0 0 6px #2c3e50;transform:translateY(-1px)}
.g-outils input:checked+span::before{content:"✓ "}
.g-outils input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--brand) 50%,transparent);outline-offset:4px}
.fa-l li.fa-cours{display:block}.fa-cours>b{display:block;margin-bottom:.25rem}
.fa-pp{display:flex;flex-wrap:wrap;gap:.3rem}
.fa-p{background:var(--bg);border:1px solid var(--border-s);border-radius:999px;padding:.12rem .6rem;font-size:.85rem}
.fa-p small{color:var(--muted)}.fa-p.abs{opacity:.6}
/* ---------- Cases à cocher et boutons radio : plus grands et plus visibles (toute la plateforme) ---------- */
input[type=checkbox],input[type=radio]{-webkit-appearance:none;appearance:none;flex:none;width:1.3rem;height:1.3rem;margin:0 .1rem 0 0;padding:0;border:2px solid #8a96a3;background:var(--bg);display:inline-grid;place-content:center;vertical-align:-.25rem;cursor:pointer;transition:background .12s,border-color .12s,box-shadow .12s}
input[type=checkbox]{border-radius:5px}
input[type=radio]{border-radius:50%}
input[type=checkbox]::before{content:"";width:.36rem;height:.68rem;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg) translate(-1px,-1px) scale(0);transition:transform .12s}
input[type=radio]::before{content:"";width:.56rem;height:.56rem;border-radius:50%;background:#fff;transform:scale(0);transition:transform .12s}
input[type=checkbox]:checked,input[type=radio]:checked{background:var(--brand);border-color:var(--brand)}
input[type=checkbox]:checked::before{transform:rotate(45deg) translate(-1px,-1px) scale(1)}
input[type=radio]:checked::before{transform:scale(1)}
input[type=checkbox]:hover:not(:disabled),input[type=radio]:hover:not(:disabled){border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 15%,transparent)}
input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 45%,transparent);outline-offset:2px}
input[type=checkbox]:disabled,input[type=radio]:disabled{opacity:.4;cursor:not-allowed}
:root:not([data-theme=light]) input[type=checkbox]:checked::before{border-color:#fff}
label:has(>input[type=checkbox]),label:has(>input[type=radio]){display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}
label.chk{display:flex}
label:has(>input:checked){color:var(--ink)}
label.chk input[type=checkbox],label.chk input[type=radio],.radios input[type=radio],.g-ch input[type=checkbox]{width:1.3rem;height:1.3rem}
label.chk:has(>input){display:flex}
.fa-qui{font-size:clamp(1.4rem,3.5vw,2rem)}.fa-qui span{color:var(--brand)}
/* espace famille : professeurs en vignettes par cours */
.fa-g{grid-template-columns:minmax(0,1fr)}
.fa-pf-bar{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;margin:.6rem 0 .9rem}
.fa-pf-bar input{flex:1 1 16rem;min-width:0}
.fa-leg{display:flex;flex-wrap:wrap;gap:.3rem .9rem;font-size:.82rem;color:var(--muted)}
.fa-cg{columns:3 15rem;column-gap:1rem}
.fa-c{break-inside:avoid;margin:0 0 1rem;background:var(--bg);border:1px solid var(--border-s);border-radius:var(--r);padding:.7rem .9rem;border-top:4px solid #2c9f87}
.fa-c[hidden]{display:none}
.fa-c h3{display:flex;justify-content:space-between;align-items:center;margin:0 0 .4rem;font-size:1rem}
.fa-c h3 span{font:700 .75rem var(--font);color:var(--muted);background:var(--subtle);border-radius:999px;padding:.05rem .5rem}
.fa-c ul{list-style:none;margin:0;padding:0}
.fa-c li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.28rem 0;border-top:1px dashed var(--border)}
.fa-c li:first-child{border-top:0}
.fa-pn{font-weight:600}.fa-lieu{flex:none;font-size:.8rem;white-space:nowrap}
.fa-c li.abs .fa-pn{color:var(--muted);text-decoration:line-through}.fa-ab{font-size:.75rem;color:var(--muted)}
.fa-profs>summary{font-size:1rem}
/* ---------- Lettre aux parents (modèle de la lettre papier) : feuille A4 à l'écran, une page par face à l'impression ---------- */
.lettres{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:1rem 0}
.lettre{width:210mm;max-width:100%;min-height:297mm;margin:0;padding:14mm 16mm;background:#fff;color:#1f2937;box-shadow:0 2px 14px rgba(0,0,0,.12);font:10.5pt/1.45 Lato,Arial,sans-serif;box-sizing:border-box}
.lettre p{margin:0 0 .55em}
.lt-h{display:flex;justify-content:space-between;align-items:flex-start}
.lt-logo{height:68px;width:auto}
.lt-date{margin:0}
.lt-dest{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin:1.2em 0 1em}
.lt-ecole{font-size:9pt;letter-spacing:.02em}
.lt-a{text-align:right;font-size:13pt;margin:0}.lt-cl{display:block;font:900 18pt Lato,Arial,sans-serif}
.lt-corps{text-align:justify}
.lt-box{display:grid;grid-template-columns:auto auto 1fr;align-items:stretch;margin:1em 0;background:#f3f4f6;border-left:8px solid #1f5f99}
.lt-box span{padding:.55em .9em;display:flex;align-items:center}
.lt-b1{font-weight:700;font-size:9.5pt}.lt-b2{background:#fff;font:700 15pt 'Courier New',monospace;letter-spacing:.06em;margin:.25em 0}
.lt-b3{font-size:9.5pt}.lt-url{color:#1f5f99;text-decoration:underline}
.lt-sign{display:flex;justify-content:space-between;gap:1rem;margin:1.2em 0 .8em;font-size:9.5pt}
.lt-talon{border-top:1px solid #9ca3af;padding-top:.6em;margin-top:.8em}
.lt-talon h2{font-size:13pt;margin:.2em 0 .5em}
.lt-talon table{width:100%;border-collapse:collapse;margin:.6em 0;font-size:9pt}
.lt-talon th{text-align:left;font-weight:400;padding:.3em .4em;border-bottom:2px solid #111}
.lt-talon td{height:2.1em;border-bottom:1px solid #111;padding:0 .4em}
.lt-talon td+td,.lt-talon th+th{border-left:1px dashed #6b7280}
.lt-talon tbody tr:last-child td{border-bottom:2px solid #111}
.lt-t-pied{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;font-size:9pt;margin-top:.4em}.lt-t-pied small{font-style:italic}
.lt-verso h1{font:italic 900 22pt Georgia,serif;text-align:center;margin:0 0 .8em;color:#111}
.lt-verso h3{font-size:11.5pt;margin:1em 0 .4em}
.lt-verso ul{margin:.2em 0 .6em 1.2em;padding-left:1em}.lt-verso li{margin:.2em 0}
.lt-max{width:6rem}
.lt-frame{height:900px}
.lt-body{background:#e5e7eb;margin:0}.lt-apercu .lettre{transform-origin:top center}
@media print{
  .lettres{display:block;padding:0}
  .lettre{width:auto;min-height:0;height:auto;box-shadow:none;padding:0;break-after:page}
  .lettre:last-child{break-after:auto}
  @page{size:A4;margin:12mm 14mm}
}
.lt-talon table{table-layout:fixed;min-width:0;max-width:100%}
.lt-talon th{text-transform:none;letter-spacing:0;color:#111;font:400 9pt Lato,Arial,sans-serif;background:none}
.lt-talon td{background:none !important}
.lettre table{box-shadow:none}
.lt-box span.lt-b3{display:block;align-self:center;line-height:1.3}
/* vignettes de cours : grille alignée, en-tête coloré par matière (couleur fixe pour un même cours) */
.fa-cg{columns:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:1rem;align-items:start}
.fa-c{margin:0;padding:0;border-top:0;overflow:hidden}
.fa-c h3{margin:0;padding:.55rem .9rem;background:var(--bcf);color:var(--bct);border-bottom:3px solid var(--bcl)}
.fa-c h3 span{background:rgba(255,255,255,.7);color:var(--bct)}
.fa-c ul{padding:.3rem .9rem .55rem}
.bc0{--bcf:#e3f2ec;--bct:#14614a;--bcl:#2c9f87}.bc1{--bcf:#e4effa;--bct:#1b4f80;--bcl:#2980b9}.bc2{--bcf:#f3e6f7;--bct:#5b2c6f;--bcl:#8e44ad}
.bc3{--bcf:#fdf0e1;--bct:#8a4b0f;--bcl:#e67e22}.bc4{--bcf:#fbe6e4;--bct:#8e2a20;--bcl:#c0392b}.bc5{--bcf:#e5f6f5;--bct:#11635f;--bcl:#16a085}
.bc6{--bcf:#fdf7da;--bct:#7a6200;--bcl:#d4ac0d}.bc7{--bcf:#e9ecf9;--bct:#2c3a8a;--bcl:#4a5bd1}.bc8{--bcf:#fde8f1;--bct:#8a1f52;--bcl:#d63384}.bc9{--bcf:#eef4e2;--bct:#3e5e10;--bcl:#7cb342}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .fa-c h3{background:color-mix(in srgb,var(--bcl) 28%,var(--bg));color:#fff}:root:not([data-theme=light]) .fa-c h3 span{background:rgba(0,0,0,.25);color:#fff}}
:root[data-theme=dark] .fa-c h3{background:color-mix(in srgb,var(--bcl) 28%,var(--bg));color:#fff}:root[data-theme=dark] .fa-c h3 span{background:rgba(0,0,0,.25);color:#fff}
/* Messages → Des classes : cases alignées en colonnes */
.cl-grp{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.2rem,1fr));gap:.3rem .8rem;padding:.5rem 0}
.cl-grp > b{grid-column:1/-1}
.cl-grp label.cl{display:flex;align-items:center;gap:.45rem;margin:0;padding:.15rem .3rem;border-radius:6px}
.cl-grp label.cl small{margin-left:auto;font-variant-numeric:tabular-nums}
.cl-grp label.cl:hover{background:var(--clouds)}
.cl-grp label.cl:has(input:checked){background:var(--brand-soft)}
.cl-grp label.cl[hidden]{display:none}
.fa-ct td{vertical-align:top}.fa-ct tr.fa-moi td{background:var(--brand-soft)}
.fa-maj summary{cursor:pointer;font-weight:700;color:var(--brand);margin:.8rem 0 .4rem}
.fa-rec{margin-top:1rem;border-top:1px solid var(--border);padding-top:.6rem}.fa-rec summary{cursor:pointer;font-weight:700;color:var(--brand)}
.row-dir{flex-basis:100%;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;padding-left:3.2rem}.row-dir>.muted{width:5.5rem;font-weight:700}
/* Permanences (en tête de la liste des locaux) */
.pm-t input,.pm-t select{width:100%;min-width:7rem}.pm-t .pm-loc{min-width:5rem}
.print-perm{border:2px solid #3a8323;border-radius:8px;padding:.5rem .9rem .6rem;margin:0 0 1rem;break-inside:avoid}
.print-perm h2{margin:0 0 .3rem;font-size:1.05rem;color:#3a8323}
.pm-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.3rem 1.5rem}
.pm-b h3{margin:.2rem 0;font-size:.9rem}
.pm-b ul{list-style:none;margin:0;padding:0}.pm-b li{padding:.12rem 0;font-size:.92rem;color:#111827}.pm-b li small{color:#6b7280}
@media print{.print-perm{font-size:9.5pt;padding:2mm 3mm;margin-bottom:3mm}}
/* espace famille : fiches coordonnées et permanences */
.fa-sec-h h2{margin:0 0 .2rem}.fa-sec-h .hint{margin:0 0 .8rem}
.fa-fiches{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1rem}
.fa-fiche{background:var(--bg);border:1px solid var(--border-s);border-radius:12px;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.7rem}
.fa-fiche.moi{border:2px solid var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.fa-fiche header{display:flex;gap:.8rem;align-items:center}
.fa-fiche h3{margin:0;font-size:1.05rem;display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.fa-ini{flex:none;width:2.7rem;height:2.7rem;border-radius:50%;display:grid;place-items:center;background:#2c9f87;color:#fff;font:900 1rem var(--font);letter-spacing:.02em}
.fa-fiche.moi .fa-ini{background:var(--brand)}
.fa-chips{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem}
.fa-chip{font-size:.75rem;font-weight:700;color:var(--muted);background:var(--subtle);border:1px solid var(--border);border-radius:999px;padding:.05rem .55rem}
.fa-fiche dl{margin:0;display:grid;gap:.45rem}
.fa-fiche dl>div{display:grid;grid-template-columns:5.5rem 1fr;gap:.5rem;align-items:baseline;padding:.45rem .6rem;border-radius:8px;background:var(--subtle)}
.fa-fiche dt{font-size:.78rem;font-weight:700;color:var(--muted)}.fa-fiche dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.fa-fiche .fa-maj{margin:0;border:0;padding:0}
.fa-fiche .fa-maj summary{font-size:.9rem;margin:0;padding:.35rem 0;list-style:none;display:inline-flex;gap:.35rem;align-items:center}
.fa-fiche .fa-maj summary::-webkit-details-marker{display:none}
.fa-fiche .fa-maj summary::before{content:"✎"}
.fa-fiche .fa-maj[open] summary{color:var(--ink)}
.fa-fiche .fa-maj form{display:grid;gap:.25rem;margin-top:.4rem}.fa-fiche .fa-maj input{width:100%}.fa-fiche .fa-maj .btn{justify-self:start;margin-top:.4rem}
.fa-fiche .fa-maj label{margin:.3rem 0 0;font-size:.85rem}
.fa-manque{margin:.9rem 0 0}
.fa-perms{margin-top:1rem}
.fa-perm-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:.8rem 1.5rem}
.fa-perm h3{margin:.2rem 0 .4rem;font-size:.95rem}
.fa-perm ul{list-style:none;margin:0;padding:0}
.fa-perm li{display:flex;flex-direction:column;padding:.4rem 0;border-top:1px dashed var(--border)}.fa-perm li:first-child{border-top:0}
.fa-perm li span{font-size:.92rem}.fa-perm li small{color:var(--muted)}
/* ---------- Listes déroulantes : champ redessiné (toute la plateforme) ---------- */
:root{--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1.5 1.5 6 6l4.5-4.5' fill='none' stroke='%235d6d7e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1.5 1.5 6 6l4.5-4.5' fill='none' stroke='%23c4ccd6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}}
:root[data-theme=dark]{--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1.5 1.5 6 6l4.5-4.5' fill='none' stroke='%23c4ccd6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
select:not([multiple]):not([size]){-webkit-appearance:none;appearance:none;background-color:var(--bg);background-image:var(--chev);background-repeat:no-repeat;background-position:right .8rem center;background-size:12px 8px;
  padding:.55rem 2.3rem .55rem .8rem;border:1.5px solid var(--border-s);border-radius:10px;color:var(--ink);font:600 .95rem/1.3 var(--font);cursor:pointer;
  box-shadow:0 1px 2px rgba(16,24,40,.06);transition:border-color .12s,box-shadow .12s,background-color .12s;text-overflow:ellipsis}
select:not([multiple]):not([size]):hover{border-color:color-mix(in srgb,var(--brand) 55%,var(--border-s))}
select:not([multiple]):not([size]):focus-visible{outline:0;border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 20%,transparent)}
select:not([multiple]):not([size]):disabled{opacity:.5;cursor:not-allowed}
/* navigateurs récents (Chrome, Edge) : la liste ouverte aussi est redessinée ; ailleurs, liste du système */
@supports (appearance:base-select){
  select:not([multiple]):not([size]){appearance:base-select}
  select:not([multiple]):not([size])::picker-icon{display:none}
  select:not([multiple]):not([size])::picker(select){appearance:base-select;border:1px solid var(--border-s);border-radius:12px;padding:.35rem;background:var(--bg);
    box-shadow:0 12px 32px rgba(16,24,40,.18);margin-top:.3rem;max-height:22rem}
  select:not([multiple]):not([size]) option{padding:.5rem .7rem;border-radius:8px;font:500 .95rem var(--font);color:var(--text);cursor:pointer}
  select:not([multiple]):not([size]) option:hover,select:not([multiple]):not([size]) option:focus-visible{background:var(--brand-soft);color:var(--ink);outline:0}
  select:not([multiple]):not([size]) option:checked{background:var(--brand);color:#fff;font-weight:700}
  select:not([multiple]):not([size]) option::checkmark{display:none}
  select:not([multiple]):not([size]) option:disabled{opacity:.45}
}
/* petites listes dans les tableaux et barres d'outils */
table select:not([multiple]):not([size]),.as-pl select,.as-inline select,.toolbar select{padding-top:.4rem;padding-bottom:.4rem;font-size:.9rem;border-radius:8px}
/* assistant de grille : listes plus grandes, durée en bleu (style d'origine gardé) */
.g-ch select:not([multiple]):not([size]){width:100%;font:800 1.1rem var(--font);padding:.65rem 2.4rem .65rem .8rem;border-width:2px}
.g-ch-duree select:not([multiple]):not([size]){border-color:#2980b9;background-color:#eaf2fa}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .g-ch-duree select:not([multiple]):not([size]){background-color:var(--bg)}}
:root[data-theme=dark] .g-ch-duree select:not([multiple]):not([size]){background-color:var(--bg)}
.g-ch select:not([multiple]):not([size]){background-image:var(--chev);background-repeat:no-repeat;background-position:right .8rem center;background-size:12px 8px}
#g-debut,#g-fin{background-image:var(--chev);background-repeat:no-repeat;background-position:right .8rem center;background-size:12px 8px}
#g-debut,#g-fin,.g-ch-duree select{background-image:var(--chev)!important;background-repeat:no-repeat!important;background-position:right .8rem center!important;background-size:12px 8px!important}
/* en-tête entier toujours visible au défilement (barre du haut + menu) */
.nav{top:0}
/* menu en deux niveaux : sections, puis pages de la section active */
.links-2{background:var(--subtle);border-top:1px solid var(--border)}
.links-2 .wrap{display:flex;gap:.3rem;overflow-x:auto;scrollbar-width:none;padding:.35rem 0}
.links-2 .wrap::-webkit-scrollbar{display:none}
.links-2 a{white-space:nowrap;text-decoration:none;color:var(--muted);font:700 .85rem var(--font);padding:.35rem .8rem;border-radius:999px}
.links-2 a:hover{color:var(--ink);background:var(--clouds)}
.links-2 a[aria-current]{color:#fff;background:var(--brand)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .links-2 a[aria-current]{color:#0f1318}}
:root[data-theme=dark] .links-2 a[aria-current]{color:#0f1318}
/* tableau de bord : encart de statut de la réunion */
.db-st{background:var(--bg);border:1px solid var(--border-s);border-left:5px solid var(--brand);border-radius:var(--r);padding:1rem 1.2rem;margin:1rem 0 1.4rem;box-shadow:0 1px 3px rgba(16,24,40,.06)}
.db-vide{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.db-vide p{margin:.2rem 0 0;color:var(--muted)}
.db-st-h{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.db-st-h h2{margin:.1rem 0;font-size:1.25rem}.db-st-h h2 a{color:var(--ink);text-decoration:none}.db-st-h h2 small{font:700 .8rem var(--font);color:var(--muted);margin-left:.3rem}
.db-st-h p{margin:.2rem 0;color:var(--text)}
.db-st-r{text-align:right}.db-st-r p small{color:var(--muted)}
.db-phase{font-size:.9rem;padding:.3rem .8rem}
.db-steps{list-style:none;margin:1rem 0 0;padding:0;display:flex;gap:0}
.db-steps li{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.2rem;min-width:0}
.db-steps li::before{content:"";position:absolute;top:.85rem;left:-50%;right:50%;height:3px;background:var(--border-s);z-index:0}
.db-steps li:first-child::before{display:none}
.db-steps li.done::before,.db-steps li.cur::before{background:var(--brand)}
.db-dot{position:relative;z-index:1;width:1.8rem;height:1.8rem;border-radius:50%;display:grid;place-items:center;font:900 .8rem var(--font);background:var(--bg);border:3px solid var(--border-s);color:var(--muted)}
.db-steps li.done .db-dot{background:var(--brand);border-color:var(--brand);color:#fff}
.db-steps li.cur .db-dot{border-color:var(--brand);color:var(--brand);box-shadow:0 0 0 5px color-mix(in srgb,var(--brand) 18%,transparent)}
.db-steps b{font-size:.8rem;line-height:1.2;color:var(--muted)}.db-steps li.cur b{color:var(--ink)}.db-steps li.done b{color:var(--text)}
.db-steps small{font-size:.75rem;color:var(--muted)}
@media (max-width:700px){.db-st-r{text-align:left}.db-steps b{font-size:.68rem}.db-steps li:not(.cur) small{display:none}}
/* espace famille : vignettes de cours plus compactes, longues listes repliées */
.fa-cg{grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));gap:.75rem}
.fa-c h3{padding:.4rem .8rem;font-size:.95rem}
.fa-c ul{padding:.2rem .8rem .4rem}
.fa-c li{padding:.18rem 0;font-size:.92rem}
.fa-plus{position:absolute;opacity:0;pointer-events:none}
.fa-plus:not(:checked) ~ ul .fa-x{display:none}
.fa-plus-l{display:block;margin:0 .8rem .5rem;padding:.25rem 0 0;border-top:1px dashed var(--border);font:700 .82rem var(--font);color:var(--brand);cursor:pointer}
.fa-plus-l:hover{text-decoration:underline}
.fa-plus-l .r,.fa-plus:checked ~ .fa-plus-l .v{display:none}
.fa-plus:checked ~ .fa-plus-l .r{display:inline}
.fa-plus:focus-visible ~ .fa-plus-l{outline:2px solid var(--brand);outline-offset:2px}
.filtre-actif .fa-plus ~ ul .fa-x{display:flex}
.filtre-actif .fa-plus-l{display:none}
/* onglets d'aide « à la V2 » : intercalaires sobres, l'onglet actif se fond dans le panneau */
.aide-t{background:none;border:0;box-shadow:none;padding:0;align-items:flex-end;gap:0}
.aide-t>label{flex:0 0 auto;position:relative;z-index:1;margin:0 0 -2px;padding:.55rem 1.1rem;border:2px solid transparent;border-bottom:0;border-radius:10px 10px 0 0;color:var(--muted);background:none;font:700 .95rem var(--font)}
.aide-t>label:hover{color:var(--ink)}
.aide-t>input:checked+label{color:var(--ink);background:var(--bg);border-color:var(--border-s);border-bottom:0;padding-top:.7rem}
.aide-p{background:var(--bg);border:2px solid var(--border-s);border-radius:0 var(--r) var(--r) var(--r);order:9}
.lt-box span.lt-b1{flex-direction:column;align-items:flex-start;justify-content:center;line-height:1.25}.lt-reu{font-weight:800;font-size:8.5pt;color:#1f5f99;letter-spacing:.04em}

/* espace famille : connexion par clé (code de la réunion, clé, code visuel si nécessaire) */
.fa-cle{margin-top:.9rem;--cl:var(--border-s);--ct:var(--ink)}
.fa-cle[data-etat=partiel]{--cl:#d9534f;--ct:#c9302c}
.fa-cle[data-etat=code]{--cl:#e0b42a;--ct:#9a7400}
.fa-cle[data-etat=ok]{--cl:#4cae4c;--ct:#2f8a2f}
.fa-cle-t{display:flex;align-items:center;gap:.55rem;font:700 1.15rem var(--font);color:var(--ink);margin:0 0 .6rem}
.ic-cle,.ic-cal{width:1.3em;height:1.3em;fill:currentColor;flex:none}
.fa-cle-r{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;align-items:stretch}
.fa-cle-r:has(> .fa-cle-c:only-child){grid-template-columns:minmax(0,1fr)}
.fa-reu{display:flex;flex-direction:column;justify-content:center;gap:.05rem;padding:.35rem .9rem;border:2px solid var(--border-s);border-radius:var(--r);background:var(--subtle);color:var(--muted);min-width:7.5rem}
.fa-reu-c{display:flex;align-items:center;gap:.45rem;color:var(--ink)}
.fa-reu-c b{font:800 1.25rem var(--font);letter-spacing:.04em}
.fa-reu small{font-size:.75rem;padding-left:1.75rem}
.fa-cle-c{position:relative}
.fa-cle-c input{width:100%;height:100%;font:700 1.5rem var(--font);font-variant-numeric:tabular-nums;letter-spacing:.05em;padding:.6rem 3rem .6rem 1rem;border:3px solid var(--cl);border-radius:var(--r);color:var(--ct);background:var(--bg);transition:border-color .25s,color .25s}
.fa-cle-c input:focus,.fa-cv-in:focus{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--cl) 28%,transparent)}
.fa-cle-c input::placeholder,.fa-cv-in::placeholder{color:var(--muted);opacity:.45;font-weight:600}
.fa-cle-i{position:absolute;right:.9rem;top:50%;transform:translateY(-50%);display:flex;color:var(--cl);transition:color .25s}
.fa-cle:not([data-etat]) .fa-cle-i,.fa-cle[data-etat=vide] .fa-cle-i{color:var(--muted)}
.fa-cle-i .ic-cle{width:1.5rem;height:1.5rem}
.fa-cvz{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;margin-top:.6rem;padding:.5rem .6rem;border-radius:var(--r);background:var(--subtle);animation:fa-in .35s ease-out}
@keyframes fa-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.fa-cvz img{display:block;border-radius:8px;border:2px solid var(--border-s);background:#f8f9fb}
.fa-cle[data-etat=code] .fa-cvz img{border-color:#e0b42a}
.fa-cv-n{font:700 1.3rem/1 var(--font);text-decoration:none;color:var(--muted);padding:.25rem .35rem;border-radius:6px}
.fa-cv-n:hover{color:var(--brand);background:var(--bg)}
.fa-cv-in{width:5.2rem;font:800 1.5rem var(--font);text-align:center;letter-spacing:.15em;padding:.45rem .3rem;border:3px solid var(--border-s);border-radius:var(--r);background:var(--bg);color:var(--ink)}
.fa-cle[data-etat=code] .fa-cv-in{border-color:#e0b42a}
.fa-cle[data-etat=ok] .fa-cv-in{border-color:#4cae4c;color:#2f8a2f}
.fa-fl{display:inline-flex;gap:.12rem;margin-right:auto;visibility:hidden}
.fa-cle[data-etat=code] .fa-fl{visibility:visible}
.fa-fl i{width:1.4rem;height:1.1rem;background:#f0c93a;clip-path:polygon(0 30%,55% 30%,55% 0,100% 50%,55% 100%,55% 70%,0 70%);opacity:.25;animation:fa-fl 1.1s infinite}
.fa-fl i:nth-child(2){animation-delay:.18s}.fa-fl i:nth-child(3){animation-delay:.36s}
@keyframes fa-fl{0%,100%{opacity:.2}40%{opacity:1}}
@media (prefers-reduced-motion:reduce){.fa-fl i,.fa-cvz{animation:none}.fa-fl i{opacity:.7}}
.fa-cle-m{margin:.6rem 0 0;line-height:1.45}
.fa-cv-l{background:#f0c93a;color:#3a2d00;border-radius:5px;padding:.05rem .45rem;font-weight:800;white-space:nowrap}
.fa-cle-b{display:flex;width:100%;justify-content:center;margin-top:.8rem;font-size:1.05rem;padding:.8rem 1rem}
.fa-cle-b:disabled{background:var(--border-s);border-color:var(--border-s);color:var(--muted);cursor:not-allowed;opacity:1}
.fa-mail{margin-top:1.1rem;border-top:1px solid var(--border);padding-top:.7rem}
.fa-mail summary{cursor:pointer;font-weight:700;color:var(--muted);font-size:.92rem}
.fa-mail summary:hover,.fa-mail[open] summary{color:var(--ink)}
.fa-mail form{padding-top:.6rem}.fa-mail input[type=email]{width:100%}
@media (max-width:520px){.fa-cle-r{grid-template-columns:minmax(0,1fr)}.fa-reu{flex-direction:row;align-items:center;gap:.6rem}.fa-reu small{padding:0}
  .fa-cle-c input{font-size:1.25rem;padding-right:2.6rem}.fa-cvz{flex-wrap:wrap;justify-content:center}.fa-fl{display:none}}
/* code de la réunion (chip) en tête des pages */
.reu-chip{display:inline-flex;align-items:center;gap:.4rem;font:700 .82rem var(--font);color:var(--ink);background:var(--subtle);border:1px solid var(--border-s);border-radius:999px;padding:.2rem .7rem .2rem .55rem;vertical-align:middle}
.reu-chip b{font-weight:800;letter-spacing:.04em}.reu-chip .ic-cal{width:1.05em;height:1.05em;color:var(--brand)}.reu-chip span{color:var(--muted);font-weight:600}
/* code de la réunion dans le bandeau */
.hdr-reu{display:inline-flex;align-items:center;gap:.35rem;margin-left:1rem;padding:.25rem .7rem .25rem .55rem;border-radius:999px;border:1px solid rgba(255,255,255,.35);color:#fff;text-decoration:none;font:700 .85rem var(--font);white-space:nowrap;flex:none}
.hdr-reu b{font-weight:900;letter-spacing:.05em}.hdr-reu span{opacity:.75;font-weight:600}
.hdr-reu .ic-cal{width:1.05em;height:1.05em;fill:#9be38a}
a.hdr-reu:hover{background:rgba(255,255,255,.12);color:#fff}
@media (max-width:520px){.hdr-reu{margin-left:.4rem;padding:.2rem .5rem}.hdr-reu span{display:none}}
/* ---------- Espace famille : prise de rendez-vous ---------- */
.note.warn{background:var(--warn-bg);color:var(--warn)}
.note.warn a{color:inherit;font-weight:700}
.rf-h{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:1rem;align-items:stretch;margin:.4rem 0 1rem}
.rf-h h1{margin:.15rem 0 .2rem}.rf-h h1 small{font:700 1rem var(--font);color:var(--muted);margin-left:.3rem}
.rf-etat{margin:0;color:var(--muted)}
.rf-quota,.rf-aff{display:flex;flex-direction:column;justify-content:center;gap:.15rem;padding:.7rem 1rem;border:1px solid var(--border-s);border-radius:var(--r);background:var(--bg);min-width:9.5rem}
.rf-quota b{font:900 1.6rem/1 var(--font);color:var(--ink)}.rf-quota span,.rf-aff span{font-size:.8rem;color:var(--muted)}
.rf-pts{display:flex;gap:.3rem}.rf-pts i{width:.85rem;height:.85rem;border-radius:50%;border:2px solid var(--brand);background:transparent}.rf-pts i.on{background:var(--brand)}
.rf-aff b{font-size:.95rem;color:var(--ink)}
.rf-aff-i{display:flex;align-items:flex-end;gap:3px;height:1.1rem}.rf-aff-i i{width:6px;border-radius:2px;background:var(--border-s)}
.rf-aff-i i:nth-child(1){height:40%}.rf-aff-i i:nth-child(2){height:70%}.rf-aff-i i:nth-child(3){height:100%}
.aff-calme .rf-aff-i i:nth-child(1){background:#3a8323}
.aff-soutenue .rf-aff-i i:nth-child(-n+2){background:#d97706}
.aff-forte .rf-aff-i i{background:#c0392b}
@media (max-width:760px){.rf-h{grid-template-columns:1fr 1fr}.rf-h>div:first-child{grid-column:1/-1}}
.rf-enf{display:flex;gap:.4rem;flex-wrap:wrap;margin:.2rem 0 .6rem}
.rf-enf a{display:inline-flex;gap:.4rem;align-items:center;padding:.35rem .9rem;border-radius:999px;border:1px solid var(--border-s);text-decoration:none;color:var(--text);font-weight:700;background:var(--bg)}
.rf-enf a span{font-size:.78rem;color:var(--muted)}.rf-enf a[aria-current]{background:var(--brand);border-color:var(--brand);color:#fff}.rf-enf a[aria-current] span{color:rgba(255,255,255,.85)}
.rf-sec-h{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.rf-sec-h h2{margin:0}
.rf-hor{margin-bottom:1.2rem}
.rf-ls{list-style:none;margin:.8rem 0 0;padding:0}
.rf-l{display:grid;grid-template-columns:4.6rem minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.6rem 0;border-top:1px solid var(--border)}
.rf-l:first-child{border-top:0}
.rf-t{font:900 1.15rem var(--font);color:var(--ink);display:flex;flex-direction:column;line-height:1.1}.rf-t small{font:600 .75rem var(--font);color:var(--muted)}
.rf-q b{display:block}.rf-q small{color:var(--muted)}
.rf-l.conv .rf-t{color:#2980b9}
.rf-l.neuf{animation:rf-neuf 2.4s ease-out}
@keyframes rf-neuf{0%{background:color-mix(in srgb,var(--brand) 25%,transparent)}100%{background:transparent}}
.rf-ann{margin:0}
.rf-choix{margin-top:1.4rem}.rf-q-in{min-width:min(100%,22rem)}
.rf-t2{margin:1.6rem 0 .6rem;font-size:1.1rem}
.rf-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:.9rem;align-items:start;margin-top:.8rem}
.rf-p{background:var(--bg);border:1px solid var(--border-s);border-radius:var(--r);overflow:hidden;scroll-margin-top:calc(var(--bandeau-h,60px) + 1rem)}
.rf-p[hidden]{display:none}
.rf-p header{padding:.4rem .9rem;background:var(--bcf,#eef2f5);color:var(--bct,var(--ink));border-bottom:3px solid var(--bcl,var(--border-s));font:700 .85rem var(--font)}
.rf-p-b{padding:.7rem .9rem .8rem}
.rf-p-t{display:flex;justify-content:space-between;gap:.6rem;align-items:flex-start}
.rf-p-i h3{margin:0;font-size:1.02rem}.rf-p-i p{margin:.15rem 0 0;font-size:.85rem;color:var(--muted)}
.rf-p.fait{border-color:color-mix(in srgb,var(--brand) 50%,var(--border-s))}
.rf-p.niv-abs{opacity:.7}
.rf-ok{margin:.5rem 0 0;color:var(--ok)}.rf-abs{margin:.5rem 0 0;color:var(--muted)}
.rf-pick{margin-top:.55rem}
.rf-pick summary{cursor:pointer;font-weight:700;color:var(--brand);font-size:.92rem;padding:.3rem 0}
.rf-pick[open] summary{margin-bottom:.4rem}
.rf-modes{border:0;padding:0;margin:0 0 .5rem;display:flex;flex-wrap:wrap;gap:.3rem .9rem}.rf-modes legend{font-size:.8rem;color:var(--muted);padding:0;margin-bottom:.2rem}
.rf-mode{display:inline-flex;gap:.35rem;align-items:center;font-size:.88rem;margin:0}
.rf-ss{display:grid;grid-template-columns:repeat(auto-fill,minmax(4.4rem,1fr));gap:.35rem}
.rf-s{font:800 .92rem var(--font);font-variant-numeric:tabular-nums;padding:.5rem .2rem;border-radius:8px;border:2px solid #3a8323;background:var(--bg);color:#2d6a1b;cursor:pointer;transition:background .15s,color .15s,transform .1s}
.rf-s:hover:not(:disabled){background:#3a8323;color:#fff}
.rf-s:active:not(:disabled){transform:scale(.96)}
.rf-s:focus-visible{outline:3px solid color-mix(in srgb,#3a8323 45%,transparent);outline-offset:2px}
.rf-s.s-pris{border-color:var(--border);background:var(--subtle);color:var(--muted);text-decoration:line-through;cursor:not-allowed}
.rf-s.s-conflit{border-color:var(--border);border-style:dashed;background:repeating-linear-gradient(135deg,transparent 0 6px,var(--subtle) 6px 12px);color:var(--muted);cursor:not-allowed}
.rf-s.s-frere{border-color:#d97706;color:#b45309;position:relative}
.rf-s.s-frere::after{content:"";position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:#d97706}
.rf-s:disabled:not(.s-pris):not(.s-conflit){opacity:.55;cursor:not-allowed}
.rf-s.envoi{background:#3a8323;color:#fff;opacity:1}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .rf-s{color:#8bd47a;border-color:#5fae4b}:root:not([data-theme=light]) .rf-s:hover:not(:disabled){background:#5fae4b;color:#0f1318}}
:root[data-theme=dark] .rf-s{color:#8bd47a;border-color:#5fae4b}:root[data-theme=dark] .rf-s:hover:not(:disabled){background:#5fae4b;color:#0f1318}
.rf-leg{display:flex;flex-wrap:wrap;gap:.6rem;margin:.6rem 0 0;font-size:.75rem;color:var(--muted)}
.rf-leg span{display:inline-flex;align-items:center;gap:.3rem}
.rf-leg span::before{content:"";width:.8rem;height:.8rem;border-radius:3px;border:2px solid #3a8323}
.rf-leg .s-pris::before{border-color:var(--border);background:var(--subtle)}
.rf-leg .s-conflit::before{border:2px dashed var(--border)}
.rf-leg .s-frere::before{border-color:#d97706}
.rf-dem{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:.6rem}.rf-dem p{flex-basis:100%;margin:0}.rf-dem input{flex:1 1 10rem}
.rf-toast{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);z-index:80;max-width:min(92vw,34rem);background:#2c3e50;color:#fff;padding:.75rem 1.1rem;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.25);font-weight:600;animation:fa-in .3s ease-out}
.rf-toast[hidden]{display:none}
.fa-essai{border-left:4px solid #d97706}
/* accueil famille : une ligne par enfant */
.rs-l{list-style:none;margin:.6rem 0 0;padding:0}
.rs-l li{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:.9rem;align-items:center;padding:.65rem 0;border-top:1px solid var(--border)}
.rs-l li:first-child{border-top:0}
.rs-e small{display:block;color:var(--muted);font-size:.82rem}
.rs-n{font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
@media (max-width:560px){.rs-l li{grid-template-columns:minmax(0,1fr) auto}.rs-l li .rf-pts{display:none}.rs-l li .btn{grid-column:1/-1}}
/* horaire imprimable */
.hor-outils{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.hor-e{margin:1rem 0 1.4rem;break-inside:avoid}.hor-e h2{margin:0 0 .4rem;font-size:1.15rem}.hor-e h2 small{color:#6b7280;font-size:.85rem}
.hor-t td,.hor-t th{text-align:left}
/* cartes plus compactes, bouton « Choisir une heure » */
.rf-g{grid-template-columns:repeat(auto-fill,minmax(min(100%,15.5rem),1fr));gap:.7rem}
.rf-p header{padding:.3rem .8rem;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rf-p-b{padding:.55rem .8rem .65rem}
.rf-p-i h3{font-size:.98rem}.rf-p-i p{font-size:.8rem}
.rf-p-t .pill{font-size:.72rem;white-space:nowrap}
details.rf-pick{border:0;padding:0;margin:.5rem 0 0;border-radius:0}
.rf-pick summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0}
.rf-pick summary::-webkit-details-marker{display:none}
.rf-pick-b{display:inline-flex;align-items:center;gap:.35rem;font:700 .85rem var(--font);color:#fff;background:#3a8323;border-radius:8px;padding:.38rem .75rem}
.rf-pick-b::after{content:"▾";font-size:.75rem;transition:transform .2s}
.rf-pick[open] .rf-pick-b{background:var(--subtle);color:var(--ink)}
.rf-pick[open] .rf-pick-b::after{transform:rotate(180deg)}
.rf-pick-n{font:600 .8rem var(--font);color:var(--muted)}.rf-pick-n b{color:var(--ink)}
.rf-pick[open] summary{margin-bottom:.55rem}
.niv-complet .rf-pick-b{background:var(--subtle);color:var(--muted)}
.rf-pick-b,.rf-pick-n{white-space:nowrap}
.rf-pick-b{padding:.34rem .65rem}
/* ---------- Administration : rendez-vous des parents ---------- */
.pl-etat{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem}.pl-etat p{margin:0}.pl-etat .hint{flex-basis:100%}
.pl-ks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:.8rem;margin:1rem 0}
.pl-k{background:var(--bg);border:1px solid var(--border-s);border-radius:var(--r);padding:.8rem 1rem;display:flex;flex-direction:column;gap:.1rem}
.pl-k b{font:900 1.7rem/1.1 var(--font);color:var(--ink)}.pl-k span{font-weight:700;color:var(--text)}.pl-k small{color:var(--muted);font-size:.8rem}
.pl-hist ul{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.25rem}
.pl-hist li{display:grid;grid-template-columns:6.5rem minmax(0,1fr) 3rem;gap:.6rem;align-items:center;font-size:.85rem}.pl-hist li b{text-align:right}
.pl-c{display:block;color:var(--muted);font-size:.8rem}
.pl-bar{min-width:9rem}.pl-bar .rv-barre{display:inline-block;width:5.5rem;vertical-align:middle;margin-right:.4rem}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tr.pl-abs td{opacity:.6}tr.pl-ok td{opacity:.65}
.es-sw .app-sw{display:flex;align-items:center;gap:.7rem}
.es-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1.2rem;margin-top:1rem}
.es-l{list-style:none;margin:.6rem 0 0;padding:0}
.es-l li{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.55rem 0;border-top:1px solid var(--border)}.es-l li:first-child{border-top:0}
.es-l li>div,.es-l li>span{flex:1 1 12rem}.es-l small{display:block;color:var(--muted)}
.es-l form{margin:0}
.rv-dem ul{list-style:none;margin:.5rem 0 0;padding:0}
.rv-dem li{display:flex;gap:.7rem;align-items:flex-start;flex-wrap:wrap;padding:.6rem 0;border-top:1px solid var(--border)}.rv-dem li:first-child{border-top:0}
.rv-dem li>div{flex:1 1 18rem}.rv-dem li p{margin:.3rem 0}.rv-dem form{margin:0}.rv-dem-ok{opacity:.6}
.cr-rdv{background:color-mix(in srgb,#3a8323 14%,var(--bg));border-color:#3a8323;cursor:not-allowed}
.es-sw .app-sw{justify-content:flex-start;margin:0}
.rf-pick summary{flex-wrap:wrap;row-gap:.3rem}
.rf-err-c{font-size:.88rem;margin:0 0 .6rem}
@media (max-width:520px){.theme-b .theme-l{display:none}.hdr-reu{margin-left:.3rem}.hdr-reu .ic-cal{display:none}}
@media (max-width:520px){.who .out{padding:.3rem .5rem;font-size:.8rem}.nav-top .brand-logo{height:32px;width:auto}.who{gap:.4rem}}
.who .out{white-space:nowrap}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .rf-p header{background:color-mix(in srgb,var(--bcl,#556) 28%,var(--bg));color:#fff}}
:root[data-theme=dark] .rf-p header{background:color-mix(in srgb,var(--bcl,#556) 28%,var(--bg));color:#fff}
.print-doc .hor-e h2{color:#111827}.print-doc .hor-e h2 small{color:#6b7280}
.print-doc .hor-t th{background:#f3f4f6;color:#374151}.print-doc .hor-t td{color:#111827}
.print-doc .hint{color:#6b7280}
@media print{.fa-essai,.fa-apercu,.rf-toast{display:none !important}}
/* ---------- Prise de rendez-vous : assistant en 3 étapes ---------- */
.rf-pas{list-style:none;margin:.2rem 0 1rem;padding:0;display:flex;gap:.5rem;flex-wrap:wrap;counter-reset:none}
.rf-pas li{flex:1 1 12rem;display:flex;align-items:center;gap:.6rem;padding:.6rem .9rem;border:2px solid var(--border);border-radius:var(--r);background:var(--bg);color:var(--muted);font-weight:700}
.rf-pas li span{flex:none;width:1.9rem;height:1.9rem;border-radius:50%;display:grid;place-items:center;background:var(--subtle);border:2px solid var(--border-s);font-weight:900}
.rf-pas li.cur{border-color:#3a8323;color:var(--ink)}.rf-pas li.cur span{background:#3a8323;border-color:#3a8323;color:#fff}
.rf-pas li.done{color:var(--text)}.rf-pas li.done span{background:var(--ok-bg);border-color:#3a8323;color:#2d6a1b}
.rf-et{margin-bottom:1.2rem}.rf-et>h2{margin:0 0 .3rem}
.rf-tabs{display:flex;flex-wrap:wrap;margin-top:.8rem}
.rf-tabs>input{position:absolute;opacity:0}
.rf-tabs>label{margin:0 0 -2px;padding:.6rem 1.2rem;border:2px solid transparent;border-bottom:0;border-radius:10px 10px 0 0;color:var(--muted);font:700 1rem var(--font);cursor:pointer;position:relative;z-index:1}
.rf-tabs>input:checked+label{background:var(--bg);border-color:var(--border-s);color:var(--ink)}
.rf-tabs>input:focus-visible+label{outline:3px solid color-mix(in srgb,var(--brand) 40%,transparent)}
.rf-tab{display:none;flex-basis:100%;background:var(--bg);border:2px solid var(--border-s);border-radius:0 var(--r) var(--r) var(--r);padding:1rem}
#par-b:checked~.rf-tab-b,#par-n:checked~.rf-tab-n{display:block}
.rf-bs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,11.5rem),1fr));gap:.55rem}
.rf-b{display:flex;flex-direction:column;justify-content:center;gap:.1rem;min-height:3.6rem;padding:.55rem .85rem;border-radius:var(--r);border:2px solid var(--bcl,var(--border-s));background:var(--bcf,var(--subtle));color:var(--bct,var(--ink));text-decoration:none;font:800 1rem/1.2 var(--font);transition:transform .1s,box-shadow .15s}
.rf-b small{font:600 .78rem var(--font);opacity:.8}
.rf-b:hover{box-shadow:0 3px 10px rgba(0,0,0,.12);transform:translateY(-1px)}
.rf-b.on{background:var(--bcl,#3a8323);color:#fff;border-color:var(--bcl,#3a8323)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .rf-b:not(.on){background:color-mix(in srgb,var(--bcl,#556) 22%,var(--bg));color:#fff}}
:root[data-theme=dark] .rf-b:not(.on){background:color-mix(in srgb,var(--bcl,#556) 22%,var(--bg));color:#fff}
.rf-bl{margin-top:1.1rem;padding-top:1rem;border-top:2px solid var(--border)}.rf-bl h3{margin:0 0 .5rem}
.rf-rs{list-style:none;margin:.4rem 0 0;padding:0}
.rf-r{display:grid;grid-template-columns:minmax(0,1fr) auto 4.5rem auto;gap:.8rem;align-items:center;padding:.7rem .2rem;border-top:1px solid var(--border)}
.rf-r:first-child{border-top:0}.rf-r[hidden]{display:none}
.rf-r-i b{display:block;font-size:1.05rem;color:var(--ink)}.rf-r-i small{color:var(--muted)}
.rf-r-n{font-size:.85rem;color:var(--muted);text-align:right;white-space:nowrap}.rf-r-n b{color:var(--ink);font-size:1rem}
.rf-r.niv-abs{opacity:.6}
.btn.rf-go{font-size:1rem;padding:.6rem 1.1rem;white-space:nowrap}
.rf-tab-n .rf-q-in{width:100%;margin-bottom:.4rem}
@media (max-width:640px){.rf-r{grid-template-columns:minmax(0,1fr) auto}.rf-r-n{text-align:left}.rf-r .rf-go{grid-column:1/-1;justify-content:center}}
.rf-p2-h{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin:-1.3rem -1.3rem 1rem;padding:1rem 1.3rem;background:var(--bcf,var(--subtle));border-bottom:3px solid var(--bcl,var(--border-s));border-radius:var(--r) var(--r) 0 0}
.rf-p2-h h2{margin:.1rem 0;color:var(--bct,var(--ink));font-size:1.5rem}.rf-p2-h p{margin:0;color:var(--bct,var(--text))}
.rf-p2-h .rf-cours{font:700 .85rem var(--font);color:var(--bct,var(--muted));text-transform:uppercase;letter-spacing:.04em}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .rf-p2-h{background:color-mix(in srgb,var(--bcl,#556) 25%,var(--bg))}:root:not([data-theme=light]) .rf-p2-h h2,:root:not([data-theme=light]) .rf-p2-h p,:root:not([data-theme=light]) .rf-p2-h .rf-cours{color:#fff}}
:root[data-theme=dark] .rf-p2-h{background:color-mix(in srgb,var(--bcl,#556) 25%,var(--bg))}:root[data-theme=dark] .rf-p2-h h2,:root[data-theme=dark] .rf-p2-h p,:root[data-theme=dark] .rf-p2-h .rf-cours{color:#fff}
.rf-p2 .rf-p{border:0;background:none;overflow:visible}
.rf-cons{font-size:1.05rem;margin:0 0 .7rem}
.rf-p2 .rf-ss{grid-template-columns:repeat(auto-fill,minmax(5.6rem,1fr));gap:.5rem}
.rf-p2 .rf-s{font-size:1.1rem;padding:.75rem .3rem;border-radius:var(--r)}
.rf-nav{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}
.rf-nav .btn{font-size:1rem;padding:.65rem 1.2rem}
.btn.rf-back{background:#c0392b;border-color:#c0392b;color:#fff}.btn.rf-back:hover{background:#a93226;border-color:#a93226;color:#fff}
.rf-fait{display:flex;gap:1.2rem;align-items:flex-start;border-color:#3a8323 !important}
.rf-fait-i{flex:none;width:3.6rem;height:3.6rem;border-radius:50%;background:#3a8323;color:#fff;display:grid;place-items:center;font:900 1.8rem var(--font);animation:fa-in .4s ease-out}
.rf-fait h2{margin:0 0 .3rem;color:#2d6a1b;font-size:1.6rem}
.rf-fait-q{font-size:1.15rem;margin:.2rem 0 .4rem}
@media (max-width:560px){.rf-fait{flex-direction:column}}
/* accueil famille : une carte par enfant */
.rs-etat{margin:.15rem 0 0;color:var(--ok);font-weight:700;display:flex;align-items:center;gap:.45rem}
.rs-pt{width:.6rem;height:.6rem;border-radius:50%;background:#3a8323;box-shadow:0 0 0 0 rgba(58,131,35,.5);animation:rs-pt 2s infinite}
@keyframes rs-pt{0%{box-shadow:0 0 0 0 rgba(58,131,35,.45)}70%{box-shadow:0 0 0 8px rgba(58,131,35,0)}100%{box-shadow:0 0 0 0 rgba(58,131,35,0)}}
@media (prefers-reduced-motion:reduce){.rs-pt{animation:none}}
.rs-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:1rem;margin-top:.9rem}
.rs-c{display:flex;flex-direction:column;gap:.7rem;background:var(--bg);border:2px solid var(--border-s);border-top:5px solid #3a8323;border-radius:var(--r);padding:1rem 1.1rem}
.rs-c.plein{border-top-color:#2980b9}
.rs-c-h{display:flex;gap:.8rem;align-items:center}.rs-c-h h3{margin:0 0 .15rem;font-size:1.15rem}
.rs-c-q{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.rs-c-q b{font:900 1.35rem var(--font);color:var(--ink)}.rs-c-q span{color:var(--muted);font-size:.88rem}
.rs-c-q .rf-pts i{width:1.05rem;height:1.05rem}
.rs-c-l{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.rs-c-l li{padding:.35rem .6rem;border-radius:var(--r);background:var(--subtle);font-size:.92rem}.rs-c-l li b{margin-right:.35rem;color:var(--ink)}
.rs-c-l li.conv{background:color-mix(in srgb,#2980b9 12%,var(--bg))}.rs-c-l small{color:var(--muted)}
.rs-c-v{margin:0;color:var(--muted)}
.btn.rs-go{margin-top:auto;justify-content:center;font-size:1.05rem;padding:.7rem 1rem}
.js-copier.copie{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.fa-cle-l code.fa-cle{font-size:1.2rem;padding:.2rem .5rem}
.fa-act{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.fa-act form{margin:0}.fa-act .btn{margin:0}
/* aide de connexion : étape en cours */
.aide-etape{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:.6rem 0 .4rem;font-weight:700;color:var(--ink)}
.aide-etape-l{background:var(--slate);color:#fff;font:800 .72rem var(--font);text-transform:uppercase;letter-spacing:.05em;padding:.25rem .55rem;border-radius:4px}
.aide-etape-i{width:1.6rem;height:1.6rem;border-radius:4px;background:var(--border-s);display:inline-grid;place-items:center;color:#fff;font-size:.9rem}
.aide-etape-i::before{content:"🔑";font-size:.85rem;filter:grayscale(1) brightness(3)}
.aide-etape-i.e-partiel{background:#d9534f}.aide-etape-i.e-code{background:#e0b42a}.aide-etape-i.e-ok{background:#4cae4c}
.aide-etape-i.e-ok::before{content:"✓";filter:none;font-weight:900}
/* mise en page « v2 » : couleurs douces, cartes bien délimitées */
.card,.tile{border:2px solid var(--border)}
.card.login{border:2px solid var(--slate)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .card.login{border-color:var(--border-s)}}
:root[data-theme=dark] .card.login{border-color:var(--border-s)}
.rf-hor,.rf-et{border-color:var(--border-s)}
.card.aide-t{border:0}
/* rendez-vous rapprochés : couleur dans les horaires, créneaux « sans marge » */
.rf-l.m-serre{background:color-mix(in srgb,#e0b42a 14%,transparent);box-shadow:inset 4px 0 0 #e0b42a}
.rf-l.m-site{background:color-mix(in srgb,#d9534f 12%,transparent);box-shadow:inset 4px 0 0 #d9534f}
.rf-l.m-serre .rf-t,.rf-l.m-site .rf-t{padding-left:.5rem}
.rf-marge ul{margin:.3rem 0 0;padding-left:1.1rem}
.rf-s.s-serre{border-color:#e0b42a;color:#9a7400;background:color-mix(in srgb,#e0b42a 10%,var(--bg))}
.rf-s.s-loin{border-color:#d9534f;color:#b52b27;background:color-mix(in srgb,#d9534f 8%,var(--bg))}
.rf-s.s-serre:hover:not(:disabled){background:#e0b42a;color:#fff}.rf-s.s-loin:hover:not(:disabled){background:#d9534f;color:#fff}
.rf-leg .s-serre::before{border-color:#e0b42a;background:color-mix(in srgb,#e0b42a 15%,transparent)}
.rf-leg .s-loin::before{border-color:#d9534f;background:color-mix(in srgb,#d9534f 12%,transparent)}
.print-doc tr.m-serre td{background:#fdf6dd}.print-doc tr.m-site td{background:#fbe3e2}
.print-doc tr.m-serre td:first-child{box-shadow:inset 4px 0 0 #e0b42a}.print-doc tr.m-site td:first-child{box-shadow:inset 4px 0 0 #d9534f}
.hor-av{margin:.5rem 0 0;padding:.5rem .8rem;border-radius:var(--r);background:#fef3c7;color:#7c4a03;font-size:.9rem}
.hor-date{margin:.25rem 0 0;font-size:1.05rem;color:#374151}
.hor-date span{display:inline-block;font:800 1.15rem var(--font);color:#fff;background:#3a8323;border-radius:6px;padding:.15rem .6rem;margin-right:.35rem}
.rs-c-av{margin:0;padding:.4rem .6rem;border-radius:var(--r);background:var(--warn-bg);color:var(--warn);font-size:.85rem;font-weight:700}
/* couleurs des branches : 2 couleurs de plus, neutre, et styles (vif, doux, sobre) */
.bc10{--bcf:#f3ebe3;--bct:#6e4423;--bcl:#a0612b}.bc11{--bcf:#e8edf1;--bct:#34495e;--bcl:#5d7286}
.bcn{--bcf:var(--subtle);--bct:var(--ink);--bcl:#95a5a6}
[class*="bc"].st-doux{--bcf:color-mix(in srgb,var(--bcl) 7%,var(--bg))}
[class*="bc"].st-sobre{--bcf:var(--bg);--bct:var(--ink)}
.rf-b.st-sobre,.rf-b.st-doux{border-width:1px 1px 1px 6px;border-color:var(--border-s) var(--border-s) var(--border-s) var(--bcl)}
.rf-b.st-sobre.on,.rf-b.st-doux.on{border-color:var(--bcl);background:var(--bcl);color:#fff}
.fa-c.st-sobre h3{border-bottom-color:var(--border-s);box-shadow:inset 5px 0 0 var(--bcl)}
.rf-p2-h.st-sobre{box-shadow:inset 6px 0 0 var(--bcl)}
#liste{scroll-margin-top:calc(var(--bandeau-h,60px) + 1rem)}
.cb-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:.6rem}
.cb-g label{display:flex;align-items:center;gap:.6rem;margin:0}
.cb-g select{flex:1;min-width:0}
.cb-ap{min-width:7.5rem;margin:0}
.cb-st{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.8rem;margin:.6rem 0 1rem}
.cb-st label{display:flex;flex-direction:column;gap:.5rem;padding:.7rem;border:2px solid var(--border);border-radius:var(--r);background:var(--bg);margin:0;cursor:pointer}
.cb-st label:has(input:checked){border-color:#3a8323}
.cb-st .cb-ex{display:flex;gap:.4rem}.cb-st .rf-b{min-height:2.6rem;flex:1;font-size:.85rem;pointer-events:none}
.cb-g{grid-template-columns:repeat(auto-fill,minmax(min(100%,21rem),1fr))}
.cb-g label{display:grid;grid-template-columns:minmax(0,1fr) 8.5rem}
.cb-g .cb-ap{min-width:0;min-height:2.8rem;font-size:.92rem}
.cb-g select{width:100%}
/* lien vers la plateforme dans l'horaire imprimé */
.hor-lien{margin:1rem 0 0;padding:.6rem .9rem;border:2px solid #3a8323;border-radius:var(--r);color:#111827;font-weight:700}
.hor-lien a{color:#2d6a1b;word-break:break-all}
/* listes de rendez-vous du personnel */
.li-imp{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.2rem 0 1rem}.li-imp .btn{margin:0}.li-imp small{font-weight:600;opacity:.75;margin-left:.25rem}
.li-outils{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;align-items:center;margin-bottom:1rem}
.li-tabs{display:flex;gap:.3rem;flex-wrap:wrap}
.li-tabs a{padding:.5rem 1rem;border:2px solid var(--border-s);border-radius:var(--r);text-decoration:none;font-weight:700;color:var(--text);background:var(--bg)}
.li-tabs a[aria-current]{border-color:#3a8323;background:#3a8323;color:#fff}
.li-n{margin:.2rem 0 0;color:#6b7280;font-size:.9rem}
.li-t td small{display:block;color:#6b7280;font-size:.8rem}
.li-t .li-p{color:#6b7280;font-style:italic}
.li-t tr.li-pause td,.li-t tr.li-libre td{background:#f9fafb}
.li-t tr.li-convocation td:first-child{box-shadow:inset 4px 0 0 #2980b9}
.li-c{font-size:.85rem;line-height:1.35}
.li-notes{min-width:7rem}
.li-complete .li-t td{vertical-align:top}
/* affiche pour la porte : nom et local en grand */
.li-porte header{display:flex;align-items:stretch;justify-content:space-between;gap:1.5rem;border-bottom:4px solid #111827;padding-bottom:1rem;margin-bottom:1rem}
.li-porte .li-qui{display:flex;flex-direction:column;justify-content:center;min-width:0}
.li-porte .li-date{margin:0;font:700 1.1rem var(--font);color:#374151;text-transform:none}
.li-porte h1{font-size:2.8rem;margin:.3rem 0 0;color:#111827;line-height:1.1}
.li-porte .li-local{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 auto;margin:0;padding:.5rem 1.8rem .7rem;border-radius:12px;background:#111827;color:#fff;font:900 5rem/1 var(--font);text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.li-porte .li-local small{font:700 1.05rem/1.3 var(--font);color:#e5e7eb;text-transform:uppercase;letter-spacing:.08em}
.li-porte .li-local .li-l2{text-transform:none;letter-spacing:0;margin-top:.25rem}
.li-sig{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .8rem}
.li-sig label{font-weight:700}
.li-porte .li-t{width:100%;border-collapse:collapse;font-size:1.35rem}
.li-porte .li-t th{text-align:left;font-size:.9rem;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;border-bottom:2px solid #111827;padding:.3rem .5rem}
.li-porte .li-t td{padding:.45rem .5rem;border-bottom:1px solid #d1d5db;color:#111827}
.li-porte .li-t td.lc{font-weight:900;width:6rem}
.li-vide{text-align:center;font-size:1.4rem;color:#6b7280}
@media print{.li-porte h1{font-size:34pt}.li-porte .li-local{font-size:60pt}.li-porte .li-t{font-size:15pt}.li-porte .li-t td{padding:2.2mm 2mm}}
.pl-act{display:flex;gap:.3rem;flex-wrap:wrap}.pl-act .btn{margin:0}
/* personnel : retirer un cours à la main */
.at-l{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;line-height:1.5}
.at-l form{margin:0}
.at-x{all:unset;cursor:pointer;width:1.35rem;height:1.35rem;border-radius:50%;display:inline-grid;place-items:center;font:900 .95rem/1 var(--font);color:var(--bad);background:var(--bad-bg);opacity:.55}
.at-x:hover,.at-x:focus-visible{opacity:1;outline:2px solid var(--bad);outline-offset:1px}
tr:hover .at-x{opacity:.9}
.at-off{color:var(--muted)}.at-off small{font-size:.75rem}
/* « Qui êtes-vous ? » */
.qui-c{border-color:#3a8323 !important;margin-bottom:1.2rem}.qui-c h2{margin:0 0 .2rem}
.qui-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));gap:.6rem;margin-top:.8rem}
.qui-b{font:800 1.05rem var(--font);padding:.9rem 1rem;border-radius:var(--r);border:2px solid var(--border-s);background:var(--bg);color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s}
.qui-b:hover,.qui-b:focus-visible{border-color:#3a8323;background:var(--ok-bg)}
.qui-b.on{border-color:#3a8323;background:#3a8323;color:#fff}
.qui-l{margin:.3rem 0 0;color:var(--text)}
.rf-quisel{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 0 .9rem;padding:.6rem .8rem;border-radius:var(--r);background:var(--bg);border:2px solid var(--border-s)}
.rf-quisel label{margin:0;font-weight:800;color:var(--ink)}.rf-quisel select{flex:1 1 14rem;max-width:22rem}
.rf-qui{display:flex;gap:.3rem;align-items:center;margin-top:.25rem}.rf-qui select{font-size:.85rem;padding:.2rem 1.8rem .2rem .5rem;min-height:0}
.rv-qui,.li-qui{font-size:.82rem;margin-top:.2rem}
/* « Qui assistera à la réunion ? » : liste des responsables connus, comme dans la v2 */
.qui-c{background:var(--bg)}
.qui-c h2{display:flex;align-items:center;gap:.5rem;font-size:1.4rem}
.qui-l2{display:grid;gap:.5rem;margin:.6rem 0 1rem}
.qui-r{display:flex;align-items:flex-start;gap:.75rem;padding:.65rem .9rem;border:2px solid var(--border);border-radius:var(--r);cursor:pointer;margin:0;font-size:1.05rem}
.qui-r:has(input:checked){border-color:#3a8323;background:var(--ok-bg)}
.qui-r input[type=radio]{margin-top:.25rem;width:1.2rem;height:1.2rem;accent-color:#3a8323}
.qui-r small{color:var(--muted);font-weight:400}
.qui-r .qui-autre{display:none;margin-top:.5rem;width:min(100%,24rem)}
.qui-r:has(input[value=autre]:checked) .qui-autre{display:block}
.qui-btns{display:flex;gap:.6rem;flex-wrap:wrap}.qui-btns .btn{margin:0;font-size:1.05rem;padding:.65rem 1.3rem}
.qui-s{display:inline-flex;flex-wrap:wrap;gap:.4rem;align-items:center;flex:1 1 16rem}
.qui-s .qui-autre{display:none;flex:1 1 12rem}
.qui-s:has(option[value=autre]:checked) .qui-autre{display:block}
.fa-ajcle{margin:0 0 1rem;padding:.7rem 1rem}
.fa-ajcle summary{font:700 1rem var(--font);color:var(--brand)}
.fa-ajcle-f{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.fa-ajcle-f .code-in{flex:1 1 16rem;max-width:22rem;font-size:1.3rem;letter-spacing:.08em;text-align:left}
.fa-ajcle-f .btn{margin:0}
.rs-aj{margin:.8rem 0 0;font-weight:700}
.cf{max-width:52rem;margin:0 auto}.cf-intro{font-size:1.1rem}.cf-s{margin:1rem 0}.cf-s h2{margin:0 0 .4rem;font-size:1.2rem}.cf-s ul{margin:.3rem 0;padding-left:1.2rem;line-height:1.6}.foot a{color:inherit}
/* file d'attente */
.fa-file{max-width:40rem;margin:2rem auto;text-align:center;border-color:#2980b9 !important}
.fa-file h1{margin:.2rem 0 .6rem}
.fa-file-t{font-size:1.1rem}
.fa-file-n{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1.2rem 0}
.fa-file-n div{background:var(--bg);border:2px solid var(--border-s);border-radius:var(--r);padding:.8rem}
.fa-file-n span{display:block;color:var(--muted);font-weight:700;font-size:.85rem}
.fa-file-n b{font:900 2rem var(--font);color:var(--ink)}
.fa-file-i{display:flex;justify-content:center;gap:.4rem;margin-bottom:.6rem}
.fa-file-i i{width:.8rem;height:.8rem;border-radius:50%;background:#2980b9;animation:fa-fl 1.2s infinite}
.fa-file-i i:nth-child(2){animation-delay:.2s}.fa-file-i i:nth-child(3){animation-delay:.4s}
/* pied de page modifiable */
.foot.pied{display:flex;flex-wrap:wrap;gap:.3rem .5rem;align-items:center;justify-content:center;text-align:center}
.pied a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.pied-s{opacity:.5}
.pied-ap{border:1px dashed var(--border-s);border-radius:var(--r);padding:.3rem;margin-bottom:1rem}.pied-ap .foot{margin:0;padding:.5rem}
@media print{.foot.pied{display:none}}

/* Assistance : choix numérotés et colorés (pastille ronde qui déborde sur une carte arrondie) */
.as-grille:not(.deux){counter-reset:asn}
.as-grille:not(.deux) .as-choix{display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:center;padding:.8rem 1.4rem .8rem .8rem;border:1px solid var(--border-s);border-radius:2.2rem;box-shadow:0 4px 14px rgba(20,38,92,.08);--asn:#1e88e5}
.as-grille:not(.deux){grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}
.as-grille:not(.deux) .as-choix b{align-self:end}.as-grille:not(.deux) .as-choix span{align-self:start}
.as-grille:not(.deux) .as-choix b:last-child{grid-row:1/span 2;align-self:center}
.as-grille:not(.deux) .as-choix::before{counter-increment:asn;content:counter(asn);grid-row:1/span 2;display:grid;place-items:center;width:3.1rem;height:3.1rem;border-radius:50%;background:var(--asn);color:#fff;font:900 1.35rem var(--font)}
.as-grille:not(.deux) .as-choix b,.as-grille:not(.deux) .as-choix span{grid-column:2}
.as-grille:not(.deux) .as-choix:hover,.as-grille:not(.deux) .as-choix:focus-visible{border-color:var(--asn)}
.as-grille:not(.deux) .as-choix:nth-child(6n+2){--asn:#f39c12}
.as-grille:not(.deux) .as-choix:nth-child(6n+3){--asn:#d63fa0}
.as-grille:not(.deux) .as-choix:nth-child(6n+4){--asn:#e8304f}
.as-grille:not(.deux) .as-choix:nth-child(6n+5){--asn:#23b26d}
.as-grille:not(.deux) .as-choix:nth-child(6n+6){--asn:#1b2f6b}
.as-grille:not(.deux) .as-choix.tech{border-style:dashed}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .as-grille:not(.deux) .as-choix:nth-child(6n+6){--asn:#5b7bd6}}
:root[data-theme=dark] .as-grille:not(.deux) .as-choix:nth-child(6n+6){--asn:#5b7bd6}
@media (prefers-reduced-motion:reduce){.as-choix{transition:none}.as-choix:hover{transform:none}}
.as-rap{list-style:none;padding:0;margin:.3rem 0 1rem;display:grid;gap:.6rem}
.as-rap li{padding:.55rem .7rem;border:1px solid var(--border-s);border-radius:var(--r)}
.as-rap li.as-rap-c{border:0;padding:0}
.as-rap-b{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.as-rap-b form{display:contents}.as-rap-b .btn,.as-rap-c .btn{margin:0}
.as-types{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.8rem 0 .4rem}.as-types label{margin:0}
.as-rt{border:1px solid var(--border-s);border-radius:var(--r);padding:.4rem 1rem .8rem;margin:.8rem 0}.as-rt legend{font-weight:700;padding:0 .3rem}
/* Menu : pastille des demandes d'assistance ouvertes */
.nav-pastille{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;margin-left:.2rem;border-radius:999px;font:800 .75rem/1 var(--font);color:#fff;vertical-align:.15em}
.nav-pastille.nouv{background:#e8304f;box-shadow:0 0 0 0 rgba(232,48,79,.5);animation:nav-pulse 2s ease-out 3}
.nav-pastille.cours{background:#f39c12}
@keyframes nav-pulse{70%{box-shadow:0 0 0 .45rem rgba(232,48,79,0)}100%{box-shadow:0 0 0 0 rgba(232,48,79,0)}}
@media (prefers-reduced-motion:reduce){.nav-pastille.nouv{animation:none}}
@media print{.nav-pastille{display:none}}

/* Avis sur l'aide reçue : discret, icônes SVG */
.as-avis{max-width:46rem;margin:0 auto 1.2rem;padding:.7rem 1rem;background:transparent;border:1px dashed var(--border-s);box-shadow:none}
.as-avis-b{display:flex;gap:.5rem;justify-content:center;align-items:center;flex-wrap:wrap}.as-avis form{margin:0}
.as-avis-q{display:inline-flex;align-items:center;gap:.4rem;margin:0;color:var(--muted);font-size:.92rem}
.as-avis p.as-avis-q{display:flex;justify-content:center;flex-wrap:wrap}
.btn.as-oui,.btn.as-non{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .8rem;font-size:.88rem;font-weight:700;background:var(--bg);border:1px solid var(--border-s);color:var(--muted);box-shadow:none}
.btn.as-oui:hover,.btn.as-oui:focus-visible{border-color:#27ae60;color:#1e8449;background:var(--bg)}
.btn.as-non:hover,.btn.as-non:focus-visible{border-color:#c0392b;color:#c0392b;background:var(--bg)}
svg.ic{flex:none;vertical-align:-.2em}
.pill-ic{display:inline-flex;align-items:center;gap:.25rem}.pill-ic svg.ic{width:13px;height:13px}
.rf-q small+small::before{content:" · "}
/* Équipe d'assistance : catégories sur 2 lignes au plus, actions compactes, note globale */
.as-notif{max-width:22rem}
.as-cats-l{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:.2rem}
td .as-act{justify-content:flex-end;flex-wrap:nowrap;align-items:center}td .as-act .btn{margin:0;white-space:nowrap}
.as-note-g{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.as-note-g .rv-barre{width:4.5rem}
.as-note-g.ok b{color:#1e8449}.as-note-g.warn b{color:#b9770e}.as-note-g.bad b{color:#c0392b}
/* Questions fréquentes (assistant public) */
.faq{max-width:46rem;margin:1.4rem auto}.faq h3{margin:0 0 .6rem}
.faq #faq-q{margin-bottom:.6rem}
.faq-q{border:1px solid var(--border-s);border-radius:var(--r);background:var(--bg);margin:.45rem 0}
.faq-q summary{cursor:pointer;padding:.75rem 1rem;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq-q summary::-webkit-details-marker{display:none}
.faq-q summary::after{content:"+";font-weight:900;color:var(--muted)}.faq-q[open] summary::after{content:"–"}
.faq-q[open]{border-color:#6c5ce7}
.faq-r{padding:0 1rem .8rem}.faq-r p{margin:.3rem 0 .6rem}
.faq-ok{margin:.4rem 0 0}
.faq-outils{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.faq-outils form{margin:0}.faq-outils .btn{margin:0;width:auto}
.btn.ghost.danger:hover,.btn.ghost.danger:focus-visible,.btn.ghost.danger.arme{background:#c0392b;color:#fff !important}
/* Prise en charge des demandes : bandeau doux, un peu plus visible */
.as-etat{padding:.5rem 1rem .5rem .8rem;border-radius:999px;border:1px solid transparent;margin:.5rem 0 .7rem}
.as-etat.ouvert{background:color-mix(in srgb,#27ae60 10%,var(--bg));border-color:color-mix(in srgb,#27ae60 35%,transparent)}
.as-etat.ferme{background:color-mix(in srgb,#e67e22 10%,var(--bg));border-color:color-mix(in srgb,#e67e22 35%,transparent)}
.as-etat.ouvert .as-led{animation:as-pouls 2.4s ease-in-out infinite}
@keyframes as-pouls{50%{box-shadow:0 0 0 7px color-mix(in srgb,#27ae60 0%,transparent)}}
@media (prefers-reduced-motion:reduce){.as-etat.ouvert .as-led{animation:none}}
.faq-gs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem}
.faq-g{border:1px solid var(--border-s);border-radius:var(--r);padding:.6rem 1rem .9rem}.faq-g h3{margin:.2rem 0}.faq-g form{margin:.4rem 0 0}
.faq-guide{display:flex;align-items:center;gap:.9rem;max-width:46rem;margin:1.4rem auto 0;padding:.8rem 1rem;border:1px solid var(--border-s);border-radius:var(--r);background:var(--bg);text-decoration:none;color:var(--text)}
.faq-guide:hover,.faq-guide:focus-visible{border-color:#6c5ce7}
.faq-guide b{display:block;color:var(--ink)}.faq-guide small{color:var(--muted)}
.faq-guide-i{flex:none;display:grid;place-items:center;width:2.6rem;height:3.1rem;border-radius:6px;background:#c0392b;color:#fff;font:900 .75rem var(--font);letter-spacing:.04em}
/* Aide « Affluence » (prise de rendez-vous) */
.rf-aff{position:relative}
.rf-aide{font-size:.8rem;margin-top:.15rem}
.rf-aide summary{cursor:pointer;color:var(--muted);text-decoration:underline dotted;text-underline-offset:3px;list-style:none}
.rf-aide summary::-webkit-details-marker{display:none}
.rf-aide-p{position:absolute;right:0;top:calc(100% + .4rem);z-index:20;width:min(22rem,calc(100vw - 2rem));padding:.8rem 1rem;background:var(--bg);border:1px solid var(--border-s);border-radius:var(--r);box-shadow:0 10px 30px rgba(20,38,92,.18);color:var(--text);font-size:.85rem}
.rf-aide-p p{margin:.2rem 0 .4rem}.rf-aide-p ul{list-style:none;padding:0;margin:0 0 .6rem;display:grid;gap:.45rem}
.rf-aide-p li{display:flex;gap:.6rem;align-items:flex-start}.rf-aide-p li .rf-aff-i{margin-top:.15rem;flex:none}
.rf-aide-p li b{margin-right:.25rem}.rf-aide-n li{align-items:center}.rf-aide-n .pill{flex:none;min-width:6.5rem;text-align:center}
@media (max-width:640px){.rf-aff{position:static}.rf-aide-p{left:1rem;right:1rem;top:auto;width:auto;margin-top:.4rem}}
.rf-aff .rf-aide-p li .rf-aff-i i{background:var(--border-s)}
.rf-aff .rf-aide-p li.aff-calme .rf-aff-i i:nth-child(1){background:#3a8323}
.rf-aff .rf-aide-p li.aff-soutenue .rf-aff-i i:nth-child(-n+2){background:#d97706}
.rf-aff .rf-aide-p li.aff-forte .rf-aff-i i{background:#c0392b}

/* barres d'outils collées juste sous la partie visible du bandeau (calculée en JS) */
.toolbar,.loc-bar{top:var(--bandeau-h,46px)}
/* aide « Affluence » : petite icône (i) en haut à droite de l'encart */
.rf-aide{margin:0}
.rf-aff .rf-aide summary{position:absolute;top:.45rem;right:.45rem;display:grid;place-items:center;width:1.6rem;height:1.6rem;padding:0;margin:0;border:0;border-radius:50%;background:transparent;color:var(--muted);text-decoration:none;opacity:.7;box-shadow:none}
.rf-aff .rf-aide summary:hover,.rf-aff .rf-aide summary:focus-visible,.rf-aff .rf-aide[open] summary{opacity:1;color:var(--ink);background:var(--subtle)}
@media (max-width:640px){.rf-aff{position:relative}.rf-aide-p{position:fixed;left:1rem;right:1rem;top:auto;bottom:1rem;max-height:70vh;overflow:auto}}
.rf-aff details.rf-aide{border:0;padding:0;margin:0;background:none;box-shadow:none;min-height:0;height:0;overflow:visible}
/* Onglets de l'espace famille et du personnel : bandeau (grand écran), barre fixe en bas (mobile) */
.links.ong a{position:relative}
.ong-n{margin-left:.35rem;animation:none}
.ong-bas{display:none}
@media (max-width:640px){
  .links.ong{display:none}
  .ong-bas{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--bg);border-top:1px solid var(--border-s);box-shadow:0 -4px 14px rgba(20,38,92,.08);padding:.25rem .25rem calc(.25rem + env(safe-area-inset-bottom))}
  .ong-bas a{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.35rem .1rem;color:var(--muted);text-decoration:none;font:700 .68rem/1.15 var(--font);text-align:center;border-radius:10px}
  .ong-bas a[aria-current]{color:var(--brand);background:color-mix(in srgb,var(--brand) 9%,transparent)}
  .ong-i{position:relative;display:block;line-height:0}
  .ong-bas .ong-n{position:absolute;top:-.35rem;right:-.7rem;margin:0;min-width:1.1rem;height:1.1rem;font-size:.62rem;padding:0 .25rem}
  .ong-t{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  main.avec-ong{padding-bottom:5rem}
  main.avec-ong ~ .pied,body:has(.ong-bas) footer{padding-bottom:4.8rem}
}
@media print{.links.ong,.ong-bas{display:none !important}}
@media (max-width:640px){body:has(.ong-bas) .toast{bottom:5.2rem}body:has(.ong-bas) .savebar,body:has(.ong-bas) .ic-save{bottom:4.6rem}}
.hor-vue{display:inline-flex;border:1px solid var(--border-s);border-radius:999px;padding:.2rem;gap:.2rem;background:var(--bg)}.hor-vue a{padding:.35rem .9rem;border-radius:999px;font:700 .85rem var(--font);color:var(--muted);text-decoration:none}.hor-vue a[aria-current]{background:var(--brand);color:#fff}@media (max-width:640px){.hor-outils{flex-wrap:wrap}.hor-vue{order:3;width:100%;justify-content:center}}
.btn .ic-btn{flex:none;margin-right:.45rem;vertical-align:-.25em}.btn:has(.ic-btn){display:inline-flex;align-items:center}
.ico-prev{display:flex;align-items:flex-end;gap:1rem;margin:.6rem 0 1rem}.ico-prev img{border-radius:8px;box-shadow:0 0 0 1px var(--border-s)}
.og-prev{display:block;width:100%;max-width:600px;height:auto;border-radius:10px;box-shadow:0 0 0 1px var(--border-s)}
/* Connexion famille : choix clé / email, en deux grandes cases */
.fa-modes{margin-top:.6rem}
.fa-modes-q{margin:0 0 .5rem;font-weight:700;color:var(--muted);font-size:.92rem}
.fa-modes-b{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.fa-modes-b>input{position:absolute;opacity:0;pointer-events:none}
.fa-modes-b>label{display:flex;align-items:center;gap:.7rem;margin:0;padding:.7rem .9rem;border:2px solid var(--border-s);border-radius:var(--r);background:var(--bg);cursor:pointer;color:var(--muted)}
.fa-modes-b>label .ic-cle{width:1.6em;height:1.6em}
.fa-modes-b>label b{display:block;font:800 1rem var(--font);color:var(--ink)}
.fa-modes-b>label small{display:block;font-size:.8rem;line-height:1.25}
.fa-modes-b>label:hover{border-color:color-mix(in srgb,var(--brand) 50%,var(--border-s))}
.fa-modes-b>input:checked+label{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.fa-modes-b>input:focus-visible+label{outline:3px solid color-mix(in srgb,var(--brand) 40%,transparent);outline-offset:2px}
.fa-mode-p{display:none}
.fa-modes:has(#fm-cle:checked) .fa-mode-cle,.fa-modes:has(#fm-mail:checked) .fa-mode-mail{display:block}
.fa-mailf{margin-top:.9rem}.fa-mailf input[type=email]{width:100%;font-size:1.15rem;padding:.8rem .9rem}
@media (max-width:420px){.fa-modes-b>label{flex-direction:column;align-items:flex-start;gap:.3rem}}
.aide-p .fa-rec{margin:.4rem 0 1rem;border-top:0;padding-top:0}
.aide-etape-mail{display:none}body:has(#fm-mail:checked) .aide-etape{display:none}body:has(#fm-mail:checked) .aide-etape.aide-etape-mail{display:flex}
/* deux cases identiques, toute la largeur ; un seul mode imposé : pas de choix affiché */
.fa-modes-b{width:100%;align-items:stretch}
.fa-modes-b>label{min-height:4.4rem;color:var(--muted)}
.fa-modes-b>label .ic-cle{color:var(--muted)}
.fa-modes-b>input:checked+label .ic-cle{color:var(--brand)}
.fa-modes-b>input:checked+label small{color:var(--brand)}
.fa-modes-seul .fa-modes-q,.fa-modes-seul .fa-modes-b{display:none}
/* ===== Accueil public (refonte 28/10) ===== */
.hh{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:2rem;align-items:center;margin:1.6rem 0 1.6rem;padding:2rem 2.2rem;border-radius:18px;background:linear-gradient(135deg,var(--slate) 0%,color-mix(in srgb,var(--slate) 75%,#3a8323) 100%);color:#fff;position:relative;overflow:hidden}
.hh::after{content:"";position:absolute;right:-90px;top:-120px;width:340px;height:340px;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}
.hh .eyebrow{color:rgba(255,255,255,.7)}
.hh h1{color:#fff;font-size:clamp(2rem,4.6vw,3rem);line-height:1.05;margin:.35rem 0 .8rem;letter-spacing:-.02em}
.hh-date{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;margin:0;font-size:1.05rem}
.hh-d{font:800 1.25rem var(--font)}.hh-h{color:rgba(255,255,255,.8)}
.hh .reu-chip{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff}
.hh .home-intro{margin-top:1rem;color:rgba(255,255,255,.88)}.hh .home-intro a{color:#fff}
.hh-f{position:relative;z-index:1;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:1rem 1.2rem}
.hf{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.hf li{display:grid;grid-template-columns:1.6rem 1fr;column-gap:.7rem;align-items:center;padding:.45rem 0;position:relative;color:rgba(255,255,255,.75)}
.hf li b{font-weight:700;color:#fff}.hf li small{grid-column:2;font-size:.85rem}
.hf li:not(:last-child)::after{content:"";position:absolute;left:.75rem;top:2.05rem;bottom:-.55rem;width:2px;background:rgba(255,255,255,.2)}
.hf-pt{grid-row:1/span 2;width:1.6rem;height:1.6rem;border-radius:50%;border:2px solid rgba(255,255,255,.45);display:grid;place-items:center;font:900 .8rem var(--font);color:var(--slate);background:transparent;position:relative;z-index:1}
.hf li.fait .hf-pt{background:#6cc35a;border-color:#6cc35a;color:#16301a}
.hf li.cur .hf-pt{border-color:#fff;background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.18)}
.hf li.cur b{color:#fff}.hf li.cur small{color:#fff}
.hf-j{margin:.5rem 0 0;padding-top:.6rem;border-top:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.85)}.hf-j b{color:#fff}
.hc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1.2rem;margin-bottom:1.4rem}
.hc-c{display:flex;gap:1.2rem;align-items:flex-start;padding:1.4rem 1.5rem;border-radius:16px;background:var(--bg);border:1px solid var(--border-s);box-shadow:0 6px 22px rgba(20,38,92,.07);transition:box-shadow .15s,transform .15s}
.hc-c:hover{box-shadow:0 10px 30px rgba(20,38,92,.12);transform:translateY(-2px)}
.hc-p{border-top:4px solid #2c9f87}.hc-s{border-top:4px solid #2980b9}
.hc-i{flex:none;width:4.2rem}.hc-i svg{width:4.2rem;height:4.2rem}
.hc-b{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;min-height:100%}
.hc-b h2{margin:.25rem 0 0;font-size:1.3rem}
.hc-b p{margin:0;color:var(--text)}
.hc-a{margin-top:auto;padding-top:.8rem;display:flex;flex-wrap:wrap;gap:.5rem}
.hc-a .btn{display:inline-flex;align-items:center;gap:.45rem;margin:0;width:auto}
.hs{display:flex;gap:1rem;align-items:center;padding:1rem 1.3rem;border-radius:14px;background:var(--subtle);border:1px solid var(--border-s);margin-bottom:2rem}
.hs-i{flex:none;width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;background:#6c5ce7;color:#fff;font:900 1.2rem var(--font)}
.hs>div{flex:1;min-width:0}.hs span{color:var(--muted)}.hs .as-etat{margin:.45rem 0 0;display:inline-flex}
.hs .btn{margin:0}
@media (max-width:820px){.hh{grid-template-columns:1fr;padding:1.5rem 1.3rem;gap:1.2rem}}
@media (max-width:520px){.hc-c{flex-direction:column;gap:.6rem}.hc-i,.hc-i svg{width:3.4rem;height:3.4rem}.hs{flex-direction:column;align-items:flex-start}}
@media (prefers-reduced-motion:reduce){.hc-c{transition:none}.hc-c:hover{transform:none}}
.hs .hs-i{color:#fff}
.hc-c{align-items:stretch}.hc-i{align-self:flex-start}.hc-b{min-height:0}
@media (max-width:520px){.hc-a,.hc-a .btn{width:100%;justify-content:center}.hs .btn{width:100%;text-align:center}}
/* Fiche élève (administration) */
a.el-n{color:inherit;text-decoration:none;border-bottom:1px dashed var(--border-s)}a.el-n:hover{color:var(--brand);border-color:var(--brand)}
.el-h{display:flex;gap:1.5rem;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.el-h h1{margin:.2rem 0 .5rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.el-h-i{display:flex;flex-wrap:wrap;gap:.4rem 2rem;margin:0}.el-h-i b{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.el-h-a{display:flex;flex-direction:column;gap:.5rem;align-items:stretch}.el-h-a form{margin:0}.el-h-a .btn{margin:0;width:100%}
.el-g{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1.2rem;align-items:start}
@media (max-width:980px){.el-g{grid-template-columns:1fr}}
.el-par td{vertical-align:middle}.el-par td .as-act{justify-content:flex-end;flex-wrap:nowrap}.el-par .as-act .btn{margin:0;white-space:nowrap}
.el-add{margin-top:.8rem}.el-add summary{cursor:pointer;font-weight:700;color:var(--brand)}
.el-add .fam-add{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 .3rem}.el-add .fam-add input[type=email]{flex:2 1 14rem}.el-add .fam-add input{flex:1 1 9rem}.el-add .fam-add .btn{margin:0}
.el-rv{list-style:none;padding:0;margin:0;display:grid;gap:.35rem}.el-rv li{padding:.45rem .7rem;background:var(--subtle);border-radius:var(--r)}
.el-g .fa-cle-l{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.el-g .fa-act{display:flex;gap:.4rem;flex-wrap:wrap;width:100%}.el-g .fa-act form{margin:0}.el-g .fa-act .btn{margin:0}
ul.el-par{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
ul.el-par li{display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;align-items:center;padding:.65rem .8rem;border:1px solid var(--border-s);border-radius:var(--r)}
.el-p-c{grid-column:1;overflow-wrap:anywhere}ul.el-par .as-act{grid-column:2;grid-row:1/span 2}
@media (max-width:640px){ul.el-par li{grid-template-columns:1fr}ul.el-par .as-act{grid-column:1;grid-row:auto}}
.fa-resume{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.fa-resume h2{margin:0 0 .2rem}.fa-resume p{margin:.1rem 0}.fa-resume .btn{margin:0}
/* sections repliables de l'espace famille */
details.fa-acc>summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem 1rem;padding-right:2rem;position:relative}
details.fa-acc>summary::-webkit-details-marker{display:none}
details.fa-acc>summary h2{margin:0}
details.fa-acc>summary::after{content:"";position:absolute;right:.2rem;top:.45rem;width:.6rem;height:.6rem;border-right:2.5px solid var(--muted);border-bottom:2.5px solid var(--muted);transform:rotate(45deg);transition:transform .15s}
details.fa-acc[open]>summary::after{transform:rotate(225deg);top:.75rem}
details.fa-acc[open]>summary{margin-bottom:.6rem}
/* En-têtes détachés et mis en avant ; cartes empilées espacées (fiche élève, espace famille) */
main.wrap > :is(.card, section.card, details.card, article.card) + :is(.card, section.card, details.card, article.card){margin-top:1.2rem}
.el-g{margin-top:1.4rem}.el-g > div{display:grid;gap:1.2rem;align-content:start}.el-g > div > .card{margin:0}
.el-h,.fa-h{background:var(--bg);border:1px solid var(--border-s);border-left:5px solid var(--brand);border-radius:16px;box-shadow:0 8px 26px rgba(20,38,92,.09);padding:1.4rem 1.6rem}
.fa-h{margin:1rem 0 1.5rem}.fa-h h1{margin:.2rem 0 .4rem}.fa-h .home-date{margin:.2rem 0 .3rem}.fa-h>:last-child{margin-bottom:0}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) :is(.el-h,.fa-h){box-shadow:0 8px 26px rgba(0,0,0,.35)}}
:root[data-theme=dark] :is(.el-h,.fa-h){box-shadow:0 8px 26px rgba(0,0,0,.35)}
.el-g > div,.el-g > div > *{min-width:0}ul.el-par li{min-width:0}
/* Assistant de réunion : étapes plus affirmées (frise reliée, gros numéros, barre de progression) */
.reu-steps{display:block;padding:1rem 0 .8rem}
.stepper{position:relative;gap:0;margin:0}
.stepper li{position:relative}
.stepper li:not(:last-child)::after{content:"";position:absolute;top:1.55rem;left:calc(50% + 1.5rem);right:calc(-50% + 1.5rem);height:3px;border-radius:2px;background:var(--border-s);z-index:0}
.stepper li.done:not(:last-child)::after{background:var(--brand)}
.stepper a{flex-direction:column;justify-content:flex-start;gap:.45rem;border:0;background:none;padding:.3rem .2rem;text-align:center;position:relative;z-index:1;box-shadow:none}
.stepper .n{width:2.6rem;height:2.6rem;font-size:1.05rem;border-width:2px;background:var(--bg);box-shadow:0 0 0 5px var(--bg)}
.stepper .l{font-size:.9rem}
.stepper .done .n{background:var(--brand);color:#fff;border-color:var(--brand)}
.stepper .cur a{box-shadow:none;border:0}
.stepper .cur .n{transform:scale(1.12);box-shadow:0 0 0 5px var(--bg),0 0 0 9px color-mix(in srgb,var(--brand) 25%,transparent)}
.stepper .cur .l{color:var(--ink);font-weight:900}
.stepper a:hover .n{border-color:var(--brand)}
.stepper-p{display:flex;align-items:center;gap:.8rem;margin-top:.8rem}
.stepper-b{flex:1;height:6px;border-radius:999px;background:var(--subtle);overflow:hidden;border:1px solid var(--border)}
.stepper-b span{display:block;height:100%;background:var(--brand);border-radius:999px}
.stepper-p small{color:var(--muted);font-weight:700;white-space:nowrap}
.stepper-b .w0{width:0}.stepper-b .w20{width:20%}.stepper-b .w40{width:40%}.stepper-b .w60{width:60%}.stepper-b .w80{width:80%}.stepper-b .w100{width:100%}
@media (max-width:700px){.stepper li:not(:last-child)::after{left:calc(50% + 1.2rem);right:calc(-50% + 1.2rem);top:1.3rem}.stepper .n{width:2.1rem;height:2.1rem}.stepper .l{display:none}.stepper .cur .l{display:block;font-size:.78rem}}
/* gestion de la réunion */
.reu-pause{margin:.6rem 0}
.reu-g{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.8rem 0;border-top:1px solid var(--border);margin:0}
.reu-g:first-of-type{border-top:0}.reu-g p{margin:.15rem 0 0}.reu-g .btn{margin:0;flex:none}.reu-g-off{opacity:.65}
.reu-g label.check{display:flex;gap:.4rem;align-items:center;margin-top:.4rem;font-size:.9rem}
.reu-g-c{max-width:8rem;text-transform:uppercase;margin-top:.3rem}
/* accueil : bandeau plus compact, bouton d'assistance contrasté */
.hh{padding:1.4rem 1.8rem;gap:1.5rem;margin:1.2rem 0 1.3rem;border-radius:16px}
.hh h1{font-size:clamp(1.7rem,3.4vw,2.3rem);margin:.25rem 0 .55rem}
.hh-d{font-size:1.1rem}.hh-date{font-size:.98rem}
.hh-f{padding:.7rem 1rem}.hf li{padding:.3rem 0}.hf li b{font-size:.95rem}.hf li small{font-size:.8rem}
.hf li:not(:last-child)::after{top:1.75rem;bottom:-.4rem}
.hf-pt{width:1.35rem;height:1.35rem;font-size:.7rem}.hf li{grid-template-columns:1.35rem 1fr}.hf li:not(:last-child)::after{left:.62rem}
.hf-j{margin-top:.35rem;padding-top:.45rem;font-size:.92rem}
.hh::after{width:260px;height:260px;right:-70px;top:-100px}
.btn.hs-btn{background:#6c5ce7;border-color:#6c5ce7;color:#fff;font-weight:800}
.btn.hs-btn:hover,.btn.hs-btn:focus-visible{background:#5847d6;border-color:#5847d6;color:#fff}
/* ===== Menu d'accessibilité ===== */
.a11y-btn{position:fixed;left:1rem;bottom:1rem;z-index:90;width:3.1rem;height:3.1rem;border-radius:50%;border:3px solid #fff;background:#1f5f99;color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.a11y-btn:hover,.a11y-btn:focus-visible{background:#174a78;outline:3px solid #ffbf00;outline-offset:2px}
.a11y-btn.on::after{content:"";position:absolute;top:-2px;right:-2px;width:.8rem;height:.8rem;border-radius:50%;background:#6cc35a;border:2px solid #fff}
body:has(.ong-bas) .a11y-btn{bottom:5.2rem}
@media (min-width:641px){body:has(.ong-bas) .a11y-btn{bottom:1rem}}
.a11y-p{position:fixed;left:1rem;bottom:4.8rem;z-index:91;width:min(23rem,calc(100vw - 2rem));max-height:calc(100vh - 6rem);overflow:auto;background:var(--bg);color:var(--text);border:1px solid var(--border-s);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.28);padding:1rem 1.1rem;font-size:16px;line-height:1.4}
body:has(.ong-bas) .a11y-p{bottom:9rem}@media (min-width:641px){body:has(.ong-bas) .a11y-p{bottom:4.8rem}}
.a11y-h{display:flex;justify-content:space-between;align-items:center}.a11y-h h2{margin:0;font-size:1.2rem}
.a11y-x{border:0;background:var(--subtle);width:2rem;height:2rem;border-radius:50%;font-size:1.3rem;cursor:pointer;color:var(--ink)}
.a11y-hint{margin:.2rem 0 .6rem;color:var(--muted);font-size:.85rem}
.a11y-p h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:.8rem 0 .4rem}
.a11y-prof{display:flex;flex-wrap:wrap;gap:.35rem}
.a11y-prof button,.a11y-seg button{border:1px solid var(--border-s);background:var(--bg);color:var(--ink);border-radius:999px;padding:.35rem .7rem;font:700 .85rem var(--font);cursor:pointer}
.a11y-prof button[aria-pressed=true],.a11y-seg button[aria-pressed=true]{background:#1f5f99;border-color:#1f5f99;color:#fff}
.a11y-opts{display:grid;gap:.2rem}
.a11y-o{display:flex;flex-direction:column;gap:.3rem;padding:.4rem 0;border-top:1px solid var(--border);margin:0;font-weight:700;font-size:.92rem}
.a11y-seg{display:flex;flex-wrap:wrap;gap:.3rem}
.a11y-sw{flex-direction:row;justify-content:space-between;align-items:center;cursor:pointer}
.a11y-sw input{position:absolute;opacity:0;pointer-events:none}
.a11y-sw i{flex:none;width:2.4rem;height:1.35rem;border-radius:999px;background:var(--border-s);position:relative;transition:background .15s}
.a11y-sw i::after{content:"";position:absolute;top:.15rem;left:.15rem;width:1.05rem;height:1.05rem;border-radius:50%;background:#fff;transition:transform .15s}
.a11y-sw input:checked+i{background:#1f5f99}.a11y-sw input:checked+i::after{transform:translateX(1.05rem)}
.a11y-sw input:focus-visible+i{outline:3px solid #ffbf00;outline-offset:2px}
.a11y-raz{margin-top:.8rem;width:100%;border:1px solid var(--border-s);background:var(--subtle);color:var(--ink);border-radius:10px;padding:.55rem;font:800 .9rem var(--font);cursor:pointer}
@media print{.a11y-btn,.a11y-p,.a11y-regle{display:none !important}}
/* effets */
html.a11y-txt1{font-size:18px}html.a11y-txt2{font-size:20px}html.a11y-txt3{font-size:23px}
html.a11y-esp body :is(p,li,dd,dt,td,th,label,small,span,a,b,h1,h2,h3){letter-spacing:.05em;word-spacing:.16em;line-height:1.75}
html.a11y-police body,html.a11y-police body :is(p,li,dd,dt,td,th,label,small,span,a,b,h1,h2,h3,h4,input,select,textarea,button){font-family:'Atkinson Hyperlegible',Verdana,sans-serif !important}
html.a11y-liens a{text-decoration:underline !important;text-underline-offset:3px}html.a11y-liens :is(h1,h2,h3){text-decoration:underline;text-underline-offset:5px}
html.a11y-curseur,html.a11y-curseur *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 11-7 1 4 8-3 1-4-8-5 5z' fill='%23000' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E") 4 2,auto !important}
html.a11y-focus :focus{outline:4px solid #ffbf00 !important;outline-offset:3px !important;box-shadow:0 0 0 7px #000 !important}
html.a11y-anim *,html.a11y-anim *::before,html.a11y-anim *::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
html.a11y-img img,html.a11y-img picture{opacity:0 !important}
html.a11y-s-bas{filter:saturate(.45)}html.a11y-s-haut{filter:saturate(1.7)}html.a11y-s-mono{filter:grayscale(1)}
html.a11y-c-clair{--muted:#2b2f36;--text:#0b0f14;--ink:#000;--border:#7b8592;--border-s:#4b5563;--subtle:#f1f3f5}
html.a11y-c-sombre{--muted:#e6e9ee;--text:#fff;--ink:#fff;--bg:#000;--subtle:#111;--border:#9aa4b1;--border-s:#cfd6de;--clouds:#111}
html.a11y-c-sombre body{background:#000}
.a11y-regle{position:fixed;left:0;right:0;top:-100px;height:44px;z-index:89;pointer-events:none;background:rgba(255,213,79,.18);border-top:2px solid rgba(31,95,153,.75);border-bottom:2px solid rgba(31,95,153,.75)}
/* frise de l'accueil : pastilles pleines (la ligne ne les traverse plus), ligne d'une pastille à l'autre */
.hf li{align-items:start;padding:.35rem 0}
.hf-pt{grid-row:1/span 2;margin-top:.1rem;background:color-mix(in srgb,var(--slate) 80%,#3a8323)}
.hf li:not(:last-child)::after{left:calc(.675rem - 1px);top:calc(.35rem + .1rem + 1.35rem + 3px);bottom:calc(-.35rem - .1rem + 3px);width:2px}
.hf li.fait:not(:last-child)::after{background:#6cc35a}
/* tableaux : cellule d'actions = vraie cellule (pas de flex), boutons côte à côte */
td.pl-act{display:table-cell;white-space:nowrap;text-align:right;width:1%}
td.pl-act .btn{display:inline-flex;margin:0 0 0 .3rem}

/* confirmation par interrupteur (gestion de la réunion) */
.reu-g label.check input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:2.6rem;height:1.45rem;margin:0;border-radius:999px;background:var(--border-s);position:relative;cursor:pointer;transition:background .15s}
.reu-g label.check input[type=checkbox]::after{content:"";position:absolute;top:.17rem;left:.17rem;width:1.1rem;height:1.1rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.reu-g label.check input[type=checkbox]:checked{background:var(--bad)}
.reu-g label.check input[type=checkbox]:checked::after{transform:translateX(1.15rem)}
.reu-g label.check input[type=checkbox]:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 45%,transparent);outline-offset:2px}
.reu-g label.check{cursor:pointer;font-weight:700}
.pl-bar{min-width:11rem;white-space:nowrap}.pl-bar-l{display:flex;align-items:center;gap:.4rem;margin-top:.25rem}.pl-bar-l .rv-barre{width:6rem;margin:0}.pl-t .rv-t td:nth-child(3){min-width:7rem}.pl-t .rv-t td:nth-child(3) .pill{margin:0 .2rem .2rem 0}
.pl-bar{min-width:9.5rem}.pl-bar-l .rv-barre{width:4.5rem}#grilles td,#grilles th{padding-left:.5rem;padding-right:.5rem}
#pl td:first-child,#pl td:nth-child(3){white-space:normal}#grilles td:first-child,#grilles td:nth-child(7){white-space:normal}
/* les cellules de texte peuvent passer à la ligne : les tableaux tiennent dans la largeur */
td{white-space:normal}td.num,td.act,td.pl-act,td.pl-bar{white-space:nowrap}
.reu-g{flex-direction:column;align-items:flex-start;gap:.5rem}
/* bandeau d'état (pause, essai) */
.etat-band{margin:1rem 0 0;padding:.6rem 1rem;border-radius:12px;font-size:.92rem;display:flex;flex-wrap:wrap;gap:.3rem .6rem;align-items:center}
.etat-band b{font-weight:800}
.etat-band.pause{background:#fdecea;color:#8a1c12;border:1px solid #f3b5ad}
.etat-band.essai{background:var(--warn-bg);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}
.etat-band a{color:inherit;font-weight:800}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .etat-band.pause{background:rgba(239,68,68,.15);color:#fca5a5;border-color:rgba(239,68,68,.35)}}
:root[data-theme=dark] .etat-band.pause{background:rgba(239,68,68,.15);color:#fca5a5;border-color:rgba(239,68,68,.35)}
/* interrupteur de pause, interrupteur de confirmation */
.reu-g-sw{flex-direction:row;align-items:flex-start;gap:.8rem}.reu-g-sw .switch{margin-top:.15rem}
.switch.pause.on{background:#d97706}
.sw-c{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;font-weight:700;font-size:.92rem;margin:.4rem 0 0;position:relative}
.sw-c input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.sw-t{flex:none;position:relative;width:2.6rem;height:1.45rem;border-radius:999px;background:var(--border-s);transition:background .15s}
.sw-t::after{content:"";position:absolute;top:.18rem;left:.18rem;width:1.1rem;height:1.1rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s}
.sw-c input:checked+.sw-t{background:#c0392b}.sw-c input:checked+.sw-t::after{transform:translateX(1.15rem)}
.sw-c input:focus-visible+.sw-t{outline:3px solid color-mix(in srgb,var(--brand) 40%,transparent);outline-offset:2px}
.pill.abs{background:#2c3e50;color:#fff;border-color:#2c3e50;font-weight:800}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pill.abs{background:#e6e9ee;color:#141b22;border-color:#e6e9ee}}
:root[data-theme=dark] .pill.abs{background:#e6e9ee;color:#141b22;border-color:#e6e9ee}
.fa-ab{background:#2c3e50;color:#fff;border-radius:999px;padding:.05rem .5rem;font-weight:800;font-size:.75rem}
/* bandeaux d'état plus sobres : fond neutre, liseré coloré, pastille */
.etat-band,.etat-band.pause,.etat-band.essai{background:var(--bg);color:var(--text);border:1px solid var(--border-s);border-left:4px solid #d97706;border-radius:10px;padding:.5rem .9rem;font-size:.88rem;box-shadow:0 2px 8px rgba(20,38,92,.05)}
.etat-band.pause{border-left-color:#c0392b}
.etat-band b{color:var(--ink);display:inline-flex;align-items:center;gap:.4rem}
.etat-band b::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:#d97706}
.etat-band.pause b::before{background:#c0392b}
.etat-band a{color:var(--brand)}
/* page d'entrée des parents (accueil) */
.fe-h{text-align:center;margin:1.6rem auto .4rem;max-width:44rem}
.fe-h h1{margin:.25rem 0 .35rem;font-size:clamp(1.8rem,4vw,2.5rem)}
.fe-d{margin:0;font-size:1.08rem;color:var(--text)}.fe-d b{color:var(--brand)}
.fe-i{margin-top:.6rem;color:var(--muted)}
.who .acces{color:rgba(255,255,255,.88);text-decoration:none;font:700 .85rem var(--font);border-bottom:1px dashed rgba(255,255,255,.4)}
.who .acces:hover{color:#fff;border-bottom-color:#fff}
@media (max-width:520px){.who .acces{font-size:.78rem}}
.login-t{margin:0 0 .6rem;font-size:1.35rem}
/* page d'entrée : titre à gauche, frise des étapes à droite */
.fe-h{text-align:left;max-width:none;margin:1.4rem 0 .2rem;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.5rem;align-items:center}
.fe-h h1{margin:.2rem 0 .3rem}
.fe-f{background:var(--bg);border:1px solid var(--border-s);border-radius:14px;padding:.8rem 1rem .7rem;box-shadow:0 4px 16px rgba(20,38,92,.06)}
.fe-f ol{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:.4rem;position:relative}
.fe-f li{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.15rem;min-width:0}
.fe-f li:not(:last-child)::after{content:"";position:absolute;top:.62rem;left:calc(50% + .85rem);right:calc(-50% + .85rem);height:2px;background:var(--border-s)}
.fe-f li.fait:not(:last-child)::after{background:var(--brand)}
.fe-pt{width:1.3rem;height:1.3rem;border-radius:50%;border:2px solid var(--border-s);background:var(--bg);display:grid;place-items:center;font:900 .65rem var(--font);color:#fff}
.fe-f li.fait .fe-pt{background:var(--brand);border-color:var(--brand)}
.fe-f li.cur .fe-pt{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 20%,transparent)}
.fe-f li b{font-size:.8rem;line-height:1.2;color:var(--ink)}.fe-f li small{font-size:.75rem;color:var(--muted)}
.fe-f li:not(.fait):not(.cur) b{color:var(--muted)}
.fe-j{margin:.55rem 0 0;padding-top:.45rem;border-top:1px solid var(--border);font-size:.85rem;color:var(--muted);text-align:center}.fe-j b{color:var(--ink)}
@media (max-width:820px){.fe-h{grid-template-columns:1fr;gap:.9rem}}
/* frise compacte : une ligne de libellés, à la hauteur du titre */
.fe-f{padding:.65rem .9rem;align-self:center}
.fe-f li b{white-space:nowrap;font-size:.82rem}.fe-f li small{white-space:nowrap;font-size:.74rem}
.fe-pt{width:1.15rem;height:1.15rem}.fe-f li:not(:last-child)::after{top:.55rem}
.fe-dans{display:inline-block;margin-left:.4rem;padding:.05rem .55rem;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-weight:800;font-size:.85rem;vertical-align:.1em}
/* onglet Détails : en ce moment, tests compacts */
.aide-h3{font-size:.95rem;margin:.9rem 0 .4rem}.aide-p .aide-h3:first-child{margin-top:0}
.em-l{list-style:none;padding:0;margin:0;display:grid;gap:.45rem;font-size:.88rem}
.em-l li{display:flex;gap:.6rem;align-items:flex-start}.em-l b{color:var(--ink)}
.em-l .rf-aff-i{margin-top:.1rem;flex:none}
.em-pt{flex:none;width:.7rem;height:.7rem;border-radius:50%;margin:.3rem .15rem 0 .2rem;background:var(--border-s)}
.em-pt.ok{background:#27ae60}.em-pt.warn{background:#d97706}.em-pt.bad{background:#c0392b}.em-pt.info{background:#2980b9}
.compat-c{padding:.6rem .8rem;margin:.9rem 0}
.compat-c h3{display:inline-block;margin:0 .6rem 0 0;font-size:.9rem;vertical-align:middle}
.compat-c ul{display:inline-flex;gap:.35rem;margin:0;vertical-align:middle;flex-wrap:wrap}
.compat-c li{border:0;padding:0;position:relative}
/* infobulle des pastilles (survol, clavier et toucher) */
.cc[data-tip]::after{content:attr(data-tip);position:absolute;bottom:calc(100% + .45rem);left:50%;transform:translate(-50%,.2rem);width:max-content;max-width:14rem;padding:.35rem .55rem;border-radius:.4rem;background:#1f2933;color:#fff;font:500 .75rem/1.35 var(--font);text-align:left;white-space:normal;box-shadow:0 4px 14px rgba(0,0,0,.18);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s,transform .12s;z-index:20}
.cc[data-tip]::before{content:'';position:absolute;bottom:calc(100% + .1rem);left:50%;transform:translateX(-50%);border:.25rem solid transparent;border-top-color:#1f2933;opacity:0;visibility:hidden;transition:opacity .12s;z-index:20}
.cc[data-tip]:hover::after,.cc[data-tip]:focus-visible::after,.cc[data-tip]:active::after{opacity:1;visibility:visible;transform:translate(-50%,0)}
.cc[data-tip]:hover::before,.cc[data-tip]:focus-visible::before,.cc[data-tip]:active::before{opacity:1;visibility:visible}
.compat-c li:nth-last-child(-n+2) .cc[data-tip]::after{left:auto;right:-.3rem;transform:translateY(.2rem)}
.compat-c li:nth-last-child(-n+2) .cc[data-tip]:hover::after,.compat-c li:nth-last-child(-n+2) .cc[data-tip]:focus-visible::after{transform:none}
.compat-c li:first-child .cc[data-tip]::after{left:-.3rem;transform:translateY(.2rem)}
.compat-c li:first-child .cc[data-tip]:hover::after,.compat-c li:first-child .cc[data-tip]:focus-visible::after{transform:none}
.cc:focus-visible{outline:2px solid var(--brand,#2563eb);outline-offset:2px}
/* fenêtre modale (famille : autres clés) */
dialog.modale{border:0;border-radius:1rem;padding:0;max-width:min(28rem,calc(100vw - 2rem));width:100%;box-shadow:0 20px 50px rgba(0,0,0,.25);background:var(--bg);color:var(--text)}
dialog.modale::backdrop{background:rgba(15,23,42,.45)}
:root[data-theme=dark] dialog.modale,html.a11y-c-sombre dialog.modale{border:1px solid var(--border-s);background:var(--subtle)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) dialog.modale{border:1px solid var(--border-s);background:var(--subtle)}}
.mc-f{padding:1.3rem 1.4rem 1rem;display:grid;gap:.7rem}
.mc-f h2{margin:0;font-size:1.2rem}
.mc-f .hint{margin:0}
.mc-f .code-in{width:100%}
.mc-b{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}
.mc-n{font-size:.78rem}
.cc{position:relative;display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;font:800 .75rem var(--font);color:#fff;background:var(--border-s);cursor:help}
.cc.ok{background:#27ae60}.cc.bad{background:#c0392b}
.compat-c .compat-bilan{font-size:.82rem;margin:.4rem 0 0}
.rf-aff-i.aff-calme i:nth-child(1){background:#3a8323}.rf-aff-i.aff-soutenue i:nth-child(-n+2){background:#d97706}.rf-aff-i.aff-forte i{background:#c0392b}

/* ---------- Statistiques (admin/stats.php) ---------- */
:root{--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--s6:#008300}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300}}
:root[data-theme=dark]{--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300}
.gr .s1,.s1-f{fill:var(--s1)}.gr .s2,.s2-f{fill:var(--s2)}.gr .s3,.s3-f{fill:var(--s3)}.gr .s4,.s4-f{fill:var(--s4)}.gr .s5,.s5-f{fill:var(--s5)}.gr .s6,.s6-f{fill:var(--s6)}
.gr-l .s1{fill:none;stroke:var(--s1)}.gr-l .s2{fill:none;stroke:var(--s2)}.gr-l .s3{fill:none;stroke:var(--s3)}.gr-l .s4{fill:none;stroke:var(--s4)}.gr-l .s5{fill:none;stroke:var(--s5)}.gr-l .s6{fill:none;stroke:var(--s6)}
.gr-l polyline{stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.gr-f{margin:.4rem 0 1rem}
.gr-w{overflow-x:auto}
.gr{display:block;max-width:100%;height:auto;font-family:var(--font)}
.gr-grille{stroke:var(--border);stroke-width:1}
.gr-base{stroke:var(--border-s);stroke-width:1}
.gr-ax{fill:var(--muted);font-size:10px}
.gr-val{fill:var(--text);font-size:10px;font-weight:700}
.gr-hit{fill:transparent}
.gr-b:hover .gr-hit,.gr-x:hover{fill:var(--subtle)}
.gr-b:hover path,.gr-b:hover rect:not(.gr-hit){opacity:.85}
.gr-lg{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin:0 0 .4rem;padding:0;list-style:none;font-size:.82rem;color:var(--text)}
.gr-lg li{display:inline-flex;align-items:center;gap:.35rem;border:0;padding:0}
.gr-t summary{cursor:pointer;font-size:.8rem;color:var(--muted)}
.gr-t table{font-size:.82rem}
.gr-tip{position:fixed;z-index:60;pointer-events:none;max-width:18rem;padding:.35rem .55rem;border-radius:.4rem;background:#1f2933;color:#fff;font:500 .78rem/1.35 var(--font);box-shadow:0 4px 14px rgba(0,0,0,.18)}
.gr-j{display:inline-block;width:7rem;height:6px;vertical-align:middle}
.gr-j-f{fill:var(--subtle)}.gr-j-v{fill:var(--s1)}
.st-jc{white-space:nowrap}.st-jc span{margin-left:.45rem;font-variant-numeric:tabular-nums;font-size:.85rem}
.st-top{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap}
.st-filtre{display:flex;align-items:center;gap:.5rem}.st-filtre select{max-width:22rem}
.st-nav{position:sticky;top:var(--bandeau-h,60px);z-index:25;display:flex;flex-wrap:wrap;gap:.25rem;margin:.6rem 0 1rem;padding:.45rem 0;background:var(--bg);border-bottom:1px solid var(--border);font-size:.88rem}
.st-nav a{text-decoration:none;color:var(--muted);padding:.25rem .6rem;border-radius:99px;font-weight:600}
.st-nav a:hover{color:var(--ink);background:var(--subtle)}
.st-nav a.on{color:var(--brand);background:var(--brand-soft)}
main section.card[id]{scroll-margin-top:calc(var(--bandeau-h,60px) + 3.5rem)}
.st-ks{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.6rem;margin:.6rem 0 1rem}
.st-k{background:var(--bg);border:1px solid var(--border);border-radius:.7rem;padding:.65rem .8rem;display:flex;flex-direction:column;gap:.1rem;box-shadow:0 1px 3px rgba(20,38,92,.06)}
.st-ks .st-k:first-child{background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand) 35%,var(--border))}
.st-ks .st-k:first-child b{color:var(--brand)}
.st-k b{font:800 1.45rem var(--head);color:var(--ink);font-variant-numeric:tabular-nums}
.st-k span{font-weight:700;font-size:.85rem;color:var(--text)}
.st-k small{font-size:.75rem;color:var(--muted);line-height:1.3}
.st-g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:0 1.5rem}
.st-h{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap}
.st-pas{display:flex;gap:.3rem}
.st-a{margin:.2rem 0 .8rem;font-size:.9rem}
.st-t td.num,.st-t th.num{text-align:right;font-variant-numeric:tabular-nums}
.st-tot th,.st-tot td{font-weight:700;border-top:2px solid var(--border-s)}
.st-pt{display:inline-block;width:.6rem;height:.6rem;border-radius:2px;margin-right:.4rem;background:var(--border-s)}
.js-plus .st-plus{display:none}.js-plus.tout .st-plus{display:table-row}
.st-d{margin:.6rem 0}.st-d summary{cursor:pointer;display:flex;align-items:baseline;gap:.6rem}.st-d summary h3{display:inline;margin:0}
.st-geo ol{margin:.3rem 0 .3rem 1.2rem;font-size:.88rem}.st-geo p{font-size:.88rem}
/* « En ce moment » : point des visiteurs, qui pulse doucement */
.em-pt.em-live{background:#27ae60;box-shadow:0 0 0 0 rgba(39,174,96,.5);animation:em-pulse 2s infinite}
@keyframes em-pulse{70%{box-shadow:0 0 0 .35rem rgba(39,174,96,0)}100%{box-shadow:0 0 0 0 rgba(39,174,96,0)}}
@media (prefers-reduced-motion:reduce){.em-pt.em-live{animation:none}}
.a11y-anim .em-pt.em-live{animation:none}
@media print{.st-nav,.st-filtre,.st-pas,.js-plus-b{display:none}.js-plus .st-plus{display:table-row}.gr-t{display:none}}
.st-t tbody th{text-transform:none;letter-spacing:0;font:600 .88rem var(--font);color:var(--text)}
/* Pastille « pouls » de la barre supérieure (pages publiques, pendant la prise de rendez-vous) */
.pouls{position:relative;display:flex;align-items:center}
.pouls-b{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:2rem;min-width:2.4rem;padding:0 .6rem;border:1px solid rgba(255,255,255,.28);border-radius:99px;background:rgba(255,255,255,.06);color:#fff;font:600 .8rem var(--font);cursor:pointer}
.pouls-b:hover,.pouls-b[aria-expanded=true]{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.45)}
.pouls-b:focus-visible{outline:2px solid #fff;outline-offset:2px}
.pouls-b .rf-aff-i{height:.85rem;gap:2px}.pouls-b .rf-aff-i i{width:4px;background:rgba(255,255,255,.3)}
.pouls-b.aff-calme .rf-aff-i i:nth-child(1){background:#6fdc6f}
.pouls-b.aff-soutenue .rf-aff-i i:nth-child(-n+2){background:#ffb340}
.pouls-b.aff-forte .rf-aff-i i{background:#ff7a6b}
.pouls-n b{font-variant-numeric:tabular-nums}
.pouls-p{position:absolute;right:0;top:calc(100% + .55rem);z-index:70;width:17.5rem;padding:.8rem .9rem;border:1px solid var(--border-s);border-radius:.8rem;background:var(--bg);color:var(--text);box-shadow:0 12px 32px rgba(15,23,42,.18);text-align:left}
.pouls-p[hidden]{display:none}
.pouls-t{margin:0 0 .4rem;font:700 .9rem var(--head);color:var(--ink)}
.pouls-p .em-l{margin:0 0 .5rem}.pouls-p .hint{margin:0;font-size:.78rem}
.em-pt.aff-calme{background:#27ae60}.em-pt.aff-soutenue{background:#d97706}.em-pt.aff-forte{background:#c0392b}
.pouls-plus{margin-top:.5rem;padding:0;border:0;background:none;color:var(--brand);font:600 .82rem var(--font);text-decoration:underline;cursor:pointer}
@media (max-width:640px){.pouls-n{display:none}.pouls-b{padding:0 .55rem}.pouls-p{position:fixed;left:1rem;right:1rem;top:4rem;width:auto}}
.pouls-p{font:400 .86rem/1.4 var(--font);white-space:normal}.pouls-p b{font-weight:700}.pouls-p .hint{font-weight:400}
.pouls-p small{color:var(--muted);font-size:.78rem;font-weight:400}.pouls-l{margin:.3rem 0 0;font-size:.84rem}.pouls-l a{color:var(--brand);font-weight:600}
/* frise : période en cours (ouverture passée, clôture à venir) */
.fe-f li.encours .fe-pt{background:var(--brand);border-color:var(--brand);box-shadow:0 0 0 0 color-mix(in srgb,var(--brand) 45%,transparent);animation:fe-pulse 2.2s infinite}
@keyframes fe-pulse{70%{box-shadow:0 0 0 .4rem color-mix(in srgb,var(--brand) 0%,transparent)}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){.fe-f li.encours .fe-pt{animation:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 22%,transparent)}}
.a11y-anim .fe-f li.encours .fe-pt{animation:none}
.fe-f li.encours:not(:last-child)::after{background:linear-gradient(90deg,var(--brand) var(--p,0%),var(--border-s) var(--p,0%))}
.fe-f li.encours.encours b{color:var(--brand)}
.fe-ec{display:inline-block;padding:0 .45rem;border-radius:99px;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:.7rem;line-height:1.5}
/* « Meilleur moment » : badge, texte en dessous */
.em-l li.em-conseil{flex-direction:column;align-items:flex-start;gap:.25rem}
.em-badge{display:inline-block;padding:.05rem .55rem;border-radius:99px;background:color-mix(in srgb,#2980b9 14%,transparent);color:#1f6391;font:700 .74rem var(--font);letter-spacing:.01em}
:root[data-theme=dark] .em-badge{color:#7fb8e6}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .em-badge{color:#7fb8e6}}
/* assistant de réunion : étapes terminées en vert pâle, l'étape en cours seule en vert plein */
.stepper .done .n{background:var(--brand-soft);color:var(--brand);border-color:color-mix(in srgb,var(--brand) 40%,transparent)}
.stepper li.done:not(:last-child)::after{background:color-mix(in srgb,var(--brand) 45%,var(--border-s))}
.stepper .cur .n{background:var(--brand);color:#fff;border-color:var(--brand);transform:scale(1.18)}
.stepper .cur .l{color:var(--brand);font-weight:900;position:relative;padding-bottom:.35rem}
.stepper .cur .l::after{content:"";position:absolute;left:50%;bottom:0;width:2rem;height:3px;border-radius:2px;background:var(--brand);transform:translateX(-50%)}
.stepper li:not(.cur) .l{font-weight:600}
/* convocations (espace famille) : confirmation de lecture, empêchement */
.fa-conv .cv-l{list-style:none;padding:0;margin:.6rem 0 0;line-height:1.45;display:grid;gap:.6rem}
.fa-conv li.cv{border:1px solid color-mix(in srgb,#8e44ad 30%,var(--border));border-radius:.7rem;padding:.7rem .8rem;background:var(--bg)}
.cv-h{display:flex;gap:.8rem;align-items:flex-start}
.cv-heure{flex:none;font:800 1.15rem var(--head);color:#8e44ad;min-width:3.6rem}
.cv-h small{color:var(--muted)}
.cv-etat{margin:.5rem 0 0;font-size:.88rem;color:var(--muted)}
.cv-etat.ok{color:var(--ok)}.cv-etat.warn{color:var(--warn)}
.cv-etat span{font-weight:800;margin-right:.25rem}
.cv-ok{margin:.55rem 0 0}
.cv-emp{margin:.45rem 0 0;border:0;padding:0;background:none;box-shadow:none}
.cv-emp summary{cursor:pointer;font-size:.86rem;color:var(--muted);text-decoration:underline}
.cv-emp form{display:grid;gap:.35rem;margin-top:.45rem}.cv-emp textarea{width:100%}.cv-emp .btn{justify-self:start}
:root[data-theme=dark] .cv-heure{color:#c39bd3}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .cv-heure{color:#c39bd3}}
.cv-st{margin-left:.3rem}.cv-msg{display:block;margin-top:.25rem;color:var(--muted);font-size:.8rem;max-width:18rem;white-space:normal}
.noms-opt{display:grid;gap:.45rem;margin:.8rem 0}.noms-opt label.check{display:flex;gap:.45rem;align-items:center;margin:0}
/* page Grilles : filtres combinables et tri */
.gf{display:grid;gap:.45rem;margin:.2rem 0 1rem;padding:.8rem .9rem;border:1px solid var(--border);border-radius:.8rem;background:var(--bg)}
.gf-g{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}
.gf-t{flex:0 0 9.5rem;font:700 .78rem var(--font);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.gf .fchip{padding:.2rem .6rem;font-size:.8rem}
.gf .fchip .count{font-size:.7rem}
.gf .fchip:disabled{opacity:.4;cursor:default}
.gf-pied{display:flex;align-items:center;gap:.8rem;justify-content:space-between;border-top:1px solid var(--border);padding-top:.5rem;margin-top:.15rem}
.gf-n{font-size:.85rem;color:var(--muted);font-weight:700}
@media (max-width:700px){.gf-t{flex-basis:100%}}
th.tri{cursor:pointer;user-select:none;white-space:nowrap}
th.tri::after{content:"↕";margin-left:.3rem;opacity:.35;font-size:.8em}
th.tri[aria-sort=ascending]::after{content:"↑";opacity:.9}th.tri[aria-sort=descending]::after{content:"↓";opacity:.9}
th.tri:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.g-taux{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.88rem}
.g-taux-b{display:inline-block;width:4rem;height:6px;border-radius:3px;background:var(--subtle);overflow:hidden;vertical-align:middle;margin-right:.4rem;border:1px solid var(--border)}
.g-taux-b i{display:block;height:100%;background:var(--s1,#2a78d6);border-radius:3px}
.g-taux-b.t3 i{background:var(--brand)}
.g-taux-b i.w0{width:0}.g-taux-b i.w10{width:10%}.g-taux-b i.w20{width:20%}.g-taux-b i.w30{width:30%}.g-taux-b i.w40{width:40%}.g-taux-b i.w50{width:50%}.g-taux-b i.w60{width:60%}.g-taux-b i.w70{width:70%}.g-taux-b i.w80{width:80%}.g-taux-b i.w90{width:90%}.g-taux-b i.w100{width:100%}
.gf .fchip{background:var(--subtle);border:1px solid var(--border)}.gf .fchip.on{background:var(--brand);border-color:var(--brand);color:#fff}.gf .fchip:not(:disabled):not(.on):hover{border-color:var(--brand)}
#grilles td.g-hor{white-space:nowrap}#grilles td.g-hor small{display:block}#grilles td .pill{white-space:nowrap}
.g-act{white-space:nowrap}.g-act form.inline{display:inline;margin-left:.25rem}.g-env{padding:.3rem .45rem;vertical-align:middle}.g-essai{border:1px solid var(--border);border-radius:.7rem;padding:.6rem .8rem;margin:1rem 0}.g-essai legend{font-weight:700;padding:0 .3rem}
.g-reset-c{margin-top:1.4rem;border-color:color-mix(in srgb,var(--bad) 30%,var(--border))}.g-reset-c summary{cursor:pointer;display:flex;align-items:baseline;gap:.6rem}.g-reset-c summary h2{display:inline;margin:0;font-size:1.05rem}.g-reset-c label.check{display:flex;gap:.45rem;align-items:center;margin:.5rem 0}.g-reset{font-size:1rem;line-height:1}
#grilles{width:100%}
#grilles th,#grilles td{padding-left:.45rem;padding-right:.45rem}
#grilles .g-fn{display:block;color:var(--muted);font-size:.75rem}
#grilles .g-taux-b{width:3rem}
#grilles td.g-act{width:1%;padding-right:0}
/* barre supérieure des pages publiques : boutons de droite de même hauteur, plus lisibles */
.nav-pub .who{gap:.55rem}
.nav-pub .who .acces,.nav-pub .theme-b,.nav-pub .pouls-b,.nav-pub .who .out{height:2.5rem;box-sizing:border-box;display:inline-flex;align-items:center;gap:.45rem;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:rgba(255,255,255,.06);color:#fff;font:700 .88rem var(--font);text-decoration:none;padding:0 .95rem;margin:0}
.nav-pub .who .acces:hover,.nav-pub .theme-b:hover,.nav-pub .pouls-b:hover,.nav-pub .who .out:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.5);color:#fff}
.nav-pub .who .acces:focus-visible,.nav-pub .theme-b:focus-visible{outline:2px solid #fff;outline-offset:2px}
.nav-pub .who .acces svg{flex:none}
.nav-pub .pouls-b{min-width:2.9rem;padding:0 .8rem;justify-content:center}
.nav-pub .pouls-b .rf-aff-i{height:1.15rem;gap:3px}.nav-pub .pouls-b .rf-aff-i i{width:5px;border-radius:2px}
.nav-pub .theme-b .theme-i{width:.95rem;height:.95rem}
.nav-pub .brand-t strong{font-size:1.1rem}
@media (max-width:640px){.nav-pub .who .acces span{display:none}.nav-pub .who .acces{padding:0 .7rem}.nav-pub .who{gap:.35rem}.nav-pub .who .acces,.nav-pub .theme-b,.nav-pub .pouls-b,.nav-pub .who .out{height:2.25rem}}
/* barre publique : boutons discrets, sans bordure ni fond (léger fond au survol) */
.nav-pub .who .acces,.nav-pub .theme-b,.nav-pub .pouls-b{border-color:transparent;background:transparent;padding:0 .6rem}
.nav-pub .who .acces:hover,.nav-pub .theme-b:hover,.nav-pub .pouls-b:hover,.nav-pub .pouls-b[aria-expanded=true]{background:rgba(255,255,255,.12);border-color:transparent}
.nav-pub .who .out{border-color:rgba(255,255,255,.3);background:transparent}
.nav-pub .who{gap:.2rem}
.nav-pub .pouls-b{min-width:2.5rem}
.nav-pub .who .out{border-color:transparent}.nav-pub .who .me{margin:0 .3rem 0 .5rem}
.card.suite{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 1rem;border-left:4px solid var(--brand);padding:.9rem 1.1rem}.card.suite p{margin:0}.suite-b{display:flex;gap:.5rem;flex-wrap:wrap}
/* fenêtre « Vie privée » */
dialog.vp-modale{max-width:min(46rem,calc(100vw - 2rem));max-height:calc(100vh - 3rem);padding:0;overflow:hidden;display:flex;flex-direction:column}
dialog.vp-modale:not([open]){display:none}
.vp-h{display:flex;justify-content:flex-end;padding:.5rem .6rem 0;position:sticky;top:0}
.vp-x{border:0;background:var(--subtle);width:2.2rem;height:2.2rem;border-radius:50%;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--ink)}
.vp-x:hover{background:var(--border)}
.vp-c{overflow:auto;padding:0 1.4rem 1.4rem}
.vp-c .cf h1{font-size:1.5rem;margin-top:0}
.vp-c .cf-s{background:none;border:0;padding:0;margin:1rem 0 0;box-shadow:none}
.vp-c .cf-s h2{font-size:1.05rem;margin:0 0 .3rem}
/* Paramètres par thèmes */
.reg-nav{position:sticky;top:var(--bandeau-h,60px);z-index:25;display:flex;flex-wrap:wrap;gap:.3rem;margin:.6rem 0 1.2rem;padding:.5rem 0;background:var(--bg);border-bottom:1px solid var(--border)}
.reg-nav a{text-decoration:none;color:var(--muted);font-weight:700;padding:.4rem .9rem;border-radius:99px}
.reg-nav a:hover{color:var(--ink);background:var(--subtle)}
.reg-nav a.on{color:#fff;background:var(--brand)}
:root[data-theme=dark] .reg-nav a.on{color:#0f1318}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .reg-nav a.on{color:#0f1318}}
.reg-theme{margin-bottom:2rem}
.reg-theme[hidden]{display:none}
.reg-th{margin:0 0 .8rem}.reg-th h2{margin:0 0 .2rem}.reg-th .hint{margin:0}
.reg-theme .sets{margin-bottom:1rem}
.reg-theme .card.set h3{margin:0 0 .3rem;font-size:1rem}
.reg-theme section.card[id]{scroll-margin-top:calc(var(--bandeau-h,60px) + 4rem)}
/* boutons des tableaux du personnel : centrés sur la ligne de texte des cellules voisines (pastilles, local) */
table.staff td.act{padding-top:.45rem}
.reg-th h1{margin:.1rem 0 .2rem}
/* « Continuer en tant que… » : bien visible, avec de l'air autour */
.card.suite{margin:1.6rem 0 1.8rem;padding:1.1rem 1.3rem;gap:1rem 1.4rem;background:var(--brand-soft);border:1px solid color-mix(in srgb,var(--brand) 35%,transparent);border-left:5px solid var(--brand);border-radius:14px;box-shadow:0 4px 14px rgba(20,38,92,.06)}
.card.suite p{flex:1;min-width:16rem;font-size:1.02rem;color:var(--ink)}
.suite-i{flex:none;display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--brand);color:#fff}
:root[data-theme=dark] .suite-i{color:#0f1318}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .suite-i{color:#0f1318}}
/* couleur des écoles */
.ecole{display:inline-grid;place-items:center;min-width:1.5rem;padding:.05rem .4rem;border-radius:6px;background:var(--ecole,#6b7280);color:#fff;font:800 .74rem var(--head);vertical-align:middle}
.num-b.ecole{background:var(--ecole,#6b7280);color:#fff}
.ecole-pt{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--ecole,#6b7280);margin-right:.35rem;vertical-align:middle}
/* couleur des écoles */
.ecole{display:inline-grid;place-items:center;min-width:1.5rem;padding:.05rem .4rem;border-radius:6px;background:var(--ecole,#6b7280);color:#fff;font:800 .74rem var(--head);vertical-align:middle}
.num-b.ecole{background:var(--ecole,#6b7280);color:#fff}
.ecole-pt{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--ecole,#6b7280);margin-right:.35rem;vertical-align:middle}
/* tableau de bord de l'espace pro : encart de la réunion bien visible (liseré comme le formulaire de connexion), local mis en avant */
.pa-info{background:var(--bg);border:2px solid var(--slate,#2c3e50);border-radius:14px;padding:1rem 1.3rem;margin:.9rem 0 1.4rem;gap:.8rem 2.6rem;align-items:flex-start;box-shadow:0 4px 14px rgba(20,38,92,.06)}
:root[data-theme=dark] .pa-info{border-color:var(--border-s)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pa-info{border-color:var(--border-s)}}
.pa-info span{font-size:1.02rem;color:var(--ink);margin-top:.15rem}
.pa-info b{margin-bottom:.15rem}
.pa-loc .site-local{margin-top:.2rem;font-size:1.25rem;gap:.4rem}
.pa-loc .site-local .site{font-size:.95rem;padding:.25rem .55rem;border-radius:8px}
.pa-loc .site-local .local-box{font:900 1.35rem var(--head);padding:.15rem .7rem;border:2px solid var(--site,#2c3e50);border-radius:8px;color:var(--ink)}
.pa-loc small{color:var(--muted);font-size:.8rem;margin-top:.25rem}
/* bandeaux d'état (mode essai, pause) : pleine largeur sous la barre supérieure, une couleur, texte blanc */
.etat-band,.etat-band.pause,.etat-band.essai{display:block;margin:0;padding:.55rem 0;border:0;border-radius:0;box-shadow:none;color:#fff;font-size:.9rem}
.etat-band.essai{background:#b45309}
.etat-band.pause{background:#b91c1c}
.etat-band .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .7rem}
.etat-band b{color:#fff;display:inline-flex;align-items:center;gap:.45rem;font-weight:800}
.etat-band b::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:#fff}
.etat-band.essai b::before,.etat-band.pause b::before{background:#fff}
.etat-band a{color:#fff;font-weight:800;text-decoration:underline;text-underline-offset:2px}
.etat-band a:hover{text-decoration-thickness:2px}
:root[data-theme=dark] .etat-band.pause,:root[data-theme=dark] .etat-band.essai{color:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .etat-band.pause{background:#991b1b;color:#fff;border:0}:root:not([data-theme=light]) .etat-band.essai{background:#92400e}}
:root[data-theme=dark] .etat-band.pause{background:#991b1b;border:0}:root[data-theme=dark] .etat-band.essai{background:#92400e}
@media print{.etat-band{display:none}}
/* fiche d'un membre du personnel : cours, fonctions, local */
.pf h2 .hint{font-weight:400;font-size:.9rem;margin-left:.4rem}
.pf-l{list-style:none;margin:.4rem 0 1rem;padding:0;display:grid;gap:.35rem}
.pf-c{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.45rem .7rem;border:1px solid var(--border);border-radius:10px;background:var(--bg)}
.pf-c.off{opacity:.6}.pf-c.off b{text-decoration:line-through}
.pf-n{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}
.pf-aj{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.4rem 0}
.pf-aj select,.pf-aj input:not([type=checkbox]){width:auto;min-width:10rem}
.pf-aj input[hidden],.pf-aj select[hidden]{display:none}
.pf-r{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem 2rem}
.pf-r h3{margin:.2rem 0 .4rem;font-size:.95rem}
.pf-loc{font-size:1.15rem;margin:.2rem 0 .6rem}
.pf-rac{margin:0;padding-left:1.1rem;line-height:1.9}
/* grille ouverte par l'administration pendant les réservations des parents : verrou et déverrouillage d'urgence */
.g-verrou{margin:.8rem 0 1rem;padding:.8rem 1rem;border-radius:12px;background:var(--warn-bg);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-left:5px solid var(--warn)}
.g-verrou p{margin:0 0 .4rem}
.g-verrou.ouvert{background:var(--bad-bg);border-color:color-mix(in srgb,var(--bad) 35%,transparent);border-left-color:var(--bad);display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.g-verrou.ouvert p{margin:0}
.g-verrou details summary{cursor:pointer;font-weight:700;color:var(--warn)}
.g-dv{display:grid;gap:.45rem;margin-top:.6rem;max-width:40rem}.g-dv .btn{justify-self:start}
.g-dv label.check{display:flex;gap:.45rem;align-items:flex-start}
.g-dem{border-left:5px solid var(--warn);margin-bottom:1rem}.g-dem h2{display:flex;align-items:center;gap:.5rem}
/* demande de dispense (grille, étape 1) */
.disp details summary{cursor:pointer;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.disp details summary h2{display:inline;margin:0;font-size:1.05rem}
.disp-f{display:grid;gap:.5rem;margin-top:.8rem}.disp-f .btn{justify-self:start}
.disp-etat{border-left:4px solid var(--warn);padding:.2rem 0 .2rem .8rem;margin-bottom:.8rem}.disp-etat.acceptee{border-left-color:var(--ok)}.disp-etat.refusee{border-left-color:var(--bad)}
.disp-etat p{margin:.2rem 0}
.pa-loc .site-local .site{background:var(--site,#6b7280);color:var(--site-ink,#fff);border:2px solid var(--site,#6b7280);padding:.15rem .5rem}
/* bandeau « grille ouverte à la place de… » : pleine largeur, bleu, texte blanc */
.etat-band.as{background:#1f5fa8}
:root[data-theme=dark] .etat-band.as{background:#1d4f8c}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .etat-band.as{background:#1d4f8c}}
.etat-band .eb-r{margin-left:auto;white-space:nowrap}
/* verrou de la grille : encart sobre */
.g-verrou,.g-verrou.ouvert{background:none;border:0;border-left:3px solid var(--warn);border-radius:0;padding:.2rem 0 .2rem .9rem;margin:.6rem 0 1.1rem;box-shadow:none}
.g-verrou.ouvert{border-left-color:var(--bad)}
.g-verrou p{font-size:.92rem;color:var(--text)}
.g-verrou details{border:0;background:none;padding:0;margin:.2rem 0 0;box-shadow:none}
.g-verrou details summary{font-size:.88rem;font-weight:700;color:var(--muted);text-decoration:underline;list-style:none}
.g-verrou details summary::-webkit-details-marker{display:none}
/* Ma participation (grille, étape 1) */
.part-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.6rem;margin:.4rem 0 .8rem}
.part-c{display:flex;gap:.6rem;align-items:flex-start;padding:.8rem .9rem;border:2px solid var(--border-s);border-radius:12px;background:var(--bg);cursor:pointer}
.part-c:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.part-c input{margin-top:.2rem}
.part-c b{display:block;color:var(--ink)}.part-c small{display:block;color:var(--muted);font-size:.82rem;margin-top:.15rem}
.part-f{display:grid;gap:.5rem}.part-f .btn{justify-self:start}
.part-j{display:grid;gap:.45rem}.part-j[hidden]{display:none}
/* outils de « Mes rendez-vous » : vraies icônes, libellé court, boutons plus grands */
.rv-b{display:inline-flex;align-items:center;gap:.4rem;width:auto;height:2.3rem;padding:0 .85rem;border-radius:999px;font:700 .86rem var(--font);white-space:nowrap;margin:0 .25rem .25rem 0}
.rv-b svg{flex:none}
.rv-msg{background:#c2410c;color:#fff}.rv-plus{background:#2e7d32;color:#fff;font-size:.86rem}.rv-suppr{background:var(--subtle);color:var(--bad);border:1px solid color-mix(in srgb,var(--bad) 30%,var(--border))}
td.rv-o{white-space:nowrap}
td.rv-o form{display:inline}
.rv-b{height:2.05rem;margin-top:-.3rem;margin-bottom:-.1rem}
.rv-plus{background:transparent;color:var(--brand);border:1.5px solid color-mix(in srgb,var(--brand) 45%,transparent)}
.rv-plus:hover{background:var(--brand-soft);filter:none}

/* modale « exigences de la direction » (horaire de la grille) */
dialog.part-m{max-width:min(36rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto}
.part-mf .part-g2{grid-template-columns:1fr 1fr;margin:0}
@media (max-width:520px){.part-mf .part-g2{grid-template-columns:1fr}}
.part-mf .part-m-i{margin:0;color:var(--text)}
.part-o{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between;padding:.6rem .8rem;margin:0 0 1rem;border:1px dashed var(--border-s);border-radius:10px;background:var(--bg)}
.part-o p{margin:0;flex:1 1 20rem;font-size:.9rem}

@media print{.etat-band,dialog{display:none !important}}
.g-sec h2.g-h-sep,.card h2.g-h-sep{margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--border)}
.pa-etat{display:inline-flex;align-items:center;gap:.4rem;font-weight:700}
.pa-etat::before{content:'';width:.65rem;height:.65rem;border-radius:50%;background:currentColor;flex:0 0 auto}
.pa-etat.ok{color:var(--ok)}.pa-etat.warn{color:var(--warn)}.pa-etat.bad{color:var(--bad)}.pa-etat.muted{color:var(--muted)}
.pa-etat+small{display:block}
.etat-band.edit{background:#6d28d9}
:root[data-theme=dark] .etat-band.edit{background:#5b21b6}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .etat-band.edit{background:#5b21b6}}
.etat-band .eb-acts{margin-left:auto;display:inline-flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.etat-band .eb-f{display:inline;margin:0}
.etat-band .eb-b{background:#fff;color:#1f2937;border:0;font-weight:800}
.etat-band .eb-b.arme,.etat-band .eb-b[data-arme]{background:#fde68a}
/* grille modifiée par la direction : encart pour le membre du personnel */
.g-modifs{border-left:4px solid #6d28d9}
.g-modifs summary{cursor:pointer}
.g-modifs h2{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.g-modifs ul{margin:.3rem 0 0;padding:0;list-style:none;display:grid;gap:.25rem}
.g-modifs li{font-size:.9rem}.g-modifs li time{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:.4rem}
.pill.modif{background:#ede9fe;color:#5b21b6}
:root[data-theme=dark] .pill.modif{background:rgba(139,92,246,.22);color:#c4b5fd}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pill.modif{background:rgba(139,92,246,.22);color:#c4b5fd}}
.pa-modif{margin-top:.35rem;align-self:flex-start;text-decoration:none;font-size:.78rem}
/* locaux : abréviation discrète devant le nom ; attributions par école sous le nom */
.abr-b{display:inline-block;padding:.05rem .4rem;border-radius:5px;background:var(--subtle);color:var(--muted);border:1px solid var(--border);font:700 .72rem var(--head);letter-spacing:.03em;vertical-align:middle}
.eco-l{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.2rem}
.eco-c{display:inline-flex;align-items:center;font-size:.72rem;color:var(--muted);padding:0 .35rem;border:1px solid var(--border);border-radius:999px;white-space:nowrap;cursor:default}
.eco-c:hover,.eco-c:focus-visible{border-color:var(--ecole,#6b7280);color:var(--text);outline:none}
.eco-c b{margin-left:.2rem;color:var(--text)}
.eco-c .ecole-pt{width:.5rem;height:.5rem;margin-right:.25rem}
td.nm{min-width:16rem}
.tip-f{position:fixed;z-index:1000;max-width:20rem;padding:.6rem .75rem;border-radius:10px;background:#1f2937;color:#f9fafb;font-size:.85rem;line-height:1.4;box-shadow:0 10px 30px rgba(0,0,0,.25);pointer-events:none;display:grid;gap:.25rem}
.tip-f[hidden]{display:none}
.tip-f .tip-h{font-weight:800;display:flex;align-items:center}
.tip-f .tip-h .ecole-pt{width:.6rem;height:.6rem}
.tip-f .tip-l{color:#d1d5db}.tip-f .tip-l b{color:#fff}
:root[data-theme=dark] .tip-f{background:#f3f4f6;color:#111827}:root[data-theme=dark] .tip-f .tip-l{color:#374151}:root[data-theme=dark] .tip-f .tip-l b{color:#111827}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tip-f{background:#f3f4f6;color:#111827}:root:not([data-theme=light]) .tip-f .tip-l{color:#374151}:root:not([data-theme=light]) .tip-f .tip-l b{color:#111827}}
.eco-f{margin-left:.25rem;font-weight:800;color:var(--text)}
.tip-f .tip-t{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;margin-top:.2rem}
.tip-f .tip-s{color:#86efac;font-weight:700}
:root[data-theme=dark] .tip-f .tip-s{color:#15803d}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tip-f .tip-s{color:#15803d}}
.pill.role{background:#e0e7ff;color:#3730a3}
:root[data-theme=dark] .pill.role{background:rgba(99,102,241,.25);color:#c7d2fe}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pill.role{background:rgba(99,102,241,.25);color:#c7d2fe}}
.roles-l{margin:.2rem 0 .6rem;color:var(--muted)}
.roles-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.5rem;margin:.4rem 0 .8rem}
.role-c{display:flex;gap:.55rem;align-items:flex-start;padding:.6rem .75rem;border:1px solid var(--border-s);border-radius:10px;background:var(--bg)}
.role-c:has(input:checked){border-color:#4f46e5;background:color-mix(in srgb,#6366f1 8%,var(--bg))}
.role-c b{display:block}.role-c small{display:block;color:var(--muted);font-size:.8rem;margin-top:.1rem}
.pill.role.secours{background:var(--subtle);color:var(--muted);border:1px dashed var(--border-s)}
.adm-l{color:inherit}
.site{color:var(--site-ink,#fff)}
.ecole{color:var(--ecole-ink,#fff)}
.btn.warn-b{background:#d97706;color:#fff;border-color:#d97706}.btn.warn-b:hover{background:#b45309;border-color:#b45309}
.btn.outline-b{background:transparent;color:var(--brand);border:2px solid var(--brand)}.btn.outline-b:hover{background:var(--brand-soft)}
/* Espace pro · fiche élève : en-tête avec badges, parents en cartes, icônes SVG */
.el-ic{flex:none;vertical-align:middle}
.el-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem;align-items:flex-start}
.el-head h1{margin:0 0 .4rem}
.el-badges{display:inline-flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.el-badges .ecole,.el-badges .site{font-size:.78rem;padding:.15rem .5rem}
.pill.el-cl{font-weight:800;background:var(--subtle);color:var(--ink);border:1px solid var(--border-s)}
.el-dl{display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin:0}
.el-dl dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.el-dl dd{margin:.1rem 0 0;font-weight:700;color:var(--ink)}
.el-h2{margin:1.4rem 0 .6rem}
ul.el-pl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:.8rem}
.el-p.card{margin:0;display:grid;gap:.6rem;border:0;border-top:0}
.el-p-h{display:flex;gap:.7rem;align-items:center}
.el-p-h b{display:block;font-size:1.05rem;color:var(--ink)}
.el-av{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--brand-soft);color:var(--brand);flex:none}
.pill.el-role{margin-top:.15rem;display:inline-block}
.el-p-c{display:grid;gap:.35rem}
.el-ct{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .6rem;border-radius:8px;background:var(--bg);border:1px solid var(--border);color:var(--ink);text-decoration:none;word-break:break-all}
.el-ct:hover{border-color:var(--brand);color:var(--brand)}
.el-ct .el-ic{color:var(--brand)}
.el-cta{display:flex;flex-wrap:wrap;gap:.8rem 1.5rem;align-items:center;justify-content:space-between;margin-top:1rem}
.el-cta .hint{margin:.15rem 0 0}
.el-cta .btn{display:inline-flex;align-items:center;gap:.45rem}
.back .el-ic{width:16px;height:16px;margin-right:.2rem}
.el-res a{display:flex;justify-content:space-between;gap:.6rem;align-items:center}
.el-fr li.el-fr-n{border:1px dashed var(--border-s);border-radius:var(--r);display:flex;justify-content:space-between;gap:.6rem;align-items:center;color:var(--muted);padding:.55rem .8rem}
ul.el-pl .el-p.card{padding:1rem 1.1rem}
.el-fr a,.el-fr li.el-fr-n{flex-direction:column;align-items:flex-start;gap:.3rem}
.el-fr b{white-space:nowrap}
.nav-pastille.gris{background:#fff;color:#1f2937;box-shadow:inset 0 0 0 1.5px #9ca3af}
[aria-current="page"] .nav-pastille.gris{box-shadow:none}
/* Assistance : mes demandes */
.as-md-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem}
.as-md-top h1{margin:.1rem 0}
ul.as-mdl{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.as-md{display:grid;gap:.25rem;padding:.9rem 1.1rem;border:1px solid var(--border-s);border-radius:12px;background:var(--bg);color:var(--text);text-decoration:none}
.as-md:hover{border-color:var(--brand)}
.as-md.nouv{border-left:4px solid #e8304f}
.as-md-h{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.as-md-h b{margin-right:.3rem;color:var(--ink)}
.as-md-c{font-weight:700;color:var(--ink)}
.ps-grid{width:calc(100% - 2px);table-layout:fixed;border-collapse:collapse;margin-bottom:1rem} /* 2px : le trait de droite n'est pas rogné à l'impression (Safari) */
.ps-grid col.w-nom{width:26%}.ps-grid col.w-titu{width:8%}
.ps-grid thead th{font:700 .8rem var(--font);text-transform:none;letter-spacing:0;line-height:1.2}
.ps-grid th{white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
.ps-grid td{vertical-align:middle}
.ps-grid .pc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-grid th.th-site{line-height:1.2}.ps-grid th.th-site .site{display:inline-block;margin-bottom:.1rem}
.ps-grid td.lc{text-align:center;font-weight:800}.ps-grid td.abs-c{font-style:italic;font-weight:400;color:#6b7280}
@media print{
  .ps-grid{font-size:8.4pt;margin:0;break-after:page}.ps-grid:last-of-type{break-after:auto}
  .ps-grid thead th{font-size:8pt;padding:.6mm 1.2mm;height:7mm}.ps-grid td{padding:0 1.2mm}
  .ps-grid .pc{height:4.6mm;line-height:4.6mm}  /* hauteur de ligne garantie (Safari agrandit sinon les lignes) */
  .print-doc .scroll{overflow:visible!important}
}
/* hauteur garantie aussi pour le tableau parents à deux colonnes */
table.pt .pc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media print{table.pt .pc{height:4mm;line-height:4mm}table.pt td .pc .site-local{max-height:4mm}}
.li-porte .li-logo{flex:0 0 auto;align-self:center;height:56px;width:auto;max-width:30%;object-fit:contain;margin-right:.4rem}
.li-porte .li-qui{flex:1 1 auto}
@media print{.li-porte .li-logo{height:14mm}.li-porte header{gap:5mm}}
.li-porte header{align-items:center}
.pa-acces{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.25rem}.pa-acces .pill{font-size:.82rem}
/* Espace pro · en-tête du tableau de bord : tuiles sobres (icône, valeur, détail), cliquables quand c'est utile */
.pa-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.75rem;margin:.9rem 0 1.4rem}
.pt{position:relative;display:flex;gap:.8rem;align-items:flex-start;padding:1rem 1.1rem;border:1px solid var(--border-s);border-radius:14px;background:var(--bg);color:var(--text);text-decoration:none;
  transition:border-color .15s,box-shadow .15s,transform .15s}
a.pt:hover,a.pt:focus-visible{border-color:var(--brand);box-shadow:0 6px 18px rgba(20,38,92,.08);transform:translateY(-1px);outline:none}
a.pt::after{content:'';position:absolute;top:1rem;right:1rem;width:.45rem;height:.45rem;border-top:2px solid var(--muted);border-right:2px solid var(--muted);transform:rotate(45deg);opacity:.5;transition:opacity .15s,right .15s}
a.pt:hover::after{opacity:1;right:.8rem;border-color:var(--brand)}
.pt-ic{flex:none;display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:12px;background:var(--brand-soft);color:var(--brand)}
.pt-b{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.pt-l{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pt-v{font:800 1.08rem/1.3 var(--head);color:var(--ink);display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
.pt-s{font-size:.85rem;color:var(--muted)}
.pt-chip{align-self:flex-start;margin-top:.35rem;font-size:.75rem;font-weight:800;padding:.1rem .55rem;border-radius:999px;background:var(--subtle);color:var(--ink);border:1px solid var(--border-s)}
.pt-chip.proche{background:#fef3c7;color:#92400e;border-color:#fcd34d}
.pt-loc .site-local{gap:.4rem}.pt-loc .site{font-size:.85rem;padding:.15rem .5rem;border-radius:7px}.pt-loc .local-box{font:900 1.3rem var(--head);color:var(--ink)}
.pt-gr .pa-etat{font-size:1.05rem}
.pt-gr.t-ok .pt-ic{background:var(--ok-bg);color:var(--ok)}.pt-gr.t-warn .pt-ic{background:var(--warn-bg);color:var(--warn)}.pt-gr.t-bad .pt-ic{background:var(--bad-bg);color:var(--bad)}.pt-gr.t-muted .pt-ic{background:var(--subtle);color:var(--muted)}
.pt-acc .pt-ic{background:color-mix(in srgb,#6366f1 14%,var(--bg));color:#4f46e5}
.pt .pa-modif{align-self:flex-start;margin-top:.35rem}
@media (prefers-reduced-motion:reduce){.pt,a.pt::after{transition:none}a.pt:hover{transform:none}}
/* en-tête regroupé : réunion · local · ma grille (mise en avant), puis l'accès en ligne discrète */
.pa-tiles.grp{grid-template-columns:1fr 1fr 1.35fr;gap:0;border:1px solid var(--border-s);border-radius:16px;overflow:hidden;background:var(--bg);margin-bottom:.6rem;box-shadow:0 4px 14px rgba(20,38,92,.05)}
.pa-tiles.grp .pt{border:0;border-radius:0}
.pa-tiles.grp .pt+.pt{border-left:1px solid var(--border)}
.pa-tiles.grp a.pt:hover{transform:none;box-shadow:inset 0 0 0 2px var(--brand)}
.pa-tiles.grp .pt-gr{--ton:var(--muted);background:var(--bg);box-shadow:inset 5px 0 0 var(--ton)}
.pa-tiles.grp .pt-gr.t-ok{--ton:#15803d}.pa-tiles.grp .pt-gr.t-warn{--ton:#d97706}.pa-tiles.grp .pt-gr.t-bad{--ton:#dc2626}
.pa-tiles.grp .pt-gr .pt-ic{width:3rem;height:3rem;background:var(--ton);color:#fff}
.pa-tiles.grp .pt-gr .pa-etat{font-size:1.05rem;color:#fff;background:var(--ton);padding:.2rem .7rem .2rem .55rem;border-radius:999px}
.pa-tiles.grp .pt-gr .pa-etat::before{background:#fff}
.pa-tiles.grp .pt-gr .pt-s{color:var(--text)}
.pa-tiles.grp a.pt-gr:hover{box-shadow:inset 5px 0 0 var(--ton),inset 0 0 0 2px var(--ton)}
@media (max-width:760px){.pa-tiles.grp{grid-template-columns:1fr}.pa-tiles.grp .pt+.pt{border-left:0;border-top:1px solid var(--border)}}
.pa-acc-l{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 1.4rem;padding:.2rem .3rem;font-size:.85rem;color:var(--muted);text-decoration:none}
.pa-acc-l svg{color:var(--muted)}
.pa-acc-l .pill{font-size:.75rem}
.pa-acc-go{margin-left:.3rem;color:var(--brand);font-weight:700}
a.pa-acc-l:hover .pa-acc-go{text-decoration:underline}
/* en-tête : deux zones (réunion + local en badges | ma grille), liseré bleu foncé, accents nets */
.pa-tiles.grp{grid-template-columns:1.25fr 1fr;border:2px solid var(--slate,#2c3e50)}
:root[data-theme=dark] .pa-tiles.grp{border-color:var(--border-s)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pa-tiles.grp{border-color:var(--border-s)}}
.pa-tiles.grp .pt-reu .pt-ic{background:var(--bg);color:var(--ink);border:2px solid var(--ink)}
.pa-tiles.grp .pt-gr .pt-ic{background:var(--bg);color:var(--ton);border:2px solid var(--ton)}
.pt-badges{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin-top:.45rem}
.pt-badges .site{font-size:.85rem;padding:.2rem .55rem;border-radius:7px}
.pt-local{font:800 .9rem var(--head);padding:.15rem .6rem;border-radius:7px;border:2px solid var(--ink);color:var(--ink);background:var(--bg)}
.pt-local.vide{font-weight:600;border-style:dashed;color:var(--muted)}
.pt-badges .pt-chip{margin-top:0}
@media (max-width:760px){.pa-tiles.grp{grid-template-columns:1fr}}
.es-regle{width:100%;border-collapse:collapse;margin-top:.9rem;font-size:.88rem}
.es-regle th,.es-regle td{padding:.4rem .6rem;border-bottom:1px solid var(--border);text-align:left}
.es-regle thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.es-regle tr.on{background:var(--brand-soft)}.es-regle tr.on th{color:var(--brand)}
/* page Importer : un fichier par carte, dans l'ordre conseillé */
.imp-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12.5rem),1fr));gap:.6rem;margin:1rem 0 1.4rem}
.imp-c{display:flex;gap:.7rem;align-items:flex-start;padding:.85rem 1rem;border:1px solid var(--border-s);border-radius:12px;background:var(--bg);color:var(--text);text-decoration:none}
.imp-c:hover,.imp-c.on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.imp-n{flex:none;display:grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--ink);color:var(--bg);font:800 .9rem var(--head)}
.imp-t{display:grid;gap:.15rem}.imp-t b{color:var(--ink)}.imp-t small{color:var(--muted);font-size:.8rem}.imp-t .imp-d{color:var(--text);font-weight:600}
/* Espace pro · en-tête façon « Réunion en cours » : ma grille à droite, bien visible */
.pa-st{margin:.9rem 0 .6rem}
.pa-st .db-st-h h2 a{color:inherit;text-decoration:none}.pa-st .db-st-h h2 a:hover{text-decoration:underline}
.pa-gr{--ton:var(--muted);display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;text-align:right;padding:.8rem 1rem;border:2px solid var(--ton);border-radius:12px;background:var(--bg);color:var(--text);text-decoration:none;min-width:15rem}
.pa-gr.t-ok{--ton:#15803d}.pa-gr.t-warn{--ton:#d97706}.pa-gr.t-bad{--ton:#dc2626}
.pa-gr-l{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pa-gr .pa-etat{font-size:1.15rem;color:#fff;background:var(--ton);padding:.2rem .75rem .2rem .6rem;border-radius:999px}
.pa-gr .pa-etat::before{background:#fff}
.pa-gr small{color:var(--text);font-size:.85rem}
.pa-gr-go{font-size:.85rem;font-weight:700;color:var(--ton)}
.pa-gr:hover{box-shadow:0 6px 18px rgba(20,38,92,.1)}.pa-gr:hover .pa-gr-go{text-decoration:underline}
.pa-gr .pa-modif{margin:0}
@media (max-width:760px){.pa-gr{align-items:flex-start;text-align:left;min-width:0;width:100%}}
