:root { --navy:#071426; --navy2:#0d1e34; --line:#dce4ea; --wash:#f3f7f9; --paper:#fff; --ink:#142033; --muted:#6f7f91; --green:#087b64; --gold:#d4972c; --red:#d34855; font-family:Inter,"Microsoft YaHei",Arial,sans-serif; }
*{box-sizing:border-box} html,body{overflow-x:hidden}body{margin:0;background:var(--wash);color:var(--ink)} button,select{font:inherit}button{cursor:pointer}button svg,a svg{width:17px;height:17px}.hidden{display:none!important}
.sidebar{position:fixed;inset:0 auto 0 0;width:232px;display:flex;flex-direction:column;padding:18px 14px;background:var(--navy);color:#dce8f6}.brand{display:flex;align-items:center;gap:10px;padding:3px 7px 24px;color:#fff;text-decoration:none}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:7px;background:var(--gold);font-weight:900}.brand b,.brand small{display:block}.brand small{margin-top:3px;color:#91a4bb;font-size:11px}.sidebar nav{display:grid;gap:4px}.nav-item{display:flex;align-items:center;gap:11px;border:0;border-radius:7px;padding:11px;background:transparent;color:#9eb0c5;text-align:left;font-weight:800}.nav-item.active,.nav-item:hover{background:#172b45;color:#fff}.sidebar-bottom{margin-top:auto;display:flex;align-items:center;gap:7px}.school-chip{min-width:0;display:flex;align-items:center;gap:8px;flex:1;padding:8px;border:1px solid rgba(255,255,255,.1);border-radius:7px}.school-chip span{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#e9f7f3;color:var(--green);font-weight:900}.school-chip b,.school-chip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.school-chip b{font-size:11px}.school-chip small{margin-top:3px;color:#91a4bb;font-size:10px}
main{margin-left:232px;padding:22px clamp(18px,4vw,58px) 42px}.topbar,.view-head,.panel-head,.top-actions,.banner-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar{padding-bottom:18px}.eyebrow{margin:0;color:var(--green);font-size:10px;font-weight:900;letter-spacing:1.5px}.gold{color:var(--gold)}h1,h2,h3,p{margin:0}h1{margin-top:4px;font-size:27px}h2{font-size:34px;line-height:1.15}h3{font-size:19px}.icon-btn{position:relative;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:7px;padding:9px;background:transparent;color:inherit}.topbar .icon-btn{border-color:var(--line);background:#fff}.dot{position:absolute;top:7px;right:7px;width:6px;height:6px;border-radius:50%;background:var(--red)}.primary,.quiet{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:7px;padding:11px 14px;text-decoration:none;font-weight:900}.primary{background:var(--green);color:#fff}.quiet{border:1px solid var(--line);background:#fff;color:var(--ink)}.light{background:#fff;color:var(--navy)}.dark{border-color:rgba(255,255,255,.22);background:transparent;color:#fff}.wide{width:100%;margin-top:16px}.center{text-align:center}
.view{display:none}.view.active{display:block}.season-banner{min-height:250px;display:grid;grid-template-columns:1fr 260px;gap:26px;padding:26px;border-radius:8px;background-color:#102f4d;color:#fff;background-image:url("https://images.unsplash.com/photo-1509062522246-3755977927d7?auto=format&fit=crop&w=1600&q=80");background-blend-mode:multiply;background-size:cover;background-position:center}.season-banner h2{margin-top:7px;font-family:"DM Serif Display","STSong",serif;font-weight:400}.season-banner em{color:#b9eadc;font-style:normal}.season-banner p:not(.eyebrow){max-width:690px;margin-top:11px;color:#c3d1e0;line-height:1.7}.banner-actions{justify-content:flex-start;margin-top:19px}.trophy-panel{align-self:center;padding:18px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:rgba(7,20,38,.78);text-align:center}.trophy-panel span,.trophy-panel small,.trophy-panel strong{display:block}.trophy-panel span{color:#dbe8f7;font-size:13px;font-weight:800}.trophy-panel strong{margin:7px 0;color:#ffd779;font-size:43px}.trophy-panel small{color:#afc2d6;font-size:11px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin:14px 0}.stats-grid article{display:flex;gap:12px;padding:15px;border:1px solid var(--line);border-radius:8px;background:#fff}.stats-grid svg{color:var(--green)}.stats-grid span,.stats-grid strong,.stats-grid small{display:block}.stats-grid span,.muted{color:var(--muted);font-size:12px;font-weight:700}.stats-grid strong{margin:3px 0;font-size:25px}.stats-grid small{color:var(--green);font-size:11px}
.overview-grid,.classroom-grid,.rank-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:12px}.panel{border:1px solid var(--line);border-radius:8px;padding:17px;background:#fff}.panel-head{margin-bottom:12px}.text-btn{display:flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--green);font-size:12px;font-weight:900}.event-list,.mini-ranking,.roster{display:grid;gap:7px}.event{display:grid;grid-template-columns:68px 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:7px}.event time{color:var(--gold);font-size:12px;font-weight:900}.event b,.event small{display:block}.event small{margin-top:4px;color:var(--muted);font-size:11px}.event i{color:var(--green);font-size:11px;font-style:normal;font-weight:900}.rank-row{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:8px;padding:9px 2px;border-bottom:1px solid #edf1f3}.rank-row b:first-child{color:var(--gold)}.rank-row span{font-weight:800}.rank-row small{display:block;margin-top:2px;color:var(--muted)}.champion-panel{margin-top:12px}.champions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.champion{padding:11px;border:1px solid var(--line);border-radius:7px;background:#fbfdfd}.champion b,.champion span,.champion small{display:block}.champion span{margin-top:4px;color:var(--gold);font-weight:900}.champion small{margin-top:4px;color:var(--muted)}
.view-head{align-items:end;padding:17px 0;border-top:1px solid var(--line)}.view-head p:not(.eyebrow){margin-top:6px;color:var(--muted);line-height:1.6}.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.field-grid label{display:grid;gap:5px}.field-grid span{color:var(--muted);font-size:12px;font-weight:800}select{min-width:0;border:1px solid var(--line);border-radius:7px;padding:10px;background:#fff;color:var(--ink)}.selection-summary{display:flex;gap:9px;margin-top:15px;padding:12px;border-radius:7px;background:#edf8f5;color:#205b50;font-size:13px;line-height:1.5}.selection-summary svg{flex:none}.roster{grid-template-columns:repeat(2,1fr)}.student{display:flex;justify-content:space-between;padding:8px;border:1px solid var(--line);border-radius:6px;font-size:12px}.student b{color:var(--green)}
.league-tabs,.segment{display:flex;gap:3px}.league-tabs{margin:7px 0 12px}.league-tabs button,.segment button{border:1px solid var(--line);padding:9px 12px;background:#fff;color:var(--muted);font-weight:850}.league-tabs button:first-child,.segment button:first-child{border-radius:7px 0 0 7px}.league-tabs button:last-child,.segment button:last-child{border-radius:0 7px 7px 0}.league-tabs button.active,.segment button.active{background:var(--navy);color:#fff}.league-grid,.school-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.league-card{padding:16px;border:1px solid var(--line);border-radius:8px;background:#fff}.league-card header{display:flex;justify-content:space-between}.league-card p{margin:9px 0;color:var(--muted);font-size:13px;line-height:1.6}.league-card footer{display:flex;justify-content:space-between;color:var(--green);font-size:12px;font-weight:850}.status{display:inline-flex;align-items:center;gap:5px;color:var(--green);font-size:11px;font-weight:900}.status i{width:7px;height:7px;border-radius:50%;background:var(--green)}
.ranking-table .rank-row{grid-template-columns:42px 1fr 100px 95px}.ranking-table .rank-row.head{color:var(--muted);font-size:11px;font-weight:900}.ranking-table strong{text-align:right}.reward-panel{background:var(--navy2);color:#fff}.reward-list{margin-top:13px}.reward-list div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.12)}.reward-list b{color:#ffd779}.reward-panel>p:last-child{margin-top:15px;color:#afc2d6;font-size:13px;line-height:1.7}.school-card{padding:15px;border:1px solid var(--line);border-radius:8px;background:#fff}.school-card b,.school-card span{display:block}.school-card span{margin-top:5px;color:var(--muted);font-size:12px}.school-card footer{display:flex;justify-content:space-between;margin-top:12px;color:var(--green);font-size:12px;font-weight:850}
.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:18px;background:rgba(7,20,38,.72)}.match-modal{position:relative;width:min(100%,650px);padding:23px;border-radius:8px;background:#fff}.modal-close{position:absolute;top:12px;right:12px;border:1px solid var(--line);border-radius:7px;padding:7px;background:#fff}.match-modal h2{margin:7px 0}.match-modal>p:not(.eyebrow){color:var(--muted)}.arena-preview{display:grid;grid-template-columns:1fr 24px 1fr 24px 1fr;align-items:center;gap:6px;margin-top:18px}.arena-preview div{padding:13px;border:1px solid var(--line);border-radius:7px;text-align:center}.arena-preview span,.arena-preview small,.arena-preview strong{display:block}.arena-preview span{color:var(--gold);font-size:11px;font-weight:900}.arena-preview strong{margin:4px 0;font-size:30px}.arena-preview small{color:var(--muted)}
@media(max-width:1050px){.sidebar{width:72px}.brand span:last-child,.nav-item span,.school-chip div{display:none}.sidebar-bottom{display:block}.school-chip{justify-content:center}.sidebar-bottom .icon-btn{margin:7px auto}main{margin-left:72px}.stats-grid,.champions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{position:static;width:auto}.sidebar nav{display:flex;overflow:auto}.sidebar-bottom{display:none}main{width:calc(100vw - 32px);max-width:calc(100vw - 32px);min-width:0;margin:0 16px;padding:16px 0}.view{max-width:100%}.topbar{align-items:flex-start;gap:8px}.top-actions{display:none}.season-banner,.overview-grid,.classroom-grid,.rank-layout{min-width:0;grid-template-columns:1fr}.season-banner{width:100%;max-width:100%;min-height:auto;padding:22px;overflow:hidden}.season-banner>div{min-width:0}.season-banner p:not(.eyebrow){width:calc(100vw - 76px);max-width:calc(100vw - 76px);font-size:14px;overflow-wrap:anywhere;word-break:break-all}.trophy-panel{display:none}.stats-grid,.champions,.league-grid,.school-grid,.field-grid{grid-template-columns:1fr}.roster{grid-template-columns:1fr}.ranking-table .rank-row{grid-template-columns:30px 1fr 70px}.ranking-table .rank-row>*:nth-child(3){display:none}.eyebrow{letter-spacing:1px}h2{font-size:28px}}
