:root{
  --bg:#080910;--bg2:#0b0d16;--panel:#10131e;--panel2:#131725;--panel3:#0d1019;
  --text:#f2efe8;--muted:#9da3b2;--muted2:#737a8b;--line:rgba(255,255,255,.085);
  --gold:#d8b96f;--gold2:#f0d89a;--home:#8b7ef4;--home2:#657df0;--away:#d36f7d;--away2:#a64f62;
  --green:#74caa4;--red:#e38794;--radius:18px;--radius-sm:12px;--max:1500px;
  --shadow:0 18px 60px rgba(0,0,0,.28)
}
*{box-sizing:border-box}html{scroll-behavior:smooth;color-scheme:dark}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#080910 0%,#0a0c14 50%,#070810 100%);color:var(--text);font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;line-height:1.5;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:radial-gradient(circle at 12% 18%,#fff 0 1px,transparent 1.2px),radial-gradient(circle at 72% 12%,#fff 0 1px,transparent 1.2px),radial-gradient(circle at 42% 68%,#fff 0 1px,transparent 1.2px);background-size:280px 280px,370px 370px,510px 510px;z-index:-3}.ambient{position:fixed;pointer-events:none;filter:blur(80px);border-radius:50%;opacity:.18;z-index:-2}.ambient-a{width:520px;height:520px;left:-190px;top:-190px;background:#6759c8}.ambient-b{width:420px;height:420px;right:-150px;top:40px;background:#9b713b;opacity:.12}
button,input,select{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}.gold{color:#efd08b}.good{color:#86d7b5}.bad{color:#eea0aa}.eyebrow{font-size:11px;letter-spacing:.17em;color:var(--gold);font-weight:800}.section-note{color:var(--muted2);font-size:12px}.view{display:none}.view.active{display:block}
.topbar{position:sticky;top:0;z-index:60;background:rgba(8,9,16,.84);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.topbar-inner{height:70px;max-width:var(--max);margin:auto;padding:0 24px;display:flex;align-items:center;gap:22px}.brand{display:flex;align-items:center;gap:11px;min-width:252px;border:0;background:transparent;color:var(--text);text-align:left}.sigil{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(216,185,111,.5);color:var(--gold2);font-family:Georgia,"Noto Serif TC",serif;font-size:18px;box-shadow:inset 0 0 18px rgba(216,185,111,.06)}.brand-copy b{display:block;font-size:16px;letter-spacing:.09em}.brand-copy small{display:block;margin-top:1px;font-size:9px;letter-spacing:.13em;color:var(--muted2)}.desktop-nav{display:flex;align-items:center;gap:4px;flex:1}.navbtn{border:0;background:transparent;color:var(--muted);padding:9px 13px;border-radius:10px;font-size:14px;transition:.16s}.navbtn:hover{color:#fff;background:rgba(255,255,255,.045)}.navbtn.active{color:#fff;background:rgba(216,185,111,.095);box-shadow:inset 0 0 0 1px rgba(216,185,111,.12)}.top-actions{display:flex;align-items:center;gap:9px}.db-state{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);padding:7px 10px;border-radius:999px;color:var(--muted);font-size:12px}.state-dot{width:7px;height:7px;border-radius:50%;background:#777}.db-state.ok{color:#8ed8b7}.db-state.ok .state-dot{background:#69c99e;box-shadow:0 0 8px rgba(105,201,158,.6)}.db-state.bad{color:#ef9aa7}.db-state.bad .state-dot{background:#df7785}.btn{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text);padding:9px 13px;border-radius:10px;font-size:13px;transition:.16s}.btn:hover{background:rgba(255,255,255,.065);border-color:rgba(216,185,111,.28)}.btn.primary{background:linear-gradient(135deg,#9a7440,#70512d);border-color:#b58a51;color:#fff8e8}.btn.compact{padding:8px 12px}
.shell{max-width:var(--max);margin:auto;padding:28px 24px 92px}.card{background:linear-gradient(180deg,rgba(17,20,31,.96),rgba(12,15,24,.96));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.match-hero{padding:22px 26px 25px;position:relative;overflow:hidden}.match-hero:after{content:"";position:absolute;width:560px;height:250px;left:50%;bottom:-195px;transform:translateX(-50%);background:radial-gradient(circle,rgba(139,126,244,.16),transparent 68%);pointer-events:none}.match-topline{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.06)}.match-context{display:flex;align-items:center;gap:14px}.hero-meta{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.pill{display:inline-flex;align-items:center;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line);background:rgba(255,255,255,.025);color:#c6cbd7;padding:6px 9px;border-radius:999px;font-size:11px}.pill.subtle{color:var(--muted2)}.match-stage{position:relative;z-index:1;display:grid;grid-template-columns:1fr 220px 1fr;align-items:center;gap:26px;padding-top:26px}.team-block{min-width:0}.team-away{text-align:right}.team-kicker{display:block;color:var(--muted2);font-size:11px;letter-spacing:.12em;margin-bottom:7px}.team-name{margin:0;font-family:Georgia,"Noto Serif TC",serif;font-size:clamp(30px,3vw,48px);line-height:1.08;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-home .team-name{background:linear-gradient(90deg,#f0dfb6,#b4a8ff 75%);-webkit-background-clip:text;color:transparent}.team-away .team-name{color:#efb1ba}.team-sub{margin-top:9px;color:var(--muted);font-size:13px}.attendance{height:5px;width:min(360px,100%);margin-top:13px;background:rgba(255,255,255,.055);border-radius:999px;overflow:hidden}.team-away .attendance{margin-left:auto}.attendance span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--home2),var(--home))}.team-away .attendance span{margin-left:auto;background:linear-gradient(90deg,var(--away2),var(--away))}.match-center{text-align:center;color:var(--muted2)}.mode{display:block;color:#c9ceda;font-family:Georgia,serif;font-size:20px;letter-spacing:.08em}.mode i{font-style:normal;color:var(--gold);font-size:12px;margin:0 6px}.match-center strong{display:block;margin-top:9px;color:var(--text);font-size:13px}.match-center small{display:block;margin-top:3px;font-size:10px;letter-spacing:.08em}
.section{margin-top:20px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}.section-head h2{margin:4px 0 0;font-size:22px;letter-spacing:.01em}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.metric-card{padding:15px 15px 14px;min-width:0}.metric-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.metric-title{display:flex;align-items:center;gap:7px;color:#c9ceda;font-weight:700;font-size:12px;min-width:0}.metric-title img{width:24px;height:24px;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.45))}.metric-ratio{font-size:10px;color:var(--muted2);white-space:nowrap}.metric-values{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:6px;margin-top:13px}.metric-side strong{display:block;font-family:Georgia,serif;font-size:23px;line-height:1}.metric-side small{display:block;margin-top:5px;color:var(--muted2);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-side.away{text-align:right}.metric-side.home strong{color:#d8d1ff}.metric-side.away strong{color:#f0b0b9}.metric-colon{color:#4e5463;padding-bottom:12px}.compare-bar{display:flex;height:5px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.055);margin-top:11px}.compare-bar .home{background:linear-gradient(90deg,var(--home2),var(--home))}.compare-bar .away{background:linear-gradient(90deg,var(--away2),var(--away))}
.overview-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:12px}.panel{padding:18px}.highlight-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.highlight-card{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.022);border-radius:13px}.highlight-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:rgba(216,185,111,.065)}.highlight-icon img{width:27px;height:27px;object-fit:contain}.highlight-main{min-width:0}.highlight-main .label{display:block;color:var(--muted2);font-size:10px}.highlight-main b{display:block;margin-top:2px;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.highlight-main .job-badge{margin-top:5px}.highlight-value{font-family:Georgia,serif;font-size:17px;color:#efe5c9}.composition-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.comp-card{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid rgba(255,255,255,.055);border-radius:12px;background:rgba(255,255,255,.018)}.comp-card .job-icon{width:34px;height:34px;flex-basis:34px}.comp-meta{min-width:0;flex:1}.comp-meta b{display:block;font-size:12px}.comp-meta span{display:block;color:var(--muted2);font-size:9px;margin-top:1px}.comp-count{font-family:Georgia,serif;font-size:18px;color:#eee4cc}
.ranking-panel{padding:18px}.ranking-head{align-items:center}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.control{height:38px;padding:0 10px;background:#0d1019;color:var(--text);border:1px solid var(--line);border-radius:10px;outline:0;font-size:12px}.control:focus{border-color:rgba(139,126,244,.48)}.search-control{height:38px;display:flex;align-items:center;gap:7px;background:#0d1019;border:1px solid var(--line);border-radius:10px;padding:0 10px;min-width:190px}.search-control:focus-within{border-color:rgba(139,126,244,.48)}.search-control span{color:var(--muted2);font-size:17px}.search-control input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font-size:12px}.search-control.wide{min-width:240px}.segmented{display:flex;padding:3px;border:1px solid var(--line);background:#0d1019;border-radius:10px;gap:2px}.segment{border:0;background:transparent;color:var(--muted);padding:6px 9px;border-radius:7px;font-size:11px}.segment.active{background:rgba(255,255,255,.075);color:#fff}.metric-tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 0 11px;margin-bottom:2px;scrollbar-width:none}.metric-tabs::-webkit-scrollbar{display:none}.metric-tab{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;border:1px solid var(--line);background:rgba(255,255,255,.022);color:var(--muted);padding:7px 10px;border-radius:10px;font-size:11px;transition:.15s}.metric-tab img{width:19px;height:19px;object-fit:contain;opacity:.78}.metric-tab:hover{color:#fff;border-color:rgba(216,185,111,.22)}.metric-tab.active{background:rgba(216,185,111,.09);border-color:rgba(216,185,111,.25);color:#fff2d3}.metric-tab.active img{opacity:1}.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:2px 0 14px}.podium-item{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;min-width:0;padding:12px 13px;border:1px solid rgba(255,255,255,.055);border-radius:13px;background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.015))}.podium-item.rank-1{border-color:rgba(216,185,111,.2);background:linear-gradient(180deg,rgba(216,185,111,.055),rgba(255,255,255,.015))}.rank-no{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.045);font-family:Georgia,serif;font-size:17px;color:#b6bdcb}.rank-1 .rank-no{color:#f0d893;background:rgba(216,185,111,.11)}.podium-info{min-width:0}.podium-info .name{font-size:14px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.podium-info .meta{display:flex;align-items:center;gap:6px;margin-top:4px;color:var(--muted2);font-size:10px;min-width:0}.podium-item .score{text-align:right}.podium-item .score strong{display:block;font-family:Georgia,serif;font-size:18px}.podium-item .score small{display:block;color:var(--muted2);font-size:9px;margin-top:2px}.team-chip{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;font-size:9px;border:1px solid rgba(255,255,255,.07);white-space:nowrap}.team-chip.home{color:#c9c3ff;background:rgba(139,126,244,.08)}.team-chip.away{color:#f0b0b9;background:rgba(211,111,125,.08)}
.table-shell{border:1px solid rgba(255,255,255,.055);border-radius:14px;overflow:hidden;background:rgba(6,8,13,.18)}.table-wrap{overflow:auto;max-height:660px;scrollbar-color:rgba(216,185,111,.25) rgba(255,255,255,.02)}table{width:100%;border-collapse:separate;border-spacing:0;min-width:1180px;font-size:12px}th,td{padding:10px 11px;text-align:right;white-space:nowrap;border-bottom:1px solid rgba(255,255,255,.048)}th{position:sticky;top:0;z-index:6;background:#111521;color:#8f97a8;font-size:10px;letter-spacing:.02em;font-weight:700;user-select:none}th[data-key]{cursor:pointer}th[data-key]:hover{color:#ddd}.th-label{display:inline-flex;align-items:center;gap:5px}.th-label img{width:15px;height:15px;object-fit:contain;opacity:.7}.sort-arrow{color:var(--gold);margin-left:3px}.battle-table th:first-child,.battle-table td:first-child{text-align:left;position:sticky;left:0;z-index:4;background:#0f131d;min-width:156px}.battle-table th:first-child{z-index:8;background:#111521}.battle-table th:nth-child(2),.battle-table td:nth-child(2){text-align:left;position:sticky;left:156px;z-index:4;background:#0f131d;min-width:112px;border-right:1px solid rgba(255,255,255,.055)}.battle-table th:nth-child(2){z-index:8;background:#111521}.battle-table tbody tr:hover td{background:rgba(216,185,111,.035)}.battle-table tbody tr:hover td:first-child,.battle-table tbody tr:hover td:nth-child(2){background:#141722}.player-cell{display:flex;align-items:center;gap:8px}.player-cell-main{min-width:0}.player-link{display:block;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:transparent;color:#f5f1e8;padding:0;text-align:left;font-weight:800;font-size:12px}.player-link:hover:not(:disabled){color:var(--gold2)}.player-link:disabled{cursor:default}.player-sub{display:block;margin-top:3px;color:var(--muted2);font-size:9px}.job-badge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;line-height:1}.job-icon{width:26px;height:26px;flex:0 0 26px;display:inline-flex;align-items:center;justify-content:center}.job-icon img{width:100%;height:100%;display:block;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.55))}.job-icon-fallback{border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:10px}.job-label{color:#e7e8ec;font-weight:700;font-size:11px}.job-suwen{color:#79d4a7}.job-tieyi{color:#e1bd70}.job-xuehe{color:#ee7d89}.job-shenxiang{color:#74b6ff}.job-jiuling{color:#bc8bff}.job-suimeng{color:#d0c1ff}.job-longyin{color:#8ad5ff}.job-xuanji{color:#edc36f}.job-chaoguang{color:#6ed3dc}.job-unknown{color:#aab0bd}.table-total td{position:sticky;bottom:0;z-index:5;background:#121620;color:#d7dbe4;font-weight:700;border-top:1px solid rgba(216,185,111,.16);border-bottom:0}.table-total td:first-child{z-index:7;background:#121620}.table-total td:nth-child(2){z-index:7;background:#121620}.table-total.away td{bottom:36px;background:#11141e}.table-total.away td:first-child,.table-total.away td:nth-child(2){background:#11141e}.table-hint{padding:8px 12px;color:var(--muted2);font-size:10px;border-top:1px solid rgba(255,255,255,.04);background:#0d1018}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:10px 0 18px}.page-head h1{margin:5px 0 4px;font-size:34px}.page-head p{margin:0;color:var(--muted);font-size:13px}.history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.history-item{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:14px;padding:15px 16px;transition:.15s}.history-item:hover{border-color:rgba(216,185,111,.18);transform:translateY(-1px)}.history-date{text-align:center;border-right:1px solid rgba(255,255,255,.06);padding-right:13px}.history-date b{display:block;font-family:Georgia,serif;font-size:26px;line-height:1}.history-date span{display:block;margin-top:5px;color:var(--muted2);font-size:9px}.history-main{min-width:0}.history-vs{display:flex;align-items:center;gap:7px;font-weight:800;font-size:14px;min-width:0}.history-vs .a,.history-vs .b{max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-vs .a{color:#d4ceff}.history-vs .b{color:#edb2ba}.history-vs i{font-style:normal;color:var(--gold);font-size:10px}.history-file{display:block;margin-top:4px;color:var(--muted2);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-stats{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.history-stats i{font-style:normal;color:#b9bfcc;border:1px solid var(--line);background:rgba(255,255,255,.018);border-radius:999px;padding:4px 7px;font-size:9px}.history-arrow{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.025);color:#c7ccd7;font-size:16px}.history-arrow:hover{border-color:rgba(216,185,111,.28);color:var(--gold2)}
.career-tabs{margin-bottom:12px}.career-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.career-podium-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:11px;padding:14px 15px}.career-podium-card:first-child{border-color:rgba(216,185,111,.22)}.career-rank{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.045);font-family:Georgia,serif;color:#e8d393;font-size:19px}.career-podium-main{min-width:0}.career-podium-main b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.career-podium-main span{display:flex;align-items:center;gap:6px;margin-top:5px;color:var(--muted2);font-size:10px}.career-podium-value{text-align:right}.career-podium-value strong{display:block;font-family:Georgia,serif;font-size:20px}.career-podium-value small{display:block;color:var(--muted2);font-size:9px}.career-table-wrap{max-height:700px}.career-table th>img{width:15px;height:15px;object-fit:contain;vertical-align:middle;margin-right:5px;opacity:.72}.career-table th:first-child,.career-table td:first-child{text-align:center;width:44px}.career-table th:nth-child(2),.career-table td:nth-child(2){text-align:left;position:sticky;left:0;background:#0f131d;z-index:3}.career-table th:nth-child(2){background:#111521;z-index:7}.career-table th:nth-child(3),.career-table td:nth-child(3){text-align:left}.rank-badge{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:8px;background:rgba(255,255,255,.045);color:#b8bfcd;font-size:10px}.rank-badge.top{background:rgba(216,185,111,.1);color:var(--gold2)}
.modal,.drawer{position:fixed;inset:0;z-index:100;display:none}.modal.open,.drawer.open{display:block}.modal-backdrop,.drawer-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(5px)}.modal-card{position:relative;z-index:1;width:min(570px,calc(100% - 28px));margin:7vh auto;padding:23px}.modal-card h2{margin:6px 0 6px;font-size:23px}.modal-card p{font-size:12px;line-height:1.75}.modal-card label{display:block;margin:15px 0 13px;font-size:11px;color:#c8ccd5}.control.full{display:block;width:100%;margin-top:6px}.modal-x{position:absolute;right:13px;top:9px;width:36px;height:36px;border:0;background:transparent;color:var(--muted);font-size:26px}.dropzone{padding:28px 18px;border:1px dashed rgba(216,185,111,.36);border-radius:14px;background:rgba(216,185,111,.025);text-align:center;transition:.16s}.dropzone:hover,.dropzone.drag{border-color:rgba(139,126,244,.55);background:rgba(139,126,244,.055)}.dropzone strong,.dropzone span{display:block}.dropzone span{margin-top:4px;color:var(--muted2);font-size:10px}.preview{padding:11px 1px 2px;font-size:11px;line-height:1.65}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.drawer-card{position:absolute;z-index:1;right:0;top:0;width:min(680px,95vw);height:100%;overflow:auto;background:#0c0f18;border-left:1px solid var(--line);box-shadow:-30px 0 90px rgba(0,0,0,.38);padding:28px}.player-hero{padding:4px 42px 20px 0;border-bottom:1px solid rgba(255,255,255,.06)}.player-title-line{display:flex;align-items:center;gap:13px;margin-top:9px}.player-title-line .job-icon{width:48px;height:48px;flex-basis:48px}.player-hero h2{margin:0;font-size:30px}.player-role{display:flex;align-items:center;gap:7px;color:var(--muted);margin-top:5px;font-size:12px}.career-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:17px 0 22px}.career-stat{padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.018)}.career-stat span{display:block;color:var(--muted2);font-size:10px}.career-stat b{display:block;margin-top:5px;font-family:Georgia,serif;font-size:19px}.recent-list{display:grid;gap:7px}.recent-item{padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.015)}.recent-item b{display:block;font-size:12px}.recent-item span{display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.7}.toast{position:fixed;left:50%;bottom:27px;z-index:150;transform:translate(-50%,14px);opacity:0;pointer-events:none;border:1px solid var(--line);border-radius:999px;background:#171b27;color:#eef0f4;padding:9px 13px;box-shadow:var(--shadow);font-size:12px;transition:.18s}.toast.show{opacity:1;transform:translate(-50%,0)}.empty{text-align:center;color:var(--muted);padding:30px}.bottom-nav{display:none}
@media(max-width:1120px){.metric-grid{grid-template-columns:repeat(3,1fr)}.metric-grid .metric-card:nth-child(4),.metric-grid .metric-card:nth-child(5){grid-column:span 1}.overview-grid{grid-template-columns:1fr}.composition-grid{grid-template-columns:repeat(5,1fr)}.desktop-nav{display:none}.brand{flex:1;min-width:0}.db-state{display:none}.history-grid{grid-template-columns:1fr}.career-podium{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:820px){.shell{padding:18px 14px 92px}.topbar-inner{padding:0 14px;height:64px}.brand-copy small{display:none}.brand-copy b{font-size:14px}.sigil{width:36px;height:36px}.match-hero{padding:18px}.match-topline{align-items:flex-start;flex-direction:column}.hero-meta{justify-content:flex-start}.match-stage{grid-template-columns:1fr auto 1fr;gap:11px}.match-center{min-width:72px}.mode{font-size:15px}.match-center strong{font-size:11px}.match-center small{display:none}.team-name{font-size:26px}.team-sub{font-size:11px;line-height:1.5}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-grid .metric-card:last-child{grid-column:span 2}.highlight-grid{grid-template-columns:1fr 1fr}.composition-grid{grid-template-columns:repeat(3,1fr)}.ranking-head,.page-head{align-items:flex-start;flex-direction:column}.filters{justify-content:flex-start;width:100%}.search-control{flex:1}.podium{grid-template-columns:1fr}.career-podium{grid-template-columns:1fr}.bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(3,1fr);left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));z-index:70;padding:5px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:rgba(13,16,25,.94);backdrop-filter:blur(16px);box-shadow:0 14px 40px rgba(0,0,0,.42)}.bottom-nav-btn{border:0;background:transparent;color:var(--muted2);padding:6px 4px;border-radius:11px}.bottom-nav-btn span{display:block;font-size:15px;line-height:1}.bottom-nav-btn b{display:block;margin-top:4px;font-size:9px}.bottom-nav-btn.active{background:rgba(216,185,111,.09);color:#f0dba4}.toast{bottom:82px}}
@media(max-width:620px){body{font-size:14px}.top-actions .btn{font-size:11px;padding:8px 9px}.section{margin-top:15px}.section-head h2{font-size:19px}.section-note{font-size:10px}.match-stage{display:block;padding-top:20px}.team-block{text-align:center}.team-away{text-align:center;margin-top:22px}.team-kicker{margin-bottom:4px}.attendance{margin-left:auto;margin-right:auto}.match-center{margin:16px auto;color:#666}.mode{font-size:13px}.match-center strong{display:none}.team-name{font-size:29px}.metric-grid{gap:8px}.metric-card{padding:13px}.metric-title{font-size:11px}.metric-title img{width:21px;height:21px}.metric-side strong{font-size:20px}.metric-side small{font-size:8px}.highlight-grid{grid-template-columns:1fr}.composition-grid{grid-template-columns:repeat(2,1fr)}.panel,.ranking-panel{padding:14px}.filters{gap:6px}.segmented{width:100%}.segment{flex:1}.control{flex:1;min-width:0}.search-control{min-width:100%;width:100%}.metric-tab{padding:6px 9px}.metric-tab img{width:18px;height:18px}.table-wrap{max-height:620px}.battle-table th:first-child,.battle-table td:first-child{left:0;min-width:142px}.battle-table th:nth-child(2),.battle-table td:nth-child(2){position:static;min-width:64px;border-right:0}.battle-table th:nth-child(2){z-index:6}.battle-table .job-label{display:none}.player-link{max-width:108px}.history-item{grid-template-columns:58px 1fr 32px;padding:13px 12px;gap:10px}.history-date{padding-right:9px}.history-date b{font-size:22px}.history-vs{font-size:12px}.history-stats i:nth-child(3){display:none}.page-head h1{font-size:28px}.drawer-card{padding:22px 16px}.career-grid{grid-template-columns:repeat(2,1fr)}.player-title-line .job-icon{width:42px;height:42px;flex-basis:42px}.player-hero h2{font-size:25px}}

/* ===== Desktop fixed-canvas layout: page stays still, data regions scroll ===== */
@media (min-width: 901px){
  html,body{height:100%;overflow:hidden}
  body{min-height:100%;}
  .topbar{position:relative;top:auto;height:64px}
  .topbar-inner{height:64px;max-width:1880px;padding:0 18px}
  .brand{min-width:238px}
  .sigil{width:36px;height:36px;font-size:17px}
  .brand-copy b{font-size:16px}.brand-copy small{font-size:9px}
  .navbtn{padding:7px 11px;font-size:14px}
  .db-state{padding:6px 9px;font-size:12px}
  .btn.compact{padding:7px 11px;font-size:13px}

  .shell{width:min(1880px,100%);max-width:none;height:calc(100dvh - 64px);margin:0 auto;padding:12px 16px 14px;overflow:hidden}
  .view.active{height:100%;min-height:0;overflow:hidden}

  #dashboardView.active{display:grid;grid-template-columns:minmax(300px,350px) minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);gap:10px}
  #dashboardView>.match-hero{grid-column:1/-1;grid-row:1;margin:0}
  #dashboardView>.metrics-section{grid-column:1/-1;grid-row:2;margin:0;min-height:0}
  #dashboardView>.overview-grid{grid-column:1;grid-row:3;margin:0;min-height:0}
  #dashboardView>.ranking-panel{grid-column:2;grid-row:3;margin:0;min-height:0}

  .match-hero{padding:11px 18px 12px;border-radius:15px}
  .match-topline{padding-bottom:7px;gap:10px}
  .match-context{gap:10px}.hero-meta{gap:5px}.pill{padding:4px 8px;font-size:10px;max-width:360px}
  .match-stage{grid-template-columns:1fr 160px 1fr;gap:18px;padding-top:10px}
  .team-kicker{font-size:10px;margin-bottom:3px}.team-name{font-size:clamp(24px,2.15vw,34px)}
  .team-sub{margin-top:5px;font-size:12px}.attendance{height:4px;margin-top:7px}
  .mode{font-size:18px}.mode i{font-size:11px}.match-center strong{margin-top:4px;font-size:12px}.match-center small{margin-top:1px;font-size:10px}

  .metrics-section .section-head{margin:0 0 6px;align-items:center}
  .metrics-section .section-head h2{font-size:17px;margin-top:1px}.metrics-section .eyebrow{display:none}
  .metric-grid{gap:8px}.metric-card{padding:9px 10px 8px;border-radius:13px}
  .metric-title{font-size:12px;gap:5px}.metric-title img{width:20px;height:20px}.metric-ratio{font-size:10px}
  .metric-values{margin-top:8px;gap:4px}.metric-side strong{font-size:19px}.metric-side small{font-size:9px;margin-top:3px}
  .metric-colon{padding-bottom:8px}.compare-bar{height:4px;margin-top:7px}

  .overview-grid{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:9px;overflow:hidden}
  .overview-grid .panel{padding:11px 12px;border-radius:14px;min-height:0;overflow:hidden}
  .overview-grid .section-head{margin-bottom:7px}.overview-grid .section-head h2{font-size:16px;margin-top:1px}.overview-grid .eyebrow{font-size:10px}
  .highlight-grid{grid-template-columns:1fr 1fr;gap:6px}.highlight-card{grid-template-columns:31px 1fr;padding:7px 8px;gap:7px;border-radius:10px}
  .highlight-icon{width:29px;height:29px;border-radius:8px}.highlight-icon img{width:21px;height:21px}.highlight-main .label{font-size:9px}.highlight-main b{font-size:12px;margin-top:0}
  .highlight-main .job-badge{margin-top:3px}.highlight-value{grid-column:2;font-size:14px;margin-top:-2px}
  .highlight-card .job-icon{width:20px;height:20px;flex-basis:20px}.highlight-card .job-label{font-size:10px}
  .composition-panel{display:flex;flex-direction:column}.composition-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;overflow:hidden}
  .comp-card{padding:6px 7px;gap:6px;border-radius:9px}.comp-card .job-icon{width:28px;height:28px;flex-basis:28px}
  .comp-meta b{font-size:11px}.comp-meta span{font-size:9px}.comp-count{font-size:15px}

  .ranking-panel{display:flex;flex-direction:column;overflow:hidden;padding:11px 12px;border-radius:14px}
  .ranking-panel>.section-head{flex:0 0 auto;margin-bottom:7px}.ranking-panel .section-head h2{font-size:17px;margin-top:1px}.ranking-panel .eyebrow{font-size:10px}
  .ranking-head{gap:9px}.filters{gap:5px}.control,.search-control{height:32px;border-radius:8px}.control{padding:0 8px;font-size:11px}.search-control{min-width:150px;padding:0 8px}.search-control input{font-size:11px}.search-control span{font-size:14px}
  .segmented{padding:2px;border-radius:8px}.segment{padding:4px 7px;font-size:10px}
  .metric-tabs{flex:0 0 auto;gap:4px;padding:0 0 6px;margin:0}.metric-tab{padding:4px 7px;border-radius:8px;font-size:10px;gap:4px}.metric-tab img{width:15px;height:15px}
  .podium{flex:0 0 auto;gap:6px;margin:0 0 7px}.podium-item{grid-template-columns:30px 1fr auto;gap:7px;padding:7px 9px;border-radius:10px}
  .rank-no{width:27px;height:27px;border-radius:8px;font-size:14px}.podium-info .name{font-size:12px}.podium-info .meta{font-size:9px;margin-top:2px}.podium-item .score strong{font-size:14px}.podium-item .score small{font-size:9px;margin-top:0}
  .podium-item .job-icon{width:18px;height:18px;flex-basis:18px}.podium-item .job-label{font-size:9px}.team-chip{font-size:9px;padding:1px 5px}

  .table-shell{flex:1;min-height:0;display:flex;flex-direction:column;border-radius:11px}
  .table-wrap{flex:1;min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain}
  .table-hint{flex:0 0 auto;padding:5px 9px;font-size:9px}
  table{font-size:12px}th,td{padding:7px 9px}th{font-size:10px}
  .battle-table th:first-child,.battle-table td:first-child{min-width:144px}.battle-table th:nth-child(2),.battle-table td:nth-child(2){left:144px;min-width:96px}
  .player-link{font-size:12px}.player-sub{font-size:9px}.job-icon{width:22px;height:22px;flex-basis:22px}.job-label{font-size:10px}
  .table-total.away td{bottom:31px}

  #historyView.active,#rankingsView.active{display:flex;flex-direction:column;min-height:0;overflow:hidden}
  .page-head{flex:0 0 auto;margin:0 0 10px;align-items:center}.page-head h1{font-size:26px;margin:2px 0}.page-head p{font-size:12px}.page-head .eyebrow{font-size:10px}
  .history-grid{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;align-content:start;padding-right:3px}
  .history-item{padding:11px 13px}.history-date b{font-size:22px}.history-vs{font-size:12px}.history-stats{margin-top:5px}.history-stats i{font-size:9px;padding:3px 6px}

  #rankingsView>.metric-tabs{flex:0 0 auto}
  #rankingsView>.career-podium{flex:0 0 auto;margin-bottom:8px}
  #rankingsView>.card.panel{flex:1;min-height:0;display:flex;overflow:hidden;padding:0}
  .career-table-wrap{flex:1;min-height:0;height:100%;max-height:none;overflow:auto;overscroll-behavior:contain}
  .career-podium-card{padding:9px 11px}.career-rank{width:31px;height:31px;font-size:15px}.career-podium-main b{font-size:12px}.career-podium-main span{font-size:9px}.career-podium-value strong{font-size:15px}.career-podium-value small{font-size:9px}
}

@media (min-width: 901px) and (max-height: 820px){
  .topbar,.topbar-inner{height:58px}.shell{height:calc(100dvh - 58px);padding-top:8px;padding-bottom:8px}
  #dashboardView.active{gap:7px;grid-template-columns:minmax(280px,320px) minmax(0,1fr)}
  .match-hero{padding:8px 14px 9px}.match-topline{padding-bottom:5px}.match-stage{padding-top:7px}.team-name{font-size:24px}.team-sub{font-size:10px}.attendance{margin-top:5px}
  .metrics-section .section-head{display:none}.metric-card{padding:7px 8px}.metric-values{margin-top:6px}.metric-side strong{font-size:17px}.metric-side small{display:none}.compare-bar{margin-top:6px}
  .overview-grid{gap:6px}.overview-grid .panel{padding:8px 9px}.overview-grid .section-head{margin-bottom:5px}.highlight-card{padding:5px 6px}.composition-grid{gap:4px}.comp-card{padding:4px 6px}.comp-card .job-icon{width:24px;height:24px;flex-basis:24px}.comp-meta span{display:none}
  .ranking-panel{padding:8px 9px}.ranking-panel>.section-head{margin-bottom:5px}.metric-tabs{padding-bottom:4px}.podium{margin-bottom:5px}.podium-item{padding:5px 7px}.table-hint{display:none}
}

/* Mobile/tablet keep normal document scrolling for usability. */
@media (max-width:900px){
  html,body{height:auto;overflow-x:hidden;overflow-y:auto}
  .shell{height:auto;overflow:visible}
}
