/* Shared dark Neuronych identity for every surface. */
:root {
  color-scheme: dark;
  --brand-bg: #0d0f14;
  --brand-panel: #15181f;
  --brand-soft: #20242e;
  --brand-ink: #f3f2f7;
  --brand-muted: #b0afbd;
  --brand-line: #353946;
  --brand-accent: #b894ff;
  --brand-accent-soft: #29203d;
  --brand-on-accent: #160c27;
  --brand-danger: #ff98a8;
  --brand-success: #84d9a7;
  --brand-radius: 16px;
  --brand-font: "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}
:root body:is(.public-brand-page, .cabinet-brand-v3, .consumer-page, .business-page) {
  font-family: var(--brand-font);
  -webkit-font-smoothing: antialiased;
}
:root body.public-brand-page {
  color-scheme: dark;
  margin: 0;
  color: var(--brand-ink);
  background: var(--brand-bg);
  line-height: 1.6;
}
.public-brand-page *, .public-brand-page *::before, .public-brand-page *::after { box-sizing: border-box; }
:root body.public-brand-page::before, :root body.public-brand-page::after { display: none; }
.public-brand-page :is(a,button,input,select,textarea):focus-visible,
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid var(--brand-accent) !important; outline-offset: 3px;
}
:root body.public-brand-page :is(h1,h2,h3,strong,label) { color: var(--brand-ink); }
:root body.public-brand-page :is(p,li,.muted,.eyebrow,.login-lead,.login-footnote,.legal-foot) { color: var(--brand-muted); }
.public-brand-page :is(h1,h2,h3) { letter-spacing: -.035em; text-wrap: balance; }
.public-brand-page a { text-underline-offset: 3px; }
:root body.public-brand-page :is(.card,.login-box,.legal-card,.legal-hero,.legal-toc) {
  color: var(--brand-ink); background: var(--brand-panel); border: 1px solid var(--brand-line); border-radius: var(--brand-radius); box-shadow: none;
}
:root body.public-brand-page :is(.topbar,.mk-header) { background: var(--brand-bg); border-bottom: 1px solid var(--brand-line); backdrop-filter: none; }
:root body.public-brand-page .brand, :root body.public-brand-page .mk-brand { color: var(--brand-ink); font-size: 18px; letter-spacing: -.025em; }
:root body.public-brand-page :is(.mark,.mk-brand img) { width: 34px; height: 34px; }
:root body.public-brand-page .mk-brand small { color: var(--brand-muted); }
:root body.public-brand-page :is(.button,.mk-btn,button):not(.auth-provider) {
  min-height: 44px; padding: 10px 18px; border: 1px solid transparent; border-radius: 12px; background: var(--brand-accent); color: var(--brand-on-accent); box-shadow: none; font: 600 14px/1.4 var(--brand-font); text-decoration: none;
}
:root body.public-brand-page :is(.button.secondary,.mk-btn-secondary,.back-link) {
  background: var(--brand-panel); border-color: var(--brand-line); color: var(--brand-ink);
}
:root body.public-brand-page :is(.nav-link,.mk-mini-link) { color: var(--brand-muted); min-height: 44px; display: inline-flex; align-items: center; }
:root body.public-brand-page :is(input,select,textarea) { min-height: 44px; font: inherit; color: var(--brand-ink); background: var(--brand-panel); border: 1px solid var(--brand-line); }
:root body.public-brand-page .form-status.error { color: var(--brand-danger); }
:root body.public-brand-page :is(.login-visual,.login-visual-card) { background: var(--brand-soft); color: var(--brand-ink); border-color: var(--brand-line); box-shadow: none; }
:root body.public-brand-page .login-grid-bg { display: none; }
:root body.public-brand-page :is(.login-points span,.legal-meta span,.badge,.login-divider) { color: var(--brand-muted); background: transparent; border-color: var(--brand-line); }
:root body.public-brand-page .secure-badge { color: var(--brand-success); background: transparent; border-color: var(--brand-line); }
:root body.public-brand-page .login-visual-copy :is(strong,span) { color: var(--brand-ink); }
:root body.public-brand-page .auth-provider { border-radius: 12px; }
:root body.public-brand-page .login-shell { gap: 40px; }
:root body.public-brand-page .login-panel h1 { font-size: clamp(36px,4.8vw,64px); }
:root body.public-brand-page .legal-shell { padding-top: 48px; padding-bottom: 64px; }
:root body.public-brand-page .mk-header { position: sticky; top: 0; }
:root body.public-brand-page .mk-header-inner { min-height: 76px; gap: 16px; }
:root body.public-brand-page .mk-container { width: min(1180px,calc(100% - 40px)); }
:root body.public-brand-page .legal-card :is(p,li) { font-size: 16px; line-height: 1.75; }
:root body.public-brand-page .legal-card a { color: var(--brand-accent); }
:root body.public-brand-page .legal-toc a { color: var(--brand-muted); min-height: 44px; padding: 12px; font-size: 14px; }
:root body.public-brand-page .legal-toc a:is(:hover,[aria-current="page"]) { color: var(--brand-accent); background: var(--brand-accent-soft); }
:root body.public-brand-page :is(.legal-table th,.legal-table td) { border-color: var(--brand-line); color: var(--brand-ink); font-size: 14px; overflow-wrap: anywhere; }
:root body.public-brand-page .legal-callout { background: var(--brand-accent-soft); border-color: var(--brand-accent); }
:root body.public-brand-page .legal-callout strong { color: var(--brand-ink); }
:root body.public-brand-page .legal-foot { border-color: var(--brand-line); }
.public-brand-page.auth-message-page main { width: min(560px,calc(100% - 32px)); margin: 56px auto; }
.auth-message-page .card { padding: 28px; }
.auth-message-page h1 { font-size: clamp(28px,6vw,40px); line-height: 1.15; margin-top: 0; }
.auth-message-page .brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; margin-bottom: 24px; }
.auth-message-page .brand img { width: 34px; height: 34px; }
:root body.auth-message-page a { color: var(--brand-accent); }
:root body.auth-message-page code { color: var(--brand-ink); background: var(--brand-soft); overflow-wrap: anywhere; }
/* Workspace uses the same tokens in both themes; layout and state remain owned by each screen. */
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 {
  --cb-bg:var(--brand-bg); --cb-bg-2:var(--brand-soft); --cb-panel:var(--brand-panel); --cb-panel-2:var(--brand-soft); --cb-panel-3:var(--brand-soft);
  --cb-line:var(--brand-line); --cb-line-strong:var(--brand-accent); --cb-text:var(--brand-ink); --cb-soft:var(--brand-muted); --cb-muted:var(--brand-muted); --cb-purple:var(--brand-accent); --cb-purple-2:var(--brand-accent);
  --gp-bg:var(--brand-bg); --gp-bg-2:var(--brand-soft); --gp-panel:var(--brand-panel); --gp-panel-strong:var(--brand-soft); --gp-panel-soft:var(--brand-soft); --gp-text:var(--brand-ink); --gp-muted:var(--brand-muted); --gp-muted-2:var(--brand-muted); --gp-line:var(--brand-line); --gp-violet:var(--brand-accent);
  --bg:var(--brand-bg); --surface:var(--brand-panel); --surface-strong:var(--brand-soft); --text:var(--brand-ink); --text-soft:var(--brand-muted); --muted:var(--brand-muted); --muted-2:var(--brand-muted); --line:var(--brand-line); --purple:var(--brand-accent); --purple-2:var(--brand-accent); --green:var(--brand-success); --red:var(--brand-danger);
  color: var(--brand-ink) !important; background: var(--brand-bg) !important;
}
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4::before, :root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .gp-ambient, :root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .gp-sidebar::before { display: none !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.gp-sidebar,.gp-stage,.gp-topbar,.card,.glass-card,.product-card,.content-card,.content-section,.plan-card,.metric-card,.gp-rail-card,.settings-menu-card,.surface-context) {
  background: var(--brand-panel) !important; color: var(--brand-ink) !important; border-color: var(--brand-line) !important; box-shadow: none !important;
}
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.gp-brand,.gp-profile-copy strong,.topbar-title strong) { color: var(--brand-ink) !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.gp-profile,.gp-sidebar .side-nav [data-nav-key="life"]) { background: var(--brand-panel) !important; border-color: var(--brand-line) !important; box-shadow: none !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.gp-profile-copy small,.gp-sidebar .nav-link,.online,.muted,.empty) { color: var(--brand-muted) !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .gp-sidebar .nav-link:is(.active,[aria-current="page"]) { background: var(--brand-accent-soft) !important; color: var(--brand-accent) !important; border-color: var(--brand-line) !important; box-shadow: inset 3px 0 var(--brand-accent) !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.button,.icon-button,.composer-button) { min-height: 44px; border-radius: 12px !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .icon-button { min-width: 44px; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .button:not(.secondary):not(.danger) { background: var(--brand-accent) !important; color: var(--brand-on-accent) !important; box-shadow: none !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.button.secondary,.icon-button) { background: var(--brand-soft) !important; color: var(--brand-ink) !important; border-color: var(--brand-line) !important; box-shadow: none !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(input,select,textarea) { color: var(--brand-ink) !important; background: var(--brand-panel) !important; border-color: var(--brand-line) !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.page-hero,.hero-row,.product-hero,.billing-page .billing-hero) { background: var(--brand-soft) !important; color: var(--brand-ink) !important; border-color: var(--brand-line) !important; box-shadow: none !important; }
@media (max-width:620px) {
  :root body.public-brand-page .legal-card, :root body.public-brand-page .legal-hero { padding: 20px; }
  :root body.public-brand-page .legal-shell { padding-top: 24px; }
  :root body.public-brand-page .mk-header-actions { gap: 8px; }
  :root body.public-brand-page .mk-header-actions .mk-mini-link { display:none; }
  :root body.public-brand-page .mk-header-actions .mk-btn { padding-inline:12px; font-size:13px; }
  :root body.public-brand-page .mk-brand small { display:none; }
  :root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(input,select,textarea) { font-size: 16px !important; }
}
@media (prefers-reduced-motion:reduce) {
  .public-brand-page *, .cabinet-brand-v3 * { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
}

:root body.public-brand-page .mk-kicker { color: var(--brand-accent); }
:root body.public-brand-page .login-feature-grid > div { background: var(--brand-panel); border-color: var(--brand-line); }
:root body.public-brand-page .login-feature-grid b { color: var(--brand-ink); }
:root body.public-brand-page .login-feature-grid span { color: var(--brand-muted); }
:root body:is(.consumer-page,.business-page) .mk-btn-primary { background: var(--brand-accent); border-color: var(--brand-accent); color: var(--brand-on-accent); }

:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .gp-sidebar .nav-copy span { color: var(--brand-muted) !important; font-size: 11px !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .gp-sidebar .nav-copy strong { color: var(--brand-ink) !important; font-size: 13px !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .gp-sidebar .side-nav-label { color: var(--brand-muted) !important; font-size: 10px !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.onboarding-dialog,.onboarding-goal,.onboarding-preview,.command-dialog,.command-palette,.toast) { background: var(--brand-panel) !important; color: var(--brand-ink) !important; border-color: var(--brand-line) !important; box-shadow: none !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .onboarding-goal.active { border-color: var(--brand-accent) !important; background: var(--brand-accent-soft) !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.onboarding-head p,.onboarding-goal span,.onboarding-preview p,.onboarding-foot div) { color: var(--brand-muted) !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.onboarding-preview strong,.onboarding-goal strong) { color: var(--brand-ink) !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.onboarding-kicker,.onboarding-foot b,.onboarding-goal b,.gp-kicker) { color: var(--brand-accent) !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .onboarding-close { width: 44px; height: 44px; color: var(--brand-ink); background: var(--brand-soft); }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .settings-note { color: var(--brand-muted) !important; background: var(--brand-soft) !important; border-color: var(--brand-line) !important; }

/* Administrative tables share the brand while retaining their dense layout. */
:root body.admin-control {
  color-scheme: dark; --admin-bg:var(--brand-bg); --admin-panel:var(--brand-panel); --admin-panel-2:var(--brand-soft); --admin-border:var(--brand-line); --admin-border-strong:var(--brand-accent); --admin-text:var(--brand-ink); --admin-muted:var(--brand-muted); --admin-accent:var(--brand-accent); --admin-accent-2:var(--brand-accent); --admin-good:var(--brand-success); --admin-bad:var(--brand-danger); --admin-warn:#e4be73; --admin-radius:16px;
  color:var(--brand-ink); background:var(--brand-bg); font-family:var(--brand-font);
}
body.admin-control :is(.admin-sidebar,.admin-card,.admin-table th) { background:var(--brand-panel); border-color:var(--brand-line); box-shadow:none; }
body.admin-control :is(.admin-nav a:hover,.admin-nav a.active) { background:var(--brand-accent-soft); color:var(--brand-accent); }
body.admin-control .admin-brand-mark { background:none; border:0; box-shadow:none; }
body.admin-control .admin-button { min-height:44px; color:var(--brand-ink); border-color:var(--brand-line); background:var(--brand-panel); }
body.admin-control .admin-button.primary { color:var(--brand-on-accent); background:var(--brand-accent); }
body.admin-control .admin-button.danger { color:var(--brand-danger); }
body.admin-control .admin-badge:not(.good):not(.bad):not(.warn) { color:var(--brand-muted); }
body.admin-control :is(input,select,textarea) { color:var(--brand-ink); background:var(--brand-panel); border-color:var(--brand-line); }
body.admin-control :focus-visible { outline:3px solid var(--brand-accent); outline-offset:3px; }
:root body.public-brand-page :is(th,td) { color:var(--brand-ink); border-color:var(--brand-line); }
:root body.public-brand-page .badge.ok { color:var(--brand-success); }
:root body.public-brand-page .badge.bad { color:var(--brand-danger); }

:root[data-theme] body.cabinet-brand-v3 .gp-brand-copy > small { color: var(--brand-muted) !important; font-size: 10px !important; letter-spacing: .04em !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.gp-chat-main,.gp-chat-welcome,.gp-rail-card,.gp-section-panel,.settings-appearance,.settings-stat) { background:var(--brand-panel) !important; color:var(--brand-ink) !important; border-color:var(--brand-line) !important; box-shadow:none !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .gp-hero-copy h1 { font-size:clamp(30px,3vw,44px) !important; line-height:1.12 !important; letter-spacing:-.035em !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .gp-hero-copy h1 span { color:var(--brand-accent) !important; background:none !important; -webkit-text-fill-color:currentColor !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.gp-rail-card p,.gp-rail-card small,.gp-rail-heading a,.gp-rail-heading > span) { color:var(--brand-muted) !important; }
:root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 :is(.gp-action-list button,.gp-hero-actions button,.suggestion) { color:var(--brand-ink) !important; background:var(--brand-soft) !important; border-color:var(--brand-line) !important; box-shadow:none !important; }

:root body.public-brand-page :is(.surface-context,thead,th,code,pre) { background:var(--brand-soft) !important; color:var(--brand-ink) !important; border-color:var(--brand-line) !important; }
:root body.public-brand-page .surface-tab { color:var(--brand-muted); min-height:44px; font-size:13px; }
:root body.public-brand-page .surface-tab.active { background:var(--brand-accent-soft); color:var(--brand-accent); }
:root body.public-brand-page :is(.table-wrap,.admin-table-wrap):focus-visible { outline:3px solid var(--brand-accent); outline-offset:3px; }

:root body.public-brand-page.surface-page .surface-context .surface-tab { color:var(--brand-muted) !important; font-size:13px !important; }
:root body.public-brand-page.surface-page .surface-context .surface-tab.active { color:var(--brand-accent) !important; background:var(--brand-accent-soft) !important; }
@media (max-width:620px) {
  :root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .gp-topbar { height:auto !important; min-height:64px !important; flex-wrap:wrap !important; padding:10px !important; gap:8px !important; }
  :root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .gp-topbar .topbar-actions:first-child { flex:1 1 130px; min-width:0; }
  :root[data-theme] body.cabinet-brand-v3.cabinet-workspace-v4 .gp-topbar .topbar-actions:last-child { margin-left:auto; justify-content:flex-end; flex-wrap:wrap; gap:6px; }
}
.public-brand-page .legal-shell { overflow-wrap:anywhere; }
.public-brand-page :is(.legal-card,.legal-hero,.legal-layout) { min-width:0; }

/* Populated Today uses the same readable surfaces as its empty state. */
:root[data-theme] .life-page :is(.life-today,.life-empty,.life-checkin-card,.life-minimum-card,.life-habit,.life-habit-icon) { background:var(--brand-panel); color:var(--brand-ink); border-color:var(--brand-line); box-shadow:none; }
:root[data-theme] .life-page :is(h1,h2,strong) { color:var(--brand-ink); }
:root[data-theme] .life-page :is(p,label,.life-habit-copy span,.life-habit-status,.life-minimum-list span,.life-progress-ring span) { color:var(--brand-muted); font-size:13px; }
:root[data-theme] .life-page .life-habit-copy strong { font-size:15px; }
:root[data-theme] .life-page .life-kicker { color:var(--brand-accent); }
:root[data-theme] .life-page .life-progress-ring { background:radial-gradient(circle at center,var(--brand-panel) 58%,transparent 60%),conic-gradient(var(--brand-accent) calc(var(--life-progress)*1%),var(--brand-line) 0); box-shadow:none; }
:root[data-theme] .life-page .life-progress-track { background:var(--brand-line); }
:root[data-theme] .life-page .life-progress-track span { background:var(--brand-accent); box-shadow:none; }
:root[data-theme] .life-page .life-habit-actions .button { min-height:44px !important; font-size:12px; }
:root[data-theme] .life-page .life-habit.done { border-color:var(--brand-success); }
:root[data-theme] .life-page .life-check { color:var(--brand-success); }
:root[data-theme] .life-page .life-minimum-card { flex-wrap:wrap; }
:root[data-theme] .life-page .life-minimum-card > div { flex:1; min-width:min(100%,260px); }
:root[data-theme] .life-page .life-minimum-card > button { flex-shrink:0; }
:root[data-theme] .life-page .life-minimum-list { flex-basis:100%; }
