:root{--bg:#081018;--panel:#0d1822;--panel2:#101f2b;--line:#243542;--text:#edf3f6;--muted:#91a5b3;--red:#d63333;--orange:#ff6427;--green:#49d17d;--yellow:#ffcc3d}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit}.game-shell{min-height:100vh;display:grid;grid-template-columns:154px 1fr;grid-template-rows:76px 1fr}.topbar{grid-column:1/3;background:linear-gradient(90deg,#07111a,#0c1822);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{font-size:34px;color:var(--orange);text-shadow:13px 4px 0 #b52f1e}.brand strong{display:block;font-size:22px;letter-spacing:.4px}.brand em{color:var(--orange);font-style:normal}.brand small{display:block;font-size:9px;letter-spacing:3px;color:var(--muted);margin-top:2px}.player-strip{display:flex;align-items:center;gap:18px}.player-strip>div{padding:8px 12px;border-left:1px solid var(--line)}.player-strip small{display:block;color:var(--muted)}.money{color:var(--green);font-weight:800}.xp{color:var(--yellow);font-weight:800}.sidebar{background:#0a141d;border-right:1px solid var(--line);padding:10px 8px;display:flex;flex-direction:column;gap:4px}.sidebar a{display:flex;align-items:center;gap:12px;padding:12px 10px;text-decoration:none;border-radius:5px;color:#d9e1e6;font-size:14px}.sidebar a span{width:18px;text-align:center;color:#b8c4cc}.sidebar a.active{background:linear-gradient(90deg,#b32529,#8c2428);color:#fff}.logout{margin-top:auto}.logout button{width:100%;background:transparent;border:1px solid var(--line);color:var(--muted);padding:10px;border-radius:5px;cursor:pointer}.dashboard{padding:18px;min-width:0}.flash{background:#143422;border:1px solid #286741;color:#baf2cc;padding:10px 14px;border-radius:6px;margin-bottom:14px}.hero-panel{background:linear-gradient(115deg,#152531,#101923 70%);border:1px solid var(--line);min-height:150px;border-radius:8px;padding:24px;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden}.hero-panel:after{content:"";position:absolute;inset:0 0 0 55%;background:radial-gradient(circle at 80% 50%,rgba(255,100,39,.18),transparent 55%);pointer-events:none}.hero-panel h1{margin:5px 0 8px;font-size:28px}.hero-panel p{max-width:680px;margin:0;color:var(--muted);line-height:1.55}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:var(--orange)}.world-status{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:rgba(5,12,18,.72);padding:14px 18px;border-radius:7px;z-index:1}.world-status small{display:block;color:var(--muted);margin-top:3px}.status-dot{width:11px;height:11px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(73,209,125,.11)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0}.stat-grid article{background:var(--panel);border:1px solid var(--line);padding:16px;border-radius:7px}.stat-grid small,.stat-grid span{display:block;color:var(--muted)}.stat-grid strong{display:block;font-size:25px;margin:4px 0}.warning{color:var(--yellow)}.map-preview{height:390px;border:1px solid var(--line);border-radius:8px;position:relative;overflow:hidden;background:linear-gradient(135deg,#21382d,#172f29 35%,#294239 36%,#20362f 60%,#152925);}.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px;transform:rotate(-8deg) scale(1.2)}.map-preview:before,.map-preview:after{content:"";position:absolute;border:3px solid rgba(205,222,211,.35);border-radius:50% 45% 50% 40%;width:65%;height:120px;left:15%;top:45%;transform:rotate(-8deg)}.map-preview:after{border-color:rgba(75,145,190,.48);width:75%;height:80px;top:62%;left:4%;}.map-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;background:rgba(5,12,18,.84);border:1px solid var(--line);padding:18px 28px;border-radius:8px}.map-center span{font-size:28px;color:var(--orange);display:block}.map-center strong,.map-center small{display:block}.map-center small{color:var(--muted);margin-top:4px}.map-controls{position:absolute;left:12px;bottom:12px;display:grid;gap:3px}.map-controls button{width:38px;height:38px;border:1px solid var(--line);background:#0c1821;color:#fff;font-size:20px;border-radius:4px}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:7px;min-height:160px}.panel header{padding:12px 14px;border-bottom:1px solid var(--line)}.empty{text-align:center;padding:22px;color:var(--muted)}.empty span{display:block;color:var(--green);font-size:25px}.empty strong{color:var(--text)}.empty p{margin:4px 0}.timeline{padding:12px 16px}.timeline>div{position:relative;padding:5px 0 14px 18px;border-left:1px solid var(--line)}.timeline span{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--orange);left:-4px;top:10px}.timeline small{display:block;color:var(--muted);margin-top:3px}.auth-page,.setup-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,rgba(211,51,51,.2),transparent 35%),linear-gradient(#071018,#0b141d)}.auth-panel,.setup-card{width:min(460px,100%);background:rgba(12,24,34,.96);border:1px solid var(--line);padding:28px;border-radius:10px}.setup-card{width:min(650px,100%)}.brand-large{margin-bottom:28px}.auth-panel h1,.setup-card h1{margin:8px 0 18px}.lede{color:var(--muted);line-height:1.5}.form-stack{display:grid;gap:14px}.form-stack label{display:grid;gap:6px;font-size:13px;color:#c7d2d9}.form-stack input,.form-stack select{width:100%;background:#08131c;color:#fff;border:1px solid #30424f;padding:12px 13px;border-radius:5px;font:inherit}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center!important}.check input{width:auto}.btn{border:0;border-radius:5px;padding:12px 16px;color:#fff;font-weight:750;cursor:pointer}.btn.primary{background:linear-gradient(#db3b3b,#b6252a)}.muted{color:var(--muted);font-size:13px}.error{background:#391519;border:1px solid #7a2a31;color:#ffc5c8;padding:10px;border-radius:5px}.starting-package{display:grid;grid-template-columns:1fr auto;padding:14px;border:1px solid var(--line);background:#0a151d;border-radius:6px}.starting-package span{color:var(--green);font-weight:800}.starting-package small{grid-column:1/3;color:var(--muted);margin-top:5px}
@media(max-width:900px){.game-shell{grid-template-columns:70px 1fr}.sidebar a{justify-content:center}.sidebar a{font-size:0}.sidebar a span{font-size:18px}.player-strip>div:first-child{display:none}.stat-grid{grid-template-columns:repeat(2,1fr)}.bottom-grid{grid-template-columns:1fr}.hero-panel{align-items:flex-start;gap:18px;flex-direction:column}.topbar{padding:0 12px}.brand strong{font-size:17px}.brand small{display:none}.player-strip{gap:5px}.player-strip>div{padding:6px}.map-preview{height:330px}}
@media(max-width:560px){.game-shell{display:block}.topbar{height:68px;position:sticky;top:0;z-index:10}.sidebar{position:sticky;top:68px;z-index:9;display:flex;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:6px}.sidebar a{min-width:46px;padding:10px}.logout{display:none}.dashboard{padding:10px}.stat-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-grid article{padding:12px}.stat-grid strong{font-size:20px}.map-preview{height:300px}.money,.xp{font-size:12px}.brand-mark{font-size:26px}}
/* v0.2 Regional Map */
.sidebar a.disabled{opacity:.38;cursor:default}.map-preview-live{display:block}.map-badge{position:absolute;right:12px;top:12px;border:1px solid rgba(73,209,125,.45);background:rgba(8,25,17,.88);color:var(--green);font-size:10px;font-weight:850;letter-spacing:1.4px;padding:7px 9px;border-radius:4px}.readiness-list{padding:15px;display:grid;gap:11px}.readiness-list>div{display:flex;align-items:center;gap:10px;color:#cfd9df}.readiness-list span{color:var(--green);font-size:10px}.map-shell{height:100vh;min-height:640px}.map-page{min-width:0;display:flex;flex-direction:column;overflow:hidden;background:#081018}.map-toolbar{height:78px;flex:0 0 auto;border-bottom:1px solid var(--line);padding:11px 18px;display:flex;align-items:center;justify-content:space-between;background:#0b151e}.map-toolbar h1{margin:1px 0 0;font-size:21px}.map-toolbar p{margin:2px 0 0;color:var(--muted);font-size:12px}.map-coordinate{font-variant-numeric:tabular-nums;color:#b9c9d3;background:#071018;border:1px solid var(--line);border-radius:5px;padding:8px 10px;font-size:12px}.operational-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;min-height:0;flex:1}.map-stage-wrap{position:relative;min-width:0;min-height:470px;overflow:hidden;background:#18232a}.regional-map{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;background:#17242b;user-select:none}.regional-map.dragging{cursor:grabbing}.map-tile-layer{position:absolute;inset:0}.map-tile-layer img{position:absolute;width:256px;height:256px;max-width:none;filter:saturate(.78) brightness(.72) contrast(1.07)}.regional-map:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(rgba(3,12,17,.08),rgba(4,11,16,.14)),radial-gradient(circle at center,transparent 62%,rgba(3,9,14,.28))}.map-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:2;overflow:visible}.region-boundary{fill:rgba(255,100,39,.035);stroke:rgba(255,120,61,.9);stroke-width:2;stroke-dasharray:8 7;vector-effect:non-scaling-stroke}.map-feature{cursor:pointer;outline:none}.map-feature .marker-halo{fill:rgba(0,0,0,.25);stroke:rgba(255,255,255,.13);stroke-width:1}.map-feature circle:not(.marker-halo){stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}.feature-settlement circle:not(.marker-halo){fill:#efaa32}.feature-water circle:not(.marker-halo){fill:#3fa6d9}.feature-woodland circle:not(.marker-halo){fill:#48a966}.map-feature.selected circle:not(.marker-halo){stroke:#fff;stroke-width:3}.feature-label{fill:#fff;font-size:12px;font-weight:750;paint-order:stroke;stroke:rgba(5,11,16,.92);stroke-width:4px;stroke-linejoin:round;pointer-events:none}.map-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;background:rgba(7,16,24,.88);border:1px solid var(--line);border-radius:6px;padding:9px 12px;color:var(--muted);font-size:12px}.map-zoom-controls{position:absolute;left:12px;top:12px;z-index:6;display:grid;gap:4px}.map-zoom-controls button{width:40px;height:40px;border:1px solid #334653;background:rgba(8,17,24,.94);color:#fff;border-radius:5px;font-size:20px;cursor:pointer}.map-zoom-controls button:hover{background:#132531}.map-attribution{position:absolute;right:5px;bottom:3px;z-index:6;font-size:9px;background:rgba(255,255,255,.84);color:#222;padding:2px 4px}.map-scale{position:absolute;left:14px;bottom:14px;z-index:6;border-left:2px solid #fff;border-right:2px solid #fff;border-bottom:2px solid #fff;color:#fff;font-size:10px;text-align:center;text-shadow:0 1px 2px #000;line-height:14px}.map-side-panel{background:#0b151e;border-left:1px solid var(--line);overflow:auto}.map-panel-section{border-bottom:1px solid var(--line)}.map-panel-section>header{height:43px;display:flex;align-items:center;padding:0 14px;background:#0d1923;font-size:13px}.layer-toggle{display:grid;grid-template-columns:18px 16px 1fr auto;align-items:center;gap:9px;padding:11px 14px;border-top:1px solid rgba(36,53,66,.6);font-size:13px;cursor:pointer}.layer-toggle input{accent-color:var(--orange)}.layer-toggle b{font-size:11px;color:var(--muted);font-weight:700}.layer-swatch{width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.45)}.layer-swatch.settlement{background:#efaa32}.layer-swatch.water{background:#3fa6d9}.layer-swatch.woodland{background:#48a966}.layer-swatch.region{background:var(--orange)}.location-empty{text-align:center;color:var(--muted);padding:26px 16px}.location-empty span{display:block;font-size:28px;color:#657d8d}.location-empty p{font-size:12px}.feature-detail{padding:14px}.feature-detail h2{font-size:18px;margin:8px 0 13px}.feature-type-tag{display:inline-block;font-size:9px;text-transform:uppercase;letter-spacing:1.1px;font-weight:850;padding:4px 6px;border-radius:3px;background:#1a2934;color:#c8d5dd}.feature-detail dl,.map-data-list{margin:0;display:grid}.feature-detail dl>div,.map-data-list>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid rgba(36,53,66,.7);padding:8px 0;font-size:11px}.feature-detail dt,.map-data-list dt{color:var(--muted)}.feature-detail dd,.map-data-list dd{margin:0;text-align:right}.btn-map-center{width:100%;margin-top:12px;border:1px solid #7f2c2b;background:#47191b;color:#fff;border-radius:4px;padding:9px;font-weight:750;cursor:pointer}.map-data-list{padding:7px 14px 12px}.map-data-list>div{padding:7px 0}
@media(max-width:900px){.operational-map-layout{grid-template-columns:minmax(0,1fr) 235px}.map-shell{height:auto;min-height:100vh}.map-page{min-height:calc(100vh - 76px)}.feature-label{font-size:11px}}
@media(max-width:700px){.map-shell{display:block}.map-page{min-height:0;overflow:visible}.map-toolbar{height:auto;min-height:72px;padding:10px}.map-coordinate{display:none}.operational-map-layout{display:block}.map-stage-wrap{height:62vh;min-height:400px}.map-side-panel{border-left:0;border-top:1px solid var(--line);overflow:visible}.map-panel-section{display:block}.layer-toggle{min-height:44px}}
@media(max-width:560px){.map-stage-wrap{height:58vh;min-height:360px}.map-toolbar h1{font-size:18px}.map-zoom-controls button{width:44px;height:44px}.map-attribution{font-size:8px}}

/* v0.3 Stations, Vehicles & Crews */
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px;padding:4px 2px}.page-heading h1{margin:3px 0;font-size:28px}.page-heading p{margin:0;color:var(--muted)}.budget-chip{min-width:150px;background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:10px 13px;text-align:right}.budget-chip small{display:block;color:var(--muted)}.budget-chip strong{font-size:20px;color:var(--green)}.ops-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,.75fr);gap:12px}.panel>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel>header span{font-size:11px;color:var(--muted)}.ops-row,.crew-row{display:flex;align-items:center;gap:13px;padding:14px;border-bottom:1px solid rgba(36,53,66,.7)}.ops-icon,.crew-avatar{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border-radius:7px;background:#142531;border:1px solid var(--line);color:var(--orange);font-weight:850}.crew-avatar{border-radius:50%;color:#fff;background:#243947}.ops-main{min-width:0;flex:1}.ops-main strong,.ops-main small,.assignment{display:block}.ops-main small,.assignment{margin-top:3px;color:var(--muted);font-size:12px}.meter-line{display:flex;gap:15px;margin-top:8px;font-size:11px;color:#c8d5dc}.status-pill{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:5px 8px;border-radius:999px;background:#202a32;border:1px solid #344550;color:#c8d3da;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.status-pill.ok{background:#123521;border-color:#28643f;color:#8de7aa}.status-pill.warn{background:#3a2c12;border-color:#70541d;color:#f5cf68}.form-panel{align-self:start}.ops-form{padding:15px;display:grid;gap:13px}.ops-form label{display:grid;gap:6px;color:#bdcbd4;font-size:12px}.ops-form input,.ops-form select,.inline-update select{width:100%;background:#08131c;color:#fff;border:1px solid #30424f;border-radius:5px;padding:10px 11px;font:inherit}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-help{color:var(--muted);line-height:1.45}.catalogue{border-top:1px solid var(--line)}.catalogue>div{display:grid;gap:4px;padding:12px 15px;border-bottom:1px solid rgba(36,53,66,.55)}.catalogue small{color:var(--muted);line-height:1.35}.catalogue span{font-size:10px;color:#d4dee3}.fleet-card{padding:15px;border-bottom:1px solid rgba(36,53,66,.7)}.fleet-top{display:flex;justify-content:space-between;gap:15px}.fleet-top h3{font-size:21px;margin:4px 0}.fleet-top p{margin:0;color:var(--muted);font-size:12px}.vehicle-tag{font-size:9px;color:var(--orange);font-weight:850;letter-spacing:1px}.fleet-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:13px 0}.fleet-stats span{padding:8px;background:#09141d;border:1px solid #1e303c;border-radius:5px;font-weight:750}.fleet-stats small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}.inline-update{display:grid;grid-template-columns:1fr 1fr auto;gap:7px}.inline-update button{border:1px solid #4a5964;background:#172732;color:#fff;border-radius:5px;padding:7px 12px;cursor:pointer}.crew-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto}.crew-update{grid-column:2/4;width:100%;grid-template-columns:1fr 1.2fr 1fr auto;margin-top:4px}.dashboard-actions{display:flex;gap:8px;padding:0 14px 14px}.dashboard-actions a{background:#142531;border:1px solid #2c414f;padding:8px 10px;text-decoration:none;border-radius:4px;font-size:12px}.layer-swatch.station{background:#f05b3b;border-radius:2px}.feature-station circle:not(.marker-halo){fill:#ef5d3f}.feature-type-tag.station{color:#ff9d86}.btn:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:1000px){.ops-grid{grid-template-columns:1fr}.form-panel{order:-1}}@media(max-width:700px){.page-heading{align-items:stretch;flex-direction:column}.budget-chip{text-align:left}.crew-row{grid-template-columns:auto minmax(0,1fr)}.crew-row>.status-pill{grid-column:2}.crew-update{grid-column:1/3;grid-template-columns:1fr}.inline-update{grid-template-columns:1fr}.fleet-stats{grid-template-columns:1fr 1fr 1fr}.form-two{grid-template-columns:1fr}}


/* v0.3.1 UI pass — map placement tools */
.map-flash{position:absolute;z-index:20;top:88px;left:50%;transform:translateX(-50%);max-width:min(560px,calc(100% - 30px));box-shadow:0 8px 24px rgba(0,0,0,.3)}
.map-tool-palette{position:absolute;left:62px;top:12px;z-index:7;display:flex;gap:5px;padding:4px;background:rgba(8,17,24,.94);border:1px solid #334653;border-radius:6px}.map-tool-palette button{min-width:76px;height:40px;border:1px solid transparent;background:transparent;color:#c9d6dd;border-radius:4px;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;font:inherit}.map-tool-palette button span{font-size:15px}.map-tool-palette button b{font-size:11px}.map-tool-palette button:hover{background:#132531}.map-tool-palette button.active{background:#54201a;border-color:#a94430;color:#fff}.regional-map.placement-mode{cursor:crosshair}.map-placement-banner{position:absolute;z-index:7;left:50%;top:12px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100% - 340px);background:rgba(72,27,21,.96);border:1px solid #a94a34;border-radius:6px;padding:8px 10px;color:#fff;font-size:11px}.map-placement-banner[hidden]{display:none}.map-placement-banner strong{white-space:nowrap}.map-placement-banner span{color:#f0c9c0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-placement-banner button{border:0;background:#fff1;color:#fff;border-radius:4px;padding:5px 8px;cursor:pointer}.placement-panel>header span{margin-left:auto;color:var(--green);font-size:11px;font-weight:800}.map-placement-form{display:grid;gap:12px;padding:14px}.map-placement-form label{display:grid;gap:5px;color:#bdcbd4;font-size:11px}.map-placement-form input{width:100%;background:#08131c;color:#fff;border:1px solid #30424f;border-radius:5px;padding:10px 11px;font:inherit}.placement-coordinates{display:grid;grid-template-columns:1fr 1fr;gap:7px}.placement-coordinates>div{background:#08131c;border:1px solid #243846;border-radius:5px;padding:9px}.placement-coordinates small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.5px}.placement-coordinates strong{display:block;margin-top:3px;font-size:11px;font-variant-numeric:tabular-nums}.placement-hint{margin:0;color:var(--muted);font-size:11px;line-height:1.4}.placement-hint.invalid{color:#ff9d86}.placement-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:7px}.placement-actions button{min-height:40px}.btn-secondary{border:1px solid #3a4b57;background:#13212b;color:#d7e0e5;border-radius:5px;cursor:pointer}.placement-dim{opacity:.55}.placement-preview{pointer-events:none}.placement-pulse{fill:rgba(239,93,63,.16);stroke:rgba(255,137,109,.7);stroke-width:2;stroke-dasharray:4 3}.placement-dot{fill:#ef5d3f;stroke:#fff;stroke-width:3}.placement-label{fill:#fff;font-size:12px;font-weight:800;paint-order:stroke;stroke:rgba(5,11,16,.92);stroke-width:4px}.page-heading-actions{display:flex;align-items:center;gap:8px}.btn-map-place{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 13px;border:1px solid #9c412d;background:#4d1f19;color:#fff;border-radius:5px;text-decoration:none;font-size:12px;font-weight:800}
@media(max-width:900px){.map-placement-banner{max-width:calc(100% - 300px)}.map-tool-palette button{min-width:48px}.map-tool-palette button b{display:none}}
@media(max-width:700px){.map-tool-palette{left:62px;top:10px}.map-placement-banner{top:62px;left:10px;right:10px;transform:none;max-width:none}.placement-coordinates{grid-template-columns:1fr}.page-heading-actions{align-items:stretch;flex-direction:column}.btn-map-place{width:100%}}
@media(max-width:430px){.map-tool-palette button{min-width:44px;padding:0}.map-tool-palette{gap:2px}.map-placement-banner span{display:none}}

/* v0.4 Incident generation */
.layer-swatch.incident{background:#ff5d3f;border-radius:50%}.feature-incident circle:not(.marker-halo){fill:#ff4f34;stroke:#ffe0d8;stroke-width:2}.feature-type-tag.incident{color:#ff9a84;background:#3b1a16}.incident-list-panel{overflow:hidden}.incident-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid rgba(36,53,66,.7);text-decoration:none;color:inherit}.incident-row:hover{background:#101d26}.incident-symbol{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#3a2915;color:#f1c45b;border:1px solid #74511c}.incident-symbol.high{background:#4a1714;color:#ff836c;border-color:#8b2d25}.incident-symbol.low{background:#173121;color:#7edba0;border-color:#2f6642}.incident-main{display:grid;gap:3px;min-width:0}.incident-main small{font-size:10px;color:var(--orange);font-weight:800;letter-spacing:.5px}.incident-main strong{font-size:15px}.incident-main em{font-style:normal;color:var(--muted);font-size:11px}.incident-priority{padding:5px 8px;border-radius:4px;font-size:9px;font-weight:900;letter-spacing:.7px;background:#443315;color:#f5d479;border:1px solid #71531d}.incident-priority.high{background:#4b1814;color:#ff927e;border-color:#8f3027}.incident-priority.low{background:#15341f;color:#88e6a7;border-color:#2e6841}.empty-state{text-align:center;padding:54px 20px;color:var(--muted)}.empty-state span{font-size:32px;color:#5f7381}.empty-state h2{color:#d9e2e7;margin:9px 0 5px}.empty-state p{max-width:520px;margin:auto;line-height:1.5}.pager{padding:14px}.incident-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:16px}.incident-heading h1{font-size:30px;margin:4px 0}.incident-heading p{max-width:720px;color:var(--muted);margin:0}.back-link{display:inline-block;color:#aabac4;text-decoration:none;font-size:12px;margin-bottom:10px}.incident-state{display:flex;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:10px}.incident-state>strong{font-size:10px}.incident-detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:12px}.incident-data{margin:0;padding:8px 15px}.incident-data>div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid rgba(36,53,66,.7)}.incident-data dt{color:var(--muted)}.incident-data dd{margin:0;text-align:right;font-weight:700}.incident-actions{display:flex;gap:8px;padding:14px}.incident-actions a,.incident-actions button{flex:1;text-align:center;text-decoration:none;display:grid;place-items:center;min-height:42px}.incident-actions .btn-secondary:disabled{opacity:.45;cursor:not-allowed}.timeline{padding:12px 16px}.timeline article{position:relative;display:grid;grid-template-columns:12px 1fr;gap:10px;padding-bottom:18px}.timeline article:before{content:"";position:absolute;left:5px;top:14px;bottom:-2px;width:1px;background:#304451}.timeline article:last-child:before{display:none}.timeline article>span{width:11px;height:11px;border-radius:50%;background:var(--orange);margin-top:4px;z-index:1}.timeline time{display:block;color:var(--muted);font-size:10px}.timeline strong{display:block;margin:2px 0}.timeline p{margin:2px 0 0;color:#a9bac4;font-size:12px}.dashboard-incidents{margin:12px 0}.dashboard-incidents>header a{font-size:11px;color:#aebdc6;text-decoration:none}.dash-incident-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 14px;border-bottom:1px solid rgba(36,53,66,.65);text-decoration:none;color:inherit}.dash-incident-row>div{display:grid}.dash-incident-row small{color:var(--orange);font-size:9px}.dash-incident-row em{font-style:normal;font-size:9px;color:#b5c2ca}.dashboard-clear{padding:22px 14px;color:var(--muted);font-size:12px}
@media(max-width:800px){.incident-detail-grid{grid-template-columns:1fr}.incident-heading{flex-direction:column}.incident-row{grid-template-columns:auto minmax(0,1fr) auto}.incident-row>.status-pill{grid-column:2/4;justify-self:start}.incident-state{width:100%;justify-content:space-between}}@media(max-width:520px){.incident-row{gap:9px;padding:12px 10px}.incident-priority{display:none}.incident-row>.status-pill{grid-column:2/3}.incident-actions{flex-direction:column}.incident-data>div{flex-direction:column;gap:4px}.incident-data dd{text-align:left}}

/* v0.4.1 simulation controls + incident reliability */
.flash-error{background:#421a18;border-color:#7c302a;color:#ffc3b8}.simulation-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;margin-bottom:12px;border:1px solid var(--line);border-radius:7px;background:#0d1822}.simulation-summary{display:flex;align-items:center;gap:12px;min-width:0}.simulation-summary>div{display:grid;gap:2px}.simulation-summary small{font-size:9px;letter-spacing:1.4px;color:var(--muted);font-weight:900}.simulation-summary strong{font-size:14px}.simulation-summary span{font-size:11px;color:var(--muted)}.simulation-indicator{width:12px;height:12px;border-radius:50%;flex:0 0 auto;background:#73818a;box-shadow:0 0 0 5px rgba(115,129,138,.12)}.simulation-running{border-color:#28543b;background:linear-gradient(90deg,#10241a,#0d1822 48%)}.simulation-running .simulation-indicator{background:var(--green);box-shadow:0 0 0 5px rgba(73,209,125,.12)}.simulation-ready{border-color:#5c4b29;background:linear-gradient(90deg,#211c11,#0d1822 48%)}.simulation-ready .simulation-indicator{background:var(--yellow);box-shadow:0 0 0 5px rgba(255,204,61,.1)}.simulation-paused{border-color:#5c3d2d;background:linear-gradient(90deg,#261710,#0d1822 48%)}.simulation-paused .simulation-indicator{background:var(--orange);box-shadow:0 0 0 5px rgba(255,100,39,.12)}.simulation-controls{display:flex;gap:7px;flex:0 0 auto}.simulation-button,.simulation-primary{min-width:132px;min-height:38px;padding:0 14px;font-weight:800}.world-status-ready .status-dot{background:var(--yellow);box-shadow:0 0 0 5px rgba(255,204,61,.11)}.world-status-paused .status-dot{background:var(--orange);box-shadow:0 0 0 5px rgba(255,100,39,.11)}.world-status-running .status-dot{background:var(--green);box-shadow:0 0 0 5px rgba(73,209,125,.11)}
@media(max-width:700px){.simulation-bar{align-items:stretch;flex-direction:column}.simulation-controls,.simulation-controls button{width:100%}.simulation-summary span{line-height:1.45}}

/* v0.5 Wildfire Simulation V1 */
.fire-perimeter{fill:rgba(255,92,42,.20);stroke:#ff744e;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none;filter:drop-shadow(0 0 5px rgba(255,90,45,.28))}.fire-perimeter.intensity-moderate{fill:rgba(255,115,48,.24);stroke:#ff8a55}.fire-perimeter.intensity-high{fill:rgba(236,64,40,.28);stroke:#ff5d42;stroke-width:2.5}.fire-perimeter.intensity-extreme{fill:rgba(210,38,30,.35);stroke:#ff342c;stroke-width:3;stroke-dasharray:7 3}.fire-perimeter.selected{stroke:#fff3df;stroke-width:3}.fire-behaviour-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.fire-behaviour-strip article,.fire-command-strip>div{background:linear-gradient(135deg,#101e28,#0b151e);border:1px solid var(--line);border-radius:7px;padding:13px}.fire-behaviour-strip small,.fire-command-strip small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.8px}.fire-behaviour-strip strong,.fire-command-strip strong{display:block;font-size:19px;margin:5px 0 2px}.fire-behaviour-strip span,.fire-command-strip span{display:block;color:var(--muted);font-size:10px}.intensity-low{color:#7edba0}.intensity-moderate{color:#f4cf63}.intensity-high{color:#ff936d}.intensity-extreme{color:#ff4e45;text-shadow:0 0 10px rgba(255,78,69,.3)}.fire-history-panel{margin-top:12px;overflow:hidden}.fire-history-panel>header span{font-size:10px;color:var(--muted)}.fire-history-list{display:grid}.fire-history-list>div{display:grid;grid-template-columns:90px 1fr 1fr 1fr;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid rgba(36,53,66,.65)}.fire-history-list time{font-size:10px;color:var(--muted)}.fire-history-list strong{font-size:12px}.fire-history-list span{font-size:11px;color:#bdc9d0}.fire-history-list em{font-style:normal;font-size:9px;font-weight:900;letter-spacing:.5px}.fire-command-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0}.fire-command-strip>div:first-child{border-color:#5b3529;background:linear-gradient(135deg,#261714,#0d1822)}
@media(max-width:950px){.fire-behaviour-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.fire-behaviour-strip{grid-template-columns:1fr 1fr}.fire-command-strip{grid-template-columns:1fr}.fire-history-list>div{grid-template-columns:70px 1fr 1fr}.fire-history-list em{grid-column:2/4}}
@media(max-width:430px){.fire-behaviour-strip{grid-template-columns:1fr}}

/* v0.5.3 Live Map & Simulation Polish */
.live-state-indicator{position:fixed;right:14px;bottom:14px;z-index:1200;display:flex;align-items:center;gap:7px;min-height:32px;padding:6px 9px;border:1px solid #2c4b3a;border-radius:5px;background:rgba(7,17,24,.94);box-shadow:0 8px 24px rgba(0,0,0,.28);font-size:9px;letter-spacing:.55px;color:#bed0d9;backdrop-filter:blur(8px)}.live-state-indicator>span{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(73,209,125,.10)}.live-state-indicator strong{font-size:9px;color:var(--green)}.live-state-indicator small{color:#8399a7;font-size:9px}.live-state-indicator[data-state="syncing"]{border-color:#5d522d}.live-state-indicator[data-state="syncing"]>span{background:var(--yellow);box-shadow:0 0 0 4px rgba(255,204,61,.10);animation:livePulse 1s ease-in-out infinite}.live-state-indicator[data-state="syncing"] strong{color:var(--yellow)}.live-state-indicator[data-state="reconnecting"]{border-color:#71352b}.live-state-indicator[data-state="reconnecting"]>span{background:var(--orange);box-shadow:0 0 0 4px rgba(255,100,39,.12);animation:livePulse .75s ease-in-out infinite}.live-state-indicator[data-state="reconnecting"] strong{color:#ff9a79}@keyframes livePulse{50%{opacity:.35;transform:scale(.72)}}
.toast-stack{position:fixed;right:14px;top:90px;z-index:1300;width:min(360px,calc(100vw - 28px));display:grid;gap:8px;pointer-events:none}.live-toast{pointer-events:auto;display:grid;grid-template-columns:30px minmax(0,1fr) 22px;gap:9px;align-items:center;padding:10px;border:1px solid #315064;border-radius:7px;background:rgba(10,23,32,.97);box-shadow:0 12px 32px rgba(0,0,0,.36);text-decoration:none;color:var(--text);animation:toastIn .22s ease-out}.live-toast-alert{border-color:#743328;background:linear-gradient(110deg,rgba(63,24,19,.98),rgba(10,23,32,.98) 56%)}.live-toast-ok{border-color:#28573a}.live-toast-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#17303f;color:#8fc7e4;font-size:12px;font-weight:900}.live-toast-alert .live-toast-icon{background:#471b16;color:#ff856c}.live-toast-ok .live-toast-icon{background:#153421;color:#7de1a0}.live-toast>div{display:grid;gap:2px;min-width:0}.live-toast strong{font-size:11px}.live-toast small{font-size:10px;color:#9fb0ba;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-toast button{border:0;background:transparent;color:#79909e;font-size:18px;cursor:pointer;padding:0;line-height:1}.live-toast.leaving{opacity:0;transform:translateX(18px);transition:.24s ease}@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.fire-perimeter{transition:fill .25s ease,stroke .25s ease,stroke-width .25s ease,opacity .25s ease}.simulation-controls button:disabled{opacity:.55;cursor:wait}.live-updated{animation:liveValueFlash .6s ease}@keyframes liveValueFlash{0%{background:rgba(73,209,125,.14)}100%{background:transparent}}
@media(max-width:560px){.live-state-indicator{right:8px;bottom:8px}.live-state-indicator small{display:none}.toast-stack{right:8px;top:76px;width:calc(100vw - 16px)}}

/* v0.5.4 Full UI/UX Refinement Pass — concept-aligned command centre */
:root{--panel:#0b1721;--panel2:#0f1d28;--line:#263b49;--muted:#91a7b5;--command-glow:rgba(255,100,39,.09)}
.content-page,.dashboard{width:100%;max-width:1680px;margin:0 auto;padding:20px 22px;min-width:0}
.panel{min-width:0;overflow:hidden;background:linear-gradient(180deg,rgba(14,29,40,.98),rgba(10,22,31,.98));border-color:#29404f;box-shadow:0 10px 28px rgba(0,0,0,.12)}
.panel>header{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;background:linear-gradient(90deg,rgba(255,100,39,.035),transparent 35%);letter-spacing:.15px}
.panel>header>span{color:var(--muted);font-size:11px}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:2px 0 18px}.page-heading h1,.incident-heading h1{font-size:clamp(25px,2.2vw,34px);line-height:1.08;margin:5px 0 7px}.page-heading p,.incident-heading p{color:var(--muted);line-height:1.5;margin:0}.page-heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.budget-chip{min-width:150px;padding:9px 12px;border:1px solid var(--line);border-radius:6px;background:#08141d}.budget-chip small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.8px}.budget-chip strong{display:block;margin-top:2px;font-size:16px}
.hero-panel{border-color:#304653;background:radial-gradient(circle at 82% 45%,rgba(255,96,36,.13),transparent 28%),linear-gradient(112deg,#142632,#0a151e 72%)}.hero-panel h1{font-size:clamp(25px,2.3vw,35px)}
.stat-grid{gap:10px}.stat-grid article{position:relative;overflow:hidden;padding:15px 16px;background:linear-gradient(145deg,#0f202b,#0a161f);border-color:#29404e}.stat-grid article:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:#405766}.stat-grid article:last-child:before{background:var(--orange)}.stat-grid small{font-size:9px;text-transform:uppercase;letter-spacing:.8px}.stat-grid strong{font-variant-numeric:tabular-nums}
.btn,.btn-secondary,.btn-map-place,.dashboard-actions a{border-radius:5px;transition:border-color .16s ease,background .16s ease,transform .16s ease}.btn:hover,.btn-secondary:hover,.btn-map-place:hover,.dashboard-actions a:hover{transform:translateY(-1px)}
.incident-detail-grid{grid-template-columns:minmax(420px,.9fr) minmax(0,1.1fr);align-items:stretch}.incident-detail-grid>.panel{min-width:0}.incident-data>div{align-items:center}.incident-data dt{font-size:12px}.incident-data dd{overflow-wrap:anywhere}
/* Timeline: marker gets its own rail; content always receives the available width. */
.timeline{padding:8px 16px 14px;min-width:0}.timeline article{position:relative;display:grid;grid-template-columns:16px minmax(0,1fr);gap:12px;padding:12px 0 15px;min-width:0}.timeline article:before{left:7px;top:25px;bottom:-12px;background:linear-gradient(#435b69,#263946)}.timeline article>span{position:relative;left:auto;top:auto;width:15px;height:15px;margin:3px 0 0;border:3px solid #152631;background:var(--orange);box-shadow:0 0 0 1px rgba(255,100,39,.55);z-index:1}.timeline article>div{min-width:0;display:grid;grid-template-columns:58px minmax(0,1fr);column-gap:10px;align-items:baseline}.timeline time{grid-column:1;grid-row:1/3;color:#77909f;font-size:10px;font-variant-numeric:tabular-nums;padding-top:2px}.timeline strong{grid-column:2;font-size:13px;line-height:1.25;margin:0;text-transform:capitalize}.timeline p{grid-column:2;margin:4px 0 0;color:#a9bbc6;font-size:12px;line-height:1.5;overflow-wrap:break-word;word-break:normal;white-space:normal}
.fire-behaviour-strip{gap:10px}.fire-behaviour-strip article{min-width:0;padding:14px 15px;border-color:#2b4351}.fire-behaviour-strip strong{font-size:clamp(16px,1.4vw,20px);font-variant-numeric:tabular-nums}.fire-history-list>div{min-width:0}.fire-history-list>*{font-variant-numeric:tabular-nums}
.incident-row{min-height:70px}.incident-row:hover,.ops-row:hover{background:rgba(255,255,255,.025)}.incident-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.incident-main em{line-height:1.4}.status-pill,.incident-priority{white-space:nowrap}
.ops-grid{align-items:start}.ops-row{min-width:0}.ops-main{min-width:0}.ops-main>strong,.ops-main>small{overflow-wrap:anywhere}.ops-form input,.ops-form select,.form-stack input,.form-stack select{min-height:42px;border-color:#324a59;background:#07141d}.ops-form input:focus,.ops-form select:focus,.form-stack input:focus,.form-stack select:focus{outline:0;border-color:#d75a31;box-shadow:0 0 0 3px rgba(255,100,39,.09)}
.map-toolbar{background:linear-gradient(90deg,#0a1720,#0d1c26);border-color:#29404f}.map-coordinate,.map-panel,.map-tools{box-shadow:0 8px 25px rgba(0,0,0,.18)}
.sidebar{background:linear-gradient(180deg,#09151e,#071119);border-color:#263b49}.sidebar a{border:1px solid transparent}.sidebar a:hover:not(.active):not(.disabled){background:#0f202b;border-color:#203746}.sidebar a.active{background:linear-gradient(90deg,#a72a27,#762021);box-shadow:inset 2px 0 #ff7545}
@media(max-width:1100px){.incident-detail-grid{grid-template-columns:1fr}.content-page,.dashboard{padding:16px}.fire-behaviour-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.content-page,.dashboard{padding:12px}.page-heading{align-items:stretch;flex-direction:column}.page-heading-actions{justify-content:flex-start}.budget-chip{flex:1}.incident-heading{gap:12px}.timeline article>div{grid-template-columns:46px minmax(0,1fr)}.fire-behaviour-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.panel>header{padding:0 12px}.incident-main em{white-space:normal}}
@media(max-width:480px){.content-page,.dashboard{padding:9px}.timeline{padding:6px 12px 12px}.timeline article{gap:9px}.timeline article>div{display:block}.timeline time{display:block;margin-bottom:2px}.timeline strong{font-size:12px}.timeline p{font-size:11px}.fire-behaviour-strip{grid-template-columns:1fr}.page-heading-actions>*{width:100%}.incident-state{padding:8px}.incident-row{grid-template-columns:30px minmax(0,1fr);gap:8px}.incident-row>.status-pill{grid-column:2}.incident-symbol{width:30px;height:30px}}

/* v0.5.5 Map Selection & Location Panel */
.selected-feature>header{justify-content:space-between}.location-panel-state{font-size:9px;font-weight:850;letter-spacing:.9px;color:#7f98a7}.feature-detail{min-width:0}.feature-detail h2{overflow-wrap:anywhere}.feature-type-tag.coordinate{background:#132734;color:#91c9e5}.feature-detail.coordinate-detail{background:linear-gradient(180deg,rgba(37,89,116,.06),transparent)}.feature-detail dl>div{align-items:flex-start}.feature-detail dd{max-width:58%;overflow-wrap:anywhere}.map-primary-action{display:block;text-align:center;text-decoration:none;background:linear-gradient(#a72b28,#75201f);border-color:#a13b31}.fire-perimeter{cursor:pointer;pointer-events:all}.fire-perimeter.selected{filter:drop-shadow(0 0 4px rgba(255,255,255,.38))}.map-feature.selected .marker-halo{fill:rgba(255,100,39,.2);stroke:rgba(255,149,104,.75)}
@media(max-width:900px){.feature-detail dd{max-width:64%}}
.map-coordinate-selection{pointer-events:none}.map-coordinate-selection .coordinate-ring{fill:rgba(13,31,43,.72);stroke:#8fd4f5;stroke-width:2;vector-effect:non-scaling-stroke}.map-coordinate-selection .coordinate-dot{fill:#fff}

/* v0.6 Dispatch & Response */
.dispatch-command-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:14px;margin:14px 0}.dispatch-ready-list{padding:8px}.dispatch-ready-list article,.response-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.dispatch-ready-list article:last-child,.response-row:last-child{border-bottom:0}.dispatch-ready-list strong,.response-row strong{display:block;font-size:14px;margin-top:3px}.dispatch-ready-list small,.response-row small{display:block;color:#8fa6b5;margin-top:3px}.dispatch-metrics{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.dispatch-metrics span{border:1px solid var(--line);background:#09151e;padding:5px 7px;border-radius:3px;font-size:10px;color:#bdd0db}.response-panel>[data-live-dispatches]{padding:8px}.response-row{grid-template-columns:minmax(0,1fr) minmax(130px,auto) auto}.empty.compact{min-height:150px}.status-pill.en-route{color:#ffb16d}.status-pill.on-scene{color:#7bd9a4}
@media(max-width:1000px){.dispatch-command-grid{grid-template-columns:1fr}}@media(max-width:650px){.dispatch-ready-list article,.response-row{grid-template-columns:1fr;gap:8px}.dispatch-metrics{justify-content:flex-start}.dispatch-ready-list form button,.response-row form button{width:100%}}

/* v0.6.1 Station Crew & Recruitment Refinement */
.form-note{display:grid;gap:3px;padding:10px 11px;border:1px solid #294453;border-radius:5px;background:linear-gradient(110deg,rgba(36,82,105,.12),rgba(8,20,29,.72));color:#b7cad5}.form-note strong{font-size:11px;color:#d7e6ee}.form-note span{font-size:10px;line-height:1.45;color:#8fa8b7}.form-panel .form-note+label{margin-top:2px}

/* v0.6.2 Dynamic Crewing & Reserve Pool */
.workforce-rule{display:flex;align-items:center;gap:12px;margin:-5px 0 14px;padding:10px 13px;border:1px solid #294453;border-radius:6px;background:linear-gradient(90deg,rgba(255,100,39,.08),rgba(8,20,29,.78));color:#b7cad5}.workforce-rule strong{color:#f1f6f8;font-size:11px;letter-spacing:.4px;white-space:nowrap}.workforce-rule span{font-size:11px;line-height:1.45}.crew-row .assignment{color:#91a9b8}.live-release-form{margin:0}
@media(max-width:650px){.workforce-rule{align-items:flex-start;flex-direction:column;gap:4px}}

/* v0.6.3 Live Unit Movement */
.layer-swatch.response{background:#f59e0b;box-shadow:0 0 8px rgba(245,158,11,.5)}
.response-route{fill:none;stroke:#f59e0b;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:6 5;opacity:.58;pointer-events:none}
.response-route.status-returning{stroke:#5da9e9;opacity:.48}
.response-unit{pointer-events:none;filter:drop-shadow(0 3px 5px rgba(0,0,0,.65))}
.response-unit .response-halo{fill:rgba(245,158,11,.15);stroke:rgba(245,158,11,.38);stroke-width:1.5}
.response-unit .response-core{fill:#f59e0b;stroke:#fff4d1;stroke-width:1.5}
.response-unit.status-on_scene .response-core{fill:#ef4444}.response-unit.status-on_scene .response-halo{fill:rgba(239,68,68,.16);stroke:rgba(239,68,68,.42)}
.response-unit.status-returning .response-core{fill:#5da9e9;stroke:#dbeafe}.response-unit.status-returning .response-halo{fill:rgba(93,169,233,.14);stroke:rgba(93,169,233,.4)}
.response-label{fill:#f8fafc;font-size:10px;font-weight:800;paint-order:stroke;stroke:#071018;stroke-width:3px;stroke-linejoin:round}


/* v0.7 Firefighting & Containment */
.suppression-command-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr);gap:14px;margin:14px 0}.suppression-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.suppression-overview article{padding:15px;background:#0a1720}.suppression-overview small{display:block;color:#77909f;font-size:9px;text-transform:uppercase;letter-spacing:.75px}.suppression-overview strong{display:block;margin-top:5px;font-size:20px;font-variant-numeric:tabular-nums}.suppression-overview span{display:block;margin-top:3px;color:#8fa6b5;font-size:10px}.containment-track{height:12px;margin:16px;border:1px solid #314b59;border-radius:999px;background:#061019;overflow:hidden}.containment-track>span{display:block;height:100%;min-width:0;background:linear-gradient(90deg,#b53329,#f59e0b,#64c58c);transition:width .7s ease}.suppression-copy{margin:0;padding:0 16px 16px;color:#a8bbc6;font-size:12px;line-height:1.5}.suppression-resource-list{padding:8px}.suppression-resource-list article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border-bottom:1px solid var(--line)}.suppression-resource-list article:last-child{border-bottom:0}.suppression-resource-list strong{display:block;font-size:13px}.suppression-resource-list small{display:block;margin-top:3px;color:#8fa6b5}.suppression-resource-list article>span{font-size:9px;font-weight:850;letter-spacing:.65px;color:#7bd9a4;border:1px solid rgba(123,217,164,.25);background:rgba(123,217,164,.07);padding:5px 7px;border-radius:3px}.suppression-panel>header span{font-size:9px;font-weight:850;letter-spacing:.7px;color:#f4b36d}.incident-state strong:where(:not(.dummy)){letter-spacing:.5px}
@media(max-width:1000px){.suppression-command-grid{grid-template-columns:1fr}}@media(max-width:650px){.suppression-overview{grid-template-columns:1fr}.suppression-resource-list article{align-items:flex-start}}

@media(max-width:1100px){.fire-command-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* v0.8 Weather & Fire Behaviour V2 */
.regional-weather-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line,#263241);border:1px solid var(--line,#263241);border-radius:12px;overflow:hidden;margin:0 0 14px}.regional-weather-strip article{background:#101720;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.regional-weather-strip small{color:#7f8c9d;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.regional-weather-strip strong{font-size:18px}.regional-weather-strip span{color:#8f9baa;font-size:12px}.danger-low{color:#9bc78f}.danger-moderate{color:#e0b35a}.danger-high{color:#ef8b42}.danger-very_high,.danger-extreme{color:#ff5d45}.merge-notice{display:flex;align-items:center;gap:14px;border:1px solid rgba(255,107,61,.4);background:rgba(255,107,61,.08);padding:13px 16px;border-radius:10px;margin-bottom:14px}.merge-notice strong{color:#ff6b3d;font-size:12px;letter-spacing:.08em}.merge-notice span{color:#b8c2cf}.merge-notice a{color:#ff9a72;font-weight:700}@media(max-width:700px){.regional-weather-strip{grid-template-columns:1fr}.merge-notice{align-items:flex-start;flex-direction:column;gap:5px}}

/* v0.9 Incident Command System */
.incident-command-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:14px;margin:14px 0}.incident-command-grid.secondary{grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr)}.command-panel>header span,.sector-panel>header span,.objectives-panel>header span,.allocation-panel>header span{font-size:9px;font-weight:850;letter-spacing:.7px;color:#f2a66d}.command-empty{padding:18px}.command-empty>strong{font-size:14px}.command-empty>p{color:#90a5b2;max-width:720px;font-size:12px;line-height:1.5}.command-empty form{display:flex;gap:10px;align-items:end;max-width:680px}.command-empty label{display:grid;gap:5px;flex:1;font-size:10px;color:#8fa6b5}.command-empty input,.command-create-form input,.command-create-form select,.command-roles select,.objective-list select,.allocation-list select{background:#07131c;border:1px solid #2a414f;color:#d9e5eb;border-radius:4px;padding:9px 10px;min-width:0}.command-post-banner{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.command-post-banner>div{padding:13px;background:#09161f}.command-post-banner small{display:block;color:#748d9c;text-transform:uppercase;font-size:8px;letter-spacing:.65px}.command-post-banner strong{display:block;margin-top:4px;font-size:12px}.command-roles{padding:8px}.command-roles form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;padding:8px;border-bottom:1px solid var(--line)}.command-roles form:last-child{border-bottom:0}.command-roles label{display:grid;grid-template-columns:145px 1fr;gap:10px;align-items:center}.command-roles label span{font-size:10px;font-weight:800;color:#aebfca}.sector-list,.objective-list,.allocation-list{padding:8px}.sector-list article,.objective-list article{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px;border-bottom:1px solid var(--line)}.sector-list strong,.objective-list strong,.allocation-list strong{display:block;font-size:12px}.sector-list small,.objective-list small,.allocation-list small{display:block;margin-top:3px;color:#8298a6;font-size:10px}.sector-code{display:inline-block;margin-right:7px;border:1px solid #345262;background:#0b1b25;color:#d8e8f0;border-radius:3px;padding:3px 5px;font-size:9px;font-weight:850}.priority-normal{color:#8ca3b0}.priority-high{color:#f1ad62}.priority-critical{color:#ff6b57}.command-create-form{display:grid;grid-template-columns:105px 1fr 100px 1.4fr auto;gap:8px;padding:10px;border-top:1px solid var(--line)}.command-create-form.objective-create{grid-template-columns:minmax(0,1.5fr) 180px 100px auto}.allocation-list form{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.8fr) auto;gap:8px;align-items:center;padding:9px;border-bottom:1px solid var(--line)}.objective-list article form{margin:0}.objective-list select{padding:6px 8px}.allocation-list select{padding:7px 8px}@media(max-width:1050px){.incident-command-grid,.incident-command-grid.secondary{grid-template-columns:1fr}.command-create-form,.command-create-form.objective-create{grid-template-columns:1fr 1fr}.command-post-banner{grid-template-columns:1fr 1fr}}@media(max-width:650px){.command-empty form,.command-roles form,.allocation-list form{grid-template-columns:1fr;display:grid}.command-roles label{grid-template-columns:1fr}.command-create-form,.command-create-form.objective-create{grid-template-columns:1fr}.command-post-banner{grid-template-columns:1fr}.sector-list article,.objective-list article{align-items:flex-start;flex-direction:column}}

.community-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px}.community-card{border-left:3px solid var(--line,#303846)}.community-card header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.community-card header>strong{font-size:1.35rem}.community-card.threat-at_risk{border-left-color:#d9a441}.community-card.threat-warning{border-left-color:#ed7a2d}.community-card.threat-evacuate,.community-card.threat-impacted{border-left-color:#e3483d}.command-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}

/* v0.10.2 community command map */
.feature-settlement.threat-normal circle:not(.marker-halo){fill:#efaa32}
.feature-settlement.threat-at_risk circle:not(.marker-halo){fill:#f0bf3d}
.feature-settlement.threat-warning circle:not(.marker-halo){fill:#ee7c2f}
.feature-settlement.threat-evacuate circle:not(.marker-halo){fill:#e64c36}
.feature-settlement.threat-impacted circle:not(.marker-halo){fill:#be252d}
.feature-settlement.threat-warning .marker-halo,.feature-settlement.threat-evacuate .marker-halo,.feature-settlement.threat-impacted .marker-halo{stroke:rgba(255,127,83,.85);fill:rgba(120,29,20,.28)}
.map-community-actions{display:grid;gap:7px;margin-top:12px}
.map-community-actions .btn-map-center{margin-top:0}
.map-community-order-form{margin:0}
.map-community-order-form button{width:100%}
.map-warning-action{background:#493611;border-color:#8b6820;color:#ffe183}
.map-warning-action:hover{background:#5b4416}

/* v0.10.5 operational map refinement */
.map-search-panel{position:absolute;z-index:24;top:12px;left:64px;width:min(330px,calc(100% - 150px));filter:drop-shadow(0 5px 15px rgba(0,0,0,.32))}
.map-search-panel label{display:flex;align-items:center;gap:8px;background:rgba(5,17,27,.95);border:1px solid #2b4353;border-radius:6px;padding:0 11px;height:40px}
.map-search-panel label span{font-size:1.35rem;color:#b8c9d5}.map-search-panel input{width:100%;border:0!important;background:transparent!important;color:#edf6fb!important;outline:0;box-shadow:none!important;padding:0!important}
.map-search-results{margin-top:5px;background:rgba(5,17,27,.98);border:1px solid #2b4353;border-radius:6px;overflow:hidden}
.map-search-results button{display:flex;width:100%;justify-content:space-between;align-items:center;padding:9px 11px;border:0;border-bottom:1px solid #203543;background:transparent;color:#f1f7fb;text-align:left}.map-search-results button:hover{background:#102b3a}.map-search-results small{color:#8da7b8;text-transform:uppercase}.map-search-empty{padding:12px;color:#8da7b8}
.map-weather-card{position:absolute;z-index:20;left:12px;top:62px;width:205px;background:rgba(5,17,27,.92);border:1px solid #29404f;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.3);overflow:hidden;backdrop-filter:blur(5px)}
.weather-main{display:flex;gap:12px;align-items:center;padding:12px}.weather-icon{font-size:2rem;color:#ffb327}.weather-main strong{display:block;font-size:1.35rem}.weather-main small{color:#9db2c0}
.map-weather-card dl{margin:0;border-top:1px solid #203543;padding:7px 12px}.map-weather-card dl div{display:flex;justify-content:space-between;gap:10px;padding:3px 0}.map-weather-card dt{color:#8fa6b5}.map-weather-card dd{margin:0;color:#f0f6fa;font-weight:700}.map-weather-card [data-danger=very_high],.map-weather-card [data-danger=extreme]{color:#ff674d}
.map-legend{position:absolute;z-index:20;left:12px;bottom:38px;width:250px;background:rgba(5,17,27,.92);border:1px solid #29404f;border-radius:6px;color:#dce8ef;backdrop-filter:blur(5px)}
.map-legend summary{cursor:pointer;padding:8px 11px;font-weight:800}.map-legend-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;padding:2px 11px 11px;font-size:.75rem}.map-legend-grid span{display:flex;align-items:center;gap:7px}
.map-legend i{display:inline-block;flex:0 0 auto}.legend-line{width:23px;height:0;border-top:3px solid}.legend-line.fire{border-color:#ff3d35}.legend-line.evac-warning{border-color:#f5b928;border-top-style:dashed}.legend-line.evac-order{border-color:#ff5b32;border-top-style:dashed}.legend-line.region{border-color:#ff7438;border-top-style:dashed}.legend-fill{width:22px;height:12px;border-radius:2px}.legend-fill.burned{background:rgba(92,24,20,.85)}.legend-fill.water{background:#2388aa}.legend-fill.fuel{background:#3f805d}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-dot.active-fire{background:#e83b32}.legend-dot.community{background:#efaa32}.legend-dot.station{background:#f06745}.legend-dot.unit{background:#ef8a35}
.evac-zone{cursor:pointer;stroke-width:3;stroke-dasharray:11 8;vector-effect:non-scaling-stroke}.evac-zone.warning{fill:rgba(236,178,28,.09);stroke:#f1b82b}.evac-zone.order{fill:rgba(239,76,39,.12);stroke:#ff6138}.evac-zone.evacuated{fill:rgba(84,137,112,.08);stroke:#78b49a;opacity:.8}
.evac-map-label{cursor:pointer}.evac-label-bg{fill:rgba(7,13,18,.94);stroke:#263946;stroke-width:1}.evac-label-icon{fill:#f5b928;font-weight:900}.evac-map-label.order .evac-label-icon{fill:#ff5a39}.evac-label-text{fill:#f5f8fa;font-size:11px;font-weight:900;letter-spacing:.3px}
.fire-burned-area{fill:rgba(79,17,16,.58);stroke:none;pointer-events:none}.live-fire-edge{fill:rgba(166,37,21,.22)!important;stroke:#ff4b2d!important;stroke-width:3.5!important;filter:drop-shadow(0 0 4px rgba(255,82,39,.7));stroke-dasharray:4 2;animation:fire-edge-pulse 1.7s ease-in-out infinite alternate}
@keyframes fire-edge-pulse{from{stroke-width:2.8;filter:drop-shadow(0 0 2px rgba(255,82,39,.5))}to{stroke-width:4.4;filter:drop-shadow(0 0 7px rgba(255,118,38,.9))}}
@media (prefers-reduced-motion:reduce){.live-fire-edge{animation:none}}
.fire-map-label{cursor:pointer}.fire-label-dot{fill:#c92e29;stroke:#ff7363;stroke-width:1.5}.fire-label-icon{fill:#fff;font-size:10px}.fire-label-bg{fill:rgba(14,17,20,.88);stroke:#313c43}.fire-label-title{fill:#fff;font-size:11px;font-weight:900}.fire-label-meta{fill:#b9c4ca;font-size:9px}
@media(max-width:850px){.map-search-panel{left:54px;width:calc(100% - 110px)}.map-weather-card{top:60px;width:175px}.map-legend{width:215px}.map-legend-grid{grid-template-columns:1fr}}

/* v0.10.6 map control layout + selected incident command panel */
.map-search-panel{left:50%!important;transform:translateX(-50%);top:12px!important;width:min(390px,42%)!important}
.map-weather-card{left:auto!important;right:12px!important;top:12px!important;width:205px!important}
.map-legend{left:12px!important;bottom:38px!important}
.incident-map-panel-head{background:#b91f25!important;color:#fff!important;border-bottom-color:#df3439!important}.incident-map-panel-head>strong{font-size:.72rem;letter-spacing:.08em}
.incident-threat-badge{font-size:.65rem;padding:3px 6px;border-radius:4px;background:#4a1718;color:#ffd9d9}.incident-threat-badge.threat-serious{background:#7b191a}.incident-threat-badge.threat-moderate{background:#6f4b11}
.map-incident-card{padding:9px 9px 14px}.incident-visual{height:92px;border:1px solid #273d4a;border-radius:5px;position:relative;overflow:hidden;background:linear-gradient(180deg,#1a2d35 0%,#1f2424 42%,#5b1a14 43%,#170807 100%)}
.incident-visual:before{content:"";position:absolute;left:-4%;right:-4%;bottom:20px;height:23px;background:linear-gradient(90deg,transparent 0 2%,#ff5a1e 6%,#ffb126 9%,#e73518 13%,transparent 17%,#ff8424 23%,#ffd24a 27%,#da2d15 32%,transparent 38%,#ff5723 44%,#ffb326 49%,transparent 55%,#f13d1b 61%,#ffcb3d 66%,transparent 72%,#ff6523 80%,#d82a18 88%,transparent 96%);filter:blur(1px);opacity:.92}
.incident-visual:after{content:"";position:absolute;left:0;right:0;bottom:0;height:38px;background:linear-gradient(180deg,rgba(53,12,7,.25),rgba(12,5,4,.95))}
.incident-visual span{position:absolute;left:7px;bottom:5px;z-index:2;font-size:.55rem;letter-spacing:.12em;color:#d2dde3}
.incident-title-row{display:flex;align-items:center;gap:8px;padding:9px 1px 7px}.incident-title-row h2{font-size:1rem;margin:0;color:#fff}.incident-title-row small{color:#8fa5b2}.incident-flame-symbol{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#c52828;color:#fff}
.incident-map-summary{margin:0;padding:0}.incident-map-summary>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #1d3441;padding:4px 1px}.incident-map-summary dt{color:#90a8b6}.incident-map-summary dd{margin:0;color:#eef6fa;text-align:right;font-weight:700}
.incident-map-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin:9px -9px 8px;border-top:1px solid #263c49;border-bottom:1px solid #263c49;background:#0d202b}.incident-map-tabs button{border:0;border-right:1px solid #263c49;background:transparent;color:#8ea5b3;font-size:.64rem;padding:7px 3px}.incident-map-tabs button.active{color:#fff;background:#17303d;box-shadow:inset 0 -2px #e6462e}.incident-map-tabs span{opacity:.75}
.incident-tab-panel{display:none}.incident-tab-panel.active{display:block}.incident-operational-summary{margin:7px 0 9px;color:#b8c8d1;line-height:1.4;font-size:.76rem}
.incident-action-stack{display:grid;gap:6px}.incident-map-action{display:block;width:100%;box-sizing:border-box;border:1px solid #2d4553;background:#122733;color:#edf5f9;border-radius:4px;padding:8px 9px;text-align:left;text-decoration:none;font-weight:800;font-size:.72rem}.incident-map-action.primary{background:#c6262c;border-color:#e13a40;color:#fff}.incident-map-action:hover{filter:brightness(1.12)}
.incident-evac-zone-form{margin-top:7px;padding:8px;background:#0c1b24;border:1px solid #2b414e;border-radius:5px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.incident-evac-zone-form[hidden]{display:none}.incident-evac-zone-form label{font-size:.66rem;color:#98afbc}.incident-evac-zone-form select{display:block;width:100%;margin-top:3px;background:#102630;color:#fff;border:1px solid #34505f;border-radius:4px;padding:6px}.incident-evac-zone-form button{grid-column:1/-1}
.incident-live-box{margin-top:9px;border:1px solid #27505d;background:#071b22;border-radius:5px;overflow:hidden}.incident-live-box header{display:flex;justify-content:space-between;padding:7px 8px;background:#0c2730;color:#9ed7d4;font-size:.64rem}.incident-live-box dl{padding:5px 8px;margin:0}.incident-live-box dl>div{display:flex;justify-content:space-between;padding:3px 0}.incident-live-box dt{color:#93abb6}.incident-live-box dd{margin:0;color:#eff7f7;font-weight:700}
.incident-resource-row{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:7px 0;border-bottom:1px solid #203642}.incident-resource-row strong{color:#fff}.incident-resource-row span{font-size:.63rem;color:#f0a34c}.incident-resource-row small{grid-column:1/-1;color:#8ca5b3}.incident-panel-empty{padding:12px 0;color:#89a0ad}
@media(max-width:1100px){.map-search-panel{left:64px!important;transform:none!important;width:310px!important}.map-weather-card{top:60px!important;right:10px!important;width:180px!important}}
@media(max-width:760px){.map-search-panel{left:54px!important;width:calc(100% - 108px)!important}.map-weather-card{display:none}.map-legend{width:205px!important}}

/* v0.10.7 collapsible map layers */
.map-layers-panel[hidden]{display:none!important}
.map-layers-panel.is-open{
    display:block!important;
    position:absolute;
    z-index:32;
    top:62px;
    left:12px;
    width:260px;
    max-height:calc(100% - 120px);
    overflow:auto;
    background:rgba(5,17,27,.96);
    border:1px solid #2b4353;
    border-radius:6px;
    box-shadow:0 8px 24px rgba(0,0,0,.38);
    backdrop-filter:blur(6px);
}
.map-layers-panel header{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:2;background:#091923}
.map-panel-close{width:28px;height:28px;border:0;border-radius:4px;background:transparent;color:#9eb1bc;font-size:1.25rem;line-height:1;cursor:pointer}
.map-panel-close:hover{background:#142d39;color:#fff}
[data-map-layers-toggle].active{background:#17313e!important;border-color:#3f6171!important;color:#fff!important}
@media(max-width:850px){
    .map-layers-panel.is-open{top:108px;left:8px;width:min(280px,calc(100% - 16px));max-height:calc(100% - 150px)}
}


/* v0.10.9 — Early Mobile UI Pass */
.mobile-nav-toggle,.mobile-nav-close,.mobile-sheet-chrome,.mobile-map-tool{display:none}

/* Safer responsive defaults across operational pages */
img,svg,canvas{max-width:100%}
input,select,textarea,button{max-width:100%}
table{max-width:100%}
.panel,.command-panel,.sector-panel,.objectives-panel,.allocation-panel,.community-card{min-width:0}
@media(max-width:700px){
    html,body{overflow-x:hidden}
    body.mobile-nav-visible{overflow:hidden}

    /* Header */
    .topbar{height:56px!important;min-height:56px;position:sticky!important;top:0;z-index:80!important;padding:0 10px!important;gap:8px}
    .mobile-nav-toggle{display:grid;width:38px;height:38px;flex:0 0 38px;place-content:center;gap:4px;border:1px solid #29404d;background:#0b1a23;border-radius:5px;padding:8px}
    .mobile-nav-toggle span{display:block;width:18px;height:2px;background:#dce8ee;border-radius:2px}
    .brand{min-width:0;gap:7px}.brand-mark{font-size:22px!important}.brand strong{font-size:14px!important;white-space:nowrap}.brand small{display:none!important}
    .player-strip{margin-left:auto;gap:0!important;min-width:0}.player-strip>div:first-child{display:none!important}
    .player-strip>div{padding:4px 7px!important;border-left:1px solid #263845}.money,.xp{font-size:11px!important;white-space:nowrap}

    /* Proper mobile drawer navigation */
    .sidebar{position:fixed!important;inset:0 auto 0 0!important;z-index:100!important;width:min(310px,86vw)!important;height:100dvh!important;display:flex!important;flex-direction:column!important;overflow-y:auto!important;overflow-x:hidden!important;padding:70px 10px 16px!important;background:#07131c!important;border-right:1px solid #2d4350!important;border-bottom:0!important;transform:translateX(-105%);transition:transform .2s ease;box-shadow:14px 0 34px rgba(0,0,0,.45)}
    .sidebar.mobile-nav-open{transform:translateX(0)}
    body.mobile-nav-visible:after{content:"";position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.55)}
    .sidebar a{width:100%!important;min-width:0!important;justify-content:flex-start!important;gap:12px!important;padding:12px 13px!important;font-size:13px!important;border-radius:5px}
    .sidebar a span{font-size:17px!important;width:24px;text-align:center}.sidebar a.disabled{display:flex!important}
    .sidebar .logout{display:block!important;margin-top:auto;padding-top:15px}.sidebar .logout button{width:100%;min-height:44px}
    .mobile-nav-close{display:grid;place-items:center;position:absolute;right:12px;top:12px;width:40px;height:40px;border:1px solid #2d4350;background:#10212b;color:#fff;border-radius:5px;font-size:24px}

    /* General page spacing/cards */
    .dashboard,.content-page,.page-content{padding:10px!important}
    .page-heading,.page-head{align-items:flex-start!important;flex-direction:column!important;gap:8px!important}
    .page-heading h1,.page-head h1{font-size:22px!important}.budget-chip{width:100%;min-width:0!important;text-align:left!important}
    .stat-grid,.ops-grid,.bottom-grid,.incident-command-grid,.incident-command-grid.secondary,.community-grid{grid-template-columns:1fr!important}
    .community-grid{gap:10px}.community-card header{gap:8px}.metric-grid{grid-template-columns:1fr 1fr!important}
    .command-post-banner{grid-template-columns:1fr 1fr!important}.command-create-form,.command-create-form.objective-create,.allocation-list form,.command-roles form{grid-template-columns:1fr!important}
    .sector-list article,.objective-list article,.suppression-resource-list article{align-items:flex-start!important;flex-direction:column!important}
    .btn,.btn-secondary,.command-actions button,.command-actions a{min-height:44px}
    .command-actions{display:grid!important;grid-template-columns:1fr!important}.command-actions form,.command-actions button{width:100%}
    .regional-weather-strip{grid-template-columns:1fr!important}

    /* Map page: maximize usable map area */
    .map-page{min-height:calc(100dvh - 56px)!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
    .map-toolbar{height:auto!important;min-height:70px!important;padding:9px 10px!important;flex:0 0 auto}.map-toolbar .eyebrow{font-size:9px}.map-toolbar h1{font-size:18px!important;margin-top:2px}.map-toolbar p{font-size:11px}.map-coordinate{display:none!important}
    .operational-map-layout{display:block!important;position:relative!important;flex:1!important;min-height:0!important}
    .map-stage-wrap{height:calc(100dvh - 126px)!important;min-height:430px!important}
    .regional-map{inset:0!important}

    /* Compact map controls: no search/zoom collision */
    .map-search-panel{left:62px!important;right:8px!important;top:8px!important;transform:none!important;width:auto!important;max-width:none!important;z-index:26!important}
    .map-search-panel label{height:44px!important;padding:0 10px!important}
    .map-zoom-controls{left:8px!important;top:8px!important;z-index:27!important;gap:5px!important}.map-zoom-controls button{width:46px!important;height:46px!important}
    .map-tool-palette{left:8px!important;right:8px!important;top:auto!important;bottom:31px!important;z-index:29!important;display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:4px!important;padding:4px!important}
    .map-tool-palette button{min-width:0!important;width:100%!important;height:44px!important;padding:0!important;gap:0!important}.map-tool-palette button b{display:none!important}.map-tool-palette button span{font-size:17px!important}
    .mobile-map-tool{display:flex!important}
    .map-attribution{bottom:2px!important}.map-scale{bottom:83px!important;left:8px!important}

    /* Weather/key/layers become temporary popovers */
    .map-weather-card{display:none!important;left:8px!important;right:8px!important;top:60px!important;width:auto!important;max-width:260px!important;z-index:35!important}
    .map-weather-card.mobile-popover-open{display:block!important}
    .map-legend{display:none!important;left:8px!important;right:8px!important;bottom:83px!important;width:auto!important;max-width:260px!important;z-index:35!important;max-height:52vh;overflow:auto}
    .map-legend.mobile-popover-open{display:block!important}.map-legend-grid{grid-template-columns:1fr 1fr!important}
    .map-layers-panel.is-open{position:absolute!important;left:8px!important;right:8px!important;top:60px!important;width:auto!important;max-height:55vh!important;z-index:36!important}

    /* Mobile map labels: reduce collisions */
    .feature-label,.response-label{font-size:9px!important;paint-order:stroke;stroke:#071018;stroke-width:3px;stroke-linejoin:round}
    .fire-label-bg{width:96px!important}.fire-label-title{font-size:9px!important}.fire-label-meta{font-size:7px!important}
    .evac-label-text{font-size:9px!important}.evac-zone{stroke-width:2!important}
    .map-feature .marker-halo{opacity:.78}.response-halo{opacity:.7}

    /* Right-side map information becomes a bottom sheet */
    .map-side-panel{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;z-index:70!important;max-height:min(72dvh,650px)!important;overflow:auto!important;background:#07131c!important;border:1px solid #324754!important;border-radius:14px 14px 0 0!important;box-shadow:0 -12px 32px rgba(0,0,0,.48)!important;transform:translateY(105%);transition:transform .22s ease!important;padding-bottom:max(8px,env(safe-area-inset-bottom))}
    .map-side-panel.mobile-sheet-open{transform:translateY(0)}
    .mobile-sheet-chrome{display:grid!important;position:sticky;top:0;z-index:10;grid-template-columns:1fr auto;align-items:center;min-height:50px;padding:13px 14px 8px;background:#0a1922;border-bottom:1px solid #263b48}
    .mobile-sheet-handle{position:absolute;top:6px;left:50%;transform:translateX(-50%);width:44px;height:4px;background:#536773;border-radius:3px}.mobile-sheet-chrome strong{font-size:12px;margin-top:5px}.mobile-sheet-chrome button{width:34px;height:34px;border:0;background:#142a35;color:#fff;border-radius:5px;font-size:20px}
    .map-side-panel>.map-panel-section{display:none!important}.map-side-panel>.selected-feature:not([hidden]){display:block!important}.map-side-panel>.placement-panel:not([hidden]){display:block!important}
    .map-side-panel .selected-feature>header,.map-side-panel .placement-panel>header{position:sticky;top:50px;z-index:8}
    .map-placement-form{padding:12px!important}.placement-coordinates{grid-template-columns:1fr 1fr!important}
    .placement-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px}.placement-actions button{min-height:46px}
    .incident-map-tabs{position:sticky;top:93px;z-index:7}.map-incident-card{padding-bottom:20px}
    .incident-map-action{min-height:44px;display:flex!important;align-items:center}.incident-evac-zone-form{grid-template-columns:1fr!important}.incident-evac-zone-form button{grid-column:auto!important}

    /* Avoid fixed LIVE badge covering forms */
    .live-status,.live-indicator,[data-live-indicator]{max-width:100px!important;right:6px!important;bottom:6px!important;font-size:9px!important}
}

@media(max-width:420px){
    .brand strong{font-size:12px!important}
    .player-strip>div{padding:4px 5px!important}.money,.xp{font-size:10px!important}
    .metric-grid{grid-template-columns:1fr!important}
    .map-legend-grid{grid-template-columns:1fr!important}
    .map-stage-wrap{min-height:390px!important}
    .map-tool-palette{grid-template-columns:repeat(5,minmax(0,1fr))!important}
    .incident-map-tabs button{font-size:9px!important}
}

/* Mobile tables: preserve data without horizontal page overflow */
@media(max-width:700px){
    .table-wrap,.responsive-table{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
    table{min-width:620px}
    .panel table{font-size:11px}
    form{min-width:0}
    input,select,textarea{font-size:16px!important} /* prevents iOS input zoom */
}


/* v0.10.10 — Incident detail mobile hotfix */
@media(max-width:700px){
    /* The incident page must always consume the available phone width. */
    .content-page{
        width:100%!important;
        max-width:none!important;
        min-width:0!important;
        padding:10px!important;
        box-sizing:border-box!important;
        overflow-x:hidden!important;
    }
    .incident-heading{
        width:100%!important;
        min-width:0!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:10px!important;
        margin-bottom:12px!important;
    }
    .incident-heading>div,.incident-heading h1,.incident-heading p{
        min-width:0!important;
        max-width:100%!important;
        overflow-wrap:anywhere!important;
    }
    .incident-heading h1{
        font-size:24px!important;
        line-height:1.08!important;
        margin:4px 0 7px!important;
    }
    .incident-heading p{
        font-size:13px!important;
        line-height:1.5!important;
    }
    .incident-state{
        width:100%!important;
        min-width:0!important;
        box-sizing:border-box!important;
        justify-content:flex-start!important;
        flex-wrap:wrap!important;
        padding:9px!important;
    }

    /* Weather and fire-stat strips were being crushed by desktop grid minima. */
    .regional-weather-strip,
    .fire-behaviour-strip,
    .fire-command-strip,
    .suppression-overview{
        width:100%!important;
        min-width:0!important;
        max-width:100%!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
        background:transparent!important;
        border:0!important;
        overflow:visible!important;
    }
    .regional-weather-strip article,
    .fire-behaviour-strip article,
    .fire-command-strip>div,
    .suppression-overview article{
        width:100%!important;
        min-width:0!important;
        max-width:100%!important;
        box-sizing:border-box!important;
        border:1px solid var(--line)!important;
        border-radius:7px!important;
        padding:12px!important;
        overflow:hidden!important;
    }
    .regional-weather-strip strong,
    .fire-behaviour-strip strong,
    .fire-command-strip strong,
    .suppression-overview strong{
        font-size:18px!important;
        line-height:1.2!important;
        white-space:normal!important;
        overflow-wrap:anywhere!important;
    }
    .regional-weather-strip span,
    .fire-behaviour-strip span,
    .fire-command-strip span,
    .suppression-overview span{
        white-space:normal!important;
        overflow-wrap:anywhere!important;
    }

    /* Every desktop two-column operational section becomes one column. */
    .incident-detail-grid,
    .dispatch-command-grid,
    .suppression-command-grid,
    .incident-command-grid,
    .incident-command-grid.secondary{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        display:grid!important;
        grid-template-columns:minmax(0,1fr)!important;
        gap:10px!important;
        margin:10px 0!important;
    }
    .incident-detail-grid>.panel,
    .dispatch-command-grid>.panel,
    .suppression-command-grid>.panel,
    .incident-command-grid>.panel{
        width:100%!important;
        min-width:0!important;
        max-width:100%!important;
        box-sizing:border-box!important;
        overflow:hidden!important;
    }

    /* Incident data rows remain readable instead of becoming narrow columns. */
    .incident-data{
        width:100%!important;
        min-width:0!important;
        padding:6px 12px!important;
        box-sizing:border-box!important;
    }
    .incident-data>div{
        width:100%!important;
        min-width:0!important;
        display:grid!important;
        grid-template-columns:minmax(0,1fr) auto!important;
        align-items:start!important;
        gap:8px!important;
        padding:9px 0!important;
    }
    .incident-data dt,.incident-data dd{
        min-width:0!important;
        overflow-wrap:anywhere!important;
    }
    .incident-data dd{
        text-align:right!important;
    }

    /* Dispatch/response cards */
    .dispatch-ready-list article,
    .response-row{
        width:100%!important;
        min-width:0!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
        align-items:start!important;
        box-sizing:border-box!important;
    }
    .dispatch-ready-list article>div,
    .response-row>div,
    .dispatch-metrics{
        width:100%!important;
        min-width:0!important;
    }
    .dispatch-metrics{
        display:flex!important;
        flex-wrap:wrap!important;
        gap:6px 10px!important;
    }
    .dispatch-ready-list form,
    .response-row form,
    .dispatch-ready-list button,
    .response-row button{
        width:100%!important;
    }

    /* Incident command forms and banners */
    .command-post-banner{
        grid-template-columns:1fr!important;
    }
    .command-empty form,
    .command-roles form,
    .command-roles label,
    .command-create-form,
    .command-create-form.objective-create,
    .allocation-list form{
        width:100%!important;
        min-width:0!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
    }
    .command-empty input,
    .command-create-form input,
    .command-create-form select,
    .command-roles select,
    .objective-list select,
    .allocation-list select{
        width:100%!important;
        min-width:0!important;
    }
    .sector-list article,
    .objective-list article,
    .suppression-resource-list article{
        width:100%!important;
        min-width:0!important;
        align-items:flex-start!important;
        flex-direction:column!important;
    }

    /* Fire history becomes stacked and avoids a forced desktop mini-table. */
    .fire-history-list>div{
        width:100%!important;
        min-width:0!important;
        display:grid!important;
        grid-template-columns:1fr 1fr!important;
        gap:5px 10px!important;
        padding:10px 12px!important;
    }
    .fire-history-list time{
        grid-column:1/-1!important;
    }
    .fire-history-list em{
        grid-column:auto!important;
        text-align:right!important;
    }

    .incident-actions{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
        padding:10px!important;
    }
    .incident-actions a,.incident-actions button{
        width:100%!important;
        min-height:46px!important;
    }

    .timeline{
        padding:10px 12px!important;
    }
    .timeline article{
        min-width:0!important;
    }
    .timeline article>div,
    .timeline p,
    .timeline strong{
        min-width:0!important;
        overflow-wrap:anywhere!important;
    }

    /* Keep the live-sync badge out of the working area. */
    .live-state-indicator{
        position:sticky!important;
        float:right!important;
        right:auto!important;
        bottom:auto!important;
        z-index:20!important;
        margin:8px 8px calc(8px + env(safe-area-inset-bottom)) 0!important;
        max-width:128px!important;
        min-height:28px!important;
        box-shadow:none!important;
    }

    /* Generic safety net for this page. */
    .content-page .panel,
    .content-page section,
    .content-page article,
    .content-page form,
    .content-page dl{
        max-width:100%!important;
        min-width:0!important;
        box-sizing:border-box!important;
    }
}

@media(max-width:420px){
    .incident-heading h1{font-size:22px!important}
    .incident-data>div{grid-template-columns:1fr!important}
    .incident-data dd{text-align:left!important}
    .fire-history-list>div{grid-template-columns:1fr!important}
    .fire-history-list em{text-align:left!important}
}


/* v0.10.11 — Mobile UI regression hotfix */
@media(max-width:700px){
    /*
     * v0.10.10 made the LIVE state badge sticky/float and applied generic
     * content-page descendants too broadly. Keep the incident fix scoped
     * to the incident detail page and restore the badge as a harmless
     * viewport overlay.
     */
    .live-state-indicator{
        position:fixed!important;
        float:none!important;
        right:8px!important;
        bottom:8px!important;
        left:auto!important;
        top:auto!important;
        margin:0!important;
        z-index:1200!important;
        max-width:118px!important;
        min-height:30px!important;
        box-shadow:0 6px 18px rgba(0,0,0,.3)!important;
    }

    /* Do not let the generic content-page safety net alter unrelated UI. */
    .content-page:not(.incident-detail-page) section,
    .content-page:not(.incident-detail-page) article,
    .content-page:not(.incident-detail-page) form,
    .content-page:not(.incident-detail-page) dl{
        max-width:none!important;
    }

    /* Incident page-only width safeguards. */
    .incident-detail-page,
    .incident-detail-page .panel,
    .incident-detail-page section,
    .incident-detail-page article,
    .incident-detail-page form,
    .incident-detail-page dl{
        min-width:0!important;
        max-width:100%!important;
        box-sizing:border-box!important;
    }

    /* Keep the app header stable and prevent LIVE/XP/money from wrapping into a new column. */
    .topbar{
        overflow:hidden!important;
    }
    .player-strip{
        flex:0 0 auto!important;
        max-width:46vw!important;
        overflow:hidden!important;
    }
    .player-strip>div{
        flex:0 0 auto!important;
    }
    .money,.xp{
        display:block!important;
        white-space:nowrap!important;
        line-height:1.1!important;
    }
}

@media(max-width:420px){
    .live-state-indicator{
        max-width:96px!important;
        right:5px!important;
        bottom:5px!important;
    }
    .live-state-indicator small{
        display:none!important;
    }
    .player-strip{
        max-width:42vw!important;
    }
}

/* v0.11 Aircraft Operations */
.layer-swatch.aircraft{background:#9ed6ff}.legend-dot.aircraft{background:#9ed6ff}
.map-aircraft{pointer-events:none}.aircraft-halo{fill:rgba(98,181,235,.18);stroke:#9ed6ff;stroke-width:1.5}.aircraft-core{fill:#2c86bd}.aircraft-icon{fill:#fff;font-size:9px;font-weight:900}.aircraft-label{fill:#eaf8ff;font-size:10px;font-weight:900;paint-order:stroke;stroke:#071018;stroke-width:3px}.map-aircraft.status-on_scene .aircraft-core{fill:#e95c3e}.map-aircraft.status-returning .aircraft-core{fill:#6da5d1}
.aircraft-missions{margin-bottom:12px}.aircraft-missions article{display:grid;grid-template-columns:1.3fr 1fr .7fr;gap:12px;align-items:center;padding:11px 14px;border-top:1px solid var(--line)}.aircraft-missions article>div{min-width:0}.aircraft-missions strong,.aircraft-missions small{display:block}.aircraft-missions small{color:var(--muted);margin-top:3px}.aircraft-symbol{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#17344a;color:#9ed6ff;margin-right:7px}
.aircraft-card{padding:14px;border-top:1px solid var(--line)}.aircraft-dispatch-form{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(150px,.7fr) auto;gap:8px;margin-top:10px}.aircraft-dispatch-form select{background:#07131c;border:1px solid #304753;color:#fff;border-radius:5px;padding:9px}.aircraft-base-grid{margin-top:12px}
@media(max-width:700px){.aircraft-missions article{grid-template-columns:1fr}.aircraft-dispatch-form{grid-template-columns:1fr}.aircraft-ops-grid,.aircraft-base-grid{grid-template-columns:1fr!important}.aircraft-card{padding:11px}.aircraft-page .fleet-stats{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:420px){.aircraft-page .fleet-stats{grid-template-columns:1fr}}

/* v0.11.1 aircraft refinement */
.aircraft-route{stroke:#8fd4ff;stroke-width:2;stroke-dasharray:8 6;opacity:.72;vector-effect:non-scaling-stroke;pointer-events:none}.aircraft-route.returning{stroke:#75a9d2;opacity:.5}
.aircraft-missions article{grid-template-columns:1.2fr 1fr .8fr auto}.aircraft-mission-progress>div{height:5px;margin-top:5px;background:#0a151e;border-radius:99px;overflow:hidden;border:1px solid #29404d}.aircraft-mission-progress>div>span{display:block;height:100%;background:#69bde9;transition:width .5s ease}
.incident-aircraft-panel{margin:14px 0}.incident-aircraft-panel>header span{font-size:9px;color:#8ea6b4}.incident-aircraft-missions{padding:7px}.incident-aircraft-missions article{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(180px,.8fr) auto;gap:10px;align-items:center;padding:9px;border-bottom:1px solid var(--line)}.incident-aircraft-missions article:last-child{border-bottom:0}.incident-aircraft-missions strong,.incident-aircraft-missions small{display:block}.incident-aircraft-missions small{color:#8ca4b2;margin-top:3px}.incident-aircraft-dispatch{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(180px,.7fr) auto;gap:8px;padding:10px;border-top:1px solid var(--line)}.incident-aircraft-dispatch label{display:grid;gap:4px;font-size:10px;color:#8fa6b5}.incident-aircraft-dispatch select{background:#07131c;border:1px solid #304753;color:#fff;border-radius:5px;padding:9px}
@media(max-width:700px){.aircraft-missions article,.incident-aircraft-missions article,.incident-aircraft-dispatch{grid-template-columns:1fr!important}.incident-aircraft-missions article form,.incident-aircraft-missions article button,.aircraft-missions article form,.aircraft-missions article button{width:100%}}

/* v0.11.2 — Extensible building placement */
.building-type-switcher{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px;border-bottom:1px solid var(--line);background:#091720}.building-type-switcher button{min-height:40px;border:1px solid #2b4351;background:#0d202b;color:#a9bcc7;border-radius:5px;font-weight:800;cursor:pointer}.building-type-switcher button.active{background:#522019;border-color:#a24431;color:#fff}
.layer-swatch.airbase{background:#8dc9ef}.legend-dot.airbase{background:#8dc9ef}
.feature-airbase .feature-marker{fill:#317ca8}.feature-type-tag.airbase{color:#a9dcff;border-color:#2f607c;background:#0c2635}.placement-airbase .placement-dot{fill:#64bce9}.placement-airbase .placement-pulse{stroke:#64bce9}
@media(max-width:700px){.building-type-switcher{grid-template-columns:1fr 1fr}.map-tool-palette{grid-template-columns:repeat(6,1fr)!important}}
@media(max-width:420px){.building-type-switcher{grid-template-columns:1fr}.map-tool-palette{grid-template-columns:repeat(6,minmax(0,1fr))!important}}


/* v0.11.3 — Building placement UI cleanup */
.map-placement-form[hidden]{display:none!important}
.placement-panel{overflow:auto}
.placement-panel>header{
    min-height:48px;
    padding:0 14px;
    display:flex;
    align-items:center;
    gap:10px;
    border-bottom:1px solid var(--line);
}
.placement-panel>header strong{font-size:13px}
.placement-panel>header span{
    margin-left:auto;
    font-size:11px;
    font-weight:900;
    color:var(--green);
}
.building-type-switcher{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    padding:12px 14px;
    background:#091720;
    border-bottom:1px solid var(--line);
}
.building-type-switcher button{
    min-height:44px;
    padding:0 10px;
    border:1px solid #2f4654;
    border-radius:6px;
    background:#0c1c26;
    color:#b6c6cf;
    font-size:11px;
    font-weight:850;
    cursor:pointer;
}
.building-type-switcher button:hover{background:#112733;color:#fff}
.building-type-switcher button.active{
    background:linear-gradient(180deg,#7e271d,#651f1a);
    border-color:#c34d35;
    color:#fff;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
.map-placement-form{
    gap:10px;
    padding:13px 14px 14px;
}
.map-placement-form label{
    gap:5px;
    font-size:10px;
}
.map-placement-form input{
    min-height:38px;
    padding:8px 10px;
}
.placement-coordinates{
    gap:8px;
}
.placement-coordinates>div{
    padding:8px 9px;
    min-width:0;
}
.placement-coordinates strong{
    overflow-wrap:anywhere;
}
.placement-hint{
    padding:8px 9px;
    border:1px solid #233945;
    border-radius:5px;
    background:#08151d;
    font-size:10px;
}
.placement-hint.invalid{
    border-color:#6a342a;
    background:#261714;
}
.placement-actions{
    grid-template-columns:1fr 1.25fr;
    gap:8px;
}
.placement-actions button{
    min-height:42px;
}
.placement-panel form+form{
    border-top:0;
}
@media(max-width:700px){
    .placement-panel>header{top:50px!important}
    .building-type-switcher{
        position:sticky;
        top:98px;
        z-index:7;
        padding:9px 12px;
    }
    .map-placement-form{padding:11px 12px 14px!important}
}
@media(max-width:420px){
    .building-type-switcher{grid-template-columns:1fr 1fr}
}


/* v0.11.5 — PWA & standalone app */
.pwa-install-banner{
    position:fixed;
    z-index:2000;
    left:50%;
    bottom:16px;
    transform:translateX(-50%);
    width:min(560px,calc(100% - 24px));
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:10px;
    padding:10px 10px 10px 14px;
    border:1px solid #334a57;
    border-radius:8px;
    background:rgba(8,22,31,.97);
    box-shadow:0 12px 36px rgba(0,0,0,.42);
    backdrop-filter:blur(8px);
}
.pwa-install-banner[hidden]{display:none!important}
.pwa-install-banner strong,.pwa-install-banner small{display:block}
.pwa-install-banner strong{font-size:12px;color:#f3f8fa}
.pwa-install-banner small{font-size:10px;color:#8fa6b4;margin-top:2px}
.pwa-install-banner .btn{min-height:38px;padding:8px 14px}
.pwa-install-dismiss{width:36px;height:36px;border:0;border-radius:5px;background:#132630;color:#b9c9d2;font-size:20px;cursor:pointer}
.pwa-install-dismiss:hover{background:#1a3340;color:#fff}

@supports(padding:max(0px)){
    body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
    .topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
    .sidebar{padding-bottom:max(10px,env(safe-area-inset-bottom))}
    .pwa-install-banner{bottom:max(12px,env(safe-area-inset-bottom))}
}
@media(display-mode:standalone){
    html,body{min-height:100dvh}
    body{overscroll-behavior-y:none}
    .topbar{padding-top:env(safe-area-inset-top)}
    .pwa-install-banner{display:none!important}
}
@media(max-width:700px){
    .pwa-install-banner{
        bottom:max(8px,env(safe-area-inset-bottom));
        grid-template-columns:minmax(0,1fr) auto;
        padding:9px 9px 9px 12px;
    }
    .pwa-install-dismiss{grid-column:2;grid-row:1;width:32px;height:32px}
    .pwa-install-banner .btn{grid-column:1/-1;width:100%;min-height:42px}
}
