/* Theme selection is server-rendered before paint and restricted to three values. */
.desktop-access-notice { max-width:420px; margin:15vh auto; padding:28px; border:1px solid var(--border); border-radius:10px; background:var(--card); }
.desktop-access-notice .brand-symbol { margin-bottom:24px; }
.desktop-access-notice h1 { font-size:20px; line-height:1.4; margin:0 0 14px; }
.desktop-access-notice p { color:var(--muted-foreground); line-height:1.8; }
.desktop-access-notice small { color:var(--muted-foreground); }
@media(max-width:480px){.desktop-access-notice { margin:12vh 20px; padding:24px; }}
/* Low-chroma surfaces; actions stay dark instead of switching to white. */
html[data-theme=darkblue] {
 color-scheme:dark;
 --background:#11151c; --foreground:#d5d9e0;
 --card:#181e27; --card-foreground:#d5d9e0;
 --primary:#303b4a; --primary-foreground:#e4e7ec;
 --secondary:#202833; --secondary-foreground:#d5d9e0;
 --muted:#202833; --muted-foreground:#a0a9b7;
 --accent:#26313e; --accent-foreground:#d5d9e0;
 --border:#2c3541; --input:#343e4c; --ring:#778495;
 --paint-card:#181e27; --paint-muted:#202833; --paint-sidebar:#151b24;
 --paint-primary:#303b4a; --paint-on-primary:#e4e7ec;
 --paint-success-bg:#202e2a; --paint-success-text:#a0bdb0;
 --paint-danger-bg:#302428; --paint-danger-text:#c7a1a7;
 --paint-info-bg:#222d3a; --paint-info-text:#a3b6cc;
 --paint-warning-bg:#302b23; --paint-warning-text:#c6b494;
 --paint-violet-bg:#2a2734;
 --total-bg:#202833; --total-border:#394453;
 --hover-surface:#232d39; --selected-border:#526173; --action-hover:#3a4656;
}
html[data-theme=black] {
 color-scheme:dark;
 --background:#111113; --foreground:#d6d6da;
 --card:#19191c; --card-foreground:#d6d6da;
 --primary:#333338; --primary-foreground:#e7e7eb;
 --secondary:#232326; --secondary-foreground:#d6d6da;
 --muted:#232326; --muted-foreground:#a7a7af;
 --accent:#2b2b30; --accent-foreground:#d6d6da;
 --border:#303035; --input:#3a3a41; --ring:#808089;
 --paint-card:#19191c; --paint-muted:#232326; --paint-sidebar:#151518;
 --paint-primary:#333338; --paint-on-primary:#e7e7eb;
 --paint-success-bg:#242d28; --paint-success-text:#a5bbae;
 --paint-danger-bg:#302529; --paint-danger-text:#c5a3a8;
 --paint-info-bg:#262b33; --paint-info-text:#abb7c8;
 --paint-warning-bg:#302c25; --paint-warning-text:#c4b59b;
 --paint-violet-bg:#2b2832;
 --total-bg:#232326; --total-border:#414148;
 --hover-surface:#29292e; --selected-border:#595962; --action-hover:#404047;
}
html:not([data-theme=light]) :is(.text-gray-900,.text-gray-800,.text-gray-700,.text-zinc-900,.text-zinc-800) { color:var(--foreground); }
html:not([data-theme=light]) :is(.text-gray-600,.text-gray-500,.text-gray-400,.text-zinc-600,.text-zinc-500) { color:var(--muted-foreground); }
html:not([data-theme=light]) .insight-summary-total { background:var(--total-bg); color:var(--foreground); border-color:var(--total-border); }
html:not([data-theme=light]) .insight-summary-total :is(h3,span,small,svg,strong) { color:var(--foreground); }
html:not([data-theme=light]) .canvas-empty-board { background:var(--card); }
html:not([data-theme=light]) .canvas-node { --canvas-tint:var(--muted); }
html:not([data-theme=light]) .canvas-node.tone-amber { --canvas-tint:#342719; }
html:not([data-theme=light]) .canvas-node.tone-blue { --canvas-tint:#182b43; }
html:not([data-theme=light]) .canvas-node.tone-green { --canvas-tint:#12312b; }
html:not([data-theme=light]) .canvas-node.tone-rose { --canvas-tint:#3b1d28; }
html:not([data-theme=light]) .canvas-node.tone-violet { --canvas-tint:#26203b; }
html:not([data-theme=light]) .insight-tooltip { background:var(--card); color:var(--foreground); border-color:var(--border); }
html:not([data-theme=light]) .swatch-light { background:#fff !important; }
html:not([data-theme=light]) .swatch-darkblue { background:#101b2e !important; }
html:not([data-theme=light]) .swatch-black { background:#09090b !important; }
html:not([data-theme=light]) .website-icon { background:transparent; }

html:not([data-theme=light]) .canvas-viewport { background-image:radial-gradient(var(--border) .9px,transparent .9px); }
html[data-theme] body.text-base-content { color:var(--foreground); background:var(--background); }
html:not([data-theme=light]) .settings-inline-success { background:var(--paint-success-bg); color:var(--paint-success-text); }
html:not([data-theme=light]) .settings-inline-error { background:var(--paint-danger-bg); color:var(--paint-danger-text); }
html:not([data-theme=light]) .sidebar-section { border-color:var(--border); }

/* Dark-mode interaction states must never inherit light-only fills. */
html:is([data-theme=darkblue],[data-theme=black]) ::selection { background:var(--selected-border); color:var(--primary-foreground); }
html:is([data-theme=darkblue],[data-theme=black]) .sidebar-section > summary:hover,
html:is([data-theme=darkblue],[data-theme=black]) .nav-link:hover { background:var(--hover-surface); color:var(--foreground); }
html:is([data-theme=darkblue],[data-theme=black]) .sidebar-section.is-current > summary,
html:is([data-theme=darkblue],[data-theme=black]) .nav-link.is-active { background:var(--muted); color:var(--foreground); border-color:var(--border); box-shadow:none; }
html:is([data-theme=darkblue],[data-theme=black]) .nav-link { color:var(--muted-foreground); }
html:is([data-theme=darkblue],[data-theme=black]) .sidebar-section .sidebar-section-icon { background:var(--muted); color:var(--muted-foreground); }
html:is([data-theme=darkblue],[data-theme=black]) #main-content td { border-bottom-color:var(--border); }
html:is([data-theme=darkblue],[data-theme=black]) :is(.collab-primary,.confirm-approve,.calendar-apply,.canvas-save,.attendance-buttons button,.table-page-links > .is-current) { border-color:var(--selected-border); }
html:is([data-theme=darkblue],[data-theme=black]) :is(.collab-primary,.confirm-approve,.calendar-apply,.canvas-save,.attendance-buttons button):hover:not(:disabled),
html:is([data-theme=darkblue],[data-theme=black]) body :is(button,a)[class~="bg-zinc-600"]:hover { background:var(--action-hover); border-color:var(--selected-border); color:var(--primary-foreground); }
html:is([data-theme=darkblue],[data-theme=black]) .preference-choice:has(input:checked) { background:var(--accent); border-color:var(--selected-border); box-shadow:none; }
html:is([data-theme=darkblue],[data-theme=black]) .preference-choice:hover { background:var(--hover-surface); }
html:is([data-theme=darkblue],[data-theme=black]) :is(.multi-filter-trigger,.partner-select-trigger,.calendar-trigger):hover,
html:is([data-theme=darkblue],[data-theme=black]) :is(.partner-select-trigger,.calendar-trigger)[aria-expanded=true],
html:is([data-theme=darkblue],[data-theme=black]) .multi-filter[open] > summary { border-color:var(--selected-border); }
html:is([data-theme=darkblue],[data-theme=black]) #main-content .filter-toolbar :is(input,select):hover { border-color:var(--selected-border); }
html:is([data-theme=darkblue],[data-theme=black]) #main-content .filter-toolbar .filter-submit:active { background:var(--accent); }
html:is([data-theme=darkblue],[data-theme=black]) input:focus,
html:is([data-theme=darkblue],[data-theme=black]) select:focus,
html:is([data-theme=darkblue],[data-theme=black]) textarea:focus { border-color:var(--ring); box-shadow:0 0 0 2px var(--muted); }
html:is([data-theme=darkblue],[data-theme=black]) input:is([type=checkbox],[type=radio]) { accent-color:var(--ring) !important; }
html:is([data-theme=darkblue],[data-theme=black]) .calendar-popover { --calendar-accent:var(--paint-info-text); }
html:is([data-theme=darkblue],[data-theme=black]) .calendar-day.is-selected { background:var(--primary); color:var(--primary-foreground); }
html:is([data-theme=darkblue],[data-theme=black]) .calendar-draft-field.is-active { background:var(--accent); border-color:var(--selected-border); }
html:is([data-theme=darkblue],[data-theme=black]) .canvas-toolbar button[aria-pressed=true] { background:var(--accent); border-color:var(--selected-border); color:var(--foreground); }
html:is([data-theme=darkblue],[data-theme=black]) .canvas-node.is-selected { outline-color:var(--ring); }
html:is([data-theme=darkblue],[data-theme=black]) .canvas-edge.is-selected { stroke:var(--ring); }
html:is([data-theme=darkblue],[data-theme=black]) .partner-contact-remove:hover { color:var(--paint-danger-text); background:var(--paint-danger-bg); }
