.ui-language-switch{min-width:62px;min-height:36px;padding:var(--space-2) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--surface);color:inherit;font:600 var(--font-size-13) system-ui;cursor:pointer;flex-shrink:0}.ui-language-switch:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.ui-global-language{z-index:40;position:fixed;top:12px;right:16px}@media (width<=600px){.ui-global-language{top:8px;right:8px}}:root,:root[data-ui-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-tooltip-surface:#1b2d45;--color-tooltip-text:#fff;--color-brand:#1875ed;--color-calendar-fill-info:#176dcc;--color-calendar-fill-purple:#7853b2;--color-calendar-fill-success:#24774d;--color-calendar-fill-warning:#8b6519;--color-calendar-fill-danger:#b53748;--color-calendar-fill-teal:#15777f;--color-page:#f5f7fc;--color-surface:#fff;--color-surface-subtle:#f1f4f9;--color-surface-raised:#fff;--color-surface-input:#f5f7fb;--color-text:#202d43;--color-text-muted:#65738a;--color-text-disabled:#8490a3;--color-text-ghost:#8a96a8;--color-on-accent:#fff;--color-text-inverse:#fff;--color-border:#dce3ed;--color-border-subtle:#e8edf4;--color-border-strong:#8997ad;--color-accent:#0874e2;--color-accent-hover:#006be0;--color-accent-active:#005cc3;--color-link:#176dcc;--color-focus:#087cff;--color-info:#176dcc;--color-info-surface:#eaf3ff;--color-info-border:#94bcea;--color-action-success:#24774d;--color-action-success-hover:#1d633f;--color-action-success-active:#174f32;--color-on-action-success:#fff;--color-success:#24774d;--color-success-surface:#eaf7ef;--color-success-border:#79bd97;--color-action-danger:#b53748;--color-action-danger-hover:#962e3d;--color-on-action-danger:#fff;--color-danger:#b53748;--color-danger-surface:#fff0f2;--color-danger-border:#df8997;--color-warning:#8b6519;--color-warning-surface:#fff7df;--color-warning-border:#d4b15a;--color-purple:#7853b2;--color-purple-surface:#f2ebff;--color-purple-border:#b69bdc;--color-teal:#15777f;--color-teal-surface:#e6f7f8;--color-teal-border:#85c7cb;--color-shadow-color:#15223c;--color-media:#101724;--color-media-text:#f8fbff;--color-chart-1:#2879ed;--color-chart-2:#13a69d;--color-chart-3:#9968d8;--color-chart-4:#d49a21;--color-chart-5:#d96c85;--color-chart-6:#647b9d;--color-chart-7:#389952;--color-calendar-now:#c45;--color-calendar-request:#ffe8a3}:root[data-ui-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-tooltip-surface:#edf1f7;--color-tooltip-text:#202d43;--color-brand:#60a5fa;--color-calendar-fill-info:#176dcc;--color-calendar-fill-purple:#7853b2;--color-calendar-fill-success:#24774d;--color-calendar-fill-warning:#8b6519;--color-calendar-fill-danger:#b53748;--color-calendar-fill-teal:#15777f;--color-page:#171e2b;--color-surface:#202a39;--color-surface-subtle:#2a3343;--color-surface-raised:#2c3749;--color-surface-input:#273244;--color-text:#edf1f7;--color-text-muted:#a7b1c2;--color-text-disabled:#8793a7;--color-text-ghost:#99a8bd;--color-on-accent:#fff;--color-text-inverse:#202d43;--color-border:#3b4556;--color-border-subtle:#313e51;--color-border-strong:#8392a8;--color-accent:#0874e2;--color-accent-hover:#0b70d4;--color-accent-active:#005cc3;--color-link:#a1caff;--color-focus:#79b6ff;--color-info:#c4ddff;--color-info-surface:#294563;--color-info-border:#6b9dd0;--color-action-success:#397c55;--color-action-success-hover:#438c62;--color-action-success-active:#306b49;--color-on-action-success:#fff;--color-success:#b9efd0;--color-success-surface:#203e32;--color-success-border:#58b985;--color-action-danger:#b53748;--color-action-danger-hover:#962e3d;--color-on-action-danger:#fff;--color-danger:#ffc5d4;--color-danger-surface:#482d36;--color-danger-border:#e47788;--color-warning:#efd69b;--color-warning-surface:#40351f;--color-warning-border:#a8893e;--color-purple:#dbc6ff;--color-purple-surface:#392d4e;--color-purple-border:#9373c2;--color-teal:#b0e6e8;--color-teal-surface:#233e44;--color-teal-border:#609aab;--color-shadow-color:#000;--color-media:#101724;--color-media-text:#f8fbff;--color-chart-1:#72acff;--color-chart-2:#53d5c8;--color-chart-3:#bc96ee;--color-chart-4:#edc16b;--color-chart-5:#f3a0b2;--color-chart-6:#a5b9d7;--color-chart-7:#6bd491;--color-calendar-now:#ff8795;--color-calendar-request:#503e23}:root{--color-surface-hover:color-mix(in srgb,var(--color-text) 6%,var(--color-surface));--color-surface-selected:var(--color-info-surface);--color-header:color-mix(in srgb,var(--color-surface) 94%,transparent);--color-backdrop:color-mix(in srgb,var(--color-shadow-color) 45%,transparent);--color-shadow:color-mix(in srgb,var(--color-shadow-color) 12%,transparent);--color-ai:var(--color-purple);--color-ai-surface:var(--color-purple-surface);--color-ai-border:var(--color-purple-border);--color-private:var(--color-warning);--color-private-surface:var(--color-warning-surface);--color-pair-1:var(--color-chart-1);--color-pair-2:var(--color-chart-2);--color-pair-3:var(--color-chart-3);--color-pair-4:var(--color-chart-4);--color-pair-5:var(--color-chart-5);--color-pair-6:var(--color-chart-6);--color-illustration-paper:var(--color-surface);--color-illustration-ink:var(--color-text);--color-illustration-line:var(--color-border);--color-illustration-cyan:var(--color-teal-surface);--color-illustration-purple:var(--color-purple-surface);--bg:var(--color-page);--surface:var(--color-surface);--text:var(--color-text);--muted:var(--color-text-muted);--line:var(--color-border);--soft:var(--color-surface-subtle);--blue:var(--color-accent);--accent:var(--color-accent);--primary:var(--color-accent);--green:var(--color-success);--red:var(--color-danger);--border:var(--color-border);--text-muted:var(--color-text-muted);--surface-subtle:var(--color-surface-subtle);--surface-soft:var(--color-surface-subtle);--surface-active:var(--color-surface-selected);--surface-hover:var(--color-surface-hover)}.ui-theme-switch{border:1px solid var(--line);background:var(--surface);min-width:38px;min-height:38px;color:var(--text);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:7px;display:inline-flex}.admin-login-preferences{justify-content:center;align-items:center;gap:8px;margin:16px 0;display:flex}.ui-theme-switch:focus-visible{outline:3px solid var(--blue);outline-offset:2px}:root[data-ui-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg)}:root[data-ui-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-ui-theme=dark] body,:root[data-ui-theme=dark] :is(.welcome-page,.student-home,.public-booking-page,.student-app,.login-page:not(.teacher-access-page),.admin-app,.admin-login){color:var(--text);background:var(--bg)}:root[data-ui-theme=dark] .admin-login form,:root[data-ui-theme=dark] :is(.welcome-header,.welcome-section,.welcome-final,.welcome-faq,.welcome-footer,.welcome-demo,.welcome-feature,.welcome-step,.welcome-faq details,.student-home-header,.student-home-card,.student-material-card,.student-assignment-card,.student-home-panel,.public-booking-surface,.public-booking-brand,.login-panel,.panel,.admin-top,.admin-sidebar,.stat-card,.chart-card,.chain-row-summary,.model-choice-dialog){color:var(--text);background:var(--surface);border-color:var(--line)}:root[data-ui-theme=dark] :is(.welcome-page,.student-home,.public-booking-page,.admin-app) :is(h1,h2,h3,strong,.student-home-brand){color:var(--text)}:root[data-ui-theme=dark] :is(.welcome-page,.student-home,.public-booking-page,.admin-app) :is(p,small){color:var(--muted)}:root[data-ui-theme=dark] :is(.button.secondary,.admin-app button,.admin-app th,.admin-app .model-choice-header,.admin-app .model-choice-footer){color:var(--text);background:var(--soft);border-color:var(--line)}:root[data-ui-theme=dark] .admin-app :is(td,th){border-color:var(--line)}:root[data-ui-theme=dark] :is(.teacher-dashboard,.availability-page,.schedule-page){color:var(--text)}:root[data-ui-theme=dark] :is(.home-lesson-ribbon,.home-task-panel,.availability-scroll,.availability-day-header,.availability-corner,.availability-time,.availability-arrow,.schedule-scroll,.schedule-time-head,.schedule-day-head,.schedule-time-row,.schedule-day-column,.schedule-segment){background:var(--surface);color:var(--text);border-color:var(--line)}:root[data-ui-theme=dark] :is(.schedule-day-head.weekend,.schedule-day-column.weekend,.schedule-day-head.is-today,.schedule-day-column.is-today,.availability-day){background-color:var(--soft);border-color:var(--line)}:root[data-ui-theme=dark] :is(.schedule-hour-row,.slot-grid-hour,.availability-grid-row){border-color:var(--line)}:root[data-ui-theme=dark] :is(.home-eyebrow,.home-muted,.availability-instruction,.availability-zone,.teacher-dashboard-title p){color:var(--muted)}:root[data-ui-theme=dark] :is(.schedule-day-head strong,.schedule-time-row span){color:var(--text)}:root[data-ui-theme=dark] .schedule-day-head.today strong{color:var(--color-on-accent)}:root[data-ui-theme=dark] :is(.schedule-time-column,.schedule-free-slot,.calendar-slot-cell){background:var(--surface);border-color:var(--line)}:root[data-ui-theme=dark] :is(.schedule-free-slot.is-off-hours,.calendar-slot-cell:not(.is-open)){background:repeating-linear-gradient(135deg,transparent 0px,transparent 7px,color-mix(in srgb,var(--color-shadow-color) 12.55%,transparent) 7px,color-mix(in srgb,var(--color-shadow-color) 12.55%,transparent) 8px),var(--soft)}:root[data-ui-theme=dark] :is(.schedule-day-head.is-past,.schedule-free-slot.is-past){background-color:var(--soft);color:var(--muted)}:root[data-ui-theme=dark] .schedule-free-slot.is-temporary{background-color:var(--color-warning-surface)}:root[data-ui-theme=dark] .calendar-selection-highlight{background:color-mix(in srgb,var(--color-accent) 14.51%,transparent);border-color:var(--color-info-border)}:root[data-ui-theme=dark] :is(.booking-calendar,.reschedule-slot-picker,.slot-picker-heading,.slot-picker-grid,.slot-grid-working,.booking-frequency button,.booking-duration select,.booking-selection button){background:var(--surface);color:var(--text);border-color:var(--line)}:root[data-ui-theme=dark] :is(.booking-calendar,.reschedule-slot-picker) :is(.schedule-day-head,.schedule-time-head,.schedule-time-row,.schedule-day-column,.slot-grid-hour,.student-slot-cell){background-color:var(--surface);color:var(--text);border-color:var(--line)}:root[data-ui-theme=dark] .booking-calendar .student-slot-cell.weekly-unavailable{background:repeating-linear-gradient(135deg,var(--color-surface-subtle) 0px,var(--color-surface-subtle) 3px,var(--color-border) 3px,var(--color-border) 4px);border-color:var(--line)}:root[data-ui-theme=dark] .booking-calendar .student-slot-cell.weekly-selected{background:var(--color-accent);color:var(--color-on-accent)}:root[data-ui-theme=dark] .booking-calendar .student-slot-cell.weekly-ghost{background:color-mix(in srgb,var(--color-accent) 13.33%,transparent);color:var(--color-text-ghost)}:root[data-ui-theme=dark] .lessonpilot-brand-light{display:none}:root[data-ui-theme=dark] .lessonpilot-brand-dark,:root[data-ui-theme=light] .lessonpilot-brand-light{display:block}:root[data-ui-theme=light] .lessonpilot-brand-dark{display:none}.app-update-notice{inset-inline:var(--space-page);bottom:max(var(--space-section), env(safe-area-inset-bottom));z-index:10000;align-items:center;gap:var(--space-identity);width:min(640px, calc(100% - var(--space-page) * 2));padding:var(--space-card);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);color:var(--color-text);box-shadow:0 8px 32px var(--color-shadow);font-size:var(--font-size-14);margin-inline:auto;line-height:1.5;display:flex;position:fixed}.app-update-icon{flex:0 0 var(--size-control);height:var(--size-control);border-radius:var(--radius-control);color:var(--color-accent);background:var(--color-surface-subtle);place-items:center;display:grid}.app-update-copy{flex:1;min-width:0}.app-update-copy strong{font-size:var(--font-size-16);line-height:1.3;display:block}.app-update-copy p{margin:var(--space-1) 0 0;color:var(--color-text-muted)}.app-update-refresh{justify-content:center;align-items:center;gap:var(--space-inline);min-height:var(--size-control);padding:var(--space-inline) var(--space-row-inline);border:1px solid var(--color-accent);border-radius:var(--radius-control);background:var(--color-accent);color:var(--color-on-accent);font:inherit;cursor:pointer;flex-shrink:0;font-weight:600;display:inline-flex}.app-update-refresh:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.app-update-refresh:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.app-update-refresh:active{transform:translateY(1px)}@media (width<=760px){.app-update-notice{flex-wrap:wrap;align-items:flex-start}.app-update-refresh{width:100%;min-height:var(--size-control-touch)}}.feedback-sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.feedback-stack{color:var(--color-text);overscroll-behavior:contain;z-index:2147483647;box-sizing:border-box;background:0 0;border:0;width:min(390px,100vw - 32px);max-height:calc(100dvh - 36px);margin:0;padding:0;position:fixed;inset:18px 18px auto auto;overflow-y:auto}.feedback-stack:popover-open{gap:var(--space-3);flex-direction:column;display:flex}.feedback-stack::backdrop{pointer-events:none;background:0 0}.feedback-notice{align-items:flex-start;gap:var(--space-3);padding:var(--space-card);border:1px solid var(--color-danger-border);border-radius:var(--radius-panel);background:var(--color-surface-raised);box-shadow:0 8px 32px color-mix(in srgb,var(--color-shadow-color) 12.55%,transparent);box-sizing:border-box;animation:.18s ease-out feedback-enter;display:flex}.feedback-notice>svg{color:var(--color-danger);margin-top:var(--space-1);flex:none}.feedback-notice-body{flex:1;min-width:0}.feedback-notice-body strong{font-size:var(--font-size-14);color:var(--color-text);line-height:1.4;display:block}.feedback-notice .feedback-notice-body p{margin:var(--space-2) 0 0;font-size:var(--font-size-13);color:var(--color-text-muted);overflow-wrap:anywhere;line-height:1.5}.feedback-close{padding:var(--space-1);border-radius:var(--radius-small);color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:grid}.feedback-close:hover{background:var(--color-surface-hover)}.feedback-actions{gap:var(--space-inline);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.feedback-actions button,.feedback-retry{align-items:center;gap:var(--space-2);font:inherit;font-size:var(--font-size-13);border:1px solid var(--color-border);border-radius:var(--radius-control);padding:var(--space-2) var(--space-3);background:var(--color-surface-hover);color:var(--color-text);cursor:pointer;display:inline-flex}.feedback-retry{margin-top:var(--space-3)}.feedback-stack button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.feedback-stack button:disabled{opacity:.55;cursor:default}.feedback-field-error{align-items:flex-start;gap:var(--space-2);margin:var(--space-2) 0;font-size:var(--font-size-13);line-height:1.5;display:flex;color:var(--color-danger)!important}.feedback-field-error>svg{margin-top:var(--space-1);flex:none}.feedback-field-error>span{color:inherit}.loading-skeleton{width:100%;min-width:0;padding:var(--space-card) 0;box-sizing:border-box}.skeleton-heading{align-items:center;gap:var(--space-section);margin-bottom:var(--space-card);display:flex}.skeleton-heading-lines{gap:var(--space-3);width:min(340px,60%);display:grid}.skeleton-block{background:linear-gradient(100deg,var(--color-border) 25%,var(--color-surface-subtle) 45%,var(--color-border) 65%);border-radius:var(--radius-small);background-size:240% 100%;height:13px;animation:1.7s ease-in-out infinite skeleton-shimmer;display:block}.skeleton-heading-lines>.skeleton-block:first-child{height:22px}.skeleton-heading-lines>.skeleton-block:last-child{width:65%}.skeleton-icon{border-radius:var(--radius-card);flex:none;width:52px;height:60px}.skeleton-content{gap:var(--space-section);display:grid}.skeleton-row{align-items:center;gap:var(--space-section);padding:var(--space-card);border:1px solid var(--color-border);border-radius:var(--radius-card);display:flex}.skeleton-thumbnail{flex:none;width:38px;height:42px}.skeleton-lines{gap:var(--space-3);width:100%;display:grid}.skeleton-lines>.skeleton-block:first-child{width:72%}.skeleton-lines>.skeleton-block:last-child{width:45%;height:10px}.loading-skeleton-cards .skeleton-content{grid-template-columns:repeat(3,minmax(0,1fr))}.loading-skeleton-cards .skeleton-row{padding:var(--space-card);flex-direction:column;align-items:stretch}.loading-skeleton-cards .skeleton-thumbnail{width:100%;height:130px}.loading-skeleton-profile .skeleton-icon{width:80px;height:96px}.loading-skeleton-calendar .skeleton-content{grid-template-columns:repeat(3,minmax(0,1fr))}.loading-skeleton-calendar .skeleton-row{align-items:flex-start;height:110px}.loading-skeleton-editor .skeleton-row{min-height:110px}.loading-skeleton.is-compact{padding:var(--space-3) 0}.loading-skeleton.is-compact .skeleton-heading{display:none}.loading-skeleton.is-compact .skeleton-row{padding:var(--space-3)}.pending-indicator{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-13);display:inline-flex}.pending-indicator>svg{flex:none;animation:1s linear infinite pending-spin}.load-recovery{align-items:center;gap:var(--space-3);padding:var(--space-card) var(--space-card);color:var(--color-text-muted);text-align:center;flex-direction:column;display:flex}.load-recovery p{margin:0}:root :is(.error-text,.auth-error,.booking-error,.student-home-error,.personal-error,.audio-buffer-error,.ml-error,.admin-app .error,.admin-login .error),:root :is(.exercise-validation-error,.validation-field-error,.student-account-field-error){color:var(--color-danger)}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes pending-spin{to{transform:rotate(360deg)}}@keyframes feedback-enter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.feedback-stack{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);inset:12px 12px auto auto}.loading-skeleton-cards .skeleton-content{grid-template-columns:repeat(2,minmax(0,1fr))}.skeleton-row{padding:var(--space-3)}.loading-skeleton-calendar .skeleton-row{gap:var(--space-2)}.loading-skeleton-calendar .skeleton-thumbnail{display:none}}@media (prefers-reduced-motion:reduce){.skeleton-block,.pending-indicator>svg,.feedback-notice{animation:none}}.feedback-spinner{vertical-align:middle;flex:none;margin-inline-end:var(--space-2);animation:1s linear infinite pending-spin}button:has(>.feedback-spinner){justify-content:center;align-items:center;gap:var(--space-1);display:inline-flex}@media (prefers-reduced-motion:reduce){.feedback-spinner{animation:none}}.startup-loading{max-width:1024px;padding:var(--space-card);box-sizing:border-box;margin:0 auto}:root[data-teacher-motion=reduce] :is(.skeleton-block,.pending-indicator>svg,.feedback-spinner,.feedback-notice){animation:none}.feedback-stack{inset:var(--feedback-top,88px) 18px auto auto;max-height:calc(100dvh - var(--feedback-top,88px) - 18px)}@media (width<=640px){.feedback-stack{inset:var(--feedback-top,76px) 12px auto auto;max-height:calc(100dvh - var(--feedback-top,76px) - 12px)}}.feedback-diagnostics{margin-top:var(--space-3);font-size:var(--font-size-13)}.feedback-diagnostics summary{cursor:pointer;color:var(--color-text);padding:var(--space-1) 0}.feedback-diagnostics textarea{box-sizing:border-box;width:100%;height:160px;margin-top:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-subtle);color:var(--color-text);font:inherit;resize:vertical;display:block}.feedback-diagnostics :is(summary,textarea):focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}
