/* Cartograph live palette normalization. Load after production.css. */
:root {
  --carto-bg: #151515;
  --carto-panel: #1d1d1d;
  --carto-well: #252525;
  --carto-raised: #2e2e2e;
  --carto-border: #373737;
  --carto-border-strong: #4b4b4b;
  --carto-text: #ededed;
  --carto-muted: #ababab;
  --carto-faint: #969696;
  --carto-accent: #ff7824;
  --carto-accent-hover: #ff8f4a;
  --carto-accent-soft: rgba(255, 120, 36, .14);
  /* Legacy website aliases, kept in sync with the app palette. */
  --bg: var(--carto-bg);
  --surface: var(--carto-panel);
  --panel: var(--carto-panel);
  --raised: var(--carto-raised);
  --panel-2: var(--carto-well);
  --border: var(--carto-border);
  --line: var(--carto-border);
  --border-strong: var(--carto-border-strong);
  --text: var(--carto-text);
  --muted: var(--carto-muted);
  --text-muted: var(--carto-muted);
  --text-faint: var(--carto-faint);
  --accent: var(--carto-accent);
  --accent-hover: var(--carto-accent-hover);
  --accent-soft: var(--carto-accent-soft);
}

html, body { background: var(--carto-bg); color: var(--carto-text); }
body { color-scheme: dark; }
p, .muted, .fineprint, .section-head > p, .card-description p { color: var(--carto-muted); }
.mono, .eyebrow, .feature-index, .caption, .footer-bottom { color: var(--carto-faint); }

.header, .footer, .footer-landscape, .feature-index, .section,
.showcase-hero, .company-page, .docs-empty, .error-page { background-color: var(--carto-bg); }
.header { background-color: rgba(21, 21, 21, .92); border-color: var(--carto-border); }
.header nav a { color: var(--carto-muted); }
.header nav a:hover, .header nav a[aria-current="page"] { color: var(--carto-text); }
.product-name, .footer-bottom, .footer { border-color: var(--carto-border); }

.app-window, .image-card, .feature-card, .form-card, .account-card,
.dashboard-app, .download-card, .empty-document { background: var(--carto-panel); border-color: var(--carto-border); }
.window-bar, .footer-bottom, .feature-tabs, .intro-rail { border-color: var(--carto-border); }

.ui-panel, .demo-toolbar, .gallery-layer-legend, .preset-library,
.refine-inspector-body, .animation-pause, .convert-control, .scene-tab,
.photo-label, .hero-tools, .motion-scene-status {
  background-color: rgba(29, 29, 29, .96);
  border-color: var(--carto-border-strong);
  color: var(--carto-text);
}
.ui-head, .ui-row, .layer-control, .appearance-heading { border-color: var(--carto-border); }
.layer-control:hover, .feature-tabs button:hover, .filter-bar button:hover { background: var(--carto-well); }
.gallery-layer-legend .layer-control[aria-checked="true"],
.gallery-layer-legend .layer-control:has(input:checked) { background: var(--carto-well); }
.switch-visual { background: var(--carto-well); border-color: var(--carto-border-strong); }
/* App parity: toggles are neutral control chrome; map-source swatches remain authored colors. */
.layer-control:has(input:checked) .switch-visual { background: var(--carto-border-strong); border-color: var(--carto-border-strong); }
.layer-control:has(input:checked) .switch-visual::after { background: var(--carto-text); }
.demo-controls, .demo-toolbar { background-color: var(--carto-panel); }
.demo-controls select, .marker-settings select, .auth-v3 .form-card input { background: var(--carto-bg); border-color: var(--carto-border-strong); color: var(--carto-text); }

.legal-layout, .docs-layout, .contact-layout, .auth-layout, .account-layout,
.gallery-grid, .gallery-backdrop, .lightbox, .privacy-controls, .settings-panel,
.consent-panel, .help-panel, .doc-notice { color: var(--carto-text); }
.legal-nav, .docs-nav, .account-nav, .filter-bar, .lightbox-foot,
.settings-panel, .consent-panel, .help-panel, .doc-notice { border-color: var(--carto-border); }
.legal-nav, .docs-nav, .account-nav, .settings-panel, .consent-panel, .help-panel,
.doc-notice, .lightbox, .gallery-backdrop { background-color: var(--carto-panel); }
.gallery-card, .gallery-grid article, .gallery-output-list article { background: var(--carto-panel); border-color: var(--carto-border); }
.filter-bar button[aria-pressed="true"], .feature-tabs button[aria-selected="true"],
.account-nav-group > a[aria-current="page"] { background: var(--carto-well); border-color: var(--carto-border-strong); color: var(--carto-text); }
.form-card input, .form-card textarea, .form-card select { background: var(--carto-bg); border-color: var(--carto-border-strong); color: var(--carto-text); }
.account-page .account-card, .account-page .pill, .account-symbol { background: var(--carto-panel); border-color: var(--carto-border); }

.button { background: transparent; border-color: var(--carto-border-strong); color: var(--carto-text); }
.button:hover { background: var(--carto-well); border-color: var(--carto-border-strong); }
.button.primary, .header nav .button { background: var(--carto-text); border-color: var(--carto-text); color: var(--carto-bg); }
.button.primary:hover, .header nav .button:hover { background: #fff; border-color: #fff; color: var(--carto-bg); }
.text-link { color: var(--carto-text); border-color: var(--carto-border-strong); }
.eyebrow .line, .availability i { background-color: var(--carto-accent); }
.hero-period, .accent, .availability i { color: var(--carto-accent); }

button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, .layer-control:has(input:focus-visible) {
  outline: 2px solid var(--carto-accent);
  outline-offset: 3px;
}
input[type="range"], input[type="checkbox"] { accent-color: var(--carto-accent); }

.hero-stage, .photo-scene, .refine-image, .finished-tool-photo { border-color: var(--carto-border-strong); }
.map-key, .refine-caption, .finished-disclaimer { background: rgba(29, 29, 29, .94); border-color: var(--carto-border); color: var(--carto-text); }
.footer-links strong, .clean-list li, .section-head h2, h1, h2, h3 { color: var(--carto-text); }
.clean-list li { border-color: var(--carto-border); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
