/* True Play FootBall styles */
:root{
  /* Layout: press-box console, midnight on true black. Touch scoreboard on top, player entry and on-air notes below, field strip at the bottom. Neutral black surfaces so the one blue only ever means "selected" or "go". */
  --bg:#000000; --panel:#0B0E14; --panel-2:#000000; --raise:#1A1E27; --ink:#F2F4F8; --muted:#98A2B3; --line:#2B3242;
  --accent:#2F6FEB; --accent-ink:#FFFFFF; --accent-text:#7AB0FF; --accent-line:#4D8DFF;
  --alert:#F87171; --alert-ink:#220707; --chain:#FBBF24; --chain-ink:#231600;
  --board:#000000; --board-2:#141924; --board-ink:#F5F7FB; --board-dim:#98A2B3; --bulb:#7AB0FF; --score:#FFFFFF;
  --turf:#0E1E38; --turf-2:#0C1A31; --chalk:#DCE6F5; --fdl:#FACC15; --los:#7AB0FF; --leather:#B7793F;
  --display:"Big Shoulders Display","Arial Narrow","Roboto Condensed",Impact,sans-serif;
  --body:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r:10px;
  color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.45 var(--body);-webkit-text-size-adjust:100%}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--board)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{opacity:.45;cursor:default}
:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
.wrap{max-width:1280px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

/* Scoreboard */
.board{background:var(--board);color:var(--board-ink);border-bottom:1px solid var(--line)}
.board-in{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px 14px;padding-block:10px 10px}
.tm{display:flex;align-items:center;gap:10px;min-width:0}
.tm.home{flex-direction:row-reverse}
.tm .tid{min-width:0}
.tm.home .tid{text-align:right}
.tm .score{margin-left:auto}
.tm.home .score{margin-left:0;margin-right:auto}
.sw{display:inline-block;width:6px;height:40px;border-radius:2px;background:var(--tc);flex:none}
.sw.sm{height:18px;width:5px}
.ab{font:800 24px/1 var(--display);letter-spacing:.04em;white-space:nowrap;display:flex;align-items:center;gap:6px}
.tm.home .ab{justify-content:flex-end}
.tos{display:flex;gap:3px;margin-top:6px}
.tm.home .tos{justify-content:flex-end}
.pip{display:block;width:12px;height:4px;border-radius:2px;background:var(--board-2)}
.pip.on{background:var(--bulb)}
.score{font:800 50px/1 var(--display);color:var(--bulb);font-variant-numeric:tabular-nums;min-width:1.2em;text-align:center}
.mid{text-align:center}
.qtr{font:700 14px/1 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--board-dim)}
.clk{font:800 28px/1.1 var(--display);font-variant-numeric:tabular-nums;margin-top:4px}
.sit{grid-column:1/-1;display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:4px 12px;border-top:1px solid var(--board-2);padding-top:8px;font:700 22px/1.1 var(--display);letter-spacing:.04em;text-transform:uppercase;text-align:center}
.sit .dd{color:var(--bulb)}
.sit .drv{font:500 13px/1.3 var(--body);color:var(--board-dim);text-transform:none;letter-spacing:0}
.fb{width:22px;height:13px;flex:none}
.fb ellipse{fill:var(--leather);stroke:var(--chalk);stroke-width:1}
.fb path{stroke:var(--chalk);stroke-width:1;fill:none}

/* Touch scoreboard */
.board .board-in{display:flex;flex-direction:column;gap:12px;max-width:820px;padding-block:14px 14px}
.board .lbl{color:var(--board-dim);margin:0;display:flex;align-items:center;gap:5px;justify-content:center}
.sb-top{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px}
.sb-team{display:flex;flex-direction:column;gap:6px;min-width:0}
.sb-team.home{align-items:flex-end}
.sb-name{display:flex;align-items:center;gap:7px;max-width:100%;font:700 16px/1.1 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--board-dim)}
.sb-name .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.sb-team.home .sb-name{flex-direction:row-reverse}
.sb-sc{display:flex;align-items:center;gap:12px}
.sb-team.home .sb-sc{flex-direction:row-reverse}
.sb-score{font:800 66px/.95 var(--display);color:var(--score);font-variant-numeric:tabular-nums}
.dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--board-dim);flex:none;opacity:.6}
.dot.on{background:var(--bulb);border-color:var(--bulb);opacity:1}
.sb-q{display:flex;flex-direction:column;border:1px solid var(--board-2);border-radius:12px;overflow:hidden;width:112px}
.sb-qbtn{border:0;border-bottom:1px solid var(--line);background:var(--board-2);color:var(--board-ink);padding:8px 6px 6px;display:flex;flex-direction:column;align-items:center;gap:3px}
.sb-qbtn .qv{font:800 44px/1 var(--display);font-variant-numeric:tabular-nums}
.sb-qbtn .qv.sm{font-size:30px;line-height:44px}
.sb-qbtn .qhint{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--board-dim)}
.sb-qbtn:active{background:var(--board)}
.sb-clock{border:0;background:transparent;color:var(--board-ink);text-align:center;font:700 22px/1 ui-monospace,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;padding:8px 4px;width:100%;min-height:42px}
.sb-clock:focus{outline:2px solid var(--bulb);outline-offset:-2px}
.sb-to{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tol{display:flex;flex-direction:column;align-items:center;gap:4px}
.tolrow{display:flex;align-items:center;gap:16px}
.tolrow button{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--raise);color:var(--board-ink);font:600 28px/1 var(--body)}
.tolrow button:active{background:var(--board-2)}
.tolrow .tv{font:800 36px/1 var(--display);color:var(--score);font-variant-numeric:tabular-nums;min-width:2.2em;text-align:center}
.tolrow .tv small{font-size:17px;color:var(--board-dim);font-weight:700}
.sb-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--board-2);border-radius:12px;overflow:hidden}
.tile{border:0;border-right:1px solid var(--line);background:transparent;color:var(--board-ink);padding:12px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.tile:last-child{border-right:0}
.tile.dd{background:var(--board-2);box-shadow:inset 0 -3px 0 var(--accent-line)}
.tile .tv{font:800 24px/1.05 var(--display);letter-spacing:.03em;text-transform:uppercase;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile.dd .tv{color:var(--bulb)}
.tile .tv{white-space:normal;overflow-wrap:normal;text-overflow:clip}
.tile .tv.mid{font-size:19px}
.tile .tv.long{font-size:16px}
.pen{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.sb-drive{margin:0;text-align:center;font-size:13px;color:var(--board-dim)}
@media (max-width:520px){.sb-score{font-size:54px}.sb-q{width:98px}.tile .tv{font-size:20px}.tolrow{gap:10px}.tolrow .tv{font-size:30px}}
.fieldsec{justify-items:center;align-items:center}
.fieldsec .h{text-align:center}
.fieldsec #fieldWrap{width:100%;max-width:820px;margin:0 auto}

.sb-main{display:flex;flex-direction:column;gap:12px;min-width:0}
.sb-field{display:none}
@media (min-width:1180px){
  .board .board-in{max-width:1640px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,780px);gap:28px;align-items:center}
  .sb-field{display:block;min-width:0;order:-1}
}

/* Nav and banner */
.nav{background:var(--bg);border-bottom:1px solid var(--line)}
.nav-in{display:flex;gap:2px;overflow-x:auto}
.nav button{border:0;background:none;padding:12px 12px 10px;font:700 17px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}
.nav button[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent-line)}
.nav .nav-undo{margin-left:auto;padding-left:24px;font-size:14px;color:var(--chain)}
.nav .nav-restart{padding-left:16px;font-size:14px;color:var(--alert);opacity:.85}
.banner{background:var(--panel-2);border-bottom:1px solid var(--line)}
.banner-in{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;padding-block:10px}
.banner p{margin:0;max-width:62ch}

/* Main */
.main{padding-block:16px 110px}
.ggrid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"mid" "left" "right" "field";gap:20px;align-items:start}
.gleft{grid-area:left}.gmid{grid-area:mid}.gright{grid-area:right}.fieldsec{grid-area:field}
@media (min-width:1000px){.ggrid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-areas:"mid right" "left right" "field field"}}
@media (min-width:1180px){.main.wrap{max-width:1640px}.ggrid{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr);grid-template-areas:"left mid right"}.ggrid .fieldsec{display:none}}
/* Drive panel and drive chart */
.dv{display:flex;flex-direction:column;gap:12px}
.dv-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:800 18px/1.1 var(--display);letter-spacing:.04em;text-transform:uppercase}
.dv-h .tag{margin-left:auto}
.dv-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dv-stats b{display:block;font:800 24px/1.1 var(--display);font-variant-numeric:tabular-nums}
.dv-stats small{display:block;color:var(--muted);font-size:12px}
.dv-span{display:flex;flex-direction:column;gap:4px;font-size:14px}
.dv-span > div{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.dv-span .lbl{display:inline;margin:0;min-width:40px}
.pl-gain{grid-column:2;grid-row:1/span 3;align-self:center;font:800 20px/1 var(--display);color:var(--accent-text);font-variant-numeric:tabular-nums}
.pl-gain.neg{color:var(--alert)}
.dlist{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.dtext{display:flex;flex-direction:column;gap:5px;border:0;background:var(--panel);color:var(--ink);text-align:left;padding:11px 14px;width:100%}
.dtext.on{background:var(--raise);box-shadow:inset 3px 0 0 var(--accent-line)}
.dt-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dt-top b{font:800 17px/1 var(--display);letter-spacing:.05em}
.dt-when{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.dt-top .tag{margin-left:auto}
.dt-line{font-size:14px;line-height:1.4;color:var(--ink)}
.dchart{display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:10px}
.dhead,.drow{display:grid;grid-template-columns:52px minmax(0,1fr) 96px;gap:8px;align-items:center}
.dhead{padding:0 6px 4px}
.dends{display:flex;justify-content:space-between;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.drow{border:1px solid transparent;background:none;border-radius:8px;padding:7px 6px;text-align:left;color:var(--ink);width:100%}
.drow.on{border-color:var(--accent-line);background:var(--raise)}
.dteam{display:flex;align-items:center;gap:6px;min-width:0;font:800 14px/1 var(--display);letter-spacing:.04em;overflow:hidden;white-space:nowrap}
.dteam::before{content:"";width:4px;height:18px;border-radius:2px;background:var(--tc);flex:none}
.dbar{position:relative;height:18px}
.dtrack{position:absolute;left:0;right:0;top:6px;height:6px;border-radius:3px;background:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px var(--step)) var(--raise)}
.dseg{position:absolute;top:4px;height:10px;border-radius:5px;background:var(--tc);outline:1px solid var(--chalk);outline-offset:-1px}
.dseg::after{content:"";position:absolute;top:-2px;width:14px;height:14px;border-radius:50%;background:var(--chalk)}
.dseg.r::after{right:-5px}
.dseg.l::after{left:-5px}
.dres{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.dres small{font-size:11px;color:var(--muted);white-space:nowrap}
.gcol{display:flex;flex-direction:column;gap:16px;min-width:0}
.sec{display:flex;flex-direction:column;gap:10px;min-width:0}
.h{margin:0;font:700 16px/1.1 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.pad{padding:16px;display:flex;flex-direction:column;gap:12px}
.empty{color:var(--muted);margin:0}

/* Field */
.fieldcard{border-radius:var(--r);overflow:hidden;background:var(--turf);box-shadow:0 1px 0 var(--line)}
.fieldsvg{display:block;width:100%;height:auto;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.fieldsvg.tap{cursor:crosshair}
.t1{fill:var(--turf)} .t2{fill:var(--turf-2)}
.yl{stroke:var(--chalk);stroke-width:.22;opacity:.6}
.yl.mj{stroke-width:.36;opacity:.9}
.yl.gl{stroke-width:.7;opacity:1}
.tick{stroke:var(--chalk);stroke-width:.18;opacity:.55}
.fnum{font-family:var(--display);font-weight:700;font-size:3.8px;fill:var(--chalk);text-anchor:middle;opacity:.85}
.ez{font-family:var(--display);font-weight:800;font-size:5.2px;text-anchor:middle;dominant-baseline:central;letter-spacing:.4px}
.los{stroke:var(--los);stroke-width:.75}
.fdl{stroke:var(--fdl);stroke-width:.9}
.ball{fill:var(--leather);stroke:var(--chalk);stroke-width:.3}
.arrow{fill:var(--chalk);opacity:.9}
.tee{fill:var(--bulb)}
.gh line{stroke:var(--chalk);stroke-width:.45;stroke-dasharray:1 .8}
.gh ellipse{fill:none;stroke:var(--chalk);stroke-width:.4}
.fhint{font-size:13px;color:var(--muted);margin:6px 2px 0}

/* Entry */
.entry{padding:0;overflow:hidden}
.ehead{display:flex;align-items:stretch;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.ptabs{display:flex;overflow-x:auto;min-width:0}
.ptabs button{border:0;background:none;padding:14px 12px 11px;font:800 18px/1 var(--display);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}
.ptabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.etitle{padding:13px 16px 10px;font:800 19px/1.1 var(--display);letter-spacing:.07em;text-transform:uppercase}
.clock{display:flex;align-items:center;gap:6px;padding:6px 10px;flex:none}
.clock span{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.clock input{width:4.6em;min-height:38px;font-size:17px;text-align:center}
.editing{padding:10px 16px;background:var(--chain);color:var(--chain-ink);font-weight:600;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ebody{padding:16px;display:flex;flex-direction:column;gap:14px}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px 14px}
.fld{min-width:0}
.fld.wide{grid-column:1/-1}
.fld>label,.lbl{display:block;font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.in{width:100%;min-height:46px;font-size:19px;font-weight:600;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--ink)}
.in:focus{outline:2px solid var(--accent-line);outline-offset:0;background:var(--panel)}
.in:disabled{opacity:.5}
select.in{font-size:16px}
.ta{font-size:16px;font-weight:500;line-height:1.5;resize:vertical;min-height:150px}
.in.color{padding:4px;height:46px}
.numrow,.ydrow{display:flex;align-items:center;gap:6px;min-width:0}
.ydrow .in{min-width:0;flex:1}
.hash{font:700 22px var(--display);color:var(--muted)}
.who{min-height:18px;font-size:13px;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.who.miss{color:var(--alert)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.chip{display:inline-flex;align-items:baseline;gap:5px;min-height:34px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--raise);font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}
.chip small{font-weight:500;font-size:12px;color:var(--muted)}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel-2);max-width:100%}
.seg button{min-height:44px;padding:0 14px;border:0;border-right:1px solid var(--line);background:none;font-weight:600;font-size:15px;color:var(--muted)}
.seg button:last-child{border-right:0}
.seg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);font-weight:700;box-shadow:inset 0 0 0 2px var(--accent-line)}
.seg.sm{flex-wrap:nowrap;flex:none}
.seg.sm button{min-height:46px;padding:0 10px;font-size:14px}
.fld.yd2{grid-column:span 2}
.ydrow .in{min-width:3.5em}
.tog{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:9px;background:var(--raise);font-weight:600}
.tog::before{content:"";width:16px;height:16px;border-radius:4px;border:2px solid var(--muted)}
.tog[aria-pressed="true"]{border-color:var(--accent-line);background:var(--accent);color:var(--accent-ink)}
.tog[aria-pressed="true"]::before{background:var(--accent-ink);border-color:var(--accent-ink)}
.big{font:800 30px/46px var(--display);font-variant-numeric:tabular-nums}
.pv{margin:0 16px;padding:12px 14px;border-radius:8px;background:var(--panel-2);border:1px dashed var(--line);display:flex;flex-direction:column;gap:6px;min-height:58px}
.pv:empty{display:none}
.pv-d{font-weight:600}
.pv-n{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--muted)}
.eact{display:flex;gap:10px;padding:14px 16px 16px;flex-wrap:wrap;align-items:center}
.keys{font-size:12px;color:var(--muted);margin-left:auto;display:none}
@media (min-width:1000px) and (hover:hover){.keys{display:block}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:0 16px;border:1px solid var(--line);border-radius:9px;background:var(--raise);font-weight:600;font-size:15px;text-align:center}
.btn small{font-weight:500;color:var(--muted)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent;font:800 21px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;min-height:54px;padding:0 28px;flex:1 1 200px}
.btn.danger{background:var(--alert);color:var(--alert-ink);border-color:transparent}
.btn.sm{min-height:46px;padding:0 12px}
.link{border:0;background:none;padding:0;font-weight:700;text-decoration:underline;color:inherit}
.quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.final{padding:20px;display:flex;flex-direction:column;gap:12px}
.final .big{line-height:1.1}
details.more summary{cursor:pointer;font-weight:600;color:var(--muted);padding:4px 0}
details.more[open] summary{margin-bottom:10px}

/* Player-first entry */
.pgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.pbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:82px;padding:8px 4px;border:2px solid var(--accent-line);border-radius:10px;background:var(--panel-2);min-width:0}
.pbtn .pn{font:800 34px/1 var(--display);font-variant-numeric:tabular-nums;color:var(--accent-text)}
.pbtn .pname{font-weight:600;font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pbtn .ppos{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);min-height:14px}
.pbtn.bench{border-color:var(--line)}
.pbtn.bench .pn{color:var(--ink)}
.pbtn[aria-pressed="true"]{background:var(--accent);border-color:var(--accent)}
.pbtn[aria-pressed="true"] .pn,.pbtn[aria-pressed="true"] .pname,.pbtn[aria-pressed="true"] .ppos{color:var(--accent-ink)}
.pbtn.sm{min-height:66px}
.pbtn.sm .pn{font-size:26px}
.acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.acts button{min-height:72px;padding:0 6px;border:1px solid var(--line);border-radius:12px;background:var(--raise);font:800 clamp(17px,5vw,24px)/1.05 var(--display);letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere}
.acts button.go{background:var(--accent);color:var(--accent-ink);border-color:transparent}
.acts button.bad{border:2px solid var(--alert);color:var(--alert);background:var(--panel-2)}
.specials{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-line)}
.chip[aria-pressed="true"] small{color:inherit}
.chip.more{border-style:dashed;color:var(--muted);font-weight:600}
.morebtn{min-height:44px}
.stargrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.tgrp{display:flex;align-items:center;min-width:0}
.backbtn{margin-left:10px}
.ydrow .seg{flex-wrap:nowrap;flex:none}
.ygrow{margin-top:8px}
.ygrow .lbl{margin:0;white-space:nowrap}
.numrow.tk .in{max-width:7.5em}
.fld .chips + .numrow{margin-top:10px}
.spot .lbl b{color:var(--ink)}

/* Tags and play lists */
.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;padding:2px 7px;border-radius:4px;background:var(--panel-2);color:var(--muted);border:1px solid var(--line);white-space:nowrap}
.tag.fd{background:var(--chain);color:var(--chain-ink);border-color:transparent}
.tag.td{background:var(--accent);color:var(--accent-ink);border-color:transparent}
.tag.to{background:var(--alert);color:var(--alert-ink);border-color:transparent}
.plays{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.plays li{background:var(--panel);padding:10px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}
.pl-meta{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap}
.pl-d{grid-column:1;min-width:0}
.pl-tags{grid-column:1;display:flex;gap:6px;flex-wrap:wrap}
.pl-act{grid-column:2;grid-row:1/span 3;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.pl-act button{border:1px solid var(--line);background:var(--panel-2);border-radius:7px;min-height:34px;padding:0 10px;font-size:13px;font-weight:600}
.qhead{background:var(--panel-2)!important;font:700 14px/1 var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:9px 14px!important;display:block!important}

/* Notes and stats */
.notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.note{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;min-width:0}
.note-h{display:flex;align-items:center;gap:8px;font:800 18px/1.1 var(--display);letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}
.note-h .nsc{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--accent-text)}
.note dl{margin:0;display:flex;flex-direction:column;gap:6px}
.nr{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px}
.nr dt{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding-top:2px}
.nr dd{margin:0;min-width:0}
.nr dd b{display:block}
.nr dd span{color:var(--muted);font-variant-numeric:tabular-nums}
.tblw{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tbl th,.tbl td{padding:8px 10px;text-align:right;white-space:nowrap}
.tbl thead th{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.tbl tbody td,.tbl tbody th{border-top:1px solid var(--line)}
.tbl tbody tr:first-child td,.tbl tbody tr:first-child th{border-top:0}
.tbl th:first-child,.tbl td:first-child{text-align:left}
.cmp td{font-weight:700;font-size:16px;width:30%}
.cmp td:first-child{text-align:left}
.cmp td:last-child{text-align:right}
.cmp tbody th{text-align:center;font-weight:500;color:var(--muted);font-size:13px}
.cmp thead th{text-align:center}
.cmp thead th:first-child{text-align:left}
.cmp thead th:last-child{text-align:right}
.cmp .sub td,.cmp .sub th{font-size:13px;font-weight:500;color:var(--muted);padding-top:0}
.cmp .sub td,.cmp .sub th{border-top:0}
.scoring{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.scoring li{background:var(--panel);padding:10px 14px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px}
.sq{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);grid-row:span 2;padding-top:2px;min-width:64px}
.stx b{margin-right:6px}
.ssc{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.sgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
@media (min-width:1000px){.sgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.sgrid .span{grid-column:1/-1}}
.boxctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.stack{display:flex;flex-direction:column;gap:12px}
.actrow{display:flex;gap:10px;flex-wrap:wrap}

/* Setup */
.setup{display:flex;flex-direction:column;gap:18px;max-width:980px}
.setup h2{margin:0;font:800 30px/1.1 var(--display);letter-spacing:.03em;text-transform:uppercase}
.setup h3{margin:0;font:800 19px/1.1 var(--display);letter-spacing:.06em;text-transform:uppercase}
.teams{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.tc-h{display:flex;align-items:center;gap:10px}
.note-txt{margin:0;color:var(--muted);max-width:65ch}

/* Roster editor */
.roster{display:flex;flex-direction:column;gap:10px}
.rtoggle{width:100%;justify-content:flex-start;font-weight:700}
.rtoggle .rc{margin-left:auto;color:var(--muted);font-weight:600}
.rlist{display:flex;flex-direction:column;gap:6px}
.rhead,.rrow{display:grid;grid-template-columns:58px minmax(0,1fr) 96px 40px;gap:6px;align-items:center}
.rhead span{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.in.sm{min-height:42px;font-size:16px;padding:4px 8px}
.in.dup{border-color:var(--alert)}
.posbtn{min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--raise);font-weight:700;font-size:14px;padding:0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.posbtn.empty{color:var(--muted);font-weight:500;border-style:dashed}
.rdel{min-height:42px;border:0;background:none;font-size:26px;line-height:1;color:var(--muted)}
.posgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.pchip{justify-content:center;min-height:48px;font-size:16px}

.sq b{display:block;font:800 22px/1.1 var(--display);color:var(--ink);letter-spacing:.02em}
.big-in{font:800 36px/1 var(--display);text-align:center;letter-spacing:.04em;max-width:220px}
.sc-kind{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.slist{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.srow{background:var(--panel);padding:10px 12px;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between}
.sinfo{display:flex;gap:10px;align-items:center;min-width:0}
.sact{display:flex;gap:6px;flex-wrap:wrap}

.pgrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;border:0;background:var(--panel);color:var(--ink);text-align:left;padding:12px 14px;width:100%}
.pgrow:active{background:var(--raise)}
.pg-score{font:800 24px/1.1 var(--display);letter-spacing:.03em;font-variant-numeric:tabular-nums}
.pg-score .win{color:var(--accent-text)}
.pg-meta{font-size:13px;color:var(--muted);grid-column:1}
.pgrow .tag{grid-column:2;grid-row:1/span 2}
.dlg.wide{max-width:780px}
.dlg.wide .sec{margin-top:4px}
.pg-head{display:flex;flex-direction:column;gap:4px}

.livebar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding:10px 14px;border:1px solid var(--alert);border-radius:var(--r);background:var(--panel)}
.livebar b{font:800 18px/1 var(--display);letter-spacing:.12em;color:var(--alert)}
.livedot{width:10px;height:10px;border-radius:50%;background:var(--alert);animation:livepulse 1.6s ease-in-out infinite;flex:none}
@keyframes livepulse{50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){.livedot{animation:none}}
.nav .nav-live{margin-left:auto;padding-left:24px;font-size:14px;color:var(--muted)}
.nav .nav-live.on{color:var(--alert)}
.nav .nav-live + .nav-undo{margin-left:0;padding-left:16px}
.nav button[data-view="live"]{color:var(--alert)}
.liveview .tolrow button,.liveview .qhint,.liveview .pen{display:none}
.liveview .sb-qbtn,.liveview .tile{cursor:default}
.board.liveview .board-in{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto minmax(0,1fr);grid-template-areas:"ateam ato q hto hteam" "field field field field field" "tiles tiles tiles tiles tiles" "drive drive drive drive drive";align-items:center;gap:12px 14px;max-width:820px}
.liveview .sb-main,.liveview .sb-top,.liveview .sb-to{display:contents}
.liveview .sb-team.away{grid-area:ateam}
.liveview .sb-team.home{grid-area:hteam}
.liveview .sb-q{grid-area:q}
.liveview .sb-to .tol:first-child{grid-area:ato}
.liveview .sb-to .tol:last-child{grid-area:hto}
.liveview .sb-field{display:block;grid-area:field;min-width:0}
.liveview .sb-tiles{grid-area:tiles}
.liveview .sb-drive{grid-area:drive}
.liveview .tol .lbl{display:none}
.liveview .tol::before{content:"TOL";font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--board-dim)}
@media (max-width:520px){
  .board.liveview .board-in{gap:10px 6px}
  .liveview .sb-score{font-size:40px}
  .liveview .sb-sc{gap:6px}
  .liveview .dot{width:12px;height:12px}
  .liveview .sb-q{width:84px}
  .liveview .tolrow .tv{font-size:24px;min-width:0}
  .liveview .tolrow .tv small{font-size:13px}
}
@media (max-width:520px){.tile .tv.mid{font-size:16px}.tile .tv.long{font-size:14px}}
.lgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start;max-width:1280px;margin:0 auto}
@media (min-width:1000px){.lgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* Overlay and toast */
.ov{position:fixed;inset:0;z-index:50;background:rgba(5,10,7,.55);display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.dlg{background:var(--panel);color:var(--ink);border-radius:12px;padding:20px;max-width:460px;width:100%;max-height:calc(100vh - 32px);overflow:auto;display:flex;flex-direction:column;gap:14px;border:1px solid var(--line)}
.dlg p{margin:0;font-size:16px}
.dlg textarea{min-height:200px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace}
.toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translate(-50%,140%);opacity:0;pointer-events:none;z-index:40;background:var(--board);color:var(--board-ink);border:1px solid var(--line);border-radius:10px;padding:10px 12px 10px 16px;display:flex;gap:14px;align-items:center;width:max-content;max-width:calc(100% - 32px);box-shadow:0 6px 24px rgba(0,0,0,.25);transition:transform .2s ease,opacity .2s ease}
.toast.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.toast button{border:0;background:var(--accent);color:var(--accent-ink);font-weight:700;border-radius:7px;min-height:36px;padding:0 12px}
@media (prefers-reduced-motion:reduce){.toast{transition:none}}

@media (max-width:640px){
  .ehead{flex-wrap:wrap}
  .ptabs{flex:1 1 100%}
  .ptabs button{padding:13px 11px 10px;font-size:17px}
  .clock{margin-left:auto;padding-top:4px}
}
@media (max-width:520px){
  .score{font-size:40px}
  .ab{font-size:19px}
  .sw{height:34px}
  .clk{font-size:22px}
  .sit{font-size:19px}
  .tm{gap:8px}
  .board-in{gap:6px 8px}
  .btn.primary{flex-basis:100%}
}

/* website additions */
[hidden]{display:none!important}
img{max-width:100%}
a.btn{text-decoration:none;color:inherit}
code.linkbox{font:600 15px/1.4 ui-monospace,Menlo,Consolas,monospace;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:11px 12px;overflow-wrap:anywhere;min-width:0;flex:1 1 240px}
.setup-note{background:var(--chain);color:var(--chain-ink);font-weight:600;padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.gate{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));overflow:auto}
.gate-card{max-width:420px;width:100%;display:flex;flex-direction:column;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px}
.gate-card h1{margin:0;font:800 34px/1 var(--display);letter-spacing:.04em;text-transform:uppercase}
.gate-card h1 span{color:var(--accent-text)}
.gate-msg{margin:0;min-height:20px;color:var(--alert);font-weight:600}
.gate-msg.ok{color:var(--accent-text)}
.gate-links{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.gate-card .btn.primary{flex:none;width:100%}
