/* Shared wheel styles also support the Rocket instrument. */
.upgrader-stage { --upgrade-green:var(--positive,#56e2a0); --upgrade-red:var(--danger,#ff537e); position:relative; display:grid; justify-items:center; min-width:0; padding:7px 8px 12px; overflow:hidden; border:1px solid var(--line); border-radius:20px; background:radial-gradient(ellipse at 50% 42%,#1596ff18,transparent 65%),#061320b8; }
.upgrader-wheel { display:block; width:min(100%,330px); height:auto; overflow:visible; }
.upgrader-rim { fill:#071726; stroke:#59c9ff52; stroke-width:2; }
.upgrader-loss-arc { fill:none; stroke:var(--upgrade-red); stroke-width:30; }
.upgrader-win-arc { fill:none; stroke:var(--upgrade-green); stroke-width:46; stroke-linecap:butt; }
.upgrader-pointer { fill:#e2f6ff; }
.upgrader-pointer-line { fill:none; stroke:#e2f6ff; stroke-width:3; stroke-linecap:round; }
.upgrader-hub { fill:#0d2037; stroke:#72bbec66; stroke-width:2; }
.upgrader-wheel-target { fill:var(--ink); font-family:var(--body); font-size:32px; font-weight:600; }
.upgrader-wheel-chance { fill:var(--lavender); font-family:var(--body); font-size:14px; font-weight:500; }
.upgrader-status { margin:0; min-height:13px; max-width:100%; color:var(--muted); font-size:8px; font-weight:600; letter-spacing:1.4px; text-align:center; overflow-wrap:anywhere; }
.upgrader-stage.is-win { border-color:#56e2a066; }
.upgrader-stage.is-loss { border-color:#ff537e73; }
.gold-upgrader-stage { margin-top:20px; background:radial-gradient(ellipse at 50% 42%,#1596ff1f,transparent 65%),#061320b8; }
.gold-upgrader-stage .upgrader-hub { fill:#091727; stroke:#284966; }
.gold-chance-controls { margin:16px 0; }
.gold-upgrader-stage.is-cashed { border-color:#56e2a066; }
.gold-upgrader-stage.is-crashed { border-color:#ff537e73; }
.upgrader-visual-note { margin:0; color:var(--muted); font-size:10px; line-height:1.5; }
.upgrader-preview { min-width:0; margin:0; color:var(--muted); font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.upgrader-odds { margin:0; color:var(--muted); font-size:9px; line-height:1.7; overflow-wrap:anywhere; }
.upgrader-chance-help { margin:0; color:var(--muted); font-size:10px; line-height:1.5; }

/* All account games share the Upgrader width; decorative chips never change USD amounts. */
.flip-page.is-signed-in:has(.games-hub) { grid-template-columns:minmax(0,860px); }
.games-hub[data-active-game] { max-width:860px; }
.games-hub { container-type:inline-size; container-name:ncb-games; }
.games-hub .game-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.games-hub .game-tab { min-height:44px; }
.games-hub .game-tab span { white-space:normal; overflow-wrap:anywhere; }
@container ncb-games (max-width:739px) {
  .games-hub .game-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
#coinflip-panel[hidden],.games-hub[data-active-game="upgrader"] .game-panel[hidden],.games-hub[data-active-game="free-spins"] .game-panel[hidden],#upgrader-panel[hidden] { display:none!important; }
#upgrader-panel { --upgrade-green:var(--positive,#56e2a0); --upgrade-red:var(--danger,#ff537e); padding:18px; border-color:#ffffff14; background:#0b1523; box-shadow:none; }
.upgrader-account { display:grid; gap:4px; text-align:right; }
.upgrader-account span { color:var(--muted); font-size:10px; }
.upgrader-account strong { color:var(--accent); font-size:22px; font-weight:600; font-variant-numeric:tabular-nums; }
#upgrader-panel .upgrader-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-areas:"stake target" "wheel wheel" "multipliers multipliers" "chance chance" "action action"; gap:10px; min-width:0; }
.upgrader-stake-card { grid-area:stake; }
.upgrader-return-card { grid-area:target; }
.upgrader-choice { display:flex; flex-direction:column; align-items:center; min-width:0; padding:10px; border:1px solid #ffffff17; border-radius:10px; background:#131e2d; }
.upgrader-card-top { display:flex; align-items:center; width:100%; max-width:240px; min-width:0; gap:8px; }
.upgrader-card-top h3 { margin:0; color:#edf5ff; font:600 12px/1.5 var(--body); }
.upgrader-banknote { --note-paper:#cde1e2; --note-ink:#193b40; }
.upgrader-card-amount.upgrader-chip-amount { display:grid; justify-items:center; width:100%; max-width:240px; margin:8px 0 0; padding:0; color:var(--ink); direction:ltr; unicode-bidi:isolate; }
.upgrader-chip-amount::before,.upgrader-chip-amount::after { display:none; }
.upgrader-chip-stack { position:relative; width:112px; max-width:100%; height:92px; pointer-events:none; }
.upgrader-chip-stack::before { position:absolute; inset:auto 8px 3px; height:12px; border-radius:50%; background:#01050a66; content:""; }
.upgrader-chip { --chip-layer:0; position:absolute; left:50%; bottom:calc(8px + var(--chip-layer)*6px); display:block; width:76px; height:29px; border:2px solid var(--note-ink); border-radius:50%; background:repeating-conic-gradient(from 15deg,var(--note-paper) 0deg 40deg,#edf5ff 40deg 60deg); box-shadow:0 5px 0 var(--note-ink),0 6px 0 #07111f; transform:translateX(-50%); }
.upgrader-chip::before { position:absolute; inset:4px; border:1px solid var(--note-ink); border-radius:50%; background:var(--note-paper); content:""; }
.upgrader-chip::after { position:absolute; inset:3px; color:var(--note-ink); font:700 12px/19px var(--body); text-align:center; content:"$"; }
.upgrader-chip:nth-child(2) { --chip-layer:1; }
.upgrader-chip:nth-child(3) { --chip-layer:2; }
.upgrader-chip:nth-child(4) { --chip-layer:3; }
.upgrader-chip:nth-child(5) { --chip-layer:4; }
.upgrader-chip:nth-child(6) { --chip-layer:5; }
.upgrader-chip:nth-child(7) { --chip-layer:6; }
.upgrader-chip:nth-child(8) { --chip-layer:7; }
.upgrader-chip:nth-child(9) { --chip-layer:8; }
.upgrader-chip-stack[data-chip-count="0"] .upgrader-chip,.upgrader-chip-stack[data-chip-count="1"] .upgrader-chip:nth-child(n+2),.upgrader-chip-stack[data-chip-count="2"] .upgrader-chip:nth-child(n+3),.upgrader-chip-stack[data-chip-count="3"] .upgrader-chip:nth-child(n+4),.upgrader-chip-stack[data-chip-count="4"] .upgrader-chip:nth-child(n+5),.upgrader-chip-stack[data-chip-count="5"] .upgrader-chip:nth-child(n+6),.upgrader-chip-stack[data-chip-count="6"] .upgrader-chip:nth-child(n+7),.upgrader-chip-stack[data-chip-count="7"] .upgrader-chip:nth-child(n+8),.upgrader-chip-stack[data-chip-count="8"] .upgrader-chip:nth-child(n+9) { display:none; }
.upgrader-chip-value { width:100%; margin:3px 0 0; text-align:center; }
.upgrader-banknote[data-note-tier="2"] { --note-paper:#dbcdf2; --note-ink:#44305e; }
.upgrader-banknote[data-note-tier="5"] { --note-paper:#f3c6b9; --note-ink:#62312b; }
.upgrader-banknote[data-note-tier="10"] { --note-paper:#bedaf3; --note-ink:#1a4265; }
.upgrader-banknote[data-note-tier="20"] { --note-paper:#c8e5c2; --note-ink:#294c32; }
.upgrader-banknote[data-note-tier="50"] { --note-paper:#f0d9b0; --note-ink:#62481e; }
.upgrader-banknote[data-note-tier="100"] { --note-paper:#efcade; --note-ink:#69354e; }
#upgrader-stake-note { --note-paper:#ced5df; --note-ink:#243144; }
/* Preset colors stay distinct; the return chips follow the selection. */
#upgrader-panel .upgrader-multiplier-choice[data-upgrader-multiplier="200"],#upgrader-game-form:has([data-upgrader-multiplier="200"].is-selected) #upgrader-return-note { --note-paper:#ff897c; --note-ink:#542219; --note-card:#35202a; --note-card-hover:#432631; --note-card-selected:#4c2c37; }
#upgrader-panel .upgrader-multiplier-choice[data-upgrader-multiplier="300"],#upgrader-game-form:has([data-upgrader-multiplier="300"].is-selected) #upgrader-return-note { --note-paper:#7bbbff; --note-ink:#143753; --note-card:#152d48; --note-card-hover:#193752; --note-card-selected:#1e4263; }
#upgrader-panel .upgrader-multiplier-choice[data-upgrader-multiplier="500"],#upgrader-game-form:has([data-upgrader-multiplier="500"].is-selected) #upgrader-return-note { --note-paper:#76dfac; --note-ink:#133e2a; --note-card:#19362a; --note-card-hover:#1d4231; --note-card-selected:#24503a; }
#upgrader-panel .upgrader-multiplier-choice[data-upgrader-multiplier="1000"],#upgrader-game-form:has([data-upgrader-multiplier="1000"].is-selected) #upgrader-return-note { --note-paper:#ffd166; --note-ink:#543808; --note-card:#3b2d17; --note-card-hover:#47361b; --note-card-selected:#51401f; }
.upgrader-banknote::before { content:""; position:absolute; z-index:-1; inset:7px; border:1px solid currentColor; border-radius:2px; opacity:.3; pointer-events:none; }
.upgrader-banknote::after { content:""; position:absolute; z-index:-1; inset:12px; border-block:3px double currentColor; opacity:.15; pointer-events:none; }
.upgrader-banknote strong { display:block; max-width:100%; color:inherit; font:700 clamp(22px,3.4cqi,34px)/1.1 var(--display); letter-spacing:-.8px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; text-align:center; }
.upgrader-note-currency { display:block; margin-top:7px; color:inherit; font:600 9px/1 var(--body); letter-spacing:2px; }
.upgrader-stake-controls { display:grid; width:100%; max-width:240px; min-width:0; margin-top:auto; padding-top:8px; }
#upgrader-panel .upgrader-wager-label { display:grid; min-width:0; margin:0; color:var(--muted); font-size:11px; }
.upgrader-stake-card .stake-slider-control { padding:0; border:0; background:transparent; }
.upgrader-stake-card .stake-slider-value { display:none; }
.upgrader-stake-card .stake-slider-bounds { display:flex; font-size:10px; }
#upgrader-panel .upgrader-targets { grid-area:multipliers; margin:0; padding:0; min-width:0; border:0; }
#upgrader-panel .upgrader-target-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:min(100%,240px); margin-inline:auto; gap:10px; }
#upgrader-panel .upgrader-target-options button { min-width:0; min-height:44px; padding:8px 4px; border:1px solid #42698766; border-radius:8px; background:#10263b; color:#cde3f5; font:600 13px var(--body); cursor:pointer; transition:background .16s,border-color .16s; }
#upgrader-panel .upgrader-target-options button:hover:not(:disabled) { border-color:#59c9ff88; background:#18364f; }
#upgrader-panel .upgrader-target-options button.is-selected { border-color:#59c9ff99; background:#59c9ff1a; color:#ade8ff; }
#upgrader-panel .upgrader-target-options .upgrader-multiplier-choice { display:grid; place-items:center; width:100%; aspect-ratio:1; min-height:44px; padding:0; border:1px solid color-mix(in srgb,var(--note-paper) 50%,transparent); border-radius:16px; background:var(--note-card); color:var(--note-paper); font:700 clamp(20px,3.5cqi,26px)/1 var(--body); direction:ltr; unicode-bidi:isolate; }
#upgrader-panel .upgrader-target-options .upgrader-multiplier-choice:hover:not(:disabled) { border-color:var(--note-paper); background:var(--note-card-hover); }
#upgrader-panel .upgrader-target-options .upgrader-multiplier-choice.is-selected { border-color:var(--note-paper); background:var(--note-card-selected); color:var(--note-paper); box-shadow:inset 0 0 0 1px var(--note-paper); }
.upgrader-wheel-column { display:contents; }
#upgrader-panel .upgrader-stage { grid-area:wheel; align-self:center; width:100%; padding:0; overflow:visible; border:0; border-radius:0; background:transparent; }
#upgrader-panel .upgrader-wheel { width:min(100%,520px); }
#upgrader-panel .upgrader-rim { fill:#091826; stroke:#35546d; stroke-width:1; }
#upgrader-panel .upgrader-loss-fill { fill:var(--upgrade-red); }
#upgrader-panel .upgrader-win-fill { fill:var(--upgrade-green); }
#upgrader-panel .upgrader-loss-arc,#upgrader-panel .upgrader-win-arc { stroke-width:20; filter:none; }
#upgrader-panel .upgrader-hub { fill:#0b1b2c; stroke:#43607966; stroke-width:1; }
#upgrader-panel .upgrader-central-chance { fill:var(--ink); font:700 38px var(--body); letter-spacing:-.8px; }
#upgrader-panel .upgrader-pointer { fill:#edf5ff; filter:none; }
#upgrader-panel .upgrader-pointer-line { stroke:#edf5ff; }
#upgrader-panel .upgrader-stage.is-win .upgrader-hub { stroke:var(--upgrade-green); }
#upgrader-panel .upgrader-stage.is-loss .upgrader-hub { stroke:var(--upgrade-red); }
#upgrader-panel .upgrader-stage.is-confirming .upgrader-status { color:#bae7ff; }
#upgrader-panel .upgrader-status { position:absolute; width:1px; height:1px; min-height:0; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; }
#upgrader-panel .upgrader-spin { grid-area:action; width:100%; min-width:0; min-height:48px; padding:12px 16px; border:1px solid #398cff66; border-radius:8px; background:#1665d8; color:#ffffff; font:600 14px var(--body); cursor:pointer; overflow-wrap:anywhere; transition:background .16s,border-color .16s; }
#upgrader-panel .upgrader-spin:hover:not(:disabled) { background:#1b6be0; }
#upgrader-panel .upgrader-spin:active:not(:disabled) { background:#125bc5; }
#upgrader-panel .upgrader-layout[aria-busy="true"] .upgrader-spin { opacity:1; border-color:#669ec850; background:#18364f; color:#cce7ff; }
#upgrader-panel .upgrader-controls button:disabled { opacity:.5; cursor:not-allowed; }
#upgrader-panel .upgrader-controls button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
#upgrader-panel .upgrader-adjustments { grid-area:chance; display:grid; grid-template-columns:minmax(0,1fr); align-items:center; gap:14px; min-width:0; margin:0; padding:8px 0 0; border-top:1px solid #35546d66; }
.upgrader-chance-heading { margin:0; color:var(--muted); font:500 10px/1.4 var(--body); }
.upgrader-chance-slider { min-width:0; }
.upgrader-chance-scale { display:flex; justify-content:space-between; margin:-4px 0 0; color:var(--muted); font:400 9px/1.4 var(--body); font-variant-numeric:tabular-nums; direction:ltr; }
#upgrader-panel .upgrader-chance-range { --range-color:var(--accent); display:block; width:100%; min-width:0; height:44px; min-height:44px; margin:0; appearance:none; -webkit-appearance:none; background:transparent; direction:ltr; cursor:pointer; }
#upgrader-panel .upgrader-chance-range::-webkit-slider-runnable-track { height:5px; border-radius:8px; background:linear-gradient(to right,var(--range-color) 0 var(--range-progress,0%),#649dca29 var(--range-progress,0%) 100%); }
#upgrader-panel .upgrader-chance-range::-moz-range-track { height:5px; border-radius:8px; background:linear-gradient(to right,var(--range-color) 0 var(--range-progress,0%),#649dca29 var(--range-progress,0%) 100%); }
#upgrader-panel .upgrader-chance-range::-webkit-slider-thumb { width:20px; height:20px; margin-top:-7.5px; appearance:none; -webkit-appearance:none; border:3px solid #e2f6ff66; border-radius:50%; background:var(--range-color); }
#upgrader-panel .upgrader-chance-range::-moz-range-thumb { width:14px; height:14px; border:3px solid #e2f6ff66; border-radius:50%; background:var(--range-color); }
#upgrader-panel .upgrader-chance-range:disabled { opacity:.45; cursor:not-allowed; }
#upgrader-panel .upgrader-chance-range:focus-visible { outline:2px solid var(--accent); outline-offset:1px; border-radius:8px; }
#upgrader-panel .upgrader-result { min-height:0; margin:16px 0 0; padding:10px 0 0; border-top:1px solid #42698766; color:#c5dbef; font:400 12px/1.6 var(--body); overflow-wrap:anywhere; }
#upgrader-panel .upgrader-result:empty { display:none; }
#upgrader-panel .upgrader-result.is-win { border-color:#56e2a066; color:#b9ffd0; }
#upgrader-panel .upgrader-result.is-error { border-color:#ffb8c766; color:#ffd0da; }
#upgrader-panel:has(.upgrader-stage.is-loss) .upgrader-result:not(.is-error):not(.is-win) { border-color:#ff537e66; color:#e2c4cf; }
#upgrader-panel>.upgrader-settings { margin-top:8px; padding-top:0; }
#upgrader-panel>.upgrader-settings>summary { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; height:auto; min-height:44px; padding:9px 0; border:0; border-radius:0; background:transparent; color:var(--muted); font:500 11px/1.5 var(--body); }
#upgrader-panel>.upgrader-settings>summary::after { content:"+"; color:var(--accent); font:400 18px/1 var(--body); }
#upgrader-panel>.upgrader-settings[open]>summary::after { content:"−"; }
#upgrader-panel>.upgrader-settings>summary:hover,#upgrader-panel>.upgrader-settings[open]>summary { color:var(--ink); }
#upgrader-panel>.upgrader-settings .game-info-panel { margin-top:0; padding:10px 12px; border-radius:8px; background:#081b29; }

@container ncb-games (min-width:740px) {
  #upgrader-panel { padding:clamp(20px,2cqi,28px); }
  #upgrader-panel .upgrader-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.8fr) minmax(0,1fr); grid-template-areas:"stake wheel target" "stake wheel multipliers" "chance chance chance" "action action action"; align-items:start; gap:16px 20px; }
  #upgrader-panel .upgrader-choice { padding:16px; border-radius:14px; }
  #upgrader-panel .upgrader-card-top,#upgrader-panel .upgrader-card-amount,#upgrader-panel .upgrader-stake-controls { max-width:280px; }
  #upgrader-panel .upgrader-card-top h3 { font-size:14px; }
  #upgrader-panel .upgrader-card-amount { margin-block:16px 8px; }
  #upgrader-panel .upgrader-chip-stack { width:140px; height:112px; }
  #upgrader-panel .upgrader-chip { width:92px; height:34px; bottom:calc(10px + var(--chip-layer)*7px); }
  #upgrader-panel .upgrader-chip::after { font-size:14px; line-height:24px; }
  #upgrader-panel .upgrader-banknote strong { font-size:clamp(32px,4cqi,48px); }
  #upgrader-panel .upgrader-note-currency { font-size:10px; }
  #upgrader-panel .upgrader-stake-card { align-self:stretch; }
  #upgrader-panel .upgrader-stake-card .upgrader-card-amount { margin-block:auto; padding-block:16px; }
  #upgrader-panel .upgrader-stake-controls { margin-top:0; padding-top:16px; }
  #upgrader-panel .upgrader-target-options { width:min(100%,260px); gap:12px; }
  #upgrader-panel .upgrader-target-options .upgrader-multiplier-choice { font-size:clamp(26px,3cqi,34px); }
  #upgrader-panel .upgrader-spin { min-height:56px; font-size:16px; border-radius:12px; }
  #upgrader-panel .upgrader-chance-heading { font-size:12px; }
  #upgrader-panel .upgrader-chance-scale,#upgrader-panel .stake-slider-bounds { font-size:11px; }
}
/* Fit the primary controls comfortably on shorter desktop screens. */
@media(min-width:1101px) and (max-height:820px) {
  @container ncb-games (min-width:740px) {
    #upgrader-panel { padding:20px; }
    #upgrader-panel .upgrader-layout { gap:12px 16px; }
    #upgrader-panel .upgrader-choice { padding:12px; }
    #upgrader-panel .upgrader-card-top h3 { font-size:12px; }
    #upgrader-panel .upgrader-card-amount { margin-block:10px 6px; }
    #upgrader-panel .upgrader-chip-stack { width:112px; height:70px; }
    #upgrader-panel .upgrader-chip { width:76px; height:24px; bottom:calc(8px + var(--chip-layer)*4.5px); }
    #upgrader-panel .upgrader-chip::after { font-size:12px; line-height:17px; }
    #upgrader-panel .upgrader-banknote strong { font-size:32px; }
    #upgrader-panel .upgrader-stake-controls { padding-top:8px; }
    #upgrader-panel .upgrader-target-options { width:min(100%,200px); gap:8px; }
    #upgrader-panel .upgrader-target-options .upgrader-multiplier-choice { font-size:26px; }
    #upgrader-panel .upgrader-wheel { width:min(100%,380px); }
    #upgrader-panel .upgrader-spin { min-height:52px; }
  }
}
@media(max-width:960px) {
  .flip-page.is-guest .games-hub .upgrader-controls,.flip-page.is-guest .games-hub .upgrader-balance { display:none; }
}
@media(max-width:600px) {
  .games-hub .game-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #upgrader-panel { padding:14px; }
  #upgrader-panel .upgrader-layout { gap:8px; }
  .upgrader-choice { padding:8px; }
  .upgrader-card-top h3 { font-size:11px; }
  .upgrader-card-amount.upgrader-chip-amount { margin-top:6px; }
  .upgrader-banknote strong { font-size:clamp(20px,7cqi,28px); letter-spacing:-.7px; }
  .upgrader-note-currency { margin-top:5px; font-size:8px; letter-spacing:1.4px; }
  #upgrader-panel .upgrader-target-options { gap:8px; }
  #upgrader-panel .upgrader-target-options button { font-size:13px; }
  #upgrader-panel .upgrader-adjustments { gap:10px; }
  .upgrader-chance-heading { max-width:76px; font-size:9px; }
}
@media(max-width:360px) {
  #upgrader-panel { padding-inline:12px; }
  #upgrader-panel .upgrader-layout { gap:8px; }
  .upgrader-banknote strong { font-size:20px; }
}
@media(prefers-reduced-motion:reduce) {
  .upgrader-pointer,#upgrader-panel .upgrader-spin,#upgrader-panel .upgrader-target-options button { transition:none; }
}
