:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f6f3ec;--sheet:#fffdf8;--desk:#ece7dc;--ink:#1b1d22;--ink-2:#4c525c;--ink-3:#676d77;--rule:#ddd6c8;--rule-strong:#c9c0ae;--field-line:#8f897c;--accent:#1a6b61;--accent-hover:#145850;--on-accent:#fff;--accent-soft:#1a6b6114;--focus-halo:#1a6b6138;--warn:#a4501f;--warn-soft:#a4501f17;--danger:#b3261e;--danger-soft:#b3261e12;--hover:#1b1d220d;--avatar:#e4ded1;--lift:0 1px 2px #1b1d2214,0 12px 32px #1b1d221f;--scrim:#1b1d2273;--page-shadow:0 1px 2px #1b1d221f,0 8px 24px #1b1d221a;--page:#fff;--playhead:#1a6b61;--serif:ui-serif,"New York","Iowan Old Style",Palatino,Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--radius:8px;--quick:.16s;font:16px/1.5 var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#141519;--sheet:#1c1d22;--desk:#101114;--ink:#ecedef;--ink-2:#b7bbc4;--ink-3:#8d929c;--rule:#2a2c31;--rule-strong:#3a3d44;--field-line:#6b6e76;--accent:#84d1c7;--accent-hover:#a0ddd5;--on-accent:#0e1a18;--accent-soft:#84d1c717;--focus-halo:#84d1c747;--warn:#efb977;--warn-soft:#efb9771a;--danger:#f2867e;--danger-soft:#f2867e1a;--hover:#ecedef0f;--avatar:#2a2c31;--lift:0 1px 2px #0000004d,0 16px 40px #00000073;--scrim:#0009;--page-shadow:0 1px 2px #0006,0 10px 28px #00000073}}.classroom{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#111214;--sheet:#1a1b1f;--desk:#111214;--ink:#ecedef;--ink-2:#b7bbc4;--ink-3:#8d929c;--rule:#2a2c31;--rule-strong:#3a3d44;--field-line:#6b6e76;--accent:#84d1c7;--accent-hover:#a0ddd5;--on-accent:#0e1a18;--accent-soft:#84d1c71a;--focus-halo:#84d1c747;--warn:#efb977;--warn-soft:#efb9771a;--danger:#f2867e;--danger-soft:#f2867e1a;--hover:#ecedef0f;--avatar:#2a2c31;--lift:0 1px 2px #0000004d,0 16px 40px #00000080;--scrim:#000000a6;--page-shadow:0 1px 2px #0006,0 12px 32px #00000080;--key-white:#f4f3ef;--key-black:#1b1d22;--key-edge:#8d929c;--caption:#111214d1;background:var(--paper);color:var(--ink)}html:has(.classroom){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#111214;--sheet:#1a1b1f;--desk:#111214;--ink:#ecedef;--ink-2:#b7bbc4;--ink-3:#8d929c;--rule:#2a2c31;--rule-strong:#3a3d44;--field-line:#6b6e76;--accent:#84d1c7;--accent-hover:#a0ddd5;--on-accent:#0e1a18;--accent-soft:#84d1c71a;--focus-halo:#84d1c747;--warn:#efb977;--warn-soft:#efb9771a;--danger:#f2867e;--danger-soft:#f2867e1a;--hover:#ecedef0f;--avatar:#2a2c31;--lift:0 1px 2px #0000004d,0 16px 40px #00000080;--scrim:#000000a6;--page-shadow:0 1px 2px #0006,0 12px 32px #00000080;--key-white:#f4f3ef;--key-black:#1b1d22;--key-edge:#8d929c;--caption:#111214d1;background:var(--paper);color:var(--ink)}*{box-sizing:border-box}#root{overflow-x:clip}body{background:var(--paper);min-height:100dvh;color:var(--ink);margin:0}h1,h2,h3{font-family:var(--serif);letter-spacing:-.01em;color:var(--ink);text-wrap:balance;margin:0 0 8px;font-weight:600;line-height:1.2}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px;line-height:1.3}h4{color:var(--ink-2);margin:0 0 6px;font-size:13px;font-weight:600}p{max-width:68ch;margin:0 0 12px}a{color:var(--accent);text-underline-offset:3px}a:hover{color:var(--accent-hover)}strong{font-weight:600}button,input,a,summary,select,textarea{touch-action:manipulation}.icon{flex-shrink:0;width:20px;height:20px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}button,.button{border:1px solid var(--rule-strong);border-radius:var(--radius);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;transition:background-color var(--quick) ease,border-color var(--quick) ease,color var(--quick) ease;background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}button:not(:disabled):hover,.button:hover{background:var(--hover);border-color:var(--ink-3);color:var(--ink)}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button.primary:not(:disabled):hover,.button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}button:disabled{opacity:.45;cursor:default}.text-button,button.text-button{min-height:44px;color:var(--accent);background:0 0;border-color:#0000;padding:0 4px;font-weight:600}.text-button:not(:disabled):hover{color:var(--accent-hover);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.icon-button{width:44px;color:var(--ink-2);background:0 0;border-color:#0000;padding:0}.full{width:100%}form>button{margin-top:20px}label{color:var(--ink-2);margin:0 0 6px;font-size:13px;font-weight:600;display:block}input:not([type=range],[type=checkbox],[type=radio],[type=file]),select,textarea{border:1px solid var(--field-line);border-radius:var(--radius);background:var(--sheet);width:100%;min-height:44px;color:var(--ink);font:inherit;transition:border-color var(--quick) ease,box-shadow var(--quick) ease;padding:10px 12px;font-size:16px;line-height:1.4;display:block}textarea{resize:vertical;line-height:1.5}input::placeholder,textarea::placeholder{color:var(--ink-3)}input:disabled,select:disabled,textarea:disabled{opacity:.6}input[type=range]{width:100%;height:30px;accent-color:var(--accent);cursor:pointer;margin:0}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}:where(button,a,summary,[tabindex],input[type=range],input[type=checkbox]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}:is(input:not([type=range],[type=checkbox],[type=radio],[type=file]),select,textarea):focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-halo);outline:none}form>label:not(:first-child),form>div+label{margin-top:20px}.notice{border-left:3px solid var(--warn);border-radius:0 var(--radius) var(--radius) 0;background:var(--warn-soft);color:var(--ink);max-width:68ch;margin:16px 0 0;padding:12px 16px;font-size:15px}.notice p{color:inherit;margin:0}.fine{color:var(--ink-2);margin:16px 0 0;font-size:13px}.muted,.account{color:var(--ink-2);font-size:15px}.empty{border-top:1px solid var(--rule);color:var(--ink-2);margin:0;padding:20px 0}.entry{max-width:1120px;margin:0 auto;padding:0 32px 72px}.entry-header{align-items:center;gap:32px;min-height:64px;margin-bottom:48px;display:flex;position:relative}.entry-header:after{content:"";background:var(--rule);height:1px;position:absolute;bottom:0;left:-100vw;right:-100vw}.entry-header>.account-menu,.entry-header>.button{margin-left:auto}.brand{min-height:44px;color:var(--ink);font-family:var(--serif);letter-spacing:-.01em;white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;font-size:18px;font-weight:600;text-decoration:none;display:inline-flex}.brand:hover{color:var(--ink)}.brand img{flex-shrink:0;width:32px;height:32px;display:block}.brand strong{font-weight:inherit;color:inherit}.account-menu{z-index:10;flex-shrink:0;max-width:280px;position:relative}.account-menu summary{border-radius:var(--radius);min-height:44px;color:var(--ink);cursor:pointer;transition:background-color var(--quick) ease,border-color var(--quick) ease;border:1px solid #0000;align-items:center;gap:10px;padding:4px 10px 4px 4px;font-size:15px;font-weight:500;list-style:none;display:flex}.account-menu summary::-webkit-details-marker{display:none}.account-menu summary>span:not(.avatar){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.account-menu summary>.icon{width:14px;height:14px;color:var(--ink-2)}.account-menu[open] summary,.account-menu summary:hover{background:var(--hover);border-color:var(--rule)}.account-popover{background:var(--sheet);border:1px solid var(--rule-strong);border-radius:var(--radius);width:272px;box-shadow:var(--lift);padding:6px;position:absolute;top:calc(100% + 6px);right:0}.account-email{border-bottom:1px solid var(--rule);overflow-wrap:anywhere;color:var(--ink-2);margin-bottom:6px;padding:10px 12px 12px;font-size:13px;display:block}.account-popover :is(button,.button){background:0 0;border:0;justify-content:flex-start;width:100%;padding:0 12px;font-size:15px;font-weight:500;display:flex}.account-popover :is(button,.button):hover{background:var(--hover)}.account-popover .icon{color:var(--ink-2)}.avatar{background:var(--avatar);width:32px;height:32px;color:var(--ink);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.large{width:72px;height:72px;font-family:var(--serif);font-size:28px}.entry-card{min-width:0}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.section-heading :is(h1,h2){margin:0}.inline-actions{flex-wrap:wrap;gap:12px;display:flex}.entry-footer{border-top:1px solid var(--rule);color:var(--ink-3);margin-top:64px;padding-top:16px;font-size:13px}.entry-footer a{color:var(--ink-2)}.sign-in .entry-card,.entry>.entry-card{max-width:440px}.entry>.entry-card>h1,.sign-in-title h1{letter-spacing:-.015em;margin-bottom:12px;font-size:36px}.entry>.entry-card>p,.sign-in .entry-card>p{color:var(--ink-2)}.entry>.entry-card form,.sign-in form{margin-top:28px}.sign-in form>button,.entry>.entry-card form>button{width:100%}.sign-in-title{margin-top:24px;position:relative}.staff{display:none}@media (width>=900px){.staff{pointer-events:none;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);height:33px;display:block;position:absolute;top:5px;left:-100vw;right:-100vw}.staff:before,.staff:after,.staff>span{content:"";background:var(--rule);height:1px;position:absolute;left:0;right:0}.staff:before{top:7px}.staff>span{top:15px}.staff:after{top:23px}.sign-in-title h1{position:relative}}#login-code{font-variant-numeric:tabular-nums;letter-spacing:.2em;padding:8px 12px;font-size:28px}.sign-in-actions{flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:12px;display:flex}.verification{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:24px 0 0;padding:12px 0}.verification span{font-weight:600}.onboarding-steps{counter-reset:step;margin:24px 0;padding:0;list-style:none}.onboarding-steps li{border-top:1px solid var(--rule);counter-increment:step;padding:14px 0 14px 40px;position:relative}.onboarding-steps li:last-child{border-bottom:1px solid var(--rule)}.onboarding-steps li:before{content:counter(step);font-family:var(--serif);color:var(--accent);font-variant-numeric:lining-nums;font-size:22px;font-weight:600;line-height:1.2;position:absolute;top:12px;left:0}.onboarding-actions{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.agenda{container:agenda/inline-size}.agenda>.fine{margin-top:16px}.session-row{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:12px 20px;padding:18px 0;display:flex}.agenda>.session-row:last-of-type,.past-sessions>.session-row:last-of-type,.entry-card>.session-row:last-of-type{border-bottom:1px solid var(--rule)}.session-row>div{flex:220px;min-width:0}.session-row h3{overflow-wrap:anywhere;margin:0 0 2px;font-size:18px}.session-row p{color:var(--ink-2);font-variant-numeric:tabular-nums;margin:0;font-size:15px}.agenda .session-row{grid-template-columns:56px minmax(0,1fr) auto auto;gap:12px 20px;display:grid}.session-date{color:var(--ink);flex-direction:column;grid-area:1/1;align-items:center;line-height:1;display:flex}.session-day{font-family:var(--serif);font-variant-numeric:lining-nums tabular-nums;font-size:28px;font-weight:600}.session-month{color:var(--ink-2);margin-top:4px;font-size:13px}.agenda .session-main{grid-area:1/2}.agenda .session-chip{grid-area:1/3;justify-self:end}.agenda .session-chip:not(:has(+button)){grid-column:3/-1}.agenda .session-row>button{grid-area:1/4}.agenda .lesson-follow-up{grid-area:2/2/auto/-1;margin:0}@container agenda (width<=600px){.agenda .session-row{grid-template-columns:48px minmax(0,1fr) auto;column-gap:16px}.agenda .session-chip:not(:has(+button)){grid-column:3}.agenda .session-row>button{grid-area:2/2/auto/-1;justify-self:start}.agenda .session-row>button~.lesson-follow-up{grid-row:3}}@container agenda (width<=420px){.agenda .session-main{grid-column:2/-1}:is(.agenda .session-chip,.agenda .session-chip:not(:has(+button))){grid-area:2/2;justify-self:start}.agenda .session-row>button{grid-area:2/3;justify-self:end}.agenda .session-row>.lesson-follow-up{grid-row:3}}.session-chip,.session-state{border:1px solid var(--rule-strong);min-height:28px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:600;display:inline-flex}.session-chip.live{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.session-chip.live:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.session-chip.missed{border-color:var(--warn);color:var(--warn)}.session-row>button{flex-shrink:0}.past-sessions{margin-top:32px}.past-sessions>summary{cursor:pointer;min-height:48px;color:var(--ink);align-items:center;gap:10px;font-size:16px;font-weight:600;list-style:none;display:flex}.past-sessions>summary::-webkit-details-marker{display:none}.past-sessions>summary:after{content:"";border-right:1.5px solid var(--ink-2);border-bottom:1.5px solid var(--ink-2);width:8px;height:8px;transition:transform var(--quick) ease;margin-left:auto;margin-right:6px;transform:rotate(45deg)translateY(-2px)}.past-sessions[open]>summary:after{transform:rotate(-135deg)translateY(-2px)}.past-sessions>summary>span:not(.unread-badge){color:var(--ink-2);font-variant-numeric:tabular-nums;font-weight:500}.past-sessions .session-row h3{font-size:16px}.unread-badge{background:var(--accent);min-width:24px;height:24px;color:var(--on-accent);font-variant-numeric:tabular-nums;border-radius:12px;place-items:center;padding:0 7px;font-size:13px;font-weight:700;display:inline-grid}.profile-dialog{border:1px solid var(--rule-strong);background:var(--sheet);width:480px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);color:var(--ink);box-shadow:var(--lift);border-radius:12px;padding:28px}.profile-dialog::backdrop{background:var(--scrim,#1112148c)}.profile-dialog header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;display:flex}.profile-dialog h1{margin:0;font-size:22px}.profile-dialog p{color:var(--ink-2)}.profile-dialog label{margin-top:20px}.profile-dialog .fine{margin:8px 0 0}.profile-dialog footer{border-top:1px solid var(--rule);justify-content:flex-end;gap:12px;margin-top:28px;padding-top:20px;display:flex}.profile-dialog footer button{margin:0}.photo-crop{text-align:center}.photo-crop h2{margin:0 0 20px;font-size:22px}.photo-crop canvas{border:2px solid var(--accent);cursor:grab;touch-action:none;border-radius:50%;width:260px;max-width:100%;height:auto;margin:auto;display:block}.photo-crop canvas:active{cursor:grabbing}.photo-crop p{color:var(--ink-2);margin:20px auto;font-size:15px}.photo-zoom{align-items:center;gap:14px;margin:24px 0 8px;font-size:15px;display:flex}.photo-zoom input[type=range]{flex:1;width:auto;min-width:0}.photo-zoom output{font-variant-numeric:tabular-nums;min-width:3em}.classroom{flex-direction:column;max-width:1920px;height:100dvh;min-height:560px;margin:0 auto;padding:10px 20px 16px;display:flex}.room-header{border-bottom:1px solid var(--rule);flex-shrink:0;align-items:center;gap:20px;min-height:56px;margin-bottom:12px;padding-bottom:10px;display:flex}.room-header .brand{font-size:16px}.room-header .brand img{width:28px;height:28px}.room-heading{border-left:1px solid var(--rule);flex-wrap:wrap;flex:1;align-items:baseline;gap:4px 16px;min-width:0;padding-left:20px;display:flex}.room-heading h1{overflow-wrap:anywhere;margin:0;font-size:18px;line-height:1.3}.status{color:var(--ink-2);align-items:center;gap:7px;font-size:13px;display:inline-flex}.status:before,.live-dot{content:"";background:var(--ink-3);border-radius:50%;flex-shrink:0;width:8px;height:8px}.status.online:before,.live-dot.on{background:var(--accent)}.classroom>.notice{max-width:none;margin:0 0 12px}.classroom>.notice:has(button){flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.classroom :is(input:not([type=range],[type=checkbox],[type=radio],[type=file]),select,textarea){background:var(--paper)}.lesson-grid{flex:1;grid-template:"score commands""score side"minmax(0,1fr)"keys keys"/minmax(0,1fr) 300px;gap:12px;min-height:0;display:grid}.lesson-grid>.document-panel{grid-area:score}.lesson-grid>.lesson-commands{grid-area:commands}.lesson-grid>.lesson-side{grid-area:side}.lesson-grid>.lesson-keyboard{grid-area:keys}.document-panel{background:var(--paper);border:1px solid var(--rule);border-radius:10px;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden;container:score/inline-size}.classroom .document-panel{background:var(--sheet)}.document-heading{align-items:center;gap:10px;min-width:0;display:flex}.document-heading>.icon{color:var(--ink-2)}.score-bar{border-bottom:1px solid var(--rule);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px 8px;padding:6px 8px 6px 14px;display:flex}.score-bar .document-heading{flex:96px;min-width:0}.score-bar .document-heading h2{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:16px;line-height:1.3;overflow:hidden}.page-nav{font-variant-numeric:tabular-nums;align-items:center;display:flex}.page-nav button{width:44px;color:var(--ink-2);border-color:#0000;padding:0}.page-count{text-align:center;min-width:3.2em;color:var(--ink);white-space:nowrap;font-size:15px}.follow{flex-shrink:0;padding:0 12px;font-size:15px}.follow.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.follow.active:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.follow .label-short{display:none}.score-fit{border:1px solid var(--rule-strong);border-radius:var(--radius);flex-shrink:0;display:flex;overflow:hidden}.score-fit button{min-height:42px;color:var(--ink-2);background:0 0;border:0;border-radius:0;padding:0 12px;font-size:15px;font-weight:500}.score-fit button+button{border-left:1px solid var(--rule-strong)}.score-fit button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.score-fit button:focus-visible{outline-offset:-3px}.score-fit .icon{width:18px;height:18px}.score-bar-error{border-bottom:1px solid var(--rule);margin:0;padding:6px 14px}@container score (width<=520px){.score-bar>*{order:2}.score-bar>.document-heading{flex-basis:calc(100% - 60px);order:0}.score-bar>.annotation-download{order:1;margin-left:auto}}@container score (width<=900px){.page-word{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.follow .label-long{display:none}.follow .label-short{display:inline}.score-fit span{display:none}.score-fit button{width:44px;padding:0}}.paper-desk{background:var(--desk);scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent;overscroll-behavior:contain;flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:20px;display:flex;overflow:auto}.paper-desk>.muted{align-self:center;margin:auto}.paper-desk canvas{background:var(--page);box-shadow:var(--page-shadow);display:block}.page-sheet{flex-shrink:0;line-height:0;position:relative}.page-sheet[hidden]{display:none}.score-playhead{background:var(--playhead);pointer-events:none;width:3px;position:absolute;top:0;left:0}.no-document{text-align:center;background:var(--desk);flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:300px;padding:32px;display:flex}.no-document p{max-width:36ch;color:var(--ink-2);margin:0 0 16px}.lesson-commands{background:var(--sheet);border:1px solid var(--rule);border-radius:10px;flex-direction:column;gap:10px;min-width:0;padding:12px 14px;display:flex}.command-bar{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.command-clock{font-variant-numeric:tabular-nums;flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.song-time{color:var(--ink);font-size:22px;font-weight:600}.song-speed{color:var(--ink-2);font-size:13px}.song-speed strong{color:var(--ink);font-weight:600}.listen-button{background:var(--accent);border-color:var(--accent);width:44px;height:44px;color:var(--on-accent);border-radius:50%;flex-shrink:0;padding:0}.listen-button:not(:disabled):hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.listen-button .icon{width:22px;height:22px}.hand-button{flex:100%}.hand-button .icon{color:var(--warn)}button.hand-button[aria-pressed=true],button.hand-button[aria-pressed=true]:not(:disabled):hover{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.volumes-toggle{width:44px;padding:0}.volumes-toggle.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.audio-unlock{white-space:nowrap;background:var(--accent);border-color:var(--accent);color:var(--on-accent);flex-shrink:0}.audio-unlock:not(:disabled):hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.playback-status{max-width:none;color:var(--ink-2);align-items:center;gap:8px;margin:0;font-size:13px;line-height:1.4;display:flex}.playback-status .icon{width:16px;height:16px}.playback-status.active{color:var(--accent)}.lesson-commands .notice{margin:0}.retry-button{width:100%}.lesson-side{scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent;flex-direction:column;gap:12px;min-height:0;display:flex;overflow:auto}.teacher-camera{aspect-ratio:16/10;background:var(--sheet);border:1px solid var(--rule);isolation:isolate;border-radius:10px;flex-shrink:0;position:relative;overflow:hidden}.teacher-camera video{object-fit:cover;width:100%;height:100%;display:block}.camera-placeholder{text-align:center;height:100%;color:var(--ink-2);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px 16px 56px;font-size:13px;display:flex}.camera-placeholder>.icon{width:28px;height:28px;color:var(--ink-3)}.camera-caption{border-radius:var(--radius);background:var(--caption);pointer-events:none;align-items:center;gap:10px;padding:8px 12px;display:flex;position:absolute;bottom:8px;left:8px;right:8px}.camera-caption>div{min-width:0}.camera-caption strong{overflow-wrap:anywhere;color:var(--ink);font-size:15px;font-weight:600;line-height:1.25;display:block}.camera-caption div>span{color:var(--ink-2);margin-top:2px;font-size:13px;display:block}.camera-mute{pointer-events:none;position:absolute;top:10px;right:10px}.camera-mute>span{background:var(--paper);border:1px solid var(--danger);color:var(--danger);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:600;display:flex}.camera-mute .icon{width:16px;height:16px}.side-card{background:var(--sheet);border:1px solid var(--rule);border-radius:10px;padding:14px 16px}.side-card h2{align-items:center;gap:8px;margin:0 0 12px;font-size:16px;display:flex}.side-card h2>.icon{width:18px;height:18px;color:var(--ink-2)}.side-card h2>span{font-family:var(--sans);color:var(--ink-2);font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px;font-weight:600}.participants{margin:0;padding:0;list-style:none}.participants li{overflow-wrap:anywhere;align-items:center;gap:10px;padding:8px 0;font-size:15px;display:flex}.participants li+li{border-top:1px solid var(--rule)}.participants small{color:var(--ink-2);font-size:13px;display:block}.raised-hand{color:var(--warn);margin-left:auto}.volume-panel{flex-direction:column;gap:10px;min-width:0;display:flex}.lesson-commands .volume-panel{border-top:1px solid var(--rule);padding-top:10px}.volume-control{min-width:0}.volume-control label{color:var(--ink);align-items:center;gap:8px;margin:0;font-size:15px;font-weight:500;display:flex}.volume-control label>.icon{width:18px;height:18px;color:var(--ink-2)}.volume-control output,.calibration output{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:13px}.volume-control meter{appearance:none;background:var(--rule);border:0;border-radius:2px;width:100%;height:3px;margin-top:-4px;display:block}.volume-control meter::-webkit-meter-bar{background:var(--rule);border:0;border-radius:2px;height:3px}.volume-control meter::-webkit-meter-optimum-value{background:var(--accent);border-radius:2px}.volume-control meter::-moz-meter-bar{background:var(--accent)}.volume-card h2{margin-bottom:8px}.calibration{border-top:1px solid var(--rule)}.calibration summary{min-height:44px;color:var(--ink-2);cursor:pointer;align-items:center;font-size:15px;list-style:none;display:flex}.calibration summary::-webkit-details-marker{display:none}.calibration summary:after{content:"+";color:var(--ink-2);margin-left:auto;font-size:18px}.calibration[open] summary:after{content:"−"}.calibration-panel label{color:var(--ink);gap:8px;margin:0;font-size:15px;font-weight:500;display:flex}.calibration-panel p{color:var(--ink-2);margin:4px 0 0;font-size:13px;line-height:1.45}.lesson-extras{background:var(--sheet);border:1px solid var(--rule);border-radius:10px;flex-shrink:0;min-width:0}.lesson-extras>summary{cursor:pointer;align-items:center;gap:8px;min-height:48px;padding:0 16px;font-size:15px;font-weight:600;list-style:none;display:flex}.lesson-extras>summary>.icon{width:18px;height:18px;color:var(--ink-2)}.lesson-extras>summary:after{content:"+";color:var(--ink-2);font-size:18px}.lesson-extras[open]>summary:after{content:"−"}.lesson-extras>summary::-webkit-details-marker{display:none}.lesson-extras .summary-label{flex:1}.lesson-extras .side-card{border:0;border-top:1px solid var(--rule);background:0 0;border-radius:0;padding:14px 16px}.lesson-side .avatar.large{width:48px;height:48px;font-size:20px}.waiting{text-align:center;width:min(520px,100%);margin:72px auto;padding:0 8px}.waiting>.avatar{margin:0 auto 20px}.waiting h2{font-size:28px}.waiting p{color:var(--ink-2);margin-left:auto;margin-right:auto}.waiting .account{margin:20px 0;display:block}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--rule-strong);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@media (width<=1100px){.entry{padding:0 24px 64px}.classroom{padding:10px 16px 16px}.lesson-grid{grid-template-columns:minmax(0,1fr) 272px}.room-header{gap:16px}.room-heading{padding-left:16px}.room-header .account-menu summary>span:not(.avatar),.room-header .account-menu summary>.icon{display:none}.room-header .account-menu summary{padding:4px}}@media (width<=1000px){.entry-header{gap:24px}.entry-header .account-menu summary>span:not(.avatar){display:none}.entry-header .account-menu summary{padding:4px 8px 4px 4px}}@media (width<=760px){.entry{padding:0 16px 48px}.entry-header{flex-wrap:wrap;gap:0 16px;margin-bottom:28px}.entry>.entry-card>h1,.sign-in-title h1{font-size:28px}.classroom{height:auto;min-height:100dvh;padding:8px 12px 16px}.room-header{gap:10px;min-height:52px}.room-header .brand>span{display:none}.room-heading{padding-left:12px}.room-heading h1{font-size:16px}.room-header .account-menu summary{justify-content:center;min-width:44px;padding:0}.room-header .account-menu .avatar{width:30px;height:30px}.lesson-grid{grid-template:"commands""score""side""keys"/minmax(0,1fr)}.document-panel{height:min(78dvh,780px);min-height:420px}.lesson-commands{gap:8px;padding:10px 12px}.song-time{font-size:18px}.speed-word{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hand-button{flex:none;padding:0 12px}.lesson-side{grid-template-columns:1fr 1fr;gap:12px;display:grid;overflow:visible}.lesson-side>.lesson-extras{grid-column:1/-1}.lesson-side:has(.teacher-cameras:only-child){grid-template-columns:1fr}.no-document{min-height:200px}.waiting{margin:40px auto}.profile-dialog{padding:20px}}@media (width<=560px){.entry-header .account-menu summary>span:not(.avatar){display:none}.account-popover{width:256px}form>button{width:100%}}@media (width<=440px){.lesson-side{grid-template-columns:1fr}.teacher-camera{aspect-ratio:auto;height:240px}.leave .icon{display:none}.leave{padding:0 12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}dialog.studio-profile{width:600px;padding:0;font-size:16px}.studio-profile header{border-bottom:1px solid var(--rule);gap:16px;margin:0;padding:20px 20px 16px 28px}.studio-profile h1{font-size:22px}.studio-profile header .icon-button{width:44px;height:44px;color:var(--ink-2);border-radius:50%}.studio-profile header .icon-button:not(:disabled):hover{background:var(--hover);border-color:#0000}.profile-identity{grid-template-columns:148px minmax(0,1fr);align-items:start;gap:28px;padding:24px 28px;display:grid}.profile-portrait{flex-direction:column;align-items:center;gap:6px;display:flex}.studio-profile .portrait-edit{background:0 0;border:0;border-radius:50%;width:104px;height:104px;min-height:0;padding:0;position:relative}.studio-profile .portrait-edit:not(:disabled):hover{background:0 0}.studio-profile .portrait-edit .avatar{border:1px solid var(--rule-strong);background:var(--paper);width:104px;height:104px}.portrait-edit .avatar>.icon{width:40px;height:40px;color:var(--ink-3)}.portrait-camera{border:3px solid var(--sheet);background:var(--accent);width:32px;height:32px;color:var(--on-accent);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:2px;right:0}.portrait-camera .icon{width:16px;height:16px}.photo-actions{position:relative}.photo-actions summary{border-radius:var(--radius);min-height:44px;color:var(--accent);white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;gap:4px;padding:0 6px;font-size:15px;font-weight:600;list-style:none;display:flex}.photo-actions summary::-webkit-details-marker{display:none}.photo-actions summary>.icon{width:12px;height:12px}.photo-actions>div{z-index:4;background:var(--sheet);border:1px solid var(--rule-strong);border-radius:var(--radius);width:200px;box-shadow:var(--lift);padding:6px;position:absolute;top:100%;left:0}.studio-profile .photo-actions button{white-space:nowrap;background:0 0;border:0;border-radius:6px;justify-content:flex-start;width:100%;min-height:44px;padding:0 10px;font-size:15px;font-weight:500;display:flex}.studio-profile .photo-actions button:not(:disabled):hover{background:var(--hover)}.studio-profile .photo-actions .photo-remove{border-top:1px solid var(--rule);color:var(--danger);border-radius:0;margin-top:4px}.studio-profile .photo-actions .photo-remove:not(:disabled):hover{color:var(--danger)}.profile-fields{gap:20px;display:grid}.studio-profile .profile-fields label{margin:0 0 6px}.studio-profile .profile-email{color:var(--ink);overflow-wrap:anywhere;align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.profile-email>.icon{width:16px;height:16px;color:var(--ink-3)}.profile-zone-row{border-top:1px solid var(--rule);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 10px;margin:0 28px 24px;padding-top:20px;display:grid}.profile-zone-row>.icon{width:18px;height:18px;color:var(--ink-2)}.studio-profile .profile-zone-row label{margin:0}.studio-profile .profile-zone-row select{grid-column:1/-1}.studio-profile .notice{margin:0 28px 24px}.studio-profile footer{justify-content:space-between;align-items:center;margin:0;padding:16px 28px}.studio-profile .profile-cancel{color:var(--ink-2);border-color:#0000;padding:0 4px}.studio-profile .profile-cancel:not(:disabled):hover{color:var(--ink);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.studio-profile .photo-crop{padding:24px 28px 0}.studio-profile .photo-crop footer{margin:24px -28px 0}.studio-profile .photo-crop>.text-button{margin:0 auto}@media (prefers-reduced-motion:no-preference){.studio-profile[open]{animation:.18s ease-out profile-arrive}.photo-actions[open]>div{animation:.14s ease-out profile-arrive}@keyframes profile-arrive{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}}@media (width<=560px){.studio-profile header{padding:16px 12px 12px 20px}.profile-identity{grid-template-columns:1fr;gap:20px;padding:20px}.profile-portrait{flex-direction:row;justify-content:flex-start;gap:16px}.studio-profile .portrait-edit,.studio-profile .portrait-edit .avatar{width:84px;height:84px}.profile-zone-row,.studio-profile .notice{margin:0 20px 20px}.studio-profile footer{padding:14px 20px}.studio-profile .photo-crop{padding:20px 20px 0}.studio-profile .photo-crop footer{margin:20px -20px 0}.photo-actions>div{left:auto;right:0}}.admin-heading{justify-content:space-between;align-items:center;gap:24px;margin:0 0 32px;display:flex}.admin-heading h1{margin:0}.admin-tabs{box-shadow:inset 0 -1px 0 var(--rule);scrollbar-width:none;gap:28px;margin:48px 0 0;display:flex;overflow-x:auto}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs button{min-height:48px;color:var(--ink-2);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex-shrink:0;padding:0 2px;font-size:16px}.admin-tabs button:not(:disabled):hover{color:var(--ink);border-bottom-color:var(--rule-strong);background:0 0}.admin-tabs button[aria-current],.admin-tabs button[aria-current]:not(:disabled):hover{color:var(--ink);border-bottom-color:var(--accent)}.admin-tabs button:focus-visible{outline-offset:-4px}.admin-panel{padding-top:24px}.admin-panel>p{color:var(--ink-2)}.admin-toolbar{justify-content:space-between;align-items:end;gap:16px;margin-bottom:20px;display:flex}.admin-filters{flex-wrap:wrap;gap:16px;display:flex}.admin-filters label{min-width:200px;margin:0}.admin-portal :is(input:not([type=checkbox]),select){margin-top:6px}.admin-table-wrap{overflow-x:auto}.admin-table-wrap table{border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums;width:100%;font-size:15px}.admin-table-wrap th{border-bottom:1px solid var(--rule-strong);color:var(--ink-2);white-space:nowrap;padding:0 16px 10px;font-size:13px;font-weight:600}.admin-table-wrap td{border-bottom:1px solid var(--rule);vertical-align:middle;overflow-wrap:anywhere;padding:14px 16px}.admin-table-wrap th:first-child,.admin-table-wrap td:first-child{padding-left:0}.admin-table-wrap th:last-child,.admin-table-wrap td:last-child{padding-right:0}.admin-table-wrap td strong,.admin-table-wrap td small{display:block}.admin-table-wrap td strong{font-weight:600}.admin-table-wrap td small{color:var(--ink-2);margin-top:2px;font-size:13px}.admin-table-wrap tbody tr:hover td{background:var(--hover)}.admin-table-wrap td .admin-tag{margin-top:6px}.admin-tag{border:1px solid var(--rule-strong);min-height:24px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;padding:0 9px;font-size:13px;font-weight:600;display:inline-flex}.admin-tag.active{border-color:var(--accent);color:var(--accent)}.admin-tag.suspended{border-color:var(--warn);color:var(--warn)}.admin-link{min-height:44px;color:var(--accent);white-space:nowrap;border-color:#0000;padding:0;background:0 0!important}.admin-link:not(:disabled):hover{color:var(--accent-hover);text-underline-offset:3px;border-color:#0000;text-decoration:underline}.admin-pagination{justify-content:flex-end;align-items:center;gap:16px;margin-top:20px;display:flex}.admin-pagination span{color:var(--ink-2);font-variant-numeric:tabular-nums}.admin-invite{border-top:2px solid var(--accent);border-bottom:1px solid var(--rule);margin:24px 0;padding:20px 0 24px}.admin-invite h2{font-size:22px}.admin-invite p{color:var(--ink-2)}.admin-invite input{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:15px}.admin-invite>button{margin-top:16px}.admin-invite>span{color:var(--ink-2);margin-left:16px;font-size:13px}.admin-row-actions{flex-wrap:wrap;gap:8px;display:flex}.class-checkbox{min-height:44px;color:var(--ink);align-items:center;gap:12px;margin:0;font-size:15px;font-weight:500;display:flex!important}.class-checkbox input[type=checkbox]{width:18px;height:18px;margin:0}.class-checkbox small{color:var(--ink-2);margin-top:2px;font-size:13px;display:block}.class-editor fieldset{border:1px solid var(--rule);border-radius:var(--radius);max-height:280px;margin:24px 0 0;padding:8px 14px;overflow:auto}.class-editor legend{color:var(--ink-2);padding:0 6px;font-size:13px;font-weight:600}.class-editor label{margin-top:16px}.class-editor .class-checkbox{margin-top:0}.class-editor p{font-size:15px;line-height:1.6}.class-editor h2{margin-top:20px;font-size:18px}@media (width<=720px){.admin-heading{flex-direction:column;align-items:flex-start;margin-bottom:24px}.admin-tabs{gap:22px;margin-top:36px}.admin-toolbar{flex-direction:column;align-items:stretch}.admin-filters{grid-template-columns:1fr;width:100%;display:grid}.admin-table-wrap{max-width:100%}.admin-table-wrap table{min-width:570px}.admin-invite>span{margin:12px 0 0;display:block}}.admin-overview{gap:40px;display:grid}.admin-section-header{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:12px;display:flex}.admin-section-header h2{align-items:center;gap:10px;margin:0 0 4px;display:flex}.admin-section-header p{color:var(--ink-2);font-variant-numeric:tabular-nums;margin:0;font-size:15px}.admin-section-header>button{flex-shrink:0}.admin-gauges{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;margin-top:-16px;display:grid}.admin-gauge{border-bottom:1px solid var(--rule);flex-direction:column;gap:8px;min-height:176px;padding:20px 0;display:flex}.admin-gauge header{justify-content:space-between;align-items:center;gap:8px;min-height:24px;display:flex}.admin-gauge h3{font-family:var(--sans);color:var(--ink-2);letter-spacing:0;margin:0;font-size:15px;font-weight:600}.admin-gauge-value{color:var(--ink);font-variant-numeric:lining-nums tabular-nums;align-items:baseline;gap:8px;margin:0;display:flex}.admin-gauge-value strong{font-family:var(--serif);font-size:28px;font-weight:600;line-height:1.15}.admin-gauge-value span{color:var(--ink-2);font-size:15px}.admin-gauge-percent{color:var(--ink-2);font-variant-numeric:tabular-nums;margin:0;font-size:13px}.admin-gauge[data-level=warning] .admin-gauge-percent{color:var(--warn);font-weight:600}.admin-gauge[data-level=full] .admin-gauge-percent{color:var(--danger);font-weight:600}.admin-gauge-detail{color:var(--ink-2);margin:0;font-size:13px;line-height:1.5}.admin-gauge-alert{color:var(--warn);white-space:nowrap;font-size:13px;font-weight:600}.admin-gauge[data-level=full] .admin-gauge-alert{color:var(--danger)}.admin-gauge-sub{border-top:1px solid var(--rule);gap:6px;margin-top:auto;padding-top:10px;display:grid}.admin-gauge-sub>p:first-child{color:var(--ink);font-variant-numeric:tabular-nums;justify-content:space-between;margin:0;font-size:13px;display:flex}.admin-gauge-placeholder{background:0 0}.admin-gauge-placeholder:before{content:"";background:var(--hover);border-radius:4px;width:60%;height:12px;margin-top:4px;display:block}.admin-meter{background:var(--rule);border-radius:2px;height:4px;position:relative;overflow:hidden}.admin-meter-fill{border-radius:inherit;background:var(--accent);transform-origin:0;transition:transform .2s ease-out;position:absolute;inset:0}.admin-meter-mark{background:var(--paper);width:2px;position:absolute;top:0;bottom:0;left:80%}.admin-meter[data-level=warning] .admin-meter-fill{background:var(--warn)}.admin-meter[data-level=full] .admin-meter-fill{background:var(--danger)}.admin-live{gap:0;display:grid}.admin-live-empty{border-bottom:1px solid var(--rule);color:var(--ink-2);margin:0;padding:16px 0}.admin-live-rooms{margin:0;padding:0;list-style:none;display:grid}.admin-live-room{border-bottom:1px solid var(--rule);align-content:start;gap:12px;padding:20px 0;display:grid}.admin-live-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-live-heading h3{margin:0 0 2px}.admin-live-heading p{color:var(--ink-2);margin:0;font-size:15px}.admin-live-facts,.admin-live-people{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 24px;margin:0;font-size:15px;display:grid}.admin-live-facts dt,.admin-live-people dt{color:var(--ink-2);font-size:13px}.admin-live-facts dd,.admin-live-people dd{font-variant-numeric:tabular-nums;margin:2px 0 0}.admin-live-states{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-tag.pending,.admin-tag.warning{border-color:var(--warn);color:var(--warn)}.admin-tag.recording{border-color:var(--danger);color:var(--danger);gap:6px}.admin-tag.recording:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.admin-portal button.admin-danger,.admin-drawer button.admin-danger{border-color:var(--danger);color:var(--danger)}.admin-portal button.admin-danger:not(:disabled):hover,.admin-drawer button.admin-danger:not(:disabled):hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.admin-confirm{border-left:3px solid var(--danger);border-radius:0 var(--radius) var(--radius) 0;background:var(--danger-soft);gap:10px;padding:14px 16px;display:grid}.admin-confirm:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.admin-confirm-title{color:var(--ink);margin:0;font-size:16px;font-weight:600}.admin-confirm-body p,.admin-confirm-body li{color:var(--ink);margin:0;font-size:15px;line-height:1.55}.admin-confirm-body ul{gap:6px;margin:0;padding-left:18px;display:grid}.admin-confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-toolbar-note{max-width:72ch;color:var(--ink-2);margin:0;font-size:15px}.admin-nowrap{white-space:nowrap}.admin-id{color:var(--ink-2);overflow-wrap:anywhere;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.admin-muted{color:var(--ink-2)}.admin-log .admin-link{text-align:left;white-space:normal}.admin-portal button.admin-name{min-height:32px;color:var(--ink);text-align:left;text-decoration:underline;-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong);text-underline-offset:4px;background:0 0;border-color:#0000;justify-content:flex-start;padding:0;font-weight:600;display:inline-flex}.admin-portal button.admin-name:not(:disabled):hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);background:0 0;border-color:#0000}.admin-drawer{background:var(--sheet);width:min(620px,100vw);max-width:100vw;height:100dvh;max-height:none;color:var(--ink);border:0;border-left:1px solid var(--rule-strong);box-shadow:var(--lift);margin:0;padding:0;position:fixed;inset:0 0 0 auto}.admin-drawer[open]{flex-direction:column;animation:.2s ease-out admin-drawer-in;display:flex}.admin-drawer::backdrop{background:var(--scrim,#1112148c)}@keyframes admin-drawer-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.admin-drawer-header{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 28px 20px;display:flex}.admin-drawer-header h1{overflow-wrap:anywhere;margin:0 0 2px}.admin-drawer-header p{color:var(--ink-2);overflow-wrap:anywhere;margin:0 0 10px;font-size:15px}.admin-drawer-body{overscroll-behavior:contain;flex:1;padding:4px 28px 48px;overflow-y:auto}.admin-drawer-body>section{border-bottom:1px solid var(--rule);gap:12px;padding:24px 0;display:grid}.admin-drawer-body>section:last-child{border-bottom:0}.admin-drawer-body>section>button{justify-self:start}.admin-drawer-body h2{margin:0;font-size:18px}.admin-drawer-body h2 small{font-family:var(--sans);color:var(--ink-2);font-variant-numeric:tabular-nums;margin-left:6px;font-size:15px;font-weight:500}.admin-drawer-body h3{font-family:var(--sans);color:var(--ink-2);margin:4px 0 0;font-size:13px;font-weight:600}.admin-drawer button{width:auto;margin:0}.admin-drawer :is(input:not([type=checkbox]),select){margin-top:6px}.admin-drawer label{margin:0}.admin-drawer fieldset{border:1px solid var(--rule);border-radius:var(--radius);max-height:240px;margin:0;padding:8px 14px;overflow:auto}.admin-drawer legend{color:var(--ink-2);padding:0 6px;font-size:13px;font-weight:600}.admin-icon-button{width:44px;height:44px;color:var(--ink-2);border-color:#0000;flex-shrink:0;padding:0}.admin-tags{flex-wrap:wrap;gap:6px;display:flex}.admin-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin:0;display:grid}.admin-facts dt{color:var(--ink-2);font-size:13px}.admin-facts dd{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:15px}.admin-list{margin:0;padding:0;list-style:none}.admin-list>li{border-top:1px solid var(--rule);padding:10px 0}.admin-list>li:first-child{border-top:0;padding-top:0}.admin-list-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-list small{color:var(--ink-2);margin-top:2px;font-size:13px;display:block}.admin-list .admin-link{text-align:left;white-space:normal;min-height:32px}.admin-timeline span{font-size:15px;display:block}.admin-help{color:var(--ink-2);margin:0;font-size:15px}.admin-success:focus{outline:none}.admin-success{border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--accent-soft);color:var(--ink);margin:18px 0 0;padding:12px 16px;font-size:15px}.admin-inline-form{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);gap:12px;padding:16px 0;display:grid}.admin-inline-form p.notice{margin:0}.admin-form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.admin-form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-transfer-result h4{margin:4px 0 0}.admin-transfer-result ul{gap:4px;margin:0;padding-left:18px;font-size:15px;display:grid}@media (width<=960px){.admin-gauges{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.admin-gauges,.admin-facts,.admin-form-row{grid-template-columns:1fr}.admin-gauge{min-height:0}.admin-section-header{flex-direction:column;align-items:stretch}.admin-section-header>button{align-self:flex-start}.admin-drawer-header,.admin-drawer-body{padding-left:18px;padding-right:18px}.admin-list-row{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.admin-drawer[open]{animation:none}.admin-meter-fill{transition:none}}.annotation-tools{border-bottom:1px solid var(--rule);flex-shrink:0;padding:6px 12px 8px}.annotation-toolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.annotation-tool-options{flex-wrap:wrap;gap:4px;display:flex}.annotation-tools button{min-height:44px;color:var(--ink-2);background:0 0;border-color:#0000;padding:0 10px;font-size:15px;font-weight:500}.annotation-tools button:not(:disabled):hover{background:var(--hover);color:var(--ink);border-color:#0000}.annotation-tools button[aria-pressed=true],.annotation-tools button[aria-pressed=true]:not(:disabled):hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.annotation-tools button svg{flex-shrink:0;width:18px;height:18px}.annotation-undo{margin-left:auto}.annotation-readonly,.annotation-save-status{color:var(--ink-2);font-size:13px}.annotation-save-status:empty{display:none}.annotation-options{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;padding-top:8px;display:flex}.annotation-colors{gap:2px;display:flex}.annotation-colors button{width:44px;padding:0;position:relative}.annotation-colors button>span:first-child{border:1px solid var(--rule-strong);border-radius:50%;width:22px;height:22px;display:block}.annotation-colors button[aria-pressed=true]>span:first-child{box-shadow:0 0 0 2px var(--sheet),0 0 0 4px var(--accent)}.annotation-colors .annotation-color-check{color:var(--page);font-size:13px;font-weight:700;position:absolute}.annotation-tools .annotation-width{color:var(--ink-2);align-items:center;gap:10px;margin:0;font-size:15px;font-weight:500;display:flex}.annotation-width input{width:110px}.annotation-tools .annotation-text{flex:1;min-width:200px;margin:0;font-size:13px}.annotation-text textarea{min-height:50px;max-height:160px;margin-top:4px;padding:8px 10px;line-height:1.4}.annotation-text textarea[aria-invalid=true]{border-color:var(--warn)}.annotation-hint{color:var(--ink-2);flex-basis:100%;margin:0 0 4px;font-size:13px;line-height:1.4}.annotation-hint-needed{color:var(--warn);font-weight:600}.annotation-error{color:var(--warn);margin:6px 0 2px;font-size:13px;line-height:1.4}.annotation-layer{z-index:1;position:absolute;inset:0;overflow:hidden}.annotation-layer.annotation-drawing{touch-action:none;cursor:crosshair}.annotation-layer:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.annotation-keyboard-cursor{display:none}.annotation-layer:focus .annotation-keyboard-cursor{display:block}.page-sheet .score-playhead{z-index:2}.annotation-download{margin-left:auto;position:relative}.annotation-download>button{white-space:normal}.annotation-download.compact{margin-left:0}.annotation-download.compact>button{width:44px;color:var(--ink-2);border-color:#0000;padding:0}.annotation-download.compact .annotation-download-error{top:calc(100% + 8px);bottom:auto}.annotation-download-error{z-index:5;background:var(--sheet);border:1px solid var(--rule-strong);border-left:3px solid var(--warn);border-radius:var(--radius);width:min(330px,70vw);box-shadow:var(--lift);padding:16px;line-height:1.5;position:absolute;bottom:calc(100% + 8px);right:0}.annotation-download-error p{color:var(--ink);margin:0 0 12px}.annotation-download-error a{padding:8px 0;font-size:15px;font-weight:600;display:inline-block}.annotation-download-error button{min-width:44px;margin-left:8px}@media (width<=760px){.annotation-tools{padding:6px 8px}.annotation-tool-options{gap:0}.annotation-tools button{padding:0 8px}.annotation-undo{margin-left:0}.annotation-toolbar{gap:4px}.annotation-download>button{max-width:160px}.annotation-colors{gap:0}.annotation-options{gap:8px}}.teacher-cameras{flex-shrink:0;min-width:0}.camera-choice{border:1px solid var(--rule-strong);border-radius:var(--radius);grid-template-columns:1fr 1fr;margin-bottom:8px;display:grid;overflow:hidden}.camera-choice button{min-height:42px;color:var(--ink-2);background:0 0;border:0;border-radius:0;gap:7px;padding:0 8px;font-size:15px;font-weight:500}.camera-choice button+button{border-left:1px solid var(--rule-strong)}.camera-choice button:not(:disabled):hover{background:var(--hover);color:var(--ink)}.camera-choice button[aria-pressed=true],.camera-choice button[aria-pressed=true]:not(:disabled):hover{background:var(--accent-soft);color:var(--accent);font-weight:600}.camera-choice button:focus-visible{outline-offset:-3px}.camera-choice .icon{width:16px;height:16px}.teacher-cameras .instrument-camera video{object-fit:contain;background:var(--paper)}.student-panel{flex-shrink:0}.student-camera .local-preview{transform:scaleX(-1)}.student-input-controls{border-top:1px solid var(--rule);min-width:0;padding-top:10px}.student-input-buttons{flex-wrap:wrap;gap:8px;display:flex}.student-input-buttons button{flex:180px;line-height:1.3}.student-input-controls p{color:var(--ink-2);margin:8px 0 0;font-size:13px;line-height:1.4}:root{--spring:linear(0,.009,.035 2.1%,.141,.281 6.7%,.723 12.9%,.938 16.7%,1.017,1.077,1.121,1.149 24.3%,1.159,1.163,1.161,1.154 29.9%,1.129 32.8%,1.051 39.6%,1.017 43.1%,.991,.977 51%,.974 53.8%,.975 57.1%,.997 69.8%,1.003 76.9%,1)}@media (prefers-reduced-motion:no-preference){.session-row{animation:.2s ease-out both motion-rise}.session-row:nth-child(2){animation-delay:30ms}.session-row:nth-child(3){animation-delay:60ms}.session-row:nth-child(4){animation-delay:90ms}.session-row:nth-child(5){animation-delay:.12s}.session-row:nth-child(n+6){animation-delay:.15s}.hand-button.primary .icon{transform-origin:70% 90%;animation:.6s ease-out motion-wave}.unread-badge{animation:.36s ease-out both motion-pop;animation-timing-function:var(--spring)}}@keyframes motion-rise{0%{transform:translateY(6px)}to{transform:none}}@keyframes motion-pop{0%{transform:scale(.5)}to{transform:scale(1)}}@keyframes motion-wave{0%{transform:rotate(0)}20%{transform:rotate(-14deg)}45%{transform:rotate(10deg)}70%{transform:rotate(-6deg)}to{transform:rotate(0)}}.assignment-files{border-top:1px solid var(--rule);margin-top:24px;padding-top:20px}.assignment-files>header{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.assignment-files h3{margin:0;font-size:18px}.assignment-files>header span{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:13px}.assignment-files>p,.assignment-files>small{color:var(--ink-2);margin:0;font-size:13px;line-height:1.5}.assignment-files>small{margin-top:12px;display:block}.assignment-files ul{border-top:1px solid var(--rule);margin:14px 0;padding:0;list-style:none}.assignment-files ul:empty{display:none}.assignment-files li{border-bottom:1px solid var(--rule);padding:12px 0}.submission-file-line{align-items:center;gap:10px;min-width:0;display:flex}.submission-file-line>.icon{color:var(--ink-2)}.submission-file-line>div{flex:1;min-width:0}.submission-file-line strong{overflow-wrap:anywhere;font-size:15px;font-weight:600;display:block}.submission-file-line span{color:var(--ink-2);font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px;display:block}.assignment-files .file-remove{width:44px;min-width:44px;height:44px;color:var(--ink-2);background:0 0;border-color:#0000;margin:0;padding:0;font-size:24px;font-weight:400}.assignment-files .file-remove:not(:disabled):hover{background:var(--danger-soft);color:var(--danger);border-color:#0000}.submission-file-preview{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.submission-file-preview audio{width:100%;max-width:420px;height:40px}.submission-file-preview a{align-items:center;min-height:44px;font-size:15px;font-weight:600;display:inline-flex}.submission-add{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.assignment-files .submission-add button{width:auto;margin:0}.submission-progress{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:1fr auto;gap:6px 12px;margin:14px 0;padding:12px 0;display:grid}.submission-progress>span{overflow-wrap:anywhere;font-size:15px}.submission-progress progress{width:100%;accent-color:var(--accent)}.submission-progress small{color:var(--ink-2);font-variant-numeric:tabular-nums;grid-column:1;font-size:13px}.assignment-files .submission-progress button{grid-area:1/2/4;width:auto;margin:0}.assignment-files .submission-removal{color:var(--warn);margin:12px 0;font-size:15px}.practice-chart{margin:16px 0 28px}.practice-chart header{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;padding:0 0 14px;display:flex}.practice-chart-title{min-width:0}.practice-chart h3{margin:0;font-size:18px}.practice-chart-title p{color:var(--ink-2);margin:2px 0 0;font-size:13px}.practice-chart dl{margin:0;display:flex}.practice-chart dl>div{border-left:1px solid var(--rule);min-width:104px;margin-left:18px;padding:0 0 0 18px}.practice-chart dt{color:var(--ink-2);font-size:13px}.practice-chart dd{font-family:var(--serif);color:var(--ink);font-variant-numeric:lining-nums tabular-nums;margin:2px 0 0;font-size:28px;font-weight:600;line-height:1.1}.practice-chart dd small{font-family:var(--sans);color:var(--ink-2);font-size:13px;font-weight:500}.practice-plot{border-bottom:1px solid var(--rule);padding:36px 0 32px}.practice-area{position:relative}.practice-bars{border-bottom:1px solid var(--rule-strong);align-items:flex-end;gap:3px;height:140px;margin:0;padding:0;list-style:none;display:flex}.practice-chart .practice-bars li{outline-offset:2px;background:0 0;border:0;border-radius:2px;flex:1;align-items:flex-end;height:100%;margin:0;padding:0;display:flex}.practice-bars li:focus-visible{outline:2px solid var(--accent)}.practice-bars .bar{background:var(--accent);transform-origin:bottom;width:100%;animation:.42s ease-out both practice-rise;animation-timing-function:var(--practice-spring);animation-delay:calc(var(--i) * 12ms);border-radius:2px 2px 0 0}.practice-bars .bar.zero{background:var(--rule-strong)}.practice-bars li.active .bar{background:var(--accent-hover)}.practice-tip{background:var(--sheet);border:1px solid var(--rule-strong);border-radius:var(--radius);box-shadow:var(--lift);white-space:nowrap;pointer-events:none;z-index:1;flex-direction:column;gap:2px;padding:6px 10px;display:flex;position:absolute;bottom:calc(100% + 8px);transform:translate(-50%)}.practice-tip strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:15px}.practice-tip span{color:var(--ink-2);font-size:13px}.practice-axis{height:18px;position:absolute;top:calc(100% + 8px);left:0;right:0}.practice-axis span{color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px;position:absolute;transform:translate(-50%)}:root{--practice-spring:linear(0,.009,.035 2.1%,.141,.281 6.7%,.723 12.9%,.938 16.7%,1.017,1.077,1.121,1.149 24.3%,1.159,1.163,1.161,1.154 29.9%,1.129 32.8%,1.051 39.6%,1.017 43.1%,.991,.977 51%,.974 53.8%,.975 57.1%,.997 69.8%,1.003 76.9%,1)}@keyframes practice-rise{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.practice-bars .bar{animation:none}}@media (width<=640px){.practice-chart dl{width:100%}.practice-chart dl>div{flex:1;min-width:0;margin-left:12px;padding-left:12px}.practice-chart dl>div:first-child{border-left:0;margin-left:0;padding-left:0}.practice-chart dd{font-size:22px}}.portal-navigation{scrollbar-width:none;align-self:stretch;gap:28px;min-width:0;display:flex;overflow-x:auto}.portal-navigation::-webkit-scrollbar{display:none}.portal-navigation button{z-index:1;height:auto;min-height:44px;color:var(--ink-2);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex-shrink:0;padding:0 2px;font-size:16px;font-weight:600;position:relative}.portal-navigation button:not(:disabled):hover{color:var(--ink);border-bottom-color:var(--rule-strong);background:0 0}.portal-navigation button[aria-current=page],.portal-navigation button[aria-current=page]:not(:disabled):hover{color:var(--ink);border-bottom-color:var(--accent)}.portal-navigation button:focus-visible{outline-offset:-4px}.portal-panel[hidden]{display:none}.portal-panel:not([hidden]){animation:.18s ease-out both portal-reveal}@keyframes portal-reveal{0%{opacity:.4}to{opacity:1}}.portal-panel .entry-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:56px;display:grid}.join-code{border-left:1px solid var(--rule);padding-left:32px}.join-code h2{font-size:18px}.join-code p{color:var(--ink-2);font-size:15px}.join-code form{margin-top:16px}.join-code input{font-variant-numeric:tabular-nums;font-feature-settings:"zero"}.portal-panel>.entry-card{border-top:2px solid var(--accent);border-bottom:1px solid var(--rule);margin-bottom:40px;padding:20px 0 24px}.portal-panel>.entry-card h2{font-size:22px}.portal-panel>.entry-card p{color:var(--ink-2)}.student-portal>.entry-card{margin-top:56px}.student-portal>.entry-card>button{margin-top:20px}.portal-teacher{max-width:620px;padding:24px 0}.portal-teacher p{color:var(--ink-2)}.portal-section-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.portal-section-heading h1{margin:0}.portal-section-heading p{color:var(--ink-2);margin:8px 0 0}.portal-section-heading>button{flex-shrink:0}.portal-empty,.portal-loading{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);color:var(--ink-2);max-width:none;margin:0;padding:20px 0}.portal-success{color:var(--accent);margin:14px 0 0;font-size:15px;font-weight:600}.student-portal textarea{min-height:96px}.library-grid,.assignment-grid{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:32px;display:grid}.library-list,.assignment-list{border-top:1px solid var(--rule);flex-direction:column;max-height:80dvh;display:flex;overflow:auto}.library-list>button,.assignment-list button{border:0;border-bottom:1px solid var(--rule);text-align:left;background:0 0;border-left:2px solid #0000;border-radius:0;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:4px;width:100%;min-height:64px;padding:14px 12px 14px 14px;font-weight:400;display:flex}.library-list>button:not(:disabled):hover,.assignment-list button:not(:disabled):hover{background:var(--hover);border-color:var(--rule);border-left-color:var(--rule-strong)}.library-list>button[aria-pressed=true],.assignment-list button[aria-pressed=true],.library-list>button[aria-pressed=true]:not(:disabled):hover,.assignment-list button[aria-pressed=true]:not(:disabled):hover{background:var(--accent-soft);border-left-color:var(--accent)}.library-list>button:focus-visible,.assignment-list button:focus-visible{outline-offset:-2px}.library-list strong,.library-list span,.library-list small{overflow-wrap:anywhere;display:block}.library-list strong{color:var(--ink);font-size:16px;font-weight:600}.library-list span,.library-list small{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:13px}.library-preview{height:76dvh;min-height:460px}.assignment-list button>span:first-child{color:var(--ink);overflow-wrap:anywhere;font-size:16px;font-weight:600}.assignment-list small{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:13px}.assignment-status{border:1px solid var(--rule-strong);min-height:24px;color:var(--ink-2);border-radius:999px;align-items:center;margin-top:4px;padding:0 9px;font-size:13px;font-weight:600;display:inline-flex}.assignment-status.reviewed{border-color:var(--accent);color:var(--accent)}.assignment-detail{min-width:0;max-width:720px}.assignment-detail>header{border-bottom:1px solid var(--rule);margin-bottom:20px;padding-bottom:16px}.assignment-detail h2{overflow-wrap:anywhere;margin-bottom:6px;font-size:22px}.assignment-detail>header p{color:var(--ink-2);margin:0;font-size:15px}.assignment-instructions{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:28px;line-height:1.65}.assignment-feedback{border-left:2px solid var(--accent);margin-bottom:28px;padding:2px 0 2px 18px}.assignment-feedback h3{margin:0 0 6px;font-size:18px}.assignment-feedback p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 6px}.assignment-feedback small{color:var(--ink-2);font-size:13px}.assignment-reply-meta{color:var(--ink-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-top:8px;font-size:13px;display:flex}.practice-grid{grid-template-columns:minmax(300px,400px) minmax(0,1fr);align-items:start;gap:56px;display:grid}.practice-recorder h2,.practice-journal h2{font-size:22px}.practice-clock{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-family:var(--serif);color:var(--ink);font-variant-numeric:lining-nums tabular-nums;margin:12px 0 16px;padding:8px 0;font-size:36px;font-weight:600;line-height:1.3;display:block}.practice-transport{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.student-portal #practice-minutes{font-variant-numeric:tabular-nums;width:120px}.practice-recorder form>label{margin-top:20px}.practice-journal header{padding-bottom:4px}.practice-journal header p{color:var(--ink-2);font-variant-numeric:tabular-nums;margin:0;font-size:15px}.practice-journal ol{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.practice-journal li{border-bottom:1px solid var(--rule);padding:14px 0}.practice-journal li>div{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.practice-journal time{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:15px}.practice-journal strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:16px}.practice-journal li p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink-2);margin:6px 0 0;font-size:15px}@media (prefers-reduced-motion:reduce){.portal-panel:not([hidden]){animation:none}}@media (width<=1000px){.portal-panel .entry-grid{grid-template-columns:minmax(0,1fr) 260px;gap:32px}.join-code{padding-left:24px}.library-grid,.assignment-grid{grid-template-columns:240px minmax(0,1fr);gap:24px}.practice-grid{gap:32px}}@media (width<=760px){.student-portal .entry-header>.portal-navigation{flex:1 0 100%;order:3;gap:22px;margin:0 -16px;padding:0 16px}.portal-navigation button{min-height:48px;font-size:15px}.portal-panel .entry-grid{grid-template-columns:1fr;gap:40px}.join-code{border-left:0;border-top:1px solid var(--rule);padding:24px 0 0}.portal-section-heading{flex-wrap:wrap;align-items:flex-start;gap:12px}.library-grid,.assignment-grid,.practice-grid{grid-template-columns:1fr;gap:28px}.library-list,.assignment-list{max-height:300px}.library-preview{height:70dvh;min-height:420px}}.lesson-follow-up{flex-direction:column;gap:10px;min-width:0;display:flex}.attendance-line{flex-wrap:wrap;align-items:center;gap:8px;max-width:none;margin:0;display:flex}.attendance-chip{border:1px solid var(--rule-strong);min-height:26px;color:var(--ink);border-radius:999px;align-items:center;gap:7px;padding:0 10px;font-size:13px;font-weight:600;display:inline-flex}.attendance-dot{background:var(--accent);border-radius:50%;width:7px;height:7px}.attendance-chip.late .attendance-dot,.attendance-chip.absent .attendance-dot{background:var(--warn)}.attendance-chip.excused .attendance-dot{background:var(--ink-3)}.attendance-chip.makeup{border-style:dashed;border-color:var(--warn);color:var(--warn)}.attendance-note{color:var(--ink-2);font-size:13px}.lesson-report{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.lesson-report summary{cursor:pointer;min-height:44px;color:var(--ink);align-items:center;gap:10px;font-size:15px;font-weight:600;list-style:none;display:flex}.lesson-report summary::-webkit-details-marker{display:none}.lesson-report summary>.icon{width:18px;height:18px;color:var(--ink-2);flex-shrink:0}.lesson-report summary>.icon:last-child{transition:transform var(--quick) ease-out;margin-left:auto}.lesson-report[open] summary>.icon:last-child{transform:rotate(180deg)}.report-new{background:var(--accent);color:var(--on-accent);border-radius:999px;padding:2px 8px;font-size:13px;font-weight:700}.lesson-report section{border-top:1px solid var(--rule);padding:12px 0 14px}.lesson-report h4{margin:0 0 4px}.lesson-report p{color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;max-width:68ch;margin:0;font-size:16px;line-height:1.6}.lesson-report small{color:var(--ink-2);margin-top:6px;font-size:13px;display:block}.past-sessions>summary .unread-badge{margin-left:4px}@media (prefers-reduced-motion:no-preference){.lesson-report[open] section{animation:.18s ease-out both report-open}.report-new{animation:.36s ease-out both motion-pop;animation-timing-function:var(--spring,ease-out)}}@keyframes report-open{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.chat-panel>header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.chat-panel>header h2{margin:0;font-size:16px}.chat-panel>header>button{width:44px;color:var(--ink-2);background:0 0;border-color:#0000;padding:0}.chat-log{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent;min-height:80px;max-height:280px;padding-right:4px;overflow:auto}.chat-empty{color:var(--ink-2);margin:0;padding:12px 0;font-size:15px}.chat-message{border-left:2px solid var(--rule-strong);margin:0 0 10px;padding:4px 0 4px 12px;animation:.16s ease-out both chat-arrival}.chat-message.own{border-left-color:var(--accent)}.chat-message header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.chat-message strong{overflow-wrap:anywhere;font-size:13px;font-weight:600}.chat-message time{color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}.chat-message small{color:var(--accent);font-size:13px}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);margin:2px 0 0;font-size:15px;line-height:1.5}.chat-panel .chat-latest{width:100%;margin:4px 0}.chat-panel form{border-top:1px solid var(--rule);margin-top:10px;padding-top:12px}.chat-panel label{margin-bottom:6px}.chat-panel textarea{min-height:64px;max-height:180px;padding:8px 10px;line-height:1.4}.chat-compose{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.chat-compose span{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:13px}.chat-compose button{width:auto;min-width:88px;margin:0}.chat-help{color:var(--ink-2);margin:8px 0 0;font-size:13px;line-height:1.4}.chat-error{color:var(--warn);margin:8px 0 0;font-size:13px;line-height:1.4}@keyframes chat-arrival{0%{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.chat-message{animation:none}}.lesson-keyboard{background:var(--sheet);border:1px solid var(--rule);border-radius:10px;grid-column:1/-1;min-width:0;overflow:hidden}.lesson-keyboard>header{justify-content:space-between;align-items:center;gap:12px;padding:0 14px;display:flex}.keyboard-disclosure{background:0 0;border:0;min-height:44px;padding:0;font-size:15px;font-weight:600}.keyboard-disclosure:not(:disabled):hover{color:var(--accent);background:0 0}.keyboard-disclosure>.icon:first-child{color:var(--ink-2)}.keyboard-disclosure>.icon:last-child{width:14px;margin-left:2px}.keyboard-received{color:var(--warn);text-align:right;font-size:13px}.keyboard-content{border-top:1px solid var(--rule);padding:4px 14px 14px;animation:.18s ease-out keyboard-open}.keyboard-settings{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 12px;display:flex}.keyboard-octave{align-items:center;gap:8px;display:flex}.keyboard-octave button{width:44px;padding:0}.keyboard-octave output{text-align:center;min-width:96px;color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:13px}.keyboard-synth{min-height:44px;color:var(--ink);cursor:pointer;align-items:center;gap:10px;margin:0;font-size:15px;font-weight:500;display:flex}.lesson-keyboard .keyboard-synth input{width:18px;height:18px;margin:0}.keyboard-volume{min-height:44px;color:var(--ink);align-items:center;gap:12px;margin:0;font-size:15px;font-weight:500;display:flex}.keyboard-volume input{width:120px}.keyboard-volume output{text-align:right;width:40px;color:var(--ink-2);font-variant-numeric:tabular-nums}.keyboard-permission{color:var(--ink-2);justify-content:space-between;align-items:center;gap:12px;padding:0 0 12px;font-size:15px;display:flex}.piano-keys{background:var(--key-black);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:6px;height:106px;position:relative;overflow:hidden}.piano-key{touch-action:none;border-radius:0;min-height:0;padding:0;transition:background-color 80ms;position:absolute;top:0}.piano-key.white{z-index:0;background:var(--key-white);border:1px solid var(--key-edge);height:100%;color:var(--key-black)}.piano-key.black{z-index:1;background:var(--key-black);border:1px solid var(--key-black);height:64%;color:var(--key-white);border-radius:0 0 4px 4px}.piano-key.white:not(:disabled):hover{background:var(--page);border-color:var(--key-edge);color:var(--key-black)}.piano-key.black:not(:disabled):hover{background:var(--rule-strong);border-color:var(--key-black);color:var(--key-white)}.piano-key.white.held,.piano-key.black.held,.piano-key.held:not(:disabled):hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.piano-key.white.received,.piano-key.black.received{background:var(--warn);border-color:var(--warn);color:var(--key-black)}.piano-key:disabled{opacity:1;cursor:default}.piano-key:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}.piano-key>span{pointer-events:none;font-size:13px;font-weight:500;position:absolute;bottom:8px}.keyboard-content>p{max-width:none;color:var(--ink-2);margin:10px 0 0;font-size:13px}@keyframes keyboard-open{0%{opacity:.3}to{opacity:1}}@media (width<=760px){.keyboard-content{padding:4px 12px 12px}.keyboard-settings{gap:8px}.keyboard-volume{width:100%}.keyboard-volume input{flex:1;min-width:0}.keyboard-permission{flex-direction:column;align-items:flex-start}.piano-keys{height:110px}.keyboard-received{max-width:40%}}@media (prefers-reduced-motion:reduce){.keyboard-content{animation:none}.piano-key{transition:none}}.recording-notice{background:var(--sheet);border:1px solid var(--rule);border-radius:10px;justify-content:space-between;align-items:center;gap:20px;margin:0 0 12px;padding:12px 16px;display:flex}.recording-notice.is-recording{border-color:var(--danger)}.recording-copy{min-width:0}.recording-copy strong{align-items:center;gap:10px;font-size:15px;display:flex}.recording-copy p{max-width:780px;color:var(--ink-2);margin:4px 0 0;font-size:15px;line-height:1.5}.recording-dot{background:var(--ink-3);border-radius:50%;flex-shrink:0;width:8px;height:8px}.is-recording .recording-dot{background:var(--danger)}.recording-actions{flex-shrink:0;gap:8px;display:flex}@media (width<=680px){.recording-notice{flex-direction:column;align-items:flex-start;gap:12px}.recording-actions{width:100%}.recording-actions button{flex:1}}
