/* Water Polo Game Finder & What-If — P1S1V37 stylesheet
   (extracted verbatim from V35's inline <style> block) */

:root{
  --bg:#06384b; --card:#fff; --ink:#0c2733; --muted:#5f7d8c; --line:#e2ebef;
  --accent:#0a9396; --accent2:#06b6d4; --gold:#e9b949; --win:#118c4f; --loss:#c0413b;
  --chip:#eef5f8; --hl:#fff7e0; --warn:#b9750a;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:linear-gradient(180deg,#06384b,#0a4d68) fixed;color:var(--ink);font-size:15px;line-height:1.45;
  -webkit-font-smoothing:antialiased;}
.app{max-width:540px;margin:0 auto;min-height:100vh;background:#f1f6f8;}
header{background:linear-gradient(135deg,#0a4d68,#0a9396);color:#fff;padding:14px 16px 12px;position:sticky;top:0;z-index:40;}
header .ttl{font-size:18px;font-weight:800;display:flex;align-items:center;gap:8px;}
header .sub{font-size:11.5px;opacity:.85;margin-top:2px;}
.selrow{display:flex;gap:8px;margin-top:10px;}
select,input,button{font-family:inherit;font-size:14px;}
select.hdr{flex:1;padding:8px 10px;border-radius:9px;border:none;background:rgba(255,255,255,.16);color:#fff;font-weight:600;}
select.hdr option{color:#0c2733;}
.btn-data{padding:8px 12px;border-radius:9px;border:none;background:rgba(255,255,255,.92);color:#0a4d68;font-weight:700;}
/* V264: status line flows left-to-right (status · synced age · broadcaster chip)
   and wraps instead of clipping on very narrow screens. */
.statusbar{font-size:11px;padding:7px 16px;background:#e7eff2;color:var(--muted);display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:0 2px;}
.statusbar.warn{background:#fbf0db;color:var(--warn);}
.statusbar.err{background:#fdeeed;color:var(--loss);}
.statusbar a{color:var(--accent);}
.statusbar #statusAge:not(:empty)::before{content:"·";color:var(--muted);margin:0 5px 0 3px;}
/* V266 — broadcaster as an INLINE chip, RIGHT-ALIGNED on the status line (logo + verb
   + ⓘ caveat + →). margin-left:auto pushes it to the right edge; the red logo carries
   the GOLS brand while the text uses the app's accent (link) colour, not red, so it
   reads as "a link" rather than an alert. .replay = quieter muted tone for completed. */
.bcast{display:inline-flex;align-items:center;gap:4px;margin-left:auto;text-decoration:none;color:var(--accent);font-weight:700;cursor:pointer;}
.bcast .bcast-logo{width:15px;height:15px;border-radius:3px;object-fit:cover;flex:0 0 auto;}
.bcast .bcast-arrow{color:var(--accent);}
.bcast.replay,.bcast.replay .bcast-arrow{color:var(--muted);}
.bcast-info-wrap{position:relative;display:inline-flex;align-items:center;}
.bcast-info{border:none;background:none;padding:0 1px;margin:0;color:var(--muted);font-size:12px;line-height:1;cursor:pointer;font-weight:400;}
.bcast-info:hover{color:var(--accent);}
.bcast-tip{display:none;position:absolute;top:160%;right:0;z-index:60;background:var(--ink);color:#fff;
  padding:5px 8px;border-radius:7px;font-size:11px;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px rgba(6,56,75,.25);}
.bcast-tip.open{display:block;}
.subselect{padding:8px 14px 0;}
select.full{width:100%;padding:9px 10px;border-radius:9px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-weight:600;}
/* V167: the age-group selector shares the team picker's accent language —
   the two controls a user MUST tap carry the same 2px teal outline. Scoped
   to .subselect so the Odds tab's "Day N onward" select.full is untouched. */
.divlab{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--accent);margin:0 2px 4px;}
.subselect select.full{padding:11px 38px 11px 12px;border-radius:12px;border:2px solid var(--accent);font-weight:700;font-size:15px;
  -webkit-appearance:none;appearance:none;
  background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230a9396' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;}
/* V167: attention state — gold (same family as the next-game highlight)
   until a team is picked; calms to teal once the user has settled in. */
.subselect.attn select.full{border-color:var(--gold);background-color:var(--hl);
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23b9750a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");}
.subselect.attn .divlab{color:var(--warn);}
.pickwrap{padding:10px 14px 4px;}
.pickbtn{width:100%;text-align:left;padding:12px 14px;border-radius:12px;border:2px solid var(--accent);background:#fff;
  font-size:15px;font-weight:700;color:var(--ink);display:flex;justify-content:space-between;align-items:center;}
.pickbtn .ph{color:var(--muted);font-weight:600;}
.pickbtn .seed{font-size:11px;background:var(--chip);color:var(--muted);padding:2px 8px;border-radius:20px;font-weight:700;}
.tabs{display:flex;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;margin-top:10px;}
.tab{flex:1;text-align:center;padding:11px 4px;font-size:12.5px;font-weight:700;color:var(--muted);
  border:none;border-bottom:3px solid transparent;background:none;}
.tab.on{color:var(--accent);border-bottom-color:var(--accent);}
main{padding:14px 14px 90px;}
.card{background:var(--card);border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 1px 3px rgba(6,56,75,.07);}
.card h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--accent);}
.empty{text-align:center;color:var(--muted);padding:36px 16px;font-size:14px;}
.empty .big{font-size:34px;margin-bottom:8px;}
.g{border:1px solid var(--line);border-radius:12px;padding:10px 11px;margin-bottom:9px;background:#fff;}
.g.next{border-color:var(--gold);background:var(--hl);box-shadow:0 0 0 2px rgba(233,185,73,.25);}
.g.changed{border-color:var(--accent2);background:#ecfbfd;}
.g .ghead{display:flex;justify-content:space-between;align-items:center;font-size:10.5px;color:var(--muted);font-weight:600;margin-bottom:7px;}
.badge{background:var(--chip);color:var(--muted);padding:2px 8px;border-radius:20px;font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.4px;}
.badge.nx{background:var(--gold);color:#5a4300;}
.badge.done{background:#e7f3ec;color:var(--win);}
.row{display:flex;align-items:center;justify-content:space-between;padding:4px 0;}
.row .nm{font-weight:700;font-size:14.5px;flex:1;padding-right:8px;}
.row .nm.tbd{color:var(--muted);font-weight:600;font-style:italic;}
.row .nm.me{color:var(--accent);}
.row .sc{font-size:17px;font-weight:800;min-width:28px;text-align:right;color:var(--muted);}
.row.w .sc,.row.w .nm{color:var(--win);}
.row.l .sc{color:var(--loss);}
.vs{font-size:10px;color:var(--muted);text-align:center;padding:1px 0;font-weight:700;}
.gloc{font-size:10.5px;color:var(--muted);margin-top:6px;display:flex;justify-content:space-between;}
.adv{font-size:10.5px;color:var(--accent);margin-top:3px;font-weight:600;}
.toggle{display:flex;gap:6px;margin-top:8px;}
.toggle button{flex:1;padding:7px;border-radius:8px;border:1.5px solid var(--line);background:#fff;font-weight:700;font-size:12px;color:var(--muted);}
.toggle button.win{border-color:var(--win);color:var(--win);background:#eafaf0;}
.toggle button.loss{border-color:var(--loss);color:var(--loss);background:#fdeeed;}
.stats{display:flex;gap:8px;}
.stat{flex:1;background:var(--chip);border-radius:10px;padding:9px 6px;text-align:center;}
.stat .v{font-size:20px;font-weight:800;}
.stat .v.win{color:var(--win);} .stat .v.gold{color:#b8860b;}
.stat .k{font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:700;margin-top:2px;}
.banner{background:linear-gradient(135deg,#0a9396,#06b6d4);color:#fff;border-radius:14px;padding:13px 14px;margin-bottom:12px;}
.banner .lab{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;opacity:.85;font-weight:700;}
.banner .big{font-size:19px;font-weight:800;margin-top:2px;}
.banner .small{font-size:12px;opacity:.92;margin-top:3px;}
.banner.gold{background:linear-gradient(135deg,#e9b949,#d98e04);}
/* V167: routine "confirm" link on the next-game banner — calm, not a warning. */
.banner .confirm{margin-top:8px;font-size:11px;}
.banner .confirm a{color:#fff;opacity:.92;font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.note{font-size:11.5px;color:var(--muted);background:var(--chip);border-radius:9px;padding:9px 11px;margin-bottom:10px;}
.resetbtn{width:100%;padding:10px;border-radius:10px;border:1.5px solid var(--loss);background:#fff;color:var(--loss);font-weight:700;font-size:13px;margin-top:4px;}
.runbtn{width:100%;padding:13px;border-radius:11px;border:none;background:var(--accent);color:#fff;font-weight:800;font-size:15px;}
.runbtn:disabled{opacity:.5;}
label.fld{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:10px 0 4px;}
.bar{display:flex;align-items:center;gap:8px;margin:5px 0;}
.bar .bl{font-size:11px;width:78px;color:var(--muted);font-weight:700;flex-shrink:0;}
.bar .bt{flex:1;background:var(--chip);border-radius:6px;height:18px;overflow:hidden;}
.bar .bf{height:100%;background:linear-gradient(90deg,#0a9396,#06b6d4);border-radius:6px;}
.bar .bv{font-size:11px;width:42px;text-align:right;font-weight:800;flex-shrink:0;}
.slider{margin:9px 0;}
.slider .sh{display:flex;justify-content:space-between;font-size:12px;font-weight:700;margin-bottom:2px;}
.slider .sh .pct{color:var(--accent);}
input[type=range]{width:100%;accent-color:var(--accent);}
.modal{position:fixed;inset:0;background:rgba(6,40,51,.6);z-index:100;display:none;}
.modal.on{display:block;}
.sheet{position:absolute;inset:0;background:#f1f6f8;max-width:540px;margin:0 auto;display:flex;flex-direction:column;}
.sheet .sh{padding:14px;background:#0a4d68;color:#fff;display:flex;gap:8px;align-items:center;}
.sheet .sh input{flex:1;padding:10px 12px;border-radius:9px;border:none;font-size:15px;}
.sheet .sh .x{background:none;border:none;color:#fff;font-size:22px;font-weight:700;padding:0 4px;}
.sheet .lst{overflow-y:auto;flex:1;padding:8px;}
.topt{width:100%;text-align:left;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:#fff;margin-bottom:6px;
  display:flex;justify-content:space-between;align-items:center;font-size:14.5px;font-weight:700;color:var(--ink);}
.topt .seed{font-size:10.5px;background:var(--chip);color:var(--muted);padding:2px 8px;border-radius:20px;font-weight:700;}
.topt .rec{font-size:11px;color:var(--muted);font-weight:600;}
footer{padding:16px 14px 26px;text-align:center;font-size:10.5px;color:#6f93a3;}
footer a{color:#0a9396;}
/* V106: kill-switch version in tiny muted text next to the P1S1V## stamp.
   Populated from JS at startup so the displayed value always matches the
   MIN_VERSION_CLIENT constant — no risk of HTML drifting out of sync. */
.minVer{font-size:9px;color:#a3bdc6;font-weight:600;margin-left:2px;letter-spacing:.3px;}
.spin{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sp 1s linear infinite;vertical-align:-2px;}
@keyframes sp{to{transform:rotate(360deg)}}
.pathstep{display:flex;gap:9px;margin-bottom:2px;}
.pathstep .dot{width:11px;height:11px;border-radius:50%;background:var(--accent);margin-top:5px;flex-shrink:0;position:relative;}
.pathstep .dot.l{background:var(--loss);}
.pathstep .dot::after{content:"";position:absolute;left:4px;top:11px;width:3px;height:26px;background:var(--line);}
.pathstep:last-child .dot::after{display:none;}
.pathstep .ptxt{font-size:12.5px;padding-bottom:9px;}
.loadwrap{text-align:center;padding:60px 20px;color:var(--muted);}
.loadwrap .spin2{width:30px;height:30px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;margin:0 auto 14px;animation:sp 1s linear infinite;}

/* V83: ⓘ info button + About modal */
header .ttl{justify-content:space-between;}
.info-btn{background:rgba(255,255,255,.16);color:#fff;border:none;width:30px;height:30px;border-radius:50%;
  font-size:16px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  line-height:1;padding:0;flex-shrink:0;}
.info-btn:hover,.info-btn:focus{background:rgba(255,255,255,.28);outline:none;}
/* V171: share button + fallback popover + toast */
.hdr-actions{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;}
.share-btn svg{display:block;}
.share-pop-back{position:fixed;inset:0;background:rgba(6,40,51,.45);z-index:60;display:flex;align-items:flex-end;justify-content:center;}
.share-pop{background:#fff;width:100%;max-width:540px;border-radius:16px 16px 0 0;padding:14px 16px 22px;box-shadow:0 -6px 24px rgba(0,0,0,.18);}
.share-pop h3{margin:4px 0 2px;font-size:16px;color:var(--ink);}
.share-pop p{margin:0 0 12px;font-size:12.5px;color:var(--muted);}
.share-row{display:flex;flex-wrap:wrap;gap:10px;}
.share-act{flex:1 1 calc(50% - 10px);min-width:120px;display:flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 10px;border-radius:11px;border:1.5px solid var(--line);background:var(--chip);color:var(--ink);
  font-weight:700;font-size:13.5px;cursor:pointer;text-decoration:none;}
.share-act:hover,.share-act:focus{border-color:var(--accent);outline:none;}
.share-act.copy{flex-basis:100%;background:var(--accent);border-color:var(--accent);color:#fff;}
.share-pop .x{margin-left:auto;}
.share-pop .sh{display:flex;align-items:center;margin-bottom:8px;}
.share-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:70;
  background:var(--ink);color:#fff;padding:10px 16px;border-radius:22px;font-size:13px;font-weight:600;
  box-shadow:0 4px 16px rgba(0,0,0,.28);opacity:0;transition:opacity .18s;}
.share-toast.on{opacity:1;}
.about-sheet{max-height:88vh;}
.about-title{font-weight:800;font-size:16px;color:var(--ink);}
.about-body{padding:14px 18px 22px;overflow-y:auto;max-height:calc(88vh - 60px);}
.about-body h4{margin:18px 0 6px;font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--accent);font-weight:800;}
.about-body h4:first-child{margin-top:4px;}
.about-body p{margin:0 0 10px;font-size:13.5px;line-height:1.5;color:var(--ink);}
.about-body p.muted{color:var(--muted);font-size:12.5px;}
.about-body ul{margin:6px 0 10px;padding-left:18px;font-size:13px;line-height:1.55;color:var(--ink);}
.about-body ul li{margin-bottom:3px;}
.about-body a{color:var(--accent);font-weight:600;}
.about-body .pill-list{list-style:none;padding:0;margin:8px 0 10px;display:flex;flex-direction:column;gap:4px;}
.about-body .pill-list li{background:var(--chip);border-radius:8px;padding:7px 10px;font-size:12.5px;color:var(--ink);
  display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:0;}
.about-body .pill-list .live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--win);margin-right:6px;vertical-align:1px;}
.about-body .pill-list .meta{color:var(--muted);font-size:11px;font-weight:600;text-align:right;}
.about-body details{margin:0;border-top:1px solid var(--line);}
.about-body details:first-of-type{border-top:none;}
.about-body details summary{font-weight:800;font-size:13px;color:var(--ink);cursor:pointer;padding:14px 4px;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:10px;}
.about-body details summary:hover{color:var(--accent);}
.about-body details summary::-webkit-details-marker{display:none;}
.about-body details summary::after{content:"+";color:var(--accent);font-size:20px;font-weight:700;line-height:1;}
.about-body details[open] summary::after{content:"−";}
.about-body details[open] summary{color:var(--accent);}
.about-body details > div{padding:0 4px 14px;}
.about-body details > div > *:first-child{margin-top:0;}
.about-body details > div > *:last-child{margin-bottom:0;}

/* V84: bug-report form */
.fb-ctx{background:var(--chip);border-radius:9px;padding:9px 12px;margin:8px 0 12px;font-size:12px;}
.fb-ctx > div{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:2px 0;}
.fb-ctx > div span{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:700;font-size:10.5px;flex-shrink:0;}
.fb-ctx > div b{color:var(--ink);font-size:12.5px;font-weight:700;text-align:right;}
.fb-input{width:100%;padding:9px 11px;border-radius:9px;border:1.5px solid var(--line);background:#fff;
  color:var(--ink);font-family:inherit;font-size:13.5px;margin-bottom:4px;line-height:1.45;}
textarea.fb-input{resize:vertical;min-height:80px;}
.fb-input:focus{outline:none;border-color:var(--accent);}
.fb-check{display:flex;align-items:center;gap:8px;margin:10px 0 4px;font-size:12.5px;color:var(--ink);cursor:pointer;}
.fb-check input[type="checkbox"]{width:16px;height:16px;flex-shrink:0;accent-color:var(--accent);}
.fb-result{margin-top:10px;font-size:12.5px;line-height:1.45;}
.fb-result.ok{color:var(--win);background:#eafaf0;border-radius:9px;padding:9px 11px;}
.fb-result.err{color:var(--loss);background:#fdeeed;border-radius:9px;padding:9px 11px;}

/* V93: slot chip — interactive dropdown showing candidate teams + odds for
   genuinely-uncertain bracket slots ("Winner of Game 15 · Stanford A 62% ▾").
   Tap toggles a small popover with the full distribution. Flat-on-collapse
   (single candidate / ≥99.9% determinate) is handled by the slotChip JS,
   which returns plain text spans instead. Bold-on-you highlights the user's
   selected team in both the trigger and the popover rows. */
.slotchip{display:inline-block;position:relative;font-style:normal;}
.slotchip-btn{
  background:var(--chip);border:1px solid var(--line);border-radius:8px;
  padding:3px 8px;font:inherit;font-size:0.92em;color:var(--ink);
  cursor:pointer;line-height:1.3;text-align:left;font-weight:600;font-style:normal;
  -webkit-tap-highlight-color:rgba(10,147,150,.12);
  touch-action:manipulation;  /* V94: skip iOS 300ms double-tap delay so first tap registers */
}
.slotchip-btn:active{background:#e2eef2;}
.slotchip-lab{color:var(--muted);font-weight:500;font-style:normal;}
.slotchip-team{color:var(--ink);font-weight:700;margin:0 1px;font-style:normal;}
.slotchip-team.me{color:var(--accent);}
.slotchip-pct{color:var(--muted);font-weight:600;font-style:normal;}
.slotchip-chev{color:var(--muted);margin-left:3px;font-size:0.8em;display:inline-block;transition:transform .15s;font-style:normal;}
.slotchip.open .slotchip-chev{transform:rotate(180deg);}
.slotchip-pop{
  display:none;position:absolute;top:100%;left:0;min-width:200px;max-width:280px;
  background:#fff;border:1px solid var(--line);border-radius:10px;
  box-shadow:0 6px 20px rgba(6,56,75,.18);padding:4px;z-index:50;margin-top:4px;
  font-style:normal;
}
.slotchip.open .slotchip-pop{display:block;}
.slotchip-row{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:8px 10px;font-size:13px;font-weight:600;color:var(--ink);
  border-radius:6px;line-height:1.3;font-style:normal;cursor:pointer;
  -webkit-tap-highlight-color:rgba(10,147,150,.12);
  touch-action:manipulation;
}
.slotchip-row:active{background:#eaf3f5;}
.slotchip-row.me{background:var(--hl);color:var(--accent);font-weight:800;}
.slotchip-row.picked{box-shadow:inset 3px 0 0 var(--accent);background:#eef9fa;}
.slotchip-row.picked.me{background:var(--hl);}
.slotchip-row + .slotchip-row{margin-top:2px;}
.slotchip-rowteam{flex:1;text-align:left;}
.slotchip-rowp{color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums;}
.slotchip-row.me .slotchip-rowp{color:var(--accent);}
/* On the banner ("vs Winner of Game 15..."), the chip background looked
   busy on the gradient banner. Reset background + border in that context. */
.banner .slotchip-btn{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.3);color:#fff;}
.banner .slotchip-lab{color:rgba(255,255,255,.78);}
.banner .slotchip-team{color:#fff;}
.banner .slotchip-team.me{color:#fff7e0;}
.banner .slotchip-pct,.banner .slotchip-chev{color:rgba(255,255,255,.78);}
/* Right side of "vs" inside .row .nm slot — the chip fits inline cleanly. */
.row .nm .slotchip-btn{font-size:13.5px;padding:2px 7px;}

/* V104: kill-switch update toast. Sits at the very top of the viewport
   above the header. Lives only when MIN_VERSION_CLIENT differs from the
   Firestore-stored requiredVersion; auto-dismisses on reload. */
.wp-update-toast{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:var(--accent);color:#fff;
  text-align:center;padding:10px 16px;
  font-weight:700;font-size:13.5px;line-height:1.4;
  box-shadow:0 2px 8px rgba(6,56,75,.25);
  display:flex;justify-content:center;align-items:center;gap:12px;
  animation:wp-update-slidedown .3s ease-out;
}
.wp-update-toast-msg{flex:1;}
.wp-update-toast-btn{
  background:#fff;color:var(--accent);border:none;border-radius:6px;
  padding:5px 11px;font-weight:700;font-size:13px;cursor:pointer;
  touch-action:manipulation;-webkit-tap-highlight-color:rgba(0,0,0,.1);
}
@keyframes wp-update-slidedown{from{transform:translateY(-100%);}to{transform:translateY(0);}}

/* V160: seed-projected (most-likely) steps in the What-If path */
.pathstep.proj .ptxt{opacity:.82;}
.pathstep.proj .dot{background:transparent;border:2px solid var(--accent);box-sizing:border-box;}
.projlbl{color:var(--accent);font-weight:700;}
.projtag{color:var(--muted);font-size:11px;}

/* V162: pool-finish picker + opponent dropdown in What-If */
.pickrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.pickbtn{flex:1 1 auto;min-width:74px;padding:9px 10px;border:1.5px solid var(--line);border-radius:10px;background:#fff;font-weight:700;color:var(--ink);cursor:pointer;font-size:13px;}
.pickbtn .po{font-weight:600;color:var(--muted);font-size:11px;}
.pickbtn.on{border-color:var(--accent);background:var(--chip);color:var(--accent);}
.oppsel{max-width:220px;font-size:12px;padding:3px 6px;border:1.5px solid var(--accent);border-radius:8px;background:#fff;color:var(--accent);font-weight:700;}

/* V172: QA build badge (only injected when window.WP_QA is set) */
.qa-badge{position:fixed;top:0;left:0;z-index:90;background:var(--warn,#b9750a);color:#fff;
  font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  padding:4px 10px;border-radius:0 0 10px 0;box-shadow:0 2px 8px rgba(0,0,0,.25);pointer-events:none;}

/* ==================== P1S2V210 — My Teams (favorites) ==================== */
.info-btn.mt-btn{font-size:16px;line-height:1;color:rgba(255,255,255,.5);}
.info-btn.mt-btn.has-fav{color:var(--gold);}
.topt-row{display:flex;align-items:center;gap:2px;}
.topt-row .topt{flex:1;}
.fav-star{background:none;border:none;font-size:20px;color:var(--muted);cursor:pointer;padding:6px 9px;flex:0 0 auto;line-height:1;}
.fav-star.on{color:var(--gold);}
.mt-manage{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px 8px;}
.mt-chip{display:inline-flex;align-items:center;gap:5px;background:var(--chip);border-radius:14px;padding:5px 10px;font-size:13px;cursor:pointer;}
.mt-chip .mt-div{color:var(--muted);font-size:11px;}
.mt-chip .mt-x{color:var(--muted);font-weight:700;padding:0 2px;font-size:15px;}
.mt-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 auto;}
.mt-overlap{margin:8px 16px;background:var(--hl);border:1px solid var(--gold);border-radius:10px;padding:9px 12px;font-size:13px;color:var(--warn);font-weight:600;line-height:1.4;}
.mt-daylabel{margin:12px 16px 4px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;}
.mt-game{display:block;width:calc(100% - 24px);margin:0 12px 6px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 12px;cursor:pointer;font-family:inherit;}
.mt-game .mt-when{font-size:11px;color:var(--muted);}
.mt-game .mt-match{font-size:14px;color:var(--ink);}
.mt-game .mt-div{color:var(--muted);font-size:11px;}
.mt-game .mt-score{font-weight:700;}
.mt-game .mt-score.win{color:var(--win);}
.mt-game .mt-score.loss{color:var(--loss);}
.mt-game .mt-score.tie{color:var(--muted);}
.mt-note{margin:10px 16px 4px;font-size:11px;color:var(--muted);line-height:1.5;}

/* ==================== P1S2V237 — game-card tap features + cap pills ==================== */
.gloc-link{color:inherit;text-decoration:underline;text-decoration-style:dotted;text-decoration-color:rgba(95,125,140,.45);text-underline-offset:2px;}
.gloc-link:hover{text-decoration-style:solid;}
.row .nm.nm-tap{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-decoration-color:rgba(10,147,150,.45);text-underline-offset:3px;}
.cap-pill{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:10px;font-weight:800;line-height:1;flex:0 0 auto;margin-right:6px;vertical-align:-2px;}
.cap-pill.cap-white{background:#fff;border:1px solid var(--line);color:var(--ink);}
.cap-pill.cap-dark{background:#0a4d68;color:#fff;}
/* P1S2V247: Standings tab — division-wide final-placement ranking rows */
.rankrow{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 11px;margin:5px 0;font:inherit;cursor:pointer;}
.rankrow:active{background:#f1f6f7;}
.rankrow .pl{flex:0 0 auto;min-width:40px;font-weight:800;color:var(--ink);font-size:14px;}
.rankrow .tm{flex:1 1 auto;min-width:0;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rankrow .tm .sd{font-weight:700;color:var(--muted);font-size:11px;}
.rankrow .rr{flex:0 0 auto;display:flex;align-items:center;gap:9px;}
.rankrow .rec{font-weight:800;color:var(--muted);font-size:13px;}
.rankrow .delta{font-weight:800;font-size:12px;min-width:26px;text-align:right;}
.rankrow .delta.up{color:var(--win);}
.rankrow .delta.down{color:var(--loss);}
.rankrow .delta.even{color:#9aabb1;}
.rank-sub{font-weight:800;color:var(--muted);font-size:11px;margin:14px 2px 5px;text-transform:uppercase;letter-spacing:.5px;}
/* P1S2V248: wider place cell for ranges ("13–20"); projected rows are muted */
.rankrow .pl{min-width:48px;}
.rankrow.proj .pl{color:var(--muted);font-weight:700;}
.rankrow.proj{border-style:dashed;}
/* P1S2V248: Seed ⇄ Finish segmented toggle in the Teams tab */
.segtoggle{display:flex;gap:0;background:#eef3f5;border:1px solid var(--line);border-radius:11px;padding:3px;margin:2px 0 10px;}
.segbtn{flex:1;text-align:center;padding:8px 10px;border:none;background:none;border-radius:8px;font:inherit;font-weight:800;font-size:13px;color:var(--muted);cursor:pointer;}
.segbtn.on{background:#fff;color:var(--accent);box-shadow:0 1px 3px rgba(6,56,75,.12);}
/* P1S2V252: metal-tier section dividers in the Finish ranking */
.rank-sub.tier-hd{display:flex;align-items:center;color:var(--ink);font-size:12px;border-top:1px solid var(--line);padding-top:11px;margin:16px 2px 6px;}
.rank-sub.tier-hd:first-child{border-top:none;padding-top:0;margin-top:2px;}
.tier-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);}
.tier-pt{background:#8fb8ca;} .tier-au{background:#e2b53c;} .tier-ag{background:#aab6bd;} .tier-bz{background:#b06a3a;} .tier-cu{background:#cf7d43;} .tier-ni{background:#cdd5d8;}
