@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;overflow-x:auto}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}.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}.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}.gf-col{display:flex;flex-direction:column;align-items:center;gap:12px;border-left:2px solid #1c2840;padding-left:26px;margin-left:4px}.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}.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{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:5px;flex-wrap:wrap;margin:10px 0 16px}.team-tab{font-family:Oswald,sans-serif;font-size:11px;letter-spacing:1px;font-weight:700;background:#05070d;color:var(--mute);border:1px solid var(--line);padding:6px 10px;cursor:pointer}.team-tab:hover{color:var(--ink);border-color:var(--gold)}.team-tab.active{background:var(--gold);color:#06070a;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}.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}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}