@import"https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Rajdhani:wght@400;600;700&display=swap";:root{--bg-primary: #0d0d14;--bg-panel: #14141f;--bg-panel-border: #2a2a3a;--text-primary: #e0e0e0;--text-secondary: #8888a0;--text-muted: #555570;--accent: #d4a940;--accent-dim: #a07a20;--danger: #c0392b;--success: #27ae60;--font-display: "Rajdhani", sans-serif;--font-mono: "Share Tech Mono", monospace}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-display);overflow:hidden}.app{width:100vw;height:100vh;position:relative}.game-canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.ui-topbar{position:absolute;top:0;left:0;right:0;min-height:48px;background:var(--bg-panel);border-bottom:1px solid var(--bg-panel-border);display:flex;align-items:center;gap:20px;padding:6px 20px;z-index:100;pointer-events:none}.game-title{font-family:var(--font-mono);font-size:20px;color:var(--accent);letter-spacing:6px;text-transform:uppercase}.game-info{display:flex;flex-direction:row;gap:14px;align-items:center}.game-info-right{margin-left:auto}.resource-stack{display:flex;flex-direction:column;gap:5px;align-items:stretch}.processed-row{gap:12px;opacity:.85}.btn-refinery{pointer-events:auto;font-family:var(--font-mono);font-size:13px;letter-spacing:1px;text-transform:uppercase;padding:6px 14px;background:transparent;color:var(--accent);border:1px solid var(--accent);cursor:pointer;transition:background .15s}.btn-refinery:hover:not(:disabled){background:#d4a94026}.btn-refinery:disabled{opacity:.4;cursor:not-allowed}.info-item{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);letter-spacing:1px}.resource-readout{display:flex;gap:17px;align-items:center;justify-content:space-between}.resource-chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:16px;color:var(--text-secondary)}.resource-chip img{width:22px;height:22px}.manpower-chip{position:relative;padding:4px 8px;border:1px solid var(--border);border-radius:4px;pointer-events:auto}.manpower-chip.over-cap{color:#ff6b6b;border-color:#ff6b6b}.manpower-tooltip{position:absolute;top:100%;left:0;margin-top:6px;background:var(--bg-panel, #1a1a1f);border:1px solid var(--border);border-radius:4px;padding:6px 10px;z-index:200;min-width:130px;box-shadow:0 4px 12px #0006;font-size:11px;pointer-events:none}.manpower-tooltip-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:2px 0;color:#fff;font-family:var(--font-mono)}.mp-row-production{color:#d6826a}.mp-row-logistics{color:#e5c95b}.mp-row-garrisons{color:#5aa8e6}.mp-row-regiments{color:#6cd07f}.mp-row-construction{color:#c9a0e8}.mp-row-other{color:#9aa0a6}.manpower-tooltip-empty{color:var(--text-dim);font-style:italic;justify-content:center}.btn-end-turn{pointer-events:auto;font-family:var(--font-mono);font-size:13px;letter-spacing:1px;text-transform:uppercase;padding:6px 14px;background:var(--accent);color:#1a1a1a;border:none;cursor:pointer;transition:background .15s}.btn-end-turn:hover:not(:disabled){background:var(--accent-dim)}.btn-end-turn:disabled{opacity:.5;cursor:not-allowed}.start-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:200}.start-panel{text-align:center}.start-panel h1{font-family:var(--font-mono);font-size:56px;color:var(--accent);letter-spacing:16px;margin-bottom:8px}.start-panel p{font-size:18px;color:var(--text-secondary);letter-spacing:4px;margin-bottom:32px}.start-map-picker{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:24px}.start-map-label{font-family:var(--font-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--text-secondary)}.start-map-select{font-family:var(--font-mono);font-size:14px;color:#1a1a1a;background:#ececec;border:1px solid var(--bg-panel-border);padding:8px 14px;letter-spacing:1px;min-width:260px;cursor:pointer}.start-map-select option{color:#1a1a1a;background:#ececec}.start-map-select:disabled{opacity:.5;cursor:not-allowed}.btn-create{font-family:var(--font-mono);font-size:16px;color:var(--bg-primary);background:var(--accent);border:none;padding:14px 48px;letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:all .2s}.btn-create:hover{background:var(--accent-dim);transform:scale(1.02)}.btn-create:disabled{opacity:.5;cursor:not-allowed;transform:none}.hover-tooltip{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:var(--bg-panel);border:1px solid var(--bg-panel-border);padding:8px 16px;display:flex;gap:16px;align-items:center;z-index:100;pointer-events:none;font-family:var(--font-mono);font-size:13px}.tooltip-terrain{color:var(--text-primary)}.tooltip-owner{font-weight:600}.tooltip-capital{color:var(--accent)}.tile-panel{position:absolute;top:60px;right:95px;width:280px;max-height:calc(100vh - 80px);overflow-y:auto;background:var(--bg-panel);border:1px solid var(--bg-panel-border);z-index:100}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--bg-panel-border)}.panel-header h3{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--text-primary);letter-spacing:1px;display:inline-flex;align-items:center;gap:8px}.panel-weather-icon{width:23px;height:23px;display:inline-block;vertical-align:middle;cursor:help;image-rendering:-webkit-optimize-contrast}.btn-close{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:4px}.btn-close:hover{color:var(--text-primary)}.panel-section{padding:12px 16px;border-bottom:1px solid var(--bg-panel-border)}.panel-section:last-child{border-bottom:none}.panel-section h4{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.detail-label{font-size:13px;color:var(--text-secondary)}.detail-value{font-size:13px;color:var(--text-primary);font-weight:600}.tile-coord{color:var(--text-secondary);font-weight:400;font-family:var(--font-mono);font-size:11px}.detail-mono{font-family:var(--font-mono);font-size:12px}.resource-item{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);padding:3px 0;display:flex;align-items:center;gap:8px}.resource-icon{width:18px;height:18px;flex-shrink:0}.legend-panel{position:absolute;top:64px;left:16px;width:160px;background:var(--bg-panel);border:1px solid var(--bg-panel-border);padding:10px 12px;z-index:100}.legend-panel h4{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}.legend-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.legend-row input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:14px;height:14px;border:1px solid var(--bg-panel-border);background:var(--bg-primary);cursor:pointer;position:relative;flex-shrink:0}.legend-row input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.legend-row input[type=checkbox]:checked:after{content:"";position:absolute;left:3px;top:0;width:4px;height:8px;border:solid var(--bg-primary);border-width:0 2px 2px 0;transform:rotate(45deg)}.legend-row:hover{color:var(--accent)}.mapview-panel{position:absolute;top:248px;left:16px;width:160px;background:var(--bg-panel);border:1px solid var(--bg-panel-border);padding:10px 12px;z-index:100}.all-players-debug{position:absolute;bottom:16px;left:16px;width:320px;background:var(--bg-panel);border:1px solid var(--bg-panel-border);padding:10px 12px;z-index:100;pointer-events:auto}.all-players-debug h4{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin:0 0 8px}.terrain-debug{position:absolute;bottom:260px;left:16px;width:320px;background:var(--bg-panel);border:1px solid var(--bg-panel-border);padding:10px 12px;z-index:100;pointer-events:auto}.terrain-debug h4{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin:0 0 8px}.terrain-debug-rows{display:flex;flex-direction:column;gap:4px}.terrain-debug-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;font-family:var(--font-mono);font-size:11px;color:var(--text-secondary)}.terrain-debug-label{color:var(--text-primary, #ddd);text-transform:capitalize}.terrain-debug-count{color:var(--text-secondary);min-width:28px;text-align:right}.terrain-debug-pct{color:var(--text-muted);min-width:44px;text-align:right}.all-players-rows{display:flex;flex-direction:column;gap:4px}.all-players-row{display:grid;grid-template-columns:14px 1fr auto;gap:8px;align-items:center;font-family:var(--font-mono);font-size:11px;color:var(--text-secondary)}.player-swatch{width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.4)}.player-name{color:var(--text-primary, #ddd);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-pool{color:var(--text-secondary);white-space:nowrap}.mapview-panel h4{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}.mapview-buttons{display:flex;flex-direction:column;gap:4px}.mapview-btn{background:var(--bg-primary);border:1px solid var(--bg-panel-border);color:var(--text-secondary);font-family:var(--font-display);font-size:12px;letter-spacing:1px;padding:6px 10px;cursor:pointer;text-align:left;transition:color .15s,border-color .15s}.mapview-btn:hover{color:var(--text-primary);border-color:var(--text-muted)}.mapview-btn.active{background:var(--accent);border-color:var(--accent);color:var(--bg-primary);font-weight:600}.effects-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.effect-chip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--bg-primary);border:1px solid var(--bg-panel-border);font-size:16px;cursor:help;-webkit-user-select:none;user-select:none}.building-slot-row{display:flex;flex-wrap:wrap;gap:6px}.building-slot-wrap{position:relative}.building-slot{width:36px;height:36px;background:var(--bg-primary);border:1px dashed var(--bg-panel-border);color:var(--text-muted);font-size:18px;font-family:var(--font-display);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s;position:relative}.building-slot:hover{border-color:var(--accent);color:var(--accent)}.building-slot.active{border-color:var(--accent);border-style:solid;color:var(--accent)}.building-slot img{width:28px;height:28px;display:block}.building-picker{position:absolute;top:40px;left:0;z-index:110;width:200px;background:var(--bg-panel);border:1px solid var(--accent);box-shadow:0 4px 12px #00000080;padding:4px}.building-picker-header{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);letter-spacing:1.5px;text-transform:uppercase;padding:6px 8px 4px;border-bottom:1px solid var(--bg-panel-border);margin-bottom:2px}.building-picker-row{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;background:transparent;border:none;color:var(--text-primary);font-family:var(--font-display);font-size:13px;cursor:pointer;text-align:left;transition:background .1s}.building-picker-row:hover{background:var(--bg-primary);color:var(--accent)}.building-picker-row img{width:22px;height:22px;flex-shrink:0}.base-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.base-icon{width:36px;height:36px;flex-shrink:0}.base-info{flex:1}.base-tier{font-size:13px;font-weight:600;color:var(--text-primary)}.base-desc{font-size:11px;color:var(--text-muted);margin-top:2px}.base-action{width:100%;background:var(--bg-primary);border:1px solid var(--bg-panel-border);color:var(--text-secondary);font-family:var(--font-display);font-size:12px;letter-spacing:1px;padding:8px 10px;cursor:pointer;transition:color .15s,border-color .15s}.base-action:hover{color:var(--accent);border-color:var(--accent)}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:200;display:flex;align-items:center;justify-content:center;pointer-events:auto}.refinery-modal{width:810px;max-width:90vw;background:var(--bg-panel);border:1px solid var(--bg-panel-border);box-shadow:0 8px 32px #0009}.refinery-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--bg-panel-border)}.refinery-header h3{font-family:var(--font-mono);font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin:0}.refinery-modal .refinery-header{padding:22px 28px}.refinery-modal .refinery-header h3{font-size:22px;letter-spacing:2.4px}.refinery-modal .btn-close{font-size:19px;padding:5px}.refinery-summary{padding:18px 28px;border-bottom:1px solid var(--bg-panel-border);display:flex;flex-direction:column;gap:10px;font-family:var(--font-mono);font-size:18px;color:var(--text-secondary)}.summary-line{display:flex;justify-content:space-between;align-items:center;gap:14px}.summary-raws{display:inline-flex;gap:14px;margin:0 auto}.summary-raw-chip{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:19px}.summary-raw-chip img{width:26px;height:26px}.summary-pool{display:inline-flex;gap:12px;color:var(--accent)}.refinery-rows{padding:22px 28px;display:flex;flex-direction:column;gap:16px}.refinery-row{display:grid;grid-template-columns:58px 106px 1fr 166px;gap:16px;align-items:center;font-family:var(--font-mono);font-size:18px}.row-stockpile{color:var(--text-secondary);text-align:right;font-size:17px}.row-cost,.row-output{display:inline-flex;align-items:center;gap:10px}.row-cost{color:#d6826a;justify-content:flex-end}.row-cost.shortfall{color:#ff5050;font-weight:700}.row-output{color:#6cd07f}.row-icon{width:28px;height:28px}.row-amt{min-width:48px}.row-shortfall{color:#f88;font-size:16px;margin-left:6px}.summary-line .over{color:#ff5050;font-weight:700}.btn-modal-save:disabled{opacity:.4;cursor:not-allowed;background:var(--accent)}.btn-modal-save:disabled:hover{background:var(--accent)}.refinery-row input[type=range]{width:100%;accent-color:var(--accent);height:10px}.refinery-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--bg-panel-border)}.refinery-modal .refinery-actions{gap:12px;padding:18px 28px}.refinery-modal .btn-modal-cancel,.refinery-modal .btn-modal-save{font-size:18px;letter-spacing:1.2px;padding:10px 22px}.btn-modal-cancel,.btn-modal-save{font-family:var(--font-mono);font-size:12px;letter-spacing:1px;text-transform:uppercase;padding:6px 14px;border:1px solid var(--bg-panel-border);background:transparent;color:var(--text-secondary);cursor:pointer}.btn-modal-save{background:var(--accent);color:#1a1a1a;border-color:var(--accent)}.btn-modal-cancel:hover{color:var(--accent);border-color:var(--accent)}.btn-modal-save:hover{background:var(--accent-dim)}.btn-stockpile{pointer-events:auto;font-family:var(--font-mono);font-size:13px;letter-spacing:1px;text-transform:uppercase;padding:6px 14px;display:inline-flex;align-items:center;line-height:1;height:34px;box-sizing:border-box;background:transparent;color:var(--accent);border:1px solid var(--accent);cursor:pointer;transition:background .15s}.btn-stockpile:hover{background:#d4a94026}.production-modal{width:990px;max-width:92vw;max-height:88vh;overflow:auto;background:var(--bg-panel);border:1px solid var(--bg-panel-border);box-shadow:0 8px 32px #0009}.stockpile-modal{width:720px;max-width:92vw;max-height:88vh;overflow:auto;background:var(--bg-panel);border:1px solid var(--bg-panel-border);box-shadow:0 8px 32px #0009}.production-modal .refinery-header{padding:20px 25px}.production-modal .refinery-header h3{font-size:20px}.production-modal .btn-close{font-size:18px}.production-modal .refinery-actions{padding:17px 25px;gap:11px}.production-modal .btn-modal-cancel,.production-modal .btn-modal-save{font-size:17px;padding:9px 20px}.prod-tabs{display:flex;gap:4px;padding:0 18px;border-bottom:1px solid var(--bg-panel-border)}.prod-tab{pointer-events:auto;font-family:var(--font-mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;padding:10px 16px;background:transparent;color:var(--text-secondary);border:none;border-bottom:2px solid transparent;cursor:pointer}.prod-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.prod-tab:disabled{opacity:.4;cursor:not-allowed}.production-modal .prod-tabs{padding:0 25px}.production-modal .prod-tab{font-size:17px;padding:14px 22px}.prod-section{padding:12px 18px;border-bottom:1px solid var(--bg-panel-border)}.prod-section-label,.prod-category-label{font-family:var(--font-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted, #888);margin-bottom:6px}.production-modal .prod-section{padding:17px 25px}.production-modal .prod-section-label,.production-modal .prod-category-label{font-size:14px;margin-bottom:9px;color:var(--text-secondary)}.production-modal .prod-queue-label{display:flex;align-items:center;gap:12px}.production-modal .prod-lock-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:4px;cursor:pointer;font-family:var(--font-mono);font-size:12px;letter-spacing:1px;text-transform:uppercase;background:transparent;border:1px solid var(--bg-panel-border);color:var(--text-secondary)}.production-modal .prod-lock-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.production-modal .prod-lock-btn.on{color:var(--accent);border-color:var(--accent);background:#d4a9401a}.production-modal .prod-empty{color:var(--text-secondary)}.production-modal .prod-locked-banner{font-size:12px}.prod-slots{display:flex;flex-wrap:wrap;gap:4px}.prod-slot{pointer-events:auto;width:36px;height:36px;background:#ffffff0a;border:1px solid var(--bg-panel-border);padding:2px;cursor:default;display:flex;align-items:center;justify-content:center}.prod-slot.filled{cursor:pointer;border-color:var(--accent-dim)}.prod-slot.filled:hover{border-color:#ff5050;background:#ff50501a}.prod-slot img{width:100%;height:100%;object-fit:contain}.prod-summary{display:flex;flex-direction:column;gap:6px}.prod-summary-line{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:12px}.prod-summary-label{color:var(--text-secondary);min-width:78px;letter-spacing:1px;text-transform:uppercase;font-size:10px}.prod-summary-pool{display:inline-flex;gap:14px;align-items:center;flex-wrap:wrap}.prod-cost-chip{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary)}.prod-cost-chip img{width:16px;height:16px}.prod-cost-chip.over{color:#ff5050;font-weight:700}.prod-empty{color:var(--text-muted, #666)}.production-modal .prod-summary{gap:7px}.production-modal .prod-summary-line{font-size:17px;gap:15px}.production-modal .prod-summary-label{font-size:14px;min-width:108px}.production-modal .prod-summary-pool{gap:15px}.production-modal .prod-cost-chip{gap:5px}.production-modal .prod-cost-chip img{width:22px;height:22px}.prod-grid{padding:12px 18px;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--bg-panel-border)}.prod-category-row{display:grid;gap:18px}.prod-category-row.cols-2{grid-template-columns:1fr 1fr}.prod-category-row.cols-1{grid-template-columns:1fr}.prod-category{display:flex;flex-direction:column}.prod-items{display:flex;flex-wrap:wrap;gap:4px}.prod-item{pointer-events:auto;width:44px;height:44px;background:#ffffff0a;border:1px solid var(--bg-panel-border);padding:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .1s}.prod-item:hover{border-color:var(--accent);background:#d4a9401f}.prod-item img{width:100%;height:100%;object-fit:contain}.production-modal .prod-grid{padding:17px 25px;gap:14px}.production-modal .prod-category-row{gap:20px}.production-modal .prod-items{gap:6px}.production-modal .prod-item{width:61px;height:61px;padding:4px}.stockpile-items{display:flex;flex-wrap:wrap;gap:6px}.stockpile-item{position:relative;width:53px;height:53px;background:#ffffff0a;border:1px solid var(--bg-panel-border);padding:3px;display:flex;align-items:center;justify-content:center}.stockpile-item img{width:100%;height:100%;object-fit:contain}.stockpile-count{position:absolute;bottom:1px;right:3px;font-family:var(--font-mono);font-size:11px;color:var(--accent);text-shadow:0 0 4px rgba(0,0,0,.9);font-weight:700}.equipment-tooltip{position:fixed;z-index:300;pointer-events:none;background:#0d0d14f5;border:1px solid var(--accent-dim);padding:8px 10px;width:max-content;max-width:320px;box-shadow:0 4px 12px #0009;font-family:var(--font-mono)}.tt-header{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--accent);letter-spacing:.5px}.tt-cost{display:flex;gap:10px;align-items:center;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:var(--text-secondary)}.tt-cost-chip{display:inline-flex;align-items:center;gap:4px}.tt-cost-chip img{width:14px;height:14px}.tt-yield{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:var(--text-secondary)}.btn-refinery.stale{border-color:#ff5050;color:#ff5050;animation:stale-pulse 1.6s ease-in-out infinite}.btn-refinery.stale:hover:not(:disabled){background:#ff505026}@keyframes stale-pulse{0%,to{box-shadow:0 0 #ff505000}50%{box-shadow:0 0 0 3px #ff505059}}.prod-locked-banner{background:#d4a94014;color:var(--accent);font-family:var(--font-mono);font-size:11px;letter-spacing:1px;text-transform:uppercase}.prod-slot.locked{cursor:default;opacity:.85}.prod-slot.locked.filled:hover{border-color:var(--accent-dim);background:#ffffff0a}.construction-panel{position:absolute;top:60px;right:12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:10px 12px;z-index:50}.construction-panel h4{margin:0 0 8px;font-family:var(--font-mono);font-size:9px;letter-spacing:.5px;line-height:1.2;text-align:center;text-transform:uppercase;color:var(--accent)}.construction-slot-row{display:flex;flex-direction:column;gap:6px}.construction-slot{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;background:#ffffff08;cursor:default;padding:0}.construction-slot.empty{opacity:.5}.construction-slot.in-flight{cursor:pointer;background:#d4a94014;border-color:var(--accent-dim)}.construction-slot.in-flight:hover{border-color:var(--accent)}.construction-slot.locked{opacity:.4;cursor:not-allowed;background:#ffffff05;border-style:dashed}.construction-lock{font-size:14px;filter:grayscale(.5)}.construction-slot img{width:28px;height:28px;object-fit:contain}.construction-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;background:var(--accent);color:#000;border-radius:9px;font-family:var(--font-mono);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;pointer-events:none}.building-slot.filled{background:#ffffff0a;cursor:pointer}.building-slot.in-progress{opacity:.65;border-color:var(--accent-dim)}.building-slot.in-progress:hover{border-color:var(--accent);opacity:.85}.building-slot.operational{border-color:var(--success, #4caf50);cursor:default}.building-slot img{width:28px;height:28px;object-fit:contain}.building-picker-row{display:flex;align-items:center;gap:8px;padding:6px 8px}.building-picker-row.disabled{opacity:.5;cursor:not-allowed}.picker-row-text{display:flex;flex-direction:column;gap:2px;text-align:left}.picker-row-label{font-size:12px;color:var(--text)}.picker-row-meta{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--text-dim)}.picker-row-turns{background:#ffffff0f;padding:1px 4px;border-radius:3px;font-family:var(--font-mono)}.picker-row-cost{display:inline-flex;align-items:center;gap:3px}.picker-row-cost img{width:12px;height:12px}.picker-row-cost.over{color:var(--danger, #d44)}.construction-modal{background:var(--bg-panel);border:1px solid var(--bg-panel-border);border-radius:8px;padding:16px 20px;min-width:360px;max-width:440px;box-shadow:0 8px 32px #0009}.construction-modal-icon{width:48px;height:48px;object-fit:contain;float:left;margin-right:12px}.construction-modal-body{font-size:13px;line-height:1.5}.construction-modal-description{margin-bottom:8px;color:var(--text-dim);font-style:italic}.construction-modal-cost{margin-top:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--text-dim)}.construction-cost-chip{display:inline-flex;align-items:center;gap:3px;background:#ffffff0a;padding:2px 6px;border-radius:3px}.construction-cost-chip img{width:12px;height:12px}.building-picker-modal{background:var(--panel, #1a1a1f);border:1px solid var(--border);border-radius:8px;padding:12px 14px;width:280px;max-width:90vw;max-height:80vh;overflow-y:auto}.building-picker-grid{display:flex;flex-direction:column;gap:6px;margin-top:10px}.building-card{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#ffffff08;border:1px solid var(--border);border-radius:5px;cursor:pointer;transition:border-color .1s,background .1s;text-align:left}.building-card:hover:not(:disabled){border-color:var(--accent);background:#d4a94014}.building-card.disabled,.building-card:disabled{opacity:.45;cursor:not-allowed}.building-card-icon{width:36px;height:36px;object-fit:contain;flex-shrink:0}.building-card-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.building-card-label{font-size:13px;color:#fff;font-weight:500}.building-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.building-card-turns{font-family:var(--font-mono);font-size:10px;background:#ffffff1a;padding:1px 5px;border-radius:3px;color:#fff}.building-card-cost-chip{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:#fff;font-family:var(--font-mono)}.building-card-cost-chip img{width:12px;height:12px}.building-card-cost-chip.over{color:var(--danger, #d44)}.fuel-bar-wrap{display:flex;flex-direction:column;gap:3px;margin-left:7px;pointer-events:auto;position:relative}.fuel-bar{position:relative;width:120px;height:17px;background:#ffffff14;border:1px solid var(--border);border-radius:3px;overflow:hidden;display:flex;cursor:help}.fuel-bar-segment{height:100%}.fuel-diesel{background:#d65a2c}.fuel-petrol{background:#d4a73b}.fuel-bar-label{font-family:var(--font-mono);font-size:16px;color:var(--text-primary);text-align:center}.fuel-bar-tooltip{position:absolute;top:100%;right:0;margin-top:6px;background:var(--bg-panel, #1a1a1f);border:1px solid var(--border);border-radius:4px;padding:6px 10px;z-index:200;min-width:130px;box-shadow:0 4px 12px #0006;font-size:11px;pointer-events:none}.fuel-bar-tooltip-row{display:flex;align-items:center;gap:6px;padding:2px 0;color:#fff}.fuel-bar-tooltip-row img{width:20px;height:20px;object-fit:contain}.resource-cap{font-family:var(--font-mono);font-size:13px;color:var(--text-dim);margin-left:auto;padding:2px 6px;background:#ffffff0a;border-radius:3px}.overflow-modal{background:var(--bg-panel, #1a1a1f);border:1px solid var(--border);border-radius:8px;padding:16px 20px;width:480px;max-width:90vw;max-height:85vh;overflow-y:auto}.overflow-explanation{font-size:12px;color:var(--text-dim);margin-bottom:10px}.overflow-section{border-top:1px solid var(--border);padding-top:10px;margin-top:10px}.overflow-section:first-of-type{border-top:none}.overflow-section-header{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.overflow-section-total{font-family:var(--font-mono);font-size:11px;color:#fff;background:#ffffff0f;padding:2px 6px;border-radius:3px}.overflow-section-total.over{color:var(--danger, #d44);background:#d4444426}.overflow-row{display:grid;grid-template-columns:24px 110px 1fr 70px;gap:8px;align-items:center;padding:4px 0}.overflow-row-icon{width:20px;height:20px;object-fit:contain}.overflow-row-label{font-size:12px;color:#fff}.overflow-row-slider{width:100%}.overflow-row-value{font-family:var(--font-mono);font-size:11px;color:#fff;text-align:right}.training-modal{width:980px;max-width:96vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--bg-panel-border);box-shadow:0 8px 32px #0009}.training-body{display:grid;grid-template-columns:220px minmax(0,1fr) 220px;gap:12px;padding:14px 16px;overflow-y:auto;overflow-x:hidden;min-width:0}.training-section-label{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:6px}.training-modal .training-section-label,.training-modal .training-col-label{color:#b8bcc4}.training-modal .training-slot.empty{color:#7a8090}.training-modal .training-empty-stats{color:#b0b4be;font-style:normal}.training-modal .training-name-input::placeholder{color:#8a8f99}.training-modal .training-name-input{color:#ececec}.training-empty-stats{font-size:12px;color:var(--text-dim);font-style:italic;padding:12px 4px}.training-stats{font-family:var(--font-mono);font-size:12px;min-width:0}.stat-row{display:flex;justify-content:space-between;padding:3px 0;color:var(--text-secondary)}.stat-row-sep{height:1px;background:var(--bg-panel-border);margin:6px 0}.stat-delta{font-size:11px;color:var(--text-dim);margin-left:4px}.stat-good{color:#6cce6c}.stat-bad{color:#ff6b6b}.training-editor{display:flex;flex-direction:column;gap:10px;min-width:0}.training-editor-header{display:flex;gap:12px;align-items:center}.training-name-input{flex:1;padding:6px 8px;background:#ffffff0a;border:1px solid var(--bg-panel-border);color:var(--text-primary, #ddd);font-family:var(--font-mono);font-size:12px}.training-name-input:disabled{opacity:.4;cursor:not-allowed}.training-motorize{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);cursor:pointer}.training-motorize input[type=checkbox]:disabled+*{opacity:.4}.training-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.training-col{display:flex;flex-direction:column;gap:4px}.training-col-label{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:4px;text-align:center}.training-slot{height:42px;background:#ffffff0a;border:1px solid var(--bg-panel-border);color:var(--text-secondary);font-family:var(--font-mono);font-size:11px;cursor:pointer;transition:background .12s,border-color .12s;padding:4px 6px}.training-slot.empty{color:var(--text-muted);font-size:16px}.training-slot.filled{background:#ffffff14;color:var(--text-primary, #ddd)}.training-slot.support{background:#78643c14}.training-slot:hover:not(:disabled){border-color:var(--accent, #d4a047);background:#ffffff1a}.training-slot:disabled{opacity:.4;cursor:not-allowed}.training-equipment{margin-top:4px}.training-equipment-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.training-equipment-chip{font-family:var(--font-mono);font-size:10px;color:var(--text-secondary);background:#ffffff0a;padding:2px 6px;border-radius:3px;text-transform:capitalize}.training-actions{display:flex;justify-content:space-between;align-items:center;margin-top:4px;padding-top:10px;border-top:1px solid var(--bg-panel-border)}.training-actions-left{display:flex;align-items:center;gap:10px}.training-actions-right{display:flex;gap:6px}.btn-template-delete{padding:6px 12px;background:#ff505026;color:#ff8a8a;border:1px solid rgba(255,80,80,.4);font-family:var(--font-mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;cursor:pointer}.btn-template-delete:disabled{opacity:.35;cursor:not-allowed}.template-usage-counter{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.training-slots-list{display:flex;flex-direction:column;gap:4px;min-width:0}.template-slot{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#ffffff0a;border:1px solid var(--bg-panel-border);color:var(--text-secondary);font-family:var(--font-mono);font-size:11px;cursor:pointer;text-align:left;min-height:34px}.template-slot.empty{justify-content:center;color:var(--text-muted);font-size:16px}.template-slot.selected{border-color:var(--accent, #d4a047);background:#d4a0471a}.template-slot:hover{background:#ffffff14}.template-slot-name{flex:1;color:var(--text-primary, #ddd);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-slot-usage{color:var(--text-muted)}.template-icon-badge{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:3px;background:#1a1a1a;flex-shrink:0}.template-icon-badge img{width:18px;height:18px;object-fit:contain}.company-picker-modal{width:720px;max-width:90vw;max-height:80vh;overflow:auto;background:var(--bg-panel);border:1px solid var(--bg-panel-border);box-shadow:0 8px 32px #000c}.company-picker-grid{display:flex;flex-direction:column;gap:14px;padding:14px 16px}.company-picker-group-label{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:6px}.company-picker-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.company-pick-card{padding:8px 10px;background:#ffffff0a;border:1px solid var(--bg-panel-border);color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;text-align:left;transition:background .12s,border-color .12s}.company-pick-card:hover{background:#ffffff1a;border-color:var(--accent, #d4a047)}.company-pick-label{font-size:12px;color:var(--text-primary, #ddd);margin-bottom:4px}.company-pick-meta{display:flex;gap:10px;font-size:10px;color:var(--text-muted)}.company-pick-remove{background:#ff50501a;border-color:#ff50504d}.company-pick-remove:hover{background:#ff50502e;border-color:#ff505099}.recruit-inflight{display:flex;flex-direction:column;gap:6px}.recruit-inflight-label{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary)}.recruit-inflight-meta{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.recruit-picker{display:flex;flex-direction:column;gap:4px}.recruit-empty{font-size:12px;color:var(--text-muted);font-style:italic;padding:6px 0}.recruit-template-row{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#ffffff0a;border:1px solid var(--bg-panel-border);color:var(--text-secondary);font-family:var(--font-mono);font-size:12px;cursor:pointer;text-align:left}.recruit-template-row:hover:not(:disabled){background:#ffffff14;border-color:var(--accent, #d4a047)}.recruit-template-row.disabled{opacity:.4;cursor:not-allowed}.recruit-template-name{flex:1;color:var(--text-primary, #ddd)}.recruit-cancel-picker{margin-top:4px}.regiment-strip{position:absolute;top:60px;right:375px;display:flex;flex-direction:column;gap:2px;z-index:100;pointer-events:none}.regiment-strip-item{pointer-events:auto;width:32px;height:32px;padding:4px;background:#1a1a1a;border:2px solid #888;cursor:pointer;display:flex;align-items:center;justify-content:center}.regiment-strip-item.selected{outline:2px solid var(--accent, #d4a047);outline-offset:-2px}.regiment-strip-icon-mask{width:100%;height:100%;display:block;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.regiment-strip-counts{gap:4px}.regiment-strip-count-pill{pointer-events:auto;min-width:32px;padding:4px 6px;background:#1a1a1a;border:2px solid #888;color:#888;font-size:11px;font-weight:600;text-align:center;white-space:nowrap;cursor:help}.tile-vision-tier{font-style:italic;color:#a0a0a0;font-size:11px}.building-fog-hint{font-size:11px;color:#888;font-style:italic;margin-top:4px}.regiment-detail-card{position:absolute;bottom:20px;left:20px;width:280px;background:var(--bg-panel);border:1px solid var(--bg-panel-border);z-index:100}.regiment-detail-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--bg-panel-border)}.regiment-detail-badge{width:26px;height:26px;padding:3px;display:flex;align-items:center;justify-content:center;background:#1a1a1a;border:2px solid #888;flex-shrink:0}.regiment-detail-badge-mask{width:100%;height:100%;display:block;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.regiment-detail-name{flex:1;font-family:var(--font-mono);font-size:13px;color:var(--text-primary, #ececec);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.regiment-detail-close{flex-shrink:0}.regiment-detail-stats{padding:10px 12px;font-family:var(--font-mono);font-size:12px}.rd-row{display:flex;justify-content:space-between;padding:3px 0;color:var(--text-secondary)}.rd-row>span:last-child{color:var(--text-primary, #ececec)}.rd-sep{height:1px;background:var(--bg-panel-border);margin:6px 0}.rd-pending{align-items:center}.rd-cols{display:grid;grid-template-columns:1fr 1px 1fr;column-gap:10px}.rd-vsep{background:var(--bg-panel-border)}.rd-col{display:flex;flex-direction:column;min-width:0}.rd-stat{display:flex;gap:8px;padding:3px 0;color:var(--text-secondary);white-space:nowrap}.rd-stat-v{color:var(--text-primary, #ececec);min-width:3.5ch;text-align:right}.rd-actions{display:grid;grid-template-columns:1fr 1fr;column-gap:21px}.rd-actions .rd-col{gap:6px}.rd-actions .rd-cancel-btn{width:100%}.rd-pending>span{color:#d4a047}.rd-cancel-btn{background:#ff6b6b26;border:1px solid rgba(255,107,107,.4);color:#ff6b6b;padding:3px 8px;font-family:var(--font-mono);font-size:11px;cursor:pointer}.rd-cancel-btn:hover{background:#ff6b6b40}.rd-retemplate-btn{background:#ffffff0a;border-color:var(--bg-panel-border);color:var(--text-primary, #ececec)}.rd-retemplate-btn:hover:not(:disabled){background:#ffffff1a}.rd-retemplate-btn:disabled{opacity:.4;cursor:not-allowed}.game-toast{position:absolute;left:50%;bottom:30%;transform:translate(-50%);padding:12px 24px;background:#140a0ad9;border:1px solid #ff6b6b;color:#ff8585;font-family:var(--font-mono);font-size:14px;font-weight:700;letter-spacing:1px;pointer-events:none;z-index:1000;animation:toast-rise 1.8s ease-out forwards}@keyframes toast-rise{0%{opacity:0;transform:translate(-50%)}15%{opacity:1;transform:translate(-50%,-10px)}85%{opacity:1;transform:translate(-50%,-60px)}to{opacity:0;transform:translate(-50%,-90px)}}.recruitment-tab-body{display:block;padding:16px 20px}.recruit-cards{display:grid;grid-template-columns:1fr;gap:10px;width:100%;max-height:60vh;overflow-y:auto}.recruit-card{display:flex;align-items:center;gap:16px;padding:10px 14px;background:#ffffff0a;border:1px solid var(--bg-panel-border);min-width:0}.recruit-card-header{flex:1 1 0;min-width:0;display:flex;justify-content:center}.recruit-card-title{font-family:var(--font-mono);font-size:13px;color:#ececec;white-space:nowrap}.recruit-card-body{flex:1 1 0;min-width:0;display:flex;justify-content:center}.recruit-card-body>.base-action,.recruit-card-body>.rd-cancel-btn{flex:0 0 auto;min-width:90px}.recruit-card-body:has(.recruit-card-picker){display:block}.recruit-card-inflight{display:flex;align-items:center;gap:12px}.recruit-card-inflight-label{font-family:var(--font-mono);font-size:12px;color:#b8bcc4;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recruit-card-inflight-label b{color:#ececec}.recruit-card-inflight-meta{font-family:var(--font-mono);font-size:11px;color:#b0b4be;white-space:nowrap}.recruit-card-picker{display:flex;flex-direction:column;gap:4px;width:100%}.regiment-detail-multi{position:absolute;bottom:20px;left:20px;width:320px;background:var(--bg-panel);border:1px solid var(--bg-panel-border);z-index:100}.regiment-detail-multi-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--bg-panel-border);font-family:var(--font-mono);font-size:12px;color:#b8bcc4;letter-spacing:1px;text-transform:uppercase}.regiment-detail-multi-list{max-height:40vh;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:2px}.regiment-thin-card{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#ffffff0a;border:1px solid var(--bg-panel-border);font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);cursor:pointer;text-align:left}.regiment-thin-card:hover{background:#ffffff1a;border-color:var(--accent, #d4a047)}.regiment-thin-badge{width:22px;height:22px;padding:2px;display:flex;align-items:center;justify-content:center;background:#1a1a1a;border:2px solid #888;flex-shrink:0}.regiment-thin-badge-mask{width:100%;height:100%;display:block;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.regiment-thin-name{flex:1;min-width:0;color:#ececec;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.regiment-thin-stat{flex-shrink:0;color:#b8bcc4;font-size:10px}.fuel-bar-wrap-outer{position:relative}.fuel-alert{position:absolute;top:calc(100% + 4px);left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;background:#280e0ef2;border:1px solid #ff6b6b;color:#ff8585;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;z-index:90;animation:fuel-alert-fade 10s linear forwards}.manpower-banner{position:absolute;top:48px;left:0;right:0;padding:8px 20px;background:#280e0ef2;border-bottom:1px solid #ff6b6b;color:#ff8585;font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;text-align:center;z-index:95;pointer-events:none}.fuel-alert-close{background:transparent;border:none;color:#ff8585;font-size:12px;cursor:pointer;padding:0 4px;line-height:1}.fuel-alert-close:hover{color:#fff}@keyframes fuel-alert-fade{0%{opacity:1}60%{opacity:1}to{opacity:0}}.training-slot.filled{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 8px}.training-slot-icon{width:22px;height:22px;object-fit:contain;flex-shrink:0}.training-slot-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ececec}.company-pick-card{position:relative}.company-pick-icon{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;object-fit:contain;opacity:.9}.company-pick-card .company-pick-label{color:#ececec}.company-pick-card .company-pick-meta{color:#b8bcc4}.training-icon-btn{width:36px;height:36px;flex-shrink:0;background:#ffffff0a;border:1px solid var(--bg-panel-border);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.training-icon-btn:hover:not(:disabled){border-color:var(--accent, #d4a047);background:#ffffff14}.training-icon-btn:disabled{opacity:.4;cursor:not-allowed}.training-icon-btn img{width:100%;height:100%;object-fit:contain}.icon-picker-modal{width:520px;max-width:96vw;background:var(--bg-panel);border:1px solid var(--bg-panel-border);box-shadow:0 8px 32px #0009;display:flex;flex-direction:column}.icon-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px;max-height:70vh;overflow-y:auto}.icon-pick-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px;background:#ffffff0a;border:1px solid var(--bg-panel-border);cursor:pointer}.icon-pick-card:hover{background:#ffffff1a;border-color:var(--accent, #d4a047)}.icon-pick-card.selected{border-color:#d4a047;background:#d4a0471f}.icon-pick-card img{width:64px;height:64px;object-fit:contain}.icon-pick-label{font-family:var(--font-mono);font-size:11px;color:#ececec;text-align:center}.recruit-btn-compact{flex:0 0 auto;min-width:90px}.recruit-dropdown-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000}.recruit-card-picker-floating{position:fixed;z-index:9001;min-width:240px;max-width:320px;max-height:320px;overflow-y:auto;background:var(--bg-panel);border:1px solid var(--bg-panel-border);box-shadow:0 8px 24px #0009;padding:4px;display:flex;flex-direction:column;gap:2px}.depot-panel{padding:12px 16px;border-top:1px solid var(--bg-panel-border);display:flex;flex-direction:column;gap:10px;font-size:13px}.depot-panel-row{display:flex;align-items:center;gap:8px}.depot-panel-label{color:#999}.depot-panel-value{color:#ddd}.depot-panel-status{font-weight:600}.depot-panel-summary{display:flex;flex-direction:column;gap:4px}.depot-panel-served-list{list-style:none;margin:4px 0 0;padding:0;max-height:100px;overflow-y:auto;border-top:1px dashed #333}.depot-panel-served-item{padding:2px 4px;font-size:12px;color:#ccc}.depot-panel-actions{display:flex;gap:6px;flex-wrap:wrap}.btn-depot-toggle{background:#222;border:1px solid #444;color:#ddd;padding:4px 10px;font-size:12px;border-radius:3px;cursor:pointer}.btn-depot-toggle:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-depot-toggle:disabled{opacity:.4;cursor:not-allowed}.depot-panel-error{color:#e66;font-size:12px}.depot-panel-loading{color:#999;font-size:12px}.depot-conn-dot{width:10px;height:10px;border-radius:50%;display:inline-block;border:1px solid #111;box-shadow:0 0 4px #000000b3 inset}.depot-conn-strong{background:#3ab050}.depot-conn-weak{background:#d8a040}.depot-conn-disconnected{background:#c04040}.depot-conn-unknown{background:#666}.building-slot-dot{position:absolute;top:2px;right:2px;width:8px;height:8px;border-radius:50%;border:1px solid #111;pointer-events:none}.btn-battle-log{position:fixed;right:16px;bottom:16px;z-index:50;width:150px;height:38px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;background:#2a0808;border:1px solid #E83030;color:#ffd5d5;padding:10px 16px;font-size:13px;font-family:var(--font-display);cursor:pointer;border-radius:4px;letter-spacing:.05em}.btn-battle-log:hover{background:#3a0a0a;border-color:#ff5050;color:#fff}.battle-log-modal,.battle-detail-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:560px;max-height:80vh;background:var(--bg-panel);border:1px solid var(--bg-panel-border);display:flex;flex-direction:column;z-index:200}.battle-detail-modal{width:980px;max-height:88vh}.battle-log-body,.battle-detail-body{padding:16px;overflow-y:auto}.battle-log-empty{color:#888;font-size:13px;text-align:center;padding:20px}.battle-log-card{display:block;width:100%;text-align:left;background:#1c1c1f;border:1px solid #3a3a3f;color:#ddd;padding:12px 14px;margin-bottom:8px;border-radius:4px;cursor:pointer}.battle-log-card:hover{border-color:var(--accent)}.battle-log-won{border-left:4px solid #3ab050}.battle-log-lost{border-left:4px solid #c04040}.battle-log-draw{border-left:4px solid #888}.battle-log-region{font-weight:600;font-size:14px;margin-bottom:4px}.battle-log-result{display:inline-block;font-size:11px;letter-spacing:.08em;margin-right:8px;color:#ccc}.battle-log-meta{font-size:11px;color:#888}.battle-side{background:#15161a;border:1px solid #2a2b2f;border-radius:4px;padding:12px}.battle-modifier-badges{display:inline-flex;align-items:center;gap:8px}.battle-modifier-badge{display:inline-flex;align-items:center;gap:2px;padding:3px 6px;border-radius:3px;background:#1f2025}.battle-modifier-badge.buff{box-shadow:inset 0 0 0 1px #40c06059}.battle-modifier-badge.debuff{box-shadow:inset 0 0 0 1px #dc484859}.battle-modifier-icon{width:24px;height:24px;image-rendering:-webkit-optimize-contrast}.battle-modifier-chevrons{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:12px;height:24px;gap:0}.battle-modifier-chevron{width:12px;height:8px;display:block;margin-top:-3px}.battle-modifier-chevron:first-child{margin-top:0}.battle-modifier-badge.buff .battle-modifier-chevron{filter:invert(58%) sepia(80%) saturate(700%) hue-rotate(85deg) brightness(95%) contrast(90%)}.battle-modifier-badge.debuff .battle-modifier-chevron{filter:invert(28%) sepia(95%) saturate(2200%) hue-rotate(345deg) brightness(100%) contrast(95%)}.battle-side-width-flank{color:#6fc78a;margin-left:4px}.battle-regiment-row{background:#1f2025;padding:8px 10px;border-radius:3px;margin-bottom:5px;font-size:13px;display:flex;align-items:center;gap:10px}.battle-regiment-icon{width:28px;height:28px;flex-shrink:0;image-rendering:-webkit-optimize-contrast}.battle-regiment-body{flex:1;min-width:0}.battle-regiment-name{color:#ddd;font-weight:500;margin-bottom:2px}.battle-regiment-stats{color:#999;font-size:11px;display:flex;gap:10px}.battle-empty{color:#555;font-size:11px;font-style:italic}.battle-hidden-count{color:#888;font-size:11px;font-style:italic}.battle-terrain{text-align:center;padding:18px 6px;display:flex;flex-direction:column;align-items:center;gap:10px}.battle-terrain-value{font-family:var(--font-display);font-size:16px;color:#ddd;text-transform:capitalize;letter-spacing:.05em}.battle-terrain-hex{width:64px;height:64px;display:block}.battle-terrain-effects{list-style:none;margin:0;padding:0;font-size:11px;color:#aaa;line-height:1.4;text-align:center}.battle-terrain-effects li{white-space:nowrap}.battle-weather{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:6px;padding-top:8px;border-top:1px solid #2a2b2f;cursor:help}.battle-weather-icon{width:32px;height:32px;image-rendering:-webkit-optimize-contrast;filter:brightness(.95)}.battle-weather-label{font-size:11px;color:#bbb;text-transform:uppercase;letter-spacing:.05em}.effect-chip-weather{display:inline-flex;align-items:center;justify-content:center;padding:2px}.effect-chip-img{width:18px;height:18px;display:block;image-rendering:-webkit-optimize-contrast}.btn-research{pointer-events:auto;font-family:var(--font-mono);font-size:13px;letter-spacing:1px;text-transform:uppercase;padding:6px 14px;height:34px;box-sizing:border-box;background:transparent;color:var(--accent);border:1px solid var(--accent);cursor:pointer;transition:background .15s;display:inline-flex;align-items:center;gap:6px;line-height:1}.btn-research:hover{background:#d4a94026}.btn-research img{width:20px;height:20px;display:block}.btn-research-rp{font-family:var(--font-mono);font-size:13px;line-height:1;color:var(--accent)}.research-modal,.subtech-modal{width:720px;max-width:92vw;max-height:85vh;background:var(--bg-panel);border:1px solid var(--bg-panel-border);box-shadow:0 8px 32px #0009;display:flex;flex-direction:column}.subtech-modal .refinery-header{flex-shrink:0}.subtech-modal-body{padding:16px;overflow-y:auto}.subtech-modal .btn-modal-save{display:inline-flex;align-items:center;justify-content:center;min-width:130px}.research-rp-header{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:13px;letter-spacing:1px;color:var(--accent);margin-left:auto;margin-right:12px}.research-rp-header img{width:22px;height:22px}.research-error{padding:8px 18px;background:#c83c3c26;color:#e88080;font-family:var(--font-mono);font-size:12px;text-align:center;border-bottom:1px solid var(--bg-panel-border)}.research-levels{flex:1;overflow-y:auto;padding:12px 18px;display:flex;flex-direction:column;gap:10px}.research-level{border:1px solid var(--bg-panel-border);padding:12px 14px;background:#14141f80}.research-level.locked .research-level-title{opacity:.55}.research-level.unlocked{border-color:var(--accent-dim)}.research-level-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.research-subtechs-btn{gap:8px}.research-subtechs-btn-count{font-family:var(--font-mono);font-size:11px;letter-spacing:.5px;padding:1px 6px;background:#00000040;border-radius:2px;color:#1a1a1a}.research-level-title{font-family:var(--font-mono);font-size:14px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-primary);display:flex;align-items:center;gap:10px}.research-badge-unlocked{font-size:10px;letter-spacing:1px;padding:2px 6px;background:#d4a94026;border:1px solid var(--accent-dim);color:var(--accent)}.research-subtechs{margin-top:12px;display:flex;flex-direction:column;gap:8px}.research-subtech{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--bg-panel-border);background:#00000040}.research-subtech.chosen{border-color:var(--accent);background:#d4a94014}.research-subtech.dimmed{opacity:.4}.research-subtech-body{flex:1;display:flex;flex-direction:column;gap:3px}.research-subtech-name{font-family:var(--font-mono);font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--text-primary)}.research-subtech-desc{font-size:11px;color:var(--text-secondary);font-style:italic}.research-badge-chosen{font-family:var(--font-mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:3px 8px;background:var(--accent);color:#1a1a1a}.rp-cost{display:inline-flex;align-items:center;gap:3px;vertical-align:middle}.rp-cost-num{font-family:var(--font-mono);font-size:inherit;line-height:1}.rp-cost-icon{width:17px;height:17px;display:block}.btn-choose-label{margin-right:4px}.research-modal .btn-modal-save{display:inline-flex;align-items:center;justify-content:center;min-width:130px}.research-level-equipment{display:flex;align-items:center;gap:5px;flex-wrap:wrap;flex:1}.research-equipment-icon{width:30px;height:30px;display:block;object-fit:contain;opacity:.95}.research-level.locked .research-equipment-icon{opacity:.45;filter:grayscale(.5)}.research-level-spacer{display:none}.research-subtech-cluster{display:flex;align-items:stretch;gap:8px;margin-bottom:8px}.research-subtech-cluster .research-subtech{flex:1;margin:0}.research-subtech-cluster-vertical{flex-direction:column}.research-subtech-cluster-vertical .research-subtech{flex:0 0 auto}.base-spec-banner{display:flex;align-items:baseline;gap:6px;margin:0 0 12px;padding:8px 12px;background:#b48c3c1f;border-left:3px solid var(--accent);border-radius:4px;font-size:13px;flex-wrap:wrap}.base-spec-banner-name{color:var(--accent);font-weight:600}.base-spec-banner-desc{color:var(--text-muted);font-size:12px}.research-subtech-or{align-self:center;font-family:var(--font-mono);font-size:11px;letter-spacing:2px;color:var(--text-muted);padding:0 4px;-webkit-user-select:none;user-select:none}.research-badge-blocked{font-family:var(--font-mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:3px 8px;background:#781e1e66;color:#a06060;border:1px solid #602020}.research-rp-header{gap:4px}.research-subtechs>.research-subtech-cluster:last-child{margin-bottom:0}.prod-item.locked{opacity:.32;cursor:not-allowed;filter:grayscale(.6)}.prod-item.locked:hover{border-color:var(--bg-panel-border);background:#ffffff0a}.base-hp-bar{position:relative;width:100%;height:14px;background:var(--bg-primary);border:1px solid var(--bg-panel-border);margin-top:4px;overflow:hidden}.base-hp-bar-fill{height:100%;background:#3a7d3a;transition:width .3s}.base-hp-bar-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--text-primary);text-shadow:0 0 2px rgba(0,0,0,.7);font-family:var(--font-display);letter-spacing:.5px}.base-actions-row{display:flex;align-items:center;gap:8px;margin-top:6px}.base-actions-row .base-action{flex:1;width:auto}.base-mothball-toggle{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.base-mothball-toggle input[type=checkbox]{cursor:pointer}.base-modal-hp{flex:1;max-width:280px;margin:0 16px}.base-modal-body{margin-top:4px}.base-in-flight-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 12px;padding:8px 12px;background:var(--bg-primary);border-left:3px solid var(--accent);font-size:12px}.base-in-flight-label{color:var(--text-muted);font-size:11px;letter-spacing:1px;text-transform:uppercase}.base-upgrade-card{background:var(--bg-primary);border:1px solid var(--bg-panel-border);padding:8px 10px;display:flex;flex-direction:row;align-items:stretch;gap:12px;transition:border-color .15s;flex:1;min-width:320px}.base-upgrade-body{display:flex;flex-direction:column;justify-content:space-between;gap:5px;flex:1;min-width:0}.base-upgrade-meta-col{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;gap:5px;flex-shrink:0;font-size:12px;color:var(--text-secondary)}.base-upgrade-card.owned{border-color:var(--accent);opacity:.85}.base-upgrade-card.blocked{opacity:.45}.base-upgrade-card.in-flight{border-color:var(--accent);background:var(--bg-panel)}.base-upgrade-card.unaffordable{opacity:.55}.base-upgrade-card.wip{opacity:.55;border-color:#6a5a2a;background:#1a1815}.base-upgrade-prereq{font-size:11px;color:#b69060;font-style:italic;margin-top:2px}.base-upgrade-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.base-upgrade-name{font-family:var(--font-display);font-size:13px;letter-spacing:.5px;color:var(--text-primary)}.base-upgrade-description{font-size:12px;color:var(--text-secondary);line-height:1.4}.base-upgrade-stats{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--accent)}.base-upgrade-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-secondary)}.base-upgrade-cost{display:flex;gap:6px;align-items:center}.base-upgrade-cost-chip{display:inline-flex;align-items:center;gap:3px;color:var(--text-primary);font-weight:600}.base-upgrade-cost-chip img{width:14px;height:14px}.base-upgrade-time{font-family:var(--font-display);letter-spacing:.5px}.base-upgrade-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:6px;flex-shrink:0}.base-upgrade-action-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;white-space:nowrap}.base-upgrade-in-flight-badge{font-size:11px;color:var(--accent);font-style:italic}.base-promoter-cluster{border-top:1px dashed var(--bg-panel-border);margin-top:12px;padding-top:12px}.disband-modal{width:420px;max-width:92vw;background:var(--bg-panel);border:1px solid var(--bg-panel-border);box-shadow:0 8px 32px #0009}.retemplate-modal{width:460px}.retemplate-current,.retemplate-muted{font-size:14px;color:var(--text-secondary, #8888a0)}.retemplate-list{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow-y:auto}.retemplate-option{display:flex;align-items:center;gap:10px;padding:8px 10px;text-align:left;cursor:pointer;background:#ffffff08;border:1px solid var(--bg-panel-border);color:var(--text-primary);font-size:15px}.retemplate-option:hover{border-color:#d4a94080}.retemplate-option.selected{border-color:var(--accent, #d4a940);background:#d4a94014}.retemplate-option.blocked .retemplate-option-mp{color:#e88080}.retemplate-option img{width:26px;height:26px;object-fit:contain}.retemplate-option-name{flex:1}.retemplate-option-mp{font-size:13px;color:var(--text-secondary, #8888a0)}.retemplate-bill{display:flex;flex-direction:column;gap:10px}.retemplate-bill .tt-line{font-size:14px;color:var(--text-primary)}.retemplate-bill .tt-line.pos{color:#6fd28a}.retemplate-bill .tt-line.neg{color:#e88080}.retemplate-bill .tt-line img{width:20px;height:20px}.retemplate-bill-label{font-size:13px;color:var(--text-secondary, #8888a0);margin-bottom:2px}.disband-actions .btn-primary{background:#d4a94026;border:1px solid #d4a940;color:#f0d890;padding:6px 14px;cursor:pointer;font-family:var(--font-mono);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.disband-actions .btn-primary:hover:not(:disabled){background:#d4a94047}.disband-actions .btn-primary:disabled{opacity:.4;cursor:not-allowed}.disband-body{padding:16px 20px 18px;display:flex;flex-direction:column;gap:12px}.disband-name{font-family:var(--font-mono);font-size:14px;color:var(--text-primary);font-weight:600}.disband-explain{font-size:12px;color:var(--text-secondary);line-height:1.5}.disband-blocked{font-size:12px;color:#ff8585;background:#280e0e99;border:1px solid #ff6b6b;padding:8px 10px;line-height:1.4}.disband-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.disband-actions .btn-secondary{background:transparent;border:1px solid var(--bg-panel-border);color:var(--text-secondary);padding:6px 14px;cursor:pointer;font-family:var(--font-mono);font-size:12px}.disband-actions .btn-secondary:hover{color:var(--text-primary);border-color:var(--text-secondary)}.disband-actions .btn-danger{background:#6b1f1f;border:1px solid #ff6b6b;color:#ffdcdc;padding:6px 14px;cursor:pointer;font-family:var(--font-mono);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.disband-actions .btn-danger:hover{background:#8a2a2a}.disband-result-heading{font-family:var(--font-mono);font-size:13px;color:var(--text-primary);font-weight:600;text-transform:uppercase;letter-spacing:1px}.disband-result-list{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow-y:auto;padding-right:4px}.disband-result-row{display:flex;align-items:center;gap:8px;padding:4px 6px;background:#ffffff08}.disband-result-row img{width:22px;height:22px;object-fit:contain}.disband-result-label{flex:1;font-size:12px;color:var(--text-primary)}.disband-result-qty{font-family:var(--font-mono);font-size:12px;color:var(--accent);font-weight:600}.disband-result-empty{font-size:12px;color:var(--text-secondary);font-style:italic}.rd-disband-btn{background:#6b1f1f80;border-color:#ff6b6b;color:#ffdcdc}.rd-disband-btn:hover:not(:disabled){background:#8a2a2ab3}.rd-disband-btn:disabled{opacity:.4;cursor:not-allowed}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;z-index:10000;font-family:var(--font-mono, monospace)}.auth-panel{background:var(--bg-panel);border:1px solid var(--bg-panel-border);padding:36px 32px;width:380px;box-shadow:0 4px 24px #0009}.auth-title{margin:0 0 28px;font-size:28px;letter-spacing:6px;text-align:center;color:var(--accent);font-family:var(--font-mono, monospace);font-weight:700}.auth-tabs{display:flex;margin-bottom:22px;border-bottom:1px solid var(--bg-panel-border)}.auth-tab{flex:1;padding:10px 0;background:transparent;border:none;border-bottom:2px solid transparent;color:#888;font-size:13px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;font-family:var(--font-mono, monospace);transition:color .15s,border-color .15s}.auth-tab:hover{color:var(--text-primary)}.auth-tab-active{color:var(--accent);border-bottom-color:var(--accent)}.auth-label{display:block;font-size:11px;color:#888;letter-spacing:2px;text-transform:uppercase;margin:0 0 6px}.auth-input{width:100%;padding:9px 10px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--bg-panel-border);border-radius:0;font-size:14px;margin-bottom:16px;box-sizing:border-box;font-family:var(--font-mono, monospace);outline:none;transition:border-color .15s}.auth-input:focus{border-color:var(--accent)}.auth-input:disabled{opacity:.5}.auth-error{background:#ff6b6b1f;border:1px solid #ff6b6b;color:#ff9b9b;padding:8px 12px;margin:0 0 16px;font-size:12px}.auth-submit{width:100%;padding:12px;background:var(--accent);color:var(--bg-primary);border:none;font-family:var(--font-mono, monospace);font-size:14px;font-weight:700;letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:background .15s}.auth-submit:hover:not(:disabled){background:var(--accent-dim)}.auth-submit:disabled{opacity:.5;cursor:wait}.auth-hint{margin-top:16px;font-size:11px;color:#666;text-align:center;letter-spacing:1px}.btn-settings{background:transparent;border:1px solid var(--bg-panel-border);color:var(--text-primary);padding:6px 10px;font-size:16px;cursor:pointer;font-family:var(--font-mono, monospace);transition:border-color .15s,color .15s;pointer-events:auto}.btn-settings:hover{border-color:var(--accent);color:var(--accent)}.settings-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-panel);border:1px solid var(--bg-panel-border);min-width:180px;z-index:9999;box-shadow:0 4px 16px #0009;pointer-events:auto}.settings-dropdown-user{padding:10px 14px;border-bottom:1px solid var(--bg-panel-border);color:var(--accent);font-size:13px;letter-spacing:1px;font-family:var(--font-mono, monospace)}.settings-dropdown-user-label{display:block;font-size:10px;color:#777;letter-spacing:2px;text-transform:uppercase;margin-bottom:4px}.settings-dropdown-action{width:100%;text-align:left;background:transparent;border:none;color:var(--text-primary);padding:10px 14px;font-size:13px;letter-spacing:1px;font-family:var(--font-mono, monospace);cursor:pointer}.settings-dropdown-action:hover{background:#d4a9401a;color:var(--accent)}.start-panel h1{padding-left:16px}.lobby-screen{font-size:15px}.lobby-screen .lobby-section-title{font-size:16px;letter-spacing:1.5px;font-weight:600;color:var(--accent)}.lobby-screen .lobby-muted{font-size:14px;color:#999;letter-spacing:.5px}.lobby-screen .lobby-empty-state{font-size:15px;color:#666;text-align:center;padding:30px 0;font-style:italic}.lobby-ghost-btn{font-family:var(--font-mono, monospace);font-size:13px;background:transparent;border:1px solid #444;color:#aaa;padding:6px 14px;cursor:pointer;letter-spacing:1px;text-transform:uppercase;transition:all .18s ease}.lobby-ghost-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);box-shadow:0 0 12px #d4a94059}.lobby-ghost-btn:disabled{opacity:.4;cursor:not-allowed}.lobby-danger-btn{font-family:var(--font-mono, monospace);font-size:14px;background:transparent;border:1px solid #663030;color:#c97070;padding:10px 24px;cursor:pointer;letter-spacing:2px;text-transform:uppercase;transition:all .18s ease}.lobby-danger-btn:hover:not(:disabled){border-color:#e04040;color:#ff7070;box-shadow:0 0 14px #e0404066}.lobby-game-card{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:24px;padding:18px 20px;background:#1a1a1a;border:1px solid #333;transition:border-color .18s ease,box-shadow .18s ease}.lobby-game-card:hover{border-color:#555}.lobby-game-card .lobby-card-name{color:var(--accent);font-size:16px;letter-spacing:1px;margin-bottom:4px}.lobby-game-card .lobby-card-host{font-size:13px;color:#888;letter-spacing:.5px}.lobby-game-card .lobby-card-meta{text-align:right;font-family:var(--font-mono, monospace);font-size:15px;color:#ccc;letter-spacing:1px;white-space:nowrap}.lobby-game-card .lobby-card-meta-count{display:inline-block;margin-left:14px;color:var(--accent);font-weight:600}.lobby-game-card .lobby-card-meta-lock{display:inline-block;margin-left:10px;color:#999}.lobby-join-btn{font-family:var(--font-mono, monospace);font-size:14px;color:var(--bg-primary);background:var(--accent);border:none;padding:10px 24px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .18s ease;min-width:90px}.lobby-join-btn:hover:not(:disabled){background:var(--accent-dim);transform:scale(1.03)}.lobby-join-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.howto-floating-btn{position:fixed;bottom:24px;right:24px;z-index:210;font-size:13px;padding:10px 18px}.howto-modal{background:var(--bg-secondary, #161616);border:1px solid var(--accent);box-shadow:0 0 40px #d4a94040;width:min(800px,92vw);max-height:88vh;display:flex;flex-direction:column;font-family:var(--font-mono, monospace)}.howto-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 14px;border-bottom:1px solid #333;flex-shrink:0}.howto-header h2{margin:0;font-size:22px;letter-spacing:4px;color:var(--accent);text-transform:uppercase}.howto-body{padding:20px 28px 28px;overflow-y:auto;color:var(--text-primary, #e0e0e0);line-height:1.6;font-size:14px}.howto-body p{margin:0 0 14px}.howto-body p strong{color:var(--accent);font-weight:600}.howto-body h3{margin:24px 0 12px;font-size:18px;letter-spacing:3px;color:var(--accent);text-transform:uppercase;border-bottom:1px solid #2a2a2a;padding-bottom:6px}.howto-body h4{margin:20px 0 8px;font-size:15px;letter-spacing:2px;color:#ccc;text-transform:uppercase}.howto-body .howto-wip{color:#888;font-style:italic}.tutorial-prompt{background:var(--bg-secondary, #161616);border:1px solid var(--accent);box-shadow:0 0 40px #d4a9404d;width:min(440px,92vw);padding:28px 30px;font-family:var(--font-mono, monospace)}.tutorial-prompt h2{margin:0 0 14px;font-size:22px;letter-spacing:3px;color:var(--accent);text-transform:uppercase}.tutorial-prompt p{margin:0 0 22px;color:var(--text-primary, #e0e0e0);line-height:1.6;font-size:14px}.tutorial-prompt-actions{display:flex;gap:12px;justify-content:flex-end}.tutorial-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}.tutorial-highlight-box{position:fixed;border:4px solid #ff1a1a;border-radius:4px;background:#ff1a1a14;box-shadow:0 0 0 1px #0009,0 0 8px 1px #ff1a1a99;z-index:600;pointer-events:none;animation:tutorial-highlight-pulse 1.3s ease-in-out infinite;box-sizing:border-box}@keyframes tutorial-highlight-pulse{0%,to{border-color:#ff1a1a}50%{border-color:#ff6b6b}}[data-tour-active]{border:2px solid #ff1a1a!important;color:#ff3a3a!important;box-shadow:0 0 8px 1px #ff1a1a8c!important;box-sizing:border-box;animation:tutorial-button-pulse 1.3s ease-in-out infinite}[data-tour-active] *{color:#ff3a3a!important}@keyframes tutorial-button-pulse{0%,to{border-color:#ff1a1a;color:#ff3a3a}50%{border-color:#ff6b6b;color:#f88}}.tutorial-card{width:min(360px,90vw);background:var(--bg-secondary, #161616);border:1px solid var(--accent);box-shadow:0 0 30px #0009;padding:18px 20px 16px;font-family:var(--font-mono, monospace);pointer-events:auto;z-index:512}.tutorial-card-step{font-size:11px;letter-spacing:2px;color:#888;text-transform:uppercase;margin-bottom:6px}.tutorial-card h3{margin:0 0 10px;font-size:17px;letter-spacing:1px;color:var(--accent)}.tutorial-card p{margin:0 0 16px;color:var(--text-primary, #e0e0e0);line-height:1.55;font-size:13.5px}.tutorial-card-actions{display:flex;align-items:center;justify-content:space-between}.tutorial-nav{display:flex;gap:8px}.tutorial-skip{background:transparent;border:none;color:#888;font-family:var(--font-mono, monospace);font-size:12px;cursor:pointer;text-decoration:underline;padding:4px}.tutorial-skip:hover{color:#bbb}.app.tutorial-modal-step .modal-backdrop{background:transparent;pointer-events:none}.app.tutorial-modal-step .modal-backdrop>*{pointer-events:auto}.stockpile-modal{width:864px}.stockpile-modal .refinery-header{padding:17px 22px}.stockpile-modal .refinery-header h3{font-size:17px}.stockpile-modal .btn-close{font-size:19px}.stockpile-modal .prod-grid{padding:14px 22px;gap:12px}.stockpile-modal .prod-category-row{gap:22px}.stockpile-modal .prod-category-label{font-size:12px;margin-bottom:7px}.stockpile-modal .stockpile-items{gap:7px}.stockpile-modal .stockpile-item{width:64px;height:64px;padding:4px}.stockpile-modal .stockpile-count{font-size:13px;right:4px}.stockpile-modal .refinery-actions{padding:14px 22px;gap:10px}.stockpile-modal .btn-modal-cancel{font-size:14px;padding:7px 17px}.training-modal{width:1176px}.training-modal .refinery-header{padding:17px 22px}.training-modal .refinery-header h3{font-size:20px;letter-spacing:2.4px}.training-modal .btn-close{font-size:23px}.training-modal .prod-tabs{padding:0 22px}.training-modal .prod-tab{font-size:17px;letter-spacing:1.8px;padding:12px 19px}.training-modal .training-body{grid-template-columns:264px minmax(0,1fr) 264px;gap:14px;padding:17px 19px}.training-modal .training-section-label{font-size:16px;margin-bottom:7px}.training-modal .training-empty-stats{font-size:17px;padding:14px 5px}.training-modal .training-stats{font-size:17px}.training-modal .stat-row{padding:4px 0}.training-modal .stat-row-sep{margin:7px 0}.training-modal .stat-delta{font-size:16px;margin-left:5px}.training-modal .training-editor{gap:12px}.training-modal .training-editor-header{gap:14px}.training-modal .training-name-input{padding:7px 10px;font-size:17px}.training-modal .training-motorize{gap:7px;font-size:17px}.training-modal .training-icon-btn{width:43px;height:43px;padding:5px}.training-modal .training-grid{gap:12px}.training-modal .training-col{gap:5px}.training-modal .training-col-label{font-size:14px;margin-bottom:5px}.training-modal .training-slot{height:50px;font-size:16px;padding:5px 7px}.training-modal .training-slot.empty{font-size:23px}.training-modal .training-slot.filled{gap:10px;padding:0 10px}.training-modal .training-slot-icon{width:26px;height:26px}.training-modal .training-equipment{margin-top:5px}.training-modal .training-equipment-list{gap:7px;margin-top:5px}.training-modal .training-equipment-chip{font-size:14px;padding:2px 7px}.training-modal .training-actions{margin-top:5px;padding-top:12px}.training-modal .training-actions-left{gap:12px}.training-modal .training-actions-right{gap:7px}.training-modal .btn-template-delete{padding:7px 14px;font-size:16px}.training-modal .template-usage-counter{font-size:14px}.training-modal .btn-modal-cancel,.training-modal .btn-modal-save{font-size:17px;padding:7px 17px}.training-modal .training-slots-list{gap:5px}.training-modal .template-slot{gap:10px;padding:7px 10px;font-size:16px;min-height:41px}.training-modal .template-slot.empty{font-size:23px}.training-modal .template-icon-badge{width:26px;height:26px}.training-modal .template-icon-badge img{width:22px;height:22px}.training-modal .recruitment-tab-body{padding:19px 24px}.training-modal .recruit-cards{gap:12px}.training-modal .recruit-card{gap:19px;padding:12px 17px}.training-modal .recruit-card-title{font-size:19px}.training-modal .recruit-card-body>.base-action,.training-modal .recruit-card-body>.rd-cancel-btn,.training-modal .recruit-btn-compact{min-width:108px}.training-modal .base-action{font-size:17px;padding:10px 12px}.training-modal .rd-cancel-btn{font-size:16px;padding:4px 10px}.training-modal .recruit-card-inflight{gap:14px}.training-modal .recruit-card-inflight-label{font-size:17px}.training-modal .recruit-card-inflight-meta{font-size:16px}.training-modal .recruit-empty{font-size:17px;padding:7px 0}.training-modal .recruit-template-row{gap:10px;padding:7px 10px;font-size:17px}.training-modal .recruit-card-picker-floating{min-width:288px;max-width:384px;max-height:384px;padding:5px}.training-modal .company-picker-modal{width:980px}.training-modal .company-picker-grid{gap:17px;padding:17px 19px}.training-modal .company-picker-group-label{font-size:16px;margin-bottom:7px}.training-modal .company-picker-items{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.training-modal .company-pick-card{padding:12px 58px 12px 12px}.training-modal .company-pick-label{font-size:17px;margin-bottom:5px}.training-modal .company-pick-meta{gap:12px;font-size:14px}.training-modal .company-pick-icon{width:40px;height:40px;right:10px}.training-modal .icon-picker-modal{width:624px}.training-modal .icon-picker-grid{gap:12px;padding:19px;scrollbar-width:none}.training-modal .icon-picker-grid::-webkit-scrollbar{display:none}.training-modal .icon-pick-card{gap:7px;padding:14px}.training-modal .icon-pick-card img{width:77px;height:77px}.training-modal .icon-pick-label{font-size:16px}.building-picker-modal{width:420px;padding:14px 17px;scrollbar-width:none}.building-picker-modal::-webkit-scrollbar{display:none}.building-picker-modal .refinery-header{padding:17px 22px}.building-picker-modal .refinery-header h3{font-size:17px}.building-picker-modal .btn-close{font-size:19px}.building-picker-grid{gap:7px;margin-top:12px}.building-card{gap:12px;padding:10px 12px}.building-card-icon{width:43px;height:43px}.building-card-text{gap:4px}.building-card-label{font-size:16px}.building-card-turns{align-self:flex-start;font-size:12px;padding:1px 6px}.building-card-meta{flex-wrap:nowrap;justify-content:flex-end;margin-left:auto;gap:12px}.building-card-cost-chip{gap:4px;font-size:16px}.building-card-cost-chip img{width:18px;height:18px}.research-modal.research-tree-modal{width:864px}.research-tree-modal .refinery-header{padding:17px 22px}.research-tree-modal .refinery-header h3{font-size:17px}.research-tree-modal .btn-close{font-size:19px}.research-tree-modal .research-rp-header{gap:5px;font-size:16px;margin-right:14px}.research-tree-modal .research-rp-header img{width:26px;height:26px}.research-tree-modal .research-error{padding:10px 22px;font-size:14px}.research-tree-modal .research-levels{padding:14px 22px;gap:12px}.research-tree-modal .research-level{padding:14px 17px}.research-tree-modal .research-level-header{gap:14px}.research-tree-modal .research-level-title{font-size:17px;letter-spacing:1.8px;gap:12px}.research-tree-modal .research-badge-unlocked{font-size:12px;padding:2px 7px}.research-tree-modal .research-level-equipment{gap:6px}.research-tree-modal .research-equipment-icon{width:36px;height:36px}.research-tree-modal .research-subtechs-btn{gap:10px}.research-tree-modal .research-subtechs-btn-count{font-size:13px;padding:1px 7px}.research-tree-modal .btn-modal-save,.research-tree-modal .btn-modal-cancel{font-size:14px;padding:7px 17px}.research-tree-modal .btn-modal-save{min-width:156px}.research-tree-modal .rp-cost-icon{width:20px;height:20px}.research-tree-modal .refinery-actions{padding:14px 22px;gap:10px}.subtech-modal{width:900px}.subtech-modal .refinery-header{padding:18px 23px}.subtech-modal .refinery-header h3{font-size:18px}.subtech-modal .btn-close{font-size:20px}.subtech-modal .research-rp-header{gap:5px;font-size:16px;margin-right:15px}.subtech-modal .research-rp-header img{width:28px;height:28px}.subtech-modal .research-error{padding:10px 23px;font-size:15px}.subtech-modal .subtech-modal-body{padding:20px}.subtech-modal .research-subtech-cluster{gap:10px;margin-bottom:10px}.subtech-modal .research-subtech{gap:15px;padding:13px 15px}.subtech-modal .research-subtech-body{gap:5px}.subtech-modal .research-subtech-name{font-size:15px;letter-spacing:1.25px}.subtech-modal .research-subtech-desc{font-size:16px;color:#c4c6d0}.subtech-modal .research-badge-chosen,.subtech-modal .research-badge-blocked{font-size:12px;padding:4px 10px}.subtech-modal .research-subtech-or{font-size:14px;padding:0 5px}.subtech-modal .research-equipment-icon{width:38px;height:38px}.subtech-modal .btn-modal-save,.subtech-modal .btn-modal-cancel{font-size:15px;padding:8px 18px}.subtech-modal .btn-modal-save{min-width:163px}.subtech-modal .rp-cost-icon{width:21px;height:21px}.subtech-modal .refinery-actions{padding:15px 23px;gap:10px}.research-modal.base-modal{width:792px}.base-modal .refinery-header{padding:15px 20px}.base-modal .refinery-header h3{font-size:17px}.base-modal .base-modal-hp{max-width:320px;margin:0 0 0 18px}.base-stat-row{display:flex;align-items:center;gap:14px;margin-top:7px;font-family:var(--font-mono);font-size:14px;color:var(--text-primary)}.base-stat-row>span[data-tip]{cursor:help}.base-buffs-chip{margin-left:auto;padding:2px 10px;cursor:help;font-size:13px;letter-spacing:1px;border:1px solid var(--accent-dim, var(--bg-panel-border));color:var(--accent);background:#d4a94014}.base-buff-line{color:var(--text-primary)}.base-buff-line:before{content:"•";color:var(--accent);margin-right:6px}.base-action-hover{display:block}.build-base-card{font-size:14px}.equipment-tooltip.cmd-tooltip:has(.build-base-card){max-width:560px}.build-base-stats{display:flex;gap:16px;color:var(--text-primary);font-size:15px}.build-base-cost{display:flex;align-items:center;gap:14px;white-space:nowrap;color:var(--text-secondary)}.build-base-chip{display:inline-flex;align-items:center;gap:5px;color:var(--text-primary)}.build-base-chip img{width:18px;height:18px;object-fit:contain}.build-base-note{font-size:12px;color:var(--text-muted)}.base-modal .base-hp-bar{height:24px;margin-top:0}.base-modal .base-hp-bar-label{font-size:14px;letter-spacing:1px;text-align:center}.base-modal .research-error{padding:9px 20px;font-size:14px}.base-modal .base-in-flight-banner{gap:13px;margin:9px 13px;padding:9px 13px;font-size:15px}.base-modal .base-in-flight-label{font-size:13px}.base-modal .research-levels{padding:13px 20px;gap:11px}.base-modal .research-level{padding:13px 15px}.base-modal .research-level-title{font-size:17px;gap:11px}.base-modal .base-spec-banner{gap:7px;margin:0 0 13px;padding:9px 13px;font-size:16px}.base-modal .base-spec-banner-desc{font-size:15px}.base-modal .research-subtechs{margin-top:13px}.base-modal .research-subtech-cluster{gap:9px;margin-bottom:9px}.base-modal .research-subtech-or{font-size:13px}.base-modal .base-promoter-cluster{margin-top:13px;padding-top:13px}.base-modal .base-upgrade-card{padding:9px 11px;gap:14px;min-width:352px}.base-modal .base-upgrade-body,.base-modal .base-upgrade-meta-col{gap:6px}.base-modal .base-upgrade-name{font-size:16px}.base-modal .base-upgrade-description{font-size:15px}.base-modal .base-upgrade-prereq{font-size:13px}.base-modal .base-upgrade-meta-col{font-size:15px}.base-modal .base-upgrade-cost{gap:8px}.base-modal .base-upgrade-cost-chip{gap:4px}.base-modal .base-upgrade-cost-chip img{width:18px;height:18px}.base-modal .base-upgrade-action-meta{gap:9px}.base-modal .base-upgrade-in-flight-badge{font-size:13px}.base-modal .research-badge-chosen,.base-modal .research-badge-blocked{font-size:12px;padding:3px 9px}.base-modal .btn-modal-save{min-width:114px;font-size:14px;padding:7px 12px}.base-modal .btn-modal-cancel{font-size:14px;padding:7px 15px}.base-modal .refinery-actions{padding:13px 20px;gap:9px}.companies-page{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;padding:28px 32px 48px;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-display)}.companies-header h1{font-family:var(--font-mono);font-size:22px;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin:0 0 6px}.companies-header p{margin:0 0 20px;color:var(--text-secondary);font-size:15px}.companies-status{font-family:var(--font-mono);color:var(--text-secondary)}.companies-status-error{color:#ff6b6b}.companies-group{margin-bottom:32px}.companies-group-title{font-family:var(--font-mono);font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin:0 0 10px}.companies-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}@media (max-width: 1500px){.companies-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 1200px){.companies-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 860px){.companies-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.company-card{display:flex;flex-direction:column;gap:10px;padding:12px 14px;background:var(--bg-panel);border:1px solid var(--bg-panel-border);min-width:0}.company-card-header{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--bg-panel-border)}.company-card-icon{width:32px;height:32px;object-fit:contain;flex-shrink:0}.company-card-title{display:flex;flex-direction:column;gap:2px;min-width:0}.company-card-name{font-family:var(--font-mono);font-size:15px;color:var(--text-primary)}.company-card-type{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.company-card-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.company-card-stat{display:flex;justify-content:space-between;align-items:baseline;gap:6px;min-width:0}.company-card-stat:nth-child(5){grid-column:1 / -1;justify-content:flex-start;gap:10px}.company-card-stat-label{font-size:13px;color:var(--text-secondary);white-space:nowrap}.company-card-stat-value{font-family:var(--font-mono);font-size:15px;color:var(--text-primary)}.company-card-section{display:flex;flex-direction:column;gap:5px;padding-top:8px;border-top:1px solid var(--bg-panel-border)}.company-card-section-label{font-family:var(--font-mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-secondary)}.company-card-chips{display:flex;flex-wrap:wrap;gap:8px 10px}.company-card-chip{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:14px;color:var(--text-primary)}.company-card-chip img{width:18px;height:18px;object-fit:contain}.company-card-chip-muted{color:var(--text-muted)}.btn-equipment-log{bottom:62px;background:#0f1a0f;border-color:#3ab050;color:#d8f0d8}.btn-equipment-log:hover{background:#142614;border-color:#5ad070;color:#fff}.equipment-log-modal{width:640px}.equipment-log-turn{padding:10px 12px;margin-bottom:8px;background:#1c1c1f;border:1px solid #3a3a3f}.equipment-log-turn-label{font-family:var(--font-mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.equipment-log-row{display:flex;align-items:flex-start;gap:10px;padding:4px 0}.equipment-log-row+.equipment-log-row{border-top:1px solid rgba(255,255,255,.05)}.equipment-log-sign{font-family:var(--font-mono);font-size:18px;line-height:24px;width:16px;text-align:center;flex-shrink:0}.equipment-log-row.gained .equipment-log-sign,.equipment-log-row.gained .equipment-log-chip{color:#6cd07f}.equipment-log-row.spent .equipment-log-sign,.equipment-log-row.spent .equipment-log-chip{color:#ff6b6b}.equipment-log-chips{display:flex;flex-wrap:wrap;gap:6px 14px}.equipment-log-chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:15px;line-height:24px}.equipment-log-chip img{width:24px;height:24px;object-fit:contain}.battle-detail-modal{width:1176px;max-width:96vw}.battle-detail-modal .refinery-header{padding:17px 22px}.battle-detail-modal .refinery-header h3{font-size:19px}.battle-detail-modal .btn-close{font-size:22px}.battle-detail-modal .battle-detail-body{padding:19px}.battle-detail-modal .battle-side{padding:14px}.battle-detail-modal .battle-modifier-badges{gap:10px}.battle-detail-modal .battle-modifier-badge{padding:4px 7px}.battle-detail-modal .battle-modifier-icon{width:29px;height:29px}.battle-detail-modal .battle-modifier-chevrons{width:14px;height:29px}.battle-detail-modal .battle-modifier-chevron{width:14px;height:10px;margin-top:-4px}.battle-detail-modal .battle-modifier-chevron:first-child{margin-top:0}.battle-detail-modal .battle-side-width-flank{margin-left:5px}.battle-detail-modal .battle-regiment-row{padding:10px 12px;margin-bottom:6px;font-size:17px;gap:12px}.battle-detail-modal .battle-regiment-icon{width:34px;height:34px}.battle-detail-modal .battle-regiment-name{margin-bottom:3px}.battle-detail-modal .battle-regiment-stats{font-size:15px;gap:12px}.battle-detail-modal .battle-empty,.battle-detail-modal .battle-hidden-count{font-size:15px}.battle-detail-modal .base-icon{width:43px;height:43px}.battle-detail-modal .base-tier{font-size:17px}.battle-detail-modal .base-hp-bar{height:17px}.battle-detail-modal .base-hp-bar-label{font-size:13px}.battle-detail-modal .battle-terrain{padding:22px 7px;gap:12px}.battle-detail-modal .battle-terrain-value{font-size:21px}.battle-detail-modal .battle-terrain-hex{width:77px;height:77px}.battle-detail-modal .battle-terrain-effects{font-size:15px}.battle-detail-modal .battle-weather{gap:5px;margin-top:7px;padding-top:10px}.battle-detail-modal .battle-weather-icon{width:38px;height:38px}.battle-detail-modal .battle-weather-label{font-size:15px}.battle-detail-modal .refinery-actions{padding:14px 22px;gap:10px}.battle-detail-modal .btn-modal-cancel,.battle-detail-modal .btn-modal-save{font-size:15px;padding:8px 17px}.battle-detail-modal{max-height:94vh}.battle-detail-modal .battle-detail-body{scrollbar-width:none}.battle-detail-modal .battle-detail-body::-webkit-scrollbar{display:none}.battle-detail-modal .battle-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 200px minmax(0,1fr);column-gap:17px;row-gap:12px;align-items:start}.battle-detail-modal .battle-side-header.left{grid-area:1 / 1}.battle-detail-modal .battle-side-header.right{grid-area:1 / 3;flex-direction:row-reverse}.battle-detail-modal .battle-side-header.right .battle-side-who{align-items:flex-end}.battle-detail-modal .battle-air.left,.battle-detail-modal .battle-ground.left{grid-area:2 / 1}.battle-detail-modal .battle-air.right,.battle-detail-modal .battle-ground.right{grid-area:2 / 3}.battle-detail-modal .battle-detail-grid.with-air .battle-ground.left{grid-area:3 / 1}.battle-detail-modal .battle-detail-grid.with-air .battle-ground.right{grid-area:3 / 3}.battle-detail-modal .battle-center{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:12px}.battle-detail-modal .battle-center.with-air{grid-row:2 / span 2}.battle-detail-modal .battle-side-header{display:flex;align-items:center;gap:12px;min-height:37px;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase}.battle-detail-modal .battle-side-who{display:flex;flex-direction:column;gap:2px}.battle-detail-modal .battle-side-name{font-size:17px;font-weight:700;line-height:1.1}.battle-detail-modal .battle-side-role{font-size:12px;color:#8888a0;line-height:1.1}.battle-detail-modal .battle-panel-totals{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px;font-size:15px;color:#a8a8a8;font-variant-numeric:tabular-nums;padding-bottom:8px;margin-bottom:6px;border-bottom:1px solid #2a2b2f}.battle-detail-modal .battle-panel-totals b,.battle-detail-modal .battle-air-ground b,.battle-detail-modal .battle-base-stats b{color:#e8e8e8;font-weight:700}.battle-detail-modal .battle-panel-totals b.neg{color:#ff8a7a}.battle-detail-modal .battle-panel-title{font-family:var(--font-display);color:var(--accent);letter-spacing:.08em;text-transform:uppercase}.battle-detail-modal .battle-side-width-flank{margin-left:2px}.battle-detail-modal .battle-grid-row{display:grid;align-items:center;column-gap:10px}.battle-detail-modal .battle-ground-row{grid-template-columns:34px minmax(0,1fr) repeat(4,44px)}.battle-detail-modal .battle-air-row{grid-template-columns:34px minmax(0,1fr) 66px repeat(3,36px)}.battle-detail-modal .battle-grid-head{font-size:12px;color:#8888a0;text-transform:uppercase;letter-spacing:.04em;padding:0 12px 4px}.battle-detail-modal .battle-grid-head span:nth-child(n+3){text-align:right}.battle-detail-modal .battle-air-row:not(.battle-grid-head){background:#1f2025;padding:8px 12px;border-radius:3px;margin-bottom:5px;font-size:15px;color:#ddd}.battle-detail-modal .battle-regiment-row.battle-grid-row{gap:0 10px}.battle-detail-modal .battle-air-icon{width:34px;height:14px;object-fit:contain}.battle-detail-modal .battle-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battle-detail-modal .battle-num{text-align:right;font-size:15px;color:#e8e8e8;font-variant-numeric:tabular-nums;white-space:nowrap}.battle-detail-modal .battle-num.stat{color:#a8a8a8}.battle-detail-modal .battle-num.neg{color:#ff8a7a}.battle-detail-modal .battle-list{overflow-y:auto;scrollbar-width:none}.battle-detail-modal .battle-list::-webkit-scrollbar{display:none}.battle-detail-modal .battle-air-list{max-height:min(168px,18vh)}.battle-detail-modal .battle-ground-list{max-height:min(330px,30vh)}.battle-detail-modal .battle-air-ground{display:flex;align-items:center;gap:6px;font-size:14px;color:#a8a8a8;margin-top:4px;cursor:help}.battle-detail-modal .battle-air-ground b{margin-left:-2px}.battle-detail-modal .battle-aa-icon{width:20px;height:20px;flex:none;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.battle-detail-modal .battle-reserves{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:30px;margin-top:6px;padding-top:8px;border-top:1px solid #2a2b2f}.battle-detail-modal .battle-reserves-label{font-size:12px;color:#8888a0;text-transform:uppercase;letter-spacing:.04em;margin-right:4px}.battle-detail-modal .battle-reserve-icon{width:26px;height:26px;cursor:help}.battle-detail-modal .battle-terrain{padding:14px 10px}.battle-detail-modal .battle-terrain .battle-weather{width:100%;margin-top:0;padding:0 0 10px;border-top:0;border-bottom:1px solid #2a2b2f}.battle-detail-modal .battle-base{display:flex;flex-direction:column;align-items:center;gap:8px}.battle-detail-modal .battle-base-title{font-family:var(--font-display);font-size:15px;letter-spacing:.08em;text-transform:uppercase}.battle-detail-modal .battle-base .base-hp-bar{margin-top:0}.battle-detail-modal .battle-base-stats{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;width:100%;font-size:15px;color:#a8a8a8;font-variant-numeric:tabular-nums}.battle-detail-modal .battle-base-stats span{display:flex;justify-content:space-between;cursor:help}.building-card-wrap{display:block}.building-card-wrap>.building-card{width:100%}.building-tooltip{max-width:300px}.building-tooltip-desc{margin-top:6px;font-family:var(--font-display);font-size:14px;line-height:1.4;color:var(--text-primary)}.building-tooltip-blocker{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#f88}.research-level-hover{display:flex;align-items:center;gap:12px;flex:1;min-width:0;cursor:help}.research-level-hover .research-level-equipment{flex:1}.research-subtechs-btn.preview{background:transparent;color:var(--accent);border-color:var(--accent-dim)}.research-subtechs-btn.preview:hover{background:#d4a9401f}.research-subtechs-btn.preview .research-subtechs-btn-count{background:#d4a94026;color:var(--accent)}.research-level-tooltip{max-width:320px}.research-level-tooltip-text{margin-top:6px;font-family:var(--font-display);font-size:14px;color:var(--text-primary)}.research-level-tooltip-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-family:var(--font-display);font-size:14px;color:var(--text-primary)}.research-level-tooltip-list li{display:flex;align-items:center;gap:8px}.research-level-tooltip-list img{width:22px;height:22px;object-fit:contain}.overflow-modal{width:576px;padding:19px 24px}.overflow-modal .refinery-header{padding:17px 22px}.overflow-modal .refinery-header h3{font-size:17px}.overflow-modal .overflow-explanation{font-size:16px;margin-bottom:12px}.overflow-modal .overflow-section{padding-top:12px;margin-top:12px}.overflow-modal .overflow-section-header{font-size:15px;margin-bottom:10px}.overflow-modal .overflow-section-total{font-size:15px;padding:3px 8px}.overflow-modal .overflow-row{grid-template-columns:29px 132px 1fr 84px;gap:10px;padding:5px 0}.overflow-modal .overflow-row-icon{width:24px;height:24px}.overflow-modal .overflow-row-label{font-size:16px}.overflow-modal .overflow-row-value{font-size:15px}.overflow-modal .refinery-actions{padding:14px 22px}.overflow-modal .btn-modal-save{font-size:15px;padding:8px 17px}.btn-build-log{bottom:108px;background:#1a160a;border-color:var(--accent);color:#f0e6c8}.btn-build-log:hover{background:#262010;border-color:#f0c860;color:#fff}.build-log-list{display:flex;flex-direction:column;gap:4px}.build-log-row{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;background:#ffffff08;border:1px solid transparent;color:var(--text-primary);font-family:var(--font-display);font-size:15px;text-align:left;cursor:pointer}.build-log-row:hover{border-color:var(--accent);background:#d4a94014}.build-log-icon{width:26px;height:26px;object-fit:contain;flex-shrink:0}.build-log-text{flex:1;min-width:0}.build-log-region{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);white-space:nowrap}.macros-modal .refinery-actions{flex-shrink:0}.bases-card-header{justify-content:center;align-items:center;gap:12px}.bases-card-stars{font-size:18px;color:var(--accent);letter-spacing:2px;flex-shrink:0;line-height:1}.recruit-card-header .bases-card-stars{margin-right:10px}.bases-card-meta{font-family:var(--font-mono);font-size:15px;color:var(--text-secondary);white-space:nowrap}.bases-card-meta:before{content:"·";margin-right:12px;color:var(--text-muted)}.bases-card-body{justify-content:center}.recruit-card-body>.bases-card-btn{width:auto;min-width:260px;flex:0 0 auto;white-space:nowrap}.bases-card-btn.in-progress{color:var(--accent);border-color:var(--accent-dim)}.ai-debug-panel{pointer-events:auto;position:fixed;top:70px;right:12px;z-index:9999;width:300px;max-height:80vh;overflow-y:auto;background:#14100cf0;border:1px solid #a33;border-radius:8px;padding:10px 12px;font:12px/1.4 monospace;color:#eee;box-shadow:0 4px 16px #00000080}.ai-debug-panel-head{display:flex;justify-content:space-between;align-items:center}.ai-debug-panel-title{color:#f55;font-weight:700}.ai-debug-mini-btn{background:none;border:1px solid #555;color:#ccc;border-radius:4px;cursor:pointer;font-size:11px;padding:1px 6px}.ai-debug-panel-stats{margin-top:4px}.ai-debug-open-btn{margin-top:6px;width:100%;background:#4a2;border:none;color:#fff;border-radius:4px;padding:6px 0;cursor:pointer;font-size:13px;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:2px}.ai-debug-open-btn:hover{background:#5b3}.ai-debug-open-sub{font-size:11px;font-weight:400;opacity:.85}.ai-debug-panel-h{color:#f88;font-weight:700;margin:8px 0 2px}.ai-debug-panel-line{padding:1px 0}.ai-debug-muted{color:#888}.ai-log-backdrop{position:fixed;z-index:10000}.ai-log-modal{z-index:10001;width:1180px;max-width:96vw;max-height:90vh;height:90vh}.ai-log-toolbar{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;padding:10px 16px 6px;border-bottom:1px solid var(--bg-panel-border)}.ai-log-toolbar-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ai-log-tool-btn{background:#1c1c1f;border:1px solid #3a3a3f;color:#ddd;border-radius:4px;padding:4px 10px;font-family:var(--font-mono);font-size:12px;cursor:pointer}.ai-log-tool-btn:hover{border-color:var(--accent);color:#fff}.ai-log-check{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);cursor:pointer}.ai-log-search{background:#101014;border:1px solid #3a3a3f;color:#eee;border-radius:4px;padding:4px 8px;font-family:var(--font-mono);font-size:12px;width:240px}.ai-log-chip{background:#1c1c1f;border:1px solid #3a3a3f;color:#777;border-radius:10px;padding:2px 9px;font-family:var(--font-mono);font-size:11px;letter-spacing:.5px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.ai-log-chip.on{color:#eee;border-color:#666}.ai-log-chip-action.on{color:#6cd07f;border-color:#6cd07f}.ai-log-chip-skip.on{color:var(--accent);border-color:var(--accent)}.ai-log-chip-info.on{color:#8fa8c8;border-color:#8fa8c8}.ai-log-chip-error.on{color:#ff6b6b;border-color:#ff6b6b}.ai-log-chip-step.on{color:#ddd;border-color:#888;background:#26262b}.ai-log-chip-n{background:#333;color:#ccc;border-radius:8px;padding:0 5px;font-size:10px}.ai-log-steps{display:flex;flex-wrap:wrap;gap:5px;padding:6px 16px 8px;border-bottom:1px solid var(--bg-panel-border)}.ai-log-body{display:flex;flex:1;min-height:0}.ai-log-turns{width:170px;flex-shrink:0;overflow-y:auto;border-right:1px solid var(--bg-panel-border);padding:8px;display:flex;flex-direction:column;gap:3px}.ai-log-turn{background:#1c1c1f;border:1px solid #2a2a2f;color:#bbb;text-align:left;padding:5px 8px;border-radius:4px;cursor:pointer;font-family:var(--font-mono);font-size:12px;display:flex;justify-content:space-between;align-items:center}.ai-log-turn:hover{border-color:#555;color:#eee}.ai-log-turn.on{border-color:var(--accent);color:#fff;background:#26221a}.ai-log-turn-counts{font-size:11px;color:#777}.ai-log-c-action{color:#6cd07f}.ai-log-c-skip{color:var(--accent)}.ai-log-c-error{color:#ff6b6b;font-weight:700}.ai-log-turns-foot{margin-top:6px;font-family:var(--font-mono);font-size:10px;color:#666;text-align:center}.ai-log-entries{flex:1;min-width:0;overflow-y:auto;padding:10px 16px 16px}.ai-log-turn-head{font-family:var(--font-mono);font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.ai-log-empty{color:#888;font-family:var(--font-mono);font-size:13px;padding:12px 4px}.ai-log-entry{padding:6px 10px;margin-bottom:4px;background:#1c1c1f;border:1px solid #2a2a2f;border-left-width:4px;border-radius:3px}.ai-log-entry-action{border-left-color:#6cd07f}.ai-log-entry-skip{border-left-color:var(--accent)}.ai-log-entry-info{border-left-color:#4a5a70}.ai-log-entry-error{border-left-color:#ff6b6b;background:#2a1a1a}.ai-log-entry-row{display:flex;align-items:baseline;gap:8px}.ai-log-kind{font-family:var(--font-mono);font-size:10px;letter-spacing:1px;width:52px;flex-shrink:0;font-weight:700}.ai-log-kind-action{color:#6cd07f}.ai-log-kind-skip{color:var(--accent)}.ai-log-kind-info{color:#8fa8c8}.ai-log-kind-error{color:#ff6b6b}.ai-log-step{font-family:var(--font-mono);font-size:11px;color:#999;background:#26262b;border-radius:3px;padding:0 6px;flex-shrink:0}.ai-log-msg{font-size:14px;color:#eee;line-height:20px}.ai-log-why{margin:4px 0 0 60px;font-size:13px;line-height:18px;color:var(--text-secondary)}.ai-log-data{margin:4px 0 0 60px;font-family:var(--font-mono);font-size:11px}.ai-log-data summary{cursor:pointer;color:#777}.ai-log-data summary:hover{color:#bbb}.ai-log-data pre{margin:4px 0 0;padding:6px 8px;background:#101014;border:1px solid #2a2a2f;border-radius:3px;color:#cfcfd6;font-size:11px;line-height:15px;white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}.tr-page{max-width:1400px}.tr-list{display:flex;flex-direction:column;gap:6px}.tr-open-row{display:flex;gap:8px;margin-bottom:10px}.tr-id-input{width:420px}.tr-row{display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;background:#1c1c1f;border:1px solid #3a3a3f;border-radius:4px;padding:10px 14px;color:#ddd;cursor:pointer}.tr-row:hover{border-color:var(--accent)}.tr-row-locked{opacity:.6}.tr-row-main{display:flex;flex-direction:column;gap:3px;min-width:0}.tr-row-side{display:flex;flex-direction:column;gap:3px;align-items:flex-end;flex-shrink:0}.tr-row-name{font-size:16px;font-weight:600;color:#fff}.tr-row-meta{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary)}.tr-row-id{font-family:var(--font-mono);font-size:10px;color:#666}.tr-status{font-family:var(--font-mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#999}.tr-status-active{color:#6cd07f}.tr-status-ended{color:var(--accent)}.tr-status-deleted{color:#ff6b6b}.tr-game{display:flex;flex-direction:column;gap:10px}.tr-game-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.tr-game-title{display:flex;flex-direction:column;gap:3px;flex:1;min-width:240px}.tr-link-btn{text-decoration:none;display:inline-block;line-height:16px}.tr-danger{color:#ff6b6b}.tr-danger:hover{border-color:#ff6b6b}.tr-section-toggle{background:none;border:none;color:var(--accent);font-family:var(--font-mono);font-size:12px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;padding:4px 0}.tr-table-wrap{overflow-x:auto;max-height:320px;overflow-y:auto;border:1px solid #2a2a2f}.tr-table{border-collapse:collapse;font-family:var(--font-mono);font-size:12px;width:100%}.tr-table th,.tr-table td{padding:3px 8px;border-bottom:1px solid #222;text-align:right;white-space:nowrap}.tr-table th{background:#1c1c1f;color:#bbb;position:sticky;top:0}.tr-table thead tr:nth-child(2) th{top:22px;font-weight:400;color:#888}.tr-table td:first-child,.tr-table th:first-child{text-align:left;color:var(--accent)}.tr-table tbody tr{cursor:pointer}.tr-table tbody tr:hover{background:#222226}.tr-table tbody tr.on{background:#26221a}.tr-muted{color:#555;text-align:center}.tr-toolbar{border-top:1px solid var(--bg-panel-border);padding-left:0;padding-right:0}.tr-body{height:70vh;border:1px solid var(--bg-panel-border);background:var(--bg-panel)}.tr-turn-divider{font-family:var(--font-mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin:12px 0 6px;border-bottom:1px solid #2a2a2f}.tr-actor{font-family:var(--font-mono);font-size:11px;width:92px;flex-shrink:0;color:#8fa8c8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tr-entry .ai-log-why,.tr-entry .ai-log-data{margin-left:100px}.tr-entry-actions{border-left-color:#8fa8c8}.tr-entry-ai{border-left-color:#b48ead}.tr-entry-summary{border-left-color:#4a5a70}.tr-entry-battles{border-left-color:#ff6b6b}.tr-entry-territory{border-left-color:var(--accent)}.tr-entry-regiments{border-left-color:#6cd07f}.tr-entry-buildings{border-left-color:#d0a86c}.tr-entry-game{border-left-color:#666}.control-warning{margin:6px 0 8px;border-radius:4px;border-bottom:none;line-height:1.35}.building-picker-modal .control-warning,.building-picker-modal .research-error{margin:0 0 10px;padding:8px 12px;border-radius:4px;border-bottom:none}.base-action.disabled{opacity:.45;cursor:not-allowed}.log-dock{position:fixed;right:16px;bottom:16px;z-index:50;display:flex;align-items:flex-end;gap:10px;pointer-events:none}.log-dock-panels{display:flex;flex-direction:column;gap:8px;width:360px}.log-strip{display:flex;flex-direction:column;gap:6px;pointer-events:auto}.log-strip-btn{width:40px;height:40px;box-sizing:border-box;border-radius:6px;border:1px solid #444;background:#0c0c10;color:#55556a;font-size:18px;line-height:1;cursor:pointer;opacity:.55;transition:background .12s,border-color .12s,opacity .12s;display:flex;align-items:center;justify-content:center;padding:0}.log-strip-icon{width:28px;height:28px;object-fit:contain;pointer-events:none}.log-icon-tint{display:inline-block;isolation:isolate;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.log-icon-tint img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.log-icon-build{background-color:var(--accent)}.log-icon-equipment{background-color:#3ab050}.log-strip-btn:hover{opacity:.85}.log-strip-btn.active:hover{opacity:1;filter:brightness(1.15)}.log-strip-battle.active{background:#2a0808;border-color:#ff5050;color:#ffd0d0;opacity:1}.log-strip-build.active{background:#1a160a;border-color:var(--accent);color:#f0e6c8;opacity:1}.log-strip-equipment.active{background:#0f1a0f;border-color:#3ab050;color:#d8f0d8;opacity:1}.log-panel{pointer-events:auto;background:var(--panel, #1a1a1f);border:1px solid var(--border, #333);border-radius:6px;padding:8px 10px;cursor:pointer;box-shadow:0 4px 16px #00000073}.log-panel:hover{border-color:#666}.log-panel-battle{border-left:3px solid #ff5050}.log-panel-build{border-left:3px solid var(--accent)}.log-panel-equipment{border-left:3px solid #3ab050}.log-panel-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.log-panel-icon{width:18px;height:18px;object-fit:contain;flex:none}.log-panel-title{font-family:var(--font-mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-primary)}.log-panel-sub{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--text-secondary, #8888a0);white-space:nowrap}.log-panel-min{width:22px;height:22px;padding:0;border-radius:4px;border:1px solid #444;background:#101014;color:#bbb;font-size:16px;line-height:1;cursor:pointer}.log-panel-min:hover{background:#26262e;color:#fff}.log-panel-body{max-height:190px;overflow-y:auto;scrollbar-width:thin}.log-panel-empty{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary, #8888a0);padding:2px 0 4px}.log-panel-turn{font-family:var(--font-mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin:4px 0}.log-build-turn+.log-build-turn{margin-top:4px}.log-panel .log-build-row{font-size:13px;padding:5px 8px;margin-bottom:4px}.log-panel .log-build-row .build-log-icon{width:22px;height:22px}.log-panel .log-build-row .build-log-region{font-size:11px}.log-equipment-chips{display:flex;flex-wrap:wrap;gap:6px 12px;padding:2px 0 4px}.log-delta-chip{font-size:14px;line-height:22px}.log-delta-chip img{width:20px;height:20px;object-fit:contain}.log-delta-chip.pos{color:#6fd28a}.log-delta-chip.neg{color:#e88080}.log-delta-id{font-size:11px;color:var(--text-secondary, #8888a0)}.log-battle-counts{display:flex;gap:14px;font-family:var(--font-mono);font-size:13px;margin-bottom:6px}.log-battle-counts .won{color:#6fd28a}.log-battle-counts .lost{color:#e88080}.log-battle-counts .draw{color:var(--text-secondary, #8888a0)}.log-battle-row{display:flex;align-items:center;gap:8px;font-size:13px;padding:3px 0}.log-battle-result{width:18px;text-align:center;font-family:var(--font-mono);font-weight:700;border-radius:3px}.log-battle-row.won .log-battle-result{color:#6fd28a;background:#6fd28a26}.log-battle-row.lost .log-battle-result{color:#e88080;background:#e8808026}.log-battle-row.draw .log-battle-result{color:#aaa;background:#ffffff14}.log-battle-region{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-battle-rounds{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary, #8888a0)}.tile-panel .base-hp-bar{height:20px;margin-top:6px}.tile-panel .base-hp-bar-label{font-size:12px}.effects-tooltip .tt-lines{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;line-height:1.5;color:var(--text-primary);white-space:normal}.effects-tooltip .tt-header{justify-content:space-between;gap:18px}.effects-tooltip .tt-header-width{color:var(--text-primary)}.effects-tooltip .tt-lines.muted{color:var(--text-secondary, #8888a0)}.tile-panel .panel-header h3 .effects-hover{cursor:help}.shortfall-tooltip .tt-lines{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08)}.tt-line{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;line-height:1.6;white-space:nowrap}.tt-line img{width:18px;height:18px;object-fit:contain}.tt-line.neg{color:#e88080}.tt-line.pos{color:#6fd28a}.tt-line.muted{color:var(--text-secondary, #8888a0)}.save-hover-wrap{display:inline-flex}.template-shortfall{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.template-shortfall-label{font-family:var(--font-mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.template-shortfall .tt-line{font-size:13px}.shortfall-tooltip{padding:10px 12px;max-width:384px}.shortfall-tooltip .tt-header{font-size:14px}.shortfall-tooltip .tt-line{font-size:14px;line-height:1.7;gap:8px}.shortfall-tooltip .tt-line img{width:22px;height:22px}.shortfall-tooltip .shortfall-missing,.shortfall-tooltip .shortfall-summary{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08)}.rd-equipment-btn{background:#3a7d3a40;border-color:#3ab050;color:#d8f0d8}.rd-equipment-btn:hover{background:#3a7d3a73}.regiment-equipment-modal{width:460px}.req-body{padding:10px 16px 14px;max-height:70vh;overflow-y:auto;scrollbar-width:thin}.req-head,.req-row{display:grid;grid-template-columns:32px 1fr 110px;align-items:center;gap:8px;padding:5px 0;font-family:var(--font-mono);font-size:16px}.req-head{color:var(--text-secondary, #8888a0);font-size:11px;letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:4px}.req-icon{width:28px;height:28px;object-fit:contain;display:inline-block}.req-label{color:var(--text-primary);font-family:var(--font-display);font-size:17px}.req-count,.req-pct,.req-missing{text-align:right}.req-row.req-red .req-count,.req-row.req-red .req-pct,.req-row.req-red .req-missing{color:#e86060}.req-row.req-yellow .req-count,.req-row.req-yellow .req-pct,.req-row.req-yellow .req-missing{color:#e0c050}.req-row.req-green .req-count,.req-row.req-green .req-pct,.req-row.req-green .req-missing{color:#6fd28a}.req-divider{height:1px;background:#4a4a55;margin:8px 0}.req-empty{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary, #8888a0);padding:6px 0}.idle-production-modal{width:460px}.idle-warning-list{margin:0 0 4px;padding-left:20px;font-size:14px;line-height:1.5;color:var(--text-primary)}.idle-warning-list li{margin-bottom:8px}.idle-warning-list li::marker{color:var(--accent)}.alerts-dock{position:fixed;left:16px;bottom:16px;z-index:60;display:flex;flex-direction:column;gap:6px;width:340px;max-width:calc(100vw - 32px)}.alert-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:6px;background:#14100af0;border:1px solid #d4a047;border-left-width:3px;color:#f0e6c8;font-size:13px;line-height:1.4;box-shadow:0 4px 16px #00000073}.alert-item.alert-danger{background:#1e0a0af0;border-color:#ff5050;color:#ffd8d8}.alert-item.alert-clickable{cursor:pointer}.alert-item.alert-clickable:hover{filter:brightness(1.15)}.alert-icon{font-size:15px;line-height:1.2;flex-shrink:0}.alert-text{flex:1}.alert-dismiss{flex-shrink:0;width:20px;height:20px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:transparent;color:inherit;font-size:14px;line-height:1;cursor:pointer}.alert-dismiss:hover{background:#ffffff1a}.alerts-dock{width:374px;gap:7px}.alert-item{padding:9px 11px;font-size:15px;line-height:1.45;gap:9px}.alert-icon{font-size:17px}.alert-icon-img{width:22px;height:22px;object-fit:contain}.alert-dismiss{width:22px;height:22px;font-size:15px}.company-tooltip{max-width:360px}.company-tooltip .tt-stats{margin-top:6px;font-size:12px;color:var(--text-primary);white-space:normal}.company-tooltip .tt-stats.tt-fuel{margin-top:2px}.equipment-tooltip.company-tooltip{max-width:460px;padding:10px 14px}.equipment-tooltip.company-tooltip .tt-header{font-size:17px}.equipment-tooltip.company-tooltip .tt-stats{font-size:15px}.equipment-tooltip.company-tooltip .tt-equip{font-size:14px;gap:4px 14px;margin-top:8px}.equipment-tooltip.company-tooltip .tt-effects,.equipment-tooltip.company-tooltip .tt-effects .tt-line{font-size:14px}.equipment-tooltip.company-tooltip .tt-effects-label{font-size:13px}.equipment-tooltip.company-tooltip .company-tooltip-locked{font-size:14px}.company-tooltip .tt-equip{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px;font-size:12px;color:var(--text-secondary, #8888a0)}.company-tooltip .tt-effects{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08)}.company-tooltip .tt-effects-label{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.company-tooltip .tt-effects .tt-line{white-space:normal;line-height:1.45}.company-tooltip .tt-effects .tt-line:before{content:"•";color:var(--accent);margin-right:4px}.equipment-tooltip.company-tooltip{max-width:560px;padding:12px 16px}.company-tooltip-cols{display:flex;gap:24px;margin-top:10px;align-items:flex-start}.company-tooltip-col{display:flex;flex-direction:column;gap:3px;min-width:210px}.company-tooltip-col .tt-effects-label{margin-bottom:4px}.company-tooltip-row{display:flex;justify-content:space-between;gap:18px;font-size:15px;color:var(--text-secondary, #b8bcc4)}.company-tooltip-row span:last-child{color:var(--text-primary)}.company-tooltip-gap{height:8px}.company-tooltip-row.muted{color:var(--text-muted)}.company-tooltip-equip{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--text-primary)}.company-tooltip-equip img{width:30px;height:30px;object-fit:contain}.company-tooltip-equip-n{min-width:34px;text-align:right;color:var(--accent)}.equipment-tooltip.company-tooltip .tt-effects{margin-top:10px;padding-top:8px}.shortfall-tooltip .tt-line{white-space:normal}.tile-panel .limbo-row{display:flex;align-items:baseline;gap:8px;padding-top:6px;padding-bottom:6px;font-size:12px;line-height:1.45}.tile-panel .limbo-label{flex:none;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border-radius:3px;border:1px solid currentColor}.tile-panel .limbo-mine .limbo-label{color:#e0b050}.tile-panel .limbo-theirs .limbo-label,.tile-panel .limbo-text{color:var(--text-secondary, #8888a0)}.tile-panel .limbo-mine .limbo-text{color:#d8d0b8}.start-panel-list{width:min(940px,94vw)}.start-panel-room{width:min(1360px,96vw)}.start-signed-in{font-size:16px;color:#b4b4c0;letter-spacing:1px;text-align:center;margin-bottom:20px}.start-logout{background:transparent;border:none;color:#c8c8d2;text-decoration:underline;cursor:pointer;font-size:16px;letter-spacing:1px;padding:0;font-family:inherit}.start-logout:hover{color:var(--accent)}.lobby-screen{font-size:20px}.lobby-screen .lobby-section-title{font-size:22px}.lobby-screen .lobby-muted{font-size:19px;color:#b8b8c4}.lobby-screen .lobby-empty-state{font-size:20px;color:#9a9aa8}.lobby-screen .lobby-ghost-btn{font-size:17px;color:#c8c8d2;border-color:#5a5a64;padding:8px 18px}.lobby-screen .lobby-danger-btn{font-size:19px;padding:12px 28px}.lobby-screen .btn-create{font-size:20px}.lobby-game-card{padding:20px 22px}.lobby-game-card .lobby-card-name{font-size:22px}.lobby-game-card .lobby-card-host{font-size:18px;color:#b8b8c4}.lobby-game-card .lobby-card-meta{font-size:20px;color:#dcdce4}.lobby-screen .lobby-join-btn{font-size:19px;padding:12px 26px;min-width:110px}.lobby-tag{display:inline-block;margin-left:12px;padding:2px 8px;font-size:14px;letter-spacing:1px;text-transform:uppercase;border:1px solid #6a6a74;color:#c8c8d2;vertical-align:middle}.lobby-room{display:flex;flex-direction:column;gap:20px;text-align:left}.lobby-room-head{text-align:center}.lobby-room-head .lobby-section-title{margin-bottom:6px}.lobby-room-grid{display:grid;grid-template-columns:minmax(280px,340px) minmax(420px,1fr) minmax(260px,330px);gap:20px;align-items:start}@media (max-width: 1150px){.lobby-room-grid{grid-template-columns:1fr}}.lobby-panel{background:#141418;border:1px solid #33333c;padding:16px 18px}.lobby-panel-title{font-size:16px;letter-spacing:2px;text-transform:uppercase;color:#c8c8d2;margin-bottom:12px}.lobby-hint{margin-top:10px;font-size:16px;color:#9a9aa8}.lobby-actions{display:flex;justify-content:space-between;gap:10px;margin-top:4px}.lobby-player-list{display:flex;flex-direction:column;gap:8px}.lobby-player-row{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#1a1a1f;border:1px solid #2e2e36}.lobby-player-index{width:24px;color:#9a9aa8;font-size:18px}.lobby-player-name{flex:1;display:flex;align-items:center;gap:10px;font-size:20px;color:#e6e2d6}.lobby-player-empty{color:#8a8a96;font-style:italic}.lobby-badge{font-size:14px;letter-spacing:1.5px;color:var(--accent)}.lobby-screen .lobby-row-btn{font-size:15px;padding:6px 14px}.lobby-swatch-wrap{position:relative;display:flex}.lobby-swatch{width:28px;height:28px;padding:0;border-radius:4px;border:1px solid rgba(255,255,255,.25);cursor:default}.lobby-swatch.editable{cursor:pointer}.lobby-swatch.editable:hover{outline:2px solid var(--accent);outline-offset:2px}.lobby-popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.lobby-color-popover{position:absolute;top:calc(100% + 8px);left:-8px;z-index:21;display:grid;grid-template-columns:repeat(6,30px);gap:6px;padding:10px;background:#16161b;border:1px solid var(--accent-dim, #8a6d2f);box-shadow:0 8px 24px #0009}.lobby-color-choice{width:30px;height:30px;padding:0;border:1px solid rgba(0,0,0,.4);cursor:pointer}.lobby-color-choice.current{outline:2px solid #fff;outline-offset:1px}.lobby-color-choice:disabled{opacity:.22;cursor:not-allowed}.lobby-options{display:flex;flex-direction:column;gap:8px}.lobby-option{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#1a1a1f;border:1px solid #2e2e36;cursor:pointer}.lobby-option.locked{cursor:default}.lobby-option input{width:18px;height:18px;margin:0;accent-color:var(--accent);flex:none}.lobby-option-label{font-size:19px;color:#e6e2d6}.lobby-option.locked .lobby-option-label{color:#c8c8d2}.lobby-speed{flex-direction:column;align-items:stretch;gap:10px;cursor:default}.lobby-speed-head{display:flex;align-items:center;gap:12px}.lobby-speed-value{font-family:var(--font-mono);font-size:18px;color:var(--accent)}.lobby-speed-head .lobby-info-icon{margin-left:auto}.lobby-option .lobby-speed-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;margin:6px 0 0;background:linear-gradient(to right,var(--accent) var(--fill),#34343e var(--fill));border-radius:4px;cursor:pointer}.lobby-option .lobby-speed-range:disabled{cursor:default;opacity:.75}.lobby-speed-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#e6e2d6;border:2px solid var(--accent);cursor:pointer}.lobby-speed-range::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#e6e2d6;border:2px solid var(--accent);cursor:pointer}.lobby-speed-marks{position:relative;height:24px;margin:0 9px}.lobby-speed-mark{position:absolute;top:0;transform:translate(-50%);padding:2px 4px;background:none;border:none;cursor:pointer;font-family:var(--font-mono);font-size:14px;color:#a8a8b4}.lobby-speed-mark:before{content:"";position:absolute;top:-6px;left:50%;width:1px;height:5px;background:#7a7a86}.lobby-speed-mark:hover:not(:disabled){color:var(--accent)}.lobby-speed-mark.current{color:var(--accent)}.lobby-speed-mark:disabled{cursor:default}.lobby-info-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:20px;height:20px;margin-left:auto;border-radius:50%;border:1px solid #7a7a86;color:#c8c8d2;font-family:Georgia,serif;font-style:italic;font-size:13px;cursor:help}.lobby-info-icon:hover{border-color:var(--accent);color:var(--accent)}.lobby-info-tooltip{font-size:15px;line-height:1.5;color:#e0dccf;max-width:320px;white-space:normal}.lobby-map-preview svg{display:block;width:100%;height:auto;max-height:340px}.lobby-map-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:15px;color:#c8c8d2}.lobby-map-legend .swatch{display:inline-block;width:14px;height:14px;margin-right:6px;vertical-align:-2px;border:1px solid #0b0b0e}.lobby-map-legend .dot{display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:50%;background:#e8e2d0;border:1px solid #0b0b0e}.lobby-map-note{margin-top:8px;font-size:14px;color:#9a9aa8;line-height:1.4}.lobby-map-empty{padding:40px 0;text-align:center;font-size:16px;color:#9a9aa8}.lobby-modal .refinery-header h3{font-size:20px}.lobby-modal-label{font-size:16px;color:#b8b8c4;letter-spacing:1px}.lobby-modal-input{background:#1a1a1a;border:1px solid #555;color:#e6e2d6;padding:8px 10px;font-family:inherit;font-size:18px}.lobby-modal .start-map-select{font-size:18px}.lobby-modal-error{color:#ff7a7a;font-size:16px;padding:8px;background:#2a1010;border:1px solid #c33}.lobby-modal .btn-modal-save,.lobby-modal .btn-modal-cancel{font-size:17px;padding:9px 20px}.lobby-game-card>div:first-child{text-align:left}.construction-modal.lobby-modal{width:min(540px,92vw)}.lobby-col{display:flex;flex-direction:column;min-width:0}.lobby-changelog{margin-top:28px;text-align:left}.lobby-changelog .lobby-section-title{display:block;margin-bottom:12px}.lobby-changelog-empty{padding:18px 20px;background:#141418;border:1px solid #2e2e36;font-size:18px;color:#9a9aa8;font-style:italic}.lobby-changelog-list{display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;padding-right:4px}.lobby-changelog-entry{padding:16px 20px;background:#141418;border:1px solid #2e2e36}.lobby-changelog-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px}.lobby-changelog-title{font-size:20px;color:#e6e2d6}.lobby-changelog-date{font-size:16px;color:#9a9aa8;white-space:nowrap}.lobby-changelog-entry ul{margin:0;padding-left:22px}.lobby-changelog-entry li{font-size:17px;line-height:1.55;color:#c8c8d2}.start-overlay{overflow-y:auto;align-items:flex-start;scrollbar-width:none;-ms-overflow-style:none}.start-overlay::-webkit-scrollbar{display:none}.start-overlay>.start-panel{margin:auto;padding:24px 0 76px}.start-panel-list{width:100%;box-sizing:border-box}.start-overlay>.start-panel-list{padding-left:32px;padding-right:32px}.lobby-list-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,700px) minmax(0,1fr);column-gap:24px;align-items:start;text-align:left}.lobby-list-layout .lobby-changelog{margin-top:0;width:100%;max-width:400px;justify-self:start}.lobby-list-layout .lobby-changelog .lobby-section-title{display:flex;align-items:center;min-height:46px;margin-bottom:16px}.lobby-list-layout .lobby-changelog-list{max-height:60vh}@media (max-width: 1180px){.lobby-list-layout{grid-template-columns:minmax(0,700px);justify-content:center}.lobby-list-layout .lobby-list-main{order:1}.lobby-list-layout .lobby-changelog{order:2;margin-top:28px;max-width:none}.lobby-list-layout .lobby-list-spacer{display:none}}.start-signed-in{position:fixed;top:16px;right:24px;z-index:210;margin:0;text-align:right}.lobby-list-layout .lobby-changelog-entry{padding:14px 16px}.lobby-list-layout .lobby-changelog-title{font-size:18px}.lobby-list-layout .lobby-changelog-date{font-size:15px}.lobby-list-layout .lobby-changelog-entry li{font-size:16px;line-height:1.5}.lobby-list-layout .lobby-changelog-entry ul{padding-left:18px}.lobby-list-layout .lobby-changelog-empty{font-size:17px}.start-overlay>.start-panel{margin:0 auto auto;padding-top:28px}.start-panel h1{margin-top:0}.lobby-list-layout .lobby-list-main,.lobby-list-layout .lobby-changelog{border:1px solid #3a3a44;background:#141418d9;padding:18px 20px;box-sizing:border-box}.lobby-list-layout .lobby-changelog{width:auto;justify-self:stretch;margin-left:20px}.lobby-list-layout .lobby-changelog-entry{background:none;border:none;border-top:1px solid #2e2e36;padding:14px 0 0}.lobby-list-layout .lobby-changelog-entry:first-child{border-top:none;padding-top:0}.lobby-list-layout .lobby-changelog-list{gap:14px}.lobby-list-layout .lobby-changelog-empty{background:none;border:none;padding:0}@media (max-width: 1180px){.lobby-list-layout .lobby-changelog{margin-left:0}}@media (min-width: 1181px){.lobby-list-layout .lobby-changelog{position:fixed;top:50%;left:52px;transform:translateY(-50%);width:calc((100vw - 812px)/2 - 44px);max-width:400px;max-height:80vh;margin:0;z-index:1}.lobby-list-layout .lobby-changelog-list{max-height:calc(80vh - 100px)}.lobby-list-layout .lobby-list-main{grid-column:2}.lobby-list-layout .lobby-list-spacer{grid-column:3}}.lobby-list-layout .lobby-list-main{margin-top:50px}.ui-topbar,.legend-panel,.mapview-panel,.construction-panel,.tile-panel,.regiment-strip,.regiment-detail-multi,.log-dock,.alerts-dock,.manpower-banner,.fuel-alert,.game-toast,.btn-battle-log{zoom:var(--hud-scale, 1)}.tile-panel{max-height:calc(100vh / var(--hud-scale, 1) - 80px)}html[data-device=tablet] .game-title,html[data-device=phone] .game-title,html[data-device=phone] .lobby-changelog,.rotate-prompt{display:none}@media (orientation: portrait){html[data-device=tablet] .rotate-prompt,html[data-device=phone] .rotate-prompt{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:32px;background:#0b0b0e;color:#e6e2d6;font-size:20px;text-align:center}}.rotate-prompt-icon{width:56px;height:92px;border:3px solid var(--accent);border-radius:10px;animation:rotate-prompt-turn 2.4s ease-in-out infinite}@keyframes rotate-prompt-turn{0%,25%{transform:rotate(0)}55%,to{transform:rotate(-90deg)}}.settings-dropdown-scale{padding:10px 14px;border-bottom:1px solid var(--bg-panel-border)}.settings-dropdown-scale .scale-row{display:flex;align-items:center;gap:6px}.settings-dropdown-scale .scale-btn,.settings-dropdown-scale .scale-auto{font-family:var(--font-mono, monospace);background:transparent;border:1px solid #555;color:var(--text-primary);cursor:pointer;font-size:14px;line-height:1}.settings-dropdown-scale .scale-btn{width:28px;height:28px}.settings-dropdown-scale .scale-btn:disabled{opacity:.35;cursor:not-allowed}.settings-dropdown-scale .scale-value{min-width:48px;text-align:center;font-size:14px;color:var(--accent)}.settings-dropdown-scale .scale-auto{margin-left:auto;padding:6px 10px;font-size:12px;letter-spacing:1px;text-transform:uppercase}.settings-dropdown-scale .scale-auto.active{border-color:var(--accent);color:var(--accent)}.modal-backdrop{overflow-y:auto;align-items:flex-start;scrollbar-width:none;-ms-overflow-style:none}.modal-backdrop::-webkit-scrollbar{display:none}.modal-backdrop>*{margin:auto;flex-shrink:0}html,.app{overflow:hidden}.app{height:var(--app-height, 100vh)}.lobby-game-card{grid-template-columns:minmax(0,1fr) auto auto}.lobby-game-card .lobby-card-name,.lobby-game-card .lobby-card-host{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-panel{top:calc(var(--hud-top, 60px) + 4px)}.mapview-panel{top:calc(var(--hud-top, 60px) + 188px)}.construction-panel,.tile-panel,.regiment-strip{top:var(--hud-top, 60px)}.tile-panel{max-height:calc(var(--app-height, 100vh) / var(--hud-scale, 1) - var(--hud-top, 60px) - 20px)}.btn-fullscreen{display:none}html[data-device=tablet] .btn-fullscreen,html[data-device=phone] .btn-fullscreen{display:inline-flex;align-items:center;justify-content:center;pointer-events:auto;background:transparent;border:1px solid var(--bg-panel-border);color:var(--text-primary);padding:6px 8px;margin-right:6px;cursor:pointer}.ui-topbar button{white-space:nowrap}.left-hud{position:absolute;top:calc(var(--hud-top, 60px) + 4px);left:16px;z-index:100;display:flex;flex-direction:column;gap:21px;zoom:var(--hud-scale, 1);pointer-events:none}.left-hud>.legend-panel,.left-hud>.mapview-panel{position:static;top:auto;left:auto;zoom:1;pointer-events:auto}html[data-device=tablet],html[data-device=phone]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}html[data-device=tablet] input,html[data-device=tablet] textarea,html[data-device=phone] input,html[data-device=phone] textarea{-webkit-user-select:text;user-select:text}.touch-order-bar{position:absolute;left:50%;bottom:76px;transform:translate(-50%);z-index:120;display:flex;align-items:center;gap:10px;padding:8px 10px;background:#0d0d14f0;border:1px solid var(--accent-dim);zoom:var(--hud-scale, 1);white-space:nowrap}.touch-order-hint{color:var(--text-primary);font-size:15px;padding:0 6px}.touch-order-go,.touch-order-clear{min-height:44px;padding:0 18px;font-size:16px;font-weight:600;cursor:pointer}.touch-order-go{background:var(--accent);color:#0d0d14;border:1px solid var(--accent)}.touch-order-clear{background:transparent;color:var(--text-primary);border:1px solid var(--bg-panel-border)}html[data-device=tablet] .regiment-strip,html[data-device=phone] .regiment-strip{align-items:flex-end;gap:3px}html[data-device=tablet] .regiment-strip-item,html[data-device=phone] .regiment-strip-item{width:42px;height:42px;padding:5px}.regiment-strip-tool{pointer-events:auto;min-width:42px;height:34px;padding:0 8px;background:#1a1a1a;border:1px solid var(--bg-panel-border);color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer}.regiment-strip-tool.on{background:var(--accent);border-color:var(--accent);color:#0d0d14}.touch-title-bubble{position:fixed;z-index:400;pointer-events:none;max-width:min(360px,calc(100vw - 16px));padding:8px 10px;background:#0d0d14f5;border:1px solid var(--accent-dim);color:var(--text-primary);font-size:15px;line-height:1.35}.rd-xp-level{cursor:help;font-weight:700;border-bottom:1px dotted currentColor}.rd-xp-level-0{color:#9fd18a}.rd-xp-level-1{color:#d8d8d8}.rd-xp-level-2{color:#8fc3ff}.rd-xp-level-3{color:#e0b44a}.rd-xp-level-4{color:#ff9f5a}.rd-xp-bar{position:relative;height:6px;margin:2px 0 6px;background:#ffffff14;border:1px solid rgba(255,255,255,.12)}.rd-xp-fill{position:absolute;inset:0 auto 0 0;background:var(--accent)}.rd-xp-bar i{position:absolute;top:-1px;bottom:-1px;width:1px;background:#0d0d14e6}.rd-training-note>span{color:var(--accent)}.rd-train-btn{background:#d4a94026;border-color:var(--accent-dim);color:#f0dca0}.rd-train-btn:hover:not(:disabled){background:#d4a9404d}.rd-train-btn.on{background:var(--accent);border-color:var(--accent);color:#0d0d14}.rd-train-btn:disabled{opacity:.4;cursor:not-allowed}.rd-xp-tooltip{font-size:13px}.rd-xp-tooltip-title{color:var(--accent);font-weight:700;margin-bottom:6px}.rd-xp-tooltip table{border-collapse:collapse}.rd-xp-tooltip th,.rd-xp-tooltip td{padding:2px 10px 2px 0;text-align:left;white-space:nowrap}.rd-xp-tooltip th{color:var(--text-secondary, #9a9a9a);font-weight:400}.rd-xp-tooltip tr.current td{color:var(--accent);font-weight:700}.rd-xp-tooltip-note{margin-top:6px;color:var(--text-secondary, #9a9a9a);max-width:300px;white-space:normal}.right-hud{position:absolute;top:var(--hud-top, 60px);right:12px;z-index:50;display:flex;flex-direction:column;align-items:stretch;gap:8px;zoom:var(--hud-scale, 1);pointer-events:none}.right-hud>.construction-panel{position:static;top:auto;right:auto;zoom:1;pointer-events:auto}.commander-panel{pointer-events:auto;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:6px}.commander-panel h4{margin:0 0 2px;font-family:var(--font-mono);font-size:9px;letter-spacing:.5px;text-align:center;text-transform:uppercase;color:var(--accent)}.commander-card{position:relative;width:62px;min-height:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:5px 2px;background:#1a1a24;border:1px solid var(--bg-panel-border);color:var(--text-primary);font-family:var(--font-mono);cursor:pointer}.commander-card:hover{border-color:var(--accent-dim)}.commander-card-stars{color:var(--accent);font-size:11px;letter-spacing:-1px;line-height:1}.commander-card-army{font-size:22px;font-weight:700;line-height:1.1}.commander-card-name{max-width:58px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--text-secondary)}.commander-card-size{font-size:12px}.commander-card.highlight{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 8px #d4a94073}.commander-card.pending{background:#d4a94038}.commander-card.empty{border-style:dashed;color:var(--text-secondary)}.commander-card.empty.blocked{opacity:.6;cursor:not-allowed}.cmd-name-row{display:flex;align-items:baseline;gap:12px;min-width:0}.cmd-personality{flex-shrink:0;cursor:help;font-size:14px;padding:2px 8px;border:1px solid var(--bg-panel-border);color:var(--text-primary)}.cmd-personality.tier-great{border-color:#8fc3ff;color:#cfe4ff}.cmd-personality.tier-special{border-color:var(--accent);color:var(--accent)}.cmd-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.cmd-badge{cursor:help;font-size:13px;padding:2px 8px;background:#b0784a1a;border:1px solid #b0784a;color:var(--text-primary)}.cmd-badge.level-2{border-color:#c9c9d4;background:#c9c9d41a}.cmd-badge.level-3{border-color:var(--accent);background:#d4a9402e}.cmd-tooltip-note{margin-top:4px;color:var(--text-secondary)}.cmd-badge-icon{display:inline-flex;cursor:help}.cmd-badge-icon img{width:36px;height:36px;display:block}.cmd-badges{align-items:center}.commander-card-plus{font-size:22px;line-height:1}.commander-card-hire{font-size:11px;text-transform:uppercase}.commander-card-points{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.rd-army-row{display:flex;align-items:center;justify-content:space-between;padding:4px 12px 0;font-size:12px;color:var(--accent)}.rd-army-row.rd-army-none{color:var(--text-secondary)}.right-hud{align-items:flex-end}.right-hud>.construction-panel{display:flex;align-items:center;gap:10px}.right-hud>.construction-panel h4{margin:0}.right-hud .construction-slot-row{flex-direction:row}.tile-panel,.regiment-strip{top:calc(var(--hud-top, 60px) + 70px)}.tile-panel{max-height:calc(var(--app-height, 100vh) / var(--hud-scale, 1) - var(--hud-top, 60px) - 90px)}.commander-modal-wrap{margin:auto;display:flex;align-items:flex-start;gap:12px;max-width:96vw;flex-wrap:wrap;justify-content:center}.commander-modal,.commander-army-panel{background:var(--bg-panel);border:1px solid var(--bg-panel-border);box-shadow:0 8px 32px #0009}.commander-modal{width:760px;max-width:94vw}.commander-hire-modal{width:460px}.commander-army-panel{width:280px;max-width:94vw}.commander-modal-stars{color:var(--accent);letter-spacing:-1px}.commander-body{padding:16px 22px 20px;display:flex;flex-direction:column;gap:14px;color:var(--text-primary);font-size:15px}.commander-body h4{margin:0 0 8px;font-size:15px;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;display:flex;justify-content:space-between}.commander-points{color:var(--text-primary);text-transform:none;letter-spacing:0;font-size:14px}.commander-note{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.4}.cmd-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start}.cmd-identity{display:flex;flex-direction:column;gap:6px;min-width:0}.cmd-name{font-size:22px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commander-xp-label{display:flex;justify-content:space-between;font-size:13px;color:var(--text-secondary)}.commander-xp-bar{height:8px;background:#ffffff14;border:1px solid rgba(255,255,255,.12)}.commander-xp-bar>div{height:100%;background:var(--accent)}.cmd-skills{display:flex;flex-direction:column;gap:8px}.cmd-skill-row{display:flex;gap:14px}.cmd-skill{display:flex;flex-direction:column;align-items:center;gap:4px}.cmd-skill-icon{display:inline-flex;cursor:help}.cmd-skill-icon img{width:44px;height:44px}.cmd-skill-adjust{display:flex;align-items:center;gap:4px}.cmd-skill-adjust button{width:22px;height:22px;padding:0;font-size:15px;line-height:1}.cmd-skill-value{min-width:20px;text-align:center;font-size:17px;font-weight:700}.cmd-skill-value.raised{color:var(--accent)}.cmd-skill-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:13px;color:var(--text-secondary)}.cmd-skill-footer span{margin-right:auto}.commander-modal button{background:#1f1f2c;border:1px solid var(--bg-panel-border);color:var(--text-primary);padding:4px 10px;font-size:14px;cursor:pointer}.commander-modal button.btn-close{background:transparent;border:none}.commander-modal button:disabled{opacity:.35;cursor:not-allowed}.commander-modal button.primary{background:var(--accent);border-color:var(--accent);color:#0d0d14;font-weight:700}.commander-modal button.danger{border-color:#ff6b6b;color:#ff8585;background:#6b1f1f66}.cmd-trait-tree{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.cmd-trait-line{display:flex;align-items:center;gap:6px}.cmd-trait{flex:1;min-width:0;padding:7px 8px;text-align:center;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--bg-panel-border);background:#ffffff08;cursor:help}.cmd-trait.available{border-color:var(--accent-dim);color:var(--text-primary);cursor:pointer}.cmd-trait.available:hover{border-color:var(--accent)}.cmd-trait.taken{border-color:var(--accent);background:#d4a9402e;color:var(--accent)}.cmd-trait.locked{color:var(--text-secondary);opacity:.75}.cmd-trait.picked{box-shadow:0 0 0 2px var(--accent)}.cmd-trait-arrow{color:var(--text-secondary);font-size:16px}.cmd-trait-confirm{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;border:1px solid var(--accent-dim);background:#d4a94014;font-size:14px}.cmd-trait-confirm span{margin-right:auto}.cmd-tooltip{max-width:320px;white-space:normal}.cmd-tooltip-body{display:flex;flex-direction:column;gap:5px;font-size:13px;line-height:1.35}.cmd-tooltip-title{color:var(--accent);font-weight:700;font-size:14px}.cmd-req{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);flex-wrap:wrap}.cmd-req-item{display:inline-flex;align-items:center;gap:2px;color:var(--text-primary);font-weight:700}.cmd-req-item img{width:18px;height:18px}.cmd-tooltip-status{font-size:12px;color:var(--text-secondary)}.cmd-tooltip-status.taken,.cmd-tooltip-status.available{color:var(--accent)}.commander-dismiss{display:flex;align-items:center;justify-content:flex-end;gap:10px;font-size:13px;color:var(--text-secondary)}.cmd-army-empty{padding:14px 16px}.cmd-army-list{list-style:none;margin:0;padding:8px 12px 12px;display:flex;flex-direction:column;gap:6px;max-height:70vh;overflow-y:auto}.cmd-army-list li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-primary)}.cmd-army-icon{flex:0 0 26px;height:26px;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.cmd-army-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commander-army-panel .refinery-header{gap:10px}.cmd-army-clear{margin-left:auto;padding:4px 10px;font-size:13px;white-space:nowrap;cursor:pointer;border:1px solid #ff6b6b;color:#ff8585;background:#6b1f1f66}.cmd-army-clear:hover{background:#8c282899}.cmd-army-remove{flex:none;margin-left:auto;width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:4px;color:var(--text-secondary);font-size:18px;line-height:1;cursor:pointer}.cmd-army-remove:hover{color:#e86060;border-color:#e8606080;background:#e860601a}.commander-hire-label{color:var(--text-primary);font-size:15px}.commander-hire-form input{background:#0f0f18;border:1px solid var(--bg-panel-border);color:var(--text-primary);padding:8px 10px;font-size:15px;font-family:inherit}.commander-hire-form .commander-note{font-size:14px}.commander-hire-form button.commander-hire-submit{align-self:flex-end;padding:8px 18px;background:var(--accent);border-color:var(--accent);color:#0d0d14;font-weight:700}.commander-hire-form button.commander-hire-submit:disabled{opacity:.35;cursor:not-allowed}.air-capacity{font-size:13px;color:var(--text-primary);margin-top:4px}.commander-modal .cmd-skill-adjust button{width:22px;height:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:15px}.commander-modal .cmd-skill-adjust button.is-disabled{opacity:.35;cursor:not-allowed}.cmd-skill-adjust>span:not(.cmd-skill-value){display:inline-flex}.cmd-trait-tree{align-items:start;gap:14px 18px}.cmd-trait-block{display:flex;flex-direction:column}.cmd-trait-line,.cmd-trait-exclusive{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);align-items:center;gap:0}.cmd-trait-arrow{text-align:center}.cmd-trait-exclusive{height:16px}.cmd-trait-exclusive-cell{display:flex;justify-content:center}.cmd-rhombus{display:inline-block;width:8px;height:8px;transform:rotate(45deg);background:#ff6b6b;box-shadow:0 0 0 2px #ff6b6b40}.cmd-tooltip-exclusive{display:flex;align-items:center;gap:8px;color:#ff8585;font-size:12px}.cmd-tooltip-exclusive .cmd-rhombus{flex:0 0 auto;width:7px;height:7px}.commander-body h4.cmd-traits-title{justify-content:flex-start;align-items:baseline;gap:12px}.base-action.air-build{margin-top:6px}.air-wing-list{display:flex;flex-direction:column;gap:4px;margin:6px 0}.air-wing-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:3px 6px;background:#ffffff08;border:1px solid var(--bg-panel-border);color:var(--text-primary);font-size:11px;cursor:pointer;text-align:left}.air-wing-row:hover{border-color:var(--accent-dim)}.air-wing-row.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.air-wing-row img{width:54px;height:20px;object-fit:contain}.air-wing-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.air-wing-hp{color:var(--text-secondary)}.air-wing-order{font-size:9px;text-transform:uppercase;padding:1px 4px;border:1px solid currentColor}.air-wing-order.strike{color:#ff6b5a}.air-wing-order.relocate{color:#6aa8ff}.air-wing-order.patrol{color:var(--accent)}.air-training{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;margin:6px 0;color:var(--accent)}.air-train-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:6px 0}.air-train-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;background:#1a1a24;border:1px solid var(--bg-panel-border);color:var(--text-primary);font-size:10px;cursor:pointer}.air-train-btn:hover:not(.disabled){border-color:var(--accent)}.air-train-btn.disabled{opacity:.4;cursor:not-allowed}.air-train-btn img{width:60px;height:22px;object-fit:contain}.wing-card-icon{width:64px;height:24px;object-fit:contain}.wing-card-items>span:last-child{font-size:10px;text-align:right}.wing-card-hint{font-size:10px;color:var(--text-secondary);padding:4px 0;line-height:1.35}.air-report-modal{width:520px}.air-report+.air-report{border-top:1px solid var(--bg-panel-border);padding-top:10px}.air-report-who{color:var(--accent);font-weight:700;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;gap:10px}.air-report ul{margin:0 0 8px;padding-left:18px;font-size:14px;line-height:1.5}.battle-modifier-icon.wide{width:46px;object-fit:contain}.air-table{width:100%;border-collapse:collapse;font-size:14px}.air-table th{text-align:right;font-size:11px;font-weight:600;color:#8a8f99;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px}.air-table td{padding:3px 6px}.air-table-group td{padding-top:8px;font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--bg-panel-border)}.air-table-name{display:flex;align-items:center;gap:8px}.air-table-name img{width:34px;height:14px;object-fit:contain;flex:none}.air-table-name em{color:#8a8f99;font-style:normal}.air-table-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;width:110px}.air-table-num.dealt{color:#7fd38f}.air-table-num.taken{color:#ff8a7a}.air-table-dead{color:#ff5a4a;font-size:12px}.air-table-total td{font-weight:700}.air-report-disabled{margin-top:8px;font-size:14px;color:#f2c14e}.air-report-weather{margin-top:8px;font-size:14px;color:#9cc4ff}.equipment-tooltip .tt-locked{color:#f2c14e}.ui-tooltip{white-space:pre-line;font-family:var(--font-display);font-size:14px;line-height:1.4;color:var(--text-primary)}.ui-topbar [data-tip]{pointer-events:auto}.prod-column{display:flex;flex-direction:column;gap:14px;min-width:0}.production-modal{width:1160px;max-width:96vw}.stockpile-modal{width:1200px;max-width:96vw}.bug-report-backdrop{z-index:260}.bug-report-modal{width:620px;max-width:94vw}.bug-report-body{display:flex;flex-direction:column;gap:12px;padding:4px 0}.bug-report-field{display:flex;flex-direction:column;gap:4px}.bug-report-textarea{min-height:150px;resize:vertical;font-size:16px;line-height:1.4}.bug-report-count{align-self:flex-end;font-size:12px;color:var(--text-secondary)}.bug-report-sent{font-size:18px;color:#7fd38f;padding:16px 0}.bugs-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;overflow:auto;padding:28px 32px 48px;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-display)}.bugs-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 auto 20px;max-width:1400px}.bugs-kinds{display:flex;gap:4px}.bugs-kinds button{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-family:inherit;font-size:24px;letter-spacing:2px;text-transform:uppercase;padding:4px 12px;cursor:pointer;display:flex;align-items:center;gap:8px}.bugs-kinds button.active{color:var(--accent);border-bottom-color:var(--accent)}.bugs-kind-count{font-size:13px;letter-spacing:0;background:#c33;color:#fff;border-radius:10px;padding:1px 7px}.bugs-filters{display:flex;gap:8px}.bugs-signed-in{order:-1;flex-basis:100%;text-align:right;font-size:14px;color:var(--text-secondary)}.bugs-signed-in span{color:var(--accent)}.bugs-signed-in button{background:none;border:none;padding:0;color:var(--text-secondary);font:inherit;text-decoration:underline;cursor:pointer}.bugs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:1400px;margin:0 auto;align-items:start}@media (max-width: 900px){.bugs-grid{grid-template-columns:minmax(0,1fr)}}.bugs-filters button,.bug-card-actions button{background:#1a1a22;border:1px solid var(--bg-panel-border);color:var(--text-primary);padding:7px 14px;font-family:inherit;font-size:14px;cursor:pointer}.bugs-filters button.active{border-color:var(--accent);color:var(--accent)}.bugs-status{color:var(--text-secondary);font-size:16px;padding:24px 0;max-width:1400px;margin:0 auto}.bug-card{border:1px solid var(--bg-panel-border);background:var(--bg-panel);padding:14px 16px;min-width:0}.bug-card.resolved{opacity:.75}.bug-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.bug-card-id{color:var(--text-secondary);font-family:var(--font-mono)}.bug-card-cat{font-size:12px;text-transform:uppercase;letter-spacing:1px;padding:2px 8px;border:1px solid #555;color:#c8c8d2}.bug-card-cat.cat-crash{border-color:#c33;color:#ff8a7a}.bug-card-cat.cat-gameplay{border-color:#b8933a;color:#f2c14e}.bug-card-title{font-size:18px;font-weight:700;flex:1;min-width:200px}.bug-card-status{font-size:13px;padding:2px 10px}.bug-card-status.open{color:#ff8a7a;border:1px solid #c33}.bug-card-status.resolved{color:#7fd38f;border:1px solid #3a7a4a}.bug-card-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--text-secondary);margin:6px 0 10px}.bug-card-meta a{color:var(--accent)}.bug-card-desc{white-space:pre-wrap;font-size:15px;line-height:1.5;margin-bottom:10px}.bug-card-sub{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-bottom:4px}.bug-card-errors pre{margin:0 0 4px;font-size:12px;color:#ff9a8a;white-space:pre-wrap;word-break:break-word}.bug-card-note textarea{width:100%;box-sizing:border-box;min-height:44px;resize:vertical;background:#111;border:1px solid #333;color:var(--text-primary);font-family:inherit;font-size:14px;padding:6px 8px;margin-top:8px}.bug-card-actions{display:flex;gap:8px;margin-top:8px;align-items:center}.bug-card-spacer{flex:1}.bug-card-actions button.primary{border-color:#3a7a4a;color:#7fd38f}.bug-card-actions button.danger{border-color:#c33;color:#ff8a7a}.bug-card-actions button:disabled{opacity:.5;cursor:default}.bug-card-context{margin:10px 0 0;max-height:320px;overflow:auto;background:#111;border:1px solid #333;padding:8px;font-size:12px;color:#aaa;white-space:pre-wrap;word-break:break-word}.equipment-tooltip-large{padding:10px 14px;max-width:420px}.equipment-tooltip-large .tt-header{font-size:16px}.equipment-tooltip-large .tt-cost{font-size:15px;gap:14px;color:var(--text-primary);margin-top:8px;padding-top:8px}.equipment-tooltip-large .tt-cost-chip{gap:5px}.equipment-tooltip-large .tt-cost-chip img{width:24px;height:24px}.equipment-tooltip-large .tt-yield{font-size:14px}.tt-cost-arrow{color:var(--text-secondary)}.tt-cost-yield{color:var(--text-primary);white-space:nowrap}.company-pick-card.locked{opacity:.4;cursor:not-allowed}.company-tooltip .company-tooltip-locked{margin-top:4px;font-size:13px}.macros-modal .recruit-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start;max-height:66vh}.macros-modal .recruit-card-title{overflow:hidden;text-overflow:ellipsis}.macros-modal .bases-card{flex-direction:column;align-items:stretch;gap:6px;padding:8px 14px}.macros-modal .bases-card .recruit-card-header,.macros-modal .bases-card .recruit-card-body{flex:0 0 auto}.macros-modal .recruit-card-body>.bases-card-btn{width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis}.fuel-bar-tooltip{padding:8px 12px;left:0;right:0;min-width:0;font-size:16px}.fuel-bar-tooltip-row{gap:10px;padding:3px 0}.fuel-bar-tooltip-row img{width:24px;height:24px}.research-modal.base-modal{width:auto;min-width:640px;max-width:96vw}.bupg-wrap{padding:18px 24px 8px;overflow:auto;display:flex;justify-content:center}.bupg-grid{display:grid;column-gap:12px;row-gap:0;align-items:start;justify-items:center}.bupg-row-label{align-self:center;margin-top:-18px;font-family:var(--font-mono);font-size:16px;color:var(--accent);letter-spacing:1px}.bupg-sep{align-self:stretch;width:1px;margin:4px 0 22px;background:var(--bg-panel-border)}.bupg-cell{display:flex;flex-direction:column;align-items:center;gap:4px;width:96px}.bupg-square{position:relative;width:72px;height:72px;padding:0;display:flex;align-items:center;justify-content:center;background:#1a1a24;border:2px solid var(--bg-panel-border);border-radius:6px;color:var(--text-primary);cursor:default}.bupg-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center}.bupg-icon img{width:48px;height:48px;object-fit:contain}.bupg-code{font-family:var(--font-mono);font-size:15px;font-weight:700}.bupg-name{font-size:12px;line-height:1.2;text-align:center;color:var(--text-secondary);min-height:29px}.bupg-square.spec{background:#20182c}.bupg-square.promote{background:#2a2214}.bupg-square.available{border-color:var(--accent);cursor:pointer}.bupg-square.available:hover{background:#2a2a36}.bupg-square.unaffordable{border-color:var(--accent-dim)}.bupg-square.owned{border-color:#3f9b55;background:#17261b}.bupg-square.in-flight{border-color:var(--accent);box-shadow:0 0 0 2px #d4a94059;cursor:pointer}.bupg-square.locked,.bupg-square.excluded{opacity:.4}.bupg-square.excluded .bupg-code{text-decoration:line-through}.bupg-badge{position:absolute;top:-8px;right:-8px;min-width:20px;height:20px;padding:0 4px;border-radius:10px;font-size:12px;line-height:20px;text-align:center}.bupg-badge.owned{background:#3f9b55;color:#fff}.bupg-badge.in-flight{background:var(--accent);color:#0d0d14;font-weight:700}.bupg-badge.locked{background:#2b2b33;color:var(--text-secondary)}.bupg-arrow{height:30px;line-height:30px;font-size:24px;font-weight:700;color:#8a8a96;margin-top:-6px}.bupg-arrow.done{color:#3f9b55}.base-upgrade-tooltip{max-width:340px}.base-upgrade-tooltip .tt-header{justify-content:space-between;font-size:15px}.bupg-tt-code{color:var(--text-secondary);font-size:12px}.base-upgrade-tooltip-desc{margin-top:6px;font-size:14px;color:var(--text-primary);line-height:1.4}.base-upgrade-tooltip-cost{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08);font-size:13px;color:var(--text-primary)}.base-upgrade-tooltip-cost img{width:18px;height:18px}.base-upgrade-tooltip-line{margin-top:6px;font-size:13px;color:var(--text-secondary)}.base-upgrade-tooltip-status{margin-top:8px;font-size:13px;color:#f2c14e}.base-upgrade-tooltip-status.owned,.base-upgrade-tooltip-status.available{color:#7fd38f}.bupg-confirm-backdrop{z-index:320}.bupg-confirm{width:380px;max-width:92vw;padding:18px 20px}.bupg-confirm-text{font-size:15px;color:var(--text-primary);margin-bottom:14px;line-height:1.4}.bupg-spec-pick{width:460px}.bupg-spec-options{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.bupg-spec-option{display:flex;flex-direction:column;gap:4px;text-align:left;padding:10px 12px;cursor:pointer;background:#20182c;border:2px solid var(--bg-panel-border);border-radius:6px;color:var(--text-primary)}.bupg-spec-option:hover{border-color:var(--accent);background:#2a2036}.bupg-spec-name{font-size:15px;font-weight:700}.bupg-spec-desc{font-size:13px;color:var(--text-secondary);line-height:1.35}.construction-modal.building-info-modal{min-width:420px;max-width:540px}.building-info-modal .refinery-header h3{font-size:20px}.building-info-modal .prod-section{display:flex;align-items:flex-start}.building-info-modal .construction-modal-icon{width:64px;height:64px;margin-right:16px;float:none;flex-shrink:0}.building-info-modal .construction-modal-body{flex:1;min-width:0}.building-info-modal .construction-modal-body{font-size:16px;line-height:1.5}.building-info-modal .construction-modal-description{font-size:16px;color:var(--text-primary)}.building-info-modal .construction-modal-cost{font-size:14px;gap:8px}.building-info-modal .construction-cost-chip img{width:18px;height:18px}.building-info-modal .depot-panel{font-size:15px}.building-info-modal .depot-panel-served-item,.building-info-modal .btn-depot-toggle{font-size:14px}.regiment-detail-card{width:314px}.regiment-detail-card .regiment-detail-header{padding:11px 13px;gap:9px}.regiment-detail-card .regiment-detail-badge{width:29px;height:29px;padding:3px}.regiment-detail-card .regiment-detail-name{font-size:14.5px}.regiment-detail-card .regiment-detail-stats{padding:11px 13px;font-size:13.5px}.regiment-detail-card .rd-row,.regiment-detail-card .rd-stat{padding:3.5px 0}.regiment-detail-card .rd-sep{margin:7px 0}.regiment-detail-card .rd-cols{column-gap:11px}.regiment-detail-card .rd-army-row{padding:4px 13px 0;font-size:13.5px}.regiment-detail-card .rd-xp-bar{height:7px;margin:2px 0 7px}.regiment-detail-card .rd-actions{column-gap:23px}.regiment-detail-card .rd-actions .rd-col{gap:7px}.regiment-detail-card .rd-cancel-btn{font-size:12.5px;padding:3px 9px}.towns-chip img{width:22px;height:22px;object-fit:contain}.towns-chip.at-goal span{color:#6fd28a}.endscreen-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:150;display:flex;align-items:center;justify-content:center;background:#06060c9e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.endscreen-card{background:#0e0e16f7;border:2px solid var(--accent);padding:40px 64px 34px;text-align:center;max-width:640px;font-family:var(--font-mono)}.endscreen-kicker{font-size:22px;letter-spacing:6px;text-transform:uppercase;color:var(--accent);margin-bottom:18px}.endscreen-winner{font-size:40px;letter-spacing:4px;font-weight:700;margin-bottom:10px}.endscreen-verdict{font-size:15px;letter-spacing:5px;text-transform:uppercase;margin-bottom:10px}.endscreen-verdict.won{color:#6fd28a}.endscreen-verdict.lost{color:#e88080}.endscreen-sub{font-size:15px;color:var(--text-secondary);margin-bottom:30px}.endscreen-actions,.endscreen-footer{display:flex;gap:14px;justify-content:center}.endscreen-btn{padding:11px 34px;font-size:15px;letter-spacing:2px;text-transform:uppercase}.endscreen-stats{width:1040px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--bg-panel-border);box-shadow:0 8px 32px #000c;font-family:var(--font-mono)}.endscreen-stats-header{padding:14px 24px 10px;border-bottom:1px solid var(--bg-panel-border)}.endscreen-stats-header h3{margin:0 0 6px;font-size:22px;letter-spacing:3px;text-transform:uppercase;color:var(--accent)}.endscreen-stats-meta{font-size:14px;color:var(--text-secondary)}.endscreen-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:12px 24px 0}.endscreen-tab{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;font-family:var(--font-mono);font-size:14px;background:#ffffff0a;color:var(--text-secondary);border:1px solid var(--bg-panel-border);cursor:pointer}.endscreen-tab:hover{background:#ffffff17;color:var(--text-primary)}.endscreen-tab.active{border-color:var(--accent);color:var(--text-primary);background:#d4a9401a}.endscreen-swatch{display:inline-block;width:12px;height:12px;border:1px solid rgba(0,0,0,.6);margin-right:2px;vertical-align:-1px}.endscreen-table .endscreen-swatch-cell{width:1%;padding-right:0;text-align:right}.endscreen-table .endscreen-swatch-cell .endscreen-swatch{margin-right:0}.endscreen-table .endscreen-name-cell{text-align:left;white-space:nowrap}.endscreen-you{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.endscreen-elim{font-size:11px;color:#e88080;margin-left:8px;text-transform:uppercase;letter-spacing:1px}.endscreen-body{padding:14px 24px 4px;overflow:auto;flex:1}.endscreen-footer{padding:14px 24px 18px;border-top:1px solid var(--bg-panel-border);justify-content:flex-end}.endscreen-section-label{font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.endscreen-section-label span{color:var(--text-muted);letter-spacing:.5px;text-transform:none;margin-left:8px}.endscreen-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.endscreen-tile{position:relative;padding:9px 14px 8px;background:#ffffff09;border:1px solid var(--bg-panel-border)}.endscreen-tile img{position:absolute;top:10px;right:12px;width:30px;height:30px;object-fit:contain;opacity:.85}.endscreen-tile-label{font-size:14px;color:var(--text-secondary)}.endscreen-tile-now{font-size:26px;color:var(--text-primary);line-height:1.25}.endscreen-tile-max{font-size:13px;color:var(--text-muted)}.endscreen-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}.endscreen-panel{padding:12px 16px 14px;background:#ffffff09;border:1px solid var(--bg-panel-border)}.endscreen-row{display:flex;justify-content:space-between;gap:16px;font-size:15px;color:var(--text-secondary);line-height:1.7}.endscreen-row span:last-child{color:var(--text-primary)}.endscreen-empty{font-size:14px;color:var(--text-muted)}.endscreen-company{display:flex;align-items:center;gap:12px;font-size:15px;padding:3px 0}.endscreen-company img{width:40px;height:40px;object-fit:contain}.endscreen-company-rank{width:26px;color:var(--accent)}.endscreen-company-name{flex:1;color:var(--text-primary)}.endscreen-company-count{color:var(--text-secondary)}.endscreen-general-head{display:flex;align-items:baseline;gap:10px}.endscreen-stars{color:var(--accent);font-size:16px;letter-spacing:1px}.endscreen-general-rank{font-size:14px;color:var(--text-secondary)}.endscreen-general-name{font-size:20px;color:var(--text-primary);margin:2px 0 0}.endscreen-general-xp{font-size:13px;color:var(--text-muted);margin-bottom:4px}.endscreen-traits{margin-top:8px;font-size:13px;color:var(--text-secondary)}.endscreen-general-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.endscreen-general-id{min-width:0}.endscreen-general-xp{display:flex;align-items:center;gap:10px}.endscreen-general-xp .cmd-personality{font-size:12px;padding:1px 7px;cursor:default}.endscreen-general-skills{display:flex;gap:14px}.endscreen-general-skill{display:inline-flex;align-items:center;gap:6px;font-size:17px;color:var(--text-primary);cursor:help}.endscreen-general-skill img{width:28px;height:28px;object-fit:contain}.endscreen-badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}.endscreen-badges img{width:34px;height:34px;cursor:help}.endscreen-badges .cmd-badge{cursor:default}.endscreen-fuel-split{margin-top:8px}.endscreen-fuel-bar{display:flex;height:10px;background:#ffffff14;overflow:hidden}.endscreen-fuel-bar span{display:block;height:100%}.endscreen-fuel-legend{display:flex;gap:18px;margin-top:6px;font-size:13px;color:var(--text-secondary)}.endscreen-fuel-legend i{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:-1px}.endscreen-table{width:100%;border-collapse:collapse;font-size:15px}.endscreen-table th{text-align:center;font-weight:400;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);padding:6px 10px;border-bottom:1px solid var(--bg-panel-border)}.endscreen-table td{text-align:center;padding:9px 10px;color:var(--text-primary);border-bottom:1px solid rgba(255,255,255,.05)}.endscreen-table tr.eliminated td{color:var(--text-muted)}@media (max-width: 760px){.endscreen-card{padding:28px 22px 24px;margin:0 16px}.endscreen-winner{font-size:28px}.endscreen-tiles{grid-template-columns:repeat(2,1fr)}.endscreen-cols{grid-template-columns:1fr}}.profile-backdrop{position:fixed;z-index:900}.profile-modal{width:760px}.profile-header{position:relative;display:flex;align-items:center;gap:18px;padding:18px 24px 16px;border-bottom:1px solid var(--bg-panel-border)}.profile-close{position:absolute;top:10px;right:14px}.profile-avatar{display:inline-flex;align-items:center;justify-content:center;background:#15151d;border:1px solid var(--bg-panel-border);box-sizing:border-box}.profile-avatar>span{width:78%;height:78%;background:var(--accent);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.profile-avatar-btn{padding:0;background:none;border:none;cursor:default}.profile-avatar-btn.editable{cursor:pointer}.profile-avatar-btn.editable:hover .profile-avatar{border-color:var(--accent)}.profile-id{flex:1;min-width:0;font-family:var(--font-mono)}.profile-rank{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted)}.profile-name{font-size:26px;color:var(--text-primary);letter-spacing:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-title{font-size:15px;color:var(--accent);display:flex;align-items:baseline;gap:10px}.profile-dates{font-family:var(--font-mono);font-size:13px;color:var(--text-muted);text-align:right;line-height:1.7;margin-right:28px}.profile-dates span{color:var(--text-secondary)}.profile-link{background:none;border:none;padding:0;font:inherit;font-size:13px;color:var(--text-secondary);text-decoration:underline;cursor:pointer}.profile-link:hover{color:var(--text-primary)}.profile-picker{margin-bottom:14px}.profile-avatar-grid{display:flex;flex-wrap:wrap;gap:8px}.profile-avatar-grid button{padding:0;background:none;border:1px solid transparent;cursor:pointer}.profile-avatar-grid button:hover .profile-avatar{border-color:var(--text-secondary)}.profile-avatar-grid button.active .profile-avatar{border-color:var(--accent)}.profile-title-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}.profile-title-grid button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;background:#ffffff0a;border:1px solid var(--bg-panel-border);color:var(--text-primary);font-family:var(--font-mono);cursor:pointer;text-align:left}.profile-title-grid button:hover:not(:disabled){background:#ffffff17}.profile-title-grid button.active{border-color:var(--accent);background:#d4a9401a}.profile-title-grid button.locked{cursor:default;background:#ffffff05;border-style:dashed}.profile-title-grid button.locked .profile-title-name{color:var(--text-muted)}.profile-title-grid button.locked .profile-title-req{color:var(--text-secondary)}.profile-title-name{font-size:14px}.profile-title-req{font-size:12px;color:var(--text-muted)}.profile-games td{font-size:14px}.profile-won{color:#7fd38f!important}.profile-lost{color:#e88080!important}.profile-modal .endscreen-tiles{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.5fr)}.profile-tile-text{font-size:19px;line-height:39px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-name-link{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}.profile-name-link:hover{text-decoration:underline}@media (max-width: 760px){.profile-header{flex-wrap:wrap}.profile-dates{text-align:left;margin-right:0;flex-basis:100%}}
