*{box-sizing:border-box} :root{--bg:#050B14;--panel:#0B1626;--panel2:#101D30;--line:#17304D;--blue:#00C8FF;--green:#00E6A0}body{margin:0;background:radial-gradient(circle,#10243c,var(--bg) 55%);color:#eaf7ff;font:14px Segoe UI,Arial}.hud{height:88px;display:flex;align-items:center;gap:24px;padding:16px 28px;background:#071221dd;border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.logo b{font-size:25px}.logo span{color:var(--blue)}.logo small{display:block;color:#91b9d5}.statuses{display:flex;gap:8px;flex:1}.statuses i{font-style:normal;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:9px;color:var(--green)}.operator,.panel,.metric,.hero{background:linear-gradient(135deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:16px}.operator{padding:12px 18px}.layout{display:flex;gap:20px;padding:20px}.sidebar{width:230px;padding:15px;background:#071221;border:1px solid var(--line);border-radius:16px}.brand{font-size:30px;color:var(--blue);padding:20px}.sidebar button{width:100%;padding:13px;margin:5px 0;background:transparent;color:white;border:1px solid transparent;border-radius:10px;text-align:left}.sidebar button:hover,.sidebar button.active{background:#06315a;border-color:var(--blue);box-shadow:0 0 20px #00c8ff55}main{flex:1}.hero,.panel{padding:24px}.hero h1{font-size:34px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0}.metric{padding:20px}.metric h2{font-size:34px;color:var(--blue)}.columns{display:grid;grid-template-columns:2fr 1fr;gap:20px}.panel{margin-bottom:20px}.scanner input{padding:15px;background:#050b14;border:1px solid var(--line);color:white;width:60%;border-radius:10px}.panel button{padding:15px;background:#007bff;color:white;border:0;border-radius:10px;margin-left:10px}.empty{height:200px;display:flex;align-items:center;justify-content:center;color:#86b9d9}
/* build17 — Functional Game Command Center / Real Map Engine */
.section-kicker{font-size:10px;letter-spacing:.15em;color:#65d8ff;text-transform:uppercase;margin-bottom:6px}.scanner h1,.command-center h2{margin:4px 0 10px}.scanner p{color:#89a9bf;margin:0 0 14px}.scanner-row{display:flex;gap:10px;align-items:center}.scanner-row input{flex:1;min-width:240px}.scan-status{margin-top:10px;color:#9fd4ef;font-size:12px}.pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);margin-right:7px}.command-title{display:flex;align-items:center;justify-content:space-between;gap:20px}.live-badge{padding:8px 12px;border:1px solid #00e6a077;border-radius:8px;color:var(--green);background:#002c261f;font-size:11px;font-weight:700;letter-spacing:.08em}.live-badge.muted{color:#7690a4;border-color:#294157;background:#0a1420}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.tabs button{margin:0!important;padding:10px 14px!important;background:#0b2137!important;border:1px solid #1b4768!important;color:#b9d8ea!important}.tabs button.active,.tabs button:hover{background:#083f6b!important;border-color:var(--blue)!important;color:white!important;box-shadow:0 0 15px #00c8ff22}.workspace-shell{min-height:260px;border-top:1px solid #24405a;padding-top:18px}.workspace-empty{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#7699b2;border:1px dashed #24425e;border-radius:12px;background:#07132180}.workspace-empty b{color:#d9f3ff;font-size:18px;margin-bottom:8px}.workspace-empty span{max-width:640px}.game-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.game-summary>div,.game-metric,.intel-card{background:#071525;border:1px solid #193a58;border-radius:11px;padding:14px}.game-summary span,.game-metric span{display:block;color:#7294ad;font-size:10px;letter-spacing:.08em}.game-summary b{display:block;margin-top:6px;font-size:14px}.game-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.game-metric b{display:block;color:var(--blue);font-size:28px;margin:8px 0 2px}.game-metric small{color:#789ab2}.intel-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.intel-card h3{margin:0 0 10px}.intel-card dl,.province-inspector dl{display:grid;grid-template-columns:120px 1fr;gap:8px 12px;margin:0}.intel-card dt,.province-inspector dt{color:#668ba5}.intel-card dd,.province-inspector dd{margin:0;color:#d8f1ff;word-break:break-word}.capabilities{display:flex;gap:6px;flex-wrap:wrap}.capabilities span{background:#062b43;border:1px solid #0d597f;color:#8bdfff;padding:5px 8px;border-radius:999px;font-size:10px}.success-text{color:var(--green)!important}.danger-text{color:#ff6a79!important}.table-toolbar{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}.table-toolbar h3{margin:0}.table-note{color:#6f93aa;font-size:11px}.data-table-wrap{overflow:auto;max-height:600px;border:1px solid #173852;border-radius:10px}.data-table{width:100%;border-collapse:collapse;background:#071423}.data-table th{position:sticky;top:0;background:#0c2135;color:#7da7c1;text-align:left;font-size:10px;letter-spacing:.08em;padding:10px 12px;border-bottom:1px solid #1b3e59}.data-table td{padding:10px 12px;border-bottom:1px solid #102d45;color:#c9deeb}.data-table td small{display:block;color:#607e94;margin-top:3px}.event-list{display:flex;flex-direction:column;gap:8px}.event-row{display:flex;gap:12px;background:#071525;border:1px solid #183b57;border-radius:10px;padding:12px}.event-icon{width:32px;height:32px;border:1px solid #0e668f;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--blue);background:#05243a}.event-row b{color:#d9f2ff}.event-row p{margin:4px 0;color:#8fb1c5}.event-row small{color:#617f94}.coming-module{min-height:300px;display:flex;gap:24px;align-items:center;justify-content:center;text-align:left;color:#88a9bd}.coming-globe{font-size:70px;color:var(--blue);text-shadow:0 0 24px #00c8ff66}.coming-module h2{margin:4px 0 8px;color:white}.coming-module p{color:#8fdfff}

.map-workspace{display:grid;grid-template-columns:210px minmax(0,1fr) 260px;gap:12px;min-height:620px}.map-layer-panel,.province-inspector,.map-canvas-panel{background:#061321;border:1px solid #173a56;border-radius:12px;overflow:hidden}.map-layer-panel,.province-inspector{padding:14px}.map-layer-panel h3,.province-inspector h3{margin:4px 0 14px}.layer-toggle{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:6px;padding:9px 7px;border-bottom:1px solid #102c43;color:#c6e2f2;cursor:pointer}.layer-toggle input{accent-color:#00c8ff}.layer-toggle small{grid-column:2;color:#607e94;font-size:9px}.layer-toggle.disabled{opacity:.45;cursor:not-allowed}.map-telemetry{margin-top:16px;padding:10px;border:1px solid #17415d;border-radius:8px;color:#78b9d7;background:#061a2a;font-size:10px;line-height:1.5}.map-canvas-panel{display:flex;flex-direction:column;min-width:0}.map-toolbar{height:54px;display:flex;justify-content:space-between;align-items:center;padding:0 12px;border-bottom:1px solid #163650;background:#081929}.map-toolbar b{display:block}.map-toolbar span{display:block;color:#628aa3;font-size:10px;margin-top:2px}.map-controls{display:flex;gap:6px}.map-controls button{margin:0!important;padding:7px 10px!important;background:#09243a!important;border:1px solid #176188!important;color:#cbf0ff!important;min-width:36px}.map-canvas{position:relative;flex:1;min-height:560px;overflow:hidden;background:radial-gradient(circle at 50% 45%,#0e2d42 0,#07141f 60%,#040a10 100%);cursor:grab;touch-action:none}.map-canvas.dragging{cursor:grabbing}.map-canvas-inner{position:absolute;inset:0;transform-origin:0 0;will-change:transform}.map-canvas-inner svg{width:100%;height:100%;display:block;overflow:visible}.map-canvas-inner [data-province-id]{cursor:pointer;vector-effect:non-scaling-stroke;stroke:rgba(6,14,22,.78)!important;stroke-width:.55px!important;stroke-linejoin:round;stroke-linecap:round;transition:fill .12s,filter .12s,opacity .12s,stroke .12s}.map-canvas-inner [data-province-id]:hover{filter:brightness(1.16);stroke:rgba(0,200,255,.5)!important;stroke-width:1px!important}.map-canvas-inner [data-province-id].selected{filter:brightness(1.12);stroke:#00c8ff!important;stroke-width:1.25px!important}.map-loading,.map-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#769bb1;text-align:center;pointer-events:none}.map-error b{color:#d6efff;font-size:16px}.map-error span{margin:6px 0;color:#ffb020}.map-error small{color:#67869a}.province-inspector p{color:#7899ad}.province-inspector dl{grid-template-columns:90px 1fr}.province-history{margin-top:18px;padding-top:12px;border-top:1px solid #193a54}.province-history>b{display:block;margin-bottom:8px}.province-history>div{display:flex;flex-direction:column;padding:7px 0;border-bottom:1px solid #102c42}.province-history span{font-size:11px;color:#b9dcea}.province-history small{font-size:9px;color:#607f94;margin-top:2px}.province-history>small{display:block;color:#63869b;line-height:1.5}

@media(max-width:1200px){.map-workspace{grid-template-columns:180px minmax(0,1fr)}.province-inspector{grid-column:1/-1}.game-summary,.game-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.layout{padding:10px;gap:10px}.sidebar{width:170px}.map-workspace{grid-template-columns:1fr}.map-layer-panel{order:2}.province-inspector{order:3}.map-canvas{min-height:480px}.game-summary,.game-metrics,.intel-grid{grid-template-columns:1fr}.scanner-row{flex-direction:column;align-items:stretch}.scanner input{width:100%}}
/* build18 — Human Player Intelligence + analytical map modes */
.warning-text{color:#ffb020!important}.profile-id{font-family:Consolas,monospace;color:#8fe8ff;background:#061a2a;border:1px solid #173d59;border-radius:6px;padding:3px 6px}.mark-select{background:#071525;color:#d8f1ff;border:1px solid #1b4768;border-radius:7px;padding:6px 8px;min-width:120px}.mark-select:focus{outline:1px solid var(--blue)}
.map-mode-btn{display:block!important;width:100%!important;margin:0 0 7px!important;padding:9px 10px!important;text-align:left!important;background:#071827!important;color:#bcd8e8!important;border:1px solid #173a56!important;border-radius:8px!important;box-shadow:none!important}.map-mode-btn b{display:block;font-size:12px}.map-mode-btn small{display:block;color:#607f94;font-size:9px;margin-top:3px;line-height:1.35}.map-mode-btn:hover,.map-mode-btn.active{background:#083454!important;border-color:#00c8ff!important;color:#fff!important;box-shadow:0 0 15px #00c8ff22!important}.map-mode-btn.active small{color:#8fcde9}.map-legend{margin-top:12px;padding:10px;border:1px solid #173a56;border-radius:9px;background:#05111d;color:#9bb9ca;font-size:10px;line-height:1.4}.map-legend>b{display:block;color:#d9f2ff;margin-bottom:7px}.map-legend>small{display:block;color:#688a9e}.legend-item{display:flex;align-items:center;gap:7px;margin:5px 0}.legend-item i{width:12px;height:12px;border-radius:3px;border:1px solid #ffffff22;box-shadow:0 0 8px #0007}.legend-item span{color:#aac7d8}.province-inspector dd small{display:inline;color:#668ba5;font-size:9px}.data-table td:nth-child(2){white-space:nowrap}
/* v0.8.0 visual refinement — Command Center / Figma-inspired tactical UI */
:root{--bg:#050b14;--panel:#0b1626;--panel2:#101d30;--line:#17304d;--blue:#00c8ff;--active:#007bff;--green:#00e6a0;--orange:#ffb020;--red:#ff4b5c;--text:#eaf7ff;--muted:#7595aa;--violet:#8b7cff}
*{box-sizing:border-box}body{min-height:100vh;background:radial-gradient(circle at 72% 8%,#0c2a46 0,#061321 30%,#050b14 68%);font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);letter-spacing:.01em}button,input,select{font:inherit}.hud{height:78px;position:sticky;top:0;z-index:20;padding:10px 20px;gap:18px;background:rgba(4,13,25,.94);border-bottom:1px solid #123250;backdrop-filter:blur(18px);box-shadow:0 10px 40px #0007}.brand-lockup{display:flex;align-items:center;gap:10px;width:320px}.brand-mark{font-size:34px;color:var(--blue);text-shadow:0 0 20px #00c8ff88}.brand-name{font-size:20px;font-weight:800;white-space:nowrap}.brand-name span{color:var(--blue)}.brand-name em{font-style:normal;color:var(--blue);font-size:10px;vertical-align:top}.brand-lockup small{display:block;color:#77a2bb;font-size:8px;letter-spacing:.12em;margin-top:3px}.statuses{display:flex;gap:7px;flex:1;min-width:0}.hud-status{min-width:118px;padding:7px 9px;border:1px solid #112e49;background:#071625;border-radius:9px;display:grid;grid-template-columns:9px 1fr;column-gap:6px;align-items:center}.hud-status i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green)}.hud-status span{font-size:9px;color:#d9f5ff;font-weight:700}.hud-status small{grid-column:2;font-size:8px;color:var(--green)}.hud-bell{position:relative;background:#071625;border:1px solid #17304d;color:#9bc6da;border-radius:9px;width:38px;height:38px}.hud-bell b{position:absolute;right:-3px;top:-5px;background:var(--red);color:white;border-radius:50%;font-size:8px;padding:2px 5px}.operator{display:flex;align-items:center;gap:9px;padding:7px 10px;min-width:150px;background:#071625;border:1px solid #17304d;border-radius:10px}.operator-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#4e829c,#0b2132);border:1px solid var(--blue);color:white;font-weight:800;box-shadow:0 0 12px #00c8ff55}.operator strong{display:block;font-size:10px}.operator small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.operator>span{margin-left:auto;color:var(--blue)}.layout{display:flex;gap:0;padding:0;min-height:calc(100vh - 78px)}.sidebar{position:sticky;top:78px;height:calc(100vh - 78px);width:214px;flex:0 0 214px;padding:18px 10px 14px;background:linear-gradient(180deg,#061321,#040c16);border-right:1px solid #102d47;border-radius:0;display:flex;flex-direction:column}.sidebar-nav{display:flex;flex-direction:column;gap:4px}.sidebar button{height:44px;margin:0;padding:0 14px;background:transparent;color:#aac4d3;border:1px solid transparent;border-radius:8px;text-align:left;display:flex;align-items:center;gap:13px;cursor:pointer;transition:.18s}.sidebar button span{width:22px;text-align:center;color:#6f9ab1;font-size:18px}.sidebar button:hover{background:#09233a;border-color:#194968;color:white}.sidebar button.active{background:linear-gradient(90deg,#0a4775,#072541);border-color:#008fd0;color:white;box-shadow:0 0 20px #00c8ff2b}.sidebar button.active span{color:var(--blue);text-shadow:0 0 10px #00c8ff}.sidebar-footer{margin-top:auto;padding:13px 10px;border:1px solid #12334d;background:#061524;border-radius:10px;display:grid;grid-template-columns:28px 1fr 7px;gap:8px;align-items:center}.mini-logo{color:var(--blue);font-size:24px}.sidebar-footer b{display:block;font-size:8px}.sidebar-footer small{display:block;color:#67889e;font-size:7px}.online-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}.sidebar-footer .motto{grid-column:1/-1;color:#198bc0;line-height:1.6;margin-top:8px}main{flex:1;min-width:0;max-width:1600px;margin:0 auto}.page,.dashboard-page{padding:22px 22px 40px}.mission-hero{min-height:210px;display:grid;grid-template-columns:1.25fr .75fr;overflow:hidden;background:linear-gradient(110deg,#0a1c30,#071321);border:1px solid #153b5a;border-radius:14px;box-shadow:inset 0 0 50px #00c8ff06}.hero-copy{padding:24px}.section-kicker{font-size:9px;letter-spacing:.16em;color:#63d9ff;font-weight:700}.mission-hero h1{font-size:27px;margin:8px 0 6px}.mission-hero p{color:#88a9bd;font-size:11px;margin:0 0 18px}.mission-chip{width:430px;display:flex;gap:12px;padding:12px 15px;border:1px solid #154463;background:#061726cc;border-radius:10px}.mission-chip>span{font-size:28px;color:var(--blue);text-shadow:0 0 16px #00c8ff}.mission-chip small,.mission-chip em{display:block;color:#64879e;font-size:8px;font-style:normal}.mission-chip b{display:block;font-size:14px;margin:4px 0}.hero-visual{position:relative;min-height:210px;background:radial-gradient(circle at 60% 50%,#0d4b6d44,transparent 50%),linear-gradient(130deg,#0b2134,#07111d)}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(#0f557433 1px,transparent 1px),linear-gradient(90deg,#0f557433 1px,transparent 1px);background-size:28px 28px;transform:perspective(500px) rotateX(58deg) scale(1.5);transform-origin:center bottom;opacity:.5}.orb{position:absolute;width:150px;height:150px;border:1px solid #00c8ff55;border-radius:50%;left:38%;top:26px;box-shadow:0 0 60px #00c8ff22,inset 0 0 30px #00c8ff22}.orb:after{content:"";position:absolute;inset:28px;border:1px dashed #00c8ff66;border-radius:50%}.hero-telemetry{position:absolute;right:24px;bottom:18px;padding:10px 14px;background:#061522dd;border:1px solid #1b4969;border-radius:9px}.hero-telemetry b,.hero-telemetry small{display:block;font-size:8px;color:#6c9bb3}.hero-telemetry strong{display:block;font-size:26px;color:var(--blue);margin:3px 0}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:14px 0}.metric-card{position:relative;min-height:120px;padding:16px;display:flex;gap:13px;overflow:hidden;background:linear-gradient(135deg,#0a192b,#081525);border:1px solid #153a59;border-radius:12px;box-shadow:0 10px 30px #0003}.metric-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:21px;color:var(--blue);background:#06243a;border:1px solid #0c6591;box-shadow:0 0 18px #00c8ff24}.metric-icon.violet{color:#9b8cff;border-color:#6454b0}.metric-icon.green{color:var(--green);border-color:#16866b}.metric-icon.orange{color:var(--orange);border-color:#8c6320}.metric-copy span{display:block;color:#83a4b8;font-size:9px}.metric-copy strong{display:block;font-size:28px;line-height:1.15;margin:5px 0;color:#eefaff}.metric-copy small{font-size:9px}.delta{color:var(--green)}.sparkline{position:absolute;right:10px;bottom:12px;height:32px;width:42%;display:flex;align-items:end;gap:3px}.sparkline span{flex:1;background:linear-gradient(180deg,#00c8ff,#00c8ff00);opacity:.65;border-radius:2px 2px 0 0}.sparkline span:nth-child(1){height:20%}.sparkline span:nth-child(2){height:32%}.sparkline span:nth-child(3){height:28%}.sparkline span:nth-child(4){height:52%}.sparkline span:nth-child(5){height:45%}.sparkline span:nth-child(6){height:70%}.sparkline span:nth-child(7){height:62%}.sparkline span:nth-child(8){height:82%}.sparkline span:nth-child(9){height:100%}.dashboard-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:14px}.dashboard-side{display:flex;flex-direction:column;gap:14px}.nexus-panel{background:linear-gradient(135deg,#0a1829,#071422);border:1px solid #163a58;border-radius:12px;padding:15px;box-shadow:0 12px 35px #0004}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.panel-head h2{font-size:11px;margin:0;color:#e4f5ff;letter-spacing:.04em}.panel-head p{font-size:8px;color:#63869d;margin:4px 0 0}.panel-caret,.panel-link{color:var(--blue);font-size:11px}.operation-list{display:flex;flex-direction:column}.operation-row{display:grid;grid-template-columns:30px 118px minmax(0,1fr) 70px;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #102d44}.operation-row:last-child{border-bottom:0}.op-icon{width:27px;height:27px;display:grid;place-items:center;border:1px solid #0c678f;background:#06273e;color:var(--blue);border-radius:7px}.operation-row time{font-size:8px;color:#6b8ca2}.operation-row b{display:block;font-size:10px;color:#d9f3ff}.operation-row small{display:block;font-size:8px;color:#63849a;margin-top:3px}.operation-row>strong{font-size:8px;color:var(--green);text-align:right}.status-stack{display:flex;flex-direction:column}.status-row{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:7px;padding:7px 0;border-bottom:1px solid #102c43}.status-row:last-child{border-bottom:0}.status-icon{color:var(--blue)}.status-label{font-size:9px;color:#8aa9bb}.status-value{font-size:9px}.status-value.ok{color:var(--green)}.quick-panel .quick-action{margin-bottom:7px}.quick-action{width:100%;display:grid;grid-template-columns:35px 1fr 12px;gap:10px;align-items:center;text-align:left;padding:9px;background:#071d30;border:1px solid #123b58;border-radius:9px;color:white;cursor:pointer;transition:.16s}.quick-action:hover{border-color:var(--blue);background:#092844;box-shadow:0 0 18px #00c8ff18;transform:translateY(-1px)}.action-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#07304c;color:var(--blue);font-size:17px}.quick-action b{display:block;font-size:9px}.quick-action small{display:block;font-size:7px;color:#63869e;margin-top:3px}.quick-action i{font-style:normal;color:var(--blue);font-size:17px}.bottom-grid{display:grid;grid-template-columns:1.25fr 1fr .9fr;gap:14px;margin-top:14px}.big-chart{height:150px;position:relative;overflow:hidden;background:linear-gradient(180deg,#0a2942aa,#061320);border-radius:8px;background-image:linear-gradient(#16405b33 1px,transparent 1px),linear-gradient(90deg,#16405b33 1px,transparent 1px);background-size:20% 25%}.chart-line{position:absolute;left:4%;right:4%;bottom:28px;height:100px;background:linear-gradient(145deg,transparent 20%,#00c8ff22 20%);clip-path:polygon(0 78%,8% 70%,16% 74%,24% 56%,32% 64%,40% 44%,48% 48%,56% 30%,64% 36%,72% 20%,80% 28%,88% 10%,100% 15%,100% 100%,0 100%);border-bottom:2px solid var(--blue)}.chart-labels{position:absolute;bottom:7px;left:4%;right:4%;display:flex;justify-content:space-between;color:#52758d;font-size:7px}.select-pill{font-size:8px;color:var(--blue);border:1px solid #17415d;padding:4px 7px;border-radius:5px}.geo-list>div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #102d43;font-size:8px}.geo-list b{font-weight:500;color:#b9d9e8}.success-dot{color:var(--green)}.health-card{display:grid;grid-template-columns:110px 1fr;column-gap:12px}.health-card .panel-head{grid-column:1/-1}.health-ring{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;align-content:center;border:8px solid #00c8ff33;border-top-color:var(--green);border-right-color:var(--green);color:var(--green);font-size:20px;font-weight:800;box-shadow:0 0 22px #00e6a01f}.health-ring small{display:block;font-size:7px;color:#65869c;font-weight:400}.health-items div{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #102d43;font-size:8px}.health-items b{color:var(--green)}.page-title{margin:8px 0 20px}.page-title h1{font-size:27px;margin:6px 0}.page-title p{font-size:11px;color:var(--muted);margin:0}.module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.module-card{padding:17px;min-height:125px;background:linear-gradient(135deg,#0a192b,#071422);border:1px solid #163a58;border-radius:12px;transition:.18s}.module-card:hover{transform:translateY(-2px);border-color:#00aee9;box-shadow:0 0 22px #00c8ff16}.module-card>span{display:block;color:var(--blue);font-size:17px}.module-card h3{font-size:13px;margin:10px 0 5px}.module-card p{font-size:9px;color:#6f90a6;min-height:28px}.module-card>b{font-size:8px;color:var(--blue)}.profile-layout{display:grid;grid-template-columns:360px 1fr;gap:14px}.profile-card{text-align:center}.profile-avatar{width:100px;height:100px;margin:5px auto 12px;border-radius:50%;display:grid;place-items:center;font-size:40px;background:radial-gradient(circle,#31556d,#071725);border:2px solid var(--blue);box-shadow:0 0 30px #00c8ff33}.rank-badge{display:inline-block;color:var(--blue);border:1px solid #176087;background:#06263b;padding:5px 9px;border-radius:5px;font-size:8px;font-weight:700}.xp{margin:22px 0}.xp>div{display:flex;justify-content:space-between;font-size:9px;color:#8aa8b9}.xp i{display:block;height:6px;margin-top:7px;background:#0d2b42;border-radius:9px;position:relative;overflow:hidden}.xp i:after{content:"";position:absolute;inset:0;background:var(--blue)}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.profile-stats b{font-size:17px;color:var(--white)}.profile-stats small{display:block;font-size:7px;color:var(--muted);font-weight:400;margin-top:4px}.coming-inline{min-height:130px;display:grid;place-items:center;align-content:center;color:var(--blue);font-size:18px;font-weight:800}.coming-inline span{display:block;color:var(--muted);font-size:9px;font-weight:400;margin-top:7px}.search-strip{display:flex;gap:8px;margin-bottom:14px}.search-strip input{flex:1;background:#071522;border:1px solid #173c58;color:white;padding:12px;border-radius:8px}.search-strip button,.archive-tabs button{background:#083454;border:1px solid #1a5277;color:#bcecff;border-radius:8px;padding:0 18px;cursor:pointer}.notes-preview{margin-top:14px}.notes-preview p{color:#7b9aab;font-size:10px}.analytics-coming{min-height:470px;display:grid;place-items:center;align-content:center;text-align:center}.coming-orb{font-size:70px;color:var(--blue);text-shadow:0 0 40px #00c8ff55}.analytics-coming h2{font-size:26px;margin:5px}.analytics-coming p{color:#8fc8df;font-size:10px}.analytics-coming span{color:#5f8196;font-size:9px}.archive-tabs{display:flex;gap:7px;margin-bottom:12px}.archive-tabs button{padding:8px 13px;font-size:9px}.archive-tabs button.active{background:#0a4a76;border-color:var(--blue);color:white}.archive-list{padding:0 14px}.archive-list>div{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:10px;padding:14px 0;border-bottom:1px solid #102d43;align-items:center}.archive-list b{color:var(--blue);font-size:10px}.archive-list span,.archive-list em,.archive-list time{font-size:9px;color:#7e9cad;font-style:normal}.archive-list em{color:var(--green)}
@media(max-width:1250px){.statuses{overflow:hidden}.hud-status{min-width:100px}.metric-grid{grid-template-columns:repeat(2,1fr)}.bottom-grid{grid-template-columns:1fr 1fr}.health-card{grid-column:1/-1}.module-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:850px){.hud{height:auto;flex-wrap:wrap}.brand-lockup{width:100%}.statuses{order:3;flex-basis:100%}.layout{min-height:calc(100vh - 150px)}.sidebar{position:fixed;left:0;top:150px;bottom:0;height:auto;width:72px;z-index:15}.sidebar button{justify-content:center;padding:0}.sidebar button span{font-size:20px}.sidebar button{font-size:0}.sidebar-footer{display:none}main{margin-left:72px}.mission-hero{grid-template-columns:1fr}.hero-visual{display:none}.mission-chip{width:100%}.dashboard-grid,.bottom-grid,.profile-layout{grid-template-columns:1fr}.module-grid{grid-template-columns:1fr}.operation-row{grid-template-columns:30px 85px 1fr}.operation-row>strong{display:none}}

/* NEXUS v0.9 visual refinement — motion-first tactical HUD */
:root{--glow:rgba(0,200,255,.22);--glow2:rgba(0,123,255,.18)}
html{background:#050b14}
body{overflow-x:hidden;background:radial-gradient(circle at 78% 0%,#0c2943 0,#061321 28%,#050b14 68%);position:relative}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:linear-gradient(rgba(0,200,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(0,200,255,.018) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent 88%);animation:nexusGrid 18s linear infinite}
body:after{content:"";position:fixed;left:214px;right:0;top:78px;height:1px;background:linear-gradient(90deg,transparent,#00c8ff66,transparent);pointer-events:none;z-index:30;animation:scanline 5s ease-in-out infinite}
.hud,.layout{position:relative;z-index:2}
.hud{box-shadow:0 10px 50px #0009,0 1px 0 #00c8ff12 inset}
.hud-status{position:relative;overflow:hidden;transition:.22s ease}
.hud-status:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent,rgba(0,200,255,.12),transparent);transform:translateX(-120%);animation:hudSweep 5s ease-in-out infinite}
.hud-status:nth-child(2):after{animation-delay:1s}.hud-status:nth-child(3):after{animation-delay:2s}.hud-status:nth-child(4):after{animation-delay:3s}.hud-status:nth-child(5):after{animation-delay:4s}
.hud-status:hover{border-color:#00c8ff66;transform:translateY(-1px);box-shadow:0 0 22px #00c8ff12}
.brand-mark{animation:logoPulse 3.5s ease-in-out infinite}
.operator{transition:.2s ease}.operator:hover{border-color:#00c8ff66;box-shadow:0 0 24px #00c8ff12}
.sidebar{box-shadow:18px 0 55px #0006}.sidebar button{position:relative;overflow:hidden}.sidebar button:after{content:"";position:absolute;left:-100%;top:0;bottom:0;width:45%;background:linear-gradient(90deg,transparent,#00c8ff22,transparent);transition:.35s}.sidebar button:hover:after,.sidebar button.active:after{left:120%}
.sidebar button.active{animation:activeNav 2.8s ease-in-out infinite}
.mission-hero,.nexus-panel,.metric-card,.module-card,.panel,.scanner,.command-center{position:relative;overflow:hidden}
.mission-hero:before,.nexus-panel:before,.metric-card:before,.module-card:before,.scanner:before,.command-center:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 25%,rgba(0,200,255,.055) 45%,transparent 65%);transform:translateX(-120%);animation:panelSweep 8s ease-in-out infinite}
.mission-hero{box-shadow:0 18px 60px #0007,inset 0 0 70px #00c8ff07}
.hero-visual{overflow:hidden}.hero-grid{animation:gridDrift 12s linear infinite}.orb{animation:orbRotate 8s linear infinite,orbPulse 3.2s ease-in-out infinite}.orb:before{content:"";position:absolute;inset:-15px;border:1px solid #00c8ff22;border-radius:50%;transform:rotate(35deg);animation:orbRing 5s linear infinite}.hero-telemetry{animation:telemetryFloat 4s ease-in-out infinite}
.metric-card{transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.metric-card:hover{transform:translateY(-4px);border-color:#00c8ff66;box-shadow:0 16px 35px #0007,0 0 28px #00c8ff0e}.metric-icon{animation:iconBreath 3.4s ease-in-out infinite}.metric-card:nth-child(2) .metric-icon{animation-delay:.4s}.metric-card:nth-child(3) .metric-icon{animation-delay:.8s}.metric-card:nth-child(4) .metric-icon{animation-delay:1.2s}
.sparkline span{animation:sparkRise 1.6s ease-in-out infinite alternate}.sparkline span:nth-child(2){animation-delay:.08s}.sparkline span:nth-child(3){animation-delay:.16s}.sparkline span:nth-child(4){animation-delay:.24s}.sparkline span:nth-child(5){animation-delay:.32s}.sparkline span:nth-child(6){animation-delay:.4s}.sparkline span:nth-child(7){animation-delay:.48s}.sparkline span:nth-child(8){animation-delay:.56s}.sparkline span:nth-child(9){animation-delay:.64s}
.operation-row{transition:.16s ease;padding-left:3px;padding-right:3px;border-radius:7px}.operation-row:hover{background:#071d30;transform:translateX(3px)}.op-icon{animation:iconBreath 3s ease-in-out infinite}
.status-row{transition:.16s ease;border-radius:6px}.status-row:hover{background:#071d30;padding-left:6px}.status-value.ok:before{content:"";display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor;vertical-align:middle}
.quick-action{position:relative;overflow:hidden}.quick-action:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#00c8ff12,transparent);transform:translateX(-120%);transition:.4s}.quick-action:hover:before{transform:translateX(120%)}
.big-chart{box-shadow:inset 0 0 30px #00c8ff08}.chart-line{animation:chartPulse 3s ease-in-out infinite}
.health-ring{animation:ringPulse 3s ease-in-out infinite}
.module-card{min-height:150px;cursor:pointer}.module-card:after{content:"↗";position:absolute;right:16px;top:16px;color:#2d83a9;opacity:.65;transition:.2s}.module-card:hover:after{color:var(--blue);transform:translate(2px,-2px)}
.profile-avatar{animation:avatarPulse 4s ease-in-out infinite}
.rank-badge{box-shadow:0 0 18px #00c8ff14}
.analytics-coming{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 45%,#0c385355,transparent 38%),linear-gradient(135deg,#0a1829,#071422)}.analytics-coming:before{content:"";position:absolute;width:420px;height:420px;border:1px solid #00c8ff18;border-radius:50%;animation:orbRotate 18s linear infinite}.coming-orb{animation:logoPulse 2.8s ease-in-out infinite}
.map-canvas:after{content:"";position:absolute;left:0;right:0;top:-15%;height:20%;background:linear-gradient(180deg,transparent,#00c8ff18,transparent);pointer-events:none;animation:mapScan 5s linear infinite}
.map-canvas-inner svg{filter:none}
.search-strip input:focus,.scanner-row input:focus{outline:none;border-color:#00c8ff88;box-shadow:0 0 0 3px #00c8ff10,0 0 25px #00c8ff12}
.panel button,.search-strip button,.archive-tabs button,.scanner-row button{transition:.18s ease}.panel button:hover,.search-strip button:hover,.archive-tabs button:hover,.scanner-row button:hover{transform:translateY(-1px);box-shadow:0 0 24px #00c8ff25}
.page-title{position:relative}.page-title:after{content:"";display:block;width:180px;height:1px;margin-top:14px;background:linear-gradient(90deg,var(--blue),transparent)}
.archive-list>div{transition:.16s ease}.archive-list>div:hover{background:#071d30;padding-left:8px}
@keyframes nexusGrid{to{background-position:42px 42px}}
@keyframes scanline{0%,100%{opacity:.1;transform:translateY(0)}50%{opacity:.75;transform:translateY(35vh)}}
@keyframes hudSweep{0%,60%{transform:translateX(-120%)}80%,100%{transform:translateX(120%)}}
@keyframes logoPulse{0%,100%{filter:drop-shadow(0 0 4px #00c8ff55);opacity:.82}50%{filter:drop-shadow(0 0 18px #00c8ffaa);opacity:1}}
@keyframes activeNav{0%,100%{box-shadow:0 0 18px #00c8ff1c}50%{box-shadow:0 0 30px #00c8ff35}}
@keyframes panelSweep{0%,65%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}
@keyframes gridDrift{from{transform:perspective(500px) rotateX(58deg) scale(1.5) translateX(0)}to{transform:perspective(500px) rotateX(58deg) scale(1.5) translateX(28px)}}
@keyframes orbRotate{to{transform:rotate(360deg)}}
@keyframes orbRing{to{transform:rotate(-360deg)}}
@keyframes orbPulse{0%,100%{box-shadow:0 0 60px #00c8ff22,inset 0 0 30px #00c8ff22}50%{box-shadow:0 0 90px #00c8ff38,inset 0 0 45px #00c8ff30}}
@keyframes telemetryFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes iconBreath{0%,100%{box-shadow:0 0 12px #00c8ff16}50%{box-shadow:0 0 24px #00c8ff30}}
@keyframes sparkRise{from{transform:scaleY(.82);transform-origin:bottom}to{transform:scaleY(1.08);transform-origin:bottom}}
@keyframes chartPulse{0%,100%{opacity:.75}50%{opacity:1;filter:drop-shadow(0 0 6px #00c8ff55)}}
@keyframes ringPulse{0%,100%{box-shadow:0 0 22px #00e6a01f}50%{box-shadow:0 0 38px #00e6a044}}
@keyframes avatarPulse{0%,100%{box-shadow:0 0 22px #00c8ff22}50%{box-shadow:0 0 40px #00c8ff55}}
@keyframes mapScan{from{transform:translateY(-140%)}to{transform:translateY(700%)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* v0.9.1 — viewport-fit tactical layout refinement */
:root{
  --hud-height:78px;
  --ui-gap:12px;
  --text-main:#eaf6ff;
  --text-muted:#7897ad;
}
html,body,#app{width:100%;height:100%;min-height:0}
html{overflow:hidden}
body{
  overflow:hidden;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  font-synthesis:none;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.hud{
  height:var(--hud-height);
  min-height:var(--hud-height);
  padding:11px clamp(16px,1.6vw,28px);
  gap:clamp(14px,1.35vw,24px);
}
.brand-lockup{width:clamp(250px,18vw,320px);flex:0 0 auto}
.brand-mark{font-size:30px}
.brand-name{font-size:clamp(18px,1.25vw,22px);letter-spacing:-.01em}
.brand-lockup small{font-size:7px;letter-spacing:.08em}
.statuses{gap:7px;min-width:0;align-items:center}
.hud-status{
  min-width:clamp(112px,8.1vw,132px);
  padding:7px 10px;
  grid-template-columns:7px 1fr;
  column-gap:10px;
  border-radius:9px;
  box-shadow:inset 0 0 18px rgba(0,200,255,.025);
}
.hud-status i{
  width:6px;height:6px;
  background:#00a98a;
  box-shadow:0 0 5px rgba(0,230,160,.38);
  opacity:.86;
}
.hud-status span{font-size:8.5px;letter-spacing:.01em;color:#d4e9f5}
.hud-status small{font-size:7px;color:#579b8c;line-height:1.15}
.hud-status:after{background:linear-gradient(110deg,transparent,rgba(0,200,255,.055),transparent);animation-duration:7s}
.operator{padding:8px 12px;min-width:140px;flex:0 0 auto}
.operator-avatar{width:31px;height:31px;box-shadow:0 0 8px rgba(0,200,255,.25)}
.operator strong{font-size:10px}.operator small{font-size:8px}

.layout{
  height:calc(100dvh - var(--hud-height));
  min-height:0;
  padding:14px clamp(12px,1.1vw,20px) 12px;
  gap:14px;
  overflow:hidden;
}
.sidebar{
  width:clamp(190px,11.2vw,214px);
  height:100%;
  min-height:0;
  padding:12px 10px;
  border-radius:12px;
  display:flex;
  flex-direction:column;
}
.sidebar button{padding:10px 11px;margin:2px 0;font-size:12px}
.sidebar button span{font-size:16px;margin-right:8px}
.sidebar-footer{margin-top:auto;padding:10px 8px}
main{min-width:0;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#123a55 transparent}
.dashboard-page{
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:minmax(150px,1.05fr) minmax(94px,.68fr) minmax(270px,1.65fr) minmax(145px,.9fr);
  gap:var(--ui-gap);
}
.dashboard-page>.mission-hero,
.dashboard-page>.metric-grid,
.dashboard-page>.dashboard-grid,
.dashboard-page>.bottom-grid{min-height:0;height:100%;margin:0}
.mission-hero{min-height:0;border-radius:13px}
.hero-copy{padding:clamp(16px,1.35vw,24px)}
.hero-copy h1{font-size:clamp(26px,2vw,34px);line-height:1.05;margin:2px 0 8px}
.hero-copy p{font-size:11px;margin:0 0 12px}
.mission-chip{width:min(430px,70%);padding:10px 13px}
.hero-visual{min-height:0}
.hero-telemetry{right:18px;bottom:14px;padding:8px 12px}
.metric-grid{gap:12px}
.metric-card{min-height:0;height:100%;padding:13px}
.metric-icon{width:40px;height:40px;flex:0 0 40px}
.metric-copy strong{font-size:27px;line-height:1.05}
.sparkline{bottom:9px;right:9px;height:26px}
.dashboard-grid{grid-template-columns:minmax(0,2fr) minmax(280px,.92fr);gap:12px}
.dashboard-grid>.nexus-panel{height:100%;min-height:0}
.dashboard-side{height:100%;min-height:0;gap:12px}
.dashboard-side>.nexus-panel{min-height:0;overflow:hidden}
.dashboard-side>.nexus-panel:first-child{flex:1.15}
.dashboard-side>.quick-panel{flex:.85}
.nexus-panel{padding:12px;border-radius:11px;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.panel-head{margin-bottom:8px}.panel-head h2{font-size:10px;letter-spacing:.06em}.panel-head p{font-size:8px;margin-top:2px}
.operation-row{grid-template-columns:28px 105px minmax(0,1fr) 62px;gap:8px;padding:8px 0}
.operation-row time{font-size:8px}.operation-row b{font-size:9px}.operation-row small{font-size:7px}.operation-row>strong{font-size:8px}
.status-row{grid-template-columns:20px 1fr auto;gap:6px;padding:6px 0}.status-label{font-size:8px}.status-value{font-size:8px}
.quick-action{padding:9px 10px;margin-bottom:6px}.quick-action b{font-size:8px}.quick-action small{font-size:7px}.action-icon{width:25px;height:25px}
.bottom-grid{grid-template-columns:1.2fr 1fr .88fr;gap:12px}
.bottom-grid>.nexus-panel{height:100%;min-height:0}
.big-chart{height:calc(100% - 34px);min-height:90px}
.health-card{grid-template-columns:86px 1fr;column-gap:10px}.health-ring{width:78px;height:78px;border-width:6px;font-size:17px}.health-ring small{font-size:6px}
.health-items{gap:4px}.health-items>div{font-size:7px}
.geo-list>div{padding:6px 0;font-size:8px}

/* Preserve no-wheel dashboard presentation; dense secondary pages remain internally scrollable. */
.dashboard-page{overflow:hidden}

@media (max-height:900px){
  :root{--hud-height:70px}
  .hud{height:70px;min-height:70px}
  .layout{height:calc(100dvh - 70px);padding-top:10px;padding-bottom:10px}
  .dashboard-page{grid-template-rows:minmax(132px,1fr) minmax(82px,.6fr) minmax(245px,1.7fr) minmax(125px,.78fr)}
  .hero-copy{padding:14px 18px}.hero-copy h1{font-size:26px}.mission-chip{padding:8px 11px}
  .metric-card{padding:10px}.metric-copy strong{font-size:24px}.metric-icon{width:34px;height:34px;flex-basis:34px}
  .nexus-panel{padding:10px}.operation-row{padding:6px 0}.status-row{padding:5px 0}.quick-action{padding:7px 9px}
}
@media (max-height:760px){
  .statuses{gap:5px}.hud-status{min-width:96px;padding:5px 8px;column-gap:8px}.hud-status span{font-size:7.5px}.hud-status small{font-size:6.5px}
  .brand-lockup{width:230px}.operator{min-width:125px;padding:6px 9px}
  .dashboard-page{grid-template-rows:minmax(118px,1fr) minmax(74px,.56fr) minmax(220px,1.7fr) minmax(112px,.72fr);gap:9px}
  .operation-row{grid-template-columns:24px 88px minmax(0,1fr) 52px;gap:6px}.operation-row small{display:none}
  .status-row{padding:4px 0}.quick-action{padding:6px 8px;margin-bottom:4px}
  .bottom-grid{gap:9px}.big-chart{min-height:70px}
}
@media (max-width:1250px){
  .brand-lockup{width:230px}.hud-status{min-width:100px}.operator{min-width:130px}
  .dashboard-page{grid-template-rows:minmax(145px,1fr) minmax(90px,.65fr) minmax(260px,1.65fr) minmax(135px,.82fr)}
  .bottom-grid{grid-template-columns:1.2fr 1fr}.health-card{grid-column:auto}
}
@media (max-width:900px){
  body{overflow:auto}html{overflow:auto}.layout{height:auto;min-height:calc(100dvh - var(--hud-height));overflow:visible}.dashboard-page{height:auto;grid-template-rows:none;overflow:visible}.dashboard-page>.mission-hero,.dashboard-page>.metric-grid,.dashboard-page>.dashboard-grid,.dashboard-page>.bottom-grid{height:auto}.dashboard-grid,.bottom-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}
}

/* v0.9.3 — HUD status indicator precision fix
   The lamp is a tiny standalone status LED matching the Local Mode indicator.
   Important: reset inherited padding from .statuses i so the lamp cannot expand
   into a large circle or push/overlap the label. */
.hud .statuses{
  align-items:center;
  gap:8px;
  min-width:0;
  overflow:visible;
}
.hud .hud-status{
  position:relative;
  display:grid;
  grid-template-columns:6px minmax(0,1fr) !important;
  grid-template-rows:auto auto;
  column-gap:9px !important;
  align-items:center;
  min-width:clamp(118px,8.4vw,136px);
  padding:7px 10px !important;
  overflow:hidden;
}
.hud .hud-status > i{
  display:block !important;
  grid-column:1;
  grid-row:1;
  width:6px !important;
  height:6px !important;
  min-width:6px !important;
  min-height:6px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:50%;
  background:#00a982 !important;
  opacity:.78 !important;
  box-shadow:0 0 4px rgba(0,230,160,.22) !important;
}
.hud .hud-status > span{
  grid-column:2;
  grid-row:1;
  display:block;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:8.5px !important;
  line-height:1.15;
  color:#c5dce8 !important;
}
.hud .hud-status > small{
  grid-column:2;
  grid-row:2;
  display:block;
  min-width:0;
  margin-top:1px;
  font-size:7px !important;
  line-height:1.1;
  color:#4c8d82 !important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.hud .hud-status:after{
  opacity:.22;
  background:linear-gradient(110deg,transparent,rgba(0,200,255,.028),transparent) !important;
  animation-duration:10s !important;
}
@media(max-width:1250px){
  .hud .hud-status{min-width:105px;padding:6px 9px !important;column-gap:8px !important}
  .hud .hud-status > span{font-size:8px !important}
  .hud .hud-status > small{font-size:6.5px !important}
}

/* v0.9.4 — Dashboard viewport alignment / no-offset layout
   Fixes the double inset created by .layout + .dashboard-page padding.
   The dashboard now starts on the same horizontal/vertical baseline as the sidebar
   and uses the available viewport height without creating a page-level scroll. */
@media (min-width:901px){
  .layout{
    height:calc(100dvh - var(--hud-height));
    min-height:0;
    padding:10px 10px 8px;
    gap:0;
    overflow:hidden;
    align-items:stretch;
  }
  .sidebar{
    width:214px;
    flex:0 0 214px;
    height:100%;
    top:auto;
    position:relative;
  }
  main{
    min-width:0;
    min-height:0;
    height:100%;
    max-width:none;
    margin:0;
    overflow:hidden;
  }
  .dashboard-page{
    width:100%;
    height:100%;
    min-height:0;
    padding:0 10px 4px;
    margin:0;
    overflow:hidden;
  }
  .dashboard-page>.mission-hero{
    margin:0;
    min-height:0;
  }
  .dashboard-page>.metric-grid,
  .dashboard-page>.dashboard-grid,
  .dashboard-page>.bottom-grid{
    margin:0;
    min-height:0;
    overflow:hidden;
  }
  .dashboard-grid,
  .bottom-grid,
  .metric-grid{
    min-width:0;
  }
  .dashboard-grid>.nexus-panel,
  .dashboard-side,
  .dashboard-side>.nexus-panel,
  .bottom-grid>.nexus-panel{
    min-height:0;
  }
}

@media (min-width:901px) and (max-height:820px){
  .dashboard-page{
    grid-template-rows:minmax(122px,1.02fr) minmax(76px,.58fr) minmax(228px,1.72fr) minmax(116px,.76fr);
    gap:9px;
  }
}

@media (min-width:901px) and (max-height:700px){
  .dashboard-page{
    grid-template-rows:minmax(108px,1fr) minmax(68px,.55fr) minmax(205px,1.65fr) minmax(104px,.7fr);
    gap:8px;
  }
  .hero-copy{padding:10px 14px}
  .hero-copy h1{font-size:24px}
  .mission-chip{padding:7px 10px}
  .metric-card{padding:8px}
  .metric-copy strong{font-size:21px}
  .metric-icon{width:32px;height:32px;flex-basis:32px}
  .nexus-panel{padding:9px}
  .panel-head{margin-bottom:6px}
  .operation-row{padding:5px 0}
  .bottom-grid .big-chart{min-height:60px}
}


/* v0.9.5 — NEXUS responsive command layout / HUD LED precision
   Desktop: the application shell is locked to the viewport; each page owns its
   available height. Data-heavy internals may scroll inside their own panel only.
   This prevents dashboard/game/page drift and keeps future modules aligned. */
@media (min-width:901px){
  :root{--hud-height:78px;--shell-gap:12px;--page-pad:14px}
  html,body,#app{width:100%;height:100%;min-height:0;overflow:hidden}
  .hud{height:var(--hud-height);min-height:var(--hud-height);padding:10px 20px;gap:18px}
  .statuses{gap:8px;align-items:center;min-width:0}
  .hud-status{
    display:grid;
    grid-template-columns:7px minmax(0,1fr);
    grid-template-rows:auto auto;
    column-gap:9px;
    min-width:118px;
    padding:7px 10px;
    min-height:44px;
    align-items:center;
    overflow:hidden;
  }
  .hud-status>i{
    display:block!important;
    grid-column:1!important;
    grid-row:1!important;
    width:7px!important;
    height:7px!important;
    min-width:7px!important;
    min-height:7px!important;
    padding:0!important;
    margin:0!important;
    border-radius:50%!important;
    background:#00E6A0!important;
    box-shadow:0 0 8px #00E6A0!important;
    opacity:1!important;
  }
  .hud-status>span{
    grid-column:2!important;
    grid-row:1!important;
    margin:0!important;
    font-weight:700!important;
    color:#dff4ff!important;
    white-space:nowrap;
  }
  .hud-status>small{
    grid-column:2!important;
    grid-row:2!important;
    margin-top:1px!important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .layout{
    height:calc(100dvh - var(--hud-height));
    min-height:0;
    display:flex;
    gap:0;
    padding:0;
    overflow:hidden;
    align-items:stretch;
  }
  .sidebar{
    position:relative;
    top:auto;
    flex:0 0 214px;
    width:214px;
    height:100%;
    min-height:0;
  }
  main{
    flex:1 1 auto;
    width:auto;
    max-width:none;
    min-width:0;
    min-height:0;
    height:100%;
    margin:0;
    overflow:hidden;
  }
  .page{
    width:100%;
    height:100%;
    min-height:0;
    padding:var(--page-pad);
    margin:0;
    overflow:hidden;
  }
  .page-title{flex:0 0 auto;margin:0 0 14px}

  /* Dashboard: stable two-column center with right rail locked to the left panel. */
  .dashboard-page{
    width:100%;height:100%;min-height:0;padding:14px;
    display:grid;
    grid-template-rows:minmax(150px,1.05fr) minmax(92px,.67fr) minmax(252px,1.62fr) minmax(118px,.76fr);
    gap:var(--shell-gap);
    overflow:hidden;
  }
  .dashboard-page>.mission-hero,
  .dashboard-page>.metric-grid,
  .dashboard-page>.dashboard-grid,
  .dashboard-page>.bottom-grid{min-width:0;min-height:0;margin:0;height:100%}
  .mission-hero{min-height:0}
  .metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
  .metric-card{min-width:0;min-height:0;height:100%;padding:12px}
  .dashboard-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(360px,.92fr);gap:12px}
  .dashboard-grid>.nexus-panel{height:100%;min-height:0}
  .dashboard-side{
    height:100%;min-height:0;
    display:grid;grid-template-rows:minmax(0,1.15fr) minmax(0,1fr);gap:12px;
  }
  .dashboard-side>.nexus-panel{height:100%;min-height:0;overflow:hidden}
  .status-stack{height:100%;min-height:0}
  .status-row{min-height:0}
  .quick-panel{min-height:0;overflow:hidden}
  .quick-panel .quick-action{min-height:0;margin-bottom:6px}
  .bottom-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,.9fr);gap:12px}
  .bottom-grid>.nexus-panel{height:100%;min-height:0;overflow:hidden}
  .big-chart{height:calc(100% - 32px);min-height:58px}

  /* Generic secondary pages: fixed shell, consistent gutters, no page-level scroll. */
  .module-page{display:flex;flex-direction:column;gap:0}
  .module-page>.module-grid{flex:0 0 auto}
  .module-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 20px}
  .module-card{min-width:0;min-height:128px}
  .profile-layout{min-height:0;gap:18px;flex:1 1 auto}
  .profile-main{min-width:0;min-height:0;display:flex;flex-direction:column;gap:18px}
  .profile-main>.module-grid{flex:1 1 auto;min-height:0}
  .profile-main>.nexus-panel{flex:0 0 auto;margin:0}
  .search-strip{margin-bottom:16px}
  .event-list{gap:10px}
  .intel-grid{gap:16px}
  .knowledge-radar,.settings-runtime{margin-top:18px}
  .analytics-coming{flex:1 1 auto;min-height:0}
  .archive-list{min-height:0;overflow:auto}

  /* Games: scanner + command center share one viewport and map never pushes below it. */
  .games-page{
    display:grid;
    grid-template-rows:minmax(150px,.36fr) minmax(0,1fr);
    gap:12px;
    overflow:hidden;
  }
  .games-page>.scanner{height:100%;min-height:0;margin:0;overflow:hidden}
  .games-page>.command-center{height:100%;min-height:0;margin:0;overflow:hidden;display:flex;flex-direction:column}
  .games-page .command-title,.games-page .tabs{flex:0 0 auto}
  .games-page .workspace-shell{flex:1 1 auto;min-height:0;height:auto;overflow:hidden}
  .games-page .map-workspace{height:100%;min-height:0}
  .games-page .map-canvas{min-height:0;height:100%}
  .games-page .map-layer-panel,.games-page .province-inspector,.games-page .map-canvas-panel{min-height:0;height:100%}
  .games-page .workspace-shell>.game-overview{height:100%;min-height:0;overflow:auto}
  .games-page .workspace-shell>.data-table-wrap{height:100%;max-height:none;overflow:auto}
}

@media (min-width:901px) and (max-height:820px){
  .dashboard-page{grid-template-rows:minmax(130px,1fr) minmax(78px,.58fr) minmax(225px,1.68fr) minmax(108px,.74fr);gap:10px}
  .dashboard-grid{grid-template-columns:minmax(0,2fr) minmax(330px,.9fr);gap:10px}
  .dashboard-side{gap:10px}
  .bottom-grid{gap:10px}
  .dashboard-page .hero-copy{padding:14px 18px}
  .dashboard-page .hero-copy h1{font-size:26px}
  .dashboard-page .mission-chip{padding:8px 11px}
  .dashboard-page .metric-card{padding:9px}
  .dashboard-page .metric-icon{width:34px;height:34px;flex-basis:34px}
  .dashboard-page .metric-copy strong{font-size:23px}
  .dashboard-page .nexus-panel{padding:10px}
  .dashboard-page .operation-row{padding:6px 0}
  .dashboard-page .status-row{padding:5px 0}
  .dashboard-page .quick-action{padding:7px 8px;margin-bottom:4px}
}

@media (min-width:901px) and (max-height:700px){
  .dashboard-page{grid-template-rows:minmax(110px,1fr) minmax(68px,.54fr) minmax(198px,1.66fr) minmax(98px,.7fr);gap:8px}
  .dashboard-page .hero-copy{padding:9px 12px}.dashboard-page .hero-copy h1{font-size:23px}.dashboard-page .mission-chip{padding:6px 9px}
  .dashboard-page .metric-card{padding:7px}.dashboard-page .metric-copy strong{font-size:20px}.dashboard-page .metric-icon{width:30px;height:30px;flex-basis:30px}
  .dashboard-page .nexus-panel{padding:8px}.dashboard-page .panel-head{margin-bottom:5px}.dashboard-page .operation-row{padding:4px 0}
  .dashboard-page .quick-action{padding:5px 7px}.dashboard-page .big-chart{min-height:54px}
}

@media (max-width:1250px) and (min-width:901px){
  .brand-lockup{width:250px}
  .hud-status{min-width:100px;padding:6px 9px}
  .hud-status>span{font-size:8px}
  .hud-status>small{font-size:6.5px}
  .dashboard-grid{grid-template-columns:minmax(0,1.85fr) minmax(300px,.95fr)}
  .module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Future-proof internal page viewport: panels absorb overflow, not the document. */
@media (min-width:901px){
  .module-page>.profile-layout,
  .module-page>.analytics-coming,
  .module-page>.archive-list{min-height:0}
  .profile-card,.profile-main,.knowledge-radar,.settings-runtime{min-height:0}
  .profile-main .nexus-panel{overflow:auto}
}

@media (prefers-reduced-motion:reduce){
  .hud-status:after,.mission-hero:before,.nexus-panel:before,.metric-card:before,.module-card:before,.scanner:before,.command-center:before{animation:none!important}
}


/* v0.9.6 — Games information architecture + future-proof viewport geometry */
.sidebar-games{display:block}
.sidebar-games>[data-games-root]{position:relative;width:100%;padding-right:36px}
.sidebar-chevron{position:absolute;right:14px;font-size:18px;font-weight:400;color:#4e8ca9;transition:transform .18s ease,color .18s ease}
.sidebar-games.expanded>.sidebar-chevron{transform:rotate(90deg)}
.sidebar-games.expanded .sidebar-chevron{color:var(--blue)}
.sidebar-subnav{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .2s ease,opacity .18s ease;overflow:hidden;padding-left:22px}
.sidebar-games.expanded .sidebar-subnav{grid-template-rows:1fr;opacity:1}
.sidebar-subnav:before{content:"";display:block;min-height:0;grid-row:1;grid-column:1}
.sidebar-subnav>*{min-height:0}
.sidebar-subnav button{height:34px;margin:2px 0;padding:0 8px;border-left:1px solid #153650;border-radius:0 7px 7px 0;font-size:9px;gap:8px;background:transparent;color:#789aad}
.sidebar-subnav button span{width:16px;font-size:13px;color:#2f718f}
.sidebar-subnav button em{font-style:normal;font-size:8px;letter-spacing:.05em;white-space:nowrap}
.sidebar-subnav button:hover,.sidebar-subnav button.active{background:#062b46;border-color:var(--blue);color:#e9f8ff}
.sidebar-subnav button.active span{color:var(--blue)}
.games-page{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.games-scanner-page{gap:12px}
.games-scanner-page>.scanner{flex:0 0 auto;margin:0;min-height:0;overflow:hidden}
.games-scanner-page>.verified-games-panel{flex:1 1 auto;min-height:0;margin:0;overflow:hidden;display:flex;flex-direction:column}
.verified-games-panel>.verified-games-grid{flex:1 1 auto;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding-right:3px}
.verified-game-card{position:relative;text-align:left;min-width:0;min-height:150px;padding:14px;background:linear-gradient(135deg,#071725,#061321);border:1px solid #173b58;border-radius:11px;color:#d9f3ff;cursor:pointer;transition:.18s ease}
.verified-game-card:hover{border-color:#00bce9;box-shadow:0 0 20px #00c8ff14;transform:translateY(-1px)}
.verified-game-card>div span{display:block;color:#5a8aa3;font-size:8px;letter-spacing:.12em}.verified-game-card>div b{display:block;margin-top:5px;color:var(--blue);font-size:14px}
.verified-game-card dl{display:grid;grid-template-columns:52px 1fr;gap:5px 8px;margin:14px 0}.verified-game-card dt{color:#5f8097;font-size:8px}.verified-game-card dd{margin:0;color:#c4dce8;font-size:8px;word-break:break-word}.verified-game-card i{font-style:normal;color:#61c9ed;font-size:8px;letter-spacing:.04em}
.workspace-empty.compact{min-height:160px;height:100%}
.games-live-page>.command-center{flex:1 1 auto;height:100%;min-height:0;margin:0;overflow:hidden;display:flex;flex-direction:column}
.games-live-page .command-title,.games-live-page .tabs,.games-live-page .live-session-strip{flex:0 0 auto}
.live-session-strip{display:flex;align-items:center;gap:10px;padding:7px 10px;margin:-6px 0 12px;border:1px solid #123b58;background:#061522;border-radius:7px;font-size:8px;color:#6a8ca2}
.live-session-strip span{letter-spacing:.08em}.live-session-strip b{color:var(--blue);font-size:10px}.live-session-strip small{margin-left:auto;color:#6fae99}
.games-live-page .workspace-shell{flex:1 1 auto;min-height:0;height:auto;overflow:hidden;border-top:1px solid #24405a;padding-top:12px}
.games-live-page .workspace-shell>.game-overview,.games-live-page .workspace-shell>.data-table-wrap{height:100%;min-height:0;overflow:auto}
.games-live-page .map-workspace{height:100%;min-height:0;grid-template-columns:190px minmax(0,1fr) 240px;gap:10px}
.games-live-page .map-layer-panel,.games-live-page .province-inspector,.games-live-page .map-canvas-panel{height:100%;min-height:0}
.games-live-page .map-canvas{height:100%;min-height:0}
/* Future-proof secondary pages: modules keep breathing room and internal panels absorb overflow. */
@media(min-width:901px){
  .module-page{height:100%;min-height:0;overflow:hidden;padding:14px}
  .module-page>.page-title{margin:0 0 14px;flex:0 0 auto}
  .module-page>.module-grid{flex:0 0 auto;gap:16px}
  .module-card{min-height:118px}
  .profile-layout{flex:1 1 auto;min-height:0;gap:16px}
  .profile-layout>.profile-card{height:100%;min-height:0}
  .profile-main{min-height:0;gap:16px}
  .profile-main>.nexus-panel{min-height:0;overflow:auto}
  .knowledge-radar,.settings-runtime{min-height:0;overflow:auto}
  .analytics-coming{min-height:0;height:100%}
  .archive-list{min-height:0;overflow:auto}
}
@media(min-width:901px) and (max-width:1250px){
  .verified-games-panel>.verified-games-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .sidebar-subnav{display:none}.sidebar-games.expanded .sidebar-subnav{display:block}
  .games-page{overflow:visible}.games-scanner-page>.verified-games-panel{overflow:visible}.verified-games-panel>.verified-games-grid{grid-template-columns:1fr;overflow:visible}.games-live-page>.command-center{overflow:visible}.games-live-page .workspace-shell{overflow:visible}.games-live-page .map-workspace{height:auto}.games-live-page .map-canvas{min-height:480px}
}

/* v0.9.7 — viewport-safe layout correction, non-shifting Games flyout,
   dashboard right-rail rebalance, and consistent module spacing. */
@media (min-width:901px){
  :root{--hud-height:78px;--shell-gap:12px;--page-pad:14px;--sidebar-width:214px}

  html,body,#app{width:100%;height:100%;min-height:0;overflow:hidden}
  body{overflow:hidden}
  .layout{height:calc(100dvh - var(--hud-height));min-height:0;display:flex;overflow:hidden;gap:0;padding:0;align-items:stretch}
  .sidebar{width:var(--sidebar-width);flex:0 0 var(--sidebar-width);height:100%;min-height:0;position:relative;top:auto;overflow:visible}
  main{height:100%;min-height:0;min-width:0;max-width:none;flex:1 1 auto;margin:0;overflow:hidden}

  /* HUD LED: literally reuse the same visual language as the Local Mode dot. */
  .hud-status>i,
  .online-dot{
    width:7px!important;height:7px!important;min-width:7px!important;min-height:7px!important;
    padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;
    background:#00E6A0!important;opacity:1!important;
    box-shadow:0 0 8px #00E6A0!important;
  }
  .hud-status{grid-template-columns:7px minmax(0,1fr)!important;column-gap:10px!important;padding:7px 10px!important;min-width:118px}
  .hud-status>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .hud-status>small{grid-column:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  /* Games flyout: no layout reflow, no empty slot under Games. */
  .sidebar-nav{position:relative;overflow:visible}
  .sidebar-games{position:relative;z-index:30;display:block}
  .sidebar-games>[data-games-root]{position:relative;z-index:31}
  .sidebar-games .sidebar-subnav{
    position:absolute;left:calc(100% - 2px);top:-4px;width:214px;
    display:flex;flex-direction:column;gap:4px;grid-template-rows:none;
    padding:8px;opacity:0;visibility:hidden;pointer-events:none;
    background:rgba(5,17,30,.98);border:1px solid #18547a;border-radius:12px;
    box-shadow:0 18px 42px #0009,0 0 24px #00c8ff10;
    transform:translateX(-8px);
    transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
  }
  .sidebar-games.expanded .sidebar-subnav{
    opacity:1;visibility:visible;pointer-events:auto;transform:translateX(0);
    grid-template-rows:none;
  }
  .sidebar-subnav:before{display:none!important}
  .sidebar-subnav button{
    width:100%;height:36px;margin:0!important;padding:0 10px!important;
    border:1px solid #143c59!important;border-left:1px solid #143c59!important;
    border-radius:8px!important;background:#071a2a!important;
  }
  .sidebar-subnav button:hover,.sidebar-subnav button.active{background:#07395c!important;border-color:var(--blue)!important}
  .sidebar-subnav button em{font-size:8px;letter-spacing:.07em}

  /* Dashboard: Recent Operations + two equal right-hand modules. */
  .dashboard-page{
    width:100%;height:100%;min-height:0;padding:14px;
    grid-template-rows:minmax(145px,1.02fr) minmax(82px,.58fr) minmax(240px,1.45fr) minmax(118px,.72fr);
    gap:var(--shell-gap);overflow:hidden;
  }
  .dashboard-grid{
    grid-template-columns:minmax(0,1.45fr) minmax(500px,.95fr)!important;
    gap:var(--shell-gap)!important;
  }
  .dashboard-side{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-rows:minmax(0,1fr)!important;gap:var(--shell-gap)!important;
    min-width:0;min-height:0;height:100%;
  }
  .dashboard-side>.nexus-panel{height:100%;min-width:0;min-height:0;overflow:hidden}
  .status-stack{min-height:0;height:auto;overflow:hidden}
  .status-row{padding:6px 0}
  .quick-panel .quick-action{min-height:38px;margin-bottom:6px;padding:7px 8px}
  .quick-action small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dashboard-page .bottom-grid{gap:var(--shell-gap)}

  /* Games scanner: archive is always a visible module, even before first record. */
  .games-scanner-page{display:grid;height:100%;min-height:0;grid-template-rows:minmax(150px,.36fr) minmax(0,1fr);gap:12px;overflow:hidden}
  .games-scanner-page>.scanner{min-height:0;height:100%;margin:0;overflow:hidden}
  .games-scanner-page>.verified-games-panel{min-height:0;height:100%;margin:0;overflow:hidden;display:flex;flex-direction:column}
  .verified-games-panel>.verified-games-grid{flex:1 1 auto;min-height:0;overflow:auto;align-content:start}
  .verified-archive-empty{
    min-height:190px;padding:22px;display:flex;align-items:center;gap:22px;
    border:1px dashed #1b4866;border-radius:12px;background:
      linear-gradient(180deg,#071a2b,#061321),
      linear-gradient(90deg,rgba(0,200,255,.03),transparent 60%);
  }
  .verified-archive-empty .archive-sigil{width:58px;height:58px;flex:0 0 58px;border:1px solid #1a719a;border-radius:12px;display:grid;place-items:center;color:var(--blue);font-size:26px;background:#062139;box-shadow:0 0 24px #00c8ff15}
  .verified-archive-empty b{display:block;color:#eaf7ff;font-size:13px}
  .verified-archive-empty p{margin:6px 0 0;color:#7699ae;font-size:9px;line-height:1.5;max-width:600px}
  .verified-archive-empty span{display:inline-block;margin-top:10px;color:var(--green);font-size:8px;letter-spacing:.08em}

  /* LIVE OPERATIONS / Map: flex child owns the height so the map cannot push the page. */
  .games-live-page{height:100%;min-height:0;overflow:hidden}
  .games-live-page>.command-center{height:100%;min-height:0;max-height:100%;margin:0;display:flex;flex-direction:column;overflow:hidden}
  .games-live-page .workspace-shell{flex:1 1 0;height:0;min-height:0;overflow:hidden;padding-top:12px}
  .games-live-page .map-workspace{height:100%;min-height:0;overflow:hidden;grid-template-columns:190px minmax(0,1fr) 240px;gap:10px}
  .games-live-page .map-layer-panel,.games-live-page .map-canvas-panel,.games-live-page .province-inspector{height:100%;min-height:0;overflow:hidden}
  .games-live-page .map-canvas{height:100%;min-height:0;overflow:hidden}
  .games-live-page .workspace-shell>.data-table-wrap,.games-live-page .workspace-shell>.game-overview{height:100%;min-height:0;overflow:auto}

  /* All secondary pages: breathing room between modules and no full-height profile card. */
  .module-page{height:100%;min-height:0;overflow:hidden;padding:14px;display:flex;flex-direction:column}
  .module-page>.page-title{margin:0 0 14px;flex:0 0 auto}
  .module-page>.module-grid{flex:0 0 auto;gap:18px 20px}
  .module-card{min-height:136px}
  .profile-layout{gap:18px;min-height:0;flex:1 1 auto}
  .profile-layout>.profile-card{height:auto!important;align-self:start}
  .profile-main{gap:18px;min-width:0;min-height:0}
  .profile-main>.module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-height:0;flex:1 1 auto}
  .profile-main>.nexus-panel{margin:0}
  .search-strip{margin-bottom:16px;flex:0 0 auto}
  .knowledge-radar,.settings-runtime{margin-top:18px;min-height:0}
  .analytics-coming{min-height:0;height:100%;flex:1 1 auto}
  .archive-list{min-height:0;overflow:auto}
}

@media (min-width:901px) and (max-height:820px){
  .dashboard-page{grid-template-rows:minmax(125px,1fr) minmax(74px,.58fr) minmax(220px,1.44fr) minmax(104px,.72fr);gap:10px}
  .dashboard-grid{grid-template-columns:minmax(0,1.43fr) minmax(470px,.92fr)!important}
  .dashboard-page .hero-copy{padding:13px 16px}.dashboard-page .hero-copy h1{font-size:25px}
  .dashboard-page .metric-card{padding:8px 10px}.dashboard-page .metric-icon{width:34px;height:34px;flex-basis:34px}
  .dashboard-page .metric-copy strong{font-size:22px}.dashboard-page .nexus-panel{padding:9px}.dashboard-page .quick-action{padding:6px 7px}
}

@media (min-width:901px) and (max-height:700px){
  .dashboard-page{grid-template-rows:minmax(105px,1fr) minmax(64px,.54fr) minmax(195px,1.62fr) minmax(92px,.68fr);gap:8px}
  .dashboard-grid{grid-template-columns:minmax(0,1.38fr) minmax(430px,.9fr)!important}
  .dashboard-side{gap:8px!important}.dashboard-page .status-row{padding:4px 0}.dashboard-page .quick-action{padding:5px 6px;margin-bottom:4px}
}

@media (max-width:900px){
  .sidebar-games .sidebar-subnav{display:none}
  .sidebar-games.expanded .sidebar-subnav{display:flex;position:static;width:auto;opacity:1;visibility:visible;pointer-events:auto;transform:none;background:transparent;border:0;box-shadow:none;padding:4px 0 2px 18px}
  .games-live-page{overflow:visible;height:auto}
  .games-live-page>.command-center{height:auto;max-height:none;overflow:visible}
  .games-live-page .workspace-shell{height:auto;overflow:visible;flex:none}
  .games-live-page .map-workspace{height:auto;overflow:visible}
  .games-live-page .map-canvas{min-height:480px;height:auto}
}
.session-actions{display:flex;gap:8px;align-items:center;margin-left:auto}.secondary-action{padding:7px 10px!important;background:#0b2137!important;border:1px solid #1b4768!important;color:#b9d8ea!important;border-radius:7px;cursor:pointer;font-size:10px}.secondary-action:disabled{opacity:.45;cursor:wait}.checkpoint-list{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto}.checkpoint-row{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:center;text-align:left;padding:8px 10px!important;background:#061421!important;border:1px solid #15364f!important;color:#aac8da!important;border-radius:8px;cursor:pointer}.checkpoint-row span{color:var(--blue);font-size:10px}.checkpoint-row b{font-size:10px;font-weight:500}.checkpoint-row small{color:#5d7b90;font-size:9px}.checkpoint-row.active{border-color:#00c8ff88!important;background:#082239!important}.checkpoint-row:hover{border-color:#2b668b!important}
@media(max-width:820px){.session-actions{flex-wrap:wrap;justify-content:flex-end}.live-session-strip{align-items:flex-start}.live-session-strip>div:first-child{min-width:0}.live-session-strip small{margin-left:0;display:block}}

/* BUILD31 — Games flyout closes after selection/outside click; archive cards keep neutral tactical surface. */
.panel button.verified-game-card{background:linear-gradient(135deg,#071725,#061321)!important;color:#d9f3ff!important;border:1px solid #173b58!important;margin:0!important;padding:14px!important;box-shadow:none;}
.panel button.verified-game-card:hover{background:linear-gradient(135deg,#0a2032,#071827)!important;border-color:#00bce9!important;box-shadow:0 0 20px #00c8ff14!important;}
.verified-game-card>div b{color:#57cfff;}
.verified-game-card dd{color:#a7c5d5;}
.verified-game-card i{color:#61c9ed;}
@media(max-width:900px){.sidebar-games.expanded .sidebar-subnav{display:flex;position:static;width:auto;opacity:1;visibility:visible;pointer-events:auto;transform:none;background:transparent;border:0;box-shadow:none;padding:4px 0 2px 18px;}}

/* ── Agent status (BUILD 39) ── */
.status-value.off{color:#ff6b6b}
.status-value.warn{color:#ffb020}
.hud-status[data-tone="off"]>i{background:#ff6b6b;box-shadow:0 0 12px #ff6b6b}
.hud-status[data-tone="off"]>small{color:#ff8f8f}
.hud-status[data-tone="ok"]>i{background:var(--green);box-shadow:0 0 12px var(--green)}
.hud-status[data-tone="warn"]>i{background:#ffb020;box-shadow:0 0 12px #ffb020}
.agent-detail{display:grid;gap:10px;margin-top:12px}
.agent-detail-card{background:#061525;border:1px solid #14334f;border-radius:10px;padding:10px 12px}
.agent-detail-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.agent-detail-card header b{font-size:11px;letter-spacing:.04em;color:#d8f1ff}
.agent-detail-card dl{display:grid;grid-template-columns:110px 1fr;gap:4px 8px;margin:0}
.agent-detail-card dt{color:#6f93aa;font-size:9px}
.agent-detail-card dd{margin:0;font-size:10px;color:#c6e4f5;word-break:break-word}
.badge{font-size:8px;font-weight:800;letter-spacing:.06em;padding:3px 7px;border-radius:999px;border:1px solid #1b4768;background:#071a2a;color:#8fb6cb}
.badge.ok{border-color:#1f6b4a;background:#0a2419;color:#5ddea0}
.badge.off{border-color:#6b1f1f;background:#24100a;color:#ff8f8f}
.badge.muted{opacity:.8}
.muted-dot{color:#5a7c90}
.success-dot{color:#5ddea0}

/* BUILD 44 — data-backed Intelligence workspace */
.intelligence-page .intel-notice{margin:0 0 14px;padding:11px 13px;border:1px solid #23415b;background:#081827;border-radius:9px;color:#9bb6c8;font-size:10px}
.intelligence-page .intel-notice.online{border-color:#17664f;color:#7ce2b8;background:#061f1b}
.intelligence-page .intel-notice.offline{border-color:#79404a;color:#ffb1b8;background:#241117}
.intelligence-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:14px}
.intelligence-panel{min-width:0}
.intel-module-list{display:grid;gap:0}
.intel-module-list>div,.intel-observation{padding:11px 0;border-bottom:1px solid #102d43}
.intel-module-list>div:last-child,.intel-observation:last-child{border-bottom:0}
.intel-module-list b,.intel-observation b{display:block;color:#d8f1ff;font-size:10px;margin-bottom:4px}
.intel-module-list span,.intel-observation span{display:block;color:#7596aa;font-size:9px;line-height:1.6}
.intel-empty{padding:18px 12px;color:#7f9cad;font-size:10px;line-height:1.7;border:1px dashed #1b3b54;border-radius:8px;background:#061321}
.intel-footnote{padding-top:12px;color:#54788f;font-size:8px}
.intel-next{padding-left:20px;color:#88a9bd;font-size:10px;line-height:1.8}
.intel-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.intel-actions button{cursor:pointer;padding:9px 12px;border:1px solid #1a5277;border-radius:7px;background:#083454;color:#c4efff;font-size:9px}
@media(max-width:950px){.intelligence-grid{grid-template-columns:1fr}}

/* ===== BUILD 46 · working modules (players, library, archive, settings, analytics) ===== */
.page-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.page-actions{display:flex;gap:8px;align-items:center}
.page-actions a{text-decoration:none;display:inline-block}
.primary-action{padding:9px 14px;background:linear-gradient(135deg,#008fd1,#00c8ff);border:0;color:#03121e;font-weight:700;border-radius:8px;cursor:pointer;font-size:12px}
.primary-action:hover{filter:brightness(1.1)}
.danger-action{padding:9px 14px;background:#2a0d14;border:1px solid #ff4b5c88;color:#ff8a95;border-radius:8px;cursor:pointer;font-size:12px}
.icon-action{background:transparent;border:1px solid #2a3f55;color:#7690a4;border-radius:6px;width:28px;height:28px;cursor:pointer}
.icon-action:hover{border-color:#ff4b5c;color:#ff4b5c}
.link-action{background:none;border:0;padding:0;color:#7fdcff;cursor:pointer;font:inherit;text-align:left}
.link-action:hover{text-decoration:underline}
.secondary-action.wide{width:100%;margin-top:10px;padding:9px!important}
.muted-text{color:#7690a4;font-size:12px;line-height:1.5}
.sub-h{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#7da7c1;margin:18px 0 8px}
.filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0 14px}
.filter-bar input,.filter-bar select,.form-stack input,.form-stack select,.form-stack textarea,.mark-editor textarea{background:#050d18;border:1px solid #1b3e59;color:#eaf7ff;border-radius:8px;padding:9px 11px;font:inherit;font-size:13px}
.filter-bar input{flex:1;min-width:220px}
.filter-bar input:focus,.form-stack input:focus,.form-stack textarea:focus,.mark-editor textarea:focus,.filter-bar select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #00c8ff22}
.filter-count{color:#7690a4;font-size:12px}
.split-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:14px;align-items:start}
.split-layout>aside{position:sticky;top:12px;max-height:calc(100vh - 140px);overflow:auto}
.kv{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;margin:10px 0;font-size:13px}
.kv dt{color:#7690a4}.kv dd{margin:0;color:#dbeefa;word-break:break-word}
code.wrap{white-space:normal;word-break:break-all}
.data-table tr.clickable{cursor:pointer}
.data-table tr.clickable:hover td{background:#0c2238}
.data-table tr.selected td{background:#06315a66}
.data-table td small{display:block;color:#7690a4;font-size:11px;margin-top:2px}
.data-table.compact td,.data-table.compact th{padding:6px 8px}
.row-actions{white-space:nowrap;display:flex;gap:6px;align-items:center}
.mark-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;color:var(--mark);border:1px solid color-mix(in srgb,var(--mark) 55%,transparent);background:color-mix(in srgb,var(--mark) 12%,transparent)}
.detail-title{margin:2px 0 6px;font-size:20px}
.mark-editor{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #163a58}
.mark-editor label{font-size:11px;color:#7da7c1;letter-spacing:.06em;text-transform:uppercase}
.mark-buttons{display:flex;gap:6px;flex-wrap:wrap}
.mark-buttons button{padding:6px 10px;border-radius:7px;background:#0b2137;border:1px solid #1b4768;color:#b9d8ea;cursor:pointer;font-size:12px}
.mark-buttons button[style]:hover,.mark-buttons button.active{border-color:var(--mark);color:var(--mark);background:color-mix(in srgb,var(--mark) 14%,#0b2137)}
.mark-editor .primary-action{align-self:flex-start}
.mini-list{display:flex;flex-direction:column;gap:6px}
.mini-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;text-align:left;padding:8px 10px;border-radius:8px;background:#071423;border:1px solid #102d45;color:#c9deeb;cursor:pointer;font:inherit;font-size:12px}
.mini-row:hover{border-color:#1b6a9a}
.mini-row span{color:#89a9bf}.mini-row small{color:#7690a4}
.chip-row{display:flex;gap:6px;flex-wrap:wrap}
.chip-row button{padding:6px 10px;border-radius:999px;background:#0b2137;border:1px solid #1b4768;color:#b9d8ea;cursor:pointer;font-size:12px}
.chip-row button.active{background:#06315a;border-color:var(--blue);color:#fff}
.kb-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.kb-card{display:flex;flex-direction:column;gap:6px;text-align:left;padding:14px;border-radius:12px;background:linear-gradient(135deg,#0a1829,#071422);border:1px solid #163a58;color:#dbeefa;cursor:pointer;font:inherit}
.kb-card:hover,.kb-card.active{border-color:var(--blue);box-shadow:0 0 18px #00c8ff22}
.kb-card b{font-size:14px}.kb-card p{margin:0;color:#89a9bf;font-size:12px;line-height:1.45;max-height:52px;overflow:hidden}
.kb-card small{color:#7690a4;font-size:11px}
.kb-cat{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#65d8ff}
.kb-pin{color:#f5b82e;margin-left:8px}.kb-game{color:#7690a4;margin-left:8px;font-size:11px}
.form-stack{display:flex;flex-direction:column;gap:10px}
.form-stack label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#7da7c1;letter-spacing:.04em}
.form-stack label.check{flex-direction:row;align-items:center;gap:8px;font-size:12px;color:#c9deeb;letter-spacing:0}
.form-stack textarea{resize:vertical;min-height:80px;line-height:1.5}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form-actions{display:flex;gap:8px}
.timeline{display:flex;flex-direction:column}
.timeline-day{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#65d8ff;margin:14px 0 6px}
.timeline-day:first-child{margin-top:0}
.timeline-row{display:grid;grid-template-columns:52px 12px 1fr auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #0f2a40}
.timeline-row time{color:#7690a4;font-size:12px}
.timeline-row i{width:9px;height:9px;border-radius:50%;background:#00c8ff}
.timeline-row.kind-snapshot i{background:#00e6a0}.timeline-row.kind-task i{background:#a855f7}.timeline-row.bad i{background:#ff4b5c}
.timeline-row b{display:block;font-size:13px}.timeline-row span{color:#89a9bf;font-size:12px}
.task-pill{padding:2px 8px;border-radius:999px;font-size:11px;border:1px solid #2a3f55;color:#b9d8ea}
.task-pill.completed{color:#00e6a0;border-color:#00e6a066}.task-pill.failed{color:#ff4b5c;border-color:#ff4b5c66}
.task-pill.queued,.task-pill.claimed{color:#f5b82e;border-color:#f5b82e66}
.err-cell{color:#ff8a95;font-size:12px;max-width:260px;word-break:break-word}
.maint-list{display:flex;flex-direction:column;gap:8px}
.maint-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px;border:1px solid #102d45;border-radius:8px;background:#071423}
.maint-row b{display:block;font-size:13px}.maint-row small{color:#7690a4;font-size:12px}
.table-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.bar-list{display:flex;flex-direction:column;gap:8px}
.bar-row{display:grid;grid-template-columns:minmax(120px,40%) 1fr auto;gap:10px;align-items:center;font-size:12px}
.bar-label{color:#c9deeb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-track{height:8px;background:#0c2135;border-radius:99px;overflow:hidden}
.bar-track i{display:block;height:100%;border-radius:99px}
.bar-row b{color:#eaf7ff;min-width:34px;text-align:right}
.spark-svg{width:100%;height:56px;display:block;margin-top:6px}
.history-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.history-charts span{font-size:12px;color:#89a9bf}
.analysis-grid{display:flex;flex-direction:column;gap:14px}
.delta-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.delta-row{display:flex;justify-content:space-between;font-size:12px;padding:4px 0;border-bottom:1px solid #0f2a40}
.kd-head{color:#89a9bf;font-size:12px;margin-bottom:10px}
.intelligence-grid{margin-bottom:14px}
.rank-badge.muted{opacity:.6}
.profile-card .kv{text-align:left;width:100%}
.profile-card .secondary-action{margin-top:8px}
button.operator{cursor:pointer;color:inherit;font:inherit;display:flex;align-items:center;gap:10px;text-align:left}
.hud-bell{cursor:pointer}
.nexus-toast{position:fixed;right:20px;bottom:20px;z-index:1000;padding:12px 16px;border-radius:10px;background:#0b2a1f;border:1px solid #00e6a077;color:#bfffe6;font-size:13px;box-shadow:0 10px 30px #0008;transition:opacity .3s;opacity:0;pointer-events:none;max-width:420px}
.nexus-toast.err{background:#2a0d14;border-color:#ff4b5c88;color:#ffc2c8}
@media (max-width:1100px){.split-layout{grid-template-columns:1fr}.split-layout>aside{position:static;max-height:none}}
@media (max-width:700px){.form-row,.delta-cols,.table-counts{grid-template-columns:1fr}}
.page-title-row:after{position:absolute;left:0;bottom:-14px}
.page-title-row{margin-bottom:28px!important}
.panel .link-action,.link-action{background:none!important;border:0!important;padding:0!important;margin:0!important;color:#7fdcff!important;border-radius:0;box-shadow:none!important;transform:none!important;font-size:inherit}
.intel-card .sub-h{margin-top:20px}
.bar-row .bar-label{white-space:nowrap}
.row-actions{display:table-cell}
.row-actions>*{margin-right:6px}
.page-actions{padding-bottom:4px}
.row-actions-inner{display:flex;gap:6px;align-items:center}
/* BUILD 48: fast map + responsive Live Operations map */
.map-canvas-inner [data-province-id]{transition:none!important}
.map-canvas-inner #sea path{pointer-events:none}
@media (max-width:1400px){
  .map-workspace{grid-template-columns:minmax(0,1fr)!important;height:auto!important}
  .map-canvas-panel{order:1;height:68vh!important;min-height:420px!important}
  .map-layer-panel{order:2;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;align-items:start}
  .map-layer-panel .section-kicker,.map-layer-panel h3,.map-legend,.map-telemetry{grid-column:1/-1}
  .province-inspector{order:3}
}
@media (max-width:1100px){.statuses .hud-status:nth-child(n+4){display:none}}
.ally-tag{color:#f5b82e;font-weight:600}
a.profile-id{text-decoration:none}
.ext-link{color:#7fdcff;text-decoration:none;font-size:14px;margin-left:6px}
/* BUILD 50: logout */
.hud-logout{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:#cfe6f7;cursor:pointer;font:inherit;font-size:11px}
.hud-logout b{color:var(--blue);font-size:12px}.hud-logout:hover{border-color:var(--blue)}
/* BUILD 50: newspaper, combat analysis */
.news-card{margin-bottom:14px}
.news-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.news-head h3{margin:2px 0 0}
.news-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.news-tools select,.news-tools input{padding:8px 10px;background:#06101d;border:1px solid var(--line);border-radius:8px;color:#eaf7ff;font:inherit}
.news-tools input{min-width:200px}
.news-status{margin:10px 0;color:#8fb0c8;font-size:13px}
.news-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;max-height:62vh;overflow:auto;padding-right:4px}
.news-article{padding:12px 14px;background:#081423;border:1px solid var(--line);border-radius:10px}
.news-article h4{margin:0 0 4px;color:#e6f6ff;font-size:14px}
.news-article small{color:#6fa3c4}
.news-article p{margin:8px 0 0;color:#b9d2e3;font-size:13px;line-height:1.5;max-height:220px;overflow:auto}
.skill-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap;border:1px solid}
.skill-elite{color:#00e6a0;border-color:#00e6a066;background:#00e6a014}
.skill-strong{color:#7fd6ff;border-color:#00c8ff66;background:#00c8ff14}
.skill-mid{color:#f5d27a;border-color:#f5b82e55;background:#f5b82e10}
.skill-weak{color:#ff9a8a;border-color:#ff7a7a55;background:#ff7a7a10}
.tag-chip{display:inline-block;margin:1px 2px;padding:1px 6px;border-radius:5px;background:#10233a;color:#a9c7dc;font-size:11px;white-space:nowrap}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.seg button{padding:6px 12px;background:transparent;border:0;border-right:1px solid var(--line);color:#cfe6f7;cursor:pointer;font:inherit;font-size:12px}
.seg button:last-child{border-right:0}.seg button.active{background:#06315a;color:#fff}
.analysis-table th[data-asort]{cursor:pointer}.analysis-table th.sorted{color:var(--blue)}
.analysis-table td small{display:block;color:#7f9db3}
.analysis-table td.num,.data-table td.num{text-align:right;white-space:nowrap}
.coal-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:middle}
/* BUILD 51: sortable tables */
.data-table thead th:not([data-nosort]){cursor:pointer;user-select:none}
.data-table thead th:not([data-nosort]):hover{color:#cfeaff}
.data-table thead th.sorted{color:var(--blue)}
.data-table thead th[data-dir]:not([data-dir=""])::after{content:" " attr(data-dir);font-size:9px}
.data-table th.num{text-align:right}
/* BUILD 51: nothing may be cut off by the fixed app shell — every area scrolls when its content is taller. */
main{overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:thin}
.module-page{height:auto!important;min-height:100%;overflow:visible!important}
.dashboard-page{overflow:auto!important}
.games-live-page .workspace-shell{overflow:auto!important}
.games-live-page .workspace-shell>.analysis-grid,.games-live-page .workspace-shell>.news-card{min-height:0}
.games-live-page .map-workspace{min-height:480px}
.map-layer-panel,.province-inspector,.games-live-page .map-layer-panel,.games-live-page .province-inspector{overflow-y:auto!important;scrollbar-width:thin}
.intel-card,.nexus-panel,.panel{min-width:0}
.intelligence-grid.single{grid-template-columns:1fr}
.data-table-wrap{max-width:100%}
.news-list{display:block!important;columns:330px;column-gap:10px;max-height:none!important;overflow:visible!important}
.news-article{break-inside:avoid;margin:0 0 10px;display:inline-block;width:100%}
.news-article p{max-height:none!important;overflow:visible!important}
.news-cats{margin:4px 0 10px;flex-wrap:wrap}
.np-country{color:#ffd27a;font-weight:600}.np-prov{color:#7fd6ff}.np-player{color:#9ef0c4;font-weight:600;padding:0;background:none;border:0;cursor:pointer;font:inherit}
.news-article.cat-war{border-left:3px solid #ff7a7a}.news-article.cat-capture{border-left:3px solid #f5b82e}.news-article.cat-leader{border-left:3px solid #a855f7}.news-article.cat-rank{border-left:3px solid #00c8ff}
.row-actions{white-space:nowrap}.row-actions button{margin-left:4px;padding:5px 9px;font-size:11px}
.secondary-action.danger{border-color:#ff4b5c88;color:#ff9a9a}
.user-add{margin-top:10px;flex-wrap:wrap;gap:8px}.user-add input,.user-add select{flex:1 1 150px}
.code-dump{max-height:260px;overflow:auto;background:#06101d;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:11px;color:#9fc3da;white-space:pre-wrap}
.op-form{margin-top:14px;text-align:left}
.seg{flex-wrap:wrap;overflow:visible}.seg button{white-space:nowrap}
.table-toolbar{flex-wrap:wrap;gap:10px}
@media (min-width:1000px){
  .games-live-page .map-workspace{display:grid!important;grid-template-columns:minmax(150px,190px) minmax(0,1fr) minmax(170px,240px)!important;gap:10px}
  .games-live-page .map-workspace>*{grid-column:auto!important;grid-row:auto!important;order:0!important}
}
@media (max-height:900px),(max-width:1500px){.map-mode-btn small{display:none}.map-mode-btn{padding:8px 10px}}
.user-add{display:flex}.user-add input,.user-add select,.op-form input{padding:9px 11px;background:#06101d;border:1px solid var(--line);border-radius:8px;color:#eaf7ff;font:inherit}
.user-add button{flex:0 0 auto}
/* ===================== BUILD 52: motion & polish ===================== */
@keyframes nx-fade-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes nx-fade{from{opacity:0}to{opacity:1}}
@keyframes nx-spin{to{transform:rotate(360deg)}}
@keyframes nx-pulse{0%,100%{opacity:.35;transform:scale(.92)}50%{opacity:1;transform:scale(1)}}
@keyframes nx-ring{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.25);opacity:0}}
@keyframes nx-shimmer{from{background-position:-200% 0}to{background-position:200% 0}}
#content>.page{animation:nx-fade-up .32s ease both}
#content.page-leave>.page{opacity:0;transform:translateY(-6px) scale(.995);transition:opacity .2s ease,transform .2s ease}
.workspace-shell>*{animation:nx-fade .25s ease both}
.intel-card,.nexus-panel,.game-metric,.metric-card,.verified-game-card{transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.intel-card:hover,.game-metric:hover{border-color:#21587f;box-shadow:0 8px 28px #0008,0 0 0 1px #00c8ff1f}
.verified-game-card{animation:nx-fade-up .35s ease both}
.verified-game-card:hover{transform:translateY(-2px);border-color:var(--blue);box-shadow:0 10px 30px #0009,0 0 22px #00c8ff33}
.game-metric b{background:linear-gradient(90deg,#eaf7ff,#7fdcff);-webkit-background-clip:text;background-clip:text;color:transparent}
.ellip{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tabs button{transition:background .2s ease,border-color .2s ease,color .2s ease}
/* scanner hero */
.scanner-hero{position:relative;overflow:hidden}
.scanner-hero .scanner-glow{position:absolute;inset:-40% -10% auto auto;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,#00c8ff22,transparent 60%);pointer-events:none;animation:nx-pulse 6s ease-in-out infinite}
.scanner-hero h1{letter-spacing:.02em}
.scanner-row button{transition:transform .15s ease,box-shadow .2s ease}.scanner-row button:hover{transform:translateY(-1px);box-shadow:0 0 26px #00c8ff66}
/* scan overlay */
.scan-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:16px;background:radial-gradient(circle at 50% 40%,#0a2a44cc,#030812ee 70%);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s ease}
.scan-overlay.show{opacity:1}
.scan-card{display:grid;grid-template-columns:220px minmax(0,360px);gap:28px;align-items:center;padding:30px 34px;background:linear-gradient(150deg,#0b1a2d,#081322);border:1px solid #1d4b70;border-radius:20px;box-shadow:0 30px 80px #000c,0 0 0 1px #00c8ff1a,0 0 60px #00c8ff22;transform:translateY(12px) scale(.98);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.scan-overlay.show .scan-card{transform:none}
.scan-radar{position:relative;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,#08263d,#05121f 70%);border:1px solid #1b4a6b;overflow:hidden;box-shadow:inset 0 0 40px #00c8ff22}
.scan-radar i{position:absolute;inset:0;border:1px solid #00c8ff55;border-radius:50%;animation:nx-ring 2.4s ease-out infinite}
.scan-radar i:nth-child(2){animation-delay:.8s}.scan-radar i:nth-child(3){animation-delay:1.6s}
.scan-radar .scan-sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,#00c8ff00 0deg,#00c8ff00 290deg,#00c8ff66 355deg,#00e6a0 360deg);animation:nx-spin 1.8s linear infinite}
.scan-radar span{position:absolute;inset:0;display:grid;place-items:center;font:700 15px ui-monospace,Consolas,monospace;color:#bdf1ff;letter-spacing:.08em;text-shadow:0 0 12px #00c8ff}
.scan-info h2{margin:4px 0 14px;font-size:22px}
.scan-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.scan-steps li{display:flex;align-items:center;gap:10px;color:#5f7f99;font-size:14px;transition:color .25s ease}
.scan-steps li em{width:18px;height:18px;border-radius:50%;border:1.5px solid #29506f;flex:none;position:relative;transition:all .25s ease}
.scan-steps li.active{color:#eaf7ff}.scan-steps li.active em{border-color:var(--blue);border-top-color:transparent;animation:nx-spin .9s linear infinite}
.scan-steps li.done{color:#9fe9c8}.scan-steps li.done em{border-color:var(--green);background:var(--green)}
.scan-steps li.done em::after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid #04121f;border-width:0 2px 2px 0;transform:rotate(45deg)}
.scan-meta{display:flex;justify-content:space-between;gap:10px;margin:16px 0 12px;color:#8fb0c8;font-size:12px}.scan-meta b{color:var(--blue);font-variant-numeric:tabular-nums}
.scan-overlay.success .scan-sweep{animation-duration:.5s;background:conic-gradient(#00e6a066,#00e6a066)}
.scan-overlay.success .scan-radar{border-color:var(--green);box-shadow:inset 0 0 60px #00e6a055,0 0 40px #00e6a055}
.scan-overlay.failed .scan-radar{border-color:#ff4b5c;box-shadow:inset 0 0 50px #ff4b5c44}.scan-overlay.failed .scan-sweep{animation:none;opacity:.2}
@media(max-width:640px){.scan-card{grid-template-columns:1fr;justify-items:center;text-align:center}.scan-radar{width:160px;height:160px}}
/* background enrichment indicator */
.live-session-strip{position:relative;overflow:hidden}
.live-session-strip.enriching::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--blue),var(--green),transparent);background-size:200% 100%;animation:nx-shimmer 1.4s linear infinite}
.live-session-strip.enriching #liveSessionState{color:#7fdcff}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
/* BUILD 52: home dashboard grows with its content instead of squeezing panels into the window */
.dashboard-page{height:auto!important;min-height:0!important;grid-template-rows:none!important;overflow:visible!important}
.dashboard-page>*{height:auto!important;min-height:0}
.dashboard-side{height:auto!important}
.dashboard-side>.nexus-panel,.bottom-grid>.nexus-panel,.dashboard-side>.quick-panel{height:auto!important;flex:none!important;overflow:visible!important}
.dashboard-page .big-chart{height:150px!important}
.status-stack{height:auto!important;overflow:visible!important}
.game-overview .intel-grid{align-items:stretch}
.game-overview .intel-card{height:auto!important;max-height:none!important;overflow:visible!important}
.game-overview .intel-card>.secondary-action{display:inline-block;margin-top:12px;text-decoration:none}
.live-session-strip span,.live-session-strip small{font-size:12px!important;letter-spacing:.02em}
.live-session-strip b#liveGameId{font-size:15px}
/* ===================== BUILD 53: home, perks, theme ===================== */
.home-page{display:flex;flex-direction:column;gap:16px}
.home-hero{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;padding:28px;border:1px solid #17405f;border-radius:18px;background:radial-gradient(circle at 85% 20%,#00c8ff22,transparent 45%),radial-gradient(circle at 10% 110%,#00e6a018,transparent 40%),linear-gradient(135deg,#0a1b2e,#071322);position:relative;overflow:hidden;animation:nx-fade-up .4s ease both}
.home-hero h1{margin:6px 0 8px;font-size:34px;letter-spacing:.01em}
.home-hero p{color:#9dbad0;max-width:720px;margin:0 0 18px;line-height:1.5}
.home-scan{display:flex;gap:10px;max-width:560px}
.home-scan input{flex:1;min-width:0;padding:13px 14px;border-radius:12px;border:1px solid #1d4b70;background:#050f1c;color:#eaf7ff;font:inherit;font-size:15px}
.home-scan input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #00c8ff22}
.home-scan button{padding:0 20px;border-radius:12px;border:1px solid var(--blue);background:linear-gradient(180deg,#0a6aa0,#064a72);color:#fff;font-weight:600;cursor:pointer;transition:box-shadow .2s ease,transform .15s ease}
.home-scan button:hover{box-shadow:0 0 24px #00c8ff66;transform:translateY(-1px)}
.home-system{align-self:stretch;padding:16px 18px;border:1px solid #1b4566;border-radius:14px;background:#06111f99;backdrop-filter:blur(4px)}
.home-system-head{display:flex;align-items:center;gap:10px;font-size:15px}
.sys-dot{width:11px;height:11px;border-radius:50%;background:#ff4b5c;box-shadow:0 0 10px currentColor}
.sys-dot[data-tone=ok]{background:var(--green);color:var(--green)}.sys-dot[data-tone=warn]{background:#f5b82e;color:#f5b82e}.sys-dot[data-tone=off]{color:#ff4b5c}
.sys-list{list-style:none;margin:12px 0;padding:0;display:grid;gap:7px}
.sys-list li{display:flex;align-items:center;gap:8px;color:#c9deeb;font-size:13px}
.sys-list li::before{content:"";width:7px;height:7px;border-radius:50%;background:#ff4b5c}
.sys-list li[data-ok=true]::before{background:var(--green)}
.home-system p{margin:0;color:#8fb0c8;font-size:12px;line-height:1.5}
.home-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.home-metric{padding:16px 18px;border:1px solid #153a59;border-radius:14px;background:linear-gradient(135deg,#0a192b,#081525);animation:nx-fade-up .35s ease both}
.home-metric span{display:block;color:#7fa3bd;font-size:12px}
.home-metric b{display:block;margin:6px 0 2px;font-size:30px;background:linear-gradient(90deg,#eaf7ff,#7fdcff);-webkit-background-clip:text;background-clip:text;color:transparent}
.home-metric small{color:#6f8ea6;font-size:11px}
.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px}
.home-games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.home-game{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:14px;border:1px solid #173a56;border-radius:12px;background:#071426;color:#eaf7ff;cursor:pointer;text-align:left;font:inherit;animation:nx-fade-up .35s ease both;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.home-game:hover{transform:translateY(-2px);border-color:var(--blue);box-shadow:0 0 20px #00c8ff33}
.home-game span{font-size:10px;letter-spacing:.12em;color:#5f8bab}.home-game b{font-size:18px;color:#7fdcff}.home-game small{color:#8fb0c8;font-size:11px}
.home-actions .quick-action{width:100%;margin-bottom:8px}
@media(max-width:1100px){.home-hero,.home-grid{grid-template-columns:1fr}.home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hud .statuses{flex:1}
/* perks */
.perk-chip{display:inline-flex;align-items:center;gap:4px;margin:2px 2px;padding:2px 8px;border-radius:999px;border:1px solid #23435e;background:#0d2136;color:#c9deeb;font-size:11px;white-space:nowrap;cursor:help}
.perk-chip i{font-style:normal;opacity:.9}.perk-chip b{color:#7fdcff;font-weight:600}
.perk-агрессор{border-color:#ff7a7a66;color:#ffb3a8}.perk-эффективный{border-color:#00e6a066;color:#9ff0cf}.perk-захватчик{border-color:#f5b82e66;color:#ffd98a}
.perk-несёт-потери{border-color:#a8556166;color:#e5a0aa}.perk-лучше-обычного{border-color:#00c8ff66;color:#9fe3ff}.perk-хуже-обычного{border-color:#a855f766;color:#d6b4ff}.perk-неактивен{border-color:#47556966;color:#9aa8b8}
.perk-row{display:flex;flex-wrap:wrap;gap:2px;margin:8px 0}
.style-card{padding:12px 14px;border:1px solid #1b3e59;border-radius:12px;background:#081626;margin-bottom:10px}
.style-main{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.style-main .skill-badge{font-size:13px;padding:4px 12px}
.style-main small{display:block}
.inspector-style{margin-top:12px;padding-top:10px;border-top:1px solid #173a56;display:grid;gap:6px}
.inspector-style small{color:#8fb0c8}
.legend-scroll{max-height:320px;overflow:auto;scrollbar-width:thin;margin-top:6px}
/* header controls */
.hud-tools{display:flex;align-items:center;gap:8px}
.hud-tool{display:flex;align-items:center;justify-content:center;gap:6px;height:42px;min-width:42px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:#cfe6f7;cursor:pointer;font:inherit;font-size:13px}
.hud-tool:hover{border-color:var(--blue)}
.hud-tool select{appearance:none;background:transparent;border:0;color:inherit;font:inherit;cursor:pointer;padding-right:2px}
.hud-tool select option{background:#0b1626;color:#eaf7ff}

.home-page .panel-head h2{font-size:15px}.home-page .panel-head p{font-size:11px}
.home-actions .quick-action{grid-template-columns:30px 1fr 12px;padding:11px 12px}.home-actions .quick-action>span{font-size:18px;color:var(--blue);text-align:center}
.home-actions .quick-action b{font-size:13px}.home-actions .quick-action small{font-size:11px}
.hud-tool select{max-width:150px}
.live-session-strip span,.live-session-strip b{margin-right:8px}
/* BUILD 54: accounts */
body[data-role=user] .admin-only,body[data-role=user] #hudBell{display:none!important}
.kb-shared{margin-left:6px;padding:1px 7px;border-radius:999px;border:1px solid #00e6a066;color:#9ff0cf;font-size:10px}
.kb-view-title{margin:6px 0 4px;font-size:20px}.kb-view-meta{color:#7fa3bd;font-size:12px;margin-bottom:12px}
.kb-view-body{white-space:normal;line-height:1.6;color:#d6e9f5;margin-bottom:14px;max-height:60vh;overflow:auto}
.data-table tr.row-muted td{opacity:.55}
.queue-note{margin-top:8px;color:#f5b82e;font-size:13px}
/* BUILD 55: cloud website */
html[data-cloud] .cloud-hide{display:none!important}
/* BUILD 57/58: profile & heroes */
.profile-rank{margin:6px 0 10px}
.profile-side{display:flex;flex-direction:column;gap:14px;min-width:0}
/* collapsible heroes box */
.hero-box{padding:0}
.hero-box>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) 24px;gap:16px;align-items:center;padding:14px 16px}
.hero-box>summary::-webkit-details-marker{display:none}
.hero-box>summary h2{font-size:11px;margin:0;letter-spacing:.04em}.hero-box>summary p{font-size:10px;color:#7f9cb3;margin:4px 0 0}
.hero-summary{display:flex;align-items:center;gap:12px;justify-content:flex-end;min-width:0;flex-wrap:wrap}
.hs-meta{color:#9fb9cc;font-size:12px}
.hb-caret{font-style:normal;font-size:18px;color:var(--blue);transition:transform .2s ease;text-align:center}
.hero-box[open] .hb-caret{transform:rotate(180deg)}
.hero-box[open]>summary{border-bottom:1px solid #163a58}
.hero-box>:not(summary){margin-left:16px;margin-right:16px}.hero-box>.form-actions{margin-bottom:16px}
/* editor cards */
.heroes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:10px 0}
.hero-card{--rc:#64748b;display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;padding:8px 10px 8px 8px;border:1px solid #173a56;border-left:3px solid color-mix(in srgb,var(--rc) 55%,transparent);border-radius:12px;background:#071426;transition:border-color .2s ease,box-shadow .2s ease,opacity .2s}
.hero-card:not(.owned){opacity:.72}.hero-card:not(.owned) .hc-art img{filter:grayscale(.85) brightness(.8)}
.hero-card.owned{opacity:1;border-color:color-mix(in srgb,var(--rc) 60%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--rc) 18%,transparent)}
.hc-art{width:64px;height:82px;border-radius:9px;overflow:hidden;background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--rc) 45%,transparent),#060d18 75%);display:flex;align-items:flex-end;justify-content:center}
.hc-art img{width:100%;height:100%;object-fit:cover;object-position:top}
.hc-body{min-width:0;display:flex;flex-direction:column;gap:6px}
.hero-head b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-head small{display:block;color:#7fa3bd;font-size:10.5px;margin-top:2px}
.hc-rar{color:var(--rc);font-weight:700}
.hc-ctrl{display:flex;align-items:center;gap:6px}
.hc-ctrl button{width:28px;height:26px;border:1px solid #1d4b70;border-radius:7px;background:#06101d;color:#cfe6f5;font:700 15px inherit;font-family:inherit;cursor:pointer}
.hc-ctrl button:hover{border-color:var(--rc)}
.hc-ctrl output{flex:1;text-align:center;font-weight:800;font-size:15px;color:#e8f4ff}.hc-ctrl output small{color:#6b8aa3;font-weight:500;font-size:11px}
.hero-card:not(.owned) .hc-ctrl output{color:#6b8aa3;font-weight:500;font-size:12px}
.hc-body input[type=range]{width:100%;accent-color:var(--rc);margin:0;height:14px}
/* read-only portraits (player card) */
.hero-showcase{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:9px;margin-top:10px}
.hero-portrait{--rc:#64748b;position:relative;border-radius:11px;overflow:hidden;border:1px solid color-mix(in srgb,var(--rc) 70%,transparent);background:#060d18;box-shadow:0 6px 18px #0006,inset 0 0 0 1px #ffffff08;transition:transform .18s ease,box-shadow .18s ease}
.hero-portrait:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0008,0 0 16px color-mix(in srgb,var(--rc) 35%,transparent)}
.hero-portrait.maxed{box-shadow:0 0 0 1px var(--rc),0 0 18px color-mix(in srgb,var(--rc) 45%,transparent)}
.hp-art{position:relative;aspect-ratio:116/150;background:radial-gradient(circle at 50% 28%,color-mix(in srgb,var(--rc) 55%,transparent),transparent 62%),linear-gradient(180deg,color-mix(in srgb,var(--rc) 22%,#081426),#050b14)}
.hp-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top}
.hp-art:after{content:"";position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(0deg,#050b14,transparent)}
.hp-lvl{position:absolute;z-index:1;top:6px;right:6px;min-width:30px;padding:2px 6px;border-radius:8px;background:#050b14d9;border:1px solid var(--rc);color:#fff;font-weight:800;font-size:13px;text-align:center}
.hp-lvl small{color:#93a9bb;font-weight:500;font-size:9px}
.hp-name{position:relative;z-index:1;margin-top:-34px;padding:0 7px 4px;min-height:34px;display:flex;flex-direction:column;justify-content:flex-end}
.hp-name b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.15;overflow:hidden;word-break:break-word}.hp-name small{display:block;font-size:9.5px;color:#8fa9bd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hp-bar{display:block;height:3px;background:#0f2135}.hp-bar em{display:block;height:100%;background:var(--rc)}
/* avatars in tables */
.hero-avatars{display:inline-flex;align-items:center}
.hero-avatars img{width:28px;height:28px;border-radius:50%;object-fit:cover;object-position:top;background:#0b1626;border:2px solid var(--rc);margin-left:-7px;box-shadow:0 0 0 2px #071422}
.hero-avatars img:first-child{margin-left:0}
.hero-avatars b{margin-left:5px;font-size:11px;color:#9fb9cc}
.hero-sum{color:#9fb9cc;font-size:12px;margin-bottom:4px}
.perk-chip.hero-perk{border-color:#f5b82e66;color:#ffd98a}.perk-chip.hero-perk.master{background:#3a2a06}
@media(max-width:900px){.hero-box>summary{grid-template-columns:1fr 24px}.hero-summary{grid-column:1/-1;grid-row:2;justify-content:flex-start}}

/* BUILD 59: language menu */
.hud{z-index:50!important}
.lang-menu{position:relative}
.lang-btn{gap:8px;padding:0 12px 0 10px}
.lang-btn .lang-name{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lang-caret{font-style:normal;color:var(--blue);font-size:11px;transition:transform .18s ease}
.lang-menu.open .lang-caret{transform:rotate(180deg)}
.lang-menu.open .lang-btn{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 18%,transparent)}
.lang-code{display:inline-grid;place-items:center;min-width:28px;height:20px;padding:0 5px;border-radius:6px;background:color-mix(in srgb,var(--blue) 16%,transparent);border:1px solid color-mix(in srgb,var(--blue) 40%,transparent);color:var(--blue);font-size:10.5px;font-weight:800;letter-spacing:.04em}
.lang-list{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:230px;margin:0;padding:6px;list-style:none;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 18px 48px #000a,0 0 0 1px #ffffff08 inset;animation:langIn .14s ease-out}
.lang-list li{display:grid;grid-template-columns:34px 1fr 16px;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--text);font-size:13px;cursor:pointer;outline:none}
.lang-list li:hover,.lang-list li:focus{background:color-mix(in srgb,var(--blue) 12%,transparent)}
.lang-list li.on{background:color-mix(in srgb,var(--blue) 18%,transparent);color:var(--text);font-weight:700}
.lang-list li i{font-style:normal;color:var(--green);text-align:right}
@keyframes langIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:850px){.lang-btn .lang-name{display:none}}
/* BUILD 60: newspaper & events — collapsible, person filter, event cards */
.fold-box{padding:0!important;margin-bottom:14px}
.fold-box>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto 24px;gap:14px;align-items:center;padding:14px 16px}
.fold-box>summary::-webkit-details-marker{display:none}
.fold-box>summary h3{margin:2px 0 0}
.fold-box[open]>summary{border-bottom:1px solid var(--line)}
.fold-box[open] .hb-caret{transform:rotate(180deg)}
.fold-box>:not(summary){margin-left:16px;margin-right:16px}
.fold-box>:last-child{margin-bottom:16px}
.fold-box>.news-head{margin-top:12px}
.fold-meta{color:#8fb0c8;font-size:12px}
.who-filter{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px}
.who-filter>span{color:#8fb0c8;font-size:12px;margin-right:4px}
.who-filter button{padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:#cfe6f7;font:inherit;font-size:12px;cursor:pointer}
.who-filter button:hover:not([disabled]){border-color:var(--blue)}
.who-filter button.active{background:color-mix(in srgb,var(--blue) 22%,transparent);border-color:var(--blue);color:#fff;font-weight:600}
.who-filter button[disabled]{opacity:.4;cursor:default}
.who-filter button[data-who=friend].active{border-color:#00e6a0}.who-filter button[data-who=enemy].active{border-color:#ff4b5c}.who-filter button[data-who=watch].active{border-color:#a855f7}.who-filter button[data-who=banned].active{border-color:#f97316}
.ev-card h4{display:flex;align-items:center;gap:8px}
.ev-ico{font-style:normal;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:#05243a;border:1px solid #0e668f;color:var(--blue);font-size:11px}
.news-article.cat-capture.ev-card{border-left:3px solid #f5b82e}.news-article.cat-defeated{border-left:3px solid #ff4b5c}.news-article.cat-left{border-left:3px solid #a855f7}.news-article.cat-control{border-left:3px solid #00c8ff}
.cat-defeated .ev-ico{color:#ff4b5c;border-color:#7a2633}.cat-left .ev-ico{color:#c084fc;border-color:#5b3a8a}
.perk-chip.perk-был-забанен{border-color:#f9731688;color:#fdba74;background:#2a1406}
.perk-chip.perk-бросает-игры{border-color:#a855f788;color:#d8b4fe;background:#1e0f33}
/* BUILD 60: library — collapsible sections, cards that open in place, images */
.library-page .filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.library-page #kbQ{flex:1;min-width:240px}
.kb-group{padding:0!important;margin-bottom:12px}
.kb-group>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:30px minmax(0,1fr) auto 24px;gap:10px;align-items:center;padding:13px 16px}
.kb-group>summary::-webkit-details-marker{display:none}
.kb-group>summary b{font-size:15px}
.kb-group-ico{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:color-mix(in srgb,var(--blue) 14%,transparent);border:1px solid color-mix(in srgb,var(--blue) 35%,transparent);color:var(--blue)}
.kb-group-meta{color:#8fb0c8;font-size:12px}
.kb-group[open] .hb-caret{transform:rotate(180deg)}
.kb-group[open]>summary{border-bottom:1px solid var(--line)}
.kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;padding:12px 16px 16px}
.kb-grid .kb-card{display:flex;flex-direction:column;gap:6px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#081423;color:inherit;cursor:pointer;transition:border-color .15s ease,transform .15s ease}
.kb-grid .kb-card:hover{border-color:var(--blue);transform:translateY(-1px)}
.kb-grid .kb-card.mine{border-left:3px solid color-mix(in srgb,var(--blue) 70%,transparent)}
.kb-grid .kb-card.open{grid-column:1/-1;cursor:default;transform:none;border-color:var(--blue);box-shadow:0 0 0 1px color-mix(in srgb,var(--blue) 30%,transparent)}
.kb-card-top{display:flex;gap:6px;flex-wrap:wrap;min-height:4px}
.kb-title{font-size:14px;line-height:1.3}
.kb-card p{margin:0;color:#a9c2d3;font-size:12.5px;line-height:1.45}
.kb-meta{color:#7fa3bd;font-size:11px}
.kb-imgs{font-size:10.5px;color:#9fb9cc;border:1px solid var(--line);border-radius:999px;padding:1px 7px}
.kb-full{margin-top:4px}
.kb-body{color:#d6e9f5;line-height:1.6;font-size:13.5px;white-space:normal}
.kb-body a{color:var(--blue)}
.kb-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin:12px 0}
.kb-gallery img{width:100%;height:150px;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:zoom-in}
.kb-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.kb-modal-back{position:fixed;inset:0;z-index:80;background:#0009;backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px}
.kb-modal{width:min(720px,100%);max-height:90vh;overflow:auto}
.kb-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.kb-upload{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.kb-thumbs{display:flex;flex-wrap:wrap;gap:8px}
.kb-thumb{position:relative;width:84px;height:64px}
.kb-thumb img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.kb-thumb button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;border:0;background:#ff4b5c;color:#fff;font-size:10px;cursor:pointer}
.kb-add-img{cursor:pointer}
.kb-lightbox{position:fixed;inset:0;z-index:90;background:#000d;display:grid;place-items:center;padding:30px}
.kb-lightbox img{max-width:94vw;max-height:88vh;border-radius:10px;box-shadow:0 20px 60px #000}
.lb-close{position:absolute;top:16px;right:18px;width:36px;height:36px;border-radius:50%;border:1px solid #ffffff33;background:#0008;color:#fff;font-size:15px;cursor:pointer}
.lb-close.inline{position:static;width:30px;height:30px;background:transparent;border-color:var(--line);color:inherit}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:64px;border:0;border-radius:10px;background:#0008;color:#fff;font-size:30px;cursor:pointer}
.lb-nav.prev{left:16px}.lb-nav.next{right:16px}
.probe-out{max-height:260px;overflow:auto;background:#050c16;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:11px;white-space:pre-wrap;word-break:break-all;color:#9fd0ea;margin:10px 0 0}
.ban-note{margin:6px 0 10px;padding:8px 12px;border:1px solid #f9731666;border-radius:10px;background:#2a1406;color:#fdba74;font-size:13px}
.ban-note span{color:#fed7aa}
.news-article.cat-ban{border-left:3px solid #f97316}
/* ================================================================ BUILD 62: phone layout */
@media (max-width:760px){
  :root{--hud-height:54px}
  html,body{overflow-x:hidden!important}
  body{overflow:auto!important}
  /* compact top bar */
  .hud{position:sticky!important;top:0;height:auto!important;min-height:54px;padding:6px 10px calc(6px) 10px!important;padding-top:calc(6px + env(safe-area-inset-top))!important;gap:6px!important;flex-wrap:nowrap!important;align-items:center}
  .brand-lockup{width:auto!important;flex:1 1 auto;min-width:0;gap:6px!important}
  .brand-mark{font-size:24px!important}
  .brand-name{font-size:15px!important}.brand-name em,.brand-lockup small{display:none!important}
  .statuses{display:none!important}
  .hud-bell{width:34px!important;height:34px!important;flex:0 0 auto}
  .operator{min-width:0!important;padding:3px!important;border-radius:50%!important;flex:0 0 auto}
  .operator>div:not(.operator-avatar),.operator>span{display:none!important}
  .operator-avatar{width:30px!important;height:30px!important}
  .hud-tools{gap:5px!important;flex:0 0 auto}
  .hud-tool{height:34px!important;min-width:34px!important;padding:0 7px!important}
  .lang-btn .lang-name,.lang-btn .lang-globe,.lang-caret{display:none!important}
  .lang-list{position:fixed!important;right:8px!important;left:8px!important;top:calc(58px + env(safe-area-inset-top))!important;min-width:0!important}
  .hud-logout{padding:6px 8px!important;flex:0 0 auto}.hud-logout span{display:none!important}
  /* layout: content full width, navigation at the bottom */
  .layout{display:block!important;min-height:0!important;height:auto!important;overflow:visible!important}
  main,#content{margin:0!important;max-width:none!important;width:100%!important;padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}
  .sidebar{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;width:100%!important;height:auto!important;flex:none!important;z-index:45!important;
    padding:4px 4px calc(4px + env(safe-area-inset-bottom))!important;border-right:0!important;border-top:1px solid var(--line)!important;border-radius:0!important;background:color-mix(in srgb,var(--bg,#050b14) 92%,transparent)!important;backdrop-filter:blur(14px)}
  .sidebar-nav{flex-direction:row!important;gap:2px!important;overflow-x:auto;scrollbar-width:none}
  .sidebar-nav::-webkit-scrollbar{display:none}
  .sidebar button{flex:1 0 62px!important;height:54px!important;padding:4px 2px!important;flex-direction:column!important;justify-content:center!important;gap:2px!important;font-size:10px!important;line-height:1.1;text-align:center!important;border-radius:10px!important}
  .sidebar button span{width:auto!important;font-size:19px!important}
  .sidebar-footer{display:none!important}
  /* pages */
  .page,.dashboard-page{padding:12px 10px 16px!important;height:auto!important;overflow:visible!important}
  .page-head,.page-title{margin:4px 0 12px!important}
  .page-head h1,.page-title h1{font-size:22px!important}
  .page-head p,.page-title p{font-size:12px!important}
  .metric-grid,.home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .intelligence-grid,.split-layout,.profile-layout,.home-hero,.home-grid,.form-row,.delta-cols,.dashboard-grid,.bottom-grid,.game-summary,.game-metrics,.intel-grid{grid-template-columns:minmax(0,1fr)!important}
  .home-hero{padding:16px!important}.home-hero h1{font-size:24px!important}
  .home-scan{flex-wrap:wrap}.home-scan input{min-width:0;flex:1 1 160px}
  .nexus-panel{padding:12px!important}
  .data-table-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch;max-width:100%}
  .data-table{font-size:12px}
  .filter-bar{flex-wrap:wrap!important;gap:6px!important}.filter-bar input{min-width:0!important;flex:1 1 100%!important}
  .filter-bar select{flex:1 1 auto}
  .kb-grid,.heroes-grid{grid-template-columns:minmax(0,1fr)!important;padding-left:10px!important;padding-right:10px!important}
  .hero-showcase{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .hero-box>summary,.fold-box>summary{grid-template-columns:minmax(0,1fr) 24px!important}
  .hero-summary,.fold-meta{grid-column:1/-1;justify-content:flex-start!important}
  .news-list{columns:auto!important}
  .news-tools{width:100%}.news-tools input{flex:1 1 100%;min-width:0!important}
  .who-filter{overflow-x:auto;flex-wrap:nowrap!important;padding-bottom:4px}.who-filter button{flex:0 0 auto}
  .seg{overflow-x:auto;flex-wrap:nowrap!important}.seg button{flex:0 0 auto}
  /* game command center */
  .games-live-page,.games-live-page .command-center,.games-live-page .workspace-shell{height:auto!important;min-height:0!important;overflow:visible!important}
  .command-center{padding:12px!important}
  .tabs,#gameTabs{display:flex!important;overflow-x:auto;flex-wrap:nowrap!important;gap:6px!important;scrollbar-width:none}
  #gameTabs button{flex:0 0 auto}
  .live-session-strip{flex-wrap:wrap;gap:6px}
  .map-workspace,.games-live-page .map-workspace{display:flex!important;flex-direction:column!important;height:auto!important}
  .map-workspace>*{width:100%!important;max-width:none!important}
  .map-stage,.map-canvas-wrap,.games-live-page .map-stage{height:62vh!important;min-height:320px!important}
  .verified-games-panel>.verified-games-grid{grid-template-columns:minmax(0,1fr)!important}
  .scan-card{padding:18px!important}
  /* dialogs */
  .kb-modal-back{padding:0!important;place-items:end stretch!important}
  .kb-modal{width:100%!important;max-height:92vh!important;border-radius:16px 16px 0 0!important}
  .toast,#toast{bottom:calc(84px + env(safe-area-inset-bottom))!important}
}
@media (max-width:380px){.sidebar button{flex-basis:56px!important;font-size:9px!important}.metric-grid,.home-metrics{grid-template-columns:minmax(0,1fr)!important}}
/* installed app (Add to Home screen) */
@media (display-mode:standalone){body{overscroll-behavior-y:none}}
.map-canvas{touch-action:none}
@media (max-width:760px){.map-canvas-panel{order:-1}.map-layer-panel{order:2}.province-inspector{order:3}.map-canvas{height:60vh!important;min-height:320px!important}.map-toolbar span{display:none}}
@media (max-width:760px){
  .brand-name span{display:none!important}
  .sidebar-nav{overflow:hidden!important}
  .sidebar button{flex:1 1 0!important;min-width:0!important;font-size:9px!important;letter-spacing:0!important;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .sidebar button span{font-size:18px!important}
}
@media (max-width:760px){.sidebar button{font-size:8.5px!important;padding:4px 0!important}}
