:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#ebeff1;background:#0e1419;font-size:13px;--bg:#0e1419;--panel:#182128;--panel2:#212c34;--line:#344047;--text:#e9edef;--muted:#85959e;--accent:#e68c40;--accent2:#ffae5f;--red:#cf6760;--green:#7bb59b;--strong:#fbf5e9}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 45% -30%,#29343b 0%,#10171c 53%,#0c1116 100%);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,select:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid #eaa362;outline-offset:2px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Barlow Condensed',Impact,'Arial Narrow',sans-serif;letter-spacing:.015em}h2{font-size:29px;line-height:1.04}h3{font-size:23px}p{line-height:1.6}#app{min-height:100vh}
.top-nav{height:79px;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(20px,3.8vw,62px);border-bottom:1px solid #2b353c;background:#111a20c9;position:relative;z-index:5}.brand{display:flex;gap:13px;align-items:center}.brand-mark{width:39px;height:41px;background:#d58b43;color:#192028;position:relative;display:grid;place-items:center;font:900 32px 'Barlow Condensed',Impact;transform:skewX(-6deg);box-shadow:4px 4px 0 #493c33}.brand-mark span{position:absolute;right:-5px;bottom:-5px;font:900 10px Inter;background:#161d22;color:#efb67b;padding:2px}.brand-name{font:900 27px/.9 'Barlow Condensed',Impact;letter-spacing:.055em}.brand-name span{color:var(--accent)}.brand-sub{font-size:8px;font-weight:800;letter-spacing:.31em;color:#71838e;margin-top:6px}.top-right{display:flex;align-items:center;gap:12px}.pill{display:inline-flex;align-items:center;gap:5px;border:1px solid #3b484f;background:#28333b;padding:6px 9px;border-radius:4px;color:#c6d0d5;font:700 10px Inter;letter-spacing:.04em;white-space:nowrap}.pill.outline{border-color:#5b4535;background:transparent;color:#d99b65}.pill.red{background:#4c302e;color:#f3b3ae;border-color:#74433e}.pill.pa{background:#58412f;color:#ffcc82;border-color:#805537}
.btn{border:1px solid #46525a;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;padding:10px 14px;white-space:nowrap;border-radius:5px;color:#e9edf0;background:#2b3740;font-weight:700;font-size:12px;transition:background .15s,border-color .15s,transform .1s}.btn:hover:not(:disabled){background:#3e4c55;border-color:#81909a}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.28;filter:saturate(.6)}.btn-primary{background:#e58a3d;color:#182026;border-color:#f6a65b;font-weight:800}.btn-primary:hover:not(:disabled){background:#f9a656;color:#0e161b}.btn-ghost{background:transparent;border-color:#3b474e;color:#b9c6cd}.btn-sm{min-height:33px;padding:6px 11px;font-size:11px}.btn-end{width:100%;background:#593632;color:#ffd4bb;border-color:#90534a;justify-content:space-between}.btn-end:hover:not(:disabled){background:#75433a}
.setup-wrap{max-width:1480px;margin:auto;padding:46px 38px 75px}.hero-intro{padding:6px 0 37px;border-bottom:1px solid #2b393f}.eyebrow,.section-eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em;color:#e19a61}.hero-intro h1{font-size:clamp(42px,5.9vw,91px);line-height:.89;font-weight:900;letter-spacing:.007em;margin:16px 0 23px;max-width:980px;color:#f0efed}.hero-intro h1 span{color:#d78643}.hero-intro p{color:#a8b7bd;max-width:680px;font-size:14px}.intro-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.setup-cols{display:grid;grid-template-columns:minmax(290px,345px) 1fr;gap:33px;margin-top:34px}.panel{border:1px solid #324047;background:linear-gradient(160deg,#1a262e,#172128);border-radius:8px;box-shadow:0 8px 30px #060d1152}.setup-config{padding:26px 24px;align-self:start}.setup-config h2{margin:9px 0 22px}.field-label,.mini-label{display:block;font-size:10px;font-weight:800;letter-spacing:.12em;color:#a3b3ba;margin:21px 0 9px}.mini-label{font-size:9px;margin:14px 0 6px}.control{width:100%;background:#10191e;border:1px solid #40515b;border-radius:5px;min-height:42px;color:#e8edf0;padding:10px 12px;outline:0;appearance:auto}.control:hover{border-color:#778893}.control:focus{border-color:#e59c59}.control.compact{min-height:34px;padding:6px 8px;font-size:11px}.field-hint{color:#86969d;margin-top:9px;font-size:11px}.config-bottom{border-top:1px solid #334149;margin-top:24px;padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:12px}.config-bottom .btn{min-width:160px}.team-count{font:900 38px 'Barlow Condensed';margin-top:6px}.team-count span{color:#8b979d;font-size:21px}.fineprint{font-size:10px;color:#6b7c85;margin-top:16px}.roster-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:19px}.roster-heading h2{margin-top:8px}.counter{color:#9aabb4;border:1px solid #3c4a52;border-radius:4px;padding:7px 9px;font-size:11px}.survivor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.survivor-card{min-width:0;min-height:247px;border:1px solid #39454c;border-radius:8px;background:#1a242b;padding:18px;cursor:pointer;position:relative;transition:background .2s,border-color .2s}.survivor-card:hover{background:#222e36;border-color:#7d7770}.survivor-card.chosen{border-color:#bd8150;background:linear-gradient(145deg,#302d2b,#20292d 80%);box-shadow:inset 0 0 0 1px #986b48}.survivor-header{display:flex;justify-content:space-between;gap:5px;align-items:start}.survivor-status{font-size:9px;font-weight:900;letter-spacing:.04em;color:#8e9da6}.chosen .survivor-status{color:#e5a875}.avatar{display:inline-grid;place-items:center;position:relative;width:38px;height:38px;flex-shrink:0;border:2px solid var(--token);border-radius:7px;background:#222e35;color:var(--token);font:900 15px 'Barlow Condensed',Impact;overflow:hidden}.avatar.large{width:62px;height:62px;font-size:23px}.avatar.medium{width:51px;height:51px;font-size:19px}.avatar-img{width:100%;height:100%;position:absolute;inset:0;object-fit:contain;z-index:2}.avatar-fallback{z-index:1}.survivor-card h3{margin-top:13px;font-size:23px}.survivor-role{font-size:10px;color:#dda36e;text-transform:uppercase;font-weight:800;letter-spacing:.08em;margin-top:3px}.survivor-card p{margin-top:10px;color:#abb9c1;font-size:11px;min-height:33px}.survivor-card .mini-label{margin:11px 0 5px}.weapon-picker{min-height:32px;font-size:10px;padding:6px}.tip-line{border:1px dashed #35434c;padding:13px 16px;margin-top:15px;color:#8c9ea6;font-size:11px;border-radius:5px}
.game-wrap{padding:16px clamp(12px,1.7vw,33px) 38px;max-width:1900px;margin:auto}.status-strip{min-height:52px;border:1px solid #374249;background:#161f26;display:flex;justify-content:space-between;gap:15px;align-items:center;padding:8px 18px;margin-bottom:16px;border-radius:6px;color:#aab6bd;font-size:11px;font-weight:700}.status-left,.status-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.status-sep{color:#58666d}.status-right b{color:#e9a466}.threat-meter{width:72px;height:6px;border-radius:6px;background:#344049;overflow:hidden}.threat-meter span{display:block;height:100%;background:linear-gradient(90deg,#bc884a,#e45e4c)}.mini-stat{border-left:1px solid #3b454b;padding-left:14px}.game-layout{display:grid;grid-template-columns:minmax(245px,.92fr) minmax(490px,2.25fr) minmax(310px,1.13fr);gap:14px;align-items:start}.left-column,.right-column{display:flex;flex-direction:column;gap:13px;min-width:0}.roster-panel{overflow:hidden}.panel-header{padding:17px 16px 13px;display:flex;align-items:center;justify-content:space-between;gap:6px;border-bottom:1px solid #37434a}.tiny{font-size:10px;color:#80909a;margin-top:4px}.roster-item{background:transparent;border:0;border-bottom:1px solid #303c44;color:#dce4e8;padding:11px 13px;display:flex;gap:10px;width:100%;align-items:center;text-align:left}.roster-item.clickable:hover{background:#2a3940}.roster-item.active{background:#3a322a;box-shadow:inset 3px 0 #df9451}.roster-item.down{opacity:.47}.roster-item:disabled{cursor:default}.roster-info{min-width:0;flex:1}.roster-name{font-size:11px;font-weight:800;margin-bottom:6px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.acting{color:#efad79;font-size:8px;letter-spacing:.1em}.bars{display:flex;flex-direction:column;gap:4px}.bar{width:100%;height:4px;background:#414b4e;overflow:hidden;border-radius:5px}.bar span{display:block;height:100%;border-radius:5px}.bar.hp span{background:#c77b72}.bar.xp span{background:#c59b64}.roster-meta{font-size:9px;color:#92a3a9;margin-top:6px}.roster-ap{font:900 12px 'Barlow Condensed';color:#d3b18d;min-width:30px;text-align:right}.roster-foot{font-size:10px;color:#8797a0;padding:12px 14px;line-height:1.5}.dossier{padding:14px 14px 10px}.log-list{max-height:270px;overflow:auto;margin-top:10px;scrollbar-width:thin}.log-line{padding:6px 0;border-bottom:1px solid #2b373e;color:#9caab0;font-size:10px;line-height:1.5}.log-line span{font-size:9px;font-weight:800;color:#697b84;padding-right:8px}.log-line.success{color:#8bc6a8}.log-line.danger,.log-line.critical{color:#e4a09b}.log-line.attack{color:#cba987}.log-line.phase{color:#a2bde0;font-weight:800}
.battlefield{background:linear-gradient(145deg,#182127,#111b20);border:1px solid #37454c;border-radius:8px;padding:19px;min-width:0}.battlefield-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}.battlefield-heading h2{font-size:27px;margin-top:5px}.battlefield-heading h2 span{font:500 11px Inter;color:#8e9da6}.round-badge{border:1px solid #685039;padding:8px 10px;color:#d8a273;font:800 10px Inter;white-space:nowrap}.round-badge b{font-size:17px;margin-left:5px}.map-legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:9px;color:#9eacb3;margin-bottom:12px}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;background:#9a9b9d}.legend-dot.ally{background:#73b4aa}.legend-dot.zombie{background:#cb7067}.legend-dot.mission{background:#d4a34f}.legend-dot.exit{background:#76a4ca}.map-frame{border:6px solid #202b31;border-radius:5px;background:#091115;box-shadow:0 7px 18px #0008,inset 0 0 0 1px #51616a}.map-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));aspect-ratio:1/1;gap:2px;background:#202d32}.tile{position:relative;min-width:0;min-height:0;border:1px solid #425057;overflow:hidden;color:#e3e9ed;background-color:#303b3d;text-align:left;cursor:pointer;isolation:isolate;transition:filter .12s,border-color .12s;display:block}.tile:hover{filter:brightness(1.18);z-index:2}.tile.ground{background-color:#344341}.tile.street{background-color:#384044;background-image:linear-gradient(115deg,transparent 45%,#7370652b 46%,#7370652b 48%,transparent 49%)}.tile.interior{background-color:#3e4039}.tile.selected{z-index:3;border:2px solid #e9ae65!important;box-shadow:inset 0 0 0 2px #e9ae653a}.tile.reachable:not(.selected){border-color:#6d957b}.tile.can-attack:not(.selected){border-color:#a4685f}.tile-art,.tile-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.tile-art:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#151c1b1a,#14202468)}.tile-coord{position:absolute;top:4px;left:5px;line-height:1;color:#c0cecf;font-size:9px;text-shadow:0 1px 4px #0b1115;font-weight:800;z-index:2}.tile-symbols{position:absolute;top:4px;right:4px;display:flex;gap:3px;z-index:2;flex-wrap:wrap;justify-content:flex-end;max-width:65%}.map-icon{width:15px;height:15px;border-radius:3px;background:#554531;display:inline-grid;place-items:center;position:relative;font-size:10px;font-weight:900;color:#ffe0a0;overflow:hidden}.map-icon.secondary{background:#43505c;color:#9ed7f5}.map-icon.search{background:#314a4a;color:#a7d6ca}.map-icon.done{background:#375548;color:#c2eaca}.map-icon.exit{background:#315061;color:#addbf1}.map-icon.barricade{background:#654a3a;color:#ffd1b1}.mission-object-img{position:absolute;width:100%;height:100%;inset:0;z-index:1}.tile-decor{position:absolute;inset:auto auto 23% 28%;width:30%;height:15%;opacity:.4;border:2px solid #1c292b;transform:rotate(-35deg)}.decor-car{background:#777d79;border-radius:4px}.decor-rubble{width:17%;height:23%;background:#696b5c;border:0;clip-path:polygon(0% 100%,30% 0%,70% 20%,100% 90%)}.decor-crack{height:3px;border:0;background:#222e31;width:42%;transform:rotate(25deg)}.tokens{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1px;padding:24% 6% 10%;pointer-events:none;z-index:3}.map-token{width:clamp(17px,2.7vw,32px);height:clamp(17px,2.7vw,32px);border:2px solid #b8cfca;background:#213a3b;color:#eef9ed;display:inline-grid;place-items:center;border-radius:50%;font:900 clamp(8px,.95vw,12px) 'Barlow Condensed';box-shadow:0 2px 3px #0009;position:relative;pointer-events:auto}.map-token.hero{border-color:var(--token);color:var(--token);background:#202a2e}.map-token.zombie{background:#583835;border-color:#c66d67;color:#ffe6db;cursor:pointer}.map-token.fallen{border-color:#727c7f;background:#404649;color:#bac2c2}.map-token .token-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;z-index:1}.map-token b{z-index:0}.map-overflow{font-size:9px;font-weight:900;color:#ffc0b2}.interiors-label{display:flex;justify-content:space-between;gap:10px;margin:15px 2px 7px;font-size:10px;letter-spacing:.09em;font-weight:800;color:#aab9c0}.interiors-label span{font-size:9px;color:#7a8c96;letter-spacing:0;font-weight:500}.inner-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.inner-grid .tile{aspect-ratio:1.5}.inner-grid .tile-coord{font-size:8px}.inner-grid .tokens{padding:16% 4% 4%}.map-help{font-size:10px;color:#80949d;margin-top:11px;line-height:1.6}
.right-column .panel{padding:16px}.mission-panel h3{margin:6px 0 6px}.mission-desc{font-size:11px;color:#9eadb4}.objective-list{display:flex;flex-direction:column;margin-top:14px}.objective{display:flex;gap:9px;padding:9px 0;border-top:1px solid #344149;align-items:flex-start}.objective .obj-check{width:25px;height:25px;border:1px solid #7d6d53;border-radius:4px;display:grid;place-items:center;flex-shrink:0;font-weight:900;font-size:10px;color:#e8b378}.objective b{font-size:11px}.objective.done b{color:#8fc1a2}.objective.done .obj-check{color:#b7e6c7;background:#314a3a;border-color:#4f8060}.objective.locked{opacity:.48}.objective.secondary .obj-check{border-color:#587380;color:#a6d5df}.objective.exit-obj.ready .obj-check{background:#2a5948;color:#bcecca;border-color:#5e9e79}.action-panel{position:relative}.hero-action-header{display:flex;align-items:center;gap:12px;margin-top:9px}.hero-action-header h3{margin-bottom:7px}.mini-row{display:flex;gap:5px;flex-wrap:wrap}.section-rule{height:1px;background:#344149;margin:16px 0}.select-target{display:flex;flex-direction:column;gap:4px;background:#0e1a20;border:1px solid #425056;border-radius:5px;padding:10px;margin:14px 0}.select-target span{font-size:9px;letter-spacing:.05em;color:#80949d}.select-target strong{font-size:12px}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.btn-action{width:100%;min-height:34px;padding:8px 7px;font-size:10px;background:#2b3a43;border-color:#445661}.btn-action.strong{background:#8b5833;border-color:#c2814d;color:#fff0da}.heal-section{margin-top:12px;padding:9px;background:#1c2d31;border:1px solid #3e5658;border-radius:5px}.heal-section .mini-label{margin:0 0 7px}.heal-section .btn{margin-top:7px;width:100%}.action-placeholder{margin-top:19px;border:1px dashed #5b6467;color:#8f9fa8;padding:30px 12px;text-align:center;font-size:10px;font-weight:800;letter-spacing:.15em}.weapon-equipped{display:flex;gap:10px;margin-top:11px}.weapon-equipped .equip-icon{width:43px;height:43px;background:#27343b;border:1px solid #455861;border-radius:5px;flex-shrink:0;display:grid;place-items:center;color:#d6a67c;font-size:23px;position:relative}.weapon-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:3px}.weapon-equipped b,.weapon-equipped span{display:block}.weapon-equipped b{font-size:12px;margin-bottom:4px}.weapon-equipped div>span{font-size:9px;color:#8fa4ae;line-height:1.6}.weapon-equipped div>.ammo{margin-top:5px;color:#e3b47d;font-weight:800}.bag-head{display:flex;justify-content:space-between;color:#98a9b3;font-size:9px;font-weight:800;letter-spacing:.08em;margin:13px 0 7px}.bag-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.bag-slot{min-height:50px;border:1px solid #4b575e;background:#1e2b33;border-radius:5px;color:#afbfc4;text-align:left;padding:6px;display:flex;flex-direction:column;gap:6px}.bag-slot.selected{border-color:#cf975f;background:#40382e}.bag-slot b{color:#e1b17d;font-size:9px}.bag-slot span{font-size:10px;white-space:normal;overflow-wrap:anywhere}.bag-slot:disabled{opacity:.4}.bag-actions{display:flex;gap:7px;margin-top:8px}.bag-actions .btn{min-height:32px;font-size:10px;flex:1}.danger-tip{color:#efb6a7;font-size:10px;margin-top:9px}.turn-footer{margin-top:16px}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#253b35;color:#dff9eb;border:1px solid #5b9680;min-width:min(90vw,300px);max-width:600px;border-radius:6px;padding:13px 40px 13px 18px;z-index:40;box-shadow:0 9px 27px #0009;font-size:12px}.toast.error{background:#462b2b;border-color:#a9675d;color:#ffd4ca}.toast button{background:transparent;color:inherit;position:absolute;right:9px;top:6px;border:0;font-size:24px}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;background:#081013db;z-index:20;padding:20px;backdrop-filter:blur(5px)}.modal{max-height:90vh;overflow-y:auto;max-width:540px;width:100%;border:1px solid #786046;border-radius:10px;padding:30px;background:linear-gradient(145deg,#28343a,#151f25);box-shadow:0 26px 80px #000a}.modal h2{font-size:41px;color:#f0e7da;margin:10px 0}.modal p{font-size:12px;color:#112c09;margin:10px 0}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.result-stats>div{border:1px solid #45555b;background:#172229;border-radius:5px;padding:13px 10px}.result-stats span{font-size:9px;font-weight:800;letter-spacing:.07em;color:#9badb5}.result-stats b{display:block;color:#e4a268;font:900 29px 'Barlow Condensed';margin-top:7px}.modal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.help-modal{max-width:700px}.help-modal h2{font-size:36px}.help-modal p{font-size:12px;line-height:1.75;padding-bottom:4px}.help-modal b{color:#e8c19b}.help-modal code{color:#eab788}
@media(max-width:1450px){.game-layout{grid-template-columns:minmax(215px,.8fr) minmax(410px,1.7fr) minmax(280px,1fr)}.game-wrap{padding-left:12px;padding-right:12px}.right-column .panel{padding:13px}.map-token{width:clamp(17px,2.4vw,27px);height:clamp(17px,2.4vw,27px)}.tile-coord{font-size:8px}.map-icon{width:12px;height:12px;font-size:9px}.battlefield{padding:13px}}
@media(max-width:1090px){.game-layout{grid-template-columns:minmax(240px,.9fr) minmax(440px,1.7fr)}.right-column{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr}.setup-cols{grid-template-columns:280px 1fr}.survivor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-token{width:clamp(18px,3.5vw,32px);height:clamp(18px,3.5vw,32px)}}
@media(max-width:750px){.top-nav{padding:0 13px;height:69px}.brand-name{font-size:22px}.brand-sub{font-size:7px}.top-right{gap:6px}.top-right .pill{display:none}.top-right .btn{padding:6px;font-size:10px}.setup-wrap{padding:25px 13px 60px}.hero-intro h1{font-size:54px}.setup-cols{display:flex;flex-direction:column;gap:21px}.survivor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.survivor-card{padding:14px;min-height:240px}.game-layout{display:flex;flex-direction:column}.left-column{width:100%;order:2}.battlefield{width:100%;order:1}.right-column{width:100%;order:3;display:flex}.status-strip{flex-direction:column;align-items:stretch;padding:10px;gap:8px}.status-right{justify-content:space-between}.map-token{width:clamp(16px,5.5vw,32px);height:clamp(16px,5.5vw,32px);font-size:11px}.tokens{padding-top:25%}.inner-grid .tile{aspect-ratio:1.2}.roster-panel{width:100%}.modal{padding:22px}.result-stats b{font-size:26px}}
@media(max-width:390px){.hero-intro h1{font-size:45px}.survivor-grid{grid-template-columns:1fr}.survivor-card{min-height:unset}.brand-mark{width:32px;height:35px}.brand-name{font-size:20px}.tile-coord{font-size:7px}.map-icon{width:11px;height:11px;font-size:8px}.map-token{width:16px;height:16px;border-width:1px;font-size:8px}.status-left{gap:8px}}

/* Tabletop edition: printed board, cardboard dossiers and equipment cards. */
:root{--accent:#c99554;--text:#eee0c1;--muted:#bcb294;--line:#70664e;--panel:#38382d}
body{background:repeating-linear-gradient(4deg,#252720 0px,#252720 3px,#292a22 4px,#292a22 7px);color:#eee0c1}
.top-nav{background:#25271f;border-bottom:3px solid #8a7452}.brand-sub{color:#b9ad8d}.brand-name span{color:#c99554}
.game-wrap{max-width:1800px;margin:auto;padding:18px 24px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.board-column{min-width:0}.right-column{display:flex;flex-direction:column;gap:18px;grid-column:auto}
.panel,.battlefield,.survivor-card,.survivor-card.chosen{border:2px solid #77694f;border-radius:2px;background:linear-gradient(115deg,#414237,#30332b);box-shadow:3px 5px 0 #151912,0 10px 25px #0005}.battlefield{padding:18px}.battlefield-heading h2 span{color:#c1b596}.section-eyebrow,.eyebrow{color:#e2b873}.field-hint,.tiny,.mission-desc,.roster-meta,.roster-foot,.map-help,.map-legend,.interiors-label,.interiors-label span,.survivor-card p{color:#c4bda5}.control,.select-target{background:#25291f;color:#ede2c7;border-color:#827655;border-radius:2px}.btn{border-radius:2px;background:#4a4d3e;border-color:#928264}.btn-primary,.btn-action.strong{background:#b18448;color:#151b17;border-color:#d9b777}.btn:disabled{opacity:.45}.pill{border-radius:1px;background:#484939;color:#e7d7b5;border-color:#796a4c}.status-strip{background:#292d24;border:1px solid #7a7055}.status-left,.status-right{color:#ddd0af}
.map-frame{padding:8px;background:#968565;border:5px solid #514c3a;box-shadow:inset 0 0 0 2px #b4a382}.map-grid{gap:2px}.tile{border:1px solid #b1a17d;aspect-ratio:1;min-height:75px}.tile-art:after{background:linear-gradient(160deg,#e4ce9a0a,#12180d35)}.tile.selected{outline:3px solid #ffd37e;outline-offset:-4px}.tile-coord{font-size:11px;background:#1b201bd9;padding:4px;color:#f1e5c4}.map-icon{width:21px;height:21px;font-size:13px}.tokens{gap:4px;padding:22% 5% 8%}.map-token{width:clamp(24px,3.4vw,44px);height:clamp(24px,3.4vw,44px);box-shadow:0 5px 0 #141b16,0 7px 6px #0008}.map-token.hero{border-radius:7px 7px 40% 40%;border-width:3px}.map-token.hero .token-img{border-radius:4px 4px 40% 40%}.door-label{background:#22291e;color:#ffe4a1;padding:3px;font-size:9px}.inner-grid{gap:9px}.inner-grid .tile-coord{font-size:10px}.inner-grid .tokens{padding-top:28%}.event-log{margin-top:18px;padding:12px}.event-log summary{cursor:pointer;color:#c9b68b}.event-log .log-list{max-height:180px}
.character-card,.equipment-card{color:#292a21;background:repeating-linear-gradient(0deg,#e0d1ac 0px,#e0d1ac 3px,#ddcda7 4px);border:6px solid #7b7255;outline:1px solid #171f18;box-shadow:3px 5px 0 #151c1799;border-radius:5px}.character-card{padding:16px}.character-card .section-eyebrow,.character-card .tiny{color:#554a33}.character-card p,.perk-list{font-size:12px;line-height:1.5}.perk-list{padding-left:18px}.character-counters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.character-counters b{font-size:23px;text-align:center;border:1px solid #857956;padding:7px}.character-counters small{display:block;font-size:9px;margin-top:4px}.character-slots{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:14px}.character-slots span{border:1px dashed #8f805d;padding:7px;font-size:10px}.roster-item{background:#30372b;border-color:#6e6a4d}.roster-item.active{background:#5d5237}.roster-name{color:#f1e1b9}.roster-item:disabled{opacity:.8}
.table-cards{margin-top:25px;padding:20px;background:#34392b;border:2px solid #736847;box-shadow:4px 6px 0 #171d16}.table-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.table-heading span{font-size:11px;color:#c3b894}.deck-area{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:20px;margin:20px 0}.deck-stack,.discard-stack{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px;gap:15px;border:7px double #aa9772;border-radius:5px;background:repeating-linear-gradient(45deg,#383e30 0px,#383e30 6px,#414834 7px,#414834 9px);box-shadow:4px 4px #c0ae84,7px 7px #21281e}.deck-stack b{font:64px Impact,serif}.deck-stack span,.discard-stack span,.last-draw>span{font-size:11px;letter-spacing:.12em;font-weight:bold}.deck-stack small,.discard-stack small{font-size:10px;color:#d6c59d}.discard-stack{border-style:dashed;background:#282e23;box-shadow:none}.last-draw .equipment-card{margin-top:9px}.last-draw p{font-size:12px;margin-top:12px}.last-draw .card-illustration{height:65px}.last-draw .card-stats{display:none}.last-draw .equipment-card h3{font-size:20px}.last-draw .card-effect{min-height:0}.last-draw .supply-symbol{font-size:38px;padding:8px}
.equipment-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}.equipment-row h4,.slot-tab{min-height:34px;margin:0 0 9px;font-size:10px;letter-spacing:.06em;display:flex;align-items:center;color:#eee0b8}.slot-tab{width:100%;padding:6px;background:#343c2b;border:1px solid #827653}.inventory-card.selected .slot-tab{background:#b38b50;color:#151e14}.equipment-card{border-width:5px;overflow:hidden}.equipment-card header{background:#343c2c;color:#f7e8c1;padding:10px}.equipment-card header span{font-size:9px;text-transform:uppercase;letter-spacing:.05em}.equipment-card h3{font-size:23px;margin-top:7px;overflow-wrap:anywhere}.card-illustration{height:130px;background:radial-gradient(#c9b98d,#a39269);padding:15px;border-bottom:2px solid #827453}.card-art{width:100%;height:100%;object-fit:contain;filter:drop-shadow(3px 5px 2px #473c3877)}.card-stats{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:8px;gap:0}.card-stats div{padding:7px 3px;border-bottom:1px solid #b2a078}.card-stats dt{font-size:9px;text-transform:uppercase}.card-stats dd{font-size:17px;font-weight:bold;margin:3px 0 0}.card-effect{padding:10px;font-size:11px;line-height:1.5;min-height:90px;border-top:1px solid #a09066}.rarity-rare{border-color:#6a7b82}.rarity-exceptional{border-color:#a17b38}.rarity-uncommon{border-color:#738250}.supply-symbol{font-size:75px;text-align:center;padding:30px;color:#74573d}.empty-card{min-height:330px;display:grid;place-items:center;border:2px dashed #77765a;color:#b7b08e;font-size:12px;background:#292f24}.bag-slot{background:#353b2c;border-radius:1px}.bag-slot.selected{background:#665737}.right-column .action-panel .section-eyebrow{color:#e2b873}.right-column .panel{padding:14px}.map-help{font-size:12px}.log-line{color:#d0c4a5}.log-line span{color:#c7955e}.setup-wrap .survivor-card:hover{background:#464a3a}.avatar{background:#343a2c}.survivor-role{color:#e1b773}
@media(min-width:1500px){.game-layout{grid-template-columns:minmax(0,1fr) 370px}.card-illustration{height:160px}}
@media(max-width:1100px){.game-layout{grid-template-columns:minmax(0,1fr) 300px;gap:16px}.equipment-row{grid-template-columns:repeat(2,minmax(0,1fr))}.deck-area{gap:12px;grid-template-columns:1fr 1fr}.last-draw{grid-column:1/-1}.last-draw .equipment-card{max-width:290px}.game-wrap{padding:12px}.map-icon{width:16px;height:16px}.door-label{font-size:8px}}
@media(max-width:780px){.game-layout{display:flex;flex-direction:column}.board-column,.right-column{width:100%}.right-column{order:0;display:flex}.battlefield{padding:8px}.table-cards{padding:12px}.deck-stack,.discard-stack{padding:12px;min-height:190px}.map-token{width:24px;height:24px}.tile{min-height:55px}.tile-coord{font-size:9px;padding:2px}.door-label{font-size:6px}.map-icon{width:13px;height:13px}.inner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-card h3{font-size:21px}.card-illustration{height:110px}.card-effect{font-size:11px}.top-nav{padding:12px}.tokens{gap:2px}.table-heading span{line-height:1.5}}

/* Keep the board and the card table within a practical desktop reading scale. */
.map-frame{max-width:min(100%,62vh,680px);margin:0 auto}.inner-grid{max-width:680px;margin:0 auto}.inner-grid .tile{aspect-ratio:2}.battlefield .interiors-label{max-width:680px;margin:12px auto 8px}.tile{min-height:0}.pill,.team-count,.map-token,.round-badge,.result-stats b{font-family:system-ui,Segoe UI,sans-serif}.roster-item{padding:10px}.roster-foot{padding:10px}.character-card .avatar.large{width:48px;height:48px}.character-card{padding:12px}.character-counters{margin:10px 0}.character-counters b{padding:5px;font-size:20px}.character-card h3{font-size:23px}.character-slots span{padding:5px}.right-column .hero-action-header{margin-top:4px}.right-column .hero-action-header .avatar.medium{display:none}.right-column .hero-action-header h3{font-size:18px}.equipment-card{font-family:system-ui,Segoe UI,sans-serif}
@media(max-width:780px){.map-frame{max-width:100%}.inner-grid .tile{aspect-ratio:1.8}.game-wrap{padding:8px}.card-stats dd{font-size:15px}.equipment-row{gap:10px}.equipment-card h3{font-size:19px}.card-effect{padding:8px}.equipment-card header{padding:8px}.equipment-card header span{font-size:8px}}

.deck-area{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr)}.deck-area>*{min-width:0;overflow-wrap:anywhere}.equipment-row>*{min-width:0}.deck-stack .btn{white-space:normal}.top-right{flex-wrap:wrap}
@media(max-width:1100px){.deck-area{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.top-nav{height:auto;min-height:69px;flex-wrap:wrap;gap:12px}.top-right{margin-left:auto}.status-left,.status-right{flex-wrap:wrap}.deck-stack,.discard-stack{padding:10px;border-width:4px}.deck-stack span,.discard-stack span{font-size:9px}.deck-stack b{font-size:48px}.equipment-row{grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-card h3{font-size:18px}.card-stats{padding:5px}.card-stats dt{font-size:8px}.table-heading h2{font-size:25px}}

/* Clarity pass: explicit action costs, contextual rules and readable tactical feedback. */
:root{font-family:system-ui,Segoe UI,sans-serif}.save-status{font-size:10px;max-width:180px;color:#c9bea0}.resume-banner{padding:18px;border:2px solid #9e8d61;background:#374332;display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:26px}.resume-banner p{font-size:12px;margin-top:5px;color:#d6c8a4}.turn-guide{display:flex;gap:24px;align-items:center;justify-content:space-between;border-left:4px solid #d5ad68;background:#323c2b;padding:14px 18px;margin:14px 0}.turn-guide span{display:block;color:#e2bf7f;font-size:10px;letter-spacing:.1em;margin-bottom:6px}.turn-guide strong{font-size:13px}.turn-guide p{font-size:12px;max-width:380px;color:#d2c7aa}.action-grid{gap:8px}.btn-action{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;text-align:left;white-space:normal;min-height:48px;font-size:12px;padding:9px}.btn-action b{font-size:10px;color:#ebce95}.btn-action small{width:100%;font-size:10px;line-height:1.45;color:#c1bba6;font-weight:400}.btn-action:disabled{opacity:.7;filter:none}.btn-action.available{background:#43503a;border-color:#aa9564}.bag-actions{flex-direction:column}.bag-actions .btn{font-size:12px}.bag-slots{gap:5px}.bag-slot{font-size:11px;overflow-wrap:anywhere}.attack-preview{margin:10px 0;background:#282d23;padding:10px;border:1px solid #8c7957;font-size:12px;line-height:1.6;color:#e5d1aa}.attack-preview strong{display:block;color:#f0ae92}.utility-actions{margin:14px 0}.utility-actions summary{cursor:pointer;font-size:12px;color:#d9c091;padding:8px 0}.utility-actions .btn{width:100%;margin-top:8px}.turn-footer small,.turn-hint{font-size:11px;color:#d5c9a5;line-height:1.5}.turn-hint{margin-bottom:9px}.turn-footer small{display:block;margin-top:7px}.deck-hint{font-size:11px!important;letter-spacing:0!important;line-height:1.4;font-weight:400!important}.roll-panel{border:2px solid #8f7c53;background:#292f24;padding:15px;margin-top:15px}.roll-panel>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:11px}.roll-panel p{font-size:13px;color:#e5d4a6}.dice-tray{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.die{width:38px;height:38px;border:2px solid #c1af87;background:#e5d9b8;color:#282f24;border-radius:6px;display:grid;place-items:center;font-size:22px;font-weight:800;box-shadow:2px 3px #131a11}.die.hit{background:#bad096;border-color:#e0f1b9}.die.miss{background:#c2b69b;border-color:#8a7e67}.map-token .token-img{object-fit:contain}.map-token.hero{width:40px;height:46px}.tile.reachable:not(.selected){box-shadow:inset 0 0 0 2px #a6bb7c}.tile.can-attack:not(.selected){box-shadow:inset 0 0 0 2px #db9a80}.card-illustration{background:radial-gradient(#e8dfca,#b4a47c)}.card-art{filter:drop-shadow(2px 4px 2px #3d352c55)}.character-card .avatar.large{width:72px;height:80px}.survivor-card .avatar.large{width:82px;height:90px}.hero-intro p{max-width:720px}.right-column .action-panel{order:0}
@media(max-width:780px){.turn-guide{display:block}.turn-guide p{margin-top:10px}.resume-banner{flex-direction:column;align-items:start}.save-status{max-width:140px}.map-token.hero{width:25px;height:29px}.character-card .avatar.large{width:64px;height:70px}}

.right-column .action-panel{order:-1}.mobile-jump{display:none}#battlefield,#turn-actions{scroll-margin-top:12px}
@media(max-width:780px){.board-column{display:contents}.game-layout .battlefield{order:0}.right-column{order:1}.game-layout .roll-panel{order:2;width:100%}.game-layout .table-cards{order:3;width:100%}.game-layout .event-log{order:4;width:100%}.mobile-jump{display:inline-flex;text-decoration:none}}
