/* AstroMind global theme contract. Components should consume these semantic tokens. */
:root,
html[data-theme="dark"] {
  color-scheme: dark;
  --am-bg: #090607;
  --am-bg-elevated: #120c0f;
  --am-panel: #171014;
  --am-panel-raised: #21151b;
  --am-panel-muted: #0f0a0d;
  --am-text: #f2e7ea;
  --am-text-muted: #c5aeb6;
  --am-text-subtle: #947985;
  --am-border: #573944;
  --am-border-strong: #815565;
  --am-focus: #8ecbff;
  --am-link: #d9aeb8;
  --am-link-hover: #ffe7ec;
  --am-nav-bg: rgba(18, 10, 14, .98);
  --am-nav-active: #c97993;
  --am-control-bg: #100a0d;
  --am-control-border: #6a4652;
  --am-button-bg: #6e3046;
  --am-button-hover: #934f68;
  --am-button-text: #fff4f6;
  --am-success: #8fd3a4;
  --am-warning: #e8b36f;
  --am-danger: #ed8188;
  --am-info: #8fc8f4;
  --am-chart-grid: rgba(213, 185, 194, .30);
  --am-chart-axis: #d8c2ca;
  --am-chart-text: #f0e4e8;
  --am-chart-surface: #0c0909;
  --am-chart-canvas: #0f0a0d;
  --am-chart-night-nautical: rgba(36, 72, 128, .38);
  --am-chart-night-astro: rgba(0, 0, 0, .58);
  --am-chart-moon: #d8ba7d;
  --am-chart-moon-subhorizon: #66583f;
  --am-tooltip-bg: #160d12;
  --am-tooltip-text: #f6e8ec;
  --am-tooltip-border: #815565;
  --am-overlay: rgba(0, 0, 0, .66);
  --am-shadow: rgba(0, 0, 0, .42);
  --am-category-nebula: #d27cff;
  --am-category-galaxy: #70b8ff;
  --am-category-cluster: #ffc86e;
  --am-category-star: #ff8c98;
  --am-category-other: #aeb7c4;
}

html[data-theme="light"] {
  color-scheme: light;
  --am-bg: #f6f2f3;
  /* Keep cards, panels and controls inside the warm AstroMind palette.  Pure
     white boxes looked detached from the surrounding rose-grey surface. */
  --am-bg-elevated: #f6f2f3;
  --am-panel: #f6f2f3;
  --am-panel-raised: #efe7ea;
  --am-panel-muted: #eee8eb;
  --am-text: #2e2026;
  --am-text-muted: #654d58;
  --am-text-subtle: #816c76;
  --am-border: #d7c5cc;
  --am-border-strong: #b18b9a;
  --am-focus: #1769aa;
  --am-link: #7d3855;
  --am-link-hover: #4f1f35;
  --am-nav-bg: var(--am-bg);
  --am-nav-active: #d99aac;
  --am-control-bg: #fbf6f8;
  --am-control-border: #b999a6;
  --am-button-bg: #8d4762;
  --am-button-hover: #6e304a;
  --am-button-text: #fff;
  --am-success: #23713b;
  --am-warning: #8a570e;
  --am-danger: #b52d39;
  --am-info: #17639b;
  --am-chart-grid: rgba(83, 55, 67, .34);
  --am-chart-axis: #573c4a;
  --am-chart-text: #34232c;
  --am-chart-surface: #f6f2f3;
  --am-chart-canvas: #eee8eb;
  --am-chart-night-nautical: rgba(91, 133, 190, .25);
  --am-chart-night-astro: rgba(45, 55, 78, .18);
  --am-chart-moon: #94703a;
  --am-chart-moon-subhorizon: #b2a28f;
  --am-tooltip-bg: #f3edef;
  --am-tooltip-text: #2e2026;
  --am-tooltip-border: #b18b9a;
  --am-overlay: rgba(35, 22, 29, .24);
  --am-shadow: rgba(70, 35, 52, .18);
  --am-category-nebula: #8736a9;
  --am-category-galaxy: #176cb1;
  --am-category-cluster: #a46200;
  --am-category-star: #bc3d50;
  --am-category-other: #596574;
}

html,
body {
  background-color: var(--am-bg);
  color: var(--am-text);
}

body,
button,
input,
select,
textarea {
  accent-color: var(--am-button-bg);
}

a { color: var(--am-link); }
a:hover { color: var(--am-link-hover); }

button,
input,
select,
textarea {
  border-color: var(--am-control-border);
  background-color: var(--am-control-bg);
  color: var(--am-text);
}

button {
  background-color: var(--am-button-bg);
  color: var(--am-button-text);
}

button:hover { background-color: var(--am-button-hover); }

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
a:focus-visible {
  outline: 2px solid var(--am-focus);
  outline-offset: 2px;
}

.app-theme-control {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
}

.app-theme-menu {
  position: relative;
  display: inline-block;
  z-index: 30;
}

.app-theme-toggle {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 30px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: var(--am-text-muted);
  cursor: pointer;
  list-style: none;
}

.app-theme-toggle::-webkit-details-marker { display: none; }
.app-theme-toggle::marker { content: ""; }

.app-theme-toggle:hover,
.app-theme-toggle:focus-visible,
.app-theme-menu[open] > .app-theme-toggle {
  border-color: var(--am-border-strong);
  background: var(--am-panel-raised);
  color: var(--am-text);
}

.app-theme-toggle svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.app-theme-popover {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 142px;
  padding: 9px;
  border: 1px solid var(--am-border-strong);
  border-radius: 9px;
  background: var(--am-panel);
  box-shadow: 0 8px 24px var(--am-shadow);
}

.app-theme-popover label {
  display: block;
  margin: 0 0 5px;
  color: var(--am-text-muted);
  font: 11px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;
}

.app-theme-popover select {
  width: 100%;
  min-height: 28px;
  padding: 3px 22px 3px 7px;
  border: 1px solid var(--am-control-border);
  border-radius: 6px;
  background: var(--am-control-bg);
  color: var(--am-text);
  font: 12px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;
}

.app-theme-control select {
  min-height: 28px;
  padding: 3px 22px 3px 7px;
  border: 1px solid var(--am-control-border);
  border-radius: 6px;
  background: var(--am-control-bg);
  color: var(--am-text);
  font: inherit;
}

.app-theme-control select option { background: var(--am-control-bg); color: var(--am-text); }

.login-theme-control {
  position: fixed;
  top: max(12px, env(safe-area-inset-top));
  right: max(12px, env(safe-area-inset-right));
  z-index: 2;
}

body:has(.login-theme-control) {
  background: var(--am-bg) !important;
  color: var(--am-text) !important;
}
body:has(.login-theme-control) form {
  background: var(--am-panel) !important;
  border-color: var(--am-border) !important;
  color: var(--am-text) !important;
}
body:has(.login-theme-control) h1 { color: var(--am-danger) !important; }
body:has(.login-theme-control) label { color: var(--am-text-muted) !important; }
body:has(.login-theme-control) input { background: var(--am-control-bg) !important; color: var(--am-text) !important; border-color: var(--am-control-border) !important; }
body:has(.login-theme-control) button { background: var(--am-button-bg) !important; color: var(--am-button-text) !important; border-color: var(--am-border-strong) !important; }
body:has(.login-theme-control) .flash { background: color-mix(in srgb, var(--am-danger) 18%, var(--am-panel)) !important; color: var(--am-danger) !important; }
body:has(.login-theme-control) .hint { color: var(--am-text-subtle) !important; }

.app-nav {
  border-color: var(--am-border) !important;
  background: var(--am-nav-bg) !important;
  box-shadow: 0 1px 0 var(--am-border), 0 7px 14px var(--am-shadow) !important;
}
.app-nav-main {
  border-color: var(--am-border-strong) !important;
  background: var(--am-nav-bg) !important;
  box-shadow: inset 1px 0 1px color-mix(in srgb, var(--am-text) 12%, transparent),
    inset -2px 0 3px var(--am-shadow), 0 2px 4px var(--am-shadow) !important;
}

.app-nav::before { background: var(--am-nav-bg) !important; }
.app-nav a { color: var(--am-link) !important; }
.app-nav a:hover { color: var(--am-link-hover) !important; }
.app-nav a.app-nav-current,
.app-nav a.app-nav-drag-active {
  border-color: var(--am-border-strong) !important;
  background: var(--am-nav-active) !important;
  color: var(--am-button-text) !important;
}
.app-nav-icon {
  background: var(--am-panel-raised) !important;
  border-color: var(--am-border-strong) !important;
  color: var(--am-link) !important;
}
.app-nav-icon svg { stroke: currentColor !important; }
.app-nav-icon:hover,
.app-nav-icon:focus-visible { border-color: var(--am-border-strong) !important; background: var(--am-panel-raised) !important; }
.app-nav-icon::after { border-color: var(--am-tooltip-border) !important; background: var(--am-tooltip-bg) !important; color: var(--am-tooltip-text) !important; }

/* Calendar's category controls are canvas-adjacent UI, so keep their labels
   on the same semantic palette as the Distance map rather than black tiles. */
.calendar-equalizer-channel:nth-child(1) { --class-color: var(--am-category-galaxy) !important; }
.calendar-equalizer-channel:nth-child(2) { --class-color: var(--am-category-nebula) !important; }
.calendar-equalizer-channel:nth-child(3) { --class-color: var(--am-category-cluster) !important; }
.calendar-equalizer-channel:nth-child(4) { --class-color: var(--am-category-star) !important; }
.calendar-equalizer-channel output {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  color: var(--class-color) !important;
}
.calendar-rank-window { color: var(--am-text-muted) !important; }
.calendar-rank-window-output { color: var(--am-text) !important; }

/* Existing views: semanticize the common hard-coded night surfaces. */
.panel,
.card,
.modal,
.equipment-modal-panel,
.instrument-panel,
.measurements,
.guidance,
.placeholder,
.target-card,
.detail-card,
.status-card {
  background-color: var(--am-panel);
  color: var(--am-text);
  border-color: var(--am-border);
}

.equipment-modal-backdrop { background: var(--am-overlay) !important; }
.equipment-modal-panel { background: var(--am-panel) !important; color: var(--am-text) !important; }
.equipment-modal-panel input,
.equipment-modal-panel select { background: var(--am-control-bg) !important; color: var(--am-text) !important; border-color: var(--am-control-border) !important; }
.equipment-modal-actions { background: var(--am-panel) !important; }
.equipment-modal-panel fieldset { border-color: var(--am-border) !important; }
.equipment-focus-switch {
  background: var(--am-panel-raised) !important;
  border-color: var(--am-border-strong) !important;
}
.equipment-focus-switch button {
  color: var(--am-text-muted) !important;
}
.equipment-focus-switch button.is-active,
.equipment-focus-switch button.is-drag-active {
  background: var(--am-nav-active) !important;
  color: var(--am-button-text) !important;
}
.equipment-component-picker {
  background: var(--am-panel-raised) !important;
  border-color: var(--am-border) !important;
}
.equipment-component-picker label > span { color: var(--am-text-muted) !important; }
.equipment-component-picker button {
  background: var(--am-button-bg) !important;
  border-color: var(--am-border-strong) !important;
  color: var(--am-button-text) !important;
}
#equip-city-results {
  background: var(--am-panel) !important;
  border-color: var(--am-border) !important;
}
#equip-city-results > div:hover,
#equip-city-results > div:focus { background: var(--am-panel-raised) !important; }

[role="tooltip"],
.tooltip,
.chart-tooltip { background: var(--am-tooltip-bg); color: var(--am-tooltip-text); border-color: var(--am-tooltip-border); }
.is-ready, .status-success, [data-status="success"] { color: var(--am-success) !important; }
.is-warning, .status-warning, [data-status="warning"] { color: var(--am-warning) !important; }
.is-invalid, .status-error, [data-status="error"] { color: var(--am-danger) !important; }
.status-info, [data-status="info"] { color: var(--am-info) !important; }

/* Legacy page-local selectors are deliberately kept in this compatibility layer. */
body#dashboard-page,
body.dashboard-page,
body[data-page="dashboard"] { background: var(--am-bg) !important; color: var(--am-text) !important; }
#scheduler-box,
#scheduler-header,
#error-board { background-color: var(--am-panel) !important; border-color: var(--am-border) !important; color: var(--am-text) !important; }
.hud-box { border-color: var(--am-border-strong) !important; }
.status-strip { border-color: var(--am-border) !important; color: var(--am-text-muted) !important; }

/* Advisor's former local theme now follows the global resolved theme. */
.advisor-main,
.advisor-main[data-feature-theme="light"],
.advisor-main[data-feature-theme="dark"] {
  --feature-deep: var(--am-bg-elevated);
  --feature-glow: var(--am-panel-raised);
  --feature-panel: var(--am-panel);
  --feature-border: var(--am-border);
  --feature-stroke: var(--am-border-strong);
  --feature-text: var(--am-text);
  --feature-muted: var(--am-text-muted);
  --feature-status: color-mix(in srgb, var(--am-panel) 92%, transparent);
  --feature-active: color-mix(in srgb, var(--am-button-bg) 20%, var(--am-panel));
  --view-background-current: var(--am-panel-muted);
  --view-panel-bg: var(--am-panel);
  background: var(--am-bg) !important;
  color: var(--am-text) !important;
}
.advisor-main[data-theme="light"] #guide-center,
.advisor-main[data-theme="light"] #guide-rotation,
.advisor-main[data-theme="light"] #guide-A,
.advisor-main[data-theme="light"] #guide-B,
.advisor-main[data-theme="light"] #guide-C { filter: none; }

.advisor-side {
  background: var(--am-panel-muted) !important;
  border-color: var(--am-border) !important;
  color: var(--am-text) !important;
}
.advisor-side h1 { color: var(--am-text) !important; }
.advisor-side a { color: var(--am-link) !important; }
.advisor-side a.current {
  background: var(--am-panel-raised) !important;
  border-color: var(--am-border-strong) !important;
  color: var(--am-text) !important;
}
.advisor-main[data-feature-theme="light"] {
  --feature-deep: var(--am-panel-muted) !important;
  --feature-glow: var(--am-panel-raised) !important;
  --feature-panel: var(--am-panel) !important;
  --feature-border: var(--am-border) !important;
  --feature-stroke: var(--am-border-strong) !important;
  --feature-text: var(--am-text) !important;
  --feature-muted: var(--am-text-muted) !important;
  --feature-status: color-mix(in srgb, var(--am-panel) 94%, transparent) !important;
  --feature-active: color-mix(in srgb, var(--am-nav-active) 18%, var(--am-panel)) !important;
  --view-background-light: var(--am-panel-muted) !important;
  background: var(--am-bg) !important;
  color: var(--am-text) !important;
}
.advisor-main .twin-control,
.advisor-main .twin-note,
.advisor-main .view-note,
.advisor-main .feature-control,
.advisor-main .camera-source-control,
.advisor-main .guidance { color: var(--am-text-muted) !important; }
.advisor-main .twin-value,
.advisor-main .measure-value { color: var(--am-text) !important; }
.advisor-main .measure-label { color: var(--am-text-muted) !important; }
.advisor-main .twin-controls { border-color: var(--am-border) !important; }

/* Calendar / Planner graph chrome, cards, overlays, loading and form states. */
.calendar-page,
.calendar-page body,
.planner-top-bar,
.planner-top-bar + * {
  color: var(--am-text);
}
.calendar-page .calendar-season-range,
.calendar-page .calendar-season-note,
.planner-targets-note,
.planner-calendar-top-head,
.calendar-object-path-info,
.planner-galactic-map-scale,
.planner-galactic-map-note,
.calendar-object-path-message { color: var(--am-text-muted) !important; }
.planner-calendar-top-head h3,
.planner-priority-controls,
.planner-priority-controls label { color: var(--am-text-muted) !important; }
.planner-priority-controls legend { color: var(--am-text) !important; }
.planner-priority-controls output { color: var(--am-danger) !important; }
.planner-targets-title h2 { color: var(--am-danger) !important; }
.planner-targets-title input[type="date"] {
  background: var(--am-control-bg) !important;
  color: var(--am-text) !important;
  -webkit-text-fill-color: var(--am-text) !important;
  border-color: var(--am-control-border) !important;
}
.planner-targets-title input[type="date"]::-webkit-datetime-edit,
.planner-targets-title input[type="date"]::-webkit-datetime-edit-text,
.planner-targets-title input[type="date"]::-webkit-datetime-edit-month-field,
.planner-targets-title input[type="date"]::-webkit-datetime-edit-day-field,
.planner-targets-title input[type="date"]::-webkit-datetime-edit-year-field {
  color: var(--am-text) !important;
  -webkit-text-fill-color: var(--am-text) !important;
}
.season-chart-canvas-stack,
#seasonCanvas {
  background: var(--am-chart-surface) !important;
}
.calendar-chart-explanation,
.calendar-chart-axis-toggle { color: var(--am-chart-axis) !important; }
.calendar-chart-axis-toggle {
  border-color: var(--am-border-strong) !important;
  background: var(--am-panel-raised) !important;
}
.calendar-chart-axis-toggle span { color: var(--am-chart-axis) !important; }
.calendar-chart-axis-toggle span.is-active {
  color: var(--am-chart-text) !important;
  text-shadow: none !important;
}
.planner-galactic-map,
.planner-galactic-map-canvas-wrap,
.planner-galactic-map-webgl,
.calendar-object-path,
.calendar-object-path-graph,
.planner-night-overview,
.planner-night-overview-graph,
.calendar-insight-grid .planner-night-overview,
.calendar-insight-grid .planner-night-overview-graph {
  background: var(--am-chart-surface) !important;
  border-color: var(--am-border) !important;
}
.planner-galactic-map { border-top-color: var(--am-border) !important; border-bottom-color: var(--am-border) !important; }
.planner-calendar-page-btn,
.planner-settings-details,
.planner-equip-form-panel,
.planner-target-placeholder,
.target-card,
.calendar-target-card,
.calendar-overlay-card,
.calendar-tooltip,
.season-tooltip,
.calendar-detail-panel,
.planner-target-zoom,
.planner-target-zoom-panel {
  background: var(--am-panel) !important;
  color: var(--am-text) !important;
  border-color: var(--am-border) !important;
}
.planner-calendar-page-btn:not([disabled]):hover { background: var(--am-panel-raised) !important; border-color: var(--am-border-strong) !important; }
.planner-target-placeholder-title,
.planner-target-placeholder-image,
.planner-target-placeholder-line { background: var(--am-panel-raised) !important; }
.planner-target-card .tc-name,
.planner-target-card .tc-line,
.target-card .tc-name,
.target-card .tc-line { color: var(--am-text) !important; }
.planner-settings-body,
.planner-settings-summary,
.planner-equip-form-body,
.planner-equip-form-note,
.planner-equip-settings-msg,
.planner-equip-form-mode { color: var(--am-text-muted) !important; }
.planner-settings-details input,
.planner-settings-details select,
.planner-settings-details textarea,
.planner-equip-form-panel input,
.planner-equip-form-panel select,
.planner-equip-form-panel textarea {
  background: var(--am-control-bg) !important;
  color: var(--am-text) !important;
  border-color: var(--am-control-border) !important;
}
.planner-galactic-map-tooltip,
.target-zoom-tooltip,
.planner-tooltip { background: var(--am-tooltip-bg) !important; color: var(--am-tooltip-text) !important; border-color: var(--am-tooltip-border) !important; }
.calendar-object-path,
.calendar-object-path-graph,
.calendar-insight-grid .planner-galactic-map,
.calendar-insight-grid .planner-galactic-map-canvas-wrap,
.calendar-insight-grid .planner-night-overview,
.calendar-insight-grid .planner-night-overview-graph,
.calendar-insight-grid .planner-night-overview-graph canvas,
.calendar-object-path-graph canvas,
.target-grid .tc-preview-inner,
.target-grid .tc-preview-inner.tc-preview-inner--image-ready,
#target-zoom-track-canvas {
  background: var(--am-chart-surface) !important;
}
.calendar-detail-panel,
#seasonTooltip {
  background: var(--am-chart-surface) !important;
  color: var(--am-text) !important;
  border-color: var(--am-border) !important;
}
#seasonTooltip {
  width: min(300px, calc(100% - 16px)) !important;
}
#seasonTooltip .season-tooltip-fact,
#seasonTooltip .season-tooltip-fact-label,
#seasonTooltip .season-tooltip-fact-value { color: var(--am-text-muted) !important; border-color: var(--am-border) !important; }
.calendar-lunation-close,
.calendar-lunation-nav,
.target-zoom-close,
.target-zoom-nav {
  background: var(--am-panel-raised) !important;
  color: var(--am-text) !important;
  border-color: var(--am-border-strong) !important;
}
.calendar-lunation-close:hover,
.calendar-lunation-nav:hover,
.target-zoom-close:hover,
.target-zoom-nav:hover:not(:disabled) { background: var(--am-panel-muted) !important; }

/* Planner target cards and the full-screen detail view inherit the global
   surface palette, including their image/canvas staging areas. */
body:has(.planner-targets-head),
body:has(.target-grid),
body:has(.target-zoom-overlay) { background: var(--am-bg) !important; color: var(--am-text) !important; }
.target-card,
.planner-target-placeholder {
  color: var(--am-text) !important;
  border-color: var(--am-border) !important;
  box-shadow: 0 1px 0 var(--am-shadow) !important;
}
.target-card-head .tc-name,
.target-card-body .tc-line,
.target-card-body .tc-line.tc-ranking-metric,
.target-card-body .tc-line.tc-fill-metric { color: var(--am-text) !important; }
.target-card-body .tc-line.tc-ranking-metric,
.target-card-body .tc-line.tc-fill-metric { color: var(--am-danger) !important; }
.tc-preview-inner,
.target-zoom-hero-inner,
.target-zoom-framing canvas,
.target-zoom-track-wrap,
.target-zoom-track-canvas { background: var(--am-chart-surface) !important; }
.target-zoom-overlay {
  background: var(--am-bg) !important;
  color: var(--am-text) !important;
}
.target-zoom-info,
.target-zoom-info .tc-line,
.target-zoom-info .tz-dt,
.target-zoom-info .tz-dd,
.target-zoom-info .tz-section-title,
.target-zoom-info .tz-frame-table th,
.target-zoom-info .tz-frame-table td,
.target-zoom-name-primary,
.target-zoom-name-aliases,
.target-zoom-sky h3 { color: var(--am-text) !important; }
.planner-target-zoom-panel,
.target-zoom-info,
.target-zoom-info .tz-section,
.target-zoom-info .tz-frame-table-wrap,
.target-zoom-info .tz-frame-table,
.target-zoom-info .tz-frame-table th,
.target-zoom-info .tz-frame-table td {
  background: var(--am-chart-surface) !important;
}
.target-zoom-lower {
  grid-template-columns: minmax(360px, 1.08fr) minmax(0, 1fr) !important;
  max-width: 1320px !important;
}
.target-zoom-info { min-width: 0; max-width: none; }
.target-zoom-info .tz-row {
  grid-template-columns: minmax(9rem, auto) minmax(0, 1fr) !important;
}
.target-zoom-nav {
  width: 30px !important;
  height: 42px !important;
  border-radius: 6px !important;
  font-size: 1.55rem !important;
  line-height: 1 !important;
}
.target-zoom-nav--prev { left: max(4px, env(safe-area-inset-left, 0px)) !important; }
.target-zoom-nav--next { right: max(4px, env(safe-area-inset-right, 0px)) !important; }
@media (max-width: 700px) {
  .target-zoom-lower { grid-template-columns: 1fr !important; }
}
@media (max-width: 420px) {
  .target-zoom-nav {
    width: 26px !important;
    height: 36px !important;
    font-size: 1.35rem !important;
  }
}
.target-zoom-info .tz-section-title,
.target-zoom-info .tz-frame-table th { border-color: var(--am-border) !important; }
.target-zoom-overlay-toggle,
.target-zoom-starless-toggle,
.target-zoom-sky-2d3d-btn { background: var(--am-panel-raised) !important; color: var(--am-text) !important; border-color: var(--am-border-strong) !important; }
.target-zoom-calibrate-cta .tzo-open-calibrate {
  background: var(--am-panel-raised) !important;
  color: var(--am-text) !important;
  border-color: var(--am-border-strong) !important;
}
.target-zoom-calibrate-cta .tzo-open-calibrate:hover {
  background: var(--am-panel-muted) !important;
  color: var(--am-text) !important;
  border-color: var(--am-border-strong) !important;
}
.planner-loading,
.planner-empty,
.planner-error,
.calendar-loading,
.calendar-error,
[aria-busy="true"] { color: var(--am-text-muted); }

/* Calibrate forms and diagnostics. */
.calibrate-page,
.calibrate-page .page,
.calibrate-page .panel,
.calibrate-page .card,
.calibrate-page .status-card,
.calibrate-page .preview-panel,
.calibrate-page .equipment-panel {
  background-color: var(--am-panel) !important;
  color: var(--am-text) !important;
  border-color: var(--am-border) !important;
}
.calibrate-page { background: var(--am-bg) !important; }
.calibrate-page input,
.calibrate-page select,
.calibrate-page textarea,
.calibrate-page button { background-color: var(--am-control-bg); color: var(--am-text); border-color: var(--am-control-border); }
.calibrate-page .loading,
.calibrate-page .error,
.calibrate-page .status,
.calibrate-page [role="status"] { color: var(--am-text-muted) !important; }
.calibrate-page details.compact-fold {
  background: var(--am-panel-raised) !important;
  border-color: var(--am-border) !important;
  color: var(--am-text) !important;
}
.calibrate-page details.compact-fold > summary,
.calibrate-page .panel h2,
.calibrate-page fieldset legend,
.calibrate-page label,
.calibrate-page .theory-block summary,
.calibrate-page .target-input-label { color: var(--am-text) !important; }
.calibrate-page .kvs .k,
.calibrate-page .muted,
.calibrate-page .lead { color: var(--am-text-muted) !important; }
.calibrate-page .file-row,
.calibrate-page .result,
.calibrate-page .optics-estimate,
.calibrate-page .cal-section,
.calibrate-page .phase-log,
.calibrate-page .exposure-flow,
.calibrate-page .step-readiness,
.calibrate-page .compact-editor,
.calibrate-page .advanced-status,
.calibrate-page .manual-target,
.calibrate-page .debug-panel,
.calibrate-page .status-card {
  background: var(--am-panel-raised) !important;
  border-color: var(--am-border) !important;
  color: var(--am-text) !important;
}
.calibrate-page .manual-target-suggest .item {
  background: var(--am-panel) !important;
  border-color: var(--am-border) !important;
  color: var(--am-text) !important;
}
.calibrate-page details.panel > summary,
.calibrate-page .calibration-frames-modes > details > summary,
.calibrate-page .target-test-exposure-modes > details > summary {
  color: var(--am-text) !important;
}
.calibrate-page .target-exposure-target-row,
.calibrate-page .target-exposure-target-row .target-input-controls {
  background: var(--am-panel-raised) !important;
  border-color: var(--am-border) !important;
  color: var(--am-text) !important;
}
.calibrate-page #preview-activity-log,
.calibrate-page #preview-wrap,
.calibrate-page #preview-empty,
.calibrate-page #preview-pipeline-wrap,
.calibrate-page #preview-pipeline-wrap ul,
.calibrate-page #text-results-box,
.calibrate-page #snr-v2-preview-details,
.calibrate-page #snr-v2-preview-panel,
.calibrate-page #advanced-status,
.calibrate-page #phase-log,
.calibrate-page .status-cards,
.calibrate-page .compact-body {
  background: var(--am-panel-raised) !important;
  color: var(--am-text) !important;
  border-color: var(--am-border) !important;
}
.calibrate-page #preview-activity-log-lines,
.calibrate-page #preview-empty,
.calibrate-page #preview-status,
.calibrate-page #master-build-status,
.calibrate-page #active-light-file,
.calibrate-page #advanced-status-text,
.calibrate-page #phase-log,
.calibrate-page #snr-v2-preview-empty { color: var(--am-text-muted) !important; }
.calibrate-page .cal-section h3,
.calibrate-page .cal-list,
.calibrate-page .cal-list li,
.calibrate-page .status-card .k,
.calibrate-page .status-card .v,
.calibrate-page .optics-estimate .head,
.calibrate-page .optics-estimate .row { color: var(--am-text) !important; }
.calibrate-page .status-ok { color: var(--am-success) !important; background: color-mix(in srgb, var(--am-success) 14%, var(--am-panel)) !important; border-color: var(--am-success) !important; }
.calibrate-page .status-warn { color: var(--am-warning) !important; background: color-mix(in srgb, var(--am-warning) 14%, var(--am-panel)) !important; border-color: var(--am-warning) !important; }
.calibrate-page .status-bad { color: var(--am-danger) !important; background: color-mix(in srgb, var(--am-danger) 14%, var(--am-panel)) !important; border-color: var(--am-danger) !important; }
.calibrate-page .status-na { color: var(--am-text-muted) !important; background: var(--am-panel) !important; border-color: var(--am-border) !important; }
.calibrate-page .chip {
  background: var(--am-panel-raised) !important;
  border-color: var(--am-border) !important;
  color: var(--am-text) !important;
}

/* Measurement Vision adds its status strip dynamically. */
.advisor-main .measurement-panel .view-stage,
.advisor-main .side-panel .view-stage,
.advisor-main #focuser-stage,
.advisor-main #side-stage { background: var(--am-panel-muted) !important; }
.advisor-main #vision-status,
.advisor-main .vision-status,
.advisor-main .browser-camera-info {
  background: var(--am-panel-raised) !important;
  color: var(--am-text) !important;
  border-color: var(--am-border) !important;
}
.advisor-main .vision-status {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px 16px !important;
  box-sizing: border-box;
}
.advisor-main .vision-status > div { min-width: 0; }
.advisor-main .vision-status-label,
.advisor-main .vision-status-value {
  display: block;
  line-height: 1.25;
  white-space: normal;
  overflow-wrap: anywhere;
}
.advisor-main .vision-status-value { margin-top: 2px; }
.advisor-main #vision-status span,
.advisor-main #vision-status strong,
.advisor-main .vision-status-label,
.advisor-main .vision-status-value,
.advisor-main .browser-camera-info * { color: var(--am-text) !important; }

/* Dashboard charts and status boards. */
.dashboard-page canvas,
#rmsChart,
#compass-overlay { background: transparent; }
.dashboard-page .panel,
.dashboard-page .card,
.dashboard-page .hud-box { background: var(--am-panel) !important; color: var(--am-text) !important; border-color: var(--am-border) !important; }
.dashboard-page .operational-status-bar,
#operational-status-bar,
.dashboard-page .raw-derived-panel,
#raw-derived-panel {
  background: var(--am-panel-raised) !important;
  border-color: var(--am-border) !important;
  color: var(--am-text-muted) !important;
  text-shadow: none !important;
}
.dashboard-page .operational-status-bar.op-slewing,
.dashboard-page .operational-status-bar.op-aligning,
#operational-status-bar.op-slewing,
#operational-status-bar.op-aligning,
#operational-status-bar.op-guiding { color: var(--am-warning) !important; }
.dashboard-page .operational-status-bar.op-guiding-stable,
#operational-status-bar.op-guiding-stable { color: var(--am-success) !important; }
.dashboard-page .operational-status-bar.op-tracking-noguide,
#operational-status-bar.op-tracking-noguide { color: var(--am-danger) !important; }
.dashboard-page .operational-status-cap,
#operational-status-bar .operational-status-cap { color: var(--am-info) !important; text-shadow: none !important; }
.dashboard-page .raw-derived-header,
#raw-derived-panel .raw-derived-header { color: var(--am-text) !important; }
.dashboard-page #raw-derived-body > .module .separator,
.dashboard-page #raw-derived-body > .module .title,
#raw-derived-body > .module .separator,
#raw-derived-body > .module .title { border-color: var(--am-border) !important; }
.dashboard-page #raw-derived-body > .module .title,
#raw-derived-body > .module .title { color: var(--am-danger) !important; }
.dashboard-page .dbg-section-label,
#raw-derived-body .dbg-section-label { color: var(--am-text-subtle) !important; }
.dashboard-page .dbg-line.dbg-raw,
#raw-derived-body .dbg-line.dbg-raw { color: var(--am-text-muted) !important; }
.dashboard-page .dbg-line.dbg-raw .dbg-k,
.dashboard-page .dbg-line.dbg-derived .dbg-k,
#raw-derived-body .dbg-line.dbg-raw .dbg-k,
#raw-derived-body .dbg-line.dbg-derived .dbg-k { color: var(--am-text) !important; }
.dashboard-page .ra { color: var(--am-danger) !important; }
.dashboard-page .dec { color: var(--am-info) !important; }
.dashboard-page .tot { color: var(--am-success) !important; }

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