@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.layout{height:100vh;width:100%;height:100dvh;display:flex;overflow:hidden}.sidebar-wrapper{height:100vh;width:80%;max-width:320px;height:100dvh;z-index:var(--z-sidebar);transition:transform .3s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar-wrapper.open{transform:translate(0)}.sidebar{background:var(--glass-dark-bg);border-right:1px solid var(--glass-dark-border);height:100%;box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(var(--glass-blur-strong))saturate(160%);backdrop-filter:blur(var(--glass-blur-strong))saturate(160%);color:#e2e8f0;flex-direction:column;justify-content:space-between;padding:22px 16px;display:flex}.sidebarTop{flex-direction:column;gap:22px;display:flex}.sidebarBrand{border-bottom:1px solid #94a3b82e;flex-direction:column;gap:4px;padding:4px 8px 16px;display:flex}.sidebarTitle{letter-spacing:.3px;background:linear-gradient(90deg,#fff,#c7d2fe);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:20px;font-weight:700}.sidebarSubtitle{color:#e2e8f0b3;font-size:12px}.sidebarNav{flex-direction:column;gap:6px;display:flex}.sidebarLink{border-radius:var(--radius-md);color:#e2e8f0d9;border:1px solid #0000;align-items:center;gap:12px;padding:11px 12px;font-weight:500;text-decoration:none;transition:background-color .2s,color .2s,transform .15s,border-color .2s;display:flex}.sidebarLink:hover{color:#fff;background-color:#94a3b824;transform:translate(2px)}.sidebarLink.active{color:#fff;background:linear-gradient(135deg,#4f7cff59,#2563eb38);border-color:#81a0ff66}.sidebarLink:focus-visible{outline-offset:2px;outline:2px solid #81a0ffb3}.sidebarLinkIcon{flex-shrink:0;width:20px;height:20px}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-sidebar-overlay);background:#0f172a66;position:fixed;inset:0}.content{flex-direction:column;flex:1;min-width:0;height:100%;display:flex;overflow:hidden}.header{background:var(--glass-bg);border-bottom:1px solid var(--glass-border-soft);min-height:60px;box-shadow:var(--glass-shadow-sm),inset 0 1px 0 #fff6;-webkit-backdrop-filter:blur(var(--glass-blur))saturate(180%);backdrop-filter:blur(var(--glass-blur))saturate(180%);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.headerLeft{align-items:center;gap:12px;min-width:0;display:flex}.greeting{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:600;overflow:hidden}.hamburgerButton{border-radius:var(--radius-md);width:40px;height:40px;color:var(--text-strong);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:background-color .2s;display:none}.hamburgerButton:hover{background:var(--glass-bg-faint)}.avatar{background:var(--gradient-accent);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-weight:700;display:flex}.installButton{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent;border:1px solid #81a0ff80;flex-shrink:0;align-items:center;gap:7px;padding:8px 14px;font-weight:600;transition:background-color .2s,transform .15s;display:inline-flex}.installButton:hover{background:#2563eb2e;transform:translateY(-1px)}.installButton:active{transform:translateY(0)}.installButtonLabel{font-size:14px}@media (max-width:420px){.installButtonLabel{display:none}}.page{-webkit-overflow-scrolling:touch;flex:1;padding:24px;overflow-y:auto}.logout{flex-shrink:0}@media (min-width:769px){.sidebar-wrapper{flex:0 0 280px;width:280px;max-width:280px;height:100%;position:relative;transform:none}}@media (max-width:768px){.sidebar-wrapper{width:80%;max-width:320px;transform:translate(-100%)}.sidebar-wrapper.open{transform:translate(0)}.hamburgerButton{display:inline-flex}.page{padding:16px;padding-bottom:calc(env(safe-area-inset-bottom) + 92px)}}@media (display-mode:standalone){.page{padding-bottom:calc(env(safe-area-inset-bottom) + 92px)}}.home-page{flex-direction:column;gap:20px;max-width:960px;margin:0 auto;display:flex;overflow-x:hidden}.home-page__title{color:var(--text-strong);margin:0;font-size:22px;font-weight:700}.lesson-note-modal__overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal);background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.lesson-note-modal{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-xl);width:min(560px,100vw - 24px);box-shadow:var(--glass-shadow-lg);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(170%);backdrop-filter:blur(var(--glass-blur))saturate(170%);padding:20px}.lesson-note-modal__header{justify-content:space-between;align-items:center;gap:10px;display:flex}.lesson-note-modal__header h3{margin:0;font-size:18px}.lesson-note-modal__close{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .2s,color .2s;display:inline-flex}.lesson-note-modal__close:hover{background:var(--glass-bg-faint);color:var(--text-strong)}.lesson-note-modal__subtitle{color:var(--text-muted);margin:10px 0 12px;font-size:14px}.lesson-note-modal__textarea{resize:vertical;border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);width:100%;color:var(--text-strong);background:#ffffffb3;padding:12px;font-size:16px;line-height:1.45}.lesson-note-modal__textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.lesson-note-modal__actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.lesson-note-modal__button{border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;padding:10px 16px;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .15s}.lesson-note-modal__button:hover:not(:disabled){transform:translateY(-1px)}.lesson-note-modal__button:disabled{cursor:default;opacity:.6}.lesson-note-modal__button--secondary{background:var(--glass-bg-strong);border-color:var(--glass-border);color:var(--text-strong)}.lesson-note-modal__button--primary{background:var(--gradient-accent);color:var(--accent-contrast);box-shadow:var(--accent-glow)}.lesson-note-modal__error{color:var(--danger);margin:10px 0 0;font-size:13px}.schedule-day{border-radius:var(--radius-xl);background:var(--glass-bg-faint);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(150%);backdrop-filter:blur(var(--glass-blur))saturate(150%);margin-bottom:32px;padding:18px}.schedule-day__title{color:var(--text-strong);text-transform:capitalize;margin:0 0 16px;font-size:18px;font-weight:600}.schedule-day__list{flex-direction:column;gap:12px;display:flex}.schedule-empty{border-radius:var(--radius-md);background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-sm);text-align:center;color:var(--text-muted);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(150%);backdrop-filter:blur(var(--glass-blur))saturate(150%);padding:20px;font-size:14px}.lesson-card{border-radius:var(--radius-lg);background:var(--glass-bg-strong);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-sm),inset 0 1px 0 #ffffff8c;-webkit-backdrop-filter:blur(var(--glass-blur))saturate(175%);backdrop-filter:blur(var(--glass-blur))saturate(175%);flex-direction:column;gap:8px;padding:16px 16px 44px 20px;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.lesson-card:before{content:"";background:var(--lesson-accent,var(--accent));pointer-events:none;width:5px;position:absolute;inset:0 auto 0 0}.lesson-card:hover{box-shadow:var(--glass-shadow);transform:translateY(-2px)}.lesson-card__top{align-items:flex-start;gap:10px;display:flex}.lesson-card__type{background:var(--lesson-accent-soft,var(--accent-soft));color:var(--lesson-accent,var(--accent));border-radius:var(--radius-pill);letter-spacing:.3px;align-self:flex-start;padding:4px 10px;font-size:12px;font-weight:600}.lesson-card__time{color:var(--text);white-space:nowrap;margin-left:auto;font-size:14px;font-weight:600}.lesson-card__subject{color:var(--text-strong);word-break:break-word;font-size:16px;font-weight:600;line-height:1.3}.lesson-card__meta{color:var(--text-muted);font-size:14px}.lesson-card__note{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;text-align:right;appearance:none;max-width:calc(100% - 32px);color:var(--accent);background:0 0;border:none;margin:0;padding:0;font-size:12px;font-weight:600;line-height:16px;position:absolute;bottom:12px;right:16px;overflow:hidden}.lesson-card__note--filled{color:var(--text-muted);font-weight:500}.profile-page{flex-direction:column;gap:20px;max-width:820px;margin:0 auto;display:flex}.profile-header{align-items:center;gap:16px;display:flex}.profile-avatar{background:var(--gradient-accent);color:#fff;width:72px;height:72px;box-shadow:var(--accent-glow);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:28px;font-weight:600;display:flex}.profile-header-text h1{margin:0;font-size:26px}.profile-name{color:var(--text-strong);flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 2px;font-size:18px;font-weight:600;display:flex}.profile-role{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);padding:3px 10px;font-size:12px;font-weight:600}.profile-meta{color:var(--text-subtle);margin:0}.profile-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);padding:22px}.profile-card-title{margin:0 0 16px;font-size:18px}.profile-details{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 18px;display:grid}.profile-detail-row{flex-direction:column;gap:4px;display:flex}.profile-detail-label{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.profile-detail-value{color:var(--text-strong);font-weight:600}.profile-settings{flex-direction:column;gap:14px;display:flex}.profile-setting-row{border-radius:var(--radius-md);border:1px solid var(--glass-border-soft);background:#ffffff73;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.profile-setting-row--stack{flex-direction:column;align-items:stretch}.profile-setting-text{flex-direction:column;gap:4px;display:flex}.profile-setting-title{color:var(--text-strong);font-weight:600}.profile-setting-hint{color:var(--text-subtle);font-size:12px}.profile-dev-error{color:var(--danger);font-size:12px}.profile-toggle{width:42px;height:22px;accent-color:var(--accent);flex-shrink:0}.profile-select{border-radius:var(--radius-sm);border:1px solid var(--glass-border-soft);width:100%;max-width:240px;color:var(--text-strong);background:#fffc;padding:10px 12px;font-weight:600}.profile-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.profile-actions{flex-wrap:wrap;gap:12px;display:flex}.profile-button{border-radius:var(--radius-md);cursor:pointer;border:none;padding:11px 18px;font-weight:600;transition:transform .15s,box-shadow .15s}.profile-button:hover{transform:translateY(-1px)}.profile-button:active{transform:translateY(1px)}.profile-button--primary{background:var(--gradient-accent);color:var(--accent-contrast);box-shadow:var(--accent-glow)}.profile-button--secondary{background:var(--glass-bg-strong);color:var(--text-strong);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%)}@media (max-width:640px){.profile-header{flex-direction:column;align-items:flex-start}.profile-avatar{width:64px;height:64px}}.auth-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal);background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.auth-slider{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-xl);width:min(420px,100vw - 24px);box-shadow:var(--glass-shadow-lg);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(170%);backdrop-filter:blur(var(--glass-blur))saturate(170%);flex-direction:column;padding:22px;animation:.22s authModalIn;display:flex}.auth-inline-wrap{margin-top:18px}.auth-inline{width:100%;max-width:100%;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;border-radius:0;padding:0;animation:none}.auth-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.auth-header h2{margin:0;font-weight:600}.close-btn{border-radius:var(--radius-md);cursor:pointer;width:36px;height:36px;color:var(--text);-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;transition:background .2s,color .2s;display:inline-flex}.close-btn:hover{background:var(--glass-bg-faint);color:var(--text-strong)}.tabs{border-radius:var(--radius-md);background:#94a3b829;margin-bottom:20px;padding:4px;display:flex}.tabs button{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex:1;padding:10px;font-weight:600;transition:all .2s}.tabs button.active{color:var(--text-strong);box-shadow:var(--glass-shadow-sm);background:#fff}.form{flex-direction:column;gap:14px;display:flex}.form input{border-radius:var(--radius-md);border:1px solid var(--glass-border-soft);color:var(--text-strong);background:#ffffffb3;padding:12px 14px;font-size:14px;transition:all .2s}.form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.form input.error{border-color:var(--danger)}.submit-btn{border-radius:var(--radius-md);background:var(--gradient-accent);color:var(--accent-contrast);cursor:pointer;box-shadow:var(--accent-glow);-webkit-tap-highlight-color:transparent;border:none;margin-top:8px;padding:13px;font-weight:600;transition:transform .15s,box-shadow .15s,opacity .2s}.submit-btn:hover:not(:disabled){box-shadow:var(--accent-glow-strong);transform:translateY(-1px)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.server-error{color:var(--danger);text-align:center;font-size:14px}.link-btn{color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0;font-size:14px;text-decoration:underline}.link-btn:hover{color:var(--accent-strong)}.link-row{justify-content:space-between;gap:12px;display:flex}@keyframes authModalIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.auth-slider{animation:none}}.auth-page{min-height:100vh;place-items:center;min-height:100dvh;padding:24px;display:grid}.auth-page-card{border:1px solid var(--glass-border);border-radius:var(--radius-xl);background:var(--glass-bg-strong);text-align:center;width:min(560px,100%);box-shadow:var(--glass-shadow-lg);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(170%);backdrop-filter:blur(var(--glass-blur))saturate(170%);padding:32px}.auth-page-card h1{margin:0;font-size:clamp(24px,4vw,32px);line-height:1.2}.auth-page-card p{color:var(--text-muted);margin:14px 0 0;line-height:1.55}.auth-back-link{border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-strong);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);margin-top:18px;padding:11px 16px;font-size:15px;font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-block}.auth-back-link:hover{box-shadow:var(--glass-shadow-sm);transform:translateY(-1px)}.welcome-page{min-height:100vh;min-height:100dvh;color:var(--text);padding:56px 20px 64px}.welcome-hero{text-align:center;max-width:860px;margin:0 auto}.welcome-badge{border-radius:var(--radius-pill);background:var(--glass-bg-strong);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);color:var(--accent-strong);letter-spacing:.06em;text-transform:uppercase;padding:6px 14px;font-size:12px;font-weight:700;display:inline-block}.welcome-hero h1{margin:16px 0 14px;font-size:clamp(28px,5vw,46px);line-height:1.12}.welcome-hero p{max-width:640px;color:var(--text-muted);margin:0 auto;font-size:17px;line-height:1.6}.welcome-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px;display:flex}.welcome-primary-btn,.welcome-secondary-btn{border-radius:var(--radius-md);cursor:pointer;padding:13px 20px;font-size:15px;font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .15s,background .2s}.welcome-primary-btn{background:var(--gradient-accent);color:var(--accent-contrast);box-shadow:var(--accent-glow);border:none}.welcome-secondary-btn{border:1px solid var(--glass-border);color:var(--text-strong);background:var(--glass-bg);box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%)}.welcome-primary-btn:hover,.welcome-secondary-btn:hover{box-shadow:var(--glass-shadow);transform:translateY(-2px)}.welcome-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;max-width:980px;margin:44px auto 0;display:grid}.welcome-card{border-radius:var(--radius-lg);border:1px solid var(--glass-border);background:var(--glass-bg);box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);text-align:left;padding:22px;transition:transform .15s,box-shadow .15s}.welcome-card:hover{box-shadow:var(--glass-shadow);transform:translateY(-3px)}.welcome-card h3{margin:0 0 8px;font-size:18px}.welcome-card p{color:var(--text-muted);margin:0;line-height:1.5}.schedule-filters-panel{flex-direction:column;gap:12px;display:flex}.schedule-filters-popup__overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal);background:#0f172a73;padding:16px}.schedule-filters-popup{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-xl);width:min(980px,100vw - 24px);max-height:min(90vh,90dvh);box-shadow:var(--glass-shadow-lg);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(170%);backdrop-filter:blur(var(--glass-blur))saturate(170%);flex-direction:column;display:flex;overflow:hidden}.schedule-filters-popup__header{border-bottom:1px solid var(--glass-border-soft);justify-content:space-between;align-items:center;gap:10px;padding:16px;display:flex}.schedule-filters-popup__header h2{margin:0;font-size:20px}.schedule-filters-popup__close{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .2s,color .2s;display:inline-flex}.schedule-filters-popup__close:hover{background:var(--glass-bg-faint);color:var(--text-strong)}.schedule-filters-popup__body{padding:16px;overflow:auto}.schedule-filters-panel__toggle{background:var(--gradient-accent);border-radius:var(--radius-md);color:var(--accent-contrast);cursor:pointer;min-height:44px;box-shadow:var(--accent-glow);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-weight:600;transition:transform .15s,box-shadow .15s;display:inline-flex}.schedule-filters-panel__toggle:hover{transform:translateY(-1px)}.schedule-filters-panel__toggle-count{border-radius:var(--radius-pill);min-width:22px;height:22px;color:var(--accent-contrast);background:#ffffff47;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.schedule-filters-panel__panel{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);padding:16px;overflow:hidden}.schedule-filters{flex-direction:column;gap:12px;width:100%;margin:0;display:flex}.schedule-filters__field{width:100%;min-width:0}.schedule-filters__label{color:var(--text);margin-bottom:6px;font-size:14px;font-weight:600;display:inline-block}.schedule-filters__field--wide{width:100%}.schedule-filters__input{border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);width:100%;min-width:0;max-width:100%;min-height:44px;color:var(--text-strong);background:#ffffffb3;padding:8px 12px;font-size:16px;display:block}.schedule-filters__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.schedule-filters__input[type=date]{appearance:none;min-width:0}.schedule-filters__input::placeholder{color:var(--text-subtle);opacity:1}.schedule-filters__input[type=date]::-webkit-datetime-edit{color:var(--text-subtle)}.schedule-filter-select .schedule-filter-select__control{border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);min-height:44px;box-shadow:none;background:#ffffffb3;font-size:16px;transition:border-color .2s,box-shadow .2s,background .2s}.schedule-filter-select .schedule-filter-select__control:hover{border-color:var(--text-subtle)}.schedule-filter-select .schedule-filter-select__control--is-focused{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.schedule-filter-select .schedule-filter-select__control--is-disabled{border-color:var(--glass-border-soft);opacity:.65;background:#fff6}.schedule-filter-select .schedule-filter-select__value-container{gap:4px;padding:2px 12px}.schedule-filter-select .schedule-filter-select__placeholder{color:var(--text-subtle);font-size:16px}.schedule-filter-select .schedule-filter-select__input-container,.schedule-filter-select .schedule-filter-select__single-value{color:var(--text-strong);font-size:16px}.schedule-filter-select .schedule-filter-select__indicator{color:var(--text-subtle);padding:8px}.schedule-filter-select .schedule-filter-select__indicator:hover{color:var(--text-muted)}.schedule-filter-select .schedule-filter-select__indicator-separator{display:none}.schedule-filter-select .schedule-filter-select__multi-value{background:var(--accent-soft);border-radius:var(--radius-sm);overflow:hidden}.schedule-filter-select .schedule-filter-select__multi-value__label{color:var(--accent-strong);font-weight:600}.schedule-filter-select .schedule-filter-select__multi-value__remove{color:var(--accent)}.schedule-filter-select .schedule-filter-select__multi-value__remove:hover{color:var(--accent-strong);background:#2563eb2e}.schedule-filter-select__menu{border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-bg-strong);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);overflow:hidden}.schedule-filter-select__option{color:var(--text);cursor:pointer;background:0 0}.schedule-filter-select__option--is-focused{background:var(--accent-soft)}.schedule-filter-select__option--is-selected{color:var(--text-strong);background:#2563eb29}.schedule-filter-select__option-checkbox{cursor:pointer;align-items:center;gap:8px;display:flex}.schedule-filter-select__option-checkbox input[type=checkbox]{appearance:none;border:1.5px solid var(--text-subtle);background:#fff;border-radius:4px;place-content:center;width:16px;height:16px;margin:0;transition:background-color .15s,border-color .15s,box-shadow .15s;display:inline-grid}.schedule-filter-select__option-checkbox input[type=checkbox]:after{content:"";transform-origin:50%;border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;transition:transform .12s;transform:rotate(45deg)scale(0)}.schedule-filter-select__option-checkbox input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.schedule-filter-select__option-checkbox input[type=checkbox]:checked:after{transform:rotate(45deg)scale(1)}.schedule-filter-select__option-checkbox input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:none}.schedule-filters__action{width:100%}.schedule-filters__submit,.schedule-filters-panel__reset{border-radius:var(--radius-md);cursor:pointer;justify-content:center;align-items:center;width:100%;min-height:44px;padding:10px 16px;font-weight:600;transition:transform .15s,box-shadow .15s,background .2s;display:inline-flex}.schedule-filters__submit{background:var(--gradient-accent);color:var(--accent-contrast);box-shadow:var(--accent-glow);border:1px solid #0000}.schedule-filters__submit:hover{transform:translateY(-1px)}.schedule-filters-panel__actions{gap:8px;margin-top:12px;display:flex}.schedule-filters-panel__reset{background:var(--glass-bg-strong);border:1px solid var(--glass-border);color:var(--text-strong)}.schedule-filters-panel__reset:hover{background:#fff}.schedule-filters-panel__chips{flex-wrap:wrap;gap:8px;display:flex}.schedule-filters-panel__chip{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--text-strong);align-items:center;gap:8px;max-width:100%;padding:6px 8px 6px 12px;font-size:14px;line-height:1.2;display:inline-flex}.schedule-filters-panel__chip span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.schedule-filters-panel__chip-remove{border-radius:var(--radius-pill);width:22px;height:22px;color:var(--text);cursor:pointer;background:#94a3b84d;border:none;flex-shrink:0;place-items:center;padding:0;transition:background .15s;display:inline-grid}.schedule-filters-panel__chip-remove svg{display:block}.schedule-filters-panel__chip-remove:hover{background:#94a3b880}@media (max-width:900px){.schedule-filters__field,.schedule-filters__field--wide,.schedule-filters__action{width:100%}}@media (max-width:640px){.schedule-filters-panel__chip{max-width:100%}.schedule-filters-popup__header,.schedule-filters-popup__body{padding:12px}.schedule-filters-popup__header h2{font-size:18px}.schedule-filters__field,.schedule-filters__field--wide,.schedule-filters__action{width:100%}.schedule-filters-panel__actions{flex-direction:column}}.popup-overlay{width:100vw;height:100vh;box-sizing:border-box;justify-content:center;align-items:center;height:100dvh;margin:0;padding:0;display:flex;position:fixed;inset:0;overflow:hidden}.popup-content{box-sizing:border-box;flex:0 auto;max-width:100%;max-height:100%}.schedule-page{flex-direction:column;gap:20px;max-width:980px;margin:0 auto;display:flex}.schedule-page__title{color:var(--text-strong);margin:0;font-size:24px;font-weight:700}.schedule-page__error{color:var(--danger);margin:0;font-weight:500}.schedule-page__empty{color:var(--text-muted);margin:0;padding:16px;font-style:italic}.schedule-page__week-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.schedule-page__week-button{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-strong);cursor:pointer;width:100%;min-height:44px;box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(150%);backdrop-filter:blur(var(--glass-blur))saturate(150%);justify-content:center;align-items:center;gap:6px;padding:10px 12px;font-weight:600;transition:transform .1s,box-shadow .15s,border-color .15s;display:inline-flex}.schedule-page__week-button:hover{box-shadow:var(--glass-shadow);border-color:#2563eb66}.schedule-page__week-button:active{transform:translateY(1px)}.schedule-page__week-button--today{background:var(--gradient-accent);color:var(--accent-contrast);border-color:#0000}.schedule-page__week-arrow{line-height:0;display:inline-flex}@media (max-width:640px){.schedule-page__week-controls{grid-template-columns:48px minmax(0,1fr) 48px;gap:8px}.schedule-page__week-button--prev,.schedule-page__week-button--next{padding:10px 0}.schedule-page__week-label{display:none}}.admin-import-form{flex-direction:column;gap:12px;display:flex}.admin-import-row{flex-direction:column;gap:6px;display:flex}.admin-import-label{color:var(--text-strong);font-weight:600}.admin-import-row input[type=file],.admin-import-row input[type=date]{border-radius:var(--radius-md);border:1px solid var(--glass-border-soft);color:var(--text-strong);background:#ffffffb3;padding:10px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.admin-import-row input[type=file]:focus,.admin-import-row input[type=date]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.admin-import-message{color:var(--text);margin:0;font-size:14px}.admin-modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal);background:#0f172a73;justify-content:center;align-items:center;padding:16px;animation:.25s adminFadeIn;display:flex;position:fixed;inset:0}.admin-modal{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-xl);width:520px;max-width:min(94%,100vw - 24px);box-shadow:var(--glass-shadow-lg);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(170%);backdrop-filter:blur(var(--glass-blur))saturate(170%);flex-direction:column;gap:16px;padding:24px;animation:.25s adminModalIn;display:flex}.admin-modal--wide{width:980px;max-width:min(96%,100vw - 24px)}.admin-modal-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-modal-header h2{margin:0;font-weight:600}.admin-modal-close{border-radius:var(--radius-md);cursor:pointer;width:36px;height:36px;color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;font-size:18px;transition:background .2s,color .2s;display:inline-flex}.admin-modal-close:hover{background:var(--glass-bg-faint);color:var(--text-strong)}.admin-modal-body{flex-direction:column;gap:12px;max-height:72vh;display:flex;overflow:auto}@keyframes adminModalIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes adminFadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.admin-modal,.admin-modal-overlay{animation:none}}.admin-accounts{margin-top:0}.admin-section{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);padding:20px}.admin-section-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.admin-section-subtitle{color:var(--text-muted);margin:4px 0 0;font-size:13px}.admin-section-status,.admin-section-error,.admin-section-message{margin:12px 0 0;font-size:14px}.admin-section-error{color:var(--danger)}.admin-section-message{color:var(--success)}.admin-accounts-filters{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;display:grid}.admin-field{color:var(--text-strong);flex-direction:column;gap:6px;font-size:13px;display:flex}.admin-field input,.admin-field select{border-radius:var(--radius-md);border:1px solid var(--glass-border-soft);color:var(--text-strong);background:#ffffffb3;padding:10px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.admin-field input:focus,.admin-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.admin-filters-actions{align-items:flex-end;gap:8px;display:flex}.admin-accounts-table{flex-direction:column;gap:8px;margin-top:12px;display:flex}.admin-accounts-header,.admin-accounts-row{grid-template-columns:1.2fr 1.5fr 1.2fr .7fr .9fr .6fr 1.2fr;align-items:center;gap:12px;display:grid}.admin-accounts-header{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:12px}.admin-accounts-row{border-radius:var(--radius-md);border:1px solid var(--glass-border-soft);color:var(--text);background:#ffffff80;padding:12px;font-size:14px}.admin-accounts-uid{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.admin-accounts-actions{gap:8px;display:flex}.admin-edit-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.admin-edit-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.admin-danger-button{border-radius:var(--radius-md);background:var(--danger);color:#fff;cursor:pointer;border:none;padding:10px 14px;font-weight:600;transition:transform .15s,opacity .2s}.admin-danger-button:hover:not(:disabled){transform:translateY(-1px)}.admin-danger-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width:860px){.admin-accounts-header{display:none}.admin-accounts-row{grid-template-columns:1fr;gap:6px}}.admin-schedule-manager{margin-top:0}.admin-tabs{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.admin-tab{border-radius:var(--radius-pill);border:1px solid var(--glass-border);background:var(--glass-bg-strong);color:var(--text-strong);cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);padding:8px 14px;font-weight:600;transition:transform .15s,background .2s,border-color .2s}.admin-tab:hover{transform:translateY(-1px)}.admin-tab.active{background:var(--gradient-accent);color:var(--accent-contrast);border-color:#0000}.admin-crud-panel{gap:12px;margin-top:16px;display:grid}.admin-schedule-table{flex-direction:column;gap:8px;display:flex}.admin-schedule-header,.admin-schedule-row{align-items:center;gap:12px;display:grid}.admin-schedule-header{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:12px}.admin-schedule-row{border-radius:var(--radius-md);border:1px solid var(--glass-border-soft);color:var(--text);background:#ffffff80;padding:12px;font-size:14px}.admin-schedule-header--faculties,.admin-schedule-row--faculties{grid-template-columns:70px 1fr 220px}.admin-schedule-header--groups,.admin-schedule-row--groups{grid-template-columns:1.4fr 1.2fr .7fr 1fr .8fr .7fr 220px}.admin-schedule-header--lessons,.admin-schedule-row--lessons{grid-template-columns:.9fr 1fr 1.4fr .9fr .9fr 1fr .9fr 220px}.admin-schedule-header--sessions,.admin-schedule-row--sessions{grid-template-columns:1.3fr 1.4fr .9fr .9fr 220px}.admin-plan-title{color:var(--text-strong);margin:0 0 10px;font-size:15px;font-weight:600}.plan-cards{flex-direction:column;gap:10px;display:flex}.plan-card{border-radius:var(--radius-lg);background:var(--glass-bg-strong);border:1px solid var(--glass-border-soft);box-shadow:var(--glass-shadow-sm);align-items:center;gap:16px;padding:14px 16px;transition:transform .15s,box-shadow .2s,border-color .2s;display:flex}.plan-card:hover{box-shadow:var(--glass-shadow);border-color:var(--accent);transform:translateY(-1px)}.plan-card__semester{border-radius:var(--radius-md);background:var(--accent-soft);width:60px;height:60px;color:var(--accent-strong);flex-direction:column;flex:none;justify-content:center;align-items:center;line-height:1;display:flex}.plan-card__semester-num{font-size:24px;font-weight:700}.plan-card__semester-label{text-transform:uppercase;letter-spacing:.06em;opacity:.85;margin-top:4px;font-size:10px;font-weight:600}.plan-card__body{flex:auto;min-width:0}.plan-card__subject{color:var(--text-strong);margin:0;font-size:16px;font-weight:600}.plan-card__type{border-radius:var(--radius-pill);color:#fff;margin:6px 0 0;padding:2px 10px;font-size:12px;font-weight:600;line-height:1.5;display:inline-block}.plan-card__teacher{color:var(--text-muted);margin:5px 0 0;font-size:13px}.plan-card__teacher-label{color:var(--text-subtle)}.plan-card__teacher--empty{color:var(--text-subtle);font-style:italic}.plan-card__actions{flex:none;gap:8px;display:flex}.plan-card__actions button{padding:8px 14px;font-size:13px}@media (max-width:640px){.plan-card{flex-wrap:wrap}.plan-card__body{flex:calc(100% - 76px)}.plan-card__actions{flex-basis:100%;justify-content:flex-end}}.admin-field-checkbox{flex-direction:row;align-items:center;margin-top:22px}@media (max-width:1200px){.admin-schedule-header{display:none}.admin-schedule-row--faculties,.admin-schedule-row--groups,.admin-schedule-row--lessons,.admin-schedule-row--sessions{grid-template-columns:1fr;gap:6px}}.admin-type-name{align-items:center;gap:8px;display:inline-flex}.admin-type-swatch{border-radius:4px;flex:none;width:14px;height:14px;box-shadow:inset 0 0 0 1px #0000001a}.admin-color-field{align-items:center;gap:10px;display:flex}.admin-color-field input[type=color]{border-radius:var(--radius-sm,8px);cursor:pointer;flex:none;width:44px;height:38px;padding:2px}.admin-color-field input[type=text]{flex:auto}.admin-page{flex-direction:column;gap:16px;max-width:1100px;margin:0 auto;display:flex}.admin-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-page-header h1{margin:0}.admin-page-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-primary-button,.admin-secondary-button{border-radius:var(--radius-md);cursor:pointer;padding:10px 16px;font-weight:600;transition:transform .15s,box-shadow .15s,background .2s}.admin-primary-button{background:var(--gradient-accent);color:var(--accent-contrast);box-shadow:var(--accent-glow);border:none}.admin-primary-button:hover:not(:disabled){transform:translateY(-1px)}.admin-secondary-button{border:1px solid var(--glass-border);background:var(--glass-bg-strong);color:var(--text-strong);box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%)}.admin-secondary-button:hover:not(:disabled){box-shadow:var(--glass-shadow);transform:translateY(-1px)}.admin-primary-button:disabled,.admin-secondary-button:disabled{opacity:.6;cursor:not-allowed}.admin-accounts-modal .admin-accounts{margin-top:0}.admin-dashboard{flex-direction:column;gap:20px;display:flex}.admin-dashboard__head h1{margin:0}.admin-dashboard__head p{color:var(--text-muted);margin:6px 0 0}.admin-dashboard__grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.admin-card{text-align:left;border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:var(--glass-bg);box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);cursor:pointer;flex-direction:column;align-items:flex-start;gap:10px;padding:20px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.admin-card:hover{box-shadow:var(--glass-shadow);border-color:#2563eb66;transform:translateY(-3px)}.admin-card__icon{border-radius:var(--radius-md);background:var(--accent-soft);width:44px;height:44px;color:var(--accent);justify-content:center;align-items:center;display:inline-flex}.admin-card__title{color:var(--text-strong);font-size:17px;font-weight:700}.admin-card__desc{color:var(--text-muted);font-size:13px;line-height:1.5}.admin-card__action{color:var(--accent);align-items:center;gap:4px;margin-top:4px;font-size:13px;font-weight:600;display:inline-flex}.planner{--planner-hour-px:56px;--planner-head-h:30px;--planner-title-h:26px;--planner-col-w:118px;flex-direction:column;gap:14px;display:flex}.planner-toolbar{border-radius:var(--radius-lg);flex-wrap:wrap;align-items:flex-end;gap:14px;padding:14px 16px;display:flex}.planner-toolbar__generate{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-left:auto;display:flex}.planner-field{color:var(--text-muted);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.planner-field__hint{color:var(--text-subtle);text-transform:lowercase;font-weight:500}.planner-field select,.planner-field input{color:var(--text);border-radius:var(--radius-sm);border:1px solid var(--glass-border-soft);background:var(--glass-bg-strong);padding:8px 10px;font-family:inherit;font-size:14px;font-weight:500}.planner-generate-btn{white-space:nowrap}.planner-conflict-banner{border-radius:var(--radius-md);background:var(--warning-soft);color:var(--warning-strong);border:1px solid #ea580c52;margin:0;padding:10px 14px;font-size:13px;font-weight:500}.planner-body{align-items:flex-start;gap:16px;display:flex}.planner-rail{border-radius:var(--radius-lg);background:var(--glass-bg-faint);border:1px solid var(--glass-border);width:240px;box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(150%);backdrop-filter:blur(var(--glass-blur))saturate(150%);flex-direction:column;flex:0 0 240px;gap:10px;padding:14px;transition:border-color .12s,background .12s,box-shadow .12s;display:flex;position:sticky;top:12px}.planner-rail[data-drop-active=true]{border-color:var(--danger,#dc2626);background:var(--danger-soft,#dc26261a);box-shadow:0 0 0 2px var(--danger,#dc2626)inset;border-style:dashed}.planner-rail__title{margin:0;font-size:15px}.planner-rail__hint,.planner-rail__empty{color:var(--text-muted);margin:0;font-size:12px}.planner-rail__list{flex-direction:column;gap:8px;display:flex}.planner-chip{border-radius:var(--radius-md);background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-left:4px solid var(--chip-accent,var(--accent));box-shadow:var(--glass-shadow-sm);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;gap:2px;padding:10px 12px;transition:transform .12s,box-shadow .12s;display:flex}.planner-chip:hover{box-shadow:var(--glass-shadow);transform:translateY(-1px)}.planner-chip:active{cursor:grabbing}.planner-chip__subject{color:var(--text-strong);font-size:14px;font-weight:600}.planner-chip__type{color:var(--chip-accent,var(--accent));background:color-mix(in srgb,var(--chip-accent,var(--accent))14%,transparent);border-radius:999px;align-self:flex-start;padding:1px 8px;font-size:11px;font-weight:600;line-height:1.4}.planner-chip__teacher{color:var(--text-muted);font-size:12px}.planner-calendar{flex:auto;min-width:0;padding-bottom:6px;overflow-x:auto}.planner-calendar__toggle{gap:8px;margin-bottom:10px;display:none}.planner-calendar__toggle-btn{border-radius:var(--radius-pill);border:1px solid var(--glass-border-soft);background:var(--glass-bg-faint);color:var(--text-muted);flex:1;padding:8px 10px;font-size:13px;font-weight:600}.planner-calendar__toggle-btn[data-active=true]{background:var(--gradient-accent);color:var(--accent-contrast);border-color:#0000}.planner-board{align-items:flex-start;gap:6px;width:max-content;display:flex}.planner-weeks{align-items:flex-start;gap:18px;display:flex}.planner-week{flex-direction:column;display:flex}.planner-week__title{height:var(--planner-title-h);color:var(--text-strong);justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.planner-axis{z-index:6;background:var(--glass-bg-strong);width:46px;-webkit-backdrop-filter:blur(var(--glass-blur))saturate(150%);backdrop-filter:blur(var(--glass-blur))saturate(150%);flex:0 0 46px;position:sticky;left:0}.planner-axis__spacer{height:calc(var(--planner-title-h) + var(--planner-head-h))}.planner-axis__marks{position:relative}.planner-axis__mark{font-variant-numeric:tabular-nums;color:var(--text-subtle);font-size:11px;position:absolute;right:6px;transform:translateY(-50%)}.planner-days{gap:4px;display:flex}.planner-daycol-wrap{flex:0 0 var(--planner-col-w);width:var(--planner-col-w);flex-direction:column;display:flex}.planner-daycol__head{height:var(--planner-head-h);color:var(--text-muted);justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.planner-daycol{border-radius:var(--radius-sm);background-color:var(--glass-bg);border:1px solid var(--glass-border-soft);background-image:repeating-linear-gradient(#94a3b81a 0 1px,#0000 1px 28px),repeating-linear-gradient(#94a3b83d 0 1px,#0000 1px 56px);position:relative}.planner-slot{border-radius:var(--radius-sm);border:2px dashed var(--slot-accent,var(--accent));background:color-mix(in srgb,var(--slot-accent,var(--accent))16%,transparent);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;z-index:2;padding:4px 6px;position:absolute;left:3px;right:3px;overflow:hidden}.planner-slot:active{cursor:grabbing}.planner-slot[data-dragging=true]{opacity:.4;background:color-mix(in srgb,var(--slot-accent,var(--accent))8%,transparent);box-shadow:none;pointer-events:none;border-style:dashed;transition:opacity .12s,background .12s}.planner-slot[data-conflict=true]{box-shadow:0 0 0 2px #ea580c8c}.planner-slot__body{pointer-events:none;flex-direction:column;gap:1px;line-height:1.2;display:flex}.planner-slot__time{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.planner-slot__subject{color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.planner-slot__meta,.planner-slot__teacher{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.planner-slot__warn{color:var(--warning-strong);pointer-events:none;font-size:10px;font-weight:600;position:absolute;bottom:3px;right:4px}.planner-drag-ghost[data-kind=create]{z-index:var(--z-modal,1000);pointer-events:none;border-radius:var(--radius-md);background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-left:4px solid var(--slot-accent,var(--accent));max-width:220px;box-shadow:var(--glass-shadow);opacity:.96;flex-direction:column;gap:2px;padding:8px 12px;animation:.12s planner-ghost-in;display:flex;position:fixed;transform:translate(-50%,-120%)}.planner-drag-ghost[data-kind=move]{z-index:var(--z-modal,1000);pointer-events:none;border-radius:var(--radius-sm);border:2px solid var(--slot-accent,var(--accent));background:color-mix(in srgb,var(--slot-accent,var(--accent))22%,var(--glass-bg-strong));box-shadow:var(--glass-shadow),0 14px 30px #0f172a4d;transform-origin:50%;cursor:grabbing;padding:4px 6px;animation:.14s planner-pickup;position:fixed;overflow:hidden;transform:scale(1.03)rotate(-1.5deg)}@keyframes planner-pickup{0%{transform:scale(.98)rotate(0);box-shadow:0 2px 6px #0f172a24}}@keyframes planner-ghost-in{0%{opacity:0;transform:translate(-50%,-110%)scale(.95)}}.planner-drag-ghost__subject{color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.planner-drag-ghost__teacher{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.planner-preview{border-radius:var(--radius-sm);border:2px dashed var(--slot-accent,var(--accent));background:color-mix(in srgb,var(--slot-accent,var(--accent))18%,transparent);pointer-events:none;z-index:5;flex-direction:column;gap:1px;padding:4px 6px;transition:top .1s,height .1s;animation:.12s planner-preview-in;display:flex;position:absolute;left:3px;right:3px;overflow:hidden}@keyframes planner-preview-in{0%{opacity:0}}.planner-preview[data-valid=false]{border-color:var(--danger);background:var(--danger-soft)}.planner-preview__time{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.planner-preview__label{color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.planner-editor__backdrop{z-index:var(--z-modal);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.planner-editor{border-radius:var(--radius-lg);flex-direction:column;gap:12px;width:100%;max-width:360px;padding:18px;display:flex}.planner-editor__head{justify-content:space-between;align-items:center;gap:10px;display:flex}.planner-editor__title{margin:0;font-size:16px}.planner-editor__close{border-radius:var(--radius-sm);color:var(--text-muted);background:0 0;border:none;padding:6px;display:flex}.planner-editor__times{gap:12px;display:flex}.planner-editor__times .planner-field{flex:1}.planner-editor .planner-field input,.planner-editor .planner-field select{width:100%}.planner-editor__error{color:var(--danger);margin:0;font-size:12px}.planner-editor__actions{justify-content:space-between;gap:10px;margin-top:4px;display:flex}@media (prefers-reduced-motion:reduce){.planner-drag-ghost[data-kind=move]{animation:none;transform:none}.planner-drag-ghost[data-kind=create],.planner-preview{animation:none}.planner-preview{transition:none}}@media (max-width:1024px){.planner{--planner-col-w:112px}}@media (max-width:900px){.planner-body{flex-direction:column}.planner-rail{flex:none;width:100%;position:static}.planner-rail__list{flex-direction:row;padding-bottom:4px;overflow-x:auto}.planner-chip{flex:none;min-width:170px}.planner-toolbar__generate{width:100%;margin-left:0}}@media (max-width:768px){.planner-calendar__toggle{display:flex}.planner-week[data-active=false]{display:none}.planner{--planner-col-w:104px}}.planner-page{flex-direction:column;gap:18px;padding-bottom:32px;display:flex}.planner-page__head h1{margin:0 0 4px}.planner-page__head p{color:var(--text-muted);max-width:70ch;margin:0;font-size:14px}.admin-map-page{flex-direction:column;width:100%;height:100vh;padding:0;display:flex;position:fixed;inset:0;overflow:hidden}@media (min-width:769px){.admin-map-page{width:calc(100% - 280px);left:280px}}.map-controls{flex-flow:row;align-items:center;gap:8px;width:min(100% - 32px,520px);display:flex}.map-field{flex-direction:column;gap:6px;font-size:14px;display:flex}.map-input{border-radius:var(--radius-pill);border:1px solid var(--glass-border);min-width:0;color:var(--text-strong);background:var(--glass-bg-strong);box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);flex:1 1 0;padding:10px 14px;font-size:14px;transition:border-color .2s,box-shadow .2s}.map-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.map-frame{flex:1;width:100%;height:100%;position:relative;overflow:hidden}.map-controls-overlay{top:calc(env(safe-area-inset-top) + 12px);z-index:3;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:auto;background:0 0;border-radius:0;margin:-8px;padding:8px;position:absolute;left:16px}.map-svg{width:100%;height:100%;box-shadow:none;z-index:1;background:#fff;border:none;border-radius:0;display:block;position:absolute;inset:0;overflow:hidden}.map-routes{pointer-events:none}.map-edge{stroke:var(--text-strong);stroke-width:.7px;opacity:.35}.map-edge-door{stroke-dasharray:2 2;opacity:.6}.map-route{fill:none;stroke:var(--accent);stroke-width:1.1px;stroke-linecap:round;stroke-linejoin:round}.map-route-arrow{fill:var(--accent)}.map-route-node{fill:var(--accent);stroke:#fff;stroke-width:.4px}.teachers-page{flex-direction:column;gap:16px;max-width:960px;margin:0 auto;display:flex}.teachers-page__header h1{margin:0;font-size:24px;font-weight:700}.teachers-page__header p{color:var(--text-muted);margin:6px 0 0}.teachers-page__search{color:var(--text-strong);flex-direction:column;gap:8px;font-weight:600;display:flex}.teachers-page__search input{border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);padding:12px 14px;font-size:14px;transition:border-color .2s,box-shadow .2s}.teachers-page__search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.teachers-page__grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.teachers-page__card{border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:var(--glass-bg);text-align:left;cursor:pointer;box-shadow:var(--glass-shadow-sm);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);flex-direction:column;gap:6px;padding:16px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.teachers-page__card:hover{box-shadow:var(--glass-shadow);border-color:#2563eb66;transform:translateY(-2px)}.teachers-page__card-name{color:var(--text-strong);font-weight:600}.teachers-page__error{color:var(--danger);margin:0}.teachers-page__empty{color:var(--text-muted);margin:0;font-style:italic}.teachers-page__popup-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a73;padding:16px}.teachers-page__popup{width:min(520px,100%)}.teachers-page__modal{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow-lg);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(170%);backdrop-filter:blur(var(--glass-blur))saturate(170%);flex-direction:column;gap:16px;padding:20px;display:flex}.teachers-page__modal-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.teachers-page__modal-header h2{margin:0;font-size:20px}.teachers-page__modal-close{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .2s,color .2s;display:inline-flex}.teachers-page__modal-close:hover{background:var(--glass-bg-faint);color:var(--text-strong)}.teachers-page__modal-body{color:var(--text);flex-direction:column;gap:8px;display:flex}.teachers-page__modal-body p{margin:0}.teachers-page__modal-action{border-radius:var(--radius-md);background:var(--gradient-accent);color:var(--accent-contrast);cursor:pointer;box-shadow:var(--accent-glow);border:none;padding:12px 14px;font-weight:600;transition:transform .15s,box-shadow .15s}.teachers-page__modal-action:hover{box-shadow:var(--accent-glow-strong);transform:translateY(-1px)}:root{color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-soft:#2563eb1f;--accent-contrast:#fff;--gradient-accent:linear-gradient(135deg,#4f7cff 0%,#2563eb 55%,#1d4ed8 100%);--accent-glow:0 8px 20px #2563eb47;--accent-glow-strong:0 12px 26px #2563eb52;--danger:#dc2626;--danger-soft:#dc26261f;--success:#047857;--warning:#ea580c;--warning-soft:#ea580c1f;--warning-strong:#b45309;--text-strong:#0f172a;--text:#1f2937;--text-muted:#64748b;--text-subtle:#94a3b8;--glass-bg:#ffffff8c;--glass-bg-strong:#ffffffb8;--glass-bg-faint:#fff6;--glass-border:#ffffffa6;--glass-border-soft:#94a3b847;--glass-blur:20px;--glass-blur-strong:30px;--glass-shadow:0 8px 32px #0f172a1f;--glass-shadow-sm:0 4px 16px #0f172a14;--glass-shadow-lg:0 24px 60px #0f172a38;--glass-dark-bg:#0f172ab8;--glass-dark-border:#94a3b833;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:24px;--radius-pill:999px;--z-bottom-nav:10;--z-sidebar-overlay:20;--z-sidebar:30;--z-overlay:1000;--z-modal:1100;--z-loader:9999;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{min-height:100vh;min-height:100dvh;color:var(--text);background:#eef2ff;overflow-x:hidden}body:before{content:"";z-index:-1;background-color:#0000;background-image:radial-gradient(1240px 840px at 2% -20%,#4f7cff57,#0000 58%),radial-gradient(1060px 760px at 118% 2%,#38bdf84d,#0000 56%),radial-gradient(840px 700px at 84% 92%,#2563eb3d,#0000 60%),radial-gradient(640px 540px at 12% 112%,#6366f138,#0000 62%),radial-gradient(1000px 680px at 50% 36%,#81a0ff1a,#0000 72%),linear-gradient(165deg,#e8f0ff 0%,#eef3ff 45%,#e4edff 100%);background-position:0 0,0 0,0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box,border-box;position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;background-color:#0000;background-image:radial-gradient(560px 560px at 70% 30%,#38bdf824,#0000 58%),radial-gradient(720px 720px at 28% 76%,#4f7cff24,#0000 60%),radial-gradient(460px 460px at 94% 72%,#2563eb1f,#0000 62%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;position:fixed;inset:0}@supports (-webkit-touch-callout:none){input,textarea,select{font-size:16px!important}}a{color:var(--accent);font-weight:500;text-decoration:none}a:hover{color:var(--accent-strong)}h1,h2,h3,h4{color:var(--text-strong);line-height:1.2}h1{font-size:clamp(1.6rem,4vw,2rem)}button{cursor:pointer;font-family:inherit;font-size:1rem}:focus-visible{outline-offset:2px;outline:2px solid #2563eb8c}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow),inset 0 1px 0 #ffffff80;-webkit-backdrop-filter:blur(var(--glass-blur))saturate(180%);backdrop-filter:blur(var(--glass-blur))saturate(180%)}.LoaderOverlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-loader);background:#f8faff73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.LoaderBox{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-xl);width:104px;height:104px;box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(var(--glass-blur))saturate(160%);backdrop-filter:blur(var(--glass-blur))saturate(160%);justify-content:center;align-items:center;display:flex}.LoaderSpinner{border:4px solid #2563eb2e;border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.LoaderSpinner{animation-duration:1.6s}}.liquidNav{left:50%;bottom:calc(env(safe-area-inset-bottom) + 14px);z-index:var(--z-bottom-nav);pointer-events:none;position:fixed;transform:translate(-50%)}.liquidNavInner{pointer-events:auto;border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(var(--glass-blur-strong))saturate(180%)brightness(1.05);backdrop-filter:blur(var(--glass-blur-strong))saturate(180%)brightness(1.05);background:linear-gradient(#ffffff94,#ffffff4d);border:1px solid #fff9;align-items:center;gap:4px;padding:8px;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 50px #0f172a42,0 2px 10px #0f172a1f,inset 0 1px #ffffffd9,inset 0 -1px 3px #0f172a0f}.liquidNavInner:before{content:"";border-radius:inherit;opacity:.8;pointer-events:none;background:linear-gradient(#ffffff8c,#0000);height:56%;position:absolute;inset:0 0 auto}.liquidNavItem{border-radius:var(--radius-pill);width:56px;height:48px;color:var(--text-subtle);-webkit-tap-highlight-color:transparent;flex:none;justify-content:center;align-items:center;text-decoration:none;transition:color .25s;display:inline-flex;position:relative}.liquidNavItem:hover{color:var(--text-muted)}.liquidNavItem.active{color:var(--accent-strong)}.liquidNavItem:focus-visible{outline-offset:2px;outline:2px solid #2563eb80}.liquidNavPill{z-index:0;border-radius:var(--radius-pill);background:linear-gradient(#4f7cff4d,#2563eb33);border:1px solid #81a0ff99;position:absolute;inset:3px;box-shadow:inset 0 1px #ffffffbf,0 6px 16px #2563eb4d}.liquidNavIcon{z-index:1;flex:none;display:block;position:relative}@media (prefers-reduced-motion:reduce){.liquidNavItem{transition:none}}@media (max-width:768px){.liquidNav{left:12px;right:12px;transform:none}.liquidNavInner{width:100%}.liquidNavItem{flex:1 1 0;width:auto}}.submit-btn,.welcome-primary-btn,.welcome-secondary-btn,.admin-primary-button,.admin-secondary-button,.admin-danger-button,.admin-card__action,.teachers-page__modal-action,.schedule-filters-panel__toggle,.schedule-filters__submit,.schedule-filters-panel__reset,.lesson-note-modal__button,.planner-generate-btn{transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .2s,background .2s,filter .2s}.submit-btn:active,.welcome-primary-btn:active,.welcome-secondary-btn:active,.admin-primary-button:active,.admin-secondary-button:active,.admin-danger-button:active,.admin-card__action:active,.teachers-page__modal-action:active,.schedule-filters-panel__toggle:active,.schedule-filters__submit:active,.schedule-filters-panel__reset:active,.lesson-note-modal__button:active,.planner-generate-btn:active{filter:saturate(1.06);transform:scale(.96)}
