:root{--bg:#0b1120;--panel:#111827;--text:#f8fafc;--muted:#94a3b8;--line:#263247;--accent:#38bdf8}
*{box-sizing:border-box}html{overscroll-behavior-y:contain}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding-bottom:86px;overscroll-behavior-y:contain}
.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:16px;background:#0f172a;border-bottom:1px solid var(--line)}
.eyebrow{font-size:11px;color:var(--accent);font-weight:800;letter-spacing:.12em}h1{font-size:18px;margin:3px 0}h2{font-size:16px;margin:22px 0 10px}
main{max-width:760px;margin:auto;padding:14px}.card,.stat,.player{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px}
.manager-card{margin-bottom:14px}.row{display:grid;grid-template-columns:1fr auto;gap:8px}input,select{width:100%;padding:12px;border-radius:12px;border:1px solid #334155;background:#0f172a;color:white}
button{border:0;border-radius:12px;background:var(--accent);font-weight:800;padding:0 16px;min-height:40px}.legacy-refresh-control{display:none!important}.muted{font-size:12px;color:var(--muted);margin-top:8px}
.pull-refresh{position:fixed;top:calc(env(safe-area-inset-top) + 2px);left:50%;z-index:30;display:flex;align-items:center;gap:7px;background:#172033;border:1px solid #334155;border-radius:999px;padding:8px 12px;color:#e2e8f0;font-size:12px;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.28);pointer-events:none;opacity:0;transform:translate(-50%,-58px);transition:transform .18s ease,opacity .18s ease}.pull-refresh.pulling{transition:none}.pull-refresh #pullRefreshIcon{display:inline-block;color:var(--accent);font-size:16px;line-height:1;transition:transform .08s linear}.pull-refresh.refreshing #pullRefreshIcon{animation:tffcc-spin .8s linear infinite}@keyframes tffcc-spin{to{transform:rotate(360deg)}}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat span{font-size:12px;color:var(--muted)}.stat strong{display:block;font-size:28px;margin-top:4px}.danger strong{color:#f87171}.warn strong{color:#fbbf24}
.stack{display:grid;gap:10px}.player-name{font-weight:800}.sub{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.4}.badge{float:right;background:#334155;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.danger-badge{background:#7f1d1d;color:#fecaca}.warn-badge{background:#78350f;color:#fde68a}.league-chip{display:inline-block;background:#1e293b;border-radius:999px;padding:4px 7px;margin:6px 4px 0 0;font-size:11px}.danger-chip{background:#7f1d1d;color:#fecaca}.warn-chip{background:#78350f;color:#fde68a}
.roster-group{margin:18px 0}.roster-title{font-size:11px;color:var(--muted);font-weight:900;letter-spacing:.08em;margin-bottom:8px}.roster-row{display:grid;grid-template-columns:46px 1fr auto;gap:8px;padding:11px 4px;border-bottom:1px solid var(--line)}.pos{color:var(--accent);font-weight:900}
.sunday-hero{display:flex;justify-content:space-between;align-items:center;gap:12px;border-color:#0ea5e9;background:linear-gradient(135deg,#111827,#0c2234)}.sunday-hero h2{font-size:20px;margin:3px 0}.sunday-stats{margin-top:10px}.urgent-card{border-color:#7f1d1d}.matchup-card{border-left:3px solid #38bdf8}.all-clear{margin-top:12px}.all-clear-card{background:#052e24;border:1px solid #14532d;border-radius:14px;padding:13px;color:#d1fae5}
.manager-rank-hero{border-color:#7c3aed;background:linear-gradient(135deg,#111827,#20123a)}.ranking-card{display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:start}.rank-number{font-size:22px;font-weight:900;color:var(--accent);padding-top:3px}.rank-main{min-width:0}.rank-grade{min-width:48px;text-align:center;font-size:20px;font-weight:900;background:#172033;border:1px solid #334155;border-radius:12px;padding:8px 6px}.rank-grade small{display:block;font-size:10px;color:var(--muted);margin-top:2px}.ranking-note{padding:10px 2px 2px}
.view{display:none}.view.active{display:block}nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(6,1fr);background:#0a101e;border-top:1px solid var(--line);padding:7px calc(7px + env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) calc(7px + env(safe-area-inset-left));z-index:10}.nav{background:transparent;color:var(--muted);padding:7px 2px;min-height:52px;font-size:14px}.nav small{display:block;font-size:10px}.nav.active{color:white;background:#172033}.sunday-nav.active{background:#0c4a6e;color:#e0f2fe}
@media(min-width:700px){.stats{grid-template-columns:repeat(4,1fr)}}