:root{font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark;--app-bg:#071b2b;--surface:#102e42;--surface-secondary:#133c53;--surface-elevated:#244359;--surface-rgb:16,46,66;--text-primary:#f2f5fa;--text-secondary:#b3bfd0;--accent:#278dff;--accent-secondary:#38b8d5;--ambient:#38b8d5;--border:color-mix(in srgb,var(--text-secondary) 19%,transparent);--separator:color-mix(in srgb,var(--text-secondary) 12%,transparent);--radius:24px;--gap:13px;--pad:18px;--glass-opacity:.875;--glass-blur:12px;--glass-highlight:.14;--glass-reflection:.06;--glass-level:.5;--shadow:0 5px 16px #0003;--motion-micro:140ms;--motion-normal:220ms;--motion-page:320ms;--ease-out:cubic-bezier(.22,.8,.22,1)}
:root[data-theme=light]{color-scheme:light}:root[data-theme=black]{color-scheme:dark}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--app-bg);color:var(--text-primary);transition:background-color var(--motion-normal),color var(--motion-normal)}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button{cursor:pointer;border:0;transition:transform var(--motion-micro),background-color var(--motion-normal),border-color var(--motion-normal),color var(--motion-normal)}
button:active{transform:scale(.975)}button:disabled{opacity:.5;cursor:wait}
button,a{min-height:44px}a{color:var(--accent);text-decoration:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
input,select,textarea{width:100%;min-width:0;max-width:100%;font-size:16px;padding:13px 14px;background:var(--surface-secondary);border:1px solid var(--border);border-radius:14px}
select{text-overflow:ellipsis}textarea{min-height:100px;resize:vertical}input[type=range]{padding:0;min-height:44px;accent-color:var(--accent);border:0;background:none}
.lesson-note{padding:18px;margin:18px 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.lesson-note .section-head{margin:0}.note-text{white-space:pre-wrap;overflow-wrap:anywhere}.note-label{display:flex;flex-direction:column;gap:10px}
.note-label textarea{min-height:140px;max-height:45vh;line-height:1.5}.note-counter{text-align:end}.note-feedback{font-size:13px;overflow-wrap:anywhere}
.note-editor-actions{position:sticky;bottom:0;display:flex;gap:10px;z-index:1;padding:10px 0;background:var(--surface)}
dialog:has(.note-editor){max-height:calc(var(--note-viewport-height,100dvh) - 16px);margin-top:auto;margin-bottom:var(--note-keyboard-inset,0px);scroll-padding-bottom:100px}
.hero-lesson-open{margin-top:14px;font-size:13px}
h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,7vw,38px);line-height:1.1;letter-spacing:-1.2px;font-weight:760}h2{font-size:22px;line-height:1.25;letter-spacing:-.5px}h3{font-size:18px;line-height:1.3;letter-spacing:-.3px}strong{font-weight:650}
small,.muted{color:var(--text-secondary);font-size:13px;line-height:1.5}.muted{overflow-wrap:anywhere}img{display:block}
.aurora{position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 110% 2%,color-mix(in srgb,var(--ambient) 22%,transparent),transparent 45%),radial-gradient(ellipse at -30% 70%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 48%)}
[data-background=none] .aurora{display:none}[data-background=gradient] .aurora{background:linear-gradient(155deg,color-mix(in srgb,var(--ambient) 12%,transparent),transparent 65%)}[data-background=glow] .aurora{background:radial-gradient(ellipse at 80% 0%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 60%)}[data-theme=black] .aurora{opacity:.12}
.app{max-width:600px;margin:auto;padding:env(safe-area-inset-top) 22px calc(112px + env(safe-area-inset-bottom));min-height:100dvh}
.topbar{min-height:78px;display:flex;align-items:center;gap:10px}.product-logo{object-fit:cover;border-radius:18%;flex-shrink:0;width:44px;height:44px}.brand{font-size:14px;letter-spacing:-.2px;font-weight:650;flex:1;min-width:0}.brand small{display:block;font-size:11px;font-weight:450;letter-spacing:.2px;margin-top:4px}
.icon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.settings-icon{object-fit:contain;filter:drop-shadow(0 1px 2px #0002)}[data-theme=light] .settings-icon{filter:invert(1)}.settings-emblem{width:66px;height:66px}
.icon-button{border-radius:50%;width:44px;height:44px;display:grid;place-items:center;flex-shrink:0;background:color-mix(in srgb,var(--surface) 75%,transparent);border:1px solid var(--border)}
.stack{display:flex;flex-direction:column;gap:var(--gap)}.row{display:flex;align-items:center;gap:12px}.spread{justify-content:space-between}.grow{flex:1;min-width:0}.section-head{margin:22px 0 14px}.section-head:first-child{margin-top:12px}.section-head p{margin-top:8px}.eyebrow{display:block;text-transform:uppercase;letter-spacing:1.7px;font-size:10px;font-weight:700;color:var(--text-secondary);margin-bottom:16px}
.primary,.secondary,.quiet{display:inline-flex;justify-content:center;align-items:center;gap:9px;border-radius:16px;padding:12px 17px;font-weight:580;text-align:center}
.primary{background:linear-gradient(110deg,var(--accent),color-mix(in srgb,var(--accent-secondary) 60%,var(--accent)));color:#fff;border:1px solid #ffffff3d;box-shadow:0 5px 18px color-mix(in srgb,var(--accent) 18%,transparent)}
.secondary{background:var(--surface-secondary);border:1px solid var(--border)}.quiet{background:transparent;color:var(--text-secondary);font-size:13px}.wide{width:100%}.danger{color:#ed7185}.primary.danger{color:white;background:#a62441}
.segments{display:flex;gap:3px;padding:4px;background:color-mix(in srgb,var(--surface) 70%,transparent);border:1px solid var(--border);border-radius:18px;margin:20px 0}
.segments button{flex:1;min-width:0;border-radius:13px;background:transparent;padding:7px 5px;color:var(--text-secondary);font-size:12px;min-height:38px}.segments button.selected{background:var(--surface-secondary);color:var(--text-primary);box-shadow:0 2px 7px #0002}
.date-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:12px 0 18px}.date-strip button{display:flex;flex-direction:column;gap:6px;align-items:center;padding:9px 2px;background:transparent;border-radius:17px;min-height:52px;font-size:16px}.date-strip small{font-size:10px}.date-strip .selected{background:linear-gradient(155deg,var(--accent),var(--accent-secondary));color:white;box-shadow:0 5px 17px color-mix(in srgb,var(--accent) 24%,transparent)}.date-strip .selected small{color:white}
.hero{position:relative;isolation:isolate;overflow:hidden;border-radius:30px;padding:28px 26px;background:radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--ambient) 28%,transparent),transparent 65%),linear-gradient(145deg,var(--surface-secondary),var(--surface));border:1px solid color-mix(in srgb,var(--ambient) 35%,var(--border));box-shadow:inset 0 1px 0 #ffffff24,0 18px 50px #0002;min-height:280px}
.hero:after{content:'';position:absolute;z-index:-1;pointer-events:none;width:190px;height:190px;inset:auto -85px -80px auto;border-radius:50%;border:25px solid color-mix(in srgb,var(--ambient) 12%,transparent);outline:1px solid color-mix(in srgb,var(--ambient) 14%,transparent)}
.hero h2{font-size:27px;line-height:1.12;letter-spacing:-.9px;margin:18px 0 14px;max-width:90%}.hero-time{font-size:clamp(26px,7.5vw,46px);font-weight:720;letter-spacing:-1.4px;line-height:1.2;font-variant-numeric:tabular-nums}.hero .muted{margin-top:8px;font-size:13px}.hero .live-countdown{font-size:15px;font-weight:600;margin-top:20px;color:var(--text-primary)}.badge{display:inline-flex;align-items:center;gap:7px;background:color-mix(in srgb,var(--accent) 13%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);color:var(--text-primary);padding:4px 9px;font-size:11px;border-radius:8px}.badge:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--accent)}
.progress{height:5px;background:#8facc42b;overflow:hidden;border-radius:10px;margin:20px 0 12px}.progress span{display:block;height:100%;transform-origin:left;background:var(--accent);transition:transform 250ms}
[data-theme=black] .hero{background:#050505;box-shadow:inset 0 1px 0 #ffffff0d}[data-theme=black] .hero:after{opacity:.3}
.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:22px 0;border-bottom:1px solid var(--separator)}.summary-strip strong{display:block;font-size:23px;letter-spacing:-.7px}.summary-strip small{font-size:11px}.summary-strip p{grid-column:1/-1;font-size:12px;margin-top:8px}
.timeline{position:relative;display:flex;flex-direction:column;gap:12px;padding-inline-start:19px}.timeline:before{content:'';position:absolute;inset:8px auto 10px 4px;width:1px;background:var(--border)}[dir=rtl] .timeline:before{inset:8px 4px 10px auto}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad);min-width:0;overflow-wrap:anywhere}
.lesson{position:relative;padding:17px 18px;border-radius:18px;background:color-mix(in srgb,var(--surface) 65%,transparent);border:1px solid var(--separator);min-width:0}
.lesson:before{content:'';position:absolute;inset:24px auto auto -19px;width:9px;height:9px;border-radius:50%;background:var(--text-secondary);box-shadow:0 0 0 4px var(--app-bg)}[dir=rtl] .lesson:before{inset:24px -19px auto auto}.lesson.active{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.lesson.active:before{background:var(--accent)}.lesson.past{opacity:.74}
.lesson .time{font-size:12px;font-weight:650;color:var(--text-secondary);font-variant-numeric:tabular-nums}.lesson h3{margin:7px 0 8px}.lesson .meta{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:var(--text-secondary);margin-top:3px}.meta .icon{width:13px;height:16px}.lesson-open{position:absolute;inset:0;background:transparent;color:transparent;border-radius:inherit;font-size:0}.lesson-open:focus-visible{outline-offset:2px}
.gap-card{text-align:start;background:transparent;color:var(--text-secondary);font-size:12px;padding:7px 2px;border-radius:12px;min-height:44px}
.today-context{margin-top:30px}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menu-row{display:flex;gap:12px;align-items:center;text-align:start;width:100%;min-height:74px;color:var(--text-primary);padding:15px;border-radius:17px}.menu-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:color-mix(in srgb,var(--accent) 14%,var(--surface-secondary));color:var(--text-primary);flex-shrink:0}.menu-row small{display:block;margin-top:4px;font-size:11px}.menu-row .arrow{margin-inline-start:auto;opacity:.5}.quick-actions .menu-row{display:block;background:transparent;border:1px solid var(--separator);min-height:125px}.quick-actions .menu-icon{margin-bottom:14px}.quick-actions .grow{display:block}.quick-actions .arrow{display:none}.quick-actions strong{font-size:13px}
.bottom-nav,dialog,#toast{background:linear-gradient(135deg,rgba(255,255,255,var(--glass-reflection)),transparent 65%),rgba(var(--surface-rgb),var(--glass-opacity));border:1px solid var(--border);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,var(--glass-highlight));backdrop-filter:blur(var(--glass-blur)) saturate(calc(1 + var(--glass-level)*.4));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(calc(1 + var(--glass-level)*.4))}
.bottom-nav{position:fixed;isolation:isolate;z-index:20;bottom:max(12px,env(safe-area-inset-bottom));inset-inline-start:50%;transform:translateX(-50%);width:min(calc(100% - 28px),500px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:6px;border-radius:27px}
[dir=rtl] .bottom-nav{transform:translateX(50%)}.bottom-nav:before{content:'';position:absolute;z-index:-1;inset:6px auto auto 6px;width:calc((100% - 12px)/4);height:60px;border-radius:21px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 21%,transparent),color-mix(in srgb,var(--ambient) 13%,transparent));border:1px solid #ffffff12;transform:translateX(calc(var(--nav-index,0)*100%));transition:transform var(--motion-normal) var(--ease-out)}
[dir=rtl] .bottom-nav:before{inset:6px 6px auto auto;transform:translateX(calc(var(--nav-index,0)*-100%))}
.bottom-nav button{background:none;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:var(--text-secondary);font-size:10px;line-height:1.15;border-radius:20px;min-height:60px;padding:7px 2px}.bottom-nav .selected{color:var(--text-primary)}.bottom-nav .settings-icon{width:25px;height:25px}
.week-grid{display:grid;gap:12px}.week-day{padding:0;overflow:hidden;border-radius:21px}.week-day summary{list-style:none;min-height:66px;padding:17px;display:flex;align-items:center;gap:12px;cursor:pointer}.week-day summary::-webkit-details-marker{display:none}.week-day summary strong{font-size:14px}.week-day summary small{margin-inline-start:auto;font-size:11px}.week-day summary:after{content:'+';font-size:20px}.week-day[open] summary:after{content:'−'}.week-day[open]{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.week-day .timeline{margin:2px 16px 18px}.week-day .lesson{background:transparent;border:0;padding:8px}.week-day .lesson h3{font-size:16px}.week-day[open] .timeline{animation:enter var(--motion-normal)}
dialog{color:var(--text-primary);width:min(100%,560px);max-height:91dvh;margin:auto auto 0;padding:12px 22px max(30px,env(safe-area-inset-bottom));border-radius:28px 28px 0 0;overflow:auto}
dialog::backdrop{background:#0008}dialog[open]{animation:sheet-in var(--motion-page) var(--ease-out)}.sheet-handle{width:36px;height:4px;border-radius:6px;margin:0 auto 20px;background:var(--text-secondary);opacity:.45}.sheet-head{margin-bottom:24px}.sheet-head h2{font-size:22px}.close{margin-inline-start:auto}#sheet-body>.primary,#sheet-body>.secondary{margin-top:12px}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin:18px 0}.calendar-grid small{text-align:center;font-size:11px}.calendar-grid button{position:relative;background:none;border-radius:14px;padding:8px 0;min-height:49px;font-variant-numeric:tabular-nums}.calendar-grid .today{box-shadow:inset 0 0 0 1px var(--accent)}.calendar-grid .selected{background:var(--accent);color:#fff}.dots{height:5px;margin-top:5px;display:flex;justify-content:center;gap:3px}:root{--calendar-schedule:#079ad4;--calendar-elective:#aa65ed;--calendar-plan:#ed9b20;--calendar-session:#ef626d}.dot{width:5px;height:5px;border-radius:50%;background:var(--calendar-schedule);box-shadow:0 0 0 1px color-mix(in srgb,var(--surface) 65%,transparent)}.dot.plan{background:var(--calendar-plan)}.dot.elective{background:var(--calendar-elective)}.dot.session{background:var(--calendar-session)}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px 14px}.calendar-key{display:inline-flex;align-items:center;gap:6px}.calendar-key .dot{flex-shrink:0}.calendar-layout{display:grid;gap:18px}.calendar-main{min-width:0}.calendar-selected-panel{padding:16px 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.calendar-selected-panel .lesson:before{display:none}.calendar-selected-panel .lesson{padding:12px 0;border:0;background:none}.calendar-selected-panel .row h3{font-size:16px}.calendar-legend{font-size:11px;margin:16px 0}.calendar-content{animation:calendar-in var(--motion-normal)}.calendar-swipe-next{animation-name:calendar-next}.calendar-swipe-prev{animation-name:calendar-prev}
.form{display:flex;flex-direction:column;gap:18px}.form label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--text-secondary)}.form .row>*{flex:1;min-width:0}.form-error,.conflict-warning{color:#eea2ad}.conflict-warning{background:color-mix(in srgb,#bc7a30 16%,var(--surface));border:1px solid #d4a05255;padding:16px;border-radius:17px;font-size:13px}.conflict-warning p{margin-top:8px}.conflict-warning button{margin-top:12px}
.planner-list,.planner-actions{min-width:0}.planner-actions{margin-top:28px}.plan-group{display:flex;flex-direction:column;gap:10px}.plan-group .section-head{font-size:14px;letter-spacing:1px;margin-top:20px}.lesson.personal{border-inline-start:3px solid #b199d9;background:color-mix(in srgb,#a588ce 7%,var(--surface));padding:18px}.personal:before{display:none}.personal.expired{opacity:.7}.personal.completed h3{text-decoration:line-through;color:var(--text-secondary)}.plan-controls{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.plan-controls button{font-size:12px}.planner-empty{padding:34px 8px;display:flex;flex-direction:column;gap:20px}.planner-empty>.icon{width:56px;height:56px;color:var(--accent)}
.settings-layout{display:grid;gap:28px}.settings-section{padding:22px 0;border-bottom:1px solid var(--separator)}.settings-section:first-child{padding-top:0}.settings-section .menu-row{border:0;border-radius:0;background:none;padding:13px 0;border-bottom:1px solid var(--separator)}.settings-section .menu-row:last-child{border:0}.settings-preview{display:none}.choices{display:flex;flex-wrap:wrap;gap:7px}.choices button{flex:1;padding:10px 9px;min-width:70px;background:var(--surface);border:1px solid var(--border);border-radius:14px;font-size:12px}.choices button.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}
.style-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px}.style-tile{padding:0 0 9px;border:1px solid var(--border);background:var(--surface);border-radius:17px;position:relative;overflow:hidden;text-align:start;min-width:0}.style-tile strong{display:block;font-size:11px;margin:9px 10px 0}.style-tile>.icon{position:absolute;width:15px;height:15px;top:9px;right:9px;color:#fff;background:#0006;border-radius:50%;padding:2px}.style-tile.selected{outline:2px solid var(--accent);outline-offset:3px}.style-scene{height:100px;display:flex;gap:7px;flex-direction:column;padding:19px 12px;background:radial-gradient(ellipse at 95% 0%,var(--tile-light),transparent 75%),var(--tile-bg)}.style-scene i{display:block;border-radius:5px;background:var(--tile-surface);height:11px;border:1px solid #ffffff26}.style-scene i:first-child{height:26px}.style-scene i:last-child{width:64%}
.style-feature{width:100%;display:grid;grid-template-columns:90px 1fr;text-align:start;gap:6px 20px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:18px;color:var(--text-primary)}.style-feature>small{grid-column:2}.style-mini{grid-row:1/3;height:102px;display:flex;flex-direction:column;gap:8px;padding:12px;background:linear-gradient(140deg,var(--surface-secondary),var(--app-bg));border:1px solid var(--border);border-radius:15px}.style-mini span{font-size:10px}.style-mini i{height:18px;background:color-mix(in srgb,var(--accent) 24%,var(--surface));border-radius:5px}
.swatches{display:flex;gap:13px;flex-wrap:wrap}.swatch{width:44px;height:44px;display:grid;place-items:center;min-height:44px;border-radius:50%;color:white;border:4px solid var(--app-bg);outline:1px solid var(--border)}.swatch.selected{outline:2px solid var(--text-primary)}.swatch .icon{width:16px;height:16px}.preview-card h2{font-size:24px}.preview-rail{display:flex;align-items:center;gap:10px;margin:22px 0;font-size:12px}.preview-rail i{height:28px;width:4px;border-radius:6px;background:var(--accent)}.mini-nav{display:flex;justify-content:space-around;padding:12px 0;border-top:1px solid var(--border)}
.welcome{padding:24px 0 34px}.welcome>.product-logo{width:88px;height:88px;margin-bottom:26px}.welcome h1{font-size:clamp(34px,8vw,52px);line-height:1.06;max-width:540px;margin-bottom:22px}.welcome .muted{max-width:430px}.onboarding-form{padding:24px;background:color-mix(in srgb,var(--surface) 75%,transparent);border:1px solid var(--border);border-radius:26px}.onboarding-form>.muted{text-align:center;font-size:11px}
.empty{padding:24px 8px;color:var(--text-secondary);font-size:14px;display:flex;flex-direction:column;gap:12px;align-items:center;text-align:center}.empty>.icon{width:34px;height:34px;color:var(--accent)}.class-detail{display:flex;flex-direction:column;gap:12px}.detail-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.detail-actions a{display:flex;align-items:center}.service-row{display:flex;align-items:center;gap:9px}.search-results{display:flex;flex-direction:column;max-height:65dvh;overflow:auto;margin-top:16px}.command-row{display:flex;align-items:center;gap:12px;min-height:54px;padding:12px 8px;background:none;border-bottom:1px solid var(--separator);text-align:start;border-radius:10px}.command-row small{display:block;margin-top:4px;font-size:11px}.import-label{display:flex;flex-direction:column;gap:10px;font-size:13px}
#toast{position:fixed;z-index:100;bottom:108px;left:50%;transform:translateX(-50%);max-width:min(90%,500px);width:max-content;border-radius:18px;padding:13px 20px;font-size:13px}#toast:not([hidden]){animation:toast-in var(--motion-normal)}#offline{padding:10px 14px;border:1px solid var(--border);border-radius:14px;font-size:12px;color:var(--text-secondary);background:var(--surface);margin-bottom:10px}
.footer-note{text-align:center;margin:36px 0 0;color:var(--text-secondary);font-size:10px;letter-spacing:1px}.install-steps{line-height:1.8;display:flex;flex-direction:column;gap:16px}
.skeleton{height:64px;background:var(--surface);border-radius:22px;margin:16px 0;position:relative;overflow:hidden}.skeleton.hero{height:320px}.skeleton:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent,#ffffff12,transparent);animation:skeleton-sweep 1.5s infinite;transform:translateX(-100%)}
.page-enter{animation:enter var(--motion-page) var(--ease-out)}main.content-ready{animation:content-crossfade var(--motion-page)}.timeline>.lesson{animation:enter 280ms var(--ease-out) backwards}.timeline>.lesson:nth-child(2){animation-delay:25ms}.timeline>.lesson:nth-child(3){animation-delay:50ms}.timeline>.lesson:nth-child(4){animation-delay:75ms}
[hidden]{display:none!important}@keyframes enter{from{opacity:.25;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes sheet-in{from{opacity:0;transform:translateY(45px)}to{opacity:1;transform:none}}@keyframes content-crossfade{from{opacity:.25}to{opacity:1}}@keyframes skeleton-sweep{to{transform:translateX(100%)}}@keyframes toast-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}@keyframes calendar-in{from{opacity:.2}to{opacity:1}}@keyframes calendar-next{from{opacity:.2;transform:translateX(18px)}to{opacity:1;transform:none}}@keyframes calendar-prev{from{opacity:.2;transform:translateX(-18px)}to{opacity:1;transform:none}}
@media(hover:hover) and (pointer:fine){button:hover:not(:disabled),a:hover{filter:brightness(1.08)}.primary:hover,.style-tile:hover,.style-feature:hover{transform:translateY(-3px)}.menu-row:hover,.command-row:hover,.calendar-grid button:hover{background:color-mix(in srgb,var(--accent) 9%,var(--surface))}.lesson:has(.lesson-open:hover){border-color:color-mix(in srgb,var(--accent) 45%,var(--border));transform:translateX(2px)}.bottom-nav button:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}a:hover{text-decoration:underline}}
@media(max-width:360px){.app{padding-inline:14px}.topbar{gap:6px}.brand{font-size:12px}.topbar .product-logo{width:34px;height:34px}.hero{padding:24px 20px}.hero h2{font-size:25px}.onboarding-form{padding:18px}.quick-actions{gap:8px}.style-gallery{gap:12px 8px}.bottom-nav button{font-size:9px}.calendar-grid{gap:1px}}
@media(min-width:768px){.app{max-width:1120px;padding-inline:36px}.today-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.8fr);gap:28px}.today-context{margin-top:0}.quick-actions{grid-template-columns:1fr}.quick-actions .menu-row{display:flex;min-height:78px;padding:16px}.quick-actions .menu-icon{margin:0}.quick-actions .grow{display:block}.hero{min-height:300px}.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout{grid-template-columns:minmax(0,1.4fr) minmax(230px,.8fr)}.settings-preview{display:block;position:sticky;top:28px;align-self:start}.settings-preview>.muted{margin-top:22px}.settings-primary{min-width:0}.style-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}dialog{margin:auto;border-radius:28px;width:560px}dialog:has(.calendar-grid){width:min(860px,92vw)}.calendar-layout{grid-template-columns:minmax(0,1.1fr) minmax(230px,1fr)}.calendar-selected-panel{max-height:460px;overflow:auto;padding:0 16px;border:0;border-inline-start:1px solid var(--border)}.calendar-grid button{min-height:52px}.calendar-content{min-height:440px}.calendar-main{min-width:0}}
@media(min-width:1024px){.app{max-width:1660px;padding:10px 42px 56px 252px}.topbar{border-bottom:1px solid var(--border);margin-bottom:26px;min-height:85px}.brand{font-size:16px}.brand small{font-size:12px}h1{font-size:40px}.bottom-nav{inset:142px auto auto 24px;transform:none!important;width:198px;display:flex;flex-direction:column;padding:9px;border-radius:24px}.bottom-nav button{flex-direction:row;justify-content:flex-start;text-align:start;gap:13px;font-size:13px;height:58px;min-height:58px;padding:12px 14px}.bottom-nav:before,[dir=rtl] .bottom-nav:before{inset:9px auto auto 9px;width:calc(100% - 18px);height:58px;transform:translateY(calc(var(--nav-index,0)*58px));border-radius:17px}[dir=rtl] .app{padding:10px 252px 56px 42px}[dir=rtl] .bottom-nav{inset:142px 24px auto auto}.today-layout{gap:34px;grid-template-columns:minmax(0,1.45fr) minmax(250px,.85fr)}.hero{min-height:310px;padding:32px}.hero h2{font-size:34px}.today-context{position:sticky;top:30px;align-self:start}.date-strip{max-width:720px}.segments{max-width:720px}.week-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.week-day summary{flex-wrap:wrap}.week-day summary small{margin:0}.week-day .timeline{margin-inline:12px;padding-inline-start:12px}.week-day .lesson:before{display:none}.week-day .timeline:before{display:none}.week-day .lesson h3{font-size:15px}
[data-screen=planner] main{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:0 30px;align-items:start}[data-screen=planner] main>.section-head{grid-column:1/-1}.planner-actions{margin-top:20px;position:sticky;top:30px}
[data-screen=onboarding] main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:45px;align-items:center;min-height:65vh}.welcome h1{font-size:49px}.onboarding-form{padding:30px}#toast{bottom:32px}.settings-layout{gap:40px}.settings-preview .hero-time{font-size:48px}
}
@media(min-width:1440px){.today-layout{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:48px}.quick-actions{grid-template-columns:1fr 1fr}.quick-actions .menu-row{display:block;min-height:125px}.quick-actions .menu-icon{margin-bottom:16px}.week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.style-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Second visual review: put the live schedule alongside the hero on large screens. */
@media(min-width:1024px){.today-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:0 36px}.today-main{display:contents}.today-main>.hero{grid-column:1;grid-row:1}.today-main>.summary-strip{grid-column:1;grid-row:2}.today-main>.section-head{grid-column:2;grid-row:1;margin-top:0;align-self:start}.today-main>.timeline{grid-column:2;grid-row:1/span 4;margin-top:58px}.today-context{grid-column:1;grid-row:3;position:static;margin-top:28px}.quick-actions{grid-template-columns:1fr 1fr}.quick-actions .menu-row{min-height:108px;display:block}.quick-actions .menu-icon{margin-bottom:10px}.today-main .hero h2{font-size:30px}.today-main .hero-time{font-size:36px}}
/* Optical material: blur only on the hero and floating surfaces. */
body{isolation:isolate}
.aurora{overflow:hidden}
.aurora:before,.aurora:after{content:'';position:absolute;inset:-15%;background:radial-gradient(ellipse at 22% 72%,color-mix(in srgb,var(--ambient) 23%,transparent),transparent 48%),radial-gradient(ellipse at 86% 28%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 44%);animation:ambient-drift 32s ease-in-out infinite alternate}
.aurora:after{opacity:.5;transform:rotate(8deg);animation-duration:39s;animation-direction:alternate-reverse}
[data-background=gradient] .aurora:before{opacity:.32;animation:none}[data-background=gradient] .aurora:after{display:none}
[data-background=glow] .aurora:before{background:radial-gradient(ellipse at 75% 75%,color-mix(in srgb,var(--ambient) 19%,transparent),transparent 40%);animation-duration:38s}[data-background=glow] .aurora:after{display:none}
.bottom-nav,dialog,#toast,.hero{background:linear-gradient(125deg,rgba(255,255,255,var(--glass-reflection)),transparent 48%),rgba(var(--surface-rgb),var(--glass-opacity));border-color:color-mix(in srgb,var(--text-secondary) 25%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,var(--glass-highlight)),inset 1px 0 0 #ffffff08,inset 0 -1px 0 #00000024,0 2px 5px #00000016,0 18px 48px #0000001c;backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation,1.35)) brightness(1.02) contrast(1.02);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation,1.35)) brightness(1.02) contrast(1.02)}
.hero{background:radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--ambient) 16%,transparent),transparent 65%),rgba(var(--surface-rgb),var(--glass-opacity))}
[data-theme=black] .hero{background:rgba(0,0,0,var(--glass-opacity));box-shadow:inset 0 1px 0 #ffffff24,0 14px 40px #0008}
.hero:before,.bottom-nav:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(ellipse at var(--pointer-x,24%) var(--pointer-y,0%),rgba(255,255,255,var(--glass-reflection)),transparent 60%),linear-gradient(175deg,rgba(255,255,255,var(--glass-reflection)),transparent 25%,transparent 80%,color-mix(in srgb,var(--ambient) 5%,transparent));z-index:-1}
.hero:after{animation:hero-light 27s ease-in-out infinite alternate}
.bottom-nav:before{background:linear-gradient(165deg,#ffffff20,transparent 48%),color-mix(in srgb,var(--accent) 12%,transparent);border-color:rgba(255,255,255,var(--glass-highlight));box-shadow:inset 0 1px 0 #ffffff33,inset 0 -1px 0 #0002,0 3px 9px #0002;transition:transform 300ms cubic-bezier(.2,.78,.18,1)}
dialog{background:radial-gradient(ellipse at var(--pointer-x,8%) var(--pointer-y,0%),rgba(255,255,255,var(--glass-reflection)),transparent 56%),rgba(var(--surface-rgb),var(--glass-opacity));box-shadow:inset 0 1px 0 rgba(255,255,255,var(--glass-highlight)),0 32px 90px #0005}
dialog::backdrop{background:#0006;animation:calendar-in 240ms ease-out}
.preview-card .mini-nav,.icon-button,.secondary{background:linear-gradient(150deg,rgba(255,255,255,var(--glass-reflection)),transparent 65%),color-mix(in srgb,var(--surface-secondary) calc(100% - var(--glass-level)*85%),transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,var(--glass-highlight)),0 2px 5px #00000012}
.icon,.settings-icon{transition:transform 200ms var(--ease-out)}
.menu-row,.command-row,.style-tile,.style-feature,.week-day,.personal,.calendar-grid button,.swatch{transition:transform 200ms var(--ease-out),border-color 200ms,background-color 200ms,box-shadow 200ms}
.calendar-grid .selected{background:linear-gradient(150deg,#ffffff24,transparent),var(--accent);box-shadow:inset 0 1px 0 #ffffff55,0 4px 12px color-mix(in srgb,var(--accent) 22%,transparent);animation:date-settle 220ms var(--ease-out)}
.dots{transition:transform 200ms}.personal.completed .icon{stroke-dasharray:30;animation:check-draw 260ms ease-out}
.progress span{transition:transform 15s linear}
.today-main>.hero{animation:enter 280ms var(--ease-out)}.summary-strip{animation:enter 300ms 25ms backwards}
#toast{transition:opacity 200ms,transform 200ms}#toast.leaving{opacity:0;transform:translate(-50%,6px) scale(.99)}
input[type=range]{appearance:none;-webkit-appearance:none;background:transparent}
input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:12px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--surface-secondary) 15%,transparent));border:1px solid var(--border);box-shadow:inset 0 1px 3px #0002}
input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:26px;height:26px;margin-top:-10px;border-radius:50%;border:1px solid #ffffff99;background:radial-gradient(circle at 32% 22%,#ffffffcc,transparent 60%),color-mix(in srgb,var(--accent) 30%,var(--surface));box-shadow:inset 0 1px 2px #fff8,0 3px 10px #0004}
input[type=range]::-moz-range-track{height:8px;border-radius:12px;background:linear-gradient(90deg,var(--accent),transparent);border:1px solid var(--border)}
input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;border:1px solid #ffffff99;background:radial-gradient(circle at 32% 22%,#ffffffcc,transparent 60%),var(--surface);box-shadow:0 3px 10px #0004}
@media(hover:hover) and (pointer:fine){
 button:hover:not(:disabled),a:hover{filter:none}
 .primary:hover,.secondary:hover,.icon-button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--text-primary) 40%,transparent);box-shadow:inset 0 1px 0 #ffffff40,0 7px 18px #0002}
 .quick-actions .menu-row:hover,.style-feature:hover,.personal:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));box-shadow:0 7px 22px #00000018}
 .style-tile:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 8px 20px #0002}.style-tile:hover .style-scene i{transform:translateY(-1px)}.style-scene i{transition:transform 200ms}
 .swatch:hover{transform:scale(1.08);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 12%,transparent)}
 .calendar-grid button:hover,.date-strip button:hover{transform:translateY(-1px)}.calendar-grid button:hover .dots{transform:translateY(1px) scale(1.15)}
 .week-day:hover{border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}
 .bottom-nav button:hover .icon,.menu-row:hover .menu-icon .icon{transform:translateY(-1px)}
 .icon-button:hover:has(.settings-icon) .icon,.menu-row:hover .settings-icon{transform:rotate(12deg)}
 .icon-button:hover:has(path[d^="M21 21"]) .icon{transform:scale(1.06)}
 button:hover:has(path[d^="M12 4"]) .icon{transform:rotate(8deg)}
 button:hover:has(path[d^="M12 15"]) .icon{transform:translateY(-2px)}
 .command-row:hover{transform:translateX(2px)}[dir=rtl] .command-row:hover{transform:translateX(-2px)}
 button:active:not(:disabled){transform:translateY(0) scale(.975)}
}
@keyframes ambient-drift{from{transform:translate(-2%,1%) scale(1)}to{transform:translate(3%,-2%) scale(1.06)}}
@keyframes hero-light{to{transform:translate(-6px,-4px) rotate(6deg)}}
@keyframes date-settle{from{opacity:.6;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@keyframes check-draw{from{stroke-dashoffset:30}to{stroke-dashoffset:0}}
[data-motion-paused] .aurora:before,[data-motion-paused] .aurora:after,[data-motion-paused] .hero:after{animation-play-state:paused}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.bottom-nav,dialog,#toast,.hero{background:var(--surface)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:hover,button:active,.menu-row:hover,.personal:hover,.command-row:hover,.icon-button:hover .icon,.menu-row:hover .icon,.bottom-nav button:hover .icon,.style-tile:hover .style-scene i{transform:none!important}}
@media(update:slow){.bottom-nav,dialog,#toast,.hero{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface)}}

/* Spatial edition: open editorial hero, instrument surface and structured workspace. */
:root{--radius:20px;--ease-out:cubic-bezier(.18,.78,.2,1)}
.app{padding-inline:24px}.topbar{min-height:88px}.brand{font-size:12px;letter-spacing:.1px}.topbar .product-logo{width:34px;height:34px}.topbar .icon-button{width:40px;height:40px;min-height:44px}
h1{font-size:clamp(34px,9vw,52px);letter-spacing:-1.8px;font-weight:740}.section-head{margin:28px 0 16px}.section-head p{font-size:13px}.eyebrow{font-size:10px;letter-spacing:2.1px}
.aurora{background:radial-gradient(ellipse at 100% 8%,color-mix(in srgb,var(--ambient) 16%,transparent),transparent 55%)}
.aurora:before{background:radial-gradient(ellipse at 90% 10%,color-mix(in srgb,var(--ambient) 26%,transparent),transparent 48%),radial-gradient(ellipse at 0% 86%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 52%)}
.aurora:after{background:conic-gradient(from 220deg at 75% 30%,transparent 0deg,color-mix(in srgb,var(--ambient) 10%,transparent) 60deg,transparent 140deg);opacity:.8}
[data-background=gradient] .aurora{background:linear-gradient(125deg,color-mix(in srgb,var(--ambient) 9%,transparent),transparent 75%)}
[data-background=glow] .aurora{background:radial-gradient(ellipse at 55% 12%,color-mix(in srgb,var(--ambient) 26%,transparent),transparent 35%)}
.segments{width:fit-content;max-width:100%;margin:24px 0 12px;border-radius:100px;padding:4px;border-color:var(--separator);gap:2px}.segments button{min-width:64px;padding:9px 13px;border-radius:100px;min-height:40px;font-size:11px}.segments button.selected{background:var(--text-primary);color:var(--app-bg);box-shadow:none}
.date-strip{gap:0;border-bottom:1px solid var(--separator);padding-bottom:12px;margin-bottom:24px}.date-strip button{border-radius:14px;gap:7px;min-height:62px;font-size:18px}.date-strip .selected{background:color-mix(in srgb,var(--accent) 18%,transparent);box-shadow:inset 0 -2px 0 var(--accent);color:var(--text-primary)}.date-strip .selected small{color:var(--accent)}
.hero.live-hero,[data-theme=black] .hero.live-hero{display:grid;gap:22px;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:12px 0 28px;min-height:0;overflow:visible;isolation:isolate}
.live-hero:after{display:none}.live-hero:before{inset:-20px -12px 0;opacity:.45;background:radial-gradient(ellipse at var(--pointer-x,85%) var(--pointer-y,20%),color-mix(in srgb,var(--ambient) 16%,transparent),transparent 68%)}
.hero.live-hero h2{font-size:clamp(32px,9vw,48px);line-height:1.04;letter-spacing:-1.5px;max-width:100%;margin:22px 0 12px;overflow-wrap:anywhere;font-weight:710}.hero-type{font-size:12px;color:var(--accent);margin:0 0 20px;letter-spacing:.4px}.live-hero .badge{background:none;border:0;padding:0;color:var(--accent);font-size:10px;text-transform:uppercase;letter-spacing:1.6px}.hero-metadata{display:grid;gap:8px}.hero-detail{display:flex;gap:9px;align-items:start;color:var(--text-secondary);font-size:12px}.hero-detail .icon{width:15px;height:18px}
.hero-instrument{padding:24px;border-radius:24px;border:1px solid var(--border);background:radial-gradient(ellipse at 0% 0%,rgba(255,255,255,var(--glass-highlight)),transparent 68%),rgba(var(--surface-rgb),var(--glass-opacity));box-shadow:inset 0 1px 0 #ffffff38,inset 0 -1px 0 #0002,0 12px 36px #0000001c;backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));position:relative;overflow:hidden}.hero-instrument:after{content:'';position:absolute;inset:auto -25% -70% 30%;height:180px;transform:rotate(-24deg);background:linear-gradient(120deg,transparent,color-mix(in srgb,var(--ambient) 10%,transparent),transparent);pointer-events:none}.hero-instrument .eyebrow{margin-bottom:12px}.hero.live-hero .hero-time{font-size:clamp(23px,6.8vw,36px);letter-spacing:-1.2px;white-space:nowrap}.hero.live-hero .live-countdown{font-size:12px;font-weight:450;color:var(--text-secondary);margin-top:12px}.live-hero .day-countdown{margin:0;font-size:11px}
.summary-strip{padding:18px 0 22px;border-top:1px solid var(--separator);gap:12px}.summary-strip>div{border-inline-start:1px solid var(--separator);padding-inline-start:12px}.summary-strip>div:first-child{border:0;padding:0}.summary-strip strong{font-size:26px;font-weight:500}.summary-strip small{font-size:10px}
.timeline{padding-inline-start:22px;gap:0}.timeline:before{background:linear-gradient(var(--accent),var(--separator) 80%)}.timeline>.lesson{border:0;border-bottom:1px solid var(--separator);background:none;border-radius:0;padding:18px 0 20px 8px}.timeline>.lesson h3{font-size:19px;letter-spacing:-.5px}.timeline>.lesson .time{font-size:11px;font-weight:550;color:var(--accent)}.timeline>.lesson:before{inset-inline-start:-21px;inset-block-start:24px;width:7px;height:7px}.timeline>.lesson.active{border-radius:0;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 10%,transparent),transparent);border-inline-start:2px solid var(--accent);padding-inline-start:14px}.timeline>.lesson.past{opacity:.8}.timeline .gap-card{text-align:start;padding:16px 8px;font-size:11px;border-bottom:1px dashed var(--separator)}
.quick-actions{gap:0;border-top:1px solid var(--separator)}.quick-actions .menu-row{display:flex;min-height:82px;border:0;border-radius:0;border-bottom:1px solid var(--separator);padding:14px 6px;gap:10px}.quick-actions .menu-icon{margin:0;width:30px;height:36px;background:none;color:var(--accent)}.quick-actions strong{font-size:12px}.quick-actions small{font-size:10px}.today-context{margin-top:32px}
.bottom-nav{width:min(calc(100% - 32px),440px);padding:7px;border-radius:30px;bottom:max(16px,env(safe-area-inset-bottom));box-shadow:inset 0 1px 0 #ffffff50,inset 0 -1px 0 #0004,0 3px 6px #0002,0 18px 46px #0004}.bottom-nav button{min-height:62px;font-size:9px;gap:7px;letter-spacing:.1px}.bottom-nav:before{inset:7px auto auto 7px;width:calc((100% - 14px)/4);height:62px;border-radius:23px}.bottom-nav .selected .icon{color:var(--accent)}[dir=rtl] .bottom-nav:before{inset:7px 7px auto auto}
.week-grid{gap:0}.week-day{border:0;border-bottom:1px solid var(--separator);background:none;border-radius:0}.week-day summary{padding:22px 0}.week-day summary strong{font-size:18px;letter-spacing:-.5px}.week-day[open] summary{color:var(--accent)}.week-day .timeline{margin-inline:0;margin-bottom:20px}.week-day .lesson{padding-block:16px}.week-day .lesson h3{font-size:16px}.week-day summary:after{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--accent) 10%,transparent);font-size:16px}
dialog{padding:12px 24px max(30px,env(safe-area-inset-bottom));border-radius:32px 32px 0 0}.sheet-head h2{font-size:28px;letter-spacing:-1px}.sheet-head{margin-bottom:28px}.calendar-grid{gap:6px;margin:24px 0}.calendar-grid button{min-height:48px;border-radius:50%;font-size:15px}.calendar-grid .selected{box-shadow:inset 0 1px 0 #fff5,0 6px 18px color-mix(in srgb,var(--accent) 24%,transparent)}.calendar-selected-panel{padding-top:24px}.calendar-selected-panel>.row{margin-bottom:14px}.calendar-selected-panel .lesson{padding:12px 14px;border-inline-start:1px solid var(--accent);border-radius:0}.calendar-selected-panel .lesson h3{font-size:17px}.calendar-legend{line-height:1.8}
.planner-list{padding-block:8px}.plan-group{gap:0}.plan-group>.section-head{text-transform:uppercase;letter-spacing:1.6px;font-size:10px;color:var(--accent);border-bottom:1px solid var(--separator);padding-bottom:16px}.lesson.personal{border:0;border-inline-start:2px solid color-mix(in srgb,var(--ambient) 70%,#b199d9);border-radius:0 18px 18px 0;background:linear-gradient(90deg,color-mix(in srgb,#a588ce 8%,transparent),transparent);margin:8px 0;padding:20px}.personal h3{font-size:23px}.personal.completed{border-inline-start-color:var(--separator)}.personal.completed h3{font-size:18px}.plan-controls .secondary{font-size:11px;border-radius:100px;padding:8px 13px}.planner-actions{padding:24px;border:1px solid var(--separator);border-radius:24px;background:color-mix(in srgb,var(--surface) 32%,transparent)}.planner-actions .menu-row{background:none;border:0;border-bottom:1px solid var(--separator);border-radius:0;padding-inline:0}.conflict-warning{border:0;border-inline-start:3px solid #d4a052;border-radius:0 16px 16px 0}
.settings-section{padding-block:26px}.settings-section .eyebrow{margin-bottom:18px}.settings-section .menu-row{padding:18px 0}.settings-section .menu-icon{background:none;color:var(--accent)}.settings-primary{gap:0}.style-feature{padding:22px;border-radius:24px;grid-template-columns:110px 1fr;background:linear-gradient(125deg,color-mix(in srgb,var(--ambient) 10%,transparent),transparent);border-color:var(--border)}.style-mini{height:132px;border-radius:16px;transform:rotate(-5deg);box-shadow:4px 8px 0 color-mix(in srgb,var(--ambient) 10%,transparent)}.style-feature strong{font-size:23px;letter-spacing:-.7px}.style-feature small{font-size:11px}.style-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px}.style-tile{border-radius:20px;padding-bottom:14px}.style-scene{height:150px;padding:28px 18px;gap:10px}.style-scene i:first-child{height:40px}.style-scene i{height:14px}.style-tile strong{font-size:12px;margin:12px 14px 0}.style-tile.selected{outline-width:1px;outline-offset:4px}.settings-preview .preview-card{border-radius:30px;min-height:360px}.glass-studio>.preview-card{margin-top:20px;min-height:220px;padding:24px}.glass-studio .preview-card h2{font-size:20px}.glass-studio .preview-rail{margin:16px 0}.glass-studio .mini-nav{padding:10px 0}
.visual-choices button{display:flex;flex-direction:column;align-items:center;gap:12px;padding:12px 8px;min-width:58px;background:transparent;border-radius:16px;flex:1}.option-sample{width:100%;height:60px;border-radius:10px;padding:12px 8px;display:flex;flex-direction:column;gap:5px;border:1px solid var(--border);background:var(--surface)}.option-sample i{height:6px;border-radius:2px;background:color-mix(in srgb,var(--text-secondary) 35%,transparent);width:100%}.option-sample i:last-child{width:60%}.option-sample.light{background:#e7eef7}.option-sample.dark{background:#17283b}.option-sample.black{background:#000}.option-sample.system{background:linear-gradient(90deg,#e7eef7 50%,#17283b 50%)}.option-sample.compact{gap:3px}.option-sample.spacious{gap:8px}.option-sample.none{background:var(--app-bg)}.option-sample.gradient{background:linear-gradient(145deg,var(--ambient),var(--app-bg))}.option-sample.aurora{position:static;background:radial-gradient(ellipse at 20% 90%,var(--ambient),transparent),var(--app-bg);z-index:auto;pointer-events:auto}.option-sample.aurora:before,.option-sample.aurora:after{display:none}.option-sample.glow{background:radial-gradient(ellipse at 60% 20%,var(--ambient),var(--app-bg) 75%)}
.search-results{gap:4px}.command-row{padding:16px 12px;min-height:70px;border:0}.command-row .icon{color:var(--accent)}dialog:has(.search-results) input[type=search]{font-size:23px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:none;padding:14px 0 20px}
@media(hover:hover) and (pointer:fine){.personal .plan-controls{opacity:.65;transition:opacity 180ms}.personal:hover .plan-controls,.personal:focus-within .plan-controls{opacity:1}.week-day:hover{background:color-mix(in srgb,var(--surface) 14%,transparent)}.quick-actions .menu-row:hover{transform:translateX(2px);box-shadow:none}.style-feature:hover .style-mini{transform:rotate(-3deg) translateY(-2px)}.style-mini{transition:transform 240ms var(--ease-out)}}
@media(min-width:768px){.app{padding-inline:40px}.today-layout{grid-template-columns:minmax(0,1.5fr) minmax(220px,1fr);gap:32px}.hero.live-hero h2{font-size:42px}.quick-actions{grid-template-columns:1fr}.settings-layout{grid-template-columns:minmax(0,1fr) 260px;gap:38px}.settings-preview{display:block;top:30px}.style-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.glass-studio>.preview-card{display:none}.calendar-grid button{min-height:60px;border-radius:18px}.calendar-selected-panel{padding:24px;background:color-mix(in srgb,var(--surface) 25%,transparent);border-radius:22px;border:1px solid var(--separator)}dialog{border-radius:30px}dialog:has(.calendar-grid){width:min(1000px,94vw)}.calendar-layout{gap:32px;grid-template-columns:1.2fr 1fr}.week-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.week-day summary strong{font-size:16px}}
@media(min-width:1024px){
 .app{max-width:1800px;padding:12px 48px 64px 158px}.topbar{margin-bottom:32px;min-height:72px}.brand{font-size:14px}.topbar .product-logo{width:38px;height:38px}h1{font-size:48px}
 .bottom-nav{inset:130px auto auto 24px;width:94px;padding:7px;border-radius:30px}.bottom-nav button{height:76px;min-height:76px;flex-direction:column;justify-content:center;padding:10px 3px;font-size:9px;gap:8px}.bottom-nav:before,[dir=rtl] .bottom-nav:before{inset:7px auto auto 7px;width:calc(100% - 14px);height:76px;border-radius:24px;transform:translateY(calc(var(--nav-index,0)*76px))}[dir=rtl] .app{padding:12px 158px 64px 48px}[dir=rtl] .bottom-nav{inset:130px 24px auto auto}
 .today-layout{grid-template-columns:minmax(0,1fr) 280px;gap:0 44px}.today-main{display:contents}.today-main>.hero{grid-column:1/-1;grid-row:1}.hero.live-hero{grid-template-columns:1.3fr 1fr;gap:32px;align-items:center;padding:16px 0 36px}.hero.live-hero h2{font-size:clamp(40px,4.5vw,68px);max-width:720px;letter-spacing:-2.5px}.hero-story{max-width:760px}.hero-instrument{padding:34px;border-radius:30px;min-height:190px;display:flex;flex-direction:column;justify-content:center}.hero.live-hero .hero-time{font-size:clamp(28px,3vw,44px)}.hero-metadata{grid-template-columns:1fr 1fr;gap:12px 20px;max-width:640px}.hero-detail:last-child{grid-column:1/-1}.live-hero .day-countdown{grid-column:1/-1}
 .today-main>.summary-strip{grid-column:1/-1;grid-row:2;max-width:none;margin-bottom:30px}.summary-strip strong{font-size:30px}.summary-strip small{font-size:11px}.today-main>.section-head{grid-column:1;grid-row:3;margin:0 0 20px}.today-main>.timeline{grid-column:1;grid-row:4;margin:0}.today-context{grid-column:2;grid-row:3/span 2;margin:0;border-inline-start:1px solid var(--separator);padding-inline-start:24px}.quick-actions{grid-template-columns:1fr}.quick-actions .menu-row{display:flex;min-height:78px}.quick-actions .menu-icon{margin:0}
 .segments{max-width:none}.date-strip{max-width:none;gap:14px}.date-strip button{flex-direction:row;justify-content:center;gap:12px;font-size:20px;min-height:52px}.date-strip small{font-size:12px}
 .week-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;align-items:stretch;border-top:1px solid var(--separator)}.week-day{padding:0 14px;border-inline-end:1px solid var(--separator)}.week-day summary{min-height:104px;padding:20px 0;align-content:start;gap:8px}.week-day summary strong{font-size:18px}.week-day summary:after{display:none}.week-day .timeline{padding:0;margin:0}.week-day .lesson h3{font-size:15px}.week-day .lesson{border-bottom:1px solid var(--separator);padding:18px 0}
 [data-screen=planner] main{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:0 48px}.planner-actions{margin-top:28px;padding:30px}.personal h3{font-size:26px}
 [data-screen=settings] .settings-layout{grid-template-columns:minmax(270px,.8fr) minmax(0,1.2fr)}[data-screen=settings] .settings-primary{border-inline-end:1px solid var(--separator);padding-inline-end:38px}[data-screen=settings] .settings-preview{padding:24px 0 0 24px}[data-screen=settings] .settings-preview .preview-card{min-height:450px;max-width:500px;margin-inline:auto;transform:rotate(2deg)}[data-screen=settings] .settings-preview>.muted{text-align:center}
 .settings-layout{grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr)}.style-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-preview{top:40px}.style-scene{height:160px}
}
@media(min-width:1440px){.app{padding-inline-start:180px;padding-inline-end:64px}.today-layout{grid-template-columns:minmax(0,1fr) 340px;gap:0 56px}.hero.live-hero{grid-template-columns:1.35fr 1fr;gap:64px}.hero-instrument{min-height:230px;padding:40px}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.week-day{padding-inline:12px}.week-day summary strong{font-size:16px}.week-day .lesson h3{font-size:14px}.week-day .lesson .meta{font-size:11px}.style-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}[dir=rtl] .app{padding-inline-start:180px;padding-inline-end:64px}}
@media(max-width:360px){.app{padding-inline:16px}.segments{width:100%}.segments button{min-width:0;flex:1;padding-inline:8px}.hero-instrument{padding:20px}.hero.live-hero h2{font-size:32px}.style-scene{height:125px;padding:20px 12px}.style-feature{grid-template-columns:80px 1fr;padding:18px}.style-mini{height:110px}.quick-actions strong{font-size:11px}.visual-choices{gap:4px}.visual-choices button{font-size:10px;padding-inline:4px}}
@media(prefers-reduced-motion:reduce){.style-feature:hover .style-mini{transform:none}.personal .plan-controls{transition:none}}
[data-background=none] .option-sample.aurora{display:flex}
.topbar .icon-button{width:44px;height:44px}
@media(max-width:767px){.topbar{min-height:72px}.section-head{margin:20px 0 12px}.segments{margin-top:18px}.date-strip{margin-bottom:18px}.hero.live-hero{gap:16px}.live-hero .hero-story{display:contents}.live-hero .hero-story>.badge{grid-row:1}.hero.live-hero .hero-story>h2{grid-row:2;margin:0}.live-hero .hero-instrument{grid-row:3;padding:20px 24px}.live-hero .hero-type{grid-row:4;margin:0}.live-hero .hero-metadata{grid-row:5}.live-hero .hero-story>.muted{grid-row:3}.hero.live-hero .hero-time{font-size:28px}}
@media(min-width:1024px){.week-day summary{flex-direction:column;align-items:flex-start;justify-content:center}.week-day summary small{margin:0}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.hero-instrument{background:var(--surface)}}

/* Focused dock/motion pass: preserve spatial layouts. */
.bottom-nav{border-color:color-mix(in srgb,var(--text-primary) 24%,transparent);background:linear-gradient(178deg,rgba(255,255,255,calc(var(--glass-reflection)*.65)),transparent 36%),rgba(var(--surface-rgb),var(--glass-opacity));box-shadow:inset 0 1px 0 rgba(255,255,255,var(--glass-highlight)),inset 1px 0 0 #ffffff12,inset 0 -2px 1px #0003,0 3px 5px #0002,0 18px 40px #0003}
.bottom-nav:before{scale:1.02;background:radial-gradient(ellipse at 28% 0%,#ffffff26,transparent 62%),linear-gradient(155deg,color-mix(in srgb,var(--accent) 10%,transparent),transparent 80%);border:1px solid rgba(255,255,255,var(--glass-highlight));box-shadow:inset 0 1px 0 #ffffff50,inset 0 -1px 1px #0003,0 2px 5px #0002,0 0 12px color-mix(in srgb,var(--accent) 8%,transparent);transition:transform 320ms cubic-bezier(.2,.82,.18,1)}
.bottom-nav:after{background:radial-gradient(ellipse at var(--pointer-x,18%) var(--pointer-y,0%),rgba(255,255,255,var(--glass-reflection)),transparent 48%),linear-gradient(176deg,#ffffff0d,transparent 24%,transparent 80%,color-mix(in srgb,var(--ambient) 6%,transparent));box-shadow:inset 0 0 0 3px #ffffff04}
.nav-label{opacity:.78;transition:opacity 180ms,transform 260ms var(--ease-out),color 180ms}.bottom-nav button .icon{transition:transform 280ms var(--ease-out),color 180ms}.bottom-nav .selected .icon{transform:translateY(-2px) scale(1.04)}.bottom-nav .selected .nav-label{opacity:1;transform:translateY(-1px)}
.hero-instrument:before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(ellipse at var(--pointer-x,16%) var(--pointer-y,0%),rgba(255,255,255,var(--glass-reflection)),transparent 58%)}
.hero-instrument:after{animation:instrument-light 30s ease-in-out infinite alternate}
[data-background=glow] .aurora:before{animation-name:glow-drift;animation-duration:36s}
.page-enter{animation:page-settle 300ms var(--ease-out)}main.content-ready{animation:page-settle 300ms var(--ease-out)}
dialog[open]{animation:sheet-settle 320ms cubic-bezier(.18,.82,.18,1)}dialog::backdrop{backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
#toast:not([hidden]){animation:toast-settle 220ms var(--ease-out)}
.swatch.selected{animation:ring-settle 220ms var(--ease-out)}.style-tile.selected{animation:ring-settle 240ms var(--ease-out)}
button:active:not(:disabled){filter:brightness(.97)}
@media(hover:hover) and (pointer:fine){
 .bottom-nav button:hover{background:radial-gradient(ellipse at 20% 10%,#ffffff12,transparent 75%);color:var(--text-primary);box-shadow:inset 0 1px 0 #ffffff18}
 .bottom-nav button:hover .icon{transform:translateY(-2px)}.bottom-nav button:hover .nav-label{opacity:1;transform:translateY(-1px)}
 .visual-choices button:hover .option-sample{box-shadow:inset 0 1px 0 #ffffff55;transform:translateY(-1px)}.option-sample{transition:transform 200ms,box-shadow 200ms}
 .style-tile:hover .style-scene{background-position:3px -2px}.style-scene{transition:background-position 260ms}
 .icon-button:hover{background:radial-gradient(circle at 28% 10%,#ffffff26,transparent 75%),color-mix(in srgb,var(--surface) 35%,transparent)}
 .personal:hover{box-shadow:inset 0 1px 0 #ffffff12,0 7px 16px #00000012}
 .date-strip button:hover{box-shadow:inset 0 1px 0 #ffffff22}.calendar-grid button:hover .dot{scale:1.15}
 .primary:hover .icon{translate:0 -1px}
}
@media(min-width:1024px) and (hover:hover) and (pointer:fine){.bottom-nav button:hover .nav-label{transform:translateX(1px)}[dir=rtl] .bottom-nav button:hover .nav-label{transform:translateX(-1px)}}
@media(min-width:768px){dialog[open]{animation:panel-settle 280ms var(--ease-out)}}
@keyframes page-settle{from{opacity:.3;transform:translateY(6px) scale(.995)}to{opacity:1;transform:none}}
@keyframes sheet-settle{from{opacity:.15;transform:translateY(32px)}to{opacity:1;transform:none}}
@keyframes panel-settle{from{opacity:.2;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@keyframes toast-settle{from{opacity:0;transform:translate(-50%,8px) scale(.98)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes ring-settle{from{opacity:.75}to{opacity:1}}
@keyframes glow-drift{from{transform:translate(-1%,2%) scale(1)}to{transform:translate(2%,-1%) scale(1.04)}}
@keyframes instrument-light{from{translate:0 0;opacity:.6}to{translate:-8px -4px;opacity:1}}
[data-motion-paused] .hero-instrument:after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.bottom-nav .selected .icon,.bottom-nav .selected .nav-label,.bottom-nav button:hover .nav-label,.visual-choices button:hover .option-sample{transform:none!important}.primary:hover .icon{translate:none}.calendar-grid button:hover .dot{scale:1}}

/* Restrained reflected accent light; no additional blur or animated glow. */
:root{--neon-soft:color-mix(in srgb,var(--accent) 12%,transparent);--neon-edge:color-mix(in srgb,var(--accent) 20%,transparent)}
[data-theme=black]{--neon-soft:color-mix(in srgb,var(--accent) 15%,transparent);--neon-edge:color-mix(in srgb,var(--accent) 24%,transparent)}
.bottom-nav:before{box-shadow:inset 0 1px 0 #ffffff40,inset 0 -1px 0 var(--neon-edge),inset 1px 0 0 var(--neon-soft),0 2px 5px #0002,0 0 12px var(--neon-soft)}
.bottom-nav:after{background:radial-gradient(ellipse at var(--pointer-x,18%) var(--pointer-y,0%),rgba(255,255,255,var(--glass-reflection)),transparent 48%),linear-gradient(175deg,transparent 60%,color-mix(in srgb,var(--accent) 5%,transparent) 90%,transparent)}
.hero-instrument:before{background:radial-gradient(ellipse at var(--pointer-x,16%) var(--pointer-y,0%),rgba(255,255,255,var(--glass-reflection)),transparent 58%),linear-gradient(145deg,transparent 65%,color-mix(in srgb,var(--accent) 6%,transparent),transparent)}
.live-hero[data-kind=current] .hero-instrument{border-color:color-mix(in srgb,var(--accent) 22%,var(--border));box-shadow:inset 0 1px 0 #ffffff30,inset 0 -1px 0 var(--neon-edge),0 12px 36px #0000001c,0 0 14px var(--neon-soft)}
.timeline>.lesson.active{box-shadow:inset 3px 0 12px color-mix(in srgb,var(--accent) 5%,transparent)}
.swatch.selected{box-shadow:0 0 0 4px var(--neon-soft),0 0 12px var(--neon-soft)}
.style-tile.selected,.visual-choices button.selected{box-shadow:inset 0 1px 0 var(--neon-edge),0 0 10px color-mix(in srgb,var(--accent) 6%,transparent)}
[data-background=aurora] .aurora:after{background:conic-gradient(from 220deg at 75% 30%,transparent 0deg,color-mix(in srgb,var(--accent) 12%,transparent) 60deg,transparent 140deg)}
[data-background=glow] .aurora{background:radial-gradient(ellipse at 55% 12%,color-mix(in srgb,var(--ambient) 22%,transparent),transparent 35%),radial-gradient(ellipse at 15% 85%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 42%)}
@media(hover:hover) and (pointer:fine){
 .bottom-nav button:hover{box-shadow:inset 0 1px 0 var(--neon-edge),inset 0 -1px 0 var(--neon-soft);background:radial-gradient(ellipse at 20% 10%,var(--neon-soft),transparent 75%)}
 .primary:hover,.icon-button:hover{border-color:color-mix(in srgb,var(--accent) 25%,var(--border));box-shadow:inset 0 1px 0 #ffffff30,0 5px 16px #0002,0 0 10px var(--neon-soft)}
}
