*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0b14;--bg-elevated:#13141f;--bg-glass:#191b2ab8;--card-bg:#13141f;--card-border:#ffffff0f;--text-primary:#f2f2fa;--text-secondary:#8a8ba3;--text-tertiary:#51526b;--accent:#00e5ff;--accent-soft:#00e5ff1f;--accent-glow:#00e5ff73;--accent-2:#a855f7;--accent-2-soft:#a855f71f;--accent-2-glow:#a855f773;--accent-3:#4ade80;--accent-3-glow:#4ade8073;--on-accent:#0a0b14;--bg-glow-1:#a855f72e;--bg-glow-2:#00e5ff26;--bg-glow-3:#4ade8014;--danger:#ef4444;--danger-soft:#ef444414;--danger-border:#ef444426;--card-radius:18px;--chip-radius:999px;--shadow:0 4px 20px #0006;--shadow-soft:0 2px 8px #0000004d;--glow-primary:0 0 24px var(--accent-glow);--glow-secondary:0 0 24px var(--accent-2-glow)}:root[data-theme=light]{--bg:#f4f5fb;--bg-elevated:#fff;--bg-glass:#fffffff0;--card-bg:#fff;--card-border:#0f112314;--text-primary:#14152a;--text-secondary:#5b5d78;--text-tertiary:#9a9cb3;--accent:#0891b2;--accent-soft:#0891b21a;--accent-glow:#0891b238;--accent-2:#7c3aed;--accent-2-soft:#7c3aed1a;--accent-2-glow:#7c3aed38;--accent-3:#10b981;--accent-3-glow:#10b98140;--on-accent:#fff;--bg-glow-1:#7c3aed1a;--bg-glow-2:#0891b217;--bg-glow-3:#10b9810d;--danger:#dc2626;--danger-soft:#dc262614;--danger-border:#dc262633;--shadow:0 6px 24px #0f112314;--shadow-soft:0 2px 10px #0f11230d}:root{--font-display:"Unbounded", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;font-family:var(--font-body);color:var(--text-primary);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth;font-size:16px;line-height:1.45}body{background:var(--bg);background-image:radial-gradient(at 10% -10%, var(--bg-glow-1), transparent 40%), radial-gradient(at 110% 10%, var(--bg-glow-2), transparent 45%), radial-gradient(at 50% 110%, var(--bg-glow-3), transparent 50%);min-height:100dvh;color:var(--text-primary);background-attachment:fixed;transition:background-color .25s,color .25s;overflow-x:hidden}#root{flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex;position:relative}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}a{color:var(--accent);text-decoration:none}.display{font-family:var(--font-display);letter-spacing:-.01em;font-weight:700}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 12px var(--accent-glow)}50%{box-shadow:0 0 28px var(--accent-glow)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-in{animation:.35s ease-out both fade-in}.slide-up{animation:.35s cubic-bezier(.25,.8,.3,1) both slide-up}.stagger>*{animation:.4s cubic-bezier(.25,.8,.3,1) both slide-up}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.14s}.stagger>:nth-child(5){animation-delay:.18s}.stagger>:nth-child(6){animation-delay:.22s}.stagger>:nth-child(7){animation-delay:.26s}.stagger>:nth-child(8){animation-delay:.3s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.bottom-nav{left:50%;bottom:max(12px, calc(env(safe-area-inset-bottom) + 4px));background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);width:calc(100% - 24px);max-width:456px;box-shadow:var(--shadow);z-index:100;justify-content:space-around;align-items:stretch;gap:4px;padding:8px;display:flex;position:fixed;transform:translate(-50%)}.bottom-nav__item{color:var(--text-tertiary);border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 4px;transition:background .22s,color .22s,transform .22s cubic-bezier(.25,.8,.3,1);display:flex;position:relative}.bottom-nav__item:active{transform:scale(.94)}.bottom-nav__item.active{color:var(--accent);background:var(--accent-soft)}.bottom-nav__icon{font-size:22px;line-height:1}.bottom-nav__label{letter-spacing:.02em;font-size:10.5px;font-weight:600}.week-selector{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--shadow-soft);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.week-selector__arrow{border:1px solid var(--card-border);width:40px;height:40px;color:var(--text-secondary);background:#ffffff0a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;transition:all .2s;display:flex}.week-selector__arrow:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.week-selector__arrow:active{transform:scale(.92)}.week-selector__center{flex-direction:column;align-items:center;gap:3px;display:flex}.week-selector__month{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600}.week-selector__parity{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;font-size:20px;font-weight:700}.week-selector__range{color:var(--text-tertiary);font-size:12px;font-weight:500}.day-selector{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--shadow-soft);justify-content:space-between;padding:10px 8px;display:flex}.day-selector__day{cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:4px;min-width:44px;padding:8px 6px;transition:all .25s cubic-bezier(.25,.8,.3,1);display:flex;position:relative}.day-selector__day:active{transform:scale(.94)}.day-selector__day.selected{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);box-shadow:0 0 18px var(--accent-glow)}.day-selector__day.selected .day-selector__name,.day-selector__day.selected .day-selector__date{color:var(--on-accent)}.day-selector__day.today:not(.selected){background:var(--accent-soft)}.day-selector__day.today:not(.selected) .day-selector__date{color:var(--accent)}.day-selector__name{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.day-selector__date{font-family:var(--font-display);color:var(--text-primary);font-size:18px;font-weight:700;line-height:1}.day-selector__dot{background:var(--accent);width:5px;height:5px;box-shadow:0 0 6px var(--accent-glow);border-radius:50%}.day-selector__day.selected .day-selector__dot{background:var(--on-accent);box-shadow:none}.lesson-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--shadow-soft);background-image:linear-gradient(135deg,#00e5ff0a 0%,#a855f70a 100%);padding:16px;transition:transform .2s,border-color .2s;position:relative;overflow:hidden}.lesson-card:before{content:"";background:linear-gradient(180deg, var(--accent) 0%, var(--accent-2) 100%);width:3px;box-shadow:0 0 12px var(--accent-glow);border-radius:2px;position:absolute;top:12px;bottom:12px;left:0}.lesson-card:active{border-color:#00e5ff40;transform:scale(.99)}.lesson-card--live{box-shadow:0 0 0 1px #00e5ff59, 0 0 24px #00e5ff40, var(--shadow-soft);background-image:linear-gradient(135deg,#00e5ff1f 0%,#a855f71f 100%);border-color:#00e5ff8c;animation:2.4s ease-in-out infinite lesson-live-glow}.lesson-card--live:before{width:4px;box-shadow:0 0 18px var(--accent-glow), 0 0 6px var(--accent)}@keyframes lesson-live-glow{0%,to{box-shadow:0 0 0 1px #00e5ff59, 0 0 24px #00e5ff40, var(--shadow-soft)}50%{box-shadow:0 0 0 1px #00e5ff80, 0 0 34px #00e5ff66, var(--shadow-soft)}}.lesson-card__live{flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;top:14px;right:52px}.lesson-card__live-time{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--accent);align-items:center;gap:4px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.lesson-card__live-icon{filter:drop-shadow(0 0 4px var(--accent-glow));flex-shrink:0}.lesson-card__live-bar{background:#00e5ff1f;border-radius:2px;width:72px;height:4px;display:block;position:relative;overflow:hidden}.lesson-card__live-bar:after{content:"";width:var(--progress,0%);background:linear-gradient(90deg, var(--accent) 0%, var(--accent-2) 100%);box-shadow:0 0 8px var(--accent-glow);transition:width 1s linear;position:absolute;top:0;bottom:0;left:0}.lesson-card__time{align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.lesson-card__time-start{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;font-size:22px;font-weight:700}.lesson-card__time-end{color:var(--text-secondary);font-size:14px;font-weight:500}.lesson-card__entry{position:relative}.lesson-card__entry+.lesson-card__entry{border-top:1px solid var(--card-border);margin-top:12px;padding-top:12px}.lesson-card__subject{color:var(--text-primary);padding-right:40px;font-size:15px;font-weight:600;line-height:1.4}.lesson-card__kind{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);background:var(--accent-soft);vertical-align:middle;border-radius:6px;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.lesson-card__meta{color:var(--text-secondary);flex-wrap:wrap;gap:12px;margin-top:8px;font-size:13px;display:flex}.lesson-card__meta span{overflow-wrap:anywhere;word-break:break-word;align-items:flex-start;gap:4px;min-width:0;max-width:100%;display:inline-flex}.lesson-card__deadlines{border-top:1px dashed var(--card-border);flex-direction:column;gap:6px;margin:10px 0 0;padding:10px 0 0;list-style:none;display:flex}.lesson-card__deadline{color:var(--text-primary);align-items:baseline;gap:8px;font-size:13px;line-height:1.35;display:flex}.lesson-card__deadline-dot{background:var(--accent-2);width:7px;height:7px;box-shadow:0 0 8px var(--accent-2-glow,var(--accent-glow));border-radius:50%;flex-shrink:0;align-self:center}.lesson-card__deadline-title{font-weight:600}.lesson-card__deadline-note{color:var(--text-secondary);font-size:12px;font-weight:400}.lesson-card__gear{background:var(--card-bg);border:1px solid var(--card-border);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;z-index:1;border-radius:50%;justify-content:center;align-items:center;transition:transform .15s,color .18s,border-color .18s;display:flex;position:absolute;top:10px;right:10px}.lesson-card__gear:hover,.lesson-card__gear:focus-visible{color:var(--accent);border-color:#00e5ff73;outline:none}.lesson-card__gear:active{transform:scale(.9)rotate(45deg)}.lesson-card__gear--entry{background:0 0;width:28px;height:28px;position:absolute;top:-2px;right:0}.lesson-card__entry+.lesson-card__entry .lesson-card__gear--entry{top:10px}.lesson-card__entry--cancelled .lesson-card__subject,.lesson-card__entry--cancelled .lesson-card__meta{opacity:.55;text-decoration:line-through;text-decoration-thickness:1px}.lesson-card--cancelled{opacity:.7}.lesson-card--cancelled:before{background:var(--text-tertiary);box-shadow:none}.lesson-card__badge{text-transform:uppercase;letter-spacing:.05em;vertical-align:middle;border-radius:6px;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.lesson-card__badge--cancel{color:#ef4444;background:#ef44441f}.lesson-card__badge--move{color:#f59e0b;background:#f59e0b24}.lesson-card__time-orig{color:var(--text-tertiary);margin-left:8px;font-size:11px;font-weight:500;text-decoration:line-through}.time-wheel{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:4px 0;display:flex;position:relative;overflow:hidden}.time-wheel__highlight{pointer-events:none;z-index:0;background:linear-gradient(135deg,#00e5ff2e 0%,#a855f72e 100%);border:1px solid #00e5ff59;border-radius:10px;height:40px;position:absolute;top:50%;left:8px;right:8px;transform:translateY(-50%)}.time-wheel__colon{z-index:1;font-family:var(--font-display);color:var(--text-primary);padding-bottom:2px;font-size:22px;font-weight:700;position:relative}.time-wheel__col{z-index:1;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;width:72px;height:200px;position:relative;overflow-y:scroll}.time-wheel__col::-webkit-scrollbar{display:none}.time-wheel__item{all:unset;box-sizing:border-box;width:100%;height:40px;font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--text-secondary);cursor:pointer;scroll-snap-align:center;justify-content:center;align-items:center;font-size:18px;font-weight:600;transition:color .18s,transform .18s;display:flex}.time-wheel__item--pad{cursor:default;pointer-events:none}.time-wheel__item.is-selected{color:var(--text-primary);font-size:22px;font-weight:700}.lesson-edit-backdrop{-webkit-backdrop-filter:blur(6px);z-index:100;opacity:0;visibility:hidden;pointer-events:none;background:#0000008c;transition:opacity .28s,visibility 0s linear .28s;position:fixed;inset:0}.lesson-edit-backdrop.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .28s,visibility linear}.lesson-edit{touch-action:none;z-index:101;background:var(--bg-elevated);background-image:radial-gradient(at 50% 0%, var(--accent-soft), transparent 60%);border:1px solid var(--card-border);visibility:hidden;border-bottom:none;border-radius:22px 22px 0 0;flex-direction:column;max-width:480px;max-height:92dvh;margin:0 auto;transition:transform .35s cubic-bezier(.32,.72,0,1),visibility 0s linear .35s;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -8px 40px #00000080}.lesson-edit.open{visibility:visible;transition:transform .35s cubic-bezier(.32,.72,0,1),visibility linear;transform:translateY(0)}.lesson-edit__handle{cursor:grab;touch-action:none;flex-shrink:0;justify-content:center;padding:12px 0 8px;display:flex}.lesson-edit__handle:active{cursor:grabbing}.lesson-edit__handle-bar{background:var(--text-tertiary);opacity:.5;border-radius:2px;width:40px;height:4px}.lesson-edit__scroll{-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;padding-bottom:max(16px, env(safe-area-inset-bottom));overflow-y:auto}.lesson-edit__title{font-family:var(--font-display);text-align:center;letter-spacing:-.01em;padding:8px 16px 4px;font-size:18px;font-weight:700}.lesson-edit__subject{text-align:center;color:var(--text-secondary);padding:0 16px 14px;font-size:13px;line-height:1.35}.lesson-edit__modes{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;gap:4px;margin:0 16px 14px;padding:4px;display:flex}.lesson-edit__mode{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:10px 12px;font-size:13px;font-weight:600;transition:background .18s,color .18s}.lesson-edit__mode.is-active{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);color:#0a0a0c}:root[data-theme=light] .lesson-edit__modes{background:#0f11230d;border-color:#0f11231a}:root[data-theme=light] .lesson-edit__mode.is-active,:root[data-theme=light] .lesson-edit__btn--primary{color:#fff}.lesson-edit__slots{grid-template-columns:1fr 1fr;gap:8px;padding:0 16px;display:grid}.lesson-edit__slot{background:var(--card-bg);border:1px solid var(--card-border);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;transition:transform .15s,border-color .18s,background .18s;display:flex}.lesson-edit__slot:active{transform:scale(.98)}.lesson-edit__slot.is-selected{background-image:linear-gradient(135deg,#00e5ff1f 0%,#a855f71f 100%);border-color:#00e5ff8c;box-shadow:0 0 0 1px #00e5ff59}.lesson-edit__slot-num{letter-spacing:.03em;color:var(--accent);text-transform:uppercase;font-size:12px;font-weight:700}.lesson-edit__slot-time{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:16px;font-weight:700}.lesson-edit__custom{gap:10px;padding:0 16px;display:flex}.lesson-edit__custom-col{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.lesson-edit__custom-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;text-align:center;font-size:12px;font-weight:600}.lesson-edit__hint{color:var(--text-secondary);text-align:center;padding:12px 16px 0;font-size:12px}.lesson-edit__actions{flex-direction:column;gap:8px;padding:14px 16px 4px;display:flex}.lesson-edit__btn{cursor:pointer;border:1px solid #0000;border-radius:12px;padding:12px 16px;font-size:15px;font-weight:600;transition:transform .15s,opacity .15s}.lesson-edit__btn:active{transform:scale(.98)}.lesson-edit__btn:disabled{opacity:.4;cursor:not-allowed}.lesson-edit__btn--primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);color:#0a0a0c}.lesson-edit__btn--danger{color:#ef4444;background:0 0;border-color:#ef444466}.lesson-edit__btn--ghost{border-color:var(--card-border);color:var(--text-primary);background:0 0}.lesson-edit__note{color:var(--text-tertiary);text-align:center;padding:4px 16px 0;font-size:11px;line-height:1.4}.group-selector-backdrop{-webkit-backdrop-filter:blur(6px);z-index:100;opacity:0;visibility:hidden;pointer-events:none;background:#0000008c;transition:opacity .28s,visibility 0s linear .28s;position:fixed;inset:0}.group-selector-backdrop.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .28s,visibility linear}.group-selector{touch-action:none;z-index:101;background:var(--bg-elevated);background-image:radial-gradient(at 50% 0%, var(--accent-soft), transparent 60%);border:1px solid var(--card-border);visibility:hidden;border-bottom:none;border-radius:22px 22px 0 0;flex-direction:column;max-width:480px;max-height:78dvh;margin:0 auto;transition:transform .35s cubic-bezier(.32,.72,0,1),visibility 0s linear .35s;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -8px 40px #00000080}.group-selector.open{visibility:visible;transition:transform .35s cubic-bezier(.32,.72,0,1),visibility linear;transform:translateY(0)}.group-selector__handle{cursor:grab;touch-action:none;flex-shrink:0;justify-content:center;padding:12px 0 8px;display:flex}.group-selector__handle:active{cursor:grabbing}.group-selector__handle-bar{background:var(--text-tertiary);opacity:.5;border-radius:2px;width:40px;height:4px}.group-selector__title{font-family:var(--font-display);text-align:center;letter-spacing:-.01em;flex-shrink:0;padding:8px 16px 10px;font-size:18px;font-weight:700}.group-selector__tabs{flex-shrink:0;gap:6px;padding:0 16px 12px;display:flex}.group-selector__tab{color:var(--text-secondary);border:1px solid var(--card-border);cursor:pointer;background:#ffffff0a;border-radius:12px;flex:1;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s}.group-selector__tab:hover{color:var(--text-primary);border-color:var(--accent)}.group-selector__tab.active{color:var(--on-accent);background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);box-shadow:0 0 14px var(--accent-glow);border-color:#0000}.group-selector__tab:active{transform:scale(.97)}.group-selector__courses{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:0;gap:8px;padding:0 16px 14px;display:flex;overflow-x:auto}.group-selector__courses::-webkit-scrollbar{display:none}.course-pill{color:var(--text-secondary);border:1px solid var(--card-border);cursor:pointer;white-space:nowrap;background:#ffffff0a;border-radius:999px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s}.course-pill:hover{color:var(--text-primary);border-color:var(--accent)}.course-pill.active{color:var(--on-accent);background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);box-shadow:0 0 14px var(--accent-glow);border-color:#0000}.course-pill:active{transform:scale(.95)}.group-selector__search{flex-shrink:0;padding:0 16px 14px}.group-selector__search-input{width:100%;color:var(--text-primary);background:var(--bg);border:1px solid var(--card-border);border-radius:14px;outline:none;padding:12px 16px;font-family:inherit;font-size:15px;transition:all .2s}.group-selector__search-input::placeholder{color:var(--text-tertiary)}.group-selector__search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.group-selector__list{touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 8px env(safe-area-inset-bottom,16px);flex:1;overflow-y:auto}.group-selector__item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;margin:2px 0;padding:13px 14px;font-size:15px;font-weight:500;transition:all .15s;display:flex}.group-selector__item:active{background:var(--accent-soft);transform:scale(.99)}.group-selector__item.selected{background:var(--accent-soft);color:var(--accent);border-color:#00e5ff40;font-weight:700}.group-selector__item-check{color:var(--accent);filter:drop-shadow(0 0 6px var(--accent-glow));margin-left:auto;font-size:15px}.group-selector__empty{text-align:center;color:var(--text-secondary);padding:40px 16px;font-size:14px}.calendar-picker-backdrop{-webkit-backdrop-filter:blur(6px);z-index:110;opacity:0;visibility:hidden;pointer-events:none;background:#0000008c;transition:opacity .28s,visibility 0s linear .28s;position:fixed;inset:0}.calendar-picker-backdrop.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .28s,visibility linear}.calendar-picker{touch-action:none;z-index:111;background:var(--bg-elevated);background-image:radial-gradient(at 50% 0%, var(--accent-soft), transparent 60%);border:1px solid var(--card-border);max-width:480px;max-height:92dvh;padding-bottom:max(16px, env(safe-area-inset-bottom));visibility:hidden;border-bottom:none;border-radius:22px 22px 0 0;flex-direction:column;margin:0 auto;transition:transform .35s cubic-bezier(.32,.72,0,1),visibility 0s linear .35s;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -8px 40px #00000080}.calendar-picker.open{visibility:visible;transition:transform .35s cubic-bezier(.32,.72,0,1),visibility linear;transform:translateY(0)}.calendar-picker__handle{cursor:grab;touch-action:none;flex-shrink:0;justify-content:center;padding:12px 0 8px;display:flex}.calendar-picker__handle:active{cursor:grabbing}.calendar-picker__handle-bar{background:var(--text-tertiary);opacity:.5;border-radius:2px;width:40px;height:4px}.calendar-picker__title{font-family:var(--font-display);text-align:center;letter-spacing:-.01em;flex-shrink:0;padding:8px 16px;font-size:18px;font-weight:700}.calendar-picker__nav{flex-shrink:0;justify-content:space-between;align-items:center;padding:4px 16px 12px;display:flex}.calendar-picker__arrow{border:1px solid var(--card-border);width:38px;height:38px;color:var(--text-secondary);background:#ffffff0a;border-radius:50%;justify-content:center;align-items:center;font-size:20px;transition:all .2s;display:flex}.calendar-picker__arrow:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.calendar-picker__arrow:active{transform:scale(.92)}.calendar-picker__month{flex-direction:column;align-items:center;gap:2px;display:flex}.calendar-picker__month-name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-primary);font-size:20px;font-weight:700}.calendar-picker__month-year{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:600}.calendar-picker__grid{flex-shrink:0;padding:0 12px}.calendar-picker__weekdays,.calendar-picker__week{grid-template-columns:28px repeat(7,1fr);align-items:center;gap:2px;display:grid}.calendar-picker__weekdays{padding-bottom:6px}.calendar-picker__weeknum-head{width:28px}.calendar-picker__weekday{text-align:center;color:var(--text-tertiary);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:600}.calendar-picker__week{padding:2px 0}.calendar-picker__weeknum{letter-spacing:-.02em;border-radius:8px;justify-content:center;align-items:center;width:22px;height:22px;margin:0 auto;font-size:10px;font-weight:700;display:flex}.calendar-picker__weeknum--odd{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px #00e5ff33}.calendar-picker__weeknum--even{color:var(--accent-2);background:var(--accent-2-soft);box-shadow:inset 0 0 0 1px #a855f733}.calendar-picker__weeknum--none{color:var(--text-tertiary);background:0 0}.calendar-picker__day{aspect-ratio:1;min-height:38px;color:var(--text-primary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s}.calendar-picker__day:hover{background:var(--accent-soft)}.calendar-picker__day:active{transform:scale(.92)}.calendar-picker__day.is-other{color:var(--text-tertiary);opacity:.5}.calendar-picker__day.is-today{color:var(--accent-3);border-color:var(--accent-3);box-shadow:0 0 10px var(--accent-3-glow)}.calendar-picker__day.is-selected{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);color:var(--on-accent);box-shadow:0 0 14px var(--accent-glow);border-color:#0000}.calendar-picker__day.is-selected.is-today{border-color:var(--accent-3)}.calendar-picker__legend{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:14px;padding:14px 16px 4px;font-size:12px;display:flex}.calendar-picker__legend-item{align-items:center;gap:6px;display:inline-flex}.calendar-picker__legend-dot{border-radius:4px;width:10px;height:10px}.calendar-picker__legend-dot--odd{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.calendar-picker__legend-dot--even{background:var(--accent-2-soft);box-shadow:inset 0 0 0 1px var(--accent-2)}.calendar-picker__legend-btn{color:var(--on-accent);background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);cursor:pointer;box-shadow:0 0 12px var(--accent-glow);border:none;border-radius:999px;margin-left:auto;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:transform .15s}.calendar-picker__legend-btn:active{transform:scale(.95)}.deadline-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--shadow-soft);background-image:linear-gradient(135deg,#a855f70f 0%,#00e5ff0a 100%);padding:14px 16px;position:relative;overflow:hidden}.deadline-card:before{content:"";background:linear-gradient(180deg, var(--accent-2) 0%, var(--accent) 100%);width:3px;box-shadow:0 0 10px var(--accent-2-glow,var(--accent-glow));border-radius:2px;position:absolute;top:12px;bottom:12px;left:0}.deadline-card--muted{opacity:.55}.deadline-card__header{align-items:center;gap:8px;display:flex}.deadline-card__icon{font-size:16px;line-height:1}.deadline-card__title{color:var(--text-primary);word-break:break-word;flex:1;min-width:0;font-size:15px;font-weight:600;line-height:1.35}.deadline-card__date{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:8px;flex-shrink:0;padding:3px 8px;font-size:12px;font-weight:600}.deadline-card__delete{width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;font-family:inherit;font-size:22px;line-height:1;transition:background .15s,color .15s}.deadline-card__delete:hover{background:var(--accent-soft);color:var(--text-primary)}.deadline-card__delete:active{transform:scale(.92)}.deadline-card__relative{letter-spacing:.02em;background:var(--accent-soft);color:var(--text-secondary);border:1px solid #0000;border-radius:999px;margin-top:8px;padding:4px 10px;font-size:12px;font-weight:700;line-height:1;display:inline-block}.deadline-card__relative--ok{color:#16a34a;background:#22c55e29;border-color:#22c55e59}.deadline-card__relative--soon{color:#b45309;background:#eab3082e;border-color:#eab30873}.deadline-card__relative--overdue{color:#dc2626;background:#ef44442e;border-color:#ef444473}@media (prefers-color-scheme:dark){.deadline-card__relative--ok{color:#4ade80}.deadline-card__relative--soon{color:#fbbf24}.deadline-card__relative--overdue{color:#f87171}}.deadline-card__lesson{color:var(--text-secondary);margin-top:6px;font-size:12px}.deadline-card__note{color:var(--text-secondary);white-space:pre-wrap;margin-top:6px;font-size:13px;line-height:1.4}.project-day-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--shadow-soft);background-image:linear-gradient(135deg,#00e5ff0f 0%,#a855f70f 100%);align-items:center;gap:18px;padding:22px 20px;display:flex;position:relative;overflow:hidden}.project-day-card:before{content:"";background:linear-gradient(180deg, var(--accent) 0%, var(--accent-2) 100%);width:3px;box-shadow:0 0 12px var(--accent-glow);border-radius:2px;position:absolute;top:12px;bottom:12px;left:0}.project-day-card__icon{background:var(--accent-soft);width:56px;height:56px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.project-day-card__body{flex:1;min-width:0}.project-day-card__title{color:var(--text-primary);font-size:19px;font-weight:700;line-height:1.25}.project-day-card__meta{text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-top:6px;font-size:12px;font-weight:600}.project-day-card__link{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);color:var(--on-accent);box-shadow:0 0 14px var(--accent-glow);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:11px 18px;font-size:13px;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s;display:inline-flex}.project-day-card__link:hover{box-shadow:0 0 20px var(--accent-glow);transform:translateY(-1px)}.project-day-card__link:active{transform:scale(.96)}.schedule-page{padding:calc(20px + max(env(safe-area-inset-top), var(--safe-top,0px))) 16px calc(96px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;animation:.4s ease-out fade-in;display:flex}.schedule-page__header{justify-content:space-between;align-items:center;padding:4px 0 2px;display:flex}.schedule-page__header h1{font-family:var(--font-display);letter-spacing:-.02em;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 70%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-size:30px;font-weight:800;line-height:1.05}.schedule-page__calendar-btn{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);width:42px;height:42px;color:var(--on-accent);cursor:pointer;box-shadow:0 0 18px var(--accent-glow);border:none;border-radius:14px;justify-content:center;align-items:center;transition:transform .2s,box-shadow .2s;display:flex}.schedule-page__calendar-btn:hover{box-shadow:0 0 24px var(--accent-glow);transform:translateY(-1px)}.schedule-page__calendar-btn:active{transform:scale(.94)}.schedule-page__today-btn{color:var(--on-accent);background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);box-shadow:0 0 14px var(--accent-glow);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:6px 12px;font-size:12px;font-weight:600;transition:transform .2s,box-shadow .2s;display:inline-flex}.schedule-page__today-btn:hover{box-shadow:0 0 20px var(--accent-glow);transform:translateY(-1px)}.schedule-page__today-btn:active{transform:scale(.94)}.schedule-page__group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.schedule-page__today-break{flex-basis:100%;height:0}.group-chip{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);color:var(--on-accent);border-radius:var(--chip-radius);letter-spacing:.01em;cursor:pointer;box-shadow:0 0 16px var(--accent-glow);border:none;align-items:center;gap:8px;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:700;transition:transform .2s,box-shadow .2s;display:inline-flex}.group-chip:hover{box-shadow:0 0 24px var(--accent-glow);transform:translateY(-1px)}.group-chip:active{transform:scale(.97)}.group-chip__star{font-size:13px}.group-chip.teacher-chip{white-space:normal;text-align:left;overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%;line-height:1.25}.group-add-btn{border-radius:var(--chip-radius);background:var(--card-bg);width:36px;height:36px;color:var(--accent);border:1px solid var(--card-border);cursor:pointer;justify-content:center;align-items:center;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.group-add-btn:hover{box-shadow:0 0 14px var(--accent-glow);background:var(--accent-soft);transform:translateY(-1px)}.group-add-btn:active{transform:scale(.94)}.group-back-btn{border-radius:var(--chip-radius);background:var(--card-bg);color:var(--text-secondary);border:1px solid var(--card-border);cursor:pointer;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:transform .2s,background .2s,color .2s;display:inline-flex}.group-back-btn:hover{background:var(--accent-soft);color:var(--accent)}.group-back-btn:active{transform:scale(.97)}.schedule-page__lessons{flex-direction:column;gap:12px;min-height:200px;display:flex}.schedule-page__empty{background:var(--card-bg);background-image:radial-gradient(at 50% 0%, var(--accent-soft), transparent 60%);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--shadow-soft);flex-direction:column;justify-content:center;align-items:center;padding:56px 16px;animation:.45s ease-out both slide-up;display:flex}.schedule-page__empty-icon{filter:drop-shadow(0 0 12px var(--accent-glow));margin-bottom:12px;font-size:52px}.schedule-page__empty p{color:var(--text-secondary);font-size:15px;font-weight:500}.schedule-page__empty p.schedule-page__empty-sub{color:var(--text-tertiary);margin-top:4px;font-size:13px;font-weight:400}.schedule-page__updated{color:var(--text-tertiary);letter-spacing:.02em;align-self:flex-end;margin-top:auto;padding-top:16px;font-size:11px;font-weight:500}.deadline-form-backdrop{-webkit-backdrop-filter:blur(6px);z-index:100;opacity:0;visibility:hidden;pointer-events:none;background:#0000008c;transition:opacity .28s,visibility 0s linear .28s;position:fixed;inset:0}.deadline-form-backdrop.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .28s,visibility linear}.deadline-form{touch-action:none;z-index:101;background:var(--bg-elevated);background-image:radial-gradient(at 50% 0%, var(--accent-soft), transparent 60%);border:1px solid var(--card-border);visibility:hidden;border-bottom:none;border-radius:22px 22px 0 0;flex-direction:column;max-width:480px;max-height:92dvh;margin:0 auto;transition:transform .35s cubic-bezier(.32,.72,0,1),visibility 0s linear .35s;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -8px 40px #00000080}.deadline-form.open{visibility:visible;transition:transform .35s cubic-bezier(.32,.72,0,1),visibility linear;transform:translateY(0)}.deadline-form__handle{cursor:grab;touch-action:none;flex-shrink:0;justify-content:center;padding:12px 0 8px;display:flex}.deadline-form__handle:active{cursor:grabbing}.deadline-form__handle-bar{background:var(--text-tertiary);opacity:.5;border-radius:2px;width:40px;height:4px}.deadline-form__title{font-family:var(--font-display);text-align:center;letter-spacing:-.01em;flex-shrink:0;padding:8px 16px 14px;font-size:18px;font-weight:700}.deadline-form__body{touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 16px max(16px, env(safe-area-inset-bottom));flex-direction:column;gap:14px;display:flex;overflow-y:auto}.deadline-form__field{flex-direction:column;gap:6px;display:flex}.deadline-form__label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.deadline-form__input{width:100%;color:var(--text-primary);background:var(--bg);border:1px solid var(--card-border);box-sizing:border-box;border-radius:12px;outline:none;padding:12px 14px;font-family:inherit;font-size:15px;transition:all .2s}.deadline-form__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.deadline-form__input::placeholder{color:var(--text-tertiary)}.deadline-form__date-btn{text-align:left;cursor:pointer;font-weight:600}.deadline-form__date-btn:active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.deadline-form__textarea{resize:vertical;min-height:60px;font-family:inherit;line-height:1.4}.deadline-form__hint{color:var(--text-tertiary);padding-left:2px;font-size:12px}.deadline-form__actions{gap:10px;padding-top:6px;display:flex}.deadline-form__btn{cursor:pointer;border:1px solid #0000;border-radius:12px;flex:1;padding:12px 16px;font-family:inherit;font-size:15px;font-weight:700;transition:all .2s}.deadline-form__btn--ghost{border-color:var(--card-border);color:var(--text-primary);background:0 0}.deadline-form__btn--ghost:active{background:var(--accent-soft);transform:scale(.97)}.deadline-form__btn--primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);color:var(--on-accent);box-shadow:0 0 16px var(--accent-glow)}.deadline-form__btn--primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.deadline-form__btn--primary:not(:disabled):active{transform:scale(.97)}.deadlines-page{padding:calc(20px + max(env(safe-area-inset-top), var(--safe-top,0px))) 16px calc(96px + env(safe-area-inset-bottom));flex-direction:column;gap:18px;animation:.4s ease-out fade-in;display:flex}.deadlines-page__header{justify-content:space-between;align-items:center;gap:12px;padding:4px 0 2px;display:flex}.deadlines-page__header h1{font-family:var(--font-display);letter-spacing:-.02em;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 70%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-size:30px;font-weight:800;line-height:1.05}.deadlines-page__add{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);width:40px;height:40px;color:var(--on-accent);cursor:pointer;box-shadow:0 0 16px var(--accent-glow);border:none;border-radius:12px;flex-shrink:0;font-family:inherit;font-size:22px;font-weight:700;line-height:1;transition:transform .2s,box-shadow .2s}.deadlines-page__add:hover{box-shadow:0 0 24px var(--accent-glow);transform:translateY(-1px)}.deadlines-page__add:active{transform:scale(.95)}.deadlines-page__section{flex-direction:column;gap:10px;display:flex}.deadlines-page__section-title{letter-spacing:.05em;text-transform:uppercase;color:var(--text-tertiary);padding:0 4px;font-size:12px;font-weight:700}.deadlines-page__list{flex-direction:column;gap:10px;display:flex}.deadlines-page__empty{background:var(--card-bg);background-image:radial-gradient(at 50% 0%, var(--accent-soft), transparent 60%);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--shadow-soft);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:56px 16px;animation:.4s ease-out both slide-up;display:flex}.deadlines-page__empty-icon{filter:drop-shadow(0 0 12px var(--accent-glow));margin-bottom:10px;font-size:44px}.deadlines-page__empty p{color:var(--text-secondary);font-size:15px;font-weight:500}.deadlines-page__empty-sub{margin-top:4px;color:var(--text-tertiary)!important;font-size:13px!important;font-weight:400!important}.install-modal{z-index:1000;-webkit-backdrop-filter:blur(6px);background:#0000008c;justify-content:center;align-items:flex-end;animation:.2s ease-out install-fade;display:flex;position:fixed;inset:0}.install-modal__sheet{width:100%;max-width:560px;max-height:92vh;padding:10px 22px calc(22px + env(safe-area-inset-bottom)) 22px;background:var(--card-bg);border:1px solid var(--card-border);border-bottom:none;border-top-left-radius:22px;border-top-right-radius:22px;flex-direction:column;gap:14px;animation:.28s ease-out install-slide-up;display:flex;overflow-y:auto;box-shadow:0 -20px 40px #00000059}.install-modal__handle{cursor:grab;touch-action:none;flex-shrink:0;width:56px;height:18px;margin:0 auto 4px;position:relative}.install-modal__handle:before{content:"";background:var(--text-tertiary);opacity:.35;border-radius:999px;width:42px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.install-modal__handle:active{cursor:grabbing}.install-modal__icon{align-self:center;font-size:36px;line-height:1}.install-modal__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-primary);text-align:center;margin:0;font-size:24px;font-weight:800}.install-modal__subtitle{color:var(--text-secondary);text-align:center;margin:0 0 6px;font-size:14px;line-height:1.45}.install-modal__body{flex-direction:column;gap:18px;display:flex}.install-modal__already{background:var(--accent-soft);border:1px solid var(--card-border);color:var(--text-primary);text-align:center;border-radius:12px;padding:14px 16px;font-size:14px}.install-step{align-items:flex-start;gap:14px;display:flex}.install-step__num{width:26px;font-family:var(--font-display);color:var(--accent);flex-shrink:0;font-size:20px;font-weight:800;line-height:1.15}.install-step__content{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.install-step__title{color:var(--text-primary);letter-spacing:-.01em;font-size:16px;font-weight:700}.install-step__desc{color:var(--text-secondary);font-size:13px;line-height:1.5}.install-step__desc>p{margin:0 0 8px}.install-step__desc>p:last-child{margin-bottom:0}.install-step__desc>button{margin-top:10px}.install-step__copy{color:var(--accent);background:var(--accent-soft);border:1px solid var(--card-border);cursor:pointer;border-radius:10px;align-self:flex-start;align-items:center;gap:8px;padding:8px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:600;transition:filter .15s;display:inline-flex}.install-step__copy:hover{filter:brightness(1.1)}.install-step__primary{color:var(--on-accent);background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 0 14px var(--accent-glow);cursor:pointer;border:none;border-radius:10px;align-self:flex-start;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:700;transition:transform .15s,filter .2s}.install-step__primary:active{transform:scale(.98)}.install-step__or{color:var(--text-tertiary);font-size:12px}.install-modal__close{color:var(--on-accent);background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 0 16px var(--accent-glow);cursor:pointer;border:none;border-radius:14px;margin-top:6px;padding:14px 16px;font-family:inherit;font-size:15px;font-weight:700;transition:transform .15s,filter .2s}.install-modal__close:active{transform:scale(.98)}@keyframes install-fade{0%{opacity:0}to{opacity:1}}@keyframes install-slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.other-page{padding:calc(20px + max(env(safe-area-inset-top), var(--safe-top,0px))) 16px calc(96px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;animation:.4s ease-out fade-in;display:flex}.other-page__header h1{font-family:var(--font-display);letter-spacing:-.02em;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 70%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-size:30px;font-weight:800}.other-page__section{flex-direction:column;gap:8px;display:flex}.other-page__section-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:0 4px;font-size:12px;font-weight:600}.export-card{background:var(--card-bg);background-image:radial-gradient(at 50% 0%, var(--accent-2-soft), transparent 70%);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--shadow-soft);flex-direction:column;gap:14px;padding:18px 20px;display:flex}.export-card__title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;font-size:17px;font-weight:700}.export-card__desc{color:var(--text-secondary);font-size:13px;line-height:1.5}.export-card__desc code{background:var(--accent-soft);color:var(--text-primary);border-radius:6px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.export-card__toggle{color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:14px;font-weight:500;line-height:1.3;display:flex}.export-card__toggle input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.export-card__btn{color:var(--on-accent);background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 0 16px var(--accent-glow);cursor:pointer;border:none;border-radius:12px;padding:13px 16px;font-family:inherit;font-size:15px;font-weight:700;transition:transform .15s,filter .2s}.export-card__btn:hover:not(:disabled){filter:brightness(1.05)}.export-card__btn:active:not(:disabled){transform:scale(.98)}.export-card__btn:disabled{opacity:.5;cursor:not-allowed}.export-card__error{color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger-border);border-radius:8px;padding:8px 10px;font-size:13px}.profile-page{padding:calc(20px + max(env(safe-area-inset-top), var(--safe-top,0px))) 16px calc(96px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;animation:.4s ease-out fade-in;display:flex}.profile-page__header h1{font-family:var(--font-display);letter-spacing:-.02em;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 70%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-size:30px;font-weight:800}.profile-card{background:var(--card-bg);background-image:radial-gradient(at 50% 0%, var(--accent-2-soft), transparent 70%);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--shadow-soft);flex-direction:column;align-items:center;padding:28px 20px 24px;display:flex}.profile-card__avatar{width:72px;height:72px;font-family:var(--font-display);color:var(--on-accent);background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);box-shadow:0 0 24px var(--accent-glow);border-radius:50%;justify-content:center;align-items:center;margin-bottom:14px;font-size:28px;font-weight:700;display:flex}.profile-card__name{font-family:var(--font-display);color:var(--text-primary);text-align:center;letter-spacing:-.01em;font-size:20px;font-weight:700;line-height:1.25}.profile-card__edit-link{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:4px 8px;font-size:13px;font-weight:600;transition:opacity .2s}.profile-card__edit-link:hover{opacity:.8}.profile-card__edit{flex-direction:column;gap:10px;width:100%;display:flex}.profile-card__input{width:100%;color:var(--text-primary);background:var(--bg);border:1px solid var(--card-border);text-align:center;border-radius:12px;outline:none;padding:14px 16px;font-family:inherit;font-size:16px;transition:all .2s}.profile-card__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.profile-card__edit-actions{gap:8px;display:flex}.profile-card__btn{cursor:pointer;border:none;border-radius:10px;flex:1;padding:12px;font-family:inherit;font-size:14px;font-weight:700;transition:all .2s}.profile-card__btn--ghost{background:var(--bg);color:var(--text-secondary);border:1px solid var(--card-border)}.profile-card__btn--primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--on-accent);box-shadow:0 0 16px var(--accent-glow)}.profile-card__btn:active{transform:scale(.97)}.profile-row{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);width:100%;box-shadow:var(--shadow-soft);text-align:left;cursor:pointer;color:inherit;align-items:center;gap:14px;padding:14px 18px;font-family:inherit;transition:all .2s;display:flex}.profile-row:active{border-color:#00e5ff33;transform:scale(.99)}.profile-row__icon{background:var(--accent-soft);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:flex}.profile-row__text{flex:1;min-width:0}.profile-row__label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px;font-size:12px;font-weight:600}.profile-row__value{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.profile-row__chevron{color:var(--text-tertiary);font-size:22px;line-height:1}.profile-section{flex-direction:column;gap:8px;display:flex}.profile-section__label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:0 4px;font-size:12px;font-weight:600}.theme-switch{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--shadow-soft);grid-template-columns:repeat(3,1fr);gap:6px;padding:6px;display:grid}.theme-switch__option{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;font-family:inherit;font-size:12px;font-weight:600;transition:background .2s,color .2s,transform .15s,border-color .2s;display:flex}.theme-switch__option:active{transform:scale(.97)}.theme-switch__option--active{background:var(--accent-soft);border-color:var(--accent);color:var(--text-primary);box-shadow:0 0 12px var(--accent-glow)}.theme-switch__icon{font-size:20px;line-height:1}.theme-switch__label{text-align:center;line-height:1.15}.profile-page__footer{flex-direction:column;align-items:center;gap:10px;margin-top:auto;padding-top:20px;display:flex}.profile-page__reset{color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger-border);cursor:pointer;border-radius:10px;padding:10px 18px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s}.profile-page__reset:hover{filter:brightness(1.05)}.profile-page__about{color:var(--text-tertiary);text-align:center;font-size:12px}.onboarding{flex-direction:column;min-height:100dvh;padding:60px 24px 40px;animation:.4s ease-out fade-in;display:flex}.onboarding__progress{justify-content:center;gap:6px;margin-bottom:48px;display:flex}.onboarding__progress-dot{background:var(--card-border);border-radius:2px;width:28px;height:4px;transition:background .3s,box-shadow .3s}.onboarding__progress-dot.active{background:linear-gradient(90deg, var(--accent), var(--accent-2));box-shadow:0 0 10px var(--accent-glow)}.onboarding__progress-dot.done{background:var(--accent)}.onboarding__step{flex-direction:column;flex:1;display:flex}.onboarding__emoji{text-align:center;filter:drop-shadow(0 0 20px var(--accent-2-glow));margin-bottom:20px;font-size:56px;animation:.5s ease-out slide-up}.onboarding__title{font-family:var(--font-display);text-align:center;letter-spacing:-.02em;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:34px;font-weight:800}.onboarding__subtitle{text-align:center;color:var(--text-secondary);margin-bottom:32px;font-size:16px}.onboarding__field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.onboarding__label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:0 4px;font-size:12px;font-weight:600}.onboarding__input{width:100%;color:var(--text-primary);background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;outline:none;padding:16px 18px;font-family:inherit;font-size:16px;transition:all .2s}.onboarding__input::placeholder{color:var(--text-tertiary)}.onboarding__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft), 0 0 18px var(--accent-glow)}.onboarding__hint{color:var(--text-tertiary);padding:0 4px;font-size:12px}.onboarding__button{color:var(--on-accent);background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);cursor:pointer;box-shadow:0 0 24px var(--accent-glow);border:none;border-radius:14px;margin-top:auto;padding:16px 24px;font-family:inherit;font-size:16px;font-weight:700;transition:transform .15s,box-shadow .2s,opacity .2s}.onboarding__button:hover:not(:disabled){box-shadow:0 0 32px var(--accent-glow);transform:translateY(-1px)}.onboarding__button:active:not(:disabled){transform:scale(.98)}.onboarding__button:disabled{opacity:.4;box-shadow:none;cursor:not-allowed}.onboarding__back{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:10px;align-self:center;margin-top:16px;padding:10px 20px;font-size:14px;font-weight:600;transition:color .2s}.onboarding__back:hover{color:var(--accent)}.onboarding__courses{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;margin-bottom:14px;padding-bottom:2px;display:flex;overflow-x:auto}.onboarding__courses::-webkit-scrollbar{display:none}.onboarding__group-list{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:4px;max-height:46dvh;margin:0 -4px 16px;padding:4px 0;display:flex;overflow-y:auto}.onboarding__group-item{color:var(--text-primary);background:var(--card-bg);border:1px solid var(--card-border);text-align:left;cursor:pointer;border-radius:12px;align-items:center;padding:14px 16px;font-size:15px;font-weight:500;transition:all .15s;display:flex}.onboarding__group-item:hover{border-color:var(--accent);background:var(--accent-soft)}.onboarding__group-item:active{transform:scale(.99)}.onboarding__group-item.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);box-shadow:0 0 16px var(--accent-glow);font-weight:700}.onboarding__group-check{filter:drop-shadow(0 0 6px var(--accent-glow));margin-left:auto;font-size:16px}.onboarding__empty{text-align:center;color:var(--text-secondary);padding:32px 16px;font-size:14px}
