:root {
  color-scheme: light;
  --bg:#f3f6fb; --surface:#fff; --surface-2:#f7f9fd; --surface-3:#eef3fb;
  --text:#171d2a; --muted:#66738c; --border:#dfe6f0; --grid:#9fb3df;
  --accent:#246bfd; --accent-2:#4a3cff; --accent-soft:rgba(36,107,253,.10);
  --positive:#16815f; --shadow:0 16px 44px rgba(21,35,58,.08); --radius:20px;
}
@media (prefers-color-scheme: dark) {
  :root {
    color-scheme:dark;
    --bg:#0d1420; --surface:#151e2c; --surface-2:#101825; --surface-3:#1b2637;
    --text:#edf2fa; --muted:#a9b4c5; --border:#2b3749; --grid:#394b68;
    --accent:#75a1ff; --accent-2:#7b70ff; --accent-soft:rgba(117,161,255,.13);
    --positive:#67d2aa; --shadow:0 20px 50px rgba(0,0,0,.26);
  }
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0; background:radial-gradient(circle at 92% 0%,rgba(54,91,255,.13),transparent 26rem),var(--bg);
  color:var(--text); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:15px; line-height:1.5;
}
a { color:inherit; }
button,input,select { font:inherit; }
[id] { scroll-margin-top:90px; }
.site-header { position:sticky; top:0; z-index:20; border-bottom:1px solid color-mix(in srgb,var(--border) 78%,transparent); background:color-mix(in srgb,var(--bg) 86%,transparent); backdrop-filter:blur(18px); }
.site-nav { display:flex; align-items:center; gap:24px; width:min(1440px,calc(100% - 36px)); min-height:66px; margin:0 auto; }
.site-brand { display:inline-flex; align-items:center; gap:10px; flex:0 0 auto; text-decoration:none; font-size:17px; font-weight:850; letter-spacing:-.025em; }
.brand-mark { display:grid; place-items:center; width:34px; height:34px; border-radius:11px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; font-size:12px; font-weight:900; letter-spacing:.02em; box-shadow:0 8px 18px rgba(36,107,253,.24); }
.brand-name { color:var(--text); }
.nav-links { display:flex; align-items:center; gap:4px; min-width:0; margin-left:auto; }
.nav-links a { padding:8px 11px; border-radius:10px; color:var(--muted); text-decoration:none; font-size:13px; font-weight:700; white-space:nowrap; }
.nav-links a:hover,.nav-links a.active { background:var(--accent-soft); color:var(--text); }
.page { width:min(1440px,calc(100% - 36px)); margin:0 auto; padding:44px 0 64px; }
.hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,390px); align-items:end; gap:28px; }
.eyebrow,.panel-kicker { margin:0 0 8px; color:var(--accent); font-size:12px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
h1 { margin:0; max-width:1040px; font-size:clamp(34px,5.2vw,72px); line-height:.98; letter-spacing:-.055em; }
.accent { color:var(--accent); }
.subtitle { max-width:870px; margin:18px 0 0; color:var(--muted); font-size:16px; }
.meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.pill { padding:7px 11px; border:1px solid var(--border); border-radius:999px; background:var(--surface); color:var(--muted); font-size:13px; }
.selector-card { padding:18px; border:1px solid var(--border); border-radius:18px; background:var(--surface); box-shadow:var(--shadow); }
.selector-group { position:relative; }
.selector-group + .selector-group { margin-top:14px; }
.selector-card label { display:block; margin-bottom:7px; color:var(--muted); font-size:12px; font-weight:700; letter-spacing:.045em; text-transform:uppercase; }
select { width:100%; min-height:46px; padding:0 42px 0 13px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); color:var(--text); font-weight:700; cursor:pointer; }
select:focus-visible { outline:3px solid var(--accent-soft); outline-offset:2px; }
.load-state { margin-top:28px; padding:18px 20px; border:1px solid var(--border); border-radius:14px; background:var(--surface); color:var(--muted); }
.load-state.error { border-color:#d86272; color:#b53849; }
.overview { display:grid; grid-template-columns:1fr; gap:24px; margin-top:28px; align-items:start; }
.panel { overflow:hidden; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow); }
.panel-head { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:86px; padding:16px 20px; border-bottom:1px solid var(--border); }
.panel-head h2 { margin:0; font-size:19px; letter-spacing:-.02em; }
.panel-head span { flex:0 0 auto; color:var(--muted); font-size:13px; }
.panel-kicker { margin-bottom:2px; font-size:10px; }
.chart-panel { display:flex; grid-row:1; flex-direction:column; }
.brand-combobox { position:relative; }
.brand-search { width:100%; min-height:46px; padding:0 48px 0 13px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); color:var(--text); font-weight:700; }
.brand-search::placeholder { color:var(--muted); }
.brand-search:focus-visible { outline:3px solid var(--accent-soft); outline-offset:2px; }
.brand-search:disabled { cursor:progress; opacity:.72; }
.brand-toggle { position:absolute; top:50%; right:5px; display:grid; place-items:center; width:38px; height:38px; padding:0; border:0; border-radius:9px; background:transparent; color:var(--text); cursor:pointer; transform:translateY(-50%); }
.brand-toggle:hover,.brand-toggle:focus-visible { background:var(--accent-soft); }
.brand-toggle:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }
.brand-toggle:disabled { cursor:progress; opacity:.5; }
.brand-toggle span { width:0; height:0; border-right:6px solid transparent; border-left:6px solid transparent; border-top:7px solid currentColor; transition:transform .16s ease; }
.brand-toggle[aria-expanded="true"] span { transform:rotate(180deg); }
.brand-suggestions { position:absolute; z-index:30; top:calc(100% + 7px); right:0; left:0; max-height:min(288px,45vh); overflow-y:auto; padding:6px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); box-shadow:var(--shadow); }
.brand-suggestions button { display:block; width:100%; padding:11px 12px; border:0; border-radius:8px; background:transparent; color:var(--text); font:inherit; font-weight:700; text-align:left; cursor:pointer; }
.brand-suggestions button:hover,.brand-suggestions button.active { background:var(--accent-soft); color:var(--accent); }
.brand-suggestion-empty { display:block; padding:11px 12px; color:var(--muted); }
table { width:100%; border-collapse:collapse; }
th,td { padding:12px 16px; border-bottom:1px solid var(--border); text-align:left; }
th { position:sticky; top:0; z-index:2; background:var(--surface-2); color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.ranking-panel { margin-top:24px; }
.ranking-controls { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.ranking-controls label { color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.ranking-controls select { width:min(280px,34vw); min-height:40px; }
.ranking-scroll { max-height:none; }
.ranking-table .rank-col { width:72px; padding-left:28px; text-align:left; }
.ranking-table .brand-col { padding-left:28px; }
.ranking-table tbody tr { cursor:pointer; }
.ranking-table tbody tr:hover { background:var(--accent-soft); }
.sort-button { display:inline-flex; align-items:center; gap:6px; padding:0; border:0; background:none; color:inherit; font:inherit; letter-spacing:inherit; text-transform:inherit; cursor:pointer; }
th.num .sort-button { justify-content:flex-end; margin-left:auto; }
.sort-button.active::after { content:"↑"; color:var(--accent); font-size:12px; }
.sort-button.active.desc::after { content:"↓"; }
.sort-button:focus-visible { outline:2px solid var(--accent); outline-offset:4px; border-radius:3px; }
.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.brand-cell { font-weight:750; }
.chart-section { padding:18px 18px 4px; }
.chart-title { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px; margin:0 2px 6px; }
.chart-title h2 { margin:0; font-size:19px; letter-spacing:-.02em; }
.chart-title span { color:var(--muted); font-size:13px; }
.chart-wrap { position:relative; }
#chart { display:block; width:100%; height:auto; min-height:260px; overflow:visible; }
.grid-line { stroke:var(--grid); stroke-width:1; stroke-dasharray:2 5; opacity:.65; }
.axis-label { fill:var(--muted); font-size:12px; }
.series-area { fill:url(#area-gradient); }
.series-line { fill:none; stroke:var(--accent-2); stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.average-line { stroke:var(--muted); stroke-width:1.3; stroke-dasharray:6 5; opacity:.8; }
.crosshair { stroke:var(--muted); stroke-width:1; stroke-dasharray:3 4; pointer-events:none; }
.focus-dot { fill:var(--surface); stroke:var(--accent-2); stroke-width:3; pointer-events:none; }
.hit-area { fill:transparent; cursor:crosshair; touch-action:pan-y; }
.tooltip { position:absolute; z-index:3; min-width:150px; padding:9px 11px; border:1px solid var(--border); border-radius:10px; background:var(--surface); box-shadow:var(--shadow); pointer-events:none; transform:translate(-50%,calc(-100% - 12px)); }
.tooltip[hidden] { display:none; }
.tooltip-month { color:var(--muted); font-size:12px; }
.tooltip-value { margin-top:2px; font-weight:850; }
.chart-note,.panel-note { margin:0; padding:8px 20px 17px; color:var(--muted); font-size:12px; }
.detail-grid { display:grid; grid-template-columns:1fr; gap:24px; margin-top:24px; }
.table-scroll { max-height:470px; overflow:auto; -webkit-overflow-scrolling:touch; }
.geography-panel .table-scroll { max-height:none; overflow:visible; }
.benefits,.methodology { margin-top:64px; padding-top:4px; }
.section-intro { display:grid; grid-template-columns:minmax(0,.72fr) minmax(320px,1fr); gap:48px; align-items:end; margin-bottom:24px; }
.section-intro h2 { margin:0; max-width:700px; font-size:clamp(28px,4vw,48px); line-height:1.04; letter-spacing:-.045em; }
.section-intro p { margin:0; color:var(--muted); font-size:16px; }
.method-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.method-card { min-height:220px; padding:24px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow); }
.method-number { display:inline-grid; place-items:center; width:32px; height:32px; border-radius:10px; background:var(--accent-soft); color:var(--accent); font-size:12px; font-weight:900; }
.method-card h3 { margin:34px 0 8px; font-size:20px; letter-spacing:-.025em; }
.method-card p { margin:0; color:var(--muted); }
.benefits-intro { grid-template-columns:1fr; }
.benefit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.benefit-card { min-height:0; }
.benefit-card h3 { margin:0 0 8px; }
.update-callout { display:grid; grid-template-columns:auto minmax(0,1fr); gap:20px; align-items:center; margin-top:16px; padding:22px 24px; border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border)); border-radius:var(--radius); background:linear-gradient(120deg,var(--accent-soft),var(--surface)); }
.update-badge { display:inline-flex; align-items:center; justify-content:center; min-width:132px; min-height:44px; padding:0 16px; border-radius:999px; background:var(--accent); color:#fff; font-weight:850; }
.update-callout h3 { margin:0 0 4px; font-size:18px; }
.update-callout p { margin:0; color:var(--muted); }
.cta-block { grid-template-columns:minmax(0,1fr) auto; margin-top:24px; }
.cta-block h2 { margin:0 0 4px; font-size:20px; letter-spacing:-.025em; }
.cta-button { min-width:190px; text-decoration:none; white-space:nowrap; }
[hidden] { display:none !important; }
@media (max-width:1100px) {
  .detail-grid { grid-template-columns:1fr; }
}
@media (max-width:780px) {
  .brand-name { display:none; }
  .site-nav { width:min(100% - 20px,1440px); min-height:58px; gap:12px; }
  .nav-links { overflow-x:auto; scrollbar-width:none; }
  .nav-links::-webkit-scrollbar { display:none; }
  .nav-links a { padding:8px; }
  .page { width:min(100% - 20px,1440px); padding-top:28px; }
  .hero { grid-template-columns:1fr; gap:20px; }
  select { font-size:16px; }
  .overview { gap:16px; margin-top:18px; }
  .detail-grid { gap:16px; margin-top:16px; }
  th,td { padding:10px 12px; }
  .ranking-table .rank-col { width:54px; padding-left:16px; }
  .ranking-table .brand-col { padding-left:16px; }
  .ranking-panel .panel-head { align-items:stretch; flex-direction:column; }
  .ranking-controls { width:100%; justify-content:flex-start; flex-wrap:wrap; }
  .ranking-controls select { width:100%; order:3; }
  #chart { min-height:240px; }
  .benefits,.methodology { margin-top:44px; }
  .section-intro { grid-template-columns:1fr; gap:14px; }
  .method-grid { grid-template-columns:1fr; }
  .benefit-grid { grid-template-columns:1fr; }
  .method-card { min-height:0; }
  .update-callout { grid-template-columns:1fr; gap:12px; }
  .update-badge { justify-self:start; }
}
@media (max-width:560px) {
  .latest-col { display:none; }
  .panel-head { min-height:76px; padding:14px; }
  .chart-section { padding:14px 10px 2px; }
  .chart-note,.panel-note { padding:8px 14px 14px; }
  .brand-search { width:100%; }
}
@media (max-width:480px) {
  .nav-links { width:100%; margin-left:0; overflow-x:auto; justify-content:flex-start; }
  .nav-links a { padding:8px 6px; font-size:11px; }
}
@media print {
  :root { --bg:#fff; --surface:#fff; --surface-2:#f7f8fb; --text:#111827; --muted:#667085; --border:#d7dce3; --shadow:none; }
  body { background:#fff; } .site-header,.selector-card { display:none; }
  .page { width:100%; padding:0; } .overview,.detail-grid { grid-template-columns:1fr; }
  .chart-panel { height:auto; } .table-scroll { max-height:none; overflow:visible; }
  .panel { break-inside:avoid; box-shadow:none; } th { position:static; }
}
