/* Penalty Shootout stylesheet — the Pick 5 look, cut from Sports Ballpark's ballpark.css (same tokens,
   same card/tab/banner/clock/room pieces, same desktop rules) so the two games sit together on the
   arcade. Only the scoreboard, the goal and the list chips are new. */
/* ── Pick 5 design tokens (subset of bebida-games/web/src/pick5-tokens.css, "Classic Ink" palette) */
:root{
  --add-yellow:#F2D233; --add-charcoal:#2D2D2D; --add-white:#FFFFFF; --add-orange:#cc2200;
  --add-border-color:#141414; --add-shadow-color:#141414;
  --add-text:#141414; --add-surface:#FFFFFF; --add-bg:var(--add-yellow);
  --add-cta-bg:var(--add-text); --add-cta-fg:var(--add-yellow); --add-chip-fg:#141414;
  --add-focus-ring:var(--add-orange); --add-well:#FFF9E6; --add-error:var(--add-orange);
  --add-search-bg:#E8E8E8;
  --add-font-display:'Teko',system-ui,sans-serif; --add-font-body:'Archivo',system-ui,sans-serif;
  --text-xs:.75rem; --text-sm:.875rem; --text-base:1rem; --text-lg:1.25rem;
  --display-xs:1.125rem; --display-sm:clamp(1.125rem,4.6vw,1.5rem);
  --display-md:clamp(1.5rem,6.5vw,2rem); --display-lg:clamp(2rem,9vw,3rem);
  --display-xl:clamp(2.75rem,14vw,4.25rem);
  --space-2xs:.25rem; --space-xs:.375rem; --space-sm:.5rem; --space-md:.75rem;
  --space-lg:1rem; --space-xl:1.25rem; --space-2xl:1.5rem;
  --radius-pill:9999px; --radius:.6875rem; --radius-lg:1rem;
  --border:.25rem solid var(--add-border-color); --border-sm:.1875rem solid var(--add-border-color);
  --border-thin:.125rem solid var(--add-border-color);
  --shadow-sm:.1875rem .1875rem 0 var(--add-shadow-color); --shadow:.3125rem .3125rem 0 var(--add-shadow-color);
  --shadow-pop:.4375rem .4375rem 0 var(--add-shadow-color); --tap:2.75rem;
  --out-red:#CC2430; --grass:#3E9B4F; --grass-dark:#2F7D3D;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --add-bg:#141414; --add-border-color:#4a4a4a;
    --add-shadow-color:color-mix(in srgb, var(--add-yellow) 49%, transparent);
    --add-text:#FFFFFF; --add-surface:#2D2D2D; --add-search-bg:#3A3A3A;
    --add-cta-bg:var(--add-yellow); --add-cta-fg:#141414;
    --add-focus-ring:var(--add-yellow); --add-error:#FF6B57; --add-well:#2D2D2D;
  }
}
:root[data-theme="dark"]{
  --add-bg:#141414; --add-border-color:#4a4a4a;
  --add-shadow-color:color-mix(in srgb, var(--add-yellow) 49%, transparent);
  --add-text:#FFFFFF; --add-surface:#2D2D2D; --add-search-bg:#3A3A3A;
  --add-cta-bg:var(--add-yellow); --add-cta-fg:#141414;
  --add-focus-ring:var(--add-yellow); --add-error:#FF6B57; --add-well:#2D2D2D;
}
/* League skins (Ballpark's, Kota 9/30): soccer + NFL = house yellow, NBA = basketball orange, MLB = sky blue */
:root[data-league="nba"]{--add-yellow:#F5A03A;--add-well:#FFF1E0}
:root[data-league="mlb"]{--add-yellow:#62B6F0;--add-well:#E8F4FD}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"])[data-league]{--add-well:#2D2D2D}}
:root[data-theme="dark"][data-league]{--add-well:#2D2D2D}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;font-size:clamp(16px,1.25vw,32px)}
html,body{margin:0;padding:0;background:var(--add-bg)}
body{color:var(--add-text);font-family:var(--add-font-body);min-height:100dvh;overflow-x:hidden}
#app{max-width:26rem;margin:0 auto;padding:0 1rem}
#menu-screen{display:flex;flex-direction:column;gap:var(--space-lg);padding-bottom:2rem}
#game-screen{display:flex;flex-direction:column;gap:var(--space-sm);min-height:100dvh;padding-bottom:var(--space-sm)}
.screen.screen-fade-in{animation:ps-screen-in .22s ease both}
@keyframes ps-screen-in{from{opacity:0;transform:translateX(1rem)}to{opacity:1;transform:translateX(0)}}
@media (prefers-reduced-motion: reduce){.screen.screen-fade-in{animation:none}}
[hidden]{display:none!important}

.icon-btn{width:2.25rem;height:2.25rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:var(--add-surface);border:var(--border-thin);border-radius:var(--radius-pill);padding:0;font-size:1.05rem;
  line-height:1;color:var(--add-text);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .12s ease;text-decoration:none}
.icon-btn:hover{transform:translate(-.0625rem,-.0625rem);box-shadow:var(--shadow)}

/* Menu */
#menu-topbar{display:flex;justify-content:flex-end;padding:.75rem 0 0}
#menu-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;padding:.25rem 0 .5rem}
#menu-art{width:min(70vw,17rem);height:auto;display:block;margin:0 auto}
#menu-wordmark{font-family:var(--add-font-display);font-weight:700;font-size:var(--display-lg);letter-spacing:.03em;color:var(--add-text);line-height:1;text-transform:uppercase}
#menu-wordmark .muted{display:block;font-family:var(--add-font-body);font-weight:400;font-size:var(--text-sm);letter-spacing:normal;text-transform:none;
  color:color-mix(in srgb, var(--add-text) 60%, transparent);margin-top:.25rem}
.card{position:relative;background:var(--add-surface);border:var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-xl)}
.card-tab{position:absolute;top:-.75rem;left:1rem;background:#141414;color:var(--add-yellow);border-radius:var(--radius-pill);
  padding:.28rem .85rem .2rem;font-family:var(--add-font-display);font-weight:700;font-size:var(--display-xs);letter-spacing:.06em;
  text-transform:uppercase;line-height:1;white-space:nowrap;box-shadow:var(--shadow-sm)}
.stack{display:flex;flex-direction:column;gap:var(--space-md)}
.field-row{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}
.field-row:first-child{margin-top:.25rem}
.field-row label{font-family:var(--add-font-body);font-weight:800;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb, var(--add-text) 60%, transparent)}
.field-row input{width:100%;min-height:var(--tap);border:var(--border-thin);border-radius:var(--radius);padding:.5rem .75rem;font-family:var(--add-font-body);font-weight:700;
  font-size:var(--text-base);background:var(--add-search-bg);color:var(--add-text)}
.field-row input:focus{outline:.1875rem solid var(--add-focus-ring);outline-offset:.125rem}
.league-pick{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}
.league-pick button{min-height:var(--tap);border:var(--border-thin);border-radius:var(--radius);background:var(--add-surface);color:var(--add-text);
  font-family:var(--add-font-display);font-weight:600;font-size:var(--display-xs);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;padding:0 .2rem}
.league-pick button[aria-pressed="true"]{background:var(--add-yellow);color:var(--add-chip-fg);border-color:#141414}
.menu-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);width:100%;text-align:left;
  background:var(--add-surface);border:var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);
  padding:var(--space-lg) var(--space-xl);cursor:pointer;font-family:inherit;color:var(--add-text);transition:transform .12s ease,box-shadow .12s ease;text-decoration:none}
.menu-card:hover{transform:translate(-.125rem,-.125rem);box-shadow:var(--shadow-pop)}
.menu-card:disabled{opacity:.6;cursor:wait}
.menu-card-title{font-family:var(--add-font-display);font-weight:600;font-size:var(--display-sm);text-transform:uppercase;letter-spacing:.03em}
.menu-card-sub{display:block;font-family:var(--add-font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.06em;text-transform:none;
  color:color-mix(in srgb, var(--add-text) 60%, transparent);margin-top:.15rem}
.menu-card-chip{flex-shrink:0;display:inline-block;border-radius:var(--radius-pill);padding:.3rem .75rem .2rem;
  font-family:var(--add-font-body);font-weight:800;font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;border:var(--border-thin);background:transparent;color:var(--add-text)}
.menu-card.hero{background:var(--add-yellow);color:#141414;border-color:#141414}
.menu-card.hero .menu-card-sub{color:rgba(20,20,20,.7)}
.menu-card.hero .menu-card-chip{background:#141414;color:var(--add-yellow);border-color:#141414}
#howto{margin-top:0;font-size:var(--text-xs);color:color-mix(in srgb, var(--add-text) 70%, transparent)}
#howto summary{cursor:pointer;font-family:var(--add-font-body);font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:var(--text-xs);list-style:none;display:flex;align-items:center;gap:.3rem}
#howto summary::-webkit-details-marker{display:none}
#howto summary::before{content:"▸";display:inline-block;transition:transform .15s ease}
#howto[open] summary::before{transform:rotate(90deg)}
#howto p{margin:.35rem 0 0;line-height:1.45}
.muted{color:color-mix(in srgb, var(--add-text) 60%, transparent);font-size:var(--text-xs);text-align:center;margin-top:.35rem}
.muted:empty{display:none}

/* Buttons */
button.primary,a.primary{width:100%;margin-top:var(--space-sm);min-height:var(--tap);border-radius:var(--radius);border:var(--border);
  background:var(--add-cta-bg);color:var(--add-cta-fg);font-family:var(--add-font-display);font-weight:600;font-size:var(--display-xs);
  letter-spacing:.04em;text-transform:uppercase;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;text-decoration:none;display:flex;align-items:center;justify-content:center}
button.primary:hover:not(:disabled),a.primary:hover{transform:translate(-.125rem,-.125rem);box-shadow:var(--shadow-pop)}
button.primary:disabled{opacity:.5;cursor:not-allowed}
button.secondary,a.secondary{background:var(--add-surface);color:var(--add-text)}
.linkish{display:block;margin:var(--space-md) auto 0;background:none;border:0;cursor:pointer;font-family:var(--add-font-body);font-weight:800;font-size:var(--text-xs);
  text-transform:uppercase;letter-spacing:.06em;text-decoration:underline;color:color-mix(in srgb, var(--add-text) 70%, transparent)}

/* Game topbar */
#topbar{background:var(--add-charcoal);margin:0 calc(50% - 50vw);padding:.55rem 1rem;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;border-bottom:var(--border);gap:var(--space-sm)}
#game-title{flex:1;min-width:0;text-align:center;font-family:var(--add-font-display);font-weight:700;font-size:var(--display-sm);
  letter-spacing:.03em;color:var(--add-yellow);text-transform:uppercase;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Scoreboard: two rows — name · the kicks taken (⚽ 🧤 ⬆ on five dots, more in sudden death) · goals */
#scoreboard{display:grid;grid-template-columns:1fr;gap:.35rem;background:var(--add-surface);border:var(--border-sm);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);padding:.45rem .75rem;flex-shrink:0}
.sb-row{display:grid;grid-template-columns:minmax(0,1fr) auto 2.4rem;align-items:center;gap:.5rem}
.sb-row .who{font-family:var(--add-font-body);font-weight:800;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--add-text)}
.sb-row .who small{font-weight:700;text-transform:none;letter-spacing:0;color:color-mix(in srgb, var(--add-text) 55%, transparent);margin-left:.35rem}
.sb-row .who .dot{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:#2e9e4a;margin-left:.35rem;vertical-align:middle}
.sb-row .who .dot.quiet{background:var(--out-red);animation:ps-blink 1.2s steps(2,start) infinite}
@keyframes ps-blink{to{visibility:hidden}}
.sb-row .kicks{display:flex;gap:.22rem}
.sb-row .kicks i{width:1.15rem;height:1.15rem;border-radius:50%;border:var(--border-thin);display:flex;align-items:center;justify-content:center;font-style:normal;font-size:.7rem;line-height:1;background:transparent}
.sb-row .kicks i.goal{background:var(--add-yellow);border-color:#141414}
.sb-row .kicks i.save,.sb-row .kicks i.miss{background:var(--add-search-bg)}
.sb-row .kicks i.live{border-style:dashed}
.sb-row .r{font-family:var(--add-font-display);font-weight:700;font-size:var(--display-md);line-height:1;text-align:right;color:var(--add-text)}
.sb-row.shooting .who::before{content:"⚽ ";font-size:.8em}
#need{font-family:var(--add-font-body);font-weight:700;font-size:var(--text-xs);text-align:center;color:var(--add-text);background:var(--add-well);border:var(--border-thin);border-radius:var(--radius-pill);padding:.3rem .8rem;margin-top:.35rem}

/* Kick card */
#round{flex:1;min-height:0;display:flex;flex-direction:column}
#kick-card{display:flex;flex-direction:column;padding:var(--space-xl) var(--space-xl) var(--space-md)}
#ask-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);margin:.6rem 0 .4rem}
#ask{flex:1;min-width:0;font-family:var(--add-font-display);font-weight:700;font-size:var(--display-sm);line-height:1.05;color:var(--add-text);text-wrap:balance}
#count{flex-shrink:0;font-family:var(--add-font-body);font-weight:800;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:color-mix(in srgb, var(--add-text) 60%, transparent);white-space:nowrap}
#role-line{font-family:var(--add-font-body);font-weight:700;font-size:var(--text-xs);color:color-mix(in srgb, var(--add-text) 70%, transparent);margin:0 0 .35rem}
#role-line b{font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--add-text)}
#goal-wrap{position:relative;margin:0 0 var(--space-sm);aspect-ratio:360/250}
#goal{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible}
#goal .grass{fill:var(--grass)}
#goal .chalk{stroke:#fff;stroke-width:3}
#goal .net-line{stroke:rgba(255,255,255,.55);stroke-width:1}
#goal .net-fill{fill:rgba(255,255,255,.08)}
#goal .post{fill:#fff;stroke:#141414;stroke-width:2.5}
#goal .zone{fill:rgba(20,20,20,.05);stroke:rgba(255,255,255,.5);stroke-width:1.5;stroke-dasharray:4 4;transition:fill .2s}
#goal .zone.hit{fill:color-mix(in srgb, var(--add-yellow) 75%, transparent);stroke:#141414;stroke-dasharray:none}
#goal .zone.held{fill:rgba(204,36,48,.45);stroke:#141414;stroke-dasharray:none}
#goal .zone-label{font-family:var(--add-font-display);font-weight:700;font-size:14px;fill:#fff;paint-order:stroke;stroke:#141414;stroke-width:2.5px;letter-spacing:.02em;text-transform:uppercase;pointer-events:none}
#goal .zone-label.hit{fill:#141414;stroke:var(--add-yellow)}
#goal .zone-no{font-family:var(--add-font-body);font-weight:800;font-size:10px;fill:rgba(255,255,255,.95);paint-order:stroke;stroke:#141414;stroke-width:2px;pointer-events:none}
#goal .k-body{fill:var(--add-yellow);stroke:#141414;stroke-width:2.5}
#goal .k-head{fill:#F3C9A3;stroke:#141414;stroke-width:2.5}
#goal .k-arm{fill:var(--add-yellow);stroke:#141414;stroke-width:2.5}
#goal .k-leg{fill:#141414}
#goal .ball-skin{fill:#fff;stroke:#141414;stroke-width:2.5}
#goal .ball-patch{fill:#141414}
#goal .ball-seam{stroke:#141414;stroke-width:1.5;fill:none}
#goal .spot{fill:#fff}
#banner{position:absolute;left:50%;top:70%;z-index:95;pointer-events:none;transform:translate(-50%,-50%) rotate(-4deg) scale(.6);opacity:0;
  font-family:var(--add-font-display);font-weight:700;font-size:var(--display-md);line-height:.85;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;
  padding:.4rem .9rem .12rem;background:#141414;color:var(--add-yellow);border-radius:.5rem;box-shadow:.3rem .3rem 0 var(--add-orange);
  transition:transform .25s cubic-bezier(.3,1.6,.5,1),opacity .15s}
#banner.show{opacity:1;transform:translate(-50%,-50%) rotate(-4deg) scale(1)}
#banner.save{box-shadow:.3rem .3rem 0 var(--out-red)}
#caption{position:absolute;left:.5rem;right:.5rem;bottom:.35rem;z-index:90;pointer-events:none;text-align:left;margin:0;display:none}
#caption.goal,#caption.save,#caption.miss{display:block}
#caption .pill{display:inline-block;max-width:100%;padding:.32rem .7rem .26rem;border-radius:var(--radius-pill);
  background:rgba(0,0,0,.42);color:#fff;font-family:var(--add-font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.02em;line-height:1.25}
#caption.goal .pill{background:#141414;color:var(--add-yellow);border:.125rem solid var(--add-yellow)}
#caption.save .pill{background:var(--out-red);color:#fff}
#caption.miss .pill{background:var(--add-charcoal);color:#fff}
@media (prefers-reduced-motion: reduce){#banner{transition:none}}

/* Entry + reveal share one slot */
#slot{display:grid;flex-shrink:0;min-height:9.5rem}
#slot > *{grid-area:1/1}
#slot > .off{visibility:hidden;pointer-events:none}
#clockline{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.1rem 0 .35rem;font-family:var(--add-font-body);font-weight:700;font-size:var(--text-xs);color:color-mix(in srgb, var(--add-text) 70%, transparent)}
#clock{font-family:var(--add-font-display);font-weight:700;font-size:var(--display-sm);line-height:1;color:var(--add-text);min-width:3rem;text-align:right}
#clock.low{color:var(--out-red)}
.two-swing{display:flex;gap:.4rem;flex-wrap:wrap}
.two-swing span{border:var(--border-thin);border-radius:var(--radius-pill);padding:.2rem .6rem .12rem;background:var(--add-surface);color:var(--add-text)}
.two-swing span.in{background:var(--add-yellow);color:var(--add-chip-fg);border-color:transparent}
#guess{width:100%;padding:.7rem .75rem;font-family:var(--add-font-body);font-weight:700;font-size:1rem;border:var(--border-sm);border-radius:var(--radius);background:var(--add-search-bg);color:var(--add-text)}
#guess::placeholder{color:color-mix(in srgb, var(--add-text) 65%, transparent)}
#guess:focus{outline:.1875rem solid var(--add-focus-ring);outline-offset:.125rem}
#hint{min-height:1.1rem;margin:.3rem 0 0;font-family:var(--add-font-body);font-weight:800;font-size:var(--text-xs);letter-spacing:.03em;color:color-mix(in srgb, var(--add-text) 65%, transparent)}
#hint.on{color:var(--add-text)}
#hint.off{color:var(--add-error)}
#locked-note{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--tap);margin-top:var(--space-sm);font-family:var(--add-font-body);font-weight:800;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:color-mix(in srgb, var(--add-text) 70%, transparent)}
.spinner{width:.9rem;height:.9rem;border-radius:50%;border:.15rem solid color-mix(in srgb, var(--add-text) 25%, transparent);border-top-color:var(--add-text);animation:ps-spin .8s linear infinite}
@keyframes ps-spin{to{transform:rotate(360deg)}}
#reveal .line{display:flex;justify-content:space-between;gap:var(--space-md);padding:.35rem 0;border-bottom:.125rem dashed color-mix(in srgb, var(--add-text) 22%, transparent);font-size:var(--text-sm)}
#reveal .line:last-of-type{border-bottom:none}
#reveal .line span:first-child{font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:var(--text-xs);color:color-mix(in srgb, var(--add-text) 60%, transparent);white-space:nowrap}
#reveal .line span:last-child{text-align:right;font-weight:700}
#reveal .line .off-list{color:var(--out-red)}
#rv-list{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.3rem .35rem}
#rv-list .chip{white-space:nowrap;padding:.1rem .45rem 0;border-radius:var(--radius-pill);border:.125rem solid color-mix(in srgb, var(--add-text) 25%, transparent);font-weight:700;font-size:var(--text-xs)}
#rv-list .chip.shot{background:var(--add-yellow);color:#141414;border-color:#141414}
#rv-list .chip.keep{background:var(--out-red);color:#fff;border-color:var(--out-red)}
#rv-list .chip.shot.keep{background:var(--out-red);color:#fff}
#nextline{text-align:center;font-family:var(--add-font-body);font-weight:700;font-size:var(--text-xs);margin-top:.5rem;color:color-mix(in srgb, var(--add-text) 65%, transparent)}

/* Lobby (versus) — Pick 5's private-room look */
.pm-title{font-family:var(--add-font-display);font-weight:700;font-size:var(--display-md);line-height:1;text-transform:uppercase;letter-spacing:.03em;margin:0;color:var(--add-text);text-align:center}
.pm-sub{font-family:var(--add-font-body);font-weight:700;font-size:var(--text-sm);text-align:center;margin:.35rem 0 0;color:color-mix(in srgb, var(--add-text) 75%, transparent)}
.pm-label{font-family:var(--add-font-body);font-weight:800;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin:var(--space-md) 0 .4rem;color:color-mix(in srgb, var(--add-text) 50%, transparent)}
.code-card{border:.25rem dashed var(--add-border-color);border-radius:1rem;padding:.9rem .5rem .6rem;background:var(--add-well)}
.code-card .code{font-family:var(--add-font-display);font-weight:700;font-size:clamp(2.75rem, 14vw, 4.25rem);line-height:1;letter-spacing:.12em;text-align:center;color:var(--add-text)}
.code-card.small{margin:.5rem 0 .25rem;padding:.6rem .5rem .4rem}
.code-card.small .code{font-size:var(--display-lg)}
.copy-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-top:var(--space-sm)}
.copy-row button{margin-top:0;min-width:0}
.copy-status{min-height:1.1rem;margin-top:.35rem;font-family:var(--add-font-body);font-weight:800;font-size:var(--text-xs);text-align:center;color:var(--add-text)}
.copy-fallback{width:100%;margin-top:.35rem;min-height:var(--tap);border:var(--border-thin);border-radius:var(--radius);padding:.5rem .75rem;font-family:var(--add-font-body);font-weight:700;background:var(--add-search-bg);color:var(--add-text)}
.roster{display:flex;flex-direction:column;gap:.4rem}
.roster-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border:var(--border-thin);border-radius:var(--radius);padding:.55rem .75rem;
  background:var(--add-surface);font-family:var(--add-font-body);font-weight:800;font-size:var(--text-sm);color:var(--add-text)}
.roster-row.open{border-style:dashed;color:color-mix(in srgb, var(--add-text) 55%, transparent)}
.roster-row .nm{display:flex;align-items:center;gap:.4rem;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.host-pill,.you-tag{font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-pill);padding:.18rem .5rem .1rem;flex-shrink:0}
.host-pill{background:var(--add-charcoal);color:var(--add-yellow)}
.you-tag{border:var(--border-thin);color:var(--add-text)}
.presence{display:flex;align-items:center;gap:.35rem;flex-shrink:0;font-size:var(--text-xs);font-weight:700;color:color-mix(in srgb, var(--add-text) 65%, transparent)}
.presence .dot{width:.5rem;height:.5rem;border-radius:50%;background:#2e9e4a;display:inline-block}
.presence .dot.quiet{background:var(--out-red)}
.presence .dot.open{background:transparent;border:var(--border-thin)}
#lobby #start-btn{width:100%;margin-top:var(--space-md)}
.waiting{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:var(--space-md);font-family:var(--add-font-body);font-weight:800;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:color-mix(in srgb, var(--add-text) 70%, transparent)}
#join-card{display:flex;flex-direction:column}
#join-card .pane-back{position:absolute;top:.75rem;left:.75rem}
#join-card .pm-title{margin-top:.25rem}
.code-input{width:100%;min-height:4.25rem;border:.25rem dashed var(--add-border-color);border-radius:1rem;padding:.6rem .5rem .35rem;background:var(--add-well);
  font-family:var(--add-font-display);font-weight:700;font-size:clamp(2.25rem, 11vw, 3.25rem);line-height:1;letter-spacing:.12em;text-align:center;text-transform:uppercase;color:var(--add-text)}
.code-input::placeholder{color:color-mix(in srgb, var(--add-text) 30%, transparent);font-size:.6em;letter-spacing:.08em}
.code-input:focus{outline:.1875rem solid var(--add-focus-ring);outline-offset:.125rem}
#join-card #join-btn{margin-top:var(--space-md)}
.pm-modal{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(0,0,0,.45)}
.pm-modal-card{position:relative;width:min(100%, 24rem);background:var(--add-yellow);color:#141414;border:var(--border);border-color:#141414;border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-xl) var(--space-lg) var(--space-lg)}
.pm-modal-card h3{margin:0 1.5rem .5rem 0;font-family:var(--add-font-display);font-weight:700;font-size:var(--display-sm);line-height:1;text-transform:uppercase;letter-spacing:.03em}
.pm-modal-card p{margin:0;font-family:var(--add-font-body);font-weight:700;font-size:var(--text-sm);line-height:1.45}
.pm-modal-x{position:absolute;top:.6rem;right:.6rem;width:2rem;height:2rem;border:0;background:none;cursor:pointer;font-size:1.1rem;font-weight:800;color:#141414}
.pm-modal-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}
.pm-modal-actions button{flex:1;min-width:0;margin-top:0}
.pm-modal-card button.primary{background:#141414;color:var(--add-yellow);border-color:#141414}
.pm-modal-card button.primary.secondary{background:#fff;color:#141414}
#toast{position:fixed;left:50%;bottom:1.25rem;transform:translateX(-50%);background:#141414;color:var(--add-yellow);border-radius:var(--radius-pill);
  padding:.5rem 1rem;font-family:var(--add-font-body);font-weight:800;font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;box-shadow:var(--shadow-sm);z-index:9;transition:opacity .3s}

/* Final */
.vs-final .headline{font-family:var(--add-font-display);font-weight:700;font-size:var(--display-md);line-height:1;text-transform:uppercase;letter-spacing:.03em;text-align:center;color:var(--add-text);margin-top:.5rem}
.vs-final .score{display:flex;align-items:baseline;justify-content:center;gap:.75rem;font-family:var(--add-font-display);font-weight:700;font-size:var(--display-xl);line-height:1;margin:.6rem 0 .35rem;color:var(--add-text)}
.vs-final .score small{font-family:var(--add-font-body);font-weight:800;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;opacity:.7}
.vs-final .compare{display:grid;grid-template-columns:auto 1fr;gap:.35rem .6rem;align-items:center;margin-top:.75rem}
.vs-final .compare .n{font-family:var(--add-font-body);font-weight:800;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--add-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:7rem}
.vs-final .compare .kline{display:flex;gap:.25rem;flex-wrap:wrap}
.vs-final .compare .chip{font-size:var(--text-base);line-height:1;padding:.3rem .4rem .2rem;border-radius:var(--radius);border:var(--border-thin);background:var(--add-surface);color:var(--add-text);min-width:2rem;text-align:center}
.vs-final .compare .chip.goal{background:var(--add-yellow);color:var(--add-chip-fg);border-color:#141414}
.vs-final .compare .chip.save{background:var(--out-red);color:#fff;border-color:var(--out-red)}
.vs-final .compare .chip.miss{background:var(--add-charcoal);color:#fff;border-color:var(--add-charcoal)}
.vs-final #rematch,.vs-final #again{width:100%;margin-top:var(--space-md)}
.vs-final .actions{display:flex;gap:var(--space-sm)}
.vs-final .actions button{flex:1;min-width:0}
.vs-final pre{font-family:var(--add-font-body);font-weight:700;white-space:pre-wrap;background:var(--add-search-bg);padding:.85rem;border-radius:var(--radius);margin:var(--space-md) 0 0;font-size:var(--text-sm);color:var(--add-text)}
#side{display:none}
@media (min-width: 64rem){#side:not([hidden]){display:block}}
#kick-log,.kick-log{margin-top:var(--space-md);display:flex;flex-direction:column;gap:.25rem}
#kick-log .row,.kick-log .row{display:grid;grid-template-columns:1.6rem minmax(0,1fr) auto;gap:.5rem;align-items:center;font-size:var(--text-xs);font-weight:700;padding:.25rem 0;border-bottom:.0625rem dashed color-mix(in srgb, var(--add-text) 22%, transparent)}
#kick-log .row .q,.kick-log .row .q{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#kick-log .row .q small,.kick-log .row .q small{display:block;font-weight:600;color:color-mix(in srgb, var(--add-text) 60%, transparent)}

/* Short viewports */
@media (max-height: 720px){
  #topbar{padding:.35rem 1rem}
  #scoreboard{padding:.25rem .75rem}
  #kick-card{padding:var(--space-md) var(--space-lg) var(--space-sm)}
  #ask-row{margin:.35rem 0 .25rem}
  #slot{min-height:8.5rem}
}
/* Desktop (Pick 5's rules, copied from Ballpark): a wider column from 40rem, two columns from 64rem */
@media (min-width: 40rem){
  #app{max-width:min(100%, max(360px, 45vw))}
  #topbar{margin:0 calc(50% - 50vw);padding:.6rem 1.5rem}
  #menu-topbar{padding:1rem 0 0}
  #menu-art{width:min(45vw,20rem)}
}
@media (min-width: 64rem){
  #app{max-width:min(100%, max(720px, 66vw));padding:0 1.5rem}
  #menu-screen{max-width:min(100%, max(360px, 45vw));margin:0 auto}
  #game-screen{display:grid;gap:var(--space-md) var(--space-lg);align-content:start;grid-template-columns:minmax(0,1.5fr) minmax(22rem,1fr);
    grid-template-rows:auto auto 1fr;grid-template-areas:"topbar topbar" "stage scoreboard" "stage side";padding-bottom:var(--space-lg)}
  #topbar{grid-area:topbar}
  #scoreboard{grid-area:scoreboard;padding:.6rem 1rem;margin-top:var(--space-xs)}
  .sb-row .r{font-size:var(--display-lg)}
  #round{display:contents}
  #kick-card{grid-area:stage;align-self:start;margin-top:var(--space-xs);padding:var(--space-xl) var(--space-2xl) var(--space-lg)}
  #ask{font-size:var(--display-md)}
  #banner{font-size:var(--display-xl)}
  #side:not([hidden]){grid-area:side;display:block;align-self:start;padding:var(--space-xl) var(--space-xl) var(--space-lg)}
  button.primary,a.primary{min-height:3.25rem;font-size:var(--display-sm)}
  #lobby{grid-column:1 / -1;justify-self:center;width:min(100%, 28rem);margin-top:var(--space-md)}
  #result{grid-column:1 / -1;justify-self:center;width:min(100%, 40rem);margin-top:var(--space-sm)}
  #game-screen:has(#round[hidden]) #scoreboard{grid-column:1 / -1;justify-self:center;width:min(100%, 40rem)}
}

/* ── IQ additions: three leagues, the category as chips, the pack type-ahead, the "+N more" chip ── */
.league-pick{grid-template-columns:repeat(3,1fr)}
#ask{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .35rem;font-family:var(--add-font-body);font-size:var(--text-sm);line-height:1.2}
#ask .clue{display:inline-block;padding:.22rem .6rem .18rem;border-radius:var(--radius-pill);border:.125rem solid color-mix(in srgb, var(--add-text) 30%, transparent);background:var(--add-surface);font-weight:800;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
#ask .clue.team{background:var(--add-text);color:var(--add-surface);border-color:var(--add-text);font-family:var(--add-font-display);font-size:var(--display-xs);letter-spacing:.08em;padding:.14rem .65rem .08rem}
#ask .clue.era{border-style:dashed;background:transparent}
#ask .amp{font-family:var(--add-font-display);font-weight:700;font-size:var(--display-xs);color:color-mix(in srgb, var(--add-text) 55%, transparent)}
#entry-field{position:relative}
#suggestions{list-style:none;position:absolute;left:0;right:0;top:calc(100% + .2rem);z-index:20;margin:0;padding:0;max-height:13rem;overflow:auto;
  border-radius:var(--radius);border:var(--border-sm);background:var(--add-surface);box-shadow:var(--shadow)}
#suggestions:empty{border:none;box-shadow:none}
#suggestions li{padding:.55rem .75rem;border-bottom:.0625rem solid color-mix(in srgb, var(--add-text) 16%, transparent);cursor:pointer;font-weight:700}
#suggestions li:last-child{border-bottom:none}
#suggestions li[aria-selected="true"]{background:color-mix(in srgb, var(--add-yellow) 35%, transparent)}
#suggestions li small{color:color-mix(in srgb, var(--add-text) 55%, transparent);margin-left:.4rem;font-weight:400}
#rv-list .chip.more{border-style:dashed;color:color-mix(in srgb, var(--add-text) 60%, transparent)}
@media (min-width:40rem){ #ask{font-size:var(--text-sm)} }
