/* Snap+ (plus.html): only what Snap+ adds on top of Snap's solo-v4.css. Snap tokens,
   upright Inter, navy, 1px lines, teal #03FFCC edge light. No glow, no salary. */
.plus .sd-lib-salary{display:none}
.plus-formula{grid-template-columns:repeat(3,minmax(0,1fr))}
.plus-tracker .sd-step small{white-space:nowrap}
/* stepper reuse: three stars / three targets */
.plus .plus-steps,.plus .plus-targets{grid-template-columns:repeat(3,minmax(0,1fr))}
.plus .plus-targets li.is-squad small{color:#9fdcca}
.plus .plus-targets li.is-active button{box-shadow:inset 0 0 0 1px #03ffcc}
.plus-target-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px 0 6px}
.plus-target-copy{margin:0;font:500 13px/1.4 Inter,sans-serif;color:var(--muted,#9aa8bd)}
.plus-target-copy b{color:#dbe5f2;font-weight:600}
.plus-confirm{flex-shrink:0}
.plus-confirm[disabled]{opacity:.5;cursor:default}
/* players you own read as yours in the target library: a quiet teal underline */
.plus-target-library .sd-lib-card.is-owned strong{box-shadow:inset 0 -1px 0 rgba(3,255,204,.45)}
/* confirmed list */
.plus-locked{display:flex;flex-direction:column;align-items:center;gap:18px;padding:12px 0 6px}
.plus-target-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,200px));gap:16px;justify-content:center;width:100%}
.plus-target-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:28px 12px 16px;border-radius:14px;background:linear-gradient(180deg,rgba(19,30,52,.96),rgba(10,17,32,.96));border:1px solid rgba(3,255,204,.55);text-align:center}
.plus-target-card.is-elite{background:linear-gradient(180deg,#f4ecd8,#e6dcc2);color:#0b1426}
.plus-target-card .sd-jersey{width:104px;height:104px}
.plus-target-card strong{font:800 17px/1.1 Inter,sans-serif;letter-spacing:.2px}
.plus-target-card small{font:600 11px/1 Inter,sans-serif;letter-spacing:.8px;color:var(--muted,#9aa8bd)}
.plus-target-card.is-elite small{color:#4a5568}
.plus-tag{position:absolute;top:10px;left:10px;font:800 10px/1 Inter,sans-serif;letter-spacing:1.4px;color:#03ffcc;padding:4px 7px;border:1px solid rgba(3,255,204,.6);border-radius:999px;background:rgba(3,255,204,.06)}
.plus-target-card.is-elite .plus-tag{color:#007a62;border-color:#00a383;background:rgba(0,163,131,.08)}
.plus-slot{position:absolute;top:11px;right:10px;font:700 9.5px/1 Inter,sans-serif;letter-spacing:1px;color:var(--muted,#9aa8bd);text-transform:uppercase}
.plus-locked-copy{max-width:560px;margin:0;text-align:center;font:500 13.5px/1.5 Inter,sans-serif;color:var(--muted,#9aa8bd)}
.plus [data-plus-deal][disabled]{opacity:.55;cursor:default}
@media (max-width:600px){
 .plus-target-bar{flex-direction:column;align-items:stretch}
 .plus-target-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .plus-target-card{padding:26px 6px 12px}
 .plus-target-card .sd-jersey{width:68px;height:68px}
 .plus-target-card strong{font-size:13px}
 .plus-slot{display:none}
 .plus-tag{left:50%;transform:translateX(-50%);font-size:9px}
 .plus .plus-steps small,.plus .plus-targets small{font-size:8.5px;letter-spacing:.6px}
}
/* Snap's deal status row (clock, reroll) and the selected panel belong to the deal;
   before the deal opens they stay out of the way. */
.plus[data-plus-phase="targets"] [data-status],.plus:is(:is([data-plus-phase="offers"],[data-plus-phase="opening"],[data-plus-phase="finishing"]),[data-plus-phase="opening"],[data-plus-phase="finishing"]) [data-status]{display:none}
.plus:is([data-plus-phase="offers"],[data-plus-phase="opening"],[data-plus-phase="finishing"]) .sd-stage{grid-template-columns:minmax(0,1fr)}
.plus:is([data-plus-phase="offers"],[data-plus-phase="opening"],[data-plus-phase="finishing"]) [data-selected]{display:none}
.plus-target-copy:empty{display:none}
.plus .plus-steps,.plus .plus-targets{margin-top:12px}
@media (max-width:600px){
 /* four steps on a phone: the current step keeps its label, the rest are dots */
 .plus-tracker .sd-step:not(.is-current)>span:last-child{display:none}
 .plus-tracker .sd-step-line{min-width:14px}
 .plus-tracker{justify-content:center}
 .plus-target-bar:has(.plus-target-copy:empty) .plus-confirm[disabled]{display:none}
 .plus-target-bar:has(.plus-target-copy:empty):has(.plus-confirm[disabled]){display:none}
}
.plus-target-bar:has(.plus-target-copy:empty){justify-content:flex-end;margin-top:-4px}

/* ---- burst 3 ---- */
/* desktop library grids scroll inside their area (Keeper's fix); no card cut by the tray */
@media (min-width:601px){
 .plus[data-plus-phase="opening"] .sd-stage-body,.plus[data-plus-phase="targets"] .sd-stage-body,.plus[data-plus-phase="finishing"] .sd-stage-body{min-height:0}
}
.plus .plus-steps.is-two{grid-template-columns:repeat(2,minmax(0,1fr))}
/* the deal: Snap's stage and selected panel come back */
.plus:is([data-plus-phase="offers"],[data-plus-phase="opening"],[data-plus-phase="finishing"])[data-plus-deal="true"] .sd-stage{grid-template-columns:minmax(0,1fr) 268px}
.plus:is([data-plus-phase="offers"],[data-plus-phase="opening"],[data-plus-phase="finishing"])[data-plus-deal="true"] [data-selected]{display:block}
@media (max-width:600px){.plus:is([data-plus-phase="offers"],[data-plus-phase="opening"],[data-plus-phase="finishing"])[data-plus-deal="true"] .sd-stage{display:block}}
/* calls: one quiet row above the cards */
.plus-calls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:2px 0 10px}
.plus-calls-count{font:600 12.5px/1 Inter,sans-serif;color:var(--muted,#9aa8bd);margin-right:4px}
.plus-calls-count b{color:#fff;font-weight:800;font-variant-numeric:tabular-nums}
.plus-calls-why{font:600 11px/1 Inter,sans-serif;letter-spacing:.4px;color:#f5c26b;padding:5px 8px;border:1px solid rgba(245,194,107,.35);border-radius:999px}
.plus-calls .sd-reroll{display:inline-flex;align-items:center;gap:6px}
.plus-calls kbd{font:700 9.5px/1 Inter,sans-serif;color:var(--muted,#9aa8bd);border:1px solid rgba(255,255,255,.16);border-radius:4px;padding:2px 4px;margin-left:2px}
.plus-callpos.is-armed{box-shadow:inset 0 0 0 1px #03ffcc;color:#03ffcc}
.plus-pos-row{display:inline-flex;gap:6px}
.plus-pos-row[hidden]{display:none}
.plus-pos{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(3,255,204,.45);background:rgba(3,255,204,.06);color:#e9fff9;font:800 12px/1 Inter,sans-serif;letter-spacing:.6px;cursor:pointer}
.plus-pos small{font:700 9px/1 Inter,sans-serif;color:var(--muted,#9aa8bd)}
.plus-pos[disabled]{opacity:.35;cursor:default;border-color:rgba(255,255,255,.14);background:none}
.plus-calls button[disabled]{opacity:.45;cursor:default}
/* card tags: small, calm, no glow */
.plus-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:6px}
.plus-chip{display:inline-flex;align-items:center;gap:3px;height:18px;padding:0 7px;border-radius:999px;font:700 9.5px/1 Inter,sans-serif;letter-spacing:.4px;border:1px solid rgba(255,255,255,.18);color:#dbe5f2;background:rgba(8,13,24,.35)}
.plus-chip.is-steal{border-color:rgba(3,255,204,.45);color:#9ff5e2}
.plus-chip.is-boom{padding:0 5px;color:#f5c26b;border-color:rgba(245,194,107,.4)}
.plus-boom{width:11px;height:11px}
.sd-card.is-elite .plus-chip{color:#22324d;border-color:rgba(11,20,38,.22);background:rgba(255,255,255,.35)}
.sd-card.is-elite .plus-chip.is-steal{color:#006b56;border-color:rgba(0,120,96,.4)}
.sd-card.is-elite .plus-chip.is-boom{color:#8a5a00;border-color:rgba(138,90,0,.35)}
/* the target card: teal edge light and a TARGET tag; stock stays Snap's */
.plus .sd-card.is-target{box-shadow:0 0 0 1px rgba(3,255,204,.7);border-radius:var(--card-r,14px)}
.plus-card-tag{position:absolute;top:-1px;left:50%;transform:translateX(-50%);z-index:5;font:800 9.5px/1 Inter,sans-serif;letter-spacing:1.6px;color:#03241d;background:#03ffcc;padding:4px 9px 4px;border-radius:0 0 8px 8px}
@media (max-width:600px){.plus-calls{gap:6px}.plus-calls kbd{display:none}.plus-calls-count{width:100%;margin:0 0 2px}}

/* ---- burst 4: review + results recap ---- */
.plus-recap{margin-top:14px;padding:14px 16px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(10,17,30,.55)}
.plus-recap.is-live{margin:16px 0 0}
.plus-recap-grid{display:grid;grid-template-columns:auto auto 1fr;gap:10px 22px;align-items:start;margin-top:8px}
.plus-recap-stat{display:flex;flex-direction:column;gap:3px}
.plus-recap-stat b{font:800 26px/1 Inter,sans-serif;color:#fff;font-variant-numeric:tabular-nums}
.plus-recap-stat b small{font-size:14px;color:var(--muted,#9aa8bd);font-weight:700}
.plus-recap-stat span{font:600 11px/1.2 Inter,sans-serif;color:var(--muted,#9aa8bd);letter-spacing:.4px}
.plus-recap-targets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;min-width:0}
.plus-recap-targets li{display:flex;align-items:baseline;gap:8px;font:600 12.5px/1.25 Inter,sans-serif;color:#dbe5f2;min-width:0}
.plus-recap-targets b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plus-recap-targets em{font-style:normal;color:var(--muted,#9aa8bd);font-size:11.5px;white-space:nowrap}
.plus-recap-targets li.is-landed em{color:#03ffcc}
.plus-recap-pos{font:800 10px/1 Inter,sans-serif;letter-spacing:.8px;color:#03ffcc;min-width:20px}
@media (max-width:600px){.plus-recap-grid{grid-template-columns:1fr 1fr}.plus-recap-targets{grid-column:1/-1}}
[data-solo-teams][hidden],[data-solo-new][hidden]{display:none!important}

/* ---- finishing burst: slam title, restart, new draft, confirm ---- */
.sd-slam-bar b{max-width:min(92vw,880px);text-align:center;line-height:1.05;text-wrap:balance}
@media (max-width:600px){.sd-slam-bar b{font-size:26px;letter-spacing:.5px}}
.plus-trackbar{position:relative;display:flex;justify-content:center;align-items:center}
.plus-restart{position:absolute;right:0;top:50%;transform:translateY(-50%);background:none;border:0;padding:6px 4px;font:700 12px/1 Inter,sans-serif;letter-spacing:.4px;color:var(--muted,#9aa8bd);cursor:pointer;border-radius:6px}
.plus-restart:hover{color:#fff}
.plus-restart:focus-visible{outline:2px solid #03ffcc;outline-offset:2px}
@media (max-width:600px){.plus-trackbar{gap:8px}.plus-trackbar .sd-tracker{flex:1;min-width:0}.plus-restart{position:static;transform:none;flex:none;padding:6px 2px}}
.plus-new{white-space:nowrap}
.plus-dialog{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:rgba(4,8,16,.72);backdrop-filter:blur(4px);padding:20px}
.plus-dialog-card{width:min(380px,100%);background:#121e33;border:1px solid rgba(3,255,204,.22);border-radius:16px;padding:22px 22px 18px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.plus-dialog-card h2{margin:0 0 6px;font:800 20px/1.15 Inter,sans-serif;color:#fff}
.plus-dialog-card p{margin:0 0 18px;font:500 14px/1.4 Inter,sans-serif;color:var(--muted,#9aa8bd)}
.plus-dialog-actions{display:flex;justify-content:flex-end;gap:10px}

/* ===================================================================== Pick 8 · snake-room reskin (22 Oct)
   Loaded after keeper.css / keeper-intro.css / mode-shell.css / keeper-v4.css: Snap+ wears the
   snake room's surfaces (navy layered cards, kd5 slot stock, display type). Only Snap+ parts here. */
.plus-app .sd-main{padding-top:0}
.kd.plus .plus-trackbar{display:flex;align-items:center;justify-content:flex-start;gap:12px}
.kd.plus .plus-trackbar .sd-tracker{flex:1;min-width:0}
.kd.plus .plus-restart{position:static;transform:none;color:#cfe9e2;padding:8px 4px}
.plus-trackbar-actions{display:flex;align-items:center;gap:14px;margin-left:auto;flex-shrink:0}
.plus-auto{appearance:none;border:0;border-radius:999px;padding:7px 14px;background:#03ffcc1a;color:#9ff5df;font:800 12px/1 Inter,sans-serif;letter-spacing:.4px;cursor:pointer;box-shadow:inset 0 0 0 1px #03ffcc44}
.plus-auto:hover{background:#03ffcc2e}
.plus-auto:focus-visible{outline:2px solid #03ffcc;outline-offset:2px}
.kd.plus .sd-stage-heading h1{font-family:var(--disp,'Inter');font-style:italic}
/* Pick 8 strip */
.plus8{position:relative;padding:10px 14px 12px;border-radius:16px;background:linear-gradient(180deg,#0f2133,#0b1826);box-shadow:inset 0 0 0 1px #ffffff0d}
.plus8-head{display:flex;align-items:baseline;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.plus8-count{font:900 italic 22px/1 var(--disp,Inter);color:#03ffcc}
.plus8-count small{font:700 12px/1 Inter;color:#6f8aa3;font-style:normal}
.plus8-rule{font:700 11px/1 Inter;letter-spacing:.5px;color:#8fa4bb}
.plus8-benchlabel{margin-left:auto;font:700 11px/1 Inter;letter-spacing:.6px;color:#8fa4bb;text-transform:uppercase}
.plus8-benchlabel b{color:#e6eef6}
.plus8-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}
.plus8-slots{display:grid!important;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none}
.plus8-slot{display:grid!important;grid-template-columns:auto auto minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:6px;min-height:46px;padding:5px 7px!important;border-radius:10px}
.plus8-slot .kd5-pill{grid-row:1/3}
.plus8-slot .plus8-kit{grid-row:1/3;width:28px;height:28px;display:grid;place-items:center}
.plus8-slot .plus8-kit .sd-jersey,.plus8-slot .plus8-kit svg{width:28px;height:28px}
.plus8-slot .kd5-name{grid-column:3;min-width:0}
.plus8-slot .kd5-name b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.plus8-slot .kd5-name small{display:block;font-size:10px;color:#8fa4bb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plus8-slot .kd5-tag{grid-column:3;font-size:9px;color:#6f8aa3}
.plus8-slot.is-empty{grid-template-columns:auto minmax(0,1fr)}
.plus8-slot.is-empty .kd5-name{grid-column:2;grid-row:1/3}
.plus8-bench{display:grid;grid-template-columns:repeat(6,22px);gap:4px;margin:0;padding:0;list-style:none}
.plus8-bn{position:relative;width:22px;height:22px;border-radius:6px;background:#0a1828;display:grid;place-items:center;overflow:hidden}
.plus8-bn .sd-jersey,.plus8-bn svg{width:20px;height:20px}
.plus8-bn small{position:absolute;inset:auto 0 0;font:800 6.5px/1 Inter;text-align:center;color:#cfe;background:#0a1828cc}
.plus8-bn.is-empty{background:#0a182866;box-shadow:inset 0 0 0 1px #ffffff0a}
/* Setup: the snake room's pack intro, Snap+ steps */
.plus-intro .ki-c-foil b{letter-spacing:2px}
.plus-howto{list-style:none;margin:2px 0 4px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.plus-howto li{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:12px;background:#0d1f31cc;box-shadow:inset 0 0 0 1px #ffffff0d;text-align:center}
.plus-howto b{font:900 italic 24px/1 var(--disp,Inter);color:#fff}
.plus-howto li.is-dealt b,.plus-howto li.is-best b{color:#03ffcc}
.plus-howto span{font:800 11px/1.1 Inter;letter-spacing:.4px;color:#dfe9f3;text-transform:uppercase}
.plus-howto small{display:block;margin-top:3px;font:600 10px/1.1 Inter;letter-spacing:0;color:#8fa4bb;text-transform:none}
/* Review: Starting 8 dealt as cards */
.plus-r8{margin:0 0 14px}
.plus-r8-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin-top:8px;perspective:900px;min-height:10px}
.plus-r8-row .ms-card{display:block}
.plus-r8-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:22px 4px 10px;border-radius:12px;background:linear-gradient(180deg,#14304a,#0b1a2a);box-shadow:inset 0 0 0 1px #ffffff12,0 10px 26px #0007;overflow:hidden;text-align:center}
.plus-r8-card.is-elite{background:linear-gradient(180deg,#1b4a6e,#0e2338);box-shadow:inset 0 0 0 1px #7cc8ff66,0 10px 30px #0009}
.plus-r8-pos{position:absolute;top:6px;left:6px;padding:3px 6px;border-radius:6px;background:#03ffcc1f;color:#9ff5df;font:900 9.5px/1 Inter;letter-spacing:.6px}
.plus-r8-kit{width:60px;height:60px;display:grid;place-items:center}
.plus-r8-kit .sd-jersey,.plus-r8-kit svg{width:60px;height:60px}
.plus-r8-card b{font:900 italic 13px/1.1 var(--disp,Inter);color:#fff;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plus-r8-card small{font:700 9.5px/1 Inter;color:#8fa4bb;letter-spacing:.3px}
/* Payoff fly card */
.plus-pay{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:220px;text-align:center}
.plus-pay small{font:800 11px/1 Inter;letter-spacing:1.2px;color:#9ff5df}
.plus-pay b{font:900 italic 46px/1 var(--disp,Inter);color:#fff;text-shadow:0 0 24px #03ffcc66}
.plus-pay em{font:800 12px/1 Inter;font-style:normal}
.plus-pay em.is-up{color:#03ffcc}.plus-pay em.is-down{color:#ff8a9b}
.plus-pay i{font:600 12px/1.2 Inter;font-style:normal;color:#c6d4e1}
@media (max-width:900px){
 .plus8-body{grid-template-columns:minmax(0,1fr)}
 .plus8-slots{grid-template-columns:repeat(4,minmax(0,1fr))}
 .plus8-bench{grid-template-columns:repeat(12,minmax(0,1fr))}
 .plus8-bn{width:auto}
 .plus-r8-row{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:600px){
 .plus8{padding:8px 8px 10px}
 .plus8-rule{display:none}
 .plus8-slots{gap:4px}
 .plus8-slot{min-height:40px;padding:4px!important;column-gap:4px;grid-template-columns:auto minmax(0,1fr)}
 .plus8-slot .plus8-kit{display:none}
 .plus8-slot .kd5-name,.plus8-slot .kd5-tag{grid-column:2}
 .plus8-slot .kd5-pill{min-width:26px;font-size:8.5px}
 .plus8-slot .kd5-name b{font-size:10.5px}
 .plus8-slot .kd5-tag{display:none}
 .plus-howto{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
 .plus-howto b{font-size:18px}.plus-howto span{font-size:9px}.plus-howto small{font-size:8.5px}
 .plus-r8-card{padding:20px 2px 8px}.plus-r8-kit,.plus-r8-kit .sd-jersey,.plus-r8-kit svg{width:44px;height:44px}
 .plus-trackbar-actions{gap:8px}.plus-auto{padding:6px 10px;font-size:11px}
}
@media (prefers-reduced-motion:reduce){.plus-r8-row .ms-card{animation:none!important}}

.plus[data-plus-phase="finishing"] [data-status],.plus[data-plus-phase="review"] [data-status]{display:none}
/* Pick 8 slot: pill + name (kits read on the bench and in the review deal) */
.plus8-slot .plus8-kit{display:none}
.plus8-slot{grid-template-columns:auto minmax(0,1fr)!important}
.plus8-slot .kd5-name,.plus8-slot .kd5-tag{grid-column:2!important}
/* target list: the snake room's navy stock for every tier */
.kd.plus .plus-target-card.is-elite{background:linear-gradient(180deg,#1b4a6e,#0e2338);color:#fff}
.kd.plus .plus-target-card.is-elite small{color:#8fa4bb}
.kd.plus .plus-target-card.is-elite .plus-tag{color:#03ffcc;border-color:rgba(3,255,204,.6);background:rgba(3,255,204,.06)}
.kd.plus .plus-target-card{border:0;box-shadow:inset 0 0 0 1px rgba(3,255,204,.45),0 14px 30px #0008}

@media (max-width:600px){
 /* phone: the Starting 8 collapses to one row of slot chips (the snake room's tray chips) */
 .plus8-head{margin-bottom:6px}
 .plus8-body{gap:0}
 .plus8-bench{display:none}
 .plus8-slots{grid-template-columns:repeat(8,minmax(0,1fr))!important;gap:3px}
 .plus8-slot{min-height:0!important;padding:0!important;display:block!important;background:none!important;border:0!important;box-shadow:none!important}
 .plus8-slot .kd5-name,.plus8-slot .kd5-tag{display:none!important}
 .plus8-slot .kd5-pill{display:block;min-width:0;width:100%;padding:7px 0;font-size:9px;border-radius:7px}
 .plus8-slot.is-filled .kd5-pill{background:#03ffcc;color:#04241c}
 .plus8-slot.is-empty .kd5-pill{box-shadow:inset 0 0 0 1px #ffffff1a}
 .kd.plus .plus-trackbar .sd-tracker{justify-content:flex-start}
}

/* No entry stake (FOUR-MODES-SPEC): core-squad entry tile on the lock review; points-only payoff delta. */
.plus-review .plus-entry-tile b{font-size:16px;line-height:1.3;color:#7ee2c4}.plus-review .plus-entry-tile i{font-style:normal;white-space:nowrap}
.sd-week-facts .plus-delta b.is-up{color:#5fe0a0}.sd-week-facts .plus-delta b.is-down{color:#ff7a8a}

/* ===================================================================== v5 (22 Oct): Snake Room team panel
   The roster is keeper-v4's kd4-sheet / kd5 slot list: a right rail on desktop (>=1100), the
   collapsed chip tray on smaller screens (keeper-v4 .kd4-tray, same breakpoint as the Snake Room). */
.plus-rail{display:none}
.kd.plus .plus-tray-wrap{position:relative}
.kd.plus .plus-tray-wrap .sd-seal{right:64px;top:8px}.kd.plus .plus-tray-wrap .sd-seal span{display:none}
@media (min-width:1100px){
 .kd.plus .plus-tray-wrap{display:none!important}
 .kd.plus .sd-stage,.kd.plus[data-plus-phase] .sd-stage,.kd.plus:is([data-plus-phase="offers"],[data-plus-phase="opening"],[data-plus-phase="finishing"])[data-plus-deal="true"] .sd-stage{grid-template-columns:minmax(0,1fr) 268px 300px}
 .kd.plus[data-plus-phase="review"] .sd-stage{grid-template-columns:minmax(0,1fr) 300px}
 .kd.plus:is([data-plus-phase="offers"],[data-plus-phase="opening"],[data-plus-phase="finishing"]) [data-selected]{display:block}
 .plus-rail{display:flex;flex-direction:column;position:relative;min-height:0;overflow:hidden;border-radius:14px;background:#0b1626;border:1px solid #ffffff14}
 .plus-rail .kd4-sheet{flex:1;min-height:0}
 .plus-rail .sd-seal{right:14px;top:14px}
}
@media (max-width:800px){.kd.plus .plus-tray-wrap{order:1;margin:0}}
/* final stars: combination chip on library cards (teammate of someone on your team) */
.plus-combo{position:absolute;left:8px;bottom:8px;z-index:3;padding:4px 7px;border-radius:7px;background:#03ffcc;color:#002b22;font:900 9.5px/1 Inter,sans-serif;letter-spacing:.3px;white-space:nowrap;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis}
@media (max-width:600px){.plus-combo{left:5px;bottom:5px;font-size:8.5px;padding:3px 5px}}
.plus-howto{grid-template-columns:repeat(5,minmax(0,1fr))}
/* v5 fix (22 Oct): desktop rail stays on one line — position chips (incl. BN) and the "Your team" title */
.plus-rail .kd5-chips{flex-wrap:nowrap;gap:3px;min-width:0}
.plus-rail .kd5-chip{flex:1 1 auto;justify-content:center;gap:3px;padding:4px 4px;white-space:nowrap;min-width:0}
.plus-rail .kd4-sheet-head{grid-template-columns:minmax(0,1fr) auto;gap:8px 8px}
.plus-rail .kd4-sheet-title{gap:8px;min-width:0;white-space:nowrap}
.plus-rail .kd4-sheet-title span{letter-spacing:1.2px;white-space:nowrap}
.plus-rail .kd4-need{gap:6px;padding:5px 5px 5px 8px;white-space:nowrap}
.plus-rail .kd4-need b{padding:5px 8px}
