:root{--brand:#5451e7;--ink:#1a1a2e;--muted:#696779;--line:#e3e1f1;--paper:#f7f6ff;--green:#238158}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,sans-serif;line-height:1.5}a{color:var(--brand)}button,input,select{font:inherit}a,button,input,select{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #36b26b;outline-offset:4px}.shell{max-width:1120px;margin:auto;padding:0 24px}.top{background:#fff;border-bottom:1px solid var(--line)}.top-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.brand{font-weight:800;text-decoration:none}.back{font-weight:700;text-decoration:none;border:1px solid var(--line);padding:10px 16px;border-radius:10px}.section-nav{display:flex;gap:20px;overflow:auto;padding-top:13px;padding-bottom:13px;white-space:nowrap;font-size:.88rem}.section-nav a{text-decoration:none;color:var(--muted)}.section-nav a[aria-current=page]{color:var(--brand);font-weight:800}.hero{padding:48px 0 30px}.eyebrow{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--brand)}h1{font-size:clamp(2rem,5vw,3.6rem);line-height:1.1;letter-spacing:-.04em;margin:12px 0 20px}h2{font-size:1.3rem;margin:0}.lede{color:var(--muted);max-width:690px;font-size:1.05rem}.numbers{display:flex;gap:36px;margin:28px 0 8px}.numbers strong{font-size:2.3rem;line-height:1;display:block;color:var(--brand)}.numbers span{font-size:.8rem;color:var(--muted)}.controls{display:flex;align-items:end;gap:16px;flex-wrap:wrap;padding:22px;background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:20px}.tabs{display:flex;gap:6px;align-self:center}.tabs button{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 16px;cursor:pointer;white-space:nowrap}.tabs button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}.control{display:flex;flex-direction:column;gap:6px;font-size:.8rem;flex:1;min-width:180px}.control input,.control select{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff;color:var(--ink);width:100%}.caption{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.85rem;margin:18px 0}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}table{border-collapse:collapse;width:100%;font-size:.88rem}th{background:#eeecfc;text-align:left;color:#5d5878;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:15px 16px;white-space:nowrap}td{padding:14px 16px;border-top:1px solid #efedf6;vertical-align:middle}.rank{font-weight:800;color:var(--muted);width:64px}.team{font-weight:700;min-width:190px}.city{color:var(--muted);min-width:115px}.num{text-align:right;font-variant-numeric:tabular-nums}.rating{font-weight:800;color:var(--brand);font-size:1.02rem}.home-team{background:#edf8f1}.home-team .team{color:#216c49}.medal .rank{color:var(--brand)}.award{display:inline-block;font-size:.65rem;color:#6c5b20;background:#faf1d0;border-radius:4px;margin-left:5px;padding:1px 4px}.empty{padding:32px;text-align:center;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:12px}.city-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0 44px}.city-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;min-width:0}.city-card h2{display:flex;justify-content:space-between;gap:16px}.count{color:var(--brand);font-size:1.4rem}.bar{height:5px;background:#edeafa;border-radius:6px;overflow:hidden;margin:16px 0}.bar span{height:100%;display:block;background:var(--brand)}.split{color:var(--muted);font-size:.85rem}.city-card summary{cursor:pointer;font-weight:700;margin:18px 0 10px}.city-card ul{margin:8px 0 18px;padding-left:20px;font-size:.85rem}.city-card li{margin:5px 0}.city-card .grade{font-size:.8rem;color:var(--muted);margin-top:16px}.city-card a{text-decoration:none}.city-card a:hover{text-decoration:underline}.footer{margin-top:40px;padding:28px 0 36px;border-top:1px solid var(--line);font-size:.88rem}.footer a{margin-right:24px;display:inline-block;margin-bottom:8px}[hidden]{display:none!important}@media(max-width:640px){.shell{padding-left:16px;padding-right:16px}.hero{padding-top:32px}.numbers{gap:26px}.numbers strong{font-size:2rem}.controls{padding:16px;gap:14px}.tabs{width:100%}.tabs button{flex:1;padding:10px}.control{min-width:130px}.city-grid{grid-template-columns:1fr}.city-card{padding:20px}th,td{padding:12px}.section-nav{gap:18px}.table-wrap table{min-width:650px}.caption{font-size:.78rem}.top-inner{gap:8px}.back{font-size:.8rem}}

/* Consistent filter sizing across native form controls. */
.controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
.controls:has(.tabs){grid-template-columns:auto minmax(0,1fr) minmax(0,1fr)}
.tabs{align-self:end;min-width:0}.tabs button,.control input,.control select{height:48px;font-size:16px;line-height:24px}
.control{min-width:0}.control input{min-width:0;-webkit-appearance:none}
@media(max-width:850px){.controls:has(.tabs){grid-template-columns:repeat(2,minmax(0,1fr))}.tabs{grid-column:1/-1}.tabs button{flex:1}.league th,.league td{padding:12px 10px}.league .team{min-width:140px}.league .city{min-width:100px}}
@media(max-width:640px){
.controls,.controls:has(.tabs){grid-template-columns:minmax(0,1fr)}
.section-nav{white-space:normal;flex-wrap:wrap;gap:8px 18px}.section-nav a{padding:5px 0}
.numbers{gap:16px}.numbers>div{min-width:0}
.league .table-wrap{border:0;background:transparent;overflow:visible;border-radius:0}
.league table,.league tbody{display:block;width:100%;min-width:0}
.league thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.league tbody tr{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:12px;padding:16px;gap:0 8px}
.league tbody tr.home-team{background:#edf8f1}
.league td{display:block;border:0;padding:0;min-width:0;width:auto;overflow-wrap:anywhere}
.league .rank{position:absolute;right:16px;top:16px;font-size:1rem}.league .rank:before{content:'#';font-size:.8rem}
.league .team{grid-column:1/-1;padding-right:48px;font-size:1rem;line-height:1.4}
.league .city{grid-column:1/-1;padding-right:48px;margin:4px 0 14px;font-size:.8rem}
.league .num{text-align:left;border-top:1px solid var(--line);padding-top:10px;font-size:1.1rem}
.league .num:before{content:attr(data-label);display:block;font-size:.65rem;font-weight:500;color:var(--muted);margin-bottom:4px;letter-spacing:0}
.league .award{margin-left:4px;font-size:.6rem}
}
