:root{--bg: #11161d;--panel: #1b2430;--panel-2: #223041;--text: #d6deeb;--muted: #8ea2bd;--ok: #6edb8f;--warn: #ffcf6e;--danger: #ff7676}*{box-sizing:border-box}body{margin:0;height:100vh;overflow:hidden;font-family:Consolas,Menlo,Monaco,monospace;background:radial-gradient(circle at 20% 10%,#182430 0%,var(--bg) 55%);color:var(--text)}#app{display:grid;grid-template-columns:1fr 300px;grid-template-rows:auto auto 1fr;gap:12px;height:100vh;min-height:0;padding:12px}#topbar{grid-column:1 / -1;grid-row:1;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:6px 8px;border:1px solid #2f3f53;border-radius:8px;background:linear-gradient(180deg,#192330,#141c27)}#toolbar{grid-column:1 / -1;grid-row:2;display:flex;flex-direction:column;gap:4px;padding:6px 8px;border:1px solid #2f3f53;border-radius:8px;background:linear-gradient(180deg,#162131,#101821)}#toolbar .tool-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center}#toolbar .tool-row-label{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-right:4px;min-width:58px}#toolbar .tool-row-sep{display:inline-block;width:1px;height:18px;background:#2a3a50;margin:0 6px}#toolbar .tool-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px 3px 4px;font-size:11px;background:#1e2a3a;border:1px solid #2d3f55;border-radius:4px;color:var(--text);cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,opacity .12s;width:auto;flex:0 0 auto}#toolbar .tool-btn:hover:not(.locked){background:#263349;border-color:#3d5470}#toolbar .tool-btn.active{background:#2f4466;border-color:#7ba7d9;box-shadow:0 0 0 1px #7ba7d933}#toolbar .tool-btn.locked{opacity:.38;cursor:not-allowed}#toolbar .tool-btn.locked .tool-key{opacity:.5}#toolbar .tool-key{display:inline-block;min-width:18px;padding:1px 4px;background:#0e141c;border:1px solid #2d3f55;border-radius:3px;font-size:9.5px;color:var(--muted);font-family:Consolas,Menlo,monospace;text-align:center}#toolbar .tool-btn.active .tool-key{background:#1f2d42;color:var(--text);border-color:#7ba7d9}.topbar-btn{width:auto;min-width:0;padding:6px 10px;font-size:12px;white-space:nowrap}.utility-icon{display:inline-grid;place-items:center;width:34px;min-width:34px;height:34px;padding:0;color:#d8e6f6}.utility-icon svg{width:18px;height:18px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.utility-icon:hover{color:#f3f8ff}.utility-icon.load-error{color:var(--danger);border-color:#ff5d5db8}.topbar-spacer{margin-left:auto}#game-wrap{grid-column:1;grid-row:3;display:block;position:relative;min-width:0;min-height:0;background:radial-gradient(circle at 13% 24%,rgba(212,232,255,.9) 0 1px,transparent 1.5px),radial-gradient(circle at 77% 18%,rgba(120,172,230,.8) 0 1px,transparent 1.5px),radial-gradient(circle at 41% 72%,rgba(238,244,255,.75) 0 1px,transparent 1.4px),radial-gradient(circle at 86% 82%,rgba(112,154,210,.65) 0 1px,transparent 1.5px),radial-gradient(circle at 52% 42%,rgba(82,128,190,.16),transparent 36%),linear-gradient(180deg,#05080e,#020409);background-size:173px 149px,241px 197px,311px 263px,421px 337px,100% 100%,100% 100%;border:1px solid #2f3f53;border-radius:8px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(89,107,126,.34) transparent}#game-wrap::-webkit-scrollbar{width:8px;height:8px}#game-wrap::-webkit-scrollbar-track{background:transparent}#game-wrap::-webkit-scrollbar-thumb{border-radius:999px;background:#596b7e57}#game-wrap.panning{cursor:grabbing}#game-wrap.inspect-mode #game{cursor:default}#game-wrap.build-mode #game{cursor:crosshair}#game-wrap.panning #game{cursor:grabbing}.starter-layout-editor{position:fixed;z-index:12;width:min(560px,calc(100% - 24px));min-height:42px;margin:0;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 9px;color:#eaf4ff;background:#070f17f0;border:1px solid rgba(80,202,184,.82);border-radius:6px;box-shadow:0 8px 24px #00000057;font-family:Consolas,Menlo,Monaco,monospace}.starter-layout-editor-copy,.starter-layout-editor-actions{display:flex;align-items:center;gap:9px;min-width:0}.starter-layout-editor-copy strong{flex:0 0 auto;color:#6fe0c7;font-size:12px;text-transform:uppercase}.starter-layout-editor-copy span,#starter-layout-status{overflow:hidden;color:#9fb2c8;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.starter-layout-editor-actions{flex:0 0 auto}body.starter-layout-editor-mode #play,body.starter-layout-editor-mode #pause,body.starter-layout-editor-mode #speed-up{opacity:.38}@media (max-width: 820px){.starter-layout-editor{align-items:stretch;flex-direction:column;gap:6px}.starter-layout-editor-copy{align-items:flex-start;flex-direction:column;gap:2px}.starter-layout-editor-actions{justify-content:flex-end}}#hud-status{position:sticky;top:0;left:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 12px;font-family:Consolas,Menlo,Monaco,monospace;font-size:12px;color:var(--text);background:#101620eb;border-bottom:1px solid #2f3f53;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap}#hud-status .hud-item{display:inline-flex;align-items:baseline;gap:4px}#hud-status .hud-label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}#hud-status .hud-value{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}#hud-status .hud-sep{width:1px;height:12px;background:#2f3f53}#dev-tier-overlay{padding:4px 12px;font-family:Consolas,Menlo,Monaco,monospace;font-size:11px;color:#9cb2cc;background:#0c1018d1;border-bottom:1px solid #243244;letter-spacing:.02em;pointer-events:none;white-space:nowrap}#game-stage{position:relative;z-index:0;min-width:100%;min-height:100%;background:radial-gradient(circle at 20% 35%,rgba(255,255,255,.68) 0 1px,transparent 1.4px),radial-gradient(circle at 71% 68%,rgba(145,195,255,.58) 0 1px,transparent 1.5px),radial-gradient(circle at 44% 19%,rgba(90,132,190,.12),transparent 38%);background-size:239px 211px,353px 307px,100% 100%}canvas{position:absolute;display:block;image-rendering:pixelated;box-shadow:0 0 0 1px #344a6538}#game{z-index:1;pointer-events:auto;contain:strict}.topbar-note{font-size:11px;color:var(--muted);white-space:nowrap}#panel{grid-column:2;grid-row:3;min-height:0;background:linear-gradient(180deg,var(--panel) 0%,#141d29 100%);border:1px solid #2f3f53;border-radius:8px;padding:10px;font-size:13px;overflow:auto}h1{font-size:16px;margin:0 0 8px}.row{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--muted);align-items:baseline}.value{color:var(--text)}.section{margin-top:12px;border-top:1px solid #2f3f53;padding-top:10px}.panel-first{margin-top:0;border-top:0;padding-top:0}.top-controls{padding-top:2px}.transport-row{display:flex;gap:4px;align-items:center}.icon-btn{width:auto;min-width:0;padding:5px 8px;font-size:12px;line-height:1.1}.transport-btn{width:28px;min-width:28px;padding:4px 0;font-weight:700}.transport-btn.active{border-color:#6edb8f;color:#6edb8f}.speed-pill{margin-left:auto;border:1px solid #3b4d65;border-radius:999px;background:#151e2a;padding:2px 6px;font-size:11px;width:auto}.section-title{color:#a7bed8;font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.compact{font-size:13px;margin-bottom:6px}.list-row{font-size:12px;line-height:1.2}.list-row .value{font-size:12px}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}button,input[type=range],input[type=text],textarea,select{width:100%}button{padding:8px;border:1px solid #3b4d65;border-radius:6px;background:var(--panel-2);color:var(--text);cursor:pointer}select{padding:3px 5px;border:1px solid #3b4d65;border-radius:6px;background:#1b2735;color:var(--text);font-family:Consolas,Menlo,Monaco,monospace;font-size:12px}input[type=text],textarea{padding:6px 8px;border:1px solid #3b4d65;border-radius:6px;background:#1b2735;color:var(--text);font-family:Consolas,Menlo,Monaco,monospace;font-size:12px}textarea{resize:vertical;min-height:56px}button:hover{filter:brightness(1.08)}kbd{background:#0f161f;border:1px solid #314052;border-radius:4px;padding:1px 4px;color:#a7bed8}small{color:var(--muted);display:block;margin-top:6px;line-height:1.25;font-size:11px}.mini-collapse{border-top:1px dashed rgba(88,110,138,.45);margin-top:8px;padding-top:6px}.mini-collapse>summary{cursor:pointer;color:#9fb4cd;font-size:11px;list-style:none;margin-bottom:4px;-webkit-user-select:none;user-select:none}.mini-collapse>summary::-webkit-details-marker{display:none}.mini-collapse>summary:before{content:"▸ "}.mini-collapse[open]>summary:before{content:"▾ "}#ops-extra{font-size:12px;margin-top:2px;margin-bottom:8px}.legend-title{font-size:12px;color:var(--muted);margin-bottom:6px}.legend-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.legend-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text)}.legend-build{margin-top:8px;font-size:11px}.tier-progress-track{margin-top:8px;width:100%;height:8px;border-radius:999px;border:1px solid #314052;background:#0f161f;overflow:hidden}.tier-progress-fill{width:0%;height:100%;background:linear-gradient(90deg,#4d7fb1,#6edb8f);transition:width .18s linear}.chip{width:10px;height:10px;border:1px solid rgba(255,255,255,.35);border-radius:2px;display:inline-block}.chip-caf{background:#4ea66e8c}.chip-reactor{background:#b97d398c}.chip-security{background:#bd4f4f8c}.chip-dorm{background:#7ec8ff80}.chip-hygiene{background:#60e4e180}.chip-hydro{background:#62cd7873}.chip-life{background:#f5f5aa80}.chip-lounge{background:#c48cff80}.chip-market{background:#ffbc7880}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#05090f8c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:20}.hidden{display:none!important}.modal-card{width:min(520px,96vw);max-height:86vh;overflow:auto;background:linear-gradient(180deg,var(--panel) 0%,#141d29 100%);border:1px solid #3b4d65;border-radius:8px;padding:12px}.rating-modal-card{width:min(500px,96vw);max-height:min(760px,88vh);overflow:auto;border-color:#d8b258ad;box-shadow:0 20px 60px #00000085}.rating-modal-heading{display:grid;gap:2px}.rating-modal-kicker{color:#d8b258;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.rating-modal-score-row{display:flex;align-items:baseline;gap:10px;padding:10px 12px;border:1px solid rgba(216,178,88,.38);border-radius:6px;background:#2521169e}.rating-modal-score{font-size:34px;line-height:1;font-variant-numeric:tabular-nums}.rating-modal-trend{font-size:12px;font-variant-numeric:tabular-nums}.rating-modal-summary{margin:9px 0 0;color:#d6deeb;font-size:11px;line-height:1.35}.rating-modal-effect{margin-top:8px;padding:7px 8px;border-left:2px solid #5cd8ff;color:#b9d2e7;background:#152c3975;font-size:10px;line-height:1.3}.rating-factor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.rating-factor-group{min-width:0;padding:8px;border:1px solid rgba(63,82,105,.72);border-radius:5px;background:#0a10176b}.rating-factor-group-failures,.rating-modal-driver-block{margin-top:8px}.rating-factor-group-positive{border-color:#58b87d6b}.rating-factor-group-negative,.rating-factor-group-failures{border-color:#ffcf6e6b}.rating-factor-heading{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.rating-factor-heading strong{color:#e8eef6;font-size:11px}.rating-factor-heading small{margin:0;color:#8ea2bd;font-size:9px;text-align:right}.rating-driver-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:7px 0 0;border-top:0}.rating-driver-list:before{display:none}.rating-driver-list .metric-pill{padding:5px}.rating-modal-driver-block{display:grid;gap:5px;padding:8px;border:1px solid rgba(123,167,217,.32);border-radius:5px;background:#121d2985}.rating-modal-driver-block>strong{color:#b9d8ef;font-size:10px;text-transform:uppercase}.rating-driver-notes{display:flex;flex-wrap:wrap;gap:5px}.rating-driver-note,.rating-driver-empty{display:inline-block;padding:4px 6px;border:1px solid rgba(255,118,118,.4);border-radius:4px;color:#ffd0d0;background:#5c1b1f59;font-size:10px;line-height:1.2}.rating-driver-empty{border-color:#6edb8f66;color:#bcebc9;background:#1642274d}.save-modal-card{width:min(700px,96vw)}.expansion-modal-card{width:min(420px,96vw)}.progression-modal-card{width:min(860px,96vw)}.crew-roster-modal-card{width:min(720px,96vw);overflow:hidden}.crew-roster-modal-card .modal-head>span{display:grid;gap:3px}.crew-roster-modal-card .modal-head small{color:#8da7b8}.crew-modal-card{width:min(900px,96vw)}.crew-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:10px;margin:8px 0 14px}.crew-card{display:grid;gap:10px;min-height:148px;padding:12px;border:1px solid #354960;border-radius:6px;background:linear-gradient(180deg,#141f2ce6,#0a1019eb);box-shadow:0 1px #9abee614 inset}.crew-card.armed{border-color:#6edb8fb8;box-shadow:inset 0 0 0 1px #6edb8f2e,0 0 16px #6edb8f14}.crew-card.locked{opacity:.72}.crew-card strong,.crew-card small{overflow-wrap:anywhere}.crew-card-main{display:grid;grid-template-columns:68px 1fr;align-items:center;gap:12px;min-width:0}.crew-card-copy{display:grid;gap:5px;min-width:0}.crew-card-copy strong{color:#e6edf7;font-size:15px;line-height:1.12}.crew-card-portrait{width:64px;height:64px;border:1px solid #41607d;border-radius:6px;background-color:#060b12e6;image-rendering:pixelated}.crew-card-portrait.sprite{background-repeat:no-repeat}.crew-card-portrait.fallback{display:grid;place-items:center;color:#dbe7f5;font-weight:800;font-size:18px;background:linear-gradient(180deg,#22374d,#111c2a)}.compact-buttons{margin:0}#toolbar .tool-row.crew-palette-section{grid-template-columns:1fr;align-content:start;gap:8px}#toolbar .crew-palette-summary{display:grid;gap:6px}.crew-palette-subhead{margin-top:2px}#toolbar .crew-palette-section .crew-grid{display:grid;grid-template-columns:1fr;gap:8px;margin:0}#toolbar .crew-palette-section .crew-card{display:grid;grid-template-columns:1fr;gap:8px;min-height:0;padding:9px}#toolbar .crew-palette-section .crew-card-main{grid-template-columns:54px 1fr;gap:10px}#toolbar .crew-palette-section .crew-card-portrait{width:52px;height:52px}#toolbar .crew-palette-section .crew-card .button-row{margin-top:0}#toolbar .crew-palette-section .crew-card button{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:34px;padding:7px 8px;touch-action:manipulation}#toolbar .crew-palette-section .row{align-items:start;gap:8px}#toolbar .crew-palette-section .value{min-width:0;text-align:right;white-space:normal;overflow-wrap:normal;word-break:normal}.ops-modal-card{display:flex;flex-direction:column;width:min(1120px,96vw);height:min(720px,calc(100vh - 32px));max-height:calc(100vh - 32px);overflow:hidden;padding:14px}.system-map-modal-card{width:min(720px,96vw);max-height:95vh;overflow-y:auto;display:block}.system-map-lane-row{display:block;padding:4px 0;border-top:1px solid rgba(120,130,160,.18)}.system-map-lane-row strong{color:#e6eaf2;font-size:12px;display:block;margin-bottom:2px}.system-map-lane-detail{color:#9aa3b5;font-size:11px;line-height:1.4;word-break:break-word}.system-map-modal-card #system-map-canvas{position:relative!important;display:block;margin:8px auto;background:#070b15;border:1px solid #2a3550;border-radius:4px;width:360px!important;height:360px!important;max-width:88vw}.system-map-summary{display:block;text-align:center;color:#9aa3b5;margin-top:4px}.system-map-factions,.system-map-lanes{margin-top:10px}.ops-modal-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.ops-state-chip{display:grid;gap:3px;min-width:0;padding:8px 10px;border:1px solid rgba(83,111,143,.74);border-radius:6px;background:linear-gradient(180deg,#1d2b39eb,#101820eb)}.ops-state-chip span{color:#9fb4cd;font-size:10px;line-height:1;text-transform:uppercase}.ops-state-chip strong{color:#eef5ff;font-size:20px;line-height:1}.ops-state-chip.blocked strong{color:var(--warn)}.ops-modal-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:10px}.ops-tab-btn{width:100%;min-width:0;padding:7px 8px;border-radius:5px;background:#0c131bb8;color:#b9cbe2;font-size:11px;font-weight:800;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.ops-tab-btn.active{border-color:#7ba7d9;background:#2f4466;color:#f3f6f9}.ops-modal-grid{display:block;flex:1;min-height:0}.ops-modal-section{min-width:0;padding:10px;border:1px solid rgba(59,77,101,.82);border-radius:6px;background:linear-gradient(180deg,#131c26d1,#090e14c7),repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 4px)}.ops-modal-section.wide{grid-column:1 / -1}.ops-tab-panel{display:none}.ops-tab-panel.active{display:block;height:100%;overflow:auto}.ops-modal-section .section-title{margin-bottom:9px;color:#d8e7f7}.ops-modal-section .row{display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px;padding:6px 0;border-bottom:1px solid rgba(63,82,105,.42);align-items:start}.ops-modal-section .row:last-child{border-bottom:0}.ops-modal-section .value{max-width:none;text-align:left;overflow-wrap:anywhere}.metric-list{display:grid;grid-template-columns:88px repeat(auto-fit,minmax(82px,1fr));gap:6px;align-items:stretch;padding:7px 0;border-top:1px solid rgba(63,82,105,.32)}.ops-modal-section .section-title+.metric-list{border-top:0;padding-top:0}.metric-list:before{content:attr(data-metric-title);align-self:center;color:#93a8bf;font-size:11px;font-weight:800;line-height:1.15}.metric-pill{min-width:0;display:grid;gap:2px;padding:5px 7px;border:1px solid rgba(55,74,96,.76);border-radius:4px;background:#0c131bb8}.metric-label{min-width:0;color:#8ea2bd;font-size:9px;line-height:1.1;text-transform:uppercase;overflow-wrap:anywhere}.metric-value{min-width:0;color:#eef5ff;font-size:12px;line-height:1.15;overflow-wrap:anywhere}.metric-note{min-width:0;color:#7c90a8;font-size:9px;line-height:1.1;font-variant-numeric:tabular-nums}.metric-pill.tone-ok{border-color:#58b87d85}.metric-pill.tone-ok .metric-value{color:var(--ok)}.metric-pill.tone-warn{border-color:#ffcf6e9e}.metric-pill.tone-warn .metric-value{color:var(--warn)}.metric-pill.tone-danger{border-color:#ff7676a8}.metric-pill.tone-danger .metric-value{color:var(--danger)}.metric-pill.tone-muted .metric-value{color:#9fb4cd}.ops-detail-list{display:grid;grid-template-columns:88px repeat(auto-fit,minmax(110px,1fr));gap:6px;align-items:stretch;padding:7px 0;border-top:1px solid rgba(63,82,105,.32)}.ops-detail-list:before{content:attr(data-detail-title);align-self:center;color:#93a8bf;font-size:11px;font-weight:800;line-height:1.15}.ops-detail-row,.ops-detail-empty{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:baseline;padding:5px 7px;border:1px solid rgba(55,74,96,.62);border-radius:4px;background:#0c131b8a}.ops-detail-empty{grid-template-columns:1fr;color:#8ea2bd}.ops-detail-label{min-width:0;color:#b8c8dc;font-size:10px;line-height:1.2;overflow-wrap:anywhere}.ops-detail-value{min-width:0;color:#eef5ff;font-size:11px;line-height:1.2;overflow-wrap:anywhere}.ops-detail-row.tone-warn{border-color:#ffcf6e8a}.ops-detail-row.tone-warn .ops-detail-value{color:var(--warn)}.ops-detail-row.tone-danger{border-color:#ff767694}.ops-detail-row.tone-danger .ops-detail-value{color:var(--danger)}.ops-modal-section small{margin-top:0;padding:7px 0;border-top:1px solid rgba(63,82,105,.32);color:#b9cbe2;font-size:11px;overflow-wrap:anywhere}.ops-modal-section .section-title+small{border-top:0;padding-top:0}.ops-note{color:#b9cbe2}.ops-modal-traffic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.progression-hero{border:1px solid #33516b;border-radius:10px;padding:12px;background:linear-gradient(180deg,#162838bf,#121c28bf)}.progression-tier-name{font-size:24px;font-weight:700;color:#e4edf8;letter-spacing:.02em}.progression-tier-theme{margin-top:4px;color:#b9cbe2;font-size:12px}.tier-progress-track-lg{margin-top:10px;height:16px;border-color:#3c617f;background:#0d1823}.tier-progress-track-lg .tier-progress-fill{background:linear-gradient(90deg,#3b7ab1,#54c6a6)}.progression-section{margin-top:10px;border:1px solid #31485e;border-radius:8px;padding:10px;background:#0f1925b8}.progression-specialties>summary{cursor:pointer}.progression-specialties[open]>summary{margin-bottom:8px}#progress-modal-roadmap{display:grid;gap:8px;margin-top:6px}.progression-tier-checklist{display:grid;gap:5px;margin-top:10px;padding-top:9px;border-top:1px solid rgba(79,111,141,.5)}.specialty-roadmap{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-top:8px}.specialty-roadmap-card{display:grid;gap:6px;border:1px solid #304761;border-radius:8px;padding:10px;background:#0e1621d1}.specialty-roadmap-card.active{border-color:#7cc4fcd9;box-shadow:0 0 0 1px #4a8cc273 inset}.specialty-roadmap-card.completed{border-color:#54c6a6b8}.specialty-roadmap-card.locked{opacity:.68}.specialty-roadmap-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.progression-tier-card{border:1px solid #304761;border-radius:8px;padding:10px;background:#0e1621d1}.progression-tier-card.done{border-color:#54c6a6b8}.progression-tier-card.current{border-color:#7cc4fcd9;box-shadow:0 0 0 1px #4a8cc273 inset}.progression-tier-card.next{border-color:#d8b258b8}.progression-tier-card.locked{opacity:.64}.progression-tier-card.upcoming{border-color:#58708ab3}.progression-tier-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.progression-tier-status{border:1px solid #3b4d65;border-radius:999px;padding:2px 8px;font-size:10px;color:#d6deeb;background:#192433bf}.progression-tier-theme-line{color:#9eb3cb}h2{font-size:14px;margin:0}.ghost-btn{width:auto;padding:6px 10px}.priority-grid{display:grid;gap:8px}.priority-row{display:grid;grid-template-columns:110px 1fr 22px;align-items:center;gap:8px;font-size:12px;color:var(--text)}.role-coverage-summary{display:grid;gap:8px;padding:8px 0 10px;border-bottom:1px solid rgba(125,177,207,.22)}.role-coverage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;color:#a9bdcf;font-size:10px}.role-coverage-head>span:first-child{display:grid;gap:2px}.role-coverage-head strong{color:#e8f5fc}.role-coverage-head small{color:#83a2b7}.role-coverage-chips,.bottom-role-coverage{display:flex;flex-wrap:wrap;gap:5px}.role-coverage-chip,.bottom-role-chip{padding:3px 5px;border:1px solid rgba(113,173,204,.28);border-radius:4px;background:#0f1e2aad;color:#a9c2d1;font-size:9px}.role-coverage-chip b,.bottom-role-chip b{color:#e7f5fb}.role-coverage-chip.uncovered,.bottom-role-chip.uncovered{border-color:#e86f678c;color:#ffaaa3}.named-watch-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:min(58vh,620px);margin-top:8px;overflow-y:auto}.named-roster-card{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;width:100%;min-height:44px;padding:5px 6px;border:1px solid rgba(125,177,207,.18);border-radius:4px;background:#07111bb8;text-align:left}.named-roster-card:hover{border-color:#6fc5e5b3}.named-roster-card.selected{border-color:#6fc5e5;background:#1d4c63c7;box-shadow:inset 0 0 0 1px #6fc5e540}.named-roster-card.incompatible{opacity:.5}.named-roster-card .crew-card-portrait{width:32px;height:32px}.named-roster-copy{display:grid;gap:2px;min-width:0}.named-roster-copy strong{color:#edf6fa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.named-roster-copy small{color:#8fa9ba}.named-roster-copy em{color:#68879a;font-size:8px;font-style:normal;text-transform:capitalize}.watch-assignment-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:54px;margin-top:8px;padding:7px 8px;border:1px solid rgba(125,177,207,.22);border-radius:4px;background:#0b1823cc}.watch-assignment-bar>span,.watch-assignment-person,.watch-assignment-person>span,.watch-assignment-actions{display:flex;align-items:center;gap:7px}.watch-assignment-bar>span:first-child:not(.watch-assignment-person),.watch-assignment-person>span{align-items:flex-start;flex-direction:column;gap:2px}.watch-assignment-person .crew-card-portrait{width:34px;height:34px}.watch-assignment-bar small{color:#7f9aac}.watch-assignment-actions button{width:auto;min-width:58px}.watch-assignment-actions button.active{border-color:#6fc5e5;background:#28678494;color:#f1fbff}.workplace-assignment-context,.room-workplace-panel{margin-top:8px;padding:8px;border:1px solid rgba(87,193,155,.42);border-left:3px solid #58c58a;border-radius:4px;background:#0c26259e}.workplace-assignment-context,.room-workplace-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.workplace-assignment-context>span:first-child,.room-workplace-head>span{display:grid;gap:2px}.workplace-assignment-context small,.room-workplace-panel small,.room-workplace-status{color:#86a9a7}.workplace-context-actions{display:flex;align-items:center;gap:5px}.workplace-context-actions button,.room-workplace-head button{width:auto}.room-workplace-actions{display:flex;gap:5px}.room-workplace-status{margin-top:6px;font-size:9px}.room-modal-card{width:min(590px,96vw)}.room-modal-card.commercial-room-mode>:not(.modal-head):not(#room-modal-commercial){display:none!important}.room-modal-card.commercial-room-mode #room-modal-commercial{margin-bottom:0}.commercial-lease-panel{display:grid;gap:8px;margin-bottom:10px;padding:10px;overflow:hidden;border:1px solid rgba(94,201,174,.46);border-left:3px solid #5ec9ae;border-radius:6px;background:#071218d6;box-shadow:inset 0 1px #d2f4ed0d}.commercial-lease-panel.hidden{display:none}.commercial-lease-head,.commercial-proposal-toolbar,.commercial-fitout-status,.commercial-lease-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.commercial-lease-head>span:first-child,.commercial-proposal-toolbar>span,.commercial-fitout-status>span:first-child{display:grid;min-width:0;gap:2px}.commercial-lease-head small,.commercial-proposal-toolbar small,.commercial-fitout-status small,.commercial-tenant-hero small{color:#86a8b3;font-size:9px}.commercial-lease-head strong{overflow:hidden;color:#f0f7f5;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.commercial-phase{flex:0 0 auto;padding:3px 7px;border:1px solid rgba(108,221,173,.42);border-radius:999px;color:#a9efc7;background:#1b533b61;font-size:9px;font-weight:800;text-transform:uppercase}.commercial-phase.offers,.commercial-phase.fitting-out{border-color:#66beeb85;color:#a9ddf4;background:#19465e6b}.commercial-phase.closed{border-color:#ff767680;color:#ffc0c0;background:#5d1d236b}.commercial-lease-intro{margin:0;color:#adc0ca;font-size:10px;line-height:1.4}.commercial-shell-brief{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.commercial-shell-brief span{display:grid;gap:2px;min-width:0;padding:6px;border:1px solid rgba(120,156,173,.2);border-radius:4px;color:#7996a4;background:#0b1b22c2;font-size:8px}.commercial-shell-brief b{color:#dbe8e9;font-size:11px}.commercial-primary-action{border-color:#58d5a6b8;color:#e7fff4;background:#1b694b99;font-weight:800}.commercial-proposal-toolbar{padding-top:7px;border-top:1px solid rgba(121,167,183,.18)}.commercial-proposal-toolbar button,.commercial-lease-actions button{width:auto;flex:0 0 auto;padding:5px 8px;font-size:9px}.commercial-offer-deck{display:grid;gap:6px}.commercial-offer-card{--commercial-accent: #77cfaa;display:grid;grid-template-columns:minmax(0,1fr) 78px;min-width:0;overflow:hidden;border:1px solid rgba(119,207,170,.3);border-radius:5px;background:#0c1a21e6;transition:border-color .12s,background .12s,box-shadow .12s}.commercial-offer-card.kind-market-stall{--commercial-accent: #e1b75c}.commercial-offer-card.kind-cantina{--commercial-accent: #63cbe0}.commercial-offer-card.kind-restaurant{--commercial-accent: #ed8874}.commercial-offer-card.kind-gift-shop{--commercial-accent: #e296bf}.commercial-offer-card:hover,.commercial-offer-card.selected{border-color:var(--commercial-accent);background:#122730f5;box-shadow:inset 3px 0 var(--commercial-accent)}.commercial-offer-preview{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:stretch;gap:8px;min-width:0;padding:7px;border:0;border-radius:0;color:inherit;background:transparent;text-align:left}.commercial-offer-preview:hover{color:inherit;background:transparent;filter:none}.commercial-floorplan{display:grid;grid-template-columns:repeat(var(--commercial-plan-cols),minmax(1px,1fr));grid-template-rows:repeat(var(--commercial-plan-rows),minmax(1px,1fr));width:92px;height:70px;gap:1px;align-self:center;padding:3px;border:1px solid rgba(130,170,187,.3);border-radius:3px;background:#071017}.commercial-plan-cell{min-width:0;min-height:0;border:1px solid rgba(94,130,143,.1);background:#182832}.commercial-plan-cell.void{border-color:transparent;background:transparent}.commercial-plan-cell.fixture{border-color:#ffffff57;background:var(--commercial-accent);box-shadow:0 0 3px color-mix(in srgb,var(--commercial-accent) 60%,transparent)}.commercial-plan-cell.fixture-table,.commercial-plan-cell.fixture-bench,.commercial-plan-cell.fixture-couch{border-radius:50%;background:#8db980}.commercial-plan-cell.fixture-serving-station,.commercial-plan-cell.fixture-bar-counter,.commercial-plan-cell.fixture-market-stall{background:#d18a58}.commercial-plan-cell.fixture-stove,.commercial-plan-cell.fixture-tap{background:#69b9cf}.commercial-offer-copy{display:grid;min-width:0;align-content:center;gap:4px}.commercial-offer-title{display:flex;min-width:0;align-items:center;gap:7px}.commercial-offer-title>span:last-child{display:grid;min-width:0;gap:1px}.commercial-offer-title strong{overflow:hidden;color:#edf6f7;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.commercial-offer-title small,.commercial-offer-stock{overflow:hidden;color:#7899a6;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.commercial-business-mark{display:grid;place-items:center;width:28px;height:22px;flex:0 0 28px;border:1px solid color-mix(in srgb,var(--commercial-accent) 70%,#ffffff);border-radius:3px;color:#081318;background:var(--commercial-accent);font-size:8px;font-weight:900}.commercial-offer-concept{overflow:hidden;color:#b9cad0;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.commercial-offer-terms{display:flex;flex-wrap:wrap;gap:3px}.commercial-offer-terms b{padding:2px 4px;border:1px solid rgba(123,163,178,.22);border-radius:3px;color:#b9d7df;background:#112b34ad;font-size:8px;font-weight:700}.commercial-offer-accept{margin:6px 6px 6px 0;padding:5px;border-color:color-mix(in srgb,var(--commercial-accent) 70%,#3b4d65);color:#e8f5f3;background:color-mix(in srgb,var(--commercial-accent) 22%,#172432);font-size:9px;font-weight:800}.commercial-tenant-hero{--commercial-accent: #63cbe0;display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:9px;padding:7px;border:1px solid rgba(99,203,224,.32);border-radius:5px;background:#0f242dd1}.commercial-tenant-hero.kind-market-stall{--commercial-accent: #e1b75c}.commercial-tenant-hero.kind-restaurant{--commercial-accent: #ed8874}.commercial-tenant-hero.kind-gift-shop{--commercial-accent: #e296bf}.commercial-tenant-hero>span:last-child{display:grid;min-width:0;gap:3px}.commercial-tenant-hero strong{color:#e7f1f2;font-size:10px;line-height:1.3}.commercial-tenant-hero em{color:var(--commercial-accent);font-size:9px;font-style:normal}.commercial-tenant-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.commercial-tenant-metrics span{display:grid;min-width:0;gap:2px;padding:6px;border-left:2px solid rgba(106,190,181,.42);background:#0e2027b3}.commercial-tenant-metrics span:nth-child(3),.commercial-tenant-metrics span:nth-child(5){border-left-color:#e1b75c9e}.commercial-tenant-metrics small{color:#7899a6;font-size:8px;text-transform:uppercase}.commercial-tenant-metrics strong{min-width:0;color:#dcebed;font-size:9px;overflow-wrap:anywhere}.commercial-fitout-status{padding-top:7px;border-top:1px solid rgba(121,167,183,.18)}.commercial-fitout-track{width:42%;height:6px;overflow:hidden;border-radius:2px;background:#0b171d}.commercial-fitout-track i{display:block;height:100%;background:#5ec9ae;transition:width .2s linear}.commercial-close-action{margin-left:auto;color:#b8c7cc;background:#243139ad}.commercial-close-action.armed{border-color:#ff7676ad;color:#ffd1d1;background:#64222794}.commercial-panel-notice{display:block;color:#82d7b4;font-size:9px;line-height:1.35}.commercial-panel-notice.warn{color:#ffcf8c}@media (max-width: 660px){.commercial-offer-card{grid-template-columns:1fr}.commercial-offer-preview{grid-template-columns:76px minmax(0,1fr)}.commercial-floorplan{width:76px;height:64px}.commercial-offer-accept{margin:0 6px 6px}.commercial-shell-brief{grid-template-columns:1fr}.commercial-tenant-hero{grid-template-columns:76px minmax(0,1fr)}.commercial-tenant-metrics{grid-template-columns:1fr}}.watch-roster-column{min-width:0;border:1px solid rgba(125,177,207,.18);border-radius:4px;background:#060f188a}.watch-roster-column.on-duty{border-top:3px solid #58c58a}.watch-roster-column.reserve{border-top:3px solid #d0a858}.watch-roster-column.off-duty{border-top:3px solid #647b8d}.watch-roster-heading{display:flex;align-items:center;justify-content:space-between;padding:7px 8px;border-bottom:1px solid rgba(125,177,207,.15)}.watch-roster-heading>span{display:grid;gap:1px}.watch-roster-heading strong{color:#ecf6fa}.watch-roster-heading small{color:#7693a5;font-size:8px;text-transform:uppercase}.watch-roster-heading b{color:#9db8c8}.watch-roster-members{display:grid;gap:5px;padding:6px}.watch-roster-empty{padding:10px 4px;color:#657f90;font-size:9px;text-align:center}.roster-rule{display:block;margin-top:7px;color:#7892a5;line-height:1.35}@media (max-width: 660px){.named-watch-roster,.watch-assignment-bar{grid-template-columns:1fr}.watch-assignment-actions{flex-wrap:wrap}}.shift-roster-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin:12px 0 8px;padding-top:10px;border-top:1px solid rgba(125,177,207,.22);font-size:12px}.shift-roster-head div{display:grid;gap:2px}.shift-roster-head small,.shift-roster-row small{color:#8ea2bd;font-weight:400}.shift-roster-head>span{color:#6edb8f;white-space:nowrap}.watch-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:8px}.watch-selector button{padding:6px}.watch-selector button.active{border-color:#70c6e8;color:#e7f8ff;background:#25648475}.watch-selector button.is-current:after{content:" LIVE";color:#75dda0;font-size:9px}.shift-roster-grid{display:grid;gap:5px}.shift-roster-row{display:grid;grid-template-columns:minmax(190px,1fr) 30px 22px 30px;align-items:center;gap:5px;padding:6px 7px;border:1px solid rgba(125,177,207,.16);background:#06101b7a}.shift-roster-row>span{display:grid;gap:2px}.shift-roster-row button{min-width:30px;padding:4px}.shift-roster-row b{text-align:center;color:#e7f6ff}.automation-toggle{width:100%;margin:5px 0 3px;border-color:#5bb0d66b;color:#b9d9e8}.automation-toggle.active{color:#d8ffe4;border-color:#59dc87b8;background:#23704457;box-shadow:inset 0 0 0 1px #6cec971f}.automation-toggle:disabled{opacity:.55}.automation-status{display:block;color:#8ea2bd;line-height:1.35;margin-bottom:5px}.priority-advanced-title{margin:12px 0 8px;color:#8ea2bd}#agent-reason,#agent-visitor-details,#agent-resident-details{line-height:1.35}#agent-health{font-weight:700}.save-textarea{min-height:88px}.save-status{margin-top:8px}.status-ok{color:var(--ok)}.status-warn{color:var(--warn)}.status-error{color:var(--danger)}.status-muted{color:var(--muted)}#app{grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:8px}#topbar{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;padding:0;border:0;border-radius:0;background:transparent}.station-brand,.top-actions,.sim-controls,#hud-status,.hud-card,.dock-card,#panel{border:1px solid rgba(89,107,126,.72);background:linear-gradient(180deg,#0e1216f5,#080c10f0);box-shadow:0 10px 24px #00000042}.station-brand{display:flex;align-items:center;flex:0 1 240px;gap:8px;min-width:0;overflow:hidden;padding:5px 9px;border-radius:6px}.station-brand h1{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:0;color:#f3f6f9}.station-mark{display:grid;place-items:center;width:24px;height:24px;border:1px solid #3b4d65;border-radius:4px;background:#151b21;color:var(--ok);font-weight:800}.top-actions,.sim-controls{display:flex;align-items:center;gap:6px;min-width:0;padding:5px;border-radius:6px}.top-actions{flex:0 0 auto;flex-wrap:nowrap;justify-content:center;gap:5px}.topbar-note{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-note.hidden{display:none}.sim-controls{flex:1 1 286px;justify-content:flex-end}.sim-clock{flex:1 1 auto;min-width:96px;overflow:hidden;text-overflow:ellipsis;color:#f3f6f9;font-size:12px;font-weight:700;text-align:center;white-space:nowrap}#hud-status{position:static;z-index:auto;display:grid;flex:999 1 520px;grid-template-columns:repeat(9,minmax(0,1fr));min-width:360px;gap:4px;padding:5px;border-radius:6px;border-bottom:1px solid rgba(89,107,126,.72);background:linear-gradient(180deg,#0e1216f5,#080c10f0);pointer-events:auto;white-space:normal}#hud-status .hud-item{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;padding:4px 6px;border:1px solid #29333e;border-radius:4px;background:#171f27b8}#hud-status .hud-air-control,#hud-status .hud-rating-button{width:auto;min-height:0;color:inherit;font:inherit;text-align:left;cursor:pointer}#hud-status .hud-rating-button:hover,#hud-status .hud-rating-button:focus-visible{border-color:#d8b258e6;background:#3e341ce6}#hud-status .hud-air-control:hover,#hud-status .hud-air-control:focus-visible{border-color:#7ba7d9e6;background:#1f3040e6}#hud-status .hud-air-control.warn{border-color:#ffcf6ee6;background:#4a3916c7}#hud-status .hud-air-control.danger{border-color:#ff7676f2;background:#4f1e1edb;box-shadow:inset 0 0 0 1px #ff76762e}.air-emergency-indicator{position:fixed;top:74px;left:calc((100vw - 340px)/2);z-index:15;width:min(520px,calc(100vw - 720px));min-width:300px;min-height:34px;transform:translate(-50%);padding:7px 12px;border-radius:4px;color:#fff4da;font-family:inherit;font-size:11px;font-weight:800;text-align:center;cursor:pointer;box-shadow:0 8px 24px #0000006b}.air-emergency-indicator.warn{border-color:#ffcf6ef0;background:#4a3916f5}.air-emergency-indicator.danger{border-color:#ff7676fa;background:#5c1b1ff7;animation:air-warning-pulse 1.4s ease-in-out infinite}@keyframes air-warning-pulse{0%,to{box-shadow:0 8px 24px #0000006b}50%{box-shadow:0 8px 28px #ff52526b}}#hud-status .hud-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;letter-spacing:0}#hud-status .hud-value{flex:0 0 auto;font-size:11px;white-space:nowrap}#hud-status .hud-sep{display:none}#game-wrap{grid-column:1;grid-row:2;border-radius:6px;border-color:#596b7eb8;background:radial-gradient(circle at 13% 24%,rgba(212,232,255,.9) 0 1px,transparent 1.5px),radial-gradient(circle at 77% 18%,rgba(120,172,230,.8) 0 1px,transparent 1.5px),radial-gradient(circle at 41% 72%,rgba(238,244,255,.75) 0 1px,transparent 1.4px),radial-gradient(circle at 86% 82%,rgba(112,154,210,.65) 0 1px,transparent 1.5px),radial-gradient(circle at 50% 20%,#25303c33,#06090d00 45%),linear-gradient(180deg,#05080e,#020409);background-size:173px 149px,241px 197px,311px 263px,421px 337px,100% 100%,100% 100%}#dev-tier-overlay{position:sticky;top:0;z-index:8}.floating-stack{position:fixed;z-index:9;pointer-events:none}.floating-stack>*,#bottom-dock{pointer-events:auto}.left-stack{left:18px;top:104px;width:min(980px,calc(100vw - 400px));display:grid;gap:10px;max-height:calc(100vh - 104px - var(--bottom-dock-h, 280px) - 22px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.station-goal-card{width:min(320px,calc(100vw - 36px));display:grid;gap:7px;padding:10px;border-color:#d8b258b3;background:linear-gradient(180deg,#272116f5,#0e1114f0);box-shadow:0 10px 28px #00000057}.station-goal-card.complete{border-color:#6edb8fb8;background:linear-gradient(180deg,#162a20f5,#0c1414f0)}.station-goal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#d8b258;font-size:9px;font-weight:900;text-transform:uppercase}.station-goal-card.complete .station-goal-head{color:var(--ok)}.station-goal-card>strong{color:#f0f2ed;font-size:13px;line-height:1.25}.operating-rhythm{width:min(320px,calc(100vw - 36px));box-sizing:border-box;display:grid;gap:4px;padding:9px 10px}.operating-rhythm-head{display:flex;justify-content:space-between;color:#8fc9e4;font-size:10px;text-transform:uppercase}.operating-rhythm-bank{color:#f0f5fa;font-weight:700;font-size:12px}.operating-rhythm small{min-width:0;overflow:hidden;color:#8fa7bc;text-overflow:ellipsis;white-space:nowrap}.operating-rhythm-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:6px;margin-top:3px}.operating-rhythm .mini-action-btn{min-width:0;width:100%;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.operating-rhythm .mini-action-btn.active{border-color:#f3bd62;color:#ffe0a3;background:#7d521673}.station-goal-items{display:grid;gap:4px}.station-goal-item{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:6px;align-items:center;color:#bbc5ca;font-size:10px}.station-goal-item.done{color:var(--ok)}.station-goal-item b{color:#e5e9e7;font-size:10px}.station-goal-check{width:13px;height:13px;display:grid;place-items:center;border:1px solid rgba(216,178,88,.52);border-radius:2px;color:var(--ok);font-size:9px}.station-goal-item.done .station-goal-check{border-color:#6edb8fb8;background:#32694647}.station-goal-progress{height:5px;overflow:hidden;border:1px solid rgba(216,178,88,.26);border-radius:3px;background:#05080ac2}.station-goal-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#8a6d2a,#d8b258);transition:width .18s linear}.station-goal-card.complete .station-goal-progress i{background:var(--ok)}.station-tier-summary{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:8px;align-items:center;padding:8px;border:1px solid rgba(123,167,217,.46);border-radius:5px;background:#0a141dc7;color:#d8e7f7;text-align:left}.station-tier-summary:hover{border-color:#8dbee5e0;background:#132330e6}.station-tier-copy{min-width:0;display:grid;gap:2px}.station-tier-copy>span{color:#87b8d2;font-size:9px;font-weight:900;text-transform:uppercase}.station-tier-copy strong{color:#edf4f8;font-size:10px;line-height:1.25}.station-tier-copy small{color:#aab9c5;font-size:9px;line-height:1.3;white-space:normal}.station-tier-chevron{color:#8db7d0;font-size:20px;line-height:1;text-align:center}.port-dispatch-card{width:min(320px,calc(100vw - 36px));min-height:66px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;overflow:hidden;text-align:left;font-family:inherit;border-color:#7ba7d98c;background:linear-gradient(180deg,#0d1823f0,#070d14e6);box-shadow:0 10px 28px #00000057}.port-dispatch-card.hidden,#toolbar [data-berth-hardware].hidden{display:none}.port-dispatch-card:hover{border-color:#8dbee5e0}.port-dispatch-card.has-waiting-ships{border-color:#ffcf6edb;background:linear-gradient(180deg,#302718f5,#121314f0)}.port-dispatch-card.has-active-ships{border-color:#6edb8fb8}.dispatch-trigger-mark{width:32px;height:32px;display:grid;place-items:center;border:1px solid rgba(123,167,217,.45);border-radius:50%;background:#2b465eb8;color:#c9e3f5;font-size:18px;line-height:1}.has-waiting-ships .dispatch-trigger-mark{border-color:#ffcf6e9e;background:#7a551c94;color:#ffe3a8}.dispatch-trigger-copy{min-width:0;display:grid;gap:2px}.dispatch-trigger-label,.dispatch-modal-kicker{color:#87b8d2;font-size:9px;font-weight:800;text-transform:uppercase}.dispatch-trigger-copy strong{min-width:0;color:#eef5f8;font-size:12px;line-height:1.25}.dispatch-trigger-copy small{min-width:0;overflow:hidden;color:#9fb2bf;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.dispatch-trigger-count{min-width:24px;height:24px;display:grid;place-items:center;padding:0 5px;border-radius:4px;background:#d69c3f;color:#11161d;font-size:11px;font-weight:900}.dispatch-trigger-count.hidden{display:none}#port-dispatch-modal{background:#02070cc2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.port-dispatch-modal-card{width:min(760px,96vw);max-width:760px;max-height:88vh;overflow:auto;border-color:#7ba7d9ad;box-shadow:0 24px 70px #0000008f}.dispatch-modal-heading{display:grid;gap:2px}.dispatch-modal-heading h2{margin:0;font-size:18px}.icon-close-btn{width:32px;height:32px;padding:0;font-size:20px;line-height:1}.berth-ops-anchors{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none}.berth-ops-anchor{position:fixed;width:min(286px,calc(100vw - 20px));margin:0;border:1px solid rgba(91,201,166,.62);border-left-width:3px;border-radius:4px;background:linear-gradient(180deg,#0b1c1ff5,#070f15f0);box-shadow:0 10px 26px #00000075;pointer-events:auto}.traffic-offer.berth-ops-anchor{padding:0}.berth-ops-anchor.anchor-left{border-left-width:1px;border-right-width:3px}.berth-ops-anchor.is-offscreen{display:none}.berth-ops-expectation{color:#a9c9c2;letter-spacing:.025em}.berth-ops-chip{width:100%;padding:4px 7px;border:0;border-radius:3px;background:none;color:#e8f3f8;font:inherit;text-align:left}.berth-ops-chip strong{display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.berth-ops-chip span{white-space:nowrap}.berth-ops-chip:focus-visible{outline:1px solid rgba(114,221,181,.9);outline-offset:-1px}.berth-ops-detail{padding:0 7px 6px}.berth-ops-anchor.is-collapsed{width:max-content;max-width:min(226px,calc(100vw - 20px))}.berth-ops-anchor.is-collapsed .berth-ops-detail{display:none}.traffic-offer.berth-ops-anchor.needs-attention{border-color:#ffcf6ed9}.traffic-offer.berth-ops-anchor.attention-late{border-color:#ff7676d9}.berth-ops-flag{flex:none;width:6px;height:6px;border-radius:50%;background:var(--warn);box-shadow:0 0 6px #ffcf6ecc}.berth-ops-anchor.attention-late .berth-ops-flag{background:var(--danger);box-shadow:0 0 6px #ff7676cc}#toggle-ui-panels .panel-visibility-slash{display:none;stroke-width:2.4}#toggle-ui-panels.active{border-color:#72ddb5d1;color:#72ddb5;background:#143a30d1}#toggle-ui-panels.active .panel-visibility-slash{display:block}#app.ui-panels-hidden{grid-template-columns:minmax(0,1fr)}#app.ui-panels-hidden #game-wrap{grid-column:1 / -1}#app.ui-panels-hidden #panel,#app.ui-panels-hidden .left-stack,#app.ui-panels-hidden #berth-ops-anchors,#app.ui-panels-hidden #agent-side-panel,#app.ui-panels-hidden #bottom-dock{display:none!important}@media (max-width: 760px){.left-stack{width:min(290px,calc(100vw - 28px))}.berth-ops-anchor{width:min(250px,calc(100vw - 20px))}.berth-ops-chip{min-height:28px}}.legacy-ui{display:none!important}#hud-status{grid-template-columns:repeat(6,minmax(0,1fr));max-width:760px}#bottom-dock{grid-template-columns:.9fr 1.15fr 1fr .8fr}[data-tool-section=rooms] .tool-btn{display:none}[data-tool-section=rooms] [data-tool-room=cafeteria],[data-tool-section=rooms] [data-tool-room=life-support],[data-tool-section=rooms] [data-tool-room=storage],[data-tool-section=rooms] [data-tool-room=logistics-stock],[data-tool-section=rooms] [data-tool-room=berth]{display:flex}[data-tool-section=modules] .tool-btn{display:none}[data-tool-section=modules] [data-tool-module=table],[data-tool-section=modules] [data-tool-module=serving-station],[data-tool-section=modules] [data-tool-module=intake-pallet],[data-tool-section=modules] [data-tool-module=storage-rack],[data-tool-section=modules] [data-tool-module=gangway],[data-tool-section=modules] [data-tool-module=customs-counter],[data-tool-section=modules] [data-tool-module=cargo-arm],[data-tool-section=modules] [data-tool-module=pod-dock],[data-tool-section=modules] [data-tool-module=fuel-coupler],[data-tool-section=modules] [data-tool-module=freight-locker],[data-tool-section=modules] [data-tool-module=maintenance-socket],[data-tool-section=modules] [data-tool-module=berth-control],[data-tool-section=modules] [data-tool-module=docking-clamp],[data-tool-section=modules] [data-tool-module=fire-extinguisher],[data-tool-section=modules] [data-tool-module=clear],[data-tool-section=modules] [data-tool-rotate],[data-tool-section=modules] [data-tool-deselect]{display:flex}.turnaround-promises,.settlement-summary{display:grid;gap:4px}.turnaround-promise,.settlement-row,.settlement-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.turnaround-promise,.settlement-row{padding:3px 5px;border-left:2px solid var(--warn);background:#ffc45c12;font-size:10px}.turnaround-promise.complete,.settlement-row.complete{border-left-color:var(--ok);background:#5fd19d14}.settlement-row.partial{border-left-color:var(--warn)}.settlement-row.failed{border-left-color:var(--danger);background:#ff767614}.settlement-head{padding-bottom:3px;color:#e7edf3;font-size:10px}.settlement-head>span{margin-left:auto}.settlement-dismiss{width:22px;height:22px;padding:0;border:0;background:transparent;color:#91a5b9;font-size:18px;line-height:1}.settlement-dismiss:hover{color:#e7edf3}.settlement-summary small{color:#91a5b9;line-height:1.35}.settlement-adaptation{display:block;width:100%;margin-top:6px;padding:6px;border:1px solid rgba(98,174,222,.35);border-radius:4px;background:#091924d1;color:#b9dff5;font-size:10px;line-height:1.35;text-align:left}.settlement-adaptation.complete{color:var(--ok)}.settlement-empty{color:#91a5b9;font-size:10px}.settlement-history{margin-top:5px;color:#91a5b9;font-size:10px}.settlement-history summary{cursor:pointer}.settlement-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;padding:3px 0;border-bottom:1px solid rgba(145,165,185,.14)}.shift-quick-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:7px}.shift-quick-controls.hidden,.shift-quick-total.hidden{display:none}.bottom-role-coverage{margin-bottom:7px}.shift-quick-row{display:grid;grid-template-columns:1fr 24px 22px 24px;align-items:center;gap:3px;padding:4px 5px;border:1px solid rgba(123,167,217,.3);border-radius:4px;background:#0c141cb3;font-size:10px}.shift-quick-row button{width:24px;height:24px;min-height:24px;padding:0;font-size:14px}.shift-quick-row b{text-align:center;color:#f3f6f9}.shift-quick-row:last-child{grid-column:1 / -1}.shift-quick-total{display:block;margin:-2px 0 7px;color:#91a5b9;font-size:9px}.shift-quick-total.warn{color:#ffcf6e}.cargo-arm-warning{color:var(--warn)}.cargo-arm-fault{color:var(--danger);font-weight:700}#hud-status .hud-item-action{display:grid;grid-template-columns:1fr 22px}#hud-status .hud-item-action .hud-label{grid-column:1 / -1}.hud-stock-button{width:22px;height:22px;min-height:22px;padding:0;border-radius:3px;font-size:15px}.hud-stock-button.purchase-failed{color:var(--danger);border-color:var(--danger)}.hud-card,.dock-card{border-radius:6px;padding:8px}.hud-card{background:linear-gradient(180deg,#0e1216d1,#080c10c2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.hud-card-title{margin-bottom:6px;color:#f3f6f9;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:0}.ops-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.mini-action-btn{width:auto;min-height:24px;padding:3px 8px;border-radius:4px;font-size:10px;font-weight:800;line-height:1;text-transform:uppercase;background:#23303eeb}details.overlay-card>summary.hud-card-title{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;margin-bottom:8px;-webkit-user-select:none;user-select:none}details.overlay-card>summary.hud-card-title::-webkit-details-marker{display:none}details.overlay-card>summary.hud-card-title:after{content:"−";color:var(--muted);font-size:13px}details.overlay-card:not([open])>summary.hud-card-title{margin-bottom:0}details.overlay-card:not([open])>summary.hud-card-title:after{content:"+"}.diagnostic-key.hidden{display:none}.diagnostic-key{display:grid;width:min(330px,100%);gap:7px;background:linear-gradient(180deg,#0c1218eb,#060a0fe0)}.diagnostic-key .hud-card-title{margin-bottom:0}.diagnostic-key-stats{padding:6px 7px;border:1px solid rgba(123,167,217,.26);border-radius:5px;background:#070c127a;color:#dce7f4;font-size:11px;line-height:1.25}.diagnostic-key-rows{display:grid;gap:5px}.diagnostic-key-row{display:grid;grid-template-columns:18px minmax(0,1fr);gap:7px;align-items:center;min-width:0;color:#aebed0;font-size:10.5px;line-height:1.25}.diagnostic-key-swatch{width:18px;height:11px;border:1px solid rgba(227,239,255,.35);border-radius:3px;box-shadow:inset 0 0 0 1px #070c123d}#bottom-dock .row{margin-bottom:5px}#quest-bar.section{margin-top:0;border-top:0;padding-top:0}.alert-list{display:grid;gap:6px;color:var(--danger);font-size:12px}.alert-list.is-clear{color:var(--ok)}.alert-item{display:block;width:100%;padding-left:10px;border-left:2px solid currentColor;background:transparent;border-top:0;border-right:0;border-bottom:0;text-align:left;cursor:default}button.alert-item{cursor:pointer}.alert-item.warn{color:var(--warn)}.alert-item.danger{color:var(--danger)}.incident-list{display:grid;gap:6px;margin-top:8px}.incident-list.is-empty{color:var(--muted);font-size:12px}.incident-item{display:grid;grid-template-columns:10px 1fr;align-items:center;gap:8px;width:100%;padding:7px 8px;border:1px solid rgba(255,118,118,.35);border-radius:6px;background:#490f1457;color:var(--text);text-align:left;cursor:pointer}.incident-item.warn{border-color:#ffcf6e59;background:#49300f4d}.incident-item:hover{border-color:currentColor;background:#ff76762e}.incident-item.is-selected{border-color:#ffffffb8;box-shadow:0 0 0 1px #ffffff29}.incident-dot{width:9px;height:9px;border-radius:999px;background:var(--danger);box-shadow:0 0 0 3px #ff767629}.incident-item.warn .incident-dot{background:var(--warn);box-shadow:0 0 0 3px #ffcf6e29}.incident-copy{display:grid;gap:2px;min-width:0}.incident-copy strong,.incident-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.incident-copy strong{font-size:12px}.incident-copy small{color:var(--muted);font-size:11px}.tier-checklist{display:grid;gap:6px}.checklist-heading{color:var(--muted);font-size:11px}.checklist-item{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:7px;color:var(--text);font-size:12px}.checklist-item.done{color:var(--ok)}.checkmark{display:grid;place-items:center;width:13px;height:13px;border:1px solid #43576e;border-radius:2px;color:var(--ok);font-size:10px}#bottom-dock{position:fixed;left:18px;right:356px;bottom:18px;z-index:9;display:grid;grid-template-columns:1.05fr .95fr 1fr 1.05fr .7fr;gap:6px;padding:6px;border-radius:6px;background:#06090dd1;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}#bottom-dock.pod-only,#bottom-dock.alerts-clear{grid-template-columns:.95fr 1.3fr .9fr}#bottom-dock.pod-only.alerts-clear{grid-template-columns:1fr 1.35fr}.command-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.primary-command,.secondary-command,.alert-action{width:100%;min-width:0;border-radius:5px;padding-left:4px;padding-right:4px;overflow:hidden;text-overflow:ellipsis;font-weight:800;white-space:nowrap}.primary-command{min-height:32px;border-color:#7ba7d9;background:#2f4466;color:#f3f6f9}.secondary-command{min-height:32px;background:#23303eeb}.traffic-controls{display:grid;grid-template-columns:minmax(150px,.65fr) minmax(220px,1fr) 190px;gap:8px;align-items:center;margin-top:7px}.traffic-rate-control{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center;color:var(--muted);font-size:10px}.traffic-rate-control input[type=range]{grid-column:1 / -1;height:12px}.traffic-state{display:grid;gap:3px;min-width:0}.approach-policy{grid-column:1 / -1;display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;align-items:center;padding-top:7px;border-top:1px solid rgba(123,167,217,.2)}.approach-policy>span{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}.approach-policy-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.approach-policy-options button{min-height:28px;padding:4px 8px;border-radius:4px;font-size:10px}.approach-policy-options button.active{border-color:#79c8ad;background:#255b4cd1;color:#ecfff8}.approach-policy.disabled{opacity:.58}.approach-reputation-pull{grid-column:1 / -1;color:#8ca7b8;font-size:9px}.commitment-control-surface,.admission-policy-editor{grid-column:1 / -1;display:grid;gap:7px;padding:8px;border:1px solid rgba(123,167,217,.26);border-radius:5px;background:#08121cb8}.commitment-surface-head,.failure-episode-head,.admission-pressure-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.commitment-surface-head>span:first-child,.failure-episode-head>span:first-child{display:grid;gap:1px}.commitment-surface-head strong{color:#eaf4f8;font-size:10px;text-transform:uppercase}.commitment-surface-head small{color:#819aaa;font-size:8px}.commitment-count{padding:2px 6px;border-radius:999px;color:#8ba4b3;background:#394d5b80;font-size:8px;font-weight:800;text-transform:uppercase}.commitment-count.is-active{color:#ffd497;background:#7e491d94}.failure-episode-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.failure-episode-empty{color:#7994a5;font-size:9px}.failure-episode-card{min-width:0;padding:7px;border:1px solid rgba(221,166,91,.34);border-left:3px solid #d9a559;border-radius:4px;background:#37231673}.failure-episode-card.stage-distressed{border-left-color:#ef9360}.failure-episode-card.stage-disruptive{border-left-color:#ff6969;background:#4c1a1b85}.failure-episode-head strong{color:#f3eee8;font-size:10px}.failure-episode-head small{color:#a99583;font-size:8px}.failure-episode-head b{color:#f3bd72;font-size:8px;white-space:nowrap}.failure-episode-card p{margin:5px 0;color:#c7b9aa;font-size:9px;line-height:1.25}.failure-episode-actions{display:flex;flex-wrap:wrap;gap:4px}.failure-episode-actions button{width:auto;min-height:23px;padding:2px 6px;border-color:#dbac6b5c;font-size:8px}.compact-switch{display:flex;align-items:center;gap:5px;color:#b9d5df;font-size:9px}.compact-switch input{margin:0}.admission-policy-editor.is-off .admission-rule-grid{opacity:.62}.admission-rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.admission-rule,.admission-reserves{min-width:0;margin:0;padding:6px;border:1px solid rgba(104,170,190,.28);border-radius:4px}.admission-rule legend,.admission-reserves legend{padding:0 4px;color:#9dc8d6;font-size:9px;font-weight:800}.admission-rule legend label{display:flex;align-items:center;gap:4px}.admission-rule>label,.admission-reserves>label{display:grid;grid-template-columns:minmax(0,1fr) 58px auto;gap:4px;align-items:center;margin-top:4px;color:#849dab;font-size:8px}.admission-rule input[type=number],.admission-reserves input[type=number]{width:58px;min-width:0;height:23px;padding:2px 4px;font-size:9px}.admission-pressure-row{min-width:0;padding-top:5px;border-top:1px solid rgba(123,167,217,.16)}.admission-pressure-row span{min-width:0;color:#aac0cc;font-size:9px;line-height:1.25}.admission-pressure-row button{flex:0 0 auto;width:auto;min-height:25px;padding:3px 8px;font-size:9px}.admission-override-note{color:#708a9b;font-size:8px;line-height:1.25}.shift-brief{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;align-items:baseline;padding:7px 9px;border-left:3px solid #6f9fbd;background:#3d5b6f2b;color:#d7e4ec}.shift-brief-kicker{grid-row:1 / span 2;align-self:center;color:#87b8d2;font-size:9px;font-weight:800;text-transform:uppercase}.shift-brief strong{min-width:0;font-size:11px}.shift-brief>span:last-child{min-width:0;color:#9fb2bf;font-size:10px;line-height:1.25}.shift-brief.is-active{border-left-color:#65d5df}.shift-brief.is-ready{border-left-color:var(--ok)}.shift-brief.is-review{border-left-color:var(--warn)}.shift-brief.is-urgent{border-left-color:var(--danger);background:#94363626}.traffic-status{grid-column:1 / -1;min-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.traffic-status.tone-ok{color:var(--ok)}.traffic-status.tone-warn{color:var(--warn)}.traffic-status.tone-muted{color:var(--muted)}.traffic-offer-list{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-items:stretch}.traffic-empty{padding:6px 8px;border:1px dashed rgba(151,181,202,.22);color:var(--muted);font-size:10px;letter-spacing:.04em}.traffic-offer{display:flex;flex-direction:column;min-width:0;padding:7px;border:1px solid rgba(112,158,190,.32);border-left:3px solid #5984a0;background:linear-gradient(135deg,#121e2af5,#182631e6);font-size:10px}.traffic-offer.is-holding{border-left-color:var(--warn);box-shadow:inset 0 0 16px #e5ab4e0f}.traffic-offer.port-turnaround{border-color:#55a9c7;background:linear-gradient(135deg,#184757b8,#091822f0);box-shadow:inset 3px 0 #65d5df}.turnaround-track{height:5px;overflow:hidden;border-radius:999px;background:#02090ecc;border:1px solid rgba(91,166,188,.4)}.turnaround-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#39a7bb,#8ce6c0);transition:width .18s linear}.traffic-offer-head,.traffic-offer-actions{display:flex;align-items:center;gap:5px}.traffic-offer-head{justify-content:space-between;color:#e8f3f8}.traffic-offer-head span,.traffic-offer-meta{color:var(--muted)}.traffic-offer-meta{margin:2px 0 5px;text-transform:uppercase;letter-spacing:.05em}.traffic-offer-line{line-height:1.35;color:#bfcbd2}.traffic-offer-line b{display:inline-block;width:38px;color:#85b5ce}.traffic-offer-actions{margin-top:6px;flex-wrap:wrap}.traffic-offer .traffic-offer-actions{margin-top:auto;padding-top:6px}.traffic-offer-actions button{flex:1 1 70px;width:auto;min-height:24px;padding:2px 7px;font-size:9px}.traffic-offer.decision-card{gap:7px;padding:9px;border-left-width:3px;background:#0e1b27f5}.traffic-offer.decision-card:hover,.traffic-offer.decision-card:focus-visible,.traffic-offer.decision-card:focus-within{outline:1px solid #72dff2;outline-offset:1px;border-color:#72dff2b8}.traffic-offer.decision-card.pod{border-left-color:#60c8d8}.traffic-offer.decision-card.berth{border-left-color:#c99a5a}.traffic-offer.decision-card.is-cleared{border-color:#6bb7929e;border-left-color:#68c991;background:#14372d9e}.traffic-offer-title-row{display:grid;grid-template-columns:26px 38px minmax(0,1fr) auto;gap:7px;align-items:center}.traffic-offer-hull{width:38px;height:24px;display:block;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 1px 1px rgba(0,0,0,.8))}.traffic-offer-title-row strong,.traffic-offer-title-row small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.traffic-offer-title-row strong{color:#eff7fb;font-size:11px}.traffic-offer-title-row small{color:var(--muted);font-size:9px}.traffic-offer-class{position:relative;width:24px;height:18px;display:grid;place-items:center;border:1px solid currentColor;color:#60c8d8;background:#040e15e6}.traffic-offer-class i,.traffic-offer-class i:before,.traffic-offer-class i:after{position:absolute;display:block;content:"";height:3px;background:currentColor}.traffic-offer-class i{width:13px}.traffic-offer-class i:before{width:5px;left:3px;top:-4px}.traffic-offer-class i:after{width:5px;right:3px;bottom:-4px}.traffic-offer-class--berth{color:#d3a260}.traffic-offer-class--berth i{width:17px;height:5px}.traffic-offer-approach{display:grid;gap:1px;justify-items:end}.traffic-offer-lane{color:#7fb9cd;font-size:8px;font-weight:800;letter-spacing:.04em;white-space:nowrap}.traffic-offer-timer{color:#9eb5c3;font-size:9px;font-weight:800;white-space:nowrap}.traffic-offer-facts,.traffic-interface{display:flex;flex-wrap:wrap;gap:4px 7px;color:#a6bcc9;font-size:9px;line-height:1.2}.traffic-offer-facts span+span:before{content:"· ";color:#607b8d}.traffic-cues{display:flex;flex-wrap:wrap;gap:4px}.traffic-cue{padding:2px 5px;border:1px solid rgba(119,161,186,.36);color:#b7d2df;background:#3d607133;font-size:8px;font-weight:800;text-transform:uppercase}.traffic-risk-cue{border-color:#7abd9c66;color:#9ed8b8;background:#2e604a3d}.traffic-risk-cue.risk-guarded{border-color:#d6b06070;color:#e0c07d;background:#614e2042}.traffic-risk-cue.risk-high{border-color:#e27a6885;color:#f0a292;background:#682e2652}.traffic-interface b{color:#d6ecf6}.traffic-interface.ready b{color:var(--ok)}.traffic-interface.blocked b{color:var(--warn)}.traffic-interface span{color:#d9bc74}.traffic-interface-choice{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:4px 6px;border:1px solid rgba(91,190,207,.32);background:#1f4f5b3d;color:#89b9c8;font-size:8px;text-transform:uppercase}.traffic-interface-choice b{min-width:0;overflow:hidden;color:#d7f1f5;text-overflow:ellipsis;white-space:nowrap}.traffic-interface-choice span{white-space:nowrap}.traffic-interface-choice.is-blocked{border-color:#dd9a4b5c;color:#c59b6a}.traffic-admission-note{color:#9fb9c6;font-size:8px;line-height:1.25}.traffic-load-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid rgba(123,167,217,.18);border-bottom:1px solid rgba(123,167,217,.18);padding:5px 0}.traffic-load-strip span{display:grid;gap:1px;min-width:0;padding:0 4px;border-right:1px solid rgba(123,167,217,.14);color:#8198a6;font-size:8px;text-transform:uppercase}.traffic-load-strip span:last-child{border-right:0}.traffic-load-strip b{color:#e1edf3;font-size:10px}.traffic-load-forecast{display:flex;flex-wrap:wrap;gap:2px 7px;padding:4px 0 1px;color:#9fb6c6;font-size:8px;letter-spacing:.02em;text-transform:uppercase}.traffic-load-forecast-label{color:#7f96a6;font-weight:800}.traffic-load-forecast .short{color:var(--warn);font-weight:800}.traffic-load-forecast.is-short .traffic-load-forecast-label{color:var(--warn)}.traffic-offer-blocker{color:var(--warn);font-size:9px;line-height:1.25}.traffic-commitment{color:#9ee0ba;font-size:9px;font-weight:800;text-transform:uppercase}.traffic-offer.decision-card .traffic-offer-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:auto;padding-top:0}.traffic-offer.decision-card .traffic-offer-actions button{min-height:28px;padding:3px 5px}.traffic-offer.decision-card .traffic-offer-actions button:first-child:not(:disabled){border-color:#6bbf94;background:#236448b8}.traffic-offer.decision-card.is-cleared .traffic-offer-actions{grid-template-columns:1fr}.traffic-readiness{margin-right:auto;font-size:9px}.traffic-readiness.ready{color:var(--ok)}.traffic-readiness.blocked{color:var(--warn)}.crew-plan-verdict{display:inline-block;margin-left:4px;font-size:9px;font-weight:800}.crew-plan-verdict.ready{color:var(--ok)}.crew-plan-verdict.short{color:var(--warn)}.traffic-action-note{grid-column:1 / -1;min-height:12px;white-space:normal}@media (max-width: 700px){.failure-episode-list,.admission-rule-grid{grid-template-columns:1fr}.traffic-load-strip,.traffic-cues,.admission-override-note,.failure-episode-card p{display:none}.admission-pressure-row{align-items:flex-start}.traffic-interface-choice{display:grid;grid-template-columns:minmax(0,1fr) auto}}.traffic-action-note.tone-ok{color:var(--ok)}.traffic-action-note.tone-warn{color:var(--warn)}.traffic-action-note.tone-muted{color:var(--muted)}.command-note{margin-top:5px;margin-bottom:0}.hidden-controls{display:none}.selection-summary{min-height:34px;color:var(--text);font-size:12px;line-height:1.35}.shelf-mix-selection{display:grid;gap:6px}.shelf-mix-actions{display:flex;flex-wrap:wrap;gap:4px}.shelf-mix-actions button{padding:3px 7px;border-color:#67b7b259;background:#091f23c7;color:var(--text);font-size:11px}.shelf-mix-actions button[aria-pressed=true]{border-color:var(--ok);color:var(--ok);box-shadow:inset 0 0 0 1px #6edb8f33}.side-inspector{margin-top:12px;padding-top:12px;border-top:1px solid rgba(89,107,126,.34)}.floating-agent-panel{position:fixed;top:82px;right:356px;z-index:10;width:min(360px,calc(100vw - 390px));max-height:calc(100vh - 220px);margin-top:0;padding:9px;overflow:auto;border:1px solid rgba(89,107,126,.72);border-radius:6px;background:linear-gradient(180deg,#0e1216f0,#080c10e6);box-shadow:0 12px 26px #00000057;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto}.side-inspector.hidden{display:none}.side-inspector-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.side-inspector-head h3{margin:0;color:#f3f6f9;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:0}.side-inspector-body{display:grid;gap:7px;padding:8px;border:1px solid rgba(123,167,217,.28);border-radius:6px;background:#070c1285}.side-inspector-grid{display:grid;grid-template-columns:minmax(64px,auto) minmax(0,1fr);gap:5px 8px;align-items:baseline;color:var(--muted);font-size:11px}.side-inspector-grid strong{min-width:0;color:var(--text);font-weight:700;overflow-wrap:anywhere}.agent-card__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3px}.agent-card__title{color:var(--text);font-weight:600}.agent-card__role{color:var(--muted);font-size:11px}.agent-card__action{color:var(--text)}.agent-card__reason,.agent-card__job,.agent-card__route,.agent-card__idle{color:var(--muted);font-size:11px;margin-top:2px}.agent-card__warn{color:var(--warn);font-size:11px;margin-top:3px}.agent-card__lane{margin-top:8px;padding-top:7px;border-top:1px solid rgba(142,166,185,.22)}.agent-card__lane small{color:var(--muted)}.agent-card__lane-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:5px}.agent-card__lane-actions button{min-width:0;padding:5px 4px;border:1px solid rgba(142,166,185,.3);background:#0a131be0;color:var(--muted);font:inherit;font-size:10px}.agent-card__lane-actions button.active{border-color:#6fc6a5;color:#c9ffe9;background:#25685157}.agent-card__needs{margin-top:6px;display:flex;flex-direction:column;gap:3px}.need-bar{display:grid;grid-template-columns:52px 1fr 28px;align-items:center;gap:6px;font-size:11px}.need-bar__label{color:var(--muted)}.need-bar__track{position:relative;height:8px;background:#080e1699;border:1px solid rgba(89,107,126,.34);border-radius:2px;overflow:hidden}.need-bar__fill{height:100%;background:var(--ok);transition:width .24s ease-out}.need-bar__threshold{position:absolute;top:-2px;bottom:-2px;width:1px;background:#d6deeb80;pointer-events:none}.need-bar--ok .need-bar__fill{background:var(--ok)}.need-bar--warn .need-bar__fill{background:var(--warn)}.need-bar--low .need-bar__fill{background:var(--danger)}.need-bar--critical .need-bar__fill{background:var(--danger);animation:need-bar-pulse 1.2s ease-in-out infinite}.need-bar__value{color:var(--text);text-align:right;font-variant-numeric:tabular-nums}@keyframes need-bar-pulse{0%,to{opacity:1}50%{opacity:.55}}.diagnostics-card{max-height:190px;overflow:auto}.diagnostics-card .alert-list{margin:2px 0 8px;padding-bottom:8px;border-bottom:1px solid rgba(89,107,126,.34)}.alert-action{margin-bottom:8px;min-height:32px}.alert-action:disabled{opacity:.45;cursor:not-allowed}#panel{grid-column:2;grid-row:2;padding:10px;border-radius:6px;overflow:auto}#panel h2{margin-bottom:10px;color:#f3f6f9;text-transform:uppercase}.palette-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-bottom:12px}.palette-tab{width:100%;min-width:0;padding:8px 4px;border-radius:5px;background:#171f27b8;font-size:11px;font-weight:700;text-transform:uppercase}.palette-tab.active{border-color:#7ba7d9;background:#2f4466;color:#f3f6f9}#toolbar{display:grid;gap:12px;padding:0;border:0;border-radius:0;background:transparent}#toolbar .tool-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:stretch;padding-bottom:12px;border-bottom:1px solid rgba(89,107,126,.34)}#toolbar .palette-section:not(.active){display:none}#toolbar .tool-row-label{grid-column:1 / -1;min-width:0;margin:0;color:#f3f6f9;font-size:12px;letter-spacing:0}.diagnostic-readout{grid-column:1 / -1;min-height:48px;padding:7px 8px;border:1px solid rgba(123,167,217,.34);border-radius:5px;background:#070c1294;color:#9fb4cd;font-size:10.5px;line-height:1.35;white-space:pre-line}.diagnostic-readout.active{border-color:#ffd65c6b;color:#dce7f4}#toolbar .tool-row-sep{display:none}#toolbar .tool-btn{flex-direction:column;justify-content:center;align-items:center;min-height:54px;width:100%;padding:6px 4px;gap:5px;border-radius:5px;background:linear-gradient(180deg,#232b33eb,#11171ef2);font-size:10.5px;line-height:1.15;text-align:center;white-space:normal;overflow-wrap:anywhere}#toolbar .tool-btn.has-sprite{min-height:74px}#toolbar .tool-sprite-frame{display:grid;place-items:center;width:52px;height:36px;margin:-1px 0 0;border-radius:4px;background:radial-gradient(circle at 50% 56%,rgba(123,167,217,.18),transparent 62%),#070c126b;box-shadow:inset 0 0 0 1px #7ba7d924;overflow:hidden}#toolbar .tool-sprite{display:block;image-rendering:auto;background-repeat:no-repeat}#toolbar .tool-btn.sprite-fallback .tool-sprite{display:grid;place-items:center;width:34px;height:24px;border:1px solid rgba(123,167,217,.42);border-radius:3px;background:linear-gradient(180deg,#243340f0,#0d151ef0);color:#d7e8ff;font-size:11px;font-weight:800;letter-spacing:0;line-height:1}#toolbar .tool-btn.sprite-missing .tool-sprite-frame{display:none}#toolbar .tool-btn.locked .tool-sprite-frame{opacity:.44;filter:grayscale(.45)}#toolbar .tool-btn.active .tool-sprite-frame{background:radial-gradient(circle at 50% 56%,rgba(110,219,143,.24),transparent 64%),#09141c7a;box-shadow:inset 0 0 0 1px #7ba7d957,0 0 12px #7ba7d924}#toolbar .utility-tool{border-color:#43576e;background:#23303eeb}#toolbar .overlay-toggle,#toolbar .diagnostic-toggle{min-height:44px;padding:7px 6px;font-weight:700}#toolbar .tool-key{min-width:22px;padding:2px 4px;border-radius:3px;font-size:9px}@media (max-width: 1100px){body{height:auto;overflow:auto}#app{height:auto;min-height:100vh;grid-template-columns:1fr;grid-template-rows:auto minmax(520px,70vh) auto}#topbar{grid-column:1;grid-row:1;grid-template-columns:1fr}#game-wrap{grid-column:1;grid-row:2}#panel{grid-column:1;grid-row:3}.left-stack,.floating-agent-panel,#bottom-dock{position:static;width:auto;margin:8px}#open-port-dispatch:not(.hidden){position:fixed;top:138px;left:12px;z-index:20;width:min(300px,calc(100vw - 24px));margin:0}.traffic-controls,.traffic-offer-list,.shift-brief{grid-template-columns:1fr}.shift-brief-kicker{grid-row:auto}.floating-agent-panel{max-height:none}#bottom-dock,#bottom-dock.pod-only,#bottom-dock.alerts-clear,#bottom-dock.pod-only.alerts-clear,.ops-modal-summary,.ops-modal-tabs,.ops-modal-traffic-grid{grid-template-columns:1fr}.ops-modal-section.wide{grid-column:auto}.ops-modal-card{height:min(760px,calc(100vh - 16px));max-height:calc(100vh - 16px)}.metric-list,.ops-detail-list{grid-template-columns:1fr}#toolbar .tool-row{grid-template-columns:repeat(4,minmax(0,1fr))}#hud-status{grid-template-columns:repeat(2,minmax(0,1fr))}.air-emergency-indicator{top:112px;left:50%;width:min(520px,calc(100vw - 28px));min-width:0}}@media (min-width: 761px) and (max-width: 1100px){#panel{width:min(380px,calc(100vw - 16px));max-width:380px;justify-self:end;margin:0 8px 8px}}@media (min-width: 1101px){#hud-status{grid-template-columns:repeat(5,minmax(0,1fr));max-width:760px}#bottom-dock{grid-template-columns:.9fr 1.15fr 1fr .8fr}}#toolbar .tool-group-label{grid-column:1 / -1;margin-top:4px;padding-top:7px;border-top:1px solid rgba(89,107,126,.32);color:#9cb8cc;font-size:10px;font-weight:800;line-height:1.2;text-transform:uppercase}.port-inspection{display:grid;gap:6px;margin:10px 0;padding:8px;border:1px solid rgba(91,201,166,.3);border-radius:5px;background:#0813198a}.port-inspection.hidden{display:none}.interface-diagnosis{width:min(100%,400px);max-width:100%;margin-inline:0;border-color:#71b8e66b}.interface-diagnosis[data-severity=critical]{border-color:#ff7676b8}.interface-diagnosis[data-severity=warning]{border-color:#ffcf6ead}.interface-diagnosis[data-severity=healthy]{border-color:#5bc9a675}.interface-diagnosis-title{color:#e5f0f7;font-size:11px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}.interface-diagnosis-evidence,.interface-diagnosis-remedy{color:#aebdca;font-size:10px;line-height:1.35;overflow-wrap:anywhere}.interface-diagnosis-remedy{padding-top:5px;border-top:1px solid rgba(89,107,126,.28);color:#d9e9f5}.interface-diagnosis[data-severity=critical] .interface-diagnosis-remedy{color:#ffb0b0}.interface-diagnosis[data-severity=warning] .interface-diagnosis-remedy{color:#ffdc91}.interface-diagnosis[data-severity=healthy] .interface-diagnosis-remedy{color:#8ce3c1}.port-inspection .section-title{margin:0}.port-chip-row{display:flex;flex-wrap:wrap;gap:4px}.port-status-chip{min-width:0;padding:3px 5px;border:1px solid rgba(102,140,170,.48);border-radius:3px;color:#c8ddec;font-size:9px;font-weight:800;line-height:1.1;overflow-wrap:anywhere;text-transform:uppercase}.port-status-chip.ok{border-color:#5bc9a67a;color:#8ce3c1}.port-inspection-note,.port-inspection-blocker{color:#aebdca;font-size:10px;line-height:1.35;overflow-wrap:anywhere}.port-inspection-blocker{padding-top:5px;border-top:1px solid rgba(89,107,126,.28);color:#ffcf6e}.port-inspection-blocker.clear{color:#7ed7aa}.port-service-list,.port-readiness-grid{display:grid;gap:4px}.port-service-row,.port-readiness-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;align-items:baseline;min-width:0;padding:4px 5px;border:1px solid rgba(65,91,111,.48);border-radius:3px;background:#050c1261;font-size:10px}.port-service-row>span,.port-readiness-row>strong{min-width:0;overflow-wrap:anywhere}.port-service-row b{color:#cfe5f1;font-size:9px}.port-service-row small{grid-column:1 / -1;color:#8fa8ba;font-size:9px}.port-service-row.active{border-color:#71b8e68f}.port-service-row.complete{border-color:#5bc9a680}.port-service-row.blocked{border-color:#ff767694}.port-service-row.blocked b{color:#ff9a9a}.port-readiness-row small{color:#8ea2bd;font-size:9px;text-transform:uppercase}.port-readiness-row strong{color:#dce8f1;font-size:10px;text-align:right}.port-readiness-row strong.ok{color:#7ed7aa}.port-readiness-row strong.warn{color:#ffcf6e}.small-craft-service-summary,.small-craft-blocked{display:block;color:#b6cad7;font-size:10px;line-height:1.35;overflow-wrap:anywhere}.small-craft-blocked{margin-top:4px;color:#ffcf6e}@media (max-width: 760px){.port-service-row,.port-readiness-row{grid-template-columns:minmax(0,1fr)}.port-service-row b,.port-readiness-row strong{text-align:left}}.recipe-list{display:flex;flex-direction:column;gap:7px;width:100%}.recipe-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.recipe-choice{display:grid;align-content:start;gap:3px;min-width:0;min-height:74px;padding:7px;border:1px solid rgba(120,160,190,.28);border-radius:4px;color:#b9c9d8;background:#09111ab8;font:inherit;text-align:left}.recipe-choice:hover,.recipe-choice.selected{border-color:#72bff2;color:#eaf5ff;background:#122636e6}.recipe-choice.selected{box-shadow:inset 0 -3px #72bff2}.recipe-choice.operational{border-color:#6edb8f9e}.recipe-choice-name{overflow-wrap:anywhere;color:inherit;font-weight:800;line-height:1.1}.recipe-choice strong{color:#8fe6b0;font-size:9px;font-variant-numeric:tabular-nums;line-height:1.15}.recipe-choice small{overflow:hidden;color:#72bff2;font-size:8px;line-height:1.15;text-overflow:ellipsis}.recipe-card{display:flex;flex-direction:column;gap:3px;padding:8px 9px;border:1px solid rgba(120,160,190,.28);border-radius:5px;background:#09111ab8}.recipe-detail{min-height:0}.recipe-card-operational{box-shadow:inset 3px 0 #6edb8fb8}.recipe-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.recipe-card-title{font-weight:700;letter-spacing:.02em}.recipe-card-cost{font-variant-numeric:tabular-nums;color:#8fe6b0}.recipe-card-status{color:#c5d1dc;line-height:1.25}.recipe-card-unaffordable{color:#ffcf6e}.recipe-card-summary,.recipe-card-note{color:#8ea2bd;line-height:1.35}.recipe-card-demand{color:#72bff2}.recipe-card-machine{color:#b8c7d1;font-variant-numeric:tabular-nums;line-height:1.3}.recipe-action-row{margin:3px 0}.tool-btn.recipe-action{display:flex;align-items:baseline;justify-content:space-between;gap:8px;width:100%;min-height:34px;text-align:left}.tool-btn.recipe-action span{color:#8ea2bd;font-size:10px;white-space:nowrap}.opening-zone-controls{display:grid;grid-template-columns:1fr 1fr;gap:5px;width:100%}.tool-btn.recipe-zone-control{min-height:30px}.recipe-future{display:flex;flex-direction:column;gap:4px;width:100%}.recipe-future-row{display:flex;flex-direction:column;padding:4px 6px;border-left:2px solid rgba(120,160,190,.3)}.recipe-future-title{color:#c3d3e2}.recipe-future-row small{color:#8ea2bd;line-height:1.3}#toolbar .tool-row.palette-section[data-palette-section=businesses]{grid-template-columns:minmax(0,1fr);align-content:start;gap:10px}#toolbar .tool-row.palette-section[data-palette-section=businesses]>.tool-row-label,#toolbar .tool-row.palette-section[data-palette-section=businesses]>small,#toolbar .tool-row.palette-section[data-palette-section=businesses]>.opening-zone-controls,#toolbar .tool-row.palette-section[data-palette-section=businesses]>.recipe-list,#toolbar .tool-row.palette-section[data-palette-section=businesses]>.recipe-future{grid-column:1 / -1;min-width:0;width:100%}#toolbar .tool-row.palette-section[data-palette-section=businesses] .recipe-card{min-width:0;gap:5px;padding:10px}#toolbar .tool-row.palette-section[data-palette-section=businesses] .recipe-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}#toolbar .tool-row.palette-section[data-palette-section=businesses] .recipe-card-title,#toolbar .tool-row.palette-section[data-palette-section=businesses] .recipe-card-summary,#toolbar .tool-row.palette-section[data-palette-section=businesses] .recipe-card-note,#toolbar .tool-row.palette-section[data-palette-section=businesses] .recipe-future-row{min-width:0;overflow-wrap:anywhere}#toolbar .tool-row.palette-section[data-palette-section=businesses] .recipe-card-cost{white-space:nowrap}
