/* Site-wide appearance: neutral grouped surfaces, adaptive accents and readable labels. */
html[data-palette][data-theme=light]{color-scheme:light;--bg:#f5f5f7;--paper:#ffffff;--surface-raised:#ffffff;--surface-soft:#eeeef2;--ink:#1d1d1f;--muted:#646469;--line:#dedee3;--line-strong:#a4a4ad;--green:#0066cc;--deep:#075eb8;--lime:#e7f1ff;--sage:#e8f1fc;--amber:#805800;--purple:#7654a3;--success:#28643c;--success-bg:#eaf4ed;--error:#ad2738;--error-bg:#fceef0;--rail-track:#92929c;--shadow:0 16px 48px #15152212;--focus-ring:#007aff;--hero:#123b64;--hero-ink:#fff;--hero-muted:#d5e8fa}
html[data-palette][data-theme=dark]{color-scheme:dark;--bg:#0b0b0d;--paper:#1c1c1e;--surface-raised:#2c2c2e;--surface-soft:#252528;--ink:#f5f5f7;--muted:#b1b1b8;--line:#3a3a3f;--line-strong:#777780;--green:#5caaff;--deep:#0866c7;--lime:#e4f0ff;--sage:#193149;--amber:#e5bc6c;--purple:#c4adeb;--success:#9bd2ac;--success-bg:#20362a;--error:#ffb0b8;--error-bg:#42252c;--rail-track:#6a6a74;--shadow:0 20px 60px #00000040;--focus-ring:#64b0ff;--hero:#172b41;--hero-ink:#f5f8ff;--hero-muted:#c3d9ef}
html[data-palette=cardiovascular][data-theme=light]{--bg:#f8f7f8;--ink:#292427;--muted:#70666c;--line:#e4dfe2;--line-strong:#aea2a8;--green:#b8233b;--deep:#b8233b;--lime:#fff0f2;--sage:#fbecef;--surface-soft:#f1ecee;--rail-track:#9c858f;--focus-ring:#c33950;--hero:#6f2434;--hero-muted:#f7dbe1}
html[data-palette=cardiovascular][data-theme=dark]{--bg:#111113;--paper:#1e1c1f;--surface-raised:#2c292d;--surface-soft:#292428;--ink:#f6f1f3;--muted:#bdb2b8;--line:#40373d;--line-strong:#82747c;--green:#ff8c9b;--deep:#b52d45;--lime:#fff0f3;--sage:#3b252d;--rail-track:#78636d;--focus-ring:#ff93a3;--hero:#3c232d;--hero-muted:#f3ced9}
/* Preserve the original respiratory identity as a selectable global theme. */
html[data-palette=respiratory][data-theme=light]{--bg:#f6f7f3;--paper:#fff;--surface-raised:#fff;--surface-soft:#edf1e8;--ink:#1b332e;--muted:#667260;--line:#dfe5db;--line-strong:#96a38f;--green:#246c55;--deep:#123b2f;--lime:#dbeaab;--sage:#edf3e9;--rail-track:#87977e;--focus-ring:#397f63;--hero:#123b2f;--hero-muted:#c3d9cb}
html[data-palette=respiratory][data-theme=dark]{--bg:#111b18;--paper:#1a2822;--surface-raised:#24372d;--surface-soft:#213026;--ink:#e4ede5;--muted:#acb9ab;--line:#34483d;--line-strong:#6b836f;--green:#a8d8b4;--deep:#285840;--lime:#dbeaab;--sage:#293d2d;--rail-track:#607764;--focus-ring:#a8d8b4;--hero:#183e2e;--hero-muted:#bfd6c7}

html[data-palette] body{background:var(--bg);color:var(--ink)}
html[data-palette] :is(.sidebar,.topbar,.mobile-nav,.settings-dialog,dialog,.panel,.auth-card){background:var(--paper);color:var(--ink);border-color:var(--line)}
html[data-palette] :is(.main,.app-loading){background:var(--bg)}
html[data-palette] :is(button,input,select,textarea){border-color:var(--line);color:var(--ink)}
html[data-palette] :is(input,select,textarea){background:var(--paper);accent-color:var(--green)}
html[data-palette] button{background:var(--paper);transition:border-color .18s,transform .18s}
html[data-palette] button:hover{border-color:var(--line-strong);background:var(--surface-soft)}
html[data-palette] :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
html[data-palette] a{color:var(--green)}
html[data-palette] :is(.brand-name,.brand-en,.card-title,.source-presenter,.file-name){color:var(--ink)}
html[data-palette] :is(.workspace-label,.side-course>small,.side-nav button,.lecture-code,.card-info,.stat-detail,.settings-form label,.file-note,.source,.save-status,.footer,.small-note,.foot,.muted){color:var(--muted)}
html[data-palette] :is(.stat-card,.lecture-card,.file-entry,.term-label,.supplement,.block-card,.overview-card,.source-group,.editor-panel,.admin-task,.exam-library-entry,.exam-hub-card,.exam-category,.exam-week-card,.quiz-card){background:var(--paper);border-color:var(--line);color:var(--ink)}
html[data-palette] :is(.side-nav button,.mobile-nav button,.today-item button,.stat-detail button,.overview-links button){background:transparent}
html[data-palette] :is(.side-nav button.active,.mobile-nav button.active,.side-settings,.account-group-badge,.stat-date,.stat-card.primary,.stat-card.stat-date){background:var(--sage);color:var(--ink);border-color:var(--line)}
html[data-palette] :is(.btn-dark,.dialog-save,.quiz-confirm,#submit,.actions>button[type=submit],#section-form>button[type=submit],#student-id-form>button[type=submit]){background:var(--deep);color:#fff;border-color:transparent}
html[data-palette] :is(.btn-dark,.dialog-save,#submit):hover{filter:brightness(1.08)}
html[data-palette] :is(.secondary,.help,.drive-guide,.slide-link,.source a,.resources-panel>summary,.resources-panel[open]>summary,.exams-empty-icon,.exam-week-badge){background:var(--surface-soft);color:var(--ink);border-color:var(--line)}
html[data-palette] :is(.file-badge,.lecture-icon,.queue-index,.nav-count,.state-pill){background:var(--sage);color:var(--green);border-color:var(--line)}
html[data-palette] :is(.file-badge.old,.file-badge.neutral){background:var(--surface-soft);color:var(--muted)}
html[data-palette] :is(.file-badge.updated,.lecture-icon.pbl){background:color-mix(in srgb,var(--paper),var(--purple) 16%);color:var(--purple)}
html[data-palette] .lecture-card.is-studied{background:var(--success-bg);border-color:color-mix(in srgb,var(--success),var(--paper) 60%)}
html[data-palette] .lecture-card.is-reviewed{background:color-mix(in srgb,var(--paper),var(--purple) 13%);border-color:color-mix(in srgb,var(--paper),var(--purple) 45%)}
html[data-palette] :is(.lecture-card.is-studied,.lecture-card.is-reviewed) .resources-panel>summary{background:transparent}
html[data-palette] progress,html[data-palette] progress::-webkit-progress-bar,html[data-palette] .exam-track span{background:var(--line)}
html[data-palette] progress::-webkit-progress-value{background:var(--green)}
html[data-palette] progress::-moz-progress-bar{background:var(--green)}
html[data-palette] .focus-feature{background:var(--hero);color:var(--hero-ink)}
html[data-palette] :is(.focus-tag,.focus-seq,.focus-meta,.focus-bottom .quiet){color:var(--hero-muted)}
html[data-palette] .focus-tag:before{background:var(--hero-muted)}
html[data-palette] .focus-button{background:var(--lime);color:var(--hero);border-color:transparent}
html[data-palette] .week-tabs{background:var(--surface-soft);border-color:var(--line)}
html[data-palette] .week-tabs button{background:transparent;color:var(--muted)}
html[data-palette] .week-tabs button[aria-pressed=true]{background:var(--paper);border-color:var(--line-strong);color:var(--ink)}
/* Keep week choices in contiguous RTL rows; never spread a wrapped final row apart. */
html[data-palette] .catalog-toolbar{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:10px}
html[data-palette] .catalog-toolbar .week-tabs{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));width:100%;min-width:0;flex:none;justify-content:normal;gap:6px;padding:5px;direction:rtl}
html[data-palette] .catalog-toolbar .week-tabs button{width:100%;min-width:0;min-height:42px;margin:0;padding:8px 4px;font-size:11px;line-height:1.5;white-space:nowrap}
html[data-palette] .catalog-toolbar .catalog-tools{width:100%;max-width:none;min-width:0;margin:0;flex:none}
html[data-palette] .catalog-tools .searchbox{min-width:0}
html[data-palette] .catalog-tools select{max-width:min(140px,45%)}
@media(max-width:1099px){html[data-palette] .catalog-toolbar .week-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:700px){html[data-palette] .catalog-toolbar .week-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}
html[data-palette] .block-arrow{background:var(--sage);color:var(--green)}
html[data-palette] .block-card:is(:hover,:focus-visible,:active) .block-arrow{background:var(--green);color:var(--paper)}
html[data-palette] .blocks-grid .block-card .block-art{background:linear-gradient(140deg,var(--sage),var(--paper));border-color:var(--line)}
html[data-palette] .blocks-grid .block-copy .eyebrow{color:var(--green)}
html[data-palette] .block-art :is(.respiratory-art,.cardiovascular-art){filter:none}
html[data-palette] :is(.card-block-banner,.exams-empty-state){background:var(--paper);border-color:var(--line)}
html[data-palette] .card-block-banner .eyebrow{color:var(--green)}
html[data-palette] :is(.card-status,.current-block-badge){background:var(--surface-soft);color:var(--ink);border-color:var(--line)}
html[data-palette] .cardiovascular-card .block-art{background:linear-gradient(145deg,var(--sage),var(--paper));border-color:var(--line)}
html[data-palette] .cardiovascular-card .block-copy .eyebrow{color:var(--green)}
html[data-palette] :is(.danger,.error,#message,.quiz-save-error){color:var(--error)}
html[data-palette] .danger{background:var(--error-bg)}
html[data-palette] :is(.token-box,.plan-split){background:var(--surface-soft);border-color:var(--line)}
html[data-palette] dialog{box-shadow:var(--shadow)}
html[data-palette] dialog::backdrop{background:#00000066;backdrop-filter:blur(5px)}

/* The supplied icon has transparent outer padding: fill one square, without a second tile. */
html[data-palette] .sidebar .brand{align-items:center;gap:12px;padding-inline:6px}
html[data-palette] .sidebar .brand-mark{position:relative;display:block;flex:0 0 54px;width:54px;height:54px;aspect-ratio:1;border:0;border-radius:15px;padding:0;overflow:hidden;background:transparent;box-shadow:none}
html[data-palette] .brand-mark .heart-brand-logo{position:absolute;display:block;inset:-9%;width:118%;height:118%;max-width:none;object-fit:cover;margin:0;filter:none}
html[data-palette] .brand-name{line-height:1.3;font-size:29px;letter-spacing:0}
html[data-palette] .brand-en{font-size:9px;letter-spacing:2.8px;margin-top:2px}
html[data-palette] .mobile-heart-logo{display:block;width:34px;height:34px;object-fit:cover;clip-path:inset(7.5% round 21%);transform:scale(1.17);margin-inline:1px}

/* Every week is a visible labelled progress track, not a solid tile. */
html[data-palette] .side-course .week-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 8px;margin-top:16px;direction:ltr}
html[data-palette] .side-course .week-rail button{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:7px;position:static;overflow:visible;min-width:0;min-height:38px;height:auto;padding:5px 2px;border:1px solid transparent;border-radius:6px;background:transparent;box-shadow:none;transform:none}
html[data-palette] .side-course .week-rail button>.rail-track{position:relative;display:block;inset:auto;width:100%;height:5px;background:var(--rail-track);border-radius:4px;overflow:hidden}
html[data-palette] .side-course .rail-track>span{position:absolute;display:block;inset:0 auto 0 0;height:100%;background:var(--green);border-radius:inherit}
html[data-palette] .side-course .week-rail button>small{display:block;line-height:1.4;font:600 10px/1.4 var(--latin);color:var(--muted);text-align:center}
html[data-palette] .side-course .week-rail button:hover,html[data-palette] .side-course .week-rail button:focus-visible{background:var(--sage);border-color:var(--line-strong)}
html[data-palette] .side-course .week-rail button[aria-current=page]{background:var(--sage);border-color:var(--green)}

/* A compact, explicit choice of palette, followed by an independent light/dark mode. */
.appearance-settings{padding-block:18px;margin-block:2px 22px;border-block:1px solid var(--line)}
.appearance-settings h3{margin:0 0 14px!important;font-size:14px}
.appearance-picker{border:0;padding:0;margin:0;min-width:0}
.appearance-picker legend{font-size:12px;color:var(--muted);margin-bottom:9px}
.appearance-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
html[data-palette] .settings-form .appearance-option{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 5px;margin:0;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--paper);cursor:pointer;color:var(--ink)}
.appearance-option input[type=radio]{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;opacity:0;cursor:pointer}
.appearance-option strong{font-size:12px;font-weight:600;line-height:1.5}
.appearance-option small{font-size:9px;line-height:1.5;color:var(--muted);white-space:normal;text-align:center}
html[data-palette] .settings-form .appearance-option:has(input:checked){background:var(--sage);border:2px solid var(--green);padding:11px 4px}
.appearance-option:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:3px}
.appearance-swatch{display:block;width:44px;height:25px;border-radius:7px;border:1px solid #77777740;overflow:hidden;background:linear-gradient(90deg,#f5f5f7 50%,#1c1c1e 50%);box-shadow:inset 0 -4px #0a84ff}
.appearance-swatch.heart{background:linear-gradient(90deg,#fff4f5 50%,#292126 50%);box-shadow:inset 0 -4px #cf3d53}
.appearance-swatch.respiratory{background:linear-gradient(90deg,#edf3e9 50%,#1a2822 50%);box-shadow:inset 0 -4px #5b9b75}
.appearance-description{font-size:11px!important;line-height:1.8;margin:11px 0 16px!important;color:var(--muted)}
html[data-palette] .settings-form .appearance-mode{display:grid;gap:8px;margin:0;font-size:12px}
.appearance-mode select{width:100%;margin:0}
.appearance-save-status{font-size:11px!important;line-height:1.8;min-height:20px;margin:10px 0 0!important;color:var(--muted)}
.appearance-save-status[data-state=error]{color:var(--error)}
#appearance-retry{margin-top:8px;font-size:11px}

/* Authentication, onboarding and cohort management inherit the same site palette. */
html[data-palette] :is(.profile-page,.auth-layout){color:var(--ink);background:var(--bg)}
html[data-palette] .auth-layout>.intro{background:var(--hero);color:var(--hero-ink)}
html[data-palette] :is(.auth-layout>.intro p,.wordmark small){color:var(--hero-muted)}
html[data-palette] .auth-card:not(.panel){background:transparent}
html[data-palette] .auth-card select{background:var(--paper);color:var(--ink);border-color:var(--line)}
html[data-palette] .profile-page #profile-logout{background:var(--surface-soft);color:var(--ink)}
html[data-palette] :is(th,td){border-color:var(--line)}
html[data-palette] #cre-app{--cre-bg:var(--bg);--cre-paper:var(--paper);--cre-ink:var(--ink);--cre-muted:var(--muted);--cre-line:var(--line);--cre-green:var(--deep);--cre-green2:var(--green);--cre-soft:var(--surface-soft);--cre-gold:var(--amber);--cre-red:var(--error);--cre-redbg:var(--error-bg);--cre-good:var(--success-bg);--cre-shadow:var(--shadow);background:transparent;color:var(--ink)}

/* Timetable categories keep stable, distinct hues across all three palettes. */
html[data-palette][data-theme=light] :is(.schedule-session,.schedule-legend span)[data-kind=lecture]{--event-bg:#e4edff;--event-ink:#163665;--event-border:#577bb8}
html[data-palette][data-theme=light] :is(.schedule-session,.schedule-legend span)[data-kind=pbl]{--event-bg:#fff0ba;--event-ink:#674601;--event-border:#a57b1c}
html[data-palette][data-theme=light] :is(.schedule-session,.schedule-legend span)[data-kind=practical]{--event-bg:#ffe5f0;--event-ink:#702847;--event-border:#ad587f}
html[data-palette][data-theme=light] :is(.schedule-session,.schedule-legend span)[data-kind=research]{--event-bg:#d2f3e8;--event-ink:#145343;--event-border:#328269}
html[data-palette][data-theme=light] :is(.schedule-session,.schedule-legend span)[data-kind=virtual]{--event-bg:#eee1ff;--event-ink:#502576;--event-border:#8154b5}
html[data-palette][data-theme=light] :is(.schedule-session,.schedule-legend span)[data-kind=self-study]{--event-bg:#e7ebef;--event-ink:#38444e;--event-border:#788793}
html[data-palette][data-theme=light] :is(.schedule-session,.schedule-legend span)[data-kind=holiday]{--event-bg:#e6f2cc;--event-ink:#405715;--event-border:#708c36}
html[data-palette][data-theme=light] :is(.schedule-session,.schedule-legend span)[data-kind=exam]{--event-bg:#ffe1dc;--event-ink:#7b2921;--event-border:#b35044}
html[data-palette][data-theme=light] :is(.schedule-session,.schedule-legend span)[data-kind=seminar]{--event-bg:#e6e4ff;--event-ink:#3c3476;--event-border:#7973b0}
html[data-palette][data-theme=light] :is(.schedule-session,.schedule-legend span)[data-kind=clinical]{--event-bg:#f6e6d7;--event-ink:#674225;--event-border:#9c724d}
html[data-palette][data-theme=dark] :is(.schedule-session,.schedule-legend span)[data-kind=lecture]{--event-bg:#1d355a;--event-ink:#d3e6ff;--event-border:#6e9ee9}
html[data-palette][data-theme=dark] :is(.schedule-session,.schedule-legend span)[data-kind=pbl]{--event-bg:#46330d;--event-ink:#ffe49e;--event-border:#d7a82f}
html[data-palette][data-theme=dark] :is(.schedule-session,.schedule-legend span)[data-kind=practical]{--event-bg:#4b243a;--event-ink:#ffd6ec;--event-border:#df82b3}
html[data-palette][data-theme=dark] :is(.schedule-session,.schedule-legend span)[data-kind=research]{--event-bg:#113c3b;--event-ink:#b7f7e9;--event-border:#41bfa7}
html[data-palette][data-theme=dark] :is(.schedule-session,.schedule-legend span)[data-kind=virtual]{--event-bg:#35224f;--event-ink:#e6d8ff;--event-border:#b18df7}
html[data-palette][data-theme=dark] :is(.schedule-session,.schedule-legend span)[data-kind=self-study]{--event-bg:#30353a;--event-ink:#ecf0f3;--event-border:#9aa8b5}
html[data-palette][data-theme=dark] :is(.schedule-session,.schedule-legend span)[data-kind=holiday]{--event-bg:#2c421b;--event-ink:#dbf3bd;--event-border:#8cbf5a}
html[data-palette][data-theme=dark] :is(.schedule-session,.schedule-legend span)[data-kind=exam]{--event-bg:#4c2222;--event-ink:#ffd7d7;--event-border:#ea8686}
html[data-palette][data-theme=dark] :is(.schedule-session,.schedule-legend span)[data-kind=seminar]{--event-bg:#333369;--event-ink:#e0e0ff;--event-border:#9999e0}
html[data-palette][data-theme=dark] :is(.schedule-session,.schedule-legend span)[data-kind=clinical]{--event-bg:#493022;--event-ink:#ffe2cd;--event-border:#d6a179}
html[data-palette] .schedule-legend{gap:9px 16px;flex-wrap:wrap}
@media(max-width:970px){html[data-palette] .sidebar .brand-mark{flex-basis:48px;width:48px;height:48px;border-radius:13px}html[data-palette] .brand-name{font-size:26px}html[data-palette] .sidebar .brand{gap:10px;padding-inline:0}}
@media(max-width:700px){html[data-palette] .sidebar .brand-mark{flex-basis:52px;width:52px;height:52px;border-radius:14px}.appearance-options{gap:6px}.appearance-option small{font-size:9px}}
@media(prefers-contrast:more){html[data-palette]{--line:var(--line-strong)}html[data-palette] .side-course .week-rail button>small{color:var(--ink)}}
