:root {
  color-scheme: dark;
  --industrial-bg: #232622;
  --industrial-surface: #2d302a;
  --industrial-deep: #1c201c;
  --industrial-border: #515a49;
  --industrial-text: #f2f3ed;
  --industrial-muted: #b7bfb0;
  --industrial-primary: #c5f52b;
  --industrial-primary-text: #c5f52b;
  --industrial-on-primary: #20251a;
  --industrial-warning: #e8b64f;
  --industrial-success-text: #b8e986;
  --industrial-info-text: #b6dcec;
  --industrial-danger-text: #ffb4ab;
  --industrial-focus: #c5f52b;
  --industrial-grid: rgba(242, 243, 237, 0.045);
  --industrial-shadow: rgba(0, 0, 0, 0.16);
  --bg: var(--industrial-bg);
  --card: var(--industrial-surface);
  --card2: var(--industrial-deep);
  --text: var(--industrial-text);
  --muted: var(--industrial-muted);
  --orange: var(--industrial-primary);
  --dark: var(--industrial-on-primary);
}

:root[data-theme="light"] {
  color-scheme: light;
  --industrial-bg: #f3f5ee;
  --industrial-surface: #ffffff;
  --industrial-deep: #e9ede1;
  --industrial-border: #c4ccb8;
  --industrial-text: #232a1e;
  --industrial-muted: #59634d;
  --industrial-primary: #c5f52b;
  --industrial-primary-text: #596b26;
  --industrial-on-primary: #20251a;
  --industrial-warning: #a36a00;
  --industrial-success-text: #25642d;
  --industrial-info-text: #185a72;
  --industrial-danger-text: #9d2727;
  --industrial-focus: #4f6800;
  --industrial-grid: rgba(35, 42, 30, 0.06);
  --industrial-shadow: rgba(35, 42, 30, 0.08);
}

html, body { background: var(--industrial-bg) !important; color: var(--industrial-text) !important; }
body { background-image: none !important; }
body, button, input { font-family: "IBM Plex Sans", "Segoe UI", Arial, sans-serif !important; }
header {
  background: color-mix(in srgb, var(--industrial-bg) 92%, transparent) !important;
  border-color: var(--industrial-border) !important;
  box-shadow: none !important;
}
header h1 { letter-spacing: 0 !important; }
header h1 b, header .sub, .cat-sub, .footer-tip, footer { color: var(--industrial-muted) !important; }
header h1 b { color: var(--industrial-primary-text) !important; }
.badge, .task-pill, .tag.on {
  background: color-mix(in srgb, var(--industrial-primary) 13%, var(--industrial-deep)) !important;
  border-color: var(--industrial-primary) !important;
  color: var(--industrial-primary-text) !important;
}

.card, .sim {
  background: var(--industrial-surface) !important;
  border-color: var(--industrial-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 3px 10px var(--industrial-shadow) !important;
}
.panel, .control {
  background: var(--industrial-deep) !important;
  border-color: var(--industrial-border) !important;
  border-radius: 7px !important;
}
.panel .row, .control, .step { border-color: var(--industrial-border) !important; }
.sidebar h2, .panel .row b, .control label b, .slider-field label b, .stage-head h2, .status b {
  color: var(--industrial-text) !important;
}
.panel .row span, .control label, .slider-field label, .legend, .step { color: var(--industrial-muted) !important; }
.panel .row b, .control label b, .slider-field label b, .task-pill, .badge, .tag, .metricBox text, .label, .smallLabel {
  font-family: "IBM Plex Mono", ui-monospace, monospace !important;
  letter-spacing: 0 !important;
}

button:not(#fs-toggle):not(#theme-toggle) {
  border-radius: 7px !important;
  box-shadow: none !important;
}
button:not(.sw):not(.sol):not(.mode):not(.power):not(.pump):not(.fault):not(#fs-toggle):not(#theme-toggle),
button.active, button.act, button.sol.active, button.mode.active, .seg button.active {
  background: var(--industrial-primary) !important;
  border-color: var(--industrial-primary) !important;
  color: var(--industrial-on-primary) !important;
}
button.sw, button.sol, button.mode, button.power, button.pump, button.fault, .seg button, .tabs button {
  background: var(--industrial-deep) !important;
  border-color: var(--industrial-border) !important;
  color: var(--industrial-muted) !important;
}
button:hover { filter: brightness(1.04) !important; transform: none !important; }
button:focus-visible, a:focus-visible, input:focus-visible {
  outline: 2px solid var(--industrial-focus) !important;
  outline-offset: 2px;
}
input[type="range"] { accent-color: var(--industrial-primary) !important; }

.status {
  border-radius: 7px !important;
  background: color-mix(in srgb, #38bdf8 9%, var(--industrial-deep)) !important;
  color: var(--industrial-info-text) !important;
}
.status.ok, button.sw.on, button.power.on, button.pump.on, .step.done {
  background: color-mix(in srgb, #22c55e 11%, var(--industrial-deep)) !important;
  color: var(--industrial-success-text) !important;
}
.status.warn {
  background: color-mix(in srgb, var(--industrial-warning) 12%, var(--industrial-deep)) !important;
  color: var(--industrial-warning) !important;
}
.status.danger, .status.fault, button.fault.armed, button.sw.warn {
  background: color-mix(in srgb, #ef4444 11%, var(--industrial-deep)) !important;
  color: var(--industrial-danger-text) !important;
}
.legend span { background: var(--industrial-deep) !important; border-color: var(--industrial-border) !important; }

.stage, #stage {
  border-color: var(--industrial-border) !important;
  border-radius: 7px !important;
  box-shadow: none !important;
}
#stage { background-color: var(--industrial-deep) !important; }

#fs-toggle, #theme-toggle, #mtb-back {
  box-sizing: border-box;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: auto !important;
  min-height: 34px;
  padding: 7px 11px !important;
  border: 1px solid var(--industrial-border) !important;
  border-radius: 7px !important;
  background: color-mix(in srgb, var(--industrial-deep) 94%, transparent) !important;
  color: var(--industrial-text) !important;
  box-shadow: 0 2px 8px var(--industrial-shadow) !important;
  backdrop-filter: blur(8px);
  font: 600 12px "IBM Plex Mono", ui-monospace, monospace !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
}
#fs-toggle { right: 14px !important; }
#theme-toggle {
  position: fixed;
  top: 14px;
  right: 126px;
  z-index: 99999;
  cursor: pointer;
}
#mtb-back { border-color: var(--industrial-primary) !important; color: var(--industrial-primary-text) !important; }

nav { background: color-mix(in srgb, var(--industrial-bg) 94%, transparent) !important; border-color: var(--industrial-border) !important; }
nav a { border-color: var(--industrial-border) !important; color: var(--industrial-muted) !important; border-radius: 7px !important; }
nav a:hover { color: var(--industrial-on-primary) !important; background: var(--industrial-primary) !important; border-color: var(--industrial-primary) !important; }
.dot { background: var(--industrial-primary) !important; }
.tag.soon { color: var(--industrial-warning) !important; background: color-mix(in srgb, var(--industrial-warning) 10%, var(--industrial-deep)) !important; border-color: var(--industrial-warning) !important; }
.sim.ready:hover { transform: translateY(-2px) !important; border-color: var(--industrial-primary) !important; box-shadow: 0 6px 16px var(--industrial-shadow) !important; }

:root[data-theme="light"] .stage { filter: brightness(1.02) saturate(.92); }
:root[data-theme="light"] b.ok, :root[data-theme="light"] .ok { color: var(--industrial-success-text) !important; }
:root[data-theme="light"] b.hi, :root[data-theme="light"] .danger { color: var(--industrial-danger-text) !important; }
:root[data-theme="light"] b.mid, :root[data-theme="light"] .warn { color: var(--industrial-warning) !important; }

@media (max-width: 640px) {
  #fs-toggle { top: 10px !important; right: 10px !important; }
  #theme-toggle { top: 52px; right: 10px; }
  body > header { padding-right: 126px !important; }
  body > header img { max-width: calc(100vw - 150px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}
