:root{--bg: #fbfcfd;--nav: #ffffff;--surface: #ffffff;--surface2: #f1f4f8;--border: #e4e9ef;--border2: #eef2f7;--text: #17212e;--text2: #5a6b80;--text3: #8b99ab;--accent: #1650c8;--accent-c: #ffffff;--accent-soft: #eaf1fd;--accent2: #2a72e8;--hero: linear-gradient(105deg, #0d2f7e, #1650c8 60%, #2a72e8);--hero-t: #ffffff;--hero-s: #c4d6f7;--gold: #d9a514;--silver: #9aa7b6;--bronze: #b0720a;--good: #0e7a45;--danger: #c2366b;--warn: #b0720a;--shadow: 0 1px 2px rgba(23, 33, 46, .04);--shadow2: 0 4px 16px rgba(23, 33, 46, .08)}:root[data-theme=dark]{--bg: #0c0f14;--nav: #0c0f14;--surface: #11151c;--surface2: #141a22;--border: #232c38;--border2: #1d232c;--text: #e6edf3;--text2: #7d8896;--text3: #5a6675;--accent: #2f7bff;--accent-c: #ffffff;--accent-soft: rgba(47, 123, 255, .12);--accent2: #4d8dff;--hero: linear-gradient(140deg, #10202a, #0d1420);--hero-t: #e6edf3;--hero-s: #8b98a8;--gold: #ffc247;--silver: #9aa7b6;--bronze: #e0a35c;--good: #37d99a;--danger: #f56ba0;--warn: #ffc247;--shadow: 0 0 0 rgba(0, 0, 0, 0);--shadow2: 0 6px 24px rgba(0, 0, 0, .4)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{opacity:.85}input,textarea,select,button{font-family:inherit}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}input::placeholder,textarea::placeholder{color:var(--text3)}.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);border-right:1px solid var(--border);padding:20px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px}.brand .logo{width:38px;height:38px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:900;flex-shrink:0}.brand .name{font-size:15px;font-weight:700;line-height:1.25}.brand .name small{display:block;font-size:11px;color:var(--text3);font-weight:400;letter-spacing:.5px}.nav-group{margin-top:8px}.nav-group h4{margin:14px 8px 6px;font-size:11px;color:var(--text3);font-weight:600;letter-spacing:1px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--text2);cursor:pointer;font-size:14px;margin-bottom:2px;border:none;background:none;width:100%;text-align:left}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:700}.nav-item .ico{width:18px;text-align:center}.sidebar .spacer{flex:1}.user-chip{display:flex;align-items:center;gap:9px;padding:10px 8px;border-top:1px solid var(--border);margin-top:8px}.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}.main{padding:26px 34px 60px;max-width:1180px}.page-head{margin-bottom:20px}.page-head h1{margin:0 0 4px;font-size:22px}.page-head p{margin:0;color:var(--text2);font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.card.pad{padding:18px 20px}.grid{display:grid;gap:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.muted{color:var(--text2)}.mini{font-size:12px;color:var(--text3)}.hr{height:1px;background:var(--border);border:0;margin:16px 0}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:6px;font-size:12px;font-weight:600}.tag.blue{background:var(--accent-soft);color:var(--accent)}.tag.green{background:#0e7a451f;color:var(--good)}.tag.grey{background:var(--surface2);color:var(--text2)}.tag.gold{background:#d9a51424;color:var(--gold)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 15px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;cursor:pointer}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{opacity:.9;color:#fff}.btn.danger:hover{border-color:var(--danger);color:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.sm{padding:5px 10px;font-size:12px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}.field .hint{font-size:12px;color:var(--text3);font-weight:400}input.inp,select.inp,textarea.inp{width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:14px}textarea.inp{resize:vertical;min-height:90px}.board{width:100%;border-collapse:collapse}.board th,.board td{padding:10px 12px;text-align:left;font-size:14px;border-bottom:1px solid var(--border2);white-space:nowrap}.board th{font-size:12px;color:var(--text3);font-weight:600;text-align:left}.board td.num,.board th.num{text-align:right;font-variant-numeric:tabular-nums}.board tr:hover td{background:var(--surface2)}.rank-badge{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;font-weight:800;font-size:13px;background:var(--surface2);color:var(--text2)}.rank-badge.r1{background:var(--gold);color:#4a3800}.rank-badge.r2{background:var(--silver);color:#2a3038}.rank-badge.r3{background:var(--bronze);color:#fff}.progress{position:relative;height:8px;border-radius:5px;background:var(--surface2);overflow:hidden;min-width:70px}.progress>i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:5px}.progress.over>i{background:var(--good)}.delta{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.delta.up{color:var(--good)}.delta.down{color:var(--danger)}.delta.flat{color:var(--text3)}.delta.new{color:var(--accent)}.tabs{display:inline-flex;background:var(--surface2);border-radius:9px;padding:3px;gap:3px;margin-bottom:16px}.tabs button{border:none;background:none;padding:7px 16px;border-radius:7px;font-size:13px;color:var(--text2);cursor:pointer}.tabs button.active{background:var(--surface);color:var(--accent);font-weight:700;box-shadow:var(--shadow)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px}.stat{padding:16px 18px}.stat .n{font-size:26px;font-weight:800}.stat .l{font-size:12px;color:var(--text2);margin-top:2px}.comp-card{padding:18px 20px;display:block}.comp-card:hover{border-color:var(--accent);box-shadow:var(--shadow2)}.comp-card h3{margin:0 0 6px;font-size:16px;color:var(--text)}.empty{text-align:center;padding:48px 20px;color:var(--text3)}.empty .big{font-size:40px;margin-bottom:10px;opacity:.5}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%);z-index:90;background:#17212e;color:#fff;padding:11px 20px;border-radius:10px;font-size:14px;box-shadow:var(--shadow2)}:root[data-theme=dark] .toast{background:#2a3442}.grid-table{width:100%;border-collapse:collapse}.grid-table th,.grid-table td{border:1px solid var(--border);padding:6px 8px;font-size:13px}.grid-table th{background:var(--surface2);position:sticky;top:0}.grid-table td.name{white-space:nowrap;font-weight:600}.grid-table input{width:90px;border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:5px;text-align:right}.grid-table input:focus{border-color:var(--accent);background:var(--surface)}.team-row td{background:var(--surface2);font-weight:700;font-size:12px;color:var(--text2)}.preview-table{width:100%;border-collapse:collapse;font-size:12px}.preview-table th,.preview-table td{border:1px solid var(--border);padding:4px 7px;text-align:left;white-space:nowrap}.preview-table td.bad{background:#c2366b24;color:var(--danger)}.preview-table th{background:var(--surface2)}@media(max-width:760px){.app{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:20;height:auto;padding:8px 10px;flex-direction:row;align-items:center;gap:4px;overflow-x:auto;flex-wrap:nowrap;border-bottom:1px solid var(--border)}.sidebar .brand{padding:2px 6px 2px 2px;flex-shrink:0}.sidebar .brand .logo{width:30px;height:30px;font-size:17px;border-radius:7px}.sidebar .brand .name{font-size:13px}.sidebar .brand .name small{display:none}.nav-group{display:contents}.nav-group h4{display:none}.nav-item{width:auto;flex-shrink:0;white-space:nowrap;padding:7px 10px;margin-bottom:0}.sidebar .spacer{display:none}.user-chip{flex-shrink:0;border-top:none;margin-top:0;padding:4px}.user-chip>div{display:none}.main{padding:16px 14px 50px}.page-head h1{font-size:19px}.stat-grid{grid-template-columns:repeat(2,1fr)}}
