/* ═══════════════════════════════════════════
   Starbase .sb-* classes — grid, rooms, build menu, events, detail
   ═══════════════════════════════════════════ */

  .sb-rebuild-btn:hover { border-color: var(--red) !important; color: var(--red) !important; }
  .sb-day-counter { font-size: 11px; color: var(--sb-text-dim); font-family: 'JetBrains Mono', monospace; }
  #sb-clock { color: var(--sb-text-dim); margin-left: 4px; }
  .sb-resources { display: flex; gap: 12px; margin-bottom: 4px; font-size: 11px; font-family: 'JetBrains Mono', monospace; letter-spacing: 0.5px; }
  .sb-res { color: var(--sb-text-dim); }
  .sb-res-credits { color: #d4b860; }
  .sb-res-materials { color: #90b080; }
  .sb-res-components { color: #8098b8; }
  .sb-res-food { color: #60b060; }
  .sb-stats-row { display: flex; flex-wrap: wrap; gap: 4px 14px; padding: 3px 0; align-items: center; font-family: 'JetBrains Mono', monospace; font-size: 13px; }
  .sb-stats-row-resources { padding-top: 4px; }
  .sb-stats-row-status { padding-bottom: 5px; }
  .sb-stat-inline { white-space: nowrap; }
  .sb-stat-lbl { font-size: 10px; opacity: 0.55; letter-spacing: 0.3px; margin-right: 0; text-transform: lowercase; }
  .sb-stat-sep { color: #222; font-size: 10px; }
  .sb-stat-events { color: var(--sb-accent-warm); cursor: pointer; }
  .sb-controls-row { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 3px; }
  .sb-speed-dial { display: flex; gap: 2px; }
  .sb-header-actions { display: flex; gap: 4px; align-items: center; }
  .sb-speed-btn { background: linear-gradient(180deg, #161618 0%, var(--sb-surface) 100%) !important; border: 1px solid var(--sb-border-hover) !important; color: var(--sb-text-dim) !important; padding: 6px 10px !important; font-size: 11px !important; font-family: 'JetBrains Mono', monospace !important; cursor: pointer; border-radius: var(--r-xs) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), 0 1px 3px rgba(0,0,0,0.3) !important; text-shadow: none !important; min-width: 0 !important; letter-spacing: 1px !important; text-transform: uppercase !important; transition: all var(--dur-fast) !important; min-height: 32px !important; }
  .sb-speed-btn:hover { background: linear-gradient(180deg, #1c1c20 0%, #141418 100%) !important; border-color: #444 !important; color: var(--sb-text) !important; }
  .sb-speed-btn:active { transform: scale(0.95); }
  .sb-speed-active { background: linear-gradient(180deg, #1c1c20 0%, #141418 100%) !important; border-color: #444 !important; color: var(--sb-text) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 0 6px rgba(255,179,0,0.1) !important; animation: sbTickPulse 0.35s ease-out; }
  @keyframes sbTickPulse { 0% { filter: brightness(1.8); } 100% { filter: brightness(1); } }
  .sb-placement-hint { font-size: 10px; color: var(--sb-accent-warm); font-family: 'JetBrains Mono', monospace; letter-spacing: 1px; }
  .sb-paused-label { color: var(--sb-accent-warm); animation: sbPausePulse 2s ease-in-out infinite; }
  @keyframes sbPausePulse { 0%,100% { opacity: 0.4; } 50% { opacity: 1; } }
  .sb-rate { font-size: 8px; opacity: 0.45; margin-left: 2px; }
  .sb-cap { font-size: 9px; opacity: 0.5; }

  /* Stage progress tracker */
  .sb-stage-bar { padding: 4px 8px; background: rgba(255,255,255,0.02); border-top: 1px solid rgba(255,255,255,0.04); font-family: 'JetBrains Mono', monospace; }
  .sb-stage-header { display: flex; align-items: center; gap: 6px; font-size: 10px; letter-spacing: 1px; margin-bottom: 3px; }
  .sb-stage-header .sb-day-counter { margin-left: auto; }
  .sb-stage-label { color: #8a8a6a; }
  .sb-stage-arrow { color: #4a4a3a; }
  .sb-stage-next { color: #6a8a9a; }
  .sb-stage-checks { display: flex; gap: 10px; flex-wrap: wrap; font-size: 9px; margin-bottom: 3px; }
  .sb-stage-check { color: #6a4a4a; }
  .sb-stage-check.sb-check-done { color: #4a8a4a; }
  .sb-stage-fill-track { width: 100%; height: 3px; background: var(--sb-border); border-radius: var(--r-xs); overflow: hidden; }
  .sb-stage-fill-bar { height: 100%; background: #3a6a3a; transition: width 0.5s; border-radius: var(--r-xs); }
  .sb-stage-complete { text-align: center; }
  .sb-stage-complete .sb-stage-icon { color: #8a8a3a; margin-right: 4px; }
  .sb-stage-complete .sb-stage-label { color: #6a8a4a; font-size: 10px; }
  .sb-stage-founded { color: #5a5a4a; font-size: 9px; margin-left: 8px; }

  /* 6-stage roadmap pips */
  .sb-stage-pips { display: flex; gap: 5px; margin-bottom: 4px; align-items: center; }
  .sb-stage-pip { width: 8px; height: 8px; border-radius: 50%; background: #3a3a2a; border: 1px solid #4a4a3a; }
  .sb-stage-pip-done { background: #6a8a4a; border-color: #6a8a4a; }
  .sb-stage-pip-current { background: transparent; border-color: #d4b860; box-shadow: 0 0 3px #d4b860; }

  /* Speed button disabled state (pending event lock) */
  .sb-speed-btn:disabled { opacity: 0.35 !important; cursor: not-allowed !important; }
  .sb-speed-btn:disabled:hover { background: linear-gradient(180deg, #161618 0%, var(--sb-surface) 100%) !important; border-color: var(--sb-border-hover) !important; color: var(--sb-text-dim) !important; }

  /* Unavailable event choices */
  .sb-choice-unavailable { opacity: 0.5 !important; cursor: not-allowed !important; }
  .sb-event-choice-lock { display: block; font-size: 9px; color: rgba(255,179,0,0.6); margin-top: 4px; font-style: italic; letter-spacing: 0.5px; }

  /* Level tabs */
  .sb-level-tabs { display: flex; gap: 2px; padding: 3px 10px; background: #08080c; }
  .sb-level-tab { flex: 1; background: linear-gradient(180deg, #121214 0%, var(--sb-bg) 100%) !important; border: 1px solid var(--sb-border) !important; color: var(--sb-text-dim) !important; padding: 6px !important; text-align: center; font-size: 11px !important; cursor: pointer; border-radius: var(--r-xs) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,0.03) !important; text-shadow: none !important; transition: all var(--dur-fast) !important; min-height: 32px !important; }
  .sb-level-tab:hover:not(:disabled) { color: var(--sb-text) !important; border-color: var(--sb-border-hover) !important; }
  .sb-level-active { background: linear-gradient(180deg, #1a1a20 0%, #101014 100%) !important; border-color: #444 !important; color: var(--sb-text) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 0 4px rgba(255,179,0,0.08) !important; }
  .sb-level-locked { opacity: 0.3; cursor: not-allowed; }

  /* Inline level tabs — sit between speed-dial and build actions in the controls row */
  .sb-level-tabs-inline { background: transparent !important; padding: 0 !important; gap: 2px; flex: 0 0 auto; }
  .sb-level-tabs-inline .sb-level-tab { flex: 0 0 auto !important; padding: 3px 8px !important; min-height: 24px !important; font-size: 9px !important; letter-spacing: 0.5px !important; min-width: 28px; }

  /* Hide rooms grid while an event card is active */
  .sb-grid-wrapper.sb-grid-hidden { display: none !important; }

  /* Action row — sits between header and grid; holds the centered PAUSED banner only */
  .sb-action-row { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 0; }
  .sb-paused-banner { color: var(--sb-accent-warm); font-family: 'JetBrains Mono', monospace; font-size: 14px; letter-spacing: 5px; padding: 4px 8px; animation: sbPausePulse 2s ease-in-out infinite; flex: 0 0 auto; }
  .sb-paused-banner-hidden { display: none; }
  /* Dedicated slot for the PLACE confirmation bar — separate block so it never overlaps PAUSED or the grid */
  .sb-place-slot { display: flex; justify-content: center; }
  .sb-place-slot:empty { display: none; }
  /* PLACE bar itself signals the paused state — hide the redundant PAUSED banner while it's up */
  .sb-container:has(#sb-place-slot > *) #sb-paused-banner { display: none; }

  /* Station admin menu (rename / rebuild / fund new base) */
  .sb-admin-btn { background: transparent; border: 1px solid rgba(255,179,0,0.22); color: rgba(208,220,232,0.78); padding: 1px 9px 3px; border-radius: var(--r-xs); font-size: 16px; cursor: pointer; margin-left: 6px; line-height: 1; font-family: 'JetBrains Mono', monospace; vertical-align: middle; }
  .sb-admin-btn:hover { border-color: rgba(255,179,0,0.5); color: var(--white); }
  .sb-admin-options { display: flex; flex-direction: column; gap: 6px; margin: 10px 0 14px; }
  .sb-admin-option { text-align: left !important; padding: 10px 12px !important; font-size: 12px !important; }
  .sb-admin-option-locked { opacity: 0.45; cursor: not-allowed; }
  .sb-admin-option-locked:hover { opacity: 0.6; }
  .sb-rename-input { width: 100%; padding: 10px 12px; margin: 8px 0 12px; background: var(--sb-bg); border: 1px solid var(--sb-border-hover); color: var(--sb-text); font-family: 'JetBrains Mono', monospace; font-size: 16px; border-radius: var(--r-xs); box-sizing: border-box; }
  .sb-rename-input:focus { outline: none; border-color: var(--sb-accent-warm); }

  /* Grid cells */
  .sb-cell { min-height: 0; position: relative; overflow: hidden; }
  .sb-hull { background: var(--sb-bg); border: 1px solid #111114; cursor: pointer; transition: background var(--dur-fast), border-color var(--dur-fast); border-radius: var(--r-xs); }
  .sb-hull:hover { background: var(--sb-surface); border-color: #1a1a20; }
  .sb-hull-placeable { border-color: #1a1a1a !important; background: #0c0c10 !important; cursor: crosshair; }
  .sb-hull-placeable:hover { background: #101018 !important; border-color: #222 !important; }

  /* Rooms */
  .sb-room { cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(255,179,0,0.35); transition: border-color var(--dur-fast); position: relative; overflow: hidden; }
  .sb-room:hover { border-color: rgba(255,179,0,0.6); }
  .sb-room-label { font-size: clamp(7px, 1.2vw, 10px); color: rgba(255,255,255,0.7); text-align: center; text-transform: uppercase; letter-spacing: 0.2px; line-height: 1.15; padding: 1px 2px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; max-width: 100%; font-family: 'JetBrains Mono', monospace; }
  .sb-room-tier { font-size: clamp(7px, 1.1vw, 9px); color: rgba(255,255,255,0.45); }

  /* Room states */
  .sb-constructing { position: relative; }
  .sb-constructing::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
      45deg,
      transparent,
      transparent 4px,
      rgba(100, 80, 40, 0.15) 4px,
      rgba(100, 80, 40, 0.15) 8px
    );
    animation: sb-scaffold-move 2s linear infinite;
    pointer-events: none;
    z-index: 2;
  }
  @keyframes sb-scaffold-move {
    0% { background-position: 0 0; }
    100% { background-position: 16px 16px; }
  }
  .sb-constructing::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #1a1a1a;
    z-index: 3;
  }
  .sb-upgrading::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 4px,
      rgba(60, 60, 120, 0.15) 4px,
      rgba(60, 60, 120, 0.15) 8px
    );
    animation: sb-scaffold-move 3s linear infinite;
    pointer-events: none;
    z-index: 2;
  }
  .sb-damaged { border-color: #301010 !important; }
  .sb-damaged::after { content: ''; position: absolute; inset: 0; background: rgba(150,30,30,0.1); pointer-events: none; }
  .sb-disabled { border-color: #302010 !important; opacity: 0.5; }
  .sb-disabled::after { content: 'OFFLINE'; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(120,50,10,0.25); color: #c06020; font-size: 8px; font-weight: bold; letter-spacing: 1px; pointer-events: none; }
  .sb-unpowered { opacity: 0.3; animation: sb-unpowered-flicker 2.5s ease-in-out infinite; }
  @keyframes sb-unpowered-flicker { 0%,100% { opacity: 0.3; } 40% { opacity: 0.22; } 60% { opacity: 0.35; } 80% { opacity: 0.18; } }
  .sb-powered-down { opacity: 0.35; filter: saturate(0.3); }
  .sb-build-progress-bar {
    position: absolute; bottom: 0; left: 0; height: 3px;
    background: #5a8a3a; z-index: 4; transition: width 0.5s;
  }
  .sb-build-percent {
    position: relative; text-align: center;
    font-size: clamp(6px, 1vw, 9px); color: rgba(200, 180, 100, 0.7);
    font-family: 'JetBrains Mono', monospace; z-index: 5;
    text-shadow: 0 0 4px rgba(0,0,0,0.8);
  }

  /* Buttons — refined with subtle depth */
  .sb-btn { background: linear-gradient(180deg, #161618 0%, var(--sb-surface) 100%) !important; border: 1px solid var(--sb-border-hover) !important; color: var(--sb-text-dim) !important; padding: 7px 14px !important; font-size: 11px !important; font-family: 'JetBrains Mono', monospace; cursor: pointer; border-radius: var(--r-sm) !important; text-transform: uppercase; letter-spacing: 1px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), 0 1px 3px rgba(0,0,0,0.3) !important; text-shadow: none !important; transition: all var(--dur-fast) !important; min-height: 36px !important; }
  .sb-btn:hover { background: linear-gradient(180deg, #1c1c20 0%, #141418 100%) !important; border-color: #444 !important; color: var(--sb-text) !important; }
  .sb-btn:active { transform: scale(0.97); }
  .sb-btn-build { border-color: #1a2a1a !important; color: #6a9a6a !important; }
  .sb-btn-build:hover { border-color: #2a3a2a !important; color: #90c090 !important; }
  .sb-btn-demolish { border-color: #2a1a1a !important; color: #a07070 !important; font-size: 10px !important; padding: 4px 8px !important; }
  .sb-btn-upgrade { border-color: #1a1a2a !important; color: #7090b0 !important; }
  .sb-btn-claim { border-color: #1a2a1a !important; color: #6a9a6a !important; padding: 10px 20px !important; font-size: 12px !important; margin-top: 16px; }
  .sb-btn-cancel { border-color: #1a1a1a !important; color: var(--sb-text-dim) !important; }
  .sb-btn-back { margin-left: auto; font-size: 9px !important; padding: 4px 8px !important; }

  /* Overlays */
  .sb-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.85); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 16px; }
  .sb-build-menu { background: var(--sb-bg); border: 1px solid rgba(255,179,0,0.1); border-radius: var(--r-lg); max-width: 380px; width: 100%; max-height: 80vh; overflow-y: auto; padding: 14px; box-shadow: var(--shadow-xl); scrollbar-width: thin; scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); }
  .sb-build-menu::-webkit-scrollbar { width: 4px; }
  .sb-build-menu::-webkit-scrollbar-track { background: transparent; }
  .sb-build-menu::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: var(--r-xs); }
  .sb-menu-title { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--sb-text); margin-bottom: 10px; text-align: center; letter-spacing: 3px; text-transform: uppercase; }
  .sb-menu-list { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
  .sb-menu-item { display: flex; gap: 8px; align-items: center; padding: 10px; background: var(--sb-surface); border: 1px solid var(--sb-border); border-radius: 6px; cursor: pointer; min-height: 44px; transition: border-color var(--dur-fast), background 0.15s; }
  .sb-menu-item:hover { border-color: #2a2a2a; background: #111118; }
  .sb-menu-disabled { opacity: 0.3; cursor: not-allowed; }
  .sb-menu-disabled:hover { border-color: var(--sb-border); background: var(--sb-surface); }
  .sb-menu-item-color { width: 36px; height: 36px; border-radius: var(--r-xs); flex-shrink: 0; }
  .sb-menu-item-thumb { width: 36px; height: 36px; border-radius: var(--r-xs); flex-shrink: 0; background-size: cover; background-position: center; border: 1px solid var(--sb-border); }
  .sb-menu-item-info { flex: 1; min-width: 0; }
  .sb-menu-item-name { font-size: 11px; color: var(--sb-text); font-family: 'JetBrains Mono', monospace; }
  .sb-built-badge { font-size: 9px; color: rgba(255,179,0,0.7); margin-left: 4px; font-style: italic; }
  .sb-menu-item-desc { font-size: 10px; color: var(--sb-text-dim); margin-top: 1px; }
  .sb-menu-item-benefit { font-size: 10px; color: #6a9a6a; margin-top: 2px; letter-spacing: 0.3px; }
  .sb-menu-item-cost { font-size: 10px; color: var(--sb-accent-warm); margin-top: 1px; }

  /* Build menu filters */
  .sb-build-filters { display: flex; gap: 8px; align-items: center; margin-bottom: 10px; }
  .sb-build-filter-select { background: var(--sb-surface); border: 1px solid #222; color: var(--sb-text); padding: 8px 10px; font-size: 12px; font-family: 'JetBrains Mono', monospace; border-radius: 6px; flex: 1; cursor: pointer; min-height: 36px; -webkit-appearance: none; appearance: none; }
  .sb-build-filter-select:focus { outline: none; border-color: #333; }
  .sb-build-filter-toggle { display: flex; align-items: center; gap: 4px; font-size: 9px; color: var(--sb-text-dim); font-family: 'JetBrains Mono', monospace; letter-spacing: 0.5px; cursor: pointer; white-space: nowrap; }
  .sb-build-filter-toggle input[type="checkbox"] { accent-color: #6a9a6a; cursor: pointer; }

  /* Tuning diagnostics panel */
  .sb-tuning-panel { background: var(--sb-bg); border: 1px solid rgba(255,179,0,0.15); border-radius: 10px; max-width: 400px; width: 100%; max-height: 85vh; overflow-y: auto; padding: 14px; box-shadow: 0 16px 48px rgba(0,0,0,0.5); }
  .sb-tuning-title { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #6a9a6a; text-align: center; letter-spacing: 3px; margin-bottom: 10px; text-transform: uppercase; }
  .sb-tuning-section { margin-bottom: 10px; }
  .sb-tuning-section-title { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #6a9a6a; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 4px; border-bottom: 1px solid var(--sb-border); padding-bottom: 2px; }
  .sb-tuning-grid { display: flex; flex-direction: column; gap: 1px; }
  .sb-tuning-row { display: flex; justify-content: space-between; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--sb-text-dim); padding: 2px 4px; }
  .sb-tuning-row span:last-child { color: var(--sb-text); }

  /* Placement confirmation bar (bottom-anchored, no overlay) */
  .sb-place-bar {
    position: relative; z-index: 10;
    background: #0c120c; border: 1px solid #2a3a2a;
    border-radius: var(--r-sm);
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 16px; gap: 12px; margin: 4px;
    box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  }
  .sb-place-bar-info { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
  .sb-place-bar-name { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--sb-text); white-space: nowrap; }
  .sb-place-bar-size { font-size: 10px; color: var(--sb-text-dim); white-space: nowrap; }
  .sb-place-bar-cost { font-size: 10px; color: var(--sb-accent-warm); }
  .sb-place-bar-actions { display: flex; gap: 6px; flex-shrink: 0; }
  .sb-place-bar .sb-btn-build { background: #1a2a1a !important; border-color: #2a4a2a !important; color: #6a9a6a !important; padding: 6px 16px !important; font-size: 11px !important; }
  .sb-place-bar .sb-btn-cancel { background: #1a1a1a !important; border-color: #2a2a2a !important; color: var(--sb-text-dim) !important; padding: 6px 10px !important; font-size: 13px !important; }

  /* Version picker */
  .sb-version-grid { display: flex; gap: 12px; justify-content: center; }
  .sb-version-option { display: flex; flex-direction: column; align-items: center; gap: 6px; background: none; border: 1px solid rgba(255,179,0,0.2); border-radius: var(--r-xs); padding: 8px; cursor: pointer; color: var(--sb-text); font-size: 10px; font-family: 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: 0.5px; }
  .sb-version-option:hover { border-color: rgba(255,179,0,0.5); background: rgba(255,179,0,0.05); }
  .sb-version-thumb { width: 80px; height: 80px; object-fit: cover; border-radius: var(--r-sm); border: 1px solid rgba(255,179,0,0.25); }

  /* Detail panel */
  .sb-detail-panel { background: var(--sb-bg); border: 1px solid rgba(255,179,0,0.15); border-radius: var(--r-md); max-width: 340px; width: 100%; padding: 14px; box-shadow: var(--shadow-xl); overflow-y: auto; max-height: 85vh; scrollbar-width: thin; scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); }
  .sb-detail-panel::-webkit-scrollbar { width: 4px; }
  .sb-detail-panel::-webkit-scrollbar-track { background: transparent; }
  .sb-detail-panel::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: var(--r-xs); }
  .sb-detail-image { width: 100%; aspect-ratio: 1; background-size: cover; background-position: center; border-radius: var(--r-sm); margin-bottom: 10px; border: 1px solid rgba(255,179,0,0.35); }
  .sb-detail-upgrade-img { width: 100%; aspect-ratio: 2/1; background-size: cover; background-position: center; border-radius: var(--r-sm); margin-bottom: 8px; opacity: 0.7; border: 1px solid rgba(255,179,0,0.25); }
  .sb-detail-header { padding-left: 6px; margin-bottom: 6px; }
  .sb-detail-name { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--sb-text); }
  .sb-detail-tier { font-size: 10px; color: var(--sb-text-dim); margin-top: 2px; }
  .sb-detail-status { font-size: 10px; color: #6a9a6a; margin-top: 2px; }
  .sb-detail-progress { margin-bottom: 8px; }
  .sb-detail-progress-label { font-size: 10px; color: var(--sb-accent-warm); font-family: 'JetBrains Mono', monospace; letter-spacing: 0.5px; }
  .sb-detail-progress-track { width: 100%; height: 6px; background: #1a1a22; border-radius: var(--r-xs); margin: 4px 0; overflow: hidden; }
  .sb-detail-progress-fill { height: 100%; background: #5a8a3a; border-radius: var(--r-xs); transition: width 0.5s; }
  .sb-detail-progress-time { font-size: 10px; color: var(--sb-text-dim); font-family: 'JetBrains Mono', monospace; }
  .sb-detail-desc { font-size: 11px; color: var(--sb-text-dim); margin-bottom: 6px; }
  .sb-detail-stats { font-size: 10px; color: var(--sb-text-dim); margin-bottom: 6px; display: flex; flex-direction: column; gap: 1px; }
  .sb-detail-upgrade { background: var(--sb-surface); border: 1px solid #1a1a2a; border-radius: var(--r-xs); padding: 6px; margin-bottom: 6px; }
  .sb-detail-upgrade-label { font-size: 10px; color: #7090b0; }
  .sb-detail-upgrade-bonus { font-size: 10px; color: var(--sb-text-dim); margin: 1px 0; }
  .sb-detail-upgrade-cost { font-size: 10px; color: var(--sb-accent-warm); margin-bottom: 4px; }
  .sb-btn-power { background: #1a1a2a !important; border-color: #2a2a4a !important; color: #7090b0 !important; }
  .sb-detail-actions { display: flex; gap: 6px; justify-content: flex-end; }
  .sb-modal-panel { text-align: center; max-width: 360px; }
  .sb-modal-panel-sm { max-width: 320px; }
  .sb-modal-copy {
    color: var(--sb-text);
    font-size: 12px;
    line-height: 1.6;
    margin: 12px 0;
    font-family: 'JetBrains Mono', monospace;
  }
  .sb-modal-danger-title {
    margin-bottom: 12px;
    color: var(--red);
  }
  .sb-modal-warning {
    color: #c08080;
    font-size: 11px;
    margin: 0 0 16px;
    font-family: 'JetBrains Mono', monospace;
  }
  .sb-modal-actions {
    display: flex;
    gap: 8px;
    justify-content: center;
  }
  .sb-detail-adj { background: #0e120e; border: 1px solid #1a2a1a; border-radius: var(--r-xs); padding: 6px; margin-bottom: 6px; }
  .sb-detail-adj-title { font-size: 10px; color: #6a9a6a; letter-spacing: 1px; margin-bottom: 3px; font-family: 'JetBrains Mono', monospace; }
  .sb-detail-adj-item { font-size: 10px; color: #6a9a6a; padding: 1px 0; }
  .sb-detail-adj-source { font-size: 10px; color: #6a9a6a; }

  /* Lore intro */
  .sb-intro { max-width: 460px; margin: 0 auto; padding: 24px 16px; text-align: center; }
  .sb-intro-title { font-family: 'JetBrains Mono', monospace; font-size: 14px; color: var(--sb-text); letter-spacing: 4px; margin-bottom: 24px; text-transform: uppercase; }
  .sb-intro-text { text-align: left; font-size: 14px; color: var(--sb-text-dim); line-height: 1.7; margin-bottom: 24px; }
  .sb-intro-text p { margin-bottom: 12px; }
  .sb-name-input { background: var(--sb-bg); border: 1px solid var(--sb-border-hover); color: var(--sb-text); font-family: 'JetBrains Mono', monospace; font-size: 16px; text-align: center; padding: 10px; width: 100%; max-width: 280px; border-radius: var(--r-sm); letter-spacing: 3px; text-transform: uppercase; transition: border-color var(--dur-fast); }
  .sb-name-input::placeholder { color: #555; }
  .sb-name-input:focus { outline: none; border-color: rgba(255,179,0,0.3); box-shadow: 0 0 0 2px rgba(255,179,0,0.08); }

  /* Event badge */
  .sb-event-badge { background: #0e0e12 !important; border: 1px solid #302010 !important; color: #c09030 !important; padding: 3px 8px !important; font-size: 10px !important; border-radius: 2px !important; cursor: pointer; box-shadow: none !important; text-shadow: none !important; }
  .sb-event-badge:hover { border-color: #403020 !important; }
  .sb-placement-hint { font-size: 10px; color: #6a9a6a; flex: 1; text-align: center; letter-spacing: 2px; font-family: 'JetBrains Mono', monospace; }

  /* Event alert panel — station-wide alert above the grid */
  .sb-event-alert {
    background: var(--sb-bg); border: 2px solid #6a5030; border-radius: 8px;
    padding: 16px; margin: 0 0 6px 0;
    font-family: 'JetBrains Mono', monospace;
    animation: sb-event-glow 3s ease-in-out infinite;
  }
  @keyframes sb-event-glow {
    0%,100% { border-color: #3a3020; box-shadow: 0 0 4px rgba(140,100,40,0.05); }
    50% { border-color: #504030; box-shadow: 0 0 8px rgba(140,100,40,0.12); }
  }
  .sb-event-alert-header { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
  .sb-event-alert-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 16px; height: 16px; font-size: 10px; font-weight: bold;
    color: #a08040; border: 1px solid #504020; border-radius: var(--r-xs);
    background: #1a1508; flex-shrink: 0;
  }
  .sb-event-alert-type { font-size: 11px; color: var(--sb-accent-warm); letter-spacing: 2px; text-transform: uppercase; }
  .sb-event-alert-narrative { font-size: 13px; color: var(--sb-text); line-height: 1.6; margin-bottom: 8px; }
  .sb-event-alert-choices { display: flex; gap: 6px; }
  .sb-event-choice-btn {
    flex: 1 !important;
    background: #0e0e12 !important; border: 1px solid #3a3020 !important;
    color: #c09030 !important; padding: 10px 8px !important;
    font-size: 12px !important; font-family: 'JetBrains Mono', monospace !important;
    cursor: pointer !important; border-radius: 6px !important;
    text-transform: uppercase !important; letter-spacing: 1px !important;
    box-shadow: none !important; text-shadow: none !important;
    display: flex !important; flex-direction: column !important; align-items: center !important;
    justify-content: center !important; text-align: center !important;
    gap: 2px !important; min-width: 0 !important;
  }
  .sb-event-choice-btn:hover { background: #141410 !important; border-color: #504030 !important; color: #e0c060 !important; }
  .sb-event-choice-label { font-size: 10px; }
  .sb-event-choice-desc { font-size: 10px; color: var(--sb-text-dim); font-style: normal; }
  .sb-event-alert-count { font-size: 9px; color: var(--sb-text-dim); margin-top: 6px; text-align: right; }

  /* Choice comparison table */
  .sb-choice-table { width: 100%; border-collapse: collapse; font-family: 'JetBrains Mono', monospace; }
  .sb-choice-table thead { border-bottom: 1px solid #3a3020; }
  .sb-choice-resource-th { width: 80px; }
  .sb-choice-th {
    padding: 10px 4px; font-size: 10px; color: var(--sb-accent-warm); text-transform: uppercase;
    letter-spacing: 1px; cursor: pointer; text-align: center; vertical-align: top;
    background: var(--sb-surface); border: 1px solid #3a3020; border-radius: var(--r-xs);
    transition: background var(--dur-fast), border-color 0.15s, color 0.15s;
  }
  .sb-choice-th:hover { background: #141410; border-color: #504030; color: #e0c060; }
  .sb-choice-note { display: block; font-size: 8px; color: var(--sb-text-dim); letter-spacing: 0; text-transform: none; margin-top: 2px; }
  .sb-choice-resource {
    padding: 5px 4px; font-size: 11px; color: #666;
    text-align: right; white-space: nowrap; vertical-align: middle; border-right: 1px solid #1a1a1a;
  }
  .sb-choice-td {
    padding: 5px 4px; font-size: 13px; text-align: center; vertical-align: middle;
    border-bottom: 1px solid #111; white-space: nowrap;
  }
  .sb-cell-pos { color: #5a5; }
  .sb-cell-neg { color: #c55; }
  .sb-cell-mixed { color: var(--sb-accent-warm); }
  .sb-cell-neutral { color: #444; }

  /* Placement preview */
  .sb-preview-valid { background: rgba(40, 160, 40, 0.75) !important; border: 2px solid #4aaa4a !important; animation: sb-preview-pulse 1s ease-in-out infinite; box-shadow: inset 0 0 12px rgba(40, 160, 40, 0.5) !important; z-index: 6 !important; }
  .sb-preview-invalid { background: rgba(160, 30, 30, 0.75) !important; border: 2px solid #aa3a3a !important; box-shadow: inset 0 0 12px rgba(160, 30, 30, 0.5) !important; z-index: 6 !important; }
  @keyframes sb-preview-pulse { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
  .sb-preview-label { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-family: 'JetBrains Mono', monospace; font-size: clamp(5px, 1.1vw, 9px); color: var(--sb-text); pointer-events: none; text-shadow: 0 0 3px #000; z-index: 5; text-align: center; word-break: break-word; overflow-wrap: break-word; max-width: 100%; line-height: 1.15; }
  .sb-preview-overlay { position: relative; z-index: 5; }
  .sb-hull-occupied { background: transparent; }
  /* Info panel */
  .sb-info-grid { display: flex; flex-direction: column; gap: 8px; }
  .sb-info-section { border-top: 1px solid #1a1a1a; padding-top: 6px; }
  .sb-info-section:first-child { border-top: none; padding-top: 0; }
  .sb-info-title { font-size: 9px; color: var(--sb-text-dim); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 3px; }
  .sb-info-row { display: flex; justify-content: space-between; font-size: 10px; color: var(--sb-text-dim); padding: 1px 0; font-family: 'JetBrains Mono', monospace; }

  .sb-build-label { position: absolute; top: 3px; left: 50%; transform: translateX(-50%); background: rgba(5,5,8,0.95); border: 1px solid #1a2a1a; padding: 3px 10px; border-radius: var(--r-xs); font-size: 9px; color: #6a9a6a; white-space: nowrap; z-index: 10; display: flex; align-items: center; font-family: 'JetBrains Mono', monospace; letter-spacing: 1px; }

  /* ===== CONSISTENCY PASS: STARBASE ===== */
  .sb-container {
    width: min(100%, 1040px);
    margin: 0 auto;
    padding: 14px 14px 24px;
    gap: 12px;
    background: transparent;
  }

  .sb-header,
  .sb-level-tabs,
  .sb-grid-wrapper,
  .sb-intro,
  .sb-event-alert {
    border: 1px solid rgba(255,179,0,0.08);
    border-radius: var(--r-lg);
    background: linear-gradient(180deg, rgba(16,14,12,0.95) 0%, rgba(8,8,8,0.98) 100%);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.02),
      0 18px 34px rgba(0,0,0,0.18);
  }

  .sb-header {
    padding: 16px 18px;
    border-bottom: none;
  }

  .sb-station-name,
  .sb-intro-title {
    font-family: 'Orbitron', monospace;
    letter-spacing: 3px;
    text-transform: uppercase;
  }

  .sb-stats-row,
  .sb-resources,
  .sb-day-counter {
    color: rgba(176,160,128,0.82);
  }

  .sb-level-tabs {
    padding: 8px;
    gap: 8px;
    background: transparent;
  }

  .sb-level-tab,
  .sb-speed-btn,
  .sb-btn {
    border-radius: var(--r-sm) !important;
    border-color: rgba(255,179,0,0.12) !important;
    background: linear-gradient(180deg, rgba(18,16,13,0.94) 0%, rgba(9,9,9,0.98) 100%) !important;
    color: rgba(208,220,232,0.76) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.03),
      0 10px 22px rgba(0,0,0,0.16) !important;
  }

  .sb-level-active,
  .sb-speed-active {
    border-color: rgba(255,179,0,0.2) !important;
    background: rgba(255,179,0,0.08) !important;
    color: var(--white) !important;
  }

  .sb-grid-wrapper {
    padding: 12px;
    flex: 0 0 auto;
  }

  .sb-grid {
    border-color: rgba(255,179,0,0.08);
    border-radius: var(--r-lg);
    background: rgba(6,6,8,0.96);
  }

  .sb-hull {
    border-color: rgba(255,255,255,0.04);
    background: rgba(10,10,12,0.9);
  }

  .sb-room {
    border-color: rgba(255,179,0,0.28);
  }

  .sb-room-label {
    color: rgba(208,220,232,0.74);
  }

  .sb-build-menu,
  .sb-detail-panel,
  .sb-tuning-panel {
    border-color: rgba(255,179,0,0.12);
    border-radius: var(--r-lg);
    background: linear-gradient(180deg, rgba(16,14,12,0.96) 0%, rgba(8,8,8,0.99) 100%);
  }

  .sb-intro {
    max-width: none;
    padding: 24px 22px;
  }

  .sb-intro-text {
    max-width: 620px;
    margin: 0 auto 22px;
    color: rgba(176,160,128,0.84);
  }

  .sb-event-alert {
    margin: 0;
    padding: 16px 18px;
    animation: none;
  }

  @media (max-width: 720px) {
    .sb-container {
      padding-left: 12px;
      padding-right: 12px;
    }

    .sb-header,
    .sb-grid-wrapper,
    .sb-intro,
    .sb-event-alert {
      border-radius: var(--r-md);
    }
  }
