:root{--bg:#0f0f14;--card:#1a1a22;--card-hover:#22222c;--border:#ffffff14;--text:#f1f5f9;--muted:#94a3b8;--faint:#64748b;--accent:#22c55e;--accent-2:#3b82f6;--danger:#f87171}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,sans-serif}#root{min-height:100svh}.screen{flex-direction:column;min-height:100svh;display:flex}.screen.center{justify-content:center;align-items:center;padding:16px}.center-block{justify-content:center;padding:48px 0;display:flex}.hero{text-align:center;margin-bottom:24px}.hero-emoji{margin-bottom:8px;font-size:48px}.hero h1{letter-spacing:-.02em;margin:0;font-size:28px}.sub{color:var(--muted);margin:4px 0 0;font-size:14px}.footnote{color:var(--faint);text-align:center;margin-top:20px;font-size:12px}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px}.card.narrow{flex-direction:column;gap:12px;width:100%;max-width:360px;display:flex}.card h2{margin:0;font-size:17px}.hint{color:var(--muted);margin:0;font-size:13px}.banner-hint{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.error{color:var(--danger);margin:0 0 8px;font-size:14px}input{border:1px solid var(--border);width:100%;color:var(--text);background:#26262f;border-radius:12px;outline:none;padding:12px 14px;font-size:16px}input:focus{border-color:var(--accent-2)}.btn{border:1px solid var(--border);background:var(--card-hover);color:var(--text);cursor:pointer;border-radius:12px;padding:12px;font-size:15px;font-weight:600}.btn.primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);color:#fff;border:none}.btn:disabled{opacity:.5;cursor:default}.link{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:14px}.link:hover{color:var(--text)}.topbar{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#0f0f14eb;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.brand{font-weight:700}.brand-sm{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.season-tag{color:var(--faint);border:1px solid var(--border);border-radius:999px;margin-left:10px;padding:2px 8px;font-size:12px}.content{flex:1;width:100%;max-width:640px;margin:0 auto;padding:16px}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:20px 0 10px;font-size:12px}.league-grid{flex-direction:column;gap:10px;display:flex}.league-card{text-align:left;cursor:pointer;color:var(--text)}.league-card:hover{background:var(--card-hover)}.league-name{font-size:16px;font-weight:600}.league-meta{color:var(--muted);gap:10px;margin-top:6px;font-size:13px;display:flex}.status{border-radius:999px;padding:1px 8px;font-size:12px}.status-in_season{color:var(--accent);background:#22c55e26}.status-pre_draft{color:var(--accent-2);background:#3b82f626}.status-drafting{color:#eab308;background:#eab30826}.status-complete{color:var(--muted);background:#94a3b826}.pos-group{gap:12px;margin-bottom:12px;display:flex}.pos-label{width:36px;color:var(--faint);padding-top:10px;font-size:12px;font-weight:700}.pos-players{flex-direction:column;flex:1;gap:6px;display:flex}.player-row{background:var(--card);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex}.player-row.starter{border-color:#22c55e59}.player-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.player-team{color:var(--faint);font-size:12px}.injury{color:var(--danger);font-size:11px;font-weight:700}.starter-tag{color:var(--accent);font-size:11px;font-weight:600}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--faint);border-bottom:1px solid var(--border);padding:8px 10px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--border);padding:10px}tr.me td{background:#3b82f614}tr.me td:nth-child(2){font-weight:700}.spinner{border:2px solid var(--accent);border-top-color:#0000;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
