/* ============================================================
   themes-extra.css
   Drop-in additional themes for getbased.
   Uses the existing token names from styles.css :root -
   no changes needed to feature CSS, just include this file
   after styles.css and add "cyberterm" | "glass" | "synth-sunrise"
   | "neuromancer" as valid values in theme.js.
   ============================================================ */

/* ------------------------------------------------------------
   CYPHERPUNK TERMINAL - refined, mono, sharp corners.
   ------------------------------------------------------------ */
[data-theme="cyberterm"] {
  --bg-primary: #0b0d0b;
  --bg-secondary: #10130f;
  --bg-card: #0e110d;
  --sync-popover-bg: #0e110d;
  --bg-hover: #141812;
  --border: #1f2e23;
  --text-primary: #cfe9d6;
  --text-secondary: #7ea88d;
  --text-muted: #4a6b56;
  --accent: #4ade80;
  --accent-light: #6df09a;
  --accent-fill: rgba(74,222,128,0.10);
  --accent-gradient: linear-gradient(135deg, #4ade80 0%, #4ade80 100%);
  --green: #4ade80;
  --green-bg: rgba(74,222,128,0.12);
  --red: #e54b4b;
  --red-bg: rgba(229,75,75,0.12);
  --yellow: #e0a93a;
  --yellow-bg: rgba(224,169,58,0.12);
  --orange: #d4a017;
  --orange-bg: rgba(212,160,23,0.12);
  --purple: #9ca5d4;
  --purple-light: rgba(156,165,212,0.14);
  --cyan: rgba(78,222,222,0.6);
  --neutral-soft-bg: rgba(126, 168, 141, 0.08);
  --alert-soft-bg: rgba(229, 75, 75, 0.10);
  --ref-band: rgba(74,222,128,0.06);
  --ref-border: rgba(74,222,128,0.25);
  --chart-grid: rgba(31,46,35,0.6);
  --chart-tooltip-bg: rgba(11,13,11,0.95);
  --shadow: 2px 2px 0 #1f2e23;
  --shadow-lg: 3px 3px 0 #1f2e23;
  --shadow-glow: 0 0 0 1px var(--accent);
  --radius: 0px;
  --radius-sm: 0px;
  --font-display: 'JetBrains Mono', ui-monospace, monospace;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-theme="cyberterm"] body {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
}
/* Signature touches - minimal, only on the chrome */
[data-theme="cyberterm"] .header h1::before { content: "$ "; color: var(--text-muted); }
@keyframes ct-cursor { 50% { opacity: 0; } }


/* ------------------------------------------------------------
   GLASS / LIQUID - translucent surfaces, ambient mesh.
   ------------------------------------------------------------ */
[data-theme="glass"] {
  --bg-primary: #0a0817;
  --bg-secondary: rgba(28, 22, 56, 0.5);
  --bg-card: rgba(38, 30, 72, 0.35);
  --sync-popover-bg: #181230;
  --bg-hover: rgba(50, 40, 92, 0.45);
  --border: rgba(255, 255, 255, 0.12);
  --text-primary: #f6f3ff;
  --text-secondary: #c8bfe4;
  --text-muted: #9c92ba;
  --accent: #c986ff;
  --accent-light: #e0a5ff;
  --accent-fill: rgba(201,134,255,0.10);
  --accent-gradient: linear-gradient(135deg, #c986ff 0%, #6ec4ff 100%);
  --green: #34e1a8;
  --green-bg: rgba(52,225,168,0.14);
  --red: #ff6d8a;
  --red-bg: rgba(255,109,138,0.14);
  --yellow: #ffd56b;
  --yellow-bg: rgba(255,213,107,0.14);
  --orange: #ff9d5c;
  --orange-bg: rgba(255,157,92,0.14);
  --purple: #b794f6;
  --purple-light: rgba(183,148,246,0.18);
  --cyan: rgba(120,210,255,0.6);
  --neutral-soft-bg: rgba(156, 146, 186, 0.12);
  --alert-soft-bg: rgba(255,109,138,0.12);
  --ref-band: rgba(201,134,255,0.08);
  --ref-border: rgba(201,134,255,0.3);
  --chart-grid: rgba(255,255,255,0.06);
  --chart-tooltip-bg: rgba(20,15,40,0.85);
  --shadow: 0 1px 0 rgba(255,255,255,0.18) inset, 0 24px 60px -20px rgba(0,0,0,0.6);
  --shadow-lg: 0 40px 80px -20px rgba(0,0,0,0.7);
  --shadow-glow: 0 0 0 1px var(--accent), 0 8px 24px rgba(201,134,255,0.25);
  --radius: 22px;
  --radius-sm: 14px;
  --font-display: 'Outfit', 'Inter', Georgia, serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-theme="glass"] body {
  background:
    linear-gradient(135deg, rgba(201,134,255,0.18) 0%, rgba(110,196,255,0.12) 42%, rgba(10,8,23,1) 100%),
    #0a0817;
  position: relative;
  font-family: 'Inter', system-ui, sans-serif;
}
[data-theme="glass"] body::before {
  display: none;
}
@keyframes glass-drift {
  0%   { transform: translate(0,0) scale(1); }
  50%  { transform: translate(-3%, 2%) scale(1.05); }
  100% { transform: translate(2%, -2%) scale(1.02); }
}
[data-theme="glass"] .header,
[data-theme="glass"] .sidebar,
[data-theme="glass"] .main,
[data-theme="glass"] .layout,
[data-theme="glass"] .app-footer { position: relative; z-index: 1; }
/* Frosted-glass treatment for primary card surfaces */
[data-theme="glass"] .chart-card,
[data-theme="glass"] .context-card,
[data-theme="glass"] .focus-card,
[data-theme="glass"] .lens-section,
[data-theme="glass"] .trend-alert-card,
[data-theme="glass"] .supp-timeline,
[data-theme="glass"] .alert-card,
[data-theme="glass"] .light-today-strip,
[data-theme="glass"] .light-conditions-now-wrap,
[data-theme="glass"] .light-setup-card,
[data-theme="glass"] .light-setup-summary,
[data-theme="glass"] .light-setup-prompt,
[data-theme="glass"] .light-channels-section,
[data-theme="glass"] .light-collapsed-section,
[data-theme="glass"] .light-channel-detail,
[data-theme="glass"] .light-device-card,
[data-theme="glass"] .light-explainer,
[data-theme="glass"] .light-data-source-details,
[data-theme="glass"] .conditions-now-cell,
[data-theme="glass"] .sun-session,
[data-theme="glass"] .modal,
[data-theme="glass"] .header,
[data-theme="glass"] .sidebar {
  backdrop-filter: blur(8px) saturate(140%);
  -webkit-backdrop-filter: blur(8px) saturate(140%);
}


/* ------------------------------------------------------------
   SYNTH SUNRISE - synthwave horizon, gridded ground.
   ------------------------------------------------------------ */
[data-theme="synth-sunrise"] {
  --bg-primary: #0d0524;
  --bg-secondary: #150830;
  --bg-card: rgba(28, 14, 64, 0.65);
  --sync-popover-bg: #150830;
  --bg-hover: rgba(40, 22, 80, 0.75);
  --border: rgba(255, 43, 214, 0.35);
  --text-primary: #f6e8ff;
  --text-secondary: #c8b0e4;
  --text-muted: #9882b8;
  --accent: #ff2bd6;
  --accent-light: #ff6ce0;
  --accent-fill: rgba(255,43,214,0.10);
  --accent-gradient: linear-gradient(135deg, #ff7a18 0%, #ff2bd6 50%, #7c3aed 100%);
  --green: #2bffb4;
  --green-bg: rgba(43,255,180,0.14);
  --red: #ff3b6b;
  --red-bg: rgba(255,59,107,0.14);
  --yellow: #ffd56b;
  --yellow-bg: rgba(255,213,107,0.14);
  --orange: #ff7a18;
  --orange-bg: rgba(255,122,24,0.14);
  --purple: #c084fc;
  --purple-light: rgba(192,132,252,0.18);
  --cyan: rgba(0,224,255,0.65);
  --neutral-soft-bg: rgba(152, 130, 184, 0.12);
  --alert-soft-bg: rgba(255,59,107,0.12);
  --ref-band: rgba(255,43,214,0.06);
  --ref-border: rgba(255,43,214,0.3);
  --chart-grid: rgba(255,43,214,0.08);
  --chart-tooltip-bg: rgba(13,5,36,0.92);
  --shadow: 0 16px 40px -16px rgba(0,0,0,0.7), 0 0 24px -8px rgba(255,43,214,0.35);
  --shadow-lg: 0 0 60px -10px rgba(255,43,214,0.45), 0 24px 60px -16px rgba(0,0,0,0.7);
  --shadow-glow: 0 0 0 1px var(--accent), 0 0 24px rgba(255,43,214,0.4);
  --radius: 4px;
  --radius-sm: 2px;
  --font-display: 'Outfit', 'Inter', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-theme="synth-sunrise"] body {
  background:
    radial-gradient(60% 80% at 50% 95%, #ff7a18 0%, #ff2bd6 22%, #7c3aed 42%, #1c0a4a 70%, #0d0524 100%);
  background-attachment: scroll;
  position: relative;
  font-family: 'Outfit', 'Inter', sans-serif;
}
[data-theme="synth-sunrise"] body::before {
  content: "";
  position: fixed;
  left: 0; right: 0; bottom: 0;
  height: 50vh;
  background:
    linear-gradient(transparent 0%, rgba(255,43,214,0.18) 100%),
    linear-gradient(to right,  rgba(255,43,214,0.7) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,43,214,0.7) 1px, transparent 1px);
  background-size: 100% 100%, 60px 60px, 60px 60px;
  transform: perspective(500px) rotateX(60deg);
  transform-origin: center bottom;
  mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.7) 30%, black 70%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.7) 30%, black 70%);
  pointer-events: none;
  z-index: 0;
  opacity: 0.5;
  animation: synth-scroll 14s linear infinite;
}
@keyframes synth-scroll {
  0%   { background-position: 0 0, 0 0, 0 0; }
  100% { background-position: 0 0, 0 60px, 0 60px; }
}
@media (prefers-reduced-motion: reduce) {
  [data-theme="glass"] body::before,
  [data-theme="synth-sunrise"] body::before {
    animation: none;
  }
}
[data-theme="synth-sunrise"] .header,
[data-theme="synth-sunrise"] .sidebar,
[data-theme="synth-sunrise"] .main,
[data-theme="synth-sunrise"] .layout,
[data-theme="synth-sunrise"] .app-footer { position: relative; z-index: 1; }


/* ------------------------------------------------------------
   NEUROMANCER - Chiba City neon, ICE blue + sodium magenta.
   ------------------------------------------------------------ */
[data-theme="neuromancer"] {
  --bg-primary: #050608;
  --bg-secondary: #0a0d12;
  --bg-card: rgba(8, 11, 16, 0.7);
  --sync-popover-bg: #0a0d12;
  --bg-hover: rgba(14, 20, 28, 0.85);
  --border: rgba(0, 229, 255, 0.22);
  --text-primary: #c8e8f5;
  --text-secondary: #8aa8b8;
  --text-muted: #5a7585;
  --accent: #00e5ff;
  --accent-light: #5cf2ff;
  --accent-fill: rgba(0,229,255,0.10);
  --accent-gradient: linear-gradient(135deg, #00e5ff 0%, #ff2bd6 100%);
  --green: #00ff9d;
  --green-bg: rgba(0,255,157,0.14);
  --red: #ff2244;
  --red-bg: rgba(255,34,68,0.14);
  --yellow: #ffb000;
  --yellow-bg: rgba(255,176,0,0.14);
  --orange: #ff7a18;
  --orange-bg: rgba(255,122,24,0.14);
  --purple: #ff2bd6;
  --purple-light: rgba(255,43,214,0.18);
  --cyan: rgba(0,229,255,0.6);
  --neutral-soft-bg: rgba(90, 117, 133, 0.12);
  --alert-soft-bg: rgba(255,34,68,0.12);
  --ref-band: rgba(0,229,255,0.06);
  --ref-border: rgba(0,229,255,0.3);
  --chart-grid: rgba(0,229,255,0.08);
  --chart-tooltip-bg: rgba(5,6,8,0.95);
  --shadow: 0 0 0 1px rgba(0,229,255,0.1), 0 0 24px -6px rgba(0,229,255,0.3);
  --shadow-lg: 0 0 60px -10px rgba(0,229,255,0.45), 0 0 120px -30px rgba(255,43,214,0.4);
  --shadow-glow: 0 0 0 1px var(--accent), 0 0 24px rgba(0,229,255,0.45);
  --radius: 0px;
  --radius-sm: 0px;
  --font-display: 'JetBrains Mono', ui-monospace, monospace;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-theme="neuromancer"] body {
  background-color: #050608;
  position: relative;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
}
/* Subtle dataspace grid */
[data-theme="neuromancer"] body::before {
  content: "";
  position: fixed; inset: 0;
  background-image:
    linear-gradient(to right, rgba(0,229,255,0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0,229,255,0.05) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  z-index: 0;
  opacity: 0.6;
}
[data-theme="neuromancer"] .header,
[data-theme="neuromancer"] .sidebar,
[data-theme="neuromancer"] .main,
[data-theme="neuromancer"] .layout,
[data-theme="neuromancer"] .app-footer { position: relative; z-index: 1; }


/* ------------------------------------------------------------
   Fonts stay local: index.html loads vendor/fonts/fonts.css only, so the
   theme switcher never leaks a page view to a third-party font host.
   ------------------------------------------------------------ */


/* ------------------------------------------------------------
   Phase 6 gap fixes - visual polish and contrast-safe theme glue.
   ------------------------------------------------------------ */

[data-theme="glass"] .layout,
[data-theme="glass"] .main,
[data-theme="synth-sunrise"] .layout,
[data-theme="synth-sunrise"] .main,
[data-theme="neuromancer"] .layout,
[data-theme="neuromancer"] .main {
  background: transparent;
}

[data-theme="glass"] .header,
[data-theme="synth-sunrise"] .header,
[data-theme="neuromancer"] .header {
  background: color-mix(in srgb, var(--bg-secondary) 88%, transparent);
}

[data-theme="glass"] .sidebar,
[data-theme="synth-sunrise"] .sidebar,
[data-theme="neuromancer"] .sidebar {
  background: color-mix(in srgb, var(--bg-secondary) 80%, transparent);
}

[data-theme="cyberterm"] .chart-card,
[data-theme="cyberterm"] .alert-card,
[data-theme="cyberterm"] .context-card,
[data-theme="cyberterm"] .focus-card,
[data-theme="cyberterm"] .lens-section,
[data-theme="cyberterm"] .fa-card,
[data-theme="cyberterm"] .trend-alert-card,
[data-theme="cyberterm"] .supp-timeline,
[data-theme="cyberterm"] .stat-card {
  box-shadow: var(--shadow);
}

[data-theme="cyberterm"] .chart-card:hover,
[data-theme="cyberterm"] .alert-card:hover,
[data-theme="cyberterm"] .context-card:hover,
[data-theme="cyberterm"] .focus-card:hover,
[data-theme="cyberterm"] .lens-section:hover,
[data-theme="cyberterm"] .fa-card:hover,
[data-theme="cyberterm"] .trend-alert-card:hover,
[data-theme="cyberterm"] .supp-timeline:hover,
[data-theme="cyberterm"] .stat-card:hover {
  box-shadow: 3px 3px 0 var(--accent);
}

[data-theme="cyberterm"] { --on-accent: #0b0d0b; }
[data-theme="glass"] { --on-accent: #1a0a2c; }
/* #ff2bd6 with white foreground is under AA for normal text; this dark
   foreground keeps synth active controls readable. */
[data-theme="synth-sunrise"] { --on-accent: #0d0524; }
[data-theme="synth-sunrise"] .dashboard-action-btn-primary:hover,
[data-theme="synth-sunrise"] .light-today-cta:not(.light-today-cta-secondary):hover,
[data-theme="synth-sunrise"] .sun-session-ctl-stop:hover,
[data-theme="synth-sunrise"] .import-btn-primary:hover { color: #fff; }
[data-theme="neuromancer"] { --on-accent: #050608; }

[data-theme="cyberterm"] .brand-mark::before {
  content: "$ ";
  color: var(--text-muted);
  background: none;
  -webkit-text-fill-color: var(--text-muted);
}

[data-theme="synth-sunrise"] .header {
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 38%, transparent);
  box-shadow:
    0 1px 0 color-mix(in srgb, var(--accent) 14%, transparent) inset,
    0 12px 24px -16px rgba(255, 43, 214, 0.4);
}

[data-theme="synth-sunrise"] .app-footer {
  background:
    linear-gradient(180deg, rgba(13, 5, 36, 0.86) 0%, rgba(7, 3, 20, 0.97) 100%);
  border-top-color: rgba(255, 43, 214, 0.42);
  box-shadow:
    0 -32px 90px rgba(13, 5, 36, 0.82),
    inset 0 1px 0 rgba(255, 213, 107, 0.16);
  backdrop-filter: blur(16px) saturate(120%);
  -webkit-backdrop-filter: blur(16px) saturate(120%);
}

[data-theme="synth-sunrise"] .app-footer-logo {
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.7));
}

[data-theme="synth-sunrise"] .app-footer-disclaimer {
  color: #f2e6ff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);
}

[data-theme="synth-sunrise"] .app-footer-trademarks,
[data-theme="synth-sunrise"] .app-footer-legal,
[data-theme="synth-sunrise"] .app-footer-legal a,
[data-theme="synth-sunrise"] .app-footer-socials a,
[data-theme="synth-sunrise"] .app-footer-version,
[data-theme="synth-sunrise"] .app-footer-version a {
  color: #d9c4f5;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7);
}

[data-theme="synth-sunrise"] .app-footer-legal a:hover,
[data-theme="synth-sunrise"] .app-footer-version a:hover,
[data-theme="synth-sunrise"] .app-footer-socials a:hover {
  color: #ffd56b;
}

[data-theme="neuromancer"] .header {
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 32%, transparent);
}

[data-theme="neuromancer"] .brand-mark,
[data-theme="neuromancer"] .header h1.brand-mark,
[data-theme="neuromancer"] .app-footer-logo {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-variant-caps: normal;
  letter-spacing: 0;
  text-transform: lowercase;
}

[data-theme="neuromancer"] body {
  letter-spacing: 0.012em;
}

[data-theme="cyberterm"] ::-webkit-scrollbar-track { background: var(--bg-primary); }
[data-theme="cyberterm"] ::-webkit-scrollbar-thumb { background: var(--border); border-radius: 0; }
[data-theme="cyberterm"] ::-webkit-scrollbar-thumb:hover { background: var(--accent); }

[data-theme="glass"] ::-webkit-scrollbar-track { background: transparent; }
[data-theme="glass"] ::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--accent) 30%, transparent); border-radius: 6px; }
[data-theme="glass"] ::-webkit-scrollbar-thumb:hover { background: color-mix(in srgb, var(--accent) 55%, transparent); }

[data-theme="synth-sunrise"] ::-webkit-scrollbar-track { background: rgba(13, 5, 36, 0.5); }
[data-theme="synth-sunrise"] ::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--accent) 40%, transparent); border-radius: 2px; }
[data-theme="synth-sunrise"] ::-webkit-scrollbar-thumb:hover { background: var(--accent); }

[data-theme="neuromancer"] ::-webkit-scrollbar-track { background: var(--bg-primary); }
[data-theme="neuromancer"] ::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--accent) 28%, transparent); border-radius: 0; }
[data-theme="neuromancer"] ::-webkit-scrollbar-thumb:hover { background: var(--accent); }

@media (prefers-reduced-motion: reduce) {
  [data-theme="glass"] body,
  [data-theme="synth-sunrise"] body {
    background: var(--bg-primary);
    background-attachment: scroll;
  }
  [data-theme="glass"] body::before,
  [data-theme="synth-sunrise"] body::before,
  [data-theme="neuromancer"] body::before {
    display: none;
  }
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  [data-theme="glass"] .chart-card,
  [data-theme="glass"] .context-card,
  [data-theme="glass"] .focus-card,
  [data-theme="glass"] .lens-section,
  [data-theme="glass"] .trend-alert-card,
  [data-theme="glass"] .supp-timeline,
  [data-theme="glass"] .alert-card,
  [data-theme="glass"] .modal,
  [data-theme="glass"] .header,
  [data-theme="glass"] .sidebar,
  [data-theme="glass"] .m-stat-card,
  [data-theme="glass"] .m-insight,
  [data-theme="glass"] .m-marker-row,
  [data-theme="glass"] .m-wear-tile,
  [data-theme="glass"] .m-tabbar {
    background: rgba(38, 30, 72, 0.78);
  }
}

[data-theme="glass"] .modal-overlay.show,
[data-theme="synth-sunrise"] .modal-overlay.show,
[data-theme="neuromancer"] .modal-overlay.show {
  background: rgba(0, 0, 0, 0.82);
}

[data-theme="glass"] .import-preview-modal,
[data-theme="glass"] .feedback-redesign-modal,
[data-theme="glass"] .pii-diff-modal,
[data-theme="glass"] .ctx-editor-modal {
  background: rgba(24, 18, 48, 0.96);
}

[data-theme="synth-sunrise"] .import-preview-modal,
[data-theme="synth-sunrise"] .feedback-redesign-modal,
[data-theme="synth-sunrise"] .pii-diff-modal,
[data-theme="synth-sunrise"] .ctx-editor-modal {
  background: rgba(21, 8, 48, 0.97);
}

[data-theme="neuromancer"] .import-preview-modal,
[data-theme="neuromancer"] .feedback-redesign-modal,
[data-theme="neuromancer"] .pii-diff-modal,
[data-theme="neuromancer"] .ctx-editor-modal {
  background: rgba(10, 13, 18, 0.97);
}

[data-theme="glass"] .import-preview-head,
[data-theme="glass"] .import-review-actions,
[data-theme="glass"] .feedback-modal-head,
[data-theme="glass"] .feedback-actions,
[data-theme="glass"] .pii-review-head,
[data-theme="glass"] .pii-review-actions,
[data-theme="glass"] .ctx-editor-head,
[data-theme="glass"] .ctx-editor-actions,
[data-theme="synth-sunrise"] .import-preview-head,
[data-theme="synth-sunrise"] .import-review-actions,
[data-theme="synth-sunrise"] .feedback-modal-head,
[data-theme="synth-sunrise"] .feedback-actions,
[data-theme="synth-sunrise"] .pii-review-head,
[data-theme="synth-sunrise"] .pii-review-actions,
[data-theme="synth-sunrise"] .ctx-editor-head,
[data-theme="synth-sunrise"] .ctx-editor-actions,
[data-theme="neuromancer"] .import-preview-head,
[data-theme="neuromancer"] .import-review-actions,
[data-theme="neuromancer"] .feedback-modal-head,
[data-theme="neuromancer"] .feedback-actions,
[data-theme="neuromancer"] .pii-review-head,
[data-theme="neuromancer"] .pii-review-actions,
[data-theme="neuromancer"] .ctx-editor-head,
[data-theme="neuromancer"] .ctx-editor-actions {
  background: color-mix(in srgb, var(--bg-secondary) 97%, var(--bg-card));
}

[data-theme="glass"] .dashboard-widget[data-widget-id="profile-context"] {
  background: rgba(24, 18, 48, 0.86);
}

[data-theme="glass"] .dashboard-widget[data-widget-id="profile-context"] .context-card,
[data-theme="glass"] .dashboard-widget[data-widget-id="profile-context"] .ctx-notes-textarea {
  background: rgba(24, 18, 48, 0.84);
}

[data-theme="glass"] .ctx-editor-head,
[data-theme="glass"] .ctx-editor-actions {
  background: rgba(24, 18, 48, 0.98);
}

[data-theme="synth-sunrise"] .ctx-editor-head,
[data-theme="synth-sunrise"] .ctx-editor-actions {
  background: rgba(21, 8, 48, 0.98);
}

[data-theme="neuromancer"] .ctx-editor-head,
[data-theme="neuromancer"] .ctx-editor-actions {
  background: rgba(10, 13, 18, 0.98);
}

[data-theme="glass"] .feedback-select,
[data-theme="glass"] .feedback-input,
[data-theme="glass"] .feedback-textarea,
[data-theme="glass"] .feedback-notice {
  background: rgba(24, 18, 48, 0.94);
}

[data-theme="glass"] .import-filter-btn:not(.active),
[data-theme="glass"] .import-review-search,
[data-theme="glass"] .import-map-select,
[data-theme="glass"] .import-map-input {
  background: rgba(24, 18, 48, 0.94);
}

[data-theme="glass"] .import-filter-btn.active {
  background: color-mix(in srgb, var(--accent) 20%, rgba(24, 18, 48, 0.96));
}

[data-theme="synth-sunrise"] .feedback-select,
[data-theme="synth-sunrise"] .feedback-input,
[data-theme="synth-sunrise"] .feedback-textarea,
[data-theme="synth-sunrise"] .feedback-notice {
  background: rgba(21, 8, 48, 0.95);
}

[data-theme="synth-sunrise"] .import-filter-btn:not(.active),
[data-theme="synth-sunrise"] .import-review-search,
[data-theme="synth-sunrise"] .import-map-select,
[data-theme="synth-sunrise"] .import-map-input {
  background: rgba(21, 8, 48, 0.95);
}

[data-theme="synth-sunrise"] .import-filter-btn.active {
  background: color-mix(in srgb, var(--accent) 20%, rgba(21, 8, 48, 0.96));
}

[data-theme="neuromancer"] .feedback-select,
[data-theme="neuromancer"] .feedback-input,
[data-theme="neuromancer"] .feedback-textarea,
[data-theme="neuromancer"] .feedback-notice {
  background: rgba(10, 13, 18, 0.95);
}

[data-theme="neuromancer"] .import-filter-btn:not(.active),
[data-theme="neuromancer"] .import-review-search,
[data-theme="neuromancer"] .import-map-select,
[data-theme="neuromancer"] .import-map-input {
  background: rgba(10, 13, 18, 0.95);
}

[data-theme="neuromancer"] .import-filter-btn.active {
  background: color-mix(in srgb, var(--accent) 20%, rgba(10, 13, 18, 0.96));
}

[data-theme="glass"] .status-normal,
[data-theme="synth-sunrise"] .status-normal,
[data-theme="neuromancer"] .status-normal {
  border-color: color-mix(in srgb, var(--green) 45%, transparent);
}

[data-theme="glass"] .status-high,
[data-theme="synth-sunrise"] .status-high,
[data-theme="neuromancer"] .status-high {
  border-color: color-mix(in srgb, var(--red) 45%, transparent);
}

[data-theme="glass"] .status-low,
[data-theme="synth-sunrise"] .status-low,
[data-theme="neuromancer"] .status-low {
  border-color: color-mix(in srgb, var(--yellow) 45%, transparent);
}

/* Sidebar/chat/font follow-up: wire body type and bring chat chrome in-theme. */
[data-theme="cyberterm"] {
  --font-body: 'JetBrains Mono', ui-monospace, monospace;
}
[data-theme="glass"] {
  --font-body: 'Inter', system-ui, sans-serif;
}
[data-theme="synth-sunrise"] {
  --font-body: 'Outfit', 'Inter', sans-serif;
}
[data-theme="neuromancer"] {
  --font-body: 'JetBrains Mono', ui-monospace, monospace;
}
[data-theme="cyberterm"] body,
[data-theme="glass"] body,
[data-theme="synth-sunrise"] body,
[data-theme="neuromancer"] body {
  font-family: var(--font-body);
}

[data-theme="cyberterm"] .nav-item,
[data-theme="cyberterm"] .sidebar-search,
[data-theme="cyberterm"] .chat-panel,
[data-theme="cyberterm"] .chat-fab,
[data-theme="cyberterm"] .chat-msg,
[data-theme="cyberterm"] .chat-input,
[data-theme="cyberterm"] .chat-send-btn,
[data-theme="cyberterm"] .chat-thread-item,
[data-theme="cyberterm"] .chat-thread-new-btn,
[data-theme="cyberterm"] .chat-fullscreen-btn,
[data-theme="cyberterm"] .chat-close-btn,
[data-theme="cyberterm"] .chat-rail-toggle {
  border-radius: 0;
}
[data-theme="cyberterm"] .chat-panel {
  border-left: 1px solid var(--border);
  box-shadow: -3px 0 0 var(--border);
}
[data-theme="cyberterm"] .chat-fab {
  width: 64px;
  height: 64px;
  background: var(--accent);
  color: var(--on-accent);
  border: 1px solid var(--border);
  box-shadow: 3px 3px 0 var(--border);
}
[data-theme="cyberterm"] .chat-msg.chat-user,
[data-theme="cyberterm"] .chat-send-btn {
  background: var(--accent);
  color: var(--on-accent);
  border: 1px solid var(--border);
  box-shadow: 2px 2px 0 var(--border);
}
[data-theme="cyberterm"] .chat-msg.chat-ai {
  border-left-color: var(--accent);
}

[data-theme="glass"] .chat-panel,
[data-theme="glass"] .chat-panel-conversation,
[data-theme="glass"] .chat-header,
[data-theme="glass"] .chat-personality-bar,
[data-theme="glass"] .chat-input-area {
  background: color-mix(in srgb, var(--bg-secondary) 84%, transparent);
  backdrop-filter: blur(30px) saturate(160%);
  -webkit-backdrop-filter: blur(30px) saturate(160%);
}
[data-theme="glass"] .chat-msg.chat-ai,
[data-theme="glass"] .chat-input,
[data-theme="glass"] .chat-thread-rail {
  background: color-mix(in srgb, var(--bg-card) 82%, transparent);
}

[data-theme="glass"] .chat-personality-options {
  background: rgba(24, 18, 48, 0.96);
  border-color: rgba(255, 255, 255, 0.22);
  box-shadow:
    0 26px 70px -26px rgba(0, 0, 0, 0.88),
    0 0 0 1px rgba(201, 134, 255, 0.16);
  backdrop-filter: blur(28px) saturate(150%);
  -webkit-backdrop-filter: blur(28px) saturate(150%);
}

[data-theme="synth-sunrise"] .chat-personality-options {
  background: rgba(13, 5, 36, 0.97);
  border-color: rgba(255, 43, 214, 0.46);
  box-shadow:
    0 26px 72px -26px rgba(0, 0, 0, 0.9),
    0 0 34px -14px rgba(255, 43, 214, 0.65);
}

[data-theme="neuromancer"] .chat-personality-options {
  background: rgba(5, 6, 8, 0.97);
  border-color: rgba(0, 229, 255, 0.4);
  box-shadow:
    0 28px 72px -28px rgba(0, 0, 0, 0.92),
    0 0 36px -16px rgba(0, 229, 255, 0.62);
}

[data-theme="glass"] .chat-personality-opt,
[data-theme="synth-sunrise"] .chat-personality-opt,
[data-theme="neuromancer"] .chat-personality-opt,
[data-theme="glass"] .chat-personality-add-btn,
[data-theme="synth-sunrise"] .chat-personality-add-btn,
[data-theme="neuromancer"] .chat-personality-add-btn {
  background: rgba(5, 6, 12, 0.36);
}

[data-theme="glass"] .chat-personality-opt:hover,
[data-theme="synth-sunrise"] .chat-personality-opt:hover,
[data-theme="neuromancer"] .chat-personality-opt:hover,
[data-theme="glass"] .chat-personality-add-btn:hover,
[data-theme="synth-sunrise"] .chat-personality-add-btn:hover,
[data-theme="neuromancer"] .chat-personality-add-btn:hover {
  background: color-mix(in srgb, var(--accent) 18%, rgba(5, 6, 12, 0.88));
}

[data-theme="glass"] .chat-personality-opt.active,
[data-theme="synth-sunrise"] .chat-personality-opt.active,
[data-theme="neuromancer"] .chat-personality-opt.active {
  background: color-mix(in srgb, var(--accent) 24%, rgba(5, 6, 12, 0.92));
}

[data-theme="glass"] .chat-personality-custom-name-input,
[data-theme="glass"] .chat-personality-custom-textarea,
[data-theme="synth-sunrise"] .chat-personality-custom-name-input,
[data-theme="synth-sunrise"] .chat-personality-custom-textarea,
[data-theme="neuromancer"] .chat-personality-custom-name-input,
[data-theme="neuromancer"] .chat-personality-custom-textarea {
  background: rgba(5, 6, 12, 0.72);
}

[data-theme="glass"] .client-list-modal,
[data-theme="glass"] .client-list-modal .cl-tools-menu,
[data-theme="glass"] .client-list-modal .cl-row-menu {
  background: rgba(24, 18, 48, 0.96);
  border-color: rgba(255, 255, 255, 0.22);
  box-shadow:
    0 34px 86px -30px rgba(0, 0, 0, 0.88),
    0 0 0 1px rgba(201, 134, 255, 0.15);
  backdrop-filter: blur(28px) saturate(150%);
  -webkit-backdrop-filter: blur(28px) saturate(150%);
}

[data-theme="glass"] .client-list-modal .cl-header,
[data-theme="glass"] .client-list-modal .cl-form-actions {
  background: rgba(34, 26, 66, 0.96);
  border-color: rgba(255, 255, 255, 0.18);
}

[data-theme="glass"] .client-list-modal .cl-search-wrap,
[data-theme="glass"] .client-list-modal .cl-sort,
[data-theme="glass"] .client-list-modal .cl-status-filter,
[data-theme="glass"] .client-list-modal .cl-icon-btn,
[data-theme="glass"] .client-list-modal .cl-form-input,
[data-theme="glass"] .client-list-modal .cl-form-textarea,
[data-theme="glass"] .client-list-modal .cl-tags-wrap {
  background: rgba(5, 6, 12, 0.5);
}

[data-theme="glass"] .client-list-modal .cl-row:hover,
[data-theme="glass"] .client-list-modal .cl-tools-item:hover,
[data-theme="glass"] .client-list-modal .cl-menu-item:hover,
[data-theme="glass"] .client-list-modal .cl-row-tag,
[data-theme="glass"] .client-list-modal .cl-tag-pill {
  background: rgba(48, 38, 88, 0.82);
}

[data-theme="glass"] .cycle-modal {
  background: rgba(24, 18, 48, 0.96);
  border-color: rgba(255, 255, 255, 0.22);
  box-shadow:
    0 34px 86px -30px rgba(0, 0, 0, 0.88),
    0 0 0 1px rgba(201, 134, 255, 0.15);
  backdrop-filter: blur(28px) saturate(150%);
  -webkit-backdrop-filter: blur(28px) saturate(150%);
}

[data-theme="synth-sunrise"] .cycle-modal {
  background: rgba(13, 5, 36, 0.97);
  border-color: rgba(255, 43, 214, 0.46);
  box-shadow:
    0 30px 78px -28px rgba(0, 0, 0, 0.9),
    0 0 34px -14px rgba(255, 43, 214, 0.65);
}

[data-theme="neuromancer"] .cycle-modal {
  background: rgba(5, 6, 8, 0.97);
  border-color: rgba(0, 229, 255, 0.4);
  box-shadow:
    0 30px 78px -28px rgba(0, 0, 0, 0.92),
    0 0 36px -16px rgba(0, 229, 255, 0.62);
}

[data-theme="glass"] .cycle-modal .cycle-modal-head,
[data-theme="glass"] .cycle-modal .cycle-modal-footer {
  background: rgba(34, 26, 66, 0.96);
  border-color: rgba(255, 255, 255, 0.18);
}

[data-theme="synth-sunrise"] .cycle-modal .cycle-modal-head,
[data-theme="synth-sunrise"] .cycle-modal .cycle-modal-footer,
[data-theme="neuromancer"] .cycle-modal .cycle-modal-head,
[data-theme="neuromancer"] .cycle-modal .cycle-modal-footer {
  background: rgba(5, 6, 12, 0.82);
}

[data-theme="glass"] .cycle-modal .cycle-editor-section,
[data-theme="glass"] .cycle-modal .cycle-log-item,
[data-theme="glass"] .cycle-modal .cycle-field input,
[data-theme="glass"] .cycle-modal .cycle-field select,
[data-theme="glass"] .cycle-modal .cycle-auto-value,
[data-theme="glass"] .cycle-modal .cycle-symptom-chip.ctx-tag,
[data-theme="synth-sunrise"] .cycle-modal .cycle-editor-section,
[data-theme="synth-sunrise"] .cycle-modal .cycle-log-item,
[data-theme="synth-sunrise"] .cycle-modal .cycle-field input,
[data-theme="synth-sunrise"] .cycle-modal .cycle-field select,
[data-theme="synth-sunrise"] .cycle-modal .cycle-auto-value,
[data-theme="synth-sunrise"] .cycle-modal .cycle-symptom-chip.ctx-tag,
[data-theme="neuromancer"] .cycle-modal .cycle-editor-section,
[data-theme="neuromancer"] .cycle-modal .cycle-log-item,
[data-theme="neuromancer"] .cycle-modal .cycle-field input,
[data-theme="neuromancer"] .cycle-modal .cycle-field select,
[data-theme="neuromancer"] .cycle-modal .cycle-auto-value,
[data-theme="neuromancer"] .cycle-modal .cycle-symptom-chip.ctx-tag {
  background: rgba(5, 6, 12, 0.72);
}

[data-theme="glass"] .cycle-section .cycle-prompt,
[data-theme="glass"] .cycle-section .cycle-summary-card,
[data-theme="glass"] .cycle-section .cycle-draw-tag,
[data-theme="glass"] .cycle-section .cycle-period-entry,
[data-theme="glass"] .cycle-section .cycle-meta-tag,
[data-theme="synth-sunrise"] .cycle-section .cycle-prompt,
[data-theme="synth-sunrise"] .cycle-section .cycle-summary-card,
[data-theme="synth-sunrise"] .cycle-section .cycle-draw-tag,
[data-theme="synth-sunrise"] .cycle-section .cycle-period-entry,
[data-theme="synth-sunrise"] .cycle-section .cycle-meta-tag,
[data-theme="neuromancer"] .cycle-section .cycle-prompt,
[data-theme="neuromancer"] .cycle-section .cycle-summary-card,
[data-theme="neuromancer"] .cycle-section .cycle-draw-tag,
[data-theme="neuromancer"] .cycle-section .cycle-period-entry,
[data-theme="neuromancer"] .cycle-section .cycle-meta-tag {
  background: rgba(5, 6, 12, 0.42);
}

[data-theme="glass"] .tweaks-overlay.show {
  background: rgba(0, 0, 0, 0.72);
}
[data-theme="glass"] .tweaks-panel {
  background: rgba(24, 18, 48, 0.94);
  border-color: rgba(255, 255, 255, 0.22);
  box-shadow: 0 36px 90px -28px rgba(0, 0, 0, 0.88), 0 0 0 1px rgba(201, 134, 255, 0.18);
  backdrop-filter: blur(32px) saturate(155%);
  -webkit-backdrop-filter: blur(32px) saturate(155%);
}
[data-theme="glass"] .tweaks-head {
  background: rgba(34, 26, 66, 0.96);
  border-bottom-color: rgba(255, 255, 255, 0.18);
}
[data-theme="glass"] .tweaks-body {
  background: rgba(18, 13, 38, 0.82);
}
[data-theme="glass"] .tweaks-theme-btn,
[data-theme="glass"] .tweaks-action-grid button,
[data-theme="glass"] .tweaks-accent-btn,
[data-theme="glass"] .tweaks-head .modal-close {
  background: rgba(48, 38, 88, 0.9);
  border-color: rgba(255, 255, 255, 0.16);
}

[data-theme="synth-sunrise"] .chat-panel {
  border-left-color: color-mix(in srgb, var(--accent) 45%, transparent);
  box-shadow: -18px 0 48px -24px rgba(255, 43, 214, 0.62), var(--shadow-lg);
}
[data-theme="synth-sunrise"] .chat-header,
[data-theme="synth-sunrise"] .chat-input-area {
  border-color: color-mix(in srgb, var(--accent) 35%, transparent);
}

[data-theme="neuromancer"] .chat-panel {
  border-left-color: color-mix(in srgb, var(--accent) 45%, transparent);
  box-shadow: -18px 0 52px -26px rgba(0, 229, 255, 0.7), var(--shadow-lg);
}
[data-theme="neuromancer"] .chat-msg.chat-ai {
  border-left-color: var(--accent);
}

/* Keep the app header sticky in every theme. Some atmospheric theme
   surface rules lift the header into the body effect layer; that must
   not downgrade the base sticky positioning. */
[data-theme] .header {
  position: sticky;
  top: 0;
  z-index: 100;
}

/* Atmospheric theme wrappers should not change the app shell geometry. */
[data-theme] .layout,
[data-theme] .main {
  position: static;
  z-index: auto;
}

@media (min-width: 1025px) {
  [data-theme] .sidebar {
    position: fixed;
    top: 64px;
    left: 0;
    height: calc(100vh - 64px);
    z-index: 10;
  }
}

@media (max-width: 1024px) {
  [data-theme] .sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    height: 100vh;
    z-index: 360;
  }
}

@media (max-width: 600px) {
  [data-theme="neuromancer"] .brand-mark,
  [data-theme="neuromancer"] .header h1.brand-mark {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 17px;
    letter-spacing: 0;
    text-transform: lowercase;
  }
}

/* ------------------------------------------------------------
   SUNSET MODE
   Cross-theme long-wavelength palette for red blue-blocking glasses.
   ------------------------------------------------------------ */
:root[data-sunset-mode="on"] {
  color-scheme: dark;
  --bg-primary: #0b0201;
  --bg-secondary: #150503;
  --bg-card: #21100a;
  --bg-hover: #31170d;
  --border: #663014;
  --text-primary: #ffe8bb;
  --text-secondary: #f7b46a;
  --text-muted: #c9793f;
  --accent: #ffb000;
  --accent-light: #ffd166;
  --on-accent: #180500;
  --donate-accent: #ff9a26;
  --on-donate-accent: #160400;
  --accent-fill: rgba(255, 176, 0, 0.16);
  --accent-gradient: linear-gradient(135deg, #ff5a2e 0%, #ffb000 58%, #ffd166 100%);
  --green: #ffd166;
  --green-bg: rgba(255, 209, 102, 0.13);
  --red: #ff5a2e;
  --red-bg: rgba(255, 90, 46, 0.16);
  --yellow: #ffb000;
  --yellow-bg: rgba(255, 176, 0, 0.14);
  --orange: #ff7a1a;
  --orange-bg: rgba(255, 122, 26, 0.15);
  --purple: #ff9b54;
  --purple-light: rgba(255, 155, 84, 0.18);
  --cyan: rgba(255, 200, 87, 0.68);
  --neutral-soft-bg: rgba(247, 180, 106, 0.10);
  --alert-soft-bg: rgba(255, 90, 46, 0.12);
  --ref-band: rgba(255, 176, 0, 0.08);
  --ref-border: rgba(255, 176, 0, 0.30);
  --chart-grid: rgba(102, 48, 20, 0.55);
  --chart-tooltip-bg: rgba(21, 5, 3, 0.96);
  --shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 18px 52px -20px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(255, 176, 0, 0.12);
  --shadow-glow: 0 0 0 1px var(--accent), 0 0 22px rgba(255, 122, 26, 0.18);
  --status-high: var(--red);
  --status-low: var(--yellow);
  --status-normal: var(--green);
}

:root[data-sunset-mode="on"] body {
  background:
    radial-gradient(75% 55% at 50% 0%, rgba(255, 90, 46, 0.16), transparent 62%),
    linear-gradient(180deg, #150503 0%, #0b0201 72%);
  color: var(--text-primary);
}

:root[data-sunset-mode="on"] body::before,
:root[data-sunset-mode="on"] .m-bg {
  display: none !important;
}

:root[data-sunset-mode="on"] .chart-card,
:root[data-sunset-mode="on"] .dashboard-widget,
:root[data-sunset-mode="on"] .context-card,
:root[data-sunset-mode="on"] .focus-card,
:root[data-sunset-mode="on"] .lens-section,
:root[data-sunset-mode="on"] .trend-alert-card,
:root[data-sunset-mode="on"] .supp-timeline,
:root[data-sunset-mode="on"] .alert-card,
:root[data-sunset-mode="on"] .modal,
:root[data-sunset-mode="on"] .header,
:root[data-sunset-mode="on"] .sidebar,
:root[data-sunset-mode="on"] .m-tabbar,
:root[data-sunset-mode="on"] .m-stat-card,
:root[data-sunset-mode="on"] .m-section,
:root[data-sunset-mode="on"] .light-today-strip,
:root[data-sunset-mode="on"] .light-conditions-now-wrap,
:root[data-sunset-mode="on"] .light-channels-section,
:root[data-sunset-mode="on"] .light-channel-detail,
:root[data-sunset-mode="on"] .sun-session {
  background-color: var(--bg-card);
  border-color: color-mix(in srgb, var(--border) 82%, transparent);
}

:root[data-sunset-mode="on"] .header,
:root[data-sunset-mode="on"] .sidebar,
:root[data-sunset-mode="on"] .tweaks-panel,
:root[data-sunset-mode="on"] .chat-panel {
  background: color-mix(in srgb, var(--bg-secondary) 94%, #000);
}

:root[data-sunset-mode="on"] .status-normal,
:root[data-sunset-mode="on"] .status-high,
:root[data-sunset-mode="on"] .status-low,
:root[data-sunset-mode="on"] .chart-card-status,
:root[data-sunset-mode="on"] .sun-chip,
:root[data-sunset-mode="on"] .light-pill,
:root[data-sunset-mode="on"] .ctx-tag {
  text-shadow: none;
}

:root[data-sunset-mode="on"] .sun-chip[data-channel],
:root[data-sunset-mode="on"] .light-pill[data-channel],
:root[data-sunset-mode="on"] .sun-detail-channel-row[data-channel] {
  --channel-accent: var(--orange);
}

:root[data-sunset-mode="on"] .sun-chip[data-channel="vitamin_d"],
:root[data-sunset-mode="on"] .light-pill[data-channel="vitamin_d"],
:root[data-sunset-mode="on"] .sun-detail-channel-row[data-channel="vitamin_d"] {
  --channel-accent: var(--yellow);
}

:root[data-sunset-mode="on"] .sun-chip[data-channel="circadian"],
:root[data-sunset-mode="on"] .light-pill[data-channel="circadian"],
:root[data-sunset-mode="on"] .sun-detail-channel-row[data-channel="circadian"] {
  --channel-accent: var(--accent);
}

:root[data-sunset-mode="on"] .sun-chip[data-channel="no_cv"],
:root[data-sunset-mode="on"] .light-pill[data-channel="no_cv"],
:root[data-sunset-mode="on"] .sun-detail-channel-row[data-channel="no_cv"] {
  --channel-accent: var(--green);
}

/* ------------------------------------------------------------
   CRT EFFECTS
   Optional overlay for the terminal-style themes only.
   ------------------------------------------------------------ */
@keyframes crt-flicker {
  50% { opacity: var(--crt-flicker-opacity, 0.68); }
}

@keyframes crt-sweep {
  from {
    background-position:
      0 -190px,
      0 0,
      0 0,
      0 0;
  }
  to {
    background-position:
      0 100vh,
      0 0,
      0 0,
      0 0;
  }
}

:root[data-crt-effects="on"][data-theme="cyberterm"],
:root[data-crt-effects="on"][data-theme="synth-sunrise"],
:root[data-crt-effects="on"][data-theme="neuromancer"] {
  --crt-opacity: 0.82;
  --crt-flicker-opacity: 0.66;
  --crt-beam: rgba(140, 255, 210, 0.24);
  --crt-line: rgba(255, 255, 255, 0.14);
  --crt-gap: rgba(0, 0, 0, 0.24);
  --crt-rgb-a: rgba(74, 222, 128, 0.08);
  --crt-rgb-b: rgba(0, 255, 255, 0.07);
  --crt-glow: rgba(74, 222, 128, 0.16);
  --crt-text-glow: rgba(74, 222, 128, 0.20);
}

:root[data-crt-effects="on"][data-theme="synth-sunrise"] {
  --crt-opacity: 0.76;
  --crt-flicker-opacity: 0.60;
  --crt-beam: rgba(255, 160, 255, 0.22);
  --crt-line: rgba(255, 240, 255, 0.13);
  --crt-gap: rgba(13, 5, 36, 0.22);
  --crt-rgb-a: rgba(255, 20, 110, 0.08);
  --crt-rgb-b: rgba(0, 255, 255, 0.07);
  --crt-glow: rgba(255, 43, 214, 0.16);
  --crt-text-glow: rgba(255, 43, 214, 0.20);
}

:root[data-crt-effects="on"][data-theme="neuromancer"] {
  --crt-opacity: 0.80;
  --crt-flicker-opacity: 0.64;
  --crt-beam: rgba(140, 255, 255, 0.24);
  --crt-line: rgba(225, 250, 255, 0.14);
  --crt-gap: rgba(0, 0, 0, 0.25);
  --crt-rgb-a: rgba(255, 20, 110, 0.075);
  --crt-rgb-b: rgba(0, 255, 255, 0.085);
  --crt-glow: rgba(0, 229, 255, 0.16);
  --crt-text-glow: rgba(0, 229, 255, 0.20);
}

:root[data-crt-effects="on"][data-theme="cyberterm"] .brand-mark,
:root[data-crt-effects="on"][data-theme="cyberterm"] .dashboard-widget-title,
:root[data-crt-effects="on"][data-theme="cyberterm"] .m-section-title,
:root[data-crt-effects="on"][data-theme="synth-sunrise"] .brand-mark,
:root[data-crt-effects="on"][data-theme="synth-sunrise"] .dashboard-widget-title,
:root[data-crt-effects="on"][data-theme="synth-sunrise"] .m-section-title,
:root[data-crt-effects="on"][data-theme="neuromancer"] .brand-mark,
:root[data-crt-effects="on"][data-theme="neuromancer"] .dashboard-widget-title,
:root[data-crt-effects="on"][data-theme="neuromancer"] .m-section-title {
  text-shadow:
    0 0 1px var(--accent),
    0 0 6px var(--crt-text-glow);
}

:root[data-crt-effects="on"][data-theme="cyberterm"] .dashboard-widget,
:root[data-crt-effects="on"][data-theme="cyberterm"] .chart-card,
:root[data-crt-effects="on"][data-theme="synth-sunrise"] .dashboard-widget,
:root[data-crt-effects="on"][data-theme="synth-sunrise"] .chart-card,
:root[data-crt-effects="on"][data-theme="neuromancer"] .dashboard-widget,
:root[data-crt-effects="on"][data-theme="neuromancer"] .chart-card {
  box-shadow:
    var(--shadow),
    inset 0 0 14px color-mix(in srgb, var(--accent) 6%, transparent);
}

:root[data-crt-effects="on"][data-theme="cyberterm"] body::after,
:root[data-crt-effects="on"][data-theme="synth-sunrise"] body::after,
:root[data-crt-effects="on"][data-theme="neuromancer"] body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  pointer-events: none;
  background:
    linear-gradient(to bottom, transparent 0%, var(--crt-beam) 49%, transparent 100%),
    repeating-linear-gradient(to bottom, var(--crt-line) 0 1px, var(--crt-gap) 2px 4px),
    linear-gradient(90deg, var(--crt-rgb-a), var(--crt-rgb-b)),
    radial-gradient(ellipse at center, transparent 58%, rgba(0, 0, 0, 0.20) 100%);
  background-size:
    100% 190px,
    100% 4px,
    100% 100%,
    100% 100%;
  box-shadow:
    inset 0 0 76px var(--crt-glow),
    inset 0 0 140px rgba(0, 0, 0, 0.12);
  mix-blend-mode: overlay;
  opacity: var(--crt-opacity, 0.78);
  animation:
    crt-flicker 0.16s infinite steps(2),
    crt-sweep 7s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  :root[data-crt-effects="on"][data-theme="cyberterm"] body::after,
  :root[data-crt-effects="on"][data-theme="synth-sunrise"] body::after,
  :root[data-crt-effects="on"][data-theme="neuromancer"] body::after {
    animation: none;
  }
}
