:root {
  color-scheme: dark;
  --ls-bg: #0a0a0a;
  --ls-card: #111113;
  --ls-stone: #1a1a1e;
  --ls-ink: #fafafa;
  --ls-secondary: rgba(255,255,255,.62);
  --ls-tertiary: rgba(255,255,255,.42);
  --ls-faint: rgba(255,255,255,.32);
  --ls-rule: rgba(255,255,255,.08);
  --ls-strong-rule: rgba(255,255,255,.15);
  --ls-accent: #3b82f6;
  --ls-decline: #f87171;
  --ls-success: #4ade80;
  --ls-warning: #fbbf24;
  --ls-secondary-series: rgba(255,255,255,.34);
  --ls-rail: 280px;
  --ls-content: none;
  --ls-drawer: 420px;
  --ls-motion: 220ms cubic-bezier(.4,0,.2,1);
  --ls-radius: 9px;
  --ls-input: #0d0d0f;
  --ls-shadow: 0 18px 48px rgba(0,0,0,.34);
}
:root[data-theme="light"] {
  color-scheme: light;
  --ls-bg: #f6f6f7;
  --ls-card: #fff;
  --ls-stone: #f0f0f1;
  --ls-ink: #0a0a0a;
  --ls-secondary: rgba(0,0,0,.62);
  --ls-tertiary: rgba(0,0,0,.43);
  --ls-faint: rgba(0,0,0,.33);
  --ls-rule: rgba(0,0,0,.10);
  --ls-strong-rule: rgba(0,0,0,.17);
  --ls-accent: #2563eb;
  --ls-decline: #dc2626;
  --ls-success: #16a34a;
  --ls-warning: #b45309;
  --ls-secondary-series: rgba(0,0,0,.32);
  --ls-input: #fff;
  --ls-shadow: 0 18px 48px rgba(0,0,0,.12);
}
html, body { min-width: 0; overflow-x: clip; }
body, button, input, select { font-family: Inter, Arial, sans-serif; }
body { font-size: 13px; }
button, a { -webkit-tap-highlight-color: transparent; }
button:disabled { opacity: .48; cursor: not-allowed; }
:focus-visible { outline-color: var(--ls-accent); }
::selection { background: color-mix(in srgb, var(--ls-accent) 24%, transparent); }
.app-shell { align-items: stretch; }
.workspace { min-width: 0; flex: 1; }
.rail { background: var(--ls-bg); width: var(--ls-rail); padding: 18px 12px; gap: 0; z-index: 20; }
.wordmark { display: flex; align-items: center; height: 39px; padding: 0 8px; margin: 0 0 24px; }
.wordmark img { width: 135px; height: auto; }
.logo-light { display: none; }
:root[data-theme="light"] .logo-light { display: block; }
:root[data-theme="light"] .logo-dark { display: none; }
.rail-group { margin-bottom: 22px; }
.rail-label { margin: 0 8px 6px; font: 600 10px Inter, sans-serif; letter-spacing: .07em; }
.rail-nav { border: 0; padding: 0; }
.rail-nav a, .rail-nav button, .rail-item {
  display: flex; align-items: center; gap: 10px; width: 100%; min-height: 34px;
  padding: 7px 9px; border: 0; border-radius: 6px; background: transparent;
  color: var(--ls-secondary); text-decoration: none; text-align: left;
  font-size: 12.5px; font-weight: 500; letter-spacing: 0;
}
.rail-nav a:hover, .rail-nav button:hover, .rail-item:hover { background: var(--ls-stone); color: var(--ls-ink); }
.rail-nav a.active, .rail-nav button.active { background: var(--ls-stone); color: var(--ls-ink); font-weight: 600; border: 0; }
.rail-nav a.active .nav-icon, .rail-nav button.active .nav-icon { color: var(--ls-accent); }
.rail-nav .nav-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rail-nav a.planned-link { color: var(--ls-tertiary); }
.rail-nav a.planned-link:hover { color: var(--ls-secondary); }
.rail-nav a.planned-link.active { color: var(--ls-secondary); font-weight: 500; }
.rail-nav a.planned-link.active .nav-icon { color: var(--ls-secondary); }
.rail-nav .unavailable { color: var(--ls-tertiary); cursor: default; }
.rail-more { margin-top: 4px; }
.rail-more summary { padding: 8px 9px; color: var(--ls-secondary); font-size: 12px; cursor: pointer; }
.rail-more summary:hover { color: var(--ls-ink); }
.rail-more-links { padding-left: 0; }
.planned-page-description { max-width: 900px; }
.planned-page-description h3 { margin: 32px 0 12px; font-size: 18px; }
.planned-page-description h3:first-child { margin-top: 0; }
.planned-page-description h4 { margin: 24px 0 10px; font-size: 15px; }
.planned-page-description p, .planned-page-description li { color: var(--ls-secondary); font-size: 14px; line-height: 1.7; }
.planned-page-description p { margin: 0 0 12px; }
.planned-page-description ul, .planned-page-description ol { margin: 0 0 16px; padding-left: 24px; }
.planned-page-description li { margin: 3px 0; }
.planned-page-description blockquote { margin: 16px 0; padding: 10px 16px; border-left: 2px solid var(--ls-accent); }
.planned-page-description blockquote p { margin: 0; }
.planned-page-description table { width: 100%; border-collapse: collapse; font-size: 13px; }
.planned-page-description th, .planned-page-description td { padding: 8px 12px; border-bottom: 1px solid var(--ls-rule); text-align: left; }
.future-page-vision { margin: 28px 0 0; border-top: 1px solid var(--ls-rule); padding-top: 18px; }
.future-page-vision summary { color: var(--ls-secondary); cursor: pointer; font-size: 13px; }
.future-page-vision pre { margin: 16px 0 0; padding: 18px; overflow: auto; white-space: pre-wrap; color: var(--ls-secondary); background: var(--ls-stone); border: 1px solid var(--ls-rule); border-radius: var(--ls-radius); font: 12px/1.7 ui-monospace, SFMono-Regular, Consolas, monospace; }
.nav-icon { width: 16px; flex: none; text-align: center; font-size: 15px; line-height: 1; }
.nav-badge { margin-left: auto; padding: 2px 5px; border-radius: 3px; background: var(--ls-stone); font-size: 9px; color: var(--ls-tertiary); }
.saved-nav { margin-top: 4px; }
.saved-nav a { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.rail-footer { border: 0; padding: 14px 0 0; display: grid; gap: 2px; }
.rail-footer a, .rail-footer button { color: var(--ls-tertiary); padding: 7px 9px; text-decoration: none; font-size: 12px; }
.rail-footer a:hover, .rail-footer button:hover { color: var(--ls-ink); }
.topbar { height: 58px; padding: 0 28px; position: sticky; top: 0; z-index: 15; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid var(--ls-rule); background: var(--ls-bg); }
.topbar-title { min-width: 0; flex: 1; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar-title a { color: var(--ls-secondary); font-weight: 400; text-decoration: none; }
.topbar-title a:hover { color: var(--ls-accent); }
.topbar-search { display: flex; justify-content: space-between; align-items: center; gap: 28px; min-width: 230px; padding: 8px 10px; border: 1px solid var(--ls-rule); border-radius: 6px; background: var(--ls-card); color: var(--ls-tertiary); font-size: 12px; }
.topbar-search:hover, .icon-button:hover { border-color: var(--ls-strong-rule); color: var(--ls-ink); }
.topbar-search kbd { font-family: Inter, sans-serif; }
.icon-button { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--ls-secondary); }
.topbar-menu { display: none; }
.main { width: 100%; max-width: var(--ls-content); padding: 28px 32px 100px; margin: 0; }
.main.wide, .dashboard-main { max-width: var(--ls-content); padding-right: 32px; }
.mobile-header { display: none !important; }
.mobile-nav { display: none; }
.eyebrow, .geo-code, .rail-label { text-transform: uppercase; letter-spacing: .075em; font-family: Inter, sans-serif; }
kbd, .versus, .comparison-row .value small, .type-tag, .saved-market-metrics small, .standout-list small { font-family: Inter, sans-serif; }
.eyebrow { color: var(--ls-tertiary); font-size: 10px; font-weight: 600; }
.geo-code { color: var(--ls-accent); font-size: 10px; font-weight: 600; }
.market-title, .editorial-title, .section-title, .drawer-title, .dashboard-masthead h1, .dashboard-module-heading h2, .saved-market-identity strong, .market-summary h3, .customization h3 { font-family: Inter, Arial, sans-serif; letter-spacing: -.025em; }
.market-title, .dashboard-masthead h1 { font-size: clamp(24px, 2.5vw, 32px); line-height: 1.2; margin: 5px 0; font-weight: 600; }
.editorial-title { font-size: 26px; margin: 4px 0 12px; }
.market-meta, .market-context { color: var(--ls-secondary); font-size: 12px; }
.masthead { align-items: center; gap: 20px; margin-bottom: 20px; }
.masthead-actions { display: flex; align-items: center; gap: 10px; }
.masthead-actions > div:first-child { display: flex; gap: 7px; }
.updated { margin: 0; max-width: 130px; text-align: right; line-height: 1.35; }
.outline { padding: 8px 11px; border-color: var(--ls-strong-rule); border-radius: 6px; background: var(--ls-card); color: var(--ls-ink); font-size: 11.5px; font-weight: 500; white-space: nowrap; }
.outline:hover { background: var(--ls-stone); border-color: var(--ls-strong-rule); }
.back-link { color: var(--ls-secondary); font-size: 11.5px; margin-bottom: 16px; }
.snapshot { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; border: 0; background: transparent; margin: 20px 0 24px; }
.snapshot-cell { min-height: 112px; border: 1px solid var(--ls-rule) !important; border-radius: var(--ls-radius); padding: 14px; background: var(--ls-card); }
.snapshot-cell:hover, .metric-button:hover, .table-row:hover { background: var(--ls-stone); }
.snapshot-label { text-transform: none; letter-spacing: 0; font-size: 11px; margin-bottom: 10px; }
.snapshot-value { font-size: clamp(16px, 1.5vw, 22px); font-weight: 600; }
.resolution { font-family: Inter, sans-serif; text-transform: none; letter-spacing: 0; font-size: 10px; }
.market-tabs { display: flex; gap: 3px; overflow-x: auto; border-bottom: 1px solid var(--ls-rule); margin-bottom: 24px; scrollbar-width: thin; }
.market-tabs a { flex: none; padding: 10px 12px; color: var(--ls-secondary); text-decoration: none; font-size: 12px; border-bottom: 2px solid transparent; }
.market-tabs a:hover { color: var(--ls-ink); }
.market-tabs a.active { color: var(--ls-ink); border-bottom-color: var(--ls-accent); font-weight: 600; }
.overview-layout { display: grid; grid-template-columns: minmax(0,1.8fr) minmax(260px,.8fr); align-items: start; gap: 18px; }
.overview-primary, .overview-secondary { min-width: 0; }
.analytic-section, .market-summary, .intelligence-band, .dashboard-module { border: 1px solid var(--ls-rule); border-radius: var(--ls-radius); background: var(--ls-card); padding: 20px; margin: 0 0 16px; }
.section-heading { align-items: center; gap: 8px; margin-bottom: 17px; }
.section-number { color: var(--ls-tertiary); font: 600 10px Inter, sans-serif; }
.section-title { font-size: 15px; font-weight: 600; }
.headline-grid { gap: 8px; margin-bottom: 12px; }
.headline-grid .metric-button { padding: 13px; border: 1px solid var(--ls-rule); border-radius: 6px; background: var(--ls-stone); }
.headline-value { font-size: 23px; font-weight: 600; }
.headline-label { font-size: 11px; }
.secondary-grid { border-color: var(--ls-rule); }
.secondary-grid .inline-row { min-height: 54px; }
.inline-row { font-size: 11.5px; }
.inline-row strong { font-size: 13px; font-weight: 600; }
.metric-button { border-radius: 5px; }
.metric-context { font-size: 10px; }
.tabs, .chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
.tab, .chip { border-radius: 5px; white-space: nowrap; background: var(--ls-stone); color: var(--ls-secondary); }
.tab.active, .chip.active { background: color-mix(in srgb, var(--ls-accent) 12%, var(--ls-card)); border-color: color-mix(in srgb, var(--ls-accent) 40%, var(--ls-rule)); color: var(--ls-accent); }
.chart-note { color: var(--ls-tertiary); font-size: 10.5px; }
.dashboard-masthead { padding: 4px 0 18px; border: 0; }
.dashboard-masthead { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.dashboard-header-actions { display: flex; gap: 8px; padding-top: 18px; }
.dashboard-masthead small { color: var(--ls-tertiary); font-size: 10px; }
.dashboard-masthead small a { color: var(--ls-accent); }
.dashboard-masthead > p:not(.eyebrow) { font-size: 12px; }
.dashboard-search { display: none; }
.dashboard-toolbar { padding: 0 0 16px; border: 0; }
.dashboard-modules { grid-template-columns: minmax(0,1.6fr) minmax(260px,.85fr); align-items: start; gap: 16px; }
.dashboard-module[data-dashboard-module] { grid-column: auto; }
.dashboard-module { padding: 18px; }
.dashboard-module-heading h2 { font-size: 15px; }
.dashboard-module-heading .eyebrow { font-size: 9px; }
.dashboard-module[data-dashboard-module="intelligence-brief"], .dashboard-module[data-dashboard-module="saved-markets"], .dashboard-module[data-dashboard-module="market-changes"] { grid-column: 1 / -1; }
.dashboard-dev-todo { grid-column: 1 / -1; border-top: 1px solid var(--ls-rule); padding: 16px 0 0; margin-top: 8px; color: var(--ls-tertiary); }
.dashboard-dev-todo h2 { margin: 0 0 8px; font-size: 11px; font-weight: 600; }
.dashboard-dev-todo ul { margin: 0; padding-left: 18px; font-size: 10px; line-height: 1.7; }
.dashboard-brief-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; list-style: none; padding: 0; margin: 0 0 10px; }
.dashboard-brief-list li { border-top: 1px solid var(--ls-rule); padding: 10px 0; }
.dashboard-brief-list a { display: block; color: var(--ls-ink); text-decoration: none; font-size: 12px; line-height: 1.5; }
.dashboard-brief-list a:hover, .dashboard-tools a:hover, .dashboard-movers a:hover { color: var(--ls-accent); }
.dashboard-brief-list small { display: block; margin-top: 3px; color: var(--ls-tertiary); font-size: 10px; }
.dashboard-global-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 12px; }
.dashboard-global-metric { min-width: 0; border-top: 1px solid var(--ls-rule); padding: 10px 0; }
.dashboard-global-metric span, .dashboard-global-metric small { display: block; color: var(--ls-tertiary); font-size: 9px; }
.dashboard-global-metric strong { display: block; margin: 4px 0 2px; font-size: 16px; font-variant-numeric: tabular-nums; }
.dashboard-global-metric small { font-size: 9px; }
.dashboard-movers { list-style: none; padding: 0; margin: 0; }
.dashboard-mover-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.dashboard-mover-columns h3 { margin: 0; padding: 4px 0 6px; color: var(--ls-tertiary); font-size: 10px; font-weight: 500; }
.dashboard-movers li { border-top: 1px solid var(--ls-rule); padding: 8px 0; }
.dashboard-movers a { display: flex; justify-content: space-between; gap: 12px; color: var(--ls-ink); text-decoration: none; font-size: 11px; }
.dashboard-movers small { display: block; margin-top: 2px; color: var(--ls-tertiary); font-size: 9px; }
.dashboard-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; }
.dashboard-tools a { display: grid; grid-template-columns: 18px 1fr; gap: 2px 6px; border-top: 1px solid var(--ls-rule); padding: 9px 0; color: var(--ls-ink); text-decoration: none; }
.dashboard-tools a > span { grid-row: span 2; color: var(--ls-tertiary); }
.dashboard-tools strong { font-size: 11px; }
.dashboard-tools small { color: var(--ls-tertiary); font-size: 9px; }
.dashboard-module .text-button { display: inline-block; margin-top: 8px; color: var(--ls-accent); text-decoration: none; }
.saved-market-actions { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; }
.saved-market-actions .muted { font-size: 10px; }
.saved-market-compare { display: inline-flex; align-items: center; gap: 4px; margin: 0 8px 7px 0; color: var(--ls-tertiary); font-size: 10px; }
.saved-market-identity > button:disabled { opacity: .4; cursor: default; }
.dashboard-economy-table { width: 100%; border-collapse: collapse; font-size: 10px; }
.dashboard-economy-table th, .dashboard-economy-table td { padding: 8px 10px 8px 0; border-top: 1px solid var(--ls-rule); text-align: left; vertical-align: top; }
.dashboard-economy-table td small { display: block; margin-top: 3px; color: var(--ls-tertiary); font-size: 9px; }
.dashboard-economy-table a { color: var(--ls-ink); text-decoration: none; }
.dashboard-chart { margin-top: 10px; }
.preference-list select { display: block; width: 100%; margin-top: 5px; padding: 8px; border: 1px solid var(--ls-strong-rule); border-radius: 5px; background: var(--ls-input); color: var(--ls-ink); font: inherit; text-transform: none; }
.saved-market-row { display: block; border: 1px solid var(--ls-rule); border-radius: 7px; padding: 16px; margin-bottom: 10px; }
.saved-market-identity strong { font-size: 15px; }
.saved-market-identity small { font-size: 10px; }
.saved-market-metrics { margin-top: 13px; }
.saved-market-metrics a { border: 1px solid var(--ls-rule); border-radius: 5px; padding: 8px; }
.saved-market-metrics strong { font-size: 14px; }
.saved-market-brief { margin-top: 14px; border-left: 0; border-top: 1px solid var(--ls-rule); padding: 12px 0 0; }
.saved-market-brief p, .summary-copy p, .market-summary > p { font-family: Inter, sans-serif; font-size: 12px; line-height: 1.6; }
.market-summary h3 { font-size: 16px; }
.market-summary ul { color: var(--ls-secondary); }
.market-summary h4 { color: var(--ls-tertiary); }
.standout-list a { font: 12px/1.45 Inter, sans-serif; }
.standout-list.prose { grid-template-columns: 1fr; gap: 0; }
.standout-list.prose a, .standout-list.prose .standout-static { flex-direction: column; align-items: flex-start; gap: 4px; }
.standout-list.prose small { order: -1; }
.standout-static { display: flex; padding: 11px 0; border-top: 1px solid var(--ls-rule); font: 12px/1.45 Inter, sans-serif; color: var(--ls-ink); }
.freshness-list { display: block; }
.freshness-list div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px; align-items: center; }
.freshness-list span { grid-row: span 2; }
.freshness-list strong, .freshness-list small { text-align: right; }
.detail-value { font-size: 36px; }
.detail-table, .explorer-table { font-size: 11.5px; }
.comparison-lead { margin-top: 28px; }
.comparison-scroll { overflow-x: auto; scrollbar-width: thin; }
.detail-table th, .explorer-table th { background: var(--ls-card); }
.explorer-table thead { background: var(--ls-card); }
.explorer-container { border-radius: var(--ls-radius); background: var(--ls-card); }
.filter-bar input[type=search], .filter-bar select, .palette input, .dashboard-search input { background: var(--ls-input); color: var(--ls-ink); border-color: var(--ls-strong-rule); }
.filter-bar input[type=search]:focus, .filter-bar select:focus, .palette input:focus { border-color: var(--ls-accent); }
.palette, .drawer { background: var(--ls-card); box-shadow: var(--ls-shadow); border-color: var(--ls-rule); border-radius: var(--ls-radius); }
.backdrop { background: rgba(0,0,0,.6); }
.drawer { border-radius: 0; }
.drawer-title { font-size: 18px; }
.drawer-value { font-size: 26px; }
.palette-result:hover, .palette-result:focus-visible { background: var(--ls-stone); }
.palette-result.active { background: color-mix(in srgb, var(--ls-accent) 22%, transparent); box-shadow: inset 3px 0 0 var(--ls-accent); }
.type-tag { color: var(--ls-tertiary); }
.status-unavailable { color: var(--ls-tertiary); }
.status-suppressed { color: var(--ls-warning); }
.methodology-page { max-width: 1120px; }
.methodology-page .methodology-hero { padding-bottom: 28px; }
.methodology-page .methodology-hero > p:last-child { max-width: 680px; font-size: 16px; line-height: 1.5; color: var(--ls-secondary); }
.methodology-page .analytic-section { padding: 28px; margin-bottom: 18px; }
.methodology-page .section-title { font-size: 21px; }
.methodology-page .analytic-section p { max-width: 900px; color: var(--ls-secondary); line-height: 1.7; font-size: 13px; }
.methodology-page .analytic-section p:last-child { margin-bottom: 0; }
.methodology-page a { color: var(--ls-accent); text-underline-offset: 2px; }
.methodology-page strong { color: var(--ls-ink); }
.methodology-flow { display: grid; grid-template-columns: minmax(190px, 1.25fr) 22px minmax(360px, 2.5fr) 22px minmax(150px, 1fr); align-items: center; gap: 12px; margin: 22px 0 0; }
.methodology-flow-label { display: block; margin-bottom: 12px; color: var(--ls-tertiary); font: 600 10px Inter, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.methodology-inputs, .methodology-output { min-width: 0; }
.methodology-source-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.methodology-source-grid span { display: flex; align-items: center; min-height: 34px; padding: 6px 8px; border: 1px solid var(--ls-rule); border-radius: 5px; background: var(--ls-stone); color: var(--ls-secondary); font-size: 10px; line-height: 1.25; }
.methodology-flow-arrow { color: var(--ls-accent); text-align: center; font-size: 23px; }
.methodology-stages { display: grid; gap: 8px; padding: 0; margin: 0; list-style: none; }
.methodology-stages li, .methodology-output { border: 1px solid var(--ls-strong-rule); border-radius: 7px; padding: 12px 14px; background: var(--ls-stone); }
.methodology-stages li { display: grid; grid-template-columns: 88px minmax(110px, .8fr) minmax(0, 1.4fr); align-items: center; gap: 10px; }
.methodology-stages li > span { color: var(--ls-accent); font: 600 10px Inter, sans-serif; }
.methodology-stages strong, .methodology-output strong { font-size: 12px; }
.methodology-stages small, .methodology-output small { color: var(--ls-secondary); font-size: 10px; line-height: 1.45; }
.methodology-output { min-height: 112px; display: flex; flex-direction: column; justify-content: center; }
.methodology-output .methodology-flow-label { margin-bottom: 10px; }
.methodology-output strong { margin-bottom: 7px; }
.methodology-flow figcaption { grid-column: 1 / -1; color: var(--ls-tertiary); font-size: 10px; line-height: 1.5; }
.methodology-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.methodology-detail-grid > div { padding: 16px; border: 1px solid var(--ls-rule); border-radius: 6px; background: var(--ls-stone); }
.methodology-detail-grid h3 { margin: 0 0 6px; color: var(--ls-ink); font-size: 12px; }
.methodology-detail-grid p { margin: 0; font-size: 11px !important; }
.methodology-signal { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 20px 0; }
.methodology-signal span { padding: 13px; border-top: 2px solid var(--ls-accent); border-radius: 4px; background: var(--ls-stone); color: var(--ls-tertiary); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.methodology-signal strong { display: block; margin-top: 8px; font-size: 12px; text-transform: none; letter-spacing: 0; }
.methodology-geo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 20px 0 0; }
.methodology-geo span { color: var(--ls-accent); font-size: 18px; }
.methodology-geo span:not([aria-hidden]) { flex: 1; min-width: 170px; padding: 14px; border: 1px solid var(--ls-rule); border-radius: 6px; background: var(--ls-stone); color: var(--ls-tertiary); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.methodology-geo strong { display: block; margin-top: 5px; font-size: 13px; text-transform: none; letter-spacing: 0; }
@media (max-width: 1050px) { .methodology-flow { grid-template-columns: minmax(0, 1fr); } .methodology-flow-arrow { transform: rotate(90deg); } .methodology-stages li { grid-template-columns: 88px minmax(110px, .8fr) minmax(0, 1.4fr); } .methodology-output { min-height: 0; } }
@media (max-width: 650px) { .methodology-page .analytic-section { padding: 18px; } .methodology-stages li { grid-template-columns: 1fr; gap: 5px; } .methodology-detail-grid, .methodology-signal { grid-template-columns: 1fr; } .methodology-geo { display: grid; } .methodology-geo span[aria-hidden] { text-align: center; } }
.chart-series-list { display: grid; gap: 8px; margin: 0 0 15px; }
.chart-series-row { display: grid; grid-template-columns: 22px minmax(130px,1fr) minmax(200px,1.5fr) 32px; align-items: center; gap: 10px; padding: 9px; border: 1px solid var(--ls-rule); border-radius: 6px; background: var(--ls-stone); }
.series-number { color: var(--ls-accent); font-weight: 600; }
.chart-market-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chart-series-row select, .chart-toolbar select { min-width: 0; padding: 7px 9px; border: 1px solid var(--ls-strong-rule); border-radius: 5px; background: var(--ls-input); color: var(--ls-ink); font-size: 11.5px; }
.chart-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 15px; }
.chart-toolbar .filter-bar { margin: 0; }
.chart-toolbar .filter-bar label { display: flex; gap: 7px; align-items: center; }
.chart-export { display: flex; flex-wrap: wrap; gap: 6px; }
.rankings-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.rankings-field { display: flex; gap: 8px; align-items: center; font-size: 12.5px; color: var(--ls-secondary); white-space: nowrap; }
.rankings-field select, .rankings-search { border: 1px solid var(--ls-strong-rule); border-radius: 5px; background: var(--ls-input, var(--ls-card)); color: var(--ls-ink); padding: 8px 10px; font-size: 13px; }
.rankings-search { flex: 1; min-width: 180px; max-width: 320px; }
.rankings-toolbar .outline { margin-left: auto; }
.ranking-metric-control { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 16px; }
.ranking-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ranking-chip { border: 1px solid var(--ls-rule); background: color-mix(in srgb, var(--ls-accent) 8%, var(--ls-card)); color: var(--ls-ink); border-radius: 999px; padding: 5px 10px; font: inherit; font-size: 12px; cursor: pointer; }
.ranking-chip:hover { border-color: var(--ls-accent); }
.ranking-chip span { color: var(--ls-tertiary); margin-left: 4px; }
.ranking-metric-control > .metric-picker { min-width: 130px; max-width: 180px; }
.ranking-metric-control > .metric-picker > summary { border: 0; padding: 5px 22px 5px 4px; background: transparent; color: var(--ls-accent); }
.ranking-metric-control > .metric-picker > summary::after { right: 2px; }
.metric-picker-multiple .metric-picker-search { box-sizing: border-box; width: 100%; margin-bottom: 5px; padding: 7px; border: 1px solid var(--ls-rule); border-radius: 4px; background: var(--ls-card); color: var(--ls-ink); font: inherit; }
.metric-picker-multiple [data-metric-choice][hidden], .metric-picker-multiple .metric-picker-subcategory[hidden], .metric-picker-multiple .metric-picker-category[hidden] { display: none; }
.rankings-scroll { max-height: 72vh; overflow: auto; border: 1px solid var(--ls-rule); border-radius: 6px; background: var(--ls-card); }
.rankings-table { width: 100%; min-width: max-content; border-collapse: separate; border-spacing: 0; font-size: 13px; font-variant-numeric: tabular-nums; }
.rankings-table th, .rankings-table td { padding: 10px 16px; border-bottom: 1px solid var(--ls-rule); background: var(--ls-card); text-align: left; font-weight: 400; white-space: nowrap; }
.rankings-table tbody tr:last-child > * { border-bottom: 0; }
.rankings-table thead th { position: sticky; top: 0; z-index: 3; padding-block: 11px; border-bottom: 1px solid var(--ls-strong-rule); color: var(--ls-secondary); font-size: 11.5px; font-weight: 500; vertical-align: bottom; }
.rankings-table .num { text-align: right; min-width: 150px; }
.rankings-table .empty { color: var(--ls-tertiary); }
.rankings-table .rank-cell { position: sticky; left: 0; z-index: 2; width: 56px; min-width: 56px; padding-right: 8px; color: var(--ls-tertiary); text-align: right; }
.rankings-table .market-cell { position: sticky; left: 56px; z-index: 2; min-width: 210px; border-right: 1px solid var(--ls-rule); }
.rankings-table thead .rank-cell, .rankings-table thead .market-cell { z-index: 4; }
.rankings-table th button { display: block; width: 100%; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; text-align: inherit; cursor: pointer; }
.rankings-table th button:hover .rank-head-name { color: var(--ls-ink); }
.rankings-table th.active, .rankings-table th.active button { color: var(--ls-ink); }
.rankings-table th small { display: block; margin-top: 3px; color: var(--ls-tertiary); font-size: 10.5px; font-weight: 400; }
.rank-arrow { margin-left: 5px; color: var(--ls-accent); }
.rankings-table a { color: var(--ls-ink); text-decoration: none; font-weight: 500; }
.rankings-table a:hover { color: var(--ls-accent); text-decoration: underline; }
.rankings-table td.active { font-weight: 600; background: linear-gradient(to left, color-mix(in srgb, var(--ls-accent) 16%, transparent) var(--bar, 0%), transparent var(--bar, 0%)), var(--ls-card); background-size: 100% 60%; background-repeat: no-repeat; background-position: center; }
.rankings-table tbody tr:hover > * { background-color: color-mix(in srgb, var(--ls-accent) 6%, var(--ls-card)); }
.rankings-table .rankings-none { padding: 28px 16px; color: var(--ls-secondary); text-align: center; }
.mobile-scroll-hint { display: none; }
.rankings-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 12px; font-size: 12px; color: var(--ls-secondary); }
@media (max-width: 1200px) {
  .snapshot { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dashboard-modules { grid-template-columns: 1fr; }
  .dashboard-module[data-dashboard-module] { grid-column: 1; }
}
@media (max-width: 1023px) {
  .rail { display: none; position: fixed; top: 0; left: 0; height: 100dvh; width: min(280px,85vw); box-shadow: var(--ls-shadow); }
  .rail.open { display: flex; }
  .topbar-menu { display: grid; }
  .topbar { padding: 0 20px; }
  .main { padding: 24px 22px 88px; }
  .overview-layout { grid-template-columns: minmax(0,1fr) minmax(230px,.7fr); }
}
@media (max-width: 767px) {
  .main.overview { display: block; }
  .topbar { height: 52px; padding: 0 12px; }
  .topbar-search { min-width: 0; width: 33px; height: 33px; justify-content: center; padding: 0; font-size: 0; }
  .topbar-search kbd { display: none; }
  .topbar-search::before { content: '⌕'; font-size: 20px; }
  .main, .dashboard-main { padding: 18px 14px 90px; }
  .masthead { display: block; }
  .dashboard-masthead { display: block; }
  .dashboard-header-actions { padding-top: 12px; }
  .dashboard-brief-list, .dashboard-global-metrics, .dashboard-tools, .dashboard-mover-columns { grid-template-columns: 1fr; }
  .masthead-actions { justify-content: space-between; margin-top: 15px; }
  .snapshot { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 16px 0; }
  .snapshot-cell { min-height: 94px; padding: 11px; }
  .snapshot-value { font-size: 18px; }
  .overview-layout { grid-template-columns: 1fr; }
  .overview-secondary { order: 2; }
  .analytic-section, .market-summary, .intelligence-band, .dashboard-module { padding: 15px; }
  .market-tabs { margin-inline: -14px; padding-inline: 14px; }
  .mobile-nav { position: fixed; z-index: 30; bottom: 0; left: 0; right: 0; height: calc(58px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--ls-rule); background: var(--ls-card); }
  .mobile-nav a, .mobile-nav button { display: grid; place-content: center; gap: 3px; text-align: center; color: var(--ls-secondary); font-size: 10px; text-decoration: none; border: 0; background: none; }
  .mobile-nav .active { color: var(--ls-accent); }
  .mobile-nav .nav-icon { width: auto; font-size: 17px; }
  .drawer { max-height: 100dvh; }
  .palette { top: 8vh; max-height: 84dvh; }
  .comparison-masthead { display: grid; grid-template-columns: 1fr; }
  .comparison-row, .comparison-header { min-width: 540px; }
  .chart-series-row { grid-template-columns: 18px minmax(0,1fr) 30px; }
.chart-series-row select, .chart-series-row .metric-picker { grid-column: 2 / 3; grid-row: 2; }
  .chart-series-row .icon-button { grid-column: 3; grid-row: 1 / 3; }
  .rankings-toolbar { display: grid; grid-template-columns: minmax(0,1fr); }
  .rankings-field { display: grid; grid-template-columns: 74px minmax(0,1fr); }
  .rankings-search { max-width: none; }
  .rankings-toolbar .outline { margin-left: 0; }
  .rankings-table th, .rankings-table td { padding: 9px 12px; }
  .rankings-table .market-cell { min-width: 150px; }
  .rankings-table .num { min-width: 120px; }
  .mobile-scroll-hint { display: block; margin: 0 0 7px; color: var(--ls-tertiary); font-size: 10px; }
}
.coverage-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 11px; }
.coverage-table th, .coverage-table td { text-align: center; padding: 8px 4px; overflow-wrap: anywhere; vertical-align: middle; }
.coverage-table th:first-child, .coverage-table td:first-child { text-align: left; width: 24%; padding-left: 0; }
.coverage-table th:nth-child(2), .coverage-table td:nth-child(2) { text-align: left; width: 12%; padding-left: 8px; }
.coverage-table th:nth-child(n+3):nth-child(-n+8) { width: 6.5%; }
.coverage-table thead th { white-space: nowrap; overflow-wrap: normal; font-size: 9px; letter-spacing: 0; padding-left: 1px; padding-right: 1px; }
.coverage-table thead th:nth-child(n+1):nth-child(-n+2) { letter-spacing: .02em; }
#coverage-chips { flex-wrap: wrap; overflow: visible; }
.coverage-table th:nth-child(9) { width: 9%; }
.coverage-table th:nth-child(10) { width: 9%; }
.coverage-table .cadence-badge { display: inline-block; max-width: 100%; padding: 2px 4px; font-size: 8.5px; letter-spacing: 0; white-space: normal; overflow-wrap: normal; word-break: normal; line-height: 1.2; }
.coverage-table .coverage-mark { min-width: 0; padding: 2px 3px; font-size: 9.5px; }
.coverage-table .coverage-mark.yes { font-size: 14px; }
@media (max-width: 640px) {
  .coverage-table th:nth-child(2), .coverage-table td:nth-child(2),
  .coverage-table th:nth-child(10), .coverage-table td:nth-child(10) { display: none; }
  .coverage-table th:first-child, .coverage-table td:first-child { width: 34%; }
  .coverage-table th:nth-child(n+3):nth-child(-n+8) { width: 9%; }
  .coverage-table th:nth-child(9) { width: 12%; }
  .coverage-table thead th { font-size: 8px; }
  .coverage-table td:nth-child(9) { font-size: 9.5px; }
}
.coverage-metric-name { font-weight: 600; }
.coverage-metric-button { border: 0; background: transparent; padding: 0; color: inherit; text-align: left; cursor: pointer; font: inherit; }
.coverage-metric-button:hover .coverage-metric-name, .coverage-metric-button:focus-visible .coverage-metric-name { text-decoration: underline; text-underline-offset: 3px; }
.metric-card { position: fixed; z-index: 41; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 48px); overflow-y: auto; padding: 28px; background: var(--ls-card); border: 1px solid var(--ls-rule); border-radius: var(--ls-radius); box-shadow: var(--ls-shadow); }
.metric-card .eyebrow { margin: 0 0 6px; }
.metric-card-body p { font-size: 13.5px; line-height: 1.6; color: var(--ls-secondary); margin: 10px 0; }
.metric-card dl { margin-top: 18px; }
.coverage-mark { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; padding: 2px 6px; border-radius: 3px; font: 10.5px Inter,sans-serif; }
.coverage-mark.yes { color: var(--ls-accent); font-size: 14px; }
.coverage-mark.no { color: var(--ls-tertiary); }
.coverage-mark.limited { background: var(--ls-stone); color: var(--ls-secondary); cursor: help; }
.update-status { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; margin: 0 0 16px; border: 1px solid var(--ls-rule); border-radius: 4px; background: var(--ls-stone); }
.update-status strong { display: block; font-size: 13px; }
.update-status small { display: block; margin-top: 3px; font-size: 11.5px; color: var(--ls-secondary); }
.update-dot { flex: none; width: 9px; height: 9px; margin-top: 4px; border-radius: 50%; background: var(--ls-accent); }
.update-status.delayed .update-dot { background: #b7791f; }
.update-status.attention .update-dot { background: var(--ls-decline); }
.coverage-mark.broader { background: rgba(31,68,56,.08); color: var(--ls-accent); cursor: help; }
.coverage-mark.national { background: var(--ls-stone); color: var(--ls-secondary); cursor: help; }
.cadence-badge { display: inline-block; padding: 3px 8px; border-radius: 10px; font: 10.5px Inter,sans-serif; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; }
.cadence-daily { background: color-mix(in srgb, #d63384 14%, var(--ls-card)); color: #d63384; }
.cadence-weekly { background: color-mix(in srgb, #6f42c1 14%, var(--ls-card)); color: #6f42c1; }
.cadence-monthly { background: color-mix(in srgb, #0d6efd 14%, var(--ls-card)); color: #0d6efd; }
.cadence-quarterly { background: color-mix(in srgb, #20a39e 14%, var(--ls-card)); color: #20a39e; }
.cadence-annual { background: color-mix(in srgb, #fd7e14 14%, var(--ls-card)); color: #fd7e14; }
.cadence-static-release { background: color-mix(in srgb, var(--ls-tertiary) 18%, var(--ls-card)); color: var(--ls-secondary); }
.cadence-other { background: var(--ls-stone); color: var(--ls-secondary); }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; } }
.palette-footer { display: flex; justify-content: flex-end; align-items: center; gap: 16px; flex-wrap: wrap; }
.palette-footer span { display: inline-flex; align-items: center; gap: 4px; }
.palette-footer kbd { display: inline-block; min-width: 18px; padding: 1px 5px; border: 1px solid var(--ls-strong-rule); border-radius: 4px; background: var(--ls-stone); color: var(--ls-secondary); font: inherit; text-align: center; }
.palette-results:empty { display: none; }

.compare-scroll { overflow: auto; border: 1px solid var(--ls-rule); border-radius: 6px; background: var(--ls-card); }
.compare-table { width: 100%; min-width: max-content; border-collapse: separate; border-spacing: 0; font-variant-numeric: tabular-nums; }
.compare-table th, .compare-table td { padding: 12px 16px; border-bottom: 1px solid var(--ls-rule); text-align: left; vertical-align: top; background: var(--ls-card); }
.compare-table thead th { position: sticky; top: 0; z-index: 3; border-bottom: 1px solid var(--ls-strong-rule); }
.compare-corner, .compare-metric { position: sticky; left: 0; z-index: 2; min-width: 190px; width: 190px; border-right: 1px solid var(--ls-rule); }
.compare-table thead .compare-corner { z-index: 4; vertical-align: bottom; color: var(--ls-secondary); font-size: 11.5px; font-weight: 500; }
.compare-slot { position: relative; min-width: 200px; padding-right: 34px !important; }
.compare-market-name { display: block; font-size: 17px; font-weight: 600; color: var(--ls-ink); text-decoration: none; letter-spacing: -.01em; }
.compare-market-name:hover { color: var(--ls-accent); }
.compare-slot .geo-code { margin-bottom: 4px; }
.compare-slot .market-context { font-size: 12px; margin: 2px 0 4px; color: var(--ls-secondary); font-weight: 400; }
.compare-remove { position: absolute; top: 8px; right: 8px; width: 24px; height: 24px; border: 0; border-radius: 4px; background: transparent; color: var(--ls-tertiary); font-size: 16px; line-height: 1; }
.compare-remove:hover { color: var(--ls-ink); background: color-mix(in srgb, var(--ls-ink) 8%, transparent); }
.compare-add-market { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 64px; border: 1px dashed var(--ls-strong-rule); border-radius: 6px; background: transparent; color: var(--ls-accent); font-size: 13px; }
.compare-add-market:hover { border-color: var(--ls-accent); background: color-mix(in srgb, var(--ls-accent) 6%, transparent); }
.compare-add-market span { font-size: 18px; line-height: 1; }
.compare-group th { padding: 9px 16px; background: color-mix(in srgb, var(--ls-ink) 4%, var(--ls-card)); color: var(--ls-secondary); font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; position: static; }
.compare-metric { font-size: 13px; font-weight: 400; color: var(--ls-secondary); }
.compare-cell strong { display: block; font-size: 15px; font-weight: 600; color: var(--ls-ink); }
.compare-cell small { display: block; margin-top: 3px; font-size: 10.5px; color: var(--ls-tertiary); }
.compare-cell .compare-delta { color: var(--ls-secondary); font-size: 11px; }
.compare-cell.empty { color: var(--ls-tertiary); }
.compare-table tbody tr:not(.compare-group):hover > * { background-color: color-mix(in srgb, var(--ls-accent) 5%, var(--ls-card)); }
.compare-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 12px; font-size: 12px; }
@media (max-width: 767px) {
  .compare-corner, .compare-metric { min-width: 120px; width: 120px; }
  .compare-slot { min-width: 160px; }
}

.compare-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; min-height: 34px; margin-bottom: 12px; font-size: 12px; }
.compare-toolbar .outline { margin-left: auto; }
.compare-error { margin: 4px 0 6px; color: var(--ls-decline); font-size: 12px; font-weight: 400; }
.skeleton { position: relative; overflow: hidden; border-radius: 4px; background: color-mix(in srgb, var(--ls-ink) 8%, transparent); }
.skeleton::after { content: ''; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--ls-ink) 10%, transparent), transparent); animation: skeleton-sweep 1.2s ease-in-out infinite; }
.skeleton-eyebrow { width: 44px; height: 9px; margin-bottom: 9px; }
.skeleton-title { width: 120px; height: 18px; margin-bottom: 9px; }
.skeleton-line { width: 90px; height: 11px; }
.skeleton-value { width: 96px; height: 18px; }
@keyframes skeleton-sweep { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .skeleton::after { animation: none; } }
