/* Palettes are shared with previews; existing --bt-* names remain compatible. */
:root, .appearance-accent-option[data-accent="forest"] {
  --palette-bg: #080D0B; --palette-secondary: #0D1511; --palette-surface: #121D17;
  --palette-primary: #39F5A4; --palette-button: #16B981; --palette-border: #245C45;
  --palette-text: #F0FFF7; --palette-button-text: #080D0B;
  --logo-hue: 0deg;
}
:root[data-accent="rose"], .appearance-accent-option[data-accent="rose"] {
  --palette-bg: #0C080D; --palette-secondary: #130D14; --palette-surface: #1B1019;
  --palette-primary: #FF65BD; --palette-button: #E83E96; --palette-border: #743052;
  --palette-text: #FFF0F7; --palette-button-text: #0C080D;
  --logo-hue: 180deg;
}
:root[data-accent="blue"], .appearance-accent-option[data-accent="blue"] {
  --palette-bg: #080B12; --palette-secondary: #0D1420; --palette-surface: #101824;
  --palette-primary: #55B9FF; --palette-button: #258EEB; --palette-border: #285B85;
  --palette-text: #EEF7FF; --palette-button-text: #080B12;
  --logo-hue: 65deg;
}
:root[data-accent="lavender"], .appearance-accent-option[data-accent="lavender"] {
  --palette-bg: #0D0A12; --palette-secondary: #140E1C; --palette-surface: #191222;
  --palette-primary: #B68AFF; --palette-button: #8955DB; --palette-border: #63418D;
  --palette-text: #F5EEFF; --palette-button-text: #FFFFFF;
  --logo-hue: 110deg;
}
:root[data-accent="sunset"], .appearance-accent-option[data-accent="sunset"] {
  --palette-bg: #100A07; --palette-secondary: #19100A; --palette-surface: #21150D;
  --palette-primary: #FFAA55; --palette-button: #E98932; --palette-border: #754923;
  --palette-text: #FFF5EA; --palette-button-text: #100A07;
  --logo-hue: 240deg;
}
:root[data-accent="ocean"], .appearance-accent-option[data-accent="ocean"] {
  --palette-bg: #071011; --palette-secondary: #0C181A; --palette-surface: #102023;
  --palette-primary: #55F0E0; --palette-button: #20BFAF; --palette-border: #276D69;
  --palette-text: #EFFFFD; --palette-button-text: #071011;
  --logo-hue: 20deg;
}
:root {
  color-scheme: dark;
  --bg-primary: var(--palette-bg);
  --bg-secondary: var(--palette-secondary);
  --bg-tertiary: color-mix(in srgb, var(--palette-surface) 85%, var(--palette-primary));
  --surface: var(--palette-surface);
  --surface-hover: color-mix(in srgb, var(--palette-surface) 92%, var(--palette-primary));
  --primary: var(--palette-primary);
  --primary-hover: color-mix(in srgb, var(--palette-primary) 88%, white);
  --primary-soft: color-mix(in srgb, var(--primary) 10%, transparent);
  --accent: var(--palette-button);
  --border: var(--palette-border);
  --border-active: color-mix(in srgb, var(--primary) 65%, var(--border));
  --text-primary: var(--palette-text);
  --text-secondary: color-mix(in srgb, var(--palette-text) 72%, var(--palette-bg));
  --text-muted: color-mix(in srgb, var(--palette-text) 58%, var(--palette-bg));
  --success: #62D98C; --warning: #F2C982; --danger: #F0A199; --info: #79C4FF;
  --glow: color-mix(in srgb, var(--primary) 16%, transparent);
  --gradient-primary: linear-gradient(135deg, var(--accent), var(--bt-accent-button-hover));
  --button-hover-tint: var(--bg-primary);
  --bt-page: var(--bg-primary);
  --bt-page-alt: var(--bg-secondary);
  --bt-sidebar: var(--bg-secondary);
  --bt-topbar: color-mix(in srgb, var(--bg-secondary) 94%, transparent);
  --bt-surface: var(--surface);
  --bt-surface-raised: var(--bg-tertiary);
  --bt-surface-soft: var(--surface-hover);
  --bt-field: var(--bg-primary);
  --bt-border: var(--border);
  --bt-border-strong: color-mix(in srgb, var(--primary) 42%, var(--border));
  --bt-text: var(--text-primary);
  --bt-muted: var(--text-secondary);
  --bt-subtle: var(--text-muted);
  --bt-shadow: 0 20px 54px rgb(0 0 0 / 30%), 0 0 24px color-mix(in srgb, var(--primary) 3%, transparent);
  --bt-event-exam: #F27372; --bt-event-work: #E9B84F;
  --bt-event-study: var(--success); --bt-event-other: #A58BE8;
  --bt-error: var(--danger); --bt-warning: var(--warning);
  --bt-accent: var(--primary);
  --bt-accent-link: var(--primary-hover);
  --bt-accent-button: var(--accent);
  --bt-accent-button-hover: color-mix(in srgb, var(--accent) 92%, var(--button-hover-tint));
  --bt-on-accent: var(--palette-button-text);
  --bt-accent-text: var(--bg-primary);
  --bt-accent-soft: var(--primary-soft);
  --bt-accent-border: var(--border-active);
  --bt-accent-glow: var(--glow);
  --bt-scroll-track: var(--bg-secondary);
  --bt-scroll-thumb: var(--primary);
  --bt-scroll-thumb-hover: var(--primary-hover);
  --bt-surface-gradient: linear-gradient(145deg, var(--surface), var(--bg-secondary));
  --bt-login-card: color-mix(in srgb, var(--surface) 96%, transparent);
}
/* Keep the existing light-mode preference without sacrificing themed surfaces. */
:root[data-theme="light"] {
  color-scheme: light;
  --bg-primary: color-mix(in srgb, var(--palette-primary) 3%, #F8FAFC);
  --bg-secondary: color-mix(in srgb, var(--palette-primary) 7%, #F0F2F5);
  --bg-tertiary: color-mix(in srgb, var(--palette-primary) 5%, white);
  --surface: #FFFFFF;
  --surface-hover: color-mix(in srgb, var(--palette-primary) 9%, white);
  --primary: color-mix(in srgb, var(--palette-primary) 45%, #101018);
  --primary-hover: color-mix(in srgb, var(--primary) 88%, black);
  --accent: var(--primary);
  --border: color-mix(in srgb, var(--palette-border) 38%, white);
  --text-primary: #202027; --text-secondary: #4F4F5B; --text-muted: #646471;
  --palette-button-text: #FFFFFF;
  --button-hover-tint: #000000;
  --bt-accent-text: #FFFFFF;
  --success: #24763C; --warning: #86520B; --danger: #A53F37; --info: #176397;
  --bt-event-exam: #B43B36; --bt-event-work: #95620C; --bt-event-other: #654B9B;
  --bt-shadow: 0 18px 46px rgb(20 20 30 / 12%);
}

html, body { color: var(--bt-text); background-color: var(--bt-page); }
html { scrollbar-color: var(--bt-scroll-thumb) var(--bt-scroll-track); scrollbar-width: thin; }
* { scrollbar-color: var(--bt-scroll-thumb) var(--bt-scroll-track); }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { border: 1px solid var(--bt-border); border-radius: 999px; background: var(--bt-scroll-track); }
*::-webkit-scrollbar-thumb { min-height: 32px; border: 2px solid var(--bt-scroll-track); border-radius: 999px; background: linear-gradient(180deg, var(--bt-accent), var(--bt-scroll-thumb)); }
*::-webkit-scrollbar-thumb:hover { background: var(--bt-scroll-thumb-hover); }
*::-webkit-scrollbar-corner { background: var(--bt-scroll-track); }
.sidebar, .books-grid, .notebook-list, .notebook-page, .task-writing-surface, .calendar-days, .study-event-list, .modal-fields, .subject-modal, .study-item-modal, .study-event-modal, .selected-material-files, .global-search-results, .profile-main-content, .plan-main-content { scrollbar-color: var(--bt-scroll-thumb) var(--bt-scroll-track); scrollbar-width: thin; }

.workspace { background: var(--bt-page); }
.sidebar { border-color: var(--bt-border); background: var(--bt-sidebar); }
.brand, .profile-name, .profile-trigger { color: var(--bt-text); }
.topbar { border-color: var(--bt-border); background: var(--bt-topbar); }
.nav-link { color: var(--bt-muted); }
.nav-link:hover, .profile-trigger:hover, .profile-trigger[aria-expanded="true"] { border-color: var(--bt-border); background: var(--bt-surface-soft); color: var(--bt-text); }
.nav-link.active { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); color: var(--bt-accent); }
.sidebar-note, .chevron { border-color: var(--bt-border); color: var(--bt-subtle); }
.note-dot { background: var(--bt-accent); box-shadow: 0 0 12px var(--bt-accent-glow); }
.avatar, .profile-large-avatar { border-color: var(--bt-accent-border); background: var(--gradient-primary); color: var(--bt-on-accent); }
.profile-menu, .global-search-results { border-color: var(--bt-border-strong); background: var(--bt-surface); box-shadow: var(--bt-shadow); }
.profile-menu button, .global-search-result { color: var(--bt-text); }
.profile-menu button:hover, .profile-menu-link:hover, .profile-menu-link[aria-current="page"], .global-search-result:hover, .global-search-result[aria-selected="true"] { background: var(--bt-accent-soft); color: var(--bt-accent); }
.menu-label, .global-search-result-meta, .global-search-empty { color: var(--bt-subtle); }
.main-content, .profile-main-content, .plan-main-content { color: var(--bt-text); }
h1, h2, h3, h4, .profile-page-heading h1, .plan-page-heading h1, .calendar-month-controls h2, .events-panel-header h2, .notebook-heading h1, .notebook-panel h2, .home-welcome-copy h2, .home-card-heading h2, .profile-card-heading h2, .section-heading h2 { color: var(--bt-text); }
.page-subtitle, .profile-card-heading p:last-child, .section-heading p, .plan-storage-note, .home-summary-hint, .home-empty-copy, .home-reminder-summary, .weekly-metrics small, .profile-footnote, .account-footnote { color: var(--bt-muted); }
.empty-state p, .notebook-panel p, .coming-card p, .profile-card-heading p, .section-heading p, .notebook-empty p, .notes-empty-editor, .task-writing-surface .notebook-empty, .focus-storage-note, .focus-state-message { color: var(--bt-muted); }
.profile-field label, .profile-card fieldset legend, .security-notice p, .security-notice strong, .profile-card-heading h2 { color: var(--bt-text); }
.appearance-preview-legend { color: var(--bt-muted); }
.study-event-modal form > label, .study-event-form-row label, .focus-modal form label, .flashcard-form label, .optional { color: var(--bt-muted); }
.security-notice { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); }
.profile-form-status { color: var(--bt-accent); }
.profile-demo-tag { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); color: var(--bt-accent); }
.profile-large-avatar { box-shadow: 0 0 24px var(--bt-accent-glow); }
.secondary-button { border-color: var(--bt-border-strong); background: var(--bt-surface-soft); color: var(--bt-text); }
.secondary-button:hover { border-color: var(--bt-accent); background: var(--bt-accent-soft); color: var(--bt-accent); }
.eyebrow, .back-link, .home-card-heading a, .home-card-heading button, .home-metric-note, .show-upcoming-button { color: var(--bt-accent); }
a { color: var(--bt-accent-link); }
a:hover { color: var(--bt-accent); }
.primary-button, .submit { border-color: var(--bt-accent-border); background: var(--gradient-primary); color: var(--bt-on-accent); box-shadow: 0 8px 24px var(--bt-accent-glow); }
.primary-button:hover, .submit:hover { border-color: var(--bt-accent); background: var(--bt-accent-button-hover); }
.secondary-button, .calendar-nav-button, .calendar-today-button, .icon-button, .close-subject { border-color: var(--bt-border-strong); background: var(--bt-surface-soft); color: var(--bt-text); }
.secondary-button:hover, .calendar-nav-button:hover, .calendar-today-button:hover, .icon-button:hover, .close-subject:hover { border-color: var(--bt-accent); background: var(--bt-accent-soft); color: var(--bt-accent); }
.add-subject { border-color: var(--bt-accent-border); color: var(--bt-on-accent); }
.new-notebook-button, .notebook-add-button { border-color: var(--bt-accent-border); color: var(--bt-accent); }
.global-search { border-color: var(--bt-border); background: var(--bt-field); color: var(--bt-muted); }
.global-search:focus-within { border-color: var(--bt-accent); box-shadow: 0 0 0 3px var(--bt-accent-glow); }
.global-search input { color: var(--bt-text); }
.search-symbol { stroke: var(--bt-accent); }
.global-search > button { color: var(--bt-accent-link); }

input:not([type="radio"]):not([type="checkbox"]):not([type="range"]), select, textarea {
  border-color: var(--bt-border-strong);
  background-color: var(--bt-field);
  color: var(--bt-text);
  color-scheme: inherit;
}
input::placeholder, textarea::placeholder { color: var(--bt-subtle); opacity: 1; }
input:focus, select:focus, textarea:focus { border-color: var(--bt-accent) !important; box-shadow: 0 0 0 3px var(--bt-accent-glow) !important; }
input[type="radio"], input[type="checkbox"] { accent-color: var(--bt-accent); }
option { color: var(--bt-text); background: var(--bt-surface); }
:root[data-theme="light"] select { color-scheme: light !important; }
:root[data-theme="dark"] select { color-scheme: dark !important; }
#subject-name { border-color: var(--bt-accent-border); background-color: var(--bt-field); color: var(--bt-text); }
#subject-name:focus, #subject-name:focus-visible { border-color: var(--bt-accent); background-color: var(--bt-field); box-shadow: 0 0 0 3px var(--bt-accent-glow), 0 0 14px var(--bt-accent-glow); }
:root[data-theme="light"] #subject-name:-webkit-autofill,
:root[data-theme="light"] #subject-name:-webkit-autofill:hover,
:root[data-theme="light"] #subject-name:-webkit-autofill:focus { -webkit-text-fill-color: var(--bt-text); -webkit-box-shadow: 0 0 0 1000px var(--bt-field) inset, 0 0 0 3px var(--bt-accent-glow); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline-color: var(--bt-accent) !important; }

.home-welcome-card, .home-summary-card, .profile-card, .notebook-shell, .notebooks-sidebar, .notebook-panel, .coming-card, .flashcard-entry, .flashcard-review-card, .calendar-panel, .events-panel, .study-plan-event, .subject-modal, .study-item-modal, .study-event-modal, .delete-note-dialog, .signup-modal, .login-card {
  border-color: var(--bt-border);
  background: var(--bt-surface-gradient);
  color: var(--bt-text);
  box-shadow: var(--bt-shadow);
}
.login-card { background: var(--bt-login-card); }
.home-welcome-card, .home-summary-card, .profile-card, .notebook-shell, .notebooks-sidebar, .notebook-panel, .coming-card, .flashcard-entry, .calendar-panel, .events-panel { border-color: var(--bt-border); }
.notebook-page, .notes-panel-content, .notebook-content, .other-notebook-content, .notes-workspace, .note-writing-area, .task-writing-surface, .ruled-writing-surface { color: var(--bt-text); }
.notes-workspace, .note-writing-area, .task-writing-surface, .ruled-writing-surface { background-color: var(--bt-surface); }
.notebook-tabs, .notebook-content-head, .note-editor-header, .notebooks-sidebar-head { border-color: var(--bt-border); }
.notebook-tab { color: var(--bt-muted); }
.notebook-tab:hover, .notebook-tab.active { color: var(--bt-accent); }
.notebook-tab.active { border-color: var(--bt-accent); }
.notebook-tab.active::after { background: var(--bt-accent); box-shadow: 0 0 10px var(--bt-accent-glow); }
.note-book-card { border-color: var(--bt-border); background: var(--bt-surface-gradient); color: var(--bt-text); }
.note-book-card.active, .note-book-card.selected, .note-book-card[aria-pressed="true"] { border-color: var(--bt-accent); background: var(--bt-accent-soft); box-shadow: 0 0 0 1px var(--bt-accent-border), 0 0 18px var(--bt-accent-glow); }
.note-book-date, .note-save-status, .notebook-list-empty { color: var(--bt-muted); }
.note-book-title, .notebook-empty h2, .notes-empty-editor h2, .task-writing-surface .task-entry h3, .task-entry-actions button, .study-item-form-status { color: var(--bt-text); }
.task-summary-counts strong { color: var(--bt-accent); }
.note-book-card:hover { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); }
.notebook-empty-mark, .empty-note-mark { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); color: var(--bt-accent); }
.new-notebook-button, .notebook-add-button { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); color: var(--bt-accent); }
.new-notebook-button:hover, .notebook-add-button:hover { border-color: var(--bt-accent); background: var(--bt-accent-soft); }
.task-entry-actions button { border-color: var(--bt-border); background: var(--bt-surface-soft); }
.task-entry-actions button:hover { border-color: var(--bt-accent); color: var(--bt-accent); }
.task-writing-surface .task-entry.done h3 { color: var(--bt-subtle); }
.mini-book { border-color: var(--bt-accent); box-shadow: inset 5px 0 rgb(0 0 0 / 34%), inset 0 0 14px var(--bt-accent-glow), 0 0 9px var(--bt-accent-glow), 0 13px 23px rgb(0 0 0 / 25%); }
.note-title-input, .task-entry, .material-entry, .flashcard-entry { color: var(--bt-text); }
.note-writing-area, .task-writing-surface { caret-color: var(--bt-accent); }
.home-next-event-button { color: var(--bt-text); }
.home-next-event-button span, .home-summary-content, .study-event-meta, .study-event-description { color: var(--bt-muted); }
.home-reminder-summary, .home-reminder-item, .home-reminder-item span:last-child { color: var(--bt-muted); }
.weekly-metrics strong, .weekly-bar { color: var(--bt-accent); }
.weekly-bar { background: linear-gradient(var(--bt-accent), var(--bt-accent-button)); box-shadow: 0 0 8px var(--bt-accent-glow); }
.panel-icon, .section-icon, .notebook-icon, .event-empty-mark { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); color: var(--bt-accent); }
.green-icon, .purple-icon, .amber-icon { background: var(--bt-accent-soft); color: var(--bt-accent); }
.dashboard-action-status, .profile-form-status { border-color: var(--bt-accent-border); color: var(--bt-accent); }
.dashboard-action-status { background: var(--bt-accent-soft); }
.profile-form-status.error, .profile-delete-error, .study-event-form-error, .dashboard-action-status.error, .note-save-status.error, .study-item-form-status.error, .material-file-status.error, .delete-material-error { color: var(--bt-error); }
.dashboard-action-status.error { border-color: color-mix(in srgb, var(--bt-error) 40%, transparent); }
.subject-error, .login-message { color: var(--bt-warning); }
.delete-note-warning { color: var(--bt-muted); }
.home-summary-card, .flashcard-entry, .material-entry, .task-entry { border-color: var(--bt-border); }
.material-entry, .task-entry, .flashcard-entry { background: var(--bt-surface-gradient); }
.material-entry-head, .material-file, .selected-material-file { border-color: var(--bt-border); background: var(--bt-surface-soft); color: var(--bt-text); }
.material-entry-link, .material-item-kind, .material-file-status { color: var(--bt-accent-link); }
.material-item-kind { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); color: var(--bt-accent); }
.material-entry a, .material-file-actions a { color: var(--bt-accent-link); }
.material-entry a:hover, .material-file-actions a:hover { color: var(--bt-accent); }
.material-image-preview { border-color: var(--bt-border); }
.study-event-modal::backdrop, .delete-note-dialog::backdrop, .subject-modal::backdrop, .signup-modal::backdrop { background: rgb(0 0 0 / 58%); }
.delete-note-dialog .eyebrow, .study-event-modal .eyebrow, .subject-modal .eyebrow, .signup-modal .eyebrow { color: var(--bt-accent); }
.delete-note-warning, .delete-note-question { color: var(--bt-muted); }
.delete-confirm-button { border-color: #a4463e; background: #8f302c; color: #fff; }
.delete-confirm-button:hover { border-color: #c95d51; background: #a83a34; }
.subject-modal legend, .subject-modal form > label, .study-item-modal label, .study-event-modal label, .focus-modal label, .modal-fields label { color: var(--bt-text); }
.color-choice:has(input:checked) { border-color: var(--bt-accent); box-shadow: 0 0 0 2px var(--bt-surface), 0 0 0 3px var(--bt-accent), 0 0 12px var(--bt-accent-glow); }
.icon-choices input:checked + span { border-color: var(--bt-accent); background: var(--bt-accent-soft); box-shadow: 0 0 0 2px var(--bt-accent-glow); }
.color-choice:focus-within, .icon-choices input:focus-visible + span { outline: 2px solid var(--bt-accent); outline-offset: 3px; }
.appearance-mode-group legend, .appearance-accent-group legend { color: var(--bt-muted); }
.mode-option-label, .appearance-option-body { border-color: var(--bt-border-strong); background: var(--bt-field); color: var(--bt-text); }
.appearance-mode-option input:checked + .mode-option-label, .appearance-accent-option input:checked + .appearance-option-body { border-color: var(--bt-accent); background: var(--bt-accent-soft); color: var(--bt-text); box-shadow: 0 0 0 1px var(--bt-accent-border), 0 0 14px var(--bt-accent-glow); }
.appearance-mode-option input:checked + .mode-option-label::before { border-color: var(--bt-accent); }
.appearance-mode-option input:checked + .mode-option-label::after, .appearance-selected-mark { color: var(--bt-accent); }
.appearance-mode-option input:focus-visible + .mode-option-label, .appearance-accent-option input:focus-visible + .appearance-option-body { outline-color: var(--bt-accent); }

.calendar-toolbar { background: var(--bt-surface); }
.calendar-weekdays { border-color: var(--bt-border); background: var(--bt-surface-soft); }
.calendar-weekdays span, .calendar-day-number, .calendar-event-more { color: var(--bt-muted); }
.calendar-days { border-color: var(--bt-border); background: var(--bt-surface); }
.calendar-week-row, .calendar-day { border-color: var(--bt-border); }
.calendar-day { color: var(--bt-text); }
.calendar-day:hover { background: var(--bt-accent-soft); }
.calendar-day:focus-visible { outline-color: var(--bt-accent); }
.calendar-day.today .calendar-day-number { border-color: var(--bt-accent); background: var(--bt-accent); color: var(--bt-accent-text); box-shadow: 0 0 15px var(--bt-accent-glow); }
.calendar-day.selected:not(.today) { background: var(--bt-accent-soft); box-shadow: inset 0 0 0 1px var(--bt-accent-border); }
.calendar-day.selected:not(.today) .calendar-day-number { border-color: var(--bt-accent-border); color: var(--bt-accent); }
.calendar-days::-webkit-scrollbar-track, .study-event-list::-webkit-scrollbar-track { border-color: var(--bt-border); background: var(--bt-scroll-track); }
.calendar-days::-webkit-scrollbar-thumb, .study-event-list::-webkit-scrollbar-thumb { border-color: var(--bt-scroll-track); background: linear-gradient(180deg, var(--bt-accent), var(--bt-scroll-thumb)); }
.calendar-days::-webkit-scrollbar-thumb:hover, .study-event-list::-webkit-scrollbar-thumb:hover { background: var(--bt-scroll-thumb-hover); }
.calendar-days::-webkit-scrollbar-corner, .study-event-list::-webkit-scrollbar-corner { background: var(--bt-scroll-track); }
.study-plan-event { background: var(--bt-surface-gradient); }
.study-event-title, .study-event-date-block { color: var(--bt-text); }
.study-event-date-month, .study-event-open::after { color: var(--bt-muted); }
.event-empty-state { border-color: var(--bt-border-strong); }
.event-empty-state h3 { color: var(--bt-text); }
.event-empty-state p { color: var(--bt-muted); }
.study-event-complete-badge { color: var(--bt-accent); }
.study-event-complete input { accent-color: var(--bt-accent); }
.study-event-type.event-type-exam, .event-type-exam { --event-color: var(--bt-event-exam); }
.study-event-type.event-type-work, .event-type-work { --event-color: var(--bt-event-work); }
.study-event-type.event-type-study, .event-type-study { --event-color: var(--bt-event-study); }
.study-event-type.event-type-other, .event-type-other { --event-color: var(--bt-event-other); }
.event-type-key { color: var(--bt-muted); }

.eyebrow, .back-link, .focus-minimize { color: var(--bt-accent); }
.login-card .label, .login-card label, .modal-heading h2, .signup-modal h2 { color: var(--bt-text); }
.login-card .subtitle, .signup-modal .modal-intro, .signup-modal .signup { color: var(--bt-muted); }
.login-card .demo-access { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); }
.login-card .demo-access strong { color: var(--bt-text); }
.login-card .demo-access span { color: var(--bt-muted); }
.login-card .show-password, .login-card a, .login-card .demo-access button { color: var(--bt-accent-link); }
.login-card .show-password:hover, .login-card a:hover, .login-card .demo-access button:hover { color: var(--bt-accent); }
.close-modal { border-color: var(--bt-border-strong); background: var(--bt-surface-soft); color: var(--bt-text); }
.modal-footer { border-color: var(--bt-border); background: var(--bt-surface); }
.modal-fields { scrollbar-color: var(--bt-scroll-thumb) var(--bt-scroll-track); }
.form-message { color: var(--bt-accent); }
.modal-fields select:invalid { color: var(--bt-subtle); }
.mobile-scrim { background: rgb(0 0 0 / 60%); }

/* Semantic event colors and subject-cover colors intentionally stay independent of the selected accent. */
.event-type-exam { --event-color: var(--bt-event-exam); }
.event-type-work { --event-color: var(--bt-event-work); }
.event-type-study { --event-color: var(--bt-event-study); }
.event-type-other { --event-color: var(--bt-event-other); }

.login-page {
  background-color: var(--bt-page);
  background-image: linear-gradient(90deg, color-mix(in srgb, var(--bt-page) 25%, transparent), var(--bt-page)), url("../Imagens/Background%20Login");
  background-blend-mode: normal, luminosity;
  color: var(--bt-text);
}
.brand-mark img { filter: hue-rotate(var(--logo-hue)); }
:root[data-theme="light"] .profile-demo-tag { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); color: var(--bt-accent); }
:root[data-theme="light"] .danger-button { border-color: #c68d84; background: rgb(168 64 53 / 8%); color: #8d2f28; }
:root[data-theme="light"] .danger-button:hover { border-color: #a8554c; background: rgb(168 64 53 / 14%); color: #74251f; }
:root[data-theme="light"] #profile-fields:disabled .profile-field input,
:root[data-theme="light"] #profile-fields:disabled .profile-field select,
:root[data-theme="light"] #profile-fields:disabled .profile-field textarea { border-color: var(--bt-border); background: var(--bt-surface-soft); color: var(--bt-text); }
:root[data-theme="light"] #profile-fields:disabled .profile-field select { color-scheme: light; }
:root[data-theme="light"] .demo-access { color: var(--bt-text); }
:root[data-theme="light"] .ruled-writing-surface { background-image: linear-gradient(to right, transparent 0 var(--note-margin-x), rgb(175 91 91 / 24%) calc(var(--note-margin-x) + 1px) calc(var(--note-margin-x) + 2px), transparent calc(var(--note-margin-x) + 3px)), repeating-linear-gradient(to bottom, transparent 0 var(--note-rule-offset), color-mix(in srgb, var(--bt-accent) 15%, transparent) var(--note-rule-offset) calc(var(--note-rule-offset) + 1px), transparent calc(var(--note-rule-offset) + 1px) var(--note-rule-step)); }
:root[data-theme="light"] .note-book-card.selected { color: var(--bt-text); }
:root[data-theme="light"] .mini-book { border-color: var(--bt-accent); box-shadow: inset 5px 0 rgb(0 0 0 / 30%), inset 0 0 14px var(--bt-accent-glow), 0 0 9px var(--bt-accent-glow), 0 13px 23px rgb(0 0 0 / 17%); }
:root[data-contrast="high"] {
  --border: color-mix(in srgb, var(--primary) 75%, var(--bg-primary));
  --text-secondary: var(--text-primary);
  --text-muted: var(--text-primary);
}

/* Apply the selected accent across legacy fixed-green details without recoloring user-picked book covers or event types. */
.icon-button:hover, .close-subject:hover { border-color: var(--bt-accent-border); color: var(--bt-accent); }
.orb-one, .orb-two { background: var(--bt-accent); box-shadow: 0 0 22px var(--bt-accent-glow); }
.sparkle { color: var(--bt-accent); text-shadow: 0 0 12px var(--bt-accent-glow); }
.book-card { border-color: var(--bt-accent); color: var(--bt-text); box-shadow: inset 8px 0 var(--bt-page), inset 10px 0 var(--bt-accent-soft), 0 0 10px var(--bt-accent-glow), 0 0 7px var(--book-accent), 0 15px 32px rgb(0 0 0 / 30%); }
.book-card::before { border-color: var(--book-accent); }
.book-card:hover { box-shadow: inset 8px 0 var(--bt-page), inset 10px 0 var(--bt-accent-soft), 0 0 20px var(--bt-accent-glow), 0 0 11px var(--book-accent), 0 23px 40px rgb(0 0 0 / 38%); }
.notebook-heading .notebook-icon { box-shadow: inset 4px 0 rgb(0 0 0 / 35%), 0 0 12px var(--bt-accent-glow); }
.notebook-page { background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 34px, color-mix(in srgb, var(--bt-accent) 11%, transparent) 35px, transparent 36px); }
.open-note-page, .notebook-page { background-color: var(--bt-surface); }
.notebook-page::before { background: var(--bt-accent-soft); }
.study-entry { border-bottom-color: color-mix(in srgb, var(--bt-accent) 20%, transparent); }
.note-book-card::before { background-image: radial-gradient(ellipse at center, transparent 0 2px, color-mix(in srgb, var(--bt-accent) 66%, var(--bt-surface)) 2.6px 3.5px, transparent 4px); }
.note-book-card.selected::before { background-image: radial-gradient(ellipse at center, transparent 0 2px, var(--bt-accent) 2.6px 3.5px, transparent 4px); filter: drop-shadow(0 0 3px var(--bt-accent-glow)); }
.open-note-page { border-color: var(--bt-accent-border); }
.open-note-page::before { background: radial-gradient(ellipse 10px 6px at 13px 8px, var(--bt-page) 0 4px, color-mix(in srgb, var(--bt-accent) 65%, var(--bt-border)) 4.6px 5.6px, var(--bt-surface) 6.3px 7px, transparent 7.5px) 0 0 / 26px 32px repeat-y; }
.ruled-writing-surface { background-image: linear-gradient(to right, transparent 0 var(--note-margin-x), rgb(191 112 106 / 24%) calc(var(--note-margin-x) + 1px) calc(var(--note-margin-x) + 2px), transparent calc(var(--note-margin-x) + 3px)), repeating-linear-gradient(to bottom, transparent 0 var(--note-rule-offset), color-mix(in srgb, var(--bt-accent) 17%, transparent) var(--note-rule-offset) calc(var(--note-rule-offset) + 1px), transparent calc(var(--note-rule-offset) + 1px) var(--note-rule-step)); }
.note-save-status { color: var(--bt-accent); }
.note-save-status::before { background: var(--bt-accent); box-shadow: 0 0 8px var(--bt-accent-glow); }
.notebook-empty-mark, .empty-note-mark { color: var(--bt-accent); }
.icon-choices label span { border-color: var(--bt-border-strong); background: var(--bt-surface-soft); }
.study-item-modal input[type="file"]::file-selector-button { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); color: var(--bt-accent); }
.focus-no-subject { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); }
.focus-active-subject, .focus-minimize { color: var(--bt-accent); }
.focus-timer { text-shadow: 0 0 30px var(--bt-accent-glow); }
.task-entry-actions button:hover { border-color: var(--bt-accent); color: var(--bt-accent); }
.study-event-modal input:focus, .study-event-modal select:focus, .study-event-modal textarea:focus,
.study-item-modal input:focus, .study-item-modal textarea:focus,
.focus-modal input:focus, .focus-modal select:focus,
.flashcard-form textarea:focus { border-color: var(--bt-accent) !important; box-shadow: 0 0 0 3px var(--bt-accent-glow) !important; outline-color: var(--bt-accent); }
.required-mark { color: var(--bt-accent); }
.profile-demo-tag span { color: var(--bt-accent); }
.calendar-week-row, .calendar-day { border-color: var(--bt-border); }
.study-plan-event:hover { border-color: color-mix(in srgb, var(--bt-accent) 48%, var(--bt-border-strong)); background: var(--bt-accent-soft); }
.study-event-open:focus-visible { outline-color: var(--bt-accent); }
.home-progress-card .weekly-bar { background: linear-gradient(var(--bt-accent), var(--bt-accent-button)); }
.writing-lines i { background: color-mix(in srgb, var(--bt-accent) 24%, var(--bt-border)); }
.task-preview span:first-child { border-color: var(--bt-accent-border); background: var(--bt-accent-soft); }
.global-search-results, .profile-menu { border-color: var(--bt-accent-border); }
.home-welcome-card, .home-summary-card, .profile-card, .notebook-shell, .notebooks-sidebar, .notebook-panel, .calendar-panel, .events-panel, .coming-card { border-color: var(--bt-border); }
.subject-modal, .study-item-modal, .study-event-modal, .delete-note-dialog, .signup-modal { border-color: var(--bt-border-strong); }
:root[data-contrast="high"] { --bt-border-strong: var(--border-active); }
:root[data-contrast="high"] .sidebar, :root[data-contrast="high"] .global-search, :root[data-contrast="high"] .home-welcome-card, :root[data-contrast="high"] .home-summary-card, :root[data-contrast="high"] .calendar-panel, :root[data-contrast="high"] .events-panel { border-color: var(--bt-border-strong); }

:root[data-theme="light"] .book-card { box-shadow: inset 8px 0 var(--bt-border), inset 10px 0 var(--bt-accent-soft), 0 0 10px var(--bt-accent-glow), 0 0 7px var(--book-accent), 0 15px 25px rgb(20 20 30 / 12%); }
:root[data-theme="light"] .book-card:hover { box-shadow: inset 8px 0 var(--bt-border), inset 10px 0 var(--bt-accent-soft), 0 0 18px var(--bt-accent-glow), 0 0 10px var(--book-accent), 0 22px 35px rgb(20 20 30 / 18%); }
:root[data-theme="light"] .ruled-writing-surface { background-image: linear-gradient(to right, transparent 0 var(--note-margin-x), rgb(175 91 91 / 24%) calc(var(--note-margin-x) + 1px) calc(var(--note-margin-x) + 2px), transparent calc(var(--note-margin-x) + 3px)), repeating-linear-gradient(to bottom, transparent 0 var(--note-rule-offset), color-mix(in srgb, var(--bt-accent) 18%, transparent) var(--note-rule-offset) calc(var(--note-rule-offset) + 1px), transparent calc(var(--note-rule-offset) + 1px) var(--note-rule-step)); }
:root.home-page:has(#library-view:not([hidden])) { scrollbar-color: var(--bt-scroll-thumb) var(--bt-scroll-track); }
:root.home-page::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--bt-accent), var(--bt-scroll-thumb)); }
:root.home-page::-webkit-scrollbar-thumb:hover { background: var(--bt-scroll-thumb-hover); }

:where(button, a, [role="button"]) {
  -webkit-tap-highlight-color: transparent;
  transition-duration: .16s;
  transition-timing-function: ease;
}
:where(button, a, [role="button"]):active:not(:disabled) { transform: scale(.985); }
:where(input, select, textarea) { transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease; }

@keyframes bt-ui-enter {
  from { opacity: 0; transform: translateY(7px) scale(.99); }
  to { opacity: 1; transform: none; }
}
@keyframes bt-backdrop-enter {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes bt-ui-exit {
  to { opacity: 0; transform: translateY(4px) scale(.99); }
}
dialog[open] { animation: bt-ui-enter .18s ease-out both; }
dialog[open]::backdrop { animation: bt-backdrop-enter .18s ease-out both; }
.profile-menu:not([hidden]) { transform-origin: top right; animation: bt-ui-enter .14s ease-out both; }
.profile-menu.is-closing { pointer-events: none; animation: bt-ui-exit .14s ease-in both; }
.home-dashboard { animation: bt-ui-enter .24s ease-out both; }
.task-entry h3 { transition: color .16s ease; }
.task-entry input[type="checkbox"] { transition: transform .12s ease; }
.task-entry input[type="checkbox"]:checked { transform: scale(1.08); }
.calendar-day-number { transition: border-color .16s ease, color .16s ease, background-color .16s ease, box-shadow .16s ease; }

@supports (transition-behavior: allow-discrete) {
  dialog {
    opacity: 0;
    transform: translateY(7px) scale(.99);
    transition: opacity .18s ease, transform .18s ease, display .18s allow-discrete;
  }
  dialog[open] { opacity: 1; transform: none; animation: none !important; }
  dialog::backdrop { opacity: 0; transition: opacity .18s ease, display .18s allow-discrete; }
  dialog[open]::backdrop { opacity: 1; animation: none; }
  @starting-style {
    dialog[open] { opacity: 0; transform: translateY(7px) scale(.99); }
    dialog[open]::backdrop { opacity: 0; }
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-delay: 0ms !important;
    transition-duration: .01ms !important;
  }
}
