:root,
:root[data-theme="midnight"],
body[data-theme="midnight"]{
  --bg:#0b1220;
  --bg-soft:#0f172a;
  --bg-elevated:#162036;
  --panel:#111827;
  --panel-2:#0d1526;
  --panel-3:#1f2937;
  --border:#1f2937;
  --border-strong:#243244;

  --text:#e5e7eb;
  --text-strong:#f8fafc;
  --text-soft:#cbd5e1;
  --muted:#94a3b8;

  --primary:#60a5fa;
  --primary-strong:#2563eb;
  --primary-hover:#1d4ed8;

  --success:#22c55e;
  --warning:#f59e0b;
  --danger:#ef4444;

  --page-bg:#0b1220;
  --hero-bg:linear-gradient(135deg, rgba(37,99,235,0.16), rgba(15,23,42,0.96) 45%, rgba(17,24,39,0.98));
  --shadow:0 18px 44px rgba(0,0,0,0.28);
  --header-wrap-bg:rgba(6,11,22,0.92);
  --header-shell-bg:linear-gradient(180deg, rgba(15,23,42,0.92), rgba(11,18,32,0.96));
}

:root[data-theme="sunrise"],
body[data-theme="sunrise"]{
  --bg:#fff8f1;
  --bg-soft:#fff3e6;
  --bg-elevated:#ffedd5;
  --panel:#ffffff;
  --panel-2:#fff7ed;
  --panel-3:#ffe7c7;
  --border:#fed7aa;
  --border-strong:#fdba74;

  --text:#3b2f2f;
  --text-strong:#1f172a;
  --text-soft:#5b4b43;
  --muted:#7c6f64;

  --primary:#f97316;
  --primary-strong:#ea580c;
  --primary-hover:#c2410c;

  --success:#16a34a;
  --warning:#d97706;
  --danger:#dc2626;

  --page-bg:#fff8f1;
  --hero-bg:linear-gradient(135deg, rgba(249,115,22,0.14), rgba(255,247,237,0.96) 45%, rgba(255,255,255,0.98));
  --shadow:0 18px 44px rgba(120,53,15,0.12);
  --header-wrap-bg:rgba(255,250,245,0.95);
  --header-shell-bg:linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,247,237,0.98));
}

:root[data-theme="forest"],
body[data-theme="forest"]{
  --bg:#08130f;
  --bg-soft:#0d1f18;
  --bg-elevated:#153126;
  --panel:#10221b;
  --panel-2:#0b1813;
  --panel-3:#173128;
  --border:#1f3a2f;
  --border-strong:#2b5b49;

  --text:#e7f7ef;
  --text-strong:#f4fff8;
  --text-soft:#cfe9db;
  --muted:#9bc5b0;

  --primary:#34d399;
  --primary-strong:#10b981;
  --primary-hover:#059669;

  --success:#22c55e;
  --warning:#f59e0b;
  --danger:#f87171;

  --page-bg:#08130f;
  --hero-bg:linear-gradient(135deg, rgba(16,185,129,0.16), rgba(13,31,24,0.96) 45%, rgba(16,34,27,0.98));
  --shadow:0 18px 44px rgba(0,0,0,0.30);
  --header-wrap-bg:rgba(8,19,15,0.94);
  --header-shell-bg:linear-gradient(180deg, rgba(13,31,24,0.94), rgba(8,19,15,0.97));
}

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

/* ------------------------------ */
/* Global theme-aware base layer  */
/* ------------------------------ */

body,
.page,
.panel,
.card,
.hero,
.hero-side,
.stat,
.mini-stat,
.notice,
.empty,
.item,
.note,
.control-box,
.result-box,
.result-row,
.status-bar,
.table-card,
.chart-card,
.heatmap-card,
.drawer,
.drawer-card,
.field-item,
.visibility-box,
.event-item,
.alert-card{
  color:var(--text);
}

h1,h2,h3,h4,h5,h6,
.page-title,
.hero-title,
.section-title,
.panel-title,
.card-title,
.table-title,
.chart-title,
.heatmap-title,
.drawer-title,
.field-name,
.alert-device,
.result-title{
  color:var(--text-strong);
}

p,
.page-subtitle,
.hero-subtitle,
.section-subtitle,
.panel-subtitle,
.card-sub,
.mini-sub,
.muted,
.threshold-note,
.table-meta,
.chart-meta,
.heatmap-meta,
.drawer-subtitle,
.drawer-field-sub,
.drawer-field-range,
.visibility-meta,
.timestamp-sub,
.header-sub,
.alert-time,
.alert-id,
.note-text,
.help,
.info-text,
.stat-sub{
  color:var(--muted);
}

label,
.inline-check,
.toggle-cell,
.result-label,
.drawer-meta-label,
.delta-label,
.sparkline-label,
.mini-label,
.stat-label,
.card-title,
.visibility-name{
  color:var(--text-soft);
}

input,
select,
textarea{
  color:var(--text);
  background:var(--bg-soft);
  border-color:var(--border-strong);
}

table,
th,
td{
  color:var(--text);
}

th{
  color:var(--primary);
}

/* ========================================= */
/* Sunrise hard-override cleanup layer       */
/* Add this at the VERY END of theme.css     */
/* ========================================= */

:root[data-theme="sunrise"] .page,
body[data-theme="sunrise"] .page{
  color:var(--text) !important;
}

:root[data-theme="sunrise"] .page h1,
:root[data-theme="sunrise"] .page h2,
:root[data-theme="sunrise"] .page h3,
:root[data-theme="sunrise"] .page h4,
:root[data-theme="sunrise"] .page h5,
:root[data-theme="sunrise"] .page h6,
:root[data-theme="sunrise"] .page .page-title,
:root[data-theme="sunrise"] .page .hero-title,
:root[data-theme="sunrise"] .page .panel-title,
:root[data-theme="sunrise"] .page .card-title,
:root[data-theme="sunrise"] .page .table-title,
:root[data-theme="sunrise"] .page .chart-title,
:root[data-theme="sunrise"] .page .heatmap-title,
:root[data-theme="sunrise"] .page .drawer-title,
:root[data-theme="sunrise"] .page .result-title,
:root[data-theme="sunrise"] .page .field-name,
:root[data-theme="sunrise"] .page .alert-device,
:root[data-theme="sunrise"] .page .mini-value,
:root[data-theme="sunrise"] .page .card-value,
:root[data-theme="sunrise"] .page .stat-value,
:root[data-theme="sunrise"] .page .drawer-field-value,
:root[data-theme="sunrise"] .page .timestamp-main,
:root[data-theme="sunrise"] .page .table-wrap td,
:root[data-theme="sunrise"] .page table td,
:root[data-theme="sunrise"] .page .visibility-name,
:root[data-theme="sunrise"] .page .delta-value,
body[data-theme="sunrise"] .page h1,
body[data-theme="sunrise"] .page h2,
body[data-theme="sunrise"] .page h3,
body[data-theme="sunrise"] .page h4,
body[data-theme="sunrise"] .page h5,
body[data-theme="sunrise"] .page h6,
body[data-theme="sunrise"] .page .page-title,
body[data-theme="sunrise"] .page .hero-title,
body[data-theme="sunrise"] .page .panel-title,
body[data-theme="sunrise"] .page .card-title,
body[data-theme="sunrise"] .page .table-title,
body[data-theme="sunrise"] .page .chart-title,
body[data-theme="sunrise"] .page .heatmap-title,
body[data-theme="sunrise"] .page .drawer-title,
body[data-theme="sunrise"] .page .result-title,
body[data-theme="sunrise"] .page .field-name,
body[data-theme="sunrise"] .page .alert-device,
body[data-theme="sunrise"] .page .mini-value,
body[data-theme="sunrise"] .page .card-value,
body[data-theme="sunrise"] .page .stat-value,
body[data-theme="sunrise"] .page .drawer-field-value,
body[data-theme="sunrise"] .page .timestamp-main,
body[data-theme="sunrise"] .page .table-wrap td,
body[data-theme="sunrise"] .page table td,
body[data-theme="sunrise"] .page .visibility-name,
body[data-theme="sunrise"] .page .delta-value{
  color:var(--text-strong) !important;
}

:root[data-theme="sunrise"] .page p,
:root[data-theme="sunrise"] .page span,
:root[data-theme="sunrise"] .page div,
:root[data-theme="sunrise"] .page li,
:root[data-theme="sunrise"] .page label,
:root[data-theme="sunrise"] .page .page-subtitle,
:root[data-theme="sunrise"] .page .hero-subtitle,
:root[data-theme="sunrise"] .page .panel-subtitle,
:root[data-theme="sunrise"] .page .card-sub,
:root[data-theme="sunrise"] .page .mini-sub,
:root[data-theme="sunrise"] .page .muted,
:root[data-theme="sunrise"] .page .help,
:root[data-theme="sunrise"] .page .info-text,
:root[data-theme="sunrise"] .page .alert-text,
:root[data-theme="sunrise"] .page .drawer-field-sub,
:root[data-theme="sunrise"] .page .note-text,
:root[data-theme="sunrise"] .page .result-value,
:root[data-theme="sunrise"] .page .toggle-cell,
:root[data-theme="sunrise"] .page .inline-check,
body[data-theme="sunrise"] .page p,
body[data-theme="sunrise"] .page span,
body[data-theme="sunrise"] .page div,
body[data-theme="sunrise"] .page li,
body[data-theme="sunrise"] .page label,
body[data-theme="sunrise"] .page .page-subtitle,
body[data-theme="sunrise"] .page .hero-subtitle,
body[data-theme="sunrise"] .page .panel-subtitle,
body[data-theme="sunrise"] .page .card-sub,
body[data-theme="sunrise"] .page .mini-sub,
body[data-theme="sunrise"] .page .muted,
body[data-theme="sunrise"] .page .help,
body[data-theme="sunrise"] .page .info-text,
body[data-theme="sunrise"] .page .alert-text,
body[data-theme="sunrise"] .page .drawer-field-sub,
body[data-theme="sunrise"] .page .note-text,
body[data-theme="sunrise"] .page .result-value,
body[data-theme="sunrise"] .page .toggle-cell,
body[data-theme="sunrise"] .page .inline-check{
  color:var(--text) !important;
}

:root[data-theme="sunrise"] .page .threshold-note,
:root[data-theme="sunrise"] .page .timestamp-sub,
:root[data-theme="sunrise"] .page .header-sub,
:root[data-theme="sunrise"] .page .visibility-meta,
:root[data-theme="sunrise"] .page .drawer-subtitle,
:root[data-theme="sunrise"] .page .drawer-field-range,
:root[data-theme="sunrise"] .page .alert-time,
:root[data-theme="sunrise"] .page .alert-id,
:root[data-theme="sunrise"] .page .mini-label,
:root[data-theme="sunrise"] .page .stat-label,
:root[data-theme="sunrise"] .page .result-label,
:root[data-theme="sunrise"] .page .drawer-meta-label,
:root[data-theme="sunrise"] .page .delta-label,
:root[data-theme="sunrise"] .page .sparkline-label,
body[data-theme="sunrise"] .page .threshold-note,
body[data-theme="sunrise"] .page .timestamp-sub,
body[data-theme="sunrise"] .page .header-sub,
body[data-theme="sunrise"] .page .visibility-meta,
body[data-theme="sunrise"] .page .drawer-subtitle,
body[data-theme="sunrise"] .page .drawer-field-range,
body[data-theme="sunrise"] .page .alert-time,
body[data-theme="sunrise"] .page .alert-id,
body[data-theme="sunrise"] .page .mini-label,
body[data-theme="sunrise"] .page .stat-label,
body[data-theme="sunrise"] .page .result-label,
body[data-theme="sunrise"] .page .drawer-meta-label,
body[data-theme="sunrise"] .page .delta-label,
body[data-theme="sunrise"] .page .sparkline-label{
  color:var(--muted) !important;
}

:root[data-theme="sunrise"] .page input,
:root[data-theme="sunrise"] .page select,
:root[data-theme="sunrise"] .page textarea,
body[data-theme="sunrise"] .page input,
body[data-theme="sunrise"] .page select,
body[data-theme="sunrise"] .page textarea{
  color:var(--text) !important;
  background:var(--bg-soft) !important;
  border-color:var(--border-strong) !important;
}

:root[data-theme="sunrise"] .page table th,
body[data-theme="sunrise"] .page table th{
  color:var(--primary) !important;
}

/* keep explicit status / severity colors intact */
:root[data-theme="sunrise"] .page .cell-high,
:root[data-theme="sunrise"] .page .alert-line.high,
body[data-theme="sunrise"] .page .cell-high,
body[data-theme="sunrise"] .page .alert-line.high{
  color:#7f1d1d !important;
}

:root[data-theme="sunrise"] .page .cell-low,
:root[data-theme="sunrise"] .page .alert-line.low,
body[data-theme="sunrise"] .page .cell-low,
body[data-theme="sunrise"] .page .alert-line.low{
  color:#1e3a8a !important;
}
