:root{color-scheme:dark;--bg:#0d1110;--panel:#121a17;--panel-2:#17221e;--line:#2c3d36;--line-strong:#4d665c;--text:#eef4ee;--muted:#9fb0a6;--soft:#d7e1d7;--green:#79c98e;--yellow:#f0c46e;--red:#f17664;--blue:#7cc6d0;--orange:#d88958;--violet:#b59ce2;--shadow:0 18px 50px rgba(0,0,0,0.28)}*{box-sizing:border-box}body,html{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}button,input,select{font:inherit}button{color:inherit}.loading-screen{align-items:center;display:grid;grid-gap:18px;gap:18px;justify-items:center;min-height:100vh}.loading-mark{align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;color:var(--yellow);display:flex;height:72px;justify-content:center;width:72px}.portal-screen{min-height:100vh}.login-screen{align-items:stretch;display:grid;grid-template-columns:minmax(420px,1fr) minmax(360px,460px)}.login-visual{align-items:center;background:#0a1110;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:32px}.mini-grid{aspect-ratio:4/3;border:1px solid #31473f;display:grid;grid-gap:3px;gap:3px;grid-template-columns:repeat(12,minmax(0,1fr));max-width:820px;width:100%}.mini-grid span{background:#18241f;border:1px solid #273a33;min-height:34px}.mini-grid span.line{background:#314c42;border-color:#94bca7}.mini-grid span.node{background:#e6d27a;border-color:#f3e9b1}.mini-grid span.load{background:#c96f5b;border-color:#efafa1}.login-panel{align-content:center;background:#101714;border-left:1px solid var(--line);display:grid;grid-gap:22px;gap:22px;min-height:100vh;padding:36px}.portal-brand{align-items:center;display:flex;gap:12px;min-width:0}.portal-brand>span{align-items:center;background:#182821;border:1px solid #365147;border-radius:8px;color:var(--yellow);display:flex;height:44px;justify-content:center;width:44px}.portal-brand h1{font-size:1.35rem}.portal-brand p{color:var(--muted)}.login-form{display:grid;grid-gap:14px;gap:14px}.login-form label{display:grid;grid-gap:7px;gap:7px}.login-form label span{color:var(--muted);font-size:.84rem}.login-form input{background:#0d1411;border:1px solid var(--line);border-radius:8px;color:var(--text);height:44px;padding:0 12px;width:100%}.login-form input:focus{border-color:var(--green);outline:none}.form-error{color:var(--red);font-size:.88rem}.credential-note{background:#0d1411;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:6px;gap:6px;padding:12px}.credential-note strong{color:var(--yellow)}.credential-note span{color:var(--muted);font-size:.9rem}.credential-note code{color:var(--soft)}.opening-screen{background:#0b1110;display:grid;grid-gap:16px;gap:16px;grid-template-rows:auto auto minmax(0,1fr);padding:16px}.opening-topbar{border-bottom:1px solid var(--line);gap:16px;justify-content:space-between;padding-bottom:14px}.opening-topbar,.opening-user{align-items:center;display:flex}.opening-user{background:#111a17;border:1px solid var(--line);border-radius:8px;gap:10px;min-width:0;padding:6px 6px 6px 10px}.opening-user span,.opening-user strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opening-user span{color:var(--soft)}.opening-user strong{color:var(--muted);font-size:.82rem}.opening-hero{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr) minmax(320px,440px)}.opening-hero>div:first-child{align-content:end;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;min-height:270px;overflow:hidden;padding:24px;position:relative}.opening-hero>div:first-child:before{background:linear-gradient(#263a33 1px,transparent 0),linear-gradient(90deg,#263a33 1px,transparent 0);background-size:32px 32px;content:"";inset:0;opacity:.34;position:absolute}.opening-hero>div:first-child:after{background:linear-gradient(90deg,transparent 0 18%,#e7e2b6 18% 19%,transparent 19% 100%),linear-gradient(135deg,transparent 0 52%,#80c6b8 52% 53%,transparent 53% 100%);content:"";inset:0;opacity:.36;position:absolute}.opening-hero>div:first-child>*{position:relative;z-index:1}.tutorial-launch-button{max-width:260px}.eyebrow{color:var(--yellow);font-size:.8rem;font-weight:800;text-transform:uppercase}.opening-hero h2{font-size:2.1rem;line-height:1.04;max-width:760px}.opening-hero p{color:var(--muted);line-height:1.46;max-width:720px}.selected-scenario{background:var(--panel);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;padding:16px}.mission-status,.scenario-card-top,.scenario-kicker,.scenario-meta-row{align-items:center;display:flex;gap:8px;min-width:0}.scenario-kicker{justify-content:space-between}.scenario-kicker>span:first-child{color:var(--yellow);font-size:.8rem;text-transform:capitalize}.difficulty-badge{border:1px solid var(--line);border-radius:999px;color:var(--soft);display:inline-flex;flex:0 0 auto;font-size:.72rem;font-weight:900;line-height:1;padding:5px 8px;text-transform:uppercase}.difficulty-badge.tutorial{background:rgba(124,198,208,.13);border-color:rgba(124,198,208,.62);color:var(--blue)}.difficulty-badge.normal{background:rgba(121,201,142,.13);border-color:rgba(121,201,142,.62);color:var(--green)}.difficulty-badge.hard{background:rgba(240,196,110,.13);border-color:rgba(240,196,110,.68);color:var(--yellow)}.difficulty-badge.survival{background:rgba(241,118,100,.14);border-color:rgba(241,118,100,.76);color:var(--red)}.selected-scenario>strong{font-size:1.35rem}.mission-summary{background:#0d1411;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:4px;gap:4px;padding:10px}.mission-summary b{color:var(--soft)}.selected-scenario dl{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));margin:0}.selected-scenario dl div{background:#0e1512;border:1px solid var(--line);border-radius:8px;padding:8px}.launch-button{margin-top:4px}.opening-workspace{display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(0,1fr) minmax(280px,340px);min-height:0}.roster-panel,.scenario-library{align-content:start;background:var(--panel);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:14px;gap:14px;padding:14px}.section-heading{align-items:center;display:flex;gap:8px}.section-heading svg{color:var(--yellow)}.scenario-card-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.scenario-card{align-content:start;background:#0e1512;border:1px solid var(--line);border-radius:8px;color:var(--text);display:grid;grid-gap:9px;gap:9px;min-height:190px;min-width:0;padding:12px;text-align:left}.scenario-card-top{justify-content:space-between}.scenario-card svg{color:var(--blue)}.scenario-card.active{border-color:var(--green);box-shadow:inset 0 0 0 1px rgba(121,201,142,.35)}.scenario-card em,.scenario-card small,.scenario-card span,.scenario-card strong{overflow:hidden;text-overflow:ellipsis}.scenario-card span{color:var(--muted);display:-webkit-box;font-size:.88rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:4}.scenario-card small{color:var(--yellow);white-space:nowrap}.scenario-card em{color:var(--soft);font-size:.8rem;font-style:normal;line-height:1.3}.roster-list{display:grid;grid-gap:9px;gap:9px}.roster-list article{align-items:center;background:#0e1512;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:20px minmax(0,1fr);padding:10px}.roster-list article.active{border-color:var(--green)}.roster-list svg{color:var(--blue)}.roster-list div{display:grid;grid-gap:2px;gap:2px;min-width:0}.roster-list span,.roster-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-list span{color:var(--muted);font-size:.82rem}.game-shell{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;min-height:100vh}.metric-strip,.statusbar,.topbar{border-bottom:1px solid var(--line)}.topbar{align-items:center;background:rgba(15,21,19,.94);display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(210px,1fr) minmax(240px,1.1fr) auto auto;padding:12px 16px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.brand-block,.clock-block,.file-controls,.icon-button,.metric-card,.panel-title,.primary-button,.speed-controls{align-items:center;display:flex}.brand-block{gap:10px;min-width:0}.brand-mark{align-items:center;background:#182821;border:1px solid #365147;border-radius:8px;color:var(--yellow);display:flex;height:40px;justify-content:center;width:40px}h1,h2,p{margin:0}h1{font-size:1.08rem;line-height:1.1}h2{font-size:.92rem}.brand-block p,.clock-block span,.muted-text,.scenario-copy,.statusbar,.warning-text,small{color:var(--muted)}.clock-block{align-items:flex-start;flex-direction:column;gap:2px;min-width:0}.brand-block h1,.brand-block p,.clock-block span,.clock-block strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-controls,.speed-controls{gap:6px}.icon-button,.primary-button,.tab-button,.tech-button{border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.icon-button{background:#17211e;gap:6px;height:36px;justify-content:center;min-width:36px;padding:0 10px}.icon-button span{font-size:.82rem}.account-button{max-width:190px}.account-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-button:hover,.primary-button:hover,.tab-button:hover,.tech-button:hover{background:#20302a;border-color:var(--line-strong)}.icon-button.active,.tab-button.active,.tech-button.active{background:#263b31;border-color:var(--green)}.primary-button{background:var(--green);border-color:#a4dfaf;color:#0f1512;font-weight:800;gap:8px;height:42px;justify-content:center;padding:0 12px;width:100%}.primary-button:disabled{cursor:not-allowed;filter:grayscale(.65);opacity:.55}.metric-strip{background:#101714;display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));padding:10px 16px}.tutorial-director{background:#101714;border-bottom:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.3fr) minmax(240px,.9fr) minmax(260px,.8fr);padding:12px 16px}.tutorial-director.focus-map{border-left:4px solid var(--blue)}.tutorial-director.focus-build{border-left:4px solid var(--green)}.tutorial-director.focus-policy{border-left:4px solid var(--yellow)}.tutorial-director.focus-market{border-left:4px solid var(--orange)}.tutorial-director.focus-events{border-left:4px solid var(--red)}.tutorial-director.focus-speed{border-left:4px solid var(--violet)}.tutorial-actions,.tutorial-copy,.tutorial-orders,.tutorial-timeline{min-width:0}.tutorial-timeline{align-content:center;display:grid;grid-gap:8px;gap:8px}.tutorial-timeline span,.tutorial-timeline strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tutorial-timeline span{color:var(--yellow);font-size:.8rem;font-weight:800;text-transform:uppercase}.tutorial-timeline>div{background:#0d1411;border:1px solid var(--line);border-radius:999px;height:10px;overflow:hidden}.tutorial-timeline i{background:linear-gradient(90deg,var(--green),var(--blue));display:block;height:100%}.tutorial-copy{display:grid;grid-gap:5px;gap:5px}.tutorial-copy h2{font-size:1.05rem}.tutorial-copy p,.tutorial-copy strong,.tutorial-debrief{line-height:1.38}.tutorial-copy p{color:var(--soft);font-size:.9rem}.tutorial-copy strong{color:var(--muted);font-size:.86rem}.tutorial-orders{display:grid;grid-gap:7px;gap:7px}.tutorial-orders span{background:#0d1411;border:1px solid var(--line);border-radius:8px;color:var(--soft);font-size:.82rem;line-height:1.3;padding:7px 9px}.tutorial-orders span.complete{border-color:rgba(121,201,142,.72);color:var(--green)}.tutorial-actions{align-content:center;display:grid;grid-gap:7px;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.tutorial-actions .icon-button{width:100%}.tutorial-actions .icon-button:disabled{cursor:not-allowed;opacity:.48}.tutorial-next{grid-column:1/-1}.tutorial-debrief{color:var(--green);font-size:.88rem;grid-column:2/-1}.metric-card{background:#151f1b;border:1px solid var(--line);border-radius:8px;gap:10px;min-height:58px;min-width:0;padding:9px 11px}.metric-card>span{color:var(--blue);display:flex;flex:0 0 auto}.metric-card.good>span{color:var(--green)}.metric-card.bad>span{color:var(--red)}.metric-card small,.metric-card strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-card strong{color:var(--text);font-size:1.02rem}.workspace{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(260px,300px) minmax(480px,1fr) minmax(300px,360px);padding:12px 16px}.map-section,.side-panel,.workspace{min-height:0}.side-panel{display:flex;flex-direction:column;gap:12px;overflow:auto}.map-section{align-self:start;background:#0f1714;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-template-rows:minmax(420px,1fr) auto;overflow:hidden}.map-host{height:clamp(420px,52vh,620px);min-height:420px;position:relative;width:100%}.map-canvas{display:block;height:100%;image-rendering:pixelated;width:100%}.map-footer{border-top:1px solid var(--line);display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) minmax(220px,.38fr);padding:10px}.inspector,.node-status,.panel-block{background:var(--panel);border:1px solid var(--line);border-radius:8px}.panel-block{display:grid;grid-gap:12px;gap:12px;padding:12px}.panel-title{gap:8px}.panel-title svg{color:var(--yellow)}select{background:#101714;border:1px solid var(--line);border-radius:8px;color:var(--text);height:38px;padding:0 10px;width:100%}.scenario-copy{font-size:.86rem;line-height:1.42}.scenario-meta-row{color:var(--muted);font-size:.8rem;justify-content:space-between}.mission-panel{border-left:4px solid var(--green)}.mission-panel.tutorial{border-left-color:var(--blue)}.mission-panel.hard{border-left-color:var(--yellow)}.mission-panel.survival{border-left-color:var(--red)}.mission-header{display:grid;grid-gap:5px;gap:5px}.mission-header>span{color:var(--yellow);font-size:.72rem;font-weight:900;text-transform:uppercase}.mission-header p{color:var(--muted);font-size:.84rem;line-height:1.38}.mission-meter{background:#0d1411;border:1px solid var(--line);border-radius:999px;height:10px;overflow:hidden}.mission-meter i{background:linear-gradient(90deg,var(--green),var(--blue));display:block;height:100%}.mission-panel.survival .mission-meter i{background:linear-gradient(90deg,var(--red),var(--yellow))}.mission-status{justify-content:space-between}.mission-status span{color:var(--soft);font-size:.82rem;text-transform:capitalize}.mission-status small{color:var(--yellow)}.mission-objectives{display:grid;grid-gap:8px;gap:8px}.mission-objectives article{background:#0d1411;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:7px;gap:7px;padding:8px}.mission-objectives article.complete{border-color:rgba(121,201,142,.58)}.mission-objectives article>div{display:grid;grid-gap:2px;gap:2px;min-width:0}.mission-objectives span,.mission-objectives strong{overflow:hidden;text-overflow:ellipsis}.mission-objectives strong{font-size:.82rem;line-height:1.25}.mission-objectives span{color:var(--muted);font-size:.76rem;white-space:nowrap}.tech-list{max-height:318px;overflow:auto;padding-right:2px}.tech-button,.tech-list{display:grid;grid-gap:8px;gap:8px}.tech-button{align-items:center;background:#101714;grid-template-columns:20px minmax(0,1fr) auto;min-height:42px;padding:7px 9px;text-align:left}.tech-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tech-button svg{color:var(--blue)}.build-readout{background:#0e1512;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;padding:10px}.build-readout>div:first-child{display:grid;grid-gap:2px;gap:2px}.build-readout dl,.inspector dl,.node-status dl{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.treasury-readout{background:#0a100e;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:3px;gap:3px;padding:8px}.treasury-readout small,.treasury-readout span{color:var(--muted);font-size:.78rem}.treasury-readout strong{color:var(--yellow)}.inspector dl{grid-template-columns:repeat(5,minmax(0,1fr))}dt{color:var(--muted);font-size:.72rem}dd{font-weight:800;margin:0}.inspector dd,.node-status dd,.node-status strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warning-text{color:var(--red)}.muted-text,.warning-text{font-size:.84rem}.inspector,.node-status{display:grid;grid-gap:9px;gap:9px;min-width:0;padding:10px}.inspector>div:first-child{display:grid;grid-gap:2px;gap:2px}.inspector span,.inspector strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-stack{display:flex;flex-wrap:wrap;gap:6px}.asset-stack span,.cause-stack span{background:#19231f;border:1px solid var(--line);border-radius:8px;color:var(--soft);font-size:.78rem;padding:4px 7px}.tab-row{display:grid;grid-gap:6px;gap:6px;grid-template-columns:repeat(4,minmax(0,1fr))}.tab-button{background:#101714;font-size:.82rem;height:34px;text-transform:capitalize}.dispatch-stack,.finance-grid,.security-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.security-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dispatch-stack div,.finance-grid div,.line-health div,.security-grid div{background:#0e1512;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:2px;gap:2px;min-width:0;padding:8px}.dispatch-stack span,.finance-grid span,.line-health span,.security-grid span{color:var(--muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.security-grid strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-frame{background:#0d1411;border:1px solid var(--line);border-radius:8px;height:204px;min-width:0;padding:8px}.line-health{display:grid;grid-gap:7px;gap:7px}.line-health div{grid-template-columns:minmax(0,1fr) auto}.line-health div.bad{border-color:rgba(241,118,100,.72)}.policy-list{display:grid;grid-gap:11px;gap:11px}.policy-control{display:grid;grid-gap:6px;gap:6px}.policy-control>span{align-items:center;display:flex;justify-content:space-between;gap:10px}.policy-control input{accent-color:var(--green);width:100%}.causal-list,.event-list,.stakeholders{display:grid;grid-gap:8px;gap:8px}.causal-list article,.event-card,.stakeholders article{background:#0e1512;border:1px solid var(--line);border-radius:8px;padding:9px}.causal-list article>div{align-items:center;display:grid;grid-gap:6px;gap:6px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.causal-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stakeholders article{align-items:center;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) 82px 38px}.stakeholders span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}meter{height:10px;width:82px}.events-panel{overflow:hidden}.event-list{max-height:calc(100vh - 278px);overflow:auto;padding-right:2px}.event-card{display:grid;grid-gap:7px;gap:7px}.event-card header{align-items:center;display:flex;gap:8px;justify-content:space-between}.event-card p{color:var(--soft);font-size:.86rem;line-height:1.38}.event-card.crisis{border-color:rgba(241,118,100,.85)}.event-card.warning{border-color:rgba(240,196,110,.75)}.event-card.success{border-color:rgba(121,201,142,.75)}.cause-stack{display:grid;grid-gap:5px;gap:5px}.cause-stack span{line-height:1.32;white-space:normal}.statusbar{align-items:center;background:#0f1513;color:var(--muted);display:flex;gap:18px;justify-content:space-between;min-height:34px;overflow:hidden;padding:7px 16px}.statusbar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}@media (max-width:1180px){.topbar{grid-template-columns:1fr 1fr}.workspace{grid-template-columns:minmax(240px,300px) minmax(460px,1fr)}.metric-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.tutorial-director{grid-template-columns:1fr 1fr}.right-panel,.tutorial-debrief{grid-column:1/-1}.right-panel{display:grid;grid-template-columns:1fr}.scenario-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.opening-hero,.opening-workspace{grid-template-columns:1fr}}@media (max-width:840px){.map-footer,.metric-strip,.topbar,.workspace{grid-template-columns:1fr}.topbar{position:static}.login-screen{grid-template-columns:1fr}.login-visual{min-height:260px;padding:18px}.login-panel{border-left:0;border-top:1px solid var(--line);min-height:auto;padding:24px 18px}.opening-screen{padding:10px}.opening-topbar,.opening-user{align-items:flex-start;flex-direction:column}.opening-hero>div:first-child{min-height:220px}.opening-hero h2{font-size:1.55rem}.scenario-card-grid,.selected-scenario dl{grid-template-columns:1fr}.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.tutorial-director{padding:10px}.tutorial-actions,.tutorial-director{grid-template-columns:1fr}.security-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{padding:10px}.map-section{grid-template-rows:440px auto}.file-controls,.speed-controls{flex-wrap:wrap}.statusbar{align-items:flex-start;flex-direction:column;gap:4px}}