*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif;background:#0d1117;color:#e6edf3;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45}input,button,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:#58a6ff;text-decoration:none}a:hover{text-decoration:underline}.app{max-width:1100px;margin:0 auto;padding:16px 16px 240px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px 16px;flex-wrap:wrap}.app-header h1{margin:0;font-size:20px;letter-spacing:-.01em}.app-header nav{display:flex;gap:16px;align-items:center}.card{background:#161b22;border:1px solid #30363d;border-radius:10px;padding:16px;margin-bottom:16px}.card h2{margin:0 0 8px;font-size:16px;font-weight:600}.rules-card ul{margin:6px 0 0 18px;padding:0}.rules-card li{margin:2px 0}.rules-card .group{margin-top:10px}.rules-card .group h3{margin:0 0 4px;font-size:13px;font-weight:600;color:#7d8590;text-transform:uppercase;letter-spacing:.04em}.picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}.picker-item{background:#21262d;border:1px solid #30363d;border-radius:8px;padding:12px;text-align:left;color:#e6edf3;display:flex;flex-direction:column;gap:4px;text-decoration:none}.picker-item:hover{border-color:#58a6ff;text-decoration:none}.picker-item .name{font-weight:600}.picker-item .owner{font-size:13px;color:#7d8590}.roster{background:#161b22;border:1px solid #30363d;border-radius:10px;overflow:hidden}.roster-row{display:grid;grid-template-columns:28px 28px minmax(140px,1fr) 38px 38px 36px 60px 60px;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid #21262d}.roster-row:first-child{border-top:0}.roster-row.header{background:#0d1117;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#7d8590;font-weight:600}.roster-row .pname{font-weight:500}.roster-row .meta{font-size:12px;color:#7d8590}.roster-row .col-num{text-align:right;font-variant-numeric:tabular-nums}.roster-row .keep-active{color:#3fb950;font-weight:600}.roster-row .tag-active{color:#d29922;font-weight:600}.toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;border:1.5px solid #484f58;border-radius:4px;background:transparent;cursor:pointer;position:relative}.toggle:checked{background:#1f6feb;border-color:#1f6feb}.toggle:checked:after{content:"";position:absolute;left:5px;top:1px;width:6px;height:12px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.toggle.tag:checked{background:#d29922;border-color:#d29922}.toggle:disabled{opacity:.4;cursor:not-allowed}.sticky-panel{position:fixed;left:0;right:0;bottom:0;background:#0d1117ee;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid #30363d;padding:12px 16px;z-index:50}.sticky-panel-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.stat{display:flex;flex-direction:column;gap:1px;min-width:70px}.stat .label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#7d8590}.stat .value{font-variant-numeric:tabular-nums;font-weight:600;font-size:15px}.stat.bad .value{color:#f85149}.stat.good .value{color:#3fb950}.stat.warn .value{color:#d29922}.stat-spacer{flex:1}.save-btn{background:#238636;border:1px solid #2ea043;color:#fff;padding:9px 18px;border-radius:6px;font-weight:600;font-size:14px}.save-btn:hover:not(:disabled){background:#2ea043}.save-btn:disabled{background:#30363d;border-color:#30363d}.error-list,.hint-list{margin:8px 0 0;padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.5}.error-list{background:#2d0f0f;border:1px solid #6e2222;color:#ffb4ad}.hint-list{background:#2b240a;border:1px solid #6e5a18;color:#f0d672}.error-list ul,.hint-list ul{margin:0;padding-left:18px}.league-table{width:100%;border-collapse:collapse;background:#161b22;border:1px solid #30363d;border-radius:10px;overflow:hidden}.league-table th,.league-table td{padding:10px 12px;text-align:left;font-size:14px;border-top:1px solid #21262d;vertical-align:top}.league-table th{background:#0d1117;color:#7d8590;font-size:12px;text-transform:uppercase;letter-spacing:.05em;border-top:0;cursor:pointer;-webkit-user-select:none;user-select:none}.league-table th.active{color:#58a6ff}.league-table td.num{text-align:right;font-variant-numeric:tabular-nums}.league-table .keeper-list{font-size:12px;color:#adb5bd;display:flex;flex-wrap:wrap;gap:4px 12px}.league-table .keeper-list .tag{color:#d29922}@media (max-width: 720px){.app{padding:12px 12px 240px}.roster-row{grid-template-columns:26px 26px minmax(110px,1fr) 30px 50px 50px;gap:6px;font-size:13px}.roster-row .col-team,.roster-row .col-yr{display:none}.league-table th,.league-table td{padding:8px 6px;font-size:12px}.league-table .col-keepers{display:none}}
