/* ── Design tokens ── */
:root{
  --bg:#0B111C; --bg-2:#0F172A; --card:#192134; --card-2:#1E293B; --card-3:#243249;
  --border:rgba(255,255,255,.08); --border-strong:rgba(255,255,255,.18);
  --text:#F8FAFC; --muted:#94A3B8; --muted-2:#64748B;
  --gold:#D97706; --gold-lt:#F0B34A; --sand:#E8D5A8; --clay:#B45309;
  --danger:#DC2626; --success:#22C55E; --info:#3B82F6;
  --r-sm:8px; --r:14px; --r-lg:20px;
  --shadow:0 6px 28px rgba(0,0,0,.45); --shadow-lg:0 16px 54px rgba(0,0,0,.55);
  --font:'Cairo','Inter',ui-sans-serif,system-ui,sans-serif;
  --icon:20px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--bg);color:var(--text);font-family:var(--font);overflow:hidden;-webkit-font-smoothing:antialiased}
button,input,select{font-family:inherit;color:inherit}
.hidden{display:none !important}
.veil{position:fixed;inset:-40% -20% auto -20%;height:70vh;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse at 50% 0%,rgba(217,119,6,.20),transparent 62%)}
svg.lucide{width:var(--icon);height:var(--icon);stroke-width:1.75;flex:none}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.35rem;
  border:none;border-radius:999px;font-size:.92rem;font-weight:700;cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,opacity .2s ease,background .2s ease}
.btn:hover:not(:disabled){transform:translateY(-2px)}
.btn:active:not(:disabled){transform:translateY(0) scale(.99)}
.btn:disabled{opacity:.42;cursor:not-allowed}
.btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold-lt));color:#1a1206;
  box-shadow:0 8px 26px rgba(217,119,6,.32)}
.btn-primary:hover:not(:disabled){box-shadow:0 12px 34px rgba(217,119,6,.46)}
.btn-ghost{background:transparent;border:1.5px solid var(--border-strong);color:var(--text)}
.btn-ghost:hover:not(:disabled){background:rgba(255,255,255,.06)}
.btn-danger{background:var(--danger);color:#fff}
.btn-sm{padding:.45rem .9rem;font-size:.83rem}
.btn-block{width:100%}

/* ── Pills / tags ── */
.pill{padding:.45rem 1rem;border-radius:999px;background:rgba(255,255,255,.05);
  border:1px solid var(--border);font-size:.84rem;font-weight:600;cursor:pointer;
  color:var(--muted);transition:all .18s ease}
.pill:hover{color:var(--text);background:rgba(255,255,255,.09)}
.pill.active{background:linear-gradient(135deg,var(--gold),var(--gold-lt));color:#1a1206;border-color:transparent}
.tag{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;padding:.18rem .55rem;border-radius:999px}
.tag.gold{background:rgba(217,119,6,.16);color:var(--gold-lt)}
.tag.green{background:rgba(34,197,94,.14);color:var(--success)}
.tag.red{background:rgba(220,38,38,.16);color:#FCA5A5}
.tag.blue{background:rgba(59,130,246,.16);color:#93C5FD}

/* ── Toast ── */
.toast-wrap{position:fixed;bottom:1.2rem;inset-inline-start:1.2rem;z-index:200;display:flex;flex-direction:column;gap:.5rem}
.toast{display:flex;align-items:center;gap:.55rem;padding:.7rem 1.1rem;border-radius:var(--r);
  font-size:.88rem;font-weight:600;box-shadow:var(--shadow-lg);animation:fadeUp .28s ease;
  background:var(--card-2);border:1px solid var(--border-strong)}
.toast.success{border-color:rgba(34,197,94,.45);color:#BBF7D0}
.toast.error{border-color:rgba(220,38,38,.5);color:#FECACA}
.toast.war{border-color:rgba(217,119,6,.5);color:#FDE68A}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ── Start screen ── */
.start{position:relative;z-index:1;height:100dvh;overflow:auto;display:flex;align-items:center;justify-content:center;padding:2.5rem 1.2rem}
.start-inner{width:min(980px,100%);text-align:center;animation:fadeUp .5s ease}
.start-badge{display:inline-flex;align-items:center;gap:.45rem;font-size:.72rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-lt);border:1px solid rgba(217,119,6,.35);padding:.35rem .9rem;
  border-radius:999px;background:rgba(217,119,6,.08)}
.start-title{font-size:clamp(2.6rem,8vw,4.4rem);font-weight:900;letter-spacing:-.02em;line-height:1;margin:1rem 0 .6rem}
.start-title .dot{color:var(--gold)}
.start-sub{color:var(--muted);max-width:660px;margin:0 auto 2rem;font-size:.98rem;line-height:1.95}
.start-sub b{color:var(--sand)}
.start-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:1.4rem;text-align:start;margin-bottom:1.6rem}
.start-block{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.15rem}
.start-block>label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.7rem}
.faction-picker{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.faction-opt{display:flex;align-items:center;gap:.55rem;padding:.5rem .6rem;border-radius:var(--r);
  border:1px solid var(--border);background:rgba(255,255,255,.03);cursor:pointer;text-align:start;transition:all .18s ease}
.faction-opt:hover{background:rgba(255,255,255,.08);transform:translateY(-2px)}
.faction-opt.active{border-color:var(--gold);box-shadow:0 0 0 2px rgba(217,119,6,.25)}
.swatch{width:22px;height:22px;border-radius:6px;flex:none;border:1px solid rgba(255,255,255,.28)}
.faction-opt b{font-size:.84rem;display:block;font-weight:700}
.faction-opt small{font-size:.68rem;color:var(--muted)}
.diff-picker{display:flex;gap:.4rem;flex-wrap:wrap}
.start-actions{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.5rem}
.start-notes{list-style:none;display:grid;gap:.5rem;max-width:680px;margin:0 auto;text-align:start}
.start-notes li{display:flex;align-items:flex-start;gap:.55rem;font-size:.84rem;color:var(--muted);line-height:1.7}
.start-notes svg{color:var(--gold-lt);margin-top:.2rem;width:17px;height:17px}

/* ── Top bar + resources ── */
.game{position:relative;z-index:1;height:100dvh;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:1rem;padding:.55rem 1rem;border-bottom:1px solid var(--border);
  background:rgba(11,17,28,.86);backdrop-filter:blur(14px);flex:none;flex-wrap:wrap}
.crest{display:flex;align-items:center;gap:.55rem;padding-inline-end:.9rem;border-inline-end:1px solid var(--border)}
.crest .flag{width:30px;height:30px;border-radius:8px;box-shadow:0 0 0 1px rgba(255,255,255,.2) inset}
.crest b{font-size:.95rem;font-weight:900}
.crest small{display:block;font-size:.68rem;color:var(--muted)}
.res{display:flex;gap:.45rem;flex:1;flex-wrap:wrap}
.res-item{display:flex;align-items:center;gap:.4rem;padding:.32rem .7rem;border-radius:999px;
  background:rgba(255,255,255,.05);border:1px solid var(--border);font-size:.82rem;font-weight:700}
.res-item svg{width:15px;height:15px;color:var(--gold-lt)}
.res-item.neg{color:#FCA5A5;border-color:rgba(220,38,38,.4)}
.res-item em{font-style:normal;color:var(--muted);font-weight:600;font-size:.74rem}
.turn-box{display:flex;align-items:center;gap:.6rem;padding-inline-start:.9rem;border-inline-start:1px solid var(--border)}
#turn-label{font-size:.85rem;font-weight:700;color:var(--sand)}

/* ── Stage / map ── */
.stage{flex:1;display:grid;grid-template-columns:1fr 340px;min-height:0}
.map-wrap{position:relative;min-width:0;background:#060a12;overflow:hidden}
#map{display:block;width:100%;height:100%;cursor:crosshair}
.map-hud{position:absolute;top:.7rem;inset-inline-end:.7rem;display:flex;flex-direction:column;gap:.4rem}
.icon-btn{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;cursor:pointer;
  background:rgba(15,23,42,.82);border:1px solid var(--border-strong);backdrop-filter:blur(10px);
  transition:transform .15s ease,background .2s ease}
.icon-btn:hover{background:rgba(30,41,59,.95);transform:translateY(-2px)}
.icon-btn svg{width:18px;height:18px}
.hover-tip{position:absolute;z-index:5;pointer-events:none;padding:.5rem .7rem;border-radius:10px;font-size:.78rem;
  background:rgba(11,17,28,.94);border:1px solid var(--border-strong);box-shadow:var(--shadow);max-width:240px}
.hover-tip b{display:block;font-size:.85rem;margin-bottom:.15rem}
.hover-tip span{color:var(--muted)}
.legend{position:absolute;bottom:.7rem;inset-inline-end:.7rem;z-index:6;width:250px;padding:.85rem 1rem;
  border-radius:var(--r);background:rgba(11,17,28,.94);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg)}
.legend h4{font-size:.8rem;margin-bottom:.5rem;color:var(--sand)}
.legend-row{display:flex;align-items:center;gap:.5rem;font-size:.76rem;color:var(--muted);margin-bottom:.3rem}
.legend-sw{width:16px;height:16px;border-radius:4px;flex:none;border:1px solid rgba(255,255,255,.2)}

/* ── Side panel ── */
.side{border-inline-start:1px solid var(--border);background:var(--bg-2);overflow-y:auto;padding:.9rem;
  display:flex;flex-direction:column;gap:.75rem;min-width:0}
.side-title{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.prov-card{border:1px solid var(--border);border-radius:var(--r);background:var(--card);padding:.85rem;animation:fadeUp .3s ease}
.prov-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.45rem}
.prov-head h3{font-size:1rem;font-weight:800}
.prov-meta{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:.65rem}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-bottom:.7rem}
.stat{background:rgba(255,255,255,.045);border:1px solid var(--border);border-radius:10px;padding:.4rem .5rem}
.stat span{display:block;font-size:.64rem;color:var(--muted);font-weight:700;letter-spacing:.06em}
.stat b{font-size:.92rem}
.unit-rows{display:grid;gap:.32rem;margin-bottom:.75rem}
.unit-row{display:flex;align-items:center;gap:.5rem;font-size:.78rem}
.unit-row .nm{width:56px;color:var(--muted);font-weight:700}
.unit-row .bar{flex:1;height:6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.unit-row .bar i{display:block;height:100%;border-radius:99px;transition:width .3s ease}
.unit-row .val{width:62px;text-align:end;font-weight:700;font-variant-numeric:tabular-nums}
.side-actions{display:grid;gap:.4rem}
.empty-note{color:var(--muted);font-size:.84rem;line-height:1.95;text-align:center;padding:1.8rem .9rem;
  border:1px dashed var(--border-strong);border-radius:var(--r)}
.faction-list{display:grid;gap:.4rem}
.faction-row{display:flex;align-items:center;gap:.5rem;font-size:.78rem;padding:.35rem .5rem;border-radius:10px;background:rgba(255,255,255,.035)}
.faction-row .flag{width:14px;height:14px;border-radius:4px;flex:none}
.faction-row b{flex:1;font-weight:700}
.faction-row .num{color:var(--muted);font-variant-numeric:tabular-nums}
.faction-row.dead{opacity:.4;text-decoration:line-through}

/* ── Log bar ── */
.logbar{flex:none;height:78px;border-top:1px solid var(--border);background:rgba(11,17,28,.92);
  padding:.5rem .8rem;display:flex;gap:.55rem;overflow-x:auto;align-items:stretch}
.log-item{flex:none;max-width:290px;padding:.4rem .7rem;border-radius:10px;border:1px solid var(--border);
  background:var(--card);font-size:.75rem;color:var(--muted);line-height:1.65;overflow:hidden}
.log-item b{color:var(--text)}
.log-item.war{border-color:rgba(220,38,38,.4);background:rgba(69,10,10,.35)}
.log-item.win{border-color:rgba(34,197,94,.4);background:rgba(5,46,22,.3)}
.log-item.econ{border-color:rgba(217,119,6,.4);background:rgba(69,39,5,.28)}

/* ── Battle screen ── */
.battle{position:fixed;inset:0;z-index:120;background:#05070c;overflow:hidden}
#battle-canvas{width:100%;height:100%;display:block}
.battle-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;
  padding:1rem 1.4rem;gap:1rem;pointer-events:none;
  background:linear-gradient(180deg,rgba(5,7,12,.85),transparent)}
.bf{display:flex;flex-direction:column;gap:.2rem;min-width:130px}
.bf b{font-size:1.5rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}
.bf span{font-size:.82rem;color:var(--muted);font-weight:700}
.bf-d{align-items:flex-end;text-align:end}
.bf-a b{color:#FCA5A5}
.bf-d b{color:#93C5FD}
.battle-vs{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-lt);
  border:1px solid rgba(217,119,6,.4);border-radius:999px;padding:.3rem .8rem;background:rgba(11,17,28,.6)}
.battle-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:1rem 1.4rem;background:linear-gradient(0deg,rgba(5,7,12,.9),transparent)}
.ticker{font-size:.92rem;font-weight:700;color:var(--sand);text-shadow:0 2px 12px #000;min-height:1.4em}
.battle-result{position:absolute;inset:0;display:grid;place-items:center;background:rgba(5,7,12,.72);backdrop-filter:blur(4px);z-index:3}
.result-card{width:min(520px,92vw);padding:1.6rem;border-radius:var(--r-lg);border:1px solid var(--border-strong);
  background:var(--card);box-shadow:var(--shadow-lg);text-align:center;animation:fadeUp .35s ease}
.result-card h2{font-size:1.6rem;font-weight:900;margin-bottom:.3rem}
.result-card .rl{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:1rem 0}
.result-actions{display:flex;gap:.6rem;justify-content:center;margin-top:1rem}

/* ── Modal ── */
.overlay{position:fixed;inset:0;background:rgba(3,6,12,.68);backdrop-filter:blur(5px);z-index:150;
  display:grid;place-items:center;padding:1rem;animation:fadeIn .18s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{width:min(560px,94vw);max-height:88vh;overflow-y:auto;background:var(--card);border:1px solid var(--border-strong);
  border-radius:var(--r-lg);padding:1.4rem;box-shadow:var(--shadow-lg);animation:fadeUp .25s ease}
.modal h2{font-size:1.25rem;font-weight:900;margin-bottom:.2rem}
.modal .sub{color:var(--muted);font-size:.84rem;margin-bottom:1.1rem;line-height:1.8}
.modal-close{position:absolute;top:1rem;inset-inline-end:1rem}
.field{margin-bottom:.85rem}
.field>label{display:block;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.45rem}
.recruit-row{display:grid;grid-template-columns:1fr auto;gap:.6rem;align-items:center;padding:.55rem;
  border:1px solid var(--border);border-radius:var(--r);margin-bottom:.45rem;background:rgba(255,255,255,.03)}
.recruit-row .u-name{display:flex;align-items:center;gap:.5rem;font-weight:800;font-size:.88rem}
.recruit-row .u-stats{font-size:.72rem;color:var(--muted);margin-top:.15rem}
.recruit-row .u-ctrl{display:flex;align-items:center;gap:.35rem}
.recruit-row input[type=range]{width:130px;accent-color:var(--gold)}
.recruit-row .u-val{width:66px;text-align:end;font-weight:800;font-variant-numeric:tabular-nums;font-size:.86rem}
.modal-actions{display:flex;gap:.6rem;margin-top:1.1rem}
.modal-actions .btn{flex:1}
.diplo-row{display:flex;align-items:center;gap:.6rem;padding:.6rem;border:1px solid var(--border);border-radius:var(--r);margin-bottom:.5rem;background:rgba(255,255,255,.03)}
.diplo-row .flag{width:20px;height:20px;border-radius:6px;flex:none}
.diplo-row b{font-size:.88rem}
.diplo-row .st{font-size:.72rem;color:var(--muted)}
.diplo-row .grow{flex:1}
.hint{font-size:.76rem;color:var(--muted);line-height:1.8;border-inline-start:2px solid var(--gold);padding-inline-start:.6rem;margin-top:.8rem}

/* ── Responsive ── */
@media (max-width:1024px){
  .stage{grid-template-columns:1fr}
  .side{position:absolute;inset-inline-end:0;top:0;bottom:0;width:min(340px,88vw);z-index:9;
    box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform .28s ease}
  .side.open{transform:none}
  .start-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .topbar{gap:.5rem;padding:.5rem .6rem}
  .crest small{display:none}
  .res-item{padding:.25rem .5rem;font-size:.75rem}
  .logbar{height:64px}
  .faction-picker{grid-template-columns:1fr}
  .start-title{font-size:clamp(2.2rem,12vw,3rem)}
  .bf b{font-size:1.1rem}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;transition-duration:.001ms !important}
}

/* ── إضافات: رايات الممالك، ملخّص البداية، جيوش العالم ── */
.swatch{display:grid;place-items:center;font-size:13px;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.crest .flag,.faction-row .flag,.diplo-row .flag{display:grid;place-items:center;font-size:15px;line-height:1}
.faction-row .flag{font-size:10px}
.faction-opt .fo-txt{display:flex;flex-direction:column;min-width:0}
.faction-opt small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#faction-picker{max-height:300px;overflow-y:auto;padding-inline-end:4px}
.fo-note{grid-column:1/-1;display:flex;align-items:center;gap:.4rem;font-size:.74rem;color:var(--gold-lt);
  padding:.3rem .1rem;font-weight:700}
.start-brief{max-width:820px;margin:0 auto 1.4rem;padding:1rem 1.15rem;border-radius:var(--r-lg);
  border:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));
  text-align:start;animation:fadeUp .3s ease}
.sb-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}
.sb-head b{font-size:1rem}
.sb-trait{font-size:.84rem;color:var(--muted);line-height:1.9;margin-bottom:.7rem}
.sb-units{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin-bottom:.7rem}
.sb-u{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:700;color:var(--text)}
.sb-dot{width:10px;height:10px;border-radius:3px;flex:none;display:inline-block}
.sb-dim{display:flex;align-items:center;gap:.4rem;font-size:.76rem;color:var(--muted)}

/* ── عناصر اللوحة الجانبية والنوافذ ── */
.log-turn{color:var(--gold-lt);font-weight:800;margin-inline-end:.25rem;font-size:.68rem}
.mini{font-size:.76rem;color:var(--muted);line-height:1.85;margin:.2rem 0 .5rem}
.mini b{color:var(--text)}
.stat b .up,.up{font-style:normal;font-size:.7rem;color:var(--muted);font-weight:700;margin-inline-start:.25rem}
.war-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.74rem;font-weight:700;
  margin-inline-end:.4rem;padding:.1rem .45rem;border-radius:999px;background:rgba(220,38,38,.16);color:#FCA5A5}
.war-chip i{width:8px;height:8px;border-radius:2px}
.tip-u{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;color:var(--muted);margin-inline-end:.4rem}
.tip-u i{width:8px;height:8px;border-radius:2px;display:inline-block}
.tip-grid,.tip-army{display:block;font-size:.72rem;color:var(--muted);margin-top:.15rem}
.tip-army{color:#E8D5A8}
.tip-unrest{display:block;font-size:.7rem;color:#FCA5A5;margin-top:.15rem}
.rec-total{display:flex;justify-content:space-between;gap:1rem;font-size:.84rem;font-weight:700;
  padding:.6rem .7rem;border-radius:var(--r);background:rgba(255,255,255,.04);border:1px solid var(--border)}
.rec-total b{color:var(--gold-lt)}
.as-read{display:flex;justify-content:space-between;gap:.8rem;font-size:.8rem;color:var(--muted);margin-top:.4rem}
.as-read b{color:var(--text);font-variant-numeric:tabular-nums}
.odds-bar{height:10px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:.2rem}
.odds-bar i{display:block;height:100%;border-radius:99px;transition:width .25s ease}
.help-list{list-style:none;display:grid;gap:.6rem;margin-bottom:.6rem}
.help-list li{display:flex;align-items:flex-start;gap:.5rem;font-size:.82rem;color:var(--muted);line-height:1.85}
.help-list li svg{color:var(--gold-lt);margin-top:.25rem;flex:none}
.help-list b{color:var(--text)}
.diplo-list{max-height:52vh;overflow-y:auto;display:grid;gap:.45rem}

/* ── جيوش العالم ── */
.roster-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;max-height:58vh;overflow-y:auto;padding-inline-end:4px}
.roster-card{border:1px solid var(--border);border-radius:var(--r);background:rgba(255,255,255,.035);padding:.7rem}
.roster-card.mine{border-color:rgba(217,119,6,.55);box-shadow:0 0 0 1px rgba(217,119,6,.25) inset}
.roster-card.dead{opacity:.45}
.rc-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.45rem}
.rc-head b{font-size:.86rem;display:block}
.rc-head small{display:block;font-size:.68rem;color:var(--muted)}
.rc-head .swatch{margin-inline-start:0}
.rc-head .tag{margin-inline-start:auto}
.rc-trait{font-size:.74rem;color:var(--muted);line-height:1.8;margin-bottom:.4rem}
.rc-units{display:flex;flex-wrap:wrap;gap:.25rem .6rem}
.rc-units .sb-u{font-size:.72rem;font-weight:600;color:var(--muted)}
.rc-live{margin-top:.45rem;font-size:.72rem;color:var(--gold-lt);font-weight:700}
.battle-result .sub{color:var(--muted);font-size:.84rem;line-height:1.8;margin-bottom:.4rem}
.battle-result .mini{color:var(--sand);font-size:.78rem;margin-top:.6rem}
@media (max-width:760px){
  .roster-grid{grid-template-columns:1fr}
  #faction-picker{max-height:240px}
  .side-title{margin-top:.3rem}
}
.side .side-title{display:flex;align-items:center;gap:.4rem}
