html[data-theme="light"] {
    color-scheme: light;
    --page-bg: #f5f7fb;
    --surface: #ffffff;
    --surface-muted: #edf0f5;
    --ink: #131722;
    --muted: #667085;
    --line: #e4e8ef;
    --field-border: #ccd3df;
    --status-bg: #e9f4ff;
    --status-text: #144f9e;
    --success: #16803c;
    --error: #b42318;
}
html[data-theme="dark"] {
    color-scheme: dark;
    --page-bg: #0f1420;
    --surface: #192130;
    --surface-muted: #232e40;
    --ink: #eef2fa;
    --muted: #b3bfd2;
    --line: #334159;
    --field-border: #485874;
    --status-bg: #18355a;
    --status-text: #a9d0ff;
    --success: #75e09b;
    --error: #ff9292;
    --body-bg: #0f1420;
    --body-fg: #eef2fa;
    --body-quiet-color: #b3bfd2;
    --body-loud-color: #ffffff;
    --darkened-bg: #232e40;
    --selected-bg: #28374e;
    --selected-row: #28374e;
    --hairline-color: #334159;
    --border-color: #485874;
    --link-fg: #9bc5ff;
    --link-hover-color: #c8e0ff;
    --link-selected-fg: #c8e0ff;
    --error-fg: #ff9292;
    --close-button-bg: #334159;
    --close-button-hover-bg: #485874;
}
body { background: var(--page-bg); color: var(--ink); }
.card, .workspace header { background: var(--surface); color: var(--ink); border-color: var(--line); }
.field input:not([type="checkbox"]):not([type="radio"]), .field select, .field textarea,
.search input, .search select, .login-card input {
    background: var(--surface); color: var(--ink); border-color: var(--field-border);
}
.field input:disabled, .field input[readonly], .field select:disabled {
    background: var(--surface-muted) !important; color: var(--muted);
}
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
.button.secondary, .theme-button { background: var(--surface); color: var(--ink); border-color: var(--field-border); }
.button.secondary:hover, .theme-button:hover { background: var(--surface-muted); }
th { background: var(--surface-muted); color: var(--muted); }
th, td, h2 { border-color: var(--line); }
.badge, .module-icon, h2 span { background: var(--status-bg); color: var(--status-text); }
.notice { background: var(--status-bg); color: var(--status-text); }
html[data-theme="dark"] a:not(.button):not(.logo):not(.sidebar a) { color: #9bc5ff; }
.theme-button {
    border: 1px solid var(--field-border); border-radius: 6px; padding: 8px 12px;
    font: 600 12px system-ui, sans-serif; cursor: pointer; white-space: nowrap;
}
.theme-button:focus-visible { outline: 2px solid #649eff; outline-offset: 3px; }
.login-theme-button { position: fixed; top: 20px; right: 20px; }
html[data-theme="light"] .login-page { background: radial-gradient(ellipse at top, #e3edff, #f5f7fb 70%); }
html[data-theme="light"] .login-container > .logo { color: #131722; }
html[data-theme="light"] .login-tagline, html[data-theme="light"] .login-footer { color: #667085; }
#email-status.email-valid { color: var(--success) !important; font-weight: 700; }
#email-status.email-invalid, .errorlist, .errorlist li { color: var(--error) !important; font-weight: 700; }
.field:has(.errorlist) > label, .field:has([aria-invalid="true"]) > label { color: var(--error); }
.field:has(.errorlist) input, .field:has(.errorlist) select, .field:has(.errorlist) textarea,
.field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"] {
    border-color: var(--error); color: var(--error); font-weight: 700;
}
@media (max-width: 550px) { .user-menu { flex-wrap: wrap; justify-content: flex-end; } }
