@font-face{font-family:"Source Sans 3";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/source-sans-3-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:400;font-style:italic;font-display:swap;src:url(../fonts/source-sans-3-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/source-sans-3-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/source-sans-3-latin-700-normal.woff2) format("woff2")}

:root{
  --ink:#14213d;--text:#2b3445;--muted:#5d6676;--line:#d9dee6;--line2:#eceff3;
  --paper:#fff;--surface:#f5f6f8;--field:#fffef6;
  --gn-red:#ce1126;--gn-yellow:#fcd116;--gn-green:#009460;
  --act:#00704a;--act-dark:#005638;--act-soft:#e3f2eb;
  --info:#1d4f91;--info-soft:#e7eef8;
  --warn:#8a5a00;--warn-soft:#fdf3d7;
  --ko:#a3172a;--ko-soft:#fbe7e9;
  --r:6px;
  --font:"Source Sans 3","Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.5 var(--font);color:var(--text);background:var(--surface);min-height:100vh;display:flex;flex-direction:column}
a{color:var(--info)}
h1,h2,h3{color:var(--ink);line-height:1.2;margin:0 0 .5rem;font-weight:700}
h1{font-size:1.75rem}h2{font-size:1.3rem}h3{font-size:1.08rem}
p{margin:0 0 .75rem}
small,.small{font-size:.875rem}
.muted{color:var(--muted)}
.num{font-variant-numeric:tabular-nums}
:focus-visible{outline:3px solid #f2b705;outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* bandeau institutionnel */
.flag{display:flex;height:4px}.flag i{flex:1}.flag i:nth-child(1){background:var(--gn-red)}.flag i:nth-child(2){background:var(--gn-yellow)}.flag i:nth-child(3){background:var(--gn-green)}
.top{background:var(--paper);border-bottom:1px solid var(--line)}
.top .in{max-width:1280px;margin:0 auto;padding:.7rem 1.25rem;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--ink)}
.brand .mark{width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.8rem;letter-spacing:.02em}
.brand b{display:block;font-size:1rem}
.brand span{display:block;font-size:.82rem;color:var(--muted)}
.nav{display:flex;gap:.25rem;flex-wrap:wrap}
.nav a{padding:.4rem .75rem;border-radius:var(--r);text-decoration:none;color:var(--text);font-weight:600;font-size:.95rem}
.nav a:hover{background:var(--surface)}
.nav a.on{background:var(--ink);color:#fff}
.who{margin-left:auto;display:flex;align-items:center;gap:.5rem;font-size:.9rem}
.who .nm{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who form{margin:0}
main{flex:1}
.wrap{max-width:1280px;margin:0 auto;padding:1.75rem 1.25rem 3rem}
.narrow{max-width:760px}
.foot{border-top:1px solid var(--line);background:var(--paper);font-size:.82rem;color:var(--muted)}
.foot .in{max-width:1280px;margin:0 auto;padding:.9rem 1.25rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font:600 .95rem var(--font);padding:.55rem 1rem;border-radius:var(--r);border:1px solid var(--act);background:var(--act);color:#fff;text-decoration:none;cursor:pointer;line-height:1.2;white-space:nowrap}
.btn:hover{background:var(--act-dark);border-color:var(--act-dark)}
.btn.sec{background:var(--paper);color:var(--ink);border-color:#b8c0cc}
.btn.sec:hover{background:var(--surface)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--info);padding-left:.5rem;padding-right:.5rem}
.btn.ghost:hover{background:var(--info-soft)}
.btn.danger{background:var(--ko);border-color:var(--ko)}
.btn.sm{font-size:.85rem;padding:.35rem .7rem}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
form.inline{display:inline}

/* messages */
.msg{border-left:4px solid;padding:.7rem 1rem;margin:0 0 1rem;background:var(--paper);border-radius:0 var(--r) var(--r) 0}
.msg.success{border-color:var(--act);background:var(--act-soft)}
.msg.error{border-color:var(--ko);background:var(--ko-soft)}
.msg.info{border-color:var(--info);background:var(--info-soft)}
.msg.warn{border-color:#c98a00;background:var(--warn-soft)}

/* champs */
label.f{display:block;font-weight:600;color:var(--ink);margin:0 0 1rem}
label.f small{display:block;font-weight:400;color:var(--muted)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=search],select,textarea{
  display:block;width:100%;margin-top:.3rem;padding:.55rem .7rem;font:400 1rem var(--font);color:var(--ink);background:var(--paper);border:1px solid #b8c0cc;border-radius:var(--r)}
textarea{resize:vertical;min-height:4.5rem}
input:focus,select:focus,textarea:focus{border-color:var(--info);outline:2px solid var(--info-soft);outline-offset:0}
fieldset{border:0;padding:0;margin:0;min-width:0}
fieldset[disabled] input,fieldset[disabled] select,fieldset[disabled] textarea{background:var(--surface);color:var(--text);border-color:var(--line)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 1.25rem}

/* panneaux et tableaux */
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.25rem 1.5rem;margin-bottom:1.25rem}
.panel>h2:first-child,.panel>h3:first-child{margin-top:0}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}
.head p{margin:0}
.crumb{font-size:.9rem;margin-bottom:.3rem;display:inline-block}
table.t{width:100%;border-collapse:collapse;background:var(--paper)}
.t th{text-align:left;font-size:.85rem;font-weight:600;color:var(--muted);padding:.55rem .75rem;border-bottom:2px solid var(--line);white-space:nowrap}
.t td{padding:.6rem .75rem;border-bottom:1px solid var(--line2);vertical-align:top}
.t tr:last-child td{border-bottom:0}
.t.compact td,.t.compact th{padding:.4rem .6rem}
.t .r{text-align:right}
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
.empty{padding:2.5rem;text-align:center;color:var(--muted)}

/* statuts */
.st{display:inline-block;font-size:.82rem;font-weight:600;padding:.12rem .55rem;border-radius:999px;border:1px solid;white-space:nowrap}
.st.nouveau{color:var(--muted);border-color:var(--line);background:var(--surface)}
.st.en_cours{color:var(--info);border-color:#b9cbe6;background:var(--info-soft)}
.st.transmis{color:#5a2d82;border-color:#d4c3e6;background:#f3edf9}
.st.a_completer{color:var(--warn);border-color:#ecd28e;background:var(--warn-soft)}
.st.valide{color:var(--act);border-color:#a9d6c2;background:var(--act-soft)}
.st.archive{color:var(--muted);border-color:var(--line);background:#fff}
.bar{display:block;height:6px;background:var(--line2);border-radius:3px;overflow:hidden;min-width:80px}
.bar>i{display:block;height:100%;background:var(--act);width:0}

/* tableau de bord */
.counts{display:flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);margin-bottom:1.25rem}
.counts a{flex:1 1 130px;padding:.85rem 1rem;text-decoration:none;color:var(--text);border-right:1px solid var(--line2)}
.counts a:last-child{border-right:0}
.counts a b{display:block;font-size:1.6rem;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}
.counts a.on{background:var(--surface);box-shadow:inset 0 -3px 0 var(--ink)}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;align-items:center}
.filters input[type=search]{max-width:340px;margin:0}
.tabs-inline{display:flex;gap:0;border:1px solid #b8c0cc;border-radius:var(--r);overflow:hidden}
.tabs-inline a{padding:.45rem .9rem;text-decoration:none;color:var(--text);font-weight:600;font-size:.9rem;background:var(--paper)}
.tabs-inline a.on{background:var(--ink);color:#fff}

/* questionnaire : mise en page formulaire officiel */
.qlayout{display:grid;grid-template-columns:260px 1fr;gap:1.75rem;align-items:start}
.steps{position:sticky;top:1rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:.5rem}
.steps a{display:grid;grid-template-columns:1.8rem 1fr;gap:.1rem .4rem;padding:.55rem .6rem;border-radius:var(--r);text-decoration:none;color:var(--text);align-items:center}
.steps a:hover{background:var(--surface)}
.steps a.on{background:var(--info-soft)}
.steps a .n{font-weight:700;color:var(--ink)}
.steps a .lab{font-weight:600;font-size:.95rem;line-height:1.25}
.steps a .bar{grid-column:2;margin-top:.25rem}
.steps a .cnt{grid-column:2;font-size:.78rem;color:var(--muted)}
.steps .sep{border-top:1px solid var(--line2);margin:.4rem .2rem}
.qpage{display:none}
.qpage.on{display:block}
.qpage>header{border-bottom:2px solid var(--ink);padding-bottom:.6rem;margin-bottom:1.25rem}
.qpage>header h2{font-size:1.45rem;margin:0}
.qpage>header p{margin:.25rem 0 0;color:var(--muted)}
.qsec{margin:0 0 1.75rem}
.qsec>h3{font-size:1rem;color:var(--muted);font-weight:600;margin:0 0 .25rem;padding-bottom:.35rem;border-bottom:1px solid var(--line)}
.q{display:grid;grid-template-columns:3.4rem minmax(0,1fr) minmax(0,1fr);gap:.25rem 1.25rem;padding:.9rem 0;border-bottom:1px solid var(--line2)}
.q .qn{font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:.15rem}
.q .ql{color:var(--ink);font-weight:600}
.q .ql small{display:block;font-weight:400;color:var(--muted);margin-top:.2rem;line-height:1.4}
.q .qf input,.q .qf select,.q .qf textarea{margin-top:0;background:var(--field)}
.q .qf .ans{padding:.45rem 0;white-space:pre-wrap}
.q.wide{grid-template-columns:3.4rem minmax(0,1fr)}
.q.wide .qf{grid-column:2}
.q .req{color:var(--ko)}
.q.flagged{background:linear-gradient(90deg,var(--warn-soft),transparent 70%);margin:0 -.75rem;padding-left:.75rem;padding-right:.75rem}
.obs{grid-column:2/-1;font-size:.92rem;border-left:3px solid #c98a00;background:var(--warn-soft);padding:.45rem .75rem;margin-top:.4rem;border-radius:0 var(--r) var(--r) 0}
.obs b{color:var(--warn)}
.savebar{position:sticky;bottom:0;z-index:5;margin-top:1.5rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:.65rem 1rem;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;box-shadow:0 -6px 18px rgba(20,33,61,.07)}
.savebar .state{margin-right:auto;font-size:.9rem;color:var(--muted)}
.savebar .state.err{color:var(--ko);font-weight:600}

/* échanges */
.ex{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);margin-bottom:.75rem}
.ex>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem}
.ex>summary::-webkit-details-marker{display:none}
.ex>summary .exn{font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;min-width:1.6rem}
.ex>summary .exname{font-weight:600;color:var(--ink);flex:1}
.ex>summary .exvol{font-size:.9rem;color:var(--muted)}
.ex[open]>summary{border-bottom:1px solid var(--line2)}
.ex .exbody{padding:1rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem 1rem}
.ex .exbody label{font-size:.9rem;font-weight:600;color:var(--ink);margin-bottom:.6rem}
.ex .exbody label.opt{color:var(--muted)}
.ex .exbody label.span2{grid-column:span 2}
.ex .exbody input,.ex .exbody select{background:var(--field)}
.ex .exfoot{grid-column:1/-1;display:flex;justify-content:flex-end}
.chk{font-size:.8rem;font-weight:600;padding:.1rem .5rem;border-radius:999px;white-space:nowrap}
.chk.ok{background:var(--act-soft);color:var(--act)}
.chk.ko{background:var(--ko-soft);color:var(--ko)}
.chk.w{background:var(--warn-soft);color:var(--warn)}

/* schéma */
.chain{display:grid;grid-template-columns:repeat(5,1fr);gap:0;align-items:stretch;margin:1rem 0 .25rem}
.chain div{border:1px solid var(--line);background:var(--paper);padding:.7rem .5rem;text-align:center;font-weight:600;font-size:.9rem;color:var(--ink);position:relative}
.chain div+div{border-left:0}
.chain .me{background:#fff8d6;border-color:#e5c95a}
.chain .net{background:var(--surface);font-weight:400;color:var(--muted)}
.chain-cap{display:grid;grid-template-columns:2fr 1fr 2fr;font-size:.82rem;color:var(--muted);text-align:center}

/* accueil */
.home{display:grid;grid-template-columns:1.25fr 1fr;gap:2.5rem;align-items:start}
.home h1{font-size:2.3rem;line-height:1.12;max-width:20ch}
.home .lead{font-size:1.15rem;max-width:58ch}
.entry{background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--ink);border-radius:var(--r);padding:1.25rem 1.5rem;margin-bottom:1rem}
.entry.org{border-top-color:var(--act)}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.facts b{display:block;color:var(--ink)}

/* accès */
.gate{max-width:460px;margin:2.5rem auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:2rem}
.gate .org{font-size:1.35rem;font-weight:700;color:var(--ink);margin:.25rem 0 .1rem}

/* dossier */
.dhead{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:start;margin-bottom:1rem}
.dhead h1{margin:.1rem 0 .3rem}
.meta{display:flex;flex-wrap:wrap;gap:.35rem 1.5rem;font-size:.92rem;color:var(--muted)}
.meta b{color:var(--text);font-weight:600}
.tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--line);margin:1.25rem 0 1.25rem;flex-wrap:wrap}
.tabs a{padding:.6rem .9rem;text-decoration:none;color:var(--muted);font-weight:600;border-bottom:3px solid transparent;margin-bottom:-2px}
.tabs a.on{color:var(--ink);border-bottom-color:var(--ink)}
.tabs a .c{font-size:.78rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:0 .4rem;margin-left:.3rem;color:var(--text)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1.25rem;margin:0}
.kv dt{color:var(--muted)}
.kv dd{margin:0;color:var(--ink);font-weight:600}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.spec{width:100%;border-collapse:collapse}
.spec td,.spec th{padding:.55rem .6rem;border-bottom:1px solid var(--line2);text-align:left}
.spec th{font-size:.85rem;color:var(--muted);font-weight:600;border-bottom:2px solid var(--line)}
.spec td.v{font-size:1.15rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.alerts{list-style:none;margin:0;padding:0}
.alerts li{padding:.55rem .75rem .55rem 1rem;border-left:4px solid;margin-bottom:.45rem;background:var(--surface);border-radius:0 var(--r) var(--r) 0}
.alerts li.bloquant{border-color:var(--ko);background:var(--ko-soft)}
.alerts li.important{border-color:#c98a00;background:var(--warn-soft)}
.alerts li.info{border-color:#8a96a8}
.alerts .lvl{font-weight:700;margin-right:.35rem}
.verdict{font-weight:700}
.verdict.Suffisant{color:var(--act)}.verdict.Insuffisant{color:var(--ko)}
.thread{list-style:none;margin:0;padding:0}
.thread li{border:1px solid var(--line);border-radius:var(--r);padding:.7rem .9rem;margin-bottom:.6rem;background:var(--paper)}
.thread li.organisation{border-left:4px solid var(--info)}
.thread li.ande{border-left:4px solid #c98a00}
.thread li.resolved{opacity:.6}
.thread .who2{font-size:.85rem;color:var(--muted);margin-bottom:.2rem;display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}
.diff td.old{color:var(--ko);text-decoration:line-through}
.diff td.new{color:var(--act);font-weight:600}
.copybox{white-space:pre-wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1rem;font-size:.95rem;max-height:340px;overflow:auto}
.secret{font:700 1.4rem var(--font);letter-spacing:.06em;background:#fff8d6;border:1px dashed #c9a200;border-radius:var(--r);padding:.6rem 1rem;display:inline-block;color:var(--ink)}
.danger-zone{border:1px solid #e3a5ad;border-radius:var(--r);padding:1rem 1.25rem;background:#fff}

/* impression */
.doc{background:#fff;max-width:1000px;margin:0 auto;padding:2rem 2.5rem;border:1px solid var(--line)}
.doc .dochead{display:flex;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:.75rem;margin-bottom:1.5rem}
.doc h2{margin-top:1.75rem;padding-bottom:.3rem;border-bottom:1px solid var(--line)}
.doc .t td,.doc .t th{font-size:.92rem}
.sign{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem}
.sign div{border:1px solid var(--line);height:130px;padding:.6rem;font-size:.9rem;color:var(--muted)}

@media (max-width:1000px){
  .qlayout{grid-template-columns:1fr}
  .steps{position:static;display:flex;overflow-x:auto;gap:.25rem}
  .steps a{min-width:150px}
  .steps .sep{display:none}
  .home,.cols{grid-template-columns:1fr}
  .ex .exbody{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .q{grid-template-columns:2.6rem 1fr}
  .q .qf{grid-column:2}
  .grid2,.ex .exbody,.facts{grid-template-columns:1fr}
  .ex .exbody label.span2{grid-column:auto}
  .dhead{grid-template-columns:1fr}
  .who .nm{display:none}
  .chain{grid-template-columns:1fr}.chain div+div{border-left:1px solid var(--line);border-top:0}.chain-cap{display:none}
  h1{font-size:1.45rem}.home h1{font-size:1.8rem}
}
@media print{
  .top,.foot,.noprint,.savebar,.steps,.flag{display:none!important}
  body{background:#fff;font-size:11pt}
  .wrap{padding:0;max-width:none}
  .doc{border:0;padding:0}
  .doc h2{break-after:avoid}
  .t tr{break-inside:avoid}
  .pb{break-before:page}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* utilitaires */
.ta-r{text-align:right}.mw640{max-width:640px}.mt1{margin-top:1rem}.mt035{margin-top:.35rem}.mt075{margin-top:.75rem}.mt125{margin-top:1.25rem}.mt15{margin-top:1.5rem}
.mb1{margin-bottom:1rem}.m0{margin:0!important}.tight{margin:.35rem 0 0}.minw130{min-width:130px}.minw150{min-width:150px}.w150{width:150px}.w70{width:70px}.w140{width:140px}
.wnum{width:3.5rem}.w45{width:46%}.w50{width:50%}.pre{white-space:pre-wrap}.ko{color:var(--ko)}.okc{color:var(--act);font-weight:600}.pad{padding:.75rem 1rem}.push{margin-left:auto}
.link{cursor:pointer;color:var(--info)}.mw110{max-width:110px}.mw300{max-width:300px}.grp th,th.grp{padding-top:1rem;color:var(--ink)}.changed{background:var(--field)!important;font-weight:700}

/* ------------------------------------------------ classement et score */
.cl{display:inline-block;font-size:.8rem;font-weight:700;padding:.1rem .55rem;border-radius:999px;white-space:nowrap;vertical-align:middle}
.cl.cl-ok{background:var(--act-soft);color:var(--act)}
.cl.cl-cond{background:var(--warn-soft);color:var(--warn)}
.cl.cl-ko{background:var(--ko-soft);color:var(--ko)}
.cl.cl-ne{background:var(--surface);color:var(--muted);border:1px solid var(--line)}
.gauge{width:104px;height:104px;flex:none}
.gauge.sm{width:72px;height:72px}
.gauge .g-track{fill:none;stroke:var(--line2);stroke-width:9}
.gauge .g-val{fill:none;stroke-width:9;stroke-linecap:round;stroke:var(--muted);transition:stroke-dasharray .5s ease}
.gauge.cl-ok .g-val{stroke:var(--act)}.gauge.cl-cond .g-val{stroke:#c98a00}.gauge.cl-ko .g-val{stroke:var(--ko)}
.gauge .g-num{font:700 28px var(--font);fill:var(--ink)}
.gauge .g-unit{font:600 11px var(--font);fill:var(--muted)}
.score{position:sticky;top:1rem;background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--ink);border-radius:var(--r);padding:1rem 1.1rem}
.score h2{font-size:1rem;margin-bottom:.75rem}
.score h3{font-size:.92rem;margin:.9rem 0 .35rem;color:var(--ko)}
.score-top{display:flex;gap:.9rem;align-items:center}
.score-themes{width:100%;border-collapse:collapse;margin:.9rem 0 .25rem;font-size:.88rem}
.score-themes th{text-align:left;font-weight:600;padding:.35rem 0 .1rem;line-height:1.25}
.score-themes td{padding:.35rem 0 .1rem}
.score-themes td.num{text-align:right;white-space:nowrap;font-weight:700;color:var(--ink);vertical-align:bottom}
.score-themes tr.tb td{padding:0 0 .3rem}
.score-bl ul{margin:0 0 .75rem;padding-left:1.1rem;font-size:.88rem}
.score>p{margin-top:.75rem}
.qlayout.with-score{grid-template-columns:240px minmax(0,1fr) 270px}
.evstrip{display:grid;grid-template-columns:auto 1fr auto;gap:1.25rem;align-items:center;text-decoration:none;color:inherit}
.evstrip:hover{border-color:#b8c0cc}
.evstrip-th{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:.25rem 1rem;font-size:.82rem}
.evstrip-th li{display:flex;flex-direction:column;border-left:2px solid var(--line);padding-left:.55rem;color:var(--muted);line-height:1.25}
.evstrip-th b{color:var(--ink);font-size:1rem}
.ev-cols{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
.rules{padding-left:1.1rem}.rules li{margin-bottom:.2rem}
.crit td{vertical-align:top}
.crit tr.bl td{background:var(--ko-soft)}
.tag{display:inline-block;font-size:.72rem;font-weight:600;color:var(--ko);border:1px solid #e9b4bb;border-radius:3px;padding:0 .3rem;margin-left:.35rem;vertical-align:1px}
.pts{display:inline-block;min-width:3.2rem;text-align:center;font-weight:700;font-size:.85rem;border-radius:4px;padding:.1rem .3rem;font-variant-numeric:tabular-nums}
.pts.p2{background:var(--act-soft);color:var(--act)}.pts.p1{background:var(--warn-soft);color:var(--warn)}.pts.p0{background:var(--ko-soft);color:var(--ko)}.pts.pna{color:var(--muted)}
label.check{display:flex;gap:.5rem;align-items:center;font-weight:600;margin:.5rem 0 .75rem}
label.check input{width:auto;margin:0}

/* ------------------------------------------------ tableau de bord */
.kpis{display:grid;grid-template-columns:repeat(6,1fr);background:var(--paper);border:1px solid var(--line);border-radius:var(--r);margin-bottom:1.25rem;overflow:hidden}
.kpis a{display:flex;flex-direction:column;padding:1rem 1.1rem;text-decoration:none;color:var(--text);border-right:1px solid var(--line2);border-top:4px solid transparent}
.kpis a:last-child{border-right:0}
.kpis a:hover{background:var(--surface)}
.kpis b{font-size:2.1rem;line-height:1.05;color:var(--ink)}
.kpis span{font-weight:600;font-size:.92rem;margin-top:.2rem}
.kpis small{color:var(--muted);font-size:.8rem}
.kpis a.hl{border-top-color:#5a2d82}
.kpis a.k-ok{border-top-color:var(--act)}.kpis a.k-ok b{color:var(--act)}
.kpis a.k-cond{border-top-color:#c98a00}.kpis a.k-cond b{color:var(--warn)}
.kpis a.k-ko{border-top-color:var(--ko)}.kpis a.k-ko b{color:var(--ko)}
.dgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.25rem}
.dgrid.wide{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.dgrid .panel h2{font-size:1.08rem}
.donut-wrap{display:flex;gap:1.5rem;align-items:center;margin-bottom:.75rem}
.donut{width:170px;height:170px;flex:none}
.donut .d-track{fill:none;stroke:var(--line2);stroke-width:16}
.donut .d-seg{fill:none;stroke-width:16}
.d-seg.cl-ok,.sw.cl-ok{stroke:var(--act);background:var(--act)}
.d-seg.cl-cond,.sw.cl-cond{stroke:#d9a400;background:#d9a400}
.d-seg.cl-ko,.sw.cl-ko{stroke:var(--ko);background:var(--ko)}
.d-seg.cl-ne,.sw.cl-ne{stroke:#b8c0cc;background:#b8c0cc}
.donut .d-num{font:700 22px var(--font);fill:var(--ink)}
.donut .d-lab{font:600 9.5px var(--font);fill:var(--muted)}
.legend,.pipeline{list-style:none;margin:0;padding:0;flex:1}
.legend a,.pipeline a{display:flex;align-items:center;gap:.55rem;padding:.4rem .3rem;text-decoration:none;color:var(--text);border-bottom:1px solid var(--line2)}
.legend a:hover,.pipeline a:hover{background:var(--surface)}
.legend b,.pipeline b{margin-left:auto;color:var(--ink)}
.sw{display:inline-block;width:.8rem;height:.8rem;border-radius:2px;flex:none}
.stack{width:100%;height:14px;display:block;border-radius:3px;overflow:hidden;background:var(--line2);margin:.25rem 0 1rem}
.s-nouveau{fill:#b8c0cc;background:#b8c0cc}.s-en_cours{fill:var(--info);background:var(--info)}.s-transmis{fill:#6b3d96;background:#6b3d96}
.s-a_completer{fill:#d9a400;background:#d9a400}.s-valide{fill:var(--act);background:var(--act)}
.themes-avg{width:100%;border-collapse:collapse;margin-bottom:.75rem}
.themes-avg th{text-align:left;font-weight:600;font-size:.92rem;padding:.45rem .5rem .45rem 0}
.themes-avg td{padding:.45rem 0}
.themes-avg .wbar{width:38%;padding-right:.75rem}
.themes-avg .bar{height:8px}
.freq{list-style:none;margin:0;padding:0}
.freq li{display:grid;grid-template-columns:1fr auto;gap:.2rem .75rem;padding:.4rem 0;border-bottom:1px solid var(--line2);font-size:.92rem}
.freq .bar{grid-column:1/-1;height:5px}.freq .bar>i{background:var(--ko)}
.freq b{color:var(--ko)}
.feed{list-style:none;margin:0 0 .75rem;padding:0}
.feed li{display:grid;grid-template-columns:7.2rem 1fr;gap:0 .75rem;padding:.45rem 0;border-bottom:1px solid var(--line2);font-size:.92rem}
.feed li>span:last-child{grid-column:2}

/* ------------------------------------------------ accueil */
.hero{background:var(--ink);color:#dfe5ee;border-bottom:4px solid var(--gn-yellow)}
.hero-in{max-width:1280px;margin:0 auto;padding:3rem 1.25rem 2.75rem;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:2.5rem;align-items:center}
.hero h1{color:#fff;font-size:2.5rem;line-height:1.1;max-width:19ch;margin-bottom:1rem}
.hero .lead{font-size:1.15rem;line-height:1.55;max-width:56ch;margin-bottom:1.5rem}
.btn.on-dark{background:var(--gn-yellow);border-color:var(--gn-yellow);color:var(--ink)}
.btn.on-dark:hover{background:#ffe04d;border-color:#ffe04d}
.btn.sec.on-dark{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn.sec.on-dark:hover{background:rgba(255,255,255,.08)}
.hero-fig{margin:0}
.hero-fig figcaption{font-size:.85rem;color:#a9b4c6;max-width:52ch;margin-top:.5rem}
.net{width:100%;height:auto;display:block}
.net line{stroke-linecap:round}
.net .trust line{stroke:#4d5d7d;stroke-width:1;stroke-dasharray:2 4}
.net .peer line{stroke:#8fa0bd;stroke-width:1.6}
.net .new line{stroke:var(--gn-yellow);stroke-width:2;stroke-dasharray:6 6;animation:flow 1.6s linear infinite}
.net .node rect{fill:#1f2f52;stroke:#8fa0bd;stroke-width:1.4}
.net .node line{stroke:#8fa0bd;stroke-width:1.4}
.net .node.me rect{fill:var(--gn-yellow);stroke:var(--gn-yellow)}
.net .node.me line{stroke:var(--ink)}
.net .central rect{fill:var(--gn-green);stroke:#3fbf8c;stroke-width:1.4}
.net .central text{font:700 12px var(--font);fill:#fff;dominant-baseline:central}
.net .cap{font:600 12px var(--font);fill:#c4cdda}
.net .cap.me{fill:var(--gn-yellow)}
@keyframes flow{to{stroke-dashoffset:-24}}
.home-sec{margin:2.75rem 0}
.home-sec:first-child{margin-top:1rem}
.home-sec>h2{font-size:1.5rem;margin-bottom:1.25rem}
.process{list-style:none;counter-reset:st;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.process li{counter-increment:st;position:relative;padding:3.1rem 1.1rem 0 0}
.process li::before{content:counter(st);position:absolute;top:0;left:0;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--paper);border:2px solid var(--ink);color:var(--ink);font-weight:700;display:grid;place-items:center;z-index:1}
.process li::after{content:"";position:absolute;top:1.1rem;left:2.2rem;right:0;border-top:2px solid var(--line)}
.process li:last-child::after{display:none}
.process li:last-child::before{background:var(--act);border-color:var(--act);color:#fff}
.process h3{font-size:1.02rem;margin-bottom:.35rem}
.process p{font-size:.93rem;color:var(--muted);margin:0}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:2.5rem;align-items:start}
.split>div>h2{font-size:1.5rem}
.readiness{list-style:none;margin:1rem 0 0;padding:0}
.readiness li{display:grid;grid-template-columns:11rem 1fr;gap:.75rem;align-items:start;padding:.55rem 0;border-top:1px solid var(--line)}
.readiness .cl{justify-self:start;margin-top:.15rem}
.weights{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);font-size:.94rem}
.weights th{text-align:left;font-size:.85rem;color:var(--muted);font-weight:600;padding:.65rem .9rem;border-bottom:1px solid var(--line)}
.weights td{padding:.65rem .9rem;border-bottom:1px solid var(--line2);vertical-align:top}
.weights td:first-child{font-weight:600;color:var(--ink)}
.weights td:nth-child(2){color:var(--muted)}
.weights tr:last-child td{border-bottom:0}
.weights .r{text-align:right}
.entries{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.entries .entry{margin:0}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);margin-bottom:.5rem}
.faq summary{cursor:pointer;padding:.8rem 1rem;font-weight:600;color:var(--ink)}
.faq details[open] summary{border-bottom:1px solid var(--line2)}
.faq details p{padding:.75rem 1rem 0;max-width:75ch}

@media (max-width:1200px){
  .qlayout.with-score{grid-template-columns:240px minmax(0,1fr)}
  .qlayout.with-score .score{grid-column:2;grid-row:1;position:static;display:grid;grid-template-columns:auto 1fr;gap:0 1.5rem}
  .qlayout.with-score .score>h2,.qlayout.with-score .score>p{grid-column:1/-1}
  .qlayout.with-score .score-themes{margin-top:0}
  .qlayout.with-score>div{grid-column:2}
  .qlayout.with-score .steps{grid-row:1/span 2}
  .kpis{grid-template-columns:repeat(3,1fr)}
  .kpis a:nth-child(3){border-right:0}
  .kpis a:nth-child(-n+3){border-bottom:1px solid var(--line2)}
  .evstrip{grid-template-columns:auto 1fr}
  .evstrip-th{grid-column:1/-1}
}
@media (max-width:1000px){
  .qlayout.with-score{grid-template-columns:1fr}
  .qlayout.with-score .score,.qlayout.with-score>div,.qlayout.with-score .steps{grid-column:auto;grid-row:auto}
  .dgrid,.dgrid.wide,.split,.ev-cols,.hero-in{grid-template-columns:1fr}
  .process{grid-template-columns:1fr;gap:1rem}
  .process li{padding:0 0 0 3.2rem;min-height:2.4rem}
  .process li::after{top:2.4rem;bottom:-1rem;left:1.1rem;right:auto;border-top:0;border-left:2px solid var(--line)}
  .hero-fig{max-width:520px}
}
@media (max-width:640px){
  .kpis{grid-template-columns:1fr 1fr}
  .kpis a{border-right:1px solid var(--line2)!important;border-bottom:1px solid var(--line2)}
  .kpis b{font-size:1.7rem}
  .hero h1{font-size:1.85rem}
  .hero-in{padding:2rem 1rem}
  .donut-wrap{flex-direction:column;align-items:stretch}
  .donut{align-self:center}
  .entries,.qlayout.with-score .score{grid-template-columns:1fr}
  .readiness li{grid-template-columns:1fr;gap:.25rem}
  .evstrip-th{grid-template-columns:1fr 1fr}
  .feed li{grid-template-columns:1fr}.feed li>span:last-child{grid-column:1}
}
@media print{.score{display:none!important}.qlayout.with-score{grid-template-columns:1fr}}
.score-bl.rs h3{color:var(--warn)}
.tag.pq{color:var(--warn);border-color:#ecd28e}
.freq .bar>i.rs,.freq li.rs .bar>i{background:#d9a400}
.freq li.rs b{color:var(--warn)}
.freq .kind{font-size:.78rem;color:var(--muted);margin-left:.35rem}

/* =============================================================== plateforme de formulaires */
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.5rem 1rem;z-index:50}
.skip:focus{left:1rem}
.wrap.wide{max-width:1500px}
.mw760{max-width:760px}
.grow{flex:1;min-width:200px;margin:0}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88rem}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 1rem}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 1rem}
.big{font-size:1.8rem;color:var(--ink)}
.plain{list-style:none;margin:0;padding:0}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
input[type=url],input[type=tel],input[type=time],input[type=datetime-local]{width:100%;font:inherit;padding:.5rem .65rem;border:1px solid #b8c0cc;border-radius:var(--r);background:#fff;color:var(--text);margin-top:.3rem}
label.check{font-weight:400;color:var(--text)}
label.f.inline{display:inline-block;margin:0}
.st.f-brouillon{color:var(--muted);border-color:var(--line);background:var(--surface)}
.st.f-publie{color:var(--act);border-color:#a9d6c2;background:var(--act-soft)}
.st.f-cloture{color:var(--warn);border-color:#ecd28e;background:var(--warn-soft)}
.st.f-archive{color:var(--muted);border-color:var(--line);background:#fff}
.st.rejete{color:var(--ko);border-color:#e9b4bb;background:var(--ko-soft)}
.s-rejete{fill:var(--ko);background:var(--ko)}
.st.ob-envoye{color:var(--act);border-color:#a9d6c2;background:var(--act-soft)}
.st.ob-echec,.st.ob-envoi,.st.ob-attente{color:var(--warn);border-color:#ecd28e;background:var(--warn-soft)}
.st.ob-abandon{color:var(--ko);border-color:#e9b4bb;background:var(--ko-soft)}
.copyrow{display:flex;gap:.5rem;align-items:center}
.copyrow input{margin:0;flex:1;font-size:.9rem}
.secret{font-family:ui-monospace,Consolas,monospace;font-size:1.15rem;background:var(--surface);border:1px dashed #b8c0cc;padding:.35rem .7rem;border-radius:var(--r);letter-spacing:.04em;flex:1}
pre.mail{white-space:pre-wrap;font:inherit;font-size:.92rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.85rem 1rem;max-height:420px;overflow:auto}
.danger-zone{border:1px solid #e9b4bb;background:#fffafa;border-radius:var(--r);padding:1rem 1.25rem}
.danger-zone h2,.danger-zone h3{color:var(--ko)}
.choices{border:0;padding:0;margin:0 0 1rem}
.choices legend{font-weight:700;color:var(--ink);margin-bottom:.5rem}
.choices .opt{display:flex;gap:.65rem;align-items:flex-start;padding:.7rem .85rem;border:1px solid var(--line);border-radius:var(--r);margin-bottom:.5rem;cursor:pointer;background:#fff}
.choices .opt:has(input:checked){border-color:var(--act);background:var(--act-soft)}
.choices .opt input{margin-top:.25rem}
.choices .opt b{display:block;color:var(--ink)}
.choices .opt small{display:block;color:var(--muted)}
.choices.compact .opt{padding:.5rem .7rem}
.roles dt{font-weight:700;color:var(--ink);margin-top:.4rem}.roles dd{margin:0;color:var(--muted)}
.totp{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;align-items:start}
.totp .qr svg{width:200px;height:200px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.weeks{width:100%;height:auto;display:block}
.weeks rect{fill:var(--info)}
.weeks .v{font:700 11px var(--font);fill:var(--ink)}
.weeks .l{font:500 10px var(--font);fill:var(--muted)}
.weeks .axis{stroke:var(--line);stroke-width:1}
.legend li{display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:.4rem .2rem;border-bottom:1px solid var(--line2)}
.legend li span{display:flex;align-items:center;gap:.5rem}
.legend.inline{display:flex;gap:.5rem 1.5rem;flex-wrap:wrap}
.legend.inline li{border:0;padding:0}
.evsum{display:flex;gap:2rem;align-items:center;flex-wrap:wrap}
.evsum>div{display:flex;flex-direction:column}

/* cartes de formulaires */
.fcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.fcard{display:flex;flex-direction:column;gap:.4rem;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--ink);border-radius:var(--r);padding:1rem 1.15rem;text-decoration:none;color:var(--text)}
.fcard:hover{border-color:#b8c0cc;border-left-color:var(--act)}
.fcard h2,.fcard h3{font-size:1.1rem;margin:0}
.fc-top{display:flex;justify-content:space-between;gap:.5rem;align-items:center}
.fc-n{display:grid;grid-template-columns:repeat(3,1fr);margin:.4rem 0;border-top:1px solid var(--line2);padding-top:.5rem}
.fc-n dt{font-size:.78rem;color:var(--muted)}.fc-n dd{margin:0;font-size:1.3rem;font-weight:700;color:var(--ink)}
.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}

/* synthèse par question */
.syn{padding:.9rem 0;border-top:1px solid var(--line2)}
.syn:first-of-type{border-top:0}
.syn h3{font-size:1rem}
.syn .qn{color:var(--muted);font-variant-numeric:tabular-nums}
.hbars{width:100%;border-collapse:collapse;font-size:.92rem}
.hbars th{text-align:left;font-weight:400;padding:.25rem .75rem .25rem 0;width:35%}
.hbars td{padding:.25rem .4rem}
.hbars .wbar{width:45%}
.hb{display:block;height:14px;background:var(--line2);border-radius:2px;overflow:hidden}
.hb>i{display:block;height:100%;background:var(--info);width:0}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin:0}
.stats dt{font-size:.8rem;color:var(--muted)}.stats dd{margin:0;font-size:1.2rem;font-weight:700;color:var(--ink)}
.samples{margin:0;padding-left:1.1rem;font-size:.92rem;color:var(--text)}
.samples li{margin-bottom:.2rem}
.qrbox{display:flex;gap:1rem;align-items:center;margin-top:1rem}
.qrbox img{border:1px solid var(--line);border-radius:var(--r);background:#fff}

/* ----------------------------------------------- éditeur */
.builder-page .wrap{padding-top:1rem}
.bbar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:.6rem .9rem;margin-bottom:1rem;position:sticky;top:0;z-index:20}
.bbar form{margin:0}
.b-title{flex:1;min-width:240px;font-size:1.15rem!important;font-weight:700;color:var(--ink);margin:0!important;border-color:transparent!important;background:transparent!important}
.b-title:hover,.b-title:focus{border-color:#b8c0cc!important;background:#fff!important}
.b-state{font-size:.88rem;color:var(--muted)}
.b-state.err{color:var(--ko);font-weight:600}
.builder{display:grid;grid-template-columns:210px minmax(0,1fr) 360px;gap:1rem;align-items:start}
.palette,.props{position:sticky;top:4.2rem;max-height:calc(100vh - 5rem);overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:.85rem}
.palette h2,.props h2{font-size:1rem;margin-bottom:.4rem}
.palette h3{font-size:.8rem;color:var(--muted);margin:.85rem 0 .3rem;font-weight:600}
.pal-group{display:flex;flex-direction:column;gap:.25rem}
.pal-item{text-align:left;font:500 .9rem var(--font);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.4rem .6rem;cursor:grab}
.pal-item:hover{border-color:var(--act);background:var(--act-soft)}
.b-page{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);margin-bottom:1rem}
.b-page.sel{border-color:var(--info);box-shadow:0 0 0 2px var(--info-soft)}
.b-page-head{display:flex;align-items:center;gap:.6rem;padding:.65rem .9rem;border-bottom:2px solid var(--ink);cursor:pointer}
.b-page-head b{font-size:1.08rem;color:var(--ink);flex:1}
.b-page-head .pn{font-size:.78rem;font-weight:700;color:#fff;background:var(--ink);padding:.1rem .45rem;border-radius:3px}
.b-page-desc{padding:.4rem .9rem 0;margin:0}
.b-list{padding:.6rem;min-height:3.5rem}
.b-list.over{background:var(--info-soft)}
.b-list.drop-end{box-shadow:inset 0 -3px 0 var(--info)}
.b-item{border:1px solid var(--line2);border-radius:var(--r);padding:.55rem .7rem;margin-bottom:.45rem;background:#fff;cursor:pointer}
.b-item:hover{border-color:#b8c0cc}
.b-item.sel{border-color:var(--info);box-shadow:0 0 0 2px var(--info-soft)}
.b-item.drop-before{box-shadow:0 -3px 0 var(--info)}
.b-item.dragging{opacity:.4}
.b-item.t-heading{background:var(--surface)}
.b-item-top{display:flex;align-items:center;gap:.5rem}
.b-item .grip{color:#b8c0cc;cursor:grab;letter-spacing:-2px;font-size:.85rem}
.b-item .qn{font-weight:700;color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}
.b-label{flex:1;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
.b-label.hd{font-size:1.02rem}
.b-help{margin:.15rem 0 0 1.6rem}
.badges{display:flex;gap:.25rem;flex-wrap:wrap}
.tb{font-size:.72rem;font-weight:600;padding:.05rem .4rem;border-radius:3px;background:var(--surface);color:var(--muted);border:1px solid var(--line);white-space:nowrap}
.tb.req{color:var(--ko);border-color:#e9b4bb;background:var(--ko-soft)}
.tb.cond{color:var(--info);border-color:#b9cbe6;background:var(--info-soft)}
.tb.sc{color:var(--act);border-color:#a9d6c2;background:var(--act-soft)}
.b-acts{display:flex;gap:.1rem;margin-left:auto}
.icon{border:1px solid transparent;background:transparent;border-radius:4px;color:var(--muted);cursor:pointer;font-size:.9rem;width:1.8rem;height:1.8rem;line-height:1}
.icon:hover{background:var(--surface);border-color:var(--line);color:var(--ink)}
.icon.del:hover{color:var(--ko)}
.icon[disabled]{opacity:.3;cursor:default}
.pv-input{margin:.45rem 0 0 1.6rem;border:1px solid var(--line);border-radius:4px;height:2rem;background:var(--field);font-size:.85rem;color:var(--muted);padding:.3rem .55rem}
.pv-input.tall{height:3.6rem}
.pv-opts{list-style:none;margin:.4rem 0 0 1.6rem;padding:0;font-size:.9rem}
.pv-opts li{display:flex;align-items:center;gap:.45rem;padding:.08rem 0}
.pv-opts li::before{content:"";width:.8rem;height:.8rem;border:1.5px solid #8a93a3;flex:none}
.pv-opts.rd li::before{border-radius:50%}
.pv-opts.dd li::before{border:0;width:0}
.pts-tag{font-size:.7rem;font-weight:700;color:var(--act);background:var(--act-soft);padding:0 .3rem;border-radius:3px}
.pv-table{display:flex;gap:.25rem;flex-wrap:wrap;margin:.45rem 0 0 1.6rem}
.pv-table span{font-size:.78rem;border:1px solid var(--line);background:var(--surface);padding:.1rem .4rem;border-radius:3px}
.pv-stars{color:#d9a400;margin:.3rem 0 0 1.6rem;letter-spacing:.15rem}
.b-item code{display:block;margin:.4rem 0 0 1.6rem}
.b-empty{color:var(--muted);text-align:center;font-size:.92rem;padding:1rem;margin:0}
.b-addpage{width:100%}
.props label.f{margin-bottom:.75rem;font-size:.92rem}
.props .row{margin-top:.25rem}
.psec{border-top:1px solid var(--line2);padding:.5rem 0}
.psec>summary{cursor:pointer;font-weight:700;color:var(--ink);padding:.2rem 0}
.psec[open]>summary{margin-bottom:.5rem}
.opt-row{display:flex;gap:.3rem;align-items:center;margin-bottom:.3rem}
.opt-row input[type=text]{margin:0}
.opt-row .w-pts{width:4.6rem;flex:none;margin:0}
.rule{display:grid;grid-template-columns:1fr;gap:.25rem;border:1px solid var(--line2);border-radius:var(--r);padding:.45rem;margin-bottom:.4rem;position:relative}
.rule select,.rule input{margin:0}
.rule .icon{position:absolute;top:.2rem;right:.2rem}
.col-card{border:1px solid var(--line2);border-radius:var(--r);padding:.5rem;margin-bottom:.5rem}
.col-card .row{flex-wrap:nowrap}
.col-card input,.col-card select{margin:0}
.bl-opts label.check{margin:.15rem 0;font-size:.9rem}
.checks{margin:0;padding-left:1.1rem;color:var(--ko)}
.checks li.ok{color:var(--act);list-style:none;margin-left:-1.1rem}
.btn.del{color:var(--ko)}

/* ----------------------------------------------- remplissage */
.q{display:block;padding:1rem 0;border-bottom:1px solid var(--line2)}
.qhead{display:grid;grid-template-columns:3.2rem minmax(0,1fr);gap:0}
.qhead .qn{font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:.1rem}
.qhead>div:only-child{grid-column:1/-1}
.qh{display:block;font-weight:400;color:var(--muted);margin-top:.15rem;font-size:.93rem;line-height:1.45}
.qf{margin:.55rem 0 0 3.2rem}
.q .obs{margin-left:3.2rem}
.q.invalid .qf input,.q.invalid .qf textarea,.q.invalid .qf select{border-color:var(--ko)}
.q .err{color:var(--ko);font-size:.88rem;font-weight:600;margin:.35rem 0 0}
.qsec{margin:1.6rem 0 .2rem;font-size:1.08rem;color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:.3rem}
.qdiv{border:0;border-top:1px solid var(--line);margin:1rem 0}
.qinfo{background:var(--info-soft);border-left:3px solid var(--info);padding:.7rem 1rem;margin:.9rem 0;border-radius:0 var(--r) var(--r) 0}
.qinfo p{margin:.25rem 0 0}
.lead-s{font-size:1.08rem}
.privacy{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:.75rem 1rem;margin-top:1rem;font-size:.92rem}
.choices-in{display:flex;flex-direction:column;gap:.15rem}
.ch{display:flex;gap:.55rem;align-items:flex-start;padding:.35rem .5rem;border-radius:var(--r);cursor:pointer;font-weight:400}
.ch:hover{background:var(--surface)}
.ch input{margin-top:.3rem;width:1.05rem;height:1.05rem;accent-color:var(--act)}
.choices-in .clear{align-self:flex-start;font-size:.8rem}
.unit-wrap{display:flex;align-items:center;gap:.5rem;max-width:360px}
.unit-wrap input{margin:0}
.unit{color:var(--muted);white-space:nowrap}
.scale{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.scale .sl{font-size:.85rem;color:var(--muted);max-width:9rem}
.sc-o{display:flex;flex-direction:column;align-items:center;gap:.15rem;cursor:pointer;min-width:2.2rem;font-weight:600}
.sc-o input{width:1.15rem;height:1.15rem;accent-color:var(--act)}
.rating{display:flex;gap:.2rem;flex-direction:row}
.star{cursor:pointer;font-size:1.9rem;line-height:1;color:#c9ced8}
.star input{position:absolute;opacity:0;width:1px;height:1px}
.rating:has(.star:hover) .star{color:#c9ced8}
.rating .star:has(input:checked),.rating .star:has(~ .star input:checked){color:#d9a400}
.rating:has(.star:hover) .star:hover,.rating:has(.star:hover) .star:has(~ .star:hover){color:#e9b730}
.star:has(input:focus-visible){outline:3px solid #f2b705;outline-offset:2px;border-radius:3px}
.grid-q{border-collapse:collapse;font-size:.92rem;min-width:100%}
.grid-q th{font-weight:600;padding:.4rem .6rem;text-align:center;color:var(--ink)}
.grid-q tbody th{text-align:left;font-weight:400}
.grid-q td{text-align:center;padding:.4rem;border-top:1px solid var(--line2)}
.grid-q input{width:1.1rem;height:1.1rem;accent-color:var(--act)}
.tbl .tr{border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:.4rem .9rem .8rem;margin:0 0 .6rem}
.tbl .tr legend{font-weight:700;color:var(--ink);padding:0 .3rem;font-size:.95rem}
.tr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.1rem 1rem}
.tr-grid label{font-size:.88rem;font-weight:600;color:var(--ink);margin-bottom:.5rem}
.tr-grid label.span2{grid-column:span 2}
.tr-grid input,.tr-grid select,.tr-grid textarea{background:var(--field)}
.files .flist{list-style:none;margin:0 0 .5rem;padding:0}
.files .flist li{padding:.3rem 0;border-bottom:1px solid var(--line2)}
.drop{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;border:2px dashed #b8c0cc;border-radius:var(--r);padding:.8rem 1rem;cursor:pointer;background:var(--field);font-weight:600;color:var(--ink)}
.drop:hover{border-color:var(--act)}
.drop input{font-size:.85rem;font-weight:400}
.drop small{font-weight:400;color:var(--muted)}
.sig-pad{width:100%;max-width:600px;height:auto;aspect-ratio:10/3;border:1px solid #b8c0cc;border-radius:var(--r);background:#fff;touch-action:none;cursor:crosshair;display:block}
.sig-img{max-width:600px;width:100%;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.sig-img.sm{max-width:260px}
output.calc{display:inline-block;min-width:8rem;padding:.45rem .7rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.missing{margin:0;padding-left:1.1rem}
.missing.errs{color:var(--ko)}
.thread{list-style:none;margin:0 0 1rem;padding:0}
.thread li{border-left:3px solid var(--line);padding:.45rem .8rem;margin-bottom:.55rem;background:var(--surface);border-radius:0 var(--r) var(--r) 0}
.thread li.ande{border-left-color:#c98a00;background:var(--warn-soft)}
.thread li.done{opacity:.65}
.thread p{margin:.2rem 0}
.resume summary{cursor:pointer;font-weight:600;color:var(--ink)}
.qfields{border:0;padding:0;margin:0;min-width:0}
.t.answers td{vertical-align:top}
.t.answers tr.sub th{padding-top:1rem;color:var(--ink);font-size:.95rem;border-bottom:1px solid var(--line)}
.t.answers tr.off,.panel.off{opacity:.55}
.t.inner{font-size:.85rem}
.addobs summary{cursor:pointer;font-size:.82rem;color:var(--info);margin-top:.3rem}
.addobs form{display:flex;gap:.4rem;align-items:flex-start;margin-top:.3rem}
.addobs textarea{min-height:2.6rem;margin:0}
.obs.done{opacity:.6}
.changed-v{background:var(--act-soft)}
.assign select{margin:0;max-width:240px}
.kv-t{border-collapse:collapse;margin:1rem 0}
.kv-t th{text-align:left;color:var(--muted);font-weight:400;padding:.35rem 1.5rem .35rem 0}
.kv-t td{padding:.35rem 0;font-weight:600;color:var(--ink)}
.doc-head{display:flex;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:.75rem;margin-bottom:1.25rem}
.wide-gate{max-width:680px}

/* accueil : feuille illustrée */
.sheet{width:100%;max-width:420px;height:auto;display:block;margin:0 auto}
.sheet .paper{fill:#fff}
.sheet .paper-head{fill:#e8ecf3}
.sheet .ln{fill:#14213d;opacity:.8}.sheet .ln.light{fill:#14213d;opacity:.55}.sheet .ln.soft{opacity:.35}
.sheet .box{fill:#fffef6;stroke:#b8c0cc;stroke-width:1.2}
.sheet .box.filled{fill:#fff8d6;stroke:#e5c95a}
.sheet .radio{fill:#fff;stroke:#8a93a3;stroke-width:1.6}.sheet .radio.on{stroke:#00704a;stroke-width:5}
.sheet .send{fill:#00704a}
.sheet .stamp circle{fill:#009460;stroke:#fff;stroke-width:3}
.sheet .tick{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.sheet .stamp{transform-origin:318px 246px;animation:stamp .6s .5s cubic-bezier(.3,1.6,.6,1) both}
@keyframes stamp{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}

/* score dans la saisie */
.qlayout{grid-template-columns:250px minmax(0,1fr)}
.qlayout.with-score{grid-template-columns:240px minmax(0,1fr) 270px}

@media (max-width:1200px){
  .builder{grid-template-columns:190px minmax(0,1fr) 320px}
  .qlayout.with-score{grid-template-columns:240px minmax(0,1fr)}
  .qlayout.with-score .score{grid-column:2;grid-row:1;position:static}
  .qlayout.with-score>div{grid-column:2}
  .qlayout.with-score .steps{grid-row:1/span 2}
}
@media (max-width:1000px){
  .builder{grid-template-columns:1fr}
  .palette,.props{position:static;max-height:none}
  .palette .pal-group{flex-direction:row;flex-wrap:wrap}
  .qlayout,.qlayout.with-score{grid-template-columns:1fr}
  .qlayout.with-score .score,.qlayout.with-score>div,.qlayout.with-score .steps{grid-column:auto;grid-row:auto}
  .grid3,.grid4{grid-template-columns:1fr 1fr}
  .totp{grid-template-columns:1fr}
}
@media (max-width:640px){
  .qhead{grid-template-columns:2.6rem minmax(0,1fr)}
  .qf,.q .obs{margin-left:0}
  .grid3,.grid4,.stats{grid-template-columns:1fr 1fr}
  .fcards{grid-template-columns:1fr}
  .copyrow{flex-wrap:wrap}
  .hbars th{width:40%}
  .tr-grid label.span2{grid-column:auto}
}
@media print{.score,.bbar,.palette,.props,.addobs{display:none!important}}
@media (prefers-reduced-motion:reduce){.sheet .stamp{animation:none}}
.process{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.process{grid-template-columns:1fr}}
.score-top .cl{white-space:normal}
.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.assign{flex-wrap:nowrap}.assign select{width:auto}
.process.n2{grid-template-columns:repeat(2,1fr)}.process.n3{grid-template-columns:repeat(3,1fr)}.process.n5{grid-template-columns:repeat(5,1fr)}.process.n6{grid-template-columns:repeat(3,1fr)}
@media (max-width:1000px){.process.n2,.process.n3,.process.n5,.process.n6{grid-template-columns:1fr}}
.brand .logo{height:42px;width:auto;max-width:160px;object-fit:contain}
.uedit{text-align:left;margin-top:.4rem}.uedit summary{cursor:pointer;color:var(--info)}.uedit form{margin-top:.5rem}
.colorin input[type=color]{width:100%;height:2.5rem;border:1px solid #b8c0cc;border-radius:var(--r);padding:2px;background:#fff;margin-top:.3rem}
.logo-prev{border:1px solid var(--line);border-radius:4px;padding:2px;background:#fff}
.tpl-head{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;flex-wrap:wrap}.tpl-head h2,.tpl-head h3{margin:0}
.tpl .row form{margin:0}.tpl-in{max-width:280px}
h2.cat{font-size:1rem;color:var(--muted);margin:1rem 0 .5rem}
.pagepick{display:flex;flex-direction:column;margin-bottom:.5rem}
.pal-blocs h4{font-size:.78rem;color:var(--muted);margin:.6rem 0 .2rem}
.pal-bloc{border:1px solid var(--line);border-radius:var(--r);padding:.45rem .55rem;margin-bottom:.35rem;background:var(--surface)}
.pal-bloc b{display:block;font-size:.88rem;color:var(--ink)}.pal-bloc small{display:block;color:var(--muted);font-size:.78rem}
.pal-bloc .row{gap:0;margin-top:.15rem}.pal-bloc .btn{padding:.2rem .4rem;font-size:.78rem}
.calc-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.25rem;align-items:start}
.ced-t{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.6rem;overflow-x:auto}
.ced-r{display:flex;gap:.35rem;align-items:center;min-width:640px}
.ced-h .ced-c{font-size:.78rem;font-weight:600;color:var(--muted)}
.ced-c{flex:1 1 120px}.ced-c.mono{flex:0 0 130px}.ced-c.wide{flex:3 1 240px}.ced-c.sm{flex:0 0 100px}.ced-c.xs{flex:0 0 64px;text-align:center}.ced-c.num{flex:0 0 100px}.ced-c.sel{flex:0 0 120px}.ced-c.act{flex:0 0 64px;display:flex}
.ced-c.mono.wide{flex:3 1 260px}
.ced-c input,.ced-c select{margin:0;font-size:.88rem;padding:.35rem .45rem}
.ids{display:flex;flex-wrap:wrap;gap:.25rem}.idtag{font:500 .78rem ui-monospace,Consolas,monospace;background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:.1rem .35rem;cursor:pointer}
.idtag:hover{border-color:var(--act)}.fx{padding-left:1rem}.fx code{font-size:.8rem}
@media (max-width:1000px){.calc-layout{grid-template-columns:1fr}}
.tpl-use{display:flex;gap:.5rem;align-items:center}.tpl-use input{margin:0;flex:1}
.notif-off{color:var(--warn);background:var(--warn-soft);padding:.4rem .6rem;border-radius:var(--r)}.ident{border:1px solid var(--line);border-radius:var(--r);padding:.5rem 1rem;margin:0 0 1rem}.ident legend{font-weight:700;color:var(--ink);padding:0 .3rem}
.rcpt{border:1px solid var(--line);border-radius:var(--r);padding:.5rem 1rem .75rem;margin:0 0 1rem}.rcpt legend{font-weight:700;color:var(--ink);padding:0 .3rem}

/* ---------- 2.4 : comptes */
.p0{padding:0}
.p0>.scroll>.t,.p0>.t{margin:0}
.p0 .empty{margin:0}
.nowrap{white-space:nowrap}
.wfull{width:100%}
.vstack{display:flex;flex-direction:column;gap:.5rem}
.vstack form{margin:0}
.tag.neutral{color:var(--info);border-color:#b9cbe6}
.ulist td{vertical-align:middle}
.ulink{color:var(--ink);text-decoration:none}
.ulink:hover{text-decoration:underline}
.ust{display:inline-block;font-size:.82rem;font-weight:600;padding:.05rem .5rem;border-radius:999px}
.ust.on{background:var(--act-soft);color:var(--act-dark)}
.ust.off{background:var(--ko-soft);color:var(--ko)}

/* ---------- modèles de questions, transfert */
.qtpl td{vertical-align:middle}
.inline-menu{display:inline-block;position:relative}
.inline-menu>summary{list-style:none;cursor:pointer}
.inline-menu>summary::-webkit-details-marker{display:none}
.inline-menu .menu{position:absolute;right:0;top:100%;z-index:5;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 6px 18px rgba(20,33,61,.12);padding:.35rem;display:flex;flex-direction:column;align-items:stretch;min-width:150px}
.inline-menu .menu form{margin:0}
.inline-menu .menu .btn{width:100%;justify-content:flex-start}
.pick{border:1px solid var(--line);border-radius:var(--r);padding:.5rem .9rem .75rem;margin:0 0 1rem}
.pick legend{font-weight:600;color:var(--ink);padding:0 .3rem}
.pick .check{display:block;margin:.25rem 0}
.pal-q{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 .5rem}
.pal-q b,.pal-q small{grid-column:1}
.pal-q .btn{grid-column:2;grid-row:1/span 2}

/* ---------- graphiques */
.cv{margin:0}
.cv svg{width:100%;height:auto;display:block;overflow:visible}
.cv text{font-family:var(--font);fill:var(--text)}
.cv .cv-lab{font-size:12.5px;fill:var(--text)}
.cv .cv-tick{font-size:11px;fill:var(--muted)}
.cv .cv-val{font-size:12px;font-weight:600;fill:var(--ink)}
.cv .cv-val.sm{font-size:11px;font-weight:400}
.cv .cv-grid{stroke:#e6e9ee;stroke-width:1}
.cv .cv-axis{stroke:#b8c0cc;stroke-width:1}
.cv path:hover,.cv circle:hover{opacity:.82}
.cv-legend{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem 1rem;font-size:.85rem;color:var(--text)}
.cv-legend li{display:inline-flex;align-items:center;gap:.4rem}
.cv-legend .sw{display:inline-flex}
.cv-meter{width:100%;height:8px;display:block;margin:.35rem 0 .45rem}

/* ---------- analyse croisée */
.pv-layout{display:grid;grid-template-columns:300px 1fr;gap:1.25rem;align-items:start}
.pv-cfg{position:sticky;top:1rem}
.pv-cfg h2{font-size:1.1rem}
.pv-cfg h3{font-size:.95rem}
.pv-cfg .f{margin-bottom:.6rem}
.pv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.pv{font-variant-numeric:tabular-nums}
.pv th[scope=row]{font-weight:600;color:var(--ink);font-size:.92rem;white-space:normal;border-bottom:1px solid var(--line2);max-width:320px}
.pv tfoot th,.pv tfoot td{border-top:2px solid var(--line);font-weight:700;color:var(--ink);padding:.6rem .75rem}
.pv .pv-tot{font-weight:700;color:var(--ink);background:#f8f9fb}
.pv td.hm1{background:#eef5fd}.pv td.hm2{background:#dbe9fa}.pv td.hm3{background:#b7d3f6}
.pv td.hm4{background:#86b6ef}.pv td.hm5{background:#3987e5;color:#fff}.pv td.hm6{background:#1c5cab;color:#fff}
.pv-saved{list-style:none;margin:0;padding:0;font-size:.9rem}
.pv-saved li{padding:.3rem .5rem;border-radius:var(--r)}
.pv-saved li.on{background:var(--info-soft)}
.pv-save{display:flex;flex-direction:column;gap:.5rem}

/* ---------- tableau de pilotage */
.pl-top{display:grid;grid-template-columns:minmax(220px,1fr) 4fr;gap:1rem;margin-bottom:0}
.pl-hero{display:flex;flex-direction:column;justify-content:center;border-top:4px solid var(--ink)}
.pl-lab{font-size:.88rem;color:var(--muted);font-weight:600;margin:0 0 .2rem}
.pl-big{font-size:3.4rem;font-weight:700;line-height:1;color:var(--ink);margin:.2rem 0 .5rem}
.pl-hero .up{color:var(--act-dark);font-weight:600}
.pl-hero .down{color:var(--ko);font-weight:600}
.pl-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}
.pl-kpis .panel{padding:1rem 1.1rem}
.filters select{width:auto;max-width:420px;margin:0}
.pl-kpis .panel{margin:0}
.pl-kpi .pl-val{font-size:1.9rem;font-weight:700;color:var(--ink);line-height:1.1;margin:.15rem 0 .3rem}
.pl-kpi.warn{border-left:4px solid #eda100}
.pl-kpi.alert{border-left:4px solid var(--ko)}
.pl-top+*{margin-top:1.25rem}
.pl-alerts{border-left:4px solid #eda100;background:#fffcf3}
.pl-alerts ul{margin:0;padding-left:1.1rem}
.pl-alerts li{margin:.2rem 0}
.pl-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.pl-grid>.panel{margin:0}
.pl-pin-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.75rem}
.pl-pin-head form{margin:0}
.pl-table td{vertical-align:middle}
.t td.ko{color:var(--ko);font-weight:700}

@media (max-width:1000px){
  .pv-layout,.pl-top,.pl-grid{grid-template-columns:1fr}
  .pv-cfg{position:static}
}
@media print{
  .noprint,.nav,.who,.filters,.tabs,.pv-cfg,.flash{display:none!important}
  .pv-layout{grid-template-columns:1fr}
  .pl-grid{grid-template-columns:1fr 1fr}
  .pl-top{grid-template-columns:1fr 3fr}
  .panel{break-inside:avoid;box-shadow:none}
  .pv td.hm1,.pv td.hm2,.pv td.hm3,.pv td.hm4,.pv td.hm5,.pv td.hm6{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
.pv-cfg .grid2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem}
.pv-cfg input[type=date]{min-width:0;width:100%;padding-left:.5rem;padding-right:.3rem;font-size:.9rem}

/* ---------- 2.5 : assistant de calcul */
.ca-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:1.25rem;align-items:start}
.ca-layout>aside{position:sticky;top:1rem}
.ca-sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.ca-title{display:flex;align-items:center;gap:.5rem;color:var(--muted)}
.ca-title input{width:180px;margin:0;padding:.35rem .5rem}
.ca-cards{display:flex;flex-direction:column;gap:.75rem}
.ca-card{border:1px solid var(--line);border-left:4px solid var(--info);border-radius:var(--r);padding:.85rem 1rem;background:var(--paper)}
.ca-card.off{border-left-color:#b8c0cc;background:#fafbfc}
.ca-card.off .ca-lines{opacity:.6}
.ca-card-h{display:flex;gap:.5rem;align-items:center;justify-content:space-between}
.ca-card-h h3{font-size:1rem;margin:0}
.ca-lines{list-style:none;margin:.5rem 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.4rem}
.ca-l{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .6rem;font-size:.93rem}
.ca-k{display:inline-block;min-width:110px;font-size:.78rem;font-weight:700;color:var(--muted);text-transform:none}
.ca-k.lvl-bloquant{color:var(--ko)}.ca-k.lvl-important{color:#8a5a00}
.ca-l q{font-style:italic;color:var(--ink)}
.ca-vis{margin-left:auto;color:var(--muted)}
.ca-num{width:120px;margin:0;padding:.3rem .5rem;font-variant-numeric:tabular-nums}
.ca-acts{gap:.25rem}
.ca-grp{font-size:.92rem;color:var(--muted);margin:1rem 0 .5rem}
.ca-grp:first-child{margin-top:0}
.ca-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem}
.ca-rec{display:flex;flex-direction:column;gap:.2rem;text-align:left;font:inherit;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:.7rem .8rem;cursor:pointer;color:var(--ink)}
.ca-rec:hover{border-color:var(--info);background:var(--info-soft)}
.ca-ed-h{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.35rem}
.ca-ed-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1.25rem;align-items:start;margin:.5rem 0 1rem}
.ca-ed .f{display:block;margin-bottom:.8rem}
.ca-lab{display:block;font-weight:600;color:var(--ink);margin-bottom:.25rem}
.ca-w select,.ca-w input[type=text]{width:100%;margin:0}
.ca-w .ca-num{width:160px;margin-top:.35rem}
.ca-checks{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:var(--r);padding:.4rem .6rem}
.ca-checks .check{display:block;margin:.2rem 0;font-size:.92rem}
.ca-checks.sm{max-height:140px}
.ca-tranches{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.35rem}
.ca-tr{display:grid;grid-template-columns:110px 110px 1fr 32px;gap:.4rem;align-items:center}
.ca-tr input{margin:0}
.ca-pts{border:1px solid var(--line2);border-radius:var(--r);padding:.5rem .7rem;margin-bottom:.5rem}
.ca-pt{display:grid;grid-template-columns:1fr 80px;gap:.5rem;align-items:center;margin-top:.3rem;font-size:.9rem}
.ca-pt input{margin:0}
.ca-prev{background:var(--surface);border-radius:var(--r);padding:.8rem 1rem;position:sticky;top:1rem}
.ca-prev h4{margin:0 0 .4rem;font-size:.9rem;color:var(--muted)}
.ca-prev-t{font-weight:600;color:var(--ink);margin-bottom:.35rem}
.ca-prev ul{padding-left:1.1rem;margin:0 0 .6rem}
.ca-sugg{border-left:4px solid var(--act)}
.ca-sugg.minor{border-left-color:var(--line)}
.ca-s{display:block;margin:.35rem 0}
.ca-lib{display:flex;flex-direction:column;gap:.6rem}
.ca-lib-it{border:1px solid var(--line);border-radius:var(--r);padding:.7rem .9rem}
.ca-lib-h{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.ca-lib-h .tag{margin-left:.4rem}
.ca-lib-form{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--line2)}
.ca-lib-form .f{display:block;margin-bottom:.7rem}
.ca-test .f{display:block;margin-bottom:.6rem}
.ca-test input,.ca-test select{width:100%;margin:0}
.ca-ttable{display:flex;flex-direction:column;gap:.3rem;overflow-x:auto}
.ca-trow{display:flex;gap:.3rem;align-items:center}
.ca-trow>input,.ca-trow>span{flex:1 1 0;min-width:70px}
.ca-trow>button,.ca-trow>span:last-child{flex:0 0 28px;min-width:28px}
.ca-trow.h span{font-size:.75rem;color:var(--muted)}
.ca-trow input{padding:.3rem .4rem;font-size:.88rem}
.checks li.warn{color:#8a5a00}
.clair-c{margin-bottom:.6rem}
.clair-c ul{margin:.2rem 0 0;padding-left:1.1rem}
@media (max-width:1100px){.ca-layout,.ca-ed-grid{grid-template-columns:1fr}.ca-layout>aside{position:static}}
.ca-l input.ca-num{width:120px;margin:0}
.ca-sugg.minor #ca-sugg-list,.ca-sugg.minor #ca-sugg-add,.ca-sugg.minor>p{display:none}
.ca-sugg.minor.open #ca-sugg-list,.ca-sugg.minor.open #ca-sugg-add,.ca-sugg.minor.open>p{display:block}
.ca-sugg.minor.open #ca-sugg-add{display:inline-flex}
.ca-sugg-h{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.ca-sugg.minor h2{font-size:1.05rem;margin:0}
.diag-l{list-style:none;margin:0;padding:0}
.diag-l li{padding:.45rem .7rem .45rem 2rem;position:relative;border-bottom:1px solid var(--line2)}
.diag-l li:last-child{border-bottom:0}
.diag-l li::before{position:absolute;left:.5rem;font-weight:700}
.diag-l li.ok::before{content:"\2713";color:var(--act)}
.diag-l li.ko::before{content:"\2717";color:var(--ko)}
.diag-l li.warn::before{content:"!";color:#8a5a00}
.diag-l b{display:inline-block;min-width:170px;color:var(--ink)}
