@import url("https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600;700&family=Oswald:wght@500;600;700&display=swap");:root{--bg:#05070d;--panel:#0b1018;--gold:#e8a317;--gold-bright:#ffc94a;--blue:#1f6fd0;--blue-dark:#0e3a6b;--red:#c0392b;--red-dark:#5e1a14;--ink:#e8ecf2;--mute:#7b8597;--win-row:#10243f;--los-row:#3a1512;--line:#243047;--silver:#c0c5cf;--silver-dark:#5a606b;--bronze:#c97f2a;--bronze-dark:#5a3712;--green:#46c46a;--green-dim:#2a7d3a}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg)}body{background:radial-gradient(900px 500px at 20% 0,#0d1f38 0,transparent 60%),radial-gradient(900px 500px at 85% 100%,#2a0f0c 0,transparent 60%),var(--bg);font-family:Rajdhani,sans-serif;color:var(--ink);min-height:100vh;padding:24px 18px 40px}.wrap{max-width:1880px;margin:0 auto}.frame{border:1px solid #1c2840;background:linear-gradient(180deg,#080b12,#05070d);padding:24px 26px 28px;position:relative}.bracket-scroll{overflow-x:auto}.bracket-scroll .zone-label{position:-webkit-sticky;position:sticky;left:0;width:max-content;background:linear-gradient(180deg,#080b12,#05070d);padding-right:8px;z-index:2}header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;border-bottom:2px solid #1c2840;padding-bottom:16px;margin-bottom:6px}.title h1{font-family:Oswald,sans-serif;font-size:34px;font-weight:700;letter-spacing:2px;line-height:.95}.title h1 .light{color:#fff}.title h1 .acc{color:var(--gold-bright)}.title .sub{font-size:13px;letter-spacing:4px;color:var(--mute);margin-top:6px;font-weight:600}.header-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}@media (max-width:760px){header{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:12px}.title{width:100%}.header-actions{width:100%;justify-content:flex-start}.header-hint{width:100%}}.btn-ranking{font-family:Oswald,sans-serif;font-weight:700;letter-spacing:2px;font-size:14px;padding:10px 20px;background:var(--gold);color:#06070a;text-decoration:none;border:2px solid var(--gold);display:inline-flex;align-items:center;gap:8px;transition:transform .12s ease,background .12s ease,box-shadow .12s ease;box-shadow:0 0 0 rgba(232,163,23,0)}.btn-ranking:hover{background:var(--gold-bright);transform:translateY(-1px);box-shadow:0 4px 14px rgba(232,163,23,.35)}.btn-ranking .ico{font-size:16px;line-height:1}.btn-admin{font-family:Oswald,sans-serif;font-weight:700;letter-spacing:2px;font-size:12px;padding:9px 16px;background:transparent;color:var(--mute);text-decoration:none;border:1px solid var(--line);transition:color .12s ease,border-color .12s ease}.btn-admin:hover{color:var(--gold-bright);border-color:var(--gold)}.header-hint{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);letter-spacing:.5px;font-weight:600;margin-top:10px;background:rgba(232,163,23,.08);border:1px solid rgba(232,163,23,.3);padding:7px 12px;border-radius:2px}.header-hint .pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold-bright);box-shadow:0 0 8px var(--gold-bright);animation:pulse-dot 1.6s ease-in-out infinite;flex-shrink:0}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.gf-badge{border:2px solid var(--gold);padding:9px 18px;text-align:center;background:linear-gradient(180deg,#1a1306,#0c0a05)}.gf-badge .t{font-family:Oswald,sans-serif;font-size:12px;letter-spacing:1.5px;font-weight:700}.gf-badge .t .b{color:var(--blue)}.gf-badge .t .r{color:var(--red)}.gf-badge .s{font-size:10px;letter-spacing:2px;color:var(--gold-bright);margin-top:3px}.zone-label{display:flex;align-items:center;gap:10px;font-family:Oswald,sans-serif;font-size:20px;font-weight:700;letter-spacing:2px;margin:16px 0 4px}.zone-label.win{color:var(--blue)}.zone-label.los{color:var(--red)}.zone-label .hint{font-size:12px;color:var(--mute);font-weight:600;letter-spacing:1px}.cols{gap:30px;align-items:flex-start;min-width:max-content}.col,.cols{display:flex}.col{flex-direction:column}.col-head{font-size:11px;letter-spacing:1.5px;font-weight:700;text-align:center;padding:6px 4px;margin-bottom:8px;text-transform:uppercase}.col-head.win{background:var(--blue-dark);color:#bcd6f5;border-top:2px solid var(--blue)}.col-head.los{background:var(--red-dark);color:#f0c0ba;border-top:2px solid var(--red)}.col-head .sm{display:block;font-size:9px;color:var(--mute);letter-spacing:1px}.match{width:206px;background:var(--panel);border:1px solid var(--line);margin:7px 0;position:relative}.match .code{position:absolute;top:-9px;left:8px;font-size:9px;font-weight:700;letter-spacing:1px;padding:1px 7px;color:#fff;white-space:nowrap;line-height:1.2}.match.win .code{background:var(--blue)}.match.los .code{background:var(--red)}.match.gf .code{background:var(--gold);color:#06070a}.team{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;font-size:14px;font-weight:600}.team:first-of-type{border-bottom:1px solid var(--line)}.team .score{font-family:Oswald,sans-serif;font-weight:700;font-size:15px;min-width:24px;text-align:center}.team.winner{background:rgba(232,163,23,.08)}.team.winner .name,.team.winner .score{color:var(--gold-bright)}.team.loser .name,.team.loser .score{color:var(--mute)}.team.bye .name{color:#566072;font-style:italic}.team.bye .score{color:#566072}.team.pending .name{color:#9aa6b8}.team.pending .score{color:#3d4658}.trophy{color:var(--gold);margin-left:6px;font-size:11px}.champ{width:206px;margin:10px 0;border:2px solid var(--gold);background:linear-gradient(180deg,#1a1306,#0b0a05);text-align:center}.champ .lbl{font-size:11px;letter-spacing:1.5px;color:#06070a;background:var(--gold);padding:3px 0}.champ .lbl,.champ .val{font-family:Oswald,sans-serif;font-weight:700}.champ .val{padding:9px 6px;font-size:15px;color:var(--gold-bright);letter-spacing:1px}.champ.third{border-color:#c97f2a}.champ.third .lbl{background:#c97f2a}.champ.third .val{color:#e8a865}.sp{flex:1 1}.col-spacer{width:206px}.col-spacer-half{width:90px}.gf-col{display:flex;flex-direction:column;align-items:center;gap:12px;border:2px solid var(--gold);padding:18px 22px;box-shadow:0 0 0 1px rgba(232,163,23,.15),0 4px 20px rgba(232,163,23,.15);position:relative}.gf-title{font-family:Oswald,sans-serif;font-size:15px;font-weight:700;color:var(--gold-bright);letter-spacing:1px;text-align:center}footer{justify-content:space-between;align-items:center;gap:14px;border-top:2px solid #1c2840;margin-top:20px;padding-top:14px}.legend,footer{display:flex;flex-wrap:wrap}.legend{gap:18px;font-size:12px;font-weight:600}.legend .it{display:flex;align-items:center;gap:6px;color:var(--mute)}.swatch{width:15px;height:13px;border:1px solid var(--line);display:inline-block}.brand{font-family:Oswald,sans-serif;font-size:26px;font-weight:700;color:#fff}.brand span{color:var(--gold)}.adminlink{color:var(--mute);font-size:12px;text-decoration:none;border:1px solid var(--line);padding:5px 12px;letter-spacing:1px}.adminlink:hover{color:var(--gold-bright);border-color:var(--gold)}.admin-wrap{max-width:720px;margin:40px auto}.card{background:var(--panel);border:1px solid var(--line);padding:26px}.card h2{font-family:Oswald,sans-serif;font-size:22px;color:var(--gold-bright);letter-spacing:1px;margin-bottom:6px}.card p.desc{color:var(--mute);font-size:13px;margin-bottom:18px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12px;letter-spacing:1px;color:var(--mute);font-weight:700}input[type=number],input[type=password]{background:#05070d;border:1px solid var(--line);color:var(--ink);padding:9px 11px;font-family:Rajdhani,sans-serif;font-size:15px;font-weight:600}input:focus{outline:none;border-color:var(--gold)}.btn{font-family:Oswald,sans-serif;font-weight:700;letter-spacing:1px;padding:9px 20px;border:none;cursor:pointer;font-size:13px}.btn.gold{background:var(--gold);color:#06070a}.btn.gold:hover{background:var(--gold-bright)}.btn.ghost{background:transparent;color:var(--mute);border:1px solid var(--line)}.btn.ghost:hover{color:var(--ink);border-color:var(--gold)}.btn.danger{background:transparent;color:var(--red);border:1px solid var(--red-dark)}.btn.danger:hover{background:var(--red-dark);color:#fff}.err{color:#ff8b7e;margin-top:4px}.err,.ok-msg{font-size:13px;font-weight:600}.ok-msg{color:var(--gold-bright)}.editor-match{display:flex;align-items:center;gap:10px;background:#05070d;border:1px solid var(--line);padding:9px 12px;margin:6px 0}.editor-match .em-code{font-size:9px;font-weight:700;padding:2px 7px;color:#fff;letter-spacing:1px;min-width:62px;text-align:center}.editor-match.win .em-code{background:var(--blue)}.editor-match.los .em-code{background:var(--red)}.editor-match.gf .em-code{background:var(--gold);color:#06070a}.editor-match .em-team{flex:1 1;font-size:13px;font-weight:600}.editor-match .em-team.bye{color:#566072;font-style:italic}.team-picker{position:relative;flex:1 1;font-size:13px;font-weight:600;cursor:pointer;padding:4px 6px;border:1px dashed transparent;display:inline-flex;align-items:center;min-height:24px;transition:border-color .12s ease,background .12s ease}.team-picker:hover{border-color:var(--line);background:hsla(0,0%,100%,.02)}.team-picker.right{justify-content:flex-end}.team-picker.bye .team-picker-display{color:#566072;font-style:italic}.team-picker.overridden{border-color:var(--gold);background:rgba(232,163,23,.08)}.team-picker.overridden .team-picker-display{color:var(--gold-bright)}.team-picker.overridden:after{content:"manual";position:absolute;top:-9px;right:4px;font-size:8px;letter-spacing:1px;color:#06070a;background:var(--gold);padding:1px 5px;font-weight:700}.team-picker select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;background:transparent;font-size:0;color:var(--ink);color-scheme:dark}.team-picker select option{background-color:var(--panel);color:var(--ink);font-family:Rajdhani,sans-serif;font-size:14px;font-weight:600;padding:6px}.team-picker select option:checked{background-color:var(--gold);color:#06070a}.team-picker-display{pointer-events:none}.editor-match input[type=number]{width:54px;text-align:center;padding:6px}.editor-match .vs{color:var(--mute);font-size:11px}.section-title{font-family:Oswald,sans-serif;font-size:14px;letter-spacing:1px;color:var(--mute);margin:18px 0 4px;border-bottom:1px solid var(--line);padding-bottom:4px}.toolbar{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.topbar a{color:var(--mute);font-size:12px;text-decoration:none;letter-spacing:1px}.topbar a:hover{color:var(--gold-bright)}.match.clickable{display:block;text-decoration:none;color:inherit;cursor:pointer;transition:border-color .12s ease,transform .12s ease}.match.clickable:hover{border-color:var(--gold)}.match.clickable:focus{outline:none;border-color:var(--gold-bright)}.admin-nav{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.admin-nav-item{display:inline-block;padding:8px 14px;font-family:Oswald,sans-serif;font-size:12px;letter-spacing:1.5px;font-weight:700;color:var(--mute);border:1px solid var(--line);text-decoration:none}.admin-nav-item:hover{color:var(--ink);border-color:var(--gold)}.admin-nav-item.active{color:#06070a;background:var(--gold);border-color:var(--gold)}.back-link{font-size:12px;color:var(--mute);text-decoration:none;letter-spacing:1px}.back-link:hover{color:var(--gold-bright)}.team-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 16px}.team-tab-wrap{display:inline-flex;align-items:stretch;border:1px solid var(--line);background:#05070d}.team-tab-wrap.active{border-color:var(--gold)}.team-tab{font-family:Oswald,sans-serif;font-size:11px;letter-spacing:1px;font-weight:700;background:transparent;color:var(--mute);border:0;padding:6px 10px;cursor:pointer}.team-tab:hover{color:var(--ink)}.team-tab.active{background:var(--gold);color:#06070a}.tab-action{background:transparent;color:var(--mute);border:0;border-left:1px solid var(--line);padding:0 8px;font-size:12px;cursor:pointer;font-weight:700}.tab-action:hover{color:var(--gold-bright);background:#0d1119}.tab-action.danger:hover{color:#ff8b7e;background:rgba(192,57,43,.12)}.tab-action:disabled{opacity:.4;cursor:not-allowed}.add-team-form{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.add-team-form input[type=text]{flex:1 1;min-width:200px;background:#05070d;border:1px solid var(--line);color:var(--ink);padding:9px 11px;font-family:Rajdhani,sans-serif;font-size:15px;font-weight:600}.add-team-form input[type=text]:focus{outline:none;border-color:var(--gold)}.roster-row{display:flex;align-items:center;gap:10px;background:#05070d;border:1px solid var(--line);padding:8px 12px;margin:5px 0}.role-tag{font-family:Oswald,sans-serif;font-size:10px;letter-spacing:1px;font-weight:700;padding:2px 8px;background:var(--blue);color:#fff;min-width:76px;text-align:center}.role-tag.reserve{background:var(--mute);color:#06070a}.slot-num{font-family:Oswald,sans-serif;font-size:12px;color:var(--mute);min-width:28px}.roster-row input[type=text]{flex:1 1;background:#05070d;border:1px solid var(--line);color:var(--ink);padding:7px 10px;font-family:Rajdhani,sans-serif;font-size:14px;font-weight:600}.roster-row input[type=text]:focus{outline:none;border-color:var(--gold)}.stats-row{display:flex;align-items:center;gap:12px;background:#05070d;border:1px solid var(--line);padding:9px 12px;margin:5px 0;text-decoration:none;color:inherit}.stats-row:hover{border-color:var(--gold)}.stats-row .em-code{font-size:9px;font-weight:700;padding:2px 7px;color:#fff;letter-spacing:1px;min-width:62px;text-align:center;background:var(--blue)}.stats-teams{flex:1 1;font-size:13px;font-weight:600;color:var(--ink)}.stats-fmt{font-family:Oswald,sans-serif;color:var(--gold-bright)}.stats-fmt,.stats-status{font-size:11px;letter-spacing:1px}.stats-arrow,.stats-status{color:var(--mute)}.warn-box{background:#3a2a05;border:1px solid var(--gold);padding:10px 14px;margin:14px 0;font-size:13px;font-weight:600}.warn-box,.warn-box a{color:var(--gold-bright)}.warn-box a{font-weight:700;text-decoration:underline}.map-block{border:1px solid var(--line);background:#05070d;padding:14px;margin:14px 0}.map-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.map-label{font-family:Oswald,sans-serif;font-size:11px;letter-spacing:1.5px;font-weight:700;background:var(--gold);color:#06070a;padding:3px 10px}.map-head select{background:#05070d;border:1px solid var(--line);color:var(--ink);padding:7px 10px;font-family:Rajdhani,sans-serif;font-size:14px;font-weight:600}.map-head select:focus{outline:none;border-color:var(--gold)}.score-group{display:flex;align-items:center;gap:6px}.score-group input[type=number]{width:60px;text-align:center;padding:6px}.stats-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}@media (max-width:760px){.stats-grid{grid-template-columns:1fr}}.stats-col-title{font-family:Oswald,sans-serif;font-size:13px;letter-spacing:1.5px;font-weight:700;padding:5px 8px;margin-bottom:6px;text-align:center}.stats-col-title.win{background:var(--blue-dark);color:#bcd6f5;border-top:2px solid var(--blue)}.stats-col-title.los{background:var(--red-dark);color:#f0c0ba;border-top:2px solid var(--red)}table.stats-edit{width:100%;border-collapse:collapse}table.stats-edit td,table.stats-edit th{padding:5px 6px;font-size:13px;border-bottom:1px solid var(--line);text-align:center;color:var(--ink);font-weight:600}table.stats-edit th{font-family:Oswald,sans-serif;font-size:10px;letter-spacing:1px;color:var(--mute)}table.stats-edit input[type=number]{width:50px;text-align:center;padding:5px;font-size:13px}.wo-control{display:flex;align-items:center;gap:6px}.wo-control label{font-family:Oswald,sans-serif;font-size:11px;letter-spacing:1.5px;color:var(--gold-bright);font-weight:700}.wo-control select{background:#05070d;border:1px solid var(--line);color:var(--ink);padding:6px 8px;font-family:Rajdhani,sans-serif;font-size:13px;font-weight:600}.wo-control select:focus{outline:none;border-color:var(--gold)}.wo-banner{background:#3a2a05;border:1px solid var(--gold);color:var(--gold-bright);padding:10px 14px;font-size:13px;font-weight:600}.match-head{justify-content:space-between;background:var(--panel);border:1px solid var(--line);padding:18px 22px;margin-top:6px;flex-wrap:wrap}.match-head,.match-head-side{display:flex;align-items:center;gap:14px}.match-head-side{flex:1 1}.match-head-side.right{justify-content:flex-end}.match-head-team{font-size:22px;letter-spacing:1px;color:var(--ink)}.match-head-score,.match-head-team{font-family:Oswald,sans-serif;font-weight:700}.match-head-score{font-size:42px;color:var(--mute);min-width:48px;text-align:center}.match-head-score.win{color:var(--gold-bright)}.match-head-vs{text-align:center;color:var(--mute);font-family:Oswald,sans-serif;font-size:12px;letter-spacing:2px;font-weight:700}.match-head-fmt{color:var(--gold-bright);font-size:13px}.match-head-label{font-size:10px;color:var(--mute);margin-top:2px}.match-tabs{display:flex;gap:5px;flex-wrap:wrap;margin:18px 0 10px;border-bottom:1px solid var(--line)}.match-tab{font-family:Oswald,sans-serif;font-size:12px;letter-spacing:1.5px;font-weight:700;background:transparent;color:var(--mute);border:1px solid var(--line);border-bottom:none;padding:8px 14px;cursor:pointer;margin-bottom:-1px}.match-tab:hover{color:var(--ink)}.match-tab.active{background:var(--panel);color:var(--gold-bright);border-color:var(--gold)}.map-score-banner{display:flex;align-items:center;justify-content:center;gap:14px;background:var(--panel);border:1px solid var(--line);padding:10px;margin:6px 0 14px}.map-score-banner .map-name{font-family:Oswald,sans-serif;font-size:16px;letter-spacing:2px;color:var(--gold-bright);font-weight:700}.map-score-banner .map-rounds{font-family:Oswald,sans-serif;font-size:22px;font-weight:700;color:var(--ink)}.map-score-banner .vs{color:var(--mute);font-size:14px;margin:0 6px}.team-stats-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px;margin-top:6px}@media (max-width:760px){.team-stats-grid{grid-template-columns:1fr}}.team-stats-block{display:flex;flex-direction:column}.team-stats-title{font-family:Oswald,sans-serif;font-size:14px;letter-spacing:2px;font-weight:700;padding:8px 12px;text-align:center}.team-stats-title.win{background:var(--blue-dark);color:#bcd6f5;border-top:2px solid var(--blue)}.team-stats-title.los{background:var(--red-dark);color:#f0c0ba;border-top:2px solid var(--red)}table.stats-public{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line)}table.stats-public td,table.stats-public th{padding:9px 12px;font-size:14px;border-bottom:1px solid var(--line);text-align:center;color:var(--ink);font-weight:600}table.stats-public th{font-family:Oswald,sans-serif;font-size:11px;letter-spacing:1.5px;color:var(--mute);background:#05070d}table.stats-public td.player,table.stats-public th.player{text-align:left;font-weight:700}.diff-pos{color:var(--green);font-weight:700}.diff-neg{color:#ff8b7e;font-weight:700}.diff-zero{color:var(--mute);font-weight:700}.podium-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;margin:22px 0}@media (max-width:760px){.podium-row{grid-template-columns:1fr}}.podium{border:2px solid var(--line);background:linear-gradient(180deg,#0c111b,#05070d);padding:16px;text-align:center;position:relative}.podium.gold{border-color:var(--gold);background:linear-gradient(180deg,#1a1306,#0b0a05)}.podium.silver{border-color:var(--silver);background:linear-gradient(180deg,#161820,#0a0c10)}.podium.bronze{border-color:var(--bronze);background:linear-gradient(180deg,#1a1006,#0a0805)}.podium-pos{font-family:Oswald,sans-serif;font-size:38px;font-weight:700;line-height:1}.podium.gold .podium-pos{color:var(--gold-bright)}.podium.silver .podium-pos{color:var(--silver)}.podium.bronze .podium-pos{color:var(--bronze)}.podium-label{font-family:Oswald,sans-serif;font-size:11px;letter-spacing:2px;font-weight:700;margin-top:2px}.podium.gold .podium-label{color:var(--gold)}.podium.silver .podium-label{color:var(--silver-dark)}.podium.bronze .podium-label{color:var(--bronze)}.podium-name{font-family:Oswald,sans-serif;font-size:22px;font-weight:700;color:var(--ink);letter-spacing:1px;margin:8px 0 2px}.podium-team{font-size:11px;color:var(--mute);letter-spacing:1.5px;font-weight:700;margin-bottom:6px}.podium-stats{display:flex;justify-content:center;gap:14px;color:var(--mute);font-size:13px;font-weight:600}.podium-stats strong{color:var(--ink)}.podium-diff{font-family:Oswald,sans-serif;font-size:18px;letter-spacing:1px;margin-top:8px}.podium-maps{font-size:11px;color:var(--mute);letter-spacing:1px;margin-top:4px}table.ranking-table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);margin-top:10px}table.ranking-table td,table.ranking-table th{padding:9px 12px;font-size:14px;border-bottom:1px solid var(--line);text-align:center;color:var(--ink);font-weight:600}table.ranking-table th{font-family:Oswald,sans-serif;font-size:11px;letter-spacing:1.5px;color:var(--mute);background:#05070d}table.ranking-table td.player,table.ranking-table th.player{text-align:left;font-weight:700}.rank-pos{font-family:Oswald,sans-serif;color:var(--gold-bright);font-weight:700}.team-cell{color:var(--mute);font-weight:600;font-size:12px;letter-spacing:1px}