/* Layout : poste de commandement. Bandeau d'état-major en haut (chiffres à gauche, menus à droite), carte tactique quadrillée en plein écran, plaques translucides aux coins. Thème sombre unique, choisi : kaki, acier, jaune de signalisation. PC uniquement. */
:root{
  color-scheme: dark;
  --ink:#0d110d; --sea:#0a0f0f; --panel:rgba(18,23,17,.93); --panel2:#1d241b; --panel3:#262f23; --line:#363f30; --line2:#4b5741;
  --fg:#e7e4d4; --muted:#979f8a; --sig:#e7b13a; --sig2:#b9871f; --war:#d64a3f; --ally:#5f9bd6; --pact:#55b39c; --trade:#9cc05c;
  --display:'Saira Stencil One','Impact','Arial Narrow',sans-serif;
  --cond:'Barlow Condensed','Arial Narrow',sans-serif;
  --body:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
}
html,body{height:100%}
body{background:var(--ink);color:var(--fg);font-family:var(--body);font-size:14px;line-height:1.4;overflow:hidden}
*{box-sizing:border-box}
[hidden]{display:none!important}
button{font:inherit;color:inherit;cursor:pointer}
button:disabled{cursor:not-allowed}
button:focus-visible,input:focus-visible{outline:2px solid var(--sig);outline-offset:2px}
.i{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}
.app{height:100%;display:flex;flex-direction:column}
/* bandeau d'actualités diplomatiques */
.ticker{position:relative;flex:none;height:26px;overflow:hidden;background:#0c100b;border-bottom:1px solid var(--line);display:flex;align-items:center;margin-top:4px;z-index:4}
.ticker .tlab{flex:none;height:100%;display:flex;align-items:center;gap:6px;padding:0 12px;background:var(--sig);color:#17130a;font-family:var(--cond);font-weight:700;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;position:relative;z-index:2}
.ticker .tlab::after{content:"";position:absolute;right:-12px;top:0;border-left:12px solid var(--sig);border-top:13px solid transparent;border-bottom:13px solid transparent}
.ticker .tlab i{width:7px;height:7px;border-radius:50%;background:#b8261b;animation:tkb 1.2s infinite}
@keyframes tkb{50%{opacity:.25}}
.ticker .tview{position:relative;flex:1;height:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 30px,#000 calc(100% - 40px),transparent)}
.ticker .ttrack{position:absolute;left:0;top:0;height:100%;display:flex;align-items:center;white-space:nowrap;will-change:transform}
.ticker .tit{display:inline-flex;align-items:center;gap:7px;padding:0 22px 0 0;font-size:13px;color:#d9d7c8}
.ticker .tit time{font-family:var(--mono);font-size:11px;color:var(--muted)}
.ticker .tit::before{content:"◆";font-size:9px;color:var(--line2)}
.ticker .tit.k-war::before,.ticker .tit.k-betray::before,.ticker .tit.k-ult::before,.ticker .tit.k-coal::before,.ticker .tit.k-nuke::before{color:var(--war)}
.ticker .tit.k-peace::before{color:var(--pact)}.ticker .tit.k-ally::before{color:var(--ally)}
.ticker .tit.me{color:#fff}.ticker .tit.me b{color:var(--sig)}
.ticker .tit b{font-weight:600;color:#fff}
/* bandeau d'état-major */
.hud{position:relative;display:flex;align-items:center;gap:14px;padding-block:7px;padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px));
  background:linear-gradient(#171d15,#12170f);border-bottom:1px solid var(--line);box-shadow:0 1px 0 #0006,inset 0 -2px 0 #0004;position:relative;z-index:5}
.hud::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;background:repeating-linear-gradient(-45deg,var(--sig) 0 7px,#12170f 7px 14px);opacity:.55}
.brand{display:flex;align-items:center;gap:9px;line-height:1;padding-right:6px}.brand>div{display:flex;flex-direction:column}
.brand .logo{width:34px;height:34px;border-radius:50%;box-shadow:0 0 0 1px var(--line2)}
.su-brand{display:flex;align-items:center;gap:12px}.su-brand .logo{width:46px;height:46px;border-radius:50%;box-shadow:0 0 0 1px var(--line2)}
.su-brand.big .logo{width:76px;height:76px}.su-brand.big b{font-size:34px}
.quitm>div{max-width:520px}.quitm h2{font-size:38px}.quitm p{font-family:var(--body,inherit);font-size:14.5px;line-height:1.55;text-align:left}
.btn.danger{border-color:#8a3128;color:#f3b0a8}.btn.danger:hover{background:#3a1713;color:#fff}
.btn.snd.off{opacity:.55}
.brand b{font-family:var(--display);font-weight:400;font-size:21px;letter-spacing:.04em;color:var(--sig);text-transform:uppercase}
.brand small{white-space:nowrap;font-family:var(--mono);font-size:9px;letter-spacing:.24em;color:var(--muted);margin-top:3px;text-transform:uppercase}
.stats{display:flex;align-items:stretch;min-width:0;flex:1;overflow:hidden;font-variant-numeric:tabular-nums}
.stat{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:6px;align-items:center;padding:0 7px;border-left:1px solid var(--line);flex:none}
.stat:first-child{border-left:0;padding-left:4px}
.stat .i{grid-row:1/3;width:20px;height:20px;color:var(--sig)}
.stat b{font-family:var(--mono);font-weight:500;font-size:13.5px;white-space:nowrap}
.stat span{font-family:var(--cond);font-weight:600;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.stat .bar,.stat .mgauge{grid-column:2}
.stat .sub{display:flex;align-items:center;gap:5px}.stat .sub i{font-style:normal}
.stat .rate{font-family:var(--mono);font-style:normal;font-weight:600;font-size:11.5px;letter-spacing:0;text-transform:none;padding:0 3px;color:#a9dc84;background:rgba(120,190,90,.12)}
.stat .rate.neg{color:#ff9a90;background:rgba(214,74,63,.16)}
.stat .rate.zero{color:var(--muted);background:rgba(255,255,255,.05)}
.stat.res{cursor:help}.stat.res:hover{background:rgba(231,177,58,.06)}
.ledger{position:absolute;z-index:9;top:calc(100% + 6px);width:320px;padding:9px 11px 10px;font-size:12.5px;pointer-events:none}
.ledger h4{margin:0 0 6px;font-family:var(--cond);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--sig)}
.ledger .ln{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:baseline}
.ledger .ln b{font-family:var(--mono);font-weight:500;text-align:right}
.ledger .ln b.p{color:#a9dc84}.ledger .ln b.m{color:#ff9a90}.ledger .ln span.dim{color:var(--muted)}
.ledger .ln .tot{border-top:1px solid var(--line2);padding-top:5px;margin-top:3px;font-weight:700}
.vgoal{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-bottom:1px dashed var(--line)}.vgoal b{font-family:var(--cond);letter-spacing:.08em;text-transform:uppercase;font-size:12px;color:var(--sig)}.vgoal span{font-size:12px}
.pbar{display:block;height:5px;background:#1d241a;margin-top:3px}.pbar i{display:block;height:100%;background:var(--sig)}
.ledger .note b{color:var(--fg)}
.ledger .note{margin-top:7px;font-size:11.5px;color:var(--muted);line-height:1.35}
.bar{position:relative;height:4px;background:#0b0f0b;border:1px solid var(--line);margin-top:3px;overflow:hidden}
.bar i{position:absolute;inset:0 auto 0 0;background:var(--sig)}
.bar em{position:absolute;top:0;bottom:0;width:2px;background:var(--fg);left:75%}
.mgauge{position:relative;height:4px;background:linear-gradient(90deg,#7a1f2b,#c0463a 25%,#5b5f58 50%,#7fb0c8 75%,#e8ddb0);margin-top:3px}
.mgauge i{position:absolute;top:-3px;width:3px;height:10px;background:var(--fg);transform:translateX(-50%);box-shadow:0 0 0 1px var(--ink)}
.ctrl{display:flex;gap:4px;margin-left:auto;flex:none}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--panel2);border:1px solid var(--line2);border-radius:2px;padding:5px 9px;font-family:var(--cond);font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.btn:hover{border-color:var(--sig);color:#fff}
.btn.on{background:var(--sig);color:#17130a;border-color:var(--sig)}
.btn.ic{padding:5px 7px;font-family:var(--mono);font-size:12px}
.rail{display:flex;flex:none;border:1px solid var(--line2);background:#0e130d}
.rail button{position:relative;display:flex;align-items:center;gap:7px;background:none;border:0;border-left:1px solid var(--line);padding:7px 12px;color:var(--muted);font-family:var(--cond);font-weight:700;font-size:13.5px;letter-spacing:.09em;text-transform:uppercase}
.rail button:first-child{border-left:0}
.hud.compact .rail .lbl{display:none}.hud.compact .rail button{padding:7px 11px}
#bList .pd{color:var(--sig)}
.rail button .i{width:18px;height:18px}
.rail button:hover{color:var(--fg);background:var(--panel2)}
.rail button.on{color:#17130a;background:var(--sig)}
#sPoi{font-family:var(--mono);font-size:11px;letter-spacing:0;opacity:.85}
.badge{position:absolute;top:-7px;right:-6px;min-width:17px;height:17px;padding:0 4px;background:var(--war);color:#fff;font-style:normal;font-size:10.5px;line-height:17px;font-family:var(--mono);letter-spacing:0;border:1px solid #0d110d;text-align:center}
/* scène */
.stage{position:relative;flex:1;min-height:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(120% 90% at 50% 45%,#121a17,#080b0a)}
.stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(130% 100% at 50% 50%,transparent 60%,rgba(0,0,0,.45));z-index:1}
canvas{display:block;position:absolute;cursor:crosshair}
canvas.pan{cursor:grabbing}
.pnl{position:absolute;background:var(--panel);border:1px solid var(--line2);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:3;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.pnl::before{content:"";position:absolute;top:-1px;left:-1px;width:12px;height:12px;border-top:2px solid var(--sig);border-left:2px solid var(--sig);pointer-events:none}
.lab{font-family:var(--cond);font-weight:700;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
/* tiroir */
.drawer{top:12px;bottom:12px;right:max(12px,env(safe-area-inset-right,0px));width:370px;overflow:auto;padding:0 14px 16px}
.dhead{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;margin:0 -14px 10px;padding:11px 42px 9px 14px;background:linear-gradient(#20281d,#1a2118);border-bottom:1px solid var(--line2)}
.dhead::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;background:repeating-linear-gradient(-45deg,var(--sig) 0 6px,transparent 6px 12px);opacity:.5}
.dhead h2{margin:0;font-family:var(--display);font-weight:400;font-size:21px;letter-spacing:.05em;text-transform:uppercase;color:var(--sig);line-height:1}
.dhead .i{width:20px;height:20px;color:var(--sig)}
.dhead .btn{margin-left:auto}
.x{position:absolute;top:8px;right:8px;width:28px;height:28px;background:var(--panel2);border:1px solid var(--line2);font-size:17px;line-height:1;color:var(--muted);z-index:3}
.x:hover{border-color:var(--sig);color:var(--fg)}
.back{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--line2);font-family:var(--cond);font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;color:var(--muted);margin-bottom:10px}
.back:hover{color:var(--fg);border-color:var(--sig)}
#nlist{display:flex;flex-direction:column;gap:3px}
.nrow{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:3px 9px;align-items:center;padding:7px 9px;background:var(--panel2);border:1px solid transparent;border-left:3px solid var(--line2);text-align:left;width:100%}
.nrow:hover{border-color:var(--line2);background:var(--panel3)}
.nrow.dead{opacity:.35}
.nrow .sw{width:12px;height:12px;box-shadow:inset 0 0 0 1px #0007}
.nrow .nm{font-family:var(--cond);font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nrow .rels{display:inline-flex;gap:4px;margin-left:8px;vertical-align:-2px}.nrow .rels .i{width:15px;height:15px}
.nrow .num{font-family:var(--mono);font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.nrow .tl{grid-column:2/4;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}
.tbar{flex:1;height:4px;background:#0b0f0b;border:1px solid var(--line);overflow:hidden}
.tbar i{display:block;height:100%}
.tag{font-family:var(--mono);font-size:10.5px;white-space:nowrap}
.tag.war{color:#f09a90}.tag.ally{color:#a9c9f3}.tag.pact{color:#9adccf}.tag.trade{color:#c7e39a}
.sechead{display:flex;justify-content:space-between;align-items:center;margin:16px 0 6px;padding-bottom:4px;border-bottom:1px dashed var(--line)}
.sechead button{background:none;border:1px solid var(--line2);font-family:var(--cond);font-weight:600;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;padding:1px 8px;color:var(--muted)}
/* fiche nation */
.nhead{display:flex;gap:11px;align-items:flex-start}
.nhead .sw{width:16px;height:16px;flex:none;margin-top:4px;box-shadow:inset 0 0 0 1px #0007}
.ntitle{font-family:var(--display);font-weight:400;font-size:22px;letter-spacing:.03em;line-height:1.05;text-transform:uppercase;text-wrap:balance}
.nsub{color:var(--muted);font-size:12.5px}
.amb{margin:11px 0 0;padding:8px 10px;background:#141a12;border:1px solid var(--line);font-size:13px;display:flex;gap:10px;align-items:baseline}
.amb.me{border-color:#6b2a24;background:#21130f;box-shadow:inset 3px 0 0 var(--war)}
.blk{margin-top:11px}
.blk .row{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;gap:8px}
.blk .row b{font-family:var(--mono);font-weight:500}
.tens{height:6px;background:#0b0f0b;border:1px solid var(--line);margin-top:4px;overflow:hidden}
.tens i{display:block;height:100%;background-image:repeating-linear-gradient(90deg,transparent 0 6px,#0004 6px 7px)}
.causes{margin:6px 0 0;padding:0;list-style:none;font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:1px}
.pos{color:#a8d77c;font-family:var(--mono)} .neg{color:#ef8a82;font-family:var(--mono)}
.kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:11px;background:var(--line);border:1px solid var(--line);font-variant-numeric:tabular-nums}
.kv div{display:flex;flex-direction:column;min-width:0;background:#151b13;padding:6px 8px}
.kv b{font-family:var(--mono);font-weight:500;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kv span{font-family:var(--cond);font-weight:600;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.gauge{position:relative;height:5px;background:linear-gradient(90deg,var(--war),#5b5f58 50%,var(--trade));margin-top:5px}
.gauge i{position:absolute;top:-3px;width:3px;height:11px;background:var(--fg);transform:translateX(-50%);box-shadow:0 0 0 1px var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--cond);font-weight:600;font-size:12px;letter-spacing:.04em;padding:1px 8px;border:1px solid var(--line2);background:#141a12;white-space:nowrap}
.chip.war{border-color:var(--war);color:#f09a90}.chip.ally{border-color:var(--ally);color:#a9c9f3}.chip.pact{border-color:var(--pact);color:#9adccf}.chip.trade{border-color:var(--trade);color:#c7e39a}
.mem{margin:5px 0 0;padding:0;list-style:none;font-size:12px;display:flex;flex-direction:column;gap:2px}
.mem li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:6px}
.eco{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;font-size:12.5px;margin-top:6px;font-variant-numeric:tabular-nums}
.eco b{font-family:var(--mono);font-weight:500;text-align:right}
.eco .tot{border-top:1px solid var(--line2);padding-top:4px;font-weight:600}
#acts{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.ahead{font-family:var(--cond);font-weight:700;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--sig);margin-top:8px;padding-bottom:3px;border-bottom:1px dashed var(--line)}
.act{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;align-items:center}
.act button{text-align:left;background:var(--panel2);border:1px solid var(--line2);padding:6px 10px;font-size:13px;font-weight:500;min-width:0}
.act button:hover:not(:disabled){border-color:var(--sig);background:var(--panel3)}
.act button:disabled{opacity:.45}
.act button.danger{border-color:#6f2a24;background:#26130f;color:#f3b0a8}
.act button.danger:hover:not(:disabled){border-color:var(--war)}
.act button.deal{border-color:#7a6326;background:#241d0f}
.chance{font-family:var(--mono);font-size:10.5px;padding:2px 6px;white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid transparent}
.c0{background:#3a1a17;color:#f19a92}.c1{background:#3a2616;color:#efb27f}.c2{background:#33301a;color:#e6d27a}.c3{background:#1f331b;color:#a9de85}.c4{background:#173326;color:#7fe3b2}.cd{background:var(--panel2);color:var(--muted)}
.why{grid-column:1/-1;font-size:11.5px;color:var(--muted);line-height:1.45;padding-left:2px}
/* mercenaires */
.mbig{display:flex;align-items:baseline;gap:12px;margin:4px 0 10px;padding:10px 12px;background:#141a12;border:1px solid var(--line)}
.mbig b{font-family:var(--display);font-weight:400;font-size:42px;line-height:1;color:var(--sig);font-variant-numeric:tabular-nums}
.mbig span{color:var(--muted);font-size:12.5px}
.arsenal{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0 4px}
.arsenal button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px 10px;text-align:left;background:var(--panel2);border:1px solid var(--line2);border-left:3px solid var(--sig);color:var(--fg);font-family:var(--cond);font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.arsenal button small{font-family:var(--mono);font-weight:400;font-size:11px;color:var(--muted);text-transform:none;letter-spacing:0;line-height:1.35}
.arsenal button:hover:not(:disabled){border-color:var(--sig)}
.arsenal button:disabled{opacity:.5;cursor:default;border-left-color:var(--line2)}
.mops{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
.mops button{display:flex;flex-direction:column;align-items:flex-start;background:var(--panel2);border:1px solid var(--line2);padding:8px 10px;font-family:var(--cond);font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.mops button small{font-family:var(--mono);font-weight:400;letter-spacing:0;text-transform:none;color:var(--muted);font-size:11.5px}
.mops button:hover:not(:disabled){border-color:var(--sig)}
.mops button:disabled{opacity:.45}
.mops .buy{border-color:#43602f;background:#18240f}
#mlog{display:flex;flex-direction:column;gap:3px;font-size:12.5px}
#mlog div{display:grid;grid-template-columns:36px minmax(0,1fr);gap:6px}
#mlog time{font-family:var(--mono);color:var(--muted);font-size:10.5px;padding-top:2px}
/* gisements */
.pgrp{font-family:var(--cond);font-weight:700;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--sig);margin:14px 0 5px;padding-bottom:3px;border-bottom:1px dashed var(--line)}
.prow{display:grid;grid-template-columns:30px minmax(0,1fr);gap:5px 10px;padding:8px 9px;background:var(--panel2);border:1px solid var(--line);margin-bottom:5px}
.prow .pd{width:28px;height:28px;display:grid;place-items:center;clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);color:#141810}
.prow .pd .i{width:16px;height:16px}
.prow .pm b{font-family:var(--cond);font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase}
.prow .pm small{display:block;color:var(--muted);font-size:12px}
.prow .pm .ls{color:#e6d27a}
.prow .pa{grid-column:2;display:flex;flex-wrap:wrap;gap:4px}
.prow .pa button{background:#121710;border:1px solid var(--line2);padding:3px 9px;font-size:12px;font-variant-numeric:tabular-nums}
.prow .pa button:hover:not(:disabled){border-color:var(--sig)}
.prow .pa button:disabled{opacity:.5}
.prow .pa .ok{border-color:#43602f;background:#18240f}
.prow .pa span{font-size:12px;color:var(--muted)}
.bonus{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
/* armée */
.dock{container:dock/inline-size;position:absolute;left:var(--mapL,0px);right:var(--mapR,0px);bottom:12px;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;z-index:3;padding:0 12px}
@container dock (max-width:1380px){.dock .army>.lab,.dock .army kbd{display:none}.dock .army{gap:6px 8px}.dock .army .obtn{padding-left:9px;padding-right:9px}.dock .army input[type=range]{width:80px}}
@container dock (max-width:1120px){.dock .army label[for=ratio]{font-size:0}.dock .army label[for=ratio] *{font-size:12px}}
.dock .army .obtn.cd{opacity:.45;position:relative}
.dock .army .obtn.cd::after{content:attr(data-cd);position:absolute;right:3px;top:-7px;font-family:var(--mono);font-size:10px;background:var(--ink,#0b0f0b);color:var(--sig);padding:0 3px;border:1px solid var(--line2)}
.dock .army{position:relative;pointer-events:auto;max-width:100%;padding:7px 10px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px}
.zoomctl{position:absolute;top:12px;left:calc(var(--mapL,0px) + 12px);z-index:3;display:flex;align-items:center;gap:2px;padding:3px}
.zoomctl button{width:28px;height:26px;background:var(--panel2);border:1px solid var(--line2);font-family:var(--mono);font-size:14px;line-height:1}
.zoomctl button:hover{border-color:var(--sig)}
.peektag{position:absolute;top:12px;left:calc(var(--mapL,0px) + (100% - var(--mapL,0px) - var(--mapR,0px))/2);transform:translateX(-50%);z-index:4;padding:6px 12px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--sig);pointer-events:none}
.zoomctl span{font-family:var(--mono);font-size:11.5px;min-width:46px;text-align:center;color:var(--muted)}
.orow{display:flex;gap:4px;align-items:center}
.obtn{display:inline-flex;align-items:center;gap:7px;background:var(--panel2);border:1px solid var(--line2);padding:6px 11px;font-family:var(--cond);font-weight:700;font-size:14.5px;letter-spacing:.08em;text-transform:uppercase}
.obtn .i{width:17px;height:17px}
.obtn kbd{font-family:var(--mono);font-size:10px;color:var(--muted);border:1px solid var(--line2);padding:0 4px;font-weight:400}
.obtn:hover{border-color:var(--sig)}
.obtn.on{background:var(--sig);color:#17130a;border-color:var(--sig)}
.obtn.on kbd{color:#4a3a12;border-color:#9a7a2a}
.obtn.danger:hover{border-color:var(--war);color:#f3a59f}
.army label{font-family:var(--cond);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:9px;padding-left:12px;border-left:1px solid var(--line)}
.army input[type=range]{width:110px;accent-color:var(--sig)}
.waves{left:12px;top:52px;width:250px;max-height:min(300px,calc(100% - var(--dockH,80px) - 64px));overflow:auto;padding:6px 8px 7px;opacity:.88;font-size:12.5px}
.waves:hover{opacity:1}
.whead{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}
.whead button{background:none;border:1px solid var(--line2);font-family:var(--cond);font-weight:600;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;padding:1px 8px;color:var(--muted)}
.whead button:hover{border-color:var(--war);color:#f3a59f}
.fhead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:3px 0 3px 8px;border-left:4px solid var(--fc)}
.fhead span{font-family:var(--cond);font-weight:700;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--fc)}
.fhead button{background:none;border:1px solid var(--line2);font-family:var(--cond);font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:1px 7px;color:var(--muted)}
.fhead button:hover{border-color:var(--war);color:#f3a59f}
.wrow{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 6px;background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--fc);margin-top:4px;cursor:pointer}
.wrow .sw{background:var(--fc)}
.wrow:hover{border-color:var(--line2)}
.wrow .sw{width:10px;height:10px}
.wm b{font-family:var(--cond);font-weight:700;font-size:13.5px;letter-spacing:.06em;text-transform:uppercase}
.wm small{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.wb{height:3px;background:#0b0f0b;margin-top:3px}.wb i{display:block;height:100%;background:var(--fc)}
.wrow button{display:inline-flex;align-items:center;gap:5px;background:#2a1310;border:1px solid #6f2a24;color:#f3b0a8;font-family:var(--cond);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px}
.wrow button .i{width:14px;height:14px}
.wrow button:hover{border-color:var(--war)}
.stt{display:flex;gap:4px;padding-left:12px;border-left:1px solid var(--line)}
.st{display:flex;flex-direction:column;align-items:center;min-width:40px;background:#141a12;border:1px solid var(--line);padding:2px 6px;line-height:1.1}
.st em{font-style:normal;font-family:var(--cond);font-weight:700;font-size:10px;letter-spacing:.14em;color:var(--muted)}
.st b{font-family:var(--mono);font-weight:500;font-size:14px}
.st b.up{color:#a8d77c}.st b.dn{color:#ef8a82}
#ratioV{font-family:var(--mono);letter-spacing:0}
/* courrier */
.inbox{position:absolute;right:calc(var(--mapR,0px) + 12px);bottom:calc(var(--dockH,70px) + 2px);z-index:3;display:flex;flex-direction:column;gap:6px;width:min(440px,calc(100% - 24px));pointer-events:none}
.inbox .more{pointer-events:none;align-self:flex-end;font-family:var(--mono);font-size:11px;color:var(--muted);background:var(--panel);border:1px solid var(--line2);padding:2px 7px}
.mail{pointer-events:auto;opacity:.86;transition:opacity .15s;animation:mailIn .25s ease-out;background:var(--panel);border:1px solid var(--line2);border-left:3px solid var(--ally);padding:6px 8px;display:flex;flex-direction:column;gap:5px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.mail.ult{border-left-color:var(--war);background:rgba(36,17,14,.95)}
.mail:hover{opacity:1}
@keyframes mailIn{from{transform:translateX(24px);opacity:0}}
.mail .t{display:flex;gap:7px;align-items:flex-start;font-size:12px;line-height:1.3}
.mail .t .sw{width:9px;height:9px;flex:none;margin-top:3px}
.mail .t b{display:inline-block;font-family:var(--display);font-weight:400;letter-spacing:.06em;text-transform:uppercase;font-size:13px;color:#f3a59f;border:1.5px solid #f3a59f;padding:0 5px;margin-right:6px;transform:rotate(-2deg)}
.mail .tm{height:3px;background:#0b0f0b;overflow:hidden}
.mail .tm i{display:block;height:100%;background:var(--ally)}
.mail.ult .tm i{background:var(--war)}
.mail .ops{display:flex;gap:5px;flex-wrap:wrap}
.mail .tm{height:2px!important}
.mail{display:grid!important;grid-template-columns:1fr auto;align-items:center;column-gap:8px;row-gap:5px!important}
.mail{grid-template-columns:1fr!important;padding:8px 10px!important}
.mail .t{grid-column:1;grid-row:1;font-size:13px!important;line-height:1.4!important}
.mail .ops{grid-column:1;grid-row:2;flex-wrap:wrap!important;justify-content:flex-end}
.mail .tm{grid-column:1;grid-row:3}
.mail .ops button{padding:2px 8px;font-family:var(--cond);font-weight:700;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line2);background:var(--panel2)}
.mail .ops .ok{background:#18240f;border-color:#43602f}
.mail .ops .no{background:#2a1310;border-color:#6f2a24}
.mail .ops button:hover:not(:disabled){border-color:var(--sig)}
.mail .ops button:disabled{opacity:.45}
/* chronique */
#chron{display:flex;flex-direction:column;gap:3px;font-size:12.5px}
#chron div{display:grid;grid-template-columns:36px minmax(0,1fr);gap:6px}
#chron time{font-family:var(--mono);color:var(--muted);font-size:10.5px;padding-top:2px}
.k-war{color:#f3a59f}.k-betray{color:#ff8f86;font-weight:600}.k-ally{color:#a9c9f3}.k-coal{color:var(--sig);font-weight:600}.k-peace{color:#c7e39a}.k-nuke{color:#ffd36a;font-weight:600}.k-moral{color:#e6a7ff}.k-info{color:#b2b8a6}.k-ult{color:#ffb38a;font-weight:600}.k-lease{color:#e6d27a}
/* infobulle, menu, toasts */
.tip{position:absolute;pointer-events:none;background:rgba(12,16,11,.96);border:1px solid var(--line2);padding:6px 9px;font-size:12.5px;max-width:280px;z-index:6}
.tip b{font-family:var(--cond);font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase}
.tip small{display:block;color:var(--muted);font-size:12px}
.ctx{position:absolute;z-index:8;min-width:250px;max-width:310px;background:#111610;border:1px solid var(--line2);padding:4px;box-shadow:0 14px 34px rgba(0,0,0,.55)}
.ctx::before{content:"";position:absolute;top:-1px;left:-1px;width:10px;height:10px;border-top:2px solid var(--sig);border-left:2px solid var(--sig)}
.ctx .h{font-family:var(--cond);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--sig);padding:6px 8px 4px}
.ctx button{display:grid;grid-template-columns:22px minmax(0,1fr);column-gap:8px;align-items:center;width:100%;text-align:left;background:none;border:0;padding:5px 8px}
.ctx button .i{grid-row:1/3;width:18px;height:18px;color:var(--sig)}
.ctx button:hover:not(:disabled),.ctx button:focus-visible{background:var(--panel3)}
.ctx button span{font-weight:600;font-size:13.5px}
.ctx button small{font-size:11.5px;color:var(--muted)}
.ctx button.danger span,.ctx button.danger .i{color:#f3a59f}
.ctx button:disabled{opacity:.5}
.ctx button:disabled small{color:#d39a8f}
.toasts{position:absolute;top:52px;left:calc(var(--mapL,0px) + (100% - var(--mapL,0px) - var(--mapR,0px))/2);transform:translateX(-50%);display:flex;flex-direction:column;gap:5px;align-items:center;pointer-events:none;z-index:6;width:440px}
.toast{background:rgba(14,18,13,.96);border:1px solid var(--line2);border-left:4px solid var(--sig);padding:6px 11px;font-family:var(--mono);font-size:12px;animation:tin .25s ease-out}
.toast.bad{border-left-color:var(--war)}.toast.ok{border-left-color:var(--trade)}.toast.mail{border-left-color:var(--ally)}
@keyframes tin{from{transform:translateY(-6px);opacity:.3}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.toast{animation:none}}
/* aide & fin */
.banner{z-index:12!important;left:50%;top:50%;transform:translate(-50%,-50%);width:min(980px,calc(100% - 48px));max-height:calc(100% - 32px);overflow:auto;padding:0 24px 16px;z-index:7;pointer-events:none}
.banner.inter{pointer-events:auto}
.banner h2{margin:0 -20px 12px;padding:14px 20px 11px;font-family:var(--display);font-weight:400;font-size:28px;letter-spacing:.05em;text-transform:uppercase;color:var(--sig);background:linear-gradient(#20281d,#1a2118);border-bottom:1px solid var(--line2);position:relative}
.banner h2::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;background:repeating-linear-gradient(-45deg,var(--sig) 0 7px,transparent 7px 14px);opacity:.55}
.banner ul{margin:0;padding:0;list-style:none;font-size:13.5px;columns:2;column-gap:32px;counter-reset:o}
.banner li{break-inside:avoid;margin-bottom:7px}
.banner li{position:relative;padding-left:30px;counter-increment:o}
.banner li::before{content:counter(o,decimal-leading-zero);position:absolute;left:0;top:2px;font-family:var(--mono);font-size:11px;color:var(--sig)}
.banner kbd{font-family:var(--mono);font-size:11px;border:1px solid var(--line2);padding:0 4px}
.diff{margin:14px 0 0;display:flex;flex-direction:column;gap:7px}
.dopts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.dopts button{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;padding:8px 10px 9px;background:var(--panel2);border:1px solid var(--line2);color:var(--fg);cursor:pointer}
.dopts button b{font-family:var(--display);font-weight:400;font-size:16px;letter-spacing:.06em;text-transform:uppercase}
.dopts button small{font-size:11.5px;line-height:1.3;color:var(--muted)}
.dopts button .pips{display:flex;gap:3px}.dopts button .pips i{width:14px;height:4px;background:var(--line2)}
.dopts button .pips i.on{background:var(--sig)}
.copts{grid-template-columns:repeat(3,1fr)}
.copts button .ci{display:flex;align-items:center;gap:7px}.copts button .ci .i{width:18px;height:18px;color:var(--sig)}
.dopts button:hover{border-color:var(--sig)}
.dopts button.on{border-color:var(--sig);background:rgba(231,177,58,.12);box-shadow:inset 3px 0 0 var(--sig)}
.dopts button.on b{color:var(--sig)}
.banner:not(.brief) .diff{display:none}
.rules{margin-top:14px}.rules summary{cursor:pointer;font-family:var(--cond);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--sig);margin-bottom:10px}
.banner .diff:first-of-type{margin-top:0}
.banner p{margin:12px 0 0;font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.bact{display:flex;justify-content:flex-end;margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.bact .btn{font-size:15px;padding:8px 18px;letter-spacing:.12em}
.banner .bact{position:sticky;bottom:-16px;background:var(--panel,#121810);padding-bottom:14px;z-index:1}
.pick{position:absolute;top:14px;left:calc(var(--mapL,0px) + (100% - var(--mapL,0px) - var(--mapR,0px))/2);transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:10px;background:var(--sig);color:#17130a;font-family:var(--cond);font-weight:700;font-size:15px;letter-spacing:.12em;text-transform:uppercase;padding:9px 18px;box-shadow:0 8px 24px rgba(0,0,0,.45);animation:pulse 1.6s ease-in-out infinite;pointer-events:none}
.pick .i{width:19px;height:19px}
@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(231,177,58,.22),0 8px 24px rgba(0,0,0,.45)}}
@media (prefers-reduced-motion:reduce){.pick{animation:none}}
.sugm{position:absolute;inset:0;z-index:10;display:grid;place-items:center;background:rgba(6,9,6,.6)}
.sugbox{width:min(560px,calc(100% - 32px));max-height:calc(100% - 40px);overflow:auto;padding:14px 16px 16px}
.sughd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sughd h3{margin:0;font-family:var(--display);font-weight:400;font-size:20px;letter-spacing:.05em;text-transform:uppercase;color:var(--sig)}
.sugcats{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.sugcats button{padding:4px 10px;border:1px solid var(--line2);background:var(--panel2);font-family:var(--cond);font-weight:700;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;color:var(--fg)}
.sugcats button.on{border-color:var(--sig);color:var(--sig);background:rgba(231,177,58,.1)}
#sugT{width:100%;min-height:120px;resize:vertical;background:#0b0f0b;color:var(--fg);border:1px solid var(--line2);padding:8px 10px;font:inherit;font-size:13.5px;box-sizing:border-box}
#sugT:focus{outline:none;border-color:var(--sig)}
.sugft{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.suglist{display:flex;flex-direction:column;gap:6px}
.sugit{border:1px solid var(--line2);border-left:3px solid var(--sig);padding:7px 9px;background:var(--panel2);font-size:13px}
.sugit .meta{font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:3px}
.sugit .txt{white-space:pre-wrap;word-break:break-word}
.setup{position:absolute;inset:0;z-index:8;display:grid;place-items:center;padding:18px;background:radial-gradient(ellipse at 50% 40%,rgba(14,20,13,.78),rgba(5,8,5,.94) 70%);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.setup::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(231,228,212,.025) 0 1px,transparent 1px 40px),repeating-linear-gradient(90deg,rgba(231,228,212,.025) 0 1px,transparent 1px 40px)}
.su-wrap{position:relative;width:min(1240px,100%);max-height:100%;display:flex;flex-direction:column;gap:14px}
.su-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:12px;border-bottom:1px solid var(--line2);position:relative}
.su-top::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;background:repeating-linear-gradient(-45deg,var(--sig) 0 7px,transparent 7px 14px);opacity:.45}
.su-brand b{display:block;font-family:var(--display);font-weight:400;font-size:26px;letter-spacing:.06em;text-transform:uppercase;color:var(--sig);line-height:1}
.su-brand small{font-family:var(--cond);font-weight:600;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.su-steps{display:flex;gap:6px;margin:0;padding:0;list-style:none}
.su-steps li{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 10px;border:1px solid var(--line2);font-family:var(--cond);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%)}
.su-steps li i{font-style:normal;font-family:var(--mono);font-size:11px;opacity:.7}
.su-steps li.done{color:var(--fg);border-color:var(--line2)}
.su-steps li.on{color:#17130a;background:var(--sig);border-color:var(--sig)}
.su-head h2{margin:4px 0 2px;font-family:var(--display);font-weight:400;font-size:34px;letter-spacing:.04em;text-transform:uppercase;color:var(--fg)}
.su-head p{margin:0;color:var(--muted);font-size:14px}
.su-body{overflow:auto;padding:4px 2px}
.su-foot{display:flex;align-items:center;gap:10px;padding-top:12px;border-top:1px dashed var(--line)}
.su-sp{flex:1}.su-sel{font-family:var(--mono);font-size:12px;color:var(--muted)}
.su-foot .btn{font-size:15px;padding:9px 20px;letter-spacing:.12em}
.su-foot .btn.ghost{background:none;border-color:var(--line2);color:var(--muted)}
.dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
@media (max-width:1200px){.cgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:760px){.cgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.scard{position:relative;display:flex;flex-direction:column;text-align:left;cursor:pointer;color:var(--fg);background:linear-gradient(180deg,rgba(30,38,28,.92),rgba(16,21,15,.96));border:1px solid var(--line2);padding:18px 16px 16px;transition:transform .15s,border-color .15s,box-shadow .15s;animation:suIn .35s ease-out backwards}
.scard:hover{transform:translateY(-3px);border-color:var(--acc,var(--sig))}
.scard.on{border-color:var(--acc,var(--sig));box-shadow:0 0 0 1px var(--acc,var(--sig)),0 14px 40px rgba(0,0,0,.45),inset 0 0 60px color-mix(in srgb,var(--acc,var(--sig)) 14%,transparent)}
.scard.on::after{content:"Choisi";position:absolute;top:10px;right:-1px;padding:2px 10px;font-family:var(--cond);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#17130a;background:var(--acc,var(--sig))}
.scard::before{content:"";position:absolute;left:0;top:0;width:18px;height:18px;border-left:2px solid var(--acc,var(--sig));border-top:2px solid var(--acc,var(--sig));opacity:.8}
@keyframes suIn{from{opacity:0;transform:translateY(14px)}}
@media (prefers-reduced-motion:reduce){.scard{animation:none;transition:none}}
.ins{height:62px;display:flex;align-items:center;margin-bottom:10px;color:var(--acc,var(--sig))}
.ins svg{height:100%;width:auto;overflow:visible}
.scard h3{margin:0;font-family:var(--display);font-weight:400;font-size:24px;letter-spacing:.05em;text-transform:uppercase}
.scard .tag{font-family:var(--cond);font-weight:700;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--acc,var(--sig));margin:2px 0 10px}
.scard .desc{font-size:13px;line-height:1.45;color:#c9ccbd;margin:0 0 12px}
.meters{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center;font-family:var(--cond);font-weight:600;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.meters .m{display:flex;gap:3px}.meters .m i{height:6px;flex:1;background:#232b20}.meters .m i.on{background:var(--acc,var(--sig))}
.dinfo{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);display:grid;grid-template-columns:1fr auto;gap:4px 8px;font-size:12.5px}
.dinfo span{color:var(--muted)}.dinfo b{font-family:var(--mono);font-weight:500;text-align:right}
.emb{width:84px;height:84px;margin:4px auto 14px;display:grid;place-items:center;position:relative}
.emb svg.hexbg{position:absolute;inset:0;width:100%;height:100%}
.emb>.i{position:relative;width:38px;height:38px;color:var(--acc)}
.cgrid .scard{align-items:center;text-align:center;padding:12px 10px 10px}
.cgrid .scard h3{font-size:18px}.cgrid .scard .emb{transform:scale(.72);margin:-10px 0 -12px}.cgrid .scard .tag{margin-bottom:6px}
.motto{font-family:'Barlow',sans-serif;font-style:italic;font-size:13px;line-height:1.4;color:#b9bcae;margin:0 0 14px;min-height:36px}
.cgoal{width:100%;margin:0 0 10px;padding:7px 8px;border:1px dashed color-mix(in srgb,var(--acc) 55%,transparent);font-size:12px;line-height:1.35;color:var(--fg)}
.cgoal span{display:block;font-family:var(--cond);font-weight:700;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc);margin-bottom:2px}
.motto::before{content:"« "}.motto::after{content:" »"}
.perks{list-style:none;margin:auto 0 0;padding:12px 0 0;border-top:1px dashed var(--line);width:100%;text-align:left;display:flex;flex-direction:column;gap:5px;font-size:12.5px}
.perks li{display:flex;gap:7px;align-items:baseline}
.perks li b{font-family:var(--mono);width:12px;flex:none;text-align:center}
.perks li.p b{color:#a9dc84}.perks li.m b{color:#ff9a90}.perks li.m{color:#d8b4ae}
.setup .su-body:has(.cgrid){overflow-x:auto}
.end{position:absolute;inset:0;display:grid;place-items:center;background:rgba(6,9,6,.8);z-index:9}
.end>div{position:relative;background:#121710;border:1px solid var(--sig);padding:24px 30px;text-align:center}
.end h2{margin:0 0 8px;font-family:var(--display);font-weight:400;font-size:52px;letter-spacing:.06em;text-transform:uppercase;color:var(--sig)}
.end p{font-family:var(--mono);font-size:13px}

/* ---------- accueil, salon (multijoueur) ---------- */
.gate{position:fixed;z-index:20}
/* fiches de classe */
.cs{width:100%;text-align:left;display:grid;grid-template-columns:auto 1fr;column-gap:8px;row-gap:3px;font-size:12px;line-height:1.3}
.cs .csl{font-family:var(--cond);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc,var(--sig));padding-top:2px}
.cs ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}
.cs li.p{color:#b7e39a}.cs li.p::before{content:"+ ";color:#a9dc84;font-family:var(--mono)}
.cs li.m{color:#efb0a8}.cs li.m::before{content:"− ";color:#ff9a90;font-family:var(--mono)}
.cs li.v{color:var(--fg)}.cs li.z{color:var(--muted)}
.lcls{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))!important}
.lcls button .cs{font-size:11.5px}.lcls button.on .cs li{color:#2a220f}.lcls button.on .cs li::before,.lcls button.on .cs .csl{color:#2a220f}
.acct{margin-top:6px;padding-top:12px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:8px}
.acct .who{display:flex;align-items:center;gap:8px;font-family:var(--cond);font-weight:700;font-size:16px;letter-spacing:.04em}
.acct .who em{font-style:normal;color:var(--muted);font-weight:600;font-size:13px}
.acct .ops{display:flex;flex-wrap:wrap;gap:6px}.acct .ops .btn{font-size:12px;padding:4px 8px}
.acct a.btn{color:var(--fg);text-decoration:none}
.btn.discord{background:#5865f2;border-color:#5865f2;color:#fff;justify-content:center;font-size:15px;padding:9px 14px;text-decoration:none}
.btn.discord:hover{background:#6a76f5;color:#fff}
.gfoot{display:flex;gap:18px;justify-content:center;font-family:var(--cond);font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.gfoot a{color:var(--muted);text-decoration:none}.gfoot a:hover{color:var(--sig)}
.aisel{display:flex;align-items:center;gap:6px;margin-top:14px;flex-wrap:wrap}.aisel span{font-family:var(--cond);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-right:8px}
.aisel button{min-width:38px;background:var(--panel2);border:1px solid var(--line2);color:var(--fg);font-family:var(--mono);font-size:14px;padding:6px 8px;cursor:pointer}.aisel button.on{background:var(--sig);border-color:var(--sig);color:#17130a}
h3.dim{opacity:.45}
.mgrid{grid-template-columns:repeat(4,minmax(0,1fr))}.mgrid .scard{min-height:120px}
@media (max-width:860px){.mgrid{grid-template-columns:1fr 1fr}}
.gw{width:min(1100px,100%)}
.gcols{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:14px}
.lcols{display:grid;grid-template-columns:1fr 1.6fr;gap:14px;min-height:0}
@media (max-width:860px){.gcols,.lcols{grid-template-columns:1fr}}
.gcard{background:linear-gradient(180deg,rgba(30,38,28,.92),rgba(16,21,15,.96));border:1px solid var(--line2);padding:16px 18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.gcard h3{margin:0;font-family:var(--display);font-weight:400;font-size:20px;letter-spacing:.05em;text-transform:uppercase}
.gin{background:#0f140e;border:1px solid var(--line2);color:var(--fg);font-family:var(--cond);font-weight:600;font-size:18px;letter-spacing:.04em;padding:9px 12px;width:100%;box-sizing:border-box;border-radius:2px}
.gin:focus{outline:none;border-color:var(--sig)}
.gin.code{text-transform:uppercase;font-family:var(--mono);letter-spacing:.3em;width:9em;flex:none}
.grow{display:flex;gap:8px;align-items:stretch}
.btn.big{font-size:16px;padding:10px 18px;letter-spacing:.12em;justify-content:center}
.gerr{min-height:1.2em;margin:0;color:#ef8a82;font-family:var(--mono);font-size:13px}
.lcode{display:flex;align-items:center;gap:10px;font-family:var(--cond);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.lcode b{font-family:var(--mono);font-size:26px;letter-spacing:.3em;color:var(--sig)}
.lp{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);background:#121710;font-family:var(--cond);font-weight:600;font-size:16px}
.lp+.lp{margin-top:6px}
.lp .sw{width:12px;height:12px;flex:none}
.lp .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lp em{font-style:normal;color:var(--muted);font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.lp.off{opacity:.5}.lp.me{border-color:var(--sig)}
.lp .host{color:var(--sig)}
.ldiff{display:flex;flex-wrap:wrap;gap:6px}
.ldiff button,.lcls button{background:var(--panel2);border:1px solid var(--line2);color:var(--fg);font-family:var(--cond);font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;padding:7px 12px;cursor:pointer}
.ldiff button.on,.lcls button.on{background:var(--sig);border-color:var(--sig);color:#17130a}
.ldiff button:disabled{cursor:default;opacity:.75}
.lcls{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.lcls button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;text-transform:none;letter-spacing:.02em;padding:10px 12px;border-left:3px solid var(--acc,var(--sig))}
.lcls button b{font-family:var(--display);font-weight:400;font-size:18px;letter-spacing:.05em;text-transform:uppercase}
.lcls button small{font-family:var(--body,inherit);font-weight:500;font-size:12px;color:#c9ccbd;line-height:1.35}
.lcls button.on small{color:#2a220f}
.lcls button .g{font-size:11.5px;color:var(--muted)}
.netbar{position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:7;background:#2a1310;border:1px solid #6f2a24;color:#f3b0a8;font-family:var(--cond);font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:6px 14px}
/* salon : le pied (Lancer la partie) reste toujours visible, les listes défilent */
#lobby .su-wrap{height:100%;max-height:100%}
#lobby .lcols{flex:1;min-height:0}
#lobby .lcols>.gcard{overflow-y:auto;min-height:0}
.setup .su-wrap{min-height:0}.setup .su-body{min-height:0}
