:root{color-scheme:dark;--bg:#0f0d10;--surface:#17151b;--card:#18151c;--text:#f0ede8;--muted:#948f97;--dim:#6b6570;--line:rgba(255,255,255,.1);--purple:#c9a7ff;--pink:#d8a7d8;--green:#b8d9c0;--blue:#a9d6e5;--yellow:#e8d9a7;--gold:#d8b47a;--mono:ui-monospace,"SFMono-Regular","Cascadia Code",Consolas,monospace;font-family:var(--mono),"Noto Sans TC",ui-sans-serif,system-ui,-apple-system,sans-serif}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;color:var(--text);background:var(--bg)}
a{color:inherit}
button{font:inherit}
[hidden]{display:none!important}
.app-shell{width:min(100%,520px);min-height:100vh;margin:auto;background:var(--surface)}
.view{padding:22px 18px 30px}
.kicker{margin:0 0 4px;color:var(--dim);font:600 9px var(--mono);letter-spacing:.1em}
h1{margin:0 0 6px;font-size:clamp(24px,7vw,29px);line-height:1.2;letter-spacing:-.03em}
h2{margin:0;font-size:17px;font-weight:600}
.lede{margin:0 0 18px;color:var(--muted);font-size:11px;line-height:1.6}
.system-message{padding:36px 8px;color:var(--muted);font-size:12px;line-height:1.7;text-align:center}
.system-message a{display:block;margin-top:10px;color:var(--purple)}
.chips{margin:0 -18px 14px;padding:0 18px 4px;display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;padding:8px 11px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:transparent;font-size:11px;cursor:pointer}
.chip.active{color:#17151b;border-color:var(--accent);background:var(--accent);font-weight:600}
.board{padding:16px;border:1px solid var(--accent);border-radius:16px;background:var(--card);scroll-margin-top:84px}
.board-head{margin-bottom:12px;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.board-head small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
#board-total{color:var(--dim);font-size:10px;white-space:nowrap}
.rows{margin:0;padding:0;list-style:none;display:grid;gap:2px}
body.portal-rank .row{min-height:48px;padding:8px;display:grid;grid-template-columns:28px 30px minmax(0,1fr) auto;align-items:center;gap:10px;border-radius:10px}
body.portal-rank .row .rank{color:var(--dim);font-size:13px;text-align:center;font-variant-numeric:tabular-nums}
body.portal-rank .row.podium .rank{width:24px;height:24px;margin:auto;display:grid;place-items:center;border-radius:50%;color:#17151b;font-weight:700}
body.portal-rank .row.place-1 .rank{background:#e8d9a7}
body.portal-rank .row.place-2 .rank{background:#cdd1d8}
body.portal-rank .row.place-3 .rank{background:#d6a887}
body.portal-rank .row-avatar{width:30px;height:30px;border-radius:7px;font-size:13px}
body.portal-rank .row-avatar img{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}
body.portal-rank .row .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
body.portal-rank .row .value{color:var(--muted);font-size:12px;white-space:nowrap}
body.portal-rank .row .value b{color:var(--text);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
body.portal-rank .row.podium .value b{color:var(--accent)}
body.portal-rank .row.me{background:rgba(255,255,255,.07)}
.mine{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line)}
@media(max-width:340px){body.portal-rank .row{gap:7px}body.portal-rank .row .value b{font-size:14px}}
.mine-note{margin:0;padding:6px 8px;color:var(--muted);font-size:11px}
.back-link{display:block;margin-top:22px;color:var(--dim);font-size:10px;text-decoration:none;text-align:center}
.accent-0{--accent:var(--purple)}
.accent-1{--accent:var(--pink)}
.accent-2{--accent:var(--blue)}
.accent-3{--accent:var(--green)}
.accent-4{--accent:var(--yellow)}
.accent-5{--accent:var(--gold)}
.portal-rank{--purple:#E0CEE9;--pink:#F4C2F4;--green:#BEE0C6;--blue:#B1DEED;--yellow:#E4D5A4;--gold:#F4D095;--text:#F5F3F7}
@media(min-width:650px){body{padding:18px}.app-shell{min-height:calc(100vh - 36px);border:1px solid var(--line);border-radius:28px;overflow:hidden}}
.stats-hero{margin-bottom:22px;padding:18px;border:1px solid var(--purple);border-radius:16px;background:var(--card)}
.stats-hero-player{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:15px}
.stats-hero-avatar{width:36px;height:36px;border-radius:8px}
.stats-hero-avatar img{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}
.stats-hero-label{margin:0;color:var(--muted);font-size:11px}
.stats-hero-number{margin:2px 0 8px;color:var(--muted);font-size:14px}
.stats-hero-number b{color:var(--purple);font-size:40px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stats-hero-rank{color:var(--dim);font-size:11px}
.stat-group{margin-bottom:20px}
.stat-group h2{margin:0 0 10px;font-size:13px;color:var(--muted)}
.stats{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.stat{min-width:0;padding:12px;display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.stat-title{color:var(--accent);font-size:12px;font-weight:600}
.stat-value{color:var(--muted);font-size:11px}
.stat-value b{color:var(--text);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}
.stat-sub{overflow:hidden;color:var(--dim);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.stat-rank{margin-top:4px;color:var(--muted);font-size:10px}
.stat.empty .stat-value b{color:var(--dim)}
/* 排行榜分頁：冠軍牆、前 10 名與我的數據。 */
.champion-avatar,.row-avatar,.stats-hero-avatar{position:relative;display:grid;place-items:center;overflow:hidden;color:var(--muted);background:rgba(255,255,255,.08);font-weight:600}
.champion-avatar img{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 20px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.tabs button{min-height:44px;border:0;border-radius:9px;color:var(--muted);background:transparent;font-size:14px;cursor:pointer}
.tabs button[aria-selected="true"]{color:#17151b;background:var(--purple);font-weight:700}
.section-title{margin:0;font-size:17px}
.section-note{margin:2px 0 12px;color:var(--muted);font-size:12px}
.champions{margin:0 0 10px;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.champions.featured{grid-template-columns:1fr}
.champion{min-width:0}
.champion-card{position:relative;width:100%;height:100%;min-height:118px;padding:12px;display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:12px;color:var(--text);background:var(--card);text-align:left;cursor:pointer;overflow:hidden}
.champion-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--accent)}
.champion-card:hover{border-color:var(--accent)}
.champion-head{display:grid;gap:1px;min-width:0}
.champion-title{color:var(--accent);font-size:12px;font-weight:700}
.champion-sub{overflow:hidden;color:var(--dim);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.champion-who{display:flex;align-items:center;gap:8px;min-width:0}
.champion-avatar{flex:none;width:28px;height:28px;border-radius:7px;font-size:12px;box-shadow:0 0 0 1px var(--gold)}
.champion-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}
.champion-who em,.row .name em{margin-left:6px;padding:1px 7px;border-radius:999px;color:#17151b;background:var(--accent);font-size:10px;font-style:normal;font-weight:700}
.champion-who em{flex:none;margin-left:0}.champion-who em.tie{color:var(--muted);background:rgba(255,255,255,.08)}
.champion-value{margin-top:auto;color:var(--muted);font-size:11px}
.champion-value b{color:var(--text);font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}
.champion-empty{margin-top:auto;color:var(--dim);font-size:12px}
.featured .champion-card{min-height:0;padding:16px 16px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head value" "who who";align-items:start;column-gap:14px;row-gap:10px;border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:radial-gradient(90% 160% at 100% 50%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%),var(--card)}
.featured .champion-card::before{height:4px}
.featured .champion-head{grid-area:head}
.featured .champion-who{grid-area:who}
.featured .champion-value{grid-area:value;margin:0;text-align:right;white-space:nowrap}
.featured .champion-value b{display:block;color:var(--accent);font-size:26px;line-height:1.1;letter-spacing:-.02em}
.featured .champion-title{font-size:15px}
.featured .champion-sub{font-size:11px}
.featured .champion-avatar{width:40px;height:40px;border-radius:9px;font-size:15px;box-shadow:0 0 0 2px var(--gold)}
.featured .champion-name{font-size:16px}
.board .chips{margin:0 -16px 14px;padding:0 16px 4px;flex-wrap:nowrap;overflow-x:auto}
.portal-rank .board .chips{margin-inline:-14px;padding-inline:14px}
.chip.active{color:#17151b}
@media(prefers-reduced-motion:no-preference){.champion-card{transition:border-color .15s,transform .2s}.champion-card:hover{transform:translateY(-2px)}}
@media(max-width:380px){.featured .champion-value b{font-size:21px}.champion-value b{font-size:16px}}
