.welcome-overlay[data-v-7e6cd6c0]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#0000008c;animation:welcomeFadeIn-7e6cd6c0 .4s cubic-bezier(.2,.8,.2,1);overflow:hidden}.welcome-overlay[data-v-7e6cd6c0]:before{content:"";position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:radial-gradient(40% 40% at 30% 30%,rgba(0,136,204,.35),transparent 60%),radial-gradient(40% 40% at 70% 70%,rgba(98,0,234,.35),transparent 60%);animation:welcomeBgMove-7e6cd6c0 12s ease-in-out infinite alternate;z-index:0}:root[data-theme=light] .welcome-overlay[data-v-7e6cd6c0]:before{background:radial-gradient(40% 40% at 30% 30%,rgba(42,171,238,.25),transparent 60%),radial-gradient(40% 40% at 70% 70%,rgba(124,108,255,.2),transparent 60%)}@keyframes welcomeFadeIn-7e6cd6c0{0%{opacity:0}to{opacity:1}}@keyframes welcomeBgMove-7e6cd6c0{0%{transform:translateY(-40px)}to{transform:translateY(40px)}}.welcome-backdrop[data-v-7e6cd6c0]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.welcome-container[data-v-7e6cd6c0]{position:relative;z-index:1;width:100%;max-width:420px;background:linear-gradient(180deg,#ffffff1f,#ffffff0a);backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%);border:1px solid rgba(255,255,255,.18);border-radius:24px;box-shadow:0 24px 48px #00000059,0 0 0 1px #ffffff0f inset;padding:var(--space-8);animation:welcomeScaleIn-7e6cd6c0 .5s cubic-bezier(.2,.8,.2,1);transform-style:preserve-3d;transition:transform .15s ease-out;will-change:transform}:root[data-theme=light] .welcome-container[data-v-7e6cd6c0]{background:linear-gradient(180deg,#ffffffd9,#ffffffa6);border:1px solid rgba(255,255,255,.6);box-shadow:0 24px 48px #0000001f,0 0 0 1px #ffffff80 inset}@keyframes welcomeScaleIn-7e6cd6c0{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.welcome-cards[data-v-7e6cd6c0]{min-height:200px;margin-bottom:var(--space-6);touch-action:pan-y;cursor:grab}.welcome-cards[data-v-7e6cd6c0]:active{cursor:grabbing}.welcome-card[data-v-7e6cd6c0]{text-align:center}.welcome-card-icon[data-v-7e6cd6c0]{font-size:3.2rem;line-height:1;margin-bottom:var(--space-4);animation:welcomeEmojiPop-7e6cd6c0 .45s cubic-bezier(.2,.8,.2,1)}@keyframes welcomeEmojiPop-7e6cd6c0{0%{transform:scale(.6) rotate(-8deg);opacity:0}60%{transform:scale(1.15) rotate(4deg)}to{transform:scale(1) rotate(0);opacity:1}}.welcome-card-title[data-v-7e6cd6c0]{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-3);line-height:var(--leading-tight)}.welcome-card-desc[data-v-7e6cd6c0]{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:0 auto;max-width:320px;opacity:.9}.welcome-progress[data-v-7e6cd6c0]{height:4px;background:#ffffff26;border-radius:999px;overflow:hidden;margin-bottom:var(--space-6)}:root[data-theme=light] .welcome-progress[data-v-7e6cd6c0]{background:#00000014}.welcome-progress-bar[data-v-7e6cd6c0]{height:100%;background:linear-gradient(90deg,#2aabee,#7c6cff);border-radius:999px;transition:width .35s cubic-bezier(.4,0,.2,1)}.welcome-actions[data-v-7e6cd6c0]{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;align-items:center}.welcome-btn[data-v-7e6cd6c0]{padding:var(--space-3) var(--space-5);border-radius:14px;font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease;border:none}.welcome-btn[data-v-7e6cd6c0]:active{transform:scale(.98)}.welcome-btn-primary[data-v-7e6cd6c0]{background:linear-gradient(135deg,#2aabee,#229ed9);color:#fff;box-shadow:0 8px 24px #2aabee59,inset 0 1px #ffffff59}.welcome-btn-primary[data-v-7e6cd6c0]:hover{transform:translateY(-1px);box-shadow:0 12px 28px #2aabee66,inset 0 1px #fff6}.welcome-btn-ghost[data-v-7e6cd6c0]{background:transparent;color:var(--color-text-tertiary);transition:color .2s ease}.welcome-btn-ghost[data-v-7e6cd6c0]:hover{color:var(--color-text-primary)}.card-enter-active[data-v-7e6cd6c0],.card-leave-active[data-v-7e6cd6c0]{transition:opacity .3s cubic-bezier(.2,.8,.2,1),transform .3s cubic-bezier(.2,.8,.2,1)}.card-enter-from[data-v-7e6cd6c0]{opacity:0;transform:translate(20px)}.card-leave-to[data-v-7e6cd6c0]{opacity:0;transform:translate(-20px)}.badge[data-v-ff4b0579]{display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;font-weight:var(--weight-medium);white-space:nowrap}.badge-small[data-v-ff4b0579]{padding:2px 8px;font-size:var(--text-xs);line-height:1}.badge-medium[data-v-ff4b0579]{padding:4px 12px;font-size:var(--text-sm);line-height:1.2}.badge-default[data-v-ff4b0579]{background:var(--color-surface-300);color:var(--color-text-primary)}.badge-primary[data-v-ff4b0579]{background:var(--color-primary);color:var(--color-text-primary)}.badge-success[data-v-ff4b0579]{background:var(--color-success);color:var(--color-text-primary)}.badge-warning[data-v-ff4b0579]{background:var(--color-warning);color:var(--color-text-inverse)}.badge-error[data-v-ff4b0579]{background:var(--color-error);color:var(--color-text-primary)}.badge-info[data-v-ff4b0579]{background:var(--color-info);color:var(--color-text-primary)}.badge-dot[data-v-ff4b0579]{width:8px;height:8px;padding:0;border-radius:50%}.badge-dot.badge-medium[data-v-ff4b0579]{width:10px;height:10px}.bottom-nav-container[data-v-0e75f112]{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-fixed);pointer-events:none;padding-top:8px;background:linear-gradient(to bottom,transparent 0%,var(--color-bg-primary) 87%)}.bottom-nav[data-v-0e75f112]{pointer-events:auto;display:flex;align-items:stretch;gap:var(--space-1);margin:0 12px;margin-bottom:calc(8px + env(safe-area-inset-bottom,0px));padding:var(--space-2);border-radius:20px;background:var(--tg-glass-bg, var(--glass-bg-medium));backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));-webkit-backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));border:1px solid var(--tg-glass-border, var(--glass-border));box-shadow:var(--shadow-glass)}.nav-item[data-v-0e75f112]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);min-height:48px;min-width:0;border-radius:14px;text-decoration:none;color:var(--color-text-tertiary);transition:color .3s ease,background .3s ease,transform .3s ease;position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}@media (hover: hover){.nav-item[data-v-0e75f112]:hover{color:var(--color-text-secondary);background:var(--hover-overlay-strong)}}.nav-item-active[data-v-0e75f112]{color:var(--color-primary)}.nav-item-active .nav-icon[data-v-0e75f112]{transform:scale(1.1)}.nav-icon[data-v-0e75f112]{font-size:24px;transition:transform .3s ease}.nav-label[data-v-0e75f112]{font-size:var(--text-xs);font-weight:var(--weight-medium)}.nav-badge[data-v-0e75f112]{position:absolute;top:4px;right:8px}@media (max-width: 640px){.nav-label[data-v-0e75f112]{font-size:10px}.nav-icon[data-v-0e75f112]{font-size:20px}}#app[data-v-67d117a9]{position:relative;z-index:1;min-height:100vh;width:100%;background:transparent}#app.app-mini-mobile[data-v-67d117a9]{padding-top:0}@media (max-width: 640px){#app[data-v-67d117a9]{padding-top:0}}.fade-fast-enter-active[data-v-67d117a9],.fade-fast-leave-active[data-v-67d117a9]{transition:opacity .08s ease-out}.fade-fast-leave-active[data-v-67d117a9]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%}.fade-fast-enter-from[data-v-67d117a9],.fade-fast-leave-to[data-v-67d117a9]{opacity:0}.header[data-v-a8b25540]{position:sticky;top:0;z-index:var(--z-sticky);border-radius:0;border-left:none;border-right:none;border-top:none;padding:var(--space-4) var(--space-6);margin-bottom:var(--space-4)}.header-content[data-v-a8b25540]{display:flex;align-items:center;justify-content:space-between;max-width:1280px;margin:0 auto}.header-title[data-v-a8b25540]{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text-primary);margin:0}@media (max-width: 640px){.header[data-v-a8b25540]{display:none}}.schedule-filter[data-v-102bfa87]{margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.filter-row[data-v-102bfa87]{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.filter-row-dates[data-v-102bfa87]{display:flex;gap:var(--space-2)}.filter-mode-dropdown[data-v-102bfa87]{display:flex;flex-direction:column;gap:var(--space-3)}.filter-row-mode[data-v-102bfa87]{display:flex;gap:var(--space-3);flex-wrap:wrap}.filter-row-days[data-v-102bfa87]{width:100%}.filter-row-days .filter-days-scroll[data-v-102bfa87]{width:100%;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--space-2)}.date-quick-btn[data-v-102bfa87]{flex:1;min-width:0;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);background:var(--glass-bg-medium);border:1px solid var(--glass-border);border-radius:10px;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.date-quick-btn[data-v-102bfa87]:hover{color:var(--color-text-primary);background:var(--glass-bg-dark);border-color:var(--color-border-hover)}.date-quick-btn-today[data-v-102bfa87]{color:var(--color-primary)}.date-quick-btn-today[data-v-102bfa87]:hover{border-color:var(--color-primary)}.date-quick-btn-active[data-v-102bfa87]{color:var(--color-text-primary);background:var(--color-primary);border-color:var(--color-primary)}.date-quick-btn-active[data-v-102bfa87]:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.filter-week-segment[data-v-102bfa87],.filter-view-mode-segment[data-v-102bfa87]{display:inline-flex;background:var(--glass-bg-medium);border:1px solid var(--glass-border);border-radius:10px;padding:2px;flex-shrink:0}.segment-btn[data-v-102bfa87]{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:background .2s ease,color .2s ease;white-space:nowrap;min-width:0}.filter-week-segment .segment-btn[data-v-102bfa87]{min-width:5.5em}.segment-btn[data-v-102bfa87]:hover{color:var(--color-text-primary);background:var(--glass-bg-dark)}.segment-btn-active[data-v-102bfa87]{color:var(--color-text-primary);background:var(--color-primary)}.segment-btn-active[data-v-102bfa87]:hover{background:var(--color-primary-hover)}.filter-days-scroll[data-v-102bfa87]{display:flex;align-items:center;gap:var(--space-2);min-width:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;flex:1}.filter-days-scroll[data-v-102bfa87]::-webkit-scrollbar{display:none}.day-chip[data-v-102bfa87]{flex-shrink:0;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);background:var(--glass-bg-medium);border:1px solid var(--glass-border);border-radius:10px;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.day-chip[data-v-102bfa87]:hover{color:var(--color-text-primary);background:var(--glass-bg-dark);border-color:var(--color-border-hover)}.day-chip-active[data-v-102bfa87]{color:var(--color-text-primary);background:var(--color-primary);border-color:var(--color-primary)}.day-chip-active[data-v-102bfa87]:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}@media (max-width: 480px){.filter-row-dates[data-v-102bfa87],.filter-row-mode[data-v-102bfa87]{width:100%}.filter-week-segment[data-v-102bfa87]{flex:1;min-width:0;display:flex}.filter-week-segment .segment-btn[data-v-102bfa87]{flex:1;min-width:5.5em}.filter-view-mode-segment[data-v-102bfa87]{flex:1;min-width:0;display:flex}.filter-view-mode-segment .segment-btn[data-v-102bfa87]{flex:1;min-width:0}.filter-row-days .filter-days-scroll[data-v-102bfa87]{width:100%}}.lesson-item[data-v-2e51b1fa]{display:flex;gap:var(--space-3);padding:var(--space-3);background:var(--glass-bg-medium);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:12px;margin-bottom:var(--space-2);transition:all .2s ease}.lesson-item[data-v-2e51b1fa]:hover{background:var(--glass-bg-dark);border-color:var(--color-primary);transform:translateY(-1px);box-shadow:var(--shadow-md)}.lesson-replacement[data-v-2e51b1fa]{border-color:var(--color-warning);background:#f59e0b1a}.lesson-replacement[data-v-2e51b1fa]:hover{border-color:var(--color-warning);background:#f59e0b26}.lesson-replacement .lesson-number-badge[data-v-2e51b1fa]{background:var(--color-warning);color:#fff}.lesson-time-badge[data-v-2e51b1fa]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);min-width:64px;padding:var(--space-2);background:var(--glass-bg-dark);border-radius:10px;flex-shrink:0}.lesson-number-badge[data-v-2e51b1fa]{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-bold);color:#fff;background:var(--color-primary);border-radius:50%;line-height:1;box-shadow:0 1px 3px #0003}.lesson-time[data-v-2e51b1fa]{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-primary);line-height:1.2;text-align:center;letter-spacing:.02em}.lesson-content[data-v-2e51b1fa]{flex:1;display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.lesson-main[data-v-2e51b1fa]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap}.lesson-subject[data-v-2e51b1fa]{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text-primary);flex:1;min-width:150px;line-height:1.4}.lesson-meta[data-v-2e51b1fa]{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.lesson-type[data-v-2e51b1fa]{font-size:var(--text-xs);padding:2px var(--space-2);background:#3b82f633;color:var(--color-primary);border-radius:6px;font-weight:var(--weight-medium);white-space:nowrap}.lesson-replacement-badge[data-v-2e51b1fa]{font-size:var(--text-xs);padding:2px var(--space-2);background:#f59e0b33;color:var(--color-warning);border-radius:6px;font-weight:var(--weight-medium);white-space:nowrap}.lesson-info[data-v-2e51b1fa]{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.lesson-info-btn[data-v-2e51b1fa]{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;cursor:pointer;border:1px solid var(--color-border-default);border-radius:8px;padding:var(--space-1) var(--space-2);background:var(--glass-bg-light);transition:color .2s ease,background .2s ease,border-color .2s ease;font-family:inherit}.lesson-info-btn[data-v-2e51b1fa]:hover{color:var(--color-primary);background:#3b82f61f;border-color:var(--color-primary)}.lesson-info-btn[data-v-2e51b1fa]:active{background:#3b82f633}.lesson-icon[data-v-2e51b1fa]{font-size:14px;flex-shrink:0;opacity:.8}.lesson-info-text[data-v-2e51b1fa]{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-info-text-only[data-v-2e51b1fa]{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap}.lesson-modal-overlay[data-v-2e51b1fa]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.lesson-modal[data-v-2e51b1fa]{background:var(--glass-bg-medium);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:16px;padding:var(--space-6);max-width:320px;width:100%;box-shadow:var(--shadow-lg)}.lesson-modal-title[data-v-2e51b1fa]{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2);word-break:break-word}.lesson-modal-text[data-v-2e51b1fa]{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-5);line-height:1.5}.lesson-modal-actions[data-v-2e51b1fa]{display:flex;gap:var(--space-3);justify-content:flex-end}.lesson-modal-btn[data-v-2e51b1fa]{padding:var(--space-2) var(--space-4);border-radius:8px;font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;font-family:inherit;transition:background .2s ease,border-color .2s ease,color .2s ease}.lesson-modal-btn-cancel[data-v-2e51b1fa]{border:1px solid var(--color-border-default);background:transparent;color:var(--color-text-secondary)}.lesson-modal-btn-cancel[data-v-2e51b1fa]:hover{background:#ffffff0f;color:var(--color-text-primary)}.lesson-modal-btn-go[data-v-2e51b1fa]{border:none;background:var(--color-primary);color:#fff}.lesson-modal-btn-go[data-v-2e51b1fa]:hover{background:var(--color-primary-hover, #2563eb)}.modal-fade-enter-active[data-v-2e51b1fa],.modal-fade-leave-active[data-v-2e51b1fa]{transition:opacity .2s ease}.modal-fade-enter-from[data-v-2e51b1fa],.modal-fade-leave-to[data-v-2e51b1fa]{opacity:0}.modal-fade-enter-active .lesson-modal[data-v-2e51b1fa],.modal-fade-leave-active .lesson-modal[data-v-2e51b1fa]{transition:transform .2s ease}.modal-fade-enter-from .lesson-modal[data-v-2e51b1fa],.modal-fade-leave-to .lesson-modal[data-v-2e51b1fa]{transform:scale(.95)}@media (max-width: 640px){.lesson-item[data-v-2e51b1fa]{padding:var(--space-2);gap:var(--space-2)}.lesson-time-badge[data-v-2e51b1fa]{min-width:52px;padding:var(--space-1);gap:var(--space-1)}.lesson-number-badge[data-v-2e51b1fa]{min-width:24px;height:24px;font-size:var(--text-xs)}.lesson-subject[data-v-2e51b1fa]{font-size:var(--text-xs);min-width:100%}.lesson-info[data-v-2e51b1fa]{gap:var(--space-2)}.lesson-info-text[data-v-2e51b1fa]{max-width:120px}}.spinner[data-v-b75d512e]{display:inline-block;color:var(--color-primary)}.spinner-circle[data-v-b75d512e]{border:3px solid rgba(59,130,246,.2);border-top-color:currentColor;border-radius:50%;animation:spin-b75d512e .8s linear infinite}.spinner-small .spinner-circle[data-v-b75d512e]{width:16px;height:16px;border-width:2px}.spinner-medium .spinner-circle[data-v-b75d512e]{width:24px;height:24px;border-width:3px}.spinner-large .spinner-circle[data-v-b75d512e]{width:40px;height:40px;border-width:4px}@keyframes spin-b75d512e{to{transform:rotate(360deg)}}.home-schedule[data-v-d0aa8d27]{padding-bottom:var(--space-4)}.home-schedule-header[data-v-d0aa8d27]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.home-schedule-title[data-v-d0aa8d27]{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text-primary);margin:0}.home-schedule-toggle[data-v-d0aa8d27]{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-primary);background:var(--glass-bg-light);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.home-schedule-toggle[data-v-d0aa8d27]:hover{background:var(--day-pill-active-bg);border-color:var(--color-primary)}.schedule-body[data-v-d0aa8d27],.schedule-content[data-v-d0aa8d27]{min-height:200px}.schedule-fade-enter-active[data-v-d0aa8d27],.schedule-fade-leave-active[data-v-d0aa8d27]{transition:opacity .2s ease}.schedule-fade-enter-from[data-v-d0aa8d27],.schedule-fade-leave-to[data-v-d0aa8d27]{opacity:0}.loading-state[data-v-d0aa8d27]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);min-height:200px;padding:var(--space-8);color:var(--color-text-secondary)}.loading-state-text[data-v-d0aa8d27]{font-size:var(--text-lg)}.schedule-lessons[data-v-d0aa8d27]{display:flex;flex-direction:column;gap:var(--space-2)}.empty-state[data-v-d0aa8d27]{min-height:160px;padding:var(--space-8);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-icon[data-v-d0aa8d27]{font-size:48px;margin-bottom:var(--space-4)}.empty-text[data-v-d0aa8d27]{font-size:var(--text-lg);color:var(--color-text-tertiary)}.schedule-week[data-v-d0aa8d27]{display:flex;flex-direction:column;gap:var(--space-6)}.schedule-day-title[data-v-d0aa8d27]{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-primary);margin:0 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--glass-border)}.schedule-day-empty[data-v-d0aa8d27]{font-size:var(--text-sm);color:var(--color-text-tertiary);padding:var(--space-3);background:var(--glass-bg-medium);border-radius:12px}.schedule-placeholder[data-v-d0aa8d27]{padding:var(--space-8);text-align:center}.schedule-placeholder .empty-icon[data-v-d0aa8d27],.schedule-placeholder .empty-text[data-v-d0aa8d27]{margin-bottom:var(--space-4)}.settings-link[data-v-d0aa8d27]{display:inline-block;padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);background:var(--color-primary);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-medium);text-decoration:none;transition:opacity .2s ease}.settings-link[data-v-d0aa8d27]:hover{opacity:.9;color:#fff}.home-view[data-v-d1be7581]{min-height:100vh;padding-bottom:var(--content-padding-bottom)}.home-content[data-v-d1be7581]{max-width:1280px;margin:0 auto;padding:0 var(--space-4);padding-bottom:var(--space-8)}.tabs[data-v-d1be7581]{display:flex;margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border-default)}.tab[data-v-d1be7581]{flex:1;padding:var(--space-3) var(--space-4);border:none;border-radius:0;background:transparent;color:var(--color-text-tertiary);font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;transition:color .2s ease,border-color .2s ease;position:relative;margin-bottom:-1px}.tab[data-v-d1be7581]:hover{color:var(--color-text-primary)}.tab-active[data-v-d1be7581]{color:var(--color-primary);font-weight:var(--weight-semibold)}.tab-active[data-v-d1be7581]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--color-primary)}.tab-panel[data-v-d1be7581]{padding-bottom:var(--space-4)}@media (min-width: 768px){.home-content[data-v-d1be7581]{padding:0 var(--space-6)}}.input-wrapper[data-v-f1fc3619]{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.input-label[data-v-f1fc3619]{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary)}.input-container[data-v-f1fc3619]{position:relative;display:flex;align-items:center;width:100%}.input-prefix[data-v-f1fc3619],.input-suffix[data-v-f1fc3619]{position:absolute;display:flex;align-items:center;color:var(--color-text-tertiary);z-index:1}.input-prefix[data-v-f1fc3619]{left:var(--space-4)}.input-suffix[data-v-f1fc3619]{right:var(--space-4)}.glass-input[data-v-f1fc3619]{width:100%;padding:var(--space-3) var(--space-4)}.glass-input[data-v-f1fc3619]:has(+.input-prefix){padding-left:calc(var(--space-4) * 2 + 16px)}.glass-input[data-v-f1fc3619]:has(+.input-suffix){padding-right:calc(var(--space-4) * 2 + 16px)}.input-error[data-v-f1fc3619]{border-color:var(--color-error)!important}.input-error[data-v-f1fc3619]:focus{box-shadow:0 0 0 3px #ef44441a!important}.input-error-text[data-v-f1fc3619]{font-size:var(--text-xs);color:var(--color-error)}.input-hint[data-v-f1fc3619]{font-size:var(--text-xs);color:var(--color-text-tertiary)}.universal-search[data-v-ab5eebbf]{position:relative;width:100%;margin-bottom:var(--space-6)}.search-input-wrapper[data-v-ab5eebbf]{position:relative;width:100%}.search-input[data-v-ab5eebbf]{width:100%}.search-icon[data-v-ab5eebbf]{display:inline-block;margin-right:var(--space-2);font-size:18px}.search-input[data-v-ab5eebbf] .input-prefix{left:var(--space-4)}.search-input[data-v-ab5eebbf] .glass-input{font-size:var(--text-lg);padding:var(--space-4) var(--space-6);padding-left:calc(var(--space-4) * 2 + 24px + var(--space-2));border-width:2px;border-color:var(--glass-border)}.search-input[data-v-ab5eebbf] .glass-input:focus{border-color:var(--color-primary)}.animated-placeholder[data-v-ab5eebbf]{position:absolute;left:calc(var(--space-4) * 2 + 24px + var(--space-2));top:50%;transform:translateY(-50%);pointer-events:none;color:var(--color-text-tertiary);font-size:var(--text-lg);display:flex;align-items:center;-webkit-user-select:none;user-select:none}.typing-text[data-v-ab5eebbf]{display:inline-block}.typing-cursor[data-v-ab5eebbf]{display:inline-block;margin-left:2px;animation:blink-ab5eebbf 1s infinite}@keyframes blink-ab5eebbf{0%,50%{opacity:1}51%,to{opacity:0}}.suggestions[data-v-ab5eebbf]{position:absolute;top:100%;left:0;right:0;margin-top:var(--space-2);background:var(--glass-bg-dark);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow-xl);z-index:var(--z-dropdown);max-height:400px;overflow-y:auto}.suggestions-section[data-v-ab5eebbf]{padding:var(--space-2)}.suggestions-title[data-v-ab5eebbf]{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.suggestion-item[data-v-ab5eebbf]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:12px;cursor:pointer;transition:all .2s ease;color:var(--color-text-primary)}.suggestion-item[data-v-ab5eebbf]:hover{background:#ffffff0d;color:var(--color-primary)}.suggestion-icon[data-v-ab5eebbf]{font-size:20px}.card[data-v-bc4cd0d1]{border-radius:20px;padding:var(--space-4);transition:border-color .2s ease,box-shadow .2s ease}.card-default[data-v-bc4cd0d1]{background:var(--tg-glass-bg, var(--glass-bg-light));backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));-webkit-backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));border:1px solid var(--tg-glass-border, var(--glass-border));box-shadow:var(--shadow-glass),var(--inset-highlight)}.card-elevated[data-v-bc4cd0d1]{background:var(--glass-bg-medium);backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));-webkit-backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));border:1px solid var(--tg-glass-border, var(--glass-border));box-shadow:0 12px 48px #00000080,var(--inset-highlight)}.card-outlined[data-v-bc4cd0d1]{background:var(--card-outlined-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);box-shadow:none}.card-flat[data-v-bc4cd0d1]{background:var(--card-flat-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--card-flat-border);box-shadow:none}.card-hoverable[data-v-bc4cd0d1]:hover{border-color:var(--glass-border-hover);box-shadow:0 12px 40px #2563eb40,var(--inset-highlight-hover)}.card-clickable[data-v-bc4cd0d1]{cursor:pointer}.card-clickable[data-v-bc4cd0d1]:active{transform:scale(.98)}.quick-actions[data-v-9ce9e151]{margin-bottom:var(--space-8)}.quick-actions-title[data-v-9ce9e151]{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-4)}.quick-actions-grid[data-v-9ce9e151]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.quick-action-card[data-v-9ce9e151]{min-height:100px;display:flex;align-items:center;justify-content:center;padding:var(--space-6)}.quick-action-content[data-v-9ce9e151]{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.quick-action-icon[data-v-9ce9e151]{font-size:40px;line-height:1}.quick-action-label[data-v-9ce9e151]{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-primary)}@media (max-width: 640px){.quick-actions-grid[data-v-9ce9e151]{grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.quick-action-card[data-v-9ce9e151]{min-height:80px;padding:var(--space-4)}.quick-action-icon[data-v-9ce9e151]{font-size:32px}.quick-action-label[data-v-9ce9e151]{font-size:var(--text-sm)}}.favorites-section[data-v-80acd82c]{margin-bottom:var(--space-8)}.favorites-header[data-v-80acd82c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.favorites-title[data-v-80acd82c]{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0}.favorites-link[data-v-80acd82c]{color:var(--color-text-link);font-size:var(--text-sm);text-decoration:none;transition:color .2s ease;cursor:pointer}.favorites-link[data-v-80acd82c]:hover{color:var(--color-text-link-hover)}.favorites-list[data-v-80acd82c]{display:flex;flex-direction:column;gap:var(--space-3)}.favorite-card[data-v-80acd82c]{padding:var(--space-4)}.favorite-content[data-v-80acd82c]{display:flex;align-items:center;gap:var(--space-4)}.favorite-icon[data-v-80acd82c]{font-size:24px;flex-shrink:0}.favorite-info[data-v-80acd82c]{flex:1;min-width:0}.favorite-name[data-v-80acd82c]{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-1)}.favorite-type[data-v-80acd82c]{font-size:var(--text-sm);color:var(--color-text-tertiary)}.favorites-empty[data-v-80acd82c]{padding:var(--space-8) var(--space-4);text-align:center}.empty-icon[data-v-80acd82c]{font-size:48px;margin-bottom:var(--space-4)}.empty-text[data-v-80acd82c]{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.empty-hint[data-v-80acd82c]{font-size:var(--text-sm);color:var(--color-text-tertiary);line-height:var(--leading-relaxed)}.schedule-view[data-v-96c5db30]{min-height:100vh;padding-bottom:var(--content-padding-bottom)}.view-content[data-v-96c5db30]{max-width:1280px;margin:0 auto;padding:var(--space-4);padding-bottom:var(--space-8)}.tabs[data-v-96c5db30]{display:flex;margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border-default)}.tab[data-v-96c5db30]{flex:1;padding:var(--space-3) var(--space-4);border:none;border-radius:0;background:transparent;color:var(--color-text-tertiary);font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;transition:color .2s ease,border-color .2s ease;position:relative;margin-bottom:-1px}.tab[data-v-96c5db30]:hover{color:var(--color-text-primary)}.tab-active[data-v-96c5db30]{color:var(--color-primary);font-weight:var(--weight-semibold)}.tab-active[data-v-96c5db30]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--color-primary)}.tab-panel[data-v-96c5db30]{padding-bottom:var(--space-4)}.quick-and-free[data-v-96c5db30]{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-6)}.quick-and-free[data-v-96c5db30] .quick-actions{margin-bottom:0}.you-section[data-v-96c5db30]{margin-bottom:var(--space-6)}.you-title[data-v-96c5db30]{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-3)}.you-card[data-v-96c5db30]{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--glass-bg-light);border:1px solid var(--color-border-default);text-decoration:none;color:inherit;transition:all .2s ease;cursor:pointer}.you-card-link[data-v-96c5db30]:hover{border-color:var(--color-primary);background:#3b82f61a}.you-card-empty[data-v-96c5db30]{color:var(--color-text-tertiary)}.you-card-empty[data-v-96c5db30]:hover{border-color:var(--color-border-hover);color:var(--color-text-secondary)}.you-icon[data-v-96c5db30]{font-size:28px;flex-shrink:0}.you-info[data-v-96c5db30]{flex:1;display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.you-label[data-v-96c5db30]{font-size:var(--text-sm);color:var(--color-text-secondary)}.you-name[data-v-96c5db30]{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-primary)}.you-card-empty .you-name[data-v-96c5db30]{font-size:var(--text-sm);font-weight:var(--weight-normal);color:var(--color-text-tertiary)}.you-arrow[data-v-96c5db30]{font-size:1.25rem;color:var(--color-text-tertiary);flex-shrink:0}.you-card-link:hover .you-arrow[data-v-96c5db30]{color:var(--color-primary)}.free-rooms-action[data-v-96c5db30]{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);margin-bottom:0;background:var(--tg-glass-bg, var(--glass-bg-light));backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));-webkit-backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));border:1px solid var(--tg-glass-border, var(--glass-border));border-radius:20px;box-shadow:var(--shadow-glass),var(--inset-highlight);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .15s ease}.free-rooms-action[data-v-96c5db30]:active{transform:scale(.98)}.free-rooms-icon[data-v-96c5db30]{font-size:28px;flex-shrink:0}.free-rooms-text[data-v-96c5db30]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.free-rooms-title[data-v-96c5db30]{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.free-rooms-subtitle[data-v-96c5db30]{font-size:var(--text-sm);color:var(--color-text-secondary)}.free-rooms-arrow[data-v-96c5db30]{font-size:var(--text-xl);color:var(--color-text-tertiary);flex-shrink:0}.student-filter[data-v-452ef2db]{margin-bottom:var(--space-6)}.filter-steps[data-v-452ef2db]{display:flex;flex-direction:column}.filter-step[data-v-452ef2db]{display:flex;flex-direction:column;gap:var(--space-4)}.filter-header[data-v-452ef2db]{display:flex;align-items:center;gap:var(--space-3)}.filter-back-btn[data-v-452ef2db]{background:transparent;border:1px solid var(--glass-border);border-radius:8px;padding:var(--space-2) var(--space-4);color:var(--color-text-primary);cursor:pointer;font-size:var(--text-sm);transition:all .2s ease}.filter-back-btn[data-v-452ef2db]:hover{background:var(--glass-bg-medium);border-color:var(--color-primary)}.filter-step-title[data-v-452ef2db]{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0}.filter-options[data-v-452ef2db]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}.filter-option[data-v-452ef2db]{padding:var(--space-4);cursor:pointer}.filter-option-content[data-v-452ef2db]{display:flex;align-items:center;gap:var(--space-3)}.filter-option-icon[data-v-452ef2db]{font-size:24px;flex-shrink:0}.filter-option-text[data-v-452ef2db]{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-primary)}.filter-loading[data-v-452ef2db]{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-12);color:var(--color-text-secondary)}.filter-empty[data-v-452ef2db]{padding:var(--space-12);text-align:center}.filter-empty-icon[data-v-452ef2db]{font-size:64px;margin-bottom:var(--space-4)}.filter-empty-text[data-v-452ef2db]{font-size:var(--text-lg);color:var(--color-text-tertiary)}.teacher-filter[data-v-f92a42ab]{margin-bottom:var(--space-6)}.filter-steps[data-v-f92a42ab]{display:flex;flex-direction:column}.filter-step[data-v-f92a42ab]{display:flex;flex-direction:column;gap:var(--space-4)}.filter-header[data-v-f92a42ab]{display:flex;align-items:center;gap:var(--space-3)}.filter-back-btn[data-v-f92a42ab]{background:transparent;border:1px solid var(--glass-border);border-radius:8px;padding:var(--space-2) var(--space-4);color:var(--color-text-primary);cursor:pointer;font-size:var(--text-sm);transition:all .2s ease}.filter-back-btn[data-v-f92a42ab]:hover{background:var(--glass-bg-medium);border-color:var(--color-primary)}.filter-step-title[data-v-f92a42ab]{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0}.filter-options[data-v-f92a42ab]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-3)}.alphabet-grid[data-v-f92a42ab]{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}.filter-option[data-v-f92a42ab]{padding:var(--space-4);cursor:pointer}.letter-option[data-v-f92a42ab]{text-align:center;min-height:60px;display:flex;align-items:center;justify-content:center}.letter-option[data-v-f92a42ab] .card{border-color:var(--glass-border-hover);border-width:1px;border-style:solid}.filter-option-content[data-v-f92a42ab]{display:flex;align-items:center;gap:var(--space-3);justify-content:center}.filter-option-icon[data-v-f92a42ab]{font-size:24px;flex-shrink:0}.filter-option-text[data-v-f92a42ab]{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-primary)}.filter-loading[data-v-f92a42ab]{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-12);color:var(--color-text-secondary)}.filter-empty[data-v-f92a42ab]{padding:var(--space-12);text-align:center}.filter-empty-icon[data-v-f92a42ab]{font-size:64px;margin-bottom:var(--space-4)}.filter-empty-text[data-v-f92a42ab]{font-size:var(--text-lg);color:var(--color-text-tertiary)}.profile-view[data-v-82111716]{min-height:100vh;padding-bottom:var(--content-padding-bottom)}.view-content[data-v-82111716]{max-width:1280px;margin:0 auto;padding:var(--space-4)}.view-title[data-v-82111716]{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-6)}.who-card[data-v-82111716],.profile-card[data-v-82111716],.settings-card[data-v-82111716],.about-card[data-v-82111716]{padding:var(--space-6);margin-bottom:var(--space-4)}.section-hint[data-v-82111716]{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-4)}.role-buttons[data-v-82111716]{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.role-btn[data-v-82111716]{flex:1;min-width:100px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);background:var(--glass-bg-light);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:all .2s ease}.role-btn[data-v-82111716]:hover{background:var(--hover-overlay);color:var(--color-text-primary)}.role-btn-active[data-v-82111716]{border-color:var(--color-primary);background:var(--role-btn-active-bg);color:var(--color-primary)}.who-selected[data-v-82111716]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--glass-bg-light);border:1px solid var(--color-border-default)}.who-selected-text[data-v-82111716]{font-size:var(--text-base);color:var(--color-text-primary)}.who-selected-text strong[data-v-82111716]{font-weight:var(--weight-semibold)}.who-clear-btn[data-v-82111716]{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-default);border-radius:var(--radius-lg);background:var(--hover-overlay-strong);color:var(--color-text-secondary);font-size:1.25rem;line-height:1;cursor:pointer;transition:all .2s ease}.who-clear-btn[data-v-82111716]:hover{background:var(--who-clear-hover-bg);border-color:var(--color-error);color:var(--color-error)}.who-filter-wrap[data-v-82111716]{margin-top:var(--space-4)}.profile-section[data-v-82111716]{display:flex;flex-direction:column;gap:var(--space-4)}.section-title[data-v-82111716]{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);margin:0}.profile-info[data-v-82111716]{display:flex;flex-direction:column;gap:var(--space-3)}.info-item[data-v-82111716]{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3);border-radius:var(--radius-lg);background:var(--info-item-bg)}.info-label[data-v-82111716]{font-size:var(--text-sm);color:var(--color-text-secondary)}.info-value[data-v-82111716]{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-primary)}.theme-toggle-wrap[data-v-82111716]{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.theme-toggle-label[data-v-82111716]{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);min-width:48px}.theme-toggle-btn[data-v-82111716]{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);background:var(--glass-bg-light);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:all .2s ease}.theme-toggle-btn[data-v-82111716]:hover{background:var(--hover-overlay);color:var(--color-text-primary)}.theme-toggle-btn.theme-toggle-active[data-v-82111716]{border-color:var(--color-primary);background:var(--role-btn-active-bg);color:var(--color-primary)}.theme-toggle-icon[data-v-82111716]{font-size:1.1rem}.settings-list[data-v-82111716]{display:flex;flex-direction:column;gap:var(--space-2)}.settings-item[data-v-82111716]{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);text-decoration:none;color:var(--color-text-primary);transition:all .2s ease;background:var(--settings-item-bg);cursor:pointer}.settings-item[data-v-82111716]:hover{background:var(--settings-item-hover-bg);color:var(--color-primary)}.settings-icon[data-v-82111716]{font-size:24px;flex-shrink:0}.settings-label[data-v-82111716]{flex:1;font-size:var(--text-base);font-weight:var(--weight-medium)}.settings-arrow[data-v-82111716]{font-size:20px;color:var(--color-text-tertiary)}.about-content[data-v-82111716]{display:flex;flex-direction:column;gap:var(--space-2);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.version[data-v-82111716]{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-top:var(--space-2)}:root{--color-bg-primary: #0a0a0a;--color-bg-secondary: #1a1a1a;--color-bg-tertiary: #2a2a2a;--color-bg-elevated: #1f1f1f;--color-surface-100: #121212;--color-surface-200: #1e1e1e;--color-surface-300: #2d2d2d;--color-surface-400: #3a3a3a;--color-border-default: rgba(255, 255, 255, .1);--color-border-hover: rgba(255, 255, 255, .2);--color-border-focus: rgba(59, 130, 246, .5);--color-divider: rgba(255, 255, 255, .08);--color-blue-50: #eff6ff;--color-blue-100: #dbeafe;--color-blue-200: #bfdbfe;--color-blue-300: #93c5fd;--color-blue-400: #60a5fa;--color-blue-500: #3b82f6;--color-blue-600: #2563eb;--color-blue-700: #1d4ed8;--color-blue-800: #1e40af;--color-blue-900: #1e3a8a;--color-primary: #2563eb;--color-primary-hover: #3b82f6;--color-primary-active: #1d4ed8;--color-primary-light: #60a5fa;--color-primary-dark: #1e40af;--color-success: #10b981;--color-success-light: #34d399;--color-success-dark: #059669;--color-warning: #f59e0b;--color-warning-light: #fbbf24;--color-warning-dark: #d97706;--color-error: #ef4444;--color-error-light: #f87171;--color-error-dark: #dc2626;--color-info: #3b82f6;--color-info-light: #60a5fa;--color-info-dark: #2563eb;--color-text-primary: #ffffff;--color-text-secondary: rgba(255, 255, 255, .8);--color-text-tertiary: rgba(255, 255, 255, .6);--color-text-disabled: rgba(255, 255, 255, .4);--color-text-inverse: #0a0a0a;--color-text-link: #60a5fa;--color-text-link-hover: #3b82f6;--gradient-primary: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 50%, #1e3a8a 100%);--gradient-secondary: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 50%, #2563eb 100%);--gradient-accent: linear-gradient(135deg, #1e40af 0%, #2563eb 50%, #3b82f6 100%);--gradient-dark-blue: linear-gradient(135deg, #0f172a 0%, #1e3a8a 50%, #2563eb 100%);--gradient-card: linear-gradient(135deg, rgba(26, 26, 26, .8) 0%, rgba(30, 58, 138, .3) 100%);--gradient-card-hover: linear-gradient(135deg, rgba(37, 99, 235, .1) 0%, rgba(59, 130, 246, .2) 100%);--glass-bg-light: rgba(30, 30, 30, .4);--glass-bg-medium: rgba(26, 26, 26, .6);--glass-bg-dark: rgba(10, 10, 10, .8);--glass-border: rgba(59, 130, 246, .2);--glass-border-hover: rgba(59, 130, 246, .4);--tg-glass-bg: linear-gradient(180deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .04));--tg-glass-border: rgba(255, 255, 255, .18);--tg-btn-primary-bg: linear-gradient(135deg, #2aabee, #229ed9);--tg-btn-primary-shadow: 0 8px 24px rgba(42, 171, 238, .35);--tg-btn-primary-inset: inset 0 1px 0 rgba(255, 255, 255, .35);--tg-progress-gradient: linear-gradient(90deg, #2aabee, #7c6cff);--tg-bg-glow-1: radial-gradient(40% 40% at 30% 30%, rgba(0, 136, 204, .2), transparent 60%);--tg-bg-glow-2: radial-gradient(40% 40% at 70% 70%, rgba(98, 0, 234, .2), transparent 60%);--glass-blur: 20px;--glass-saturate: 160%;--font-primary: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-heading: "Inter", "Poppins", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs: clamp(.75rem, .7rem + .25vw, .875rem);--text-sm: clamp(.875rem, .8rem + .375vw, 1rem);--text-base: clamp(1rem, .95rem + .25vw, 1.125rem);--text-lg: clamp(1.125rem, 1rem + .625vw, 1.5rem);--text-xl: clamp(1.5rem, 1.25rem + 1.25vw, 2rem);--text-2xl: clamp(1.875rem, 1.5rem + 1.875vw, 3rem);--text-3xl: clamp(2.25rem, 1.75rem + 2.5vw, 4rem);--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .6);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .7);--shadow-blue: 0 8px 20px rgba(37, 99, 235, .4);--shadow-glass: 0 8px 32px 0 rgba(0, 0, 0, .5);--card-outlined-bg: rgba(30, 30, 30, .2);--card-flat-bg: rgba(30, 30, 30, .3);--card-flat-border: rgba(255, 255, 255, .05);--input-focus-bg: rgba(26, 26, 26, .8);--hover-overlay: rgba(255, 255, 255, .08);--hover-overlay-strong: rgba(255, 255, 255, .05);--role-btn-active-bg: rgba(59, 130, 246, .2);--who-clear-hover-bg: rgba(239, 68, 68, .2);--info-item-bg: rgba(255, 255, 255, .02);--settings-item-bg: rgba(255, 255, 255, .02);--settings-item-hover-bg: rgba(255, 255, 255, .05);--day-pill-active-bg: rgba(59, 130, 246, .2);--replacement-warning-bg: rgba(245, 158, 11, .1);--replacement-group-bg: rgba(59, 130, 246, .1);--replacement-cancelled-bg: rgba(239, 68, 68, .1);--replacement-time-bg: rgba(245, 158, 11, .1);--inset-highlight: inset 0 1px 0 rgba(255, 255, 255, .1);--inset-highlight-hover: inset 0 1px 0 rgba(255, 255, 255, .15);--z-base: 0;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-notification: 1080;--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-top: env(safe-area-inset-top, 0px);--content-padding-bottom: calc(80px + var(--safe-area-bottom));--breakpoint-xs: 320px;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px}@media (max-width: 768px){:root{--glass-blur: 12px}}@media (max-width: 640px){:root{--space-1: .2rem;--space-2: .375rem;--space-3: .5rem;--space-4: .625rem;--space-5: .75rem;--space-6: .875rem;--space-8: 1.125rem;--space-10: 1.25rem;--space-12: 1.5rem;--space-16: 2rem}}:root[data-theme=dark],:root:not([data-theme]){--bg-primary: var(--color-bg-primary);--bg-secondary: var(--color-bg-secondary);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary)}:root[data-theme=light]{--color-bg-primary: #f5f5f7;--color-bg-secondary: #ffffff;--color-bg-tertiary: #e8e8ed;--color-bg-elevated: #ffffff;--color-surface-100: #ffffff;--color-surface-200: #f5f5f7;--color-surface-300: #e8e8ed;--color-surface-400: #d1d1d6;--color-border-default: rgba(0, 0, 0, .12);--color-border-hover: rgba(0, 0, 0, .2);--color-border-focus: rgba(37, 99, 235, .5);--color-divider: rgba(0, 0, 0, .08);--color-text-primary: #1d1d1f;--color-text-secondary: rgba(0, 0, 0, .75);--color-text-tertiary: rgba(0, 0, 0, .55);--color-text-disabled: rgba(0, 0, 0, .4);--color-text-inverse: #f5f5f7;--color-text-link: #2563eb;--color-text-link-hover: #1d4ed8;--gradient-primary: linear-gradient(135deg, #f5f5f7 0%, #ffffff 50%, #e0e7ff 100%);--gradient-secondary: linear-gradient(135deg, #ffffff 0%, #e8e8ed 50%, #dbeafe 100%);--gradient-accent: linear-gradient(135deg, #1e40af 0%, #2563eb 50%, #3b82f6 100%);--gradient-dark-blue: linear-gradient(135deg, #e0e7ff 0%, #93c5fd 50%, #2563eb 100%);--gradient-card: linear-gradient(135deg, rgba(255, 255, 255, .9) 0%, rgba(224, 231, 255, .5) 100%);--gradient-card-hover: linear-gradient(135deg, rgba(37, 99, 235, .08) 0%, rgba(59, 130, 246, .15) 100%);--glass-bg-light: rgba(255, 255, 255, .7);--glass-bg-medium: rgba(255, 255, 255, .85);--glass-bg-dark: rgba(255, 255, 255, .95);--glass-border: rgba(37, 99, 235, .25);--glass-border-hover: rgba(37, 99, 235, .45);--tg-glass-bg: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .75));--tg-glass-border: rgba(255, 255, 255, .6);--tg-btn-primary-bg: linear-gradient(135deg, #2aabee, #229ed9);--tg-btn-primary-shadow: 0 8px 24px rgba(42, 171, 238, .3);--tg-btn-primary-inset: inset 0 1px 0 rgba(255, 255, 255, .4);--tg-progress-gradient: linear-gradient(90deg, #2aabee, #7c6cff);--tg-bg-glow-1: radial-gradient(40% 40% at 30% 30%, rgba(42, 171, 238, .15), transparent 60%);--tg-bg-glow-2: radial-gradient(40% 40% at 70% 70%, rgba(124, 108, 255, .12), transparent 60%);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .12);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .18);--shadow-blue: 0 8px 20px rgba(37, 99, 235, .25);--shadow-glass: 0 8px 32px 0 rgba(0, 0, 0, .08);--card-outlined-bg: rgba(255, 255, 255, .85);--card-flat-bg: rgba(255, 255, 255, .7);--card-flat-border: rgba(0, 0, 0, .08);--input-focus-bg: rgba(255, 255, 255, .95);--hover-overlay: rgba(0, 0, 0, .05);--hover-overlay-strong: rgba(0, 0, 0, .04);--role-btn-active-bg: rgba(37, 99, 235, .15);--who-clear-hover-bg: rgba(239, 68, 68, .15);--info-item-bg: rgba(0, 0, 0, .03);--settings-item-bg: rgba(0, 0, 0, .03);--settings-item-hover-bg: rgba(0, 0, 0, .06);--day-pill-active-bg: rgba(37, 99, 235, .15);--replacement-warning-bg: rgba(245, 158, 11, .12);--replacement-group-bg: rgba(37, 99, 235, .1);--replacement-cancelled-bg: rgba(239, 68, 68, .1);--replacement-time-bg: rgba(245, 158, 11, .12);--inset-highlight: inset 0 1px 0 rgba(255, 255, 255, .8);--inset-highlight-hover: inset 0 1px 0 rgba(255, 255, 255, .9);--bg-primary: var(--color-bg-primary);--bg-secondary: var(--color-bg-secondary);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary)}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-primary);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background:var(--color-bg-primary);min-height:100vh;overflow-x:hidden}body.theme-spreading{background:var(--spread-bg)!important}#app{min-height:100vh;width:100%;-webkit-touch-callout:none;touch-action:manipulation}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--color-text-primary)}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl);font-weight:var(--weight-semibold)}h4{font-size:var(--text-lg);font-weight:var(--weight-semibold)}p{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text-primary)}small{font-size:var(--text-sm);color:var(--color-text-secondary)}a{color:var(--color-text-link);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-text-link-hover)}ul,ol{list-style:none}img{max-width:100%;height:auto;display:block}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit;outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus{outline:none}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}a,[role=button]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.glass-card{background:var(--glass-bg-light);backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));-webkit-backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));border:1px solid var(--glass-border);border-radius:20px;box-shadow:var(--shadow-glass),var(--inset-highlight);transition:border-color .2s ease,box-shadow .2s ease}@media (hover: hover){.glass-card:hover{border-color:var(--glass-border-hover);box-shadow:0 12px 40px #2563eb40,var(--inset-highlight-hover)}}.glass-card-elevated{background:var(--glass-bg-medium);backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));-webkit-backdrop-filter:blur(var(--glass-blur, 20px)) saturate(var(--glass-saturate, 160%));border:1px solid var(--glass-border);border-radius:20px;box-shadow:0 12px 48px #00000080,var(--inset-highlight)}.glass-card-outlined{background:var(--card-outlined-bg, rgba(30, 30, 30, .2));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:20px;box-shadow:none}@media (max-width: 768px){.glass-card-outlined{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}}.glass-card-flat{background:var(--card-flat-bg, rgba(30, 30, 30, .3));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--card-flat-border, rgba(255, 255, 255, .05));border-radius:12px;box-shadow:none}.glass-input{background:var(--glass-bg-medium);backdrop-filter:blur(var(--glass-blur, 12px));-webkit-backdrop-filter:blur(var(--glass-blur, 12px));border:1px solid var(--color-border-default);border-radius:12px;padding:12px 16px;color:var(--color-text-primary);transition:border-color .2s ease,box-shadow .2s ease;width:100%}.glass-input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #3b82f61a;background:var(--input-focus-bg, rgba(26, 26, 26, .8))}.glass-input::placeholder{color:var(--color-text-tertiary)}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.p-0{padding:var(--space-0)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.m-0{margin:var(--space-0)}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.m-6{margin:var(--space-6)}.m-8{margin:var(--space-8)}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-link{color:var(--color-text-link)}.font-normal{font-weight:var(--weight-normal)}.font-medium{font-weight:var(--weight-medium)}.font-semibold{font-weight:var(--weight-semibold)}.font-bold{font-weight:var(--weight-bold)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.w-full{width:100%}.h-full{height:100%}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.rounded{border-radius:8px}.rounded-lg{border-radius:12px}.rounded-xl{border-radius:16px}.rounded-full{border-radius:9999px}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.cursor-pointer{cursor:pointer}.hidden{display:none}@media (min-width: 640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 768px){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
