/* Additive light theme. Legacy dark styles remain authoritative. */
/* Leave legacy native controls/scrollbars unchanged in dark mode. */
:root[data-theme="dark"] .bsm-appearance { color-scheme: dark; }
:root[data-theme="light"] { color-scheme: light; }
.bsm-app .bsm-appearance { position:relative; flex:none; font-size:14px; }
.bsm-app .bsm-appearance summary { display:grid; place-items:center; box-sizing:border-box; inline-size:44px; block-size:44px; cursor:pointer; list-style:none; border:1px solid currentColor; border-radius:11px; }
.bsm-app .bsm-appearance summary::-webkit-details-marker { display:none; }
.bsm-app .bsm-appearance__menu { position:absolute; inset-inline-end:0; inset-block-start:calc(100% + 8px); z-index:1300; box-sizing:border-box; inline-size:min(260px,calc(100vw - 32px)); padding:16px; background:#142044; color:#f4f6ff; border:1px solid #64748b; border-radius:12px; box-shadow:0 8px 28px #0004; }
.bsm-app .bsm-appearance__menu label { display:block; margin-block:8px; }
.bsm-app .bsm-appearance__menu select { inline-size:100%; min-block-size:44px; }
.bsm-app .bsm-appearance :focus-visible { outline:3px solid #60a5fa; outline-offset:3px; }
/* Dedicated grid cells keep appearance controls outside the search boundary. */
.bsm-app[data-bsm-app] .bsm-header {
  grid-template-columns:minmax(150px,1fr) minmax(160px,1.3fr) 44px auto;
  grid-template-areas:"intro search appearance account"; gap:12px;
}
.bsm-app[data-bsm-app] .bsm-header__intro { grid-area:intro; inline-size:100%; max-inline-size:100%; overflow:hidden; }
.bsm-app[data-bsm-app] .bsm-header__intro>div { min-inline-size:0; flex:1; overflow:hidden; }
.bsm-app[data-bsm-app] .bsm-header__search { grid-area:search; }
.bsm-app[data-bsm-app] .bsm-header>.bsm-appearance { grid-area:appearance; justify-self:center; }
.bsm-app[data-bsm-app] .bsm-header__account { grid-area:account; }
.bsm-app[data-bsm-app] .bsm-header :is(.bsm-header__utility,.bsm-menu-toggle,.bsm-appearance summary) {
  display:flex; align-items:center; justify-content:center; box-sizing:border-box; padding:0; line-height:1;
}
.bsm-app[data-bsm-app] .bsm-header :is(.bsm-header__utility,.bsm-menu-toggle,.bsm-appearance summary,.bsm-header__logout) svg {
  display:block; flex:none; margin:0; inline-size:20px; block-size:20px;
}
.bsm-app[data-bsm-app] .bsm-menu-toggle svg { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
@media(max-width:1100px) {
  .bsm-app[data-bsm-app] .bsm-header { grid-template-columns:minmax(0,1fr) 44px auto; grid-template-areas:"intro appearance account"; }
  .bsm-app[data-bsm-app] .bsm-header__search { display:none; }
}
@media(max-width:1024px) {
  .bsm-app[data-bsm-app] .bsm-main { box-sizing:border-box; }
}
@media(max-width:600px) {
  .bsm-app[data-bsm-app] .bsm-header { grid-template-columns:minmax(0,1fr) 40px auto; gap:8px; }
  .bsm-app[data-bsm-app] .bsm-header__intro,.bsm-app[data-bsm-app] .bsm-header__account { gap:6px; }
  .bsm-app[data-bsm-app] .bsm-header .bsm-menu-toggle,
  .bsm-app[data-bsm-app] .bsm-header .bsm-header__utility,
  .bsm-app[data-bsm-app] .bsm-header .bsm-appearance summary { flex:0 0 40px; inline-size:40px; block-size:40px; }
  .bsm-app[data-bsm-app] .bsm-header .bsm-header__utility:not(.bsm-header__utility--security) { display:none; }
  .bsm-app[data-bsm-app] .bsm-header__title { max-inline-size:100%; }
  .bsm-app[data-bsm-app] .bsm-header>.bsm-appearance { position:static; }
  .bsm-app[data-bsm-app] .bsm-appearance__menu { inset-inline-end:8px; }
}
@media(max-width:420px) {
  .bsm-app[data-bsm-app] .bsm-header__logout { box-sizing:border-box; flex:0 0 40px; inline-size:40px; block-size:40px; padding:0; gap:0; }
}
html[data-theme="light"] .bsm-app {
  --page-bg:#edf5ff; --surface:#fff; --surface-raised:#f8fbff;
  --surface-glass:rgba(255,255,255,.82); --surface-glass-fallback:#f3f8ff;
  --text-primary:#102b5c; --text-secondary:#506a92; --text-muted:#506a92;
  --border-subtle:#dbe7f7; --border-control:#7186a5; --brand-primary:#2563eb;
  --brand-hover:#1d4ed8; --brand-soft:#e5f0ff; --on-brand:#fff;
  --success:#047857; --success-soft:#ecfdf5; --warning:#92400e; --warning-soft:#fffbeb;
  --danger:#b91c1c; --danger-soft:#fff1f2;
  --shadow-card:0 8px 28px rgba(28,80,145,.08); --shadow-floating:0 14px 40px rgba(28,80,145,.13);
  --bsm-color-background:var(--page-bg); --bsm-color-surface:var(--surface);
  --bsm-color-primary:var(--brand-primary); --bsm-color-primary-dark:var(--brand-hover);
  --bsm-color-sidebar:var(--surface-glass-fallback); --bsm-color-text:var(--text-primary);
  --bsm-color-muted:var(--text-secondary); --bsm-color-border:var(--border-subtle);
  --bsm-glass:var(--surface); --bsm-glass-hover:var(--brand-soft);
  --bsm-shadow:var(--shadow-card); --bsm-focus:0 0 0 3px rgba(37,99,235,.28);
  --chat-bg:var(--surface); --chat-surface:var(--surface-raised); --chat-border:var(--border-subtle);
  --chat-text:var(--text-primary); --chat-muted:var(--text-secondary);
  color:var(--text-primary); background:var(--page-bg);
}
html[data-theme="light"] .bsm-panel-page { background:#edf5ff; }
html[data-theme="light"] .bsm-app[data-bsm-app],
html[data-theme="light"] .bsm-app.bsm-auth,
html[data-theme="light"] .bsm-app.bsm-portal { background:var(--page-bg); color:var(--text-primary); }
html[data-theme="light"] .bsm-app .bsm-sidebar,
html[data-theme="light"] .bsm-app .bsm-header { color:var(--text-primary); background:var(--surface-glass-fallback); border-color:var(--border-subtle); box-shadow:var(--shadow-card); backdrop-filter:none; }
@supports (backdrop-filter:blur(1px)) {
  html[data-theme="light"]:not(.reduced-effects) .bsm-app .bsm-header { background:var(--surface-glass); backdrop-filter:blur(6px); }
  html[data-theme="light"]:not(.reduced-effects) .bsm-app .bsm-sidebar { background:var(--surface-glass); backdrop-filter:blur(8px); }
}
@supports not (backdrop-filter:blur(1px)) {
  html[data-theme="light"] .bsm-app :is(.bsm-header,.bsm-sidebar) { background:var(--surface-glass-fallback); }
}
html[data-theme="light"] .bsm-app :is(h1,h2,h3,h4,label,legend,.bsm-sidebar__brand,.bsm-header__identity strong,.bsm-auth__remember,.bsm-details dd) { color:var(--text-primary); }
html[data-theme="light"] .bsm-app :is(.bsm-header__user,.bsm-header__logout,.bsm-header__search,.bsm-header__utility,.bsm-header__search-results,.bsm-appearance__menu,.bsm-persian-calendar,.bsm-mobile-nav) { color:var(--text-primary); background:var(--surface); border-color:var(--border-subtle); box-shadow:var(--shadow-card); backdrop-filter:none; }
html[data-theme="light"] .bsm-app .bsm-header__search #bsm-header-search-input[type="search"] { color:var(--text-primary); background:transparent; }
html[data-theme="light"] .bsm-app :is(.bsm-header__search-results a,.bsm-nav a,.bsm-tabs a,.bsm-pagination__link,.bsm-breadcrumb span[aria-current="page"],.bsm-mobile-nav__link) { color:var(--text-primary); }
html[data-theme="light"] .bsm-app :is(.bsm-nav a:hover,.bsm-header__search-results a:hover,.bsm-header__search-results a:focus,.bsm-tabs a:hover,.bsm-mobile-nav__link:hover,.bsm-mobile-nav__link:focus-visible) { background:var(--brand-soft); color:var(--brand-hover); border-color:var(--border-subtle); box-shadow:none; }
html[data-theme="light"] .bsm-app :is(.bsm-card,.bsm-section,.bsm-behavior-block,.bsm-behavior-admin,.bsm-behavior-parent,.bsm-dashboard-alerts,.bsm-filter,.bsm-score-summary>div,.bsm-announcement-card,.bsm-behavior-response,.bsm-auth__card,.bsm-portal__role,.bsm-parent-link,.bsm-meal-day,.bsm-meal-choice,.bsm-empty-state,.bsm-search-options,.bsm-logo-setting,.bsm-theme-settings,.bsm-tabs,.bsm-workflow,.bsm-setup-step,.bsm-dashboard-steps li,.bsm-section-guide li,.bsm-pagination__link) {
  color:var(--text-primary); background:var(--surface); border-color:var(--border-subtle); box-shadow:var(--shadow-card); backdrop-filter:none;
}
html[data-theme="light"] .bsm-app .bsm-content .bsm-workflow:not(.bsm-section-guide),
html[data-theme="light"] .bsm-app .bsm-content .bsm-workflow:not(.bsm-section-guide) li,
html[data-theme="light"] .bsm-app .bsm-content .bsm-tabs,
html[data-theme="light"] .bsm-app .bsm-content .bsm-tabs a { color:var(--text-primary); background:var(--surface); border-color:var(--border-subtle); }
html[data-theme="light"] .bsm-app .bsm-dashboard-metric { color:var(--text-primary); background:linear-gradient(125deg,var(--surface),var(--brand-soft)); border-color:var(--border-subtle); box-shadow:var(--shadow-card); backdrop-filter:none; }
html[data-theme="light"] .bsm-app .bsm-dashboard-metric:hover { box-shadow:var(--shadow-floating); }
html[data-theme="light"] .bsm-app :is(.bsm-dashboard-metric strong,.bsm-dashboard-guide__eyebrow,.bsm-dashboard-list a,.bsm-panel-footer a,.bsm-score-save,.bsm-announcement-card h3 a,.bsm-auth__options .bsm-link) { color:var(--brand-hover); }
html[data-theme="light"] .bsm-app .bsm-dashboard-metric__icon,
html[data-theme="light"] .bsm-app .bsm-portal__role-icon { color:var(--brand-hover); background:var(--brand-soft); }
html[data-theme="light"] .bsm-app .bsm-dashboard-guide__hero { background:linear-gradient(110deg,var(--brand-soft),var(--surface)); border-color:var(--border-subtle); }
html[data-theme="light"] .bsm-app :is(.bsm-dashboard-metric span,.bsm-card__text,.bsm-dashboard-guide__hero p:last-child,.bsm-dashboard-steps p,.bsm-portal__lead,.bsm-portal__role-copy small,.bsm-score-summary span,.bsm-setup-step__state,.bsm-setup-step__content small) { color:var(--text-secondary); }
html[data-theme="light"] .bsm-app :is(.bsm-table-wrap,.bsm-exam__table-scroll) { background:var(--surface); border-color:var(--border-subtle); max-inline-size:100%; overflow:auto; }
html[data-theme="light"] .bsm-app :is(table,.bsm-table,.bsm-table td,.bsm-kitchen-students td) { color:var(--text-primary); background:var(--surface); border-color:var(--border-subtle); }
html[data-theme="light"] .bsm-app :is(th,.bsm-table th,.bsm-details dt) { color:var(--text-primary); background:var(--brand-soft); border-color:var(--border-subtle); }
html[data-theme="light"] .bsm-app .bsm-table tbody tr:nth-child(even) td { background:var(--surface-raised); }
html[data-theme="light"] .bsm-app tbody tr:hover,
html[data-theme="light"] .bsm-app .bsm-table tbody tr:hover td { background:var(--brand-soft); }
html[data-theme="light"] .bsm-app .bsm-table td a { color:var(--brand-hover); background:var(--brand-soft); border-color:var(--border-control); }
html[data-theme="light"] .bsm-app input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="light"] .bsm-app select,
html[data-theme="light"] .bsm-app textarea,
html[data-theme="light"] .bsm-app select option,
html[data-theme="light"] .bsm-app.bsm-auth .bsm-auth__form input { color:var(--text-primary); background:var(--surface); border-color:var(--border-control); caret-color:var(--text-primary); }
html[data-theme="light"] .bsm-app.bsm-auth .bsm-auth__form input:-webkit-autofill { -webkit-text-fill-color:var(--text-primary); box-shadow:0 0 0 1000px var(--surface) inset; caret-color:var(--text-primary); }
html[data-theme="light"] .bsm-app input::placeholder,
html[data-theme="light"] .bsm-app textarea::placeholder,
html[data-theme="light"] .bsm-app .bsm-header__search input::placeholder { color:var(--text-secondary); opacity:1; }
html[data-theme="light"] .bsm-app .bsm-button--secondary { color:var(--brand-hover); background:var(--surface); border:1px solid var(--border-control); }
html[data-theme="light"] .bsm-app .bsm-button:not(.bsm-button--secondary):not(.bsm-button--danger),
html[data-theme="light"] .bsm-app .bsm-content .bsm-tabs a[aria-current="page"],
html[data-theme="light"] .bsm-app :is(.bsm-nav a[aria-current="page"],.bsm-nav a.bsm-nav__link--active,.bsm-pagination__link[aria-current="page"],.bsm-mobile-nav__link[aria-current="page"],.bsm-mobile-nav__link[aria-expanded="true"],.bsm-header .bsm-menu-toggle,.bsm-auth__submit) { color:var(--on-brand); background:var(--brand-primary); border-color:var(--brand-primary); box-shadow:none; }
html[data-theme="light"] .bsm-app .bsm-button:not(.bsm-button--secondary):not(.bsm-button--danger):hover { background:var(--brand-hover); }
html[data-theme="light"] .bsm-app :is(.bsm-alert,.bsm-dashboard-alert,.bsm-announcement-badge,.bsm-announcement-status,.bsm-behavior-badges span,.bsm-license-status,.bsm-meal-choice.is-selected,.bsm-meal-choice:has(input:checked)) { color:var(--text-primary); background:var(--brand-soft); border-color:var(--border-control); }
html[data-theme="light"] .bsm-app :is(.bsm-alert--error,.bsm-dashboard-alert--danger,.bsm-behavior-importance--urgent,.bsm-license-status--expired,.bsm-license-status--invalid,.bsm-license-status--not_activated) { color:var(--danger); background:var(--danger-soft); border-color:var(--danger); }
html[data-theme="light"] .bsm-app :is(.bsm-alert--success,.bsm-license-status--active,.bsm-setup-step.is-complete) { color:var(--success); background:var(--success-soft); border-color:var(--success); }
html[data-theme="light"] .bsm-app :is(.bsm-dashboard-note,.bsm-dashboard-alert--warning,.bsm-license-status--grace,.bsm-behavior-importance--important) { color:var(--warning); background:var(--warning-soft); border-color:var(--warning); }
/* Dense teaching modules use opaque surfaces and the same semantic palette. */
html[data-theme="light"] .bsm-app :is(.bsm-online,.bsm-exam,.bsm-online__header h1,.bsm-online__card h2,.bsm-online__card time,.bsm-exam__header h1,.bsm-exam__card h2,.bsm-exam__panel>summary,.bsm-exam__question strong,.bsm-exam__question legend,.bsm-exam__fields label,.bsm-exam__checks label) { color:var(--text-primary); }
html[data-theme="light"] .bsm-app :is(.bsm-online__header,.bsm-online__card,.bsm-online__empty,.bsm-exam__header,.bsm-exam__panel,.bsm-exam__card,.bsm-exam__settings,.bsm-exam__question,.bsm-exam__runner-bar,.bsm-exam__response,.bsm-exam__answer,.bsm-daily-register__student,.bsm-daily-calendar__day) { color:var(--text-primary); background:var(--surface); border-color:var(--border-control); box-shadow:var(--shadow-card); }
html[data-theme="light"] .bsm-app :is(.bsm-online__eyebrow,.bsm-online__header p,.bsm-online__card p,.bsm-online__card-head,.bsm-exam__header p,.bsm-exam__header span,.bsm-exam__card p,.bsm-exam__hint,.bsm-exam__question span,.bsm-exam__question li,.bsm-exam__empty,.bsm-daily-calendar__weekday,.bsm-daily-register__student small,.bsm-daily-register__status) { color:var(--text-secondary); }
html[data-theme="light"] .bsm-app :is(.bsm-exam__fields input,.bsm-exam__fields select,.bsm-exam__fields textarea,.bsm-exam__fields option,.bsm-exam__inline input) { color:var(--text-primary); background:var(--surface); border-color:var(--border-control); }
html[data-theme="light"] .bsm-app :is(.bsm-online__status,.bsm-exam__status,.bsm-exam__answer:has(input:checked)) { color:var(--brand-hover); background:var(--brand-soft); border-color:var(--brand-primary); }
html[data-theme="light"] .bsm-app :is(.bsm-online__status--published,.bsm-online__status--ready,.bsm-exam__status--published,.bsm-daily-calendar__day--present) { color:var(--success); background:var(--success-soft); border-color:var(--success); }
html[data-theme="light"] .bsm-app :is(.bsm-online__status--cancelled,.bsm-online__status--ended,.bsm-exam__status--cancelled,.bsm-exam__status--rejected,.bsm-daily-calendar__day--absent) { color:var(--danger); background:var(--danger-soft); border-color:var(--danger); }
html[data-theme="light"] .bsm-app :is(.bsm-daily-calendar__day strong,.bsm-daily-calendar__day small,.bsm-daily-register__student strong) { color:inherit; }
html[data-theme="light"] .bsm-app :is(.bsm-chat,.bsm-chat-inbox) { --chat-bg:var(--surface); --chat-surface:var(--surface-raised); --chat-border:var(--border-subtle); --chat-text:var(--text-primary); --chat-muted:var(--text-secondary); }
html[data-theme="light"] .bsm-app :is(.bsm-chat__window,.bsm-chat-inbox,.bsm-chat__header,.bsm-chat__form,.bsm-chat-inbox__list,.bsm-chat__message,.bsm-chat__notice,.bsm-chat__manager) { color:var(--text-primary); background:var(--surface); border-color:var(--border-control); backdrop-filter:none; box-shadow:none; }
html[data-theme="light"] .bsm-app :is(.bsm-chat__message--mine,.bsm-chat__manager[aria-pressed="true"],.bsm-chat-inbox__item:hover,.bsm-chat-inbox__item.is-active) { color:var(--text-primary); background:var(--brand-soft); border-color:var(--brand-primary); }
html[data-theme="light"] .bsm-app :is(.bsm-chat__message p,.bsm-chat-inbox__title h1,.bsm-chat-inbox__thread-head,.bsm-chat-inbox__list-title,.bsm-chat-inbox__item) { color:var(--text-primary); }
html[data-theme="light"] .bsm-app :is(.bsm-chat__message small,.bsm-chat-inbox__item span,.bsm-chat-inbox__title span) { color:var(--text-secondary); }
html[data-theme="light"] .bsm-app .bsm-chat__manager:hover { color:var(--brand-hover); background:var(--brand-soft); }
html[data-theme="light"] .bsm-app .bsm-chat__form textarea { color:var(--text-primary); background:var(--surface); border-color:var(--border-control); }
html[data-theme="light"] .bsm-app :is(.bsm-chat__toggle,.bsm-chat__form button,.bsm-chat__older,.bsm-chat-inbox__pages button) { color:var(--on-brand); background:var(--brand-primary); border-color:var(--brand-primary); }
html[data-theme="light"] .bsm-app .bsm-chat__error { color:var(--danger); background:var(--danger-soft); }
html[data-theme="light"] .bsm-app :is(.bsm-score-save,.bsm-workflow--compact li a,.bsm-online__form) { color:var(--text-primary); background:var(--surface); border-color:var(--border-control); }
html[data-theme="light"] .bsm-app .bsm-online__fields label { color:var(--text-primary); }
html[data-theme="light"] .bsm-app :is(.bsm-online__fields small,.bsm-online__form-actions) { color:var(--text-secondary); }
html[data-theme="light"] .bsm-app :is(.bsm-online__fields input,.bsm-online__fields select,.bsm-online__fields textarea,.bsm-online__fields option) { color:var(--text-primary); background:var(--surface); border-color:var(--border-control); }
html[data-theme="light"] .bsm-app .bsm-online__fields input::placeholder { color:var(--text-secondary); }
html[data-theme="light"] .bsm-app .bsm-dashboard-guide__hero::after { background:linear-gradient(145deg,var(--brand-soft),transparent); }
html[data-theme="light"] .bsm-app .bsm-dashboard-steps li>span,
html[data-theme="light"] .bsm-app .bsm-section-guide li::before,
html[data-theme="light"] .bsm-app .bsm-content .bsm-workflow:not(.bsm-section-guide) li::before { color:var(--on-brand); background:var(--brand-primary); }
html[data-theme="light"] .bsm-app.bsm-auth .bsm-auth__card .bsm-alert--error { color:var(--danger); background:var(--danger-soft); border-color:var(--danger); }
html[data-theme="light"] .bsm-app.bsm-auth .bsm-auth__card .bsm-alert--error a { color:var(--danger); }
html[data-theme="light"] .bsm-app.bsm-auth .bsm-auth__card .bsm-alert--success { color:var(--success); background:var(--success-soft); border-color:var(--success); }
html[data-theme="light"] .bsm-sidebar-tooltip { color:#102b5c; background:#fff; border-color:#7186a5; box-shadow:0 8px 28px #1c509122; }
html[data-theme="light"] .bsm-app :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--brand-primary); outline-offset:3px; }
html[data-theme="light"] .bsm-app :is(input,select,textarea)[aria-invalid="true"] { border-color:var(--danger); }
html[data-theme="light"] .bsm-app :is(button,a,input,select,textarea) { scroll-margin-block:24px; }
html[data-theme="light"] .bsm-app .bsm-backdrop { background:rgba(16,43,92,.35); backdrop-filter:none; }
@media(max-width:680px) {
  html[data-theme="light"] .bsm-app .bsm-main { box-sizing:border-box; }
  html[data-theme="light"] .bsm-app .bsm-header { flex-wrap:wrap; }
  html[data-theme="light"] .bsm-app .bsm-header__account { flex-wrap:wrap; max-inline-size:100%; }
  html[data-theme="light"] .bsm-app :is(.bsm-button,.bsm-header__utility,.bsm-persian-calendar__grid button) { min-block-size:44px; }
  html[data-theme="light"] .bsm-app :is(.bsm-form,.bsm-filter) { min-inline-size:0; }
  html[data-theme="light"] .bsm-app :is(input,select,textarea) { box-sizing:border-box; max-inline-size:100%; font-size:16px; }
}
html.reduced-effects .bsm-app *, html.reduced-effects .bsm-app *::before, html.reduced-effects .bsm-app *::after { backdrop-filter:none !important; animation:none !important; transition:none !important; }
@media(prefers-reduced-motion:reduce) {
  .bsm-app *, .bsm-app *::before, .bsm-app *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
@media print { .bsm-app .bsm-appearance { display:none; } }
