/* [project]/src/app/globals.css [app-client] (css) */
@media print {
  .business-report-print-action, .business-report-actions a, header, footer {
    display: none !important;
  }

  .business-report {
    max-width: none;
  }
}

@font-face {
  font-family: Space Grotesk;
  src: url("/brand/fonts/space-grotesk-latin.woff2") format("woff2");
  font-display: swap;
}

:root {
  --color-ink: var(--brand-ink, #16212b);
  --color-muted: color-mix(in srgb, var(--brand-ink, #16212b) 68%, transparent);
  --color-surface: var(--brand-surface, #fffaf5e0);
  --color-surface-strong: var(--brand-surface-strong, #fffdf8);
  --color-border: var(--brand-border, #1d23331f);
  --color-accent: var(--brand-copper, #b86e4b);
  --color-accent-soft: #f7d4c9;
  --color-secondary: var(--brand-signal, #2e7d6b);
  --color-rating-bar: #f9ab00;
  --color-background: var(--brand-ivory, #f6efe6);
  --shadow-soft: var(--brand-shadow-soft, 0 24px 60px #271c131f);
  --button-primary-bg: var(--color-ink);
  --button-primary-text: #fffaf4;
  --button-primary-border: transparent;
  --mobile-dock-border: #1d233324;
  --mobile-dock-bg: #fffdf8f5;
  --mobile-dock-shadow: 0 18px 38px #16212b2e;
  --admin-hover-bg: #16212b0f;
  --admin-code-bg: #16212b0d;
  --admin-code-border: #16212b14;
  --form-control-bg: #fffdf8f0;
  --form-control-border: #1d23332e;
  --form-control-placeholder: #16212b94;
  --form-control-focus-outline: color-mix(in srgb, var(--brand-copper) 70%, white 12%);
  --admin-border: #d1d5dbe6;
  --admin-panel-bg: #ffffffdb;
  --admin-panel-border: #d1d5dbe6;
  --admin-card-bg: linear-gradient(180deg, #fffffff5, #f9fafbeb);
  --admin-card-shadow: 0 8px 20px #0f172a0a;
  --admin-market-card-bg: linear-gradient(180deg, #fffdf8f5, #f1e7dcad);
  --admin-market-card-shadow: 0 12px 30px #271c130f;
  --admin-chip-bg: #ffffffd9;
  --admin-chip-border: #1d23331f;
  --admin-slug-bg: #ffffffb8;
  --admin-setting-chip-bg: #b86e4b1a;
  --admin-setting-chip-border: #b86e4b3d;
  --admin-control-bg: #fffffff5;
  --admin-control-disabled-bg: #f3f4f6;
  --admin-control-disabled-text: #16212b8a;
  --admin-secondary-hover-bg: #e5e7eb;
  --admin-warning-bg: #fff7ed;
  --admin-warning-border: #fdba74;
  --admin-warning-text: #9a3412;
  --admin-danger-bg: #fef2f2;
  --admin-danger-border: #fecaca;
  --admin-danger-text: #991b1b;
  --admin-success-bg: #d1fae5;
  --admin-success-text: #065f46;
  --admin-info-bg: #dbeafe;
  --admin-info-text: #1e40af;
  --admin-neutral-bg: #f3f4f6;
  --admin-neutral-text: #6b7280;
  --account-role-card-bg: #fffdf8d1;
  --account-role-card-border: #1f6b5d24;
  --account-admin-role-card-bg: linear-gradient(135deg, #e8f5f0f0, #fffdf8e0);
  --account-admin-role-card-border: #1f6b5d3d;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  --lightningcss-light: initial;
  --lightningcss-dark: ;
  color-scheme: light;
}

html[data-theme="dark"] {
  --lightningcss-light: ;
  --lightningcss-dark: initial;
  color-scheme: dark;
}

body {
  min-height: 100vh;
  color: var(--color-ink);
  font-family: var(--font-body), "Space Grotesk", serif;
  background: radial-gradient(circle at top left, color-mix(in srgb, var(--brand-copper) 26%, transparent), transparent 28%),
    radial-gradient(circle at top right, color-mix(in srgb, var(--brand-signal) 24%, transparent), transparent 24%),
    linear-gradient(180deg, color-mix(in srgb, var(--brand-ivory) 84%, white) 0%, var(--color-background) 45%, color-mix(in srgb, var(--brand-sand) 62%, var(--brand-ivory)) 100%);
  margin: 0;
  transition: background .22s, color .22s;
}

html[data-theme="dark"] body {
  background: radial-gradient(circle at top left, color-mix(in srgb, var(--brand-copper) 24%, transparent), transparent 24%),
    radial-gradient(circle at top right, color-mix(in srgb, var(--brand-signal) 24%, transparent), transparent 22%),
    linear-gradient(180deg, color-mix(in srgb, var(--brand-ink) 12%, #081018) 0%, var(--color-background) 48%, color-mix(in srgb, var(--brand-petrol) 40%, #081018) 100%);
}

.site-header-inner {
  width: min(var(--dsm-shell-max-width, 1120px), calc(100vw - (var(--dsm-shell-gutter, 16px) * 2)));
  min-height: var(--dsm-header-min-height, 72px);
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
  margin: 0 auto;
  display: grid;
}

.site-brand {
  font-family: var(--font-heading), sans-serif;
  color: var(--color-ink);
  align-items: center;
  gap: 12px;
  font-size: 1.05rem;
  display: inline-flex;
}

.site-brand-mark {
  width: var(--dsm-brand-mark-size, 44px);
  height: var(--dsm-brand-mark-size, 44px);
  border-radius: var(--dsm-brand-mark-radius, 14px);
  display: block;
  box-shadow: 0 10px 24px #16212b2e;
}

.site-brand-lockup {
  gap: 2px;
  display: grid;
}

.site-brand-kicker {
  color: var(--color-secondary);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .72rem;
}

.site-brand-title {
  color: var(--color-ink);
  letter-spacing: -.03em;
  font-size: 1rem;
}

.site-nav {
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px;
  display: flex;
}

.site-nav-shell {
  justify-items: center;
  gap: 10px;
  display: grid;
}

.site-nav a {
  color: var(--color-muted);
}

.market-switcher {
  justify-items: center;
  gap: 8px;
  display: grid;
}

.market-switcher-label {
  color: var(--color-secondary);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .74rem;
  font-family: var(--font-heading), sans-serif;
}

.market-switcher-list {
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  display: flex;
}

.market-switcher-chip {
  min-height: var(--dsm-chip-min-height-compact, 32px);
  border-radius: var(--dsm-chip-radius, 999px);
  color: var(--color-secondary);
  background: #1f6b5d14;
  border: 1px solid #1f6b5d1f;
  align-items: center;
  padding: 0 12px;
  font-size: .84rem;
  display: inline-flex;
}

.market-switcher-chip-active {
  color: #fffaf4;
  background: var(--color-secondary);
  border-color: var(--color-secondary);
}

.market-switcher-chip-disabled {
  opacity: .48;
  cursor: not-allowed;
}

.site-user-chip {
  justify-items: end;
  gap: 2px;
  display: grid;
}

.site-user-chip span {
  color: var(--color-secondary);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .74rem;
  font-family: var(--font-heading), sans-serif;
}

.site-user-chip strong {
  color: var(--color-ink);
  font-size: .92rem;
}

.admin-badge {
  width: fit-content;
  min-height: var(--dsm-chip-min-height-small, 28px);
  border-radius: var(--dsm-chip-radius, 999px);
  color: #fffaf4;
  background: linear-gradient(135deg, var(--color-secondary), #14473d);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .78rem;
  font-family: var(--font-heading), sans-serif;
  align-items: center;
  padding: 0 10px;
  display: inline-flex;
}

.plan-required-badge {
  width: fit-content;
  min-height: var(--dsm-chip-min-height-small, 28px);
  border-radius: var(--dsm-chip-radius, 999px);
  color: #6f430b;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: .78rem;
  font-family: var(--font-heading), sans-serif;
  background: linear-gradient(135deg, #fff5e3, #ffe9c2);
  border: 1px solid #96631040;
  align-items: center;
  padding: 0 10px;
  display: inline-flex;
}

.account-role-line {
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  display: flex;
}

a {
  color: inherit;
  text-decoration: none;
}

.page-shell {
  width: min(var(--dsm-shell-max-width, 1120px), calc(100vw - (var(--dsm-shell-gutter, 16px) * 2)));
  padding: var(--dsm-shell-padding-default, 32px 0 72px);
  margin: 0 auto;
}

.global-notice-shell {
  width: min(var(--dsm-shell-max-width, 1120px), calc(100vw - (var(--dsm-shell-gutter, 16px) * 2)));
  margin: 0 auto;
  padding-top: 20px;
}

.global-notice-banner {
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  display: flex;
}

.global-notice-copy {
  gap: 4px;
  display: grid;
}

.global-notice-copy strong {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.02em;
}

.global-notice-actions {
  flex-wrap: wrap;
  gap: 12px;
  display: flex;
}

.hero, .detail-hero {
  padding: var(--dsm-panel-padding, 28px);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-panel-radius, 28px);
  box-shadow: var(--shadow-soft);
  background: linear-gradient(135deg, #fffdf8e6, #fff4ecd1);
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, .9fr);
  align-items: stretch;
  gap: 24px;
  display: grid;
}

[data-theme="dark"] .hero, [data-theme="dark"] .detail-hero {
  border-color: var(--brand-border);
  background: linear-gradient(135deg, #121b24f5, #1a2732e0);
}

.hero-copy h1, .section-heading h2, .show-card h3, .detail-main h1, .catalog-header h1, .show-card h2, .detail-card h2, .review-card strong, .related-item strong {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.04em;
  margin: 0;
  font-weight: 700;
}

.hero-copy h1, .detail-main h1, .catalog-header h1 {
  max-width: 11ch;
  font-size: clamp(2.6rem, 7vw, 5.2rem);
  line-height: .95;
}

.hero-text, .catalog-header p, .show-card > p, .detail-main p, .detail-summary p {
  color: var(--color-muted);
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.65;
}

.hero-brand-band {
  align-items: center;
  margin-bottom: 12px;
  display: flex;
}

.hero-brand-logo {
  width: min(100%, 294px);
  height: auto;
  display: block;
}

.catalog-brand-band {
  align-items: center;
  display: flex;
}

.catalog-brand-logo {
  width: min(100%, 252px);
  height: auto;
  display: block;
}

.detail-card p, .review-card p, .timeline-item span, .related-item span, .distribution-row span {
  color: var(--color-muted);
  margin: 0;
}

.eyebrow, .panel-label, .back-link, .pill, .muted, .detail-kicker, .stat-card span, .show-meta dt, .detail-facts dt {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .76rem;
  font-family: var(--font-heading), sans-serif;
  margin: 0;
}

.eyebrow, .detail-kicker, .panel-label, .back-link {
  color: var(--color-secondary);
}

.hero-actions, .catalog-actions {
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
  display: flex;
}

.brand-panel-card {
  padding: var(--dsm-panel-padding-tight, 18px);
  border: 1px solid var(--brand-border);
  border-radius: var(--dsm-secondary-card-radius-tight, 20px);
  background: linear-gradient(135deg, var(--brand-surface-strong), var(--brand-surface));
  box-shadow: var(--brand-shadow-soft);
  gap: 16px;
  margin-bottom: 20px;
  display: grid;
}

.brand-panel-card-compact {
  padding: var(--dsm-secondary-card-padding-tight, 16px);
  margin-bottom: 18px;
}

.brand-panel-card-inline {
  margin-top: 18px;
  margin-bottom: 0;
}

.brand-panel-copy {
  gap: 8px;
  display: grid;
}

.brand-panel-copy h2 {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.04em;
  margin: 0;
  font-size: clamp(1.5rem, 2vw, 2rem);
}

.brand-panel-copy p {
  color: var(--color-muted);
  margin: 0;
  line-height: 1.6;
}

.brand-palette-row {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
}

.brand-swatch {
  min-height: var(--dsm-chip-min-height, 34px);
  border-radius: var(--dsm-chip-radius, 999px);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .78rem;
  font-family: var(--font-heading), sans-serif;
  align-items: center;
  padding: 0 12px;
  display: inline-flex;
}

.brand-swatch-ink {
  color: #f6f1e8;
  background: #16212b;
}

.brand-swatch-petrol {
  color: #f6f1e8;
  background: #1f4e5f;
}

.brand-swatch-copper {
  color: #fffaf4;
  background: #b86e4b;
}

.brand-swatch-signal {
  color: #fffaf4;
  background: #2e7d6b;
}

.filter-panel, .empty-state-card, .sparkline-card, .insight-chip, .comparison-card, .comparison-highlight {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-secondary-card-radius, 24px);
  background: var(--color-surface);
}

.filter-panel, .empty-state-card, .comparison-card, .comparison-highlight {
  padding: var(--dsm-secondary-card-padding, 22px);
}

.filter-form {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.filter-form-compare {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(220px, 1.25fr) auto;
  align-items: flex-end;
}

.filter-form-compare .filter-actions {
  justify-content: flex-end;
}

.filter-form-compare .filter-actions .button {
  white-space: nowrap;
}

.filter-form-compact {
  flex-wrap: wrap;
  gap: 14px;
  display: flex;
}

.filter-form-compact .filter-field {
  flex: 160px;
  min-width: 140px;
}

.filter-form-manual-add {
  grid-template-columns: repeat(3, minmax(200px, 1fr));
}

.filter-form-manual-add .filter-actions {
  grid-column: 1 / -1;
  justify-content: flex-start;
}

.filter-field {
  gap: 8px;
  min-width: 0;
  display: grid;
}

.filter-field span, .filter-summary, .insight-chip span {
  color: var(--color-muted);
  font-size: .88rem;
}

.filter-field input, .filter-field select, .filter-field textarea {
  width: 100%;
  min-width: 0;
  min-height: var(--dsm-control-min-height, 46px);
  border: 1px solid var(--form-control-border);
  border-radius: var(--dsm-control-radius, 14px);
  color: var(--color-ink);
  background: var(--form-control-bg);
  font: inherit;
  padding: 0 14px;
}

.password-input-wrapper {
  align-items: center;
  display: flex;
  position: relative;
}

.password-input-wrapper input {
  flex: 1;
  padding-right: 44px;
}

.password-input-wrapper input, .market-ask-bar-input {
  border: 1px solid var(--form-control-border);
  background: var(--form-control-bg);
}

.filter-field input::placeholder, .filter-field select::placeholder, .filter-field textarea::placeholder, .password-input-wrapper input::placeholder, .market-ask-bar-input::placeholder, .admin-input::placeholder, .admin-text-input::placeholder, .admin-textarea::placeholder {
  color: var(--form-control-placeholder);
  opacity: 1;
}

.filter-field input:focus-visible, .filter-field select:focus-visible, .filter-field textarea:focus-visible, .password-input-wrapper input:focus-visible, .market-ask-bar-input:focus-visible {
  outline: 2px solid var(--form-control-focus-outline);
  outline-offset: 1px;
  border-color: color-mix(in srgb, var(--form-control-focus-outline) 72%, var(--form-control-border));
}

.password-toggle {
  cursor: pointer;
  color: var(--color-muted);
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  padding: 4px;
  line-height: 0;
  display: flex;
  position: absolute;
  right: 10px;
}

.password-toggle:hover {
  color: var(--color-ink);
}

.filter-actions {
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
  display: flex;
}

.filter-summary {
  margin: 14px 0 0;
}

.button, .text-link {
  border-radius: var(--dsm-chip-radius, 999px);
  justify-content: center;
  align-items: center;
  transition: transform .16s, background-color .16s, border-color .16s;
  display: inline-flex;
}

.button {
  min-height: var(--dsm-button-min-height, 48px);
  padding: 0 var(--dsm-button-padding-inline, 18px);
  font-family: var(--font-heading), sans-serif;
  font-size: .95rem;
}

.button:hover, .text-link:hover {
  transform: translateY(-1px);
}

.button-primary {
  color: var(--button-primary-text);
  background: var(--button-primary-bg);
  border: 1px solid var(--button-primary-border);
}

.button-secondary {
  color: var(--color-ink);
  border: 1px solid var(--color-border);
  background: none;
}

.button-disabled, .button[aria-disabled="true"] {
  opacity: .45;
  cursor: not-allowed;
  pointer-events: none;
}

.hero-panel, .detail-summary, .stat-card, .show-card, .detail-facts {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-secondary-card-radius, 24px);
  background: var(--color-surface);
}

.hero-panel, .detail-summary {
  padding: var(--dsm-secondary-card-padding-compact, 20px);
}

.hero-panel-note {
  color: var(--color-muted);
  margin: 12px 0 0;
  line-height: 1.6;
}

.metric-list, .show-meta, .detail-facts, .detail-cta, .stat-grid, .review-list, .related-list, .timeline-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.metric-list {
  gap: 16px;
  margin-top: 18px;
  display: grid;
}

.metric-list li, .detail-cta li {
  gap: 4px;
  display: grid;
}

.metric-list strong, .stat-card strong {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.06em;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
}

.market-teaser-card {
  gap: 16px;
  display: grid;
}

.market-teaser-card-signal {
  padding: var(--dsm-secondary-card-padding-tight, 14px);
  border: 1px solid var(--brand-border);
  border-radius: var(--dsm-secondary-card-radius-tight, 18px);
  background: var(--brand-surface-strong);
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 12px;
  display: grid;
}

.market-teaser-card-arrow {
  width: var(--dsm-teaser-arrow-size, 54px);
  height: var(--dsm-teaser-arrow-size, 54px);
  --market-teaser-arrow-center-offset: calc((var(--dsm-teaser-arrow-size, 54px) - 54px) / 2);
  border-radius: var(--dsm-teaser-arrow-radius, 16px);
  border: 1px solid var(--brand-border);
  background: #fff;
  position: relative;
}

.market-teaser-card-arrow:before, .market-teaser-card-arrow:after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.market-teaser-card-arrow-up:before {
  top: calc(16px + var(--market-teaser-arrow-center-offset));
  width: var(--dsm-teaser-arrow-head-size, 18px);
  height: var(--dsm-teaser-arrow-head-size, 18px);
  border-left: var(--dsm-teaser-arrow-stem-width, 4px) solid var(--dsm-trend-up);
  border-top: var(--dsm-teaser-arrow-stem-width, 4px) solid var(--dsm-trend-up);
  transform: translateX(-50%)rotate(45deg);
}

.market-teaser-card-arrow-up:after {
  top: calc(26px + var(--market-teaser-arrow-center-offset));
  width: var(--dsm-teaser-arrow-stem-width, 4px);
  height: var(--dsm-teaser-arrow-stem-height, 16px);
  border-radius: var(--dsm-teaser-arrow-stem-radius, 4px);
  background: var(--dsm-trend-up);
}

.market-teaser-card-arrow-down:before {
  top: calc(16px + var(--market-teaser-arrow-center-offset));
  width: var(--dsm-teaser-arrow-head-size, 18px);
  height: var(--dsm-teaser-arrow-head-size, 18px);
  border-left: var(--dsm-teaser-arrow-stem-width, 4px) solid var(--dsm-trend-down);
  border-top: var(--dsm-teaser-arrow-stem-width, 4px) solid var(--dsm-trend-down);
  transform: translateX(-50%)rotate(-135deg);
}

.market-teaser-card-arrow-down:after {
  top: calc(12px + var(--market-teaser-arrow-center-offset));
  width: var(--dsm-teaser-arrow-stem-width, 4px);
  height: var(--dsm-teaser-arrow-stem-height, 16px);
  border-radius: var(--dsm-teaser-arrow-stem-radius, 4px);
  background: var(--dsm-trend-down);
}

.market-teaser-card-arrow-flat:before {
  top: calc(25px + var(--market-teaser-arrow-center-offset));
  width: var(--dsm-teaser-arrow-flat-width, 24px);
  height: var(--dsm-teaser-arrow-flat-height, 4px);
  border-radius: var(--dsm-teaser-arrow-flat-radius, 4px);
  background: var(--dsm-trend-flat);
}

.market-teaser-card-arrow-flat:after {
  display: none;
}

.market-teaser-card-signal-label {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.03em;
  text-transform: uppercase;
  font-size: 1rem;
  display: block;
}

.market-teaser-card-signal-copy {
  color: var(--color-muted);
  margin-top: 4px;
  font-size: .9rem;
  line-height: 1.45;
  display: block;
}

.market-teaser-card-metrics {
  margin-top: 0;
}

.dashboard-badge-row {
  margin: 4px 0 0;
}

.dashboard-window-row {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
}

.dashboard-window-link {
  min-height: var(--dsm-chip-min-height, 34px);
  border-radius: var(--dsm-chip-radius, 999px);
  color: var(--color-secondary);
  font-family: var(--font-heading), sans-serif;
  background: #fffdf8eb;
  border: 1px solid #1d23331f;
  justify-content: center;
  align-items: center;
  padding: 0 14px;
  font-size: .9rem;
  display: inline-flex;
}

button.dashboard-window-link {
  cursor: pointer;
  line-height: 1.2;
}

.dashboard-window-link-active {
  color: #fffaf4;
  border-color: var(--color-secondary);
  background: var(--color-secondary);
}

.dashboard-window-link-disabled, button.dashboard-window-link-disabled {
  cursor: not-allowed;
  opacity: .45;
  background: #1d23330a;
  border-style: dashed;
}

.observation-window-card {
  gap: 12px;
  display: grid;
}

.comparison-window-selector {
  gap: 14px;
  display: grid;
}

.comparison-window-group {
  gap: 8px;
  display: grid;
}

.comparison-window-group .muted {
  margin: 0;
}

.section-grid, .catalog-shell, .detail-shell, .detail-section-grid {
  gap: 24px;
  margin-top: 28px;
  display: grid;
}

.card-grid, .stat-grid, .analysis-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

@media (min-width: 60.0625rem) {
  .analysis-grid-top-segments {
    grid-template-columns: 1fr;
  }
}

.market-portal-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

.market-portal-card {
  padding: var(--dsm-secondary-card-padding, 22px);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-secondary-card-radius, 24px);
  box-shadow: var(--shadow-soft);
  background: linear-gradient(#fffdf8eb, #f1e7dcb8);
  gap: 16px;
  display: grid;
}

.market-portal-card-active {
  background: linear-gradient(#fffdf8f5, #d4eae394);
  border-color: #1f6b5d47;
}

[data-theme="dark"] .market-portal-card {
  border-color: var(--brand-border);
  background: linear-gradient(#121b24f5, #1a2732db);
}

[data-theme="dark"] .market-portal-card-active {
  background: linear-gradient(180deg,
    #121b24f5,
    color-mix(in srgb, var(--brand-signal) 18%, #1a2732e0));
  border-color: #2e7d6b57;
}

.market-portal-topline, .market-portal-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  display: flex;
}

.market-portal-card h3 {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.04em;
  margin: 0;
}

.market-portal-card p {
  color: var(--color-muted);
  margin: 0;
  line-height: 1.6;
}

.offers-shell {
  gap: 28px;
  display: grid;
}

.offers-hero {
  align-items: flex-start;
}

.offers-panel {
  background: linear-gradient(#fffdf8f5, #f7d4c952);
}

[data-theme="dark"] .offers-panel {
  border-color: color-mix(in srgb, var(--brand-border) 74%, #05080ef0);
  background: linear-gradient(180deg,
    #080c13f2 0%,
    color-mix(in srgb, var(--brand-copper) 8%, #0a1019eb) 100%);
}

.offers-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

.offers-grid-compact .offer-card {
  min-height: 100%;
}

.offer-card {
  padding: var(--dsm-secondary-card-padding, 22px);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-secondary-card-radius, 24px);
  background: var(--color-surface);
  box-shadow: var(--shadow-soft);
  align-content: start;
  gap: 16px;
  display: grid;
}

.offer-card-featured {
  background: linear-gradient(135deg, #fffdf8f5, #f7d4c980);
  border-color: #d6573b38;
}

[data-theme="dark"] .offer-card-featured {
  border-color: color-mix(in srgb, var(--brand-copper) 48%, #05080ef0);
  background: linear-gradient(135deg,
    #04070cfa 0%,
    color-mix(in srgb, var(--brand-copper) 11%, #070b12f0) 56%,
    color-mix(in srgb, var(--brand-petrol) 9%, #070b12eb) 100%);
  box-shadow: 0 18px 38px #0204087a,
    inset 0 1px 0 color-mix(in srgb, var(--brand-copper) 22%, transparent);
}

.offer-card-compact {
  box-shadow: none;
}

.offer-card-topline, .offer-chip-row {
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  display: flex;
}

.offer-card h3, .offer-list-block h4, .offer-price-block strong, .offer-matrix-row strong {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.04em;
  margin: 0;
}

.offer-card p, .offer-price-block span, .offer-list li, .offer-matrix-row span, .offer-matrix-row strong {
  color: var(--color-muted);
  line-height: 1.6;
}

.offer-price-block {
  padding: var(--dsm-secondary-card-padding-tight, 16px);
  border-radius: var(--dsm-secondary-card-radius-tight, 18px);
  background: #fffdf8b8;
  gap: 4px;
  display: grid;
}

[data-theme="dark"] .offer-price-block {
  border: 1px solid color-mix(in srgb, var(--brand-border) 72%, #05080eeb);
  background: linear-gradient(180deg,
    #080d14e6,
    color-mix(in srgb, var(--brand-petrol) 10%, #070b12e0));
}

.offer-price-block strong {
  color: var(--color-ink);
  font-size: 1.5rem;
}

.offer-chip {
  min-height: var(--dsm-chip-min-height, 34px);
  border-radius: var(--dsm-chip-radius, 999px);
  color: var(--color-secondary);
  background: #1f6b5d14;
  align-items: center;
  padding: 0 12px;
  font-size: .84rem;
  display: inline-flex;
}

.offer-list-block, .offer-card-actions {
  gap: 10px;
  display: grid;
}

.checkout-cart-composer {
  padding: var(--dsm-secondary-card-padding, 22px);
  border-radius: var(--dsm-secondary-card-radius, 24px);
  box-shadow: var(--shadow-soft);
  background: linear-gradient(#fffdf8fa, #f7d4c952);
  border: 1px solid #d6573b2e;
  gap: 18px;
  display: grid;
}

[data-theme="dark"] .checkout-cart-composer {
  border-color: color-mix(in srgb, var(--brand-copper) 42%, #05080ef0);
  background: linear-gradient(180deg,
    #04070cfa 0%,
    color-mix(in srgb, var(--brand-copper) 11%, #070b12f0) 54%,
    color-mix(in srgb, var(--brand-petrol) 10%, #070b12eb) 100%);
  box-shadow: 0 18px 38px #02040870,
    inset 0 1px 0 color-mix(in srgb, var(--brand-copper) 20%, transparent);
}

.checkout-cart-header {
  gap: 10px;
  display: grid;
}

.checkout-cart-header h3 {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.04em;
  margin: 0;
}

.checkout-cart-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.checkout-cart-row {
  background: #fffdf8c7;
  border: 1px solid #1d233314;
  border-radius: 18px;
  gap: 8px;
  padding: 14px;
  display: grid;
}

[data-theme="dark"] .checkout-cart-row {
  border-color: color-mix(in srgb, var(--brand-border) 72%, #05080ef0);
  background: linear-gradient(180deg,
    #080d14eb,
    color-mix(in srgb, var(--brand-petrol) 8%, #070b12e6));
}

.checkout-cart-market {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.03em;
  color: var(--color-ink);
}

.checkout-cart-select {
  width: 100%;
}

.checkout-cart-summary {
  gap: 8px;
  display: grid;
}

.checkout-cart-summary-list {
  margin-top: 0;
}

.checkout-market-picker {
  gap: 8px;
  display: grid;
}

.checkout-market-picker-label {
  color: var(--color-muted);
  margin: 0;
  font-size: .88rem;
}

.checkout-market-picker-list {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.checkout-market-chip {
  min-height: var(--dsm-chip-min-height, 34px);
  border-radius: var(--dsm-chip-radius, 999px);
  color: var(--color-secondary);
  font: inherit;
  background: #1f6b5d14;
  border: 1px solid #1f6b5d1f;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  display: inline-flex;
}

.checkout-market-chip-active {
  color: #fffaf4;
  background: var(--color-secondary);
  border-color: var(--color-secondary);
}

.checkout-market-chip-covered {
  cursor: not-allowed;
  color: #1d2333b8;
  background: #1d233314;
  border-color: #1d233329;
}

[data-theme="dark"] .checkout-market-chip-covered {
  color: color-mix(in srgb, #fff 84%, var(--brand-ivory) 16%);
  background: linear-gradient(180deg,
    #131c26f5,
    color-mix(in srgb, var(--brand-petrol) 14%, #0c121bf0));
  border-color: color-mix(in srgb, var(--brand-border) 76%, #070b12f0);
}

.checkout-market-chip-covered:disabled {
  opacity: 1;
}

.checkout-market-chip-status {
  color: #1d2333c7;
  background: #1d233314;
  border-radius: 999px;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  font-size: .72rem;
  font-weight: 600;
  display: inline-flex;
}

[data-theme="dark"] .checkout-market-chip-status {
  color: color-mix(in srgb, #fff 86%, var(--brand-ivory) 14%);
  background: color-mix(in srgb, var(--brand-copper) 24%, #090e15e6);
}

.offer-inline-note {
  color: var(--color-muted);
  line-height: 1.6;
}

.offer-list {
  gap: 8px;
  margin: 0;
  padding-left: 18px;
  display: grid;
}

.offer-list-muted li {
  color: var(--color-muted);
}

.offer-matrix-shell {
  padding: var(--dsm-offer-matrix-shell-padding, 4px);
  overflow-x: auto;
}

.offer-matrix {
  min-width: var(--dsm-offer-matrix-min-width, 920px);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-secondary-card-radius, 24px);
  background: var(--color-surface);
}

.offer-matrix-row {
  padding: var(--dsm-offer-matrix-row-padding, 16px 18px);
  border-top: 1px solid #1d233314;
  grid-template-columns: minmax(220px, 1.35fr) repeat(5, minmax(100px, 1fr));
  align-items: center;
  gap: 12px;
  display: grid;
}

.offer-matrix-row:first-child {
  border-top: none;
}

.offer-matrix-head {
  background: #fffdf8e0;
}

.offer-matrix-row-label, .offer-matrix-row strong {
  color: var(--color-ink);
}

@media (max-width: 820px) {
  .checkout-cart-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.auth-shell, .account-shell {
  gap: 24px;
  display: grid;
}

.account-shell .catalog-header h1:not(.account-email-title) {
  overflow-wrap: anywhere;
  word-break: break-word;
  font-size: clamp(1.6rem, 4.8vw, 3rem);
  line-height: 1.05;
}

.account-hero-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  gap: 18px;
  display: grid;
}

.account-primary-card {
  padding: var(--dsm-panel-padding-compact, 24px);
  border-radius: var(--dsm-panel-radius, 28px);
  gap: 18px;
  margin-bottom: 0;
}

.account-identity-block {
  gap: 10px;
  min-width: 0;
  display: grid;
}

.account-shell .catalog-header .account-email-title {
  max-width: 100%;
  color: var(--color-ink);
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.035em;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  margin: 0;
  font-size: clamp(1.2rem, 1.7vw, 1.6rem);
  font-weight: 600;
  line-height: 1.08;
}

.account-hero-copy {
  max-width: 58ch;
}

.account-status-stack {
  gap: 12px;
  display: grid;
}

.account-role-line-card {
  width: fit-content;
  padding: var(--dsm-account-role-card-padding, 10px 12px);
  border: 1px solid var(--account-role-card-border);
  border-radius: var(--dsm-secondary-card-radius-tight, 16px);
  background: var(--account-role-card-bg);
}

.account-role-line-card--admin {
  border-color: var(--account-admin-role-card-border);
  background: var(--account-admin-role-card-bg);
}

.account-summary-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  align-content: start;
  gap: 18px;
  display: grid;
}

.account-summary-card {
  min-width: 0;
  min-height: 100%;
  padding: var(--dsm-secondary-card-padding, 22px);
  border-radius: var(--dsm-panel-radius-compact, 26px);
  box-shadow: var(--shadow-soft);
  background: linear-gradient(135deg, #fffdf8f5, #d9ccbb42);
  gap: 10px;
  display: grid;
}

.account-summary-card strong {
  overflow-wrap: anywhere;
  font-size: clamp(1.35rem, 2.1vw, 1.9rem);
  line-height: 1.05;
}

.account-summary-card p {
  overflow-wrap: anywhere;
  margin: 0;
  font-size: .98rem;
  line-height: 1.55;
}

@media (max-width: 68.75rem) {
  .account-hero-grid {
    grid-template-columns: 1fr;
  }
}

.account-actions-card {
  gap: 18px;
  display: grid;
}

.account-actions-card .catalog-actions {
  margin-top: 0;
}

.auth-shell {
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
}

.auth-panel {
  padding: var(--dsm-panel-padding, 28px);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-panel-radius, 28px);
  background: var(--color-surface);
  box-shadow: var(--shadow-soft);
  gap: 18px;
  display: grid;
}

.auth-form, .checkout-action {
  gap: 16px;
  display: grid;
}

.checkout-action .button {
  width: fit-content;
}

.form-error, .form-success, .form-warning {
  padding: var(--dsm-alert-inline-padding, 12px 14px);
  border-radius: var(--dsm-control-radius, 14px);
  margin: 0;
  line-height: 1.5;
}

.form-error {
  color: #7f1d1d;
  background: #b91c1c14;
}

.form-success {
  color: #14532d;
  background: #22c55e1a;
}

.form-warning {
  color: #7a4b00;
  background: #f9ab0024;
}

.form-warning .button {
  background: #ffffffc2;
}

[data-theme="dark"] .form-warning {
  color: #ffd1a3;
  background: #9a521338;
}

[data-theme="dark"] .form-warning .button {
  background: #131e27b8;
  border-color: #f6f1e84d;
}

.account-billing-prompt {
  flex-direction: column;
  gap: 10px;
  display: flex;
}

.account-billing-prompt p {
  margin: 0;
}

.organization-seat-panel, .organization-invite-form, .organization-seat-grid, .organization-seat-list, .organization-seat-list li, .organization-seat-list li > div {
  gap: 14px;
  display: grid;
}

.organization-invite-form {
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: end;
}

.organization-invite-form .button {
  margin-bottom: 1px;
}

.organization-seat-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  align-items: start;
}

.organization-seat-grid h3 {
  margin: 0 0 12px;
}

.organization-seat-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.organization-seat-list li {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-control-radius, 14px);
  background: var(--color-surface);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding: 14px;
}

.organization-seat-list li > div {
  gap: 4px;
  min-width: 0;
}

.organization-seat-list strong, .organization-seat-list span {
  overflow-wrap: anywhere;
}

.organization-seat-list span {
  color: var(--color-muted);
  font-size: .9rem;
}

@media (max-width: 40rem) {
  .organization-invite-form, .organization-seat-list li {
    grid-template-columns: 1fr;
  }

  .organization-seat-list .button {
    width: fit-content;
  }
}

.access-gate-shell {
  align-content: center;
  min-height: 50vh;
}

.versus-shell {
  gap: 18px;
  display: grid;
}

.versus-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

.shared-category-grid {
  gap: 18px;
  display: grid;
}

.versus-summary-card {
  padding: var(--dsm-panel-padding-compact, 24px);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-panel-radius, 28px);
  box-shadow: var(--shadow-soft);
  background: linear-gradient(135deg, #fffdf8f5, #1f6b5d14);
  gap: 16px;
  display: grid;
}

[data-theme="dark"] .versus-summary-card {
  border-color: color-mix(in srgb, var(--brand-signal) 22%, #f6f1e829);
  background: linear-gradient(135deg,
    #0a1018f5 0%,
    color-mix(in srgb, var(--brand-signal) 12%, #0c131cf0) 52%,
    color-mix(in srgb, var(--brand-petrol) 14%, #0a1018f0) 100%);
  box-shadow: 0 18px 36px #0204086b,
    inset 0 1px 0 color-mix(in srgb, var(--brand-signal) 12%, transparent);
}

.versus-summary-card h3 {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.04em;
  margin: 0;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
}

.versus-summary-card p {
  color: var(--color-muted);
  margin: 0;
  line-height: 1.65;
}

.show-card, .stat-card {
  padding: var(--dsm-secondary-card-padding, 22px);
}

.stat-card {
  align-content: start;
  gap: 10px;
  display: grid;
}

.stat-card-link {
  color: inherit;
  text-decoration: none;
  transition: transform .14s, box-shadow .14s, border-color .14s;
}

.stat-card-link:hover, .stat-card-link:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px #1d233314;
}

.stat-card span {
  line-height: 1.2;
  display: block;
}

.stat-card strong {
  line-height: .95;
  display: block;
}

.stat-card p {
  margin: 0;
}

.show-card, .comparison-card {
  gap: 16px;
  display: grid;
}

.comparison-card h3 {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.04em;
  margin: 0;
  font-size: clamp(1.18rem, 2.2vw, 1.42rem);
  line-height: 1.08;
}

.comparison-card > p, .comparison-highlight p {
  color: var(--color-muted);
  margin: 0;
  font-size: .96rem;
  line-height: 1.55;
}

.comparison-card-accent {
  background: linear-gradient(135deg, #fffdf8f5, #f7d4c97a);
}

[data-theme="dark"] .comparison-card-accent {
  border-color: color-mix(in srgb, var(--brand-copper) 44%, #05080ef0);
  background: linear-gradient(135deg,
    #04070cfa 0%,
    color-mix(in srgb, var(--brand-copper) 10%, #070b12f0) 58%,
    color-mix(in srgb, var(--brand-petrol) 9%, #070b12eb) 100%);
  box-shadow: 0 18px 36px #02040873,
    inset 0 1px 0 color-mix(in srgb, var(--brand-copper) 20%, transparent);
}

.weather-hotspot-card, .weather-hotspot-bottom, .weather-hotspot-list, .weather-hotspot-list-item {
  gap: 16px;
  display: grid;
}

.weather-hotspot-toolbar {
  gap: 12px;
  display: grid;
}

.weather-hotspot-control-group {
  gap: 8px;
  display: grid;
}

.weather-hotspot-control-label, .weather-hotspot-toolbar-hint {
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--color-muted);
  font-size: .78rem;
}

.weather-hotspot-toolbar-hint {
  margin: 0;
}

.weather-hotspot-controls {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
}

.weather-hotspot-controls-presets {
  padding-top: 4px;
}

.weather-hotspot-controls-viewport {
  opacity: .82;
}

.weather-hotspot-controls-viewport .button {
  min-width: 64px;
}

.weather-hotspot-status {
  color: var(--color-muted);
  flex-wrap: wrap;
  gap: 10px;
  font-size: .86rem;
  display: flex;
}

.weather-hotspot-stage {
  background: #fffdf8b8;
  border: 1px solid #1d233314;
  border-radius: 28px;
  position: relative;
  overflow: hidden;
  box-shadow: inset 0 1px #ffffffb3;
}

[data-theme="dark"] .weather-hotspot-stage {
  border-color: color-mix(in srgb, var(--brand-surface-strong) 16%, transparent);
  background: color-mix(in srgb, var(--brand-petrol) 42%, #05090ff0);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--brand-surface-strong) 10%, transparent);
}

.weather-hotspot-stage-loading {
  pointer-events: none;
}

.weather-hotspot-stage-loading .weather-hotspot-svg {
  opacity: .45;
}

.weather-hotspot-stage-overlay {
  color: var(--color-foreground);
  font-family: var(--font-heading), sans-serif;
  letter-spacing: .02em;
  background: #fffdf861;
  place-items: center;
  font-size: 1rem;
  display: grid;
  position: absolute;
  inset: 0;
}

[data-theme="dark"] .weather-hotspot-stage-overlay {
  background: #05090f8a;
}

.weather-hotspot-svg {
  width: 100%;
  height: auto;
  display: block;
}

.weather-hotspot-cell {
  cursor: pointer;
}

.weather-hotspot-tooltip {
  background: #fffdf8f0;
  border: 1px solid #1d23331f;
  border-radius: 18px;
  max-width: 320px;
  padding: 14px 16px;
  transition: opacity .18s ease-in-out, transform .18s ease-in-out;
  position: absolute;
  box-shadow: 0 18px 32px #1d233324;
}

.weather-hotspot-tooltip-bottom-left {
  bottom: 20px;
  left: 20px;
}

.weather-hotspot-tooltip-top-right {
  top: 20px;
  right: 20px;
}

.weather-hotspot-tooltip p {
  color: var(--color-muted);
  margin: 0;
  font-size: .82rem;
}

.weather-hotspot-tooltip-metrics, .weather-hotspot-focus-actions {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.weather-hotspot-tooltip-metrics span {
  background: #1d23330f;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: .8rem;
}

[data-theme="dark"] .weather-hotspot-tooltip-metrics span {
  background: color-mix(in srgb, var(--brand-surface-strong) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--brand-surface-strong) 16%, transparent);
}

.weather-hotspot-tooltip-score {
  background: #1f6b5d1f;
  font-weight: 700;
}

[data-theme="dark"] .weather-hotspot-tooltip-score {
  background: color-mix(in srgb, var(--brand-signal) 26%, transparent);
}

.weather-hotspot-empty {
  margin-top: 0;
}

.weather-hotspot-legend {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
}

.weather-hotspot-legend-item {
  color: var(--color-muted);
  background: #fffdf8d1;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  font-size: .82rem;
  display: inline-flex;
}

[data-theme="dark"] .weather-hotspot-legend-item {
  background: color-mix(in srgb, var(--brand-surface-strong) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--brand-surface-strong) 16%, transparent);
}

.weather-hotspot-legend-item:before {
  content: "";
  border-radius: 999px;
  width: 10px;
  height: 10px;
}

.weather-hotspot-legend-basemap:before {
  background: #718096;
}

.weather-hotspot-list-heading {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  display: flex;
}

.weather-hotspot-list-heading span {
  color: var(--color-muted);
  font-size: .86rem;
}

.weather-hotspot-list-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.weather-hotspot-list-item-shell {
  gap: 10px;
  display: grid;
}

.weather-hotspot-list-item {
  width: 100%;
  padding: var(--dsm-secondary-card-padding-tight, 14px);
  border-radius: var(--dsm-secondary-card-radius-tight, 18px);
  text-align: left;
  color: inherit;
  cursor: pointer;
  background: #fffdf8b3;
  border: 1px solid #1d233314;
  gap: 12px;
  display: grid;
}

.weather-hotspot-list-metrics {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.weather-hotspot-list-metrics span {
  background: #1f6b5d14;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: .82rem;
}

[data-theme="dark"] .weather-hotspot-list-metrics span {
  background: color-mix(in srgb, var(--brand-surface-strong) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--brand-surface-strong) 16%, transparent);
}

.weather-hotspot-list-link {
  align-self: start;
}

.weather-hotspot-focus-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  display: flex;
}

.weather-hotspot-focus-hint {
  color: var(--color-muted);
}

.comparison-topline, .comparison-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  display: flex;
}

.comparison-metrics {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.comparison-metrics div {
  padding: var(--dsm-secondary-card-padding-tight, 14px);
  border-radius: var(--dsm-secondary-card-radius-tight, 18px);
  background: #fffdf8b8;
  gap: 4px;
  display: grid;
}

[data-theme="dark"] .comparison-metrics div {
  background: color-mix(in srgb, var(--brand-surface-strong) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--brand-surface-strong) 16%, transparent);
}

.comparison-metrics span, .comparison-highlight span {
  color: var(--color-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .82rem;
}

.comparison-metrics strong, .comparison-highlight strong {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.03em;
  font-size: 1.15rem;
}

.comparison-highlight {
  background: #1f6b5d12;
  gap: 8px;
  display: grid;
}

[data-theme="dark"] .comparison-highlight {
  background: color-mix(in srgb, var(--brand-signal) 18%, transparent);
  border: 1px solid color-mix(in srgb, var(--brand-surface-strong) 16%, transparent);
}

.comparison-visual-card, .comparison-history-card {
  padding: var(--dsm-panel-padding-tight, 18px);
  border-radius: var(--dsm-panel-radius-tight, 22px);
  background: #fffdf8cc;
  border: 1px solid #1d233314;
  gap: 16px;
  display: grid;
}

[data-theme="dark"] .comparison-visual-card, [data-theme="dark"] .comparison-history-card {
  border-color: color-mix(in srgb, var(--brand-signal) 18%, #f6f1e829);
  background: linear-gradient(#16212beb, #101822f5);
}

.comparison-visual-header {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  display: flex;
}

.comparison-visual-header strong, .comparison-chart-item strong, .history-point-item strong {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.03em;
}

.comparison-visual-header p {
  color: var(--color-muted);
  margin: 6px 0 0;
  font-size: .95rem;
}

.comparison-chart, .history-chart {
  width: 100%;
  height: var(--dsm-chart-height-default, 180px);
}

.comparison-bar {
  fill: #1f6b5d47;
  stroke: #1f6b5d9e;
  stroke-width: 1px;
}

.comparison-score-point {
  fill: var(--color-accent);
  stroke: #fffdf8f5;
  stroke-width: 1px;
}

[data-theme="dark"] .comparison-score-point {
  stroke: #080d14f0;
}

.comparison-chart-labels, .history-point-strip {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
  display: grid;
}

.comparison-chart-item, .history-point-item {
  border-top: 1px solid #1d233314;
  gap: 4px;
  padding-top: 10px;
  display: grid;
}

[data-theme="dark"] .comparison-chart-item, [data-theme="dark"] .history-point-item {
  border-top-color: color-mix(in srgb, var(--brand-border) 72%, #070b12f0);
}

.comparison-chart-item span, .history-point-item span {
  color: var(--color-muted);
  font-size: .88rem;
}

.history-gap-bar {
  fill: #1f6b5d42;
  stroke: #1f6b5d99;
  stroke-width: 1px;
}

.history-gap-bar-negative {
  fill: #d87e6038;
  stroke: #d87e60b3;
}

.history-score-line {
  fill: none;
  stroke: var(--color-accent);
  stroke-width: 2.4px;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.detail-card, .review-card, .owner-response {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-secondary-card-radius, 24px);
  background: var(--color-surface);
}

.detail-card, .review-card {
  padding: var(--dsm-secondary-card-padding, 22px);
}

.detail-section-grid {
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, .9fr);
}

.detail-section-grid-secondary {
  align-items: start;
}

.detail-section-grid-single {
  grid-template-columns: 1fr;
}

.detail-column-stack {
  gap: 24px;
  min-width: 0;
  display: grid;
}

.detail-card {
  gap: 18px;
  display: grid;
}

.detail-card-wide {
  min-width: 0;
}

.insight-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.insight-chip {
  padding: var(--dsm-secondary-card-padding-tight, 16px);
  gap: 8px;
  display: grid;
}

.insight-chip strong {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.04em;
  font-size: 1.8rem;
}

.sparkline-card {
  padding: var(--dsm-secondary-card-padding-tight, 12px);
}

.trend-chart-card {
  padding: var(--dsm-panel-padding-tight, 18px);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-secondary-card-radius, 24px);
  background: linear-gradient(#fffdf8f5, #f7d4c933);
  gap: 16px;
  display: grid;
}

.trend-chart-header {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  display: flex;
}

.trend-chart-header strong, .trend-axis-item strong {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.03em;
}

.trend-chart-header p, .trend-footnote {
  color: var(--color-muted);
  margin: 6px 0 0;
  font-size: .95rem;
}

.trend-legend {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
}

.trend-legend-item {
  padding: var(--dsm-chart-pill-padding, 8px 12px);
  border-radius: var(--dsm-chip-radius, 999px);
  color: var(--color-ink);
  background: #fffdf8db;
  align-items: center;
  gap: 8px;
  font-size: .84rem;
  display: inline-flex;
}

.trend-legend-item:before {
  width: var(--dsm-chart-dot-size, 12px);
  height: var(--dsm-chart-dot-size, 12px);
  border-radius: var(--dsm-chart-dot-radius, 999px);
  content: "";
  display: inline-block;
}

.trend-legend-item-reviews:before {
  background: #1f6b5d42;
}

.trend-legend-item-score:before {
  background: var(--color-accent);
}

.trend-chart {
  width: 100%;
  height: var(--dsm-chart-height-default, 180px);
}

.trend-chart-card-compact {
  padding: var(--dsm-secondary-card-padding-tight, 14px);
  gap: 12px;
}

.history-summary-grid {
  margin-bottom: 6px;
}

.history-activity-card {
  margin-top: 8px;
}

.history-activity-chart {
  width: 100%;
  height: var(--dsm-chart-height-activity, 160px);
}

.history-activity-bar {
  fill: #1f6b5dd1;
}

.history-activity-bar-base {
  fill: #1f6b5d2e;
}

.history-activity-scale-label {
  fill: var(--color-muted);
  font-size: 4px;
}

.trend-chart-compact {
  height: var(--dsm-chart-height-compact, 130px);
}

.trend-note-summary {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
}

.trend-note-summary span {
  padding: var(--dsm-chart-note-padding, 6px 10px);
  border-radius: var(--dsm-chip-radius, 999px);
  color: var(--color-muted);
  background: #fffdf8e6;
  border: 1px solid #1d23331a;
  align-items: center;
  gap: 6px;
  font-size: .84rem;
  display: inline-flex;
}

.trend-grid-line {
  fill: none;
  stroke: #1d23331f;
  stroke-width: 1px;
}

.trend-area {
  fill: #1f6b5d38;
  stroke: #1f6b5d80;
  stroke-width: 1px;
}

.trend-line {
  fill: none;
  stroke: var(--color-accent);
  stroke-width: 2.4px;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.trend-point {
  stroke: #fffdf8f0;
  stroke-width: .8px;
}

.trend-point-reviews {
  fill: var(--color-secondary);
}

.trend-point-score {
  fill: var(--color-accent);
}

[data-theme="dark"] .trend-chart-card {
  background: linear-gradient(180deg, #1a2732f0, #121b24e6),
    var(--brand-surface-strong);
  border-color: var(--brand-border);
}

[data-theme="dark"] .trend-legend-item {
  color: var(--color-ink);
  background: #f6f1e814;
}

[data-theme="dark"] .trend-note-summary span {
  color: var(--color-muted);
  background: #f6f1e814;
  border-color: #f6f1e82e;
}

[data-theme="dark"] .trend-grid-line {
  stroke: #f6f1e829;
}

[data-theme="dark"] .trend-area {
  fill: #57bfa233;
  stroke: #57bfa28a;
}

[data-theme="dark"] .trend-point {
  stroke: #121b24eb;
}

.trend-axis-labels {
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
  display: grid;
}

.trend-axis-item {
  border-top: 1px solid #1d233314;
  gap: 4px;
  padding-top: 10px;
  display: grid;
}

.trend-axis-item span {
  color: var(--color-muted);
  margin: 0;
  font-size: .88rem;
}

.sparkline {
  width: 100%;
  height: var(--dsm-chart-height-sparkline, 96px);
}

.sparkline-grid {
  fill: none;
  stroke: #1d23331f;
  stroke-width: 1px;
}

.sparkline-line {
  fill: none;
  stroke: var(--color-accent);
  stroke-width: 2.4px;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tag-list {
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  display: flex;
}

.tag-list > * {
  min-width: 0;
  max-width: 100%;
}

.tag-chip {
  min-height: var(--dsm-chip-min-height, 34px);
  padding: var(--dsm-tag-chip-padding, 8px 12px);
  box-sizing: border-box;
  border-radius: var(--dsm-chip-radius, 999px);
  color: var(--color-secondary);
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
  background: #1f6b5d14;
  min-width: 0;
  max-width: 100%;
  font-size: .88rem;
  line-height: 1.35;
  display: block;
}

.detail-top-badges {
  flex-wrap: wrap;
  gap: 14px;
  margin: 2px 0 4px;
  display: flex;
}

.detail-summary-badges {
  margin: 0 0 6px;
}

.detail-top-badge {
  aspect-ratio: 1;
  border-radius: var(--dsm-chip-radius, 999px);
  text-align: center;
  width: clamp(108px, 14vw, 132px);
  padding: var(--dsm-detail-top-badge-padding, 12px);
  background: linear-gradient(#fffdf8fa, #1f6b5d1a);
  border: 1px solid #1f6b5d33;
  place-content: center;
  justify-items: center;
  display: grid;
  box-shadow: 0 12px 26px #1d233324;
}

.detail-top-badge-label {
  font-family: var(--font-heading), sans-serif;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--color-secondary);
  font-size: .72rem;
  font-weight: 600;
}

.detail-top-badge-value {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.04em;
  color: var(--color-ink);
  margin: 2px 0 0;
  font-size: clamp(1.45rem, 2.6vw, 2.1rem);
  font-weight: 700;
  line-height: 1;
}

.distribution-list, .review-list, .related-list, .timeline-list {
  gap: 14px;
  display: grid;
}

.distribution-shell {
  gap: 12px;
  display: grid;
}

.distribution-heading {
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin: 0;
  font-size: .82rem;
}

.distribution-list-compact {
  gap: 10px;
}

.related-item-head {
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  display: flex;
}

.related-item-link {
  color: inherit;
  text-decoration: none;
}

.related-item-link:hover, .related-item-link:focus-visible {
  color: var(--color-accent);
  text-decoration: underline;
}

.related-item-status {
  border-radius: var(--dsm-chip-radius, 999px);
  padding: var(--dsm-related-status-padding, 4px 10px);
  letter-spacing: .02em;
  flex-shrink: 0;
  align-items: center;
  font-size: .75rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
}

.related-item-status-linked {
  color: var(--color-accent);
  background: #1f6b5d1f;
}

.related-item-status-linked:hover, .related-item-status-linked:focus-visible {
  background: #1f6b5d2e;
}

.related-item-status-unlinked {
  color: var(--color-muted);
  background: #1d233314;
}

.distribution-row, .timeline-item, .related-item, .review-topline {
  gap: 10px;
  display: grid;
}

.distribution-row {
  grid-template-columns: 88px minmax(0, 1fr) 40px;
  align-items: center;
}

.distribution-row-compact {
  grid-template-columns: 36px minmax(0, 1fr) 34px;
  gap: 8px;
}

.distribution-row-compact span, .distribution-row-compact strong {
  font-size: .82rem;
}

.distribution-bar-track {
  height: var(--dsm-distribution-bar-height, 12px);
  border-radius: var(--dsm-distribution-bar-radius, 999px);
  background: #1d233314;
  overflow: hidden;
}

.distribution-bar-fill {
  border-radius: var(--dsm-distribution-bar-radius, 999px);
  background: var(--color-rating-bar);
  height: 100%;
}

.timeline-item, .related-item {
  padding: var(--dsm-divider-item-padding, 14px 0);
  border-top: 1px solid var(--color-border);
}

.timeline-item:first-child, .related-item:first-child {
  border-top: 0;
  padding-top: 0;
}

.review-card {
  gap: 14px;
  display: grid;
}

.review-topline {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: flex-start;
}

.review-rating {
  font-family: var(--font-heading), sans-serif;
  color: var(--color-accent);
}

.owner-response {
  padding: var(--dsm-secondary-card-padding-tight, 16px);
  background: #d6573b14;
  gap: 8px;
  display: grid;
}

.review-pagination {
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  display: grid;
}

.review-pagination > :last-child {
  justify-self: end;
}

.show-card-top, .catalog-topline, .detail-topline {
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  display: flex;
}

@media (max-width: 640px) {
  .review-pagination {
    grid-template-columns: 1fr 1fr;
  }

  .review-pagination > span {
    grid-area: 1 / 1 / auto / -1;
    justify-self: center;
  }
}

.favorite-heart-btn {
  color: #7d7f87;
  cursor: pointer;
  background: #fffdf8eb;
  border: 1px solid #1d233333;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  block-size: 34px;
  inline-size: 34px;
  margin-left: auto;
  transition: transform .16s, box-shadow .16s, color .16s, border-color .16s;
  display: inline-flex;
}

.favorite-heart-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 18px #161c2d1f;
}

.favorite-heart-btn-active {
  color: #c2203f;
  background: #ffe8ee;
  border-color: #e69aac;
}

.favorite-heart-btn:disabled {
  opacity: .55;
  cursor: wait;
}

.favorite-heart-btn-icon {
  font-size: 1.05rem;
  line-height: 1;
}

.pill {
  padding: var(--dsm-pill-padding, 6px 10px);
  border-radius: var(--dsm-chip-radius, 999px);
  color: var(--color-accent);
  background: var(--color-accent-soft);
  align-items: center;
  display: inline-flex;
}

.pill-warning {
  color: #8a5a00;
  background: #fff4d6;
}

.pill-confidence-high {
  color: #0f5c4f;
  background: #d9f0e9;
}

.pill-confidence-medium {
  color: #6b4a08;
  background: #f8e8c5;
}

.pill-confidence-low {
  color: #7b2d26;
  background: #f6d8d5;
}

.comparison-subsection {
  margin-top: 4px;
}

.favorite-comparison-stack {
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  display: grid;
}

.show-card-pending {
  opacity: .92;
  border-style: dashed;
}

.muted {
  color: var(--color-muted);
}

.show-card-distribution {
  margin-top: 4px;
}

.show-meta, .detail-facts {
  gap: 12px;
  display: grid;
}

.show-meta div, .detail-facts div {
  gap: 3px;
  display: grid;
}

.detail-facts {
  padding: var(--dsm-panel-padding-tight, 18px);
  gap: 16px;
}

.show-meta dd, .detail-facts dd {
  margin: 0;
  font-size: .98rem;
}

.detail-facts dd, .detail-facts dd a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.text-link {
  width: fit-content;
  min-height: var(--dsm-text-link-min-height, 42px);
  color: var(--color-secondary);
  border: 1px solid #1f6b5d2e;
  padding: 0 14px;
}

.catalog-header, .detail-main {
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  display: grid;
}

.detail-main > *, .detail-summary > * {
  min-width: 0;
}

.privacy-rights-panel {
  gap: 18px;
  display: grid;
}

.privacy-rights-grid {
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 18px;
  display: grid;
}

.privacy-rights-copy, .privacy-actions-card {
  padding: var(--dsm-panel-padding-compact, 24px);
  gap: 18px;
  display: grid;
}

.privacy-actions-copy h2, .privacy-rights-copy h3 {
  margin: 0;
}

.privacy-rights-list {
  gap: 8px;
  margin: 0;
  padding-left: 1.2rem;
  display: grid;
}

.privacy-actions-buttons {
  flex-wrap: wrap;
  gap: 12px;
  display: flex;
}

.privacy-request-meta {
  color: var(--color-muted);
  margin: 0;
  line-height: 1.55;
}

.catalog-shell {
  padding: var(--dsm-shell-padding-default, 32px 0 72px);
}

.stat-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.detail-shell {
  width: min(var(--dsm-shell-max-width, 1120px), calc(100vw - (var(--dsm-shell-gutter, 16px) * 2)));
  padding: var(--dsm-shell-padding-default, 32px 0 72px);
  margin: 0 auto;
}

.detail-summary {
  gap: 18px;
  display: grid;
}

.detail-cta {
  gap: 10px;
  padding-top: 8px;
  display: grid;
}

.mobile-zoom-nav {
  display: none;
}

@media (max-width: 60rem) {
  .mobile-zoom-nav {
    right: var(--dsm-mobile-dock-inset, 10px);
    left: var(--dsm-mobile-dock-inset, 10px);
    bottom: calc(var(--dsm-mobile-dock-inset, 10px) + env(safe-area-inset-bottom));
    z-index: 80;
    padding: var(--dsm-secondary-card-padding-tight, 10px);
    border: 1px solid var(--mobile-dock-border);
    border-radius: var(--dsm-mobile-dock-radius, 18px);
    background: var(--mobile-dock-bg);
    box-shadow: var(--mobile-dock-shadow);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    gap: 10px;
    display: grid;
    position: fixed;
  }

  .mobile-zoom-nav-breadcrumb {
    color: var(--color-muted);
    white-space: nowrap;
    text-overflow: ellipsis;
    margin: 0;
    font-size: .78rem;
    line-height: 1.35;
    overflow: hidden;
  }

  .mobile-zoom-nav-actions {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    display: grid;
  }

  .mobile-zoom-nav-button {
    width: 100%;
    min-height: var(--dsm-button-min-height, 44px);
  }

  .mobile-zoom-nav-home {
    background: var(--brand-ink);
    border-color: var(--brand-ink);
    color: var(--brand-ivory);
  }

  .mobile-zoom-nav-home:hover {
    background: var(--brand-petrol);
    border-color: var(--brand-petrol);
    color: var(--brand-ivory);
  }

  [data-theme="dark"] .mobile-zoom-nav-home, [data-theme="dark"] .mobile-zoom-nav-home:hover {
    background: var(--brand-signal);
    border-color: var(--brand-signal);
    color: var(--brand-ink);
  }

  .page-shell, .detail-shell, .catalog-shell {
    padding-bottom: calc(var(--dsm-mobile-nav-clearance, 140px) + env(safe-area-inset-bottom));
  }

  .site-header-inner, .hero, .detail-hero, .card-grid, .stat-grid, .account-hero-grid, .account-summary-grid, .privacy-rights-grid, .analysis-grid, .market-portal-grid, .auth-shell, .offers-grid, .versus-grid, .shared-category-grid, .detail-section-grid {
    grid-template-columns: 1fr;
  }

  .global-notice-banner {
    flex-direction: column;
    align-items: flex-start;
  }

  .filter-form, .insight-grid, .filter-form-compare {
    grid-template-columns: 1fr 1fr;
  }

  .filter-form-compare .filter-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .hero-copy h1, .detail-main h1, .catalog-header h1 {
    max-width: none;
  }

  .site-brand, .site-user-chip {
    justify-self: center;
    justify-items: center;
  }
}

@media (max-width: 40rem) {
  .page-shell, .detail-shell, .catalog-shell {
    width: min(calc(100vw - (var(--dsm-shell-gutter, 6px) * 2)), var(--dsm-shell-max-width, 1120px));
    padding-top: 18px;
  }

  .hero, .detail-hero, .show-card, .hero-panel, .detail-summary, .stat-card {
    padding: var(--dsm-panel-padding-tight, 18px);
    border-radius: var(--dsm-panel-radius-tight, 22px);
  }

  .distribution-row, .review-topline, .offer-matrix-row {
    grid-template-columns: 1fr;
  }

  .trend-chart-header, .comparison-visual-header {
    flex-direction: column;
  }

  .comparison-metrics, .weather-hotspot-list-grid {
    grid-template-columns: 1fr;
  }

  .weather-hotspot-status, .weather-hotspot-collapsible > summary {
    flex-direction: column;
  }

  .weather-hotspot-collapsible-meta {
    justify-content: flex-start;
  }

  .comparison-card, .comparison-highlight, .filter-panel, .empty-state-card, .versus-summary-card, .comparison-visual-card, .comparison-history-card {
    padding: var(--dsm-secondary-card-padding, 16px);
    border-radius: var(--dsm-secondary-card-radius, 20px);
  }
}

@media (max-width: 82rem) {
  .offer-matrix-shell {
    padding: 0;
    overflow-x: visible;
  }

  .offer-matrix {
    min-width: 0;
  }

  .offer-matrix-row {
    grid-template-columns: minmax(150px, 1.15fr) repeat(5, minmax(0, 1fr));
    gap: 8px;
    padding: 12px 14px;
  }

  .offer-matrix-row-label, .offer-matrix-row strong {
    overflow-wrap: anywhere;
    word-break: break-word;
    font-size: .78rem;
    line-height: 1.35;
  }
}

@media (max-width: 56rem) {
  .offer-matrix-shell {
    padding: 0;
    overflow-x: visible;
  }

  .offer-matrix {
    background: none;
    border: none;
    min-width: 0;
  }

  .offer-matrix-head {
    display: none;
  }

  .offer-matrix-row {
    padding: var(--dsm-secondary-card-padding-tight, 14px);
    border: 1px solid var(--color-border);
    border-radius: var(--dsm-secondary-card-radius-tight, 18px);
    background: var(--color-surface);
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .offer-matrix-row + .offer-matrix-row {
    margin-top: 12px;
  }

  .offer-matrix-row-label {
    overflow-wrap: anywhere;
    margin-bottom: 4px;
    font-size: .92rem;
    line-height: 1.4;
  }

  .offer-matrix-cell {
    border-top: 1px solid #1d233314;
    align-items: start;
    gap: 4px;
    padding-top: 10px;
    display: grid;
  }

  .offer-matrix-cell:before {
    content: attr(data-column-label);
    color: var(--color-ink);
    letter-spacing: 0;
    text-transform: uppercase;
    overflow-wrap: anywhere;
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.35;
  }

  .offer-matrix-cell:first-of-type {
    border-top: none;
    padding-top: 0;
  }

  .offer-matrix-cell, .offer-matrix-cell strong {
    overflow-wrap: anywhere;
    word-break: break-word;
    font-size: .88rem;
    line-height: 1.45;
  }
}

@media (max-width: 40rem) {
  .comparison-metrics div {
    padding: var(--dsm-secondary-card-padding-tight, 12px);
    border-radius: var(--dsm-secondary-card-radius-tight, 16px);
  }

  .filter-form, .insight-grid, .filter-form-compare {
    grid-template-columns: 1fr;
  }

  .detail-main {
    gap: 14px;
  }

  .detail-main h1 {
    overflow-wrap: anywhere;
    word-break: break-word;
    font-size: clamp(2.1rem, 12vw, 3.4rem);
    line-height: .98;
  }

  .detail-main .detail-topline {
    align-items: flex-start;
  }

  .detail-main .pill, .detail-main .muted {
    overflow-wrap: anywhere;
    word-break: break-word;
    min-width: 0;
    max-width: 100%;
  }

  .detail-main .tag-list {
    flex-wrap: wrap;
    gap: 10px;
    display: flex;
  }

  .detail-main .tag-list > .tag-chip {
    width: auto;
    max-width: 100%;
  }

  .detail-main .tag-list > .insight-chip {
    width: 100%;
    max-width: 100%;
  }

  .detail-main .tag-chip {
    border-radius: var(--dsm-tag-chip-radius-mobile, 20px);
  }

  .detail-hero-insights {
    grid-template-columns: minmax(0, 1fr);
  }

  .detail-section-grid-secondary > .detail-secondary-stack {
    display: contents;
  }

  .detail-section-grid-secondary .detail-card-wide {
    order: 1;
  }

  .detail-section-grid-secondary > .detail-secondary-history {
    order: 2;
  }

  .detail-section-grid-secondary .detail-secondary-related {
    order: 3;
  }

  .detail-top-badge {
    width: clamp(96px, 31vw, 114px);
  }

  .site-user-chip {
    justify-items: start;
  }

  .site-brand {
    gap: 10px;
  }

  .site-brand-mark {
    width: var(--dsm-brand-mark-size, 38px);
    height: var(--dsm-brand-mark-size, 38px);
  }

  .site-brand-title {
    font-size: .92rem;
  }

  .site-nav-shell, .market-switcher {
    justify-items: start;
  }

  .market-switcher-list {
    justify-content: flex-start;
  }

  .account-shell .catalog-actions {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 20px;
    display: grid;
  }

  .account-primary-card, .account-summary-card, .account-actions-card {
    padding: var(--dsm-panel-padding-tight, 18px);
    border-radius: var(--dsm-panel-radius-tight, 22px);
  }

  .account-shell .catalog-header .account-email-title {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: none;
    font-size: clamp(1.15rem, 4.6vw, 1.45rem);
    line-height: 1.1;
  }

  .account-shell .catalog-actions > *, .account-shell .catalog-actions .button, .account-shell .catalog-actions .checkout-action .button {
    width: 100%;
  }
}

.admin-shell {
  grid-template-columns: var(--dsm-admin-sidebar-width, 220px) minmax(0, 1fr);
  min-height: calc(100vh - var(--dsm-header-min-height, 72px));
  width: 100%;
  max-width: var(--dsm-shell-max-width, 1120px);
  margin: 0 auto;
  display: grid;
}

.admin-sidebar {
  padding: var(--dsm-admin-sidebar-padding-block, 2rem) var(--dsm-admin-sidebar-padding-inline, 1.25rem);
  border-right: 1px solid var(--color-border);
  background: var(--color-surface-strong);
}

.admin-sidebar-title {
  font-family: var(--font-heading), sans-serif;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--color-muted);
  margin: 0 0 1rem;
  font-size: .85rem;
}

.admin-nav-list {
  flex-direction: column;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.admin-nav-link {
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  color: var(--color-ink);
  padding: .5rem .75rem;
  font-size: .95rem;
  text-decoration: none;
  transition: background .15s;
  display: block;
}

.admin-nav-link:hover {
  background: var(--admin-hover-bg);
}

.admin-main {
  min-width: 0;
  padding: var(--dsm-admin-main-padding-block, 2rem) var(--dsm-admin-main-padding-inline, 2.5rem);
  overflow-x: auto;
}

.admin-section {
  width: 100%;
  min-width: 0;
  max-width: var(--dsm-admin-section-max-width, 960px);
}

.admin-section--editorial-agent {
  max-width: 100%;
}

.admin-section-header {
  margin-bottom: 2rem;
}

.admin-section-content {
  margin-top: 2rem;
}

.admin-card {
  min-width: 0;
  padding: calc(var(--dsm-admin-card-padding, 1rem) + .1rem);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius, 12px);
  background: var(--admin-card-bg);
  box-shadow: var(--admin-card-shadow);
  gap: 1rem;
  display: grid;
}

.admin-card-title {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.02em;
  color: var(--color-ink);
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
}

.admin-card-header {
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
  display: flex;
}

.admin-card-header h2, .admin-page-subtitle {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.03em;
  color: var(--color-ink);
  margin: 0;
  font-size: 1.1rem;
}

.admin-card-header p, .admin-card > p {
  color: var(--color-muted);
  margin: 0;
  line-height: 1.55;
}

.admin-form-meta {
  color: var(--color-muted);
  margin: 0;
  font-size: .82rem;
  line-height: 1.5;
}

.admin-page-subtitle {
  margin-bottom: .9rem;
}

.admin-table-wrapper {
  overflow-x: auto;
}

.admin-page-header {
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
  display: flex;
}

.admin-page-title {
  font-family: var(--font-heading), sans-serif;
  margin: 0 0 1.25rem;
  font-size: 1.5rem;
}

.admin-page-header .admin-page-title {
  margin-bottom: 0;
}

.admin-stats-grid {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1rem;
  display: grid;
}

.admin-stat-card {
  background: var(--color-surface-strong);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  padding: var(--dsm-admin-card-padding-spacious, 1.25rem) var(--dsm-admin-card-padding, 1rem);
  flex-direction: column;
  align-items: center;
  gap: .25rem;
  display: flex;
}

.admin-stat-card-setting {
  justify-content: center;
}

.admin-stat-card-action {
  color: inherit;
  text-decoration: none;
  transition: transform .16s, border-color .16s, box-shadow .16s;
}

.admin-stat-card-action:hover, .admin-stat-card-action:focus-visible {
  box-shadow: var(--admin-card-shadow);
  border-color: #b86e4b57;
  transform: translateY(-1px);
}

.admin-stat-value {
  font-family: var(--font-heading), sans-serif;
  color: var(--color-accent);
  text-align: center;
  max-width: 100%;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.05;
}

.admin-stat-value-setting {
  overflow-wrap: anywhere;
  text-wrap: balance;
  font-size: clamp(1.35rem, 2.8vw, 1.9rem);
}

.admin-stat-value-fluid {
  overflow-wrap: anywhere;
  word-break: break-word;
  text-wrap: balance;
  width: 100%;
  min-width: 0;
  font-size: clamp(1.25rem, 5vw, 2rem);
}

.admin-stat-kicker {
  color: var(--color-secondary);
  font-size: .68rem;
  font-family: var(--font-heading), sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: center;
}

.admin-setting-chip {
  background: var(--admin-setting-chip-bg);
  border: 1px solid var(--admin-setting-chip-border);
  max-width: 100%;
  color: var(--color-accent);
  font-family: var(--font-heading), sans-serif;
  text-align: center;
  overflow-wrap: anywhere;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  padding: .45rem .75rem;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.2;
  display: inline-flex;
}

.admin-setting-chip--success {
  background: var(--admin-success-bg);
  border-color: color-mix(in srgb, var(--admin-success-text) 28%, transparent);
  color: var(--admin-success-text);
}

.admin-setting-chip--danger {
  background: var(--admin-danger-bg);
  border-color: color-mix(in srgb, var(--admin-danger-text) 28%, transparent);
  color: var(--admin-danger-text);
}

.admin-setting-chip--inline {
  margin-left: .5rem;
}

.admin-stat-label {
  color: var(--color-muted);
  text-align: center;
  font-size: .85rem;
}

.admin-stat-meta {
  color: var(--color-secondary);
  font-size: .72rem;
  font-family: var(--font-heading), sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-align: center;
}

.admin-table {
  border-collapse: collapse;
  width: 100%;
  font-size: .9rem;
}

.admin-table th {
  text-align: left;
  border-bottom: 2px solid var(--color-border);
  font-family: var(--font-heading), sans-serif;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--color-muted);
  padding: .6rem .75rem;
  font-size: .8rem;
}

.admin-table td {
  border-bottom: 1px solid var(--color-border);
  vertical-align: middle;
  padding: .6rem .75rem;
}

.admin-table code {
  background: var(--admin-code-bg);
  border: 1px solid var(--admin-code-border);
  border-radius: var(--dsm-admin-card-radius-tight, 4px);
  padding: 2px 6px;
  font-size: .85em;
}

@media (max-width: 768px) {
  .admin-table--cards {
    border-collapse: separate;
    display: block;
  }

  .admin-table--cards thead {
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    position: absolute;
    overflow: hidden;
  }

  .admin-table--cards tbody, .admin-table--cards tr {
    width: 100%;
    display: block;
  }

  .admin-table--cards tr {
    background: var(--color-surface-strong);
    border: 1px solid var(--color-border);
    border-radius: var(--dsm-admin-card-radius-compact, 10px);
    margin-bottom: .75rem;
    padding: .75rem .9rem;
  }

  .admin-table--cards th[scope="row"], .admin-table--cards td {
    border-bottom: 1px dashed var(--color-border);
    text-align: right;
    overflow-wrap: anywhere;
    word-break: break-word;
    justify-content: space-between;
    align-items: baseline;
    gap: .75rem;
    padding: .35rem 0;
    display: flex;
  }

  .admin-table--cards tr > :last-child {
    border-bottom: 0;
  }

  .admin-table--cards th[scope="row"] {
    font-family: var(--font-heading), sans-serif;
    text-transform: none;
    letter-spacing: 0;
    color: var(--color-primary, inherit);
    text-align: left;
    border-bottom: 1px solid var(--color-border);
    flex-wrap: wrap;
    justify-content: flex-start;
    margin-bottom: .25rem;
    padding-bottom: .5rem;
    font-size: .95rem;
  }

  .admin-table--cards td:before {
    content: attr(data-label);
    font-family: var(--font-heading), sans-serif;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
    text-align: left;
    flex: none;
    font-size: .7rem;
  }
}

.admin-url-cell {
  text-align: center;
}

.admin-error-cell {
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 200px;
  color: var(--admin-danger-text);
  font-size: .82rem;
  overflow: hidden;
}

.admin-message-cell {
  white-space: normal;
  overflow-wrap: anywhere;
  min-width: 240px;
  max-width: 360px;
  color: var(--admin-danger-text);
  font-size: .82rem;
  line-height: 1.45;
}

.admin-import-list {
  gap: 1rem;
  display: grid;
}

.admin-import-card {
  padding: var(--dsm-admin-card-padding, 1rem) calc(var(--dsm-admin-card-padding, 1rem) + .1rem);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius, 14px);
  background: var(--admin-card-bg);
  box-shadow: var(--admin-card-shadow);
  gap: 1rem;
  display: grid;
}

.admin-import-card-header {
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
  display: flex;
}

.admin-import-card-heading {
  gap: .35rem;
  min-width: 0;
  display: grid;
}

.admin-import-card-date {
  font-family: var(--font-heading), sans-serif;
  color: var(--color-ink);
  margin: 0;
  font-weight: 700;
}

.admin-import-card-market-row {
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
  display: flex;
}

.admin-import-chip {
  border: 1px solid var(--admin-chip-border);
  background: var(--admin-chip-bg);
  color: var(--color-muted);
  border-radius: 999px;
  align-items: center;
  padding: .22rem .6rem;
  font-size: .78rem;
  font-weight: 600;
  display: inline-flex;
}

.admin-import-card-alert {
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  background: var(--admin-warning-bg);
  border: 1px solid var(--admin-warning-border);
  color: var(--admin-warning-text);
  margin: 0;
  padding: .75rem .9rem;
  line-height: 1.5;
}

.admin-import-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
  display: grid;
}

.admin-import-card-field, .admin-import-card-metric, .admin-import-card-error {
  min-width: 0;
  padding: calc(var(--dsm-admin-card-padding, 1rem) - .2rem) calc(var(--dsm-admin-card-padding, 1rem) - .1rem);
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  background: var(--admin-panel-bg);
  border: 1px solid var(--admin-panel-border);
  gap: .3rem;
  display: grid;
}

.admin-import-card-field-wide {
  grid-column: 1 / -1;
}

.admin-import-card-label {
  color: var(--color-muted);
  text-transform: uppercase;
  letter-spacing: .05em;
  font-size: .76rem;
  font-weight: 700;
}

.admin-import-card-value {
  color: var(--color-ink);
  font-size: .95rem;
  line-height: 1.45;
}

.admin-import-card-url, .admin-import-card-error-text {
  overflow-wrap: anywhere;
  min-width: 0;
  line-height: 1.5;
}

.admin-import-card-url {
  color: var(--color-ink);
  font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
  font-size: .8rem;
}

.admin-import-card-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
  display: grid;
}

.admin-import-card-error {
  background: var(--admin-danger-bg);
  border-color: var(--admin-danger-border);
}

.admin-import-card-error-text {
  color: var(--admin-danger-text);
  margin: 0;
  font-size: .88rem;
}

.admin-markets-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
  display: grid;
}

.admin-market-card {
  min-width: 0;
  padding: calc(var(--dsm-admin-card-padding, 1rem) + .15rem);
  border: 1px solid var(--color-border);
  border-radius: calc(var(--dsm-admin-card-radius, 12px) + 4px);
  background: var(--admin-market-card-bg);
  box-shadow: var(--admin-market-card-shadow);
  gap: 1rem;
  display: grid;
}

.admin-market-card-head {
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
  display: flex;
}

.admin-market-card-heading {
  gap: .45rem;
  min-width: 0;
  display: grid;
}

.admin-market-card-heading h2 {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.03em;
  overflow-wrap: anywhere;
  margin: 0;
  font-size: 1.15rem;
}

.admin-market-card-slug {
  background: var(--admin-slug-bg);
  border-radius: 999px;
  width: fit-content;
  padding: .22rem .5rem;
  font-size: .82rem;
}

.admin-market-card-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  display: grid;
}

.admin-market-card-metric, .admin-market-card-schedule-item {
  min-width: 0;
  padding: calc(var(--dsm-admin-card-padding, 1rem) - .15rem) calc(var(--dsm-admin-card-padding, 1rem) - .1rem);
  border: 1px solid var(--admin-panel-border);
  border-radius: var(--dsm-admin-card-radius, 12px);
  background: var(--admin-panel-bg);
  gap: .3rem;
  display: grid;
}

.admin-market-card-metric span, .admin-market-card-schedule-item span {
  color: var(--color-muted);
  text-transform: uppercase;
  letter-spacing: .05em;
  font-size: .76rem;
  font-weight: 700;
}

.admin-market-card-metric strong, .admin-market-card-schedule-item strong {
  color: var(--color-ink);
  font-family: var(--font-heading), sans-serif;
  overflow-wrap: anywhere;
  font-size: .95rem;
  line-height: 1.4;
}

.admin-market-card-schedule {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  display: grid;
}

.admin-badge {
  text-transform: uppercase;
  letter-spacing: .04em;
  border-radius: 999px;
  padding: 2px 10px;
  font-size: .78rem;
  font-weight: 600;
  display: inline-block;
}

.admin-badge-published {
  background: var(--admin-success-bg);
  color: var(--admin-success-text);
}

.admin-badge-beta {
  background: var(--admin-warning-bg);
  color: var(--admin-warning-text);
}

.admin-badge-private {
  background: var(--admin-neutral-bg);
  color: var(--admin-neutral-text);
}

.admin-badge-succeeded {
  background: var(--admin-success-bg);
  color: var(--admin-success-text);
}

.admin-badge-running {
  background: var(--admin-info-bg);
  color: var(--admin-info-text);
}

.admin-badge-failed {
  background: var(--admin-danger-bg);
  color: var(--admin-danger-text);
}

.admin-btn {
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  cursor: pointer;
  font-size: .9rem;
  font-weight: 600;
  font-family: var(--font-heading), sans-serif;
  border: 1px solid #0000;
  padding: .55rem 1.25rem;
  text-decoration: none;
  transition: background .15s, opacity .15s;
  display: inline-block;
}

.admin-btn:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.admin-btn-primary {
  background: var(--color-accent);
  color: #fff;
}

.admin-btn-primary:hover:not(:disabled) {
  opacity: .9;
}

.admin-btn-secondary {
  background: var(--color-surface-strong);
  border-color: var(--color-border);
  color: var(--color-ink);
}

.admin-btn-secondary:hover:not(:disabled) {
  background: var(--admin-secondary-hover-bg);
}

.admin-btn-danger {
  background: color-mix(in srgb, var(--admin-danger-text) 84%, black 8%);
  color: #fff;
}

.admin-btn-danger:hover:not(:disabled) {
  opacity: .9;
}

.admin-btn-small {
  border: 1px solid var(--color-border);
  background: var(--color-surface-strong);
  color: var(--color-ink);
  padding: .3rem .75rem;
  font-size: .82rem;
}

.admin-btn-small:hover {
  background: var(--admin-hover-bg);
}

.admin-form {
  flex-direction: column;
  gap: 1.5rem;
  min-width: 0;
  display: flex;
}

.admin-fieldset {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  margin: 0;
  padding: 1.25rem 1.5rem;
}

.admin-fieldset legend {
  font-family: var(--font-heading), sans-serif;
  padding: 0 .5rem;
  font-size: .95rem;
  font-weight: 600;
}

.admin-label {
  color: var(--color-ink);
  flex-direction: column;
  gap: 4px;
  margin-bottom: .75rem;
  font-size: .88rem;
  font-weight: 500;
  display: flex;
}

.admin-label-inline {
  flex-direction: row;
  align-items: center;
  gap: .5rem;
}

.admin-input, .admin-text-input, .admin-textarea {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  background: var(--admin-control-bg);
  color: var(--color-ink);
  padding: .5rem .75rem;
  font-family: inherit;
  font-size: .9rem;
}

.admin-input:focus, .admin-text-input:focus, .admin-textarea:focus {
  outline: 2px solid var(--form-control-focus-outline);
  outline-offset: 1px;
  border-color: color-mix(in srgb, var(--form-control-focus-outline) 72%, var(--form-control-border));
}

.admin-input:disabled, .admin-text-input:disabled, .admin-textarea:disabled {
  background: var(--admin-control-disabled-bg);
  color: var(--admin-control-disabled-text);
}

.admin-input-mono {
  font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
  font-size: .82rem;
}

.admin-textarea {
  resize: vertical;
  min-height: 11rem;
}

.admin-primary-button {
  min-height: var(--dsm-button-min-height, 48px);
  padding: 0 var(--dsm-button-padding-inline, 18px);
  background: var(--color-accent);
  color: #fffaf4;
  font-family: var(--font-heading), sans-serif;
  cursor: pointer;
  border: 1px solid #0000;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  font-size: .92rem;
  font-weight: 700;
  transition: opacity .16s, transform .16s;
  display: inline-flex;
}

.admin-primary-button:hover:not(:disabled), .admin-primary-button:focus-visible:not(:disabled) {
  opacity: .92;
  transform: translateY(-1px);
}

.admin-primary-button:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.admin-help-text {
  color: var(--color-muted);
  margin: .45rem 0 0;
  font-size: .82rem;
  line-height: 1.55;
}

.admin-plan-grid {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1rem;
  margin-top: .75rem;
  display: grid;
}

.admin-plan-card {
  padding: calc(var(--dsm-admin-card-padding, 1rem) - .1rem);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  background: var(--admin-panel-bg);
  gap: .7rem;
  display: grid;
}

.admin-plan-card h3 {
  font-family: var(--font-heading), sans-serif;
  margin: 0;
  font-size: .95rem;
}

.admin-plan-capabilities {
  gap: .15rem;
  display: grid;
}

.admin-plan-capabilities .admin-label {
  margin-bottom: 0;
  font-weight: 400;
}

.admin-grid-row {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 120px), 1fr));
  gap: 1rem;
  display: grid;
}

.admin-grid-row > * {
  min-width: 0;
}

.admin-form-actions {
  align-items: center;
  gap: 1rem;
  display: flex;
}

.admin-page-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  display: flex;
}

.admin-inline-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin-top: .75rem;
  display: flex;
}

.admin-helper-panel {
  padding: var(--dsm-admin-card-padding, 1rem);
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  background: var(--admin-panel-bg);
  gap: .75rem;
  margin-top: .9rem;
  display: grid;
}

.admin-test-account-form .admin-fieldset, .admin-test-account-summary {
  min-width: 0;
}

.admin-test-account-summary-row {
  grid-template-columns: minmax(8.5rem, max-content) minmax(0, 1fr);
  align-items: baseline;
  gap: .35rem .75rem;
  min-width: 0;
  margin: 0;
  line-height: 1.45;
  display: grid;
}

.admin-test-account-summary-row span {
  overflow-wrap: anywhere;
  word-break: break-word;
  min-width: 0;
}

.admin-helper-title {
  font-family: var(--font-heading), sans-serif;
  color: var(--color-ink);
  font-size: .88rem;
  font-weight: 700;
}

.admin-placeid-row {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: flex-end;
  gap: .75rem;
  display: grid;
}

.admin-placeid-field {
  margin-bottom: 0;
}

.admin-inline-help-text {
  margin-top: 0;
}

.admin-inline-count {
  background: var(--color-surface-strong);
  border: 1px solid var(--color-border);
  color: var(--color-ink);
  border-radius: 999px;
  align-items: center;
  padding: .2rem .55rem;
  font-size: .82rem;
  font-weight: 600;
  display: inline-flex;
}

.admin-market-candidates-sort, .admin-market-candidates-filter {
  margin-bottom: 0;
}

.admin-market-candidates-toolbar {
  gap: .75rem;
  display: grid;
}

.admin-market-candidates-controls {
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .75rem;
  display: flex;
}

.admin-market-candidates-filter .admin-input {
  width: 7rem;
}

.admin-market-candidates-grid {
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: .9rem;
  margin-top: 1rem;
  display: grid;
}

.admin-market-candidate-card {
  padding: var(--dsm-admin-card-padding, 1rem);
  border: 1px solid var(--admin-panel-border);
  border-radius: var(--dsm-admin-card-radius, 12px);
  background: var(--admin-panel-bg);
  gap: .75rem;
  display: grid;
}

.admin-market-candidate-card-head {
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
  display: flex;
}

.admin-market-candidate-card-head strong {
  font-size: .96rem;
  line-height: 1.35;
}

.admin-market-candidate-subline {
  color: var(--color-muted);
  margin-top: .3rem;
  font-size: .8rem;
  font-weight: 500;
}

.admin-market-candidate-stats {
  flex-wrap: wrap;
  gap: .5rem;
  display: flex;
}

.admin-table-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  display: flex;
}

@media (max-width: 720px) {
  .admin-placeid-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .admin-market-candidates-controls {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-market-candidates-sort, .admin-market-candidates-filter {
    width: 100%;
  }

  .admin-market-candidates-filter {
    justify-content: stretch;
  }

  .admin-market-candidates-sort .admin-input, .admin-market-candidates-filter .admin-input {
    width: 100%;
  }

  .admin-market-candidate-card-head {
    flex-direction: column;
  }

  .admin-market-candidate-card .admin-table-actions {
    width: 100%;
  }

  .admin-market-candidate-card .admin-table-actions .admin-btn {
    justify-content: center;
    width: 100%;
  }
}

@media (max-width: 640px) {
  .admin-test-account-form {
    gap: 1rem;
  }

  .admin-test-account-form .admin-fieldset {
    padding: 1rem;
  }

  .admin-test-account-form .admin-input {
    width: 100%;
    min-width: 0;
  }

  .admin-test-account-form .admin-form-actions {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: .65rem;
    display: grid;
  }

  .admin-test-account-form .admin-btn {
    text-align: center;
    width: 100%;
    min-width: 0;
  }

  .admin-test-account-summary-row {
    grid-template-columns: 1fr;
    gap: .15rem;
  }

  .admin-test-account-form .admin-plan-capabilities {
    gap: .45rem;
  }

  .admin-test-account-form .admin-label-inline {
    align-items: flex-start;
  }
}

.admin-alert {
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  border: 1px solid #0000;
  padding: .75rem 1rem;
  font-size: .9rem;
}

.admin-alert-error {
  background: var(--admin-danger-bg);
  border-color: var(--admin-danger-border);
  color: var(--admin-danger-text);
}

.admin-alert-success {
  background: var(--admin-success-bg);
  border-color: color-mix(in srgb, var(--admin-success-text) 28%, transparent);
  color: var(--admin-success-text);
}

.admin-helper-panel--danger {
  border-color: var(--admin-danger-border);
  background: color-mix(in srgb, var(--admin-danger-bg) 64%, var(--admin-panel-bg));
}

.admin-form-field {
  gap: .45rem;
  min-width: 0;
  display: grid;
}

.admin-form-field--spaced {
  margin-bottom: 1rem;
}

.admin-card--spaced, .admin-space-bottom-md {
  margin-bottom: 1.5rem;
}

.admin-space-bottom-sm {
  margin-bottom: .75rem;
}

.admin-space-top-sm {
  margin-top: 1rem;
}

.admin-space-top-md {
  margin-top: 1.5rem;
}

.admin-space-top-lg {
  margin-top: 2rem;
}

.admin-field-control {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.admin-choice-input {
  margin-right: .5rem;
}

.admin-copy-reset {
  margin: 0;
}

.admin-copy-stack-sm {
  margin: 0 0 .5rem;
}

.admin-copy-stack-sm:last-child {
  margin-bottom: 0;
}

.admin-copy-stack-md {
  margin: 0 0 .75rem;
}

.admin-copy-stack-md:last-child {
  margin-bottom: 0;
}

.admin-form-label {
  min-height: 1.2rem;
  color: var(--color-ink);
  font-family: var(--font-heading), sans-serif;
  letter-spacing: .05em;
  text-transform: uppercase;
  align-items: center;
  font-size: .76rem;
  font-weight: 700;
  display: inline-flex;
}

.admin-form-label--compact {
  margin-bottom: .5rem;
}

.admin-form-label--spaced {
  margin-bottom: .75rem;
}

.admin-form-label--metric {
  overflow-wrap: anywhere;
  margin-bottom: .35rem;
  line-height: 1.25;
}

.admin-helper-panel--min-width-0 {
  min-width: 0;
}

.admin-selection-panel {
  padding: var(--dsm-admin-card-padding, 1rem);
  border: 1px solid var(--admin-panel-border);
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  background: color-mix(in srgb, var(--admin-panel-bg) 92%, transparent);
  gap: .75rem;
  display: grid;
}

.admin-ai-packs-grid {
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 1rem;
  margin-top: .75rem;
  display: grid;
}

.admin-ai-pack-card {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  background: var(--admin-card-bg);
  flex-direction: column;
  gap: .75rem;
  padding: 1rem;
  display: flex;
}

.admin-ai-pack-card__name {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.01em;
  color: var(--color-ink);
  margin: 0;
  font-size: .9rem;
  font-weight: 700;
}

.admin-form-error, .admin-form-success {
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  border: 1px solid #0000;
  margin: 0;
  padding: .75rem .9rem;
  line-height: 1.5;
}

.admin-form-error {
  background: var(--admin-danger-bg);
  border-color: var(--admin-danger-border);
  color: var(--admin-danger-text);
}

.admin-form-success {
  background: var(--admin-success-bg);
  border-color: color-mix(in srgb, var(--admin-success-text) 28%, transparent);
  color: var(--admin-success-text);
}

.admin-metric-value {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 600;
}

.admin-data-table-wrap {
  overflow-x: auto;
}

.admin-data-table {
  border-collapse: collapse;
  width: 100%;
}

.admin-data-table thead tr {
  text-align: left;
  border-bottom: 1px solid var(--admin-border);
}

.admin-data-table :is(th, td) {
  border-bottom: 1px solid var(--admin-border);
  vertical-align: top;
  text-align: left;
  padding: .5rem;
}

.admin-data-table tbody tr:last-child :is(th, td) {
  border-bottom: 0;
}

@media (max-width: 640px) {
  .admin-data-table--cards {
    border-collapse: separate;
    display: block;
  }

  .admin-data-table--cards thead {
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    position: absolute;
    overflow: hidden;
  }

  .admin-data-table--cards tbody, .admin-data-table--cards tr {
    width: 100%;
    display: block;
  }

  .admin-data-table--cards tr {
    background: var(--color-surface-strong);
    border: 1px solid var(--color-border);
    border-radius: var(--dsm-admin-card-radius-compact, 10px);
    margin-bottom: .75rem;
    padding: .75rem .9rem;
  }

  .admin-data-table--cards th[scope="row"], .admin-data-table--cards td {
    border-bottom: 1px dashed var(--color-border);
    text-align: right;
    overflow-wrap: anywhere;
    word-break: break-word;
    justify-content: space-between;
    align-items: baseline;
    gap: .75rem;
    padding: .35rem 0;
    display: flex;
  }

  .admin-data-table--cards tr > :last-child {
    border-bottom: 0;
  }

  .admin-data-table--cards th[scope="row"] {
    font-family: var(--font-heading), sans-serif;
    text-transform: none;
    letter-spacing: 0;
    color: var(--color-primary, inherit);
    text-align: left;
    border-bottom: 1px solid var(--color-border);
    flex-wrap: wrap;
    justify-content: flex-start;
    margin-bottom: .25rem;
    padding-bottom: .5rem;
    font-size: .95rem;
  }

  .admin-data-table--cards td:before {
    content: attr(data-label);
    font-family: var(--font-heading), sans-serif;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted);
    text-align: left;
    flex: none;
    font-size: .7rem;
  }
}

.admin-list-tight {
  margin: 0;
  padding-left: 1.25rem;
}

.admin-list-tight li + li {
  margin-top: .35rem;
}

.admin-empty {
  color: var(--color-muted);
  font-style: italic;
}

.admin-loading {
  color: var(--color-muted);
}

.admin-filter-bar {
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
  display: flex;
}

@media (max-width: 768px) {
  .admin-editorial-evolution-row, .admin-shell {
    grid-template-columns: 1fr;
  }

  .admin-sidebar {
    border-right: none;
    border-bottom: 1px solid var(--color-border);
    padding: var(--dsm-admin-card-padding, 1rem);
  }

  .admin-nav-list {
    flex-flow: wrap;
    gap: .5rem;
  }

  .admin-main {
    padding: calc(var(--dsm-admin-main-padding-block, 1.25rem) + .25rem) var(--dsm-admin-main-padding-inline, 1rem);
  }

  .admin-import-card {
    padding: var(--dsm-admin-card-padding, .9rem);
  }

  .admin-import-card-header {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-import-card-grid, .admin-import-card-metrics {
    grid-template-columns: 1fr;
  }

  .admin-market-card-head {
    flex-direction: column;
  }

  .admin-market-card-metrics, .admin-market-card-schedule {
    grid-template-columns: 1fr;
  }

  .admin-market-card .admin-table-actions .admin-btn {
    text-align: center;
    width: 100%;
  }
}

html[data-theme="dark"] {
  --color-accent-soft: color-mix(in srgb, var(--brand-copper) 26%, transparent);
  --color-rating-bar: var(--dsm-viz-seq-3);
  --button-primary-bg: color-mix(in srgb, var(--brand-amber) 88%, white 12%);
  --button-primary-text: #16212b;
  --button-primary-border: color-mix(in srgb, var(--brand-amber) 70%, #16212b 30%);
  --mobile-dock-border: #f6f1e824;
  --mobile-dock-bg: #131e27f0;
  --mobile-dock-shadow: 0 18px 38px #0000004d;
  --admin-hover-bg: #f6f1e814;
  --admin-code-bg: #f6f1e812;
  --admin-code-border: #f6f1e81f;
  --admin-border: #f6f1e81f;
  --admin-panel-bg: #131e27d6;
  --admin-panel-border: #f6f1e81f;
  --admin-card-bg: linear-gradient(180deg, #121b24f5, #16212be6);
  --admin-card-shadow: 0 18px 36px #00000038;
  --admin-market-card-bg: linear-gradient(180deg, #121b24f5, #1a2732e6);
  --admin-market-card-shadow: 0 20px 38px #0000003d;
  --admin-chip-bg: #131e27eb;
  --admin-chip-border: #f6f1e81f;
  --admin-slug-bg: #f6f1e814;
  --admin-setting-chip-bg: #b86e4b2e;
  --admin-setting-chip-border: #b86e4b57;
  --form-control-bg: color-mix(in srgb, var(--brand-petrol) 22%, #080d14f5);
  --form-control-border: #f6f1e84d;
  --form-control-placeholder: #f6f1e89e;
  --form-control-focus-outline: color-mix(in srgb, var(--brand-amber) 86%, white 14%);
  --admin-control-bg: var(--form-control-bg);
  --admin-control-disabled-bg: #f6f1e814;
  --admin-control-disabled-text: #f6f1e894;
  --admin-secondary-hover-bg: #f6f1e81a;
  --admin-warning-bg: #9a521333;
  --admin-warning-border: #fdba7447;
  --admin-warning-text: #ffd1a3;
  --admin-danger-bg: #991b1b2e;
  --admin-danger-border: #f8717147;
  --admin-danger-text: #fecaca;
  --admin-success-bg: #065f4638;
  --admin-success-text: #a7f3d0;
  --admin-info-bg: #1e40af33;
  --admin-info-text: #bfdbfe;
  --admin-neutral-bg: #6b728033;
  --admin-neutral-text: #d1d5db;
  --account-role-card-bg: #131e27c7;
  --account-role-card-border: #f6f1e824;
  --account-admin-role-card-bg: linear-gradient(135deg, #2e7d6b42, #0e1d22e6);
  --account-admin-role-card-border: #6fc9b257;
}

.market-ask-bar-input:focus-visible, .dataviz-donut-segment:focus-visible, .dataviz-donut-legend-button:focus-visible, .weather-hotspot-list-item:focus-visible, .distribution-row:focus-visible {
  outline: 2px solid var(--brand-signal);
  outline-offset: 3px;
}

.dataviz-card {
  padding: var(--dsm-secondary-card-padding, 22px);
  border: 1px solid var(--dsm-glass-border);
  border-radius: var(--dsm-secondary-card-radius, 24px);
  background: var(--dsm-glass-bg);
  box-shadow: var(--brand-shadow-soft);
  -webkit-backdrop-filter: blur(var(--dsm-glass-blur));
  backdrop-filter: blur(var(--dsm-glass-blur));
}

.dataviz-card-label {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin-bottom: 10px;
  font-size: .76rem;
  display: inline-flex;
}

.dataviz-delta-up {
  color: var(--dsm-trend-up);
}

.dataviz-delta-down {
  color: var(--dsm-trend-down);
}

.dataviz-delta-flat {
  color: var(--dsm-trend-flat);
}

.dataviz-stat-card {
  gap: 10px;
  display: grid;
}

.dataviz-stat-card-head {
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  display: flex;
}

.dataviz-stat-card-value {
  font-family: var(--font-heading), sans-serif;
  font-size: clamp(1.9rem, 4vw, 3.3rem);
  line-height: .95;
}

.dataviz-stat-card-delta, .dataviz-gauge-caption, .market-ask-bar-hint, .market-ask-bar-answer {
  color: var(--color-muted);
  margin: 0;
}

.dataviz-stat-card-body {
  gap: 12px;
  display: grid;
}

.dataviz-sparkline {
  width: 100%;
  height: var(--dsm-chart-height-sparkline, 96px);
}

.dataviz-sparkline-line, .dataviz-line-chart-line {
  stroke: var(--dsm-viz-cat-1);
  stroke-linecap: round;
  stroke-linejoin: round;
  animation: 1s both dsm-draw-line;
}

.dataviz-line-chart-line {
  stroke-width: 3px;
}

.dataviz-line-chart-grid {
  stroke: var(--color-border);
  stroke-width: .8px;
}

.dataviz-line-chart-point {
  fill: var(--dsm-viz-cat-1);
  stroke: var(--color-surface-strong);
  stroke-width: 1.2px;
}

.dataviz-line-chart-reference-point {
  fill: var(--dsm-viz-seq-3);
  stroke: var(--color-surface-strong);
  stroke-width: 1.5px;
}

.dataviz-line-chart-value-label, .dataviz-line-chart-reference-label {
  fill: var(--color-ink);
  font-family: var(--font-heading), sans-serif;
  paint-order: stroke;
  stroke: var(--color-surface-strong);
  stroke-width: 2px;
  font-size: 8px;
  font-weight: 700;
}

.dataviz-line-chart-reference-label {
  fill: var(--dsm-viz-seq-3);
  font-size: 7px;
}

.dataviz-line-chart-reference-copy {
  color: var(--color-muted);
  align-items: center;
  gap: 7px;
  margin: 0;
  font-size: .84rem;
  display: flex;
}

.dataviz-line-chart-reference-copy span {
  background: var(--dsm-viz-seq-3);
  border-radius: 999px;
  flex: none;
  width: 10px;
  height: 10px;
}

.dataviz-line-chart-reference-copy strong {
  color: var(--color-ink);
}

.dataviz-line-chart-svg {
  width: 100%;
  height: auto;
}

.dataviz-line-chart-tick, .dataviz-line-chart-y-tick {
  fill: var(--color-muted);
  font-size: 10px;
}

.dataviz-gauge {
  text-align: center;
  justify-items: center;
  display: grid;
  position: relative;
}

.dataviz-gauge-svg {
  width: min(220px, 100%);
  height: auto;
}

.dataviz-gauge-track, .dataviz-donut-track {
  stroke: color-mix(in srgb, var(--brand-ink) 10%, transparent);
  fill: none;
}

.dataviz-gauge-progress {
  transition: stroke-dashoffset .32s;
}

.dataviz-gauge-center {
  justify-items: center;
  display: grid;
  position: absolute;
  inset: 46% 0 auto;
  transform: translateY(-50%);
}

.dataviz-gauge-center strong {
  font-family: var(--font-heading), sans-serif;
  font-size: 2.6rem;
  line-height: 1;
}

.dataviz-donut-layout, .dataviz-radar-layout {
  align-items: center;
  gap: 16px;
  display: grid;
}

.dataviz-donut-svg, .dataviz-radar-svg {
  width: 100%;
  max-width: 260px;
  height: auto;
  margin: 0 auto;
}

.dataviz-donut-segment, .dataviz-bar-fill, .distribution-bar-fill, .history-activity-bar {
  transition: transform .22s, opacity .22s, width .72s cubic-bezier(.2, .8, .2, 1);
}

.dataviz-donut-segment {
  cursor: pointer;
  opacity: .76;
}

.dataviz-donut-segment-active, .dataviz-donut-segment:hover {
  opacity: 1;
  transform: scale(1.02);
}

.dataviz-donut-value, .dataviz-donut-label, .dataviz-radar-axis-label {
  fill: var(--color-ink);
}

.dataviz-donut-value {
  font-family: var(--font-heading), sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
}

.dataviz-donut-label {
  font-size: .75rem;
}

.dataviz-donut-legend, .dataviz-radar-legend {
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.dataviz-donut-legend-button {
  border: 1px solid color-mix(in srgb, var(--brand-border) 90%, transparent);
  background: color-mix(in srgb, var(--dsm-glass-bg) 88%, transparent);
  width: 100%;
  color: var(--color-ink);
  cursor: pointer;
  border-radius: 16px;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  display: flex;
}

.dataviz-donut-legend-button-active {
  border-color: var(--dsm-viz-cat-1);
}

.dataviz-donut-legend-swatch, .dataviz-radar-legend-dot {
  border-radius: 999px;
  flex-shrink: 0;
  width: 12px;
  height: 12px;
}

.dataviz-bar-chart-list, .dataviz-bar-chart {
  gap: 14px;
  display: grid;
}

.dataviz-bar-row {
  gap: 8px;
  display: grid;
}

.dataviz-bar-row-head {
  justify-content: space-between;
  gap: 12px;
  font-size: .95rem;
  display: flex;
}

.dataviz-bar-track {
  background: color-mix(in srgb, var(--brand-ink) 8%, transparent);
  border-radius: 999px;
  height: 12px;
  overflow: hidden;
}

.dataviz-bar-fill {
  border-radius: inherit;
  height: 100%;
  animation: .8s cubic-bezier(.2, .8, .2, 1) both dsm-grow-width;
}

.dataviz-radar-grid, .dataviz-radar-axis {
  stroke: color-mix(in srgb, var(--brand-ink) 18%, transparent);
}

.dataviz-radar-grid {
  stroke-dasharray: 4 6;
}

.dataviz-radar-shape {
  stroke-width: 2.5px;
}

.dataviz-heatmap-grid {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
  display: grid;
}

.dataviz-heatmap-cell {
  aspect-ratio: 1;
  border-radius: 9px;
  min-height: 18px;
}

.dataviz-heatmap-cell[data-sentiment="favorable"] {
  box-shadow: inset 0 0 0 2px var(--dsm-viz-seq-1);
}

.dataviz-heatmap-cell[data-sentiment="neutral"] {
  box-shadow: inset 0 0 0 2px var(--color-border);
}

.dataviz-heatmap-cell[data-sentiment="unfavorable"] {
  box-shadow: inset 0 0 0 2px var(--dsm-viz-seq-5);
}

.dataviz-heatmap-cell-label, .dataviz-heatmap-cell-value, .dataviz-heatmap-cell-sentiment {
  display: none;
}

.dataviz-heatmap-key {
  color: var(--color-muted);
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 6px 16px;
  font-size: .72rem;
  display: flex;
}

.dataviz-heatmap-key-sentiment {
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  display: inline-flex;
}

.dataviz-heatmap-key-sentiment i {
  border: 2px solid var(--color-border);
  border-radius: 3px;
  width: 9px;
  height: 9px;
  margin-left: 4px;
}

.dataviz-heatmap-key-sentiment i[data-sentiment="favorable"] {
  border-color: var(--dsm-viz-seq-1);
}

.dataviz-heatmap-key-sentiment i[data-sentiment="unfavorable"] {
  border-color: var(--dsm-viz-seq-5);
}

@media (max-width: 767px) {
  .dataviz-heatmap-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
  }

  .dataviz-heatmap-cell {
    aspect-ratio: auto;
    color: #16212b;
    text-align: center;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2px;
    min-height: 68px;
    padding: 3px;
    display: flex;
  }

  .dataviz-heatmap-cell-label, .dataviz-heatmap-cell-value, .dataviz-heatmap-cell-sentiment {
    background: #ffffffb8;
    border-radius: 4px;
    max-width: 100%;
    line-height: 1.1;
    display: block;
  }

  .dataviz-heatmap-cell-label {
    padding: 2px;
    font-size: .62rem;
  }

  .dataviz-heatmap-cell-value {
    min-width: 1.35rem;
    padding: 2px 4px;
    font-size: .75rem;
  }

  .dataviz-heatmap-cell-sentiment {
    padding: 2px;
    font-size: .55rem;
  }

  .dataviz-heatmap-key {
    display: grid;
  }
}

.market-ask-bar {
  padding: var(--dsm-secondary-card-padding, 22px);
  border: 1px solid var(--dsm-glass-border);
  border-radius: var(--dsm-secondary-card-radius, 24px);
  background: var(--dsm-glass-bg);
  -webkit-backdrop-filter: blur(var(--dsm-glass-blur));
  backdrop-filter: blur(var(--dsm-glass-blur));
  gap: 10px;
  display: grid;
}

.market-ask-bar-label {
  font-family: var(--font-heading), sans-serif;
  font-size: .9rem;
}

.market-ask-bar-field {
  flex-wrap: wrap;
  gap: 12px;
  display: flex;
}

.market-ask-bar-input {
  min-height: var(--dsm-control-min-height, 46px);
  border: 1px solid var(--form-control-border);
  border-radius: var(--dsm-control-radius, 14px);
  background: var(--form-control-bg);
  color: var(--color-ink);
  flex: 280px;
  padding: 0 16px;
}

.market-ask-bar-answer {
  background: color-mix(in srgb, var(--dsm-viz-cat-1) 10%, transparent);
  border-radius: 16px;
  padding: 12px 14px;
}

.mydsm-dashboard-grid, .mydsm-dashboard-hero, .mydsm-kpi-grid, .establishment-dataviz-grid, .favorite-comparison-dataviz, .favorite-comparison-ranking, .favorite-comparison-grid {
  gap: 18px;
  display: grid;
}

.mydsm-page, .mydsm-page > *, .mydsm-page .mydsm-dashboard-grid > *, .mydsm-page .mydsm-dashboard-hero > *, .mydsm-page .mydsm-kpi-grid > * {
  min-width: 0;
  max-width: 100%;
}

.mydsm-dashboard-hero {
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, .9fr);
  align-items: stretch;
  margin-bottom: 20px;
}

.mydsm-kpi-grid, .establishment-dataviz-grid, .favorite-comparison-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mydsm-dashboard-tools {
  gap: 18px;
  margin-bottom: 22px;
  display: grid;
}

.mydsm-toolbar-meta {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  display: flex;
}

.mydsm-toolbar-pills {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
}

.mydsm-toolbar-pills .pill {
  background: color-mix(in srgb, var(--brand-petrol) 12%, transparent);
}

.dataviz-comparison-note {
  color: var(--color-muted);
  margin: 0;
}

.establishment-topics {
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.establishment-topic-chip {
  min-height: var(--dsm-chip-min-height, 34px);
  border: 1px solid color-mix(in srgb, var(--brand-petrol) 16%, transparent);
  border-radius: var(--dsm-chip-radius, 999px);
  background: color-mix(in srgb, var(--dsm-glass-bg) 88%, transparent);
  color: var(--color-ink);
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  display: inline-flex;
}

.establishment-topic-chip-count {
  color: var(--color-muted);
  font-size: .82rem;
}

.distribution-shell {
  position: relative;
}

.distribution-row {
  align-items: center;
  gap: 14px;
  position: relative;
}

.distribution-bar-track {
  background: color-mix(in srgb, var(--brand-ink) 7%, transparent);
  position: relative;
  overflow: hidden;
}

.distribution-bar-fill {
  background: linear-gradient(90deg, var(--dsm-viz-cat-2), var(--dsm-viz-cat-1));
  animation: .82s cubic-bezier(.2, .8, .2, 1) both dsm-grow-width;
}

.distribution-row-tooltip {
  background: var(--dsm-glass-bg);
  border: 1px solid var(--dsm-glass-border);
  color: var(--color-ink);
  opacity: 0;
  pointer-events: none;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: .72rem;
  transition: opacity .18s;
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
}

.distribution-row:hover .distribution-row-tooltip, .distribution-row:focus-within .distribution-row-tooltip, .distribution-row:focus-visible .distribution-row-tooltip {
  opacity: 1;
}

.weather-hotspot-card {
  background: var(--dsm-glass-bg);
  border-color: var(--dsm-glass-border);
  -webkit-backdrop-filter: blur(var(--dsm-glass-blur));
  backdrop-filter: blur(var(--dsm-glass-blur));
}

.weather-hotspot-collapsible {
  gap: 0;
}

.weather-hotspot-collapsible > summary {
  cursor: pointer;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  list-style: none;
  display: flex;
}

.weather-hotspot-collapsible > summary::-webkit-details-marker {
  display: none;
}

.weather-hotspot-collapsible-copy {
  gap: 8px;
  min-width: 0;
  display: grid;
}

.weather-hotspot-collapsible-copy h3 {
  margin: 0;
}

.weather-hotspot-collapsible-copy p {
  color: var(--color-muted);
  margin: 0;
}

.weather-hotspot-collapsible-meta {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  display: flex;
}

.weather-hotspot-collapsible-body {
  gap: 16px;
  padding-top: 18px;
  display: grid;
}

.weather-hotspot-toggle-label-close, details[open] .weather-hotspot-toggle-label-open {
  display: none;
}

details[open] .weather-hotspot-toggle-label-close {
  display: inline-flex;
}

.meteo-day-nav {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  display: flex;
}

.button-icon {
  border-radius: var(--dsm-panel-radius, 12px);
  border: 1px solid color-mix(in srgb, var(--brand-ink) 14%, transparent);
  cursor: pointer;
  width: 40px;
  height: 40px;
  color: inherit;
  background: none;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-size: 18px;
  text-decoration: none;
  transition: background .15s;
  display: inline-flex;
}

.button-icon:hover {
  background: color-mix(in srgb, var(--brand-ink) 6%, transparent);
}

.button-icon-disabled {
  opacity: .35;
  cursor: not-allowed;
  pointer-events: none;
}

.meteo-day-nav-picker {
  flex-direction: column;
  flex: 1;
  gap: 2px;
  min-width: 140px;
  display: flex;
}

.meteo-day-nav-picker-label {
  opacity: .55;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding-left: 2px;
  font-size: 11px;
}

.meteo-day-input {
  border: 1px solid color-mix(in srgb, var(--brand-ink) 14%, transparent);
  color: inherit;
  cursor: pointer;
  background: none;
  border-radius: 10px;
  width: 100%;
  padding: 6px 10px;
  font-size: 15px;
  font-weight: 600;
}

.meteo-day-input::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: .6;
}

.meteo-day-nav-last {
  flex-shrink: 0;
  align-items: center;
  gap: 6px;
  display: inline-flex;
}

.meteo-day-nav-last-icon {
  display: none;
}

@media (max-width: 480px) {
  .meteo-day-nav-last-label {
    display: none;
  }

  .meteo-day-nav-last-icon {
    display: inline;
  }

  .meteo-day-nav {
    gap: 6px;
  }
}

.weather-hotspot-svg {
  border-radius: var(--dsm-panel-radius, 28px);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand-ink) 8%, transparent);
  overflow: hidden;
}

.weather-hotspot-tooltip, .weather-hotspot-list-item, .weather-hotspot-status, .weather-hotspot-legend, .weather-hotspot-focus {
  background: color-mix(in srgb, var(--dsm-glass-bg) 94%, transparent);
  border: 1px solid var(--dsm-glass-border);
  -webkit-backdrop-filter: blur(var(--dsm-glass-blur));
  backdrop-filter: blur(var(--dsm-glass-blur));
}

.weather-hotspot-legend {
  border-radius: 18px;
  padding: 12px 14px;
}

.weather-hotspot-legend-cool:before {
  background: var(--dsm-viz-seq-1);
}

.weather-hotspot-legend-warm:before {
  background: var(--dsm-viz-seq-3);
}

.weather-hotspot-legend-hot:before {
  background: var(--dsm-viz-seq-5);
}

.weather-hotspot-list-item-active {
  border-color: var(--dsm-viz-cat-1);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--dsm-viz-cat-1) 24%, transparent);
}

.weather-hotspot-tooltip {
  border-radius: 20px;
}

.weather-hotspot-status {
  border-radius: 16px;
}

.favorite-comparison-stack {
  gap: 20px;
}

.favorite-comparison-shell {
  gap: 18px;
  display: grid;
}

.favorite-comparison-score-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.competitor-comparison-stat-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

@media (max-width: 1024px) {
  .competitor-comparison-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .competitor-comparison-stat-grid {
    grid-template-columns: 1fr;
  }
}

@keyframes dsm-grow-width {
  from {
    width: 0;
  }
}

@keyframes dsm-draw-line {
  from {
    stroke-dasharray: 1;
    stroke-dashoffset: 1px;
  }

  to {
    stroke-dasharray: 1;
    stroke-dashoffset: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  body, .dataviz-sparkline-line, .dataviz-line-chart-line, .dataviz-bar-fill, .distribution-bar-fill, .history-activity-bar, .dataviz-donut-segment, .dataviz-gauge-progress {
    transition: none !important;
    animation: none !important;
  }
}

@media (max-width: 1024px) {
  .mydsm-page .hero, .mydsm-page .card-grid, .mydsm-page .stat-grid, .mydsm-page .detail-section-grid, .mydsm-dashboard-hero, .mydsm-kpi-grid, .establishment-dataviz-grid, .favorite-comparison-grid, .favorite-comparison-score-grid, .dataviz-donut-layout, .dataviz-radar-layout {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 40.0625rem) and (max-width: 1024px) {
  .mydsm-page .filter-form-compare {
    grid-template-columns: 1fr 1fr;
  }

  .mydsm-page .filter-form-compare .filter-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

.support-page {
  gap: 2rem;
  display: grid;
}

.support-page-header {
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  display: flex;
}

.support-page-title {
  color: var(--color-ink);
  font-family: var(--font-heading), sans-serif;
  margin: 0;
  font-size: clamp(2rem, 6vw, 3.5rem);
  line-height: 1;
}

.support-layout {
  flex-direction: column;
  gap: 2rem;
  display: flex;
}

.support-section {
  background: var(--color-surface-strong);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 2rem;
}

.section-title {
  color: var(--color-ink);
  margin: 0 0 .5rem;
  font-size: 1.5rem;
  font-weight: 600;
}

.section-description {
  color: var(--color-muted);
  margin: 0 0 1.5rem;
}

.support-form {
  flex-direction: column;
  gap: 1.5rem;
  display: flex;
}

.form-group {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.form-label {
  color: var(--color-ink);
  font-weight: 500;
}

.form-select, .form-input, .form-textarea {
  border: 1px solid var(--form-control-border);
  background: var(--form-control-bg);
  color: var(--color-ink);
  border-radius: 6px;
  padding: .75rem;
  font-family: inherit;
  font-size: 1rem;
}

.form-select:focus, .form-input:focus, .form-textarea:focus {
  outline: 2px solid var(--form-control-focus-outline);
  outline-offset: 2px;
  border-color: var(--color-accent);
}

.form-textarea {
  resize: vertical;
  min-height: 120px;
}

.form-hint {
  color: var(--color-muted);
  font-size: .875rem;
}

.form-actions {
  gap: 1rem;
  margin-top: .5rem;
  display: flex;
}

.support-requests-list {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 1.25rem;
  display: grid;
}

.support-request-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  min-width: 0;
  height: 100%;
  box-shadow: 0 1px 2px color-mix(in srgb, var(--color-ink) 8%, transparent);
  border-radius: 12px;
  flex-direction: column;
  padding: 1.5rem;
  transition: border-color .18s, box-shadow .18s, transform .18s;
  display: flex;
}

.support-request-card:hover {
  border-color: color-mix(in srgb, var(--color-accent) 35%, var(--color-border));
  box-shadow: var(--shadow-soft);
  transform: translateY(-2px);
}

.support-request-header {
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
  margin-bottom: 1rem;
  display: flex;
}

.support-request-meta {
  flex-wrap: wrap;
  gap: .5rem;
  display: flex;
}

.support-request-date {
  color: var(--color-muted);
  text-align: right;
  flex: none;
  font-size: .875rem;
}

.support-request-subject {
  color: var(--color-ink);
  margin: 0 0 .75rem;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
}

.support-request-description {
  color: var(--color-muted);
  overflow-wrap: anywhere;
  margin: 0;
  line-height: 1.6;
}

.support-request-details {
  border-top: 1px solid var(--color-border);
  gap: .5rem;
  margin-top: auto;
  padding-top: 1rem;
  display: grid;
}

.support-request-detail {
  color: var(--color-muted);
  overflow-wrap: anywhere;
  font-size: .875rem;
}

.support-request-link {
  color: var(--color-accent);
  text-decoration: none;
}

.support-request-link:hover {
  text-decoration: underline;
}

.support-sync-note {
  color: var(--color-muted);
  margin: 0;
  font-size: .875rem;
}

.support-conversation {
  gap: .75rem;
  margin-top: 1.25rem;
  display: grid;
}

.support-conversation h4 {
  color: var(--color-ink);
  margin: 0;
  font-size: 1rem;
}

.support-comment {
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-accent);
  background: var(--color-surface-strong);
  border-radius: 6px;
  padding: .875rem;
}

.support-comment-admin {
  border-left-color: var(--color-success, #2f7d4a);
}

.support-comment-meta {
  color: var(--color-muted);
  justify-content: space-between;
  gap: 1rem;
  font-size: .8rem;
  display: flex;
}

.support-comment p {
  color: var(--color-ink);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  margin: .5rem 0 0;
  line-height: 1.55;
}

.support-reply {
  border-top: 1px solid var(--color-border);
  gap: .75rem;
  margin-top: 1rem;
  padding-top: 1rem;
  display: grid;
}

.admin-link-button {
  color: var(--color-accent);
  cursor: pointer;
  font-family: inherit;
  font-size: inherit;
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
}

.admin-link-button:hover {
  color: color-mix(in srgb, var(--color-accent) 80%, black);
}

.admin-support-requests-container {
  gap: 1rem;
  display: grid;
}

.admin-support-pagination {
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
  display: grid;
}

.admin-support-pagination > :last-child {
  justify-self: end;
}

.admin-support-requests-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  align-items: start;
  gap: 1.25rem;
  display: grid;
}

.admin-support-request-card {
  background: var(--color-surface-strong);
  border: 1px solid var(--color-border);
  min-width: 0;
  height: 100%;
  box-shadow: 0 1px 2px color-mix(in srgb, var(--color-ink) 8%, transparent);
  border-radius: 12px;
  flex-direction: column;
  padding: 1.25rem;
  display: flex;
}

.admin-support-request-card-expanded {
  grid-column: 1 / -1;
  height: auto;
}

.admin-support-request-card-header {
  color: var(--color-muted);
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
  font-size: .8rem;
  display: flex;
}

.admin-support-request-badges {
  flex-wrap: wrap;
  gap: .5rem;
  display: flex;
}

.admin-support-request-card-header time {
  flex: none;
}

.admin-support-request-subject {
  color: var(--color-ink);
  margin: 1rem 0 .35rem;
  font-size: 1.15rem;
  line-height: 1.3;
}

.admin-support-request-user {
  color: var(--color-accent);
  overflow-wrap: anywhere;
  margin: 0;
  font-size: .85rem;
}

.admin-support-request-preview {
  color: var(--color-muted);
  overflow-wrap: anywhere;
  margin: 1rem 0;
  line-height: 1.55;
}

.admin-support-request-footer {
  border-top: 1px solid var(--color-border);
  color: var(--color-muted);
  gap: .75rem;
  margin-top: auto;
  padding-top: 1rem;
  font-size: .85rem;
  display: grid;
}

.admin-expanded-row {
  background: var(--admin-panel-bg);
  border: 1px solid var(--admin-panel-border);
  border-radius: 6px;
  margin-top: 1.25rem;
  padding: 1.5rem;
}

.admin-support-workflow-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  display: grid;
}

.admin-support-labels {
  flex-wrap: wrap;
  gap: .5rem;
  display: flex;
}

.admin-support-label-option {
  border: 1px solid var(--color-border);
  background: var(--color-surface-strong);
  min-height: 2.25rem;
  color: var(--color-ink);
  cursor: pointer;
  border-radius: 6px;
  align-items: center;
  gap: .4rem;
  padding: .45rem .65rem;
  display: inline-flex;
}

.admin-detail-section {
  gap: .75rem;
  margin-bottom: 1.5rem;
  display: grid;
}

.admin-detail-section:last-child {
  margin-bottom: 0;
}

.admin-detail-section h4 {
  text-transform: uppercase;
  color: var(--color-muted);
  margin: 0 0 .5rem;
  font-size: .875rem;
  font-weight: 600;
}

.admin-detail-section .form-select, .admin-detail-section .form-input, .admin-detail-section .form-textarea {
  width: 100%;
}

.admin-action-buttons {
  flex-wrap: wrap;
  gap: .5rem;
  display: flex;
}

@media (max-width: 40rem) {
  .support-page {
    width: min(calc(100vw - 32px), var(--dsm-shell-max-width, 1120px));
  }

  .support-page-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .support-section {
    padding: 1.25rem;
  }

  .support-request-header {
    flex-direction: column;
  }

  .support-request-date {
    text-align: left;
  }

  .admin-support-request-card-header {
    flex-direction: column;
  }

  .admin-support-request-card-expanded {
    grid-column: auto;
  }

  .admin-support-workflow-grid {
    grid-template-columns: 1fr;
  }

  .support-comment-meta {
    flex-direction: column;
    gap: .25rem;
  }

  .admin-support-pagination {
    grid-template-columns: 1fr 1fr;
  }

  .admin-support-pagination > span {
    grid-area: 1 / 1 / auto / -1;
    justify-self: center;
  }
}

.admin-detail-text {
  color: var(--color-ink);
  white-space: pre-wrap;
  margin: 0;
  line-height: 1.6;
}

.admin-detail-link {
  color: var(--color-accent);
  text-decoration: none;
}

.admin-detail-link:hover {
  text-decoration: underline;
}

.admin-notification-section {
  margin-top: 1.5rem;
}

.admin-section-subtitle {
  font-family: var(--font-heading), sans-serif;
  color: var(--color-ink);
  margin: 0 0 1rem;
  font-size: 1.25rem;
  font-weight: 600;
}

.admin-section-description {
  color: var(--color-muted);
  margin: .5rem 0 1rem;
  line-height: 1.6;
}

.admin-notification-empty {
  background: var(--color-surface-strong);
  border: 1px dashed var(--color-border);
  text-align: center;
  border-radius: 12px;
  padding: 2rem;
}

.admin-notification-empty p {
  color: var(--color-muted);
  margin: 0 0 1rem;
}

.admin-support-notification-container {
  background: var(--color-surface-strong);
  border: 1px solid var(--color-border);
  box-shadow: 0 1px 2px color-mix(in srgb, var(--color-ink) 6%, transparent);
  border-radius: 12px;
  padding: 1.25rem;
}

.admin-notification-header {
  border-bottom: 1px solid var(--color-border);
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  display: flex;
}

.admin-notification-count {
  align-items: center;
  gap: .75rem;
  display: flex;
}

.admin-notification-badge {
  background: var(--color-accent);
  color: #fff;
  min-width: 2rem;
  height: 2rem;
  font-family: var(--font-heading), sans-serif;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  padding: 0 .5rem;
  font-size: .875rem;
  font-weight: 700;
  display: inline-flex;
}

.admin-notification-label {
  color: var(--color-ink);
  font-size: .95rem;
  font-weight: 600;
}

.admin-notification-list {
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.admin-notification-item {
  background: var(--admin-panel-bg);
  border: 1px solid var(--admin-panel-border);
  border-radius: 8px;
  padding: 1rem;
  transition: border-color .18s;
}

.admin-notification-item:hover {
  border-color: var(--color-accent);
}

.admin-notification-item-header {
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin-bottom: .75rem;
  display: flex;
}

.admin-notification-time {
  color: var(--color-muted);
  font-size: .8rem;
}

.admin-notification-subject {
  font-family: var(--font-heading), sans-serif;
  color: var(--color-ink);
  margin: 0 0 .5rem;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
}

.admin-notification-user {
  color: var(--color-accent);
  margin: 0 0 .5rem;
  font-size: .85rem;
}

.admin-notification-preview {
  color: var(--color-muted);
  margin: 0;
  font-size: .9rem;
  line-height: 1.5;
}

.admin-notification-footer {
  border-top: 1px solid var(--color-border);
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 1.25rem;
  padding-top: 1rem;
  display: flex;
}

.admin-notification-more {
  color: var(--color-muted);
  margin: 0;
  font-size: .9rem;
}

@media (max-width: 40rem) {
  .admin-notification-header, .admin-notification-footer {
    flex-direction: column;
    align-items: flex-start;
  }

  .admin-notification-count {
    width: 100%;
  }
}

.response-rate-metrics {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin: 1.5rem 0;
  display: grid;
}

.response-rate-window-label {
  margin-bottom: 0;
}

.response-rate-trend {
  background: var(--color-surface-strong);
  border: 1px solid var(--color-border);
  border-radius: .5rem;
  margin: 1.5rem 0;
  padding: 1rem;
}

.response-rate-trend-header {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
  display: flex;
}

.response-rate-trend-header > * {
  min-width: 0;
}

.response-rate-trend-label {
  color: var(--color-ink);
  font-weight: 600;
}

.response-rate-trend-heading, .response-rate-trend-period {
  gap: .2rem;
  display: grid;
}

.response-rate-trend-current {
  color: var(--color-muted);
  font-size: .875rem;
}

.response-rate-trend-current strong {
  color: var(--color-ink);
}

.response-rate-contribution {
  white-space: normal;
  overflow-wrap: anywhere;
  border-radius: 1rem;
  flex-direction: column;
  align-items: flex-start;
  max-width: 100%;
  padding: .25rem .75rem;
  font-size: .875rem;
  font-weight: 600;
  line-height: 1.35;
  display: inline-flex;
}

.response-rate-contribution-period {
  font-size: .75rem;
  font-weight: 500;
}

.response-rate-contribution-positive {
  background: color-mix(in srgb, var(--dsm-viz-seq-1) 15%, transparent);
  color: var(--dsm-viz-seq-1);
}

.response-rate-contribution-negative {
  background: color-mix(in srgb, var(--dsm-viz-seq-5) 15%, transparent);
  color: var(--dsm-viz-seq-5);
}

.response-rate-contribution-neutral {
  background: color-mix(in srgb, var(--color-muted) 10%, transparent);
  color: var(--color-muted);
}

.response-rate-trend-comparison {
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  max-width: 100%;
  margin: .75rem 0 0;
  font-size: .875rem;
  display: flex;
}

.response-rate-trend-period {
  overflow-wrap: anywhere;
  flex: 11rem;
  min-width: 0;
}

.response-rate-trend-period strong {
  font-size: 1rem;
}

.response-rate-trend-empty {
  min-height: var(--dsm-chart-height-sparkline, 96px);
  align-items: center;
  margin: 0;
  display: flex;
}

.response-rate-trend-help {
  margin-top: .75rem;
  margin-bottom: 0;
  font-size: .75rem;
  line-height: 1.45;
}

@media (max-width: 40rem) {
  .response-rate-metrics {
    grid-template-columns: 1fr;
  }

  .response-rate-trend-header {
    flex-direction: column;
    align-items: flex-start;
  }
}

.sentiment-analysis-history {
  flex-direction: column;
  gap: .75rem;
  display: flex;
}

.sentiment-analysis-history__selector .filter-field {
  flex: 340px;
  max-width: 440px;
}

@media (max-width: 640px) {
  .sentiment-analysis-history__selector .filter-field {
    flex-basis: 100%;
    max-width: none;
  }
}

.sentiment-analysis-history__notice {
  color: var(--color-muted);
  margin: 0;
  font-size: .88rem;
}

.sentiment-analysis-card {
  flex-direction: column;
  gap: 1rem;
  padding: 1.5rem;
  display: flex;
}

.sentiment-analysis-card__header {
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  display: flex;
}

.establishment-card-title, .sentiment-request-card__title {
  font-family: var(--font-heading), sans-serif;
  letter-spacing: -.01em;
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
}

.sentiment-analysis-card__period {
  color: var(--dsm-muted);
  font-size: .8125rem;
}

.sentiment-analysis-card__score-row {
  align-items: center;
  gap: 1rem;
  display: flex;
}

.sentiment-analysis-card__emoji {
  flex-shrink: 0;
  font-size: 2rem;
  line-height: 1;
}

.sentiment-analysis-card__score-details {
  flex-direction: column;
  flex: 1;
  gap: .375rem;
  display: flex;
}

.sentiment-analysis-card__sentiment-label {
  text-transform: capitalize;
  font-weight: 600;
}

.sentiment-analysis-card__score-line {
  align-items: center;
  gap: .75rem;
  display: flex;
}

.sentiment-score-bar {
  background: var(--dsm-border-color, #e5e7eb);
  border-radius: 9999px;
  flex: 1;
  height: .5rem;
  overflow: hidden;
}

.sentiment-score-bar__fill {
  border-radius: 9999px;
  height: 100%;
  transition: width .4s;
}

.sentiment-score-bar__fill--positive {
  background: var(--dsm-viz-seq-1, #22c55e);
}

.sentiment-score-bar__fill--neutral {
  background: var(--dsm-viz-seq-3, #f59e0b);
}

.sentiment-score-bar__fill--negative {
  background: var(--dsm-viz-seq-5, #ef4444);
}

.sentiment-analysis-card__score-value {
  white-space: nowrap;
  color: var(--dsm-muted);
  font-size: .875rem;
  font-weight: 600;
}

.sentiment-analysis-card__summary {
  margin: 0;
  font-size: .9rem;
  line-height: 1.6;
}

.sentiment-analysis-card__lists {
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  display: grid;
}

.sentiment-analysis-card__list-group {
  flex-direction: column;
  gap: .375rem;
  display: flex;
}

.sentiment-analysis-card__list-title {
  text-transform: uppercase;
  letter-spacing: .04em;
  margin: 0;
  font-size: .8125rem;
  font-weight: 600;
}

.sentiment-analysis-card__list-title--strengths {
  color: var(--dsm-viz-seq-1, #22c55e);
}

.sentiment-analysis-card__list-title--weaknesses {
  color: var(--dsm-viz-seq-5, #ef4444);
}

.sentiment-analysis-card__list {
  margin: 0;
  padding-left: 1.25rem;
  font-size: .875rem;
  line-height: 1.55;
}

.sentiment-analysis-card__themes {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.sentiment-analysis-card__theme-tags {
  flex-wrap: wrap;
  gap: .375rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.sentiment-analysis-card__theme-tag {
  background: color-mix(in srgb, var(--color-ink) 10%, transparent);
  color: var(--color-ink);
  border-radius: 9999px;
  padding: .25rem .75rem;
  font-size: .8125rem;
}

.sentiment-analysis-card__footer {
  color: var(--dsm-muted);
  justify-content: space-between;
  gap: 1rem;
  margin-top: .25rem;
  font-size: .75rem;
  display: flex;
}

.sentiment-analysis-card__model {
  opacity: .7;
}

@media (max-width: 40rem) {
  .sentiment-analysis-card__lists {
    grid-template-columns: 1fr;
  }

  .sentiment-analysis-card__header {
    flex-direction: column;
    align-items: flex-start;
  }
}

.admin-badge--success {
  background: var(--admin-success-bg);
  color: var(--admin-success-text);
}

.admin-badge--warning {
  background: var(--admin-warning-bg);
  color: var(--admin-warning-text);
}

.admin-badge--info {
  background: var(--admin-info-bg);
  color: var(--admin-info-text);
}

.admin-badge--danger {
  background: var(--admin-danger-bg);
  color: var(--admin-danger-text);
}

.admin-sentiment-form {
  flex-direction: column;
  gap: 1.5rem;
  display: flex;
}

.admin-sentiment-fieldset {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  flex-direction: column;
  gap: .75rem;
  margin: 0;
  padding: 1.25rem;
  display: flex;
}

.admin-sentiment-fieldset legend {
  padding: 0 .375rem;
}

.admin-sentiment-search-row {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.admin-sentiment-market-select {
  flex: none;
  min-width: 10rem;
  max-width: 14rem;
}

.admin-sentiment-search-input {
  flex: 1;
  min-width: 0;
}

.admin-sentiment-search-error {
  margin: 0;
  padding: .5rem .75rem;
  font-size: .875rem;
}

.admin-sentiment-results {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  max-height: 16rem;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow: hidden auto;
}

.admin-sentiment-result-btn {
  text-align: left;
  border: none;
  border-bottom: 1px solid var(--color-border);
  cursor: pointer;
  background: none;
  flex-direction: column;
  gap: .125rem;
  width: 100%;
  padding: .625rem .875rem;
  font-family: inherit;
  transition: background .1s;
  display: flex;
}

.admin-sentiment-result-btn:hover {
  background: var(--admin-hover-bg, #0000000a);
}

.admin-sentiment-results li:last-child .admin-sentiment-result-btn {
  border-bottom: none;
}

.admin-sentiment-result-title {
  font-size: .9rem;
  font-weight: 600;
}

.admin-sentiment-result-meta {
  color: var(--dsm-muted);
  font-size: .78rem;
}

.admin-sentiment-selected {
  background: var(--admin-success-bg);
  border: 1px solid color-mix(in srgb, var(--admin-success-text) 28%, transparent);
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .75rem 1rem;
  display: flex;
}

.admin-sentiment-selected-info {
  flex-direction: column;
  gap: .125rem;
  display: flex;
}

.admin-sentiment-selected-name {
  color: var(--admin-success-text);
  font-weight: 600;
}

.admin-sentiment-selected-meta {
  color: var(--admin-success-text);
  opacity: .8;
  font-size: .8125rem;
}

.admin-sentiment-model-row {
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  display: flex;
}

.admin-sentiment-model-msg {
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  margin: 0;
  padding: .375rem .625rem;
  font-size: .8rem;
}

.admin-sentiment-model-msg--ok {
  background: var(--admin-success-bg);
  color: var(--admin-success-text);
}

.admin-sentiment-model-msg--ko {
  background: var(--admin-danger-bg);
  color: var(--admin-danger-text);
}

.admin-sentiment-inline-label {
  align-items: center;
  gap: .75rem;
  font-size: .9rem;
  display: flex;
}

.admin-sentiment-number-input {
  width: 7rem;
}

.admin-sentiment-hint {
  color: var(--dsm-muted);
  margin: 0;
  font-size: .82rem;
}

.admin-sentiment-submit-row {
  align-items: center;
  gap: 1rem;
  display: flex;
}

.admin-sentinel-model {
  background: var(--admin-neutral-bg, #0000000d);
  border-radius: 4px;
  padding: 1px 5px;
  font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
  font-size: .78rem;
}

.sa-form {
  flex-direction: column;
  gap: 1rem;
  display: flex;
}

.sa-card {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  background: var(--admin-card-bg);
  box-shadow: var(--admin-card-shadow);
  transition: opacity .2s;
  overflow: hidden;
}

.sa-card--dimmed {
  opacity: .5;
  pointer-events: none;
}

.sa-card__header {
  background: color-mix(in srgb, var(--color-surface-strong) 60%, transparent);
  border-bottom: 1px solid var(--color-border);
  align-items: center;
  gap: .75rem;
  padding: .875rem 1.25rem;
  display: flex;
}

.sa-card__step {
  background: var(--color-accent);
  color: #fff;
  width: 1.75rem;
  height: 1.75rem;
  font-size: .8rem;
  font-weight: 700;
  font-family: var(--font-heading), sans-serif;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.sa-card__title {
  font-size: .9rem;
  font-weight: 700;
  font-family: var(--font-heading), sans-serif;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin: 0;
}

.sa-card__body {
  flex-direction: column;
  gap: .875rem;
  padding: 1.25rem;
  display: flex;
}

.sa-card__body--launch {
  gap: 1rem;
}

.sa-search-row {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.sa-market-select {
  flex: none;
  min-width: 10rem;
  max-width: 13rem;
}

.sa-search-input {
  flex: 1;
  min-width: 0;
}

.sa-search-btn {
  flex-shrink: 0;
  padding: .5rem .875rem;
}

.sa-search-error {
  margin: 0;
  padding: .5rem .75rem;
  font-size: .875rem;
}

.sa-results {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  max-height: 18rem;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow: hidden auto;
}

.sa-result-btn {
  text-align: left;
  border: none;
  border-bottom: 1px solid var(--color-border);
  cursor: pointer;
  background: none;
  flex-direction: column;
  gap: .15rem;
  width: 100%;
  padding: .7rem 1rem;
  font-family: inherit;
  transition: background .1s;
  display: flex;
}

.sa-result-btn:hover {
  background: var(--admin-hover-bg, #0000000a);
}

.sa-results li:last-child .sa-result-btn {
  border-bottom: none;
}

.sa-result-name {
  color: var(--color-ink);
  font-size: .9rem;
  font-weight: 600;
}

.sa-result-meta {
  color: var(--dsm-muted);
  font-size: .78rem;
}

.sa-estab-card {
  background: color-mix(in srgb, var(--color-accent) 4%, var(--admin-card-bg));
  border: 1.5px solid color-mix(in srgb, var(--color-accent) 30%, var(--color-border));
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  grid-template-rows: auto auto;
  grid-template-columns: 1fr auto;
  gap: .75rem 1rem;
  padding: 1rem 1.25rem;
  display: grid;
}

.sa-estab-card__main {
  flex-direction: column;
  grid-area: 1 / 1;
  gap: .25rem;
  display: flex;
}

.sa-estab-card__name {
  color: var(--color-ink);
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
}

.sa-estab-card__meta, .sa-estab-card__score {
  color: var(--dsm-muted);
  margin: 0;
  font-size: .8125rem;
}

.sa-estab-card__market {
  font-weight: 600;
}

.sa-estab-change-btn {
  grid-area: 1 / 2;
  align-self: start;
}

.sa-estab-card__period-block {
  grid-area: 2 / 1 / auto / -1;
}

.sa-period-loading {
  color: var(--dsm-muted);
  font-size: .82rem;
  font-style: italic;
}

.sa-period-count {
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  border: 1px solid #0000;
  align-items: flex-start;
  gap: .875rem;
  padding: .75rem 1rem;
  display: flex;
}

.sa-period-count--ok {
  background: var(--admin-success-bg);
  border-color: color-mix(in srgb, var(--admin-success-text) 25%, transparent);
}

.sa-period-count--empty {
  background: var(--admin-danger-bg);
  border-color: var(--admin-danger-border);
}

.sa-period-count__number {
  color: var(--admin-success-text);
  flex-shrink: 0;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}

.sa-period-count--empty .sa-period-count__number {
  color: var(--admin-danger-text);
}

.sa-period-count__label {
  color: var(--admin-success-text);
  font-size: .875rem;
  line-height: 1.5;
}

.sa-period-count--empty .sa-period-count__label {
  color: var(--admin-danger-text);
}

.sa-period-count__dates {
  opacity: .7;
  font-size: .78rem;
}

.sa-period-count__warn {
  margin-top: .25rem;
  font-size: .82rem;
  font-weight: 600;
  display: block;
}

.sa-model-row {
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  display: flex;
}

.sa-model-select {
  min-width: 14rem;
}

.sa-model-msg {
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  margin: 0;
  padding: .5rem .75rem;
  font-size: .82rem;
}

.sa-model-msg--ok {
  background: var(--admin-success-bg);
  color: var(--admin-success-text);
}

.sa-model-msg--ko {
  background: var(--admin-danger-bg);
  color: var(--admin-danger-text);
}

.sa-param-label {
  align-items: center;
  gap: .75rem;
  font-size: .9rem;
  display: flex;
}

.sa-param-label > span {
  flex-shrink: 0;
  min-width: 12rem;
  font-weight: 500;
}

.sa-number-input {
  width: 7rem;
}

.sa-hint {
  border-radius: var(--dsm-admin-card-radius-tight, 6px);
  margin: 0;
  padding: .375rem .625rem;
  font-size: .82rem;
}

.sa-hint--info {
  background: var(--admin-info-bg, #3b82f614);
  color: var(--admin-info-text, #1d4ed8);
}

.sa-submit-btn {
  align-self: flex-start;
  padding: .65rem 1.75rem;
  font-size: .95rem;
}

@media (max-width: 40rem) {
  .sa-search-row {
    flex-wrap: wrap;
  }

  .sa-market-select {
    width: 100%;
    max-width: 100%;
  }

  .sa-search-input {
    flex: 8rem;
  }

  .sa-estab-card {
    grid-template-columns: 1fr;
  }

  .sa-estab-change-btn {
    grid-area: auto / 1;
    align-self: auto;
    width: 100%;
  }

  .sa-param-label {
    flex-direction: column;
    align-items: stretch;
    gap: .375rem;
  }

  .sa-param-label > span {
    min-width: unset;
  }

  .sa-model-select, .sa-number-input {
    min-width: unset;
    width: 100%;
  }

  .sa-model-row {
    flex-direction: column;
    align-items: stretch;
  }

  .sa-model-row .admin-btn {
    text-align: center;
    width: 100%;
  }

  .sa-submit-btn {
    text-align: center;
    align-self: stretch;
    width: 100%;
  }

  .sa-analysis-card__name {
    white-space: normal;
    text-overflow: unset;
    overflow: visible;
  }
}

.sa-analyses-grid {
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  gap: 1rem;
  margin-top: .5rem;
  display: grid;
}

.sa-usage-stats-grid {
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
}

.sa-usage-stat-card {
  flex-direction: column;
  align-items: flex-start;
  gap: .25rem;
  display: flex;
}

.sa-usage-stat-card__label {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--dsm-muted);
  font-size: .75rem;
  font-weight: 600;
}

.sa-usage-stat-card__value {
  color: var(--color-ink);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.1;
  font-family: var(--font-heading), sans-serif;
}

.sa-usage-stat-card__sub {
  color: var(--dsm-muted);
  font-size: .75rem;
}

.sa-usage-model-card {
  flex-direction: column;
  gap: .25rem;
  display: flex;
}

.sa-usage-model-card__name {
  color: var(--color-ink);
  word-break: break-all;
  font-size: .85rem;
  font-weight: 700;
}

.sa-usage-model-card__meta {
  color: var(--dsm-muted);
  font-size: .78rem;
}

.sa-analysis-card {
  border: 1px solid var(--color-border);
  border-radius: var(--dsm-admin-card-radius-compact, 10px);
  background: var(--color-surface-strong, #fff);
  flex-direction: column;
  gap: .625rem;
  padding: 1rem 1.125rem;
  transition: box-shadow .15s;
  display: flex;
}

.sa-analysis-card:hover {
  box-shadow: 0 4px 12px #00000014;
}

.sa-analysis-card--done {
  border-left: 3px solid var(--admin-success-text, #16a34a);
}

.sa-analysis-card--failed {
  border-left: 3px solid var(--admin-danger-text, #dc2626);
}

.sa-analysis-card--pending, .sa-analysis-card--running {
  border-left: 3px solid var(--admin-warning-text, #d97706);
}

.sa-analysis-card__header {
  justify-content: space-between;
  align-items: flex-start;
  gap: .5rem;
  display: flex;
}

.sa-analysis-card__title-block {
  flex-direction: column;
  gap: .125rem;
  min-width: 0;
  display: flex;
}

.sa-analysis-card__name {
  color: var(--color-accent);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: .9rem;
  font-weight: 700;
  text-decoration: none;
  overflow: hidden;
}

.sa-analysis-card__name:hover {
  text-decoration: underline;
}

.sa-analysis-card__name--no-link {
  color: var(--color-ink);
  cursor: default;
}

.sa-analysis-card__market {
  color: var(--dsm-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: .75rem;
  font-weight: 600;
}

.sa-analysis-card__meta {
  color: var(--dsm-muted);
  flex-wrap: wrap;
  gap: .5rem;
  font-size: .78rem;
  display: flex;
}

.sa-analysis-card__result {
  border-top: 1px solid var(--color-border);
  flex-wrap: wrap;
  align-items: center;
  gap: .625rem;
  padding: .5rem 0;
  display: flex;
}

.sa-analysis-score {
  white-space: nowrap;
  border-radius: 999px;
  padding: .2rem .6rem;
  font-size: .82rem;
  font-weight: 700;
}

.sa-analysis-score--good {
  background: var(--admin-success-bg);
  color: var(--admin-success-text);
}

.sa-analysis-score--mid {
  background: var(--admin-warning-bg);
  color: var(--admin-warning-text);
}

.sa-analysis-score--low {
  background: var(--admin-danger-bg);
  color: var(--admin-danger-text);
}

.sa-analysis-card__sentiment {
  color: var(--color-ink);
  text-transform: capitalize;
  font-size: .82rem;
  font-style: italic;
}

.sa-analysis-card__summary {
  width: 100%;
  color: var(--color-ink);
  opacity: .85;
  margin: .25rem 0 0;
  font-size: .8rem;
  line-height: 1.55;
}

.sa-analysis-card__error {
  color: var(--admin-danger-text);
  background: var(--admin-danger-bg);
  border-radius: 4px;
  margin: 0;
  padding: .375rem .5rem;
  font-size: .78rem;
}

.sa-analysis-card__footer {
  color: var(--dsm-muted);
  border-top: 1px solid var(--color-border);
  justify-content: space-between;
  gap: .5rem;
  padding-top: .5rem;
  font-size: .72rem;
  display: flex;
}

.sa-analysis-card__by {
  opacity: .7;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.sa-analysis-card__triage {
  border-top: 1px dashed var(--color-border);
  flex-direction: column;
  gap: .4rem;
  padding-top: .5rem;
  display: flex;
}

.sa-analysis-card__owner {
  color: var(--dsm-muted);
  font-size: .72rem;
}

.sa-analysis-card__triage-actions {
  flex-wrap: wrap;
  gap: .35rem;
  display: flex;
}

.sa-analysis-card__triage-actions .admin-input {
  flex: 10rem;
  min-width: 0;
}

/*# sourceMappingURL=src_app_globals_162hn9o.css.map*/