@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;600;700&display=swap');
:root{--bg-main:#0a0b0e;--bg-panel:#12141a;--bg-card:rgba(24,27,36,0.92);--bg-card-hover:#1f2330;--border-color:#262b3a;--border-light:#333a4d;--text-main:#e2e8f0;--text-muted:#8492a6;--text-dim:#4e586e;--accent:#3b82f6;--accent-hover:#2563eb;--accent-glow:rgba(59,130,246,0.3);--success:#10b981;--danger:#ef4444;--danger-hover:#dc2626;--warning:#f59e0b;--font-main:'Inter',sans-serif;--font-mono:'JetBrains Mono',monospace;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--hp:#ef4444;--energy:#f59e0b;--grit:#8b5cf6;--xp:#3b82f6;--money:#10b981;--reputation:#ec4899;--info:#3b82f6;}*{box-sizing:border-box;margin:0;padding:0;}
body{background:linear-gradient(rgba(10,11,14,0.78),rgba(10,11,14,0.88)),url('../images/bg-landing.jpg') no-repeat center center fixed;background-size:cover;color:var(--text-main);font-family:var(--font-main);font-size:14px;line-height:1.5;min-height:100vh;display:flex;flex-direction:column;}
#app{width:100%;max-width:1200px;margin:0 auto;padding:16px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;}
#notifications-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:90vw;width:340px;}
.notification{padding:12px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 16px rgba(0,0,0,0.6);}
.notification.success{background:#064e3b;border:1px solid var(--success);color:#a7f3d0;}
.notification.error{background:#450a0a;border:1px solid var(--danger);color:#fecaca;}
.auth-container{width:100%;max-width:480px;margin:0 auto;}
.auth-header{text-align:center;margin-bottom:20px;}
.game-title{font-size:32px;font-weight:800;letter-spacing:3px;color:var(--accent);text-shadow:0 0 20px var(--accent-glow);}
.game-subtitle{color:var(--text-muted);font-size:13px;margin-top:4px;}
.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:26px;backdrop-filter:blur(10px);box-shadow:0 8px 32px rgba(0,0,0,0.6);}
.landing-desc{color:var(--text-muted);text-align:center;font-size:14px;margin-bottom:16px;line-height:1.6;}
.landing-stats{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;background:var(--bg-panel);padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--border-color);margin-bottom:20px;font-size:12px;}
.btn-group-vertical{display:flex;flex-direction:column;gap:12px;}
.form-group{margin-bottom:16px;display:flex;flex-direction:column;gap:6px;}
label{font-size:12px;font-weight:600;color:var(--text-muted);}
.input-field{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-main);font-family:var(--font-main);font-size:13px;padding:12px 14px;outline:none;transition:border-color 0.15s ease;}
.input-field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 18px;border-radius:var(--radius-md);font-family:var(--font-main);font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;text-decoration:none;}
button:focus-visible,a:focus-visible,[role="button"]:focus-visible{outline:2px solid #a5c9ff;outline-offset:3px;}
.btn-block{width:100%;}
.btn-large{padding:13px;font-size:14px;letter-spacing:1px;font-weight:700;}
.btn-sm{padding:6px 12px;font-size:12px;}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{background:var(--accent-hover);box-shadow:0 0 16px var(--accent-glow);}
.btn-secondary{background:var(--bg-panel);border-color:var(--border-color);color:var(--text-main);}
.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--border-light);}
.btn-danger{background:var(--danger);color:#fff;}
.btn-danger:hover{background:var(--danger-hover);}
.btn-link{background:transparent;border:none;color:var(--text-muted);font-size:12px;padding:6px 0;cursor:pointer;}
.btn-link:hover{color:var(--accent);}
.auth-footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px;border-top:1px solid var(--border-color);padding-top:14px;}
@media(max-width:600px){#app{padding:10px;}.card{padding:18px;}.auth-footer{flex-direction:column;gap:8px;}}
/* ---- Character Creation (Phase 2) ---- */
.cc-warning{color:var(--warning);font-size:12px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;margin-bottom:16px;}
.avatar-picker{display:flex;align-items:center;gap:14px;}
.avatar-preview{width:72px;height:72px;border-radius:50%;border:2px solid var(--accent);object-fit:cover;background:var(--bg-panel);display:none;}
.avatar-controls{flex:1;display:flex;flex-direction:column;gap:6px;}
.name-row{display:flex;gap:8px;align-items:center;}
.name-row .input-field{flex:1;}
.name-status{font-size:12px;margin-top:6px;min-height:16px;color:var(--text-muted);}
.name-status.ok{color:var(--success);}
.name-status.error{color:var(--danger);}
.option-list{display:flex;flex-direction:column;gap:8px;}
.option-card{display:block;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px 14px;cursor:pointer;transition:border-color 0.15s ease,background 0.15s ease;}
.option-card:hover{border-color:var(--border-light);background:var(--bg-card-hover);}
.option-card input[type=radio]{margin-right:10px;accent-color:var(--accent);}
.option-card input[type=radio]:checked ~ .option-title{color:var(--accent);}
.option-title{display:block;color:var(--text-main);font-weight:600;font-size:13px;}
.option-desc{display:block;color:var(--text-muted);font-size:12px;margin-top:2px;}

.option-bonus{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:10px;background:rgba(59,130,246,0.12);border:1px solid var(--accent);color:var(--accent);font-size:11px;font-weight:600;letter-spacing:0.3px;}

.spec-cooldown{color:var(--text-muted);font-size:12px;margin-top:8px;}

/* ---- Main Game Screen (Phase 3) ---- */
.notification.info{background:#0c2d4d;border:1px solid var(--info);color:#bfdbfe;}
.game-shell{width:100%;max-width:900px;display:flex;flex-direction:column;gap:14px;}
.game-topbar{display:flex;align-items:center;gap:14px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:14px 18px;}
.topbar-avatar{width:56px;height:56px;border-radius:50%;border:2px solid var(--accent);object-fit:cover;background:var(--bg-panel);}
.topbar-avatar-empty{display:flex;align-items:center;justify-content:center;font-size:22px;}
.topbar-identity{flex:1;min-width:0;}
.topbar-name{color:var(--accent);font-size:20px;font-weight:800;letter-spacing:0.5px;margin:0;}
.topbar-sub{color:var(--text-muted);font-size:12px;margin:2px 0 0 0;}
.topbar-money{text-align:right;font-family:var(--font-mono);}
.money-amount{color:var(--money);font-weight:700;font-size:16px;}
.bank-line{color:var(--text-muted);font-size:11px;}
.topbar-actions{display:flex;gap:8px;}
/* Fixed left sidebar navigation (top to bottom) */
.game-tabs{position:fixed;top:0;left:0;bottom:0;width:190px;z-index:8000;display:flex;flex-direction:column;gap:6px;background:rgba(18,20,26,0.96);border-right:1px solid var(--border-color);border-radius:0;padding:14px 10px 16px 10px;backdrop-filter:blur(6px);}
.tab-btn{width:100%;text-align:left;padding:11px 14px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-muted);font-family:var(--font-main);font-size:12px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;cursor:pointer;transition:background 0.15s ease,color 0.15s ease;}
.tab-btn:hover{color:var(--text-main);background:var(--bg-card-hover);}
.tab-btn.active{background:var(--accent);color:#fff;}
.game-tabs{padding-top:16px;}
.side-identity{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:2px;}
.side-name{color:var(--accent);font-weight:800;font-size:15px;line-height:1.2;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.side-name-gold{color:#fbbf24;text-shadow:0 0 10px rgba(251,191,36,0.35);}
.side-avatar{width:80%;aspect-ratio:1/1;border-radius:12px;border:2px solid var(--accent);object-fit:cover;background:var(--bg-panel);}
.side-avatar-empty{display:flex;align-items:center;justify-content:center;font-size:36px;color:var(--text-dim);}
.dev-row{display:flex;align-items:center;gap:6px;}
.dev-badge{background:rgba(249,115,22,0.14);border:1px solid #f97316;border-radius:4px;color:#fdba74;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:1px;padding:2px 6px;text-shadow:0 0 6px rgba(249,115,22,0.7);}
.dev-crown{font-size:15px;filter:drop-shadow(0 0 5px rgba(250,204,21,0.7));}
.side-level{color:var(--text-muted);font-size:10px;letter-spacing:1px;text-transform:uppercase;}
.side-money{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--money);text-align:center;}
.game-tabs{overflow-y:auto;scrollbar-width:thin;}
.side-identity{flex:0 0 auto;}
.tab-btn{flex-shrink:0;}
.side-vitals{width:100%;display:flex;flex-direction:column;gap:7px;margin:5px 0 3px;padding:8px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);}
.side-vitals-title{font-size:9px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;color:var(--text-dim);}
.side-vital-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:5px;margin-bottom:4px;line-height:1.1;}
.side-vital-label{font-size:10px;font-weight:700;color:var(--text-muted);}
.side-vital-value,.side-vital-status{font-family:var(--font-mono);font-size:9px;color:var(--text-main);white-space:nowrap;}
.side-vital-status{min-width:28px;text-align:right;color:var(--text-dim);font-size:8px;}
.side-vital-track{height:9px;padding:1px;background:#202530;border:1px solid #394150;border-radius:5px;overflow:hidden;}
.side-vital-fill{height:100%;min-width:0;border-radius:4px;transition:width .35s ease;}
.side-vital-hp .side-vital-fill{background:var(--hp);}
.side-vital-energy .side-vital-fill{background:var(--energy);}
.side-vital-grit .side-vital-fill{background:var(--grit);}
.side-vital-vitality .side-vital-fill{background:linear-gradient(90deg,#92761f,#e4c846);}
.side-vital-placeholder .side-vital-label,.side-vital-placeholder .side-vital-value,.side-vital-placeholder .side-vital-status{color:#a79a64;}
.side-vital-placeholder .side-vital-track{border-style:dashed;}
.side-vital-regen{margin-top:2px;font-family:var(--font-mono);font-size:8px;color:var(--text-dim);}
.side-vital-regen span{color:var(--energy);font-weight:700;}
.side-bottom{flex-shrink:0;}
@media(max-width:700px){.game-tabs{overflow:visible;}.side-identity{width:100%;}.side-identity .side-avatar{width:88px;}.side-vitals{max-width:360px;}.side-bottom{margin-top:8px;}}
.side-tabs-sep{border-top:1px solid var(--border-color);margin:8px 0 8px 0;}
.side-bottom{margin-top:auto;display:flex;gap:8px;align-items:center;}
.side-power-btn{width:38px;height:34px;background:rgba(239,68,68,0.12);border:1px solid var(--danger);border-radius:var(--radius-md);color:var(--danger);font-size:15px;cursor:pointer;transition:background 0.15s ease,box-shadow 0.15s ease;}
.side-power-btn:hover{background:rgba(239,68,68,0.25);box-shadow:0 0 12px rgba(239,68,68,0.4);}
.side-account-btn{flex:1;}
.panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:16px 18px;}
.panel-title{margin:0 0 12px 0;color:var(--text-main);font-size:12px;text-transform:uppercase;letter-spacing:1.5px;}
.vitals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px;}
.vital-head{display:flex;justify-content:space-between;margin-bottom:5px;}
.vital-label{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);}
.vital-value{font-family:var(--font-mono);font-size:12px;color:var(--text-main);}
.vital-track{height:8px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:6px;overflow:hidden;}
.vital-fill{height:100%;border-radius:6px;transition:width 0.4s ease;}
.resources-row{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;border-top:1px solid var(--border-color);padding-top:12px;}
.resource{display:flex;flex-direction:column;gap:2px;}
.resource-label{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);}
.resource-value{font-family:var(--font-mono);font-size:14px;font-weight:700;}
.equip-row{display:flex;gap:10px;margin-bottom:10px;}
.equip-slot{flex:1;display:flex;justify-content:space-between;align-items:center;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px 14px;}
.equip-slot-name{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);}
.equip-slot-item{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);}
.equip-note{color:var(--text-muted);font-size:12px;margin:0;}
.locked-panel{text-align:center;padding:40px 20px;}
.locked-text{color:var(--text-muted);font-size:13px;margin:0;}
@media(max-width:700px){.vitals-grid{grid-template-columns:1fr;}.resources-row{grid-template-columns:repeat(2,1fr);}.game-topbar{flex-wrap:wrap;}.game-tabs{position:static;width:100%;flex-direction:row;flex-wrap:wrap;border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:6px;margin-bottom:0;}.tab-btn{width:auto;flex:1 1 30%;text-align:center;padding:9px 6px;}.game-shell{margin-left:0;}body.in-game #app{padding-left:16px;}.side-identity{justify-content:center;}.side-bottom{justify-content:center;}}
.equip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:10px;}

/* ---- Status banners (Phase 4) ---- */
.jail-banner{background:rgba(239,68,68,0.12);border:1px solid var(--danger);border-left:4px solid var(--danger);border-radius:var(--radius-md);padding:12px 16px;color:#fecaca;font-size:13px;font-weight:600;}
.cooldown-banner{background:rgba(245,158,11,0.12);border:1px solid var(--warning);border-left:4px solid var(--warning);border-radius:var(--radius-md);padding:12px 16px;color:#fde68a;font-size:13px;font-weight:600;}

/* ---- Activities (Phase 5) ---- */
.action-list{display:flex;flex-direction:column;gap:10px;}
.action-card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px 14px;}
.action-main{flex:1;min-width:0;}
.action-name{display:block;color:var(--text-main);font-weight:700;font-size:14px;}
.action-desc{display:block;color:var(--text-muted);font-size:12px;margin:2px 0 8px 0;}
.action-meta{display:flex;flex-wrap:wrap;gap:10px;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);}
.log-line{display:flex;justify-content:space-between;gap:10px;font-family:var(--font-mono);font-size:12px;padding:6px 0;border-bottom:1px solid var(--border-color);}
.log-line:last-child{border-bottom:none;}
.log-time{color:var(--text-dim);}
.log-action{color:var(--text-main);flex:1;padding-left:10px;}
.log-result{white-space:nowrap;}
.vital-sub{margin-top:4px;font-size:10px;color:var(--text-muted);font-family:var(--font-mono);}

/* ---- Right sidebar replaces the top HUD (Phase 16) ---- */
#hud-container{display:none;}
body.in-game #app{justify-content:flex-start;align-items:center;padding-top:16px;padding-left:190px;}
@media(max-width:700px){body.in-game #app{padding-left:16px;}}
@media(min-width:701px) and (max-width:900px){
    body.in-game #app{padding-left:16px;}
    .game-tabs{position:static;width:100%;height:auto;display:flex;flex-direction:row;flex-wrap:wrap;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px;margin-bottom:0;}
    .side-identity{width:100%;flex-direction:row;justify-content:center;flex-wrap:wrap;gap:10px;}
    .side-identity .side-avatar{width:36px;}
    .side-bottom{position:static;width:100%;margin-top:4px;}
    .tab-btn{width:auto;flex:1 1 90px;text-align:center;padding:9px;}
    .game-shell{margin-left:0;}
}
body.has-invests #app{padding-right:250px;}
@media(min-width:701px){body.in-game .hud{left:190px;}}
.hud{pointer-events:auto;display:flex;align-items:center;gap:16px;max-width:1200px;margin:0 auto;background:rgba(18,20,26,0.96);border-bottom:1px solid var(--border-color);padding:9px 18px;backdrop-filter:blur(6px);}
.hud-avatar{width:38px;height:38px;border-radius:50%;border:2px solid var(--accent);object-fit:cover;background:var(--bg-panel);}
.hud-avatar-empty{display:flex;align-items:center;justify-content:center;font-size:16px;}
.hud-identity{display:flex;flex-direction:column;min-width:110px;}
.hud-name{color:var(--accent);font-weight:700;font-size:13px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px;}
.hud-level{color:var(--text-muted);font-size:10px;letter-spacing:1px;text-transform:uppercase;}
.hud-stat{display:flex;align-items:center;gap:6px;flex:1;max-width:190px;}
.hud-stat-label{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);width:48px;}
.hud-bar{flex:1;height:7px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:5px;overflow:hidden;min-width:50px;}
.hud-bar-fill{height:100%;border-radius:5px;transition:width 0.4s ease;}
.hud-stat-value{font-family:var(--font-mono);font-size:10px;color:var(--text-main);white-space:nowrap;}
.hud-money{font-family:var(--font-mono);color:var(--money);font-weight:700;font-size:14px;margin-left:auto;white-space:nowrap;}
@media(max-width:700px){.hud{flex-wrap:wrap;gap:8px;padding:8px 12px;}.hud-stat{max-width:none;}.hud-identity{min-width:0;flex:1;}}

/* ---- Gym / Stats (Phase 6) ---- */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;}
.stat-box{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px 12px;display:flex;flex-direction:column;gap:2px;}
.stat-name{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);}
.stat-value{font-family:var(--font-mono);font-size:18px;font-weight:700;color:var(--accent);}
.stat-inline{font-family:var(--font-mono);color:var(--accent);font-size:13px;}
.train-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}

/* ---- Gyms (Phase 6) ---- */
.gym-card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px 14px;}
.gym-card.gym-active{border-color:var(--success);}
.gym-card.gym-locked{opacity:0.55;}
.gym-mult{font-family:var(--font-mono);color:var(--success);font-size:12px;}
.gym-status{font-size:12px;white-space:nowrap;}
.energy-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.energy-row label{font-size:12px;font-weight:600;color:var(--text-muted);}
.energy-input{width:110px;padding:8px 12px;}

/* ---- Dev Tools (admin) ---- */
.dev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;}
.game-shell:has(.dev-console){max-width:1240px;}
.dev-console{padding:0;overflow:hidden;border-color:rgba(96,165,250,.26);background:linear-gradient(145deg,rgba(24,31,43,.98),rgba(16,20,28,.98));box-shadow:0 16px 42px rgba(0,0,0,.22);}
.dev-console-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px 14px;border-bottom:1px solid var(--border-color);}
.dev-console-kicker,.dev-section-kicker{display:block;color:var(--text-dim);font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;}
.dev-console-title{margin:4px 0 0;color:var(--text-main);font-size:21px;letter-spacing:.2px;}
.dev-target-indicator{display:flex;flex-direction:column;align-items:flex-end;gap:3px;padding:8px 12px;border:1px solid var(--border-color);border-radius:10px;background:rgba(7,12,20,.45);}
.dev-target-label{color:var(--text-dim);font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;}
.dev-target-indicator strong{color:#bfdbfe;font-size:12px;}
.dev-console-tabs{display:flex;gap:7px;flex-wrap:wrap;padding:12px 18px;background:rgba(10,15,23,.3);border-bottom:1px solid var(--border-color);}
.dev-tab-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text-muted);font:700 11px var(--font-main);cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;}
.dev-tab-btn:hover{border-color:var(--border-color);background:rgba(255,255,255,.035);color:var(--text-main);transform:translateY(-1px);}
.dev-tab-btn.active{border-color:rgba(96,165,250,.48);background:linear-gradient(135deg,rgba(59,130,246,.22),rgba(37,99,235,.10));color:#dbeafe;box-shadow:inset 0 0 0 1px rgba(96,165,250,.08);}
.dev-console-note{padding:10px 20px 0;font-size:10px;}
.dev-console-body{display:flex;flex-direction:column;gap:12px;margin-top:12px;}
.dev-section{padding:16px 18px;}
.dev-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px;}
.dev-section-heading h3{margin:4px 0 0;color:var(--text-main);font-size:15px;letter-spacing:.15px;}
.dev-section-mark{display:grid;place-items:center;min-width:30px;height:26px;padding:0 7px;border:1px solid rgba(96,165,250,.25);border-radius:8px;background:rgba(59,130,246,.08);color:#93c5fd;font:700 10px var(--font-mono);}
.dev-search-row{display:flex;align-items:center;gap:9px;}
.dev-search-row .input-field{flex:1;min-width:0;}
.dev-primary-action{min-height:36px;padding:8px 15px;white-space:nowrap;}
.dev-target-list{margin-top:12px;}
.dev-target-card{border-color:rgba(148,163,184,.12);transition:border-color .16s ease,background .16s ease;}
.dev-target-card:hover,.dev-target-card.selected{border-color:rgba(96,165,250,.52);background:rgba(37,99,235,.075);}
.dev-target-card .action-name{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.dev-target-kind{display:inline-flex;align-items:center;padding:2px 6px;border:1px solid rgba(148,163,184,.24);border-radius:999px;color:#aebbd0;font-size:8px;font-weight:800;letter-spacing:.7px;vertical-align:middle;}
.dev-target-kind.npc{border-color:rgba(248,113,113,.34);background:rgba(127,29,29,.12);color:#fca5a5;}
.dev-overview-grid{grid-template-columns:repeat(auto-fit,minmax(115px,1fr));}
.dev-overview-panel .resource{padding:9px 10px;border:1px solid var(--border-color);border-radius:9px;background:rgba(8,13,21,.28);}
.dev-stats-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;}
.dev-stats-line>span:not(.quality-tag){color:var(--text-dim);font-size:10px;}
.dev-quick-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));}
.dev-quick-grid .btn{min-height:38px;justify-content:flex-start;padding:8px 11px;text-align:left;}
.dev-form-row{flex-wrap:wrap;padding:10px 0;border-bottom:1px solid rgba(148,163,184,.08);}
.dev-form-row:last-of-type{border-bottom:0;}
.dev-form-row>label{min-width:116px;}
.dev-form-row .input-field{max-width:210px;}
.dev-inline-note{margin-top:10px;padding:10px 12px;border-radius:9px;background:rgba(59,130,246,.06);}
.dev-inline-link{padding:0;border:0;background:none;color:#93c5fd;font:700 11px var(--font-main);text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
.dev-empty-state{display:grid;justify-items:center;gap:6px;padding:30px 16px;text-align:center;}
.dev-empty-state h3{margin:2px 0;color:var(--text-main);font-size:14px;}
.dev-empty-state p{max-width:440px;margin:0 0 8px;color:var(--text-muted);font-size:11px;line-height:1.55;}
.dev-empty-icon{color:#93c5fd;font-size:26px;line-height:1;}
.dev-npc-intro{margin:-3px 0 12px;}
.dev-npc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:9px;margin-top:12px;}
.dev-npc-card{min-width:0;padding:12px;border:1px solid var(--border-color);border-radius:11px;background:linear-gradient(145deg,rgba(10,16,25,.62),rgba(14,20,29,.45));transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease;}
.dev-npc-card:hover,.dev-npc-card.selected{border-color:rgba(96,165,250,.55);box-shadow:0 8px 24px rgba(0,0,0,.16);transform:translateY(-1px);}
.dev-npc-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.dev-npc-card-head h3{margin:4px 0 0;color:var(--text-main);font-size:15px;}
.dev-npc-skull{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(248,113,113,.24);border-radius:9px;background:rgba(127,29,29,.12);color:#fca5a5;font-size:14px;}
.dev-npc-cash{display:flex;justify-content:space-between;gap:8px;margin:11px 0;color:var(--text-muted);font-size:10px;}
.dev-npc-cash strong{color:var(--money);font-family:var(--font-mono);font-size:11px;}
.dev-npc-card-actions,.dev-npc-shortcuts{display:flex;gap:7px;flex-wrap:wrap;}
.dev-npc-card-actions .btn{flex:1;}
.btn-quiet{border:1px solid var(--border-color);background:rgba(255,255,255,.025);color:var(--text-muted);}
.btn-quiet:hover:not(:disabled){border-color:rgba(96,165,250,.42);background:rgba(59,130,246,.09);color:var(--text-main);}
.btn-quiet:disabled{opacity:.55;cursor:default;}
.dev-npc-selected{border-color:rgba(96,165,250,.28);background:linear-gradient(145deg,rgba(20,30,45,.78),rgba(15,20,29,.8));}
.dev-npc-level{color:#bfdbfe;font:800 14px var(--font-mono);}
.dev-npc-selected-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:7px;}
.dev-stat-chip{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid var(--border-color);border-radius:8px;background:rgba(7,12,20,.34);color:#bfdbfe;font:700 12px var(--font-mono);}
.dev-stat-chip small,.dev-gear-chip small{color:var(--text-dim);font:700 8px var(--font-main);letter-spacing:.7px;text-transform:uppercase;}
.dev-gear-list{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0;}
.dev-gear-chip{display:flex;flex-direction:column;gap:3px;max-width:180px;padding:7px 9px;border:1px solid rgba(148,163,184,.14);border-radius:8px;background:rgba(7,12,20,.28);color:var(--text-main);font-size:10px;}
.dev-npc-wallet-line{display:flex;gap:9px;flex-wrap:wrap;padding:11px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);}
.dev-npc-wallet-line>span{flex:1;min-width:130px;color:var(--text-dim);font-size:9px;}
.dev-npc-wallet-line strong{display:block;margin-top:4px;color:var(--text-main);font-size:10px;}
.dev-npc-shortcuts{margin-top:12px;}
.dev-wallet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;gap:10px;margin-top:14px;}
.dev-field{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--text-muted);font-size:10px;font-weight:700;}
.dev-field .input-field{width:100%;font-family:var(--font-mono);}
.dev-npc-cash-current{color:var(--money);font:800 15px var(--font-mono);}
.dev-next-refill{margin:11px 0 0;color:var(--text-dim);font-size:10px;}
.dev-next-refill strong{color:var(--text-muted);}
.dev-system-account{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 14px;border:1px solid var(--border-color);border-radius:9px;background:rgba(9,14,21,.35);}
.dev-system-account>span{color:var(--text-muted);font-size:11px;}
.dev-system-account>strong{color:var(--warning);font-size:11px;}
.dev-system-account>small{flex-basis:100%;color:var(--text-dim);font-size:10px;}
@media(min-width:701px){.dev-console-tabs{position:sticky;top:0;z-index:5;backdrop-filter:blur(10px);}.dev-wallet-grid .dev-primary-action{height:39px;}}
@media(max-width:700px){.game-shell:has(.dev-console){max-width:100%;}.dev-console-header{align-items:flex-start;flex-direction:column;padding:15px;}.dev-target-indicator{align-items:flex-start;width:100%;}.dev-console-tabs{padding:9px;}.dev-tab-btn{flex:1 1 42%;justify-content:center;padding:8px 7px;}.dev-console-note{padding:10px 15px 0;}.dev-section{padding:14px;}.dev-search-row{align-items:stretch;}.dev-search-row .btn{padding-left:10px;padding-right:10px;}.dev-form-row{align-items:stretch;}.dev-form-row>label{width:100%;}.dev-form-row .input-field{flex:1;min-width:90px;max-width:none;}.dev-wallet-grid{grid-template-columns:1fr;}.dev-npc-grid{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));}}

/* ---- ID panel ---- */
.ids-panel{padding:10px 18px;}
.id-line{display:flex;gap:10px;align-items:baseline;font-size:11px;}
.id-label{font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);min-width:90px;}
.id-value{font-family:var(--font-mono);color:var(--text-muted);word-break:break-all;}

/* ---- Recent Activity log (scrollable) ---- */
.log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:10px;flex-wrap:wrap;}
.log-count{font-family:var(--font-mono);font-size:11px;color:var(--accent);background:rgba(59,130,246,0.12);border:1px solid var(--accent);border-radius:10px;padding:1px 8px;vertical-align:middle;}
.log-filters{display:flex;gap:6px;flex-wrap:wrap;}
.log-filter-btn{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-muted);font-family:var(--font-main);font-size:11px;font-weight:600;padding:5px 12px;cursor:pointer;transition:all 0.15s ease;}
.log-filter-btn:hover{color:var(--text-main);border-color:var(--border-light);}
.log-filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.log-scroll{max-height:340px;overflow-y:auto;padding-right:6px;}
.log-scroll::-webkit-scrollbar{width:8px;}
.log-scroll::-webkit-scrollbar-track{background:var(--bg-panel);border-radius:6px;}
.log-scroll::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:6px;}
.log-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-dim);}
.log-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.log-dot-crime{background:#1e40af;}
.log-dot-training{background:#15803d;}
.log-dot-shop{background:var(--money);}
.log-dot-other{background:var(--text-dim);}

/* ---- Equipment (Phase 8 + Phase 23 picker) ---- */
.equip-slot{position:relative;display:flex;flex-direction:column;gap:3px;align-items:center;text-align:center;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px 12px;}
.equip-slot-name{text-align:center;}
.btn-slot-picker{align-self:center;background:none;border:1px solid var(--border-color);border-radius:6px;color:var(--accent);cursor:pointer;font-size:15px;line-height:1;padding:3px 12px;margin:2px 0;transition:border-color 0.2s ease,color 0.2s ease;}
.btn-slot-picker:hover{border-color:var(--accent);color:var(--text-main);}
.equip-slot-select{font-size:12px;}
.equip-slot.equip-occupied{border-color:var(--accent);}
.equip-bonus{font-size:10px;color:var(--success);font-weight:600;}
.equip-item-preview{display:flex;align-items:flex-start;gap:9px;width:100%;min-width:0;text-align:left;}
.equip-item-preview>.shop-ammo-art,.equip-item-preview>.shop-melee-art{width:64px;flex:0 0 64px;border:1px solid var(--border-color);border-radius:5px;}
.equip-item-preview>.shop-injector-art{width:48px;height:48px;flex:0 0 48px;}
.equip-item-preview>.inventory-item-icon{width:42px;height:42px;flex:0 0 42px;font-size:18px;}
.equip-item-details{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;}
.equip-item-details .equip-slot-item{max-width:100%;overflow-wrap:anywhere;}
.equip-item-details .quality-tag{margin:0;}
.equip-item-details .inventory-item-stats,.equip-item-details .inventory-item-description{width:100%;text-align:left;}
.equip-item-description{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}
.equip-slot .shop-ammo-shortcut,.equip-slot .btn-unequip{max-width:100%;padding:2px 4px;font-size:10px;}
.stat-bonus{font-size:11px;color:var(--success);}

/* ---- Equipment Quality (Phase 9) ---- */
.quality-tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:10px;border:1px solid;font-size:10px;font-weight:700;letter-spacing:0.3px;vertical-align:middle;}

/* ---- HUD jail timer ---- */
.hud{flex-wrap:wrap;}
.hud-actions{display:flex;gap:8px;flex-shrink:0;}
.hud-jail-row{width:100%;display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--danger);letter-spacing:0.5px;white-space:nowrap;margin-top:2px;}
.hud-jail-row span{color:#fecaca;}
.hud-jail-row .hud-timer-link{display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding:2px 5px;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;font:inherit;cursor:pointer;}
.hud-jail-row .hud-timer-link:hover{border-color:var(--border-light);background:var(--bg-card-hover);}
.hud-jail-row .hud-timer-link span:last-child{color:inherit;font-family:var(--font-main);font-size:11px;}


.hud-booster-row{color:var(--grit);}
.hud-booster-row span{color:#ddd6fe;}
.hud-drug-row{color:#e879f9;}
.hud-drug-row span{color:#f5d0fe;}

/* ---- Splash screen: ENTER YOUR DESTINY (neon dark blue) ---- */
.splash-container{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;padding-top:25vh;z-index:100;}
.btn-splash{background:rgba(5,8,18,0.72);border:1px solid rgba(59,130,247,0.65);border-radius:10px;color:#bfdbfe;font-family:var(--font-main);font-size:clamp(13px,2.5vw,17px);font-weight:800;letter-spacing:3px;text-transform:uppercase;padding:18px 52px;cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 0 18px rgba(59,130,247,0.28),inset 0 0 14px rgba(59,130,247,0.08);text-shadow:0 0 10px rgba(96,165,250,0.45);transition:box-shadow 0.25s ease,border-color 0.25s ease,background 0.25s ease,color 0.25s ease,transform 0.25s ease;}
.btn-splash:hover{background:rgba(10,18,40,0.8);border-color:#60a5fa;color:#dbeafe;box-shadow:0 0 34px rgba(59,130,247,0.55),0 0 70px rgba(96,165,250,0.25),inset 0 0 20px rgba(59,130,247,0.15);transform:scale(1.02);}
.btn-splash:active{transform:scale(0.97);box-shadow:0 0 50px rgba(96,165,250,0.75),0 0 90px rgba(59,130,247,0.4);color:#ffffff;}
@media(max-width:600px){.btn-splash{padding:14px 30px;letter-spacing:2px;font-size:13px;}}

/* ---- Right sidebar: status timers + investments ---- */
#right-sidebar-container{position:fixed;top:14px;right:10px;z-index:8500;width:200px;pointer-events:none;}

.invest-sidebar{pointer-events:auto;background:rgba(18,20,26,0.94);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:12px;backdrop-filter:blur(6px);max-height:70vh;overflow-y:auto;}
.invest-side-title{font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;}
.inv-side-entry{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:8px 10px;margin-bottom:8px;}
.inv-side-amount{font-family:var(--font-mono);font-weight:700;color:var(--money);font-size:14px;}
.inv-side-meta{font-size:10px;color:var(--text-muted);margin:2px 0;}
.inv-side-countdown{font-family:var(--font-mono);font-size:11px;color:var(--text-main);}
.inv-side-countdown span{color:var(--xp);font-weight:700;}
.inv-side-payout{font-family:var(--font-mono);font-size:11px;color:var(--money);}
@media(max-width:700px){#invest-sidebar-container{top:auto;bottom:10px;right:10px;width:200px;}body.has-invests{padding-right:0;}}

.panel.downtown-nav{position:relative;overflow:hidden;margin-bottom:20px;padding:22px;background:radial-gradient(ellipse at 85% 0,rgba(59,130,246,.13),transparent 60%),linear-gradient(135deg,#191e29,#10131b);border:1px solid #303b50;border-radius:16px;box-shadow:0 12px 30px #0003,inset 0 1px 0 #ffffff08;}
.downtown-nav::before{content:"";position:absolute;top:0;left:22px;right:22px;height:1px;background:linear-gradient(90deg,transparent,#629dff99,transparent);}
.downtown-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;}
.downtown-eyebrow{display:block;margin-bottom:6px;color:#91a5c5;font-size:9px;letter-spacing:2px;text-transform:uppercase;font-weight:700;}
.downtown-nav h2{display:flex;align-items:center;gap:12px;margin:0;font-size:25px;letter-spacing:-.6px;color:#f4f7ff;}
.downtown-title-dot{width:6px;height:6px;border-radius:50%;background:#69a7ff;box-shadow:0 0 12px #438aff;}
.downtown-hint{font-size:11px;color:#94a3bd;}
.downtown-nav nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;}
.downtown-tab{position:relative;display:flex;align-items:center;gap:10px;min-width:0;padding:16px 10px;border:1px solid #2b3546;border-radius:10px;background:#0d111aaa;color:#b5c3da;text-align:left;font-family:var(--font-main);cursor:pointer;transition:background .16s,border-color .16s,box-shadow .16s;}
.downtown-icon{display:flex;flex:0 0 24px;align-items:center;justify-content:center;color:#7e96ba;}
.downtown-icon svg{width:24px;height:24px;}
.downtown-tab-copy{display:flex;flex-direction:column;gap:5px;min-width:0;}
.downtown-tab-label{font-size:12px;font-weight:700;}
.downtown-tab-subtitle{font-size:9px;line-height:1.4;color:#95a5bf;}
.downtown-tab:hover{background:#1b2941;border-color:#5375a8;color:#fff;}
.downtown-tab:focus-visible{outline:2px solid #a5c9ff;outline-offset:3px;}
.downtown-tab[aria-pressed='true']{background:linear-gradient(135deg,#214b87,#153157);border-color:#609df7;color:#fff;box-shadow:0 0 18px #397fee26,inset 0 1px 0 #ffffff16;}
.downtown-tab[aria-pressed='true']::after{content:"";position:absolute;bottom:0;left:22%;right:22%;height:2px;background:#83bdff;box-shadow:0 0 10px #6bafff;}
.downtown-tab[aria-pressed='true'] .downtown-icon{color:#9acaff;}
.downtown-tab[aria-pressed='true'] .downtown-tab-subtitle{color:#c3dafb;}
@media(max-width:1250px){.downtown-nav nav{grid-template-columns:repeat(3,minmax(0,1fr));}.downtown-tab{padding:14px;}}
@media(max-width:600px){.panel.downtown-nav{padding:16px;}.downtown-nav nav{grid-template-columns:repeat(2,minmax(0,1fr));}.downtown-hint{display:none;}.downtown-nav h2{font-size:23px;}.downtown-heading{margin-bottom:16px;}}
@media(prefers-reduced-motion:reduce){.downtown-tab{transition:none;}}

/* ---- Missions (Phase 14) ---- */
.mission-objective{margin-bottom:10px;}
.mission-shortcut{display:flex;justify-content:flex-end;margin:3px 0 0 auto;padding:2px 4px;color:var(--accent);font-size:10px;}

/* Shared inventory and shop collection layout. */
.shop-wallet{display:flex;flex-direction:column;align-items:flex-end;color:var(--text-muted);font-size:11px;}
.shop-wallet strong{color:var(--money);font-family:var(--font-mono);font-size:20px;}
.shop-limits,.shop-modes{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:13px 24px;border-bottom:1px solid var(--border-light);font-size:12px;}
.shop-limits strong{color:var(--success);margin-left:4px;}
.shop-limits small{color:var(--text-muted);font-size:11px;white-space:nowrap;}
.shop-search-reset{display:flex;align-items:center;gap:12px;margin-left:auto;max-width:100%;}
.shop-search-reset .shop-search{width:190px;min-width:0;padding:7px 10px;font-size:12px;}
.shop-list-header,.shop-row{display:grid;grid-template-columns:minmax(0,1fr) 145px;align-items:center;gap:18px;}
.shop-list-header{min-height:58px;border-bottom:1px solid var(--border-color);}
.shop-list-header h3{font-size:13px;}
.shop-category-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:10px 0;min-width:0;}
.shop-equipped-calibers{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--text-muted);}
.shop-equipped-calibers strong{color:var(--success);font-weight:500;}
.shop-caliber-shortcut{padding:3px 5px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text-muted);font:inherit;cursor:pointer;}
.shop-caliber-shortcut:hover{border-color:var(--border-color);background:var(--bg-card-hover);color:var(--text-main);}
.shop-ammo-shortcut{justify-content:flex-start;min-height:28px;padding:3px 0;color:var(--accent);font-size:10px;text-align:left;}
.shop-ammo-filter{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;padding:8px 24px;border-bottom:1px solid var(--border-light);background:color-mix(in srgb,var(--accent) 8%,var(--bg-panel));color:var(--text-muted);font-size:11px;}
.shop-ammo-filter strong{color:var(--text-main);}
.shop-ammo-filter .btn{min-height:30px;padding:3px 6px;white-space:nowrap;}
.shop-list-header>span{font-size:11px;text-align:right;color:var(--text-muted);}
.shop-row{padding:18px 0;border-bottom:1px solid var(--border-color);}
.shop-row-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px;color:var(--text-muted);font-size:11px;}
.shop-price{font-family:var(--font-mono);font-size:14px;color:var(--money);text-align:right;}
.shop-price small{display:block;font-family:var(--font-main);font-size:11px;color:var(--text-muted);}
.shop-quantity{display:flex;align-items:center;gap:8px;}
.shop-quantity .shop-qty{width:74px;padding:6px;font-size:14px;}
.shop-row-actions .btn{min-width:64px;white-space:normal;}
.shop-melee-art{position:relative;display:block;width:160px;flex:0 0 160px;overflow:hidden;border-radius:5px;background:var(--bg-card);}
.shop-melee-art img{position:absolute;max-width:none;height:auto;display:block;}
.shop-ammo-art{position:relative;display:block;width:120px;flex:0 0 120px;overflow:hidden;border-radius:6px;background:var(--bg-card);}
.shop-ammo-art img{position:absolute;max-width:none;height:auto;display:block;}
.shop-injector-art{position:relative;display:block;width:100px;height:100px;flex:0 0 100px;overflow:hidden;border:1px solid color-mix(in srgb,var(--injector-accent,#65d9cf) 42%,var(--border-color));border-radius:7px;background:var(--bg-card);box-shadow:0 0 14px color-mix(in srgb,var(--injector-accent,#65d9cf) 14%,transparent);}
.shop-injector-art img{display:block;width:100%;height:100%;object-fit:cover;}
@media(max-width:760px){.shop-row .inventory-item:has(.shop-ammo-art){flex-direction:column;}.shop-ammo-art{max-width:100%;flex-basis:auto;}}
.shop-melee-art.shop-firearm-art{width:110px;flex-basis:110px;}
@media(max-width:1100px){.shop-melee-art{width:120px;flex-basis:120px;}}
@media(max-width:760px){.shop-row .inventory-item:has(.shop-melee-art){flex-direction:column;}.shop-melee-art{width:150px;max-width:100%;flex-basis:auto;}}
@media(max-width:760px){.shop-melee-art.shop-firearm-art{flex-basis:auto;}}
.shop-panel .quality-tag{color:var(--accent);border-color:var(--accent);}
@media(max-width:600px){
    .shop-panel .inventory-layout{grid-template-columns:1fr;}
    .shop-panel .inventory-categories{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--border-light);}
    .shop-panel .inventory-category{width:auto;gap:8px;font-size:11px;}
    .shop-row,.shop-list-header{grid-template-columns:minmax(0,1fr) 110px;gap:10px;}
    .shop-limits small{margin-left:0;}
.shop-ammo-filter{padding:8px 14px;}
    .shop-search-reset{width:100%;margin-left:0;}
    .shop-search-reset .shop-search{flex:1;width:0;}
    .shop-wallet strong{font-size:16px;}
}
body.in-game:has(.inventory-screen) #app{max-width:none;width:auto;margin:0 220px 0 190px;padding:24px;}
.inventory-screen{max-width:1040px;margin:0 auto;}
.inventory-panel{width:100%;background:var(--bg-panel);border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden;}
.inventory-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;border-bottom:1px solid var(--border-light);}
.inventory-eyebrow{display:block;color:var(--text-muted);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:4px;}
.inventory-header h2{font-size:22px;font-weight:700;line-height:1.3;}
.inventory-total{display:flex;align-items:baseline;gap:8px;white-space:nowrap;color:var(--text-muted);font-size:12px;}
.inventory-total strong{font-family:var(--font-mono);font-size:21px;color:var(--text-main);font-weight:600;}
.inventory-layout{display:grid;grid-template-columns:174px minmax(0,1fr);min-height:480px;}
.inventory-categories{padding:14px 10px;border-right:1px solid var(--border-light);display:flex;flex-direction:column;gap:3px;}
.inventory-category{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:37px;padding:9px 12px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);font-family:var(--font-main);font-size:12px;color:var(--text-muted);cursor:pointer;text-align:left;}
.inventory-category:hover{background:var(--bg-card-hover);color:var(--text-main);}
.inventory-category.active{background:color-mix(in srgb,var(--success) 18%,var(--bg-panel));border-color:color-mix(in srgb,var(--success) 24%,var(--border-color));color:var(--text-main);font-weight:600;}
.inventory-category:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.inventory-category-count{font-family:var(--font-mono);font-size:10px;font-variant-numeric:tabular-nums;}
.inventory-content{min-width:0;padding:0 24px;}
.inventory-list-header,.inventory-row{display:grid;grid-template-columns:minmax(0,1fr) 70px 78px;column-gap:14px;align-items:center;}
.inventory-list-header{min-height:58px;border-bottom:1px solid var(--border-color);font-size:10px;color:var(--text-muted);}
.inventory-list-header h3{font-size:13px;color:var(--text-main);font-weight:600;}
.inventory-list-header>span{text-align:right;}
.inventory-list{list-style:none;max-height:570px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-light) var(--bg-panel);}
.inventory-row{padding:17px 0;border-bottom:1px solid var(--border-color);}
.inventory-row:last-child{border-bottom:none;}
.inventory-item{display:flex;align-items:flex-start;gap:13px;min-width:0;}
.inventory-item-icon{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;border:1px dashed var(--border-light);border-radius:var(--radius-sm);background:var(--bg-card);font-size:21px;}
.inventory-item-info{min-width:0;overflow-wrap:anywhere;}
.inventory-row .shop-ammo-art,.inventory-row .shop-melee-art{width:110px;flex:0 0 110px;}
.inventory-row .shop-injector-art{width:88px;height:88px;flex-basis:88px;}
@media(max-width:1100px){
    .inventory-row .shop-ammo-art,.inventory-row .shop-melee-art{width:80px;flex-basis:80px;}
}
@media(max-width:760px){
    .inventory-row .inventory-item{flex-direction:column;}
    .inventory-row .shop-ammo-art,.inventory-row .shop-melee-art{width:110px;max-width:100%;flex:0 0 auto;}
}
.inventory-item-name{font-size:13px;font-weight:600;line-height:1.5;}
.inventory-item-quality{margin:4px 0;}
.inventory-item-quality .quality-tag{margin:0;font-size:9px;padding:1px 6px;}
.inventory-item-stats{font-family:var(--font-mono);font-size:10px;color:var(--success);margin-top:3px;}
.inventory-item-description{font-size:11px;color:var(--text-muted);line-height:1.6;margin-top:3px;}
.inventory-comparison{display:flex;flex-wrap:wrap;gap:3px 8px;align-items:baseline;margin-top:5px;font-size:10px;line-height:1.45;}
.inventory-comparison-target{color:var(--text-muted);}
.inventory-comparison-deltas{display:inline-flex;flex-wrap:wrap;gap:2px 8px;}
.inventory-comparison-delta{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;}
.inventory-comparison-delta.is-up{color:var(--success);}
.inventory-comparison-delta.is-down{color:var(--danger);}
.inventory-comparison-delta.is-even{color:var(--text-muted);}
.inventory-item-lock{margin-top:4px;color:var(--danger);font-size:10px;line-height:1.4;}
.inventory-lock-state{font-size:10px;font-weight:700;color:var(--text-muted);white-space:nowrap;}
.inventory-quantity{text-align:right;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;}
.inventory-item-action{text-align:right;}
.inventory-item-action .btn{min-width:64px;}
.inventory-item-action .gym-status{font-size:10px;}
.inventory-item-mod{font-size:10px;font-weight:600;color:var(--accent);}
.weapon-mod-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;}
.weapon-mod-header h3{margin:2px 0 4px;font-size:16px;}
.weapon-mod-installed{font-size:11px;color:var(--text-muted);border:1px solid var(--border-light);border-radius:8px;padding:8px 10px;margin-bottom:10px;background:rgba(0,0,0,.2);}
.weapon-mod-installed strong{color:var(--text-main);}
.weapon-mod-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:52vh;overflow-y:auto;}
.weapon-mod-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--border-light);border-radius:8px;padding:8px 10px;background:rgba(255,255,255,.02);}
.weapon-mod-row.installed{border-color:var(--accent);}
.weapon-mod-name{font-size:12px;font-weight:700;}
.weapon-mod-rarity{text-transform:capitalize;font-size:9px;padding:1px 6px;border-radius:999px;border:1px solid var(--border-light);color:var(--text-muted);margin-left:4px;}
.weapon-mod-owned{font-size:10px;color:var(--text-muted);font-family:var(--font-mono);}
.weapon-mod-desc{font-size:10px;color:var(--text-muted);margin-top:2px;}
.weapon-mod-state{font-size:10px;color:var(--text-muted);white-space:nowrap;}
.weapon-mod-state.installed{color:var(--accent);font-weight:700;}
.weapon-mod-state.incompatible{opacity:.6;}
/* Institute Zero (Phase 53): education screen */
.iz-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px;}
.iz-header h2{margin:2px 0;}
.iz-totals{text-align:right;}
.iz-totals strong{font-size:22px;color:var(--accent);display:block;}
.iz-totals span{font-size:10px;color:var(--text-muted);}
.iz-active-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--border-light);border-left:3px solid var(--accent);background:rgba(0,0,0,.25);border-radius:8px;padding:10px 14px;margin-bottom:12px;font-size:12px;}
.iz-active-banner.idle{border-left-color:var(--border-light);color:var(--text-muted);}
.iz-categories{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:14px;}
.iz-category{display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid var(--border-light);border-radius:10px;background:var(--bg-card);padding:10px 8px;cursor:pointer;color:var(--text-main);}
.iz-category:hover{border-color:var(--accent);}
.iz-category.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow,rgba(0,0,0,.2));}
.iz-category.done{opacity:.55;}
.iz-cat-icon{font-size:22px;}
.iz-cat-name{font-size:11px;font-weight:700;text-align:center;}
.iz-cat-bar{display:block;width:100%;height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;}
.iz-cat-bar span{display:block;height:100%;background:var(--accent);}
.iz-cat-count{font-size:10px;color:var(--text-muted);font-family:var(--font-mono);}
.iz-workspace{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:14px;align-items:start;background:var(--bg-card);border:1px solid var(--border-light);border-radius:10px;padding:14px;}
.iz-tree{list-style:none;margin:0;padding:0;border-left:2px solid var(--border-light);}
.iz-course-row{margin:2px 0;}
.iz-course{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;color:var(--text-main);text-align:left;padding:5px 8px;border-radius:6px;cursor:pointer;font-size:12px;}
.iz-course:hover{background:rgba(255,255,255,.05);}
.iz-course.selected{background:rgba(127,209,185,.12);}
.iz-course-row.status-locked .iz-course,.iz-course-row.status-bachelor_locked .iz-course{opacity:.45;}
.iz-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:10px;flex-shrink:0;}
.iz-dot.completed{background:var(--success,#3f8f5f);color:#fff;font-weight:700;}
.iz-dot.active{background:var(--accent);color:#04110c;font-weight:700;}
.iz-dot.available{border:1px solid var(--accent);color:var(--accent);}
.iz-dot.locked{border:1px solid var(--border-light);color:var(--text-muted);}
.iz-detail{background:rgba(0,0,0,.25);border:1px solid var(--border-light);border-radius:10px;padding:14px;}
.iz-detail header{display:flex;align-items:center;gap:8px;}
.iz-detail h3{margin:0;font-size:15px;}
.iz-bachelor-tag{font-size:9px;font-weight:800;letter-spacing:1px;color:#04110c;background:var(--accent);border-radius:999px;padding:2px 8px;}
.iz-desc{font-size:12px;color:var(--text-muted);margin:8px 0;}
.iz-block h4{margin:10px 0 4px;font-size:11px;color:var(--text-main);}
.iz-block ul{margin:0;padding-left:16px;font-size:11px;color:var(--text-muted);}
.iz-merit-note{color:var(--accent);}
.iz-busy-note{margin-top:10px;font-size:10px;color:var(--text-muted);}
.iz-status{margin-top:12px;border-radius:8px;padding:10px 12px;font-size:12px;}
.iz-status.completed{background:rgba(63,143,95,.18);color:var(--success,#7fd1a0);font-weight:700;}
.iz-status.active{background:rgba(127,209,185,.12);color:var(--accent);}
.iz-status.locked{background:rgba(160,60,60,.15);color:#d98a8a;}
.iz-status.busy{background:rgba(90,130,180,.12);color:#8fb4d9;}
.iz-bonuses{margin-top:14px;}
.iz-bonus-list{display:flex;flex-wrap:wrap;gap:6px;}
.iz-bonus-pill{font-size:10px;border:1px solid var(--border-light);border-radius:999px;padding:3px 10px;color:var(--accent);}
@media(max-width:1100px){
.iz-workspace{grid-template-columns:1fr;}
}
.inventory-empty{min-height:310px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--text-muted);padding:24px;}
.inventory-empty>span{font-size:28px;margin-bottom:6px;}
.inventory-empty strong{color:var(--text-main);font-size:13px;}
.inventory-empty p{font-size:12px;max-width:280px;}
.inventory-footer{display:flex;flex-wrap:wrap;gap:4px 20px;border-top:1px solid var(--border-light);padding:14px 24px;color:var(--text-muted);font-size:10px;line-height:1.6;}
@media(max-width:1100px){
    body.in-game:has(.inventory-screen) #app{padding:16px;}
    .inventory-layout{grid-template-columns:140px minmax(0,1fr);}
    .inventory-content{padding:0 16px;}
    .inventory-category{padding:8px;font-size:11px;}
    .inventory-list-header,.inventory-row{grid-template-columns:minmax(0,1fr) 48px 66px;column-gap:8px;}
    .inventory-item-icon{display:none;}
}
@media(max-width:900px){
    body.in-game:has(.inventory-screen) #app{width:100%;margin:0;padding:16px;}
    .inventory-screen .game-tabs{position:static;width:100%;display:flex;flex-direction:row;flex-wrap:wrap;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px;}
    .inventory-screen .side-identity{width:100%;flex-direction:row;justify-content:center;flex-wrap:wrap;gap:10px;}
    .inventory-screen .side-avatar{width:36px;}
    .inventory-screen .tab-btn{width:auto;flex:1 1 90px;text-align:center;padding:9px;}
    .inventory-screen .side-bottom{position:static;width:100%;margin-top:4px;}
    body:has(.inventory-screen) #right-sidebar-container{position:static;width:auto;max-width:600px;margin:16px auto 0;padding:0 16px;}
    body:has(.inventory-screen) .hud{position:static;width:100%;}
}
@media(max-width:520px){
    .inventory-header{padding:20px 16px;gap:10px;}
    .inventory-header h2{font-size:19px;}
    .inventory-total{flex-direction:column;align-items:flex-end;gap:0;font-size:10px;}
    .inventory-total strong{font-size:19px;}
    .inventory-layout{grid-template-columns:110px minmax(0,1fr);}
    .inventory-categories{padding:10px 5px;}
    .inventory-category{font-size:10px;gap:4px;padding:8px 6px;}
    .inventory-category-count{font-size:9px;}
    .inventory-content{padding:0 12px;}
    .inventory-list-header,.inventory-row{grid-template-columns:minmax(0,1fr) 48px;gap:8px;}
    .inventory-list-header>span:last-child{display:none;}
    .inventory-row{align-items:start;padding:14px 0;}
    .inventory-item-action{grid-column:1/-1;}
    .inventory-item-name{font-size:12px;}
    .inventory-item-description,.inventory-item-stats{font-size:10px;}
    .inventory-quantity{font-size:10px;padding-top:3px;}
    .inventory-footer{padding:12px 16px;}
}
.npc-card-portrait,.npc-profile-portrait{display:block;flex-shrink:0;overflow:hidden;border:1px solid #47638d;border-radius:10px;background:#111722;box-shadow:0 4px 14px #0004;}
.npc-card-portrait{width:64px;height:64px;}
.npc-profile-portrait{width:104px;height:104px;}
.npc-card-portrait img,.npc-profile-portrait img{display:block;width:100%;height:100%;object-fit:cover;}
.npc-character-card{gap:14px;}
.npc-card-actions{display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;}
.npc-attack-block-reason{flex-basis:100%;text-align:right;color:var(--danger);}
.npc-stat-line{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;}
.npc-stat-chip{padding:3px 7px;border:1px solid var(--border-color);border-radius:999px;color:var(--text-muted);font:600 10px var(--font-mono);white-space:nowrap;}
.npc-stat-chip strong{color:var(--accent);font-family:var(--font-main);}
.profile-hospital-status{margin-top:6px;color:var(--warning);font-size:11px;font-weight:600;line-height:1.4;}
.profile-hospital-status span{color:var(--text-muted);font-size:10px;font-weight:400;}
@media(max-width:600px){.npc-profile-portrait{width:72px;height:72px;}.npc-character-card{flex-wrap:wrap;}.npc-card-actions{width:100%;justify-content:flex-end;}}

/* Ammunition selection keeps equipment names visually text-only. */
.equip-slot-item.ammo-select-trigger { cursor: pointer; }
.equip-slot-item.ammo-select-trigger:hover { text-decoration: underline; text-underline-offset: 3px; }
.ammo-select-trigger:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.ammo-dialog { color: var(--text); background: #12161e; border: 1px solid #34445c; border-radius: 16px; padding: 26px; width: min(480px, calc(100vw - 32px)); max-height: 90vh; overflow: auto; box-sizing: border-box; box-shadow: 0 24px 90px #0009; }
.ammo-dialog::backdrop { background: #03070dc9; backdrop-filter: blur(5px); }
.ammo-dialog h2 { margin: 0 0 8px; }
.ammo-caliber, .ammo-help { color: var(--text-muted); font-size: 13px; line-height: 1.6; }
.ammo-dialog fieldset { border: 0; padding: 0; margin: 20px 0; }
.ammo-dialog legend { margin-bottom: 10px; font-weight: 600; }
.ammo-choice { display: flex; gap: 12px; align-items: center; padding: 14px 12px; margin-bottom: 8px; border: 1px solid #303c50; border-radius: 8px; cursor: pointer; font-size: 13px; }
.ammo-choice:has(input:checked) { background: #193552; border-color: #438df5; }
.ammo-choice input { accent-color: #438df5; }
.ammo-dialog-actions { display: flex; justify-content: flex-end; gap: 10px; }
.ammo-error { color: var(--danger); font-size: 13px; }
.ammo-dialog { margin: auto; }

.offshore-panel { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(250px, 1fr); column-gap: 24px; }
.offshore-panel > .log-header { grid-column: 1 / -1; }
.offshore-panel > .resources-row, .offshore-panel > .energy-row { grid-column: 1; }
.offshore-panel > .energy-row { flex-wrap: wrap; }
.offshore-panel > .player-money-total { grid-column: 2; grid-row: 2 / 4; align-self: stretch; display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 18px 22px; border: 1px solid #25665a; border-radius: 10px; background: linear-gradient(125deg, #12392d66, #14233155); min-width: 0; }
.player-money-total strong { color: var(--money); font-size: clamp(18px, 2vw, 28px); font-family: var(--font-mono); overflow-wrap: anywhere; }
.player-money-total small { color: var(--text-muted); font-size: 10px; line-height: 1.6; }
.offshore-panel > .equip-note, .offshore-panel > .log-line { grid-column: 1 / -1; }
@media(max-width:1000px) { .offshore-panel { display: flex; flex-direction: column; } .offshore-panel > .player-money-total { order: 1; margin-top: 14px; } }
.offshore-panel > .resources-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media(max-width:520px) { .offshore-panel > .resources-row { grid-template-columns: 1fr; } }

.combat-report-dialog { position: fixed; inset: 50% auto auto 50%; transform: translate(-50%,-50%); margin: 0; width: min(1680px, calc(100vw - 36px)); max-width: none; max-height: calc(100vh - 36px); padding: 0; overflow: hidden; color: var(--text-main); background: #0c111a; border: 1px solid #34445a; border-radius: 16px; box-shadow: 0 28px 100px #000c; }
.combat-report-dialog::backdrop { background: #02060cdd; backdrop-filter: blur(6px); }
.combat-report-shell { max-height: calc(100vh - 34px); overflow-y: auto; padding: 22px; }
.combat-report-header { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--border-color); }
.combat-report-header h2 { margin: 4px 0 0; font-size: 24px; }
.combat-report-close { width: 40px; height: 40px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--bg-panel); color: var(--text-main); font-size: 24px; cursor: pointer; }
.combat-outcome { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 16px 0; padding: 12px 16px; border: 1px solid var(--border-color); border-radius: 10px; background: #111a27; }
.combat-outcome strong { font-size: 18px; letter-spacing: .08em; }
.combat-outcome-win strong { color: var(--success); }
.combat-outcome-loss strong { color: var(--danger); }
.combat-outcome-tie strong { color: var(--xp); }
.combat-outcome span { color: var(--text-muted); font-size: 12px; text-align: right; }
.combat-fighters-grid { display: grid; grid-template-columns: minmax(0,1fr) 44px minmax(0,1fr); align-items: stretch; gap: 12px; }
.combat-fighter { min-width: 0; padding: 16px; border: 1px solid #2b3a50; border-radius: 12px; background: linear-gradient(160deg,#141d2a,#0e141e 72%); }
.combat-attacker { border-top: 3px solid #3c8bff; }
.combat-defender { border-top: 3px solid #dd5460; }
.combat-fighter-header { display: flex; align-items: center; gap: 10px; }
.combat-fighter-avatar { width: 46px; height: 46px; flex: 0 0 46px; display: grid; place-items: center; overflow: hidden; border: 1px solid #40546d; border-radius: 10px; background: #202b3b; font-size: 23px; }
.combat-fighter-avatar-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.combat-fighter-identity { min-width: 0; flex: 1; }
.combat-fighter-identity h3 { margin: 0 0 3px; overflow-wrap: anywhere; font-size: 15px; }
.combat-fighter-identity span { color: var(--text-muted); font-size: 10px; }
.combat-fighter-damage { color: #ff7278; font-family: var(--font-mono); font-size: 19px; text-align: right; }
.combat-fighter-damage small { display: block; color: var(--text-muted); font: 9px var(--font-mono); }
.combat-health { margin-top: 14px; }
.combat-health>div:first-child { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 6px; color: var(--text-muted); font-size: 10px; }
.combat-health>div:first-child strong { color: var(--text-main); font-family: var(--font-mono); }
.combat-health-track { height: 8px; overflow: hidden; border-radius: 8px; background: #303744; }
.combat-health-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#e3505c,#f29c64); transition: width .38s ease; }
.combat-fighter-stats { display: flex; flex-wrap: wrap; gap: 5px; margin: 12px 0; }
.combat-fighter-stats span { padding: 4px 6px; border: 1px solid #2b3a50; border-radius: 5px; color: var(--text-muted); font: 8px var(--font-mono); }
.combat-fighter-stats strong { color: var(--text-main); }
.combat-mannequin-title { margin: 12px 0 6px; color: #aabbd0; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; }
.combat-loadout-stage { display: grid; grid-template-columns: minmax(145px,.9fr) minmax(180px,1.05fr) minmax(165px,1fr); align-items: center; gap: 10px; }
.combat-mannequin-wrap { position: relative; min-width: 0; overflow: hidden; border: 1px solid #26374b; border-radius: 12px; background: radial-gradient(ellipse at 50% 45%,rgba(55,104,157,.12),transparent 65%),linear-gradient(155deg,#111b29,#0d141f 72%); }
.combat-mannequin-wrap::before { content: ""; position: absolute; inset: 8% 8% 6%; border-radius: 50%; background: radial-gradient(ellipse,rgba(59,130,210,.14),rgba(59,130,210,.04) 42%,transparent 72%); pointer-events: none; }
.combat-mannequin { position: relative; width: min(100%,320px); height: 300px; margin: 0 auto; }
.combat-mannequin-silhouette { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 8px 14px rgba(24,50,80,.28)); }
.combat-mannequin-shadow { fill: #050a11; opacity: .72; filter: blur(4px); }
.combat-mannequin-detail { filter: drop-shadow(0 0 3px rgba(123,170,217,.12)); }
.combat-gear-item.fitted,.combat-fit-empty { position: absolute; z-index: 1; width: 112px; min-height: 69px; padding: 5px; display: flex; flex-direction: column; align-items: center; gap: 3px; border: 1px solid #34465e; border-radius: 7px; background: #101925ed; text-align: center; }
.combat-gear-label { color: #9bacc0; font-size: 8px; text-transform: uppercase; letter-spacing: .05em; }
.combat-gear-content { min-width: 0; display: flex; align-items: center; justify-content: center; gap: 6px; }
.combat-gear-content>div:last-child { min-width: 0; display: flex; flex-direction: column; }
.combat-gear-content strong { max-width: 72px; overflow: hidden; color: var(--text-main); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.combat-gear-content small { max-width: 75px; overflow: hidden; color: var(--text-muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.combat-mannequin .combat-gear-item .shop-ammo-art,.combat-mannequin .combat-gear-item .shop-melee-art { width: 32px; flex: 0 0 32px; border-radius: 3px; }
.combat-mannequin .combat-gear-item .shop-melee-art img,.combat-mannequin .combat-gear-item .shop-ammo-art img { max-width: none; }
.fit-helmet { top: 0; left: 50%; transform: translateX(-50%); }
.fit-gloves { top: 82px; left: 0; }
.fit-armor { top: 82px; right: 0; }
.fit-pants { top: 178px; left: 0; }
.fit-boots { top: 178px; right: 0; }
.combat-fit-empty { min-height: auto; color: #6f8095; }
.combat-fit-empty small { font-size: 8px; }
.combat-loadout-rack { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr); gap: 6px; }
.combat-loadout-equipped { min-width: 0; }
.combat-loadout-equipped .combat-gear-item:not(.fitted) { min-height: 58px; }
.combat-loadout-empty { min-width: 0; min-height: 58px; padding: 6px 8px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 2px 8px; border: 1px solid #2c3a4e; border-radius: 7px; background: #101722; }
.combat-loadout-empty .combat-gear-label { grid-column: 1 / -1; }
.combat-loadout-empty small { color: #71839b; font-size: 9px; }
.combat-loadout-placeholder { grid-column: 2; grid-row: 2 / span 2; width: 34px; height: 34px; display: grid; place-items: center; border: 1px dashed #40516a; border-radius: 6px; color: #586a82; font: 18px var(--font-mono); }
.combat-injector-slot { border-style: dashed; border-color: #43537c; background: linear-gradient(120deg,#151b2a,#101722); }
.combat-injector-slot .combat-loadout-placeholder { border-color: #626095; color: #a49fe0; }
.combat-body-stage { position: relative; isolation: isolate; min-width: 0; height: 392px; display: flex; justify-content: center; align-items: flex-end; overflow: hidden; border: 1px solid #293a4e; border-radius: 12px; background: linear-gradient(180deg,#121c2a,#101722 78%,#0d141d); }
.combat-body-backlight { position: absolute; z-index: -1; inset: 8% 9% 7%; border-radius: 50%; background: radial-gradient(ellipse,rgba(70,133,196,.2),rgba(48,83,122,.09) 45%,transparent 74%); filter: blur(5px); pointer-events: none; }
.combat-body-stage::after { content: ""; position: absolute; z-index: 0; bottom: 10px; left: 18%; right: 18%; height: 13px; border: 1px solid #41566d66; border-radius: 50%; background: radial-gradient(ellipse,#26384d,#141d29 70%); box-shadow: 0 6px 18px #0008; pointer-events: none; }
.combat-body-model { position: relative; z-index: 1; display: block; max-width: 100%; max-height: 356px; margin-bottom: 30px; object-fit: contain; filter: drop-shadow(0 10px 18px rgba(4,10,17,.48)); pointer-events: none; user-select: none; }
.combat-body-model-tag { position: absolute; z-index: 2; bottom: 7px; padding: 3px 8px; border: 1px solid #34465b; border-radius: 20px; background: #111a25e8; color: #9eafc4; font-size: 8px; letter-spacing: .08em; pointer-events: none; }
.combat-loadout-rack { min-width: 0; align-self: stretch; display: block; }
.combat-loadout-rack h4 { margin: 0 0 6px; color: #aabbd0; font-size: 9px; text-transform: uppercase; letter-spacing: .07em; }
.combat-loadout-slots { display: grid; grid-template-columns: minmax(0,1fr); gap: 5px; }
.combat-loadout-equipped { min-width: 0; }
.combat-loadout-rack .combat-gear-item:not(.fitted) { min-width: 0; min-height: 48px; padding: 5px 6px; border: 1px solid #2c3a4e; border-radius: 7px; background: #101722; }
.combat-loadout-rack .combat-gear-item:not(.fitted) .combat-gear-label { display: block; margin-bottom: 3px; }
.combat-loadout-rack .combat-gear-content { justify-content: flex-start; gap: 5px; }
.combat-loadout-rack .combat-gear-item:not(.fitted) .shop-injector-art { width:38px;height:38px;flex:0 0 38px; }
.combat-loadout-rack .combat-gear-content strong { max-width: 100px; }
.combat-loadout-rack .combat-gear-content small { max-width: 105px; }
.combat-gear-content .inventory-item-stats,.combat-gear-content .inventory-item-description { max-width: 100%; margin-top: 2px; color: var(--text-muted); font-size: 8px; line-height: 1.3; text-align: left; white-space: normal; overflow-wrap: anywhere; }
.combat-gear-content .inventory-item-stats { color: #72d6a0; }
.combat-gear-content .quality-tag { margin: 0; font-size: 8px; padding: 1px 5px; }
.combat-gear-content>div:last-child { flex: 1 1 0; width: 100%; }
.combat-gear-content .inventory-item-stats,.combat-gear-content .inventory-item-description { width: 100%; }
.combat-loadout-rack .combat-gear-item:not(.fitted) .shop-ammo-art,.combat-loadout-rack .combat-gear-item:not(.fitted) .shop-melee-art { width: 38px; flex: 0 0 38px; border-radius: 4px; }
.combat-loadout-rack .combat-gear-item:not(.fitted) .shop-firearm-art { width: 46px; flex-basis: 46px; }
.combat-loadout-empty { min-width: 0; min-height: 48px; padding: 5px 6px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 2px 6px; border: 1px solid #2c3a4e; border-radius: 7px; background: #101722; }
.combat-loadout-empty .combat-gear-label { grid-column: 1 / -1; }
.combat-loadout-empty small { color: #71839b; font-size: 9px; }
.combat-loadout-placeholder { grid-column: 2; grid-row: 2 / span 2; width: 27px; height: 27px; display: grid; place-items: center; border: 1px dashed #40516a; border-radius: 6px; color: #586a82; font: 15px var(--font-mono); }
.combat-body-model-settings { display: grid; grid-template-columns: minmax(0,1fr) minmax(250px,.7fr) auto; align-items: center; gap: 12px; }
.combat-body-model-settings .equip-note { margin: 5px 0 0; }
.combat-model-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.combat-model-option { position: relative; min-width: 0; min-height: 94px; padding: 8px; display: flex; align-items: center; justify-content: center; gap: 7px; overflow: hidden; border: 1px solid #2d3c51; border-radius: 8px; background: linear-gradient(145deg,#141d2a,#101620); color: #aebdd0; cursor: pointer; font-size: 10px; }
.combat-model-option.selected,.combat-model-option:focus-within { border-color: #438dff; box-shadow: inset 0 0 0 1px #438dff55,0 0 16px #2675e422; color: #eff5ff; }
.combat-model-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.combat-model-option img { align-self: flex-end; height: 82px; max-width: 58px; object-fit: contain; pointer-events: none; }
.combat-model-option span { align-self: center; }
.combat-body-model-settings > .btn { white-space: nowrap; }
.combat-gear-rack { margin-top: 8px; }
.combat-gear-rack h4 { margin: 0 0 6px; color: #aabbd0; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.combat-gear-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.combat-gear-item:not(.fitted) { min-width: 0; padding: 7px; border: 1px solid #2c3a4e; border-radius: 7px; background: #101722; }
.combat-gear-item:not(.fitted) .combat-gear-label { display: block; margin-bottom: 4px; }
.combat-gear-item:not(.fitted) .shop-ammo-art,.combat-gear-item:not(.fitted) .shop-melee-art { width: 48px; flex: 0 0 48px; border-radius: 4px; }
.combat-gear-item:not(.fitted) .shop-injector-art { width:48px;height:48px;flex:0 0 48px; }
.combat-gear-item:not(.fitted) .shop-firearm-art { width: 58px; flex-basis: 58px; }
.combat-no-gear { color: var(--text-muted); font-size: 10px; }
.combat-resource-use { display: grid; grid-template-columns: 45px minmax(0,1fr); gap: 5px 8px; margin-top: 12px; font-size: 9px; }
.combat-resource-use span { color: var(--text-muted); }
.combat-resource-use strong { overflow-wrap: anywhere; font-weight: 500; }
.combat-vs { align-self: center; justify-self: center; width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid #52647c; border-radius: 50%; background: #171f2b; color: #bccbe0; font: 700 10px var(--font-mono); }
.combat-rewards,.combat-log-section { margin-top: 16px; padding: 14px 16px; border: 1px solid #2b394d; border-radius: 10px; background: #101722; }
.combat-rewards h3,.combat-log-section h3 { display: flex; justify-content: space-between; gap: 12px; margin: 0 0 10px; font-size: 13px; }
.combat-reward-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.combat-reward-grid>span { padding: 8px 10px; border: 1px solid #31445a; border-radius: 7px; color: var(--text-muted); font-size: 10px; }
.combat-reward-grid>span strong { color: var(--money); font: 700 12px var(--font-mono); }
.combat-reward-grid>span small { display: block; margin-top: 3px; color: #9dacc0; font-size: 9px; }
.combat-injuries { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.combat-hospitalized { color: #ff8b91; font-size: 10px; }
.combat-log-section h3 span { color: var(--text-muted); font-size: 10px; font-weight: 400; }
.combat-log { max-height: 250px; overflow-y: auto; margin: 0; padding: 0; list-style: none; }
.combat-log li { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 8px; padding: 7px 3px; border-bottom: 1px solid #202a38; color: #c3ccda; font-size: 10px; line-height: 1.5; }
.combat-log li:last-child { border-bottom: 0; }
.combat-log li>span { color: #71839b; font: 9px var(--font-mono); }
.combat-log li.combat-log-current { border-radius: 5px; border-bottom-color: #438dff55; background: linear-gradient(90deg,#438dff1a,transparent 70%); color: #edf4ff; }
.combat-log li.combat-log-current>span { color: #78aaff; }
.combat-replay-controls { margin: 14px 0; padding: 12px 14px; border: 1px solid #334968; border-radius: 10px; background: linear-gradient(125deg,#111d2d,#101722 72%); }
.combat-replay-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.combat-replay-heading h3 { margin: 2px 0 0; font-size: 14px; }
.combat-replay-counter { color: #a9bad0; font: 10px var(--font-mono); }
.combat-replay-buttons { display: flex; flex-wrap: wrap; gap: 7px; }
.combat-replay-buttons .btn { min-height: 32px; padding: 6px 10px; font-size: 10px; }
.combat-replay-buttons button:disabled { opacity: .45; cursor: not-allowed; }
.combat-replay-scrubber-label { display: block; margin: 10px 0 4px; color: var(--text-muted); font-size: 9px; }
.combat-replay-scrubber { display: block; width: 100%; height: 18px; margin: 0; accent-color: #438dff; cursor: pointer; }
.combat-replay-live { margin-top: 8px; padding: 9px 10px; border-left: 2px solid #438dff; border-radius: 4px; background: #0b121c; }
.combat-replay-live strong { color: #dce8f8; font-size: 10px; }
.combat-replay-live p { margin: 4px 0 0; color: #aab8ca; font-size: 10px; line-height: 1.5; }
.combat-replay-effects,.combat-replay-resources { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 7px; }
.combat-replay-effects strong,.combat-replay-resources strong { margin-right: 3px; color: #99acc5; font-size: 9px; }
.combat-replay-effects span,.combat-replay-resources span { padding: 3px 6px; border: 1px solid #293950; border-radius: 5px; color: #b7c5d7; font-size: 9px; }
.combat-replay-motion-note { margin: 7px 0 0; color: #9baac0; font-size: 9px; }
.combat-replay-unavailable { margin: 14px 0; padding: 10px 12px; border: 1px dashed #3b4b62; border-radius: 8px; color: #9eafc4; font-size: 10px; }
.combat-report-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 14px; color: var(--text-muted); font-size: 9px; }
.combat-history-panel { margin-bottom: 14px; }
.combat-settings-total { color: var(--text-muted); font-size: 10px; }
.combat-settings-total { color: var(--accent); letter-spacing: .04em; }
.combat-settings-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 12px; }
.combat-setting-control { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; padding: 8px 10px; border: 1px solid var(--border-color); border-radius: 8px; background: rgba(9,15,24,.38); color: var(--text-muted); font-size: 11px; }
.combat-setting-input { width: 64px; min-width: 0; padding: 6px 7px; text-align: right; font: 700 12px var(--font-mono); }
.combat-settings-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 10px; }
.combat-settings-footer p { margin: 0; max-width: 680px; }
.combat-settings-footer .btn:disabled { opacity: .5; cursor: not-allowed; }
.combat-auto-refill { display:flex; align-items:flex-start; gap:9px; margin-top:10px; padding:10px 12px; border:1px solid var(--border-color); border-radius:8px; background:rgba(9,15,24,.38); cursor:pointer; }
.combat-auto-refill input { width:16px; height:16px; margin:1px 0 0; accent-color:var(--accent); }
.combat-auto-refill span { display:grid; gap:3px; }
.combat-auto-refill strong { color:var(--text-main); font-size:12px; }
.combat-auto-refill small { color:var(--text-muted); font-size:11px; line-height:1.4; }
.injector-item-stats { color:var(--injector-accent,#65d9cf)!important; }
.combat-action-prompt { margin: 14px 0; padding: 14px; border: 1px solid #354a68; border-radius: 12px; background: linear-gradient(120deg,#152338,#101722 70%); }
.combat-action-prompt h3 { margin: 0 0 10px; color: #dce9fb; font-size: 14px; }
.combat-action-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.combat-action-choice { display: flex; align-items: flex-start; flex-direction: column; gap: 4px; min-height: 56px; text-align: left; }
.combat-action-choice span { color: #d0dcef; font-size: 10px; }
.combat-action-choice:disabled { opacity: .55; cursor: wait; }
.combat-history-retention,.combat-history-date { color: var(--text-muted); font-size: 10px; }
.combat-history-list { display: grid; gap: 7px; }
.combat-history-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 11px; border: 1px solid var(--border-color); border-radius: 8px; background: var(--bg-panel); }
.combat-history-copy { display: grid; gap: 3px; min-width: 0; }
.combat-history-copy strong { overflow: hidden; color: var(--text-main); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.combat-history-meta { color: var(--text-muted); font-size: 10px; }
.combat-history-win { color: var(--success); }
.combat-history-loss { color: var(--danger); }
.combat-history-tie { color: var(--text-muted); }
@media(max-width:520px) { .combat-history-row { align-items: flex-start; } .combat-history-copy strong { white-space: normal; } .combat-history-retention { display: none; } }
@media(max-width:700px) { .combat-settings-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .combat-settings-footer { align-items: stretch; flex-direction: column; } }
@media(max-width:700px) { .combat-action-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:380px) { .combat-settings-grid { grid-template-columns: minmax(0,1fr); } }
@media(max-width:1200px) { .combat-report-shell { padding: 14px; } .combat-fighters-grid { grid-template-columns: minmax(0,1fr); } .combat-vs { margin: 0 auto; } }
@media(max-width:520px) { .combat-report-dialog { width: calc(100vw - 12px); max-height: calc(100vh - 12px); border-radius: 10px; } .combat-report-shell { max-height: calc(100vh - 14px); padding: 10px; } .combat-fighter { padding: 10px; } .combat-loadout-stage { grid-template-columns: minmax(0,1fr); } .combat-mannequin { height: 276px; } .combat-loadout-rack { grid-template-columns: repeat(2,minmax(0,1fr)); } .combat-injector-slot { grid-column: 1 / -1; } .combat-outcome { align-items: flex-start; flex-direction: column; gap: 5px; } .combat-outcome span { text-align: left; } .combat-report-footer { align-items: flex-start; flex-direction: column; } }
@media(prefers-reduced-motion:reduce) { .combat-health-track i { transition: none; } .combat-report-dialog,.combat-report-dialog * { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
.facility-panel { max-width: 1100px; margin: 0 auto; padding: 22px; }
.facility-header { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 18px; }
.facility-header h2 { margin: 4px 0; color: var(--text-main); font-size: 23px; }
.facility-header p { margin: 0; color: var(--text-muted); font-size: 12px; }
.facility-mark { display: grid; place-items: center; width: 54px; height: 54px; flex: 0 0 54px; border: 1px solid #36475d; border-radius: 14px; background: linear-gradient(145deg,#1b2738,#101720); color: var(--accent); font-size: 27px; font-weight: 800; }
.facility-state { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-bottom: 14px; padding: 14px 16px; border: 1px solid; border-radius: 10px; }
.facility-state strong { font: 700 12px var(--font-mono); letter-spacing: .6px; }
.facility-state span { color: var(--text-main); font-size: 12px; }
.facility-state time { color: inherit; font: 700 14px var(--font-mono); }
.facility-state small { width: 100%; color: var(--text-muted); font-size: 10px; }
.facility-state-danger { border-color: #7b343d; background: linear-gradient(100deg,#371c25,#17151d); color: #ff858d; }
.facility-state-safe { border-color: #245847; background: linear-gradient(100deg,#102e2a,#141d26); color: #50d8a2; }
.facility-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.facility-card { min-width: 0; padding: 16px; border: 1px solid var(--border-color); border-radius: 10px; background: linear-gradient(155deg,#151d29,#10151e); }
.facility-card h3 { margin: 0 0 10px; color: var(--text-main); font-size: 13px; }
.facility-card p { color: var(--text-muted); font-size: 11px; line-height: 1.6; }
.facility-prison-info { margin-top: 12px; }
.facility-prison-info p:last-child { margin-bottom: 0; }
.facility-rules { display: flex; flex-direction: column; gap: 5px; margin-top: 14px; padding: 12px 14px; border-top: 1px solid var(--border-color); color: var(--text-muted); font-size: 10px; line-height: 1.55; }
.facility-rules strong { color: var(--text-main); font-size: 11px; }
@media(max-width:700px) { .facility-panel { padding: 14px; } .facility-grid { grid-template-columns: minmax(0,1fr); } .facility-mark { width: 44px; height: 44px; flex-basis: 44px; } }
@media(max-width:700px) { .combat-body-model-settings { grid-template-columns: minmax(0,1fr); } .combat-body-model-settings > .btn { justify-self: start; } }
@media(max-width:520px) { .combat-loadout-stage { grid-template-columns: minmax(0,1fr); } .combat-body-stage { grid-row: 1; height: 320px; } .combat-body-model { max-height: 286px; } .combat-loadout-rack-armor { grid-row: 2; } .combat-loadout-rack-weapons { grid-row: 3; } .combat-loadout-slots { grid-template-columns: repeat(2,minmax(0,1fr)); } .combat-loadout-rack .combat-gear-content strong { max-width: 82px; } .combat-loadout-rack .combat-gear-content small { max-width: 82px; } .combat-injector-slot { grid-column: 1 / -1; } .combat-model-option { min-height: 78px; padding: 5px; font-size: 9px; } .combat-model-option img { height: 68px; max-width: 42px; } }
@media(max-width:640px) { .combat-loadout-stage { grid-template-columns: minmax(0,1fr); } .combat-body-stage { grid-row: 1; height: 320px; } .combat-loadout-rack-armor { grid-row: 2; } .combat-loadout-rack-weapons { grid-row: 3; } .combat-loadout-slots { grid-template-columns: repeat(2,minmax(0,1fr)); } .combat-injector-slot { grid-column: 1 / -1; } }

/* Phase 41: Workshop & Salvage Facility */
.workshop-panel { width: 100%; }
.workshop-subnav { display: flex; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--border-light); background: rgba(14,21,32,0.4); }
.workshop-subtab-btn { padding: 8px 16px; border: 1px solid var(--border-color); border-radius: 6px; background: transparent; color: var(--text-muted); font-size: 12px; font-weight: 600; cursor: pointer; transition: all 0.2s; }
.workshop-subtab-btn:hover { border-color: var(--accent); color: var(--text-main); }
.workshop-subtab-btn.active { border-color: var(--accent); background: var(--accent); color: #0a0e14; }
.workshop-categories { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 16px; border-bottom: 1px solid var(--border-light); }
.workshop-cat-btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--border-color); border-radius: 20px; background: rgba(16,24,36,0.6); color: var(--text-muted); font-size: 11px; cursor: pointer; transition: all 0.15s; }
.workshop-cat-btn:hover { color: var(--text-main); border-color: var(--border-light); }
.workshop-cat-btn.active { border-color: var(--accent); color: var(--accent); background: rgba(94,234,212,0.1); }
.workshop-cat-btn .count-badge { padding: 1px 6px; border-radius: 10px; background: rgba(255,255,255,0.08); font-size: 10px; font-family: var(--font-mono); }
.workshop-body { padding: 16px; }
.recipes-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 14px; }
.recipe-card { display: flex; flex-direction: column; justify-content: space-between; padding: 14px 16px; border: 1px solid var(--border-color); border-radius: 10px; background: linear-gradient(155deg,#131a26,#0d131c); transition: border-color 0.2s; }
.recipe-card.craftable { border-color: #27435f; }
.recipe-card.craftable:hover { border-color: var(--accent); }
.recipe-card.locked { opacity: 0.85; border-style: dashed; }
.recipe-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 8px; }
.recipe-title { margin: 0 0 4px; font-size: 14px; color: var(--text-main); font-weight: 700; }
.recipe-output-badge { display: inline-block; padding: 2px 8px; border-radius: 4px; background: rgba(94,234,212,0.12); color: var(--accent); font-size: 11px; font-weight: 600; font-family: var(--font-mono); }
.recipe-cost-info { font-size: 11px; text-align: right; white-space: nowrap; font-family: var(--font-mono); }
.req-ok { color: var(--success, #50d8a2); }
.req-bad { color: var(--danger, #ff858d); }
.recipe-desc { margin: 0 0 12px; color: var(--text-muted); font-size: 11px; line-height: 1.5; }
.recipe-ingredients-wrap { margin-bottom: 12px; }
.recipe-ing-label { display: block; margin-bottom: 6px; color: var(--text-muted); font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; }
.recipe-ingredients-list { display: flex; flex-wrap: wrap; gap: 6px; }
.recipe-ing { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: 5px; font-size: 11px; font-family: var(--font-mono); }
.recipe-ing.ing-met { background: rgba(80,216,162,0.12); border: 1px solid rgba(80,216,162,0.3); color: #86efac; }
.recipe-ing.ing-missing { background: rgba(255,133,141,0.1); border: 1px solid rgba(255,133,141,0.25); color: #fca5a5; }
.recipe-actions { display: flex; justify-content: flex-end; margin-top: auto; padding-top: 10px; border-top: 1px solid rgba(255,255,255,0.06); }
.salvage-panel { display: flex; flex-direction: column; gap: 14px; }
.salvage-intro { padding: 14px 16px; border: 1px solid var(--border-color); border-radius: 8px; background: rgba(16,24,36,0.4); }
.salvage-intro h3 { margin: 0 0 6px; font-size: 15px; color: var(--text-main); }
.salvage-intro p { margin: 0; color: var(--text-muted); font-size: 12px; line-height: 1.5; }
.salvage-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.salvage-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid var(--border-color); border-radius: 8px; background: #111722; }
.salvage-item-info { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; }
.salvage-item-name { color: var(--text-main); font-size: 13px; }
.salvage-item-qty { color: var(--text-muted); font-size: 11px; font-family: var(--font-mono); }
.salvage-yield-preview { display: flex; align-items: center; gap: 10px; font-size: 11px; font-family: var(--font-mono); }
.yield-cash { color: #50d8a2; }
.yield-mats { color: #93c5fd; }
.salvage-action { flex-shrink: 0; }
.empty-salvage-state { text-align: center; padding: 36px 16px; color: var(--text-muted); font-size: 13px; }
.empty-salvage-state p { margin: 0 0 6px; }
@media(max-width: 700px) {
    .salvage-row { flex-direction: column; align-items: flex-start; gap: 8px; }
    .salvage-yield-preview { width: 100%; justify-content: space-between; }
    .salvage-action { width: 100%; }
    .salvage-action .btn { width: 100%; }
    .recipes-grid { grid-template-columns: 1fr; }
}

/* Phase 42: District Zero Raceway & Motorsport Styling */
.raceway-panel { width: 100%; }
.raceway-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.raceway-telemetry { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.telemetry-pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 6px; background: rgba(16,24,36,0.6); border: 1px solid var(--border-color); font-size: 11px; font-family: var(--font-mono); color: var(--text-muted); }
.telemetry-pill strong { color: var(--text-main); }

.raceway-subnav { margin-top: 10px; }
.raceway-body { padding: 16px; display: flex; flex-direction: column; gap: 18px; }

/* Vehicle Stats Bars & Grid */
.vehicle-stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px 14px; margin: 10px 0; }
.vehicle-stat-bar { display: flex; flex-direction: column; gap: 3px; }
.stat-bar-head { display: flex; justify-content: space-between; font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-muted); font-family: var(--font-mono); }
.stat-bar-head .stat-val { color: var(--text-main); font-weight: 700; }
.stat-bar-track { width: 100%; height: 6px; border-radius: 3px; background: rgba(255,255,255,0.07); overflow: hidden; position: relative; }
.stat-bar-fill { height: 100%; border-radius: 3px; transition: width 0.3s ease-out; }

/* Active Vehicle Hero Card */
.active-vehicle-card { padding: 16px; border-radius: 10px; border: 1px solid #1e3a5f; background: linear-gradient(135deg, rgba(14,24,38,0.9), rgba(9,14,23,0.95)); box-shadow: 0 4px 20px rgba(0,0,0,0.3); }
.active-vehicle-card.empty-car-card { border: 1px dashed var(--border-color); text-align: center; color: var(--text-muted); padding: 24px 16px; }
.active-vehicle-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,0.06); padding-bottom: 10px; }
.car-eyebrow { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: var(--accent); font-family: var(--font-mono); }
.car-name { margin: 2px 0 0; font-size: 17px; font-weight: 700; color: #fff; }
.car-power-badge { padding: 4px 10px; border-radius: 6px; background: rgba(56,189,248,0.12); border: 1px solid rgba(56,189,248,0.3); color: #38bdf8; font-size: 11px; font-family: var(--font-mono); font-weight: 600; white-space: nowrap; }
.car-power-badge strong { font-size: 13px; color: #fff; margin-left: 2px; }

/* Tracks Catalog & Grid */
.tracks-heading { margin: 6px 0 2px; }
.tracks-heading h3 { margin: 0 0 4px; font-size: 16px; color: var(--text-main); }
.tracks-heading p { margin: 0; color: var(--text-muted); font-size: 12px; }
.tracks-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.track-card { display: flex; flex-direction: column; border: 1px solid var(--border-color); border-radius: 10px; background: #0f1520; overflow: hidden; transition: transform 0.15s, border-color 0.2s; }
.track-card:hover { border-color: #2b4566; transform: translateY(-2px); }
.track-map-wrapper { position: relative; height: 130px; background: #080c13; display: flex; align-items: center; justify-content: center; padding: 12px; border-bottom: 1px solid var(--border-color); }
.track-svg { width: 100%; height: 100%; max-height: 110px; filter: drop-shadow(0 0 6px rgba(56,189,248,0.3)); }
.track-svg-bg { stroke: rgba(255,255,255,0.12); stroke-width: 8; fill: none; }
.track-svg-fg { stroke: #38bdf8; stroke-width: 3; fill: none; stroke-linejoin: round; stroke-linecap: round; }
.track-surface-tag { position: absolute; bottom: 8px; right: 8px; }
.badge-tarmac { display: inline-block; padding: 2px 8px; border-radius: 4px; background: rgba(34,197,94,0.15); border: 1px solid rgba(34,197,94,0.3); color: #4ade80; font-size: 10px; font-weight: 600; text-transform: uppercase; font-family: var(--font-mono); }
.badge-dirt { display: inline-block; padding: 2px 8px; border-radius: 4px; background: rgba(234,179,8,0.15); border: 1px solid rgba(234,179,8,0.3); color: #facc15; font-size: 10px; font-weight: 600; text-transform: uppercase; font-family: var(--font-mono); }
.badge-mixed { display: inline-block; padding: 2px 8px; border-radius: 4px; background: rgba(168,85,247,0.15); border: 1px solid rgba(168,85,247,0.3); color: #c084fc; font-size: 10px; font-weight: 600; text-transform: uppercase; font-family: var(--font-mono); }

.track-info { padding: 14px; display: flex; flex-direction: column; flex: 1; }
.track-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin-bottom: 6px; }
.track-name { margin: 0; font-size: 14px; font-weight: 700; color: #fff; }
.track-sector { display: block; font-size: 10px; color: var(--text-muted); font-family: var(--font-mono); margin-top: 1px; }
.track-diff { font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 4px; text-transform: uppercase; font-family: var(--font-mono); }
.track-diff-easy { background: rgba(34,197,94,0.15); color: #4ade80; }
.track-diff-medium { background: rgba(234,179,8,0.15); color: #facc15; }
.track-diff-hard { background: rgba(249,115,22,0.15); color: #fb923c; }
.track-diff-expert { background: rgba(239,68,68,0.15); color: #f87171; }
.track-desc { font-size: 11px; color: var(--text-muted); line-height: 1.45; margin: 0 0 10px; flex: 1; }
.track-meta-row { display: flex; justify-content: space-between; font-size: 11px; color: var(--text-muted); font-family: var(--font-mono); padding: 8px 0; border-top: 1px solid rgba(255,255,255,0.06); border-bottom: 1px solid rgba(255,255,255,0.06); margin-bottom: 10px; }
.track-meta-row strong { color: var(--text-main); }
.track-action-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.laps-select-label { font-size: 11px; color: var(--text-muted); display: inline-flex; align-items: center; gap: 6px; }
.select-track-laps { padding: 4px 8px; border-radius: 5px; background: #131a26; border: 1px solid var(--border-color); color: var(--text-main); font-size: 11px; font-family: var(--font-mono); cursor: pointer; }

/* Race Results Modal / Banner */
.race-results-panel { padding: 18px; border-radius: 10px; border: 1px solid var(--border-color); background: linear-gradient(145deg, #111a28, #090e15); box-shadow: 0 8px 30px rgba(0,0,0,0.5); }
.race-results-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.race-track-kicker { font-size: 11px; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-muted); font-family: var(--font-mono); }
.race-pos-title { margin: 2px 0 0; font-size: 19px; font-weight: 800; }
.race-pos-title.pos-gold { color: #facc15; text-shadow: 0 0 12px rgba(250,204,21,0.4); }
.race-pos-title.pos-silver { color: #cbd5e1; }
.race-pos-title.pos-bronze { color: #d97706; }
.race-pos-title.pos-other { color: var(--text-muted); }
.race-rewards-box { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-family: var(--font-mono); font-size: 12px; font-weight: 600; }
.race-rewards-box span { padding: 4px 8px; border-radius: 5px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); color: #50d8a2; }
.badge-promo { background: rgba(245,158,11,0.2) !important; border-color: rgba(245,158,11,0.5) !important; color: #f59e0b !important; font-weight: 700 !important; animation: pulse 1.5s infinite; }
.race-leaderboard-table { width: 100%; border-collapse: collapse; font-size: 12px; font-family: var(--font-mono); }
.race-leaderboard-table th { text-align: left; padding: 8px 10px; color: var(--text-muted); font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 1px solid var(--border-color); }
.race-leaderboard-table td { padding: 8px 10px; border-bottom: 1px solid rgba(255,255,255,0.04); }
.race-row-player { background: rgba(56,189,248,0.1); font-weight: 700; color: #38bdf8; }
.badge-you { display: inline-block; padding: 1px 5px; border-radius: 3px; background: #38bdf8; color: #0a0e14; font-size: 9px; font-weight: 800; margin-left: 4px; vertical-align: middle; }
.race-incidents-log { margin-top: 12px; padding: 8px 12px; border-radius: 6px; background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.25); color: #fca5a5; font-size: 11px; font-family: var(--font-mono); }

/* Garage & Showroom */
.garage-panel, .showroom-panel { display: flex; flex-direction: column; gap: 14px; }
.garage-intro { padding: 14px 16px; border: 1px solid var(--border-color); border-radius: 8px; background: rgba(16,24,36,0.4); }
.garage-intro h3 { margin: 0 0 6px; font-size: 15px; color: var(--text-main); }
.garage-intro p { margin: 0; color: var(--text-muted); font-size: 12px; line-height: 1.5; }
.garage-vehicles-grid, .showroom-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.garage-vehicle-card, .showroom-card { display: flex; flex-direction: column; justify-content: space-between; padding: 14px 16px; border: 1px solid var(--border-color); border-radius: 10px; background: linear-gradient(155deg,#131a26,#0d131c); transition: border-color 0.2s; }
.garage-vehicle-card.active-car { border-color: #38bdf8; box-shadow: 0 0 14px rgba(56,189,248,0.2); }
.garage-car-header, .showroom-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 8px; }
.car-meta-line { display: block; font-size: 11px; color: var(--text-muted); font-family: var(--font-mono); margin-top: 2px; }
.car-meta-line strong { color: var(--text-main); }
.garage-car-career { display: flex; justify-content: space-between; font-size: 11px; font-family: var(--font-mono); color: var(--text-muted); padding: 8px 0; border-top: 1px solid rgba(255,255,255,0.06); border-bottom: 1px solid rgba(255,255,255,0.06); margin: 6px 0 10px; }
.garage-car-career strong { color: var(--text-main); }
.garage-car-actions, .showroom-action-row { display: flex; justify-content: flex-end; align-items: center; margin-top: auto; padding-top: 8px; }
.badge-active-car { display: inline-block; padding: 4px 10px; border-radius: 5px; background: rgba(56,189,248,0.15); border: 1px solid rgba(56,189,248,0.3); color: #38bdf8; font-size: 11px; font-weight: 600; font-family: var(--font-mono); }
.car-price-tag { font-size: 15px; font-weight: 800; color: #50d8a2; font-family: var(--font-mono); }
.car-desc { font-size: 11px; color: var(--text-muted); line-height: 1.45; margin: 0 0 10px; }

/* Parts & Modifications Panel */
.parts-panel { display: flex; flex-direction: column; gap: 14px; }
.parts-active-machine { padding: 12px 16px; border: 1px solid #1e3a5f; border-radius: 8px; background: rgba(14,24,38,0.5); }
.parts-active-machine h4 { margin: 0 0 8px; font-size: 13px; color: var(--text-main); }
.parts-active-machine h4 strong { color: #38bdf8; }
.parts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 14px; }
.part-card { display: flex; flex-direction: column; justify-content: space-between; padding: 14px 16px; border: 1px solid var(--border-color); border-radius: 10px; background: linear-gradient(155deg,#131a26,#0d131c); }
.part-card.installed { border-color: rgba(34,197,94,0.3); background: linear-gradient(155deg, rgba(16,36,28,0.4), #0d131c); }
.part-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 8px; }
.part-name { margin: 0; font-size: 13px; font-weight: 700; color: #fff; }
.part-category-tag { display: inline-block; font-size: 10px; text-transform: uppercase; color: var(--text-muted); font-family: var(--font-mono); margin-top: 2px; }
.part-costs { text-align: right; font-family: var(--font-mono); font-size: 12px; }
.part-cash { display: block; color: #50d8a2; font-weight: 700; }
.part-points { display: block; color: #eab308; font-size: 10px; }
.part-stats-row { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 10px; }
.part-stat-pill { display: inline-block; padding: 2px 7px; border-radius: 4px; background: rgba(56,189,248,0.12); border: 1px solid rgba(56,189,248,0.25); color: #7dd3fc; font-size: 10px; font-family: var(--font-mono); font-weight: 600; }
.part-action-row { display: flex; justify-content: flex-end; align-items: center; margin-top: auto; padding-top: 8px; border-top: 1px solid rgba(255,255,255,0.06); }
.badge-fitted { display: inline-block; padding: 3px 8px; border-radius: 4px; background: rgba(34,197,94,0.15); border: 1px solid rgba(34,197,94,0.3); color: #4ade80; font-size: 10px; font-weight: 700; font-family: var(--font-mono); text-transform: uppercase; }

@media(max-width: 700px) {
    .raceway-header { flex-direction: column; align-items: flex-start; }
    .tracks-grid, .garage-vehicles-grid, .showroom-grid, .parts-grid { grid-template-columns: 1fr; }
    .race-leaderboard-table { font-size: 10px; }
    .race-leaderboard-table th, .race-leaderboard-table td { padding: 6px 4px; }
}

/* ==========================================================================
   Phase 43: District Events & Rotating Objectives
   ========================================================================== */
.badge-event-claimable {
    display: inline-block;
    padding: 1px 6px;
    margin-left: 4px;
    background: #eab308;
    color: #0b0f19;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 800;
    box-shadow: 0 0 8px rgba(234,179,8,0.5);
    animation: pulse-glow 2s infinite ease-in-out;
}

@keyframes pulse-glow {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.85; transform: scale(1.08); }
}

.events-panel { display: flex; flex-direction: column; gap: 16px; }
.events-loading { padding: 30px; text-align: center; color: var(--text-muted); font-size: 14px; }
.events-body { display: flex; flex-direction: column; gap: 18px; }

/* Weekly Event Hero Banner */
.event-hero-banner {
    position: relative;
    border-radius: 12px;
    padding: 20px 24px;
    overflow: hidden;
    border: 1px solid var(--border-color);
    background: linear-gradient(135deg, rgba(17,25,39,0.95), rgba(11,15,25,0.98));
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.event-hero-glow {
    position: absolute;
    top: -50px;
    right: -50px;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.25;
    pointer-events: none;
}

.event-theme-cyan { border-left: 4px solid #06b6d4; }
.event-theme-cyan .event-hero-glow { background: #06b6d4; }
.event-theme-crimson { border-left: 4px solid #ef4444; }
.event-theme-crimson .event-hero-glow { background: #ef4444; }
.event-theme-orange { border-left: 4px solid #f97316; }
.event-theme-orange .event-hero-glow { background: #f97316; }
.event-theme-emerald { border-left: 4px solid #10b981; }
.event-theme-emerald .event-hero-glow { background: #10b981; }
.event-theme-purple { border-left: 4px solid #a855f7; }
.event-theme-purple .event-hero-glow { background: #a855f7; }
.event-theme-gold { border-left: 4px solid #eab308; }
.event-theme-gold .event-hero-glow { background: #eab308; }
.event-theme-red { border-left: 4px solid #dc2626; }
.event-theme-red .event-hero-glow { background: #dc2626; }
.event-theme-blue { border-left: 4px solid #3b82f6; }
.event-theme-blue .event-hero-glow { background: #3b82f6; }

.event-hero-content { display: flex; flex-direction: column; gap: 12px; z-index: 1; }
.event-hero-meta { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
.event-hero-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 4px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.15);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-main);
}
.event-timer-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-mono);
    font-size: 11px;
    color: #94a3b8;
    background: rgba(0,0,0,0.4);
    padding: 3px 10px;
    border-radius: 6px;
    border: 1px solid rgba(255,255,255,0.06);
}

.event-hero-main { display: flex; align-items: center; gap: 16px; }
.event-hero-icon-box {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 10px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
}
.event-svg-icon { width: 28px; height: 28px; }
.event-hero-text { flex: 1; }
.event-hero-title { margin: 0 0 4px; font-size: 20px; font-weight: 800; color: #fff; letter-spacing: 0.3px; }
.event-hero-desc { margin: 0; color: #94a3b8; font-size: 13px; line-height: 1.5; }

.event-hero-modifiers { display: flex; flex-direction: column; gap: 6px; padding-top: 6px; border-top: 1px solid rgba(255,255,255,0.06); }
.mod-heading { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-muted); }
.mod-pills-row { display: flex; flex-wrap: wrap; gap: 8px; }
.event-mod-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 6px;
    background: rgba(14,165,233,0.12);
    border: 1px solid rgba(14,165,233,0.25);
    color: #e0f2fe;
    font-size: 12px;
}
.mod-boost {
    color: #38bdf8;
    font-weight: 800;
    font-family: var(--font-mono);
}

/* Sub navigation counters */
.badge-event-counter {
    display: inline-block;
    padding: 1px 6px;
    background: #06b6d4;
    color: #0b0f19;
    font-size: 10px;
    font-weight: 800;
    border-radius: 10px;
    margin-left: 4px;
}

/* District Daily Crate Milestone Banner */
.daily-crate-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    border-radius: 10px;
    border: 1px solid var(--border-color);
    background: linear-gradient(135deg, rgba(19,26,38,0.9), rgba(13,19,28,0.95));
    transition: all 0.25s ease;
}
.daily-crate-banner.crate-ready {
    border-color: rgba(234,179,8,0.6);
    background: linear-gradient(135deg, rgba(35,29,12,0.9), rgba(17,21,30,0.95));
    box-shadow: 0 0 16px rgba(234,179,8,0.15);
}
.daily-crate-banner.crate-claimed {
    border-color: rgba(34,197,94,0.4);
    background: linear-gradient(135deg, rgba(14,31,23,0.8), rgba(13,19,28,0.95));
}

.crate-visual { display: flex; align-items: center; justify-content: center; }
.crate-icon-box {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background: rgba(255,255,255,0.06);
    display: flex;
    align-items: center;
    justify-content: center;
}
.crate-emoji { font-size: 28px; }

.crate-info { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.crate-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.crate-head h4 { margin: 0; font-size: 16px; font-weight: 700; color: #fff; }
.crate-timer { font-size: 11px; font-family: var(--font-mono); color: var(--text-muted); }
.crate-desc { margin: 0; font-size: 12px; color: #94a3b8; line-height: 1.4; }

.crate-progress-container { display: flex; flex-direction: column; gap: 4px; }
.crate-progress-labels { display: flex; justify-content: space-between; font-size: 11px; font-family: var(--font-mono); color: var(--text-muted); }
.crate-progress-labels strong { color: var(--text-main); }
.crate-progress-track { height: 8px; border-radius: 4px; background: rgba(255,255,255,0.08); overflow: hidden; }
.crate-progress-fill { height: 100%; border-radius: 4px; background: linear-gradient(90deg, #06b6d4, #eab308); transition: width 0.4s ease; }

.crate-rewards-row { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; font-family: var(--font-mono); }
.crate-rewards-row span { color: #50d8a2; }
.crate-rewards-row span:nth-child(2) { color: #a855f7; }
.crate-rewards-row span:nth-child(3) { color: #eab308; }

.crate-action-box { min-width: 170px; display: flex; justify-content: flex-end; }
.badge-crate-claimed { display: inline-block; padding: 6px 12px; border-radius: 6px; background: rgba(34,197,94,0.15); border: 1px solid rgba(34,197,94,0.3); color: #4ade80; font-size: 11px; font-weight: 700; font-family: var(--font-mono); }
.badge-crate-locked { display: inline-block; padding: 6px 12px; border-radius: 6px; background: rgba(255,255,255,0.05); color: var(--text-muted); font-size: 11px; font-family: var(--font-mono); text-align: center; }
.glow-pulse-btn { box-shadow: 0 0 12px rgba(234,179,8,0.4); animation: pulse-glow 2s infinite ease-in-out; }

/* Daily Objectives Grid */
.objectives-section-head { display: flex; justify-content: space-between; align-items: flex-end; margin-top: 4px; }
.objectives-section-head h3 { margin: 0 0 4px; font-size: 16px; color: var(--text-main); }
.objectives-section-head p { margin: 0; color: var(--text-muted); font-size: 12px; }

.objectives-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.objective-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 16px;
    border-radius: 10px;
    border: 1px solid var(--border-color);
    background: linear-gradient(155deg, #131a26, #0d131c);
    transition: all 0.2s ease;
}
.objective-card.obj-completed { border-color: rgba(56,189,248,0.35); }
.objective-card.obj-claimed { border-color: rgba(34,197,94,0.3); opacity: 0.75; }

.obj-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.obj-cat-badge {
    font-size: 10px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 4px;
    font-family: var(--font-mono);
}
.obj-cat-crimes { background: rgba(239,68,68,0.15); color: #f87171; border: 1px solid rgba(239,68,68,0.3); }
.obj-cat-racing { background: rgba(56,189,248,0.15); color: #38bdf8; border: 1px solid rgba(56,189,248,0.3); }
.obj-cat-gym { background: rgba(168,85,247,0.15); color: #c084fc; border: 1px solid rgba(168,85,247,0.3); }
.obj-cat-combat { background: rgba(249,115,22,0.15); color: #fb923c; border: 1px solid rgba(249,115,22,0.3); }
.obj-cat-economy { background: rgba(34,197,94,0.15); color: #4ade80; border: 1px solid rgba(34,197,94,0.3); }

.obj-points-badge {
    font-size: 10px;
    font-weight: 700;
    font-family: var(--font-mono);
    color: #eab308;
    background: rgba(234,179,8,0.12);
    padding: 2px 7px;
    border-radius: 4px;
    border: 1px solid rgba(234,179,8,0.25);
}

.obj-title { margin: 0 0 6px; font-size: 14px; font-weight: 700; color: #fff; }
.obj-desc { margin: 0 0 12px; font-size: 11px; color: var(--text-muted); line-height: 1.45; }

.obj-progress-wrap { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.obj-progress-bar { height: 6px; border-radius: 3px; background: rgba(255,255,255,0.08); overflow: hidden; }
.obj-progress-fill { height: 100%; border-radius: 3px; background: #38bdf8; transition: width 0.3s; }
.obj-progress-num { font-size: 10px; font-family: var(--font-mono); color: var(--text-muted); text-align: right; }

.obj-rewards-row { display: flex; gap: 8px; font-size: 11px; font-family: var(--font-mono); margin-bottom: 12px; }
.obj-reward-cash { color: #50d8a2; font-weight: 700; }
.obj-reward-merit { color: #a855f7; font-weight: 700; }

.obj-action-wrap { display: flex; justify-content: flex-end; margin-top: auto; }
.badge-obj-claimed { font-size: 10px; font-family: var(--font-mono); font-weight: 700; color: #4ade80; }
.badge-obj-progress { font-size: 10px; font-family: var(--font-mono); color: var(--text-muted); }

/* Weekly Bounties */
.bounties-intro-bar { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 10px; }
.bounties-intro-bar h3 { margin: 0 0 4px; font-size: 16px; color: var(--text-main); }
.bounties-intro-bar p { margin: 0; color: var(--text-muted); font-size: 12px; }
.bounties-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }

.bounty-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 18px 20px;
    border-radius: 10px;
    border: 1px solid rgba(234,179,8,0.3);
    background: linear-gradient(155deg, #161c28, #0e141f);
}
.bounty-card.bounty-completed { border-color: #eab308; box-shadow: 0 0 14px rgba(234,179,8,0.15); }
.bounty-card.bounty-claimed { border-color: rgba(34,197,94,0.3); opacity: 0.75; }

.bounty-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.bounty-elite-badge {
    font-size: 10px;
    font-weight: 800;
    color: #eab308;
    background: rgba(234,179,8,0.15);
    border: 1px solid rgba(234,179,8,0.3);
    padding: 3px 8px;
    border-radius: 4px;
    letter-spacing: 0.5px;
}
.bounty-points-badge {
    font-size: 11px;
    font-weight: 800;
    color: #f97316;
    font-family: var(--font-mono);
}
.bounty-title { margin: 0 0 6px; font-size: 16px; font-weight: 700; color: #fff; }
.bounty-desc { margin: 0 0 14px; font-size: 12px; color: var(--text-muted); line-height: 1.45; }

.bounty-progress-bar { height: 8px; }
.fill-elite { background: linear-gradient(90deg, #f97316, #eab308); }

.bounty-rewards-card {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    border-radius: 6px;
    background: rgba(0,0,0,0.25);
    border: 1px solid rgba(255,255,255,0.06);
    margin: 12px 0;
    font-size: 11px;
    font-family: var(--font-mono);
}
.reward-item { display: flex; justify-content: space-between; }
.reward-item span { color: var(--text-muted); }
.reward-item strong { color: #50d8a2; }
.reward-item:nth-child(2) strong { color: #a855f7; }
.reward-item.reward-title strong { color: #38bdf8; }

.bounty-action-wrap { display: flex; justify-content: flex-end; margin-top: auto; }

/* Reputation Ledger (Annual Season Pass) */
.ledger-hero-panel {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 20px;
    border-radius: 10px;
    border: 1px solid var(--border-color);
    background: linear-gradient(135deg, rgba(16,24,36,0.9), rgba(11,15,25,0.95));
}
.ledger-hero-stats { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px; }
.ledger-stat-box { display: flex; flex-direction: column; gap: 2px; }
.ledger-stat-lbl { font-size: 11px; font-weight: 600; text-transform: uppercase; color: var(--text-muted); letter-spacing: 0.5px; }
.ledger-stat-val { font-size: 18px; font-weight: 800; color: #fff; font-family: var(--font-mono); }
.text-accent { color: #38bdf8 !important; }

.ledger-overall-progress { display: flex; flex-direction: column; gap: 6px; }
.ledger-bar-labels { display: flex; justify-content: space-between; font-size: 11px; font-family: var(--font-mono); color: var(--text-muted); }
.ledger-bar-track { height: 10px; border-radius: 5px; background: rgba(255,255,255,0.08); overflow: hidden; }
.ledger-bar-fill { height: 100%; border-radius: 5px; background: linear-gradient(90deg, #38bdf8, #a855f7, #eab308); transition: width 0.4s ease; }

.ledger-tiers-list { display: flex; flex-direction: column; gap: 8px; }
.ledger-tier-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 16px;
    border-radius: 8px;
    border: 1px solid rgba(255,255,255,0.06);
    background: rgba(14,20,30,0.5);
    transition: all 0.2s ease;
}
.ledger-tier-row.tier-reached { border-color: rgba(56,189,248,0.3); background: rgba(14,26,42,0.6); }
.ledger-tier-row.tier-claimable { border-color: #eab308; box-shadow: 0 0 10px rgba(234,179,8,0.15); }
.ledger-tier-row.tier-claimed { border-color: rgba(34,197,94,0.3); opacity: 0.7; }

.tier-rank-col { display: flex; align-items: center; gap: 8px; min-width: 70px; }
.tier-badge-number { font-size: 11px; font-weight: 800; font-family: var(--font-mono); color: #94a3b8; background: rgba(255,255,255,0.06); padding: 2px 6px; border-radius: 4px; }
.tier-icon-emoji { font-size: 18px; }

.tier-info-col { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.tier-title { margin: 0; font-size: 13px; font-weight: 700; color: #fff; }
.tier-req-pts { font-size: 10px; font-family: var(--font-mono); color: var(--text-muted); }

.tier-rewards-col { display: flex; align-items: center; gap: 12px; font-size: 11px; font-family: var(--font-mono); }
.tier-rew-cash { color: #50d8a2; font-weight: 700; }
.tier-rew-merits { color: #a855f7; font-weight: 700; }
.tier-rew-title { color: #38bdf8; font-weight: 700; }

.tier-action-col { min-width: 130px; display: flex; justify-content: flex-end; }
.badge-tier-claimed { font-size: 10px; font-family: var(--font-mono); font-weight: 700; color: #4ade80; }
.badge-tier-locked { font-size: 10px; font-family: var(--font-mono); color: var(--text-muted); }

@media(max-width: 700px) {
    .daily-crate-banner { flex-direction: column; align-items: flex-start; }
    .crate-action-box { width: 100%; justify-content: flex-start; }
    .objectives-grid, .bounties-grid { grid-template-columns: 1fr; }
    .ledger-tier-row { flex-direction: column; align-items: flex-start; gap: 8px; }
    .tier-action-col { width: 100%; justify-content: flex-start; }
}

/* Operations HUB Subnavigation */
.hub-nav-bar {
    margin-bottom: 14px;
    padding: 16px 20px;
    background: linear-gradient(135deg, rgba(17, 24, 39, 0.95), rgba(15, 23, 42, 0.85));
    border: 1px solid rgba(59, 130, 246, 0.25);
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}
.hub-nav-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 14px;
    flex-wrap: wrap;
    gap: 8px;
}
.hub-title {
    margin: 2px 0 0 0;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #fff;
    text-shadow: 0 0 12px rgba(56, 189, 248, 0.3);
}
.hub-subtitle {
    font-size: 12px;
    color: var(--text-muted);
    font-family: var(--font-mono);
}
.hub-subnav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}
.hub-nav-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 14px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(15, 23, 42, 0.6);
    color: var(--text-muted);
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
}
.hub-nav-btn:hover {
    border-color: rgba(56, 189, 248, 0.4);
    background: rgba(56, 189, 248, 0.08);
    color: #fff;
}
.hub-nav-btn.active {
    border-color: #38bdf8;
    background: linear-gradient(135deg, rgba(56, 189, 248, 0.18), rgba(99, 102, 241, 0.12));
    color: #fff;
    box-shadow: 0 0 12px rgba(56, 189, 248, 0.2);
}
.hub-btn-content {
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 100%;
}
.hub-btn-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    color: inherit;
}
.hub-btn-desc {
    font-size: 11px;
    font-family: var(--font-mono);
    color: var(--text-dim);
}
.hub-badge {
    display: inline-flex;
    align-items: center;
    padding: 1px 6px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    font-family: var(--font-mono);
    background: rgba(255, 255, 255, 0.1);
    color: #e2e8f0;
}
.hub-badge-grit {
    background: rgba(234, 179, 8, 0.15);
    color: #facc15;
    border: 1px solid rgba(234, 179, 8, 0.3);
}
.hub-badge-claimable {
    background: rgba(34, 197, 94, 0.2);
    color: #4ade80;
    border: 1px solid rgba(34, 197, 94, 0.4);
    animation: hub-pulse 1.8s infinite;
}
@keyframes hub-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.8; transform: scale(1.05); }
}

/* Syndicate Zero Screen */
.syndicate-panel {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.syndicate-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 24px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(20, 15, 30, 0.95), rgba(15, 23, 42, 0.9));
    border: 1px solid rgba(168, 85, 247, 0.3);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
.syndicate-header-badges {
    display: flex;
    align-items: center;
    gap: 10px;
}
.syndicate-badge-total {
    font-size: 11px;
    font-family: var(--font-mono);
    font-weight: 700;
    color: #c084fc;
    background: rgba(168, 85, 247, 0.12);
    border: 1px solid rgba(168, 85, 247, 0.3);
    padding: 4px 10px;
    border-radius: 6px;
}
.badge-status-online {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-family: var(--font-mono);
    font-weight: 700;
    color: #4ade80;
    background: rgba(34, 197, 94, 0.12);
    border: 1px solid rgba(34, 197, 94, 0.35);
    padding: 3px 8px;
    border-radius: 6px;
    letter-spacing: 0.5px;
}
.syndicate-banner {
    padding: 16px 20px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(30, 15, 45, 0.7), rgba(15, 23, 42, 0.75));
    border: 1px solid rgba(168, 85, 247, 0.2);
}
.syndicate-banner-content h3 {
    margin: 0 0 6px 0;
    font-size: 15px;
    font-weight: 700;
    color: #e9d5ff;
}
.syndicate-banner-content p {
    margin: 0 0 10px 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-muted);
}
.syndicate-banner-policy {
    font-size: 11px;
    font-family: var(--font-mono);
    color: #fbbf24;
    background: rgba(245, 158, 11, 0.1);
    border-left: 3px solid #f59e0b;
    padding: 6px 10px;
    border-radius: 0 4px 4px 0;
}
.syndicate-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
    gap: 14px;
}
.syndicate-boss-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
    padding: 16px;
    border-radius: 10px;
    background: rgba(15, 20, 30, 0.75);
    border: 1px solid rgba(255, 255, 255, 0.08);
    position: relative;
    overflow: hidden;
    transition: border-color 0.2s, transform 0.15s;
}
.syndicate-boss-card:hover {
    border-color: rgba(168, 85, 247, 0.4);
    transform: translateY(-1px);
}
.syndicate-boss-header {
    display: flex;
    gap: 14px;
    align-items: center;
}
.syndicate-boss-portrait {
    display: block;
    width: 68px;
    height: 68px;
    min-width: 68px;
    max-width: 68px;
    border-radius: 8px;
    border: 2px solid rgba(168, 85, 247, 0.4);
    background: #111722;
    flex-shrink: 0;
    overflow: hidden;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}
.syndicate-boss-portrait img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.syndicate-boss-identity {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1;
}
.syndicate-boss-title-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}
.syndicate-boss-name {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: #fff;
}
.syndicate-boss-epithet {
    font-size: 12px;
    font-family: var(--font-mono);
    color: #a855f7;
    font-weight: 700;
}
.syndicate-boss-tags {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}
.syndicate-faction-pill {
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 700;
    color: #38bdf8;
    background: rgba(56, 189, 248, 0.12);
    border: 1px solid rgba(56, 189, 248, 0.3);
    padding: 2px 6px;
    border-radius: 4px;
}
.syndicate-level-pill {
    font-size: 10px;
    font-family: var(--font-mono);
    color: #facc15;
    background: rgba(234, 179, 8, 0.1);
    border: 1px solid rgba(234, 179, 8, 0.25);
    padding: 2px 6px;
    border-radius: 4px;
}
.syndicate-boss-role {
    font-size: 11px;
    color: var(--text-dim);
}
.syndicate-boss-desc {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--text-muted);
}
.syndicate-stats-classified {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px dashed rgba(255, 255, 255, 0.12);
    font-size: 11px;
    font-family: var(--font-mono);
    color: #94a3b8;
}
.syndicate-classified-text strong {
    color: #f43f5e;
    letter-spacing: 0.5px;
}
.syndicate-boss-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    flex-wrap: wrap;
}
.syndicate-rep-display {
    font-size: 11px;
    font-family: var(--font-mono);
    color: var(--text-muted);
}
.syndicate-rep-display strong {
    color: #38bdf8;
}
.syndicate-boss-actions {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}

@media(max-width: 900px) {
    .hub-subnav { grid-template-columns: repeat(2, 1fr); }
    .syndicate-grid { grid-template-columns: 1fr; }
}
@media(max-width: 550px) {
    .hub-subnav { grid-template-columns: 1fr; }
}

/* --- Bounties / Wanted Board (Torn City Model) --- */
.bounties-panel {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.bounties-top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px 12px;
    background: rgba(15, 23, 42, 0.6);
    border: 1px solid var(--border-color);
    border-radius: 6px;
}
.bounties-instruction {
    margin: 0;
    font-size: 13px;
    color: #94a3b8;
    font-style: italic;
}
.btn-put-bounty {
    background: transparent;
    color: #60a5fa;
    border: none;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
    padding: 4px 8px;
}
.btn-put-bounty:hover {
    color: #93c5fd;
}
.bounties-total-summary {
    font-size: 13px;
    color: #cbd5e1;
    padding: 2px 4px;
}
.bounties-filter-bar {
    background: linear-gradient(180deg, #4f7028 0%, #3a541d 100%);
    border: 1px solid #5d8330;
    border-radius: 6px 6px 0 0;
    padding: 8px 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    color: #f1f5f9;
    font-size: 13px;
    font-weight: 600;
}
.bounties-filter-controls {
    display: flex;
    align-items: center;
    gap: 12px;
}
.bounties-filter-input {
    width: 60px;
    padding: 3px 6px;
    border-radius: 4px;
    border: 1px solid #7c9f4d;
    background: #243516;
    color: #ffffff;
    font-size: 12px;
    text-align: center;
}
.bounties-filter-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    font-size: 12px;
    user-select: none;
}
.bounties-pagination-bar {
    background: #141c11;
    border: 1px solid #28391b;
    border-top: none;
    padding: 6px 12px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
}
.bounty-page-btn {
    background: transparent;
    color: #a3b899;
    border: 1px solid transparent;
    padding: 3px 9px;
    border-radius: 3px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    min-width: 26px;
    text-align: center;
}
.bounty-page-btn:hover:not(:disabled) {
    background: #2b3d1e;
    color: #ffffff;
}
.bounty-page-btn.active {
    background: #4f7028;
    color: #ffffff;
    border-color: #6d9938;
}
.bounty-page-btn:disabled {
    opacity: 0.3;
    cursor: default;
}
.bounties-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--border-color);
    border-top: none;
    border-radius: 0 0 6px 6px;
    background: #0f1418;
}
.bounties-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}
.bounties-table th {
    background: #182026;
    color: #94a3b8;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 9px 12px;
    border-bottom: 1px solid #23303a;
    text-align: left;
}
.bounties-table td {
    padding: 8px 12px;
    border-bottom: 1px solid #1a2228;
    vertical-align: middle;
    color: #cbd5e1;
}
.bounties-table tr:hover td {
    background: #161e24;
}
.bounty-reward {
    color: #4ade80;
    font-weight: 700;
    font-family: monospace;
    font-size: 13px;
}
.bounty-target-cell {
    display: flex;
    align-items: center;
    gap: 10px;
}
.bounty-avatar-thumb {
    width: 32px;
    height: 32px;
    border-radius: 4px;
    border: 1px solid #334155;
    object-fit: cover;
    flex-shrink: 0;
    background: #1e293b;
}
.bounty-avatar-placeholder {
    width: 32px;
    height: 32px;
    border-radius: 4px;
    border: 1px solid #334155;
    background: #1e293b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}
.bounty-target-link {
    color: #60a5fa;
    font-weight: 600;
    text-decoration: none;
}
.bounty-target-link:hover {
    color: #93c5fd;
    text-decoration: underline;
}
.bounty-lister-link {
    color: #94a3b8;
    text-decoration: none;
}
.bounty-lister-link:hover {
    color: #cbd5e1;
    text-decoration: underline;
}
.bounty-status {
    font-weight: 700;
    font-size: 11px;
    padding: 2px 6px;
    border-radius: 3px;
}
.bounty-status.status-okay {
    color: #22c55e;
    background: rgba(34, 197, 94, 0.1);
}
.bounty-status.status-hospital {
    color: #ef4444;
    background: rgba(239, 68, 68, 0.1);
}
.bounty-status.status-jail {
    color: #f59e0b;
    background: rgba(245, 158, 11, 0.1);
}
.btn-torn-claim {
    background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 100%);
    color: #ffffff;
    font-weight: 700;
    font-size: 11px;
    padding: 4px 14px;
    border-radius: 4px;
    border: 1px solid #3b82f6;
    cursor: pointer;
    text-transform: uppercase;
    transition: all 0.15s ease;
}
.btn-torn-claim:hover:not(:disabled) {
    background: linear-gradient(180deg, #3b82f6 0%, #2563eb 100%);
    box-shadow: 0 0 8px rgba(59, 130, 246, 0.5);
}
.btn-torn-claim.disabled, .btn-torn-claim:disabled {
    background: #252e38;
    color: #64748b;
    border-color: #334155;
    cursor: not-allowed;
    opacity: 0.6;
}
.btn-bounty-cancel {
    background: rgba(239, 68, 68, 0.15);
    color: #f87171;
    border: 1px solid #ef4444;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 3px;
    cursor: pointer;
}
.btn-bounty-cancel:hover {
    background: rgba(239, 68, 68, 0.3);
}

/* Put Bounty Form / Modal */
.put-bounty-box {
    background: #131a22;
    border: 1px solid #233649;
    border-radius: 6px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.put-bounty-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #233649;
    padding-bottom: 8px;
}
.put-bounty-header h3 {
    margin: 0;
    font-size: 16px;
    color: #38bdf8;
}
.put-bounty-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 12px;
}
.put-bounty-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.put-bounty-field label {
    font-size: 11px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
}
.put-bounty-field input, .put-bounty-field select {
    padding: 7px 10px;
    border-radius: 4px;
    border: 1px solid var(--border-color);
    background: #0b1118;
    color: #ffffff;
    font-size: 13px;
}
.put-bounty-cost-breakdown {
    background: rgba(15, 23, 42, 0.8);
    border: 1px dashed #334155;
    border-radius: 4px;
    padding: 10px 14px;
    font-size: 12px;
    color: #cbd5e1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.put-bounty-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

/* ==========================================================================
   Phase 44: Social Discovery, Contacts Lists & Unified Activity Inbox
   ========================================================================== */
.side-contacts-panel {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.side-contact-group {
    background: rgba(15, 23, 42, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 6px;
    overflow: hidden;
}

.side-contact-header {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 10px;
    background: rgba(255, 255, 255, 0.03);
    border: none;
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.side-contact-header:hover {
    background: rgba(255, 255, 255, 0.07);
    color: var(--text-main);
}

.side-count {
    color: var(--accent);
}

.side-chevron {
    font-size: 10px;
    opacity: 0.7;
}

.side-contact-list {
    display: flex;
    flex-direction: column;
    padding: 4px;
    gap: 2px;
    max-height: 180px;
    overflow-y: auto;
}

.side-contact-empty {
    font-size: 11px;
    color: var(--text-muted);
    font-style: italic;
    text-align: center;
    padding: 6px 4px;
}

.side-contact-row {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 6px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.02);
    font-size: 12px;
    transition: background 0.15s ease;
}

.side-contact-row:hover {
    background: rgba(255, 255, 255, 0.06);
}

.side-contact-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.side-contact-dot.status-ok {
    background: #22c55e;
    box-shadow: 0 0 5px rgba(34, 197, 94, 0.6);
}

.side-contact-dot.status-hosp {
    background: #ef4444;
    box-shadow: 0 0 5px rgba(239, 68, 68, 0.6);
}

.side-contact-dot.status-jail {
    background: #f97316;
    box-shadow: 0 0 5px rgba(249, 115, 22, 0.6);
}

.side-contact-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
    font-weight: 500;
    color: var(--text-main);
}

.side-contact-name:hover {
    color: var(--accent);
    text-decoration: underline;
}

.side-contact-time {
    font-size: 10px;
    font-family: var(--font-mono, monospace);
    padding: 1px 4px;
    border-radius: 3px;
    font-weight: 700;
}

.side-contact-time.hosp {
    background: rgba(239, 68, 68, 0.15);
    color: #f87171;
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.side-contact-time.jail {
    background: rgba(249, 115, 22, 0.15);
    color: #fb923c;
    border: 1px solid rgba(249, 115, 22, 0.3);
}

.side-contact-actions {
    display: flex;
    align-items: center;
    gap: 3px;
    margin-left: auto;
}

.btn-side-act {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--text-muted);
    border-radius: 3px;
    width: 22px;
    height: 22px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 11px;
    transition: all 0.15s ease;
}

.btn-side-act:hover:not(:disabled) {
    background: rgba(255, 255, 255, 0.15);
    color: var(--text-main);
    border-color: rgba(255, 255, 255, 0.3);
}

.btn-side-act:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.btn-side-act.btn-side-del:hover:not(:disabled) {
    background: rgba(239, 68, 68, 0.2);
    color: #ef4444;
    border-color: rgba(239, 68, 68, 0.4);
}

.inbox-badge-count {
    background: rgba(255, 255, 255, 0.2);
    border-radius: 10px;
    padding: 1px 6px;
    font-size: 10px;
    margin-left: 2px;
}

.btn-primary .inbox-badge-count {
    background: rgba(0, 0, 0, 0.25);
}

.inbox-card-unread {
    box-shadow: 0 0 10px rgba(59, 130, 246, 0.12);
}

/* ---- Residence info hover tooltip (reveal after 3s of still cursor) ---- */
.prop-info-tip{display:none;position:absolute;top:12px;left:14px;right:14px;z-index:6;max-height:calc(100% - 24px);overflow:auto;background:rgba(6,10,18,0.95);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.5;box-shadow:0 10px 30px rgba(0,0,0,0.55);text-align:left;}
.prop-info-tip.prop-info-visible{display:block;}
