@font-face { font-family:Inter; font-weight:400; src:url(/marque/inter-400.woff2) format("woff2"); }
@font-face { font-family:Inter; font-weight:500; src:url(/marque/inter-500.woff2) format("woff2"); }
@font-face { font-family:Inter; font-weight:600; src:url(/marque/inter-600.woff2) format("woff2"); }
@font-face { font-family:Inter; font-weight:700 800; src:url(/marque/inter-700.woff2) format("woff2"); }

/* ================= Jetons (charte §2) ================= */
:root { --marine:#0b2545; --marine-2:#071a33; --bleu:#123c6b; --sauge:#97a083; --rouge:#b42318;
        --sb-bg:#0b2545; --sb-bg-2:#071a33; --sb-muted:rgba(255,255,255,.55);
        --etoile:url("/marque/etoile.png");
        --ok:#2f7a3a; --ok-bg:#e3f0e3; --ko:#b42318; --ko-bg:#fbe4e2; --bloque:#8a5a00; --bloque-bg:#fdf0d5;
        --info:#123c6b; --info-bg:#e3ecf7; --neutre:#4b5563; --neutre-bg:#eef0f2; --nonexe:#d9d3c6; }
html[data-theme="ivoire"] { --app-bg:#f5f1e8; --surface:#fffdf8; --surface-2:#faf7f0; --border:#e5ddcc; --text:#14243b; --muted:#64605a;
        --accent:#123c6b; --accent-hover:#0b2545; --ring:rgba(18,60,107,.28); --thead-bg:#f1ebdf; --thead-text:#3d4a5c; --header-bg:rgba(255,253,248,.86); }
html[data-theme="clair"] { --app-bg:#f3f5f8; --surface:#ffffff; --surface-2:#f7f9fc; --border:#dfe5ed; --text:#0f2138; --muted:#5a6779;
        --accent:#123c6b; --accent-hover:#0b2545; --ring:rgba(18,60,107,.28); --thead-bg:#f2f5f9; --thead-text:#3a4a60; --header-bg:rgba(255,255,255,.86); --nonexe:#d6dde7; }
html[data-theme="marine"] { --app-bg:#e9eef5; --surface:#ffffff; --surface-2:#f3f6fa; --border:#d5deea; --text:#0b2545; --muted:#4f6080;
        --accent:#0b4f8a; --accent-hover:#0b2545; --ring:rgba(11,79,138,.3); --thead-bg:#e3eaf3; --thead-text:#0b2545; --header-bg:rgba(255,255,255,.86); --nonexe:#d2dbe7; }
html[data-theme="sombre"] { color-scheme:dark; --app-bg:#071428; --surface:#0e1f3a; --surface-2:#0b1a31; --border:#1d3254; --text:#e7edf5; --muted:#93a4bd;
        --accent:#5b8bc9; --accent-hover:#7ea5d8; --ring:rgba(91,139,201,.45); --thead-bg:#0b1a31; --thead-text:#a8b7cc; --header-bg:rgba(14,31,58,.86);
        --sb-bg:#06111f; --sb-bg-2:#040b16;
        --ok:#7fca8a; --ok-bg:rgba(76,160,90,.18); --ko:#f29a90; --ko-bg:rgba(180,35,24,.25); --bloque:#f0c060; --bloque-bg:rgba(224,165,38,.18);
        --info:#9cc0ec; --info-bg:rgba(91,139,201,.2); --neutre:#b6c2d3; --neutre-bg:rgba(255,255,255,.08); --nonexe:#25395c; }

* { box-sizing:border-box; }
html, body { margin:0; height:100%; }
body { font-family:Inter, system-ui, sans-serif; font-size:.875rem; line-height:1.55; color:var(--text); background:var(--app-bg);
       display:grid; grid-template-columns:17rem 1fr; transition:grid-template-columns .2s; }
body.replie { grid-template-columns:4.6rem 1fr; }
button { font:inherit; color:inherit; cursor:pointer; }
:focus-visible { outline:3px solid var(--ring); outline-offset:2px; }
@media (prefers-reduced-motion: reduce) { * { transition:none !important; animation:none !important; } }

/* ================= Barre latérale (§3.1) ================= */
.sb { background:linear-gradient(180deg, var(--sb-bg), var(--sb-bg-2)); color:#fff; display:flex; flex-direction:column; position:sticky; top:0; height:100vh;
      overflow:hidden; border-right:1px solid rgba(255,255,255,.08); isolation:isolate; }
.sb::after { content:""; position:absolute; right:-90px; bottom:-60px; width:320px; height:320px; opacity:.06; background:#fff; z-index:-1;
      -webkit-mask:var(--etoile) center/contain no-repeat; mask:var(--etoile) center/contain no-repeat; pointer-events:none; }
.sb-tete { padding:1.3rem 1.2rem .9rem; cursor:pointer; }
.sb-tete img { height:2.15rem; display:block; object-fit:contain; object-position:left; max-width:100%; }
.sb-nom { font-size:1.15rem; font-weight:800; margin-top:.85rem; letter-spacing:-.01em; white-space:nowrap; }
.sb-nom span { color:var(--sauge); }
.sb-sous { font-size:.68rem; letter-spacing:.14em; color:var(--sb-muted); text-transform:uppercase; font-weight:600; margin-top:.1rem; white-space:nowrap; }
.sb nav { flex:1; overflow-y:auto; padding-bottom:.6rem; }
.rubrique { font-size:.66rem; letter-spacing:.16em; color:var(--sb-muted); text-transform:uppercase; font-weight:700; padding:.95rem 1.3rem .35rem; white-space:nowrap; }
.entree { margin:.08rem .7rem; padding:.5rem .7rem; border-radius:.6rem; display:flex; align-items:center; gap:.75rem; font-size:.86rem; font-weight:500;
      color:rgba(255,255,255,.86); background:none; border:0; width:calc(100% - 1.4rem); text-align:left; white-space:nowrap; }
.entree:hover { background:rgba(255,255,255,.06); }
.entree i { width:1.1rem; text-align:center; font-size:1rem; opacity:.9; flex:none; }
.entree .nb { margin-left:auto; font-size:.68rem; font-weight:700; background:rgba(255,255,255,.12); border-radius:999px; padding:.02rem .45rem; }
.entree .nb.r { background:var(--rouge); }
.entree.actif { background:rgba(255,255,255,.10); color:#fff; font-weight:600; box-shadow:inset 3px 0 0 var(--sauge); }
.entree.actif::after { content:"✦"; color:var(--sauge); font-size:.8rem; opacity:.8; }
.entree.actif .nb { margin-left:auto; } .entree.actif:not(:has(.nb))::after { margin-left:auto; }
.sb-pied { padding:.8rem 1rem 1rem; border-top:1px solid rgba(255,255,255,.08); display:flex; align-items:center; gap:.6rem; color:var(--sb-muted); font-size:.7rem; white-space:nowrap; }
.sb-pied img { height:1.6rem; }
body.replie .sb-nom, body.replie .sb-sous, body.replie .rubrique, body.replie .entree span, body.replie .entree .nb, body.replie .sb-pied span, body.replie .entree.actif::after { display:none; }
body.replie .sb-tete img { content:url(/marque/embleme.png); height:2.1rem; }
body.replie .entree { justify-content:center; padding:.6rem 0; }
body.replie .sb-pied img { height:1.2rem; }

/* ================= En-tête (§3.2) ================= */
main { min-width:0; display:flex; flex-direction:column; min-height:100vh; }
.entete { position:sticky; top:0; z-index:20; height:3.9rem; flex:none; display:flex; align-items:center; gap:.7rem; padding:0 1.5rem 0 1rem;
      background:var(--header-bg); backdrop-filter:blur(10px); border-bottom:1px solid var(--border); }
.entete::after { content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px; opacity:.55; background:linear-gradient(90deg, #0b2545, #123c6b, var(--sauge)); }
.btn-ico { width:2.4rem; height:2.4rem; border-radius:.7rem; border:1px solid var(--border); background:var(--surface); display:grid; place-items:center; position:relative; flex:none; }
.btn-ico .pas { position:absolute; top:-.3rem; right:-.3rem; background:var(--rouge); color:#fff; font-size:.6rem; font-weight:700; border-radius:999px; padding:.05rem .34rem; }
.entete .titre { font-weight:700; font-size:1.08rem; line-height:1.2; white-space:nowrap; }
.entete .ariane { font-size:.75rem; color:var(--muted); white-space:nowrap; }
.entete .ariane i { font-size:.55rem; margin:0 .3rem; opacity:.7; }
.recherche { margin-left:1rem; height:2.4rem; flex:0 1 13rem; min-width:0; overflow:hidden; white-space:nowrap; border-radius:999px; border:1px solid var(--border); background:var(--surface); display:flex; align-items:center; gap:.55rem; padding:0 .9rem; color:var(--muted); font-size:.8rem; }
.recherche kbd { margin-left:auto; font:600 .66rem Inter; border:1px solid var(--border); border-radius:.3rem; padding:.05rem .3rem; }
.entete .droite { margin-left:auto; display:flex; align-items:center; gap:.5rem; flex:none; }
.logo-editeur { height:1.7rem; padding-right:.8rem; margin-right:.2rem; border-right:1px solid var(--border); }
html[data-theme="sombre"] .logo-editeur { content:url(/marque/bgfi-services-clair.png); }
.pilule { height:2.4rem; border-radius:999px; padding:0 .95rem; display:flex; align-items:center; gap:.45rem; font-weight:600; font-size:.8rem; border:1px solid var(--border); background:var(--surface); white-space:nowrap; }
.pilule.pleine { background:var(--accent); color:#fff; border-color:var(--accent); }
.pastille { width:.8rem; height:.8rem; border-radius:50%; background:var(--app-bg); border:2px solid var(--sauge); }
.compte { display:flex; align-items:center; gap:.55rem; padding:.2rem .5rem .2rem .25rem; border-radius:999px; border:1px solid var(--border); background:var(--surface); }
.avatar { width:2rem; height:2rem; border-radius:50%; background:var(--accent); color:#fff; display:grid; place-items:center; font-weight:700; font-size:.74rem; flex:none; }
.compte .qui { font-size:.76rem; line-height:1.2; white-space:nowrap; } .compte .qui small { color:var(--muted); display:block; }
.panneau-theme { position:absolute; top:3.6rem; right:9rem; background:var(--surface); border:1px solid var(--border); border-radius:1rem; padding:1rem; box-shadow:0 20px 50px rgba(7,26,51,.18); display:none; z-index:30; width:22rem; }
.panneau-theme.ouvert { display:block; }
.panneau-theme h4 { margin:0 0 .7rem; font-size:.85rem; }
.apercus { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.apercu { border:1px solid var(--border); border-radius:.7rem; padding:.45rem; background:var(--surface-2); text-align:left; font-size:.78rem; font-weight:600; }
.apercu.actif { outline:2px solid var(--accent); }
.apercu .mini { height:3.2rem; border-radius:.45rem; display:grid; grid-template-columns:28% 1fr; overflow:hidden; margin-bottom:.35rem; border:1px solid rgba(0,0,0,.06); }
.apercu .mini b { background:#0b2545; } .apercu .mini u { display:block; }
.apercu.actif::after { content:" ✓"; color:var(--accent); }

/* ================= Contenu (§3.3) ================= */
.page { padding:1.5rem; max-width:1600px; width:100%; margin:0 auto; flex:1; }
.ecran { display:none; } .ecran.visible { display:block; }
.page-tete { position:relative; isolation:isolate; display:flex; align-items:flex-end; gap:1rem; margin-bottom:1.2rem; flex-wrap:wrap; }
.page-tete::before { content:""; position:absolute; right:.5rem; top:-1.4rem; width:6.5rem; height:6.5rem; opacity:.07; z-index:-1; background:var(--accent);
      -webkit-mask:var(--etoile) center/contain no-repeat; mask:var(--etoile) center/contain no-repeat; pointer-events:none; }
.surtitre { font-size:.68rem; letter-spacing:.16em; font-weight:700; color:var(--accent); text-transform:uppercase; }
h2 { font-size:1.55rem; font-weight:800; letter-spacing:-.02em; margin:.15rem 0 .15rem; line-height:1.2; }
.explication { color:var(--muted); font-size:.9rem; margin:0; }
.actions { margin-left:auto; display:flex; gap:.6rem; flex-wrap:wrap; }
.btn { white-space:nowrap; height:2.6rem; border-radius:.5rem; padding:0 1rem; display:inline-flex; align-items:center; gap:.5rem; font-weight:600; border:1px solid var(--border); background:var(--surface); color:var(--text); text-decoration:none; }
.btn:hover { background:var(--surface-2); }
.btn.principal { background:var(--accent); color:#fff; border-color:var(--accent); }
.btn.principal:hover { background:var(--accent-hover); }
.btn.petit { height:2.1rem; padding:0 .75rem; font-size:.8rem; }
.btn.ok { background:var(--ok-bg); color:var(--ok); border-color:transparent; } .btn.ko { background:var(--ko-bg); color:var(--ko); border-color:transparent; }
.lien { color:var(--accent); font-weight:600; text-decoration:none; font-size:.8rem; background:none; border:0; padding:0; }

.carte { background:var(--surface); border:1px solid var(--border); border-radius:1rem; box-shadow:0 1px 2px rgba(20,36,59,.05); position:relative; isolation:isolate; overflow:hidden; }
.carte::before { content:""; position:absolute; right:.6rem; bottom:.6rem; width:4.2rem; height:4.2rem; opacity:.045; z-index:-1; background:var(--accent);
      -webkit-mask:var(--etoile) center/contain no-repeat; mask:var(--etoile) center/contain no-repeat; pointer-events:none; }
.carte.sans-etoile::before { display:none; }
.carte-tete { display:flex; align-items:center; gap:.6rem; padding:.95rem 1.1rem .2rem; }
.carte-tete h3 { font-size:1rem; font-weight:700; letter-spacing:-.01em; margin:0; display:flex; align-items:center; gap:.55rem; }
.carte-tete h3 i { opacity:.7; color:var(--accent); }
.carte-tete .droite { margin-left:auto; display:flex; gap:.5rem; align-items:center; }
.carte-corps { padding:.8rem 1.1rem 1.1rem; }
.grille { display:grid; gap:1rem; }
.g-5 { grid-template-columns:repeat(5, 1fr); } .g-3 { grid-template-columns:repeat(3,1fr); } .g-2 { grid-template-columns:1fr 1fr; }
.g-21 { grid-template-columns:2fr 1fr; } .g-12 { grid-template-columns:1fr 2fr; } .g-32 { grid-template-columns:3fr 2fr; }
.mb { margin-bottom:1rem; }

/* indicateurs (§6.2) */
.indic { padding:.95rem 1.1rem; }
.indic .lib { color:var(--muted); font-size:.78rem; font-weight:600; display:flex; gap:.45rem; align-items:center; }
.indic .lib i { color:var(--accent); opacity:.75; }
.indic .val { font-size:1.8rem; font-weight:800; letter-spacing:-.02em; margin-top:.15rem; line-height:1.15; }
.indic .val small { font-size:.9rem; color:var(--muted); font-weight:600; letter-spacing:0; }
.indic .bas { display:flex; justify-content:space-between; align-items:center; margin-top:.35rem; font-size:.74rem; font-weight:600; }
.monte { color:var(--ok); } .baisse { color:var(--ko); }

/* filtres */
.filtres { display:flex; gap:.6rem; align-items:center; padding:.7rem .8rem; margin-bottom:1rem; flex-wrap:wrap; }
.filtre { height:2.3rem; border:1px solid var(--border); background:var(--surface); border-radius:.5rem; padding:0 .75rem; display:flex; align-items:center; gap:.5rem; font-size:.8rem; }
.filtre small { color:var(--muted); font-weight:600; } .filtre b { font-weight:600; } .filtre .fa-chevron-down { font-size:.6rem; opacity:.6; margin-left:.2rem; }
.filtres .vide { margin-left:auto; }

/* tableaux (§6.3) */
.tab-defil { overflow-x:auto; }
table { width:100%; border-collapse:collapse; }
th { background:var(--thead-bg); color:var(--thead-text); text-transform:uppercase; font-size:.72rem; letter-spacing:.06em; font-weight:700; text-align:left; padding:.7rem .7rem; white-space:nowrap; }
td { padding:.62rem .7rem; border-top:1px solid var(--border); vertical-align:middle; }
tbody tr:hover td { background:var(--surface-2); }
.ref { font-family:ui-monospace, Consolas, monospace; font-size:.8rem; color:var(--accent); font-weight:600; white-space:nowrap; }
.fort { font-weight:600; } .nw td:first-child { white-space:nowrap; } .muted { color:var(--muted); } .nowrap { white-space:nowrap; } .droite-t { text-align:right; }
.act-ico { display:flex; gap:.25rem; justify-content:flex-end; }
.act-ico button { width:1.9rem; height:1.9rem; border-radius:.45rem; border:0; background:none; color:var(--muted); }
.act-ico button:hover { background:var(--surface-2); color:var(--accent); }
.pagination { display:flex; justify-content:flex-end; align-items:center; gap:.3rem; padding:.7rem 1rem; border-top:1px solid var(--border); font-size:.78rem; color:var(--muted); }
.pagination b { min-width:1.8rem; height:1.8rem; border-radius:.4rem; display:grid; place-items:center; border:1px solid var(--border); background:var(--surface); color:var(--text); font-weight:600; }
.pagination b.actif { background:var(--accent); border-color:var(--accent); color:#fff; }

/* badges (§6.5) */
.badge { display:inline-flex; align-items:center; gap:.35rem; font-size:.72rem; font-weight:600; border-radius:999px; padding:.16rem .6rem; white-space:nowrap; }
.b-gris { background:var(--neutre-bg); color:var(--neutre); } .b-bleu { background:var(--info-bg); color:var(--info); } .b-ambre { background:var(--bloque-bg); color:var(--bloque); }
.b-vert { background:var(--ok-bg); color:var(--ok); } .b-rouge { background:var(--ko-bg); color:var(--ko); } .b-contour { border:1px solid var(--border); color:var(--muted); }
.prio { font-weight:700; font-size:.72rem; display:inline-flex; align-items:center; gap:.3rem; }
.prio::before { content:""; width:.5rem; height:.5rem; border-radius:50%; background:currentColor; }
.p-crit { color:var(--ko); } .p-haute { color:var(--bloque); } .p-moy { color:var(--info); } .p-basse { color:var(--neutre); }

/* barres de progression */
.barre { height:.55rem; border-radius:999px; background:var(--nonexe); overflow:hidden; display:flex; }
.barre i { display:block; height:100%; }
.s-ok { background:#4f9a5c; } .s-ko { background:#c8463b; } .s-bl { background:#e0a526; } .s-ne { background:var(--nonexe); }
.barre.haute { height:1.1rem; border-radius:.35rem; }
.barre.haute i { font-style:normal; font-size:.66rem; font-weight:700; color:#fff; display:grid; place-items:center; }
.legende { display:flex; gap:1rem; flex-wrap:wrap; font-size:.74rem; color:var(--muted); }
.legende span { display:inline-flex; align-items:center; gap:.35rem; }
.legende span::before { content:""; width:.65rem; height:.65rem; border-radius:.2rem; background:var(--c); }

.phase-ligne { display:grid; grid-template-columns:9.5rem 1fr 5.5rem; gap:.9rem; align-items:center; padding:.6rem 0; border-bottom:1px dashed var(--border); }
.phase-ligne:last-of-type { border-bottom:0; }
.phase-ligne .nom { font-weight:600; } .phase-ligne .nom small { display:block; color:var(--muted); font-weight:400; font-size:.74rem; }
.phase-ligne .pc { text-align:right; font-weight:800; font-size:1.05rem; } .phase-ligne .pc small { display:block; font-size:.7rem; color:var(--muted); font-weight:500; }

.jalons { display:grid; grid-template-columns:repeat(5,1fr); margin-top:1.1rem; padding-top:1rem; border-top:1px solid var(--border); position:relative; }
.jalons::before { content:""; position:absolute; left:10%; right:10%; top:1.65rem; height:2px; background:var(--border); }
.jalon { text-align:center; position:relative; font-size:.74rem; }
.jalon b { width:1.3rem; height:1.3rem; border-radius:50%; margin:0 auto .4rem; display:grid; place-items:center; background:var(--surface); border:2px solid var(--border); font-size:.6rem; color:#fff; }
.jalon.fait b { background:var(--ok); border-color:var(--ok); } .jalon.encours b { border-color:var(--accent); box-shadow:0 0 0 4px var(--ring); }
.jalon.final b { border-color:var(--sauge); background:var(--sauge); }
.jalon strong { display:block; font-size:.78rem; } .jalon span { color:var(--muted); }
/* préparation au go-live */
.jauge { width:10.5rem; height:10.5rem; border-radius:50%; display:grid; place-items:center; margin:.3rem auto .8rem;
       background:conic-gradient(var(--accent) 0 72%, var(--nonexe) 72% 100%); position:relative; }
.jauge::after { content:""; position:absolute; inset:.85rem; border-radius:50%; background:var(--surface); }
.jauge div { position:relative; z-index:1; text-align:center; }
.jauge b { font-size:2rem; font-weight:800; letter-spacing:-.02em; display:block; line-height:1; }
.jauge small { color:var(--muted); font-size:.66rem; font-weight:600; display:block; max-width:6.5rem; line-height:1.25; margin-top:.3rem; }
.critere { display:flex; gap:.6rem; align-items:flex-start; padding:.42rem 0; font-size:.82rem; border-top:1px solid var(--border); }
.critere i { margin-top:.2rem; } .critere .v { margin-left:auto; font-weight:700; white-space:nowrap; }
.c-ok i, .c-ok .v { color:var(--ok); } .c-ko i, .c-ko .v { color:var(--ko); } .c-at i, .c-at .v { color:var(--bloque); }

/* histogramme */
.histo { display:flex; align-items:flex-end; gap:.55rem; height:9.5rem; padding-top:.5rem; border-bottom:1px solid var(--border); }
.histo .col { flex:1; display:flex; flex-direction:column-reverse; border-radius:.3rem .3rem 0 0; overflow:hidden; position:relative; }
.histo .col i { display:block; }
.histo-lib { display:flex; gap:.55rem; font-size:.66rem; color:var(--muted); margin-top:.3rem; }
.histo-lib span { flex:1; text-align:center; }

.mini-barre { display:flex; align-items:center; gap:.5rem; } .mini-barre .barre { flex:1; min-width:3rem; } .mini-barre b { font-size:.75rem; min-width:2.4rem; text-align:right; }
.personne { display:flex; align-items:center; gap:.55rem; white-space:nowrap; } .personne .avatar { width:1.75rem; height:1.75rem; font-size:.64rem; }
.av-2 { background:#5b6e4f !important; } .av-3 { background:#7a4e2d !important; } .av-4 { background:#4c3f78 !important; } .av-5 { background:#2c6b73 !important; }

/* projets */
.projet { padding:1.1rem; display:flex; flex-direction:column; gap:.8rem; }
.projet .haut { display:flex; gap:.8rem; align-items:flex-start; }
.projet .ico { width:2.6rem; height:2.6rem; border-radius:.7rem; background:rgba(151,160,131,.18); color:#5b6e4f; display:grid; place-items:center; font-size:1.05rem; flex:none; }
html[data-theme="sombre"] .projet .ico { color:var(--sauge); }
.projet h4 { margin:0; font-size:1rem; letter-spacing:-.01em; } .projet .app { color:var(--muted); font-size:.78rem; }
.projet .haut .badge { margin-left:auto; }
.meta { display:flex; gap:1.1rem; flex-wrap:wrap; font-size:.76rem; color:var(--muted); } .meta i { margin-right:.3rem; opacity:.8; }
.meta b { color:var(--text); font-weight:600; }
.phases-mini { display:grid; gap:.45rem; }
.phases-mini div { display:grid; grid-template-columns:6.5rem 1fr 2.6rem; gap:.6rem; align-items:center; font-size:.76rem; }
.phases-mini span { text-align:right; font-weight:700; }
.projet .pied-p { display:flex; align-items:center; gap:.6rem; border-top:1px solid var(--border); padding-top:.75rem; }
.equipe { display:flex; } .equipe .avatar { width:1.7rem; height:1.7rem; font-size:.6rem; border:2px solid var(--surface); margin-left:-.4rem; } .equipe .avatar:first-child { margin-left:0; }
.projet .pied-p .lien { margin-left:auto; }
.projet.nouveau { border-style:dashed; align-items:center; justify-content:center; text-align:center; color:var(--muted); min-height:14rem; background:transparent; box-shadow:none; }
.projet.nouveau .ico { margin:0 auto; }

/* filiales, portée, programmes */
.fil { display:inline-grid; place-items:center; min-width:1.75rem; height:1.3rem; padding:0 .3rem; border-radius:.35rem; font-size:.62rem; font-weight:800; letter-spacing:.05em;
       background:var(--surface-2); border:1px solid var(--border); color:var(--text); }
.fil.actif { background:var(--accent); border-color:var(--accent); color:#fff; }
.fils { display:inline-flex; gap:.25rem; flex-wrap:wrap; align-items:center; }
.b-groupe { background:rgba(151,160,131,.22); color:#4c5a3c; } html[data-theme="sombre"] .b-groupe { color:#c9d0b8; }
.portee { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; font-size:.76rem; color:var(--muted); }
.portee .prog { margin-left:auto; display:inline-flex; gap:.35rem; align-items:center; }
.programme { padding:1.1rem; display:flex; flex-direction:column; gap:.75rem; }
.programme .haut { display:flex; gap:.8rem; align-items:flex-start; }
.programme .ico { width:2.6rem; height:2.6rem; border-radius:.7rem; background:var(--info-bg); color:var(--info); display:grid; place-items:center; font-size:1.05rem; flex:none; }
.programme h4 { margin:0; font-size:1rem; letter-spacing:-.01em; } .programme .app { color:var(--muted); font-size:.78rem; }
.programme .haut .badge { margin-left:auto; }
.programme .chiffres { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; }
.programme .chiffres div { background:var(--surface-2); border:1px solid var(--border); border-radius:.6rem; padding:.45rem .6rem; }
.programme .chiffres small { display:block; color:var(--muted); font-size:.7rem; font-weight:600; } .programme .chiffres b { font-size:1.1rem; font-weight:800; }
.matrice th:not(:first-child), .matrice td:not(:first-child) { text-align:center; }
.matrice td { vertical-align:middle; }
.matrice .groupe-l td { background:var(--surface-2); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--accent); padding:.45rem .7rem; }
.etat-fil { display:inline-flex; flex-direction:column; align-items:center; gap:.15rem; }
.etat-fil small { font-size:.68rem; color:var(--muted); }
.non-concerne { color:var(--muted); opacity:.5; }
.choix-portee { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.choix-portee label { border:1px solid var(--border); border-radius:.7rem; padding:.7rem .8rem; display:flex; gap:.6rem; align-items:flex-start; cursor:pointer; background:var(--surface); }
.choix-portee label.sel { border-color:var(--accent); background:var(--info-bg); }
.choix-portee b { display:block; font-size:.85rem; } .choix-portee small { color:var(--muted); font-size:.75rem; line-height:1.4; display:block; }
.choix-portee input { accent-color:var(--accent); margin-top:.2rem; }

/* exécution */
.file-attente { padding:.5rem; }
.fa-item { display:block; width:100%; text-align:left; border:1px solid transparent; background:none; border-radius:.6rem; padding:.6rem .7rem; margin-bottom:.2rem; }
.fa-item:hover { background:var(--surface-2); }
.fa-item.actif { background:var(--surface-2); border-color:var(--border); box-shadow:inset 3px 0 0 var(--accent); }
.fa-item .l1 { display:flex; justify-content:space-between; gap:.5rem; align-items:center; } .fa-item .t { font-weight:600; font-size:.82rem; line-height:1.35; margin-top:.15rem; }
.fa-item .l3 { font-size:.72rem; color:var(--muted); margin-top:.2rem; }
.bloc-info { display:grid; grid-template-columns:repeat(4, 1fr); gap:.8rem; padding:.85rem 1rem; background:var(--surface-2); border:1px solid var(--border); border-radius:.75rem; margin-bottom:1rem; }
.bloc-info small { display:block; color:var(--muted); font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
.bloc-info b { font-weight:600; font-size:.84rem; }
.prerequis { font-size:.84rem; margin:0 0 1rem; padding:.7rem .9rem; border-left:3px solid var(--sauge); background:rgba(151,160,131,.1); border-radius:0 .5rem .5rem 0; }
.etapes td { vertical-align:top; } .etapes td:first-child { font-weight:800; color:var(--accent); width:2rem; }
.etapes .obt { border:1px solid var(--border); border-radius:.45rem; padding:.35rem .5rem; background:var(--surface); min-height:2.1rem; font-size:.8rem; color:var(--muted); }
.etapes .obt.rempli { color:var(--text); }
.choix-etape { display:flex; gap:.3rem; }
.choix-etape button { height:1.95rem; padding:0 .6rem; border-radius:.45rem; border:1px solid var(--border); background:var(--surface); font-size:.74rem; font-weight:700; color:var(--muted); }
.choix-etape button.sel-ok { background:var(--ok-bg); color:var(--ok); border-color:transparent; }
.choix-etape button.sel-ko { background:var(--ko-bg); color:var(--ko); border-color:transparent; }
.resultat-global { display:flex; gap:.5rem; flex-wrap:wrap; }
.resultat-global label { flex:1; min-width:7rem; border:1px solid var(--border); border-radius:.6rem; padding:.6rem .7rem; display:flex; align-items:center; gap:.5rem; font-weight:600; font-size:.82rem; cursor:pointer; background:var(--surface); }
.resultat-global label.sel { border-color:var(--ko); background:var(--ko-bg); color:var(--ko); }
.resultat-global input { accent-color:var(--accent); }

/* formulaires (§6.4) */
.champ { display:flex; flex-direction:column; gap:.3rem; }
.champ label, .champ .lib { font-size:.82rem; font-weight:600; }
.champ label .req { color:var(--rouge); }
.champ input, .champ select, .champ textarea { font:inherit; color:var(--text); background:var(--surface); border:1px solid var(--border); border-radius:.5rem; height:2.6rem; padding:0 .75rem; width:100%; }
.champ textarea { height:auto; min-height:4.5rem; padding:.55rem .75rem; resize:vertical; }
.champ input[type="radio"], .champ input[type="checkbox"] { width:auto; height:auto; padding:0; flex:none; }
.champ input:focus, .champ select:focus, .champ textarea:focus { outline:2px solid var(--ring); border-color:var(--accent); }
.champ .aide { font-size:.75rem; color:var(--muted); }
.form-grille { display:grid; grid-template-columns:1fr 1fr; gap:.9rem 1rem; } .form-grille .large { grid-column:1 / -1; }
.cases { display:flex; gap:.5rem; flex-wrap:wrap; }
.cases label { display:inline-flex; align-items:center; gap:.45rem; border:1px solid var(--border); border-radius:.5rem; padding:.45rem .7rem; font-size:.8rem; font-weight:500; background:var(--surface-2); }
.cases input { accent-color:var(--accent); }
.depot { border:2px dashed var(--border); border-radius:.8rem; padding:1.1rem; text-align:center; color:var(--muted); background:var(--surface-2); font-size:.82rem; }
.depot i { font-size:1.5rem; color:var(--accent); opacity:.7; display:block; margin-bottom:.35rem; }
.pj { display:flex; gap:.6rem; flex-wrap:wrap; }
.pj span { border:1px solid var(--border); border-radius:.5rem; padding:.35rem .6rem; font-size:.76rem; display:inline-flex; gap:.45rem; align-items:center; background:var(--surface-2); }

/* modales (§6.6) */
.voile { position:fixed; inset:0; background:rgba(7,20,40,.5); display:none; align-items:flex-start; justify-content:center; z-index:50; padding:4vh 1rem; overflow:auto; }
.voile.ouvert { display:flex; }
.modale { background:var(--surface); border:1px solid var(--border); border-radius:1rem; width:min(46rem, 100%); box-shadow:0 30px 80px rgba(7,20,40,.35); }
.modale-tete { display:flex; align-items:center; gap:.7rem; padding:1rem 1.2rem; border-bottom:1px solid var(--border); }
.modale-tete h3 { margin:0; font-size:1.05rem; display:flex; align-items:center; gap:.55rem; } .modale-tete h3 i { color:var(--accent); opacity:.75; }
.modale-tete .btn-ico { margin-left:auto; width:2.1rem; height:2.1rem; }
.modale-corps { padding:1.1rem 1.2rem; }
.modale-pied { display:flex; justify-content:flex-end; align-items:center; gap:.8rem; padding:.9rem 1.2rem; border-top:1px solid var(--border); background:var(--surface-2); border-radius:0 0 1rem 1rem; }
.etapes-import { display:flex; gap:.5rem; margin-bottom:1rem; }
.etapes-import div { flex:1; display:flex; align-items:center; gap:.5rem; font-size:.78rem; font-weight:600; color:var(--muted); padding:.5rem .6rem; border-radius:.5rem; background:var(--surface-2); }
.etapes-import div b { width:1.4rem; height:1.4rem; border-radius:50%; display:grid; place-items:center; background:var(--nonexe); color:var(--text); font-size:.7rem; }
.etapes-import div.fait b { background:var(--ok); color:#fff; } .etapes-import div.encours { color:var(--accent); background:var(--info-bg); } .etapes-import div.encours b { background:var(--accent); color:#fff; }
.alerte { display:flex; gap:.6rem; align-items:flex-start; border-radius:.8rem; padding:.65rem .8rem; font-size:.8rem; margin-bottom:.9rem; }
.alerte i { margin-top:.15rem; } .al-ok { background:var(--ok-bg); color:var(--ok); } .al-at { background:var(--bloque-bg); color:var(--bloque); } .al-info { background:var(--info-bg); color:var(--info); }
.correspondance td { font-size:.8rem; padding:.45rem .6rem; } .correspondance th { font-size:.66rem; padding:.5rem .6rem; }

/* signatures */
.circuit { position:relative; padding-left:.2rem; }
.sig-etape { display:grid; grid-template-columns:2.4rem 1fr auto; gap:.8rem; align-items:center; padding:.75rem 0; position:relative; }
.sig-etape::before { content:""; position:absolute; left:1.2rem; top:3rem; bottom:-.8rem; width:2px; background:var(--border); }
.sig-etape:last-child::before { display:none; }
.sig-etape .rond { width:2.4rem; height:2.4rem; border-radius:50%; display:grid; place-items:center; font-weight:800; border:2px solid var(--border); background:var(--surface); color:var(--muted); position:relative; z-index:1; }
.sig-etape.signe .rond { background:var(--ok); border-color:var(--ok); color:#fff; }
.sig-etape.vous .rond { border-color:var(--accent); color:var(--accent); box-shadow:0 0 0 4px var(--ring); }
.sig-etape .qui b { display:block; } .sig-etape .qui small { color:var(--muted); font-size:.76rem; }
.sig-etape .trace { font-family:"Segoe Script", "Brush Script MT", cursive; font-size:1.05rem; color:var(--accent); }
.pad { border:1px dashed var(--border); border-radius:.75rem; background:var(--surface-2); height:10rem; position:relative; touch-action:none; }
.pad canvas { width:100%; height:100%; display:block; cursor:crosshair; }
.pad .ligne { position:absolute; left:1.2rem; right:1.2rem; bottom:2.2rem; border-bottom:1px solid var(--border); pointer-events:none; }
.pad .indic-pad { position:absolute; left:1.2rem; bottom:.6rem; font-size:.72rem; color:var(--muted); pointer-events:none; }
.decision { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; }
.decision label { border:1px solid var(--border); border-radius:.6rem; padding:.55rem .6rem; font-size:.78rem; font-weight:600; display:flex; gap:.45rem; align-items:center; cursor:pointer; }
.decision label.sel { border-color:var(--accent); background:var(--info-bg); color:var(--info); }
.decision input { accent-color:var(--accent); }
.synthese-pv { display:grid; grid-template-columns:repeat(4,1fr); gap:.6rem; margin:.4rem 0 1rem; }
.synthese-pv div { border:1px solid var(--border); border-radius:.7rem; padding:.6rem .7rem; background:var(--surface-2); }
.synthese-pv small { display:block; color:var(--muted); font-size:.72rem; font-weight:600; } .synthese-pv b { font-size:1.25rem; font-weight:800; }
.reserve { display:flex; gap:.6rem; padding:.55rem 0; border-top:1px solid var(--border); font-size:.82rem; } .reserve .ref { min-width:4.4rem; }

/* documents */
.doc-type { padding:1rem 1.1rem; display:flex; flex-direction:column; gap:.6rem; }
.doc-type .ico { width:2.5rem; height:2.5rem; border-radius:.65rem; display:grid; place-items:center; background:var(--info-bg); color:var(--info); font-size:1.05rem; }
.doc-type h4 { margin:0; font-size:.95rem; } .doc-type p { margin:0; color:var(--muted); font-size:.78rem; line-height:1.45; flex:1; }
.doc-type .formats { display:flex; gap:.35rem; align-items:center; }
.doc-type .formats span { font-size:.66rem; font-weight:700; border:1px solid var(--border); border-radius:.3rem; padding:.05rem .35rem; color:var(--muted); }
.doc-type .formats .btn { margin-left:auto; }
.fichier { display:inline-flex; align-items:center; gap:.5rem; font-weight:600; } .fichier i { font-size:1.1rem; }
.fi-pdf { color:#b42318; } .fi-doc { color:#1f5aa6; } .fi-xls { color:#2f7a3a; }
html[data-theme="sombre"] .fi-pdf { color:#f29a90; } html[data-theme="sombre"] .fi-doc { color:#9cc0ec; } html[data-theme="sombre"] .fi-xls { color:#7fca8a; }
.feuille { background:#fff; color:#14243b; border-radius:.4rem; box-shadow:0 10px 30px rgba(7,26,51,.18); padding:1.4rem 1.5rem; font-size:.62rem; line-height:1.45; aspect-ratio:1/1.414; position:relative; overflow:hidden; isolation:isolate; }
.feuille::before { content:""; position:absolute; right:-2rem; bottom:-2rem; width:11rem; height:11rem; opacity:.05; background:#123c6b; z-index:-1;
      -webkit-mask:var(--etoile) center/contain no-repeat; mask:var(--etoile) center/contain no-repeat; }
.feuille .f-tete { display:flex; justify-content:space-between; align-items:center; border-bottom:2px solid #0b2545; padding-bottom:.5rem; }
.feuille .f-tete img { height:1.6rem; }
.feuille .f-tete span { font-size:.55rem; color:#64605a; text-align:right; }
.feuille h5 { font-size:.95rem; margin:.8rem 0 .1rem; color:#0b2545; letter-spacing:-.01em; }
.feuille .f-sous { color:#97a083; font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:.52rem; }
.feuille table { margin:.5rem 0; } .feuille th { font-size:.5rem; padding:.25rem .35rem; background:#f1ebdf; color:#3d4a5c; } .feuille td { padding:.22rem .35rem; border-top:1px solid #e5ddcc; font-size:.56rem; }
.feuille .f-sig { display:grid; grid-template-columns:1fr 1fr; gap:.4rem; margin-top:.6rem; }
.feuille .f-sig div { border:1px solid #e5ddcc; border-radius:.25rem; padding:.3rem .4rem; min-height:2.6rem; font-size:.52rem; color:#64605a; }
.feuille .f-sig b { color:#14243b; display:block; } .feuille .f-sig em { font-family:"Segoe Script", cursive; color:#123c6b; font-size:.75rem; font-style:normal; }
.feuille .f-pied { position:absolute; left:1.5rem; right:1.5rem; bottom:.8rem; display:flex; justify-content:space-between; font-size:.48rem; color:#64605a; border-top:1px solid #e5ddcc; padding-top:.3rem; }

/* utilisateurs : matrice des rôles */
.roles td, .roles th { text-align:center; } .roles td:first-child, .roles th:first-child { text-align:left; }
.roles .fa-check { color:var(--ok); } .roles .fa-minus { color:var(--muted); opacity:.5; }

.pied { display:flex; justify-content:space-between; padding:.8rem 1.5rem; font-size:.72rem; color:var(--muted); border-top:1px solid var(--border); gap:1rem; flex-wrap:wrap; }

/* ================= Connexion (§4) ================= */
.connexion { position:fixed; inset:0; z-index:100; display:none; color:#fff; overflow:auto; isolation:isolate;
      background:linear-gradient(120deg, rgba(7,26,51,.92), rgba(11,37,69,.55)), url(/marque/siege-nuit.jpg) center/cover no-repeat, #0b2545; }
.connexion.visible { display:block; }
.connexion::after { content:""; position:fixed; right:-140px; bottom:-160px; width:620px; height:620px; opacity:.07; background:#fff; z-index:-1;
      -webkit-mask:var(--etoile) center/contain no-repeat; mask:var(--etoile) center/contain no-repeat; pointer-events:none; animation:tourne 120s linear infinite; }
@keyframes tourne { to { transform:rotate(360deg); } }
.cx-cadre { min-height:100%; display:flex; flex-direction:column; padding:2rem 3.5rem; max-width:1440px; margin:0 auto; }
.cx-logo { height:3.4rem; align-self:flex-start; }
.cx-milieu { flex:1; display:grid; grid-template-columns:1.15fr 1fr; gap:3rem; align-items:center; padding:2rem 0; }
.cx-surtitre { color:var(--sauge); font-size:.75rem; letter-spacing:.2em; font-weight:700; text-transform:uppercase; }
.cx-nom { font-size:3.4rem; font-weight:800; letter-spacing:-.03em; margin:.3rem 0 .2rem; line-height:1.05; }
.cx-nom span { color:var(--sauge); }
.cx-phrase { font-size:1.05rem; color:rgba(255,255,255,.82); max-width:32rem; margin:.6rem 0 1.6rem; }
.cx-puces { display:grid; gap:.85rem; max-width:32rem; }
.cx-puce { display:flex; gap:.85rem; align-items:flex-start; }
.cx-puce i { width:2.4rem; height:2.4rem; border-radius:.7rem; display:grid; place-items:center; background:rgba(151,160,131,.15); border:1px solid rgba(151,160,131,.35); color:var(--sauge); flex:none; }
.cx-puce b { display:block; font-size:.92rem; } .cx-puce small { color:rgba(255,255,255,.66); font-size:.8rem; }
.cx-carte { justify-self:end; width:100%; max-width:27rem; background:#fffdf8; color:#14243b; border-radius:1.4rem; box-shadow:0 40px 90px rgba(0,0,0,.45); padding:1.9rem 2rem; }
.cx-carte .marque { display:flex; align-items:center; gap:.6rem; font-weight:800; letter-spacing:.12em; color:#123c6b; font-size:.8rem; }
.cx-carte .marque img { height:2.1rem; }
.cx-carte h3 { font-size:1.45rem; margin:1.1rem 0 .1rem; letter-spacing:-.02em; }
.cx-carte .aide-t { color:#64605a; font-size:.84rem; margin:0 0 1.1rem; }
.cx-carte .champ input { background:#fff; border-color:#e5ddcc; color:#14243b; }
.cx-carte .champ { margin-bottom:.85rem; }
.cx-carte .lib-ligne { display:flex; justify-content:space-between; align-items:baseline; }
.cx-carte .lib-ligne a { font-size:.76rem; color:#123c6b; font-weight:600; text-decoration:none; }
.mdp { position:relative; } .mdp button { position:absolute; right:.4rem; top:.35rem; width:1.9rem; height:1.9rem; border:0; background:none; color:#64605a; }
.cx-carte .reste { display:flex; align-items:center; gap:.5rem; font-size:.82rem; margin:.2rem 0 1rem; } .cx-carte .reste input { accent-color:#123c6b; }
.cx-carte .btn.principal { width:100%; justify-content:center; height:2.9rem; background:#123c6b; border-color:#123c6b; }
.cx-carte .mention { font-size:.74rem; color:#64605a; margin-top:.9rem; display:flex; gap:.5rem; }
.cx-carte .securise { border-top:1px solid #e5ddcc; margin-top:1rem; padding-top:.8rem; display:flex; justify-content:space-between; font-size:.72rem; color:#64605a; }
.cx-bas { display:flex; align-items:center; gap:.8rem; color:rgba(255,255,255,.7); font-size:.8rem; }
.cx-bas img { height:2.6rem; }

/* ================= Responsive (§8) ================= */
@media (max-width:1279px) { .logo-editeur { display:none; } .g-5 { grid-template-columns:repeat(3,1fr); } }
@media (max-width:1100px) { .g-21, .g-12, .g-32, .g-3 { grid-template-columns:1fr 1fr; } .compte .qui { display:none; } }
@media (max-width:1023px) {
  body, body.replie { display:block; } main { width:100%; }
  .sb { position:fixed; left:0; top:0; width:17rem; z-index:60; transform:translateX(-100%); transition:transform .2s; }
  body.tiroir .sb { transform:none; } body.tiroir::after { content:""; position:fixed; inset:0; background:rgba(7,20,40,.5); z-index:55; }
  .cx-milieu { grid-template-columns:1fr; } .cx-accroche { display:none; } .cx-carte { justify-self:center; } .cx-cadre { padding:1.2rem 1rem; } .cx-logo { height:2.6rem; }
}
@media (max-width:767px) {
  .recherche, .pilule .txt, .ariane { display:none; } .pilule { padding:0 .7rem; } .page { padding:1rem; } .entete { padding:0 1rem 0 .6rem; gap:.4rem; }
  .g-5, .g-3, .g-2, .g-21, .g-12, .g-32, .form-grille, .decision { grid-template-columns:1fr; } .bloc-info, .synthese-pv { grid-template-columns:1fr 1fr; }
  .entete .titre { font-size:.95rem; } .panneau-theme { right:1rem; width:auto; left:1rem; }
  .entete .droite { flex:0 1 auto; min-width:0; gap:.35rem; } .entete .droite > .pilule:not(#btn-theme):not(.pleine), .compte .qui { display:none; }
  .entete > div:nth-child(2) { min-width:0; overflow:hidden; } .entete .titre { overflow:hidden; text-overflow:ellipsis; }
  .compte { padding:.15rem; } .btn-ico { width:2.2rem; height:2.2rem; } .pilule { height:2.2rem; }
  .phase-ligne { grid-template-columns:1fr 4.5rem; } .phase-ligne .barre { grid-column:1 / -1; grid-row:2; }
  .jalons { grid-template-columns:repeat(3,1fr); row-gap:.8rem; } .jalons::before { display:none; }
  .page-tete .actions { margin-left:0; } .filtre { flex:1 1 100%; }
  .grille[style*="grid-template-columns"] { grid-template-columns:1fr !important; }
  .cx-carte { padding:1.5rem 1.3rem; }
}
@media print { .sb, .entete, .pied, .page-tete::before, .carte::before { display:none !important; } body { display:block; } }

/* ================= Ajouts POC ================= */
.flash { display:flex; gap:.6rem; align-items:flex-start; border-radius:.8rem; padding:.7rem .9rem; font-size:.84rem; margin-bottom:1rem; }
.flash.succes { background:var(--ok-bg); color:var(--ok); } .flash.erreur { background:var(--ko-bg); color:var(--ko); } .flash.info { background:var(--info-bg); color:var(--info); }
.flash i { margin-top:.15rem; }
select.filtre-sel { height:2.3rem; border:1px solid var(--border); background:var(--surface); color:var(--text); border-radius:.5rem; padding:0 .6rem; font:inherit; font-size:.8rem; }
.filtres label { display:flex; align-items:center; gap:.4rem; font-size:.75rem; color:var(--muted); font-weight:600; }
.vide-etat { text-align:center; padding:2.5rem 1rem; color:var(--muted); }
.vide-etat i { font-size:2rem; opacity:.45; display:block; margin-bottom:.6rem; }
form.inline { display:inline; }
.btn[disabled] { opacity:.5; cursor:not-allowed; }
.mono { font-family:ui-monospace, Consolas, monospace; font-size:.78rem; }
.compte-menu { position:relative; }
.compte-menu .menu { position:absolute; right:0; top:2.9rem; background:var(--surface); border:1px solid var(--border); border-radius:.8rem; box-shadow:0 20px 50px rgba(7,26,51,.18); padding:.4rem; min-width:13rem; display:none; z-index:40; }
.compte-menu.ouvert .menu { display:block; }
.compte-menu .menu a, .compte-menu .menu button { display:flex; gap:.6rem; align-items:center; width:100%; padding:.55rem .7rem; border-radius:.5rem; border:0; background:none; text-align:left; color:var(--text); text-decoration:none; font-size:.84rem; }
.compte-menu .menu a:hover, .compte-menu .menu button:hover { background:var(--surface-2); }
.poc { position:fixed; left:50%; bottom:.8rem; transform:translateX(-50%); background:#0b2545; color:#fff; border:1px solid var(--sauge); border-radius:999px; padding:.3rem .9rem; font-size:.72rem; z-index:90; opacity:.92; }
.poc b { color:var(--sauge); }
td .check { width:1rem; height:1rem; accent-color:var(--accent); }
.barre-actions-bas { display:flex; gap:.6rem; align-items:center; padding:.7rem 1rem; border-top:1px solid var(--border); flex-wrap:wrap; }
.entree { text-decoration:none; }
.sb-tete { text-decoration:none; color:#fff; display:block; }
a.lien { text-decoration:none; }
.etapes textarea { width:100%; min-height:2.1rem; font:inherit; font-size:.8rem; border:1px solid var(--border); border-radius:.45rem; padding:.35rem .5rem; background:var(--surface); color:var(--text); resize:vertical; }
.code-otp { font-family:ui-monospace, Consolas, monospace; font-size:1.3rem; letter-spacing:.3em; text-align:center; }
.cx-carte .erreur { background:#fbe4e2; color:#b42318; border-radius:.6rem; padding:.55rem .7rem; font-size:.8rem; margin-bottom:.9rem; }
