:root{--brand: #ec1c24;--brand-dark: #c4141b;--brand-tint: #fdecec;--canvas: #f4f5f7;--surface: #ffffff;--surface-alt: #fafbfc;--ink: #12161c;--ink-muted: #667085;--ink-faint: #98a2b3;--border: #e4e7ec;--border-strong: #d0d5dd;--good: #067647;--good-bg: #ecfdf3;--bad: #d92d20;--bad-bg: #fef3f2;--warn: #b54708;--warn-bg: #fffaeb;--neutral: #667085;--neutral-bg: #f2f4f7;--font-ui: "Poppins", system-ui, -apple-system, sans-serif;--font-num: "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;--fs-display: 2rem;--fs-kpi: 1.75rem;--fs-h2: 1.0625rem;--fs-body: .875rem;--fs-label: .75rem;--fs-micro: .6875rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 2px rgba(16, 24, 40, .05);--shadow-lg: 0 4px 12px rgba(16, 24, 40, .08);--maxw: 1400px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-body);line-height:1.5;-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.shell{max-width:var(--maxw);margin:0 auto;padding:0 var(--sp-5) var(--sp-7)}.topbar{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar__inner{max-width:var(--maxw);margin:0 auto;padding:var(--sp-4) var(--sp-5);display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.topbar__title{margin:0;font-size:var(--fs-display);font-weight:600;letter-spacing:-.02em;line-height:1.1}.topbar__title:before{content:"";display:inline-block;width:4px;height:.85em;background:var(--brand);border-radius:2px;margin-right:var(--sp-3);vertical-align:-.04em}.topbar__period{margin:var(--sp-2) 0 0;color:var(--ink-muted);font-size:var(--fs-body)}.topbar__period b{color:var(--ink);font-weight:500}.topbar__updated{text-align:right;font-size:var(--fs-label);color:var(--ink-muted)}.topbar__updated strong{display:block;font-family:var(--font-num);font-size:var(--fs-body);color:var(--ink);font-weight:500}.notice{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);font-size:var(--fs-body);margin-top:var(--sp-4);border:1px solid transparent}.notice--warn{background:var(--warn-bg);color:var(--warn);border-color:#fedf89}.notice--info{background:var(--neutral-bg);color:var(--ink-muted)}.notice__dot{width:6px;height:6px;border-radius:50%;background:currentColor;margin-top:8px;flex:none}.filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-4);margin-top:var(--sp-5);box-shadow:var(--shadow)}.filters__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3)}.field{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.field__label{font-size:var(--fs-micro);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;padding:9px 28px 9px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' stroke='%23667085' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 9px center;font:inherit;font-size:var(--fs-body);color:var(--ink);cursor:pointer;text-overflow:ellipsis}.field select:disabled{background-color:var(--surface-alt);color:var(--ink-faint);cursor:not-allowed}.field--primary select{border-color:var(--ink);font-weight:500}.filters__foot{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border);flex-wrap:wrap}.filters__count{font-size:var(--fs-label);color:var(--ink-muted)}.btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-body);font-weight:500;padding:8px 14px;border-radius:var(--radius-sm);cursor:pointer}.btn:hover:not(:disabled){background:var(--surface-alt);border-color:var(--ink-faint)}.btn:disabled{opacity:.45;cursor:not-allowed}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--sp-4);margin-top:var(--sp-5)}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-4) var(--sp-5);box-shadow:var(--shadow)}.kpi__label{font-size:var(--fs-micro);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.kpi__value{font-family:var(--font-num);font-size:var(--fs-kpi);font-weight:500;letter-spacing:-.02em;margin-top:var(--sp-2);font-variant-numeric:tabular-nums;line-height:1.15}.kpi__sub{margin-top:var(--sp-2);font-size:var(--fs-label);color:var(--ink-muted);display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.delta{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-num);font-size:var(--fs-label);font-weight:600;padding:2px 7px;border-radius:20px;font-variant-numeric:tabular-nums}.delta--good{color:var(--good);background:var(--good-bg)}.delta--bad{color:var(--bad);background:var(--bad-bg)}.delta--neutral{color:var(--neutral);background:var(--neutral-bg)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel__head{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap}.panel__title{margin:0;font-size:var(--fs-h2);font-weight:600;letter-spacing:-.01em}.panel__question{margin:var(--sp-1) 0 0;font-size:var(--fs-label);color:var(--ink-muted)}.panel__body{padding:var(--sp-4) var(--sp-5) var(--sp-5)}.chart{width:100%;height:380px}.table-scroll{overflow-x:auto;max-height:460px;overflow-y:auto}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-body)}table.data th,table.data td{padding:10px var(--sp-4);text-align:right;white-space:nowrap;border-bottom:1px solid var(--border)}table.data th:first-child,table.data td:first-child{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1}table.data thead th{position:sticky;top:0;z-index:2;background:var(--surface-alt);font-size:var(--fs-micro);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);cursor:pointer;-webkit-user-select:none;user-select:none}table.data thead th:first-child{z-index:3;background:var(--surface-alt)}table.data thead th[aria-sort]:not([aria-sort=none]){color:var(--ink)}table.data td.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}table.data tbody tr:hover td{background:var(--surface-alt)}table.data tfoot td{font-weight:600;background:var(--surface-alt);border-top:2px solid var(--border-strong);border-bottom:none;position:sticky;bottom:0}.sort-caret{margin-left:4px;opacity:.5}.skeleton{background:linear-gradient(90deg,var(--neutral-bg) 25%,#e8ebef 37%,var(--neutral-bg) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.state{padding:var(--sp-7) var(--sp-5);text-align:center;color:var(--ink-muted)}.state__title{font-weight:600;color:var(--ink);margin-bottom:var(--sp-2)}.state__actions{margin-top:var(--sp-4)}.state__id{margin-top:var(--sp-3);font-family:var(--font-num);font-size:var(--fs-micro);color:var(--ink-faint)}.legend{display:flex;gap:var(--sp-4);font-size:var(--fs-label);color:var(--ink-muted)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:14px;height:2px;border-radius:2px;display:inline-block}.tag{font-size:var(--fs-micro);font-weight:600;padding:1px 6px;border-radius:4px;background:var(--warn-bg);color:var(--warn);letter-spacing:.03em}@media (max-width: 640px){.shell{padding:0 var(--sp-4) var(--sp-6)}.topbar__title{font-size:1.5rem}.topbar__updated{text-align:left}}.toolbar{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.segmented{display:inline-flex;background:var(--neutral-bg);border-radius:var(--radius-sm);padding:2px}.segmented__btn{border:0;background:transparent;font:inherit;font-size:var(--fs-label);font-weight:500;color:var(--ink-muted);padding:6px 14px;border-radius:4px;cursor:pointer}.segmented__btn.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.search{border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 12px;font:inherit;font-size:var(--fs-body);min-width:200px;background:var(--surface);color:var(--ink)}.search::placeholder{color:var(--ink-faint)}table.data tfoot tr.total td{border-top:2px solid var(--brand)}.movers{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6)}@media (max-width: 860px){.movers{grid-template-columns:1fr;gap:var(--sp-5)}}.movers__title{margin:0 0 var(--sp-3);font-size:var(--fs-micro);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.movers__title--bad{color:var(--bad)}.movers__title--good{color:var(--good)}.movers__empty{margin:0;color:var(--ink-faint);font-size:var(--fs-body)}.movers__list{list-style:none;margin:0;padding:0}.mover{display:flex;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border)}.mover:last-child{border-bottom:0}.mover__rank{font-family:var(--font-num);font-size:var(--fs-label);color:var(--ink-faint);width:14px;flex:none;padding-top:2px}.mover__body{flex:1;min-width:0}.mover__row{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3)}.mover__name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mover__meta{margin-top:2px;font-family:var(--font-num);font-size:var(--fs-label);color:var(--ink-muted);font-variant-numeric:tabular-nums}.geo-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-3)}.geo-search{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-4);flex-wrap:wrap}table.data tr.tier td{background:var(--surface-alt);font-size:var(--fs-micro);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);padding:7px var(--sp-4);position:sticky;left:0;border-bottom:1px solid var(--border-strong)}table.data th.th--static{cursor:default}.topbar__right{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap}.tabs{display:flex;gap:var(--sp-1);background:var(--neutral-bg);border-radius:var(--radius-sm);padding:2px}.tabs__link{padding:7px 14px;border-radius:4px;font-size:var(--fs-body);font-weight:500;color:var(--ink-muted);text-decoration:none;white-space:nowrap}.tabs__link.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.tabs__link:hover:not(.active){color:var(--ink)}.raw-stats{display:flex;gap:var(--sp-7);flex-wrap:wrap}.format-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-4)}.format{display:block;border:1px solid var(--border-strong);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);cursor:pointer}.format:hover{border-color:var(--ink-faint)}.format.is-active{border-color:var(--brand);background:var(--brand-tint)}.format input{position:absolute;opacity:0;pointer-events:none}.format:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}.format__name{display:block;font-weight:600}.format__hint{display:block;font-size:var(--fs-label);color:var(--ink-muted);margin-top:2px}.btn--primary{display:inline-block;background:var(--brand);border-color:var(--brand);color:#fff;text-decoration:none;padding:10px 20px;font-weight:600}.btn--primary:hover:not(.is-disabled){background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.btn--primary.is-disabled{background:var(--border-strong);border-color:var(--border-strong);color:var(--surface);cursor:not-allowed;pointer-events:none}table.data--raw th,table.data--raw td{font-size:var(--fs-label);padding:8px var(--sp-3);text-align:left}table.data--raw td.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}table.data--raw .null{color:var(--ink-faint);font-style:italic}
