:root{--bg:#14110d;--card:#1f1a14;--card2:#2a231b;--line:#3b3127;--fg:#ece3d2;--mut:#a39479;--acc:#e0912f;--acc2:#f2b45c;--red:#e05a45;--ok:#79a861;--blue:#6fa4d8;--pur:#a77fd6;
  --tabh:64px;font-size:16px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:auto}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;padding-bottom:calc(var(--tabh) + 70px + env(safe-area-inset-bottom))}
body.noscroll{overflow:hidden}
main{max-width:900px;margin:auto;padding:12px 16px}
h1{font:800 28px/1.1 Impact,"Arial Narrow",sans-serif;letter-spacing:.04em;margin:6px 0;color:var(--acc);text-transform:uppercase;word-break:break-word}
h2{font-size:15px;margin:14px 0 8px;text-transform:uppercase;letter-spacing:.06em;color:var(--acc2)}
h4{margin:10px 0 4px}
.hero h1{font-size:36px}
.sub,.muted{color:var(--mut)}.small{font-size:14px}.red{color:var(--red)}.accent{color:var(--acc2)}.big{font-size:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:10px 0}
.card h2:first-child{margin-top:0}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.row.between{justify-content:space-between}.row.end{justify-content:flex-end}
input,select,textarea{background:#110e0b;color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit;width:100%}
textarea{min-height:60px;margin-top:8px}
button,.btn{background:var(--card2);color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:9px 13px;font:inherit;font-size:15px;cursor:pointer;line-height:1.2}
button:active{transform:translateY(1px)}
button:disabled{opacity:.38;cursor:not-allowed}
.primary{background:var(--acc);color:#1a1108;border-color:var(--acc);font-weight:700}
.danger{border-color:var(--red);color:var(--red);background:transparent}
.wide{width:100%;margin:6px 0;text-align:left}
.icon{padding:6px 10px;font-size:18px;background:transparent}
.tag{display:inline-block;font-size:12px;background:#352a1e;border-radius:5px;padding:2px 7px;margin:2px 4px 2px 0;color:var(--acc2);vertical-align:middle;white-space:nowrap}
.tag.rar{color:var(--blue)}.tag.prim{color:#1a1108;background:var(--acc2)}
.house-goliath{color:#e57a4a!important}.house-escher{color:#c98be0!important}
.house-cawdor{color:#d9b44a!important}.house-van_saar{color:#5fc4d0!important}.house-orlock{color:#c9a27a!important}.house-delaque{color:#8fa3c4!important}
.house-helot{color:#e0574a!important}.house-corpse{color:#b8443c!important}.house-genestealer{color:#a68ae8!important}.house-nomads{color:#cfa067!important}
.house-squats{color:#e0b85a!important}.house-enforcers{color:#6f9fe0!important}.house-venators{color:#9fbf8a!important}.house-ogryns{color:#b0a089!important}
.house-orks{color:#7fbf4f!important}.house-pit_slaves{color:#d98a5a!important}
.role-leader{background:#4a3214;color:#ffcc7a}.role-champion{background:#3b2a3c;color:#e3b4f0}
.st-dead,.st-captured,.st-gone{background:#3a1a16!important;color:var(--red)!important}.st-dying{background:#4a1d14!important;color:#ff8d73!important}.st-recovery{background:#1c2f3e!important;color:var(--blue)!important}
.cost{margin-left:auto;font-weight:700;color:var(--acc2);white-space:nowrap}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}
.kpis div{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 8px;text-align:center}
.kpis small{display:block;color:var(--mut);font-size:11px;text-transform:uppercase}.kpis b{font-size:20px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;align-items:center}
.chips.scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chips.scroll::-webkit-scrollbar{display:none}
.chips.sticky{position:sticky;top:0;background:var(--bg);z-index:5;padding:8px 0;margin:0}
.chip{border-radius:999px;padding:6px 12px;font-size:14px;background:var(--card2);white-space:nowrap}
.chip.on{background:var(--acc);color:#1a1108;border-color:var(--acc);font-weight:700}
.chip.info{border-color:#5a4a36;color:var(--acc2);background:transparent}
.chip.tr{font-size:13px;padding:3px 9px;border-color:#4b5a6b;color:#a9c8e6;background:#1a222b}
.chip.plain{border:1px dashed var(--line);cursor:default;color:var(--mut)}
.chip.dim{opacity:.45}
.chip.cond.on{background:var(--pur);border-color:var(--pur);color:#140d1c}
.chip.red.on{background:var(--red);border-color:var(--red)}
.pill{display:inline-block;font-size:13px;background:#2c241b;border-radius:6px;padding:2px 8px;margin:3px 4px 0 0}
.pill.sk{background:#33270f;color:var(--acc2)}.pill.pw{background:#2a1d38;color:#d6b4ff}
.link{background:none;border:0;padding:0;color:var(--acc2);font-weight:700;text-align:left;text-decoration:underline dotted;text-underline-offset:3px}
.note{font-size:14px;color:#c9bca5;margin-top:3px}
.why{font-size:13px;color:var(--red);margin-top:4px}
.warn{border-left:4px solid var(--red);background:#2b1712;padding:10px 12px;border-radius:8px;font-size:15px;margin:8px 0}
.ok{border-left:4px solid var(--ok);background:#1b2615;padding:10px 12px;border-radius:8px;font-size:15px;margin:8px 0}
.hint{border-color:#6a4f2a;background:#261d12}
.gang-item,.fighter{cursor:pointer}
.fhead{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.fhead>b{font-size:17px;margin-right:4px}
.fhead .act{margin-left:auto}
.dead{opacity:.45}
.stats{width:100%;border-collapse:collapse;margin:8px 0;table-layout:fixed;font-variant-numeric:tabular-nums}
.stats th{font-size:11px;color:var(--mut);font-weight:600;padding:3px 0}
.stats td{font-size:16px;font-weight:600}
.stats td,.stats th{text-align:center;border:1px solid var(--line)}
.stats td{padding:5px 0}
.stats td.up{color:var(--ok)}.stats td.down{color:var(--red)}.stats td.hurt{color:#fff;background:var(--red)}
/* the fighter's profile block: the "staying alive" column (armour, field, T, W) + the other stats (wide screens: in one row) */
.sblock{display:grid;grid-template-columns:64px minmax(0,1fr);grid-template-rows:auto 1fr;gap:4px 10px;margin:8px 0;align-items:start}
.vit{display:grid;gap:4px;grid-row:1/span 2}
.st2,.sb-side{grid-column:2;min-width:0}
.sb-side .chip,.chips:not(.scroll)>.chip.plain{white-space:normal;text-align:left;border-radius:15px}
.sb-side>.chips{margin:2px 0 4px}
.vt{position:relative;background:var(--card2);border:1px solid var(--line);border-radius:8px;text-align:center;padding:3px 2px 4px;line-height:1.15;cursor:pointer}
.vt small{display:block;font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.03em}
.vt b{font-size:20px;font-variant-numeric:tabular-nums;white-space:nowrap}
.vt i{position:absolute;top:1px;right:5px;font-style:normal;font-weight:700;font-size:13px}
.vt.ar{background:#1c2f3e;border-color:#3c5a78}.vt.ar b{color:#d6e8fa}.vt.ar small,.vt.ar i{color:#8fb3d6}
.vt.fd{background:#2a1d38;border-color:#5a4378}.vt.fd b{color:#e9d8ff}.vt.fd small,.vt.fd i{color:#b89ad8}
.vt.none{background:transparent;border-style:dashed;cursor:default}.vt.none b{color:var(--mut)}
.vt.nr{cursor:default}
.vt.up b{color:var(--ok)}.vt.down b{color:var(--red)}
.vt.hurt{background:var(--red);border-color:var(--red)}.vt.hurt b,.vt.hurt small{color:#fff}
.st2 .stats{margin:0 0 4px}
.pill.ar{background:#1c2f3e;color:#b9d6f2}.pill.fd{background:#2a1d38;color:#d6b4ff}
@media (min-width:640px){
  .sblock{grid-template-columns:72px minmax(0,1fr)}
  .st2{display:grid;grid-template-columns:6fr 4fr;gap:6px}
}
.houses{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.house{display:flex;flex-direction:column;gap:4px;padding:16px;font-size:20px;text-align:left;background:var(--card2)}
.house small{font-size:12px;color:var(--mut)}
.stepper{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.stepper button{padding:6px 10px;min-width:40px;font-weight:700}
.stepper b{min-width:56px;text-align:center;font-variant-numeric:tabular-nums}
.item{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding:9px 0}
.item:first-of-type{border-top:0}
.item button{padding:5px 10px;flex:0 0 auto}
.log div{font-size:14px;color:#cdbfa8;padding:3px 0;border-bottom:1px dotted #2f271e}
details summary{cursor:pointer;padding:8px 0;font-weight:600;color:var(--acc2)}
/* inventory */
.inv{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0;background:#18140f}
.inv.w{border-left:4px solid #6b8bb0}.inv.e{border-left:4px solid #8a7a4f}
.inv .row.end button{padding:6px 10px;font-size:14px}
.ups{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.wp{width:100%;border-collapse:collapse;margin:8px 0 2px;font-size:14px;font-variant-numeric:tabular-nums}
.wp th{font-size:11px;color:var(--mut);font-weight:600;text-align:center;padding:2px;border-bottom:1px solid var(--line)}
.wp td{text-align:center;padding:5px 2px;border-bottom:1px solid #2b241c}
.wp td.pn{text-align:left;color:var(--acc2);font-size:13px;max-width:110px}
.wp tr.trs td{text-align:left;padding:2px 0 8px;border-bottom:1px solid var(--line)}
.wp tr.dim td{opacity:.55}
.shop{border-top:1px solid var(--line);padding:12px 0}
.shop.blocked>.row:first-child,.shop.blocked .wp{opacity:.6}
.pick{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}
button[disabled][title]{cursor:help}
.shop .buy{display:flex;align-items:center;gap:8px;white-space:nowrap}
.seg{display:flex;gap:0;margin:8px 0}.seg button{flex:1;border-radius:0}.seg button:first-child{border-radius:8px 0 0 8px}.seg button:last-child{border-radius:0 8px 8px 0}.seg .on{background:var(--acc);color:#1a1108;font-weight:700}
.chk{display:inline-flex;gap:8px;align-items:center;margin:6px 10px 6px 0;cursor:pointer}.chk input{width:auto;transform:scale(1.25)}.chk.big{font-size:18px}
/* skills */
.sk-table{padding:8px 12px}
.skill{display:flex;gap:10px;align-items:flex-start;border-top:1px solid var(--line);padding:9px 0}
.skill .d6{flex:0 0 26px;height:26px;border-radius:6px;background:#352a1e;color:var(--acc2);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.skill .d6.w{flex-basis:48px}
.skill .sbody{flex:1;min-width:0}
.skill>button{flex:0 0 auto}
.skill.own{opacity:.6}
.adv.sel{border-color:var(--acc)}
/* battle */
.gang-bar{position:sticky;top:0;background:var(--bg);z-index:4;padding:4px 0}
.bf{border-left:5px solid var(--ok)}
.bf.done{opacity:.62}
.bf.st-pinned{border-left-color:#d4b83c}.bf.st-serious{border-left-color:var(--red)}.bf.st-engaged{border-left-color:#e0662e}
.bf.st-ooa,.bf.st-fled{opacity:.35;border-left-color:#555}
.bw{border-top:1px dashed var(--line);padding-top:6px;margin-top:6px}.bw.noammo .wp{opacity:.4}
.row.wrap>span{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
details.xp{border-top:1px solid var(--line);margin-top:8px}
/* reference */
.refitem{padding:0}
.refhead{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;background:none;border:0;padding:12px 14px;flex-wrap:wrap}
.refhead .caret{margin-left:auto;color:var(--mut)}
.refitem .note{padding:0 14px 12px}
.refitem .rule{padding:0 14px 14px}
.rule{font-size:15px;overflow-x:auto}
.rule p{margin:6px 0}
.rule table{border-collapse:collapse;margin:8px 0;font-size:14px;min-width:60%}
.rule td,.rule th{border:1px solid var(--line);padding:5px 7px;vertical-align:top;text-align:left}
.rule th{background:var(--card2);color:var(--acc2)}
.rule blockquote{margin:6px 0;padding:4px 10px;border-left:3px solid #5a4a36;color:#d9ccb4}
.rule ul,.rule ol{padding-left:20px;margin:6px 0}
.rule strong{color:#fff3da}
/* modal */
#modal{display:none}
#modal.on{display:block;position:fixed;inset:0;z-index:50}
.backdrop{position:absolute;inset:0;background:#000b}
.sheet{position:absolute;left:0;right:0;bottom:0;max-height:92vh;background:var(--bg);border-top:3px solid var(--acc);border-radius:16px 16px 0 0;display:flex;flex-direction:column;max-width:900px;margin:auto}
.sheet-body{overflow-y:auto;padding:16px 16px calc(24px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}
.sheet .close{position:absolute;right:10px;top:10px;z-index:2;border-radius:50%;width:40px;height:40px;padding:0;font-size:18px}
.sheet h2{font-size:20px;color:var(--acc);margin:4px 50px 6px 0;text-transform:none;letter-spacing:0}
/* dice */
#dicebtn{position:fixed;right:12px;bottom:calc(var(--tabh) + 12px + env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;gap:8px;max-width:min(80vw,520px);
  background:#211a12;border:2px solid var(--acc);border-radius:999px;padding:8px 16px 8px 10px;box-shadow:0 4px 18px #000a}
#dicebtn .die{font-size:26px;line-height:1;color:var(--acc)}
#dtick{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.dgrid button{padding:14px 4px;font-weight:700}
.dlog div{padding:6px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--mut)}.dlog .new{color:var(--fg);font-size:18px;font-weight:700}
/* tabs */
#tabs{position:fixed;left:0;right:0;bottom:0;height:calc(var(--tabh) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#0e0b08;border-top:1px solid var(--line);display:flex;z-index:30}
#tabs button{flex:1;background:none;border:0;border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--mut);font-size:13px}
#tabs button span{font-size:20px}
#tabs button.on{color:var(--acc);box-shadow:inset 0 3px 0 var(--acc)}
#toast{position:fixed;left:50%;top:14px;transform:translateX(-50%);background:var(--acc);color:#1a1108;padding:10px 16px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s;font-weight:700;max-width:92vw;z-index:80;text-align:center}
#toast.on{opacity:1}
nav.crumbs button{background:none;border:0;padding:4px 0;color:var(--acc2)}
@media (max-width:520px){
  h1{font-size:24px}.kpis{grid-template-columns:repeat(2,1fr)}
  .stats td{font-size:15px}.stats th{font-size:10px}
  .wp{font-size:13px}.wp td.pn{max-width:70px}
  .dgrid{grid-template-columns:repeat(2,1fr)}
}
.dres{background:#2a1f12;border:2px solid var(--acc);border-radius:10px;padding:14px;font-size:20px;font-weight:800;margin:8px 0;min-height:56px}
.fhead .tog{padding:2px 8px;font-size:16px}
.bf.mini{padding:8px 12px}.bf.mini .fhead>b{font-size:16px}.tag.cnd{color:#d6b4ff;background:#2a1d38}
a.lnk{color:var(--acc2);text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}
.rule a.lnk{color:#f5c27a}
.rule .hl{background:#4a3410;outline:2px solid var(--acc);border-radius:4px;animation:flash 1.6s ease}
@keyframes flash{0%{background:#8a5a12}100%{background:#4a3410}}
th[data-info],.kpis [data-info],h1[data-info]{cursor:pointer}
.stats th[data-info]{text-decoration:underline dotted #6d5c45;text-underline-offset:2px}
.wp th[data-info]{text-decoration:underline dotted #6d5c45}
h1 .q{font-size:14px;color:var(--mut);border:1px solid var(--line);border-radius:50%;padding:0 6px;vertical-align:middle}
button.tag.tl{border:0;cursor:pointer;font:inherit;font-size:12px;padding:2px 7px;text-decoration:underline dotted;text-underline-offset:2px}
.acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}
.act-chip{display:inline-flex;flex-direction:column;align-items:flex-start;padding:5px 10px;border-radius:8px;background:#1d2530;border:1px solid #3c4c60;color:#cfe2f5;font-size:14px;line-height:1.15}
.act-chip small{font-size:10px;color:#8fa9c4;text-transform:uppercase;letter-spacing:.04em}
.hint-box{background:#221a10;border:1px solid #5a4425;border-left:4px solid var(--acc);border-radius:8px;padding:8px 10px;margin:8px 0;font-size:14px;line-height:1.45}
.hint-box.h-fire{border-left-color:#e0662e}.hint-box.h-frenzy,.hint-box.h-broken{border-left-color:var(--pur)}.hint-box.h-serious,.hint-box.h-ooa{border-left-color:var(--red)}.hint-box.h-pinned{border-left-color:#d4b83c}
.hint-box .row{margin:6px 0 0}
.sheet-body h4{color:var(--acc2);margin:14px 0 6px}
.ihead{position:sticky;top:-16px;z-index:3;background:var(--bg);margin:-16px -16px 6px;padding:14px 60px 6px 16px;display:flex;gap:10px;align-items:flex-start;border-bottom:1px solid var(--line)}
.ihead h2{margin:0 0 2px!important}.ihead p{margin:0 0 4px}
.ihead .back{flex:0 0 auto;padding:6px 12px;font-size:18px}
.sheet .close{z-index:6}

/* ---- hidden dev panel (dev.js) */
#dev{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;flex-direction:column}
#dev .dv-top{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--card)}
#dev .dv-x{font-size:18px}
#dev .dv-tabs,#dev .dv-chips{display:flex;gap:6px;overflow-x:auto;padding:8px 16px;flex-wrap:nowrap}
#dev .dv-tabs button,#dev .dv-chips button{white-space:nowrap}
#dev .dv-tabs .on,#dev .dv-chips .on{background:var(--acc);color:#1a1209}
#dev .dv-body{flex:1;overflow:auto;padding:8px 16px 80px}
#dev h3{margin:18px 0 6px;font-size:16px}#dev h4{margin:10px 0 4px}
#dev .dv-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
#dev .dv-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0}
#dev .dv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:6px 0}
#dev .dv-f{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--mut)}
#dev input,#dev select,#dev textarea{background:var(--card2);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:5px 6px;font:inherit;font-size:14px;min-width:0}
#dev textarea{width:100%;box-sizing:border-box;font-family:ui-monospace,Consolas,monospace;font-size:12px}
#dev .bad{border-color:var(--red)!important;outline:1px solid var(--red)}
#dev .dv-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:3px;margin:6px 0}
#dev .dv-stats label{display:flex;flex-direction:column;font-size:11px;color:var(--mut);text-align:center}
#dev .dv-stats input{text-align:center;padding:4px 2px}
#dev .dv-cats{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin:4px 0;font-size:13px}
#dev .dv-scroll{overflow-x:auto}
#dev .dv-pf input{width:52px}#dev .dv-pf td:first-child input{width:110px}#dev .dv-pf td:nth-last-child(2) input{width:180px}
#dev .dv-grid-t select{max-width:120px}
#dev .dv-prev{margin-top:10px;padding:10px;border:1px dashed var(--line);border-radius:8px}
#dev .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
#devmark{position:fixed;left:10px;bottom:calc(var(--tabh) + 10px);z-index:60;font-size:12px;padding:4px 8px;opacity:.75;background:var(--card2);color:var(--acc2);border:1px solid var(--acc)}
#dev .dv-fix{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--acc2)}
/* campaign: lull checklist */
.card.lull{border-left:4px solid var(--acc)}
.card.lull.done{border-left-color:var(--ok)}
.card.lull.done h2{color:var(--ok)}
/* campaigns */
input.title{flex:1;min-width:0;font-size:22px;font-weight:700;background:none;border:0;border-bottom:1px dashed var(--line);color:var(--fg);padding:2px 0;margin-right:8px}
.tag.camp{background:var(--card2);color:var(--acc2)}
/* the full fighter card */
.fighter.full .wcard{margin:6px 0 2px}.fighter.full .wcard>b{font-size:14px}
/* printing: only #print */
#print{display:none}
@media print{
@page{size:A4;margin:10mm}
html,body{background:#fff!important}
body>*:not(#print){display:none!important}
#print{display:block;font:10.5px/1.3 Arial,sans-serif;color:#000}
#print *{color:#000!important;background:transparent!important;box-shadow:none!important}
#print .ph{margin-bottom:6px;border-bottom:2px solid #000;padding-bottom:3px}#print .ph h1{font-size:18px;margin:0}
#print .pgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
#print .pcard{border:1px solid #000;padding:4px 5px;break-inside:avoid}
#print .pc-h{display:flex;gap:6px;align-items:baseline}#print .pc-h .pc-c{margin-left:auto;font-weight:700}
#print .pc-w{margin-top:3px}#print .pc-f{margin-top:3px;font-style:italic}
#print table{border-collapse:collapse;width:100%;margin:2px 0}
#print th,#print td{border:1px solid #777;padding:1px 3px;text-align:center;font-size:10px}
#print td.l{text-align:left}#print td.nw{white-space:nowrap}
#print .chip,#print .tag{border:0;padding:0;margin:0 3px 0 0;font-size:inherit;display:inline}
#print table.roster{font-size:9.5px}#print table.roster tr{break-inside:avoid}
#print .sblock{grid-template-columns:12mm minmax(0,1fr);gap:2px 5px;margin:3px 0}
#print .vit{gap:2px}
#print .vt{border:1px solid #777;border-radius:3px;padding:0 1px 1px;line-height:1.1}
#print .vt.ar,#print .vt.fd{border:2px solid #000}#print .vt.none{border-style:dashed}
#print .vt small{font-size:7.5px;letter-spacing:0}#print .vt b{font-size:14px}#print .vt i{font-size:10px;top:0;right:2px}
#print .st2{display:grid;grid-template-columns:6fr 4fr;gap:4px}
#print .st2 .stats{margin:0}
#print .sb-side{margin-top:2px}
#print>div{margin-top:4px}
}
fieldset.ro{border:0;padding:0;margin:0;min-width:0;opacity:.8}
.tag.rdy{border-color:#3c8a4a;color:#8fdc9a}
.hire-big{display:block;width:100%;margin:10px 0;padding:12px;font-size:17px}
.add-tile{display:block;width:100%;margin:8px 0;padding:14px;border:2px dashed var(--acc);background:transparent;color:var(--acc);font-weight:700;border-radius:10px}
/* battlefield (board.js): inches in the SVG's own units */
.bd-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:#0f0c09;margin:8px 0;max-height:75vh;touch-action:pan-x pan-y pinch-zoom}
#bd{display:block;min-width:100%;user-select:none;-webkit-user-select:none}
#bd.ruler{touch-action:none;cursor:crosshair}
.bd-bg{fill:#2a2219}
.bd-g1{stroke:#3a3026;stroke-width:.03}.bd-g6{stroke:#5a4a38;stroke-width:.07}.bd-tile{stroke:#8a7356;stroke-width:.14}
.tok{cursor:grab;touch-action:none}
.tok .tb{stroke:#f3ead8;stroke-width:.08}
.tok text{fill:#fff;font-weight:800;text-anchor:middle;pointer-events:none;font-family:system-ui,sans-serif}
.tok text.tl{fill:#ffe27a;font-size:.55px}
.tok.sel .tb{stroke:#ffe27a;stroke-width:.18}
.tok.st-engaged .tb{stroke:#f08a24;stroke-width:.16}
.tok.st-pinned{opacity:.7}.tok.st-pinned .tb{stroke-dasharray:.25 .15}
.tok.st-serious .tb{stroke:var(--red);stroke-dasharray:.2 .12;stroke-width:.14}
.tok.done .tb{filter:saturate(.35) brightness(.8)}
.tok.act .tb{stroke:#7ef0a0;stroke-width:.2}.tok.rdy .tb{stroke:#7ef0a0;stroke-width:.1;stroke-dasharray:.3 .15}
.card.bt{border-left:4px solid #7ef0a0}.card.bt.hist{border-left-color:#6b8bb0}.card.bt .log{max-height:240px;overflow:auto}
.bd-reach{fill:rgba(224,145,47,.08);stroke:var(--acc);stroke-width:.07;stroke-dasharray:.3 .2;pointer-events:none}
.bd-foe{fill:rgba(224,90,69,.1);stroke:rgba(224,90,69,.6);stroke-width:.05;stroke-dasharray:.15 .15;pointer-events:none}
.bd-rule,.bd-rub{stroke:#ffe27a;stroke-width:.09;stroke-dasharray:.35 .2;pointer-events:none}
.bd-rt{fill:#ffe27a;font-weight:800;text-anchor:middle;paint-order:stroke;stroke:#14110d;stroke-width:.2;pointer-events:none}
.bd-dot{display:inline-block;min-width:22px;height:22px;border-radius:50%;color:#fff;font-weight:800;font-size:13px;line-height:22px;text-align:center;vertical-align:middle}
#bd-why{width:100%;min-height:60px}
.tr{pointer-events:none}.tr text{font-family:system-ui,sans-serif}
.tr-wall line{stroke:#cdbb9a;stroke-width:.35;stroke-linecap:round}
.tr-door line{stroke-width:.55;stroke:#b07a3a}.tr-door.d-o line{stroke-width:.15;stroke-dasharray:.25 .2}.tr-door.d-l line{stroke:#d0533f}
.tr-bar line{stroke:#a8946a;stroke-width:.45;stroke-dasharray:.3 .15}
.tr-ladder line{stroke:#d8c58a;stroke-width:.55;stroke-dasharray:.1 .14}
.tr-vent line{stroke:#6aa3a0;stroke-width:.22;stroke-dasharray:.2 .2}.tr-ve{fill:#6aa3a0}
.tr-imp rect{fill:#0d0a07;stroke:#5a4a38;stroke-width:.08}.tr-gap rect{fill:#000;stroke:#444;stroke-width:.08}
.tr-rough rect,.tr-danger rect{stroke:#5a4a38;stroke-width:.06}
.tr-plat rect{fill:rgba(150,130,95,.35);stroke:#a8946a;stroke-width:.1}.tr-bld rect{fill:#4a3d2d;stroke:#b39b72;stroke-width:.12}
.tr-l{fill:#ffe27a;font-weight:700}
.tr-obj circle{fill:#e3c14b;stroke:#14110d;stroke-width:.1}.tr-obj text{fill:#e3c14b;text-anchor:middle;font-weight:700;paint-order:stroke;stroke:#14110d;stroke-width:.15}
.tr .hit{stroke:transparent;stroke-width:1.2}
.tr.tsel rect,.tr.tsel line:not(.hit),.tr.tsel circle{stroke:#ffe27a!important;stroke-width:.2}
#bd.edit{touch-action:none}#bd.edit .tr{pointer-events:all;cursor:pointer}#bd.edit .tok{pointer-events:none;opacity:.55}
.bd-zone{fill-opacity:.14;stroke-opacity:.7;stroke-width:.1;stroke-dasharray:.4 .25;pointer-events:none}
.bd-path{fill:none;stroke:#ffe27a;stroke-width:.08;stroke-dasharray:.2 .15;pointer-events:none}
.bd-draft{fill:rgba(255,226,122,.15);stroke:#ffe27a;stroke-width:.12;stroke-dasharray:.3 .2;pointer-events:none}
.bd-rule.blind{stroke:#e05a45}
.tok .tf{fill:rgba(255,226,122,.16);stroke:rgba(255,226,122,.55);stroke-width:.05;pointer-events:none}
.bc-t{fill:none;stroke-width:.12;pointer-events:none}.bc-t.ok{stroke:#5fd35a}.bc-t.pri{stroke:#e3c13a;stroke-dasharray:.3 .2}.bc-t.no{stroke:#e05a45;stroke-width:.06;stroke-dasharray:.15 .15}
.bc-tt{font-size:.7px}
.bc-lof{stroke:#ff9a3c;stroke-width:.1;stroke-dasharray:.4 .2;pointer-events:none}.bc-lof.done{stroke-dasharray:none;opacity:.7}
.bc-blast{fill:rgba(255,120,40,.18);stroke:#ff7a28;stroke-width:.1;pointer-events:none}.bc-blast.done{fill:rgba(255,80,30,.3)}
.bc-tpl{fill:rgba(255,150,40,.2);stroke:#ff9a3c;stroke-width:.08;pointer-events:none}.bc-tpl.done{fill:rgba(255,90,30,.3)}
.bc-sc{stroke:#ffe27a;stroke-width:.08;stroke-dasharray:.2 .15;pointer-events:none}
.bc-hit{fill:none;stroke:#ff3b2f;stroke-width:.16;pointer-events:none}
.bc-smoke{fill:rgba(190,195,200,.32);stroke:rgba(220,225,230,.7);stroke-width:.08;stroke-dasharray:.3 .2;pointer-events:none}
.bc h3{margin:0 0 6px}.bc .die{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:8px;padding:2px 6px;margin:2px}.bc .die.on{border-color:var(--acc)}
#bc-why{width:100%;min-height:60px}
/* a band players don't see (the admin sees every band) */
.house.band-off { opacity: .5; border-style: dashed; }
