@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";:root{--brand: #6B4EBA;--brand-dark: #5A3FA3;--brand-light: #EDE9F8;--brand-mid: #AFA9EC;--brand-border: rgba(107, 78, 186, .2);--bg-page: #F0EEF8;--bg-card: #FFFFFF;--bg-hover: #F7F5FD;--text-primary: #1A1523;--text-secondary: #6B6582;--text-tertiary: #9E99AF;--border: rgba(107, 78, 186, .15);--border-hover: rgba(107, 78, 186, .3);--green: #16A34A;--green-bg: #DCFCE7;--green-border: rgba(22, 163, 74, .25);--red: #DC2626;--red-bg: #FEE2E2;--red-border: rgba(220, 38, 38, .25);--amber: #D97706;--amber-bg: #FEF3C7;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-card: 0 1px 3px rgba(107, 78, 186, .06), 0 4px 16px rgba(107, 78, 186, .04);--shadow-hover: 0 4px 20px rgba(107, 78, 186, .12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:DM Sans,system-ui,sans-serif;background:var(--bg-page);color:var(--text-primary);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--brand-mid);border-radius:3px}.topbar{position:sticky;top:0;z-index:50;background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;gap:16px}.topbar-brand{display:flex;align-items:center;gap:10px}.topbar-badge{width:36px;height:36px;border-radius:10px;background:var(--brand);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.topbar-title{font-size:15px;font-weight:700;color:var(--text-primary);letter-spacing:-.2px}.topbar-sub{font-size:11px;color:var(--text-tertiary);margin-top:1px}.topbar-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.status-pill{display:flex;align-items:center;gap:6px;background:var(--brand-light);border:.5px solid var(--brand-border);border-radius:99px;padding:4px 12px;font-size:12px;font-weight:500;color:var(--text-secondary)}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.refresh-btn{font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;color:var(--brand);background:var(--brand-light);border:1px solid var(--brand-border);border-radius:var(--radius-sm);padding:6px 14px;cursor:pointer;transition:all .12s}.refresh-btn:hover:not(:disabled){background:var(--brand);color:#fff;border-color:var(--brand)}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.page-body{max-width:1100px;margin:0 auto;padding:24px 24px 56px}.tabs-bar{display:flex;gap:4px;margin-bottom:24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:4px;width:fit-content}.tab-btn{font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;padding:7px 18px;border-radius:9px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap}.tab-btn:hover:not(.active){color:var(--brand);background:var(--brand-light)}.tab-btn.active{background:var(--brand);color:#fff;box-shadow:0 1px 6px #6b4eba4d}.error-banner{background:var(--red-bg);border:1px solid var(--red-border);border-radius:var(--radius-sm);padding:10px 16px;margin-bottom:20px;color:var(--red);font-size:13px;font-weight:500}.sweep-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card)}.sweep-section-header{padding:10px 18px;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;border-bottom:1px solid var(--border)}.sweep-section-header.alive{background:#f0fdf4;color:var(--green);border-color:var(--green-border)}.sweep-section-header.out{background:#fff5f5;color:var(--red);border-color:var(--red-border);border-top:1px solid var(--red-border)}.sweep-row{display:flex;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid var(--border);transition:background .1s}.sweep-row:last-child{border-bottom:none}.sweep-row:hover{background:var(--bg-hover)}.sweep-row.eliminated{opacity:.5}.sweep-row.champion{background:#f0fdf4}.sweep-flags{display:flex;gap:3px;min-width:52px}.sweep-flag{font-size:22px;line-height:1;transition:opacity .2s}.sweep-flag.out{opacity:.25}.sweep-info{flex:1}.sweep-name{font-size:14px;font-weight:700;color:var(--text-primary)}.sweep-name.champion{color:var(--green)}.sweep-name.eliminated{color:var(--text-tertiary)}.sweep-teams{font-size:12px;color:var(--text-tertiary);margin-top:2px;display:flex;gap:6px;flex-wrap:wrap}.sweep-team-name{color:var(--text-secondary)}.sweep-team-name.out{text-decoration:line-through;color:var(--text-tertiary)}.sweep-team-name.champion{color:var(--green);font-weight:600}.sweep-team-sep{color:var(--border-hover)}.status-badge{font-size:11px;font-weight:700;letter-spacing:.3px;padding:4px 12px;border-radius:99px;white-space:nowrap;flex-shrink:0}.status-badge.alive{background:var(--green-bg);color:var(--green)}.status-badge.out{background:var(--red-bg);color:var(--red)}.status-badge.champion{background:#dcfce7;color:var(--green);border:1px solid var(--green-border)}.wallchart-empty{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:56px 24px;text-align:center;box-shadow:var(--shadow-card)}.wallchart-empty-icon{font-size:44px;margin-bottom:14px}.wallchart-empty-title{font-size:17px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.wallchart-empty-sub{font-size:14px;color:var(--text-secondary);line-height:1.6;max-width:380px;margin:0 auto}.wallchart-empty-sub strong{color:var(--brand)}.wallchart-scroll{overflow-x:auto;padding-bottom:8px}.wallchart-grid{display:flex;gap:12px;min-width:max-content}.wallchart-round{min-width:188px}.round-header{background:var(--brand);color:#fff;font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;padding:8px 14px;border-radius:var(--radius-sm);text-align:center;margin-bottom:10px}.round-empty{background:var(--bg-card);border:1px dashed var(--border);border-radius:var(--radius-sm);padding:20px 14px;text-align:center;color:var(--text-tertiary);font-size:12px}.match-slot{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:8px;box-shadow:var(--shadow-card)}.match-label{font-size:9px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:6px}.match-team{display:flex;align-items:center;gap:7px;padding:5px 7px;border-radius:6px;margin-bottom:3px;transition:background .1s}.match-team:last-child{margin-bottom:0}.match-team.winner{background:var(--green-bg)}.match-team.loser{opacity:.4}.match-team-flag{font-size:15px;line-height:1}.match-team-name{flex:1;font-size:11px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-team-name.winner{color:var(--green);font-weight:700}.match-team-name.tbd{color:var(--text-tertiary);font-weight:400}.match-team-score{font-size:13px;font-weight:800;color:var(--text-primary);min-width:14px;text-align:right}.match-team-score.winner{color:var(--green)}.champion-slot{min-width:160px;display:flex;align-items:center}.champion-card{background:var(--green-bg);border:1.5px solid var(--green-border);border-radius:var(--radius-md);padding:24px 16px;text-align:center;width:100%}.champion-trophy{font-size:36px;margin-bottom:10px}.champion-label{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--green);margin-bottom:8px}.champion-flag{font-size:28px;margin-bottom:4px}.champion-name{font-size:14px;font-weight:800;color:var(--green)}.groups-search{display:flex;align-items:center;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 14px;height:40px;margin-bottom:20px;transition:border-color .15s;max-width:380px}.groups-search:focus-within{border-color:var(--brand-mid);outline:2px solid var(--brand-light)}.groups-search input{flex:1;border:none;background:none;outline:none;font-family:DM Sans,sans-serif;font-size:14px;color:var(--text-primary)}.groups-search input::placeholder{color:var(--text-tertiary)}.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.group-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);min-width:0}.group-card-header{padding:10px 16px;background:var(--brand-light);border-bottom:1px solid var(--brand-border);display:flex;align-items:center;gap:10px}.group-letter{font-size:20px;font-weight:900;color:var(--brand);font-family:Georgia,serif;line-height:1}.group-label{font-size:11px;color:var(--text-tertiary);font-weight:500}.group-table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}.group-table th{padding:5px 4px;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text-tertiary);text-align:center;border-bottom:1px solid var(--border);background:var(--bg-hover);overflow:hidden}.group-table th.left{text-align:left}.group-table td{padding:7px 4px;text-align:center;border-bottom:1px solid var(--border);color:var(--text-secondary);overflow:hidden}.group-table tr:last-child td{border-bottom:none}.group-table tr.out td{opacity:.4}.group-table tr.champ{background:#f0fdf4}.group-table tr:hover td{background:var(--bg-hover)}.td-rank{color:var(--text-tertiary);font-size:11px}.td-flag{font-size:16px}.td-team{text-align:left;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-status-tag{display:inline-block;font-size:9px;font-weight:700;padding:1px 5px;border-radius:4px;margin-left:5px;letter-spacing:.3px;text-transform:uppercase;vertical-align:middle}.team-status-tag.out{background:var(--red-bg);color:var(--red)}.team-status-tag.champ{background:var(--green-bg);color:var(--green)}.td-player{text-align:left;color:var(--brand);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td-pts{color:var(--brand);font-weight:800;font-size:14px}.td-gd-pos{color:var(--green);font-weight:700}.td-gd-neg{color:var(--red);font-weight:700}@media (max-width: 640px){.topbar{padding:0 16px;height:52px}.topbar-sub,.status-pill{display:none}.page-body{padding:16px 16px 48px}.tabs-bar{width:100%}.tab-btn{flex:1;text-align:center;padding:7px 10px}.groups-grid{grid-template-columns:1fr}}.match-slot-placeholder{opacity:.45;border-style:dashed}.match-slot-placeholder:hover{opacity:.6}.tbd-row .match-team-flag{filter:grayscale(1)}.champion-card-empty{background:var(--bg-hover)!important;border-color:var(--border)!important;border-style:dashed!important}.champion-card-empty .champion-trophy{filter:grayscale(.7);opacity:.5}.champion-card-empty .champion-label{color:var(--text-tertiary)!important}
