@font-face { font-family:'GrindDemolished'; src:url('/fonts/GrindDemolished.woff2') format('woff2'); }
@font-face { font-family:'Lemaba'; src:url('/fonts/Lemaba.woff2') format('woff2'); }
@font-face { font-family:'Extradicta'; src:url('/fonts/Extradicta.woff2') format('woff2'); }
@font-face { font-family:'Acorne'; src:url('/fonts/Acorne.woff2') format('woff2'); }
@font-face { font-family:'Betron'; src:url('/fonts/Betron.woff2') format('woff2'); }
@font-face { font-family:'Flare'; src:url('/fonts/Flare.woff2') format('woff2'); }
@font-face { font-family:'Okami'; src:url('/fonts/Okami.woff2') format('woff2'); }
@font-face { font-family:'Bord'; src:url('/fonts/Bord.woff2') format('woff2'); }
@font-face { font-family:'Strong-Military'; src:url('/fonts/Strong-Military.woff2') format('woff2'); }
@font-face { font-family:'Voltstrom-Regular'; src:url('/fonts/Voltstrom-Regular.woff2') format('woff2'); }


  :root {
    --bg: #060e1a; --bg2: #0d1318; --bg3: #111920; --panel: #0f1a22;
    --border: #1a3040; --border2: #1f3d52;
    --accent: #00c8ff; --accent2: #00ff9d; --accent3: #ff6b35;
    --text: #c8dde8; --text2: #6a8fa0; --text3: #3a5a6a;
    --profit: #00ff9d; --danger: #ff4444; --warn: #ffaa00;
    --font-mono: 'Share Tech Mono', monospace; --font-ui: 'Rajdhani', sans-serif;
    --orb: 'Orbitron', sans-serif;
    --pink: #d4538e; --pink-dim: rgba(212,83,142,0.1); --pink-border: rgba(212,83,142,0.28); --pink-glow: rgba(212,83,142,0.35);
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  html { overflow-x: hidden; }
  body { background: var(--bg); color: var(--text); font-family: var(--font-ui); font-size: 15px; min-height: 100vh; overflow-x: hidden; overflow-y: hidden; }
  body:not(.cmd-deck-open) { overflow-y: scroll; scrollbar-gutter: stable; }
  body::before { content: ''; position: fixed; inset: 0; background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.08) 2px, rgba(0,0,0,0.08) 4px); pointer-events: none; z-index: 9999; }
  body::after { content: ''; position: fixed; inset: 0; background: radial-gradient(ellipse at 50% 0%, rgba(0,212,255,0.04) 0%, transparent 55%), radial-gradient(ellipse at 80% 80%, rgba(212,83,142,0.03) 0%, transparent 50%); pointer-events: none; z-index: 0; }
  #starfield { position: fixed; inset: 0; pointer-events: none; z-index: 0; }
  .container { position: relative; z-index: 1; max-width: 1400px; margin: 0 auto; padding: 24px; }

  /* ── Hero header ───────────────────────────────────────────── */
  header { display: flex; flex-direction: column; align-items: stretch; padding: 0; border-bottom: 1px solid var(--border2); position: relative; margin-bottom: 0; }
  header::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--accent), var(--pink), var(--accent), transparent); opacity: 0.4; }
  .hero-title-block { text-align: center; padding: 12px 40px 20px; position: relative; }
  .hero-title-block::before { content: none; }
  .hero-line { display: block; width: 1px; height: 34px; background: linear-gradient(180deg, transparent, var(--accent)); margin: 0 auto 10px; }
  .hero-eyebrow { font-family: var(--font-mono); font-size: 10px; letter-spacing: 4px; color: var(--pink); text-transform: uppercase; margin-top: 10px; }
  .hero-h1 { font-family: var(--orb); font-size: clamp(24px, 4vw, 42px); font-weight: 900; color: #fff; letter-spacing: 0.06em; text-transform: uppercase; text-shadow: 0 0 40px rgba(0,200,255,0.3); line-height: 1.1; margin-bottom: 8px; animation: heroFlicker 8s infinite; }
  .hero-h1 em { color: var(--accent); font-style: normal; }
  @keyframes heroFlicker { 0%, 95%, 100% { opacity: 1; } 96% { opacity: 0.8; } 97% { opacity: 1; } 98% { opacity: 0.85; } }
  .hero-sub { font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text3); }
  /* ── Hero stats strip ──────────────────────────────────────── */
  .hero-stats { display: flex; align-items: stretch; border-top: 1px solid var(--border); }
  .hero-stat { flex: 1; padding: 12px 16px; border-right: 1px solid var(--border); text-align: center; }
  .hero-stat:last-child { border-right: none; }
  .hero-stat:last-child { border-right: none; }
  .hero-stat-right { display: none; }
  .hero-top-right { position: absolute; top: 12px; right: 20px; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; z-index: 2; }
  .hero-sync { display: flex; align-items: center; gap: 8px; }
  #fetch-time { font-family: var(--font-mono); font-size: 8px; letter-spacing: 1px; color: var(--text2); }
  .hstat-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: 2px; color: var(--text3); text-transform: uppercase; margin-bottom: 4px; }
  .hstat-val { font-family: var(--orb); font-size: 20px; font-weight: 700; color: var(--text); }
  .hstat-val.cy { color: var(--accent); }
  .hstat-val.gn { color: var(--accent2); }
  .hstat-val.am { color: var(--warn); }
  .hstat-val.pk { color: var(--pink); }
  #fetch-time { font-family: var(--font-mono); font-size: 10px; color: var(--text3); letter-spacing: 1px; }
  #shipSelect option, #shipSelect optgroup { background: var(--bg2); color: var(--text); }

  .stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 20px; }
  .stat { background: var(--panel); border: 1px solid var(--border); padding: 14px 16px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; transition: border-color 0.2s; }
  .stat:hover { border-color: var(--border2); }
  .stat.highlighted { border-color: var(--accent) !important; box-shadow: 0 0 12px rgba(0,200,255,0.15); }
  .stat-text { flex: 1; min-width: 0; }
  .stat-icon { flex-shrink: 0; opacity: 0.15; }
  .stat::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--accent); opacity: 0.5; }
  .stat::after { content: ''; position: absolute; top: 0; left: -40%; width: 40%; height: 2px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent); animation: glowTravel 6s linear infinite; }
  .stat:nth-child(1){--glow-delay:0s} .stat:nth-child(2){--glow-delay:1.5s} .stat:nth-child(3){--glow-delay:3s} .stat:nth-child(4){--glow-delay:4.5s}
  .stat::after { animation-delay: var(--glow-delay); }
  .stat:nth-child(2)::before { background: var(--accent2); }
  .stat:nth-child(3)::before { background: var(--warn); }
  .stat:nth-child(4)::before { background: var(--accent3); }
  .stat-label { font-family: var(--font-mono); font-size: 10px; color: var(--text2); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 6px; }
  .stat-val { font-family: var(--font-mono); font-size: 20px; color: var(--text); font-weight: 400; }
  .stat-val.green { color: var(--accent2); text-shadow: 0 0 12px rgba(0,255,157,0.3); }
  .stat-val.blue { color: var(--accent); text-shadow: 0 0 12px rgba(0,200,255,0.3); }
  .stat-val.warn { color: var(--warn); }
  .stat-val.orange { color: var(--accent3); }
  .stat-val.loaded { animation: fadeInUp 0.4s ease-out both; }

  .controls { display:flex; flex-direction:column; gap:8px; margin-bottom:8px; }
  .ctrl-row1 { display:flex; align-items:center; gap:8px; }
  .ctrl-row2 { display:flex; align-items:center; justify-content:space-between; }
  .ctrl-row2-left { display:flex; align-items:center; gap:8px; flex:1; min-width:0; overflow:hidden; }
  .ctrl-row2-right { display:flex; align-items:center; gap:8px; flex-shrink:0; }
  .ctrl-spacer { display:none; }
  .ctrl-spacer { flex:1; }
  .ctrl-divider { width:1px; height:20px; background:var(--border2); flex-shrink:0; }
  .ctrl-left { display:flex; flex-direction:column; gap:6px; flex-shrink:0; }
  .ctrl-right { display:flex; flex-direction:column; gap:4px; align-items:flex-end; flex-shrink:0; margin-left:auto; }
  .controls input, .controls select { background: var(--panel); border: 1px solid var(--border2); color: var(--text); font-family: var(--font-mono); font-size: 12px; padding: 8px 12px; outline: none; letter-spacing: 1px; height: 36px; box-sizing: border-box; }
  .ctrl-row1 .search-wrap { flex:1; min-width:0; }
  .ctrl-row1 #shipSelect { width:220px; }
  .ctrl-row1 #stantonOnly { width:160px; }
  .ctrl-right-group { display:flex; align-items:center; gap:8px; flex-shrink:0; justify-content:flex-end; }
  .ctrl-left select { width: 210px; }
  .search-wrap { position: relative; flex: 1; min-width: 200px; display: flex; align-items: center; }
  .search-wrap #search { width: 100%; padding-right: 44px; }
  .search-clear { display: none; position: absolute; right: 0; top: 0; bottom: 0; width: 36px; background: transparent; border: none; color: var(--text3); font-size: 11px; cursor: pointer; padding: 0; line-height: 1; transition: color 0.15s; }
  .search-clear:hover { color: var(--pink); border-color: var(--pink); }
  .search-clear.visible { display: flex; align-items: center; justify-content: center; }
  .controls select { flex-shrink: 0; }
  .controls input::placeholder { color: var(--text3); }
  .controls input:focus, .controls select:focus { border-color: var(--accent); box-shadow: 0 0 8px rgba(0,200,255,0.15); }
  .controls select option { background: var(--bg2); }
  .btn-verified { background:transparent; border:1px solid var(--border2); color:var(--text2); font-family:var(--font-mono); font-size:9px; letter-spacing:2px; padding:0 10px; height:36px; cursor:pointer; transition:all 0.15s; white-space:nowrap; border-radius:2px; }
  .btn-verified:hover { border-color:var(--accent2); color:var(--accent2); }
  .btn-verified.active { border-color:var(--accent2); color:var(--accent2); background:rgba(0,255,157,0.08); }
  /* ── GEAR / SETTINGS BUTTON ── */
  .btn-gear { background:transparent; border:1px solid var(--border2); color:var(--text2); font-family:var(--font-mono); font-size:10px; letter-spacing:2px; padding:0 12px; height:36px; cursor:pointer; transition:border-color 0.15s, color 0.15s, background 0.15s; border-radius:2px; display:flex; align-items:center; gap:7px; white-space:nowrap; }
  .btn-gear:hover { border-color:var(--accent); color:var(--accent); }
  .btn-gear:hover .gear-icon { stroke:var(--accent); }
  .btn-gear.active { border-color:var(--accent); color:var(--accent); background:rgba(0,200,255,0.06); }
  .btn-gear.active .gear-icon { stroke:var(--accent); filter:drop-shadow(0 0 3px rgba(0,200,255,0.75)); }
  .gear-icon { stroke:var(--text2); fill:none; flex-shrink:0; transition:stroke 0.15s; transform-origin:center; transform-box:fill-box; }
  .gear-icon.spinning { animation:gear-spin 4s linear infinite; }
  @keyframes gear-spin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
  @keyframes gear-btn-pulse { 0%,100% { box-shadow:0 0 10px rgba(0,200,255,0.18),0 0 2px rgba(0,200,255,0.3); } 50% { box-shadow:0 0 20px rgba(0,200,255,0.38),0 0 6px rgba(0,200,255,0.55); } }
  /* ── SETTINGS PANEL ── */
  .settings-panel { display:none; background:var(--bg2); border:1px solid rgba(0,200,255,0.22); border-top:none; position:relative; overflow:hidden; }
  .settings-panel::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(0,200,255,0.45),transparent); }
  .settings-panel.open { display:block; }
  .settings-panel-inner { padding:16px 20px; }
  .sp-title { font-family:var(--font-mono); font-size:9px; letter-spacing:3px; color:rgba(0,200,255,0.4); text-transform:uppercase; margin-bottom:14px; }
  .sp-rows { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:60px; }
  .sp-row { display:flex; align-items:flex-start; padding:14px 12px 14px 0; border-bottom:1px solid rgba(0,200,255,0.07); gap:16px; }
  .sp-row:last-child { border-bottom:none; }
  .sp-label { font-family:var(--font-mono); font-size:10px; color:var(--text); letter-spacing:1px; }
  .sp-note { font-family:var(--font-mono); font-size:9px; color:var(--text3); letter-spacing:0.5px; margin-top:3px; line-height:1.4; }
  .sp-toggle-wrap { display:flex; align-items:center; gap:7px; flex-shrink:0; margin-top:1px; }
  .sp-toggle { position:relative; width:38px; height:20px; cursor:pointer; flex-shrink:0; display:block; }
  .sp-toggle input { opacity:0; width:0; height:0; position:absolute; }
  .sp-track { position:absolute; inset:0; background:rgba(0,200,255,0.05); border:1px solid rgba(0,200,255,0.18); border-radius:10px; transition:all 0.2s; }
  .sp-toggle input:checked ~ .sp-track { background:rgba(0,200,255,0.13); border-color:rgba(0,200,255,0.5); }
  .sp-thumb { position:absolute; top:4px; left:4px; width:10px; height:10px; border-radius:50%; background:var(--text3); transition:all 0.2s; }
  .sp-toggle input:checked ~ .sp-thumb { left:22px; background:var(--accent); box-shadow:0 0 6px rgba(0,200,255,0.8); }
  .sp-toggle-label { font-family:var(--font-mono); font-size:9px; color:var(--text3); letter-spacing:1px; min-width:22px; transition:color 0.2s; }
  .sp-toggle-label.sp-on { color:var(--accent); }
  .sp-toggle-amber input:checked ~ .sp-track { background:rgba(255,170,0,0.1); border-color:rgba(255,170,0,0.45); }
  .sp-toggle-amber input:checked ~ .sp-thumb { background:var(--warn); box-shadow:0 0 6px rgba(255,170,0,0.8); }
  .sp-toggle-label-amber.sp-on { color:var(--warn); }
  .sp-action-btn { background:transparent; border:1px solid var(--border2); color:var(--text2); font-family:var(--font-mono); font-size:9px; letter-spacing:2px; padding:0 12px; height:30px; cursor:pointer; transition:all 0.15s; border-radius:2px; white-space:nowrap; flex-shrink:0; }
  .sp-action-btn:hover { border-color:var(--accent); color:var(--accent); }
  .btn-sec { background: transparent; border: 1px solid var(--border2); color: var(--text2); font-family: var(--font-mono); font-size: 18px; padding: 0; width: 36px; height: 36px; box-sizing: border-box; cursor: pointer; transition: all 0.15s; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .btn-sec:hover { border-color: var(--accent); color: var(--accent); }
  .btn-sec.active { border-color: var(--accent2); color: var(--accent2); }
  .btn-refresh { background: transparent; border: 1px solid var(--border2); color: var(--text2); font-family: var(--font-mono); font-size: 18px; padding: 0; width: 36px; height: 36px; box-sizing: border-box; cursor: pointer; transition: all 0.15s; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .btn-refresh:hover { border-color: var(--accent); color: var(--accent); }
  .btn-refresh:disabled { opacity: 0.4; cursor: not-allowed; }
  #favsBtn { font-size: 22px; padding-bottom: 3px; }
  #refreshBtn { font-size: 19px; padding-top: 2px; }

  #status { font-family: var(--font-mono); font-size: 10px; color: var(--text2); letter-spacing: 1px; display: flex; align-items: center; gap: 6px; white-space:nowrap; }
  #status.loading { color: var(--accent); } #status.err { color: var(--pink); } #status.ok { color: var(--accent2); }
  #newPilotBtnCtrl { font-family:var(--font-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; padding:0 14px; background:transparent; border:1px solid rgba(0,230,180,0.35); color:var(--accent2); cursor:pointer; transition:all 0.2s; white-space:nowrap; height:36px; border-radius:2px; }
  #newPilotBtnCtrl:hover { border-color:var(--accent2); background:rgba(0,230,180,0.08); }
  #newPilotBtnCtrl.active { border-color:var(--accent2); background:rgba(0,230,180,0.12); }
  .pulse { width: 6px; height: 6px; border-radius: 50%; background: currentColor; animation: pulse 1.2s ease-in-out infinite; flex-shrink: 0; }


  .table-wrap { overflow-x: auto; border: 1px solid var(--border); scrollbar-width: thin; scrollbar-color: rgba(0,212,255,0.15) transparent; }
  .table-wrap::-webkit-scrollbar { height: 6px; }
  .table-wrap::-webkit-scrollbar-track { background: transparent; }
  .table-wrap::-webkit-scrollbar-thumb { background: rgba(0,212,255,0.15); border-radius: 3px; transition: background 0.2s; }
  .table-wrap::-webkit-scrollbar-thumb:hover { background: rgba(0,212,255,0.35); }
  .table-wrap.bl-mode tbody tr:hover { background: rgba(212,83,142,0.08) !important; outline: 1px solid rgba(212,83,142,0.3); }
  table { width: 100%; border-collapse: collapse; font-family: var(--font-mono); font-size: 12px; }
  thead th { background: var(--bg3); padding: 10px 14px; text-align: left; color: var(--text2); font-size: 10px; letter-spacing: 2px; text-transform: uppercase; border-bottom: 1px solid var(--border2); white-space: nowrap; cursor: pointer; user-select: none; position: sticky; top: 0; }
  thead th:hover { color: var(--accent); }
  thead th.sort-active { color: var(--accent); }
  thead th.sort-active::after { content: ' ↓'; }
  thead th.sort-active.asc::after { content: ' ↑'; }
  thead th.no-sort { cursor: default; }
  thead th.no-sort:hover { color: var(--text2); }
  tbody tr { border-bottom: 1px solid rgba(26,48,64,0.5); transition: background 0.1s; }
  tbody tr:hover { background: rgba(0,200,255,0.04); }
  tbody tr.row-fav { background: rgba(0,255,157,0.03); }
  tbody tr.row-highlighted { background: rgba(0,200,255,0.1) !important; outline: 1px solid rgba(0,200,255,0.4); }
  tbody tr.row-active { background: rgba(0,200,255,0.07) !important; border-left: 2px solid var(--accent); }

  tbody td { padding: 8px 14px; vertical-align: middle; white-space: nowrap; }
  .col-commodity { color: var(--text); }
  .col-terminal { color: var(--text2); font-size: 11px; }
  .col-profit { color: var(--profit); }
  .col-total { color: var(--profit); font-weight: 600; }
  .col-scu { color: var(--text2); }
  .col-return { color: var(--text3); font-size: 11px; max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
  .col-return.has-return { color: var(--accent2); }
  .fav-btn { background: none; border: none; cursor: pointer; padding: 0 2px; color: var(--text3); transition: color 0.15s; line-height: 1; vertical-align: middle; display: inline-flex; align-items: center; }
  .fav-btn .fav-icon { display: block; flex-shrink: 0; position: relative; top: -1px; }
  .fav-btn.faved .fav-icon path { fill: currentColor; }
  .mobile-actions { display: none; }
  .mobile-actions-cell { display: none; }
  .fav-btn:hover { color: var(--warn); }
  .fav-btn.faved { color: var(--warn); }
  .bl-inline-btn { background: none; border: none; cursor: pointer; padding: 0 2px; margin-left: 6px; color: var(--text3); transition: color 0.15s; line-height: 1; vertical-align: middle; display: inline-flex; align-items: center; }
  .bl-inline-btn .bl-icon { display: block; flex-shrink: 0;; position: relative; top: -1px; }
  .bl-inline-btn:hover { color: var(--pink); }
  .bl-btn { background: none; border: none; cursor: pointer; font-size: 11px; padding: 0 4px; color: var(--text3); font-family: var(--font-mono); letter-spacing: 1px; transition: color 0.15s; }
  .bl-btn:hover { color: var(--pink); }
  #blManager { display: none; background: rgba(0,200,255,0.03); border: 1px solid rgba(0,200,255,0.3); padding: 14px 16px; margin-bottom: 12px; }
  #blManager.open { display: block; }
  .bl-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; font-family: var(--font-mono); font-size: 10px; color: var(--text2); letter-spacing: 2px; text-transform: uppercase; }
  .bl-list { display: flex; flex-wrap: wrap; gap: 6px; }
  .bl-tag { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-mono); font-size: 10px; color: var(--text); border: 1px solid var(--border2); padding: 3px 8px; letter-spacing: 1px; }
  .bl-tag button { background: none; border: none; cursor: pointer; color: var(--pink); font-size: 12px; padding: 0; line-height: 1; }
  .bl-empty { font-family: var(--font-mono); font-size: 11px; color: var(--text3); letter-spacing: 1px; }
  .badge { display: inline-block; padding: 2px 8px; font-size: 10px; letter-spacing: 1px; border: 1px solid; }
  .badge.ok { color: var(--accent2); border-color: rgba(0,255,157,0.3); background: rgba(0,255,157,0.05); }
  .badge.low { color: var(--warn); border-color: rgba(255,170,0,0.3); background: rgba(255,170,0,0.05); }
  .badge.none { color: var(--pink); border-color: rgba(212,83,142,0.3); background: rgba(212,83,142,0.05); }
  .zone { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; letter-spacing: 1px; white-space: nowrap; }
  .zone-dot { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }
  .zone.local { color: var(--accent2); } .zone.local .zone-dot { background: var(--accent2); }
  .zone.medium { color: var(--warn); } .zone.medium .zone-dot { background: var(--warn); }
  .zone.long { color: var(--accent3); } .zone.long .zone-dot { background: var(--accent3); }
  .empty-row td { text-align: center; padding: 40px; color: var(--text3); letter-spacing: 2px; font-size: 11px; }
  .spinner { display: inline-block; width: 10px; height: 10px; border: 1px solid var(--text3); border-top-color: var(--accent); border-radius: 50%; animation: spin 0.8s linear infinite; }
  footer { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; }
  footer span { font-family: var(--font-mono); font-size: 10px; color: var(--text3); letter-spacing: 1px; }

  #shipIcon { transition: opacity 0.15s ease; animation: flicker 8s ease-in-out infinite, ambientPulse 6s ease-in-out infinite; opacity: 0.95; }
  @keyframes ambientPulse {
    0%,100% { filter: drop-shadow(0 0 5px rgba(0,200,255,0.5)) drop-shadow(0 0 12px rgba(0,200,255,0.2)); }
    50% { filter: drop-shadow(0 0 12px rgba(0,200,255,0.9)) drop-shadow(0 0 28px rgba(0,200,255,0.4)); }
  }
  @keyframes flicker { 0%,100%{opacity:1} 92%{opacity:1} 93%{opacity:0.6} 94%{opacity:1} 96%{opacity:0.8} 97%{opacity:1} }
  @keyframes fadeInUp { from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:translateY(0)} }
  @keyframes rowIn { from{opacity:0;transform:translateX(-4px)} to{opacity:1;transform:translateX(0)} }
  @keyframes glowTravel { 0%{left:-40%} 100%{left:140%} }
  @keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.3;transform:scale(0.7)} }
  @keyframes spin { to{transform:rotate(360deg)} }
  tbody.animating tr { animation: rowIn 0.3s ease-out both; }

  @media (max-width: 700px) { .stats { grid-template-columns: 1fr 1fr; } .header-right { display: none; } }
  @media (max-width: 900px) {
    .container { padding: 14px; }
    .controls input { min-width: 100%; }
    .controls select { flex: 1; font-size: 11px; }
    .btn-sec, .btn-refresh { width: 36px !important; height: 36px !important; flex: none !important; font-size: 18px !important; }
    #favsBtn { font-size: 18px !important; padding-bottom: 3px; }
    #refreshBtn { font-size: 22px !important; padding-top: 0 !important; padding-bottom: 4px; }
    .table-wrap { border: none; }
    .table-wrap table thead { display: none; }
    .table-wrap table, .table-wrap tbody, .table-wrap tr, .table-wrap td { display: block; width: 100%; }
    .table-wrap tbody tr { background: var(--panel); border: 1px solid var(--border); margin-bottom: 10px; padding: 12px; }
    .table-wrap tbody tr:hover { background: var(--panel); }
    .table-wrap tbody td { padding: 3px 0; border: none; white-space: normal; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
    .table-wrap tbody td::before { content: attr(data-label); font-size: 9px; letter-spacing: 2px; color: var(--text3); text-transform: uppercase; flex-shrink: 0; min-width: 80px; }
    .table-wrap tbody td.col-commodity { font-size: 14px; color: var(--accent); border-bottom: 1px solid var(--border); padding-bottom: 8px; margin-bottom: 4px; justify-content: flex-start; }
    .table-wrap tbody td.col-commodity::before { display: none; }
    .hide-mobile { display: none !important; }
    .col-actions-desktop { display: none !important; }
    tbody tr { position: relative; }
    .mobile-actions-cell { display: block !important; position: absolute; top: 10px; right: 10px; padding: 0 !important; border: none !important; width: auto !important; }
    .mobile-actions-cell::before { display: none !important; }
    .mobile-actions { display: flex; align-items: center; gap: 10px; }
    .mobile-actions .fav-btn,
    .mobile-actions .bl-inline-btn { padding: 0; margin: 0; line-height: 1; width: 16px; height: 16px; display: flex; align-items: center; justify-content: center; }
    .mobile-actions .fav-icon,
    .mobile-actions .bl-icon { width: 16px; height: 16px; }
  }
  @media (min-width: 901px) {
    .simple-view td.col-buyPrice, .simple-view td.col-sellPrice, .simple-view td.col-return, .simple-view td.col-bl { display: none; }
    .simple-view #th-buyPrice, .simple-view #th-sellPrice, .simple-view #th-return, .simple-view #th-bl { display: none; }
  }

  #tickerBar{background:rgba(0,200,255,0.03);border-top:1px solid rgba(0,200,255,0.12);border-bottom:1px solid rgba(0,200,255,0.12);padding:5px 0;overflow:hidden;margin-bottom:12px;}
  #tickerTrack{display:flex;gap:30px;white-space:nowrap;will-change:transform;}
  .ti{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:1.5px;}
  .ti.up{color:#00ff9d;} .ti.down{color:#ff6b35;} .ti.neu{color:#6a8fa0;} .ti.accent{color:#00c8ff;} .ti.warn{color:#ffaa00;}
  .ti-div { color:rgba(0,200,255,0.25); font-size:16px; margin:0 10px; vertical-align:middle; border-left:1px solid rgba(0,200,255,0.25); height:12px; display:inline-block; width:0; }
  #signalBars{display:flex;align-items:flex-end;gap:2px;height:14px;margin-left:8px;}
  #signalBars span{width:3px;background:#00c8ff;border-radius:1px;animation:sigPulse 1.8s ease-in-out infinite;}
  #signalBars span:nth-child(1){height:4px}#signalBars span:nth-child(2){height:7px;animation-delay:.2s}
  #signalBars span:nth-child(3){height:10px;animation-delay:.4s}#signalBars span:nth-child(4){height:13px;animation-delay:.6s}
  @keyframes sigPulse{0%,100%{opacity:1}50%{opacity:0.25}}

  #bootScreen { position:fixed; inset:0; background:#080c10; z-index:1000; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:30px; font-family:'Share Tech Mono',monospace; font-size:13px; color:#00c8ff; letter-spacing:1px; overflow:hidden; }
  @media (max-width:768px) { #bootScreen { padding:20px 16px; font-size:11px; letter-spacing:0.5px; } #bootTitle { font-size:13px !important; letter-spacing:2px !important; } .boot-bar { width:100% !important; } }
  #bootScreen.done { display:none; }
  .boot-line { opacity:0; margin:4px 0; white-space:nowrap; }
  .boot-line.show { opacity:1; }
  .boot-line.ok::after { content:' [ OK ]'; color:#00ff9d; }
  .boot-line.warn::after { content:' [ WARN ]'; color:#ffaa00; }
  .boot-line.err::after { content:' [ FAIL ]'; color:#ff6b35; }
  .boot-bar { width:380px; height:2px; background:rgba(0,200,255,0.12); margin:10px 0 14px 0; overflow:hidden; opacity:0; }
  .boot-bar.show { opacity:1; }
  .boot-fill { height:100%; background:linear-gradient(90deg,#00c8ff,#00ff9d); width:0%; transition:width 0.7s ease; }
  #bootTitle { color:#00ff9d; font-size:18px; margin-bottom:6px; letter-spacing:5px; opacity:0; transition:opacity 0.4s; }
  #bootDivider { width:380px; height:1px; background:rgba(0,200,255,0.2); margin-bottom:20px; opacity:0; }
  #bootCursor { display:inline-block; width:8px; height:13px; background:#00c8ff; animation:bootBlink 0.6s step-end infinite; vertical-align:middle; margin-left:4px; }
  #bootReady { margin-top:20px; opacity:0; transition:opacity 0.4s; font-size:11px; color:#6a8fa0; letter-spacing:3px; }
  #bootScanline { position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,200,255,0.015) 2px,rgba(0,200,255,0.015) 4px); pointer-events:none; }
  @keyframes bootBlink { 0%,100%{opacity:1} 50%{opacity:0} }

  .route-dist { display:inline-flex; align-items:center; gap:6px; }
  .dist-bar { display:flex; gap:2px; align-items:center; position:relative; cursor:default; }
  .dist-bar::after { content:attr(data-tooltip); position:absolute; bottom:calc(100% + 7px); left:50%; transform:translateX(-50%); background:#0d1c35; border:1px solid rgba(0,212,255,0.3); color:var(--text); font-family:var(--font-mono); font-size:10px; letter-spacing:0.5px; white-space:nowrap; padding:5px 10px; border-radius:2px; pointer-events:none; opacity:0; transition:opacity 0.15s; z-index:100; }
  .dist-bar::before { content:''; position:absolute; bottom:calc(100% + 2px); left:50%; transform:translateX(-50%); border:4px solid transparent; border-top-color:rgba(0,212,255,0.3); pointer-events:none; opacity:0; transition:opacity 0.15s; z-index:100; }
  .dist-bar:hover::after, .dist-bar:hover::before { opacity:1; }
  .dist-pip { width:6px; height:6px; border-radius:1px; }
  .dist-pip.filled.local { background:var(--accent2); }
  .dist-pip.filled.medium { background:var(--warn); }
  .dist-pip.filled.long { background:var(--accent3); }
  .dist-pip.empty { background:var(--border2); }

  .copy-toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); background:rgba(0,200,255,0.15); border:1px solid rgba(0,200,255,0.3); color:var(--accent); font-family:var(--font-mono); font-size:11px; letter-spacing:2px; padding:8px 20px; z-index:9999; opacity:0; transition:opacity 0.2s; pointer-events:none; }
  .copy-toast.show { opacity:1; }
  tbody tr[data-id] { cursor:pointer; }

  thead th { position: relative; }
  .col-resizer { position:absolute; right:0; top:0; width:5px; height:100%; cursor:col-resize; user-select:none; z-index:1; }
  .col-resizer:hover, .col-resizer.dragging { background:rgba(0,200,255,0.3); }

  /* Export/Import */
  .btn-io { background:transparent; border:1px solid var(--border2); color:var(--text2); font-family:var(--font-mono); font-size:10px; padding:0 10px; height:26px; letter-spacing:1px; cursor:pointer; transition:all 0.15s; white-space:nowrap; }
  .btn-io:hover { border-color:var(--accent); color:var(--accent); }

  /* Price alerts */
  @keyframes alertPulse { 0%,100%{background:transparent} 50%{background:rgba(255,170,0,0.08)} }
  tr.price-up td.col-total { color:var(--accent2) !important; }
  tr.price-up td.col-total::after { content:' ▲'; font-size:9px; }
  tr.price-down td.col-total { color:var(--pink) !important; }
  tr.price-down td.col-total::after { content:' ▼'; font-size:9px; }
  tr.price-changed { animation:alertPulse 1.5s ease-in-out 3; }

  /* Trade calculator */
  #calcRoute { font-size:10px; color:var(--text2); letter-spacing:1px; margin-bottom:24px; line-height:1.8; border:1px solid var(--border2); padding:10px; }
  #calcScu { width:100%; accent-color:var(--accent); cursor:pointer; margin-bottom:8px; }
  #calcClose { margin-top:auto; background:transparent; border:1px solid var(--border2); color:var(--text2); font-family:var(--font-mono); font-size:11px; padding:10px; cursor:pointer; letter-spacing:2px; transition:all 0.15s; }
  #calcClose:hover { border-color:var(--pink); color:var(--pink); }

  #pagination { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  .pg-btn { background:transparent; border:1px solid var(--border2); color:var(--text2); font-family:var(--font-mono); font-size:10px; padding:0 10px; height:26px; cursor:pointer; transition:all 0.15s; letter-spacing:1px; }
  .pg-btn:hover:not(:disabled) { border-color:var(--accent); color:var(--accent); }
  .pg-btn.active { border-color:var(--accent); color:var(--accent); background:rgba(0,200,255,0.08); }
  .pg-btn:disabled { opacity:0.3; cursor:not-allowed; }
  .pg-info { font-family:var(--font-mono); font-size:10px; color:var(--text3); letter-spacing:1px; }


  /* Route Detail Panel */
  #detailPanel { position:fixed; right:-520px; top:0; width:500px; height:100vh; background:var(--bg2); border-left:1px solid var(--border2); z-index:499; transition:right 0.3s ease; display:flex; flex-direction:column; box-sizing:border-box; font-family:var(--font-mono); overflow-y:auto; }
  #detailPanel.open { right:0; }
  @media (max-width:900px) {
    #detailPanel { width:100%; right:-100%; top:auto; bottom:-100vh; height:90vh; border-left:none; border-top:1px solid var(--border2); transition:bottom 0.3s ease; }
    #detailPanel.open { right:0; bottom:0; }
  }
  .dp-header { padding:20px 24px 16px; border-bottom:1px solid var(--border); position:relative; }
  .dp-commodity { font-size:18px; color:var(--accent); letter-spacing:3px; margin-bottom:6px; padding-right:40px; }
  .dp-route { font-size:11px; color:var(--text2); letter-spacing:1px; }
  .dp-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border); margin:0; }
  .dp-cell { background:var(--bg2); padding:14px 20px; }
  .dp-cell-icon { display:flex; align-items:center; justify-content:space-between; }
  .dp-cell-label { font-size:9px; color:var(--text3); letter-spacing:2px; margin-bottom:4px; }
  .dp-cell-val { font-size:16px; color:var(--text); letter-spacing:1px; }
  .dp-cell-val.green { color:var(--accent2); }
  .dp-cell-val.cyan { color:var(--accent); }
  .dp-cell-val.amber { color:var(--warn); }
  .dp-fresh { font-size:9px; letter-spacing:1px; margin-top:3px; }
  .dp-fresh.fresh { color:var(--accent2); }
  .dp-fresh.warn  { color:var(--warn); }
  .dp-fresh.stale { color:var(--pink); }
  .dp-fresh.unknown { color:var(--text3); }
  .dp-map { padding:20px 24px; border-top:1px solid var(--border); flex:1; min-height:280px; }
  .dp-map-label { font-size:9px; color:var(--text3); letter-spacing:2px; margin-bottom:12px; }
  #routeMapSvg { width:100%; height:240px; }
  /* Sun pulse — slow warm amber glow */
  .route-sun { animation: sunPulse 3.5s ease-in-out infinite; }
  @keyframes sunPulse {
    0%,100% { filter: drop-shadow(0 0 4px rgba(255,170,0,0.6)) drop-shadow(0 0 10px rgba(255,170,0,0.3)); }
    50%      { filter: drop-shadow(0 0 8px rgba(255,170,0,0.9)) drop-shadow(0 0 20px rgba(255,170,0,0.5)); }
  }
  .dp-close { position:absolute; top:14px; right:16px; background:transparent; border:none; color:var(--text3); font-family:var(--font-mono); font-size:18px; cursor:pointer; letter-spacing:0; transition:color 0.15s; padding:4px; line-height:1; }
  .dp-close:hover { color:#d4538e; }

  #shipIcon.loading { animation: flicker 8s ease-in-out infinite, shipLoading 0.5s ease-in-out infinite; }
  #shipIcon.success { animation: flicker 8s ease-in-out infinite, shipSuccess 0.4s ease-in-out 5; }
  #shipIcon.error   { animation: flicker 8s ease-in-out infinite, shipError 1s ease-in-out 3; }
  @keyframes shipLoading {
    0%,100% { filter: drop-shadow(0 0 4px rgba(0,200,255,0.4)) drop-shadow(0 0 10px rgba(0,200,255,0.15)); }
    50%     { filter: drop-shadow(0 0 10px rgba(0,200,255,0.9)) drop-shadow(0 0 22px rgba(0,200,255,0.4)); }
  }
  @keyframes shipSuccess {
    0%,100% { filter: drop-shadow(0 0 4px rgba(0,255,157,0.3)); }
    50%     { filter: drop-shadow(0 0 12px rgba(0,255,157,1)) drop-shadow(0 0 28px rgba(0,255,157,0.5)); }
  }
  @keyframes shipError {
    0%,100% { filter: drop-shadow(0 0 4px rgba(255,68,68,0.2)); }
    50%     { filter: drop-shadow(0 0 10px rgba(255,68,68,0.8)) drop-shadow(0 0 20px rgba(212,83,142,0.3)); }
  }

  /* Route of the Day */
  #rotdCard { position:relative; border:1px solid rgba(0,200,255,0.3); background:rgba(0,200,255,0.03); margin-bottom:16px; overflow:hidden; display:none; }
  #rotdCard.visible { display:block; }
  @keyframes rotdSweep { 0%,80%{transform:translateX(-100%);opacity:0} 90%{opacity:1} 100%{transform:translateX(400%);opacity:0} }
  #rotdCard::before { content:''; position:absolute; top:0; left:0; width:15%; height:100%; background:linear-gradient(90deg,transparent,rgba(0,200,255,0.025),transparent); animation:rotdSweep 12s ease-in-out infinite; pointer-events:none; }
  .rotd-header { display:flex; align-items:center; justify-content:space-between; padding:10px 18px; border-bottom:1px solid rgba(0,200,255,0.15); }
  .rotd-title { font-family:var(--font-mono); font-size:9px; letter-spacing:3px; color:var(--accent); }
  .rotd-score { font-family:var(--font-mono); font-size:9px; letter-spacing:2px; color:var(--text3); }
  .rotd-body { display:grid; grid-template-columns:1fr 1fr 1fr 1fr 1fr; gap:0; }
  .rotd-cell { padding:12px 18px; border-right:1px solid rgba(0,200,255,0.08); }
  .rotd-cell:last-child { border-right:none; }
  .rotd-cell-label { font-size:8px; color:var(--text3); letter-spacing:2px; margin-bottom:4px; }
  .rotd-cell-val { font-size:14px; letter-spacing:1px; font-family:var(--font-mono); }
  .rotd-cell-val.green { color:var(--accent2); }
  .rotd-cell-val.cyan { color:var(--accent); }
  .rotd-cell-val.amber { color:var(--warn); }
  .rotd-route { padding:8px 18px; border-top:1px solid rgba(0,200,255,0.08); font-family:var(--font-mono); font-size:10px; color:var(--text2); letter-spacing:1px; display:flex; align-items:center; gap:12px; }
  .rotd-route span.hi { color:var(--accent); }
  .rotd-badge { font-size:14px; margin-right:6px; }
  @media (max-width:768px) { .rotd-body { grid-template-columns:1fr 1fr; } .rotd-cell { border-bottom:1px solid rgba(0,200,255,0.08); } }

  /* View toggle tabs */
  .view-seg { display:flex; }
  .view-seg .view-tab:first-child { border-radius:2px 0 0 2px; border-right:none; }
  .view-seg .view-tab:last-child  { border-radius:0 2px 2px 0; }
  .view-seg .view-tab:first-child.active { border-right:1px solid var(--accent); }
  .view-tab { background:transparent; border:1px solid var(--border2); color:var(--text3); font-family:var(--font-mono); font-size:10px; letter-spacing:2px; padding:0 20px; height:36px; cursor:pointer; transition:all 0.15s; }
  .view-tab.active { background:rgba(0,200,255,0.08); border-color:var(--accent); color:var(--accent); }
  .view-tab:hover:not(.active) { color:var(--text2); border-color:var(--border); }

  /* Heatmap */
  #heatmapView { position:relative; width:100%; }
  #heatmapCanvas { image-rendering:crisp-edges; }

  /* ── Heatmap Legend Panel ────────────────────────────────────────────── */
  #heatmapLegend { position:absolute; top:20px; left:0; width:240px; background:rgba(8,12,16,0.75); border:1px solid rgba(0,200,255,0.15); font-family:'Share Tech Mono',monospace; font-size:9px; letter-spacing:1px; text-transform:uppercase; color:rgba(200,220,230,0.7); pointer-events:none; z-index:10; }
  .hl-accent-line { height:1px; background:linear-gradient(90deg,rgba(0,200,255,0.4),transparent); }
  .hl-header { display:flex; align-items:flex-start; gap:7px; padding:10px 10px 7px; }
  .hl-icon { color:rgba(0,200,255,0.7); font-size:11px; line-height:1; flex-shrink:0; margin-top:1px; }
  .hl-header-text { flex:1; }
  .hl-title { font-size:9px; color:rgba(0,200,255,0.7); letter-spacing:1.5px; }
  .hl-sub { font-size:8px; color:rgba(100,140,160,0.6); letter-spacing:1px; margin-top:2px; }
  .hl-live { display:flex; align-items:center; gap:4px; font-size:8px; color:rgba(0,255,157,0.7); letter-spacing:1px; flex-shrink:0; margin-top:1px; }
  .hl-dot { width:5px; height:5px; border-radius:50%; background:rgba(0,255,157,0.8); animation:pulse 1.2s ease-in-out infinite; flex-shrink:0; }
  .hl-rule { height:1px; background:rgba(0,200,255,0.1); margin:0 10px; }
  .hl-items { padding:6px 10px; }
  .hl-row { display:flex; align-items:center; gap:8px; padding:3.5px 0; }
  .hl-ico { width:20px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .hl-ico-convoy { gap:0; }
  .hl-text { display:flex; flex-direction:column; gap:1px; }
  .hl-label { font-size:10px; color:rgba(200,220,235,0.85); letter-spacing:1.5px; }
  .hl-desc { font-size:9px; color:rgba(100,140,160,0.55); letter-spacing:1px; }
  .hl-sun { display:block; width:10px; height:10px; border-radius:50%; background:#ffaa00; box-shadow:0 0 5px rgba(255,170,0,0.6),0 0 10px rgba(255,170,0,0.3); }
  .hl-howto { padding:6px 10px 5px; }
  .hl-howto-title { font-size:8px; color:rgba(0,200,255,0.7); letter-spacing:2px; margin-bottom:6px; }
  .hl-cmd { display:flex; align-items:baseline; gap:8px; padding:3px 0; }
  .hl-cmd-key { font-size:9px; color:#ffaa00; letter-spacing:1.5px; flex-shrink:0; min-width:100px; }
  .hl-cmd-desc { font-size:9px; color:rgba(100,140,160,0.7); letter-spacing:1px; }
  .hl-stats { padding:5px 10px 8px; font-size:8px; color:rgba(100,140,160,0.5); letter-spacing:1px; }
  #heatmapTooltip { position:fixed; background:rgba(8,12,16,0.95); border:1px solid var(--accent); color:var(--text); font-family:var(--font-mono); font-size:10px; letter-spacing:1px; padding:10px 14px; pointer-events:none; z-index:1000; display:none; line-height:1.8; }
  #heatmapTooltip .tt-commodity { color:var(--accent); font-size:11px; letter-spacing:2px; margin-bottom:4px; }
  #heatmapTooltip .tt-profit { color:var(--accent2); }
  #heatmapTooltip .tt-hint { color:var(--text3); font-size:9px; margin-top:4px; }

  /* Optimizer button */
  @keyframes circuitPulse { 0%{box-shadow:0 0 0 0 rgba(0,212,255,0.5)} 70%{box-shadow:0 0 0 6px rgba(0,212,255,0)} 100%{box-shadow:0 0 0 0 rgba(0,212,255,0)} }
  #optimizerBtn { background:transparent; border:1px solid var(--border2); color:#6a8fa0; font-family:var(--font-mono); font-size:10px; letter-spacing:2px; padding:0 14px; height:36px; cursor:pointer; transition:all 0.15s; white-space:nowrap; flex-shrink:0; }
  #optimizerBtn:hover { background:rgba(0,212,255,0.06); border-color:var(--accent); color:var(--accent); }

  /* Optimizer modal */
  #optimizerModal { position:fixed; inset:0; background:rgba(0,0,0,0.85); z-index:2000; display:none; align-items:center; justify-content:center; }
  #optimizerModal.open { display:flex; }
  .opt-box { background:var(--bg2); border:1px solid rgba(255,255,255,0.2); width:460px; max-width:95vw; font-family:var(--font-mono); box-shadow:0 0 40px rgba(255,255,255,0.06); }
  .opt-box-header { padding:16px 20px; border-bottom:1px solid rgba(255,255,255,0.1); display:flex; justify-content:space-between; align-items:center; }
  .opt-box-title { font-size:11px; letter-spacing:3px; color:var(--text); }
  .opt-box-close { background:transparent; border:none; color:var(--text3); font-family:var(--font-mono); font-size:18px; cursor:pointer; letter-spacing:0; transition:color 0.15s; padding:4px; line-height:1; }
  .opt-box-close:hover { color:#d4538e; }
  .opt-box-body { padding:20px; }
  .opt-field { margin-bottom:16px; }
  .opt-field label { display:block; font-size:9px; letter-spacing:2px; color:var(--text3); margin-bottom:6px; }
  .opt-field select, .opt-field input[type=range], .opt-field input[type=number] { width:100%; background:var(--panel); border:1px solid var(--border2); color:var(--text); font-family:var(--font-mono); font-size:12px; padding:8px 12px; outline:none; letter-spacing:1px; height:36px; box-sizing:border-box; }
  .opt-field input[type=number]::placeholder { color:var(--text3); opacity:0.6; }
  .opt-field select:focus { border-color:rgba(255,255,255,0.4); }
  .opt-time-display { text-align:center; font-size:20px; color:var(--text); margin:6px 0 0; letter-spacing:2px; }
  .opt-go { width:100%; height:40px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.25); color:var(--text); font-family:var(--font-mono); font-size:11px; letter-spacing:3px; cursor:pointer; transition:all 0.2s; margin-top:4px; }
  .opt-go:hover { background:rgba(255,255,255,0.08); box-shadow:0 0 16px rgba(255,255,255,0.1); }

  /* Optimizer boot sequence */
  #optimizerBoot { position:fixed; inset:0; background:rgba(0,0,0,0.92); z-index:2001; display:none; align-items:center; justify-content:center; }
  #optimizerBoot.open { display:flex; }
  .opt-boot-box { width:500px; max-width:95vw; border:1px solid rgba(255,255,255,0.15); background:rgba(4,8,14,0.98); padding:32px; font-family:var(--font-mono); box-shadow:0 0 60px rgba(255,255,255,0.05); }
  .opt-boot-title { font-size:10px; letter-spacing:4px; color:var(--text); margin-bottom:20px; text-align:center; }
  .opt-boot-line { font-size:10px; letter-spacing:1.5px; color:var(--text3); margin-bottom:8px; opacity:0; transition:opacity 0.2s; white-space:nowrap; }
  .opt-boot-line.show { opacity:1; }
  .opt-boot-line .ok  { color:var(--accent2); margin-left:4px; }
  .opt-boot-line .gold { color:var(--text2); }
  .opt-progress { width:100%; height:3px; background:rgba(255,255,255,0.08); margin-top:20px; }
  .opt-progress-bar { height:100%; background:rgba(255,255,255,0.7); width:0%; transition:width 0.3s ease; box-shadow:0 0 8px rgba(255,255,255,0.3); }

  /* Itinerary card */
  #itineraryCard { display:none; position:fixed; inset:0; z-index:1500; align-items:center; justify-content:center; background:rgba(0,0,0,0.8); }
  #itineraryCard.visible { display:flex; }
  .itin-inner { background:var(--bg2); border:1px solid rgba(255,255,255,0.2); width:680px; max-width:95vw; max-height:88vh; overflow-y:auto; position:relative; box-shadow:0 0 40px rgba(255,255,255,0.06); font-family:var(--font-mono); }
  @keyframes goldSweep { 0%,75%{transform:translateX(-100%);opacity:0} 88%{opacity:1} 100%{transform:translateX(400%);opacity:0} }
  .itin-inner::before { content:''; position:absolute; top:0; left:0; width:15%; height:100%; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.02),transparent); animation:goldSweep 10s ease-in-out infinite; pointer-events:none; }
  .itin-header { padding:20px 24px 0; position:relative; }
  .itin-divider { width:100%; height:1px; background:linear-gradient(90deg,transparent,rgba(0,212,255,0.3),transparent); margin:12px 0; }
  .itin-title { font-family:var(--orb); font-size:22px; font-weight:900; color:#fff; letter-spacing:0.08em; text-transform:uppercase; text-align:center; text-shadow:0 0 30px rgba(0,212,255,0.3); }
  .itin-route-chain { font-family:var(--font-mono); font-size:10px; letter-spacing:2px; color:var(--text2); text-align:center; margin-top:6px; }
  .itin-route-chain .itin-arrow { color:#00d4ff; margin:0 4px; }
  .itin-stats { display:flex; justify-content:space-around; flex-wrap:wrap; gap:8px; padding:4px 0; }
  .itin-stat { display:flex; flex-direction:column; align-items:center; gap:3px; }
  .itin-stat-label { font-family:var(--font-mono); font-size:8px; letter-spacing:2px; color:var(--text3); text-transform:uppercase; }
  .itin-stat-val { font-family:var(--orb); font-size:13px; font-weight:700; color:var(--text); letter-spacing:1px; }
  .itin-stat-val.gn { color:var(--accent2); }
  .itin-legs { border-bottom:1px solid rgba(255,255,255,0.06); }
  .itin-leg { display:grid; grid-template-columns:28px 1fr 1fr auto auto; gap:0; align-items:center; padding:10px 18px; border-bottom:1px solid rgba(255,255,255,0.03); cursor:pointer; transition:background 0.1s; }
  .itin-leg:hover { background:rgba(255,255,255,0.03); }
  .itin-leg:last-child { border-bottom:none; }
  .itin-leg-num { font-size:11px; color:rgba(255,255,255,0.25); }
  .itin-leg-commodity { font-size:11px; color:var(--accent); letter-spacing:1px; }
  .itin-leg-route { font-size:9px; color:var(--text2); letter-spacing:1px; margin-top:2px; }
  .itin-leg-profit { font-size:12px; color:var(--accent2); text-align:right; padding-right:16px; }
  .itin-leg-time { font-size:9px; color:var(--text3); text-align:right; }
  .itin-footer { padding:12px 18px; display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
  .itin-actions { display:flex; gap:8px; }
  .itin-btn { background:transparent; border:1px solid rgba(255,255,255,0.2); color:var(--text2); font-family:var(--font-mono); font-size:9px; letter-spacing:1px; padding:0 10px; height:24px; cursor:pointer; transition:all 0.15s; }
  .itin-btn:hover { border-color:rgba(255,255,255,0.5); background:rgba(255,255,255,0.06); }
  .itin-run-again { background:rgba(255,255,255,0.03); border-top:1px solid rgba(255,255,255,0.08); padding:8px 18px; font-size:9px; color:var(--text2); letter-spacing:2px; text-align:center; }

  /* Circuit itinerary — capacity utilisation line */
  .itin-leg-fill { font-size:8px; letter-spacing:1px; margin-top:3px; color:var(--text3); }
  .itin-leg-fill.full { color:var(--accent2); }
  .itin-leg-fill.partial { color:rgba(255,100,100,0.7); }
  .itin-leg-fill.has-fill { color:var(--warn); }

  /* Backup Manifest */
  #dpBackupManifest { border-top:1px solid rgba(255,170,0,0.2); margin:0; }
  .bm-trigger { padding:14px 24px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .bm-warn-icon { color:var(--warn); font-size:13px; flex-shrink:0; }
  .bm-title { font-size:9px; letter-spacing:3px; color:var(--warn); flex-shrink:0; }
  .bm-controls { display:flex; align-items:center; gap:8px; margin-left:auto; flex-wrap:wrap; }
  .bm-label { font-size:9px; letter-spacing:1px; color:var(--text3); }
  .bm-scu-input { width:64px; background:var(--panel); border:1px solid var(--border2); color:var(--text); font-family:var(--font-mono); font-size:11px; padding:4px 8px; outline:none; letter-spacing:1px; text-align:center; height:28px; box-sizing:border-box; }
  .bm-find-btn { background:rgba(255,170,0,0.08); border:1px solid rgba(255,170,0,0.4); color:var(--warn); font-family:var(--font-mono); font-size:9px; letter-spacing:2px; padding:6px 12px; cursor:pointer; transition:all 0.15s; white-space:nowrap; }
  .bm-find-btn:hover { background:rgba(255,170,0,0.15); box-shadow:0 0 10px rgba(255,170,0,0.2); }
  .bm-section { padding:10px 24px; border-top:1px solid rgba(255,255,255,0.04); }
  .bm-section-title { font-size:8px; letter-spacing:2px; color:var(--text3); margin-bottom:8px; }
  .bm-row { display:flex; align-items:center; gap:6px; padding:5px 0; border-bottom:1px solid rgba(255,255,255,0.03); }
  .bm-row:last-child { border-bottom:none; }
  .bm-row-main { font-size:10px; color:var(--accent); letter-spacing:1px; flex:1; min-width:0; }
  .bm-row-sub { font-size:9px; color:var(--text3); letter-spacing:1px; flex:2; min-width:0; }
  .bm-row-profit { font-size:11px; color:var(--accent2); letter-spacing:1px; text-align:right; white-space:nowrap; }
  .bm-empty { font-size:9px; color:var(--text3); letter-spacing:1px; padding:4px 0; opacity:0.7; }
  .bm-revised { background:rgba(255,255,255,0.015); }
  .bm-revised-row { display:flex; justify-content:space-between; align-items:center; padding:4px 0; font-size:10px; letter-spacing:1px; color:var(--text2); gap:8px; }
  .bm-revised-total { border-top:1px solid rgba(255,255,255,0.08); margin-top:6px; padding-top:8px; color:var(--text); font-size:11px; }
  .bm-vs { color:var(--text3); font-size:9px; margin-top:2px; }
  .bm-delta { font-size:9px; }
  .bm-delta.neg span:last-child { color:rgba(255,100,100,0.85); }
  .bm-delta.pos span:last-child { color:var(--accent2); }
  .bm-val-cyan { color:var(--accent); }
  .bm-val-green { color:var(--accent2); }

  /* ── Styled Confirm Modal ─────────────────────────────────────────────────── */
  #scConfirmModal { position:fixed; inset:0; background:rgba(0,0,0,0.75); z-index:9000; display:flex; align-items:center; justify-content:center; }
  .sc-confirm-box { background:var(--bg2); border:1px solid var(--border2); width:380px; max-width:92vw; font-family:var(--font-mono); padding:28px 28px 20px; box-shadow:0 0 40px rgba(0,0,0,0.6); }
  .sc-confirm-title { font-size:10px; letter-spacing:3px; color:var(--pink); margin-bottom:12px; }
  .sc-confirm-msg { font-size:12px; color:var(--text2); letter-spacing:1px; line-height:1.7; margin-bottom:24px; }
  .sc-confirm-btns { display:flex; gap:10px; justify-content:flex-end; }
  .sc-confirm-cancel { background:transparent; border:1px solid var(--border2); color:var(--text2); font-family:var(--font-mono); font-size:10px; letter-spacing:2px; padding:0 16px; height:32px; cursor:pointer; transition:all 0.15s; }
  .sc-confirm-cancel:hover { border-color:var(--text2); color:var(--text); }
  .sc-confirm-ok { background:rgba(212,83,142,0.08); border:1px solid rgba(212,83,142,0.5); color:var(--pink); font-family:var(--font-mono); font-size:10px; letter-spacing:2px; padding:0 16px; height:32px; cursor:pointer; transition:all 0.15s; }
  .sc-confirm-ok:hover { background:rgba(255,68,68,0.15); box-shadow:0 0 10px rgba(255,68,68,0.2); }

  /* ── Circuit Planner Failure State ───────────────────────────────────────── */
  .sc-circuit-fail { padding:32px 24px; text-align:center; }
  .sc-circuit-fail-icon { font-size:28px; color:var(--warn); margin-bottom:16px; }
  .sc-circuit-fail-title { font-size:11px; letter-spacing:3px; color:var(--warn); margin-bottom:12px; }
  .sc-circuit-fail-msg { font-size:11px; color:var(--text2); letter-spacing:1px; line-height:1.8; margin-bottom:24px; }
  .sc-circuit-fail-msg span { color:var(--accent); }
  .sc-circuit-fail-hints { text-align:left; display:inline-block; margin-bottom:28px; }
  .sc-circuit-fail-hints div { font-size:10px; color:var(--text3); letter-spacing:1px; margin-bottom:8px; }
  .sc-circuit-fail-btn { background:transparent; border:1px solid rgba(255,255,255,0.25); color:var(--text2); font-family:var(--font-mono); font-size:10px; letter-spacing:3px; padding:0 24px; height:36px; cursor:pointer; transition:all 0.2s; }
  .sc-circuit-fail-btn:hover { background:rgba(255,255,255,0.05); border-color:rgba(255,255,255,0.5); color:var(--text); }

  /* ══════════════════════════════════════════════════════════════════════════
     COMMAND DECK — CMD DECK TOGGLE BUTTON
  ══════════════════════════════════════════════════════════════════════════ */
  #cmdDeckBtn { background:transparent; border:none; padding:8px 14px; height:38px; cursor:pointer; transition:opacity 0.2s; display:flex; align-items:center; justify-content:center; flex-shrink:0; position:relative; }
  #cmdDeckBtn::before, #cmdDeckBtn::after { content:''; position:absolute; inset:0px; border-radius:3px; border:1px solid rgba(0,200,255,0); animation:radarPing 6s ease-out infinite; pointer-events:none; }
  #cmdDeckBtn::after { animation-delay:3s; }
  @keyframes radarPing { 0% { inset:0px; border-color:rgba(0,200,255,0.5); opacity:1; } 100% { inset:-12px; border-color:rgba(0,200,255,0); opacity:0; } }
  #cmdDeckBtn:hover { opacity:0.85; }
  #cmdDeckBtn:hover::before, #cmdDeckBtn:hover::after { animation-duration:1.2s; }
  #cmdDeckBtn svg { display:block; }

  /* LOG RUN button bar in detail panel */
  .dp-log-run-bar { padding:12px 24px; border-top:1px solid rgba(212,83,142,0.15); }
  .dp-log-run-btn { width:100%; height:36px; background:var(--pink-dim); border:1px solid var(--pink-border); color:var(--pink); font-family:var(--font-mono); font-size:11px; letter-spacing:3px; cursor:pointer; transition:all 0.2s; }
  .dp-log-run-btn:hover { background:rgba(212,83,142,0.18); box-shadow:0 0 12px var(--pink-glow); }

  /* ── Stock Risk Warning ─────────────────────────────────────────────────── */
  .dp-risk-warn { display:flex; align-items:flex-start; gap:10px; padding:12px 24px; border-top:1px solid var(--border); }
  .dp-risk-warn.dp-risk-critical { background:rgba(255,68,85,0.06); border-top-color:rgba(255,68,85,0.25); }
  .dp-risk-warn.dp-risk-low      { background:rgba(255,170,0,0.06);  border-top-color:rgba(255,170,0,0.25); }
  .dp-risk-warn.dp-risk-traffic  { background:rgba(0,200,255,0.05);  border-top-color:rgba(0,200,255,0.2); }
  .drw-icon { line-height:1; flex-shrink:0; display:flex; align-items:flex-start; }
  .drw-body { flex:1; min-width:0; }
  .drw-label { font-family:var(--font-mono); font-size:10px; letter-spacing:1.5px; text-transform:uppercase; line-height:1.4; }
  .dp-risk-critical .drw-label { color:var(--pink); }
  .dp-risk-low      .drw-label { color:var(--warn); }
  .dp-risk-traffic  .drw-label { color:var(--accent); }
  .drw-sub { font-family:var(--font-mono); font-size:9px; color:var(--text3); letter-spacing:1px; margin-top:3px; text-transform:uppercase; }

  /* Log Run Modal */


  /* ══════════════════════════════════════════════════════════════════════════
     COMMAND DECK — ROOT CONTAINER
  ══════════════════════════════════════════════════════════════════════════ */
  #commandDeckRoot { position:fixed; inset:0; z-index:200; background:var(--bg); overflow-y:scroll; display:none; scrollbar-gutter:stable; scrollbar-width:thin; scrollbar-color:rgba(0,212,255,0.15) transparent; }
  #commandDeckRoot::-webkit-scrollbar { width:6px; }
  #commandDeckRoot::-webkit-scrollbar-track { background:transparent; }
  #commandDeckRoot::-webkit-scrollbar-thumb { background:rgba(0,212,255,0.15); border-radius:3px; transition:background 0.2s, box-shadow 0.2s; }
  #commandDeckRoot::-webkit-scrollbar-thumb:hover { background:rgba(0,212,255,0.35); }
  html { scrollbar-width:thin; scrollbar-color:rgba(0,212,255,0.15) transparent; }
  ::-webkit-scrollbar { width:6px; }
  ::-webkit-scrollbar-track { background:transparent; }
  ::-webkit-scrollbar-thumb { background:rgba(0,212,255,0.15); border-radius:3px; transition:background 0.2s, box-shadow 0.2s; }
  ::-webkit-scrollbar-thumb:hover { background:rgba(0,212,255,0.35); }

  /* ── CD Internal Nav ── */
  #cdNav { position:sticky; top:0; z-index:50; background:rgba(8,12,16,0.96); border-bottom:1px solid rgba(0,212,255,0.18); backdrop-filter:blur(12px); display:flex; align-items:center; justify-content:space-between; padding:0 20px; height:50px; }
  #cdNav::after { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,#00d4ff,#d4538e,#00d4ff,transparent); opacity:0.4; }
  .cd-nav-logo { display:flex; align-items:center; flex-shrink:0; padding-top:4px; }
  .cd-nav-logo-svg { width:110px; height:auto; display:block; filter:drop-shadow(0 0 8px rgba(0,200,255,0.25)); }
  .cd-nav-tabs { position:absolute; left:50%; transform:translateX(-50%); display:flex; gap:4px; }
  .cd-nav-tab { font-family:var(--font-mono); font-size:11px; letter-spacing:2px; text-transform:uppercase; padding:8px 16px; background:transparent; border:1px solid transparent; border-radius:2px; color:var(--text); cursor:pointer; transition:all 0.15s; }
  .cd-nav-tab:hover { color:#fff; border-color:rgba(0,212,255,0.28); }
  .cd-nav-tab.active { color:#00d4ff; border-color:rgba(0,212,255,0.32); background:rgba(0,212,255,0.08); }
  .cd-nav-tab-intel.active { color:#00d4ff; border-color:rgba(0,212,255,0.32); background:rgba(0,212,255,0.08); }
  .cd-nav-right { display:flex; align-items:center; gap:10px; }
  .cd-back-btn { font-family:var(--font-mono); font-size:8px; letter-spacing:2px; text-transform:uppercase; border:1px solid var(--border2); border-radius:2px; padding:3px 10px; color:var(--accent); background:var(--cyan-dim); cursor:pointer; transition:all 0.15s; }
  .cd-back-btn:hover { background:rgba(0,212,255,0.15); border-color:var(--accent); }
  .cd-pilot-tag { font-family:var(--font-mono); font-size:9px; letter-spacing:2px; color:var(--text2); }
  .cd-live-dot { width:5px; height:5px; border-radius:50%; background:var(--accent2); animation:pulse 2s ease-in-out infinite; display:inline-block; margin-right:5px; }
  .cd-rank-chip { display:none; }

  /* ── Hamburger button — hidden on desktop ── */
  .cd-hamburger { display:none; flex-direction:column; justify-content:center; align-items:center; gap:4px; width:32px; height:32px; background:transparent; border:1px solid var(--border2); border-radius:2px; cursor:pointer; padding:0; flex-shrink:0; transition:border-color 0.15s; }
  .cd-hamburger:hover { border-color:var(--accent); }
  .cd-hamburger span { display:block; width:14px; height:1.5px; background:var(--text); border-radius:1px; transition:all 0.2s; transform-origin:center; }
  .cd-hamburger.open span:nth-child(1) { transform:translateY(5.5px) rotate(45deg); }
  .cd-hamburger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
  .cd-hamburger.open span:nth-child(3) { transform:translateY(-5.5px) rotate(-45deg); }

  /* ── Hamburger dropdown menu ── */
  .cd-hamburger-menu { display:none; position:sticky; top:44px; z-index:49; background:rgba(8,12,16,0.98); border-bottom:1px solid rgba(0,212,255,0.18); backdrop-filter:blur(12px); flex-direction:column; }
  .cd-hamburger-menu.open { display:flex; }
  .cd-hm-item { font-family:var(--font-mono); font-size:11px; letter-spacing:2px; text-transform:uppercase; padding:14px 20px; color:var(--text2); cursor:pointer; border-bottom:1px solid rgba(0,212,255,0.06); transition:all 0.12s; }
  .cd-hm-item:last-child { border-bottom:none; }
  .cd-hm-item:hover { color:#fff; background:rgba(0,212,255,0.06); }
  .cd-hm-item.active { color:#00d4ff; background:rgba(0,212,255,0.08); border-left:2px solid #00d4ff; padding-left:18px; }

  /* ── CD Pages ── */
  .cd-page { display:none; position:relative; z-index:1; }
  .cd-page.active { display:block; }

  /* ── CD Hero ── */
  .hero-section { min-height:40vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:60px 40px 40px; position:relative; }
  .hero-section::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%,rgba(0,212,255,0.07) 0%,transparent 55%),radial-gradient(ellipse at 80% 80%,rgba(212,83,142,0.05) 0%,transparent 50%); pointer-events:none; }
  .hero-line { display:block; width:1px; height:34px; background:linear-gradient(180deg,transparent,#00d4ff); margin:0 auto 12px; }
  .hero-tag { font-family:var(--font-mono); font-size:9px; letter-spacing:0.3em; color:var(--pink); text-transform:uppercase; margin-bottom:14px; }
  .hero-h1 { font-family:var(--orb); font-size:clamp(22px,3.5vw,42px); font-weight:900; color:#fff; letter-spacing:0.06em; text-transform:uppercase; text-shadow:0 0 40px rgba(0,212,255,0.35); line-height:1.1; margin-bottom:8px; animation:flicker 8s ease-in-out infinite; }
  .hero-h1 em { color:#00d4ff; font-style:normal; }
  .hero-logo { margin-bottom:8px; animation:flicker 8s ease-in-out infinite; filter:drop-shadow(0 0 18px rgba(0,200,255,0.35)); display:flex; justify-content:center; }
  .hero-logo-svg { width:300px; height:auto; display:block; margin:0 auto; }
  .hero-sub { font-family:var(--font-mono); font-size:10px; letter-spacing:0.18em; text-transform:uppercase; color:var(--text3); margin-bottom:0; margin-top:16px; }
  .hero-eyebrow { font-family: var(--font-mono); font-size: 10px; letter-spacing: 4px; color: var(--pink); text-transform: uppercase; margin-top: 10px; }
  .hero-divider { width:100%; height:1px; background:linear-gradient(90deg,transparent,var(--border),transparent); position:absolute; bottom:0; left:0; }

  /* ── CD Content Sections ── */
  .content-section { padding:40px 20px 60px; position:relative; max-width:960px; margin:0 auto; }
  .content-section::before { content:''; position:absolute; top:0; left:20px; right:20px; height:1px; background:linear-gradient(90deg,transparent,var(--border),transparent); }
  .sec-tag { font-family:var(--font-mono); font-size:9px; letter-spacing:0.3em; color:var(--pink); text-transform:uppercase; text-align:center; margin-bottom:8px; }
  .sec-title { font-family:var(--orb); font-size:clamp(14px,2vw,22px); font-weight:700; color:#fff; letter-spacing:0.08em; text-transform:uppercase; text-align:center; text-shadow:0 0 24px rgba(0,212,255,0.35); margin-bottom:6px; }
  .sec-title::after { content:''; display:block; width:80px; height:1px; background:linear-gradient(90deg,transparent,#00d4ff,transparent); margin:10px auto 0; }
  .sec-sub { font-family:var(--font-mono); font-size:9px; letter-spacing:0.15em; text-transform:uppercase; color:var(--text3); text-align:center; margin-bottom:36px; margin-top:4px; }
  .hero-section .sec-tag { font-size:9px; letter-spacing:0.3em; color:var(--pink); margin-bottom:14px; }
  .hero-section .sec-title { font-size:36px; font-weight:900; letter-spacing:0.06em; line-height:1.1; color:#00d4ff; text-shadow:0 0 40px rgba(0,212,255,0.35); animation:flicker 8s ease-in-out infinite; margin-bottom:8px; }
  .hero-section .sec-title::after { display:none; }
  .hero-section .sec-sub { font-size:10px; letter-spacing:0.18em; color:var(--text3); margin-bottom:0; margin-top:0; }

  /* ── CD Stat Grid ── */
  .cd-rank-banner { max-width:900px; margin:0 auto 16px; display:flex; align-items:center; gap:20px; background:#0d1c35; border:1px solid rgba(0,212,255,0.18); border-radius:3px; padding:12px 20px; position:relative; overflow:hidden; transition:border-color 0.2s; }
  .cd-rank-banner:hover { border-color:rgba(0,212,255,0.35); }
  .cd-rank-banner::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,#00d4ff,transparent); opacity:0.4; }
  .cd-rank-banner-left { display:flex; align-items:center; gap:10px; flex-shrink:0; }
  .cd-rank-banner-icon { width:32px; height:32px; object-fit:contain; filter:drop-shadow(0 0 6px rgba(0,212,255,0.4)); }
  .cd-rank-banner-name { font-family:var(--orb); font-size:14px; font-weight:700; color:#00d4ff; text-shadow:0 0 12px rgba(0,212,255,0.35); letter-spacing:0.05em; }
  .cd-rank-banner-right { flex:1; display:flex; flex-direction:column; gap:4px; }
  .cd-rank-banner-track { height:4px; background:rgba(0,212,255,0.06); border-radius:2px; }
  .cd-rank-banner-fill { height:100%; border-radius:2px; background:linear-gradient(90deg,#00d4ff,var(--pink)); transition:width 0.4s ease; }
  .cd-rank-banner-pct { font-family:var(--font-mono); font-size:8px; color:var(--text3); letter-spacing:1px; }
  /* Rank Popover */
  #scRankPopover { position:fixed; inset:0; background:rgba(0,0,0,0.6); z-index:9000; display:flex; align-items:center; justify-content:center; }
  .rp-box { background:#0a1628; border:1px solid rgba(0,212,255,0.25); border-radius:4px; padding:28px 32px; min-width:320px; max-width:420px; position:relative; display:flex; flex-direction:column; align-items:center; gap:12px; }
  .rp-box::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,#00d4ff,transparent); opacity:0.5; }
  .rp-close { position:absolute; top:10px; right:12px; background:none; border:none; color:var(--text3); font-size:14px; cursor:pointer; padding:4px 8px; }
  .rp-close:hover { color:#00d4ff; }
  .rp-icon-wrap { position:relative; width:80px; height:80px; flex-shrink:0; }
  .rp-icon { width:80px; height:80px; object-fit:contain; display:block; }
  .rp-shine { position:absolute; inset:0; width:80px; height:80px; pointer-events:none; z-index:2; }
  @keyframes rpShineOrbit { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
  .rp-shine-group { animation: rpShineOrbit 12s linear infinite; transform-origin: 40px 40px; }
  .rp-rank-num { font-family:var(--font-mono); font-size:9px; color:var(--text3); letter-spacing:2px; }
  .rp-days { font-family:var(--font-mono); font-size:9px; color:rgba(0,212,255,0.5); letter-spacing:1.5px; }
  .rp-name { font-family:var(--orb); font-size:18px; font-weight:700; color:#00d4ff; letter-spacing:0.08em; text-align:center; }
  .rp-divider { width:100%; height:1px; background:rgba(0,212,255,0.12); }
  .rp-stats { display:flex; gap:20px; justify-content:center; flex-wrap:wrap; }
  .rp-stat { display:flex; flex-direction:column; align-items:center; gap:3px; min-width:60px; }
  .rp-stat-val { font-family:var(--orb); font-size:20px; font-weight:700; color:#fff; }
  .rp-stat-label { font-family:var(--font-mono); font-size:8px; color:var(--text3); letter-spacing:1.5px; }
  .rp-next-label { font-family:var(--font-mono); font-size:9px; color:var(--text3); letter-spacing:2px; text-align:center; }
  .rp-reqs { width:100%; display:flex; flex-direction:column; gap:8px; }
  .rp-req { display:flex; flex-direction:column; gap:4px; }
  .rp-req-header { display:flex; justify-content:space-between; }
  .rp-req-label { font-family:var(--font-mono); font-size:9px; color:var(--text3); letter-spacing:1px; }
  .rp-req-val { font-family:var(--font-mono); font-size:9px; color:#00d4ff; }
  .rp-req-track { height:3px; background:rgba(0,212,255,0.08); border-radius:2px; }
  .rp-req-fill { height:100%; border-radius:2px; background:linear-gradient(90deg,#00d4ff,var(--pink)); transition:width 0.3s ease; }
  .rp-max { font-family:var(--font-mono); font-size:10px; color:#00d4ff; letter-spacing:2px; }
  /* Achievement group complete */
  .ach-group-complete .ach-section-label { color:#00d4ff; }
  .cd-overview-header { max-width:900px; margin:0 auto 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .cd-overview-filter-wrap { display:flex; align-items:center; gap:10px; }
  .cd-filter-label { font-family:var(--orb); font-size:8px; font-weight:600; letter-spacing:0.2em; color:var(--text3); text-transform:uppercase; }
  .cd-ship-select { font-family:var(--orb); font-size:10px; font-weight:600; letter-spacing:0.1em; background:#0d1c35; border:1px solid rgba(0,212,255,0.3); border-radius:2px; color:#00d4ff; padding:6px 12px; cursor:pointer; outline:none; text-transform:uppercase; transition:border-color 0.15s; }
  .cd-ship-select:hover { border-color:rgba(0,212,255,0.6); }
  .cd-ship-select option { background:#0d1c35; color:var(--text); }
  .cd-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; max-width:900px; margin:0 auto 10px; }
  @media(max-width:700px) { .cd-stat-grid { grid-template-columns:1fr 1fr; } }
  .cd-stat-card { background:#0d1c35; border:1px solid rgba(0,212,255,0.18); border-radius:3px; padding:24px 20px; position:relative; overflow:hidden; }
  .cd-stat-card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,#00d4ff,transparent); opacity:0.5; }
  .cd-stat-card.pk::before { background:linear-gradient(90deg,var(--pink),transparent); }
  .cd-stat-card.gn::before { background:linear-gradient(90deg,var(--accent2),transparent); }
  .cd-stat-card.am::before { background:linear-gradient(90deg,var(--warn),transparent); }
  .cd-stat-label { font-family:var(--orb); font-size:9px; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--text2); margin-bottom:8px; }
  .cd-stat-val { font-family:var(--orb); font-size:26px; font-weight:700; color:#00d4ff; }
  .cd-stat-card.pk .cd-stat-val { color:var(--pink); }
  .cd-stat-card.gn .cd-stat-val { color:var(--accent2); }
  .cd-stat-card.am .cd-stat-val { color:var(--warn); }
  .cd-stat-sub { font-family:var(--font-mono); font-size:10px; color:var(--text2); margin-top:5px; }

  /* ── CD Charts ── */
  .chart-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; max-width:900px; margin:0 auto 10px; }
  .chart-grid2 { display:grid; grid-template-columns:2fr 2fr; gap:10px; max-width:900px; margin:0 auto; }
  @media(max-width:768px) { .chart-grid { grid-template-columns:1fr; } .chart-grid2 { grid-template-columns:1fr; } }
  .chart-panel { background:#0d1c35; border:1px solid rgba(0,212,255,0.18); border-radius:3px; padding:14px; position:relative; overflow:hidden; }
  .chart-panel::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,#00d4ff,transparent); opacity:0.4; }
  .chart-panel.pk::before { background:linear-gradient(90deg,var(--pink),transparent); }
  .chart-label { font-family:var(--orb); font-size:7px; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--text3); margin-bottom:10px; }
  canvas.cc { width:100%; height:60px; display:block; }
  .pie-wrap { display:flex; align-items:center; gap:12px; margin-top:4px; }
  .pie-legend { display:flex; flex-direction:column; gap:4px; }
  .pie-row { display:flex; align-items:center; gap:6px; }
  .pie-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
  .pie-lbl { font-family:var(--font-mono); font-size:8px; color:var(--text2); flex:1; }
  .pie-pct { font-family:var(--font-mono); font-size:8px; color:var(--text3); }
  .bar-wrap { display:flex; align-items:flex-end; gap:4px; height:52px; margin-top:4px; }
  .bar-col { flex:1; display:flex; flex-direction:column; align-items:center; gap:2px; }
  .bar-seg { width:100%; border-radius:1px 1px 0 0; min-height:2px; }
  .bar-lbl { font-family:var(--font-mono); font-size:7px; color:var(--text3); }
  .mini-run { display:flex; align-items:center; gap:8px; padding:6px 0; border-bottom:1px solid rgba(0,212,255,0.05); }
  .mini-run:last-child { border:none; }
  .mini-comm { font-family:var(--orb); font-size:9px; font-weight:700; color:var(--text); flex:1; letter-spacing:0.03em; }
  .mini-route { font-family:var(--font-mono); font-size:8px; color:var(--text2); flex:1.5; }
  .mini-profit { font-family:var(--orb); font-size:10px; font-weight:700; color:var(--accent2); }

  /* Efficiency stat row */
  .cd-eff-row { margin-top:0; margin-bottom:10px; }
  .cd-eff-row .cd-stat-card { opacity:0.88; }
  .cd-eff-row .cd-stat-val { font-size:20px; }

  /* Commodity performance bar chart */
  .cd-comm-panel { overflow:hidden; }
  .cd-comm-bars { display:flex; flex-direction:column; gap:7px; margin-top:4px; }
  .cd-comm-row { display:flex; align-items:center; gap:10px; }
  .cd-comm-row.cd-comm-top .cd-comm-name { color:var(--accent); }
  .cd-comm-name {
    font-family:var(--orb); font-size:8px; font-weight:700; letter-spacing:0.1em;
    color:var(--text2); width:120px; flex-shrink:0; display:flex; flex-direction:column; gap:2px;
  }
  .cd-comm-runs { font-family:var(--font-mono); font-size:7px; color:var(--text3); font-weight:400; letter-spacing:0.05em; }
  .cd-comm-bar-wrap {
    flex:1; height:18px; background:rgba(0,212,255,0.05); border-radius:2px;
    display:flex; align-items:center; overflow:hidden; min-width:0;
  }
  .cd-comm-bar-fill {
    height:100%; border-radius:2px; transition:width 0.5s ease; flex-shrink:0;
    min-width:2px; max-width:55%;
  }
  .cd-comm-val {
    font-family:var(--orb); font-size:9px; font-weight:700; color:var(--text);
    margin-left:8px; white-space:nowrap; flex-shrink:0;
  }
  .cd-comm-pscu {
    font-family:var(--font-mono); font-size:7px; color:var(--text2);
    margin-left:6px; white-space:nowrap; flex-shrink:0;
  }
  @media(max-width:600px) {
    .cd-comm-name { width:80px; font-size:7px; }
    .cd-comm-pscu { display:none; }
  }

  /* ── CD Route Cards ── */
  .route-cards { display:flex; flex-direction:column; gap:10px; max-width:900px; margin:0 auto; }
  .route-card { background:#0d1c35; border:1px solid rgba(0,212,255,0.18); border-radius:3px; display:grid; grid-template-columns:1fr 150px 150px; position:relative; overflow:hidden; cursor:pointer; transition:border-color 0.15s; }
  @media(max-width:768px) { .route-card { grid-template-columns:1fr; } }
  .route-card:hover { border-color:var(--border2); }
  .route-card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; }
  .route-card.gn::before { background:linear-gradient(90deg,var(--accent2),transparent); }
  .route-card.cy::before { background:linear-gradient(90deg,#00d4ff,transparent); }
  .route-card.am::before { background:linear-gradient(90deg,var(--warn),transparent); }
  .route-card.pk::before { background:linear-gradient(90deg,var(--pink),transparent); }
  .rc-main { padding:14px; border-right:1px solid var(--border); display:flex; gap:12px; }
  .rc-map { width:90px; flex-shrink:0; }
  .rc-info { flex:1; }
  .rc-comm { font-family:var(--orb); font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; }
  .route-card.gn .rc-comm { color:var(--accent2); }
  .route-card.cy .rc-comm { color:#00d4ff; }
  .route-card.am .rc-comm { color:var(--warn); }
  .route-card.pk .rc-comm { color:var(--pink); }
  .rc-meta { font-family:var(--font-mono); font-size:8px; color:var(--text3); letter-spacing:1px; margin-bottom:8px; }
  .rc-route { display:flex; align-items:center; gap:6px; margin-bottom:6px; flex-wrap:wrap; }
  .zb { font-family:var(--font-mono); font-size:7px; letter-spacing:1px; padding:2px 5px; border-radius:1px; background:rgba(0,212,255,0.08); border:1px solid rgba(0,212,255,0.2); color:#00d4ff; }
  .rc-arrow { font-family:var(--font-mono); font-size:8px; color:var(--text3); }
  .rc-loc { font-family:var(--font-mono); font-size:8px; color:var(--text2); }
  .rc-profit-row { display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; }
  .rc-profit { font-family:var(--orb); font-size:16px; font-weight:700; }
  .route-card.gn .rc-profit { color:var(--accent2); }
  .route-card.cy .rc-profit { color:#00d4ff; }
  .route-card.am .rc-profit { color:var(--warn); }
  .route-card.pk .rc-profit { color:var(--pink); }
  .rc-plabel { font-family:var(--font-mono); font-size:7px; color:var(--text3); letter-spacing:1px; }
  .roi-b { font-family:var(--orb); font-size:8px; font-weight:700; color:var(--accent2); border:1px solid rgba(0,255,157,0.2); padding:1px 5px; border-radius:1px; }
  .scu-bar { height:2px; background:rgba(0,212,255,0.08); border-radius:1px; margin-top:6px; }
  .scu-fill { height:100%; border-radius:1px; background:#00d4ff; }
  .route-card.gn .scu-fill { background:var(--accent2); }
  .route-card.am .scu-fill { background:var(--warn); }
  .route-card.pk .scu-fill { background:var(--pink); }
  .scu-lbl { font-family:var(--font-mono); font-size:7px; color:var(--text3); margin-top:2px; }
  .rc-mod { padding:12px; border-left:1px solid var(--border); }
  .mod-title { font-family:var(--orb); font-size:7px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:var(--text3); margin-bottom:7px; }
  .mod-row { display:flex; justify-content:space-between; margin-bottom:3px; }
  .mk { font-family:var(--font-mono); font-size:8px; color:var(--text3); }
  .mv { font-family:var(--font-mono); font-size:8px; color:var(--text); }
  .mv.gn { color:var(--accent2); } .mv.cy { color:#00d4ff; } .mv.am { color:var(--warn); } .mv.pk { color:var(--pink); }
  .mod-div { height:1px; background:var(--border); margin:5px 0; }

  /* ── CD Fleet ── */
  .fleet-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:900px; margin:0 auto; }
  @media(max-width:820px) { .fleet-grid { grid-template-columns:repeat(2,1fr); } }
  @media(max-width:520px) { .fleet-grid { grid-template-columns:1fr; } }

  /* ship card close button */
  .ship-card-close { position:absolute; top:8px; right:8px; background:none; border:none; color:var(--text3); font-size:11px; cursor:pointer; padding:2px 5px; line-height:1; border-radius:2px; z-index:10; transition:color 0.15s, background 0.15s; }
  .ship-card-close:hover { color:var(--pink,#d4538e); background:rgba(212,83,142,0.1); }

  /* ── Ship card base ── */
  .ship-card { background:#0d1c35; border:1px solid rgba(0,212,255,0.18); border-radius:3px; padding:0; overflow:hidden; position:relative; cursor:pointer; transition:border-color 0.3s, transform 0.25s, box-shadow 0.3s; }
  .ship-card:hover { transform:translateY(-3px); border-color:var(--sc-accent,#00d4ff); box-shadow:0 6px 32px -4px color-mix(in srgb, var(--sc-accent,#00d4ff) 35%, transparent), 0 0 0 1px color-mix(in srgb, var(--sc-accent,#00d4ff) 20%, transparent); }
  .ship-card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,var(--sc-accent,#00d4ff),transparent); opacity:0.8; z-index:2; }
  .ship-card.active-ship { border-color:var(--sc-accent,#00d4ff); box-shadow:0 0 24px -4px color-mix(in srgb, var(--sc-accent,#00d4ff) 30%, transparent), 0 0 0 1px color-mix(in srgb, var(--sc-accent,#00d4ff) 15%, transparent); animation:shipCardPulse 3s ease-in-out infinite; }

  /* ── Accent wash ── */
  .ship-card-wash { position:absolute; inset:0; background:linear-gradient(105deg, color-mix(in srgb, var(--sc-accent,#00d4ff) 7%, transparent) 0%, transparent 55%); pointer-events:none; z-index:0; }

  /* ── Scan line ── */
  .ship-card-scan { position:absolute; left:0; right:0; pointer-events:none; z-index:3; }
  .ship-card-scan::before,
  .ship-card-scan::after { content:''; position:absolute; left:0; right:0; height:1px; background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--sc-accent,#00d4ff) 25%, transparent), transparent); }
  .ship-card-scan::before { animation:shipScan1 7s ease-in-out infinite; }
  .ship-card-scan::after  { animation:shipScan2 7s ease-in-out infinite 2.3s; }
  [data-mfr="crusader"] .ship-card-scan::before,
  [data-mfr="crusader"] .ship-card-scan::after,
  [data-mfr="crusader"] .ship-card-scan-b::before,
  [data-mfr="crusader"] .ship-card-scan-b::after { display:none; }
  .ship-card-scan-b { position:absolute; left:0; right:0; pointer-events:none; z-index:3; }
  .ship-card-scan-b::before,
  .ship-card-scan-b::after { content:''; position:absolute; left:0; right:0; height:1px; background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--sc-accent,#00d4ff) 15%, transparent), transparent); }
  .ship-card-scan-b::before { animation:shipScan1 7s ease-in-out infinite 4.1s; }
  .ship-card-scan-b::after  { animation:shipScan2 7s ease-in-out infinite 5.7s; }
  @keyframes shipScan1 { 0% { top:-2px; opacity:0; } 8% { opacity:1; } 90% { top:102%; opacity:0.2; } 100% { top:102%; opacity:0; } }
  @keyframes shipScan2 { 0% { top:-2px; opacity:0; } 8% { opacity:0.6; } 90% { top:102%; opacity:0.1; } 100% { top:102%; opacity:0; } }
  @keyframes shipCardPulse { 0%,100% { box-shadow:0 0 24px -4px color-mix(in srgb, var(--sc-accent,#00d4ff) 30%, transparent), 0 0 0 1px color-mix(in srgb, var(--sc-accent,#00d4ff) 15%, transparent); } 50% { box-shadow:0 0 36px -2px color-mix(in srgb, var(--sc-accent,#00d4ff) 45%, transparent), 0 0 0 1px color-mix(in srgb, var(--sc-accent,#00d4ff) 25%, transparent); } }

  /* ── Card header ── */
  .ship-header { padding:20px 18px 0 18px; display:flex; align-items:flex-start; justify-content:space-between; min-height:96px; position:relative; z-index:1; }
  .ship-header-left { display:flex; flex-direction:column; justify-content:flex-end; flex:1; min-width:0; padding-top:28px; align-items:center; text-align:center; }
  .mfr-label { font-family:var(--font-mono); font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--sc-accent,#00d4ff); opacity:0.65; margin-bottom:6px; text-align:center; }
  .ship-name { font-family:var(--orb); font-size:24px; font-weight:700; letter-spacing:0.05em; color:var(--sc-accent,#fff); line-height:1.15; word-break:break-word; text-align:center; }
  .ship-class { font-family:var(--font-mono); font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--text3); margin-top:6px; }
  .ship-badge { position:absolute; top:10px; right:32px; font-family:var(--font-mono); font-size:8px; letter-spacing:1px; text-transform:uppercase; padding:3px 7px; border-radius:1px; }
  .ship-badge.on  { background:rgba(0,212,255,0.08);  border:1px solid rgba(0,212,255,0.22);  color:#00d4ff; }
  .ship-badge.pl  { background:var(--pink-dim);        border:1px solid var(--pink-border);     color:var(--pink); }
  .ship-badge.ret { background:rgba(90,122,144,0.08);  border:1px solid rgba(90,122,144,0.25);  color:#5a7a90; }

  /* ── Slogan ── */
  .ship-slogan { font-family:var(--font-mono); font-size:11px; letter-spacing:1px; color:var(--sc-accent,#00d4ff); opacity:0.45; font-style:italic; padding:16px 18px 0; line-height:1.6; position:relative; z-index:1; text-align:center; }
  .ship-stats { padding:16px 18px 10px; position:relative; z-index:1; }
  .sstat-row { display:flex; align-items:center; margin-bottom:9px; }
  .sstat-label { font-family:var(--font-mono); font-size:10px; color:var(--text2); width:82px; flex-shrink:0; letter-spacing:1px; }
  .sstat-bar { flex:1; height:4px; background:rgba(255,255,255,0.06); border-radius:2px; margin:0 12px; }
  .sstat-fill { height:100%; border-radius:3px; background:linear-gradient(90deg, var(--sc-accent,#00d4ff), color-mix(in srgb, var(--sc-accent,#00d4ff) 70%, #fff)); opacity:0.5; transition:width 0.5s cubic-bezier(0.4,0,0.2,1); }
  .sstat-fill.sstat-animate { transition:width 0.6s cubic-bezier(0.22,1,0.36,1); }
  .sstat-fill[data-val="8"] { opacity:0.7; background:linear-gradient(90deg, var(--sc-accent,#00d4ff), color-mix(in srgb, var(--sc-accent,#00d4ff) 55%, #fff)); }
  .sstat-fill[data-val="9"] { opacity:0.88; background:linear-gradient(90deg, var(--sc-accent,#00d4ff), color-mix(in srgb, var(--sc-accent,#00d4ff) 35%, #fff)); }
  .sstat-fill[data-val="10"] { opacity:1; background:linear-gradient(90deg, var(--sc-accent,#00d4ff), #fff); height:5px; }
  .ship-card:not(.active-ship) .sstat-fill { opacity:0.35; }
  .ship-card:not(.active-ship) .sstat-fill[data-val="8"] { opacity:0.5; }
  .ship-card:not(.active-ship) .sstat-fill[data-val="9"] { opacity:0.65; }
  .ship-card:not(.active-ship) .sstat-fill[data-val="10"] { opacity:0.8; }
  .sstat-val { font-family:var(--font-mono); font-size:10px; color:var(--sc-accent,#00d4ff); opacity:0.6; width:30px; text-align:right; flex-shrink:0; }
  .sstat-val.sstat-val-high { opacity:1; font-weight:700; }
  .ship-card.active-ship .sstat-val { opacity:0.9; }

  /* ── In-game price ── */
  .ship-price { display:flex; align-items:baseline; justify-content:space-between; padding:6px 18px 10px; border-top:1px solid rgba(255,255,255,0.04); }
  .ship-price-label { font-family:var(--font-mono); font-size:8px; letter-spacing:2px; text-transform:uppercase; color:var(--text3); }
  .ship-price-val { font-family:var(--font-mono); font-size:12px; color:var(--sc-accent,#00d4ff); opacity:0.8; }
  .ship-price-na { font-family:var(--font-mono); font-size:9px; color:var(--text3); font-style:italic; }

  /* ── Profitability footer ── */
  .ship-div { height:1px; background:var(--border); margin:0 18px; }
  .profit-section { padding:12px 18px 16px; }
  .profit-lbl { font-family:var(--font-mono); font-size:8px; letter-spacing:3px; text-transform:uppercase; color:var(--text3); margin-bottom:4px; }
  .profit-val { font-family:var(--orb); font-size:18px; font-weight:900; color:var(--sc-accent,#00d4ff); }
  .ship-card:not(.active-ship) .profit-val { color:var(--text3); }
  .profit-unit { font-family:var(--font-mono); font-size:9px; color:var(--text3); margin-left:4px; }
  .profit-sub { font-family:var(--font-mono); font-size:8px; color:var(--text3); margin-top:3px; }
  .profit-bar { height:2px; background:rgba(0,212,255,0.08); border-radius:1px; margin-top:8px; }
  .profit-bar-fill { height:100%; border-radius:1px; background:linear-gradient(90deg,var(--sc-accent,#00d4ff),var(--accent2)); }
  .ship-card:not(.active-ship) .profit-bar-fill { background:var(--text3); }
  .profit-no-runs .profit-lbl { opacity:0.5; }
  .profit-no-runs .profit-sub { color:var(--text3); opacity:0.5; font-style:italic; }

  /* ── Anvil radar background + bars ── */

  /* ── Manufacturer background layer (base) ── */
  .ship-card-mfr-bg { position:absolute; inset:0; pointer-events:none; z-index:0; }

  /* ── Drake Interplanetary ── */
  [data-mfr="drake"] .ship-card-mfr-bg {
    background-image:
      repeating-linear-gradient(
        -52deg,
        transparent,
        transparent 18px,
        rgba(255,107,53,0.04) 18px,
        rgba(255,107,53,0.04) 19px
      ),
      repeating-linear-gradient(
        -52deg,
        transparent,
        transparent 38px,
        rgba(255,107,53,0.03) 38px,
        rgba(255,107,53,0.03) 40px
      );
  }
  /* Hazard stripe along top */
  [data-mfr="drake"]::after {
    content:'';
    position:absolute;
    top:0; left:0; right:0;
    height:3px;
    background:repeating-linear-gradient(
      90deg,
      #ff6b35 0px, #ff6b35 8px,
      #1a1a1a 8px, #1a1a1a 16px
    );
    opacity:0.7;
    z-index:4;
    pointer-events:none;
  }

  /* ── Hologram canvas overlay ── */
  .ship-holo { position:absolute; top:0; left:0; width:100%; height:120px; pointer-events:none; z-index:1; opacity:0.55; display:block; }
  .ship-card:not(.active-ship) .ship-holo { opacity:0.28; }
  .ship-card:hover .ship-holo { opacity:0.7; }
  /* MISC and Origin — full card height canvas */
  [data-mfr="misc"]   .ship-holo,
  [data-mfr="origin"] .ship-holo { height:400px; opacity:0.35; }
  [data-mfr="misc"]:not(.active-ship)   .ship-holo,
  [data-mfr="origin"]:not(.active-ship) .ship-holo { opacity:0.18; }
  [data-mfr="misc"]:hover   .ship-holo,
  [data-mfr="origin"]:hover .ship-holo { opacity:0.45; }
  /* Lift all card content above full-card canvases */
  [data-mfr="misc"]   .ship-header, [data-mfr="origin"] .ship-header,
  [data-mfr="misc"]   .ship-slogan, [data-mfr="origin"] .ship-slogan,
  [data-mfr="misc"]   .ship-stats,  [data-mfr="origin"] .ship-stats,
  [data-mfr="misc"]   .ship-price,  [data-mfr="origin"] .ship-price,
  [data-mfr="misc"]   .ship-div,    [data-mfr="origin"] .ship-div,
  [data-mfr="misc"]   .profit-section, [data-mfr="origin"] .profit-section { position:relative; z-index:2; }

  /* ── Stat value count-up ── */
  .sstat-val { transition:opacity 0.3s; }
  .sstat-val.counting { opacity:0.3; }

  /* ── Aegis Dynamics — angular corner brackets ── */
  [data-mfr="aegis"] .ship-card-mfr-bg {
    background:
      linear-gradient(to right,  rgba(138,180,160,0.12) 1px, transparent 1px) 0 0 / 100% 100%,
      linear-gradient(to bottom, rgba(138,180,160,0.12) 1px, transparent 1px) 0 0 / 100% 100%;
  }
  [data-mfr="aegis"]::after {
    content:'';
    position:absolute; inset:0;
    background:
      linear-gradient(to right,  #8ab4a0 12px, transparent 12px) 0    0   / 100% 1px no-repeat,
      linear-gradient(to right,  #8ab4a0 12px, transparent 12px) 0    100%/ 100% 1px no-repeat,
      linear-gradient(to left,   #8ab4a0 12px, transparent 12px) 100% 0   / 100% 1px no-repeat,
      linear-gradient(to left,   #8ab4a0 12px, transparent 12px) 100% 100%/ 100% 1px no-repeat,
      linear-gradient(to bottom, #8ab4a0 12px, transparent 12px) 0    0   / 1px 100% no-repeat,
      linear-gradient(to bottom, #8ab4a0 12px, transparent 12px) 100% 0   / 1px 100% no-repeat,
      linear-gradient(to top,    #8ab4a0 12px, transparent 12px) 0    100%/ 1px 100% no-repeat,
      linear-gradient(to top,    #8ab4a0 12px, transparent 12px) 100% 100%/ 1px 100% no-repeat;
    opacity:0.55;
    z-index:4;
    pointer-events:none;
    animation:aegisBracketPulse 4s ease-in-out infinite;
  }
  @keyframes aegisBracketPulse {
    0%,100% { opacity:0.45; }
    50%      { opacity:0.75; }
  }

  /* ── MISC — cyan grid tech lines ── */
  [data-mfr="misc"] .ship-card-mfr-bg {
    background-image:
      linear-gradient(to right, rgba(0,212,255,0.06) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(0,212,255,0.04) 1px, transparent 1px);
    background-size: 22px 22px;
    animation: miscGridShift 12s linear infinite;
  }
  @keyframes miscGridShift {
    0%   { background-position: 0 0; }
    100% { background-position: 22px 22px; }
  }
  [data-mfr="misc"]::after {
    content:'';
    position:absolute; bottom:0; left:0; right:0; height:40%;
    background:linear-gradient(to top, rgba(0,212,255,0.07), transparent);
    z-index:4; pointer-events:none;
    animation: miscGlow 5s ease-in-out infinite;
  }
  @keyframes miscGlow {
    0%,100% { opacity:0.6; }
    50%      { opacity:1; }
  }

  /* ── Anvil Aerospace — reinforced corner squares ── */
  [data-mfr="anvil"] .ship-card-mfr-bg {
    background-image:
      repeating-linear-gradient(0deg,   transparent, transparent 19px, rgba(192,200,208,0.04) 20px),
      repeating-linear-gradient(90deg,  transparent, transparent 19px, rgba(192,200,208,0.04) 20px);
  }

  /* ── RSI — constellation dots ── */
  [data-mfr="roberts"] .ship-card-mfr-bg {
    background-image:
      radial-gradient(circle, rgba(168,85,247,0.55) 1px, transparent 1px),
      radial-gradient(circle, rgba(168,85,247,0.3)  1px, transparent 1px),
      radial-gradient(circle, rgba(168,85,247,0.2)  1px, transparent 1px);
    background-size: 37px 41px, 53px 47px, 71px 67px;
    background-position: 11px 8px, 28px 22px, 5px 35px;
    animation: rsiDrift 18s linear infinite;
  }
  @keyframes rsiDrift {
    0%   { background-position: 11px 8px, 28px 22px, 5px 35px; }
    100% { background-position: 48px 49px, 81px 69px, 76px 102px; }
  }
  [data-mfr="roberts"]::after {
    content:'';
    position:absolute; inset:0;
    background:radial-gradient(ellipse at 50% 30%, rgba(168,85,247,0.1) 0%, transparent 65%);
    z-index:4; pointer-events:none;
    animation: rsiRadial 5s ease-in-out infinite;
  }
  @keyframes rsiRadial {
    0%,100% { opacity:0.6; }
    50%      { opacity:1; }
  }

  /* ── Crusader Industries — horizontal data stream ── */
  [data-mfr="crusader"] .ship-card-mfr-bg {
    overflow:hidden;
    background:
      repeating-linear-gradient(
        180deg,
        transparent 0px,
        transparent 14px,
        rgba(126,184,212,0.06) 14px,
        rgba(126,184,212,0.06) 15px
      );
    animation: crusaderStream 3s linear infinite;
  }
  @keyframes crusaderStream {
    0%   { background-position: 0 0; }
    100% { background-position: 0 15px; }
  }
  /* ── Origin Jumpworks — gold filigree shimmer ── */
  [data-mfr="origin"] .ship-card-mfr-bg {
    background:
      repeating-linear-gradient(45deg,
        transparent 0px, transparent 24px,
        rgba(200,169,110,0.04) 24px, rgba(200,169,110,0.04) 25px
      ),
      repeating-linear-gradient(-45deg,
        transparent 0px, transparent 24px,
        rgba(200,169,110,0.03) 24px, rgba(200,169,110,0.03) 25px
      );
  }
  [data-mfr="origin"]::after {
    content:'';
    position:absolute; inset:0;
    background:
      linear-gradient(90deg, rgba(200,169,110,0.18) 1px, transparent 1px) 0 0 / 100% 100%,
      linear-gradient(90deg, rgba(200,169,110,0.18) 1px, transparent 1px) 100% 0 / 100% 100%,
      linear-gradient(180deg, rgba(200,169,110,0.18) 1px, transparent 1px) 0 0 / 100% 100%,
      linear-gradient(180deg, rgba(200,169,110,0.18) 1px, transparent 1px) 0 100% / 100% 100%;
    border:1px solid rgba(200,169,110,0.22);
    border-radius:3px;
    z-index:4; pointer-events:none;
    animation: originShimmer 7s ease-in-out infinite;
  }
  @keyframes originShimmer {
    0%,100% { opacity:0.55; box-shadow:inset 0 0 20px rgba(200,169,110,0.04); }
    50%      { opacity:1;    box-shadow:inset 0 0 32px rgba(200,169,110,0.09); }
  }

  /* ── Argo Astronautics — amber industrial pulse ── */
  [data-mfr="argo"] .ship-card-mfr-bg {
    background-image:
      repeating-linear-gradient(90deg,
        transparent 0px, transparent 10px,
        rgba(255,170,0,0.05) 10px, rgba(255,170,0,0.05) 11px
      );
  }
  [data-mfr="argo"]::after {
    content:'';
    position:absolute; inset:0;
    border:1px dashed rgba(255,170,0,0.25);
    border-radius:3px;
    z-index:4; pointer-events:none;
    animation: argoBeacon 2.5s ease-in-out infinite;
  }
  @keyframes argoBeacon {
    0%,100% { opacity:0.4; box-shadow:inset 0 0 12px rgba(255,170,0,0.04); }
    50%      { opacity:0.85; box-shadow:inset 0 0 24px rgba(255,170,0,0.09); }
  }
  /* Argo warning stripe along bottom */
  [data-mfr="argo"] .ship-card-mfr-bg::after {
    content:'';
    position:absolute; bottom:0; left:0; right:0; height:3px;
    background:repeating-linear-gradient(90deg, #ffaa00 0px, #ffaa00 8px, #1a1a1a 8px, #1a1a1a 16px);
    opacity:0.5;
  }

  /* ── Banu — organic flowing tendrils ── */
  [data-mfr="banu"] .ship-card-mfr-bg {
    background:
      radial-gradient(ellipse 80% 40% at 20% 80%, rgba(0,255,157,0.07) 0%, transparent 60%),
      radial-gradient(ellipse 60% 30% at 80% 20%, rgba(0,255,157,0.05) 0%, transparent 60%);
    animation: banuFlow 8s ease-in-out infinite alternate;
  }
  @keyframes banuFlow {
    0%   { background-position: 0% 0%;   opacity:0.7; }
    100% { background-position: 5% 10%;  opacity:1;   }
  }
  [data-mfr="banu"]::after {
    content:'';
    position:absolute; inset:0;
    border:1px solid rgba(0,255,157,0.18);
    border-radius:3px;
    box-shadow:inset 0 0 30px rgba(0,255,157,0.04);
    z-index:4; pointer-events:none;
    animation: banuPulse 6s ease-in-out infinite;
  }
  @keyframes banuPulse {
    0%,100% { box-shadow:inset 0 0 30px rgba(0,255,157,0.04); opacity:0.7; }
    50%      { box-shadow:inset 0 0 50px rgba(0,255,157,0.1);  opacity:1; }
  }

  /* ── Consolidated Outland — frontier stencil marks ── */
  [data-mfr="consolidated"] .ship-card-mfr-bg {
    background-image:
      repeating-linear-gradient(-30deg,
        transparent 0px, transparent 8px,
        rgba(212,168,75,0.04) 8px, rgba(212,168,75,0.04) 9px
      );
  }
  [data-mfr="consolidated"]::after {
    content:'';
    position:absolute; inset:0;
    background:
      linear-gradient(to right,  rgba(212,168,75,0.4) 6px, transparent 6px)   0    0    / 100% 1px no-repeat,
      linear-gradient(to right,  rgba(212,168,75,0.4) 6px, transparent 6px)   0    100% / 100% 1px no-repeat,
      linear-gradient(to left,   rgba(212,168,75,0.4) 6px, transparent 6px)   100% 0    / 100% 1px no-repeat,
      linear-gradient(to left,   rgba(212,168,75,0.4) 6px, transparent 6px)   100% 100% / 100% 1px no-repeat,
      linear-gradient(to bottom, rgba(212,168,75,0.4) 6px, transparent 6px)   0    0    / 1px 100% no-repeat,
      linear-gradient(to bottom, rgba(212,168,75,0.4) 6px, transparent 6px)   100% 0    / 1px 100% no-repeat,
      linear-gradient(to top,    rgba(212,168,75,0.4) 6px, transparent 6px)   0    100% / 1px 100% no-repeat,
      linear-gradient(to top,    rgba(212,168,75,0.4) 6px, transparent 6px)   100% 100% / 1px 100% no-repeat;
    opacity:0.6;
    z-index:4; pointer-events:none;
    animation: outlandFlicker 5s step-end infinite;
  }
  @keyframes outlandFlicker {
    0%,100% { opacity:0.6; }
    12%  { opacity:0.3; }
    13%  { opacity:0.6; }
    55%  { opacity:0.5; }
    56%  { opacity:0.7; }
    80%  { opacity:0.35; }
    81%  { opacity:0.6; }
  }

  /* ── Fleet add row ── */
  .fleet-add-row { display:flex; align-items:center; gap:12px; max-width:900px; margin:0 auto 20px; }
  .fleet-add-label { font-family:var(--font-mono); font-size:9px; letter-spacing:3px; text-transform:uppercase; color:var(--text3); white-space:nowrap; }
  #fleetShipSelect { font-family:var(--font-mono); font-size:10px; letter-spacing:1px; background:#0d1c35; border:1px solid rgba(0,212,255,0.22); color:var(--text2); padding:6px 10px; cursor:pointer; }
  #fleetShipSelect:focus { outline:none; border-color:#00d4ff; }

  /* ── Compare toggle button ── */
  .fleet-cmp-btn { font-family:var(--font-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; padding:7px 16px; background:transparent; border:1px solid rgba(0,212,255,0.3); color:var(--text2); cursor:pointer; transition:all 0.15s; white-space:nowrap; margin-left:auto; }
  .fleet-cmp-btn:hover, .fleet-cmp-btn.active { border-color:#00d4ff; color:#00d4ff; background:rgba(0,212,255,0.06); }

  /* ── Compare wrap & header ── */
  #fleetCompareWrap { max-width:900px; margin:28px auto 0; background:#0d1c35; border:1px solid rgba(0,212,255,0.18); border-radius:3px; overflow:hidden; }
  .cmp-header { display:flex; align-items:center; justify-content:space-between; padding:14px 20px; border-bottom:1px solid rgba(0,212,255,0.12); background:rgba(0,212,255,0.03); }
  .cmp-title { font-family:var(--orb); font-size:11px; font-weight:700; letter-spacing:3px; color:#00d4ff; }
  .cmp-close { background:none; border:none; color:var(--text3); font-size:14px; cursor:pointer; padding:0 4px; line-height:1; }
  .cmp-close:hover { color:var(--pink); }

  /* ── Controls row ── */
  .cmp-controls { display:flex; align-items:center; gap:16px; padding:16px 20px; border-bottom:1px solid rgba(0,212,255,0.08); flex-wrap:wrap; }
  .cmp-ctrl-group { display:flex; flex-direction:column; gap:5px; }
  .cmp-ctrl-label { font-family:var(--font-mono); font-size:8px; letter-spacing:3px; text-transform:uppercase; color:var(--text3); }
  .cmp-ctrl-mode { margin-left:auto; }
  .cmp-vs { font-family:var(--orb); font-size:14px; font-weight:700; color:var(--text3); padding-top:14px; }
  .cmp-controls select { font-family:var(--font-mono); font-size:10px; letter-spacing:1px; background:#0d1c35; border:1px solid rgba(0,212,255,0.22); color:var(--text2); padding:6px 10px; cursor:pointer; min-width:180px; }
  .cmp-controls select:focus { outline:none; border-color:#00d4ff; }

  /* ── Route search row ── */
  .cmp-route-row { display:flex; align-items:center; gap:12px; padding:10px 20px; border-bottom:1px solid rgba(0,212,255,0.08); position:relative; flex-wrap:wrap; }
  .cmp-route-input { font-family:var(--font-mono); font-size:10px; flex:1; min-width:260px; background:#0d1c35; border:1px solid rgba(0,212,255,0.22); color:var(--text2); padding:7px 12px; }
  .cmp-route-input:focus { outline:none; border-color:#00d4ff; }
  .cmp-route-results { position:absolute; top:100%; left:20px; right:20px; background:#0d1c35; border:1px solid rgba(0,212,255,0.3); z-index:50; display:none; }
  .cmp-route-item { font-family:var(--font-mono); font-size:9px; padding:8px 12px; cursor:pointer; color:var(--text2); border-bottom:1px solid rgba(0,212,255,0.06); }
  .cmp-route-item:hover { background:rgba(0,212,255,0.06); color:#00d4ff; }
  .cmp-route-none { font-family:var(--font-mono); font-size:9px; padding:10px 12px; color:var(--text3); }

  /* ── Panel container ── */
  .cmp-panel { padding:24px 20px; }
  .cmp-empty { font-family:var(--font-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--text3); text-align:center; padding:32px 0; }

  /* ── DUEL mode ── */
  .duel-wrap { max-width:760px; margin:0 auto; }
  .duel-ships { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:20px; gap:12px; }
  .duel-ship-a { flex:1; }
  .duel-ship-b { flex:1; text-align:right; }
  .duel-score { display:flex; align-items:center; gap:8px; padding-top:18px; flex-shrink:0; }
  .duel-score-a, .duel-score-b { font-family:var(--orb); font-size:28px; font-weight:700; line-height:1; }
  .duel-score-sep { font-family:var(--font-mono); font-size:14px; color:var(--text3); }
  .duel-mfr { font-family:var(--font-mono); font-size:8px; letter-spacing:3px; text-transform:uppercase; opacity:0.55; margin-bottom:4px; }
  .duel-name { font-family:var(--orb); font-size:18px; font-weight:700; text-transform:uppercase; line-height:1.1; margin-bottom:4px; }
  .duel-price { font-family:var(--font-mono); font-size:8px; color:var(--text3); }

  /* legend */
  .duel-stat-legend { display:flex; align-items:center; gap:6px; margin-bottom:16px; font-family:var(--font-mono); font-size:9px; color:var(--text2); }
  .duel-leg-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; display:inline-block; }

  /* stat blocks */
  .duel-rows { display:flex; flex-direction:column; gap:16px; margin-bottom:24px; }
  .duel-stat { background:rgba(255,255,255,0.02); border:1px solid rgba(255,255,255,0.05); border-radius:2px; padding:10px 14px; }
  .duel-stat-label { font-family:var(--font-mono); font-size:8px; letter-spacing:3px; text-transform:uppercase; color:var(--text3); margin-bottom:8px; }
  .duel-stat-bars { display:flex; flex-direction:column; gap:6px; }
  .duel-stat-row { display:flex; align-items:center; gap:10px; }
  .duel-ship-tag { font-family:var(--font-mono); font-size:8px; letter-spacing:1px; width:80px; flex-shrink:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; opacity:0.8; }
  .duel-stat-track { flex:1; height:4px; background:rgba(255,255,255,0.06); border-radius:2px; overflow:hidden; }
  .duel-stat-fill { height:100%; border-radius:2px; transition:width 0.5s cubic-bezier(0.4,0,0.2,1); opacity:0.75; }
  .duel-stat-win { opacity:1; }
  .duel-stat-num { font-family:var(--font-mono); font-size:10px; color:var(--text3); width:28px; text-align:right; flex-shrink:0; }
  .duel-stat-win-num { font-weight:700; }

  .duel-verdict { background:rgba(0,212,255,0.04); border:1px solid rgba(0,212,255,0.12); padding:14px 18px; }
  .duel-verdict-label { font-family:var(--font-mono); font-size:8px; letter-spacing:3px; text-transform:uppercase; color:var(--text3); margin-right:12px; }
  .duel-verdict-text { font-family:var(--font-mono); font-size:10px; color:var(--text2); line-height:1.5; }

  /* ── RADAR mode ── */
  .radar-wrap { display:flex; flex-direction:column; align-items:center; gap:16px; }
  #cmpRadarCanvas { max-width:100%; }
  .radar-legend { display:flex; gap:24px; }
  .radar-leg-item { display:flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:10px; color:var(--text2); }
  .radar-leg-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }

  /* ── ROUTE COMPARISON mode ── */
  .rt-wrap { max-width:600px; margin:0 auto; }
  .rt-route-banner { font-family:var(--font-mono); font-size:9px; letter-spacing:1px; color:var(--text3); text-align:center; margin-bottom:20px; padding:8px; border:1px solid rgba(0,212,255,0.1); }
  .rt-heads { display:flex; justify-content:space-between; margin-bottom:12px; }
  .rt-head { font-family:var(--orb); font-size:14px; font-weight:700; text-transform:uppercase; }
  .rt-rows { display:flex; flex-direction:column; gap:1px; }
  .rt-row { display:flex; align-items:center; justify-content:space-between; padding:9px 0; border-bottom:1px solid rgba(255,255,255,0.04); }
  .rt-label { font-family:var(--font-mono); font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--text3); flex:1; text-align:center; }
  .rt-val { font-family:var(--font-mono); font-size:10px; color:var(--text2); width:160px; }
  .rt-val:last-child { text-align:right; }
  .rt-win { font-weight:700; }

  /* ── UPGRADE PATH mode ── */
  .up-wrap { max-width:500px; margin:0 auto; }
  .up-summary { font-family:var(--font-mono); font-size:10px; color:var(--text2); line-height:1.6; margin-bottom:24px; padding:12px 16px; background:rgba(0,212,255,0.03); border:1px solid rgba(0,212,255,0.1); }
  .up-summary strong { color:#fff; }
  .up-ladder { display:flex; flex-direction:column; }
  .up-step { display:flex; align-items:center; gap:14px; padding:10px 0; position:relative; }
  .up-step-hl { background:rgba(255,255,255,0.02); border-radius:3px; padding:10px 12px; margin:0 -12px; }
  .up-step-dot { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,0.15); flex-shrink:0; }
  .up-step-body { flex:1; }
  .up-step-name { font-family:var(--font-mono); font-size:10px; color:var(--text2); letter-spacing:1px; }
  .up-step-scu { font-family:var(--font-mono); font-size:8px; color:var(--text3); margin-top:2px; }
  .up-step-badge { font-family:var(--orb); font-size:10px; font-weight:700; width:22px; height:22px; border:1px solid; border-radius:2px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .up-connector { width:1px; height:16px; background:rgba(255,255,255,0.08); margin-left:3px; }

  /* ── CD Rank ── */
  .rank-wrap { max-width:900px; margin:0 auto; }
  .rank-ring-row { display:flex; align-items:center; gap:16px; background:#0d1c35; border:1px solid rgba(0,212,255,0.18); border-radius:3px; padding:20px; margin-bottom:14px; position:relative; overflow:hidden; }
  .rank-ring-row::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,#00d4ff,transparent); opacity:0.5; }
  .rr-wrap { position:relative; width:64px; height:64px; flex-shrink:0; }
  .rr-wrap svg { position:absolute; inset:0; }
  .rr-val { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--orb); font-size:11px; font-weight:600; color:#00d4ff; }
  .rr-info { flex:1; }
  .rr-name { font-family:var(--orb); font-size:14px; font-weight:700; color:#00d4ff; text-shadow:0 0 12px rgba(0,212,255,0.35); margin-bottom:4px; display:flex; align-items:center; gap:8px; }
  .rank-icon { width:24px; height:24px; object-fit:contain; filter:drop-shadow(0 0 6px rgba(0,212,255,0.4)); flex-shrink:0; }
  .rank-icon-lg { width:56px; height:56px; object-fit:contain; filter:drop-shadow(0 0 12px rgba(0,212,255,0.5)); display:block; margin-bottom:8px; }
  .rank-icon-sm { width:28px; height:28px; object-fit:contain; filter:drop-shadow(0 0 4px rgba(0,212,255,0.3)); flex-shrink:0; opacity:0.9; }
  .rr-track { height:2px; background:rgba(0,212,255,0.06); border-radius:1px; }
  .rr-fill { height:100%; border-radius:1px; background:linear-gradient(90deg,#00d4ff,var(--pink)); position:relative; }
  .rr-fill::after { content:''; position:absolute; right:-2px; top:-3px; width:7px; height:7px; border-radius:50%; background:var(--pink); box-shadow:0 0 8px var(--pink-glow); }

  /* ── Rank panel ── */
  .rank-combined-block { background:#0d1c35; border:1px solid rgba(0,212,255,0.18); border-radius:3px; padding:20px; margin-bottom:10px; position:relative; overflow:hidden; display:flex; gap:24px; align-items:flex-start; transition:border-color 0.2s; }
  .rank-combined-block:hover { border-color:rgba(0,212,255,0.35); }
  .rank-combined-block::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,#00d4ff,transparent); opacity:0.5; }
  .rank-combined-left { display:flex; align-items:center; gap:16px; flex-shrink:0; }
  .rank-combined-info { display:flex; flex-direction:column; gap:4px; }
  .rank-icon-placeholder { width:56px; height:56px; flex-shrink:0; }
  .rank-combined-right { flex:1; display:flex; flex-direction:column; }
  .rank-current-label { font-family:var(--font-mono); font-size:8px; letter-spacing:2px; color:var(--text3); margin-bottom:4px; }
  .rank-current-name { font-family:var(--orb); font-size:20px; font-weight:700; color:#00d4ff; text-shadow:0 0 16px rgba(0,212,255,0.4); letter-spacing:0.05em; }
  .rank-current-unlock { font-family:var(--font-mono); font-size:9px; color:var(--accent2); letter-spacing:1px; }

  .rank-progress-block { background:#0a1520; border:1px solid rgba(0,212,255,0.12); border-radius:3px; padding:16px 20px; margin-bottom:10px; }
  .rank-prog-header { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; }
  .rank-prog-label { font-family:var(--font-mono); font-size:8px; letter-spacing:2px; color:var(--text3); }
  .rank-prog-pct { font-family:var(--orb); font-size:13px; font-weight:700; color:#00d4ff; }
  .rank-prog-track { height:6px; background:rgba(0,212,255,0.06); border-radius:3px; position:relative; margin-bottom:22px; overflow:visible; }
  .rank-prog-fill { height:100%; border-radius:3px; background:linear-gradient(90deg,#00d4ff,var(--pink)); position:relative; transition:width 0.4s ease; }
  .rank-prog-fill::after { content:''; position:absolute; right:-4px; top:-5px; width:14px; height:14px; border-radius:50%; background:var(--pink); box-shadow:0 0 12px var(--pink-glow); }
  .rank-prog-next-label { position:absolute; right:0; top:16px; font-family:var(--font-mono); font-size:7px; color:rgba(0,212,255,0.3); letter-spacing:1px; white-space:nowrap; }
  .rank-req-list { display:flex; flex-direction:column; gap:8px; margin-bottom:12px; }
  .rank-req-row { }
  .rank-req-label { display:flex; align-items:center; gap:6px; margin-bottom:3px; }
  .rank-req-key { font-family:var(--font-mono); font-size:8px; letter-spacing:2px; color:var(--text3); }
  .rank-req-val { font-family:var(--font-mono); font-size:8px; color:var(--text2); margin-left:auto; }
  .rank-req-tick { font-size:9px; color:var(--accent2); }
  .rank-req-track { height:2px; background:rgba(0,212,255,0.06); border-radius:1px; }
  .rank-req-fill { height:100%; border-radius:1px; background:rgba(0,212,255,0.4); transition:width 0.4s ease; }
  .rank-req-row.met .rank-req-fill { background:var(--accent2); }
  .rank-req-row.met .rank-req-key { color:var(--accent2); }
  .rank-next-unlock { font-family:var(--font-mono); font-size:8px; color:rgba(0,212,255,0.5); letter-spacing:1px; border-top:1px solid rgba(0,212,255,0.08); padding-top:10px; }

  /* ── Rank timeline ── */
  .rank-timeline { display:flex; flex-direction:column; gap:2px; }
  .rtl-row { display:flex; align-items:center; gap:12px; padding:10px 14px; border:1px solid transparent; border-radius:3px; }
  .rtl-row.done { border-color:rgba(0,212,255,0.08); background:rgba(13,28,53,0.4); opacity:0.75; }
  .rtl-row.now  { border-color:rgba(0,212,255,0.32); background:rgba(0,212,255,0.06); }
  .rtl-row.locked { opacity:0.45; }
  .rtl-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
  .rtl-row.done .rtl-dot { background:var(--accent2); }
  .rtl-row.now  .rtl-dot { background:#00d4ff; box-shadow:0 0 6px rgba(0,212,255,0.5); }
  .rtl-row.locked .rtl-dot { background:var(--text3); }
  .rtl-body { flex:1; display:flex; align-items:baseline; gap:10px; }
  .rtl-name { font-family:var(--orb); font-size:14px; font-weight:600; }
  .rtl-row.done   .rtl-name { color:var(--accent2); }
  .rtl-row.now    .rtl-name { color:#00d4ff; }
  .rtl-row.locked .rtl-name { color:var(--text3); }
  .rtl-unlock { font-family:var(--font-mono); font-size:9px; color:var(--text3); }
  .rtl-row.now .rtl-unlock { color:rgba(0,212,255,0.45); }
  .rtl-num { font-family:var(--font-mono); font-size:9px; color:var(--text3); flex-shrink:0; }

  /* ── Achievements ── */
  /* ── Achievements ── */
  .ach-grid { max-width:900px; margin:0 auto; display:flex; flex-direction:column; gap:24px; }

  /* Progress bar */
  .ach-progress-bar { background:#0d1c35; border:1px solid rgba(0,212,255,0.18); border-radius:3px; padding:16px 20px; position:relative; overflow:hidden; }
  .ach-progress-bar::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,#00d4ff,transparent); opacity:0.4; }
  .ach-prog-header { display:flex; justify-content:space-between; margin-bottom:10px; }
  .ach-prog-label { font-family:var(--font-mono); font-size:8px; letter-spacing:2px; color:var(--text3); }
  .ach-prog-pct { font-family:var(--orb); font-size:11px; font-weight:700; color:#00d4ff; }
  .ach-prog-segs { height:6px; background:rgba(0,212,255,0.06); border-radius:3px; overflow:hidden; position:relative; display:block; }
  .ach-prog-seg { display:none; }
  .ach-prog-bar-fill { height:6px; border-radius:3px; background:linear-gradient(90deg,#00d4ff,var(--pink)); transition:width 0.5s ease; display:block; }

  /* Section labels */
  .ach-section-label { font-family:var(--font-mono); font-size:8px; letter-spacing:3px; color:var(--text3); margin-bottom:10px; padding-bottom:6px; border-bottom:1px solid rgba(0,212,255,0.08); }

  /* Unlocked hero row */
  .ach-unlocked-row { }
  .ach-groups { display:flex; flex-direction:column; gap:20px; }
  .ach-group { }
  .ach-badge-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:8px; }

  /* Badge */
  .ach-badge { border-radius:3px; border:1px solid transparent; padding:18px 16px; display:flex; flex-direction:column; gap:8px; position:relative; overflow:hidden; transition:all 0.2s; }

  /* Unlocked badge */
  .ach-badge.on { background:#0d1c35; border-color:rgba(0,212,255,0.18); box-shadow:none; }
  .ach-badge.on::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,#00d4ff,transparent); opacity:0.5; }
  .ach-badge.on::after { display:none; }
  .ach-badge-check { font-size:14px; color:#00d4ff; font-weight:700; line-height:1; }
  .ach-badge.on .ach-badge-check { color:#00d4ff; text-shadow:none; }
  .ach-badge-name { font-family:var(--orb); font-size:13px; font-weight:700; letter-spacing:0.05em; color:var(--text2); }
  .ach-badge.on .ach-badge-name { color:#fff; }
  .ach-badge-desc { font-family:var(--font-mono); font-size:10px; color:var(--text3); line-height:1.6; }
  .ach-badge.on .ach-badge-desc { color:var(--text2); }

  /* Locked badge */
  .ach-badge.locked { border-color:rgba(255,255,255,0.04); background:rgba(255,255,255,0.01); opacity:0.35; }
  .ach-badge.locked .ach-badge-check { color:var(--text3); }
  .ach-badge.locked .ach-badge-name { color:var(--text3); }

  /* Classified badge */
  .ach-badge.classified { border-color:rgba(212,83,142,0.15); background:rgba(212,83,142,0.03); opacity:0.6; }
  .ach-badge.classified .ach-badge-check { color:var(--pink); }
  .ach-badge.classified .ach-badge-name { color:var(--pink); letter-spacing:0.1em; }
  .ach-badge.classified .ach-badge-desc { color:rgba(212,83,142,0.4); }
  @media(max-width:600px) { .ach-badge-grid { grid-template-columns:1fr 1fr; } }



  /* ── CD Intel Tab ── */
  .intel-tabs { display:flex; gap:8px; margin-bottom:20px; max-width:960px; margin-left:auto; margin-right:auto; }
  .intel-tab { font-family:var(--font-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; padding:8px 20px; background:transparent; border:1px solid var(--border2); border-radius:2px; color:var(--text2); cursor:pointer; transition:all 0.15s; }
  .intel-tab:hover { color:var(--text); border-color:rgba(0,212,255,0.28); }
  .intel-tab.active { color:#00d4ff; border-color:rgba(0,212,255,0.4); background:rgba(0,212,255,0.08); }
  .intel-panel { display:none; }
  .intel-panel.active { display:block; }
  .intel-section-label { font-family:var(--orb); font-size:8px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; margin-bottom:8px; }
  .intel-section-label.gn { color:var(--accent2); }
  .intel-section-label.pk { color:var(--pink); }
  .intel-table { width:100%; border-collapse:collapse; margin-bottom:6px; }
  .intel-th { font-family:var(--orb); font-size:9px; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--text2); padding:8px 12px; text-align:left; border-bottom:1px solid rgba(0,212,255,0.1); }
  .intel-th:nth-child(3),.intel-th:nth-child(4),.intel-th:nth-child(5),.intel-th:nth-child(6) { text-align:right; }
  .intel-row { border-bottom:1px solid rgba(0,212,255,0.05); transition:background 0.1s; }
  .intel-row:hover { background:rgba(0,212,255,0.04); }
  .intel-row-best { background:rgba(0,255,157,0.03); }
  .intel-row-worst { background:rgba(212,83,142,0.04); }
  .intel-rank { font-family:var(--orb); font-size:11px; font-weight:700; color:var(--text3); padding:12px 12px; white-space:nowrap; width:44px; }
  .intel-row-best .intel-rank { color:var(--accent2); }
  .intel-row-worst .intel-rank { color:var(--pink); }
  .intel-term { font-family:var(--orb); font-size:11px; font-weight:700; color:var(--text); padding:12px 12px; }
  .intel-bar-wrap { height:3px; background:rgba(0,212,255,0.08); border-radius:2px; margin-top:6px; max-width:200px; }
  .intel-bar-fill { height:100%; border-radius:2px; transition:width 0.4s ease; }
  .intel-bar-fill.best { background:var(--accent2); box-shadow:0 0 4px rgba(0,255,157,0.4); }
  .intel-bar-fill.worst { background:var(--pink); box-shadow:0 0 4px rgba(212,83,142,0.4); }
  .intel-runs { font-family:var(--orb); font-size:11px; font-weight:600; color:var(--text2); padding:12px 12px; text-align:right; }
  .intel-val { font-family:var(--orb); font-size:11px; font-weight:700; padding:12px 12px; text-align:right; }
  .intel-val.gn { color:var(--accent2); }
  .intel-val.pk { color:var(--pink); }
  @media(max-width:640px) { .intel-val:last-child { display:none; } .intel-th:last-child { display:none; } }

  /* ── CD Ticker ── */
  .cd-ticker { position:fixed; bottom:0; left:0; right:0; width:100%; z-index:600; background:rgba(8,12,16,0.96); border-top:1px solid rgba(0,212,255,0.18); height:28px; display:none; align-items:center; overflow:hidden; box-sizing:border-box; }
  .cd-ticker::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--pink),transparent); opacity:0.3; }
  .cd-ticker-inner { display:none; }
  .cd-ti { font-family:var(--font-mono); font-size:8px; color:var(--text2); padding:0 16px; border-right:1px solid var(--border); }
  .cd-ti .hi { color:#00d4ff; }
  .cd-ti.up { color:var(--accent2); }
  .cd-ticker-tag { font-family:var(--orb); font-size:6px; font-weight:600; color:var(--text3); letter-spacing:0.15em; white-space:nowrap; padding:0 12px; border-left:1px solid var(--border); flex-shrink:0; position:absolute; right:0; top:0; bottom:0; display:flex; align-items:center; background:rgba(8,12,16,0.96); z-index:2; }
  .cd-footer-bar { position:fixed; bottom:0; left:0; right:0; height:28px; z-index:600; background:rgba(8,12,16,0.96); border-top:1px solid rgba(0,212,255,0.18); display:flex; align-items:center; justify-content:flex-end; padding:0 16px; box-sizing:border-box; }
  .cd-footer-bar::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--pink),transparent); opacity:0.3; }
  .cd-footer-text { font-family:var(--orb); font-size:6px; font-weight:600; color:var(--text3); letter-spacing:0.15em; white-space:nowrap; }
  @keyframes cd-tick { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

  /* ── CD Empty State ── */
  .cd-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:300px; text-align:center; padding:40px; }
  .cd-empty-title { font-family:var(--orb); font-size:11px; letter-spacing:3px; color:var(--text3); margin-bottom:12px; text-transform:uppercase; }
  .cd-empty-sub { font-family:var(--font-mono); font-size:10px; color:var(--text3); letter-spacing:1px; line-height:1.8; }

  /* ── Circuits Tab ──────────────────────────────────────────────────────── */
  .circuit-card { background:#0a1628; border:1px solid rgba(0,212,255,0.18); border-radius:3px; margin-bottom:14px; max-width:900px; margin-left:auto; margin-right:auto; overflow:hidden; border-left-width:3px; }
  .circuit-card--in-progress { border-left-color:#00d4ff; }
  .circuit-card--complete { border-left-color:#00ff9d; background:rgba(0,255,157,0.015); }
  .circuit-card--abandoned { border-left-color:rgba(255,255,255,0.12); opacity:0.75; }
  .circuit-card-header { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid rgba(0,212,255,0.1); gap:12px; }
  .circuit-header-left { display:flex; align-items:center; gap:14px; }
  .circuit-header-info { display:flex; flex-direction:column; gap:4px; }
  .circuit-header-top { display:flex; align-items:center; gap:8px; }
  .circuit-header-right { display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
  .circuit-status { font-family:var(--font-mono); font-size:9px; letter-spacing:2px; padding:3px 8px; border-radius:2px; }
  .circuit-status.in-progress { color:#00d4ff; border:1px solid rgba(0,212,255,0.4); background:rgba(0,212,255,0.08); }
  .circuit-status.complete { color:#00ff9d; border:1px solid rgba(0,255,157,0.4); background:rgba(0,255,157,0.06); }
  .circuit-status.abandoned { color:var(--text3); border:1px solid rgba(255,255,255,0.1); }
  .circuit-acc-badge { font-family:var(--orb); font-size:9px; font-weight:700; letter-spacing:1px; padding:3px 8px; border-radius:2px; }
  .circuit-acc-badge.hi { color:#00ff9d; background:rgba(0,255,157,0.08); border:1px solid rgba(0,255,157,0.25); }
  .circuit-acc-badge.mid { color:#ffaa00; background:rgba(255,170,0,0.08); border:1px solid rgba(255,170,0,0.25); }
  .circuit-acc-badge.lo { color:var(--pink); background:rgba(212,83,142,0.08); border:1px solid rgba(212,83,142,0.25); }
  .circuit-ship { font-family:var(--orb); font-size:13px; font-weight:700; color:#fff; letter-spacing:2px; }
  .circuit-start-zone { font-family:var(--font-mono); font-size:10px; color:var(--text3); letter-spacing:1px; }
  .circuit-elapsed { font-family:var(--font-mono); font-size:13px; color:var(--text2); letter-spacing:1px; }
  .circuit-leg-count { font-family:var(--orb); font-size:9px; font-weight:600; letter-spacing:2px; color:var(--text3); }
  .circuit-legs { width:100%; border-collapse:collapse; }
  .circuit-legs td { padding:9px 18px; font-family:var(--font-mono); font-size:10px; color:var(--text2); border-bottom:1px solid rgba(0,212,255,0.05); }
  .circuit-legs td.th { font-family:var(--orb); font-size:9px; letter-spacing:2px; color:var(--text3); padding-top:10px; padding-bottom:10px; }
  .circuit-legs td.right { text-align:right; }
  .leg-row-done { background:rgba(0,255,157,0.03); }
  .leg-row-done .leg-comm { color:#00ff9d; }
  .leg-row-active { background:rgba(0,212,255,0.04); }
  .leg-row-active .leg-comm { color:#00d4ff; }
  .leg-row-skipped { opacity:0.5; }
  .leg-num { color:var(--text3); width:32px; }
  .leg-comm { color:#fff; font-weight:600; }
  .leg-route { color:var(--text2); }
  .leg-arrow { color:var(--text3); margin:0 4px; }
  .leg-proj { color:var(--text3); text-align:right; }
  .leg-actual { text-align:right; }
  .leg-actual.done { color:#00ff9d; font-weight:600; }
  .leg-actual.pending { color:var(--text3); }
  .leg-status { width:28px; text-align:center; }
  .circuit-leg-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#00d4ff; animation:circuitPulse 1.5s infinite; }
  .zone-pill { display:inline-block; font-family:var(--orb); font-size:9px; font-weight:700; letter-spacing:1px; padding:2px 6px; border-radius:2px; border:1px solid rgba(0,212,255,0.25); color:#00d4ff; background:rgba(0,212,255,0.08); }
  .circuit-summary { padding:12px 18px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:rgba(0,0,0,0.25); border-top:1px solid rgba(0,212,255,0.07); }
  .circuit-summary-item { font-family:var(--font-mono); font-size:10px; color:var(--text2); }
  .circuit-summary-item.dim { color:var(--text3); }
  .circuit-summary-item.actual { color:#00ff9d; font-weight:600; }
  .circuit-accuracy { font-family:var(--orb); font-size:14px; font-weight:700; }
  .circuit-accuracy.hi { color:#00ff9d; }
  .circuit-accuracy.mid { color:var(--warn); }
  .circuit-accuracy.lo { color:var(--pink); }
  .circuit-actions { display:flex; gap:6px; margin-left:auto; align-items:center; }
  .circuit-btn { background:transparent; border:1px solid rgba(0,212,255,0.28); color:var(--text2); font-family:var(--font-mono); font-size:9px; letter-spacing:2px; padding:0 12px; height:28px; cursor:pointer; border-radius:2px; transition:all 0.15s; white-space:nowrap; }
  .circuit-btn:hover { border-color:rgba(0,212,255,0.6); color:#fff; }
  .circuit-btn.rerun { border-color:rgba(0,212,255,0.4); color:#00d4ff; }
  .circuit-btn.rerun:hover { background:rgba(0,212,255,0.08); border-color:#00d4ff; }
  .circuit-btn.abandon { border-color:rgba(212,83,142,0.3); }
  .circuit-btn.abandon:hover { border-color:var(--pink); color:var(--pink); }
  .circuit-btn.danger { border-color:rgba(212,83,142,0.2); color:var(--text3); padding:0 10px; }
  .circuit-btn.danger:hover { border-color:var(--pink); color:var(--pink); }
  .circuit-filter-bar { display:flex; gap:6px; max-width:900px; margin:0 auto 20px; flex-wrap:wrap; }
  .circuit-filter-btn { background:transparent; border:1px solid rgba(0,212,255,0.2); color:var(--text2); font-family:var(--font-mono); font-size:9px; letter-spacing:2px; padding:5px 14px; cursor:pointer; border-radius:2px; transition:all 0.15s; }
  .circuit-filter-btn.active { border-color:rgba(0,212,255,0.5); color:#00d4ff; background:rgba(0,212,255,0.07); }

  /* ── Beginner Boot Overlay ────────────────────────────────────────────────── */
  /* ── Beginner Ship Select Panel ──────────────────────────────────────────── */
  #beginnerShipSelect {
    display: none;
    align-items: center;
    justify-content: center;
    padding: 48px 16px;
  }
  .bss-inner {
    max-width: 480px;
    width: 100%;
    background: #0d1c35;
    border: 1px solid rgba(0,200,255,0.2);
    padding: 36px 32px;
    position: relative;
  }
  .bss-inner::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, var(--accent), transparent);
    opacity: 0.6;
  }
  .bss-tag {
    font-family: var(--font-mono);
    font-size: 9px;
    color: var(--accent);
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 20px;
    opacity: 0.7;
  }
  .bss-title {
    font-family: var(--font-mono);
    font-size: 16px;
    color: #fff;
    letter-spacing: 2px;
    margin-bottom: 8px;
  }
  .bss-sub {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text3);
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 24px;
    line-height: 1.6;
  }
  .bss-select {
    width: 100%;
    background: rgba(0,0,0,0.3);
    border: 1px solid rgba(0,200,255,0.25);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 1px;
    padding: 10px 12px;
    margin-bottom: 16px;
    outline: none;
    cursor: pointer;
  }
  .bss-select option, .bss-select optgroup { background: var(--bg2); color: var(--text); }
  .bss-select:focus { border-color: var(--accent); }
  .bss-go {
    width: 100%;
    padding: 12px;
    background: rgba(0,200,255,0.1);
    border: 1px solid rgba(0,200,255,0.4);
    color: var(--accent);
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 3px;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.2s;
    margin-bottom: 12px;
  }
  .bss-go:hover { background: rgba(0,200,255,0.18); box-shadow: 0 0 16px rgba(0,200,255,0.2); }
  .bss-skip {
    display: block;
    width: 100%;
    background: transparent;
    border: none;
    color: var(--text3);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 1px;
    cursor: pointer;
    text-align: center;
    padding: 4px;
    transition: color 0.15s;
  }
  .bss-skip:hover { color: var(--text2); }

  /* ── Beginner View ────────────────────────────────────────────────────────── */
  #beginnerView {
    max-width: 860px;
    margin: 0 auto;
    padding: 0 16px 48px;
  }
  .bv-header {
    padding: 24px 0 16px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 20px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
  }
  .bv-header-left {}
  .bv-change-ship {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 6px 12px;
    background: transparent;
    border: 1px solid var(--border2);
    color: var(--text3);
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .bv-change-ship:hover { border-color: var(--accent); color: var(--accent); background: var(--cyan-dim); }
  .bv-title {
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--accent);
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 6px;
  }
  .bv-sub {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text3);
    letter-spacing: 1px;
    text-transform: uppercase;
  }

  /* Route cards */
  .bv-route {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    background: #0d1c35;
    border: 1px solid rgba(0,200,255,0.15);
    margin-bottom: 8px;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    position: relative;
  }
  .bv-route:hover { background: #102240; border-color: rgba(0,200,255,0.35); }
  .bv-route::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, var(--accent), transparent);
    opacity: 0;
    transition: opacity 0.15s;
  }
  .bv-route:hover::before { opacity: 0.4; }

  .bv-route-num {
    font-family: var(--font-mono);
    font-size: 20px;
    color: var(--text3);
    width: 28px;
    flex-shrink: 0;
    text-align: center;
    line-height: 1;
  }
  .bv-route:hover .bv-route-num { color: var(--accent); }

  .bv-route-body { flex: 1; min-width: 0; }
  .bv-commodity {
    font-family: var(--font-mono);
    font-size: 13px;
    color: #fff;
    letter-spacing: 1px;
    margin-bottom: 6px;
  }
  .bv-terminals {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text3);
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
  }
  .bv-buy { color: var(--accent); }
  .bv-sell { color: var(--accent2); }
  .bv-arrow { color: var(--text3); }

  .bv-route-stats {
    display: flex;
    gap: 20px;
    flex-shrink: 0;
  }
  .bv-stat { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
  .bv-stat-label {
    font-family: var(--font-mono);
    font-size: 8px;
    color: var(--text3);
    letter-spacing: 2px;
    text-transform: uppercase;
  }
  .bv-stat-val {
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.5px;
  }
  .bv-stat-val.gn { color: var(--accent2); }
  .bv-stat-val.am { color: var(--warn); }
  .bv-stat-val.ok { color: var(--accent2); }
  .bv-stat-val.low { color: var(--warn); }
  .bv-stat-val.none { color: var(--pink); }

  .bv-empty {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text3);
    letter-spacing: 2px;
    text-align: center;
    padding: 40px;
  }

  /* Tooltip */
  .bv-tooltip {
    background: #0d1c35;
    border: 1px solid rgba(0,200,255,0.25);
    padding: 20px 24px;
    margin-bottom: 16px;
    position: relative;
  }
  .bv-tooltip::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, var(--accent), transparent);
    opacity: 0.5;
  }
  .bvt-title {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--accent);
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 14px;
  }
  .bvt-row {
    display: flex;
    gap: 16px;
    margin-bottom: 8px;
    align-items: baseline;
  }
  .bvt-label {
    font-family: var(--font-mono);
    font-size: 9px;
    color: var(--accent);
    letter-spacing: 2px;
    text-transform: uppercase;
    width: 70px;
    flex-shrink: 0;
  }
  .bvt-desc {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text2);
    letter-spacing: 0.5px;
  }
  .bvt-dismiss {
    margin-top: 16px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 6px 16px;
    background: transparent;
    border: 1px solid rgba(0,200,255,0.3);
    color: var(--accent);
    cursor: pointer;
    transition: all 0.15s;
  }
  .bvt-dismiss:hover { background: var(--cyan-dim); }

  /* Footer */
  .bv-footer {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
    text-align: center;
  }
  .bv-full-btn {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 3px;
    text-transform: uppercase;
    padding: 10px 24px;
    background: transparent;
    border: 1px solid rgba(0,200,255,0.3);
    color: var(--text2);
    cursor: pointer;
    transition: all 0.2s;
  }
  .bv-full-btn:hover { border-color: var(--accent); color: var(--accent); background: var(--cyan-dim); }

  /* Mobile */
  @media (max-width: 600px) {
    .bv-route { flex-wrap: wrap; gap: 12px; }
    .bv-route-stats { gap: 12px; width: 100%; justify-content: space-between; }
    .bv-stat { align-items: flex-start; }
    .bss-inner { padding: 28px 20px; }
    .bv-header { flex-direction: column; align-items: flex-start; }
  }

  /* ── Active Runs — State A (LOG RUN bar) ─────────────────────────────────── */
  .dp-log-run-bar { padding: 0 0 12px; }

  /* ── Active Runs — State B (HUD) ─────────────────────────────────────────── */
  .dp-run-hud { background: rgba(0,212,255,0.04); border: 1px solid rgba(0,212,255,0.15); margin-bottom: 12px; padding: 10px 14px; position: relative; overflow: hidden; }
  .dp-run-hud::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--accent), transparent); animation: dpHudSweep 2.4s linear infinite; }
  @keyframes dpHudSweep { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
  .dp-run-hud-top { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
  .dp-run-pulse { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); flex-shrink: 0; animation: dpPulse 1.2s ease-in-out infinite; }
  @keyframes dpPulse { 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(0,212,255,0.6); } 50% { opacity: 0.6; box-shadow: 0 0 0 5px rgba(0,212,255,0); } }
  .dp-run-label { font-family: var(--font-mono); font-size: 9px; letter-spacing: 3px; color: var(--accent); text-transform: uppercase; flex: 1; }
  .dp-run-timer { font-family: var(--orb); font-size: 15px; font-weight: 700; color: #fff; letter-spacing: 0.05em; }
  .dp-run-cancel { background: transparent; border: none; color: var(--text3); font-family: var(--font-mono); font-size: 13px; cursor: pointer; padding: 0 0 0 8px; line-height: 1; flex-shrink: 0; transition: color 0.15s; }
  .dp-run-cancel:hover { color: var(--pink); }
  .dp-run-complete-btn { width: 100%; height: 32px; background: rgba(0,212,255,0.06); border: 1px solid rgba(0,212,255,0.25); color: var(--accent); font-family: var(--font-mono); font-size: 10px; letter-spacing: 3px; cursor: pointer; transition: all 0.15s; }
  .dp-run-complete-btn:hover { background: rgba(0,212,255,0.12); box-shadow: 0 0 10px rgba(0,212,255,0.2); }

  /* ── Active Runs — State C (complete form) ───────────────────────────────── */
  .dp-run-complete { background: rgba(212,83,142,0.04); border: 1px solid var(--pink-border); margin-bottom: 12px; padding: 12px 14px; }
  .dp-rcc-title { font-family: var(--font-mono); font-size: 9px; letter-spacing: 3px; color: var(--pink); text-transform: uppercase; margin-bottom: 10px; }
  .dp-rcc-fields { display: flex; gap: 10px; margin-bottom: 8px; }
  .dp-rcc-field { flex: 1; }
  .dp-rcc-label { font-family: var(--font-mono); font-size: 8px; letter-spacing: 2px; color: var(--text3); margin-bottom: 4px; text-transform: uppercase; }
  .dp-rcc-input { width: 100%; background: var(--bg); border: 1px solid var(--border2); color: var(--text); font-family: var(--font-mono); font-size: 12px; padding: 6px 8px; box-sizing: border-box; }
  .dp-rcc-input:focus { outline: none; border-color: var(--pink-border); box-shadow: 0 0 6px var(--pink-dim); }
  .dp-rcc-profit { font-family: var(--orb); font-size: 16px; font-weight: 700; color: var(--accent2); text-align: center; padding: 4px 0 10px; }
  .dp-rcc-actions { display: flex; gap: 8px; }
  .dp-rcc-cancel { flex: 0 0 auto; height: 32px; padding: 0 14px; background: transparent; border: 1px solid var(--border2); color: var(--text3); font-family: var(--font-mono); font-size: 9px; letter-spacing: 2px; cursor: pointer; transition: border-color 0.15s; }
  .dp-rcc-cancel:hover { border-color: var(--border2); color: var(--text); }
  .dp-rcc-confirm { flex: 1; height: 32px; background: var(--pink-dim); border: 1px solid var(--pink-border); color: var(--pink); font-family: var(--font-mono); font-size: 10px; letter-spacing: 2px; cursor: pointer; transition: all 0.15s; }
  .dp-rcc-confirm:hover { background: rgba(212,83,142,0.18); box-shadow: 0 0 10px var(--pink-glow); }

  /* ── In-Flight Badge ─────────────────────────────────────────────────────── */
  .in-flight-badge { display: flex; align-items: center; gap: 6px; font-family: var(--font-mono); font-size: 9px; letter-spacing: 2px; color: var(--accent); border: 1px solid rgba(0,212,255,0.3); padding: 4px 10px; cursor: pointer; user-select: none; transition: all 0.15s; white-space: nowrap; }
  .in-flight-badge:hover { background: rgba(0,212,255,0.06); box-shadow: 0 0 10px rgba(0,212,255,0.15); }
  .ifb-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); animation: dpPulse 1.2s ease-in-out infinite; flex-shrink: 0; }

  /* ── In-Flight Panel ─────────────────────────────────────────────────────── */
  .ifp { position: fixed; top: 70px; right: 24px; z-index: 300; background: var(--bg2); border: 1px solid rgba(0,212,255,0.2); min-width: 320px; max-width: 420px; box-shadow: 0 8px 32px rgba(0,0,0,0.6); }
  .ifp-header { font-family: var(--font-mono); font-size: 9px; letter-spacing: 3px; color: var(--accent); padding: 10px 14px; border-bottom: 1px solid var(--border); }
  .ifp-run { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; cursor: pointer; transition: background 0.12s; border-bottom: 1px solid var(--border); }
  .ifp-run:last-child { border-bottom: none; }
  .ifp-run:hover { background: rgba(0,212,255,0.04); }
  .ifp-left { flex: 1; min-width: 0; }
  .ifp-comm { font-family: var(--font-mono); font-size: 10px; font-weight: 600; color: var(--text); letter-spacing: 1px; }
  .ifp-route { font-size: 9px; color: var(--text3); letter-spacing: 0.5px; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ifp-right { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; margin-left: 12px; flex-shrink: 0; }
  .ifp-timer { font-family: var(--orb); font-size: 12px; font-weight: 700; color: var(--accent); }
  .ifp-go { font-family: var(--font-mono); font-size: 8px; letter-spacing: 2px; color: var(--text3); }
  .ifp-cancel { background: transparent; border: none; color: var(--text3); font-family: var(--font-mono); font-size: 13px; cursor: pointer; padding: 0 0 0 10px; line-height: 1; flex-shrink: 0; align-self: center; transition: color 0.15s; }
  .ifp-cancel:hover { color: #d4538e; }

  /* ── Itinerary LOG CIRCUIT button ────────────────────────────────────────── */
  .itin-btn-log { background: var(--pink-dim); border-color: var(--pink-border) !important; color: var(--pink) !important; }
  .itin-btn-log:hover { background: rgba(212,83,142,0.18) !important; box-shadow: 0 0 10px var(--pink-glow) !important; }

  /* ── Run card delete button ───────────────────────────────────────────────── */
  .rc-comm-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2px; }
  .rc-delete { background: transparent; border: none; color: var(--text3); font-size: 10px; cursor: pointer; padding: 2px 4px; line-height: 1; transition: color 0.12s; flex-shrink: 0; }
  .rc-delete:hover { color: var(--pink); }
  #backToTop { position:fixed; bottom:24px; right:24px; background:var(--bg2); border:1px solid var(--border2); color:var(--text2); font-family:var(--font-mono); font-size:9px; letter-spacing:2px; padding:0 14px; height:30px; cursor:pointer; transition:all 0.15s; border-radius:2px; opacity:0; pointer-events:none; z-index:999; }
  #backToTop.visible { opacity:1; pointer-events:auto; }
  #backToTop:hover { border-color:var(--accent); color:var(--accent); }


  /* ═══════════════════════════════════════════════════════════════════════════
     COMMAND DECK — MOBILE  ≤ 640px
  ═══════════════════════════════════════════════════════════════════════════ */
  @media (max-width: 640px) {

    /* ── Nav bar — logo left, route-finder + hamburger right ── */
    #cdNav { padding: 0 10px; height: 44px; justify-content: space-between; }
    .cd-nav-logo { display: flex; }
    .cd-nav-logo-svg { width: 80px; }
    .cd-nav-tabs { display: none; }
    .cd-hamburger { display: flex; order: 2; }
    .cd-nav-right { flex-shrink: 0; gap: 6px; flex-direction: row; align-items: center; }
    .cd-rank-chip { display: none; }
    .cd-back-btn { font-size: 7px; padding: 3px 8px; letter-spacing: 1px; order: 1; }

    /* ── Hero section — compress ── */
    .hero-section { min-height: 22vh; padding: 28px 16px 20px; }
    .hero-logo-svg { width: 180px; }
    .hero-line { height: 16px; margin-bottom: 8px; }

    /* ── Content section — tighter padding ── */
    .content-section { padding: 20px 12px 40px; }

    /* ── Rank banner — stack vertically ── */
    .cd-rank-banner { flex-direction: column; align-items: flex-start; gap: 10px; padding: 12px 14px; }
    .cd-rank-banner-left { gap: 8px; }
    .cd-rank-banner-name { font-size: 12px; }
    .cd-rank-banner-right { width: 100%; }

    /* ── Stat grid — 2 columns ── */
    .cd-stat-grid { grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 20px; }
    .cd-stat-card { padding: 16px 14px; }
    .cd-stat-val { font-size: 20px; }

    /* ── Chart grids — single column ── */
    .chart-grid { grid-template-columns: 1fr; }
    .chart-grid2 { grid-template-columns: 1fr; }

    /* ── Overview header / ship filter ── */
    .cd-overview-header { flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 12px; }

    /* ── Route cards — single column, no side panels ── */
    .route-card { grid-template-columns: 1fr; }
    .rc-main { border-right: none; border-bottom: 1px solid var(--border); }
    .rc-map { display: none; }
    .rc-mod { border-left: none; border-top: 1px solid var(--border); padding: 10px 14px; }

    /* ── Fleet grid — 1 card per row on phone ── */
    .fleet-grid { grid-template-columns: 1fr; gap: 10px; }
    .fleet-add-row { flex-direction: column; align-items: stretch; gap: 8px; }
    #fleetCompareWrap { margin-top: 16px; }

    /* ── Rank combined block — stack ── */
    .rank-combined-block { flex-direction: column; gap: 14px; padding: 14px; }
    .rank-combined-left { gap: 12px; }
    .rank-current-name { font-size: 16px; }
    .rank-ring-row { padding: 12px 14px; gap: 12px; }
    .rr-wrap { width: 52px; height: 52px; }
    .rr-name { font-size: 12px; }

    /* ── Rank timeline — tighter ── */
    .rtl-row { padding: 6px 10px; }
    .rtl-name { font-size: 11px; }
    .rtl-unlock { display: none; }

    /* ── Achievements — 1 column ── */
    .ach-badge-grid { grid-template-columns: 1fr; }
    .ach-badge { padding: 14px 12px; }

    /* ── Intel tab — card layout ── */
    .intel-table thead { display: none; }
    .intel-table, .intel-table tbody { display: block; width: 100%; }
    /* Each row = a card */
    .intel-row { display: block; padding: 12px 14px; border-bottom: 1px solid rgba(0,212,255,0.08); position: relative; }
    .intel-row-best { background: rgba(0,255,157,0.04); }
    .intel-row-worst { background: rgba(212,83,142,0.05); }
    /* All cells block by default */
    .intel-row td { display: block; padding: 0; border: none; text-align: left; white-space: normal; width: auto; }
    /* Rank — small label top-left */
    .intel-rank { font-size: 10px; letter-spacing: 1px; color: var(--text3); margin-bottom: 4px; padding: 0; width: auto; }
    .intel-row-best .intel-rank { color: var(--accent2); }
    .intel-row-worst .intel-rank { color: var(--pink); }
    /* Terminal name — large */
    .intel-term { font-size: 13px; font-weight: 700; margin-bottom: 6px; padding: 0; }
    .intel-bar-wrap { display: block; max-width: 100%; height: 3px; margin-top: 5px; margin-bottom: 8px; }
    .intel-runs { display: none; }
    /* Stats — each on its own labelled line */
    .intel-val { font-size: 12px; font-weight: 700; padding: 2px 0; display: flex; align-items: baseline; gap: 8px; }
    .intel-val::before { font-family: var(--font-mono); font-size: 8px; letter-spacing: 2px; color: var(--text3); display: inline-block; width: 68px; flex-shrink: 0; }
    .intel-val:nth-child(4)::before { content: 'AVG PROFIT'; }
    .intel-val:nth-child(5)::before { content: 'AVG ROI'; }
    .intel-val:nth-child(6)::before { content: 'aUEC/HR'; }
    .intel-val.gn { color: var(--accent2); }
    .intel-val.pk { color: var(--pink); }

    /* ── Circuits — card layout ── */
    .circuit-card-header { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px 14px; }
    .circuit-header-right { align-items: flex-start; flex-direction: row; flex-wrap: wrap; gap: 6px; }
    .circuit-header-left { gap: 10px; }
    .rr-wrap { width: 44px; height: 44px; }
    .circuit-ship { font-size: 12px; }
    .circuit-elapsed { font-size: 12px; }
    .circuit-actions { margin-left: 0; flex-wrap: wrap; }
    .circuit-summary { gap: 6px; padding: 10px 14px; }
    /* Leg rows as cards */
    .circuit-legs thead { display: none; }
    .circuit-legs, .circuit-legs tbody { display: block; width: 100%; }
    .circuit-legs tr { display: block; padding: 14px 14px; border-bottom: 1px solid rgba(0,212,255,0.08); position: relative; }
    .circuit-legs tr:last-child { border-bottom: none; }
    /* All cells block by default */
    .circuit-legs td { display: block; padding: 0; border: none; width: auto; white-space: normal; }
    .circuit-legs td::before { display: none; }
    /* Leg number — dim label */
    .leg-num { display: inline; font-size: 11px; color: var(--text3); margin-right: 8px; }
    /* Commodity name — prominent */
    .leg-comm { display: inline; font-size: 15px; font-weight: 700; }
    /* Status dot/tick — top right */
    .leg-status { display: block; position: absolute; top: 14px; right: 14px; width: auto; text-align: right; }
    /* Route pills */
    .leg-route { display: block; margin: 10px 0 8px; font-size: 13px; }
    /* Projected profit */
    .leg-proj { display: flex; align-items: baseline; gap: 10px; font-size: 14px; color: var(--text3); margin-bottom: 5px; }
    .leg-proj::before { content: 'PROJ'; font-family: var(--font-mono); font-size: 9px; letter-spacing: 2px; color: var(--text3); display: inline-block; width: 40px; flex-shrink: 0; }
    /* Actual profit */
    .leg-actual { display: flex; align-items: baseline; gap: 10px; font-size: 14px; }
    .leg-actual::before { content: 'ACTUAL'; font-family: var(--font-mono); font-size: 9px; letter-spacing: 2px; color: var(--text3); display: inline-block; width: 40px; flex-shrink: 0; }
    .leg-actual.done { color: #00ff9d; font-weight: 600; }
    .leg-actual.pending { color: var(--text3); }

    /* ── Footer bar — hide on mobile to save space ── */
    .cd-footer-bar { display: none; }
  }

  /* ═══════════════════════════════════════════════════════════════════════════
     COMMAND DECK — TABLET  641px–900px
  ═══════════════════════════════════════════════════════════════════════════ */
  @media (min-width: 641px) and (max-width: 900px) {

    /* ── Nav bar — logo left, route-finder + hamburger right ── */
    #cdNav { padding: 0 14px; }
    .cd-nav-logo { display: flex; }
    .cd-nav-logo-svg { width: 95px; }
    .cd-nav-tabs { display: none; }
    .cd-hamburger { display: flex; order: 2; }
    .cd-rank-chip { display: none; }
    .cd-nav-right { flex-direction: row; align-items: center; gap: 8px; }
    .cd-back-btn { order: 1; }

    /* ── Content section ── */
    .content-section { padding: 28px 16px 48px; }

    /* ── Rank banner ── */
    .cd-rank-banner { padding: 14px 18px; }
    .cd-rank-banner-name { font-size: 16px; }
    .cd-rank-banner-right { width: 100%; flex: 1; }
    .cd-rank-banner-track { height: 5px; }

    /* ── Stat grid — 2 columns ── */
    .cd-stat-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .cd-stat-val { font-size: 24px; }
    .cd-stat-label { font-size: 10px; }
    .cd-stat-sub { font-size: 11px; }

    /* ── Charts ── */
    .chart-grid { grid-template-columns: 1fr; }
    .chart-grid2 { grid-template-columns: 1fr; }

    /* ── Intel table — bigger on tablet ── */
    .intel-th { font-size: 10px; padding: 10px 12px; }
    .intel-rank { font-size: 13px; padding: 12px 12px; }
    .intel-term { font-size: 13px; padding: 12px 12px; }
    .intel-runs { font-size: 13px; padding: 12px 12px; }
    .intel-val { font-size: 13px; padding: 12px 10px; }

    /* ── Fleet grid — 2 cards per row on tablet ── */
    .fleet-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }

    /* ── Route card — drop side panels on narrow tablet ── */
    .route-card { grid-template-columns: 1fr; }
    .rc-main { border-right: none; border-bottom: 1px solid var(--border); }
    .rc-map { display: none; }
    .rc-mod { border-left: none; border-top: 1px solid var(--border); }

    /* ── Rank combined block ── */
    .rank-combined-block { padding: 16px; gap: 16px; }
    .rank-current-name { font-size: 17px; }

    /* ── Achievements — 2 columns ── */
    .ach-badge-grid { grid-template-columns: repeat(2, 1fr); }

    /* ── Circuits — table intact on tablet, just tighter ── */
    .circuit-legs { width: 100%; border-collapse: collapse; display: table; }
    .circuit-legs thead { display: table-header-group; }
    .circuit-legs tbody { display: table-row-group; }
    .circuit-legs tr { display: table-row; background: revert; border: revert; margin: 0; padding: 0; }
    .circuit-legs td { display: table-cell; padding: 7px 10px; font-size: 10px; white-space: nowrap; width: auto; }
    .circuit-legs td::before { display: none; }
    .circuit-card-header { flex-wrap: wrap; gap: 8px; }
    .circuit-actions { flex-wrap: wrap; gap: 4px; }
    /* Intel table intact on tablet */
    .intel-table { display: table; width: 100%; }
    .intel-table thead { display: table-header-group; }
    .intel-table tbody { display: table-row-group; }
    .intel-row { display: table-row; }
    .intel-rank, .intel-term, .intel-runs, .intel-val { display: table-cell; }
  }

  /* ═══════════════════════════════════════════════════════════════════════════
     MOBILE — SC HAULERS  ≤ 640px
  ═══════════════════════════════════════════════════════════════════════════ */
  @media (max-width: 640px) {

    /* ── Container ── */
    .container { padding: 10px 10px 48px; }

    /* ── Hero ── */
    .hero-line { height: 20px; margin-bottom: 6px; }
    .hero-eyebrow { font-size: 9px; letter-spacing: 2px; }
    .hero-sub { font-size: 9px; letter-spacing: 1px; }
    /* Badge top-left, CMD DECK top-right, logo centred below */
    .hero-title-block { position: relative !important; padding: 44px 12px 10px !important; }
    .hero-top-right { position: absolute !important; top: 10px !important; left: 0 !important; right: 0 !important; bottom: auto !important; width: 100% !important; display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: flex-end !important; padding: 0 10px !important; gap: 8px !important; margin: 0 !important; }
    .hero-logo-svg { width: 150px; }
    #cmdDeckBtn { padding: 2px 4px; height: 26px; flex-shrink: 0; order: 2; }
    #cmdDeckBtn svg { width: 54px; height: 20px; }
    .in-flight-badge { font-size: 8px; letter-spacing: 1px; padding: 3px 7px; flex-shrink: 0; order: 1; }

    /* ── Stats bar — 2×2 grid ── */
    .hero-stats { display: grid; grid-template-columns: 1fr 1fr; }
    .hero-stat { border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 10px; }
    .hero-stat:nth-child(2) { border-right: none; }
    .hero-stat:nth-child(3) { border-bottom: none; border-right: 1px solid var(--border); }
    .hero-stat:nth-child(4) { border-right: none; border-bottom: none; }
    .hstat-label { font-size: 8px; letter-spacing: 1.5px; }
    .hstat-val { font-size: 18px; }

    /* ── Ticker ── */
    #tickerBar { margin-bottom: 8px; }
    .ti { font-size: 9px; letter-spacing: 1px; }

    /* ── Controls — stack everything ── */
    .controls { gap: 6px; margin-bottom: 6px; }

    .ctrl-row1 { flex-wrap: wrap; gap: 6px; }
    .ctrl-row1 #shipSelect { width: 100%; flex: 1 1 100%; }
    .ctrl-row1 #stantonOnly { width: 100%; flex: 1 1 100%; }
    .search-wrap,
    .ctrl-row1 .search-wrap { flex: 1 1 100% !important; width: 100% !important; min-width: 0 !important; max-width: 100% !important; order: 3; box-sizing: border-box; }
    .search-wrap #search { width: 100% !important; min-width: 0 !important; max-width: 100% !important; box-sizing: border-box; }
    .ctrl-right-group { flex: 1 1 100%; order: 2; justify-content: flex-start; flex-wrap: wrap; gap: 6px; }

    .ctrl-row2 { flex-wrap: wrap; gap: 6px; }
    .ctrl-row2-left { flex: 1 1 100%; font-size: 9px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
    .ctrl-row2-right { flex: 1 1 100%; justify-content: flex-start; flex-wrap: wrap; gap: 6px; }

    #optimizerBtn { padding: 0 10px; font-size: 9px; letter-spacing: 1px; }
    #newPilotBtnCtrl { padding: 0 10px; font-size: 9px; letter-spacing: 1px; }
    #settingsBtn { padding: 0 10px; font-size: 9px; letter-spacing: 1px; }

    /* ── Map legend — hidden on mobile ── */
    #heatmapLegend { display: none !important; }

    /* ── Settings panel — single column ── */
    .sp-rows { grid-template-columns: 1fr; gap: 0; }
    .settings-panel-inner { padding: 12px 14px; }

    /* ── ROTD card ── */
    .rotd-body { grid-template-columns: 1fr 1fr; }
    .rotd-header { flex-wrap: wrap; gap: 4px; }
    .rotd-title { font-size: 10px; }
    .rotd-score { font-size: 9px; }

    /* ── Route table cards ── */
    tbody td::before { min-width: 70px; font-size: 8px; }
    tbody td { font-size: 11px; }

    /* ── Itinerary card ── */
    .itin-title { font-size: 16px; }
    .itin-stats { flex-wrap: wrap; gap: 8px; }
    .itin-stat { flex: 1 1 40%; }

    /* ── Detail panel — full screen slide up ── */
    #detailPanel { width: 100%; }

    /* ── CMD Deck button — handled in hero block above ── */
  }

  /* ═══════════════════════════════════════════════════════════════════════════
     TABLET — iPad mini portrait  641px–768px
  ═══════════════════════════════════════════════════════════════════════════ */
  @media (min-width: 641px) and (max-width: 900px) {

    /* Controls row 1 — allow wrapping so buttons don't overflow */
    .ctrl-row1 { flex-wrap: wrap; gap: 6px; }
    .ctrl-row1 #shipSelect { flex: 1 1 auto; min-width: 160px; }
    .ctrl-row1 #stantonOnly { flex: 1 1 auto; min-width: 130px; }
    .search-wrap,
    .ctrl-row1 .search-wrap { flex: 1 1 100% !important; width: 100% !important; min-width: 0 !important; max-width: 100% !important; order: 3; box-sizing: border-box; }
    .search-wrap #search { width: 100% !important; min-width: 0 !important; max-width: 100% !important; box-sizing: border-box; }
    .ctrl-right-group { flex-wrap: wrap; gap: 6px; order: 2; }

    /* Shrink button text slightly so they fit */
    #settingsBtn, #optimizerBtn, #newPilotBtnCtrl { font-size: 9px; letter-spacing: 1px; padding: 0 10px; }

    /* ── Map legend — hidden on tablet/landscape phone ── */
    #heatmapLegend { display: none !important; }
  }


/* ── DATARUNNER LINK — shared across index.html & command deck ─────────── */
.dr-hero-link {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 2px;
  text-transform: uppercase; color: var(--warn); text-decoration: none;
  border: 1px solid rgba(255,170,0,0.28); padding: 6px 12px;
  background: rgba(255,170,0,0.06); transition: all 0.2s;
  white-space: nowrap;
}
.dr-hero-link:hover { background: rgba(255,170,0,0.14); box-shadow: 0 0 12px rgba(255,170,0,0.25); }
.cd-dr-link { font-size: 9px; padding: 5px 10px; }
@media (max-width: 640px) { .dr-hero-link { font-size: 9px; padding: 5px 8px; letter-spacing: 1px; } }

/* ── DATARUNNER TAB (Command Deck) ─────────────────────────────────────── */
.dr-field-btn {
  font-family:var(--font-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase;
  color:var(--warn); text-decoration:none; border:1px solid rgba(255,170,0,0.28);
  padding:7px 16px; background:rgba(255,170,0,0.06); transition:all 0.2s;
  display:inline-block; margin-right:12px;
}
.dr-field-btn:hover { background:rgba(255,170,0,0.14); box-shadow:0 0 12px rgba(255,170,0,0.2); }
.dr-field-hint { font-family:var(--font-mono); font-size:10px; color:var(--text3); letter-spacing:1px; }

.dr-lb-badge {
  font-family:var(--font-mono); font-size:9px; letter-spacing:1px; text-transform:uppercase;
  padding:2px 8px; border:1px solid var(--border); color:var(--text2); background:none;
}
.dr-lb-badge:has(.★) { color:var(--warn); border-color:rgba(255,170,0,0.28); }

.dr-stock-badge {
  font-family:var(--font-mono); font-size:8px; letter-spacing:1px; text-transform:uppercase;
  padding:2px 6px; border:1px solid var(--border); color:var(--text2); display:inline-block;
}
.dr-stock-badge.ok      { color:var(--accent2); border-color:rgba(0,255,157,0.25); background:rgba(0,255,157,0.05); }
.dr-stock-badge.low     { color:var(--warn);    border-color:rgba(255,170,0,0.25);  background:rgba(255,170,0,0.05); }
.dr-stock-badge.empty   { color:var(--danger);  border-color:rgba(255,68,68,0.25);  background:rgba(255,68,68,0.05); }
.dr-stock-badge.unknown { color:var(--text3);   border-color:var(--border); }

/* ── OVERVIEW MINI TERMINAL INTEL ─────────────────────────────────────── */
.mini-intel-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:10px;
}
.mini-intel-col { display:flex; flex-direction:column; gap:4px; }
.mini-intel-label {
  font-family:var(--orb); font-size:8px; font-weight:700; letter-spacing:0.2em;
  text-transform:uppercase; margin-bottom:4px; padding-bottom:6px;
  border-bottom:1px solid var(--border);
}
.mini-intel-label.gn { color:var(--accent2); }
.mini-intel-label.pk { color:var(--pink); }
.mini-term-row {
  display:flex; align-items:center; gap:6px; padding:4px 0;
  border-bottom:1px solid rgba(255,255,255,0.03);
}
.mini-term-arrow { font-family:var(--orb); font-size:9px; font-weight:700; flex-shrink:0; width:12px; }
.mini-term-arrow.gn { color:var(--accent2); }
.mini-term-arrow.pk { color:var(--pink); }
.mini-term-name { font-family:var(--font-mono); font-size:9px; color:var(--text2); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; letter-spacing:0.5px; }
.mini-term-val { font-family:var(--font-mono); font-size:10px; font-weight:600; flex-shrink:0; }
.mini-term-val.gn { color:var(--accent2); }
.mini-term-val.pk { color:var(--pink); }
.mini-term-runs { font-family:var(--font-mono); font-size:9px; color:var(--text3); flex-shrink:0; }

@media (max-width:640px) {
  .mini-intel-grid { grid-template-columns:1fr 1fr; }
}

/* ── TERMINAL INTEL TABLES (Overview tab) ──────────────────────────────── */
.ti-panel { padding:16px 20px 20px; }
.ti-panel-tabs { display:flex; gap:0; margin-bottom:20px; border:1px solid var(--border); width:fit-content; overflow:hidden; }
.ti-tab { font-family:var(--font-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; padding:7px 18px; background:none; border:none; border-right:1px solid var(--border); color:var(--text2); cursor:pointer; transition:all 0.2s; }
.ti-tab:last-child { border-right:none; }
.ti-tab.active { background:rgba(0,212,255,0.07); color:var(--accent); }
.ti-tab:hover:not(.active) { color:var(--text); background:rgba(255,255,255,0.02); }
.ti-section-label { font-family:var(--orb); font-size:8px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; margin-bottom:8px; }
.ti-section-label.gn { color:var(--accent2); }
.ti-section-label.pk { color:var(--pink); }
.ti-table { width:100%; border-collapse:collapse; margin-bottom:4px; }
.ti-th { font-family:var(--orb); font-size:9px; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--text2); padding:8px 12px; text-align:left; border-bottom:1px solid rgba(0,212,255,0.1); }
.ti-th-r { text-align:right; }
.ti-row { border-bottom:1px solid rgba(0,212,255,0.05); transition:background 0.1s; }
.ti-row:hover { background:rgba(0,212,255,0.03); }
.ti-row-best { background:rgba(0,255,157,0.03); }
.ti-row-worst { background:rgba(212,83,142,0.03); }
.ti-rank { font-family:var(--orb); font-size:11px; font-weight:700; color:var(--text3); padding:12px 12px; white-space:nowrap; width:40px; }
.ti-rank.gn { color:var(--accent2); }
.ti-rank.pk { color:var(--pink); }
.ti-term { padding:10px 12px; }
.ti-term-name { font-family:var(--font-mono); font-size:12px; font-weight:600; color:var(--text); display:block; margin-bottom:4px; }
.ti-bar-wrap { height:2px; background:rgba(255,255,255,0.05); width:100%; max-width:200px; }
.ti-bar-fill { height:100%; transition:width 0.4s; }
.ti-bar-fill.gn { background:var(--accent2); box-shadow:0 0 6px rgba(0,255,157,0.4); }
.ti-bar-fill.pk { background:var(--pink); box-shadow:0 0 6px rgba(212,83,142,0.4); }
.ti-val { font-family:var(--font-mono); font-size:12px; color:var(--text2); padding:10px 12px; text-align:right; white-space:nowrap; }
.ti-val.gn { color:var(--accent2); }
.ti-val.pk { color:var(--pink); }
@media (max-width:640px) {
  .ti-th:nth-child(5),.ti-th:nth-child(6),.ti-val:nth-child(5),.ti-val:nth-child(6) { display:none; }
}

/* ── ROUTE CARDS V2 ────────────────────────────────────────────────────── */
.route-cards-v2 {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:14px; max-width:960px; margin:0 auto; align-items:start;
}
.rcv2 {
  background:#0d1c35; border:1px solid rgba(0,212,255,0.2);
  border-radius:4px; overflow:hidden; position:relative;
  transition:border-color 0.15s, box-shadow 0.15s;
  display:flex; flex-direction:column;
}
.rcv2:hover { border-color:rgba(0,212,255,0.4); box-shadow:0 4px 20px rgba(0,0,0,0.4); }
/* colour top accent line */
.rcv2::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; }
.rcv2-gn::before { background:linear-gradient(90deg,var(--accent2),transparent 70%); }
.rcv2-cy::before { background:linear-gradient(90deg,#00d4ff,transparent 70%); }
.rcv2-am::before { background:linear-gradient(90deg,var(--warn),transparent 70%); }
.rcv2-pk::before { background:linear-gradient(90deg,var(--pink),transparent 70%); }

/* top section */
.rcv2-top { padding:22px 20px 14px; display:flex; justify-content:space-between; align-items:flex-start; }
.rcv2-left { flex:1; min-width:0; }
.rcv2-title { font-family:var(--orb); font-size:20px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; margin-bottom:5px; line-height:1.2; }
.rcv2-gn .rcv2-title { color:var(--accent2); }
.rcv2-cy .rcv2-title { color:#00d4ff; }
.rcv2-am .rcv2-title { color:var(--warn); }
.rcv2-pk .rcv2-title { color:var(--pink); }
.rcv2-meta { font-family:var(--font-mono); font-size:9px; color:var(--text3); letter-spacing:1px; margin-bottom:10px; }
.rcv2-route { display:flex; align-items:center; gap:6px; margin-bottom:12px; flex-wrap:wrap; }
.rcv2-loc { font-family:var(--font-mono); font-size:11px; color:var(--text2); letter-spacing:0.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:200px; }
.rcv2-arrow { color:var(--text3); font-size:11px; flex-shrink:0; }
.rcv2-profit-row { display:flex; align-items:center; gap:10px; margin-bottom:10px; flex-wrap:nowrap; }
.rcv2-profit { font-family:var(--orb); font-size:34px; font-weight:700; line-height:1; }
.rcv2-clr-gn { color:var(--accent2); }
.rcv2-clr-cy { color:#00d4ff; }
.rcv2-clr-am { color:var(--warn); }
.rcv2-clr-pk { color:var(--pink); }
/* ensure colour classes win when applied to rcv2-val */
.rcv2-val.rcv2-clr-gn { color:var(--accent2); }
.rcv2-val.rcv2-clr-cy { color:#00d4ff; }
.rcv2-val.rcv2-clr-am { color:var(--warn); }
.rcv2-val.rcv2-clr-pk { color:var(--pink); }
.rcv2-plabel { font-family:var(--font-mono); font-size:11px; color:var(--text3); letter-spacing:1px; }
.rcv2-roi { font-family:var(--orb); font-size:9px; font-weight:700; padding:3px 8px; border-radius:1px; border:1px solid; white-space:nowrap; flex-shrink:0; }
.rcv2-roi-gn { color:var(--accent2); border-color:rgba(0,255,157,0.3); background:rgba(0,255,157,0.07); }
.rcv2-roi-cy { color:#00d4ff; border-color:rgba(0,212,255,0.3); background:rgba(0,212,255,0.07); }
.rcv2-roi-am { color:var(--warn); border-color:rgba(255,170,0,0.3); background:rgba(255,170,0,0.07); }
.rcv2-roi-pk { color:var(--pink); border-color:rgba(212,83,142,0.3); background:rgba(212,83,142,0.07); }
/* SCU bar */
.rcv2-bar { height:2px; background:rgba(255,255,255,0.05); margin-bottom:8px; }
.rcv2-bar-fill { height:100%; }
.rcv2-clr-bg-gn { background:var(--accent2); }
.rcv2-clr-bg-cy { background:#00d4ff; }
.rcv2-clr-bg-am { background:var(--warn); }
.rcv2-clr-bg-pk { background:var(--pink); }
.rcv2-scu { font-family:var(--font-mono); font-size:10px; color:var(--text3); letter-spacing:1px; }
/* delete btn */
.rcv2-delete { background:none; border:none; color:var(--text3); cursor:pointer; font-size:13px; padding:2px 4px; transition:color 0.15s; font-family:var(--font-mono); flex-shrink:0; }
.rcv2-delete:hover { color:var(--danger); }

/* bottom buy/sell — one unified section, top border, vertical centre line only */
.rcv2-bottom { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(0,212,255,0.2); }
.rcv2-col { padding:18px 20px 20px; }
.rcv2-col-r { border-left:1px solid rgba(0,212,255,0.2); }
.rcv2-panel-title { font-family:var(--orb); font-size:8px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:var(--text3); margin-bottom:12px; }
.rcv2-row { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; gap:8px; }
.rcv2-key { font-family:var(--font-mono); font-size:9px; color:var(--text3); letter-spacing:0.5px; text-transform:uppercase; white-space:nowrap; flex-shrink:0; }
.rcv2-val { font-family:var(--font-mono); font-size:11px; color:#c8dde8; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rcv2-divider { height:1px; background:rgba(0,212,255,0.12); margin:9px 0; }

/* responsive grid */
@media (max-width:640px) {
  .route-cards-v2 { grid-template-columns:1fr; }
  .rcv2-bottom { grid-template-columns:1fr 1fr; }
  .rcv2-profit { font-size:28px; }
}

/* ── Discord Link — Rank Popover ─────────────────────────────────────────── */
.rp-discord { margin-top: 4px; padding: 14px; border: 1px solid var(--border); background: var(--bg2); }
.rp-discord--unlinked { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rp-discord--linked { display: flex; align-items: center; gap: 12px; }
.rp-discord-avatar { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--border2); }
.rp-discord-info { flex: 1; }
.rp-discord-name { font-family: var(--font-mono); font-size: 12px; color: var(--text); letter-spacing: 1px; }
.rp-discord-sub { font-family: var(--font-mono); font-size: 9px; color: var(--accent); letter-spacing: 2px; margin-top: 2px; }
.rp-discord-prompt { flex: 1; }
.rp-discord-prompt-title { font-family: var(--font-mono); font-size: 11px; color: var(--text); letter-spacing: 2px; text-transform: uppercase; }
.rp-discord-prompt-sub { font-family: var(--font-mono); font-size: 9px; color: var(--text3); letter-spacing: 1px; margin-top: 3px; }
.rp-discord-btn { font-family: var(--font-mono); font-size: 9px; letter-spacing: 2px; text-transform: uppercase; padding: 8px 14px; background: var(--bg3); border: 1px solid var(--accent); color: var(--accent); cursor: pointer; transition: all 0.2s; white-space: nowrap; }
.rp-discord-btn:hover { background: rgba(0,200,255,0.1); }
.rp-discord-unlink { font-family: var(--font-mono); font-size: 9px; letter-spacing: 2px; text-transform: uppercase; padding: 6px 10px; background: none; border: 1px solid var(--border); color: var(--text3); cursor: pointer; transition: all 0.2s; }
.rp-discord-unlink:hover { border-color: var(--text2); color: var(--text2); }

/* ── Discord Link — Rank Tab ─────────────────────────────────────────────── */
.cd-discord-section { margin-top: 16px; padding: 16px; border: 1px solid var(--border); background: var(--bg2); }
.cd-discord-linked { display: flex; align-items: center; gap: 12px; }
.cd-discord-avatar { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--border2); }
.cd-discord-info { flex: 1; }
.cd-discord-name { font-family: var(--font-mono); font-size: 12px; color: var(--text); letter-spacing: 1px; }
.cd-discord-status { font-family: var(--font-mono); font-size: 9px; color: var(--accent); letter-spacing: 2px; margin-top: 2px; }
.cd-discord-unlinked { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cd-discord-prompt { font-family: var(--font-mono); font-size: 10px; color: var(--text3); letter-spacing: 1px; flex: 1; }
.cd-discord-btn { font-family: var(--font-mono); font-size: 9px; letter-spacing: 2px; text-transform: uppercase; padding: 10px 18px; background: var(--bg3); border: 1px solid var(--accent); color: var(--accent); cursor: pointer; transition: all 0.2s; white-space: nowrap; }
.cd-discord-btn:hover { background: rgba(0,200,255,0.1); }
.cd-discord-unlink { font-family: var(--font-mono); font-size: 9px; letter-spacing: 2px; text-transform: uppercase; padding: 7px 12px; background: none; border: 1px solid var(--border); color: var(--text3); cursor: pointer; transition: all 0.2s; }
.cd-discord-unlink:hover { border-color: var(--text2); color: var(--text2); }

/* ── Stale Data Banner ───────────────────────────────────────────────────── */
#staleBanner { display:none; width:100%; background:rgba(255,170,0,0.12); border-bottom:1px solid rgba(255,170,0,0.3); color:#ffaa00; font-family:var(--font-mono); font-size:10px; letter-spacing:1.5px; text-align:center; padding:8px 16px; position:sticky; top:0; z-index:999; }
#staleBanner.visible { display:block; }

/* ── Rank Popover — Reset Button ─────────────────────────────────────────── */
.rp-reset { position:absolute; top:14px; left:14px; font-family:var(--font-mono); font-size:8px; letter-spacing:2px; text-transform:uppercase; padding:4px 8px; background:none; border:1px solid rgba(255,60,60,0.35); color:rgba(255,80,80,0.7); cursor:pointer; transition:all 0.2s; }
.rp-reset:hover { border-color:rgba(255,60,60,0.7); color:rgb(255,80,80); background:rgba(255,60,60,0.08); }

/* ── Price Alerts — Overview Button ─────────────────────────────────────── */
.pa-locked { display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border:1px solid var(--border); background:var(--bg2); opacity:0.5; cursor:default; }
.pa-locked-icon { font-size:11px; }
.pa-locked-label { font-family:var(--font-mono); font-size:10px; letter-spacing:3px; color:var(--text3); }
.pa-btn { display:inline-flex; align-items:center; gap:10px; padding:8px 14px; background:var(--bg2); border:1px solid var(--border); color:var(--accent); font-family:var(--font-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; cursor:pointer; transition:all 0.2s; }
.pa-btn:hover { background:var(--bg3); border-color:var(--accent); }
.pa-count { font-size:9px; color:var(--text3); }

/* ── Price Alerts — Popover ──────────────────────────────────────────────── */
#scPriceAlertsPopover { position:fixed; inset:0; background:rgba(0,0,0,0.7); display:flex; align-items:center; justify-content:center; z-index:1000; }
.pa-pop-box { background:var(--bg); border:1px solid var(--border); padding:24px; width:460px; max-width:90vw; position:relative; max-height:80vh; overflow-y:auto; }
.pa-pop-title { font-family:var(--orb); font-size:16px; font-weight:700; color:var(--accent); letter-spacing:3px; margin-bottom:4px; }
.pa-pop-sub { font-family:var(--font-mono); font-size:10px; color:var(--text3); letter-spacing:1px; }
.pa-pop-divider { height:1px; background:var(--border); margin:14px 0; }
.pa-pop-form { display:flex; gap:8px; flex-wrap:wrap; }
.pa-select { font-family:var(--font-mono); font-size:11px; color:var(--text); background:var(--bg2); border:1px solid var(--border); padding:8px 10px; outline:none; flex:1; min-width:120px; }
.pa-input { font-family:var(--font-mono); font-size:11px; color:var(--text); background:var(--bg2); border:1px solid var(--border); padding:8px 10px; outline:none; width:140px; }
.pa-input:focus, .pa-select:focus { border-color:var(--accent); }
.pa-add-btn { font-family:var(--font-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; padding:8px 14px; background:var(--bg3); border:1px solid var(--accent); color:var(--accent); cursor:pointer; transition:all 0.2s; white-space:nowrap; }
.pa-add-btn:hover { background:rgba(0,200,255,0.1); }
.pa-alert-row { display:flex; align-items:center; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--border); gap:12px; }
.pa-alert-row:last-child { border-bottom:none; }
.pa-alert-inactive { opacity:0.45; }
.pa-alert-info { display:flex; align-items:center; gap:8px; flex:1; flex-wrap:wrap; }
.pa-alert-comm { font-family:var(--font-mono); font-size:11px; color:var(--text); letter-spacing:1px; }
.pa-alert-dir { font-family:var(--font-mono); font-size:9px; letter-spacing:2px; color:var(--accent); padding:2px 6px; border:1px solid var(--accent); opacity:0.7; }
.pa-alert-thresh { font-family:var(--font-mono); font-size:11px; color:var(--text2); }
.pa-alert-actions { display:flex; gap:6px; }
.pa-toggle-btn { font-family:var(--font-mono); font-size:9px; letter-spacing:1px; padding:4px 8px; background:none; border:1px solid var(--border); color:var(--text2); cursor:pointer; transition:all 0.2s; }
.pa-toggle-btn:hover { border-color:var(--text2); color:var(--text); }
.pa-delete-btn { font-family:var(--font-mono); font-size:9px; padding:4px 8px; background:none; border:1px solid rgba(255,60,60,0.3); color:rgba(255,80,80,0.6); cursor:pointer; transition:all 0.2s; }
.pa-delete-btn:hover { border-color:rgba(255,60,60,0.7); color:rgb(255,80,80); }
.pa-empty { font-family:var(--font-mono); font-size:10px; color:var(--text3); letter-spacing:1px; padding:10px 0; }
.pa-pop-loading { font-family:var(--font-mono); font-size:10px; color:var(--text3); letter-spacing:2px; }
