/* À condition que… — feuille de style v2 (plus sobre) */
:root{
  color-scheme: light;
  --bg:#E8EBF0; --surface:#FFFFFF; --sunk:#F2F4F7; --field:#FFFFFF; --field-line:#C3CAD4;
  --ink:#18202B; --ink-2:#4A5463; --ink-3:#737E8C; --line:#DCE0E6; --line-2:#C3CAD4;
  --accent:#243350; --accent-ink:#F3F6FA; --accent-soft:#E1E7F1;
  --fin:#C93A6E; --hum:#2A65CF; --tps:#2E9A4E; --mat:#B8760B;
  --crit:#BF3434; --crit-soft:#F8E3E1; --warn:#9C620C; --warn-soft:#F7ECD8;
  --ok:#2B7A4B; --ok-soft:#DFF0E3; --info:#3F5F95;
  --shadow:0 1px 2px rgba(24,32,43,.05),0 8px 24px -16px rgba(24,32,43,.25);
  --f-display:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;
  --f-body:"Atkinson Hyperlegible","Helvetica Neue",Arial,system-ui,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --bg:#0D1015; --surface:#161B22; --sunk:#1C222A; --field:#0F1318; --field-line:#36404C;
    --ink:#E6EBEF; --ink-2:#AEB8C3; --ink-3:#87929E; --line:#262E38; --line-2:#36404C;
    --accent:#C8D5EA; --accent-ink:#111722; --accent-soft:#222D40;
    --fin:#EE6F9B; --hum:#6D9CF3; --tps:#5CC97D; --mat:#E3A640;
    --crit:#F07A72; --crit-soft:#3A1F21; --warn:#E6B45A; --warn-soft:#3A2F1A;
    --ok:#5CC98A; --ok-soft:#1B3325; --info:#8FB0E6;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -16px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg:#0D1015; --surface:#161B22; --sunk:#1C222A; --field:#0F1318; --field-line:#36404C;
  --ink:#E6EBEF; --ink-2:#AEB8C3; --ink-3:#87929E; --line:#262E38; --line-2:#36404C;
  --accent:#C8D5EA; --accent-ink:#111722; --accent-soft:#222D40;
  --fin:#EE6F9B; --hum:#6D9CF3; --tps:#5CC97D; --mat:#E3A640;
  --crit:#F07A72; --crit-soft:#3A1F21; --warn:#E6B45A; --warn-soft:#3A2F1A;
  --ok:#5CC98A; --ok-soft:#1B3325; --info:#8FB0E6;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -16px rgba(0,0,0,.7);
}

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:15.5px/1.55 var(--f-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--f-display);line-height:1.15;margin:0;text-wrap:balance;letter-spacing:-.01em}
h3{font-size:1.05rem}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--hum);outline-offset:2px;border-radius:4px}
.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.muted{color:var(--ink-3)}
.hint{color:var(--ink-3);font-size:.84rem;line-height:1.45}

/* ---------- En-tête ---------- */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--surface);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:16px;padding:10px 20px;max-width:1360px;margin:0 auto;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:10px;min-width:0}
.brand b{font-family:var(--f-display);font-weight:800;font-size:1.25rem;letter-spacing:-.02em}
.brand b i{font-style:normal;color:var(--fin)}
.brand span{font-size:.85rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-act{margin-left:auto;display:flex;gap:8px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-2);background:var(--surface);border-radius:8px;padding:7px 12px;cursor:pointer;font-size:.9rem;line-height:1.2;white-space:nowrap}
.btn:hover{border-color:var(--ink-3)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.ghost{background:transparent;border-color:transparent}
.btn.ghost:hover{background:var(--sunk)}
.btn.danger{color:var(--crit)}
.btn.sm{padding:4px 9px;font-size:.82rem}
.btn.link{border:0;background:none;padding:0;color:var(--hum);text-decoration:underline;text-underline-offset:3px}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:1px 9px;font-size:.76rem;font-weight:700;line-height:1.6}
.coach-btn .pill{min-width:1.6em;justify-content:center}
.lvl-critique{background:var(--crit-soft);color:var(--crit)}
.lvl-attention{background:var(--warn-soft);color:var(--warn)}
.lvl-conseil{background:var(--sunk);color:var(--ink-2)}
.lvl-ok{background:var(--ok-soft);color:var(--ok)}

.menu{position:relative}
.menu>summary{list-style:none}
.menu>summary::-webkit-details-marker{display:none}
.menu-pop{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:6px;min-width:230px;display:grid;gap:2px;z-index:30}
.menu-pop button{justify-content:flex-start;width:100%}
.menu-pop small{display:block;color:var(--ink-3);font-size:.75rem;padding:6px 10px 2px}

/* ---------- Coquille ---------- */
.shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;max-width:1360px;margin:0 auto;padding-inline:20px;padding-block:26px 64px}
.nav{position:sticky;top:calc(env(safe-area-inset-top,0px) + 80px);align-self:start;display:grid;gap:1px}
.nav h6{font:700 .7rem/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin:18px 10px 8px}
.nav h6:first-child{margin-top:0}
.nav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:7px 10px;cursor:pointer;color:var(--ink-2);font-size:.94rem}
.nav button:hover{background:color-mix(in srgb,var(--surface) 60%,transparent)}
.nav button[aria-current="page"]{background:var(--surface);color:var(--ink);font-weight:700}
.nav .n{font:600 .72rem/1 var(--f-mono);width:21px;height:21px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line-2);flex:none;font-weight:600}
.nav .n.done{background:var(--ok);border-color:var(--ok);color:var(--surface)}
.nav .dot{width:21px;display:grid;place-items:center;flex:none}
.nav .dot i{width:8px;height:8px;border-radius:2px}
.nav .meta{margin-left:auto;font:400 .72rem var(--f-mono);color:var(--ink-3)}
.nav-foot{margin:20px 10px 0;font-size:.78rem;color:var(--ink-3);line-height:1.45}

main{min-width:0}
.view-head{display:grid;gap:6px;margin-bottom:24px;max-width:72ch}
.eyebrow{font:700 .72rem/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.title-row{display:flex;align-items:center;gap:12px}
.view-head h1{font-size:clamp(1.6rem,2vw + 1rem,2.2rem);font-weight:800}
.lede{color:var(--ink-2)}

/* Aide repliable */
.help{position:relative;flex:none}
.help>summary{list-style:none;cursor:pointer;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line-2);display:grid;place-items:center;font:800 .8rem/1 var(--f-display);color:var(--ink-3);background:var(--surface)}
.help>summary::-webkit-details-marker{display:none}
.help[open]>summary{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.help>div{position:absolute;z-index:15;top:34px;left:0;width:min(420px,78vw);background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:14px 16px;font:400 .9rem/1.5 var(--f-body);color:var(--ink-2);letter-spacing:0}
.help>div b{color:var(--ink)}

.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px}
.card>h3{margin-bottom:4px}
.stack{display:grid;gap:18px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.next{display:flex;justify-content:space-between;gap:12px;margin-top:32px;flex-wrap:wrap}

/* ---------- Formulaires ---------- */
.field{display:grid;gap:6px;align-content:start}
.field>span{font-weight:700;font-size:.86rem;color:var(--ink-2)}
.field>small{color:var(--ink-3);font-size:.8rem;line-height:1.4}
input[type=text],input[type=number],input[type=date],select,textarea{width:100%;background:var(--field);border:1px solid var(--field-line);border-radius:7px;padding:8px 10px;min-width:0;box-shadow:inset 0 1px 1px rgba(24,32,43,.04)}
input::placeholder,textarea::placeholder{color:var(--ink-3);opacity:.8}
textarea{resize:vertical;min-height:64px;line-height:1.45}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--hum);box-shadow:0 0 0 3px color-mix(in srgb,var(--hum) 20%,transparent)}
input[type=number]{font-family:var(--f-mono);font-variant-numeric:tabular-nums}

/* ---------- Méthode ---------- */
.formula{background:var(--accent);color:var(--accent-ink);border-radius:14px;padding:22px 26px;display:grid;gap:14px;margin-bottom:26px}
.formula .say{font-family:var(--f-display);font-weight:700;font-size:clamp(1.15rem,1.3vw + .75rem,1.6rem);line-height:1.35;letter-spacing:-.015em}
.formula .say em{font-style:normal;border-bottom:3px solid currentColor}
.formula .say .slot{display:inline-block;border:1.5px dashed color-mix(in srgb,var(--accent-ink) 50%,transparent);border-radius:8px;padding:0 9px;font-weight:500}
.res-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.9rem}
.res{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:3px 11px 3px 4px;font-size:.84rem;font-weight:700;background:color-mix(in srgb,var(--accent-ink) 10%,transparent)}
.res i,.ri{width:20px;height:20px;border-radius:50%;display:inline-grid;place-items:center;font:800 .68rem/1 var(--f-mono);font-style:normal;color:#fff;flex:none}
.r-F{background:var(--fin)} .r-H{background:var(--hum)} .r-T{background:var(--tps)} .r-M{background:var(--mat)}
:root[data-theme="dark"] :is(.res i,.ri){color:#10151b}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) :is(.res i,.ri){color:#10151b}}

.team{display:grid;gap:10px}
.member{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(0,1.7fr) auto;gap:10px;align-items:center}
.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font:800 .85rem/1 var(--f-display);background:var(--accent-soft);color:var(--ink)}

/* ---------- Livrables & jalons ---------- */
.lanes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 16px}
.lane{display:grid;gap:10px;align-content:start;min-width:0}
.lane-h{display:flex;align-items:baseline;gap:8px;padding:0 4px 6px;border-bottom:2px solid var(--ink)}
.lane-h b{font-family:var(--f-display);font-size:1rem}
.lane-h span{font:.72rem var(--f-mono);color:var(--ink-3);margin-left:auto}
.liv{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:8px}
.liv-top{display:flex;gap:8px;align-items:center}
.liv-top .swatch{width:10px;height:10px;border-radius:3px}
.liv .liv-name{font-weight:700;min-height:0;resize:none;padding:6px 8px;line-height:1.3}
.liv .row{display:grid;grid-template-columns:1fr;gap:6px}
.liv select{font-size:.82rem;padding:5px 7px}
.liv-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-3)}
.lane-empty{border:1.5px dashed var(--line-2);border-radius:10px;padding:14px;font-size:.82rem;color:var(--ink-3);text-align:center}
.type{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:5px;padding:1px 6px;border:1px solid currentColor;white-space:nowrap}
.type-produit{color:var(--ink-2)}
.type-client{color:var(--fin)}
.type-interne{color:var(--hum)}
.tpl{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* ---------- Conditions ---------- */
.chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);background:var(--surface);border-radius:999px;padding:4px 11px;font-size:.84rem;cursor:pointer}
.chip:hover{border-color:var(--ink-3)}
.chip.on{border-color:var(--ink);font-weight:700}
.chip.dash{border-style:dashed}
.swatch{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line-2);margin-bottom:22px;scrollbar-width:thin}
.tab{display:flex;align-items:center;gap:8px;background:none;border:0;border-bottom:3px solid transparent;padding:10px 14px 9px;cursor:pointer;color:var(--ink-2);white-space:nowrap;font-size:.92rem;margin-bottom:-1px}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{border-bottom-color:var(--tc);color:var(--ink);font-weight:700}
.tab .num{font-size:.72rem;color:var(--ink-3);font-weight:400}
.tab .swatch{background:var(--tc)}
.liv-head{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:baseline;margin-bottom:6px}
.liv-say{font-family:var(--f-display);font-size:clamp(1.2rem,1vw + .9rem,1.5rem);font-weight:700;letter-spacing:-.015em;line-height:1.3}
.liv-say .nm{border-bottom:3px solid var(--tc)}
.liv-say .tail{color:var(--ink-3);font-weight:500}
.liv-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:.84rem;color:var(--ink-3);margin-bottom:20px}
.group-h{display:flex;align-items:center;gap:8px;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:18px 0 8px}
.conds{display:grid;gap:8px}

.cond{background:var(--surface);border:1px solid var(--line);border-radius:10px;scroll-margin-top:100px}
.cond[open]{border-color:var(--line-2);box-shadow:var(--shadow)}
.cond.flash{animation:flash 1.4s ease-out}
@keyframes flash{0%{box-shadow:0 0 0 4px color-mix(in srgb,var(--warn) 50%,transparent)}100%{box-shadow:var(--shadow)}}
.cond>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;align-items:center;padding:11px 14px}
.cond>summary::-webkit-details-marker{display:none}
.c-title{display:flex;gap:10px;align-items:center;min-width:0;font-weight:700}
.c-title .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c-title .t.empty{color:var(--ink-3);font-style:italic;font-weight:400}
.c-title .caret{color:var(--ink-3);font-weight:400;transition:transform .15s;flex:none}
.cond[open] .c-title .caret{transform:rotate(90deg)}
.c-sum{display:flex;align-items:center;gap:12px;font-size:.82rem;color:var(--ink-2)}
.dots{display:inline-flex;gap:3px}
.dots i{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--line-2)}
.dots i.on{border-color:transparent}
.dots i.on.F{background:var(--fin)} .dots i.on.H{background:var(--hum)} .dots i.on.T{background:var(--tps)} .dots i.on.M{background:var(--mat)}
.mode{font-size:.78rem;color:var(--ink-2)}
.mode.externe{color:var(--fin);font-weight:700}
.mode.hybride{color:var(--mat);font-weight:700}
.prio{font-size:.7rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.c-body{padding:6px 16px 18px;display:grid;gap:22px;border-top:1px solid var(--line)}
.c-row{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) minmax(0,1fr);gap:12px;padding-top:12px}
.sec-h{display:flex;align-items:center;gap:8px;font-family:var(--f-display);font-weight:700;font-size:.98rem;margin-bottom:10px}

.scen-wrap{overflow-x:auto}
table.scen{border-collapse:collapse;width:100%;min-width:560px;font-size:.88rem}
.scen th,.scen td{padding:7px 8px;text-align:left;vertical-align:middle}
.scen thead th{vertical-align:bottom;border-bottom:1px solid var(--line)}
.scen tbody th,.scen tfoot th{font-weight:400;color:var(--ink-2);width:28%}
.scen th small{display:block;color:var(--ink-3);font-size:.74rem}
.scen td input{padding:6px 8px}
.scen .on{background:var(--sunk)}
.scen thead th.on{box-shadow:inset 0 3px 0 var(--accent);border-radius:8px 8px 0 0}
.scen tfoot td.on{border-radius:0 0 8px 8px}
.pick{display:flex;gap:8px;align-items:flex-start;cursor:pointer}
.pick input{margin-top:3px;accent-color:var(--accent)}
.pick b{display:block;font-size:.9rem}
.pick small{display:block;color:var(--ink-3);font-weight:400;font-size:.74rem;line-height:1.3}
.scen tfoot td{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.scen tfoot tr:first-child :is(td,th){border-top:1px solid var(--line)}
.scen .best{color:var(--ok);font:700 .7rem var(--f-body);display:block}
.lbl{display:flex;align-items:center;gap:7px}

.mat-list{display:grid;gap:6px}
.mat-row{display:grid;grid-template-columns:minmax(0,1fr) 96px auto;gap:6px}
.deps{display:flex;flex-wrap:wrap;gap:5px}
.dep{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line-2);border-radius:7px;padding:3px 8px;font-size:.8rem;cursor:pointer;background:var(--surface)}
.dep:has(input:checked){border-color:var(--tps);background:color-mix(in srgb,var(--tps) 10%,var(--surface))}
.dep:has(input:disabled){opacity:.4;cursor:not-allowed}
.dep input{accent-color:var(--tps)}
.dep small{color:var(--ink-3)}
.c-foot{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px}
.add-bar{display:grid;gap:10px;margin-top:18px;padding:14px;border:1.5px dashed var(--line-2);border-radius:10px}
.add-bar .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.add-bar select{width:auto}
.sugg{display:flex;flex-wrap:wrap;gap:6px}
.sugg .chip{border-style:dashed;font-size:.8rem}

/* ---------- Carte ---------- */
.thesis{font-family:var(--f-display);font-size:clamp(1.05rem,.7vw + .85rem,1.3rem);line-height:1.5;font-weight:500;max-width:68ch;margin-bottom:22px;color:var(--ink-2)}
.thesis b{font-weight:700;color:var(--ink)}
.thesis .F{color:var(--fin)} .thesis .H{color:var(--hum)} .thesis .T{color:var(--tps)} .thesis .M{color:var(--mat)}
.map-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px}
.map-wrap svg{display:block}
svg .t-ink{fill:var(--ink)} svg .t-3{fill:var(--ink-3)}
svg .n-proj{fill:var(--accent)} svg .t-proj{fill:var(--accent-ink)}
svg .hollow{fill:var(--surface);stroke:var(--line-2)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.82rem;color:var(--ink-2);margin-top:12px}
.legend span{display:inline-flex;gap:6px;align-items:center}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}

/* ---------- Budget ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:24px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:grid;gap:4px}
.kpi small{font-size:.8rem;color:var(--ink-3)}
.kpi b{font:600 1.45rem/1.15 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.kpi.total{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.kpi.total small{color:color-mix(in srgb,var(--accent-ink) 75%,transparent)}
.bars{display:grid;gap:10px}
.bar-row{display:grid;grid-template-columns:170px minmax(0,1fr) 90px;gap:12px;align-items:center;font-size:.88rem}
.bar-row>span:first-child{display:flex;gap:7px;align-items:center;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-track{height:14px;background:var(--sunk);border-radius:4px;display:flex;overflow:hidden}
.bar-track span{height:100%}
.seg-dec{background:var(--fin)} .seg-mat{background:var(--mat)}
.seg-int{background:repeating-linear-gradient(135deg,var(--hum) 0 4px,color-mix(in srgb,var(--hum) 50%,var(--surface)) 4px 8px)}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
table.tbl{border-collapse:collapse;width:100%;font-size:.86rem;min-width:620px}
.tbl th,.tbl td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:700}
.tbl .r{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl tr.grp td{background:var(--sunk);font-weight:700;font-size:.82rem}
.tbl tfoot :is(td,th){font-weight:700;border-bottom:0}
.tbl tr:last-child td{border-bottom:0}
.arb{display:grid;gap:8px}
.arb-row{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:8px;font-size:.84rem}
.arb-row>div{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--surface)}
.arb-row .sel{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.arb-row .na{color:var(--ink-3);font-style:italic;border-style:dashed;background:transparent}
.arb-row b{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.arb-row .v{font-family:var(--f-mono)}
.section{margin-top:30px;display:grid;gap:12px}

/* ---------- Planning ---------- */
.gantt-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.gantt{display:grid;font-size:.83rem}
.g-lab{position:sticky;left:0;z-index:2;background:var(--surface);border-right:1px solid var(--line);padding:0 12px;display:flex;align-items:center;gap:8px;height:32px;border-bottom:1px solid var(--line);min-width:0}
.g-lab .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-lab.head{height:44px;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:700}
.g-lab.liv-row{background:var(--sunk);font-weight:700;height:36px}
.g-track{position:relative;height:32px;border-bottom:1px solid var(--line)}
.g-track.head{height:44px}
.g-track.liv-row{height:36px;background-color:var(--sunk)}
.g-week{position:absolute;top:0;bottom:0;border-left:1px solid var(--line)}
.g-week span{position:absolute;top:6px;left:6px;font-size:.7rem;color:var(--ink-3);white-space:nowrap}
.g-week span b{display:block;color:var(--ink-2);font-family:var(--f-mono);font-weight:500}
.g-bar{position:absolute;top:8px;height:16px;border-radius:4px;display:flex;overflow:hidden;cursor:pointer}
.g-bar .work{background:var(--dc);height:100%}
.g-bar .wait{height:100%;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--dc) 55%,transparent) 0 4px,transparent 4px 8px);border:1.5px solid var(--dc);border-left:0;border-radius:0 4px 4px 0}
.g-bar.crit{outline:2px solid var(--ink);outline-offset:1.5px}
.g-slack{position:absolute;top:15px;height:2px;background:var(--line-2)}
.g-span{position:absolute;top:16px;height:4px;border-radius:2px;background:var(--lc);opacity:.45}
.g-jalon{position:absolute;top:9px;width:16px;height:16px;transform:translateX(-8px) rotate(45deg);background:var(--lc);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--lc)}
.g-jalon-l{position:absolute;top:9px;font-size:.72rem;font-weight:700;white-space:nowrap;color:var(--ink)}
.g-mile{position:absolute;top:0;bottom:0;border-left:2px dashed var(--crit)}
.g-mile span{position:absolute;bottom:4px;left:6px;background:var(--crit);color:#fff;border-radius:5px;padding:1px 7px;font-size:.72rem;font-weight:700;white-space:nowrap}
.jalons{display:grid;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.jalon{display:grid;grid-template-columns:90px 18px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font-size:.9rem}
.jalon:last-child{border-bottom:0}
.jalon .d{font:500 .82rem var(--f-mono);color:var(--ink-2)}
.jalon i{width:12px;height:12px;transform:rotate(45deg);background:var(--lc);display:block;margin:auto}

/* ---------- Équipe ---------- */
.people{display:grid;gap:12px}
.person{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:12px}
.person-h{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.person-h .stats{margin-left:auto;display:flex;gap:14px;font-size:.84rem;color:var(--ink-2);align-items:center}
.person-h .stats b{font-family:var(--f-mono);color:var(--ink)}
.heat{display:flex;gap:2px;overflow-x:auto;padding-bottom:2px}
.heat i{flex:none;width:10px;height:16px;border-radius:2px;background:var(--sunk)}
.heat i.l1{background:color-mix(in srgb,var(--hum) 40%,var(--sunk))}
.heat i.l2{background:var(--hum)}
.heat i.l3{background:var(--crit)}
.heat i.wk{margin-left:5px}
.tasks{display:flex;flex-wrap:wrap;gap:6px}
.task{display:inline-flex;gap:6px;align-items:center;font-size:.8rem;background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:3px 9px;cursor:pointer}
.task:hover{border-color:var(--ink-3)}

/* ---------- Cahier des charges ---------- */
.doc{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:clamp(20px,4vw,56px);max-width:900px;box-shadow:var(--shadow);display:grid;gap:28px}
.doc header{display:grid;gap:6px;border-bottom:2px solid var(--ink);padding-bottom:18px}
.doc h1{font-size:clamp(1.7rem,2vw + 1rem,2.4rem);font-weight:800}
.doc h2{font-size:1.25rem;display:flex;gap:12px;align-items:baseline}
.doc h2 .sn{font:600 .88rem var(--f-mono);color:var(--ink-3)}
.doc h3{font-size:1.02rem;display:flex;gap:8px;align-items:center;margin-top:8px}
.doc h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-family:var(--f-body);margin-top:6px}
.doc section{display:grid;gap:10px}
.doc dl{display:grid;grid-template-columns:150px 1fr;gap:8px 18px;margin:0}
.doc dt{font-weight:700;color:var(--ink-2)}
.doc dd{margin:0}
.doc .req{display:grid;gap:3px;padding:8px 0;border-bottom:1px dashed var(--line)}
.doc .req-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.82rem;color:var(--ink-2)}
.doc .sentence{font-family:var(--f-display);font-size:1.08rem;font-weight:500;line-height:1.5;border-left:3px solid var(--ink);padding:2px 0 2px 16px}
.doc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;align-items:center}

/* ---------- Coach, modales ---------- */
.scrim{position:fixed;inset:0;background:rgba(10,14,20,.35);z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--surface);border-left:1px solid var(--line);z-index:41;display:grid;grid-template-rows:auto 1fr;box-shadow:var(--shadow);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.drawer-h{padding:18px 20px 14px;border-bottom:1px solid var(--line);display:grid;gap:10px}
.drawer-h .row{display:flex;align-items:center;gap:10px}
.drawer-h h2{font-size:1.2rem}
.drawer-h .row .btn{margin-left:auto}
.gauge{height:6px;border-radius:99px;background:var(--sunk);overflow:hidden}
.gauge span{display:block;height:100%;background:var(--ok);border-radius:99px}
.drawer-b{overflow-y:auto;padding:14px 20px 24px;display:grid;gap:8px;align-content:start}
.tip{display:grid;gap:6px;padding:12px 14px;border-radius:10px;border:1px solid var(--line);font-size:.88rem}
.tip .pill{justify-self:start}
.tip button{justify-self:start}
.modal{position:fixed;inset:0;display:grid;place-items:center;z-index:50;padding:16px;background:rgba(10,14,20,.4)}
.modal-box{background:var(--surface);border-radius:14px;padding:22px;max-width:560px;width:100%;display:grid;gap:14px;box-shadow:var(--shadow)}
.modal-box h2{font-size:1.2rem}
.modal-box textarea{min-height:220px;font:.8rem/1.4 var(--f-mono)}
.modal-box .acts{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:9px;font-size:.9rem;z-index:60}
.banner{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border:1px solid var(--line-2);background:var(--surface);border-radius:10px;padding:10px 14px;font-size:.88rem;margin-bottom:18px;color:var(--ink-2)}
.empty-state{border:1.5px dashed var(--line-2);border-radius:12px;padding:26px;text-align:center;color:var(--ink-3)}

@media (max-width:900px){
  .shell{grid-template-columns:1fr;gap:16px;padding-block:14px 56px}
  .nav{position:static;display:flex;overflow-x:auto;gap:2px;padding-bottom:4px}
  .nav h6,.nav-foot,.nav .meta{display:none}
  .nav button{width:auto;white-space:nowrap;flex:none}
  .c-row{grid-template-columns:1fr 1fr}
  .c-row>:first-child{grid-column:1/-1}
  .member{grid-template-columns:34px 1fr auto}
  .member .skill{grid-column:2/4}
  .bar-row{grid-template-columns:100px minmax(0,1fr) 76px}
  .arb-row{grid-template-columns:1fr 1fr}
  .arb-row>div:first-child{grid-column:1/-1}
  .doc dl{grid-template-columns:1fr}
  .brand span{display:none}
  .cond>summary{grid-template-columns:1fr}
  .lanes{grid-template-columns:1fr}
}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
@media print{
  .top,.nav,.next,.doc-actions,.drawer,.scrim,.toast,.banner,.view-head{display:none!important}
  body{background:#fff;color:#000}
  .shell{display:block;padding:0}
  .doc{box-shadow:none;border:0;padding:0;max-width:none}
  .doc .req{break-inside:avoid}
}

/* Étapes préalables */
.dep-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.dep-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-left:3px solid var(--tps);border-radius:8px;padding:7px 8px 7px 12px;background:var(--surface);font-size:.88rem}
.dep-list .dt{display:grid;gap:1px}
.dep-list small{color:var(--ink-3);font-size:.76rem}
select.dep-add{max-width:520px;color:var(--ink-2)}

/* Fonctionnement */
.lane-h.run{border-bottom-style:dashed}
.tbl.run{min-width:980px}
.tbl.run :is(td,th).m{text-align:center;padding:9px 2px;width:40px;vertical-align:middle}
.tick{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--lc)}
.tick.wk{width:100%;height:6px;border-radius:3px;opacity:.55}
@media (min-width:901px) and (max-width:1180px){.lanes{grid-template-columns:repeat(2,minmax(0,1fr))}}
.task{white-space:normal;text-align:left}
.tbl td{overflow-wrap:anywhere}

/* Onglets du budget */
.budtabs{display:grid;grid-template-columns:1fr 1fr minmax(180px,.8fr);gap:12px;margin-bottom:22px}
.budtab,.budsum{display:grid;gap:2px;text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;font:inherit;color:inherit}
.budtab{cursor:pointer}
.budtab:hover{border-color:var(--line-2)}
.budtab[aria-selected="true"]{border-color:var(--accent);box-shadow:inset 0 -4px 0 var(--accent)}
.budtab span,.budsum span{font-weight:700;font-size:.9rem}
.budtab b,.budsum b{font:600 1.45rem/1.2 var(--f-mono);letter-spacing:-.02em}
.budtab b em{font:400 .85rem var(--f-body);color:var(--ink-3)}
.budtab small,.budsum small{color:var(--ink-3);font-size:.78rem}
.budsum{background:transparent;border-style:dashed}
@media (max-width:900px){.budtabs{grid-template-columns:1fr 1fr}.budsum{grid-column:1/-1}}

/* =====================================================================
   v3 · Allègement : plus de filets ni de bordures.
   Les objets se détachent par le fond et une ombre douce ; les champs
   sont des zones pleines ; les étiquettes ont un fond teinté.
   ===================================================================== */
:root{ --field:#EDF0F4; --field-hover:#E6EAF0; --shadow-s:0 1px 2px rgba(24,32,43,.05),0 2px 10px -2px rgba(24,32,43,.07); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --field:#0F1318; --field-hover:#12171D; --shadow-s:0 1px 2px rgba(0,0,0,.45),0 2px 10px -2px rgba(0,0,0,.5); } }
:root[data-theme="dark"]{ --field:#0F1318; --field-hover:#12171D; --shadow-s:0 1px 2px rgba(0,0,0,.45),0 2px 10px -2px rgba(0,0,0,.5); }

/* Champs : zones pleines, sans bordure */
input[type=text],input[type=number],input[type=date],select,textarea{
  background:var(--field);border:1.5px solid transparent;border-radius:8px;box-shadow:inset 0 1px 2px rgba(24,32,43,.06)}
input[type=text]:hover,input[type=number]:hover,input[type=date]:hover,select:hover,textarea:hover{background:var(--field-hover)}
input:focus,select:focus,textarea:focus{background:var(--surface);border-color:var(--hum);box-shadow:0 0 0 3px color-mix(in srgb,var(--hum) 18%,transparent)}
.scen td input{background:var(--surface)}
.scen td:not(.on) input{background:var(--field)}

/* Surfaces : ombre douce au lieu du contour */
.top{border-bottom:0;box-shadow:var(--shadow-s)}
.card,.liv,.cond,.kpi,.person,.map-wrap,.gantt-wrap,.tbl-wrap,.jalons,.budtab,.doc,.tip,.add-bar,.banner,.arb-row>div{border:0;box-shadow:var(--shadow-s)}
.cond[open]{box-shadow:var(--shadow)}
.kpi.total{box-shadow:none}
.menu-pop,.help>div,.drawer{border:0}
.drawer-h{border-bottom:0;background:var(--sunk)}
.budtab[aria-selected="true"]{box-shadow:var(--shadow-s),inset 0 -4px 0 var(--accent)}
.budsum{border:0;background:transparent;box-shadow:none}
.arb-row .sel{box-shadow:inset 0 0 0 2px var(--accent)}
.arb-row .na{box-shadow:none;background:transparent}
.lane-empty,.empty-state{border:0;background:color-mix(in srgb,var(--surface) 55%,transparent)}
.add-bar{background:var(--surface)}
.dep-list li{border:0;background:var(--sunk);box-shadow:inset 3px 0 0 var(--tps)}
.c-body{border-top:0}
.c-foot{border-top:0;background:var(--sunk);margin:0 -16px -18px;padding:12px 16px;border-radius:0 0 10px 10px}
.tabs{border-bottom:0;gap:6px}
.tab{border-bottom-width:4px}

/* Boutons, puces, aides : sans contour */
.btn{border-color:transparent;box-shadow:var(--shadow-s)}
.btn:hover{border-color:transparent;background:var(--sunk)}
.btn.primary:hover{background:var(--accent);filter:brightness(1.12)}
.btn.ghost,.btn.link{box-shadow:none}
.btn.danger:hover{background:var(--crit-soft)}
.chip{border:0;box-shadow:var(--shadow-s)}
.chip:hover{background:var(--sunk)}
.chip.dash{box-shadow:none;background:color-mix(in srgb,var(--surface) 60%,transparent)}
.chip.dash:hover{background:var(--surface)}
.chip.on{background:var(--accent);color:var(--accent-ink)}
.task,.dep{border:0;background:var(--sunk)}
.task:hover{background:var(--field-hover)}
.help>summary{border:0;background:var(--sunk)}

/* Étiquettes : fond teinté, pas de bordure */
.type{border:0;padding:2px 7px;border-radius:5px}
.type-produit{background:color-mix(in srgb,var(--ink-2) 12%,transparent);color:var(--ink-2)}
.type-client{background:color-mix(in srgb,var(--fin) 14%,transparent);color:var(--fin)}
.type-interne{background:color-mix(in srgb,var(--hum) 14%,transparent);color:var(--hum)}

/* Tableaux : pas de filets entre les lignes, un seul trait fort sous l'en-tête */
.tbl th,.tbl td{border-bottom:0}
.tbl thead th{border-bottom:2px solid var(--ink)}
.tbl tbody tr:not(.grp):hover td{background:var(--sunk)}
.tbl tr.grp td{background:var(--sunk);padding-top:10px;padding-bottom:10px}
.tbl tbody tr.grp:not(:first-child) td{border-top:10px solid var(--surface)}
.tbl tfoot tr:first-child :is(td,th){border-top:2px solid var(--ink)}
.scen thead th{border-bottom:0}
.scen tfoot tr:first-child :is(td,th){border-top:0;padding-top:12px}
.jalon{border-bottom:0}
.jalon:nth-child(even){background:var(--sunk)}

/* Gantt : lignes de quadrillage très discrètes, plus de filets par ligne */
.g-lab,.g-track{border-bottom:0}
.g-lab{border-right:0;box-shadow:6px 0 10px -8px rgba(24,32,43,.25)}
.g-lab.head,.g-track.head{border-bottom:2px solid var(--ink)}
.g-week{border-left-color:color-mix(in srgb,var(--line) 70%,transparent)}
.g-lab.liv-row,.g-track.liv-row{margin-top:6px}

/* Cahier des charges : exigences séparées par l'espace, pas par des tirets */
.doc .req{border-bottom:0;padding:6px 0}
.doc .sentence{border-left-width:4px}
.arb-row .sel{box-shadow:none;background:var(--accent-soft)}
.arb-row .sel b{color:var(--ink)}

/* v3.1 · Champs neumorphiques : fond plus clair que le site, creusés dans la surface */
:root{ --field:#F4F6F9; --field-hover:#F7F9FB;
  --neu-in:inset 2px 2px 5px rgba(150,163,184,.38), inset -2px -2px 5px rgba(255,255,255,.95);
  --neu-out:3px 3px 8px rgba(150,163,184,.32), -3px -3px 8px rgba(255,255,255,.9); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --field:#1D242D; --field-hover:#212933;
  --neu-in:inset 2px 2px 5px rgba(0,0,0,.55), inset -2px -2px 5px rgba(255,255,255,.04);
  --neu-out:3px 3px 8px rgba(0,0,0,.5), -3px -3px 8px rgba(255,255,255,.03); } }
:root[data-theme="dark"]{ --field:#1D242D; --field-hover:#212933;
  --neu-in:inset 2px 2px 5px rgba(0,0,0,.55), inset -2px -2px 5px rgba(255,255,255,.04);
  --neu-out:3px 3px 8px rgba(0,0,0,.5), -3px -3px 8px rgba(255,255,255,.03); }

input[type=text],input[type=number],input[type=date],select,textarea,.scen td input,.scen td:not(.on) input{
  background:var(--field);border:1.5px solid transparent;border-radius:10px;box-shadow:var(--neu-in)}
input[type=text]:hover,input[type=number]:hover,input[type=date]:hover,select:hover,textarea:hover{background:var(--field-hover)}
input:focus,select:focus,textarea:focus{background:var(--surface);border-color:color-mix(in srgb,var(--hum) 60%,transparent);
  box-shadow:var(--neu-in),0 0 0 3px color-mix(in srgb,var(--hum) 16%,transparent)}
.scen .on{background:color-mix(in srgb,var(--accent-soft) 55%,var(--surface))}

/* Boutons et puces en relief doux */
.btn,.chip{box-shadow:var(--neu-out)}
.btn:active,.chip:active{box-shadow:var(--neu-in)}
.btn.ghost,.btn.link,.chip.dash{box-shadow:none}
.btn.primary{box-shadow:3px 3px 8px rgba(36,51,80,.35),-3px -3px 8px rgba(255,255,255,.8)}
.help>summary{box-shadow:var(--neu-out);background:var(--surface)}
.help[open]>summary{box-shadow:var(--neu-in)}

/* v3.2 · Champs encore plus clairs */
:root{ --field:#FAFBFD; --field-hover:#FDFDFE;
  --neu-in:inset 2px 2px 5px rgba(150,163,184,.32), inset -2px -2px 5px rgba(255,255,255,1); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --field:#242C36; --field-hover:#28313C; } }
:root[data-theme="dark"]{ --field:#242C36; --field-hover:#28313C; }

/* v3.3 · Conditions : navigation verticale des livrables, en-tête lisible */
.cond-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:26px;align-items:start}
.liv-nav{position:sticky;top:calc(env(safe-area-inset-top,0px) + 80px);display:grid;gap:2px;background:var(--surface);border-radius:12px;padding:10px;box-shadow:var(--shadow-s);max-height:calc(100vh - 110px);overflow-y:auto}
.ln-phase{font:700 .68rem/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);padding:12px 8px 6px}
.ln-phase:first-child{padding-top:4px}
.ln-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:9px;align-items:center;width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:7px 8px;cursor:pointer;color:var(--ink-2);font-size:.88rem;line-height:1.3}
.ln-item .swatch{width:9px;height:9px;background:var(--tc)}
.ln-item:hover{background:var(--sunk)}
.ln-item[aria-current="true"]{background:color-mix(in srgb,var(--tc) 13%,var(--surface));color:var(--ink);font-weight:700}
.ln-count{font-size:.72rem;color:var(--ink-3);font-weight:400}
.ln-count.ok{color:var(--ok);font-weight:700}
.liv-pick{display:none;margin-bottom:14px;font-weight:700}
.liv-card{background:var(--surface);border-radius:12px;box-shadow:var(--shadow-s);padding:18px 20px;margin-bottom:8px;border-top:5px solid var(--tc)}
.liv-top2{display:flex;gap:10px;align-items:center;font-size:.84rem;color:var(--ink-3);margin-bottom:8px}
.liv-card .liv-say{margin-bottom:14px}
.liv-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}
.liv-stats div{background:var(--sunk);border-radius:9px;padding:9px 12px}
.liv-stats dt{font-size:.74rem;color:var(--ink-3)}
.liv-stats dd{margin:0;font-weight:700;font-size:1rem}
.cond-main .group-h:first-of-type{margin-top:22px}
@media (max-width:1100px){.cond-layout{grid-template-columns:1fr}.liv-nav{display:none}.liv-pick{display:block}.liv-stats{grid-template-columns:1fr 1fr}}

/* Boutons icône (poubelle) : neutres, jamais rouges */
.btn.icon{box-shadow:none;background:transparent;color:var(--ink-3);padding:6px;border-radius:8px;gap:6px}
.btn.icon:hover{background:var(--sunk);color:var(--ink)}
.btn.icon.armed{background:var(--sunk);color:var(--ink);padding:6px 10px;font-size:.82rem;font-weight:700}
.btn.icon svg{flex:none}
.liv-foot{flex-wrap:wrap}.liv-foot [data-act="cancel-del"]{margin-left:auto}

.confirm-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:var(--sunk);border-radius:9px;padding:6px 6px 6px 10px;font-size:.82rem;color:var(--ink);font-weight:700}
.liv-foot .confirm-row{flex-basis:100%}
.confirm-row>span{margin-right:auto}
.confirm-row .btn.icon.armed{background:var(--surface);box-shadow:var(--neu-out)}
.liv-foot [data-act="cancel-del"]{margin-left:0}

/* Liens discrets : plus de bleu souligné */
.btn.link{color:var(--ink-2);text-decoration:none;font-weight:600}
.btn.link:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px;background:none}
.liv-foot .btn.link{background:var(--sunk);padding:5px 11px;border-radius:8px;font-size:.8rem;color:var(--ink)}
.liv-foot .btn.link:hover{background:var(--field-hover);text-decoration:none}
.liv-foot .btn.link,.liv-foot .btn.link:hover{color:var(--ink-2);font-weight:600}

/* Conditions : titres entiers, sections par dimension bien identifiables */
.c-title{align-items:flex-start}
.c-title .t{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35}
.c-title .caret,.c-title .swatch{margin-top:5px}
.cond>summary{align-items:start}
.c-sum{padding-top:1px}
.dim-group{margin-top:22px;padding:14px 14px 16px;border-radius:14px;background:color-mix(in srgb,var(--dc) 9%,transparent)}
.dg-h{display:flex;align-items:center;gap:10px;font-size:1.05rem;margin:0 2px 12px}
.dg-dot{width:12px;height:12px;border-radius:4px;background:var(--dc);flex:none}
.dg-n{margin-left:auto;font:400 .8rem var(--f-body);color:var(--ink-3)}

/* Carte de condition : sections en panneaux distincts */
.c-body{gap:12px;padding:14px 14px 18px;background:var(--bg)}
.c-sec{background:var(--surface);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow-s)}
.c-sec .c-row{padding-top:4px}
.c-sec-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.c-sec .sec-h{font-size:1rem;margin-bottom:12px}
.r-0{background:var(--ink-2)}
.cond[open]>summary{border-radius:10px 10px 0 0}
.c-foot{margin:0 -14px -18px;background:var(--surface)}
.c-sec.stack{align-content:start}.c-sec .field>span.sec-h{color:var(--ink);font-size:1rem}

/* Condition ouverte : barre de titre collée en haut pour replier sans remonter */
.cond{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 70px)}
.cond[open]>summary{position:sticky;top:calc(env(safe-area-inset-top,0px) + 57px);z-index:6;background:var(--surface);box-shadow:0 6px 12px -10px rgba(24,32,43,.35)}
.cond>summary .caret{font-size:1.1rem}

/* v3.4 · Livrables sans couleur propre : la nature se lit à l'étiquette */
.type{font-weight:700}
.type-produit{background:var(--ink);color:var(--surface)}
.type-client{background:var(--accent-soft);color:var(--accent)}
:root[data-theme="dark"] .type-client{color:var(--ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .type-client{color:var(--ink)}}
.type-interne{background:var(--sunk);color:var(--ink-2)}
.liv-card{border-top:0}
.dep-list li{grid-template-columns:minmax(0,1fr) auto}
.ln-item{grid-template-columns:minmax(0,1fr) auto}
.ln-item .swatch{display:none}
.g-bar.crit{outline-color:var(--warn)}

/* Liste des livrables : phases bien identifiables */
.liv-nav{gap:8px;padding:8px;background:transparent;box-shadow:none}
.ln-group{background:var(--surface);border-radius:12px;padding:6px;box-shadow:var(--shadow-s)}
.ln-phase{display:flex;align-items:center;gap:8px;font:700 .8rem/1.2 var(--f-display);letter-spacing:0;text-transform:none;color:var(--ink);padding:6px 6px 8px}
.ln-phase:first-child{padding-top:6px}
.ln-num{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--surface);font:700 .68rem/1 var(--f-mono);flex:none}
.ln-item{padding-left:34px}
.lane-h{align-items:center}.lane-h .ln-num{width:24px;height:24px;font-size:.74rem}
.lane-h .ln-num{margin-left:0;color:var(--surface);font:700 .74rem/1 var(--f-mono)}

/* v3.5 · Natures de livrables : trois couleurs distinctes (hors palette F/H/T/M) */
:root{ --t-prod:#243350; --t-client:#7A3CCB; --t-int:#0B7A84; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --t-prod:#C8D5EA; --t-client:#B794F4; --t-int:#4FC7D1; } }
:root[data-theme="dark"]{ --t-prod:#C8D5EA; --t-client:#B794F4; --t-int:#4FC7D1; }
.type-produit{background:var(--t-prod);color:var(--surface)}
.type-client,:root[data-theme="dark"] .type-client{background:color-mix(in srgb,var(--t-client) 15%,transparent);color:var(--t-client)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .type-client{color:var(--t-client)}}
.type-interne{background:color-mix(in srgb,var(--t-int) 15%,transparent);color:var(--t-int)}
/* Produit : teinte terracotta, même style que Client et Interne */
:root{ --t-prod:#B8471F; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --t-prod:#F0916A; } }
:root[data-theme="dark"]{ --t-prod:#F0916A; }
.type-produit{background:color-mix(in srgb,var(--t-prod) 14%,transparent);color:var(--t-prod)}

/* Actions (déplacer, supprimer) accessibles même condition repliée */
.c-acts{display:inline-flex;align-items:center;gap:4px;margin-left:6px}
.c-acts select{width:auto;max-width:220px;padding:5px 8px;font-size:.82rem}
.c-acts .btn.icon{padding:5px}
.c-acts .confirm-row{padding:4px 4px 4px 10px}
.cond>summary:has(.c-acts .confirm-row, .c-acts select){grid-template-columns:1fr}
.cond>summary:has(.c-acts .confirm-row, .c-acts select) .c-sum{justify-content:flex-end;flex-wrap:wrap}

/* En-tête de condition : titre sur toute la largeur, infos et actions dessous */
.cond>summary,.cond>summary:has(.c-acts .confirm-row, .c-acts select){grid-template-columns:1fr;gap:8px;padding:12px 14px 10px}
.c-title{font-size:.98rem}
.c-sum,.cond>summary:has(.c-acts .confirm-row, .c-acts select) .c-sum{justify-content:flex-start;flex-wrap:wrap;gap:6px 14px;padding:0 0 0 30px;font-size:.8rem}
.c-sum .dots{gap:4px}
.c-sum .dots i{width:17px;height:17px;display:inline-grid;place-items:center;font:700 .6rem/1 var(--f-mono);color:var(--ink-3);border:1.5px solid var(--line-2)}
.c-sum .dots i.on{color:#fff;border-color:transparent}
:root[data-theme="dark"] .c-sum .dots i.on{color:#10151b}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .c-sum .dots i.on{color:#10151b}}
.c-sum .mode{background:var(--sunk);border-radius:6px;padding:2px 8px}
.c-sum .num{color:var(--ink-2)}
.c-acts{margin-left:auto}

/* En-tête de condition v2 : titre à gauche, flèche à droite, infos zonées */
.c-title{gap:12px;align-items:flex-start}
.c-title .t{flex:1}
.c-title .caret{margin:0 0 0 auto;font-size:1.3rem;line-height:1;color:var(--ink-3);transition:transform .15s}
.cond[open] .c-title .caret{transform:rotate(90deg)}
.c-sum,.cond>summary:has(.c-acts .confirm-row, .c-acts select) .c-sum{padding-left:0;align-items:center}
.c-info{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px 12px;background:var(--sunk);border-radius:9px;padding:6px 12px}
.c-info .mode{background:var(--surface);box-shadow:var(--shadow-s)}

/* En-tête de condition v3 : version légère (maquette de Yom) */
.cond>summary{background:var(--sunk);border-radius:10px;padding:10px 12px 9px;gap:6px}
.cond[open]>summary{border-radius:10px 10px 0 0}
.c-title .t{flex:0 1 auto;background:var(--surface);border-radius:7px;padding:3px 9px;box-shadow:var(--shadow-s)}
.c-title .caret{align-self:center}
.c-sum,.cond>summary:has(.c-acts .confirm-row, .c-acts select) .c-sum{padding-left:4px}
.c-info{background:none;padding:0;gap:6px 12px;border-radius:0}
.c-info .dots{padding-right:12px;border-right:1px solid var(--line-2)}
.c-sum .dots i{width:15px;height:15px;font-size:.56rem}
.c-info .mode,.c-sum .mode{background:none;box-shadow:none;padding:0;font-weight:700;color:var(--ink-2)}
.c-sum .num{color:var(--ink-3)}
.c-sum .mode.externe{color:var(--fin)}.c-sum .mode.hybride{color:var(--mat)}

/* En-tête de condition v4 : conforme à la maquette (titre sur blanc, bandeau gris d'infos dessous) */
.cond>summary{background:var(--surface);padding:0;gap:0;border-radius:10px;overflow:hidden}
.cond[open]>summary{border-radius:10px 10px 0 0}
.c-title{padding:10px 14px 8px}
.c-title .t{background:none;box-shadow:none;padding:0;flex:1}
.c-sum,.cond>summary:has(.c-acts .confirm-row, .c-acts select) .c-sum{background:var(--sunk);padding:6px 10px 6px 14px;gap:6px 14px;font-size:.82rem}
.c-sum .dots{gap:3px}
.c-sum .dots i{width:17px;height:17px;font:800 .6rem/1 var(--f-body);border-width:1.5px}
.c-info .dots{padding-right:12px;border-right:2px solid var(--line-2)}
.c-sum .num{color:var(--ink-3);font-size:.84rem}
.c-sum .mode{font-weight:700}
.c-info .mode{margin-right:8px}.c-info .num+.num{margin-left:10px}.c-info .dots{border-right:1.5px solid color-mix(in srgb,var(--line-2) 70%,transparent)}
/* Dégradés de la maquette : blanc à gauche, gris à droite */
.cond>summary{background:var(--sunk)}
.c-title{background:linear-gradient(90deg,var(--surface) 0%,var(--surface) 62%,var(--sunk) 100%)}
.c-sum,.cond>summary:has(.c-acts .confirm-row, .c-acts select) .c-sum{background:linear-gradient(90deg,var(--surface) 0%,var(--surface) 18%,var(--sunk) 42%)}
:root{--grad-end:color-mix(in srgb,var(--sunk) 55%,var(--line-2))}
.cond>summary{background:var(--grad-end)}
.c-title{background:linear-gradient(90deg,var(--surface) 0%,var(--surface) 60%,var(--grad-end) 100%)}
.c-sum,.cond>summary:has(.c-acts .confirm-row, .c-acts select) .c-sum{background:linear-gradient(90deg,var(--surface) 0%,var(--surface) 16%,var(--sunk) 34%,var(--grad-end) 100%)}

/* Dégradés exacts de la maquette : titre blanc ; bandeau en 2 segments dégradés (sombre → clair) */
:root{ --g1a:#E9EDF2; --g1b:#F8F9FC; --g2a:#EAEDF2; --g2b:#F2F5F8; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --g1a:#1A2029; --g1b:#222933; --g2a:#1A2029; --g2b:#1E252E; } }
:root[data-theme="dark"]{ --g1a:#1A2029; --g1b:#222933; --g2a:#1A2029; --g2b:#1E252E; }
.cond>summary{background:var(--surface)}
.c-title{background:var(--surface)}
.c-sum,.cond>summary:has(.c-acts .confirm-row, .c-acts select) .c-sum{background:linear-gradient(90deg,var(--g2a),var(--g2b));padding:0 10px 0 0;align-items:stretch;gap:0 14px}
.c-info{background:linear-gradient(90deg,var(--g1a),var(--g1b));padding:7px 18px 7px 14px;align-self:stretch;align-items:center}

.c-sum>.c-cost{display:inline-flex;align-items:center;gap:22px;color:var(--ink-3);font-family:var(--f-mono);font-size:.84rem}
.c-acts{align-self:center}
/* Segment 1 à largeur fixe : compétence centrée, chiffrages alignés d'une condition à l'autre */
.c-info{flex:none;flex-wrap:nowrap;gap:0}
.c-info .mode{width:124px;text-align:center;margin:0}
.c-info .dots{flex:none}
.c-cost .num:not(.muted){min-width:78px;text-align:right}.c-cost .num.muted{min-width:34px;text-align:right}.c-cost{gap:16px}
.c-info{padding-right:0}.c-info .mode{width:104px;padding:0 6px;box-sizing:border-box}
.c-cost .num:not(.muted),.c-cost .num.muted{text-align:left}.c-cost .num:not(.muted){min-width:66px}.c-sum,.cond>summary:has(.c-acts .confirm-row, .c-acts select) .c-sum{column-gap:12px}

.more-ideas{margin-top:4px}
.more-ideas>summary{cursor:pointer;font-size:.82rem;color:var(--ink-3);padding:4px 0;list-style:none}
.more-ideas>summary::before{content:"› ";display:inline-block;transition:transform .15s}
.more-ideas[open]>summary::before{transform:rotate(90deg)}
.more-ideas .sugg{margin-top:6px}

/* ---------- Carte du projet en HTML (courbes dessinées par-dessus) ---------- */
.hmap-scroll{overflow-x:auto}
.hmap{--c1:max-content;--g1:46px;--c2:168px;--g2:42px;--cd:84px;--cm:96px;position:relative;min-width:760px;padding:4px 6px 8px}
.hmap-lines{position:absolute;inset:0;pointer-events:none;overflow:visible}
.hm-head{display:grid;grid-template-columns:var(--pw,120px) var(--g1) var(--c2) var(--g2) minmax(0,1fr) var(--cd) var(--cm);font:700 .66rem/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:4px 0 14px}
.hm-res{display:flex;gap:5px;padding-left:12px}
.hm-res b{width:11px;text-align:center}
.hm-body{display:grid;grid-template-columns:var(--pw,120px) minmax(0,1fr);column-gap:var(--g1);align-items:center}
.hm-proj{display:flex;align-items:center;justify-content:flex-start}
.hm-pbox{display:inline-block;width:min-content;max-width:160px;background:var(--accent);color:var(--accent-ink);font:700 1rem/1.25 var(--f-display);padding:10px 14px;border-radius:9px;position:relative;z-index:1}
.hm-groups{display:grid;gap:16px}
.hm-group{display:grid;grid-template-columns:var(--c2) minmax(0,1fr);column-gap:var(--g2);align-items:center}
.hm-g{border-bottom:2.2px solid var(--gc);padding-bottom:4px}
.hm-g b{display:block;font-size:.9rem;line-height:1.25}
.hm-g small{display:block;font-size:.72rem;color:var(--ink-3);margin-top:2px}
.hm-conds{display:grid;gap:2px}
.hm-c{display:grid;grid-template-columns:minmax(0,1fr) var(--cd) var(--cm);align-items:end;background:none;border:0;padding:0;margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer}
.hm-t{font-size:.84rem;line-height:1.3;padding:6px 10px 4px 0;border-bottom:1.5px solid var(--gc)}
.hm-c:hover .hm-t{color:var(--hum)}
.hm-c:focus-visible{outline:2px solid var(--hum);outline-offset:2px}
.hm-t.souh{font-style:italic}
.hm-dots{display:flex;gap:5px;padding:0 0 6px 12px}
.hm-dots i{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--line-2);box-sizing:border-box}
.hm-dots i.on{background:var(--rc);border-color:var(--rc)}
.hm-mode{font-size:.76rem;font-weight:700;padding-bottom:5px}
.hm-c.empty{cursor:default}
.hm-c.empty .hm-t{color:var(--ink-3);font-style:italic}

/* Planning coloré par nature de livrable */
.g-bar.crit{outline-color:var(--ink)}
.g-span{opacity:.55}

/* Planning : couleur réservée au sens (critique, remise client) */
:root{--g-norm:#B9C2CE;--g-crit:#2E3B52}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--g-norm:#4A5563;--g-crit:#C8D5EA}}
:root[data-theme="dark"]{--g-norm:#4A5563;--g-crit:#C8D5EA}
.g-bar.crit{outline:none}
.g-track.liv-row .g-span{opacity:.35}
.g-track.liv-row.is-client .g-span{opacity:.6}
.g-jalon-l{color:var(--ink-2)}
.is-client .g-jalon-l{color:var(--t-client)}
.jalon.is-client{font-weight:700}
.jalon.is-client .d{color:var(--t-client)}
.gantt-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:28px 0 10px}

/* Planning v3 : couleur = nature du livrable ; pleine = critique, pâle = marge */
.g-track.liv-row .g-span{opacity:.5}
.jalon .d{color:var(--ink-2)}
.jalon.is-client{font-weight:400}
.jalon.is-client .d{color:var(--ink-2)}
.is-client .g-jalon-l{color:var(--ink-2)}

/* Pastille d'acteur (initiale) dans le planning */
.av-s{margin-left:auto;flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--ink);font:800 .66rem/1 var(--f-display)}
.av-s.none{background:transparent;border:1.5px dashed var(--line-2);color:var(--ink-3)}

/* Infobulle instantanée sur les pastilles d'acteurs */
.av-s{position:relative;cursor:default}
.av-s[data-tip]:hover::after{content:attr(data-tip);position:absolute;right:calc(100% + 6px);top:50%;transform:translateY(-50%);background:var(--ink);color:var(--surface);font:600 .74rem/1.2 var(--f-body);padding:4px 8px;border-radius:6px;white-space:nowrap;z-index:20;pointer-events:none}
td .av-s[data-tip]:hover::after{right:auto;left:calc(100% + 6px)}

.who-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:28px 0 0}
.who-bar .hint{margin-right:4px}
.who-bar .chip{gap:7px}
.who-bar .chip.on .av-s{background:var(--accent-ink);color:var(--accent)}
.who-bar .chip .num{font-size:.72rem}
.who-bar .chip.on .num{color:var(--accent-ink);opacity:.7}

.tt{position:fixed;z-index:70;max-width:320px;background:var(--ink);color:var(--surface);font:.8rem/1.4 var(--f-body);padding:7px 10px;border-radius:8px;pointer-events:none;box-shadow:var(--shadow)}
.tt b{font-weight:700}

/* Charge jour par jour : survol + clic vers le planning */
.heat i{cursor:pointer}
.heat i:hover{outline:2px solid var(--ink);outline-offset:1px}
.g-day{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--warn) 22%,transparent);border-left:2px solid var(--warn);pointer-events:none;z-index:0}
.g-day.head span{position:absolute;bottom:4px;left:4px;background:var(--warn);color:#fff;font:700 .68rem/1 var(--f-body);padding:3px 6px;border-radius:5px;white-space:nowrap}
.g-bar{z-index:1}
.day-chip{background:color-mix(in srgb,var(--warn) 18%,var(--surface))}
.tt small{opacity:.7}

/* Cahier des charges : exigences hiérarchisées */
.req-liv{margin-top:18px;display:grid;gap:6px}
.req-liv+.req-liv{margin-top:30px}
.req-liv-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--sunk);border-radius:8px;padding:10px 14px}
.req-liv-h h3{margin:0;font-size:1.12rem}
.req-phase{margin-left:auto;font-size:.78rem;color:var(--ink-3)}
.req-num{font:600 .78rem var(--f-mono);color:var(--ink-3);flex:none}
.req-lead{font-style:italic;color:var(--ink-2);font-size:.9rem;margin:4px 0 0 14px}
.req-list{list-style:none;margin:0;padding:0 0 0 14px;display:grid;gap:14px}
.doc .req{display:grid;grid-template-columns:48px minmax(0,1fr);gap:0 8px;padding:0;border:0}
.doc .req .req-num{padding-top:3px}
.req-body{display:grid;gap:6px;padding-bottom:14px;border-bottom:1px solid var(--sunk)}
.req-list .req:last-child .req-body{border-bottom:0;padding-bottom:0}
.req-t{font-weight:700;font-size:1rem;line-height:1.35;margin:0}
.req-souh{font:600 .68rem var(--f-body);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);border:1px solid var(--line-2);border-radius:4px;padding:1px 5px;vertical-align:middle}
.req-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 18px;margin:0}
.req-grid div{min-width:0}
.req-grid dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:700}
.req-grid dd{margin:1px 0 0;font-size:.86rem;color:var(--ink);display:flex;align-items:center;gap:6px}
.req-warn{color:var(--crit);font-weight:700}
.req-note{margin:2px 0 0;font-size:.84rem;font-style:italic;color:var(--ink-2);padding-left:10px;border-left:3px solid var(--line-2)}
@media print{.req-liv-h{background:#f1f3f6}}
.doc .req-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:6px 18px}

.doc .req[data-act]{cursor:pointer;border-radius:8px;margin:-6px -8px;padding:6px 8px;transition:background .12s}
.doc .req[data-act]:hover{background:var(--sunk)}
.doc .req[data-act]:hover .req-t{color:var(--hum)}
.doc .req[data-act]:hover .req-t::after{content:" ›";color:var(--ink-3)}
@media print{.doc .req[data-act]:hover{background:none}}

/* Contexte du projet */
.ctx-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ctx{display:grid;gap:4px;text-align:left;background:var(--sunk);border:0;border-radius:10px;padding:12px 14px;cursor:pointer;font:inherit;color:inherit;box-shadow:inset 0 0 0 1.5px transparent}
.ctx b{font-family:var(--f-display);font-size:1rem}
.ctx span{font-size:.82rem;color:var(--ink-3);line-height:1.4}
.ctx.on{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}
@media (max-width:700px){.ctx-pick{grid-template-columns:1fr}}
.liv-valid{display:grid;gap:3px}
.liv-valid span{font-size:.72rem;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.liv-valid textarea{font-size:.82rem;min-height:0;resize:none;padding:6px 8px}
.liv-valid-line{font-size:.86rem;color:var(--ink-2);margin:-6px 0 12px}
.req-valid{margin:2px 0 0 14px;font-size:.88rem;color:var(--ink-2)}
.doc .req.compact .req-body{padding-bottom:8px}
.doc .req-list:has(.compact){gap:4px}
.doc h4{margin-top:14px}

.tip-h{display:flex;align-items:center;gap:8px}
.tip .bp{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}

/* coach : deux groupes */
.tip-sec{font:600 13px/1.2 var(--f-ui,inherit);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2,#555);margin:18px 0 8px;display:flex;align-items:center;gap:8px}
.tip-sec:first-child{margin-top:0}
.tip-sec span{background:var(--field,#FAFBFD);box-shadow:inset 0 1px 2px rgba(0,0,0,.08);border-radius:999px;padding:2px 8px;font-size:12px;letter-spacing:0}
.drawer-b > .hint{margin:-2px 0 10px}

/* ===== v4 · chiffrage pro ===== */
.member{grid-template-columns:34px minmax(0,1fr) minmax(0,1.7fr) 112px auto}
.rate{display:flex;align-items:center;gap:6px;margin:0}
.rate input{width:100%;text-align:right;font-family:var(--f-mono);font-size:.88rem}
.rate span{font-size:.78rem;color:var(--ink-3);white-space:nowrap}
@media (max-width:760px){ .member{grid-template-columns:34px 1fr 104px auto} .member .skill{grid-column:2/5} }
/* fiabilité de l'estimation */
.unc{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;margin-top:12px}
.unc-l{display:flex;align-items:center;gap:6px;font-size:.84rem;font-weight:700;color:var(--ink-2);margin-right:4px}
.unc-o{position:relative;display:grid;gap:1px;padding:7px 12px;border-radius:10px;background:var(--surface);box-shadow:var(--neu-out);cursor:pointer;min-width:140px}
.unc-o input{position:absolute;opacity:0;pointer-events:none}
.unc-o b{font-size:.84rem}
.unc-o small{font-size:.72rem;color:var(--ink-3);line-height:1.25}
.unc-o.on{background:var(--accent);color:var(--accent-ink);box-shadow:none}
.unc-o.on small{color:color-mix(in srgb,var(--accent-ink) 75%,transparent)}
.unc-o:focus-within{outline:2px solid var(--accent);outline-offset:2px}
/* prix : fourchette, TVA, TTC */
.price-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:-12px 0 24px}
.price-strip>div{display:grid;gap:3px;padding:12px 16px;border-radius:12px;background:var(--sunk)}
.price-strip small{font-size:.78rem;color:var(--ink-3)}
.price-strip b{font:600 1.05rem/1.2 var(--f-mono);font-variant-numeric:tabular-nums}
.price-strip .ttc{background:var(--accent-soft)}
.kpi .kpi-sub{font-size:.76rem;color:var(--ink-3);cursor:help}
/* échéancier */
.ech-t td{vertical-align:middle}
.ech-t input[type=text]{width:100%;min-width:160px}
.ech-t select{width:100%;min-width:180px}
.ech-t .pct{display:inline-flex;align-items:center;gap:4px}
.ech-t .pct input{width:64px;text-align:right;font-family:var(--f-mono)}
.bad{color:var(--crit)!important;font-weight:700}
.budsum b em,.budtab b em{font-style:normal;font-size:.55em;font-weight:500;color:var(--ink-3)}
.unc{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));gap:8px}
.unc-o{min-width:0}
@media (max-width:760px){ .unc{grid-template-columns:repeat(3,minmax(0,1fr))} .unc-l{grid-column:1/-1} }
.card.stack>.row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;align-items:start}
@media (max-width:900px){ .grid3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){ .grid3{grid-template-columns:1fr} }
.liv-nav{margin-top:-8px}
.budtab b em,.budsum b em{margin-left:.3em}
/* rémunération (projet propre) */
.paid{grid-column:2/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 6px}
.paid>span{font-size:.76rem;color:var(--ink-3);margin-right:2px}
.paid label{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;color:var(--ink-2);background:var(--sunk);border-radius:999px;padding:3px 10px 3px 7px;cursor:pointer;white-space:nowrap}
.paid label:has(input:not(:checked)){color:var(--ink-3);text-decoration:line-through}
.paid input{accent-color:var(--accent);margin:0}
/* matériel : achat unique ou abonnement */
.mat-list{gap:10px}
.mat-row{grid-template-columns:minmax(0,1fr) 84px 118px auto}
.mat-row select{font-size:.8rem;padding-left:8px;padding-right:4px}
.mat-sub{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:.76rem;color:var(--ink-3);padding:5px 2px 0}
.mat-suite{display:inline-flex;align-items:center;gap:5px;cursor:pointer;color:var(--ink-2)}
.mat-suite input{accent-color:var(--accent);margin:0}
@media (max-width:560px){ .mat-row{grid-template-columns:1fr 84px auto} .mat-row select{grid-column:1/3} }
.mat-row{grid-template-columns:90px minmax(0,1fr) auto;grid-template-areas:"nom nom del" "cout per ."}
.mat-row>input[type=text]{grid-area:nom}
.mat-row>input[type=number]{grid-area:cout}
.mat-row>select{grid-area:per}
.mat-row>.btn{grid-area:del}
.mat-item{padding-bottom:8px}
.mat-item+.mat-item{padding-top:10px;box-shadow:0 -1px 0 color-mix(in srgb,var(--ink-3) 14%,transparent)}
.mat-sub{padding-right:40px}
@media (max-width:560px){ .mat-row{grid-template-columns:90px minmax(0,1fr) auto} .mat-row select{grid-column:auto} }
.mat-item+.mat-item{box-shadow:none;padding-top:4px}
.mat-sub{padding-right:0}
/* matériel partagé */
.mat-shared{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:1px 9px;cursor:help}
.mat-reuse{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 8px}
.mat-reuse>span{font-size:.76rem;color:var(--ink-3);width:100%}
.mat-reuse .chip{font-size:.78rem}
.mat-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
select.mat-reuse{width:auto;flex:1;min-width:0;font-size:.8rem;margin:0}
/* ===== Exports & versions ===== */
.exp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px;align-items:start}
@media (max-width:900px){ .exp-grid{grid-template-columns:1fr} }
.exp-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;background:var(--sunk)}
.exp-row>div:first-child{display:grid;gap:2px;min-width:0}
.exp-row b{font-size:.92rem}
.exp-row span{font-size:.78rem;color:var(--ink-3);line-height:1.35}
.exp-b{display:flex;gap:6px;flex:none}
.exp-b .btn{font-family:var(--f-mono);font-size:.78rem}
.exp-all{display:flex;justify-content:flex-end}
.ver-add{display:flex;gap:8px;flex-wrap:wrap}
.ver-add input{flex:1;min-width:220px}
.ver-acts{white-space:nowrap}
.ver-acts .btn{margin-left:4px}
.diff-k{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:12px 0}
.diff-k dt{color:var(--ink-3);font-size:.85rem}
.diff-k dd{margin:0;font-family:var(--f-mono);font-size:.88rem}
.diff{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px}
.diff li{padding:6px 10px 6px 12px;border-radius:8px;background:var(--sunk);font-size:.88rem;border-left:3px solid var(--ink-3)}
.diff li.add{border-left-color:var(--ok)} .diff li.del{border-left-color:var(--crit)} .diff li.mod{border-left-color:var(--warn)}
.up{color:var(--crit)} .down{color:var(--ok)}
.modal-box h3{margin:14px 0 6px;font-size:.95rem}
/* champ devis */
.devis-f{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:end;margin-top:12px}
.devis-f input:disabled{opacity:.55}
.devis-off{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-2);padding-bottom:10px;cursor:pointer}
.devis-off input{accent-color:var(--accent);margin:0}
@media (max-width:700px){ .devis-f{grid-template-columns:1fr} .devis-off{padding-bottom:0} }
.devis-f .field>span{display:flex;align-items:center;gap:6px}
/* remise intermédiaire */
.remis-o{display:flex;gap:8px;align-items:flex-start;font-size:.84rem;color:var(--ink-2);cursor:pointer;padding:8px 10px;border-radius:10px;background:var(--sunk)}
.remis-o input{accent-color:var(--accent);margin:3px 0 0}
.g-remis{position:absolute;top:50%;width:9px;height:9px;transform:translate(-5px,-50%) rotate(45deg);background:var(--surface);box-shadow:0 0 0 2px var(--lc);z-index:2;cursor:help}
.doc tr.sub td{color:var(--ink-2);font-size:.92em}
.doc tr.sub td:nth-child(2){padding-left:18px}
.devis-off{align-items:center}
.devis-f input:disabled{opacity:.6;cursor:not-allowed}
/* ===== Texte enrichi, objectifs, sections libres ===== */
.ed{display:grid;gap:0;border-radius:10px;background:var(--field);box-shadow:var(--neu-in,inset 0 1px 3px rgba(0,0,0,.12))}
.ed-bar{display:flex;align-items:center;gap:2px;padding:4px 6px 2px;flex-wrap:wrap}
.ed-b{border:0;background:transparent;font:inherit;font-size:.8rem;min-width:28px;height:26px;border-radius:6px;color:var(--ink-2);cursor:pointer}
.ed-b:hover{background:var(--sunk);color:var(--ink)}
.ed-hint{margin-left:auto;font-size:.7rem;color:var(--ink-3)}
.ed textarea{background:transparent!important;box-shadow:none!important;border:0!important;resize:vertical;min-height:70px}
.ed textarea:disabled{opacity:.55;cursor:not-allowed}
@media (max-width:700px){ .ed-hint{display:none} }
.desc-f{margin-top:12px;display:grid;gap:4px}
.desc-f>span{display:flex;align-items:center;gap:6px;font-weight:700;font-size:.86rem}
.objs{display:grid;gap:6px}
.obj-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:center}
.obj-n{font:600 .78rem var(--f-mono);color:var(--ink-3);text-align:center}
.field .objs+div{margin-top:6px}
.liv-desc{margin:8px 0 4px}
.liv-desc summary{cursor:pointer;font-size:.86rem;font-weight:700;color:var(--ink-2);display:flex;gap:8px;align-items:center;margin-bottom:6px}
.sec-ed{margin-bottom:16px}
.sec-ed summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.sec-ed[open] summary{margin-bottom:12px}
.sec-item{display:grid;gap:6px;padding:10px;border-radius:10px;background:var(--sunk);margin-bottom:10px}
.sec-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) auto;gap:6px;align-items:center}
@media (max-width:760px){ .sec-row{grid-template-columns:1fr auto} .sec-row select{grid-column:1/2} }
.doc .rich p{margin:0 0 6px}
.doc .rich ul,.doc .rich ol{margin:0 0 6px;padding-left:22px}
.doc .req-desc{font-size:.92rem;color:var(--ink-2)}
.doc .req-intro{margin:2px 0 6px 14px;color:var(--ink-2)}
.kv-list{margin:0;padding-left:18px}
.req-scen{display:flex;flex-wrap:wrap;gap:6px}
.req-scen span{font-size:.78rem;background:var(--sunk);border-radius:999px;padding:2px 10px;color:var(--ink-2)}
.req-scen span.on{background:var(--accent-soft);color:var(--ink);font-weight:700}
/* équipe : rôle et compétences */
.member{grid-template-columns:34px minmax(0,1fr) minmax(0,1.2fr) 112px auto;grid-template-areas:"av nom role rate del" ". skill skill skill ." ". paid paid paid .";row-gap:6px}
.member>.avatar{grid-area:av} .member>input[data-f=nom]{grid-area:nom} .member>.role{grid-area:role} .member>.skill{grid-area:skill} .member>.rate{grid-area:rate} .member>.btn{grid-area:del} .member>.paid{grid-area:paid;margin:0}
.member>.skill{font-size:.86rem}
.team{gap:14px}
@media (max-width:760px){ .member{grid-template-columns:34px minmax(0,1fr) 104px auto;grid-template-areas:"av nom rate del" ". role role role" ". skill skill skill" ". paid paid paid"} }
/* remis au client dans la section 1 */
.c-sec .remis-o{margin-top:10px}
.remis-o:has(input:disabled),.devis-off:has(input:disabled){opacity:.5}
textarea{overflow-y:hidden}
.ed textarea{overflow-y:auto}
.field>span{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.member>.skill{grid-column:2/5!important;grid-row:2}
.member>.paid{grid-column:2/5!important;grid-row:3}
@media (max-width:760px){ .member>.role{grid-column:2/5;grid-row:2} .member>.skill{grid-column:2/5!important;grid-row:3} .member>.paid{grid-row:4} }
/* ===== Parties prenantes & RACI ===== */
.parties{display:grid;gap:8px}
.party{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) 150px auto;gap:8px;align-items:center}
@media (max-width:760px){ .party{grid-template-columns:1fr auto} .party input+input,.party select{grid-column:1/2} }
.raci{margin-bottom:22px}
.raci-t th.rc{text-align:center;vertical-align:bottom;min-width:76px}
.raci-t th.rc span{display:block;font-size:.8rem;text-transform:none;letter-spacing:0;color:var(--ink)}
.raci-t th.rc small{display:block;font-weight:400;font-size:.68rem;color:var(--ink-3);text-transform:none;letter-spacing:0}
.raci-t th.rc.k-client span,.raci-t th.rc.k-ext span{color:var(--t-client)} .raci-t th.rc.k-presta span{color:var(--t-int)}
.raci-t td.rc{text-align:center}
.raci-t td small.bad{display:block;font-size:.72rem}
.raci-c{display:inline-flex;align-items:center;justify-content:center;width:30px;height:28px;border-radius:8px;border:0;background:var(--sunk);font:700 .82rem var(--f-mono);color:var(--ink-3);cursor:pointer}
.raci-c.R{background:#DDEBFB;color:#1F57B8} .raci-c.A{background:var(--accent);color:var(--accent-ink)} .raci-c.C{background:#FBEBD2;color:#8A5608} .raci-c.I{background:#E6F3EA;color:#2B7A4B}
b.raci-c{cursor:default;width:24px;height:22px;font-size:.74rem;margin-right:4px}
.peda{background:var(--sunk);border-radius:10px;padding:10px 14px}
.peda summary{cursor:pointer;font-weight:700;font-size:.9rem;color:var(--ink-2)}
.peda-b{display:grid;gap:8px;margin-top:10px;font-size:.9rem}
.peda-b p,.peda-b ul{margin:0} .peda-b ul{padding-left:20px;display:grid;gap:3px}
.peda-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;align-items:baseline}
.peda-dl dt{font-weight:700;white-space:nowrap} .peda-dl dd{margin:0}
.raci-t td:first-child,.raci-t th:first-child{min-width:200px}
/* bulles d'aide : texte normal, placées à côté du libellé */
.help>div{text-transform:none!important;letter-spacing:normal!important;font-weight:400;font-size:.86rem;line-height:1.5;color:var(--ink-2)}
.liv-valid>span{display:flex;align-items:center;gap:6px}
/* libellés de l'équipe et des parties prenantes */
.mhead,.phead{display:grid;gap:10px;font-size:.72rem;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:-6px}
.mhead{grid-template-columns:34px minmax(0,1fr) minmax(0,1.2fr) 112px 34px}
.mhead span:nth-child(4){text-align:left}
.phead{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) 150px 34px}
.member>label.skill{display:flex;align-items:center;gap:10px;margin:0}
.member>label.skill>span{font-size:.72rem;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.member>label.skill>input{flex:1;min-width:0;font-size:.86rem}
@media (max-width:760px){ .mhead,.phead{display:none} }
.lbl{align-items:flex-start}
.lbl .ri{margin-top:1px;flex:none}
.lbl-t{line-height:1.35}
.lbl-t .help{display:inline-block;vertical-align:middle;margin-top:-2px}
.lbl-t .help>summary{width:20px;height:20px;font-size:.7rem}
/* ===== Dates butoirs ===== */
.dls{display:grid;gap:14px;margin-bottom:24px}
.dl-empty{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:24px}
.dl{display:grid;gap:12px}
.dl.late{box-shadow:inset 4px 0 0 var(--crit),var(--shadow-s)} .dl.warn{box-shadow:inset 4px 0 0 var(--warn),var(--shadow-s)} .dl.ok{box-shadow:inset 4px 0 0 var(--ok),var(--shadow-s)}
.dl-h{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start}
.dl-dot{width:14px;height:14px;border-radius:50%;margin-top:4px}
.dl-dot.late{background:var(--crit)} .dl-dot.warn{background:var(--warn)} .dl-dot.ok{background:var(--ok)}
.dl-lead{margin:0;font-size:.9rem;color:var(--ink-2)}
.levers{display:grid;gap:6px}
.lever{display:grid;grid-template-columns:auto minmax(0,1fr) 56px 84px auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--sunk);cursor:pointer;font-size:.9rem}
.lever.on{background:var(--accent-soft)}
.lever input{accent-color:var(--accent);margin:0}
.lv-t small{display:block;font-size:.76rem;color:var(--ink-3)}
.lv-g{font:700 .88rem var(--f-mono);color:var(--ok);text-align:right}
.lv-c{font:500 .82rem var(--f-mono);text-align:right;color:var(--ink-3)}
.lv-c.up{color:var(--crit)} .lv-c.down{color:var(--ok)}
@media (max-width:760px){ .lever{grid-template-columns:auto 1fr auto} .lever .lv-c,.lever .btn{grid-column:2/4} }
.dl-sim{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:10px 12px;border-radius:10px;background:var(--sunk);font-size:.9rem}
.dl-sim.ok{background:var(--ok-soft)} .dl-sim.late{background:var(--warn-soft)}
.dl-sim .btn{margin-left:auto}
.dl-concl{padding:12px 14px;border-radius:10px;background:var(--crit-soft);font-size:.9rem;display:grid;gap:6px}
.dl-concl ul{margin:0;padding-left:20px;display:grid;gap:4px}
.g-dead{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--crit);z-index:3;pointer-events:none}
.g-dead.liv{pointer-events:auto;top:4px;bottom:4px;border-left-style:solid;cursor:help}
.liv-dl{display:grid;gap:3px}
.liv-dl span{font-size:.72rem;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.liv-dl input{font-size:.82rem;padding:5px 7px}
.v2-box{margin:14px 0;padding:12px 14px;border-radius:10px;background:var(--sunk);font-size:.9rem}
.v2-box ul{margin:6px 0 0;padding-left:18px;display:grid;gap:4px}
.lv-grp{font-size:.72rem;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin:6px 0 0}
/* libellés : la bulle d'aide suit le dernier mot */
.field>span{display:block}
.field>span>.help{display:inline-block;vertical-align:middle;margin-left:6px;margin-top:-3px}
/* Gantt repliable */
.g-fold{border:0;background:transparent;width:20px;height:20px;border-radius:6px;cursor:pointer;color:var(--ink-3);font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex:none;padding:0}
.g-fold span{display:inline-block;transition:transform .15s}
.g-fold.open span{transform:rotate(90deg)}
.g-fold:hover{background:var(--sunk);color:var(--ink)}
.g-n{font:600 .7rem var(--f-mono);color:var(--ink-3);background:var(--sunk);border-radius:999px;padding:1px 7px}
/* alertes date butoir */
.nav-alert{font:700 .72rem var(--f-mono);border-radius:999px;padding:1px 7px}
.nav-alert.late{background:var(--crit);color:#fff}
.nav-alert.warn{background:var(--warn-soft);color:var(--warn)}
.late-chip{font-size:.7rem;font-weight:700;color:var(--crit);background:var(--crit-soft);border-radius:999px;padding:2px 8px;margin-left:6px;white-space:nowrap}
.toast.warn{background:var(--crit);color:#fff}
/* Mes modèles */
.chip.my{padding:0;gap:0;overflow:hidden;border-style:solid}
.chip.my .my-add{border:0;background:transparent;font:inherit;display:inline-flex;align-items:center;gap:7px;padding:4px 6px 4px 11px;cursor:pointer;color:inherit}
.chip.my .my-add small{color:var(--ink-3);font-size:.72rem}
.chip.my .my-del{border:0;background:transparent;padding:4px 10px 4px 4px;cursor:pointer;color:var(--ink-3);font-size:1rem;line-height:1}
.chip.my .my-del:hover{color:var(--crit)}
.liv-foot{display:flex;align-items:center;gap:4px}
.late-chip{border:0;cursor:pointer;font-family:inherit}.late-chip:hover{background:var(--crit);color:#fff}
/* confirmation de suppression : question en texte, deux vrais boutons */
.del-q{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap}
.del-q .q{font-weight:400;color:var(--crit);cursor:default;white-space:nowrap;background:none;box-shadow:none;padding:0;user-select:none}
.btn.outline{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line-2);color:var(--ink);cursor:pointer}
.btn.outline:hover{box-shadow:inset 0 0 0 1.5px var(--ink-3)}
.btn.danger{display:inline-flex;align-items:center;gap:6px;background:var(--crit);color:#fff;box-shadow:none;cursor:pointer}
.btn.danger:hover{filter:brightness(1.1)}
.btn.danger svg{stroke:#fff}
/* simulation des leviers : toujours visible en bas de l'écran pendant qu'on coche */
.dl-sim{position:sticky;bottom:12px;z-index:5;box-shadow:0 6px 24px -8px rgba(24,32,43,.35),0 0 0 1px rgba(24,32,43,.06);background:var(--surface)}
.dl-sim.ok{background:color-mix(in srgb,var(--ok-soft) 70%,var(--surface))}
.dl-sim.late{background:color-mix(in srgb,var(--warn-soft) 70%,var(--surface))}
/* leviers en accordéon */
.lv-acc{border-radius:10px;background:var(--sunk)}
.lv-acc>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;font-size:.9rem}
.lv-acc>summary::-webkit-details-marker{display:none}
.lv-acc-t{font-weight:700}
.lv-acc-m{font-size:.8rem;color:var(--ink-3)} .lv-acc-m b{color:var(--ok);font-family:var(--f-mono)}
.lv-acc-sel{color:var(--accent);font-weight:700}
.lv-acc .caret{transition:transform .15s;color:var(--ink-3)} .lv-acc[open] .caret{transform:rotate(90deg)}
.lv-acc-b{display:grid;gap:6px;padding:0 8px 8px}
.lv-acc .lever{background:var(--surface)}
.lv-acc .lever.on{background:var(--accent-soft)}
.levers{gap:8px}

/* ---------- Mode classe : connexion, fin de séance, compte à rebours ---------- */
#acq-gate{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(6px)}
.gated body{overflow:hidden}
.gate-box{background:var(--surface);border-radius:16px;padding:28px;max-width:440px;width:100%;display:grid;gap:14px;box-shadow:var(--shadow)}
.gate-brand b{font-family:var(--f-display);font-weight:800;font-size:1.1rem;letter-spacing:-.02em}
.gate-brand b i{font-style:normal;color:var(--fin)}
.gate-box h1{font-size:1.5rem}
.gate-form{display:grid;gap:12px}
.gate-form input{border:1px solid var(--field-line);background:var(--field);border-radius:8px;padding:9px 11px;width:100%}
.gate-form .btn{justify-content:center;padding:10px}
.gate-err{color:var(--crit);font-size:.88rem;min-height:1.3em}
.gate-warn{background:var(--warn-soft);color:var(--ink);border-radius:10px;padding:12px 14px;font-size:.88rem;display:grid;gap:10px;justify-items:start}
.gate-acts{display:flex;justify-content:flex-end;gap:8px}
.acq-timer{font-size:.78rem;color:var(--ink-3);white-space:nowrap}
.acq-timer.soon{color:var(--crit);font-weight:700}
@media (max-width:760px){ .acq-timer{display:none} }
#acq-gate{overflow-y:auto}
.gate-box.wide{max-width:760px;margin:24px 0}
.quiz-form textarea{border:1px solid var(--field-line);background:var(--field);border-radius:8px;padding:8px 10px;width:100%;resize:vertical}
.quiz-form .field>span{font-weight:700}
.lk{border:0;padding:0;margin:0;display:grid;gap:6px}
.lk legend{font-weight:700;font-size:.92rem;padding:0;margin-bottom:6px}
.lk div{display:flex;gap:6px}
.lk label{flex:1;position:relative}
.lk input{position:absolute;opacity:0}
.lk span{display:block;text-align:center;border:1px solid var(--line-2);border-radius:8px;padding:7px 0;cursor:pointer;font-weight:700}
.lk input:checked+span{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.lk input:focus-visible+span{outline:2px solid var(--hum);outline-offset:2px}
