/* STAR VIPER — retention spine styles (2026-10-23 completion push).
   Spine-only selectors; the game's own styles are untouched. */
#svSpine { position:fixed; inset:0; z-index:40; pointer-events:none;
  font-family:system-ui,-apple-system,'Segoe UI',sans-serif; }
#svSpine button { pointer-events:auto; cursor:pointer; font-family:inherit; }

/* ---- v3.2.1 (2026-10-28): the goals bar is RETIRED from the menu — it grew
   over the canvas START/DAILY buttons and buried them. sv-spine.js never
   shows it now; this !important is the hard guarantee. Its lines live in the
   Sector Ledger (#svGoalsBox). ---- */
#svGoalsBox { border-bottom:1.5px solid rgba(124,231,255,.25); padding-bottom:6px; }

/* ---- menu bar: streak / goals / season pills along the bottom ---- */
#svMenuBar { position:absolute; left:50%; bottom:6px; transform:translateX(-50%);
  display:none !important; flex-wrap:wrap; justify-content:center; align-items:center; gap:4px 10px;
  max-width:96vw; padding:6px 12px; border-radius:14px; text-align:center;
  background:rgba(6,12,30,.82); border:1.5px solid rgba(124,231,255,.45);
  color:#cfe8ff; font-size:12.5px; font-weight:700; line-height:1.45; }
#svMenuBar .svPill b { color:#ffe066; }
#svMenuBar .svSeason { color:#ffb84d; }
#svMenuBar .svPaid { color:#2bff7d; }
#svMenuBar button { border:1.5px solid rgba(255,224,102,.7); background:rgba(20,28,54,.9);
  color:#ffe066; border-radius:99px; padding:3px 12px; font-size:12.5px; font-weight:900; }
#svMenuBar button:active { transform:translateY(1px); }

/* ---- Jesse presenter card ---- */
#svJesse { position:absolute; top:11%; left:50%; transform:translate(-50%,-8px);
  display:none; align-items:center; gap:10px; max-width:min(92vw,430px);
  background:linear-gradient(180deg,rgba(10,20,46,.94),rgba(6,12,30,.94));
  border:2px solid #ffe066; border-radius:18px; padding:8px 14px 8px 8px;
  box-shadow:0 10px 30px rgba(0,0,0,.55); opacity:0; transition:opacity .18s ease, transform .18s ease; }
#svJesse.on { display:flex; opacity:1; transform:translate(-50%,0); }
#svJesse img { width:52px; height:64px; object-fit:cover; object-position:top center;
  border-radius:12px; border:2px solid rgba(255,255,255,.65); background:#c9ccd4; flex:none; }
#svJesseBig { color:#ffe066; font-size:16.5px; font-weight:900; line-height:1.2; }
#svJesseLine { color:#fff; font-size:13.5px; font-weight:700; line-height:1.3; margin-top:2px; }

/* ---- v3.1: CORE CHEST button styles removed — the chest pays silently ---- */

/* ---- results cluster: TODAY line + share / ledger ---- */
#svResults { position:absolute; top:auto; bottom:calc(14px + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%);
  display:none; width:min(94vw,580px); text-align:center; } /* SPINE KIT 2026-10-31:
  results cluster docked to the BOTTOM band (Core-Image Law) — canvas FLY AGAIN /
  UPGRADE BAY buttons sit at 55-65% height, so the bottom band stays clear of them */ /* v3.2.1: lifted from
  59% — the cluster used to sit on the canvas FLY AGAIN / UPGRADE BAY buttons */
#svToday { font-size:min(18px,4.4vw); font-weight:900; color:#b8ffb0;
  text-shadow:0 2px 10px rgba(0,0,0,.8); }
.svBtn { border:none; border-radius:999px; padding:10px 20px; margin:8px 3px 0;
  font-size:14.5px; font-weight:900; color:#04220f;
  background:linear-gradient(180deg,#2bff7d,#0f9a4a);
  box-shadow:0 4px 0 #0a6e35, 0 8px 16px rgba(0,0,0,.4); }
.svBtn:active { transform:translateY(3px); box-shadow:0 1px 0 #0a6e35; }
.svBtn.blue { background:linear-gradient(180deg,#37c8ff,#1668c9); color:#eaf9ff;
  box-shadow:0 4px 0 #0d4a7d, 0 8px 16px rgba(0,0,0,.4); }
.svBtn.blue:active { box-shadow:0 1px 0 #0d4a7d; }
#svShareStatus { color:#9fd8ff; font-size:12.5px; font-weight:700; margin-top:6px;
  text-shadow:0 1px 6px rgba(0,0,0,.8); }

/* ---- Sector Ledger panel ---- */
.svPanel { position:fixed; inset:0; z-index:60; display:none; align-items:center; justify-content:center;
  background:rgba(3,6,18,.62); padding:14px; box-sizing:border-box; pointer-events:auto; }
.svPanel.on { display:flex; }
.svCard { background:linear-gradient(180deg,#0a1430,#060c1e); border:2px solid rgba(124,231,255,.55);
  border-radius:22px; padding:18px 20px; max-width:560px; width:100%; text-align:center;
  max-height:94dvh; overflow-y:auto; color:#eaf6ff;
  box-shadow:0 18px 50px rgba(0,0,0,.6); }
.svCard h2 { margin:2px 0 4px; font-size:23px; font-weight:900; color:#ffe066; }
.svSub { color:#8fa3c8; font-weight:700; font-size:13px; margin:4px 0 8px; }
.svLedger { text-align:left; margin:8px auto; max-width:430px; font-weight:800; font-size:14px;
  color:#cfe8ff; line-height:1.65; }
.svChips { display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin:8px 0; }
.svChip { border:1.5px solid rgba(124,231,255,.5); background:rgba(16,28,58,.9); border-radius:11px;
  padding:5px 9px; font-size:12px; font-weight:900; color:#cfe8ff; }
.svChip.star { border-color:#ffe066; color:#ffe066; }
.svChip.locked { opacity:.45; }
.svBadgeLine { font-weight:900; color:#ffb84d; font-size:14px; margin:8px 0 2px; }

/* the game itself is landscape-only (portrait hint covers the canvas) —
   keep spine chrome out of that state entirely */
@media (orientation: portrait) { #svSpine { display:none; } }
