:root{--bg: #0b0f14;--surface: #141a22;--surface-2: #1b232d;--line: #26313d;--text: #e8eef5;--muted: #8296ab;--dim: #5b6b7d;--accent: #4da3ff;--good: #38d39f;--warn: #ffb454;--danger: #ff6b6b;--qb: #ff8fab;--rb: #6fe3b8;--wr: #7fb8ff;--te: #ffc46b;--k: #b8a6ff;--dst: #9bb0c4;--row-h: 56px;--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.35 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.app{display:flex;flex-direction:column;height:100dvh;max-width:680px;margin:0 auto}.header{display:flex;align-items:center;gap:8px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top,0px));background:var(--surface);border-bottom:1px solid var(--line);flex:none}.who{min-height:32px;padding:4px 12px;border-radius:999px;background:var(--surface-2);color:var(--accent);font-weight:650;text-transform:capitalize}.header-mid{flex:1;text-align:center;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.sync{min-width:44px;min-height:32px;color:var(--good);font-size:13px;font-variant-numeric:tabular-nums}.sync-off{color:var(--warn)}.banner{padding:6px 12px;background:#2a2113;color:var(--warn);font-size:12px;text-align:center;flex:none}.scarcity{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line);flex:none}.scar{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 2px;min-height:62px;background:var(--surface)}.scar-active{background:var(--surface-2);box-shadow:inset 0 -2px 0 var(--accent)}.scar-urgent .scar-cliff{color:var(--danger);font-weight:700}.scar-pos{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.06em}.scar-tier{font-size:21px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.scar-thin{color:var(--danger)}.scar-sub{font-size:10px;color:var(--dim);font-variant-numeric:tabular-nums}.scar-start{font-size:10px;color:var(--dim)}.scar-need{background:linear-gradient(180deg,#182430 0%,var(--surface) 60%)}.scar-dot{display:inline-block;width:5px;height:5px;margin-left:3px;border-radius:50%;background:var(--accent);vertical-align:2px}.tracker{flex:none;background:var(--surface);border-bottom:1px solid var(--line)}.tracker-up{background:#10322a}.tracker-head{display:flex;align-items:baseline;gap:6px;width:100%;min-height:40px;padding:0 12px;text-align:left}.tracker-label{font-size:12px;color:var(--muted)}.tracker-away{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}.tracker-unit{font-size:12px;color:var(--muted)}.tracker-gap{flex:1;font-size:11px;color:var(--dim);text-align:right}.tracker-chev{color:var(--dim);font-size:12px}.tracker-now{flex:1;font-size:15px;font-weight:700;color:var(--good);letter-spacing:.04em}.tracker-body{padding:4px 12px 12px}.tracker-note{margin:0 0 8px;font-size:12px;color:var(--muted)}.tracker-list{list-style:none;margin:0;padding:0}.tracker-list button{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:0 2px;border-bottom:1px solid var(--line);text-align:left}.tracker-pos{width:30px;font-size:11px;font-weight:700;color:var(--muted)}.tracker-name{flex:1;font-size:14px;font-weight:600}.tracker-odds{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--warn)}.tracker-foot,.tracker-safe{margin:8px 0 0;font-size:11px;color:var(--dim)}.gone{font-size:10px;font-weight:700;color:var(--danger);letter-spacing:.02em}.bye-warn{margin:8px 12px;padding:10px 12px;border-radius:10px;background:#33210f;border:1px solid #5c3c17}.bye-warn p{margin:0 0 4px;font-size:13px;color:var(--warn)}.bye-warn p:last-child{margin-bottom:0}.bye-warn strong{color:#ffd08a}.roster-needs{margin:8px 12px;font-size:12px;color:var(--muted)}.slot-grid{display:grid;grid-template-columns:repeat(4,56px);gap:10px;margin:18px 0 10px}.slot-btn{min-height:52px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}.slot-btn-on,.slot-btn:active{background:var(--accent);color:#04121f}.skip{margin-top:10px;min-height:44px;padding:0 20px;color:var(--muted);text-decoration:underline}.who-slot{margin-left:5px;opacity:.6;font-size:12px}.tabs{display:flex;gap:4px;padding:6px 8px;overflow-x:auto;scrollbar-width:none;background:var(--surface);border-bottom:1px solid var(--line);flex:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:none;min-height:34px;padding:0 14px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:13px;font-weight:600}.tab-active{background:var(--accent);color:#04121f}.board{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:12px}.rows{list-style:none;margin:0;padding:0}.row{display:flex;align-items:stretch;border-bottom:1px solid var(--line);min-height:var(--row-h)}.row-main{flex:1;display:flex;align-items:center;gap:10px;padding:8px 4px 8px 10px;min-height:var(--row-h);text-align:left}.row-main:active{background:var(--surface-2)}.pos{flex:none;width:34px;text-align:center;font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 0;border-radius:5px;background:var(--surface-2)}.pos-qb{color:var(--qb)}.pos-rb{color:var(--rb)}.pos-wr{color:var(--wr)}.pos-te{color:var(--te)}.pos-k{color:var(--k)}.pos-dst{color:var(--dst)}.row-name{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.name{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.struck{color:var(--dim);text-decoration:line-through}.row-sub{font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums}.dot{margin:0 4px;opacity:.5}.tier-badge{color:var(--muted)}.value-flag{color:var(--good);font-weight:700}.row-nums{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding-right:6px}.vorp{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}.row-claim{flex:none;width:52px;border-left:1px solid var(--line);color:var(--muted);font-size:24px;font-weight:300}.row-claim:active{background:var(--accent);color:#04121f}.row-taken{opacity:.55}.row-taken .row-main{min-height:44px}.row-mine{border-left:3px solid var(--accent)}.row-undo-hint{font-size:11px;color:var(--dim);padding-right:12px}.row[class*=tier-]{border-left:3px solid transparent}.tier-1{border-left-color:#38d39f!important}.tier-2{border-left-color:#63c8b0!important}.tier-3{border-left-color:#7fb8ff!important}.tier-4{border-left-color:#9d9dff!important}.tier-5{border-left-color:#c58fe6!important}.tier-6{border-left-color:#e08fb8!important}.tier-7{border-left-color:#ffb454!important}.tier-8{border-left-color:#d9884a!important}.tier-9{border-left-color:#6b7684!important}.more{display:block;width:calc(100% - 24px);margin:12px;min-height:44px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-weight:600}.empty-note{padding:28px 16px;text-align:center;color:var(--dim);font-size:14px}.roster{padding:8px 0}.roster-slots{list-style:none;margin:0;padding:0}.roster-slots li{display:flex;align-items:center;gap:10px;padding:10px 12px;min-height:48px;border-bottom:1px solid var(--line)}.roster-slots .empty{opacity:.5}.slot-name{flex:none;width:46px;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.04em}.slot-player{flex:1;font-weight:600}.slot-empty{flex:1;color:var(--dim)}.slot-pts{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.roster-heading{margin:16px 12px 4px;font-size:12px;font-weight:700;color:var(--dim);text-transform:uppercase;letter-spacing:.08em}.log{padding-bottom:8px}.log-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;font-size:13px;color:var(--muted);border-bottom:1px solid var(--line)}.log-head strong{color:var(--text);font-variant-numeric:tabular-nums}.log-edit{min-height:34px;padding:0 14px;border-radius:999px;background:var(--surface-2);color:var(--accent);font-size:13px;font-weight:600}.log-hint{margin:8px 12px;font-size:12px;color:var(--dim)}.log-list{list-style:none;margin:0;padding:0}.log-row{display:flex;align-items:center;gap:10px;padding:8px 12px;min-height:52px;border-bottom:1px solid var(--line)}.log-mine{background:#12202e;border-left:3px solid var(--accent)}.log-missed{border-left:3px solid var(--warn)}.log-pick{flex:none;width:42px;font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.log-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.log-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-sub{font-size:11px;color:var(--dim);text-transform:capitalize}.log-warn{color:var(--warn);font-weight:700}.log-pts{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.log-controls{display:flex;gap:2px}.log-controls button{width:40px;min-height:44px;border-radius:8px;background:var(--surface-2);color:var(--text);font-size:16px}.log-controls button:disabled{opacity:.3}.log-remove{color:var(--danger)!important;font-size:20px!important}.searchbar{flex:none;display:flex;gap:8px;padding:8px 10px;padding-bottom:calc(8px + var(--safe-b));background:var(--surface);border-top:1px solid var(--line)}.search-wrap{position:relative;flex:1}.search{width:100%;min-height:46px;padding:0 40px 0 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font-size:16px;-webkit-appearance:none}.search:focus{outline:none;border-color:var(--accent)}.search::-webkit-search-cancel-button{display:none}.search-clear{position:absolute;right:4px;top:0;height:46px;width:36px;color:var(--muted);font-size:22px}.undo{flex:none;min-width:72px;min-height:46px;padding:0 14px;border-radius:12px;background:var(--surface-2);color:var(--text);font-weight:600}.undo:disabled{color:var(--dim);opacity:.5}.undo:active:not(:disabled){background:var(--warn);color:#1a1206}.identity{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;padding:24px;text-align:center;gap:8px}.identity h1{margin:0;font-size:26px}.identity p{color:var(--muted);margin:0}.identity-buttons{display:flex;gap:12px;margin:20px 0 8px}.identity-buttons button{min-width:128px;min-height:56px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);font-size:18px;font-weight:650}.identity-buttons button:active{background:var(--accent);color:#04121f}.identity-note{font-size:12px;color:var(--dim);max-width:300px}
