:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#081718;--panel:#102527;--line:#274142;--green:#69e9b9;--muted:#8ca7a5;--gold:#e7ca83}*{box-sizing:border-box}body{background:var(--bg);color:#edf5ef;margin:0;font-family:Noto Sans SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button,.button{cursor:pointer;color:#d8ede5;background:#173734;border:1px solid #365653;border-radius:8px;padding:10px 17px;transition:all .15s}button:hover,.button:hover{border-color:var(--green)}button:disabled{opacity:.4;cursor:not-allowed}input,select{color:#ecf8f2;background:#0a1c1e;border:1px solid #345052;border-radius:8px;outline:none;width:100%;min-width:0;padding:12px}input:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 2px #69e9b918}input::placeholder{color:#6f8888}label{color:#b5cbc6;flex-direction:column;gap:7px;margin-bottom:15px;font-size:12px;display:flex}em{color:var(--green);font-style:normal}h1,h2,h3,p{margin-top:0}h2{letter-spacing:2px;margin:0;font-size:26px}h3{letter-spacing:.5px;margin-bottom:15px;font-size:17px}small{font-size:11px}.shell{max-width:1120px;margin:auto}.masthead{justify-content:space-between;align-items:center;height:88px;padding:0 30px;display:flex}.brand{letter-spacing:2px;align-items:center;gap:10px;font-size:24px;font-weight:900;line-height:1.4;display:flex}.brand small{color:var(--green);letter-spacing:3px;font-size:8px;font-weight:500;display:block}.brand-icon{color:var(--gold);font-size:38px}.season{color:var(--muted);letter-spacing:2px;font-size:12px}.hero{background:linear-gradient(90deg,#0a2926f5 0%,#0b2927ba 55%,#0b292725 100%),url(/assets/stadium-hero.jpg) 50% 48%/cover;border:1px solid #355850;border-radius:16px;min-height:270px;margin:0 20px;padding:35px 35px 26px}.eyebrow{letter-spacing:2px;color:var(--green);font-size:10px;font-weight:600}h1{letter-spacing:5px;margin:9px 0 24px;font-size:43px;line-height:1.4}h1 span{color:#bfd8cc;letter-spacing:3px;margin-top:6px;font-size:13px;font-weight:400;display:block}.season-stats{gap:0;display:flex}.season-stats>div{border-right:1px solid #6c8c7345;flex-direction:column;margin-right:35px;padding-right:35px;display:flex}.season-stats>div:last-child{border:0}.season-stats b{color:#fff;font-size:29px;font-weight:700;line-height:1.3}.season-stats i{color:#afc5b7;margin-left:4px;font-size:15px;font-style:normal}.season-stats span{letter-spacing:1px;color:#9fbbb0;font-size:10px}.tabs{border-bottom:1px solid var(--line);z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#081718f5;margin:0 20px;display:flex;position:sticky;top:0}.tabs a{text-align:center;color:#89a39c;border-bottom:3px solid #0000;flex:1;padding:19px 0 15px;font-size:15px;font-weight:600}.tabs a small{color:#647e77;margin-right:9px;font-size:9px}.tabs a.active{color:var(--green);border-color:var(--green)}main{min-height:420px;padding:25px 20px 20px}.section-heading{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.section-heading .eyebrow{font-size:9px}.columns{grid-template-columns:1fr 1.2fr;align-items:start;gap:20px;display:grid}.panel{border:1px solid var(--line);background:linear-gradient(135deg,#132c2c,#0d2224);border-radius:12px;min-width:0;margin-bottom:20px;padding:24px}.panel-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.panel-title h3{margin:0}.panel-title select{width:110px}.muted{color:var(--muted);font-size:12px}.fine{color:#78948d;margin:20px 0 0;font-size:11px;line-height:1.9}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.primary{background:var(--green);color:#073b2b;border:1px solid var(--green);text-align:center;font-weight:700;display:block}.primary:hover{background:#94f4cf}.panel form>.primary{width:100%}.pill,.tag{white-space:nowrap;color:#b7d8ca;border:1px solid #3b6156;border-radius:20px;padding:3px 8px;font-size:10px}.pill,.tag.approved{color:var(--green);background:#59dca213}.tag.pending{color:var(--gold);border-color:#776c45}.tag.rejected{color:#f39c99}.crest{color:#b8f0d7;clip-path:polygon(50% 0,95% 16%,91% 70%,50% 100%,9% 70%,5% 16%);background:linear-gradient(140deg,#356a57,#143c3a);border:1px solid #487968;flex-shrink:0;justify-content:center;align-items:center;width:37px;height:41px;font-size:16px;font-weight:900;display:inline-flex}.team-row{border-bottom:1px solid #28433d;align-items:center;gap:12px;padding:13px 0;display:flex}.team-row:last-child{border:0}.grow{flex:1;min-width:0}.team-row strong{word-break:break-word;display:block}.team-row small{color:var(--muted);margin-top:3px;display:block}.empty{text-align:center;color:#a4bcb5;padding:45px 15px;font-size:14px}.empty>span{color:#3b7060;margin-bottom:10px;font-size:40px;display:block}.empty p{color:#6d9287;margin:9px 0 0;font-size:11px}.quiet{color:var(--muted);background:0 0;border-color:#0000;padding:7px;font-size:12px}.alert{color:#bdedd4;background:#183d2c;border:1px solid #44866a;border-radius:9px;margin:0 0 18px;padding:12px 16px}.alert.error{color:#f6bdb4;background:#442b2b;border-color:#a06864}.alert button{float:right}.filters{gap:18px;display:flex}.list-meta{color:#c4d9cb;border-bottom:1px solid var(--line);justify-content:space-between;padding:5px 0 12px;font-size:12px;display:flex}.list-meta span{color:var(--muted)}.match{border-bottom:1px solid #264139;padding:17px 0}.match-round{color:#819d91;text-align:center;letter-spacing:1px;margin-bottom:10px;font-size:9px;display:block}.match-teams{grid-template-columns:1fr 90px 1fr;align-items:center;gap:10px;display:grid}.side{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.side strong{overflow-wrap:anywhere;max-width:160px}.side.away{justify-content:flex-start}.score{text-align:center;letter-spacing:3px;color:#77948a;font-size:21px}.score.played{color:#fff}.table-panel{padding:24px 0}.table-panel>.panel-title{padding:0 24px}.table-scroll{overflow:auto}table{border-collapse:collapse;white-space:nowrap;width:100%;min-width:650px;font-size:12px}th{color:#79978c;background:#0b2021;padding:12px 9px;font-size:10px;font-weight:500}td{text-align:center;border-bottom:1px solid #274039;padding:12px 9px}th:nth-child(2),td:nth-child(2){text-align:left;min-width:170px}.table-team{align-items:center;gap:10px;display:flex}.table-team .crest{width:26px;height:29px;font-size:12px}.rank{border-left:3px solid #477b66;justify-content:center;align-items:center;width:22px;height:25px;display:inline-flex}.bye .rank{border-color:var(--gold);color:var(--gold)}.playoff .rank{border-color:var(--green);color:var(--green)}.down .rank{color:#ed9991;border-color:#d77e7b}.points{color:var(--green);font-size:16px;font-weight:800}.points small{color:#d6b185;font-size:9px;display:block}.rules{color:var(--muted);padding:20px 24px 0;font-size:11px}.legend{color:#b7cebb;flex-wrap:wrap;gap:8px 18px;margin-bottom:15px;display:flex}.gold{color:var(--gold)}.green{color:var(--green)}.red{color:#ed9991}details{border-top:1px solid var(--line);padding-top:12px}summary{cursor:pointer;color:#c3ddcb}details p{margin:12px 0}.login{text-align:center;max-width:520px;margin:0 auto;padding:40px}.lock{color:var(--gold);margin-bottom:12px;font-size:43px;display:block}.login .primary{margin-top:25px}.admin-summary{color:var(--green);flex-wrap:wrap;gap:20px;padding:0 3px 18px;font-size:11px;display:flex}.admin-summary a{margin-left:auto}.review{border-bottom:1px solid var(--line);padding-bottom:10px}.review .team-row{border:0}.actions{gap:8px;padding-left:48px;display:flex}.actions button{padding:4px 12px;font-size:11px}.danger{color:#efaaa0;border-color:#71504a}.adjustment{border-bottom:1px solid var(--line);align-items:center;gap:15px;padding:15px 0;display:flex}.adjustment>span{flex:1}.adjustment small{color:var(--muted);display:block}.adjustment button{padding:4px 10px;font-size:10px}.score-form{border-bottom:1px solid var(--line);grid-template-columns:1fr 56px 10px 56px 1fr 66px 42px;align-items:center;gap:9px;padding:16px 0;display:grid}.score-form>strong{word-break:break-word;font-size:12px}.score-form small{color:var(--muted)}.score-form input{text-align:center;padding:9px 4px}.score-form button{padding:8px 5px;font-size:11px}footer{text-align:center;border-top:1px solid var(--line);color:#6d8e82;letter-spacing:1px;padding:22px 20px 35px;font-size:10px}footer span{color:#4c7060;margin-top:6px;font-size:9px;display:block}@media (width<=700px){.masthead{height:75px;padding:0 20px}.brand{font-size:20px}.season{letter-spacing:0;font-size:9px}.hero{min-height:240px;margin:0 12px;padding:25px 22px}h1{font-size:35px}.season-stats>div{margin-right:20px;padding-right:20px}.tabs{margin:0 12px}.tabs a{padding:16px 0 12px;font-size:14px}.tabs a small{display:none}main{padding:20px 12px}.columns{grid-template-columns:1fr;gap:0}.panel{padding:20px 16px}.table-panel{padding:20px 0}.panel-title{gap:8px}.panel-title .muted{font-size:10px}h2{font-size:23px}.match-teams{grid-template-columns:1fr 67px 1fr;gap:5px}.side{gap:6px;font-size:12px}.side .crest{width:27px;height:31px;font-size:12px}.score{letter-spacing:1px;font-size:19px}.score-form{grid-template-columns:1fr 43px 6px 43px 1fr;gap:5px}.score-form button{grid-column:span 2}.score-form button.quiet{grid-column:5}.table-team strong{text-overflow:ellipsis;max-width:135px;overflow:hidden}.filters{gap:10px}.rules{padding:18px 16px 0}.login{padding:35px 20px}.season-stats>div{flex:1;min-width:0;margin-right:10px;padding-right:10px}.season-stats>div:last-child{margin-right:0;padding-right:0}.season-stats span{white-space:nowrap;letter-spacing:0;font-size:9px}.season-stats b{font-size:25px}.season-stats i{font-size:12px}.table-scroll th:first-child,.table-scroll td:first-child{z-index:1;background:#102527;position:sticky;left:0}.table-scroll th:nth-child(2),.table-scroll td:nth-child(2){z-index:1;background:#102527;position:sticky;left:40px}.table-scroll td:first-child,.table-scroll th:first-child{width:40px;min-width:40px}.table-scroll td:nth-child(2),.table-scroll th:nth-child(2){min-width:150px;max-width:160px}}.crest.has-avatar{clip-path:none;background:#102527;border-radius:10px;overflow:hidden}.crest img{object-fit:cover;width:100%;height:100%;display:block}.avatar-picker{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px;display:flex}.avatar-picker>.crest{width:54px;height:54px}.avatar-upload{cursor:pointer;color:#bde6d5;background:#173734;border:1px solid #365653;border-radius:8px;margin:0;padding:9px 12px;font-size:11px;position:relative;overflow:hidden}.avatar-upload:hover{border-color:var(--green)}.avatar-upload:focus-within{outline:2px solid var(--green);outline-offset:2px}.avatar-upload input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.avatar-picker>small{color:var(--muted);font-size:10px}.avatar-picker.compact{margin:0 0 10px;padding-left:48px}.avatar-picker.compact .avatar-upload{padding:4px 10px}.streak{min-width:35px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700;display:inline-block}.streak.W{color:var(--green)}.streak.L{color:#efaaa0}table{min-width:790px}.table-team strong{white-space:normal;word-break:break-word}.side strong{overflow-wrap:anywhere}.player-link{color:inherit;text-align:left;font:inherit;background:0 0;border:0;border-radius:3px;min-width:0;max-width:100%;padding:4px 0}.player-link:hover{color:var(--green);background:0 0}.player-link:focus-visible,.mobile-table-row:focus-visible{outline:2px solid var(--green);outline-offset:2px}.side.player-link{width:100%}.mobile-standings{display:none}.player-dialog{box-sizing:border-box;color:#edf5ef;overscroll-behavior:contain;scrollbar-width:thin;background:#102527;border:1px solid #3a5f53;border-radius:16px;width:min(560px,100% - 24px);max-height:calc(100dvh - 32px);margin:auto;padding:20px 24px 24px;overflow:auto}.player-dialog::backdrop{background:#020d10cf}.profile-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.profile-close{min-width:66px;min-height:42px}.profile-identity{align-items:center;gap:16px;display:flex}.profile-identity>.crest{width:65px;height:70px;font-size:27px}.profile-identity>div{min-width:0}.profile-identity h2{letter-spacing:0;overflow-wrap:anywhere;margin-bottom:9px;font-size:24px}.profile-info{grid-template-columns:1fr 1fr;gap:15px;margin:24px 0 16px;display:grid}.profile-info>div{min-width:0}.profile-info span,.profile-info strong{overflow-wrap:anywhere;display:block}.profile-info span{color:var(--muted);font-size:11px}.profile-info strong{margin-top:4px;font-size:14px}.profile-slogan{border-left:3px solid var(--green);color:#c8e2d5;overflow-wrap:anywhere;background:#69e9b908;margin:0 0 24px;padding:13px 15px;font-size:13px}.profile-section{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.profile-section h3{font-size:15px}.profile-summary{text-align:center;background:#0a1f20;border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));padding:16px 0;display:grid}.profile-summary strong{color:var(--green);font-size:26px;display:block}.profile-summary span{color:var(--muted);font-size:11px}.profile-stats{text-align:center;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-top:16px;display:grid}.profile-stats b,.profile-stats span{display:block}.profile-stats span{color:var(--muted);margin-top:4px;font-size:10px}.profile-match{border-bottom:1px solid #274039;align-items:center;gap:12px;padding:12px 0;display:flex}.profile-match:last-child{border:0}.profile-match strong{overflow-wrap:anywhere;font-size:13px}.profile-match small{color:var(--muted);margin-top:2px;font-size:10px;display:block}.profile-match>b{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:18px}.match-result,.fixture-round{width:32px;height:32px;color:var(--muted);background:#193b32;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.match-result.W{color:var(--green)}.match-result.L{color:#ed9991;background:#4b2d2b}.match-result.D{color:var(--gold);background:#3e3827}.profile-fixtures{width:100%;margin-top:24px}.rename-player{margin:0 0 12px 48px;font-size:12px}.rename-player form{padding-top:12px}.rename-player form .fine{margin:0 0 12px}.rename-player button{font-size:12px}.filters>label:first-child{width:190px}.calendar-note{line-height:1.9}.match-round{font-variant-numeric:tabular-nums}@media (width<=700px){.filters{grid-template-columns:1fr;gap:0;display:grid}.filters>label:first-child{width:auto}.calendar-note{font-size:11px}.player-dialog .panel-title{flex-wrap:wrap}.desktop-standings{display:none}.mobile-standings{width:100%;min-width:0;display:block}.table-panel>.panel-title{flex-wrap:wrap;padding:0 14px}.table-panel>.panel-title h3{font-size:16px}.mobile-table-head,.mobile-row-main{grid-template-columns:27px minmax(0,1fr) 38px 38px;align-items:center;gap:5px;display:grid}.mobile-table-head{color:var(--muted);background:#0b2021;padding:12px;font-size:10px}.mobile-table-head>span:first-child,.mobile-table-head>span:nth-child(n+3){text-align:center}.mobile-table-row{width:100%;color:inherit;text-align:left;background:0 0;border:0;border-bottom:1px solid #274039;border-radius:0;min-width:0;margin:0;padding:13px 12px;line-height:1.5;display:block}.mobile-table-row:hover{background:#69e9b905}.mobile-player{align-items:center;gap:7px;min-width:0;display:flex}.mobile-player>.crest{width:27px;height:30px;font-size:12px}.mobile-player strong{overflow-wrap:anywhere;word-break:break-word;min-width:0;font-size:12px}.mobile-table-row .rank{width:23px;font-size:12px}.mobile-table-row .streak{text-align:center;width:100%;min-width:0;font-size:12px}.mobile-table-row .points{text-align:center;font-variant-numeric:tabular-nums;font-size:18px}.mobile-row-stats{color:var(--muted);flex-wrap:wrap;gap:5px 11px;margin:9px 0 0 32px;font-size:10px;display:flex}.mobile-row-stats>span{white-space:nowrap}.mobile-row-stats b{color:#bcd2c8;font-weight:500}.mobile-adjustment{color:var(--gold);margin:5px 0 0 32px;font-size:10px;display:block}.table-help{color:#7f9c91;margin:0;padding:12px 14px;font-size:10px}.player-dialog{padding:14px 18px 22px}.profile-identity h2{font-size:20px}.profile-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 8px}.profile-identity>.crest{width:56px;height:61px}.profile-match{gap:9px}}
