:root{--bg: #10151a;--panel: #1a222b;--line: #2c3946;--text: #e8eef4;--muted: #93a4b5;--accent: #4ea1ff;--warn: #ffb648;--bad: #ff6b6b;--good: #5ad18d;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-text-size-adjust:100%}.wrap{max-width:720px;margin:0 auto;padding:0 12px 48px}.stack{display:grid;gap:12px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}.apphead{padding:20px 2px 12px}h1{font-size:20px;margin:0 0 4px}h2{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px}.sub{color:var(--muted);font-size:13px;margin:0}code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.92em;background:#0d1319;border-radius:4px;padding:1px 4px}button{font:inherit;color:var(--text);background:#24303c;border:1px solid var(--line);border-radius:8px;min-height:44px;padding:0 14px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);color:#06121f;border-color:var(--accent);font-weight:600}button.danger{border-color:var(--bad);color:var(--bad)}button.linky{background:none;border:none;color:var(--accent);padding:0 6px 0 0}input,select,textarea{font:inherit;color:var(--text);background:#131b22;border:1px solid var(--line);border-radius:8px;min-height:40px;padding:6px 10px;width:100%}textarea{font-family:ui-monospace,Cascadia Code,Consolas,monospace;line-height:1.6;resize:vertical}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.grid-btns{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.grid-btns.big button{min-height:56px;font-size:16px;font-weight:600}.fields{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.fields label{display:grid;gap:4px}.fields label>span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.fields label.check{grid-template-columns:auto 1fr;align-items:center;gap:8px}.fields label.check input{width:20px;height:20px;min-height:0}.fields label.check>span{text-transform:none;letter-spacing:0;font-size:14px;color:var(--text)}.scroll{overflow-x:auto;min-width:0}.stack>.panel{min-width:0}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th,td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-weight:500;font-size:12px}table.lineup td{padding:4px}table.lineup td:first-child{color:var(--muted);width:24px}table.lineup input,table.lineup select{min-height:36px}.rowtools{display:flex;gap:4px}.rowtools button{min-height:36px;padding:0 8px}.gamehead{position:sticky;top:0;z-index:10;background:var(--bg);padding:10px 0 8px;margin-bottom:12px;border-bottom:1px solid var(--line)}.headtop{display:flex;align-items:center;gap:10px;justify-content:space-between}.scoreline{display:flex;gap:16px;align-items:center;margin:8px 0;font-variant-numeric:tabular-nums}.scoreline .team{display:flex;align-items:baseline;gap:8px;opacity:.55}.scoreline .team.batting{opacity:1}.scoreline .tname{font-size:13px;color:var(--muted);max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scoreline b{font-size:26px}.minidiamond{margin-left:auto;display:grid;grid-template-columns:repeat(3,13px);grid-template-rows:repeat(2,13px);gap:3px}.minidiamond .b{border:1px solid var(--line);border-radius:2px;transform:rotate(45deg)}.minidiamond .b.on{background:var(--good);border-color:var(--good)}.minidiamond .b:nth-child(1){grid-column:2;grid-row:1}.minidiamond .b:nth-child(2){grid-column:1;grid-row:2}.minidiamond .b:nth-child(3){grid-column:3;grid-row:2}.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.tabs button{min-height:40px;padding:0}.tierpick{display:grid;gap:8px;margin-bottom:12px}.tierpick button{display:grid;gap:2px;text-align:left;padding:10px 12px;min-height:0}.tierpick button b{font-size:14px}.tierpick button span{font-size:12px;opacity:.75}.tierrow{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.teamname{flex:1;display:flex;align-items:center;gap:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teamname.batting{color:var(--text);font-weight:600}.seg{display:flex;gap:4px}.seg button{min-height:44px;min-width:44px;padding:0}.linescore td,.linescore th{text-align:center;min-width:30px;font-variant-numeric:tabular-nums}.linescore .teamcol{text-align:left;min-width:110px;white-space:nowrap}.linescore .tot{border-left:1px solid var(--line);font-weight:700}.lineup tr.benched td:not(.rowtools){opacity:.55}.baserunning .seg{gap:8px}.baserunning .seg button,.baserunning button.forcetoggle{min-height:52px;min-width:52px}.baserunning .runner{min-width:150px;font-weight:600}.batter{display:flex;align-items:center;gap:12px}.batter .slot{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-size:13px}.batter .bname{font-size:22px;font-weight:600}.plays{display:grid;gap:2px}.play{border-bottom:1px solid var(--line);padding:8px 0;cursor:pointer}.play:last-child{border-bottom:none}.play.inferred{border-left:2px solid var(--warn);padding-left:10px;margin-left:-12px}.play.openplay{background:#ffffff0a}.betweenplays{margin-top:8px;padding-left:10px;border-left:2px solid var(--line)}.play.move{cursor:default;padding:6px 0}.play.move .what{color:var(--muted)}.fixhint{margin-left:auto;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.play:hover .fixhint,.play.openplay .fixhint{color:var(--accent)}.playhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.playhead .who{font-weight:600}.playhead .what{color:var(--accent)}.inferrednote{margin-top:2px}.gamerow{display:flex;align-items:center;gap:10px;justify-content:space-between}.gameopen{flex:1;text-align:left;background:none;border:none;padding:0;display:grid;gap:2px}.matchup{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.matchup b{font-size:20px;font-variant-numeric:tabular-nums}.log{max-height:420px;overflow:auto;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.6}.log div{border-bottom:1px solid var(--line);padding:3px 0;white-space:nowrap}.tier{color:var(--accent)}.warn{color:var(--warn)}.bad{color:var(--bad)}.muted{color:var(--muted)}.badge{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:1px 9px;font-size:12px;color:var(--muted);white-space:nowrap}.sc{border-collapse:collapse}.sc th,.sc td{border:1px solid var(--line);padding:0;text-align:center;vertical-align:top}.sc thead th{padding:4px 8px;font-size:12px;color:var(--muted);font-weight:600}.sc .scname{position:sticky;left:0;z-index:1;background:var(--panel);text-align:left;padding:4px 10px 4px 6px;white-space:nowrap;font-weight:400;font-size:13px}.sccell{min-height:0;min-width:0;display:block;width:62px;padding:2px 3px 1px;border:none;border-radius:0;background:none;font:inherit}.sccell:hover,.sccell:focus-visible{background:#22303c}.sccell.flagged{background:#ffb64814}.sctop,.scbot{display:flex;align-items:center;justify-content:space-between;gap:4px;height:14px;font-size:11px;line-height:1}.scnot{color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scout{color:var(--muted);flex:none}.scrbi{color:var(--good);letter-spacing:1px}.scvoid{color:var(--bad);font-size:10px}.dia{display:block;width:100%;height:34px}.diaghost{fill:none;stroke:var(--line);stroke-width:1}.diafill{fill:#5ad18d47;stroke:none}.dialeg{stroke:var(--text);stroke-width:2.2;stroke-linecap:round;fill:none}.dialeg.guessed{stroke:var(--muted);stroke-dasharray:3 3}.diabase{fill:var(--text)}.diaout{fill:none;stroke:var(--bad);stroke-width:1.6}.guessedkey{color:var(--muted);border-bottom:2px dashed var(--muted)}.scmulti{background:#4ea1ff0f}.sc tfoot .scfoot{padding:3px 8px;font-size:12px;color:var(--muted)}.scloose{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.scloose .sccell{border:1px solid var(--line);border-radius:8px}.sccr{color:var(--accent);font-size:10px;font-weight:600}.baserunning .seg{flex-wrap:wrap}.outon{gap:4px;margin-top:4px;padding-left:2px}.outon button{min-height:32px;padding:0 8px;font-size:13px}.outon .sub{margin-right:2px}.printonly{display:none}@media print{:root{--bg: #fff;--panel: #fff;--line: #999;--text: #000;--muted: #555;--accent: #000;--warn: #000;--bad: #000;--good: #000;color-scheme:light}@page{size:letter landscape;margin:.4in}body{background:#fff;color:#000}.wrap{max-width:none;padding:0}.wrap>*:not(.printonly){display:none!important}.printonly{display:block;print-color-adjust:exact;-webkit-print-color-adjust:exact}.printpage{break-after:page}.printpage:last-child{break-after:auto}.printonly tr{break-inside:avoid}.printonly thead{display:table-header-group}.printonly .panel{background:none;border:none;border-radius:0;padding:0;margin-bottom:10px}.printonly .stack{gap:10px}.printonly .scroll{overflow:visible}.printonly h2{color:#000;font-size:10px;margin:0 0 4px}.printonly .sub{font-size:9px;color:#555}.printonly code{background:none;padding:0}.printhead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1.5px solid #000;padding-bottom:4px;margin-bottom:8px}.printhead h1{font-size:15px;margin:0}.printhead .sub{font-size:10px;margin:0}.printmeta{display:flex;align-items:baseline;gap:12px;font-size:10px;white-space:nowrap}.printmeta b{font-size:14px}.printonly .sc{width:auto}.printonly .sc td{min-width:62px}.printonly .sc .scname{position:static;min-width:118px;font-size:10px;padding:2px 8px 2px 4px}.printonly .sccell{width:58px;padding:1px 2px 0}.printonly .dia{height:30px}.printonly .sctop,.printonly .scbot{height:12px;font-size:9px}.printonly .sc thead th,.printonly .sc tfoot .scfoot{color:#000;font-size:10px;padding:2px 6px}.printonly .diafill{fill:#d0d0d0}.printonly .sccell.flagged,.printonly .scmulti{background:none}.printonly table:not(.sc){font-size:10px}.printonly table:not(.sc) th,.printonly table:not(.sc) td{padding:2px 6px}}
