:root{--ink: #141714;--muted: #5e6358;--paper: #f3efe6;--card: #fffdf8;--line: #d4cfc2;--nav: #141714;--brass: #b08d3e;--pos: #1b6b43;--neg: #9c2a2a;--warn: #8a6a12;--font: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}html[data-theme=dark]{--ink: #f4f1e8;--muted: #adb3a2;--paper: #1c201c;--card: #262b26;--line: #3e453d;--nav: #141813;--brass: #d9af58;--pos: #56cf90;--neg: #f18e8e;--warn: #dcb455}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:14px/1.45 var(--font);color:var(--ink);background:var(--paper)}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.shell{display:grid;grid-template-columns:210px 1fr;min-height:100%}.nav{background:var(--nav);color:#d8d3c6;padding:16px 10px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{padding:4px 10px 14px;border-bottom:1px solid #2a2e28;margin-bottom:12px;font-weight:700;letter-spacing:.12em;font-size:13px}.brand small{display:block;color:#8a8f82;letter-spacing:.08em;text-transform:uppercase;font-size:11px;margin-top:4px;font-weight:400}.nav button{display:block;width:100%;text-align:left;border:0;background:none;color:inherit;padding:8px 10px;border-radius:4px}.nav button:hover{background:#1f231e}.nav button.on{background:#1f231e;box-shadow:inset 3px 0 0 var(--brass);font-weight:600;color:#fff}.nav .foot{margin-top:auto;border-top:1px solid #2a2e28;padding-top:10px}.main{min-width:0}.top{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 20px;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0;z-index:5;flex-wrap:wrap}.banner{background:#f5ecd4;color:var(--warn);padding:8px 20px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line)}html[data-theme=dark] .banner{background:#3a3218}.banner.warn{text-transform:none;letter-spacing:0;font-weight:500}.authbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.auth-email{font:12px/1.2 var(--mono);color:var(--muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desk-tag{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:3px 7px}.err{color:var(--neg);font-size:13px}.top h1{font-size:17px;font-weight:600}.top .sub{color:var(--muted);font-size:12px;margin-left:10px}.body{padding:16px 20px 40px;display:flex;flex-direction:column;gap:14px}.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.metric{background:var(--card);border:1px solid var(--line);padding:10px 12px}.metric .k{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.metric .v{font:500 19px/1.2 var(--mono);margin-top:6px}.metric .s{color:var(--muted);font-size:12px;margin-top:3px}.panel{background:var(--card);border:1px solid var(--line)}.head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.pad{padding:12px 14px}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.stack{display:flex;flex-direction:column;gap:10px}.split{display:grid;grid-template-columns:1.3fr 1fr;gap:12px}.tw{overflow:auto;max-height:62vh}table{width:100%;border-collapse:collapse;font-size:13px}th{position:sticky;top:0;background:#e8e3d6;text-align:left;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:7px 10px;border-bottom:1px solid var(--line)}html[data-theme=dark] th{background:#333a32;color:#c2c8b8}td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}tr:hover td{background:color-mix(in srgb,var(--paper) 40%,var(--card))}.num{text-align:right;font-family:var(--mono);white-space:nowrap}.pos{color:var(--pos)}.neg{color:var(--neg)}.flat,.muted{color:var(--muted)}.tabs{display:flex;border-bottom:1px solid var(--line);flex-wrap:wrap}.tabs button{border:0;background:none;padding:9px 14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.on{color:var(--ink);font-weight:600;border-bottom-color:var(--brass)}.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:6px 11px;border-radius:3px}.btn.p{background:var(--ink);color:var(--card);border-color:var(--ink)}html[data-theme=dark] .btn.p{background:var(--brass);color:#141714}.btn.d{color:var(--neg)}.chip{display:inline-flex;align-items:center;padding:2px 7px;font-size:11px;font-weight:600;background:#e8e3d6;border-radius:2px}html[data-theme=dark] .chip{background:#333a32;color:#dfe3d6}html[data-theme=dark] .chip.pos{background:#1e4531;color:#7fe0ab}html[data-theme=dark] .chip.neg{background:#4a2424;color:#f7a9a9}html[data-theme=dark] .chip.warn{background:#43391a;color:#ecc76d}html[data-theme=dark] .chip.info{background:#23334a;color:#9cc6ef}.chip.pos{background:#e4f0e8;color:var(--pos)}.chip.neg{background:#f6e6e4;color:var(--neg)}.chip.warn{background:#f5ecd4;color:var(--warn)}.chip.info{background:#e6edf4;color:#1e3a5f}.chips{display:flex;flex-wrap:wrap;gap:5px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:6px 8px;width:100%}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.empty{padding:28px 12px;text-align:center;color:var(--muted)}.ov{position:fixed;inset:0;background:#14171473;display:flex;justify-content:center;padding:10vh 16px;z-index:40}.modal{background:var(--card);border:1px solid var(--line);width:min(540px,100%);max-height:80vh;overflow:auto}.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:50}.toast{background:var(--ink);color:var(--card);padding:10px 14px;max-width:340px}.tip{position:relative;display:inline-flex}.tip b{width:15px;height:15px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:10px;color:var(--muted);font-weight:700}.tip span{display:none;position:absolute;left:0;top:18px;width:250px;background:var(--ink);color:var(--card);padding:9px 11px;font-size:12px;font-weight:400;z-index:20}.tip:hover span,.tip:focus-within span{display:block}.flip{outline:1px solid var(--neg);background:#f6e6e4}html[data-theme=dark] .flip{background:#3a1c1c}.menu{display:none}.toolbar{position:sticky;top:52px;z-index:4;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:var(--card);border:1px solid var(--line);padding:8px 12px}.seg{display:inline-flex;border:1px solid var(--line);background:var(--paper)}.seg button{border:0;background:none;padding:5px 10px;color:var(--muted)}.seg button.on{background:var(--ink);color:var(--card);font-weight:600}html[data-theme=dark] .seg button.on{background:var(--brass);color:#141714}.chip.btnchip{border:0;cursor:pointer;font:inherit}.chip.btnchip.on{background:var(--ink);color:var(--card)}html[data-theme=dark] .chip.btnchip.on{background:var(--brass);color:#141714}th.sort{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sort:hover,th.sort.on{color:var(--ink)}.sticky-col{position:sticky;left:0;background:var(--card);z-index:1}th.sticky-col{z-index:3}.filter{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:6px 8px;min-width:160px}.delta.over{color:var(--warn);font-weight:600}.delta.under{color:#3a5f8a;font-weight:600}.delta.even{color:var(--muted)}.row-over td{box-shadow:inset 3px 0 0 var(--warn)}.row-under td{box-shadow:inset 3px 0 #3a5f8a}.flags{display:flex;flex-wrap:wrap;gap:6px}.flag{border:1px solid var(--line);background:var(--card);padding:4px 8px;font-size:12px;border-radius:2px}.flag.warn{border-color:#e0c56a;background:#f5ecd4;color:var(--warn)}.flag.neg{border-color:#e0b4b0;background:#f6e6e4;color:var(--neg)}.flag.info{border-color:#b9c9dc;background:#e6edf4;color:#1e3a5f}html[data-theme=dark] .flag.warn{background:#43391a;border-color:#6e5c22;color:#ecc76d}html[data-theme=dark] .flag.neg{background:#4a2424;border-color:#7a3e3e;color:#f7a9a9}html[data-theme=dark] .flag.info{background:#23334a;border-color:#3f587a;color:#9cc6ef}.ticket{display:grid;grid-template-columns:4px 1fr auto auto auto;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line)}.ticket .rail{align-self:stretch;background:var(--line)}.ticket.won .rail{background:var(--pos)}.ticket.lost .rail{background:var(--neg)}.ticket.open .rail{background:var(--warn)}.ticket.push .rail{background:var(--muted)}.heat{display:flex;gap:4px;flex-wrap:wrap}.heat i{display:inline-flex;min-width:52px;flex-direction:column;padding:6px 7px;border:1px solid var(--line);font-style:normal;font-size:11px}.heat i b{font:500 13px var(--mono)}.parse-status{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.field-panel textarea{width:100%;min-height:88px;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:8px;font-family:var(--mono);font-size:12px}.num{font-variant-numeric:tabular-nums}td,th{padding:6px 10px}.expand{cursor:pointer}.league-card .head{text-transform:none;letter-spacing:0;font-size:14px}html[data-theme=dark] .nav button:hover{background:#262c25}html[data-theme=dark] .nav button.on{background:#2c332b}html[data-theme=dark] .banner{background:#43391a}html[data-theme=dark] .flip{background:#4a2424}html[data-theme=dark] .delta.under{color:#8fbce8}html[data-theme=dark] .row-under td{box-shadow:inset 3px 0 #6b93c4}html[data-theme=dark] .tip span,html[data-theme=dark] .toast{background:#3a423a;color:var(--ink);border:1px solid var(--line)}html[data-theme=dark] .ov{background:#0009}@media(max-width:1100px){.metrics{grid-template-columns:repeat(3,1fr)}.split,.grid3{grid-template-columns:1fr}}@media(max-width:820px){.shell{grid-template-columns:1fr}.nav{display:none;position:fixed;z-index:20;width:240px}.nav.open{display:flex}.menu{display:inline-flex}.metrics{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}}
