:root{--bg: #0f1418;--panel: #171e24;--panel-2: #1f2830;--line: #2b3741;--text: #e7edf2;--muted: #93a4b3;--accent: #f2c14e;--accent-2: #4fb3ff;--good: #58c27d;--bad: #ef6461;--warn: #f5a524;--home: #1f6feb;--away: #c0392b;--radius: 8px;--font: "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;--mono: "Cascadia Mono", "JetBrains Mono", Consolas, monospace}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;overflow:hidden}button{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:6px 10px;cursor:pointer;transition:background .12s,border-color .12s,transform .05s}button:hover:not(:disabled){background:#28343e;border-color:#3b4b58}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:#1a1400;border-color:#d4a634;font-weight:600}button.primary:hover:not(:disabled){background:#ffd066}button.danger{border-color:#7a3230;color:#ffb3b1}button.small{padding:3px 7px;font-size:12px}button.active{outline:2px solid var(--accent)}input,select{font:inherit;color:var(--text);background:#0e1317;border:1px solid var(--line);border-radius:6px;padding:5px 7px}input[type=range]{padding:0;width:100%}h1,h2,h3,h4{margin:0;font-weight:600}h2{font-size:15px}h3{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:6px}.spacer{flex:1}.chip{display:inline-block;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:600;background:var(--panel-2);border:1px solid var(--line);white-space:nowrap}.chip.off{background:#243d2a;border-color:#3a6b48}.chip.def{background:#3d2a24;border-color:#6b4a3a}.chip.warn{background:#4a3a14;border-color:#8a6a24;color:#ffd98a}.chip.bad{background:#4a1c1c;border-color:#8a3434;color:#ffb3b1}.chip.good{background:#1c4a2a;border-color:#348a4a;color:#b1ffc9}.layout{display:grid;grid-template-columns:330px 1fr 320px;grid-template-rows:56px 1fr 190px;grid-template-areas:"score score score" "left board right" "log log log";height:100%;gap:1px;background:var(--line)}.scoreboard{grid-area:score;background:var(--panel);display:flex;align-items:center;padding:0 14px;gap:18px}.left{grid-area:left;background:var(--panel);overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:10px}.right{grid-area:right;background:var(--panel);overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:10px}.boardwrap{grid-area:board;position:relative;background:#0b0f12;min-width:0;min-height:0}.boardwrap canvas{display:block;width:100%;height:100%}.board-hud{position:absolute;top:8px;right:8px;display:flex;gap:6px;flex-direction:column;align-items:flex-end}.board-hud button{background:#171e24d9}.board-tip{position:absolute;left:10px;bottom:10px;background:#171e24e6;border:1px solid var(--line);border-radius:6px;padding:6px 9px;max-width:420px;pointer-events:none}.logpanel{grid-area:log;background:var(--panel);display:flex;flex-direction:column;min-height:0}.logpanel .loghead{display:flex;gap:8px;align-items:center;padding:4px 10px;border-bottom:1px solid var(--line)}.logbody{overflow-y:auto;padding:4px 10px;font-family:var(--mono);font-size:12px;line-height:1.45}.logline{white-space:pre-wrap}.logline.roll{color:#9fc2e0}.logline.event{color:var(--text)}.logline.phase{color:var(--accent);margin-top:3px}.logline.score{color:#ffd98a;font-weight:600}.logline.decision{color:var(--muted)}.logline.warning{color:var(--warn)}.logline.info{color:var(--muted)}.team-score{display:flex;align-items:center;gap:10px;min-width:220px}.team-score .swatch{width:14px;height:14px;border-radius:3px}.team-score .name{font-weight:600;font-size:15px}.team-score .pts{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.team-score.has-ball .name:after{content:" ●";color:var(--accent)}.situation{display:flex;gap:16px;align-items:baseline}.situation .big{font-size:18px;font-weight:600}.panel{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:8px}.panel.prompt{border-color:#5a4a1e;background:#241f12}.panel.prompt.other{border-color:var(--line);background:var(--panel-2)}.prompt-title{font-size:14px;font-weight:600}.coachtag{display:inline-block;padding:2px 8px;border-radius:10px;color:#fff;font-weight:600;font-size:12px}.error{color:#ffb3b1;background:#3a1818;border:1px solid #7a3230;border-radius:6px;padding:6px 8px}.phasebar{display:flex;flex-wrap:wrap;gap:4px}.phasebar .ph{padding:2px 6px;border-radius:4px;font-size:11px;color:var(--muted);border:1px solid transparent}.phasebar .ph.now{color:#1a1400;background:var(--accent);font-weight:600}.phasebar .ph.done{color:#6b7b88}.list{display:flex;flex-direction:column;gap:3px}.item{display:flex;gap:6px;align-items:center;padding:4px 6px;border-radius:6px;border:1px solid transparent;cursor:pointer}.item:hover{background:#263038}.item.sel{border-color:var(--accent);background:#2b2a1c}.item.done{opacity:.55}.item .num{font-family:var(--mono);min-width:34px;font-weight:600}.item .pos{color:var(--muted);min-width:22px}.skills{display:grid;grid-template-columns:repeat(4,1fr);gap:3px 8px;font-size:12px}.skills .k{color:var(--muted);font-size:10px;text-transform:uppercase}.skills .v{font-family:var(--mono);font-weight:600}.slots{display:flex;gap:4px}.slot{flex:0 0 auto;border:1px dashed transparent;border-radius:6px;padding:2px 3px;font-size:11px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px}.slot.sel{border-color:var(--accent);border-style:solid}.mcard{display:block;height:auto;border-radius:4px;-webkit-user-select:none;user-select:none}.cardbtn{display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:3px 4px 2px;background:transparent;border:1px solid transparent;font-size:10px;color:var(--muted);line-height:1.1;max-width:64px;text-align:center}.cardbtn:hover:not(:disabled){background:#28343e;border-color:#3b4b58}.cardbtn.active{outline:none;border-color:var(--accent);background:#2b2a1c;color:var(--text)}.slot .t{font-weight:600}.slot.filler{color:var(--muted)}.slot.read,.slot.handoff{background:#1a2a3a}.slot.run{background:#3a2a14}.slot.passblock,.slot.runblock{background:#2a2a2a}.slot.dir,.slot.continue,.slot.delay{background:#1c3324}.slot.cut{background:#3a1a1a}.slot.man{background:#2a1a3a}.slot.zone{background:#14303a}.slot.spy{background:#2a2a14}.slot.blitz{background:#3a1414}.slot.hidden{background:#222;color:#666}.markerbtns{display:flex;flex-wrap:wrap;gap:4px}.modifiers{font-size:12px;display:grid;grid-template-columns:1fr auto;gap:1px 10px}.modifiers .neg{color:#ffb3b1}.modifiers .posv{color:#b1ffc9}.kv{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px}.kv .k{color:var(--muted)}.curtain{position:fixed;inset:0;background:#0b0f12;display:flex;align-items:center;justify-content:center;z-index:50}.curtain .card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:36px 48px;text-align:center;display:flex;flex-direction:column;gap:18px;align-items:center}.curtain h1{font-size:28px}.newgame{height:100%;display:flex;align-items:center;justify-content:center;overflow:auto}.newgame .card{width:720px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px 32px;display:flex;flex-direction:column;gap:16px}.newgame h1{font-size:26px}.newgame .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}.newgame label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:12px}.newgame .desc{color:var(--muted);font-size:12px;line-height:1.5}.toast{position:fixed;top:66px;left:50%;transform:translate(-50%);background:#3a1818;border:1px solid #7a3230;color:#ffb3b1;padding:8px 14px;border-radius:8px;z-index:40}.ribbon{display:flex;gap:6px;flex-wrap:wrap;font-size:12px}table.stats{border-collapse:collapse;width:100%;font-size:12px}table.stats td,table.stats th{padding:2px 4px;text-align:left;border-bottom:1px solid var(--line)}table.stats th{color:var(--muted);font-weight:500}.tabs{display:flex;gap:2px}.tabs button{border-radius:6px 6px 0 0;border-bottom:none;padding:4px 9px}.tabs button.active{outline:none;background:var(--panel-2);color:var(--accent)}kbd{font-family:var(--mono);font-size:11px;background:#0e1317;border:1px solid var(--line);border-radius:4px;padding:0 4px}.playpicker select{max-width:100%}.playdesc{font-size:12px;line-height:1.4}.playrow{gap:6px}.playrow .rsum{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.minislots{display:flex;gap:2px}.mini{font-family:var(--mono);font-size:9px;min-width:30px;text-align:center;padding:1px 3px;border-radius:4px;border:1px solid transparent;background:#121920;color:var(--muted)}.mini.sel{border-color:var(--accent)}.mini.read,.mini.handoff{background:#1a2a3a;color:var(--text)}.mini.run{background:#3a2a14;color:var(--text)}.mini.passblock,.mini.runblock{background:#2a2a2a;color:var(--text)}.mini.dir,.mini.continue,.mini.delay{background:#1c3324;color:var(--text)}.mini.cut{background:#3a1a1a;color:var(--text)}.mini.man{background:#2a1a3a;color:var(--text)}.mini.zone{background:#14303a;color:var(--text)}.mini.spy{background:#2a2a14;color:var(--text)}.mini.blitz{background:#3a1414;color:var(--text)}.markermenu{border-color:#5a4a1e}.autobox{width:14px;height:14px;margin:0 2px 0 0;accent-color:var(--accent);cursor:pointer}.autotoggle{gap:6px;cursor:pointer}.autotoggle input{accent-color:var(--accent)}details.panel>summary{cursor:pointer;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}textarea{font:inherit;color:var(--text);background:#0e1317;border:1px solid var(--line);border-radius:6px;padding:5px 7px;resize:vertical}.btnlike{display:inline-block;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:3px 7px;font-size:12px;cursor:pointer}.btnlike:hover{background:#28343e}button.help{width:22px;height:22px;padding:0;border-radius:50%;font-weight:700;font-size:13px;line-height:1;color:var(--accent);border-color:#5a4a1e;background:#241f12;flex:0 0 auto}button.help:hover{background:var(--accent);color:#1a1400}.helppop{position:fixed;z-index:60;display:flex;flex-direction:column;background:var(--panel);border:1px solid #5a4a1e;border-radius:10px;box-shadow:0 12px 40px #0009;overflow:hidden}.helppop.pinned{border-color:var(--accent)}.helphead{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line);background:#241f12}.helpbody{overflow-y:auto;padding:10px 12px 12px;display:flex;flex-direction:column;gap:12px;font-size:13px;line-height:1.5}.helpbody h4{margin:0 0 4px;font-size:13px;color:var(--accent)}.helpbody p{margin:0 0 8px}.helpbody pre{background:#0b0f12;padding:8px;border-radius:6px;font-size:11px;overflow-x:auto}.helpbody blockquote{margin:6px 0;padding:6px 10px;border-left:3px solid var(--accent-2);background:#1a2633;border-radius:0 6px 6px 0}.helpbody figure{margin:6px 0}.helpbody figure img{max-width:100%;height:auto;border-radius:6px;background:#fff}.helpbody .pagemark{display:none}.helpbody ul{margin:0;padding-left:18px}.helpcard{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px}.helptable{border-collapse:collapse;width:100%;font-size:12px;margin:2px 0 6px}.helptable td,.helptable th{padding:2px 6px 2px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.helptable th{color:var(--muted);font-weight:500}.helptable tr.now td{background:#2b2a1c;color:var(--accent);font-weight:600}.helpsec.rulings li{margin-bottom:4px}.helpfoot{border-top:1px solid var(--line);padding-top:8px;font-size:12px}.helpfoot a{color:var(--accent)}.creator{display:grid;grid-template-columns:350px 1fr 340px;grid-template-rows:48px 1fr;grid-template-areas:"top top top" "left board right";height:100%;gap:1px;background:var(--line)}.creator-top{grid-area:top;background:var(--panel);display:flex;align-items:center;gap:14px;padding:0 12px}.creator-top h2{margin-right:6px}.creator-left{grid-area:left;background:var(--panel);overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:10px}.creator-right{grid-area:right;background:var(--panel);overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:10px}.creator-board{grid-area:board;position:relative;background:#0b0f12;min-width:0;min-height:0}.creator-board canvas{display:block;width:100%;height:100%}.creator-legend{max-width:520px}.creator h4{font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-top:6px}.newgame.teams .card{width:1180px;max-width:96vw}.roster{border-collapse:collapse;width:100%;font-size:12px}.roster th,.roster td{padding:2px 4px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.roster th{color:var(--muted);font-weight:500}.roster input[type=number]{width:3.6em;padding:2px 4px}.roster input[type=text]{width:10em;padding:2px 4px}.roster input.up{color:#7ee787}.roster td.cost{text-align:right;color:var(--muted)}.newgame label.inline{flex-direction:row;align-items:center;gap:6px}.newgame label.inline input[type=number]{width:3.6em}.newgame.hub .card{width:1000px;max-width:96vw}.newgame .card.splash{width:640px}.hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 28px}.hub-grid section{display:flex;flex-direction:column;gap:8px;min-width:0}table.stats tr.me td{color:#7ee787}.present{display:flex;gap:6px;flex-wrap:wrap}.recovery{font-family:ui-monospace,Consolas,monospace;font-size:22px;letter-spacing:2px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:#0d1117;-webkit-user-select:all;user-select:all}.chat .chatbody{max-height:160px;overflow-y:auto;font-size:13px;display:flex;flex-direction:column;gap:3px;margin-bottom:6px}.chat .chatline{overflow-wrap:anywhere}.chat .chatline b{color:#f0b429}.chat .chatline.away b{color:#58a6ff}.chat .chatform{display:flex;gap:6px}.chat .chatform input{flex:1;min-width:0}.shell{height:100%;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(1200px 500px at 20% -10%,#1b2a36 0%,var(--bg) 60%)}.topbar{display:flex;align-items:center;gap:14px;padding:0 20px;height:48px;background:#0b1014;border-bottom:1px solid var(--line);flex:none}.brand{display:flex;align-items:center;gap:8px;font-weight:600;letter-spacing:.02em;cursor:pointer;white-space:nowrap}.brand-mark{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:6px;background:var(--accent);color:#1a1400;font-weight:800;font-size:12px}.tabs-nav{display:flex;gap:2px;margin-left:12px}.tabs-nav button{background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;padding:14px 10px 12px;color:var(--muted)}.tabs-nav button:hover:not(:disabled){background:transparent;color:var(--text)}.tabs-nav button.on{color:var(--text);border-bottom-color:var(--accent)}.toplink{color:var(--muted);text-decoration:none;font-size:12px}.toplink:hover{color:var(--text)}.who{font-weight:600}.content{flex:1;overflow:auto;padding:22px 24px 40px;max-width:1240px;width:100%;margin:0 auto}.content.flush{padding:0;max-width:none;overflow:hidden;display:flex;flex-direction:column}.content.flush>*{flex:1;min-height:0}.pagehead{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--line)}.pagehead h1{font-size:24px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px;align-items:start}.card2{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.card2.wide{grid-column:1 / -1}.card2>header{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);border-left:4px solid var(--line);background:var(--panel-2)}.card2>header h2{font-size:14px}.card2>header .count{color:var(--muted);font-size:12px}.card2>.body{padding:12px 14px;display:flex;flex-direction:column;gap:10px}.tone-play>header{border-left-color:var(--accent)}.tone-team>header{border-left-color:var(--accent-2)}.tone-book>header{border-left-color:#b084f5}.tone-ladder>header{border-left-color:var(--good)}.tone-key>header{border-left-color:#8a9ba8}.empty{color:var(--muted);font-style:italic;padding:2px 0}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tile{text-align:left;padding:14px 16px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.tile b{font-size:14px}.tile span{color:var(--muted);font-size:12px}.tile.primary{background:linear-gradient(160deg,#3a2f0e,#241f12);border-color:#6b5a1e}.tile.primary b{color:var(--accent)}.tile:hover:not(:disabled){border-color:var(--accent)}.rows{display:flex;flex-direction:column}.rows .rowi{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line)}.rows .rowi:last-child{border-bottom:none}.rows .rowi .main{display:flex;flex-direction:column;gap:2px;min-width:0}.rows .rowi .main b{font-size:13px}.rows .rowi .main span{color:var(--muted);font-size:12px}.rows .rowi .actions{display:flex;gap:6px;flex:none}.form{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}.form label,.field{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:12px}.form label input,.form label select{color:var(--text);font-size:13px}.hint{color:var(--muted);font-size:12px;line-height:1.5}.budget{display:flex;align-items:center;gap:10px}.budget .bar{flex:1;height:8px;background:#0e1317;border:1px solid var(--line);border-radius:4px;overflow:hidden}.budget .bar i{display:block;height:100%;background:var(--good)}.budget.over .bar i{background:var(--bad)}.budget .nums{font-family:var(--mono);font-size:12px;white-space:nowrap}.budget.over .nums{color:var(--bad);font-weight:600}.warnbox{color:#ffb3b1;background:#3a1818;border:1px solid #7a3230;border-radius:6px;padding:6px 8px;display:flex;flex-direction:column;gap:2px}.door{height:100%;display:grid;place-items:center;background:radial-gradient(900px 500px at 50% 0%,#1b2a36 0%,var(--bg) 60%);overflow:auto}.door .card2{width:440px;max-width:94vw}.door .card2>.body{padding:18px 20px 20px;gap:12px}.door h1{font-size:20px}.door .mark{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:var(--accent);color:#1a1400;font-weight:800;font-size:18px;margin-bottom:6px}.door label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:12px}.door input{color:var(--text);font-size:14px;padding:8px 10px}.door .links{display:flex;gap:14px;font-size:12px}.door .links a{color:var(--accent-2)}.door .links button{background:none;border:none;padding:0;color:var(--accent-2)}.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 18px}.statgroup h3,.leaders h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.statgroup dl{display:flex;flex-direction:column;gap:2px;margin:0}.statgroup dl>div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:2px 0;font-size:13px}.statgroup dt{color:var(--muted)}.statgroup dd{margin:0;font-variant-numeric:tabular-nums;text-align:right}.statgroup dd small{display:block;color:var(--muted);font-size:11px}.modes{display:flex;gap:6px;flex-wrap:wrap}.leaders{overflow-x:auto}table.stats.num td.n,table.stats.num th.n{text-align:right;font-variant-numeric:tabular-nums}table.stats.num th[title]{cursor:help}
