:root{
  /* Identité WhisperChat (piste B · Corail) : corail = action, prune = texte, sable = fond. Jamais de texte blanc sur le corail. */
  --bg:#fff8f3;--panel:#ffffff;--panel2:#fbeee6;--fg:#2a1636;--mut:#6e5a72;--line:#f0dcd1;
  --acc:#ff6a55;--acc-fg:#2a1636;--acc-ink:#c2412f;--acc-soft:#ffe4dc;--ok:#2f7d4f;--ok-soft:#e3f2e8;--warn:#a5641a;--warn-soft:#fbefdc;--bad:#b23a3a;--bad-soft:#f8e3e3;
  --bubble-in:#f6ece6;--bubble-out:#ff6a55;--bubble-out-fg:#2a1636;
  --r:12px;--shadow:0 1px 2px rgba(42,22,54,.05),0 4px 16px rgba(42,22,54,.05);
  --f-ui:"Figtree",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;
  --f-brand:"Bricolage Grotesque","Figtree",system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#170e1d;--panel:#211528;--panel2:#2b1d34;--fg:#f6ece8;--mut:#b9a5b8;--line:#3a2a44;
  --acc:#ff7a66;--acc-fg:#2a1636;--acc-ink:#ff8f7d;--acc-soft:#3d2230;--ok:#6cc08d;--ok-soft:#18291f;--warn:#e2a35a;--warn-soft:#2e2316;--bad:#e27a7a;--bad-soft:#341c1c;
  --bubble-in:#2e2137;--bubble-out:#ff7a66;--bubble-out-fg:#2a1636;--shadow:none;color-scheme:dark;}}
:root[data-theme="dark"]{
  --bg:#170e1d;--panel:#211528;--panel2:#2b1d34;--fg:#f6ece8;--mut:#b9a5b8;--line:#3a2a44;
  --acc:#ff7a66;--acc-fg:#2a1636;--acc-ink:#ff8f7d;--acc-soft:#3d2230;--ok:#6cc08d;--ok-soft:#18291f;--warn:#e2a35a;--warn-soft:#2e2316;--bad:#e27a7a;--bad-soft:#341c1c;
  --bubble-in:#2e2137;--bubble-out:#ff7a66;--bubble-out-fg:#2a1636;--shadow:none;color-scheme:dark;}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 var(--f-ui);-webkit-font-smoothing:antialiased}
a{color:var(--acc-ink)}
button,input,select,textarea{font:inherit;color:inherit}
.layout{display:flex;min-height:100vh}
nav.side{width:220px;flex:none;padding:20px 12px;border-right:1px solid var(--line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:2px;background:var(--panel)}
.brand{font:800 1.2rem/1 var(--f-brand);letter-spacing:-.02em;padding:4px 10px 18px;display:flex;align-items:center;gap:8px}
.brand img{width:28px;height:28px;flex:none}
.brand b{font-weight:inherit;color:var(--acc-ink)}
nav.side a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--fg);text-decoration:none}
nav.side a:hover{background:var(--panel2)}
nav.side a.on{background:var(--acc-soft);color:var(--acc-ink);font-weight:600}
nav.side .grow{flex:1}
main{flex:1;min-width:0;padding:28px 32px 80px;max-width:1200px}
h1{font:800 1.6rem/1.2 var(--f-brand);letter-spacing:-.02em;margin:0 0 4px}
h2{font-size:1.1rem;margin:0 0 12px}
h3{font-size:.95rem;margin:0 0 8px}
.sub{color:var(--mut);margin:0 0 22px}
.mut{color:var(--mut)}
.small{font-size:.85rem}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.row.end{justify-content:flex-end}
.spread{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.grid{display:grid;gap:14px}
.kpis{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.two{grid-template-columns:1fr 1fr}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow)}
.kpi .v{font-size:1.7rem;font-weight:700;font-variant-numeric:tabular-nums}
.kpi .l{color:var(--mut);font-size:.85rem}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);padding:8px 14px;border-radius:9px;cursor:pointer;text-decoration:none;color:var(--fg);white-space:nowrap}
.btn:hover{background:var(--panel2)}
.btn.pri{background:var(--acc);border-color:var(--acc);color:var(--acc-fg);font-weight:600}
.btn.pri:hover{filter:brightness(1.05)}
.btn.danger{color:var(--bad)}
.btn.sm{padding:4px 10px;font-size:.85rem}
.btn:disabled{opacity:.5;cursor:default}
label.f{display:block;margin:0 0 12px}
label.f>span{display:block;font-size:.85rem;color:var(--mut);margin-bottom:4px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],input:not([type]),select,textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}
textarea{min-height:80px;resize:vertical}
.check{display:flex;gap:8px;align-items:center;margin:0 0 10px;cursor:pointer}
.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:.78rem;background:var(--panel2);color:var(--mut);border:1px solid var(--line)}
.pill.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.pill.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.pill.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.pill.acc{background:var(--acc-soft);color:var(--acc-ink);border-color:transparent}
.pill button{border:0;background:none;padding:0 0 0 2px;cursor:pointer;color:inherit}
.banner{padding:12px 16px;border-radius:var(--r);margin:0 0 18px;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.banner.warn{background:var(--warn-soft);color:var(--warn)}
.banner.bad{background:var(--bad-soft);color:var(--bad)}
.banner.ok{background:var(--ok-soft);color:var(--ok)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.8rem;color:var(--mut);font-weight:600}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--panel2)}
.tablewrap{overflow-x:auto}
.toggle{position:relative;width:42px;height:24px;flex:none;border-radius:99px;background:var(--line);border:0;cursor:pointer;transition:.15s}
.toggle::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.toggle.on{background:var(--ok)}
.toggle.on::after{left:21px}
.auto-card{display:flex;gap:16px;align-items:flex-start}
.auto-card .body{flex:1;min-width:0}
.auto-card .stats{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:.85rem;color:var(--mut)}
.auto-card .stats b{color:var(--fg);font-variant-numeric:tabular-nums}
.step{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin:0 0 10px;position:relative}
.step-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel2);border-radius:var(--r) var(--r) 0 0}
.step-head .id{font-weight:700;font-variant-numeric:tabular-nums;color:var(--acc-ink)}
.step-head .t{font-weight:600}
.step-head .sp{flex:1}
.step-body{padding:14px}
.step.first{border-color:var(--acc)}
.flow-arrow{text-align:center;color:var(--mut);margin:-4px 0 6px;font-size:.8rem}
.sub-list{border:1px dashed var(--line);border-radius:9px;padding:10px;margin:0 0 12px}
.sub-item{display:grid;grid-template-columns:1fr 1fr 1.4fr auto;gap:8px;margin-bottom:8px;align-items:center}
.chips{display:flex;flex-wrap:wrap;gap:6px;padding:6px;border:1px solid var(--line);border-radius:9px;background:var(--panel);min-height:42px;align-items:center}
.chips input{border:0!important;box-shadow:none!important;flex:1;min-width:120px;padding:4px!important}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;max-height:340px;overflow:auto}
.media{border:2px solid transparent;border-radius:9px;overflow:hidden;cursor:pointer;background:var(--panel2);font-size:.75rem}
.media img{width:100%;aspect-ratio:9/12;object-fit:cover;display:block}
.media.on{border-color:var(--acc)}
.media div{padding:4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.problems{margin:0 0 14px;padding:10px 14px 10px 30px;border-radius:9px;background:var(--bad-soft);color:var(--bad)}
.warnings{margin:0 0 14px;padding:10px 14px 10px 30px;border-radius:9px;background:var(--warn-soft);color:var(--warn)}
.chat{display:flex;flex-direction:column;gap:8px;padding:14px;background:var(--panel2);border-radius:var(--r);min-height:360px;max-height:65vh;overflow:auto}
.msg{max-width:78%;padding:9px 13px;border-radius:18px;white-space:pre-wrap;word-wrap:break-word}
.msg.in{align-self:flex-start;background:var(--bubble-in);border-bottom-left-radius:6px}
.msg.out{align-self:flex-end;background:var(--bubble-out);color:var(--bubble-out-fg);border-bottom-right-radius:6px}
.msg.echo{outline:2px dashed var(--acc)}
.msg .meta{font-size:.7rem;opacity:.65;margin-top:3px}
.msg .btns{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.msg .btns button,.qr button{border:1px solid currentColor;background:transparent;color:inherit;border-radius:9px;padding:6px 10px;cursor:pointer;font-weight:600}
.msg .btns button:hover,.qr button:hover{background:rgba(127,127,127,.15)}
.qr{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.qr button{color:var(--acc-ink);border-radius:999px;background:var(--panel)}
.sys{align-self:center;font-size:.78rem;color:var(--mut);background:var(--panel);padding:3px 10px;border-radius:99px}
.drawer-bg{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(620px,100%);background:var(--bg);z-index:41;overflow:auto;padding:22px;box-shadow:-8px 0 30px rgba(0,0,0,.15)}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:10px 18px;border-radius:10px;z-index:99;max-width:90vw}
.toast.bad{background:var(--bad);color:#fff}
.bars{display:flex;align-items:flex-end;gap:4px;height:120px;padding-top:6px}
.bars .b{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;height:100%}
.bars .b i{display:block;width:100%;max-width:26px;background:var(--acc);border-radius:4px 4px 0 0;min-height:2px}
.bars .b span{font-size:.65rem;color:var(--mut)}
.copy{display:flex;gap:6px}
.copy input{font-family:ui-monospace,Menlo,monospace;font-size:.82rem}
.list-plain{list-style:none;margin:0;padding:0}
.list-plain li{padding:8px 0;border-bottom:1px solid var(--line)}
.list-plain li:last-child{border:0}
.steps-check li{margin-bottom:8px}
.empty{padding:30px;text-align:center;color:var(--mut)}
.mobile-top{display:none}
@media (max-width:860px){
  .layout{display:block}
  nav.side{position:fixed;inset:0 auto 0 0;z-index:50;transform:translateX(-100%);transition:.2s;box-shadow:4px 0 20px rgba(0,0,0,.2)}
  nav.side.open{transform:none}
  .mobile-top{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:30}
  main{padding:18px 16px 80px}
  .two{grid-template-columns:1fr}
  .sub-item{grid-template-columns:1fr 1fr}
  .hide-m{display:none}
}
