/* GRID//NODE // DAYLIGHT NEXUS PILOT
   Four surfaces only: landing, auth, dashboard shell, SIGNAL // OUTCOMES. */
:root {
  --background: var(--bg, #050508);
  --background-atmospheric: var(--bg2, #08080d);
  --surface: var(--panel, #0e0e16);
  --surface-elevated: var(--panel2, #121218);
  --surface-muted: var(--panel3, #161622);
  --surface-glass: rgba(14, 14, 22, .88);
  --surface-inset: #080810;
  --text-primary: var(--text, #eeeef5);
  --text-secondary: var(--text-mid, #9898b0);
  --text-muted: var(--text-dim, #484860);
  --text-dim: #71838c;
  --text-helper: #9fb3bc;
  --text-label: #cde2e9;
  --text-placeholder: #81959e;
  --text-disabled: #71818a;
  --text-accent: #00d4ff;
  --text-success: #6fffb8;
  --text-warning: #ffd878;
  --text-error: #FF5B5B;
  --text-on-dark: #f2fbfd;
  --text-on-light: #15282f;
  --text-inverse: #050508;
  --border: rgba(255, 255, 255, .07);
  --border-strong: rgba(255, 255, 255, .12);
  --border-metallic: rgba(168, 190, 199, .24);
  --accent-cyan: var(--cyan, #00d4ff);
  --accent-cyan-soft: rgba(0, 212, 255, .12);
  --accent-amber: #ffd166;
  --accent-amber-soft: rgba(255, 209, 102, .12);
  --accent-purple: #b66892;
  --accent-purple-soft: rgba(182, 104, 146, .12);
  --focus-ring: #00d4ff;
  --input-background: #080810;
  --input-border: rgba(0, 212, 255, .24);
  --overlay: rgba(0, 0, 0, .72);
  --shadow-soft: 0 10px 28px rgba(0, 0, 0, .22);
  --shadow-elevated: 0 18px 52px rgba(0, 0, 0, .42);
  --success: #00ff88;
  --warning: #ffd166;
  --danger: #FF3B3B;
  --info: #00d4ff;
  --dayline-start: #ffd166;
  --dayline-end: #00d4ff;
}

html[data-theme="light"] {
  --background: #e8e4da;
  --background-atmospheric: #d9d5ca;
  --surface: #f1eee6;
  --surface-elevated: #f8f5ed;
  --surface-muted: #e1ddd3;
  --surface-glass: rgba(248, 245, 237, .82);
  --surface-inset: #ddd8cc;
  --text-primary: #15282f;
  --text-secondary: #304b55;
  --text-muted: #4b636b;
  --text-dim: #526970;
  --text-helper: #395861;
  --text-label: #203d47;
  --text-placeholder: #5b7077;
  --text-disabled: #68777c;
  --text-accent: #005f73;
  --text-success: #00643f;
  --text-warning: #744c00;
  --text-error: #a51d36;
  --text-on-dark: #f2fbfd;
  --text-on-light: #15282f;
  --text-inverse: #f8f5ed;
  --border: rgba(80, 91, 95, .24);
  --border-strong: #737d80;
  --border-metallic: rgba(103, 113, 116, .52);
  --accent-cyan: #006f82;
  --accent-cyan-soft: rgba(0, 111, 130, .12);
  --accent-amber: #8b5b08;
  --accent-amber-soft: rgba(139, 91, 8, .13);
  --accent-purple: #71445d;
  --accent-purple-soft: rgba(113, 68, 93, .12);
  --focus-ring: #006f82;
  --input-background: #f5f1e8;
  --input-border: #737d80;
  --overlay: rgba(43, 47, 47, .48);
  --shadow-soft: 0 10px 28px rgba(82, 68, 49, .12);
  --shadow-elevated: 0 22px 58px rgba(76, 61, 43, .2);
  --success: #176a46;
  --warning: #825400;
  --danger: #c22c44;
  --info: #006f82;
  --dayline-start: #a86e13;
  --dayline-end: #007d91;
}

/* Theme control: compact command hardware, usable in either lighting condition. */
.gn-theme-toggle {
  min-width: 72px;
  min-height: 29px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 4px 7px;
  border: 1px solid rgba(255, 209, 102, .34);
  border-radius: 999px;
  background: rgba(255, 209, 102, .055);
  color: #e8d69e;
  font: 700 .48rem var(--font-m, monospace);
  letter-spacing: 1px;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}
.gn-theme-toggle:hover { border-color: rgba(255, 209, 102, .64); transform: translateY(-1px); }
.gn-theme-toggle:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.gn-theme-icon { width: 14px; height: 14px; position: relative; display: inline-grid; place-items: center; }
.gn-theme-icon::before { content: ''; width: 7px; height: 7px; border: 1px solid currentColor; border-radius: 50%; }
.gn-theme-icon i, .gn-theme-icon i::before { position: absolute; width: 12px; height: 1px; background: currentColor; content: ''; }
.gn-theme-icon i::before { transform: rotate(90deg); }
.gn-theme-toggle-topbar { min-width: 34px; width: auto; height: 34px; padding: 0 9px; border-radius: 999px; }
.gn-theme-toggle-topbar .gn-theme-name { display: none; }

html[data-theme="light"] .gn-theme-toggle {
  border-color: rgba(0, 111, 130, .38);
  background: rgba(248, 245, 237, .72);
  color: var(--accent-cyan);
  box-shadow: inset 0 1px rgba(255, 255, 255, .68);
}
html[data-theme="light"] .gn-theme-toggle:hover { border-color: var(--accent-cyan); background: var(--surface-elevated); }

/* Shared daylight atmosphere, limited to the pilot roots. */
html[data-theme="light"] body { background: var(--background); color: var(--text-primary); }
html[data-theme="light"] .scanlines { opacity: .18; mix-blend-mode: multiply; }
html[data-theme="light"] .scan-sweep { opacity: .26; background: linear-gradient(90deg, transparent, rgba(0, 111, 130, .16), transparent); }
html[data-theme="light"] :is(#landing, #login, #pageDash, #pageResults, #app .topbar, #app .node-header-wrap, .bottom-nav) {
  --bg: var(--background);
  --bg2: var(--background-atmospheric);
  --panel: var(--surface);
  --panel2: var(--surface-elevated);
  --panel3: var(--surface-muted);
  --text: var(--text-primary);
  --text-mid: var(--text-secondary);
  --text-dim: var(--text-muted);
  --cyan: var(--accent-cyan);
  --cyan-dim: var(--accent-cyan-soft);
  --cyan-glow: rgba(0, 111, 130, .24);
  --yellow: var(--accent-amber);
  --yellow-dim: var(--accent-amber-soft);
  --orange: var(--accent-amber);
  --magenta: var(--accent-purple);
  --green: var(--success);
  --red-hi: #FF5B5B;
  --red-lo: #D12424;
  --red: var(--danger);
  --border: rgba(80, 91, 95, .24);
  --border2: rgba(80, 91, 95, .38);
}

/* LANDING // atmospheric city haze without a decorative image dependency. */
html[data-theme="light"] #landing {
  background:
    linear-gradient(rgba(61, 73, 77, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(61, 73, 77, .045) 1px, transparent 1px),
    radial-gradient(circle at 76% 18%, rgba(255, 235, 190, .72), transparent 25%),
    radial-gradient(circle at 16% 68%, rgba(0, 125, 145, .09), transparent 32%),
    linear-gradient(145deg, #d8d4ca 0%, #eee9df 42%, #e5e1d7 100%);
  background-size: 42px 42px, 42px 42px, auto, auto, auto;
}
html[data-theme="light"] #landing::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(106deg, transparent 0 68%, rgba(70, 76, 76, .06) 68.2% 68.8%, transparent 69%),
    linear-gradient(74deg, transparent 0 82%, rgba(139, 91, 8, .07) 82.2% 83%, transparent 83.2%);
}
html[data-theme="light"] .landing-hero {
  min-height: calc(100vh - 44px - var(--safe-top));
  border-left: 1px solid rgba(0, 111, 130, .28);
  padding-left: clamp(18px, 3vw, 38px);
}
html[data-theme="light"] .landing-hero::after,
html[data-theme="light"] .gn-auth-card::before,
html[data-theme="light"] #pageDash > .page-hdr::after,
html[data-theme="light"] #pageResults > .page-hdr::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--dayline-start), rgba(168, 110, 19, .2) 38%, rgba(0, 125, 145, .2) 64%, var(--dayline-end));
  box-shadow: 0 1px 10px rgba(139, 91, 8, .12);
}
html[data-theme="light"] .landing-logo { filter: saturate(.72) brightness(.72); }
html[data-theme="light"] .landing-kicker,
html[data-theme="light"] .landing-node-mark { color: var(--accent-cyan); opacity: 1; }
html[data-theme="light"] .landing-headline { color: var(--text-primary); text-shadow: 0 1px rgba(255, 255, 255, .7); }
html[data-theme="light"] .landing-copy,
html[data-theme="light"] .landing-copy span { color: var(--text-secondary); }
html[data-theme="light"] .landing-phase-visual { opacity: .7; filter: saturate(.65); }
html[data-theme="light"] .landing-phase-visual::before { filter: none; }
html[data-theme="light"] .landing-phase-visual::after { border-color: rgba(0, 111, 130, .26); box-shadow: 0 0 0 16px rgba(0, 111, 130, .035), 0 0 0 33px rgba(139, 91, 8, .025), inset 0 0 28px rgba(0, 111, 130, .08); }
html[data-theme="light"] .landing-phase-core { border-color: rgba(0, 111, 130, .42); background: rgba(248, 245, 237, .76); color: var(--accent-cyan); box-shadow: var(--shadow-soft); }
html[data-theme="light"] .landing-phase-core span { color: var(--accent-cyan) !important; }
html[data-theme="light"] .landing-phase-core b { color: var(--accent-amber) !important; }
html[data-theme="light"] .landing-btn.primary { background: linear-gradient(135deg, #D12424, #633247); color: var(--text-inverse); box-shadow: 0 12px 30px rgba(87, 48, 66, .22); }
html[data-theme="light"] .landing-btn.secondary { border-color: var(--border-strong); color: var(--accent-cyan); background: rgba(248, 245, 237, .58); }
html[data-theme="light"] .landing-btn:focus-visible,
html[data-theme="light"] .landing-local-link:focus-visible,
html[data-theme="light"] .landing-footer a:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
html[data-theme="light"] .landing-note { color: var(--text-secondary); }
html[data-theme="light"] .landing-trust strong { color: var(--text-primary); }
html[data-theme="light"] .landing-local-link { color: var(--accent-amber); }
html[data-theme="light"] .landing-section,
html[data-theme="light"] .module-card {
  border-color: var(--border);
  background: linear-gradient(160deg, rgba(248, 245, 237, .9), rgba(238, 234, 224, .78));
  box-shadow: var(--shadow-soft), inset 0 1px rgba(255, 255, 255, .78);
}
html[data-theme="light"] .landing-section::before { background: linear-gradient(90deg, var(--dayline-start), rgba(168, 110, 19, .12) 44%, rgba(0, 125, 145, .12) 62%, var(--dayline-end)); }
html[data-theme="light"] .landing-section h2,
html[data-theme="light"] .landing-footer-label { color: var(--accent-cyan); }
html[data-theme="light"] .landing-section h3 { color: var(--text-primary); }
html[data-theme="light"] .landing-section p,
html[data-theme="light"] .landing-footer p { color: var(--text-secondary); }
html[data-theme="light"] .landing-footer { border-color: rgba(0, 111, 130, .32); color: var(--text-secondary); }
html[data-theme="light"] .landing-footer a { color: var(--accent-cyan); text-decoration: underline; text-decoration-color: rgba(0, 111, 130, .28); text-underline-offset: 3px; }
html[data-theme="light"] .landing-footer-mobile span { border-color: var(--border); background: rgba(248, 245, 237, .54); }

/* AUTH // a pearl command-glass card over daylight architecture. */
html[data-theme="light"] #login {
  background:
    linear-gradient(90deg, transparent 49.9%, rgba(0, 111, 130, .06) 50%, transparent 50.1%),
    radial-gradient(circle at 18% 22%, rgba(255, 229, 172, .54), transparent 28%),
    linear-gradient(118deg, rgba(105, 100, 88, .08) 0 1px, transparent 1px 68%, rgba(105, 100, 88, .06) 68% 69%, transparent 69%),
    linear-gradient(150deg, #dad6cc, #efebe1 54%, #dfdbd1);
}
html[data-theme="light"] .gn-auth-card {
  position: relative;
  border: 1px solid var(--border-metallic);
  border-top: 0;
  background: linear-gradient(165deg, rgba(248, 245, 237, .92), rgba(235, 231, 220, .86));
  box-shadow: var(--shadow-elevated), inset 0 1px rgba(255, 255, 255, .9);
  backdrop-filter: blur(18px) saturate(.82);
}
html[data-theme="light"] .gn-auth-kicker { color: var(--accent-cyan); }
html[data-theme="light"] .gn-auth-title { color: var(--text-primary); }
html[data-theme="light"] .gn-auth-copy,
html[data-theme="light"] .gn-auth-link,
html[data-theme="light"] .gn-auth-message { color: var(--text-secondary); }
html[data-theme="light"] .gn-auth-field {
  border-color: var(--input-border);
  background: var(--input-background);
  color: var(--text-primary);
  box-shadow: inset 0 2px 6px rgba(76, 61, 43, .08);
}
html[data-theme="light"] .gn-auth-field::placeholder { color: var(--text-muted); opacity: 1; }
html[data-theme="light"] .gn-auth-field:focus { border-color: var(--focus-ring); box-shadow: 0 0 0 3px rgba(0, 111, 130, .14), inset 0 2px 6px rgba(76, 61, 43, .06); }
html[data-theme="light"] .gn-auth-primary { background: linear-gradient(135deg, #D12424, #633247); color: var(--text-inverse); box-shadow: 0 10px 24px rgba(87, 48, 66, .18); }
html[data-theme="light"] .gn-auth-secondary,
html[data-theme="light"] .gn-auth-google { border-color: var(--border-strong); background: rgba(248, 245, 237, .5); color: var(--accent-cyan); }
html[data-theme="light"] .gn-auth-link:hover { color: var(--accent-cyan); text-decoration: underline; text-underline-offset: 3px; }
html[data-theme="light"] .gn-auth-primary:focus-visible,
html[data-theme="light"] .gn-auth-secondary:focus-visible,
html[data-theme="light"] .gn-auth-google:focus-visible,
html[data-theme="light"] .gn-auth-link:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
html[data-theme="light"] .gn-auth-note { border-color: var(--border); color: var(--text-muted); }

/* APP SHELL // frosted titanium command architecture. */
html[data-theme="light"] #app { background: var(--background); }
html[data-theme="light"] #app .topbar {
  background: rgba(225, 222, 214, .86);
  border-color: var(--border);
  box-shadow: 0 5px 20px rgba(76, 61, 43, .09), inset 0 1px rgba(255, 255, 255, .78);
  backdrop-filter: blur(18px) saturate(.8);
}
html[data-theme="light"] #app .app-wordmark { filter: saturate(.72) brightness(.72); }
html[data-theme="light"] #app #topAvaIcon { filter: invert(1) hue-rotate(180deg); }
html[data-theme="light"] #app .topbar-btn { border-color: var(--border); background: rgba(248, 245, 237, .7); color: var(--accent-cyan); }
html[data-theme="light"] #app .node-header-wrap { background: rgba(232, 228, 218, .88); }
html[data-theme="light"] #app .node-pill { border-color: rgba(0, 111, 130, .32); background: rgba(248, 245, 237, .7); color: var(--text-primary); box-shadow: inset 0 1px rgba(255, 255, 255, .8); }
html[data-theme="light"] #app .node-pill-phase { color: var(--text-primary); }
html[data-theme="light"] #app .node-pill-state { color: var(--text-secondary); }
html[data-theme="light"] .bottom-nav {
  background: rgba(225, 222, 214, .92);
  border-color: var(--border);
  box-shadow: 0 -8px 24px rgba(76, 61, 43, .1), inset 0 1px rgba(255, 255, 255, .8);
}
html[data-theme="light"] .nav-item:not(.active) .nav-lbl,
html[data-theme="light"] .nav-item:not(.active) .nav-ico { color: var(--text-secondary) !important; }
html[data-theme="light"] .nav-item.active .nav-lbl,
html[data-theme="light"] .nav-item.active .nav-ico { color: var(--accent-cyan) !important; }
html[data-theme="light"] .nav-item:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: -3px; }
html[data-theme="light"] #app:has(#pageDash.active) .scroll-body,
html[data-theme="light"] #app:has(#pageResults.active) .scroll-body {
  background:
    linear-gradient(rgba(73, 84, 88, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(73, 84, 88, .035) 1px, transparent 1px),
    radial-gradient(circle at 82% 0%, rgba(255, 226, 164, .22), transparent 28%),
    var(--background);
  background-size: 36px 36px, 36px 36px, auto, auto;
}

/* DASHBOARD // ceramic metrics, inset controls, daylight Phase Engine. */
html[data-theme="light"] #pageDash,
html[data-theme="light"] #pageResults { color: var(--text-primary); }
html[data-theme="light"] #pageDash > .page-hdr,
html[data-theme="light"] #pageResults > .page-hdr { position: relative; padding-top: 16px; }
html[data-theme="light"] :is(#pageDash, #pageResults) .page-title { color: var(--text-primary); }
html[data-theme="light"] :is(#pageDash, #pageResults) .page-title .a,
html[data-theme="light"] :is(#pageDash, #pageResults) .sec-title .a,
html[data-theme="light"] :is(#pageDash, #pageResults) .sec-act { color: var(--accent-cyan); }
html[data-theme="light"] :is(#pageDash, #pageResults) .page-sub { color: var(--text-secondary); }
html[data-theme="light"] #pageDash :is(.stat-card, .wq-card, .s6-card, .gn-wanda-card, .phase-card, .phase-readout, .phase-transparency, .phase-sphere-card, .chart-wrap) {
  border-color: var(--border);
  background: linear-gradient(160deg, rgba(248, 245, 237, .92), rgba(238, 234, 224, .82));
  color: var(--text-primary);
  box-shadow: var(--shadow-soft), inset 0 1px rgba(255, 255, 255, .8);
}
html[data-theme="light"] #pageDash :is(.stat-lbl, .stat-sub, .wq-label, .gn-wanda-label, .gn-wanda-note, .s6-label, .s6-basis, .phase-support, .phase-readout-copy, .phase-readout-label, .phase-context-text, .protocol-curve-copy, .empty) { color: var(--text-secondary) !important; }
html[data-theme="light"] #pageDash :is(.stat-val, .wq-val, .gn-wanda-value, .phase-name-txt, .phase-readout-value) { color: var(--text-primary); }
/* LOG SHOT is the primary action: filled lava. LOG WEIGHT stays cyan secondary. */
html[data-theme="light"] #pageDash .gn-wanda-actions > button:first-child {
  border-color: #8f0f28;
  background: radial-gradient(130% 170% at 50% 0%, #CC2944 0%, #C61F3A 48%, #8f0f28 100%);
  color: #fff;
  -webkit-text-fill-color: #fff;
  box-shadow: 0 6px 18px rgba(143, 15, 40, .28), inset 0 1px 0 rgba(255, 255, 255, .22);
  font-weight: 800;
}
html[data-theme="light"] #pageDash .gn-wanda-actions > button:last-child {
  border-color: rgba(0, 111, 130, .55);
  background: rgba(0, 111, 130, .08);
  color: #005f73;
  -webkit-text-fill-color: #005f73;
  font-weight: 800;
}
html[data-theme="light"] #pageDash .phase-card { border-top-color: var(--dayline-start); }
html[data-theme="light"] #pageDash .phase-sphere-card { border-color: rgba(0, 111, 130, .28); }
html[data-theme="light"] #pageDash .phase-sphere-orb { filter: saturate(.66) brightness(.72); }
html[data-theme="light"] #pageDash .time-tab { border-color: var(--border); background: var(--surface-inset); color: var(--text-secondary); }
html[data-theme="light"] #pageDash .time-tab.active { border-color: var(--accent-cyan); background: var(--accent-cyan-soft); color: var(--accent-cyan); }

/* SIGNAL // OUTCOMES // dense data stays calm, crisp, and scannable. */
html[data-theme="light"] #pageResults .results-ledger { gap: 16px; }
html[data-theme="light"] #pageResults :is(.results-card, .gn-weekly-report, .gn-reference-pending, .results-records-panel, .data-transfer-card, .gn-progress-signal) {
  border-color: var(--border);
  background: linear-gradient(160deg, rgba(248, 245, 237, .94), rgba(238, 234, 224, .84));
  color: var(--text-primary);
  box-shadow: var(--shadow-soft), inset 0 1px rgba(255, 255, 255, .82);
}
html[data-theme="light"] #pageResults .results-card::before { background: linear-gradient(90deg, var(--dayline-start), rgba(168, 110, 19, .12) 44%, rgba(0, 125, 145, .12) 62%, var(--dayline-end)); }
html[data-theme="light"] #pageResults .results-card.summary { border-top-color: var(--accent-cyan); }
html[data-theme="light"] #pageResults .results-card.weight { border-left-color: var(--success); }
html[data-theme="light"] #pageResults .results-card.appetite { border-left-color: var(--accent-amber); }
html[data-theme="light"] #pageResults .results-card.energy { border-left-color: var(--accent-cyan); }
html[data-theme="light"] #pageResults .results-card.effects { border-left-color: var(--danger); }
html[data-theme="light"] #pageResults .results-card.continuity { border-left-color: var(--accent-purple); }
html[data-theme="light"] #pageResults :is(.results-card-title, .results-records-title) { color: var(--text-primary); }
html[data-theme="light"] #pageResults :is(.results-card-sub, .results-copy, .results-empty, .results-list-item, .results-records-sub, .results-record-empty, .data-transfer-copy, .empty-subline, .results-stage1-note) { color: var(--text-secondary) !important; }
html[data-theme="light"] #pageResults :is(.results-metric, .s6-card) { border-color: var(--border); background: var(--surface-inset); box-shadow: inset 0 2px 6px rgba(76, 61, 43, .07); }
html[data-theme="light"] #pageResults .results-metric-label,
html[data-theme="light"] #pageResults .s6-label,
html[data-theme="light"] #pageResults .s6-basis { color: var(--text-secondary) !important; }
html[data-theme="light"] #pageResults .results-metric-value { color: var(--accent-cyan); }
html[data-theme="light"] #pageResults .results-metric-value.g { color: var(--success); }
html[data-theme="light"] #pageResults .results-metric-value.y { color: var(--accent-amber); }
html[data-theme="light"] #pageResults .results-metric-value.r { color: var(--danger); }
html[data-theme="light"] #pageResults .results-metric-value.m { color: var(--accent-purple); }
html[data-theme="light"] #pageResults .results-empty { border-color: rgba(0, 111, 130, .34); background: rgba(0, 111, 130, .055); }
html[data-theme="light"] #pageResults .results-safety,
html[data-theme="light"] #pageResults .results-signal-note { border-color: rgba(0, 111, 130, .28); background: rgba(0, 111, 130, .065); color: var(--text-secondary); }
html[data-theme="light"] #pageResults :is(.results-log-weight-btn, .btn-secondary, .data-transfer-btn) { border-color: var(--border-strong); background: rgba(248, 245, 237, .54); color: var(--accent-cyan); }
html[data-theme="light"] #pageResults :is(.results-log-weight-btn, .btn-secondary, .data-transfer-btn, .btn-full):focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }

@media (max-width: 520px) {
  .gn-theme-toggle { min-width: 31px; padding: 4px 6px; }
  .gn-theme-toggle:not(.gn-theme-toggle-topbar) .gn-theme-name { display: none; }
  html[data-theme="light"] .landing-hero { padding-left: 14px; border-left-color: rgba(0, 111, 130, .24); }
  html[data-theme="light"] .landing-hero::after { right: 0; }
  html[data-theme="light"] .landing-phase-visual { opacity: .45; }
  html[data-theme="light"] :is(#pageDash, #pageResults) > .page-hdr { padding-top: 12px; }
  html[data-theme="light"] #pageResults .results-grid-3 { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .gn-theme-toggle { transition: none; }
  html[data-theme="light"] .scan-sweep { display: none; }
}

/* NEXUS TELEMETRY // one renderer, theme-specific instrument tokens. */
:root {
  --chart-background: #07090e;
  --chart-surface: rgba(10, 15, 22, .88);
  --chart-grid: rgba(142, 165, 173, .16);
  --chart-axis: #8ea5ad;
  --chart-label: #a9bbc4;
  --chart-tooltip-background: rgba(5, 8, 13, .96);
  --chart-tooltip-border: rgba(0, 212, 255, .42);
  --chart-primary: #00d4ff;
  --chart-secondary: #ffd166;
  --chart-comparison: #b66892;
  --chart-target: #ffd166;
  --chart-success: #00c979;
  --chart-warning: #ffd166;
  --chart-danger: #FF3B3B;
  --chart-area-primary: rgba(0, 212, 255, .1);
  --chart-area-secondary: rgba(255, 209, 102, .09);
  --chart-selection: rgba(0, 212, 255, .14);
  --chart-crosshair: rgba(255, 209, 102, .72);
  --chart-empty-state: #8ea5ad;
}
html[data-theme="light"] {
  --chart-background: #ddd8cc;
  --chart-surface: rgba(241, 238, 230, .9);
  --chart-grid: rgba(65, 78, 82, .17);
  --chart-axis: #59676c;
  --chart-label: #4d5b61;
  --chart-tooltip-background: rgba(248, 245, 237, .97);
  --chart-tooltip-border: rgba(0, 111, 130, .54);
  --chart-primary: #007d91;
  --chart-secondary: #9a650d;
  --chart-comparison: #71445d;
  --chart-target: #8b5b08;
  --chart-success: #176a46;
  --chart-warning: #825400;
  --chart-danger: #ad2f49;
  --chart-area-primary: rgba(0, 125, 145, .1);
  --chart-area-secondary: rgba(139, 91, 8, .09);
  --chart-selection: rgba(0, 111, 130, .12);
  --chart-crosshair: rgba(139, 91, 8, .72);
  --chart-empty-state: #59676c;
}

.gn-telemetry-module {
  position: relative;
  margin: 18px 0;
  padding: 16px;
  border: 1px solid rgba(142, 165, 173, .2);
  border-radius: 10px;
  background: linear-gradient(145deg, rgba(14, 18, 26, .88), rgba(6, 9, 14, .94));
  box-shadow: 0 18px 44px rgba(0, 0, 0, .28), inset 0 1px rgba(255, 255, 255, .035);
  overflow: hidden;
}
.gn-telemetry-module::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: linear-gradient(90deg, var(--dayline-start), rgba(255, 209, 102, .12) 40%, rgba(0, 212, 255, .14) 62%, var(--dayline-end));
  pointer-events: none;
}
.gn-telemetry-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.gn-telemetry-heading > div:first-child > span { display: block; color: var(--chart-secondary); font: 700 .52rem var(--font-m); letter-spacing: 2px; margin-bottom: 5px; }
.gn-telemetry-heading h2 { margin: 0; color: var(--text); font: 800 .9rem var(--font-d); letter-spacing: 2.2px; }
.gn-telemetry-heading p { margin: 5px 0 0; color: var(--chart-label); font: .66rem/1.4 var(--font-m); letter-spacing: .5px; }
.gn-telemetry-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.gn-telemetry-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.gn-telemetry-detail-grid .gn-telemetry-target { grid-column: 1 / -1; }

.gn-telemetry-instrument {
  min-width: 0;
  padding: 13px;
  border: 1px solid rgba(142, 165, 173, .2);
  border-radius: 8px;
  background: linear-gradient(160deg, rgba(16, 22, 30, .9), rgba(7, 11, 17, .94));
  box-shadow: inset 0 1px rgba(255, 255, 255, .04), 0 9px 22px rgba(0, 0, 0, .16);
}
.gn-telemetry-instrument > header { min-height: 47px; display: grid; grid-template-columns: auto 1fr 18px; align-items: start; gap: 9px; margin-bottom: 9px; }
.gn-telemetry-instrument > header i { width: 9px; height: 9px; margin-top: 2px; border: 1px solid var(--chart-primary); border-radius: 50%; box-shadow: 0 0 8px rgba(0, 212, 255, .24); }
.gn-instrument-code { color: var(--chart-secondary); font: 700 .46rem var(--font-m); letter-spacing: 1.2px; padding-top: 2px; }
.gn-telemetry-instrument h3 { margin: 0; color: var(--text); font: 700 .66rem/1.25 var(--font-d); letter-spacing: 1.35px; }
.gn-telemetry-instrument header p { margin: 4px 0 0; color: var(--chart-label); font: .54rem/1.35 var(--font-m); letter-spacing: .35px; }

.gn-telemetry-canvas-wrap {
  position: relative;
  min-width: 0;
  border: 1px solid rgba(142, 165, 173, .2);
  border-radius: 6px;
  background:
    linear-gradient(rgba(142, 165, 173, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(142, 165, 173, .025) 1px, transparent 1px),
    var(--chart-background);
  background-size: 18px 18px, 18px 18px, auto;
  box-shadow: inset 0 8px 22px rgba(0, 0, 0, .18);
  overflow: hidden;
}
.gn-telemetry-canvas-wrap canvas { display: block; width: 100%; touch-action: pan-y; outline: none; }
.gn-telemetry-canvas-wrap canvas[hidden] { display: none; }
.gn-telemetry-canvas-wrap canvas:focus-visible { box-shadow: inset 0 0 0 2px var(--focus-ring); }
.gn-chart-tooltip {
  position: absolute;
  z-index: 3;
  width: min(182px, calc(100% - 16px));
  display: grid;
  gap: 2px;
  padding: 8px 9px;
  border: 1px solid var(--chart-tooltip-border);
  border-radius: 5px;
  background: var(--chart-tooltip-background);
  color: var(--chart-label);
  box-shadow: 0 10px 26px rgba(0, 0, 0, .26);
  pointer-events: none;
  font: .56rem/1.3 var(--font-m);
}
.gn-chart-tooltip[hidden] { display: none; }
.gn-chart-tooltip b { color: var(--chart-primary); font-size: .58rem; letter-spacing: .7px; }
.gn-chart-tooltip span { display: block; }
.gn-chart-state { min-height: 150px; display: grid; place-items: center; padding: 20px; color: var(--chart-empty-state); text-align: center; font: 700 .58rem/1.5 var(--font-m); letter-spacing: 1.2px; }
.gn-chart-state[hidden] { display: none; }
.gn-telemetry-summary { min-height: 30px; padding-top: 9px; color: var(--chart-label); font: 700 .53rem/1.35 var(--font-m); letter-spacing: .6px; }

.gn-target-vector { min-height: 150px; display: grid; align-content: center; gap: 18px; padding: 18px; border: 1px solid rgba(142, 165, 173, .2); border-radius: 6px; background: var(--chart-background); box-shadow: inset 0 8px 22px rgba(0, 0, 0, .18); }
.gn-target-readouts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.gn-target-readouts span { min-width: 0; }
.gn-target-readouts small { display: block; color: var(--chart-label); font: 700 .5rem var(--font-m); letter-spacing: 1px; }
.gn-target-readouts b { display: block; margin-top: 4px; color: var(--text); font: 700 .76rem var(--font-d); letter-spacing: .7px; }
.gn-target-rail { position: relative; height: 8px; border: 1px solid rgba(142, 165, 173, .28); border-radius: 999px; background: rgba(142, 165, 173, .08); }
.gn-target-rail i { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: linear-gradient(90deg, var(--chart-primary), var(--chart-secondary)); }
.gn-target-rail em { position: absolute; top: 50%; width: 14px; height: 14px; border: 2px solid var(--chart-secondary); border-radius: 50%; background: var(--chart-background); transform: translate(-50%, -50%); box-shadow: 0 0 10px var(--chart-area-secondary); }
.gn-target-percent { display: flex; align-items: baseline; gap: 8px; color: var(--chart-label); font: 700 .52rem var(--font-m); letter-spacing: 1px; }
.gn-target-percent b { color: var(--chart-secondary); font: 800 1.08rem var(--font-d); }
.gn-target-empty { color: var(--chart-empty-state); text-align: center; font: 700 .58rem/1.5 var(--font-m); letter-spacing: 1.2px; }

.gn-telemetry-ranges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.gn-telemetry-ranges button { min-width: 44px; min-height: 44px; padding: 6px 8px; border: 1px solid rgba(142, 165, 173, .28); border-radius: 4px; background: rgba(142, 165, 173, .05); color: var(--chart-label); font: 700 .52rem var(--font-m); letter-spacing: 1px; cursor: pointer; }
.gn-telemetry-ranges button.active { border-color: var(--chart-primary); background: var(--chart-selection); color: var(--chart-primary); }
.gn-telemetry-ranges button:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }

.gn-telemetry-table { margin-top: 4px; border-top: 1px solid rgba(142, 165, 173, .15); }
.gn-telemetry-table summary { min-height: 44px; display: flex; align-items: center; color: var(--chart-primary); font: 700 .52rem var(--font-m); letter-spacing: 1px; cursor: pointer; }
.gn-telemetry-table summary:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.gn-telemetry-table table { width: 100%; border-collapse: collapse; color: var(--chart-label); font: .58rem/1.35 var(--font-m); }
.gn-telemetry-table th, .gn-telemetry-table td { padding: 7px 6px; border-bottom: 1px solid rgba(142, 165, 173, .14); text-align: left; vertical-align: top; }
.gn-telemetry-table th { color: var(--chart-primary); font-size: .5rem; letter-spacing: .8px; }
.gn-telemetry-preview { margin: -4px 0 12px; padding: 6px 8px; border: 1px solid rgba(255, 209, 102, .28); background: rgba(255, 209, 102, .06); color: var(--chart-secondary); text-align: center; font: 700 .5rem var(--font-m); letter-spacing: 1.2px; }

/* Existing generic Weight Trend canvas is replaced visually, not deleted. Records and summaries remain. */
html.gn-telemetry-ready #pageResults #weightTrendLive { display: none; }

html[data-theme="light"] .gn-telemetry-module {
  border-color: var(--border-metallic);
  background: linear-gradient(145deg, rgba(248, 245, 237, .84), rgba(226, 222, 212, .78));
  box-shadow: var(--shadow-elevated), inset 0 1px rgba(255, 255, 255, .84);
  backdrop-filter: blur(18px) saturate(.82);
}
html[data-theme="light"] .gn-telemetry-heading h2,
html[data-theme="light"] .gn-telemetry-instrument h3,
html[data-theme="light"] .gn-target-readouts b { color: var(--text-primary); }
html[data-theme="light"] .gn-telemetry-instrument {
  border-color: var(--border);
  background: linear-gradient(160deg, rgba(248, 245, 237, .94), rgba(237, 232, 221, .88));
  box-shadow: var(--shadow-soft), inset 0 1px rgba(255, 255, 255, .86);
}
html[data-theme="light"] .gn-telemetry-canvas-wrap,
html[data-theme="light"] .gn-target-vector { border-color: var(--border); box-shadow: inset 0 8px 18px rgba(76, 61, 43, .08); }
html[data-theme="light"] .gn-chart-tooltip { color: var(--text-secondary); box-shadow: 0 12px 28px rgba(76, 61, 43, .18); }

@media (max-width: 860px) {
  .gn-telemetry-grid { grid-template-columns: 1fr; }
  .gn-telemetry-instrument.compact { display: grid; grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .gn-telemetry-module { margin: 14px 0; padding: 12px; }
  .gn-telemetry-heading { align-items: flex-start; flex-direction: column; }
  .gn-telemetry-heading h2 { font-size: .78rem; letter-spacing: 1.5px; }
  .gn-telemetry-heading p { font-size: .58rem; }
  .gn-telemetry-detail-grid { grid-template-columns: 1fr; }
  .gn-telemetry-detail-grid .gn-telemetry-target { grid-column: auto; }
  .gn-telemetry-instrument { padding: 10px; }
  .gn-telemetry-instrument > header { grid-template-columns: auto 1fr 12px; }
  .gn-telemetry-ranges { width: 100%; justify-content: stretch; }
  .gn-telemetry-ranges button { flex: 1; min-width: 0; min-height: 44px; }
  .gn-target-readouts { gap: 6px; }
  .gn-target-readouts b { font-size: .64rem; }
  .gn-telemetry-table { overflow-x: auto; }
  .gn-telemetry-table table { min-width: 330px; }
}
@media (prefers-reduced-motion: reduce) {
  .gn-target-rail i, .gn-target-rail em { transition: none; }
}

/* BRIGHT THUNDER REFINEMENT // same city, different light; telemetry glass hierarchy. */
:root { --surface-telemetry: rgba(10, 15, 22, .94); }
html[data-theme="light"] { --surface-telemetry: rgba(238, 234, 224, .94); }

#landing {
  background-color: #050508;
  background-image: url('../assets/nexus-city-night-v1.webp');
  background-position: center;
  background-size: cover;
  background-attachment: fixed;
}
#landing .landing-hero { background: linear-gradient(90deg, rgba(5, 5, 8, .9) 0 34%, rgba(5, 5, 8, .5) 58%, transparent 78%); }
#login {
  background-color: #070a0e;
  background-image: url('../assets/nexus-city-night-v1.webp');
  background-position: center;
  background-size: cover;
}
html[data-theme="light"] #landing,
html[data-theme="light"] #login {
  background-color: var(--background);
  background-image: linear-gradient(90deg, rgba(235, 237, 240, .94) 0 34%, rgba(235, 237, 240, .74) 58%, rgba(215, 222, 230, .48) 100%), url('../assets/nexus-city-night-v1.webp');
  background-position: center;
  background-size: cover;
  background-attachment: scroll;
}
html[data-theme="light"] #landing .landing-hero { background: linear-gradient(90deg, rgba(232, 228, 218, .94) 0 34%, rgba(232, 228, 218, .62) 58%, transparent 78%); }
html[data-theme="light"] .gn-auth-privacy {
  border-left-color: var(--accent-cyan);
  background: rgba(0, 111, 130, .08);
  color: var(--text-secondary);
}
html[data-theme="light"] .gn-auth-privacy strong { color: var(--text-primary); }
html[data-theme="light"] .gn-auth-options summary { color: var(--text-secondary); }

#gnWandaDashboard .gn-wanda-card:nth-child(-n + 3) {
  min-height: 104px;
  border-top-color: rgba(255, 209, 102, .34);
  background: linear-gradient(145deg, rgba(0, 212, 255, .075), rgba(7, 11, 17, .92));
}
#gnWandaDashboard .gn-wanda-card:nth-child(-n + 3) .gn-wanda-value { font-size: 1rem; }
#gnWandaDashboard .gn-wanda-card:nth-child(n + 4) { min-height: 78px; }
html[data-theme="light"] #gnWandaDashboard .gn-wanda-card:nth-child(-n + 3) {
  border-top-color: rgba(168, 110, 19, .42);
  background: linear-gradient(145deg, rgba(248, 245, 237, .98), rgba(231, 226, 215, .9));
}

.gn-telemetry-module { background: linear-gradient(145deg, rgba(17, 23, 31, .94), rgba(6, 9, 14, .98)); }
.gn-telemetry-instrument { background: linear-gradient(160deg, rgba(18, 25, 34, .96), var(--surface-telemetry)); }
.gn-telemetry-canvas-wrap,
.gn-target-vector {
  border-color: rgba(142, 165, 173, .3);
  background-color: #05090e;
  box-shadow: inset 0 10px 26px rgba(0, 0, 0, .28), 0 1px rgba(255, 255, 255, .03);
}
.gn-data-quality {
  display: block;
  margin-top: 5px;
  color: var(--chart-success);
  font-size: .47rem;
  letter-spacing: 1px;
}
html[data-theme="light"] .gn-telemetry-module {
  background: linear-gradient(145deg, rgba(224, 219, 208, .9), rgba(211, 206, 195, .82));
}
html[data-theme="light"] .gn-telemetry-instrument {
  border-color: rgba(103, 113, 116, .42);
  background: linear-gradient(160deg, rgba(248, 245, 237, .98), var(--surface-telemetry));
}
html[data-theme="light"] .gn-telemetry-canvas-wrap,
html[data-theme="light"] .gn-target-vector {
  border-color: rgba(103, 113, 116, .5);
  background-color: #e4dfd3;
  box-shadow: inset 0 10px 24px rgba(76, 61, 43, .11), 0 1px rgba(255, 255, 255, .9);
}

@media (max-width: 620px) {
  #landing { background-attachment: scroll; background-position: 62% center; }
  #landing .landing-hero { background: linear-gradient(90deg, rgba(5, 5, 8, .94), rgba(5, 5, 8, .72)); }
  html[data-theme="light"] #landing .landing-hero { background: linear-gradient(90deg, rgba(232, 228, 218, .96), rgba(232, 228, 218, .78)); }
  #gnWandaDashboard .gn-wanda-card:nth-child(-n + 3),
  #gnWandaDashboard .gn-wanda-card:nth-child(n + 4) { min-height: 82px; }
  .gn-telemetry-ranges button { flex: 0 0 calc(33.333% - 4px); }
}

/* ═══════════════════════════════════════════════════════════════════
   MOBILE-FIRST + DAYLIGHT COMPLETION — 2026-07-31
   Every surface respects theme + language. Mobile is the primary
   canvas: touch targets, wrap instead of ellipsis, native feel.
   ═══════════════════════════════════════════════════════════════════ */

/* DAYLIGHT VAULT/PROFILE — opaque panels + ink text. The translucent
   surface-glass lets dark layers bleed through; daylight needs solid. */
html[data-theme="light"] #pageProfile .gn-profile-hub,
html[data-theme="light"] #pageProfile .gn-profile-section,
html[data-theme="light"] #pageProfile .gn-preferences-card,
html[data-theme="light"] #pageProfile .gn-device-vault,
html[data-theme="light"] #pageProfile .system-update-card,
html[data-theme="light"] #pageProfile .gn-cloud-status,
html[data-theme="light"] #pageProfile .vault-card {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-primary) !important;
}
html[data-theme="light"] #pageProfile .gn-profile-row { background: transparent !important; }
html[data-theme="light"] #pageProfile .gn-profile-row b { color: var(--text-primary) !important; }
html[data-theme="light"] #pageProfile .gn-profile-row small,
html[data-theme="light"] #pageProfile .gn-profile-signout small,
html[data-theme="light"] #pageProfile .gn-ledger-copy { color: var(--text-secondary) !important; }
html[data-theme="light"] #pageProfile .gn-profile-section-label { color: var(--accent-cyan) !important; border-bottom-color: rgba(0, 111, 130, .18) !important; }
html[data-theme="light"] #pageProfile .gn-profile-signout { background: rgba(173, 47, 73, .06) !important; border-color: rgba(173, 47, 73, .45) !important; }
html[data-theme="light"] #pageProfile .gn-profile-signout b { color: var(--danger) !important; }
html[data-theme="light"] #pageProfile .gn-foundation-kicker,
html[data-theme="light"] #pageProfile .gn-device-vault-head h3,
html[data-theme="light"] #pageProfile .system-update-head strong { color: var(--accent-cyan) !important; }
html[data-theme="light"] #pageProfile .gn-record-row,
html[data-theme="light"] #pageProfile .gn-record-form label,
html[data-theme="light"] #pageProfile .gn-preferences-card label { color: var(--text-primary) !important; }
html[data-theme="light"] #pageProfile .gn-record-form input,
html[data-theme="light"] #pageProfile .gn-record-form select,
html[data-theme="light"] #pageProfile .gn-record-form textarea,
html[data-theme="light"] #pageProfile .gn-preferences-card input,
html[data-theme="light"] #pageProfile .gn-preferences-card select,
html[data-theme="light"] #pageProfile .vault-field input,
html[data-theme="light"] #pageProfile .vault-field select,
html[data-theme="light"] #pageProfile .vault-field textarea,
html[data-theme="light"] #pageProfile .form-input,
html[data-theme="light"] #pageProfile .form-select,
html[data-theme="light"] #pageProfile .form-textarea {
  background: var(--input-background) !important;
  border-color: var(--input-border) !important;
  color: var(--text-primary) !important;
}
html[data-theme="light"] #pageProfile .gn-record-state,
html[data-theme="light"] #pageProfile .gn-preferences-status { color: var(--text-secondary) !important; }

/* DAYLIGHT LAB — hub tiles, records, dose projection, tool shell. */
html[data-theme="light"] #pageLab .gn-foundation-tile,
html[data-theme="light"] #pageLab .gn-dose-projection,
html[data-theme="light"] #pageLab .gn-record-row,
html[data-theme="light"] #pageLab .gn-lab-tool-shell,
html[data-theme="light"] #pageLab .gn-foundation-panel {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-primary) !important;
}
html[data-theme="light"] #pageLab .gn-foundation-tile b,
html[data-theme="light"] #pageLab .gn-record-row b { color: var(--text-primary) !important; }
html[data-theme="light"] #pageLab .gn-foundation-tile small,
html[data-theme="light"] #pageLab .gn-record-row small,
html[data-theme="light"] #pageLab .gn-ledger-copy,
html[data-theme="light"] #pageLab .gn-dose-copy,
html[data-theme="light"] #pageLab .gn-dose-disclaimer { color: var(--text-secondary) !important; }
html[data-theme="light"] #pageLab .gn-foundation-kicker { color: var(--accent-cyan) !important; }
html[data-theme="light"] #pageLab .gn-dose-projection label { color: var(--text-primary) !important; }
html[data-theme="light"] #pageLab .gn-dose-projection input,
html[data-theme="light"] #pageLab .gn-record-form input,
html[data-theme="light"] #pageLab .gn-record-form select,
html[data-theme="light"] #pageLab .gn-record-form textarea {
  background: var(--input-background) !important;
  border-color: var(--input-border) !important;
  color: var(--text-primary) !important;
}
html[data-theme="light"] #pageLab .gn-record-state { color: var(--text-secondary) !important; }

/* DAYLIGHT DASHBOARD/RESULTS — solid pearl panels, no translucent ghosts. */
html[data-theme="light"] #pageDash :is(.stat-card, .wq-card, .s6-card, .gn-wanda-card, .phase-card, .phase-readout, .phase-transparency, .phase-sphere-card, .chart-wrap),
html[data-theme="light"] #pageResults :is(.results-card, .gn-weekly-report, .gn-reference-pending, .results-records-panel, .data-transfer-card, .gn-progress-signal),
html[data-theme="light"] #gnWandaDashboard .gn-wanda-card,
html[data-theme="light"] .gn-streak-card {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-primary) !important;
}
html[data-theme="light"] .gn-streak-card b { color: var(--accent-cyan) !important; }
html[data-theme="light"] .gn-streak-card span { color: var(--text-secondary) !important; }
html[data-theme="light"] .gn-telemetry-module,
html[data-theme="light"] .gn-telemetry-instrument { background: var(--surface) !important; }
html[data-theme="light"] .gn-telemetry-instrument header p { color: #4d5b61 !important; }

/* DAYLIGHT MODALS — every modal surface respects the active theme. */
html[data-theme="light"] .overlay,
html[data-theme="light"] .archive-confirm-overlay,
html[data-theme="light"] .csv-import-overlay,
html[data-theme="light"] .future-confirm-overlay,
html[data-theme="light"] .gn-date-overlay,
html[data-theme="light"] .gn-delete-overlay,
html[data-theme="light"] .gn-import-overlay,
html[data-theme="light"] #gnLabToolOverlay { background: var(--overlay) !important; }
html[data-theme="light"] .modal,
html[data-theme="light"] .archive-confirm-panel,
html[data-theme="light"] .csv-import-panel,
html[data-theme="light"] .early-access-panel,
html[data-theme="light"] .future-confirm-panel,
html[data-theme="light"] .gn-date-panel,
html[data-theme="light"] .gn-delete-panel,
html[data-theme="light"] .gn-import-panel,
html[data-theme="light"] .gn-lab-tool-shell {
  background: var(--surface) !important;
  border-color: var(--border-metallic) !important;
  color: var(--text-primary) !important;
  box-shadow: var(--shadow-elevated) !important;
}
html[data-theme="light"] .modal-hdr,
html[data-theme="light"] .modal-title,
html[data-theme="light"] .modal-slogan,
html[data-theme="light"] .gn-import-title,
html[data-theme="light"] .gn-lab-tool-head h2 { color: var(--text-primary) !important; }
html[data-theme="light"] .modal label,
html[data-theme="light"] .archive-confirm-panel label,
html[data-theme="light"] .csv-import-panel label,
html[data-theme="light"] .gn-import-panel label,
html[data-theme="light"] .gn-date-panel label,
html[data-theme="light"] .gn-lab-tool-shell label { color: var(--text-secondary) !important; }
html[data-theme="light"] .modal input,
html[data-theme="light"] .modal select,
html[data-theme="light"] .modal textarea,
html[data-theme="light"] .gn-import-panel input,
html[data-theme="light"] .gn-import-panel select,
html[data-theme="light"] .gn-lab-tool-shell input,
html[data-theme="light"] .gn-lab-tool-shell select,
html[data-theme="light"] .gn-lab-tool-shell textarea {
  background: var(--input-background) !important;
  border-color: var(--input-border) !important;
  color: var(--text-primary) !important;
}
html[data-theme="light"] .modal-actions .modal-btn.close,
html[data-theme="light"] .gn-import-actions .gn-import-close { border-color: var(--border-strong) !important; background: var(--surface-elevated) !important; color: var(--text-secondary) !important; }
html[data-theme="light"] .modal-actions .modal-btn.save,
html[data-theme="light"] .csv-import-save,
html[data-theme="light"] .gn-import-actions .csv-import-save { background: linear-gradient(135deg, #D12424, #633247) !important; color: var(--text-inverse) !important; }

/* DAYLIGHT NODE MARK — soft chip, right-aligned, no hardcoded glow. */
.landing-node-mark svg { filter: none !important; width: 24px !important; height: 24px !important; }
html[data-theme="light"] .landing-node-mark {
  color: var(--text-secondary) !important;
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: 999px !important;
  padding: 6px 14px 6px 10px !important;
  opacity: 1 !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04) !important;
  justify-content: flex-end !important;
}

/* DAYLIGHT AUTH — language/theme pill becomes pearl + ink. */
html[data-theme="light"] .gn-language-control {
  background: var(--surface) !important;
  border-color: var(--border-metallic) !important;
  color: var(--text-secondary) !important;
}
html[data-theme="light"] .gn-language-control > span { color: var(--text-secondary) !important; }
html[data-theme="light"] .gn-language-control button { color: var(--text-secondary) !important; }
html[data-theme="light"] .gn-language-control button.active {
  border-color: var(--accent-cyan) !important;
  background: var(--accent-cyan-soft) !important;
  color: var(--accent-cyan) !important;
  box-shadow: none !important;
}
html[data-theme="light"] .gn-theme-toggle {
  border-color: var(--border) !important;
  background: var(--surface) !important;
  color: var(--accent-cyan) !important;
}

/* PAGE HEADER CONTRAST — SHOTS (#pageLog) + LAB titles pop in both themes. */
#pageLog .page-title,
#pageLab .page-title { color: var(--text-primary) !important; opacity: 1 !important; }
#pageLog .page-title .a,
#pageLab .page-title .a { color: var(--accent-cyan) !important; opacity: 1 !important; }
#pageLog .page-sub,
#pageLab .page-sub { color: var(--text-secondary) !important; opacity: 1 !important; }
html[data-theme="light"] #pageLog .page-title .a,
html[data-theme="light"] #pageLab .page-title .a { text-shadow: none !important; }

/* DAYLIGHT BOOT — boot screen matches the active theme. */
html[data-theme="light"] #boot { background: var(--background) !important; color: var(--text-primary) !important; }
html[data-theme="light"] #boot .boot-slogan { color: var(--text-secondary) !important; }
html[data-theme="light"] #boot .boot-terminal { background: var(--surface) !important; border-color: var(--border) !important; }
html[data-theme="light"] #boot .boot-prog-pct { color: var(--accent-cyan) !important; }

/* ES/i18n OVERFLOW — Spanish runs 25–40% longer; wrap instead of clip. */
.gn-telemetry-heading h2,
.results-metric-label,
.results-metric-value,
.stat-label,
.stat-value,
.gn-telemetry-instrument h3,
.gn-preferences-card label,
.gn-vault-hud-select-label,
.results-list-item,
.phase-readout,
.gn-pref-wide,
.gn-progress-signal,
.s6-card,
.gn-wanda-card,
.phase-card,
.phase-sphere-progress {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  line-height: 1.2;
  word-break: break-word;
  hyphens: auto;
}

/* TOPBAR — post-auth language control (PR-10). */
.gn-topbar-language-control { display: inline-flex; align-items: center; gap: 3px; margin-right: 8px; }
.gn-topbar-language-control button { min-width: 32px; min-height: 32px; padding: 4px 8px; }
.gn-topbar-language-control button.active { border-color: var(--accent-cyan) !important; background: var(--accent-cyan-soft) !important; color: var(--accent-cyan) !important; }

/* MOBILE-FIRST — touch targets, FAB, bottom nav, stat cards (390–430px). */
@media (max-width: 430px) {
  .bottom-nav button,
  .bottom-nav a,
  .fab,
  .topbar-btn,
  .gn-theme-toggle,
  .gn-topbar-language-control button,
  .stat-card,
  .s6-card,
  .gn-wanda-card,
  .gn-record-delete,
  .gn-vault-hud-select-trigger,
  .form-input,
  .form-select,
  .btn-full { min-height: 44px; min-width: 44px; }

  .fab { width: auto; max-width: 96%; padding: 12px 16px; border-radius: 999px; }
  .fab .fab-label { white-space: normal; text-align: center; font-size: .68rem; letter-spacing: 1px; line-height: 1.15; }

  .bottom-nav { display: flex; justify-content: space-around; width: 100%; }
  .bottom-nav .nav-item { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: 2px; }
  .bottom-nav .nav-item .nav-lbl { display: block !important; font-size: .6rem; letter-spacing: .5px; white-space: nowrap; }

  .stat-card .stat-lbl,
  .stat-card .stat-sub,
  .stat-card .stat-val,
  .s6-card .s6-label,
  .s6-card .s6-value,
  .gn-wanda-card .gn-wanda-label,
  .gn-wanda-card .gn-wanda-value {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  .modal label,
  .archive-confirm-panel label,
  .gn-import-panel label,
  .gn-lab-tool-shell label,
  .gn-date-panel label { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }
}

/* ROUND 2 — sign-out panel + What's New + delete/import input daylight. */
html[data-theme="light"] .gn-signout-panel {
  background: var(--surface) !important;
  border-color: rgba(173, 47, 73, .42) !important;
  border-top-color: var(--danger) !important;
}
html[data-theme="light"] .gn-signout-panel div[style*="Orbitron"] { color: var(--text-primary) !important; }
html[data-theme="light"] .gn-signout-panel div[style*="Share Tech Mono"] { color: var(--text-secondary) !important; }
html[data-theme="light"] .gn-signout-panel button[onclick="closeSignOutModal()"] {
  background: var(--surface-elevated) !important;
  border-color: var(--border-strong) !important;
  color: var(--text-secondary) !important;
}
html[data-theme="light"] .gn-signout-panel button[onclick="confirmSignOut()"] {
  background: radial-gradient(130% 170% at 50% 0%, #FF5B5B 0%, #FF3B3B 42%, #D12424 100%) !important;
  border: 1px solid rgba(143, 15, 40, .55) !important;
  box-shadow: 0 4px 16px rgba(143, 15, 40, .35), inset 0 1px 0 rgba(255, 255, 255, .28) !important;
  color: #fff !important;
}

html[data-theme="light"] .gn-delete-panel input,
html[data-theme="light"] .gn-delete-panel select,
html[data-theme="light"] .gn-delete-panel textarea,
html[data-theme="light"] .csv-import-panel input,
html[data-theme="light"] .csv-import-panel select,
html[data-theme="light"] .archive-confirm-panel input {
  background: var(--input-background) !important;
  border-color: var(--input-border) !important;
  color: var(--text-primary) !important;
}

.gn-whatsnew-overlay {
  position: fixed;
  inset: 0;
  z-index: 240;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(0, 0, 0, .72);
  backdrop-filter: blur(6px);
}
.gn-whatsnew-overlay.active { display: flex; }
.gn-whatsnew-card {
  width: min(100%, 400px);
  padding: 24px 22px 20px;
  border: 1px solid rgba(0, 212, 255, .3);
  border-top: 2px solid var(--accent-cyan);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text-primary);
  box-shadow: var(--shadow-elevated);
  text-align: left;
  animation: whatsnewIn .22s ease both;
}
@keyframes whatsnewIn {
  from { opacity: 0; transform: translateY(8px) scale(.98); }
  to { opacity: 1; transform: none; }
}
.gn-whatsnew-kicker { color: var(--accent-cyan); font: 700 .58rem var(--font-m); letter-spacing: 2.4px; text-transform: uppercase; }
.gn-whatsnew-version { margin-top: 5px; color: var(--text-muted); font: .58rem/1 var(--font-m); letter-spacing: 1.6px; }
.gn-whatsnew-card h2 { margin: 12px 0 10px; color: var(--text-primary); font: 800 1.08rem/1.25 var(--font-d); letter-spacing: 1.4px; }
.gn-whatsnew-card ul { margin: 0 0 16px; padding-left: 18px; color: var(--text-secondary); font: .64rem/1.6 var(--font-m); }
.gn-whatsnew-card li { margin: 5px 0; }
.gn-whatsnew-actions { display: grid; grid-template-columns: 1fr auto; gap: 9px; }
@media (max-width: 430px) {
  .gn-whatsnew-actions { grid-template-columns: 1fr; }
  .gn-whatsnew-card h2 { font-size: .96rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gn-whatsnew-card { animation: none; }
}
html[data-theme="light"] .gn-whatsnew-overlay { background: rgba(43, 47, 47, .48); }
html[data-theme="light"] .gn-whatsnew-card {
  background: var(--surface);
  border-color: var(--border-metallic);
  border-top-color: var(--accent-cyan);
  color: var(--text-primary);
}

html[data-theme="light"] #pageLab .card,
html[data-theme="light"] #pageLab .syringe-visual,
html[data-theme="light"] .syringe-visual::before { color: #00677f; border-color: #00677f; }
html[data-theme="light"] #pageLab .gn-syr-body,
html[data-theme="light"] #pageLab .gn-syr-helper {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-primary) !important;
}
html[data-theme="light"] #pageLab .gn-syr-meta .k,
html[data-theme="light"] #pageLab .gn-syr-meta .v,
html[data-theme="light"] #pageLab .gn-syr-results .v,
html[data-theme="light"] #pageLab .mixing-text { color: var(--text-secondary) !important; }
html[data-theme="light"] #pageLab .gn-syr-results .k,
html[data-theme="light"] #pageLab .sec-title .a,
html[data-theme="light"] #pageLab .mixing-warn { color: var(--accent-cyan) !important; }

/* LAB tool host — calculator segments move inside the overlay when opened. */
html[data-theme="light"] #gnLabToolOverlay .card,
html[data-theme="light"] #gnLabToolOverlay .syringe-visual,
html[data-theme="light"] #gnLabToolOverlay .gn-syr-body,
html[data-theme="light"] #gnLabToolOverlay .gn-syr-helper {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text-primary) !important;
}
html[data-theme="light"] #gnLabToolOverlay .gn-syr-meta .k,
html[data-theme="light"] #gnLabToolOverlay .gn-syr-meta .v,
html[data-theme="light"] #gnLabToolOverlay .gn-syr-results .v,
html[data-theme="light"] #gnLabToolOverlay .mixing-text { color: var(--text-secondary) !important; }
html[data-theme="light"] #gnLabToolOverlay .gn-syr-results .k,
html[data-theme="light"] #gnLabToolOverlay .sec-title .a,
html[data-theme="light"] #gnLabToolOverlay .mixing-warn { color: var(--accent-cyan) !important; }

/* ═══════════════════════════════════════════════════════════════════
   MOTIVATION LAYER — goal vector, streak flame, operator level,
   achievement badges, milestone toasts. Reads records, never writes.
   ═══════════════════════════════════════════════════════════════════ */
.gn-motivation-strip {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: 12px;
  margin: 0 0 16px;
}
.gn-arc-card,
.gn-level-card {
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid rgba(142, 165, 173, .2);
  border-top: 2px solid var(--dayline-start);
  border-radius: 10px;
  background: linear-gradient(160deg, rgba(16, 22, 30, .92), rgba(7, 11, 17, .96));
  box-shadow: inset 0 1px rgba(255, 255, 255, .04), 0 9px 22px rgba(0, 0, 0, .16);
}
.gn-arc-wrap {
  position: relative;
  width: 128px;
  margin: 8px auto 2px;
}
.gn-arc { display: block; width: 128px; height: 128px; transform: rotate(-90deg); }
.gn-arc-track { fill: none; stroke: rgba(142, 165, 173, .16); stroke-width: 9; }
.gn-arc-fill {
  fill: none;
  stroke: var(--chart-primary, #00d4ff);
  stroke-width: 9;
  stroke-linecap: round;
  transition: stroke-dashoffset 1.1s cubic-bezier(.22, .8, .28, 1);
}
.gn-arc-goal-tick { fill: none; stroke: var(--chart-secondary, #ffd166); stroke-width: 5; opacity: .85; }
.gn-arc-center {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  text-align: center;
  pointer-events: none;
}
.gn-arc-center b { color: var(--text-primary); font: 800 1.25rem var(--font-d, monospace); letter-spacing: 1px; }
.gn-arc-center span { margin-top: 2px; color: var(--text-muted); font: 700 .48rem var(--font-m, monospace); letter-spacing: 1.4px; }
.gn-arc-readouts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 8px;
}
.gn-arc-readouts span { min-width: 0; text-align: center; }
.gn-arc-readouts small { display: block; color: var(--text-muted); font: 700 .46rem var(--font-m, monospace); letter-spacing: 1px; }
.gn-arc-readouts b { display: block; margin-top: 3px; color: var(--accent-cyan); font: 700 .78rem var(--font-d, monospace); }
.gn-arc-empty { min-height: 128px; display: grid; place-items: center; color: var(--text-muted); text-align: center; font: 700 .58rem/1.5 var(--font-m, monospace); letter-spacing: 1.1px; }

.gn-level-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.gn-level-kicker { color: var(--accent-cyan); font: 700 .5rem var(--font-m, monospace); letter-spacing: 1.8px; }
.gn-level-head b { color: var(--text-primary); font: 800 .78rem var(--font-d, monospace); letter-spacing: 1.4px; }
.gn-level-track {
  height: 7px;
  margin-top: 12px;
  border-radius: 999px;
  background: rgba(142, 165, 173, .16);
  overflow: hidden;
}
.gn-level-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--chart-primary, #00d4ff), var(--chart-secondary, #ffd166));
  box-shadow: 0 0 10px rgba(0, 212, 255, .28);
  transition: width .8s cubic-bezier(.22, .8, .28, 1);
}
.gn-level-xp { margin-top: 8px; color: var(--text-muted); font: 700 .52rem var(--font-m, monospace); letter-spacing: 1px; }

.gn-streak-flame-holder { display: inline-flex; margin-right: 8px; vertical-align: -2px; }
.gn-flame { display: inline-block; width: 20px; height: 20px; color: var(--chart-secondary, #ffd166); filter: drop-shadow(0 0 4px rgba(255, 209, 102, .4)); transition: filter .3s ease, transform .3s ease; }
.gn-flame svg { width: 100%; height: 100%; fill: currentColor; }
.gn-flame-core { fill: #ff8a3d; opacity: .92; }
.gn-flame-1 { width: 24px; height: 24px; filter: drop-shadow(0 0 7px rgba(255, 209, 102, .62)); }
.gn-flame-2 { width: 28px; height: 28px; filter: drop-shadow(0 0 11px rgba(255, 160, 60, .72)); }
.gn-flame-3 { width: 32px; height: 32px; filter: drop-shadow(0 0 16px rgba(255, 130, 40, .85)); animation: flamePulse 1.8s ease-in-out infinite; }
@keyframes flamePulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.07); } }

.gn-badges-card {
  margin: 16px 0;
  padding: 16px;
  border: 1px solid rgba(0, 212, 255, .18);
  border-left: 2px solid var(--accent-cyan);
  border-radius: 0 10px 10px 0;
  background: var(--surface);
  color: var(--text-primary);
}
.gn-badges-card h3 { margin: 6px 0 0; font: 700 .86rem var(--font-d, monospace); letter-spacing: 1.8px; }
.gn-badges-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 14px; }
.gn-badge { display: grid; gap: 6px; justify-items: center; padding: 10px 6px; text-align: center; opacity: .42; filter: grayscale(1); transition: opacity .25s ease, filter .25s ease, transform .25s ease; }
.gn-badge.unlocked { opacity: 1; filter: none; }
.gn-badge.unlocked .gn-badge-ring { box-shadow: 0 0 14px rgba(0, 212, 255, .28); }
.gn-badge-ring { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--border-strong); background: var(--surface-inset); }
.gn-badge-ring svg { width: 34px; height: 34px; }
.gn-badge-ring circle { fill: none; stroke: var(--accent-cyan); stroke-width: 1.4; }
.gn-badge-ring text { fill: var(--accent-cyan); font: 700 7px var(--font-d, monospace); letter-spacing: .5px; }
.gn-badge b { color: var(--text-secondary); font: 700 .5rem/1.25 var(--font-m, monospace); letter-spacing: .7px; text-transform: uppercase; }
.gn-badge.unlocked b { color: var(--text-primary); }

.gn-motiv-toast {
  position: fixed;
  left: 50%;
  bottom: calc(78px + var(--safe-bottom, 0px));
  z-index: 320;
  display: flex;
  align-items: center;
  gap: 10px;
  width: min(92vw, 380px);
  padding: 12px 16px;
  border: 1px solid rgba(0, 212, 255, .38);
  border-left: 3px solid var(--accent-cyan);
  border-radius: 8px;
  background: var(--surface-elevated);
  color: var(--text-primary);
  box-shadow: var(--shadow-elevated);
  transform: translate(-50%, 18px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}
.gn-motiv-toast.active { opacity: 1; transform: translate(-50%, 0); }
.gn-motiv-toast.level { border-color: rgba(255, 209, 102, .5); border-left-color: var(--accent-amber); }
.gn-motiv-toast-glyph { color: var(--accent-cyan); font-size: .7rem; }
.gn-motiv-toast.level .gn-motiv-toast-glyph { color: var(--accent-amber); }
.gn-motiv-toast-msg { font: 700 .62rem/1.4 var(--font-m, monospace); letter-spacing: 1.1px; }

html[data-theme="light"] .gn-arc-card,
html[data-theme="light"] .gn-level-card {
  background: linear-gradient(160deg, rgba(248, 245, 237, .98), rgba(237, 232, 221, .9));
  border-color: var(--border);
  box-shadow: var(--shadow-soft), inset 0 1px rgba(255, 255, 255, .86);
}
html[data-theme="light"] .gn-arc-track { stroke: rgba(103, 113, 116, .2); }
html[data-theme="light"] .gn-arc-fill { stroke: var(--accent-cyan); }
html[data-theme="light"] .gn-arc-goal-tick { stroke: var(--accent-amber); }
html[data-theme="light"] .gn-level-track { background: rgba(103, 113, 116, .2); }
html[data-theme="light"] .gn-flame { filter: drop-shadow(0 0 5px rgba(139, 91, 8, .35)); }
html[data-theme="light"] .gn-badges-card { background: var(--surface); border-color: var(--border); border-left-color: var(--accent-cyan); }
html[data-theme="light"] .gn-badge-ring { background: var(--surface-muted); }
html[data-theme="light"] .gn-motiv-toast { background: var(--surface); box-shadow: var(--shadow-elevated); }

@media (max-width: 620px) {
  .gn-motivation-strip { grid-template-columns: 1fr; }
  .gn-arc-card { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 8px 14px; }
  .gn-arc-card .gn-foundation-kicker { grid-column: 1 / -1; }
  .gn-arc-wrap { width: 112px; margin: 0 auto; }
  .gn-arc { width: 112px; height: 112px; }
  .gn-arc-readouts { grid-template-columns: repeat(3, 1fr); }
  .gn-badges-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
}
@media (max-width: 390px) {
  .gn-badges-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gn-badge-ring { width: 38px; height: 38px; }
  .gn-badge b { font-size: .44rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gn-arc-fill, .gn-level-track i { transition: none; }
  .gn-flame-3 { animation: none; }
}

/* PASSKEY (ROUND 4) — auth button + vault management. */
.gn-auth-passkey {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: min(336px, 100%);
  min-height: 48px;
  margin: 12px auto 16px;
  padding: 10px 18px;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  background: var(--surface-elevated);
  color: var(--text-primary);
  font: 600 .78rem var(--font-m);
  letter-spacing: 1.2px;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease;
}
.gn-auth-passkey:hover { border-color: var(--accent-cyan); background: var(--accent-cyan-soft); }
.gn-auth-passkey:disabled { opacity: .5; cursor: not-allowed; }
.gn-auth-passkey[hidden] { display: none; }
.gn-passkey-icon { font-size: 1.05rem; line-height: 1; }
html[data-theme="light"] .gn-auth-passkey { background: var(--surface); color: var(--text-primary); border-color: var(--border-metallic); }

.gn-passkeys-card {
  margin: 16px 0 0;
  padding: 14px 16px;
  border-left: 2px solid var(--accent-cyan);
  border-radius: 0 8px 8px 0;
  background: var(--surface);
  color: var(--text-primary);
}
.gn-passkeys-card h3 { margin: 6px 0 0; font: 700 .78rem var(--font-d); letter-spacing: 1.6px; }
.gn-passkeys-list { list-style: none; margin: 12px 0; padding: 0; }
.gn-passkey-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.gn-passkey-row:last-child { border-bottom: none; }
.gn-passkey-row b { display: block; color: var(--text-primary); font: 700 .62rem var(--font-m); letter-spacing: 1px; }
.gn-passkey-row small { display: block; margin-top: 3px; color: var(--text-muted); font: .56rem var(--font-m); }
.gn-passkey-revoke { background: transparent; border: 1px solid var(--border); color: var(--text-secondary); padding: 6px 10px; border-radius: 4px; font: 700 .56rem var(--font-m); letter-spacing: 1px; cursor: pointer; }
.gn-passkey-revoke:hover { border-color: var(--danger); color: var(--danger); }
.gn-passkeys-empty { color: var(--text-secondary); font: .6rem var(--font-m); letter-spacing: 1px; padding: 10px 0; }
html[data-theme="light"] .gn-passkeys-card { background: var(--surface); border-left-color: var(--accent-cyan); }

/* AUTH UX (ROUND 5) — obvious email/password entry + passkey upsell. */
.gn-auth-options { margin-top: 12px; }
.gn-auth-options summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: min(336px, 100%);
  margin: 0 auto;
  padding: 12px 14px;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  background: var(--surface-elevated);
  color: var(--text-secondary);
  font: 700 .62rem var(--font-m);
  letter-spacing: 1.2px;
  text-transform: uppercase;
  cursor: pointer;
  text-align: center;
  transition: border-color .16s ease, color .16s ease, background .16s ease;
}
.gn-auth-options summary::-webkit-details-marker { display: none; }
.gn-auth-options summary::after { content: '▾'; margin-left: 6px; color: var(--accent-cyan); }
.gn-auth-options[open] summary::after { content: '▴'; }
.gn-auth-options summary:hover,
.gn-auth-options summary:focus-visible { border-color: var(--accent-cyan); color: var(--text-primary); outline: none; }
.gn-auth-options form { margin-top: 14px; }
html[data-theme="light"] .gn-auth-options summary { background: var(--surface); color: var(--text-secondary); }
html[data-theme="light"] .gn-auth-options summary:hover { color: var(--text-primary); }

.gn-passkey-upsell {
  position: fixed;
  inset: 0;
  z-index: 250;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: var(--overlay);
  backdrop-filter: blur(6px);
}
.gn-passkey-upsell.active { display: flex; }
.gn-passkey-upsell-card {
  width: min(100%, 400px);
  padding: 22px;
  border: 1px solid var(--border-metallic);
  border-top: 2px solid var(--accent-cyan);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text-primary);
  box-shadow: var(--shadow-elevated);
}
.gn-passkey-upsell-card h3 { margin: 8px 0; font: 800 1rem/1.25 var(--font-d); letter-spacing: 1.4px; }
.gn-passkey-upsell-card p { margin: 0 0 16px; color: var(--text-secondary); font: .64rem/1.5 var(--font-m); }
.gn-passkey-upsell-actions { display: grid; grid-template-columns: 1fr auto; gap: 9px; }
@media (max-width: 430px) {
  .gn-passkey-upsell-actions { grid-template-columns: 1fr; }
}
html[data-theme="light"] .gn-passkey-upsell-card { background: var(--surface); }

/* AUTH COPY (ROUND 5) — Google is the hero; email is a quiet fallback. */
.gn-auth-options summary {
  width: auto;
  margin: 0 auto;
  padding: 8px 12px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: var(--text-muted);
  font: 600 .56rem var(--font-m);
  letter-spacing: .8px;
  text-transform: none;
}
.gn-auth-options summary::after { content: ''; margin-left: 0; }
.gn-auth-options summary:hover,
.gn-auth-options summary:focus-visible {
  border-color: var(--border);
  background: var(--surface-elevated);
  color: var(--text-secondary);
}
.gn-auth-options[open] summary { border-color: var(--border); background: var(--surface-elevated); color: var(--text-secondary); }
html[data-theme="light"] .gn-auth-options summary { background: transparent; color: var(--text-muted); }
html[data-theme="light"] .gn-auth-options summary:hover,
html[data-theme="light"] .gn-auth-options[open] summary { background: var(--surface); color: var(--text-secondary); }

/* PRODUCTION PASS (2026-08-01) — directives + QA fixes. */
.landing-hero { border-left: none !important; position: relative; }
html[data-theme="light"] .landing-hero { border-left: none !important; }

/* DIRECTIVE-001: controls cluster top-right + QA-036 NODE MARK reposition. */
.landing-language-control { position: absolute !important; top: max(14px, env(safe-area-inset-top, 0px)) !important; right: 14px !important; z-index: 6; }
.landing-node-mark {
  position: absolute !important;
  top: 60px !important;
  right: 14px !important;
  z-index: 6;
}
.gn-theme-toggle,
.gn-topbar-language-control button {
  min-width: 44px;
  flex: 0 0 auto;
}

/* DIRECTIVE-002: brand aligned to the left hero grid. */
.landing-logo {
  align-self: flex-start;
  width: 100%;
  max-width: 640px;
  text-align: left;
}
.landing-logo svg { max-width: 100%; height: auto; }

/* DIRECTIVE-006: lava red primary CTAs. */
html[data-theme="light"] .landing-btn.primary,
html[data-theme="light"] .gn-auth-primary,
.landing-btn.primary,
.gn-auth-primary,
.btn-full.btn-primary {
  background: linear-gradient(135deg, #FF3B3B, #D12424) !important;
  box-shadow: 0 6px 22px rgba(230, 57, 70, .35), inset 0 1px rgba(255, 255, 255, .25) !important;
  color: #fff !important;
}
html[data-theme="light"] .landing-btn.primary:hover,
html[data-theme="light"] .gn-auth-primary:hover,
.landing-btn.primary:hover,
.gn-auth-primary:hover,
.btn-full.btn-primary:hover {
  box-shadow: 0 8px 30px rgba(230, 57, 70, .4), inset 0 1px rgba(255, 255, 255, .3) !important;
  transform: translateY(-1px);
}

/* DIRECTIVE-004: avatar lock. */
.avatar, .prof-ava, .gn-avatar, .topbar-avatar {
  aspect-ratio: 1 / 1;
  width: 44px;
  height: 44px;
  overflow: hidden;
  object-fit: cover;
}

/* QA-050/051: profile/vault dark widgets + heading contrast. */
html[data-theme="light"] #pageProfile .vault-preset-select,
html[data-theme="light"] #pageProfile .form-select,
html[data-theme="light"] #pageProfile .gn-vault-hud-select-trigger,
html[data-theme="light"] #pageProfile .gn-identity-block,
html[data-theme="light"] #pageProfile .gn-user-card {
  background-color: var(--surface) !important;
  color: var(--text-primary) !important;
}
html[data-theme="light"] #pageProfile h3,
html[data-theme="light"] #pageProfile .gn-preferences-card h3 {
  color: var(--text-primary) !important;
  opacity: 1 !important;
}

/* QA-050: FAB + bottom-nav safe area on mobile. */
.fab { bottom: calc(74px + var(--safe-bottom, 0px)) !important; }
.bottom-nav { padding-bottom: env(safe-area-inset-bottom); }
.bottom-nav .nav-lbl { line-height: 1.15; }

/* QA-043 Option A: hologram scanner light stage. */
html[data-theme="light"] .site-scanner {
  background:
    linear-gradient(rgba(0, 111, 130, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 111, 130, .07) 1px, transparent 1px),
    var(--surface) !important;
  background-size: 18px 18px, 18px 18px, auto !important;
  border-color: var(--border) !important;
}
html[data-theme="light"] .scanner-reference-image {
  filter: brightness(.72) saturate(.8);
}
html[data-theme="light"] .zone-overlay {
  --zone-tint: rgba(173, 47, 73, .1);
}

@media (max-width: 620px) {
  .landing-language-control { top: 10px; right: 10px; }
  .landing-node-mark { top: 54px; right: 10px; }
  .landing-logo { max-width: 100%; }
}

/* Light-theme completeness: chrome surfaces must never stay dark. */
html[data-theme="light"] .cp-dropdown,
html[data-theme="light"] .gn-date-panel,
html[data-theme="light"] .future-confirm-panel,
html[data-theme="light"] .gn-shot-advanced-body,
html[data-theme="light"] .gn-weekly-report,
html[data-theme="light"] .gn-foundation-panel,
html[data-theme="light"] .gn-profile-hub {
  background: var(--surface-elevated, var(--surface, #f4f1e9)) !important;
  color: var(--text-primary, #1c2b31) !important;
  border-color: var(--border, rgba(20, 60, 70, .28)) !important;
}
html[data-theme="light"] .cp-dropdown .cp-option:hover,
html[data-theme="light"] .cp-dropdown .cp-group-label,
html[data-theme="light"] .gn-date-title,
html[data-theme="light"] .future-confirm-title {
  color: var(--text-primary, #1c2b31) !important;
}
html[data-theme="light"] .overlay .form-input,
html[data-theme="light"] .overlay input,
html[data-theme="light"] .overlay textarea,
html[data-theme="light"] .overlay select,
html[data-theme="light"] .csv-import-overlay input {
  background: var(--surface-elevated, #ffffff) !important;
  color: var(--text-primary, #1c2b31) !important;
  border-color: var(--border, rgba(20, 60, 70, .3)) !important;
}
html[data-theme="light"] .toast {
  background: var(--surface-elevated, #f4f1e9) !important;
  color: var(--text-primary, #1c2b31) !important;
  border: 1px solid var(--border, rgba(20, 60, 70, .28)) !important;
}

/* SHOTS holographic scanner: light-theme surfaces. */
html[data-theme="light"] .shots-scanner-card {
  background: var(--surface, #f4f1e9);
  border-color: var(--border, rgba(20, 60, 70, .25));
}
html[data-theme="light"] .shots-scanner-card::before { opacity: .35; }
html[data-theme="light"] .shots-scanner-head h2,
html[data-theme="light"] .shots-scanner-head p,
html[data-theme="light"] .asset-matrix-title b,
html[data-theme="light"] .scanner-selected-panel b,
html[data-theme="light"] .scanner-status-helper,
html[data-theme="light"] .shot-history-helper {
  color: var(--text-primary, #1c2b31) !important;
}
html[data-theme="light"] .asset-helper,
html[data-theme="light"] .scanner-source-tag {
  color: var(--text-secondary, #2e424b) !important;
}
html[data-theme="light"] .asset-scan-stage,
html[data-theme="light"] .site-scanner {
  background: transparent !important;
  border-color: var(--border, rgba(20, 60, 70, .3)) !important;
}
html[data-theme="light"] .gn-stable-zone-btn {
  border-color: var(--border, rgba(20, 60, 70, .3)) !important;
  color: var(--text-secondary, #2e424b) !important;
}
html[data-theme="light"] .gn-stable-zone-btn.selected {
  background: rgba(0, 111, 130, .14) !important;
  color: #005f73 !important;
  border-color: rgba(0, 111, 130, .45) !important;
}

/* First-five-minutes pass: DAY OPS dropdown/date/selected-state hardening. */
html[data-theme="light"] .cp-dropdown { border-color: rgba(0, 111, 130, .4) !important; }
html[data-theme="light"] .cp-dropdown .cp-option { color: #1a2328 !important; }
html[data-theme="light"] .cp-dropdown .cp-option:hover { background: rgba(0, 111, 130, .14) !important; color: #0d3c48 !important; }
html[data-theme="light"] .cp-group-minimized { color: #1a2328 !important; border-color: rgba(0, 111, 130, .3) !important; background: rgba(0, 111, 130, .06) !important; }
html[data-theme="light"] .gn-date-panel { background: #f8f5ed !important; color: #1a2328 !important; border-color: rgba(0, 111, 130, .35) !important; }
html[data-theme="light"] .gn-date-panel .cal-day { color: #1a2328 !important; }
html[data-theme="light"] .gn-date-panel .cal-day.selected,
html[data-theme="light"] .gn-date-panel .cal-day:hover { background: #006f82 !important; color: #fff !important; }

/* Day OPS dropdowns: beat the bundle's ID-scoped dark rules (e.g. #logOv #cpShotMedDrop .cp-option). */
html[data-theme="light"] #logOv .cp-dropdown,
html[data-theme="light"] #wtOv .cp-dropdown,
html[data-theme="light"] .cp-dropdown {
  background: var(--surface-elevated, #f8f5ed) !important;
  color: #1a2328 !important;
  border-color: rgba(0, 111, 130, .4) !important;
  box-shadow: 0 14px 40px rgba(30, 40, 45, .22) !important;
}
html[data-theme="light"] #logOv #cpShotMedDrop .cp-option,
html[data-theme="light"] #logOv #cpShotMedDrop .cp-group-minimized,
html[data-theme="light"] #wtOv .cp-option,
html[data-theme="light"] .cp-dropdown .cp-option {
  color: #1a2328 !important;
  background: transparent !important;
}
html[data-theme="light"] #logOv #cpShotMedDrop .cp-option:hover,
html[data-theme="light"] .cp-dropdown .cp-option:hover,
html[data-theme="light"] .cp-dropdown .cp-option.selected {
  background: rgba(0, 111, 130, .14) !important;
  color: #0d3c48 !important;
}
html[data-theme="light"] #logOv #cpShotMedDrop .cp-group-minimized {
  color: #1a2328 !important;
  border-color: rgba(0, 111, 130, .3) !important;
  background: rgba(0, 111, 130, .06) !important;
}

html[data-theme="light"] .gn-404-screen{background:#f0ece3;color:#22303a}
html[data-theme="light"] .gn-404-screen .gn-404-kicker{color:#00677f}
html[data-theme="light"] .gn-404-screen .gn-404-body{color:#3f535a}
html[data-theme="light"] .gn-404-screen .gn-404-btn{border-color:#00677f;color:#00677f}
html[data-theme="light"] .gn-404-screen .gn-404-btn:focus-visible{outline-color:#00677f}

/* DUSK contrast pass (stress-test): inline dark literals get light-theme overrides */
html[data-theme="light"] .phase-sphere-status,
html[data-theme="light"] .phase-sphere-kicker,
html[data-theme="light"] .phase-sphere-meta,
html[data-theme="light"] .gn-progress-signal span,
html[data-theme="light"] .gn-progress-timeline-label { color: #3f535a; }
html[data-theme="light"] .gn-inventory-history { color: #3f535a; }
html[data-theme="light"] .gn-inventory-history summary { color: #00677f; }
html[data-theme="light"] .gn-inventory-history span { color: #476169; }
html[data-theme="light"] .gn-preferences-grid label,
html[data-theme="light"] .gn-mapping-grid label { color: #3f535a; }
html[data-theme="light"] .gn-preferences-status,
html[data-theme="light"] .gn-import-map-button { color: #00677f; }
html[data-theme="light"] .gn-hub-close{border-color:rgba(0,111,130,.4);background:rgba(0,111,130,.08);color:#00677f}
html[data-theme="light"] .gn-hub-close:hover{border-color:#00677f;background:rgba(0,111,130,.14);color:#004d5e}
html[data-theme="light"] .gn-hub-close:focus-visible{outline-color:#00677f}

html[data-theme="light"] .gn-brand-strip { background: linear-gradient(90deg, transparent, #00758a 18%, #00758a 82%, transparent); opacity: .5; }
html[data-theme="light"] .topbar-hub-label { color: #00677f; }

html[data-theme="light"] .gn-empty-hero h2 { color: #22303a; }
html[data-theme="light"] .gn-empty-hero p { color: #3f535a; }
html[data-theme="light"] .gn-empty-ghost { border-color: rgba(0, 111, 130, .4); background: rgba(0, 111, 130, .07); color: #00677f; }
html[data-theme="light"] .gn-empty-ghost:hover, html[data-theme="light"] .gn-empty-ghost:focus-visible { border-color: #00677f; background: rgba(0, 111, 130, .13); color: #004d5e; }
html[data-theme="light"] .gn-tip-card { border-color: rgba(0, 111, 130, .4); background: linear-gradient(145deg, rgba(0, 111, 130, .08), rgba(248, 245, 237, .9)); }
html[data-theme="light"] .gn-tip-card .gn-tip-kicker { color: #00677f; }
html[data-theme="light"] .gn-tip-card p { color: #3f535a; }
html[data-theme="light"] .gn-wanda-card.info .gn-wanda-value { color: #22303a; }

html[data-theme="light"] .gn-profile-danger-row { background: rgba(255, 51, 85, .05) !important; }
html[data-theme="light"] .gn-research-custom-group { border-color: rgba(176, 106, 0, .45) !important; background: rgba(255, 176, 32, .06) !important; }
html[data-theme="light"] .gn-research-custom-group > span { color: #a86400 !important; }
html[data-theme="light"] .gn-custom-warning { border-color: rgba(176, 106, 0, .5); background: rgba(255, 176, 32, .08); color: #7a4c00; }
html[data-theme="light"] .gn-zone-hint-caption { color: #00677f; }

html[data-theme="light"] .gn-research-chip { border-color: rgba(0, 111, 130, .5); background: rgba(0, 111, 130, .07); color: #00677f; }
html[data-theme="light"] .gn-research-mode-custom .gn-research-mode-title { color: #a86400; }
html[data-theme="light"] .gn-research-back { color: #00677f; }
html[data-theme="light"] .gn-research-back:hover, html[data-theme="light"] .gn-research-back:focus-visible { color: #004d5e; }
html[data-theme="light"] .gn-research-custom-link { color: #00677f !important; }
html[data-theme="light"] .gn-research-custom-link:hover, html[data-theme="light"] .gn-research-custom-link:focus-visible { color: #004d5e; }

/* ── Review-fix: light-theme parity for undoable toast + research links ── */
html[data-theme="light"] .toast.undoable { background: rgba(255, 255, 255, .97) !important; border-color: #00758a !important; box-shadow: 0 6px 28px rgba(20, 40, 50, .18) !important; }
html[data-theme="light"] .toast.undoable .gn-toast-title { color: #1c2a30 !important; }
html[data-theme="light"] .toast.undoable .gn-toast-detail { color: #3f535a !important; }
html[data-theme="light"] .toast.undoable .gn-toast-check { color: #00758a !important; }
html[data-theme="light"] .toast.undoable .gn-toast-undo { border-color: rgba(0, 117, 138, .55); background: rgba(0, 117, 138, .08); color: #00677f !important; }
html[data-theme="light"] .toast.undoable .gn-toast-bar { background: #00758a !important; }
html[data-theme="light"] .gn-research-back { color: #00677f !important; }
html[data-theme="light"] .gn-research-back:hover, html[data-theme="light"] .gn-research-back:focus-visible { color: #004d5e !important; }
html[data-theme="light"] .gn-research-preset-badge { border-color: rgba(0, 117, 138, .5); color: #00677f !important; }

/* ── Exquisite Eyes light-theme WCAG fixes — 2026-08-07 ──
   Measured by scripts/audit-served-day-ops.cjs (light pass). */
/* ADD WEIGHT ENTRY title sat dark-on-dark (1.21:1) — give the weight
   modal header the same light treatment as the SHOT modal header. */
html[data-theme="light"] #wtOv .modal-hdr {
  background: #f8f5ed !important;
  color: #17272e !important;
  border-color: rgba(30, 64, 73, .2) !important;
}
/* YOUR DATA, YOUR RULES: 4.40:1 → ~7:1 */
html[data-theme="light"] #gnVaultPolicyLink { color: #33505C; }
/* CONTINUE ON THIS DEVICE ONLY: 2.52:1 → ~7:1 */
html[data-theme="light"] #gnLocalBtn { color: #2E424B !important; }
/* NO BODY MASS READINGS DETECTED: 4.41:1 → ~5.4:1 */
html[data-theme="light"] .gn-chart-state { color: #33505c !important; }
