/* Working surfaces inherit the approved chrome, smoke and stage palette. */
html{scroll-padding-top:100px;scroll-padding-bottom:120px}
h1,h2{text-wrap:balance}button,input,select,textarea,a,summary{scroll-margin-top:100px;scroll-margin-bottom:130px}
.shell{overflow:visible}.sidebar{position:sticky;top:20px;height:calc(100dvh - 40px);border-radius:22px 0 0 22px;overflow-y:auto;overscroll-behavior:contain;align-self:start}.topbar{position:sticky;top:0;z-index:30;background:rgba(25,25,28,.94);backdrop-filter:blur(18px);border-radius:0 22px 0 0}.main{min-height:calc(100svh - 112px)}
.required-mark{color:var(--color-accent);font-size:14px}.breadcrumb{min-height:36px;margin-bottom:12px}.compact-field{min-width:170px}.small{font-size:12px}
.lesson-heading h1{font-size:32px}.lesson-heading .breadcrumb{margin-bottom:6px;min-height:28px;padding:0;border:0;font-size:12px}.lesson-heading p{font-size:13px}
.is-lesson .main{padding-bottom:118px}.is-lesson .demo-note{padding-top:20px}
.room-grid{grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}.room-main{gap:18px}
.room-video{min-height:200px;height:200px;isolation:isolate;border:1px solid #dce1eb24;border-radius:16px}.room-video .video-person{gap:8px;padding-bottom:20px}.room-video .avatar{width:42px!important;height:42px!important;font-size:15px!important}.room-video h3{font-size:15px}.room-video .chip{font-size:12px;background:#17191b99}
.room-video .self-video{width:120px;height:82px;bottom:24px;right:12px;padding:8px;font-size:12px;line-height:1.3;justify-items:center;text-align:center;background:#15181bee}.room-demo{position:absolute;bottom:10px;left:14px;color:var(--color-muted);font-size:11px;z-index:2}
.room-material-bar{align-items:center;gap:14px}.room-material-bar .thumb{width:48px;height:48px}.room-material-bar h2{font-family:var(--font-body);font-size:17px;font-weight:500;line-height:1.4}.room-material-bar p{margin-top:4px}.room-material-bar .grow{flex-basis:230px}.room-material-bar>.grow{flex-basis:300px}
.room-sidebar{overflow:clip;background:linear-gradient(135deg,#e6edf512,#d5dce706);box-shadow:inset 0 1px 0 #ffffff16,0 8px 25px #0002}.room-tabs{display:flex;border-bottom:1px solid var(--color-line);padding:8px;gap:4px}.room-tabs button{flex:1;padding:10px 5px;min-height:44px;border:1px solid transparent;background:transparent;border-radius:8px;color:var(--color-muted);font-size:13px}.room-tabs button[aria-selected=true]{color:var(--color-text);background:var(--color-panel-raised);border-color:var(--color-line)}.room-panel{padding:18px}.room-panel h2{font:500 17px/1.4 var(--font-body)}.room-homework+.room-homework{padding-top:18px;border-top:1px solid var(--color-line)}.room-homework .thumb{width:40px;height:40px}.room-homework .text-link{display:block}.room-panel textarea{min-height:220px}.room-panel .feedback{padding:10px 12px}.room-control-dock{position:fixed;z-index:35;bottom:16px;left:max(246px,calc((100vw - 1580px)/2 + 226px));right:max(50px,calc((100vw - 1580px)/2 + 30px));display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:rgba(36,36,40,.94);border:1px solid #e5eaf34d;border-radius:14px;backdrop-filter:blur(20px);box-shadow:inset 0 1px 0 #fff2,0 12px 40px #0007}.room-control-dock .btn{font-size:13px;min-height:44px}
.tab-player{overflow:clip;background:linear-gradient(140deg,#22272bd9,#1b1e21f2);border-color:#cbd4e442}.tab-player .player-head{padding:16px 18px}.tab-player .score-grid{padding:14px 14px 4px}.tab-player .player-controls{padding:12px 16px}.tab-player .measure-nav{padding:6px 14px}.tab-player .tempo-field{font-size:13px}.tab-player .tempo-field input{min-height:44px}.tab-player .field{font-size:12px}.tab-player .score-grid svg{display:block;width:100%;height:auto;min-height:155px}.tab-player .measure{min-width:0}.tab-player .player-head strong{font-weight:500}
.practice-context{display:flex;justify-content:space-between;align-items:start;gap:20px}.practice-context>.row{flex:1}.practice-context .thumb{width:80px;height:72px}.practice-context h2{font-size:28px}.material-picker{max-width:330px;flex:0 1 260px}.material-picker summary{padding:9px 12px;min-height:42px;cursor:pointer;border:1px solid var(--color-line);border-radius:9px;font-size:13px}.material-picker[open] summary{background:var(--color-panel-raised)}.practice-workspace{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:24px;align-items:start}.practice-guide{padding:18px 0 0;border-top:1px solid var(--color-line)}.practice-guide ol{padding-left:18px;display:grid;gap:16px;font-size:13px;color:var(--color-muted);line-height:1.7}.practice-submit{padding-block:8px}.material-choice{justify-content:start;text-align:left}.material-choice .thumb{width:48px;height:44px}
.drum-scroll{overflow-x:auto;padding:7px 3px 13px;scrollbar-color:#858990 #22252a;scrollbar-width:auto}.drum-timeline{display:grid;gap:8px;min-width:700px}.drum-grid{display:grid;grid-template-columns:76px repeat(16,minmax(30px,1fr));gap:6px;align-items:center}.drum-label{position:sticky;left:0;z-index:2;background:#242529;align-self:stretch;display:flex;align-items:center;min-height:30px;font-size:12px;padding-inline:4px;box-shadow:5px 0 4px #242529}.drum-step,.drum-step:nth-of-type(n){min-width:30px;min-height:36px;width:100%;border-radius:5px;grid-column:auto}.drum-step.beat-start{border-left-color:#a5aab6}.step-number{text-align:center;color:var(--color-muted);font-size:12px;font-variant-numeric:tabular-nums}.step-number.beat-start{color:var(--color-text);font-weight:500}.drum-grid .drum-label{grid-row:auto}.drum-grid .drum-step:nth-of-type(8n+9){grid-column:auto}.drum-scroll-hint{margin-top:8px}.drum-numbers .drum-label{font-size:11px;min-height:24px}
@media(max-width:1150px){.room-grid{grid-template-columns:minmax(0,1fr) 245px;gap:20px}.practice-workspace{grid-template-columns:minmax(0,1fr)}.practice-guide{display:none}.room-video{min-height:200px;height:200px}.room-video .self-video{width:90px}.room-control-dock{left:240px;right:44px}.room-material-bar>.grow{flex-basis:220px}}
@media(max-width:950px){.room-grid{grid-template-columns:minmax(0,1fr)}.room-sidebar{order:2}.room-video{height:220px}.room-control-dock{left:216px;right:44px}.practice-context{flex-wrap:wrap}.material-picker{max-width:none;flex-basis:100%}}
@media(max-width:700px){
 html{scroll-padding-top:90px;scroll-padding-bottom:140px}.shell{overflow:visible}.topbar{border-radius:15px 15px 0 0;padding-top:max(12px,env(safe-area-inset-top));background:#19191cf5}.main{min-height:calc(100dvh - 86px)}.breadcrumb{min-height:40px}.is-lesson .main{padding-bottom:150px}.lesson-heading h1{font-size:29px}.lesson-heading .row{gap:12px}.lesson-heading p{font-size:12px}.room-grid{gap:20px}.room-video{height:230px;min-height:230px}.room-video .video-person{align-self:start;padding-top:22px;padding-bottom:82px}.room-video .self-video{width:110px;height:76px;bottom:20px;right:10px;font-size:12px}.room-video .video-person .chip{font-size:11px}.room-demo{font-size:11px;line-height:1.3;bottom:8px;left:10px;max-width:calc(100% - 136px)}.room-material-bar{gap:12px}.room-material-bar h2{font-size:16px}.room-material-bar .thumb{width:44px;height:44px}.room-material-bar>.grow{flex-basis:100%}.room-material-bar>.btn{width:100%;min-height:44px}.room-control-dock{left:16px;right:16px;bottom:max(8px,env(safe-area-inset-bottom));padding:9px;gap:8px;flex-wrap:wrap;border-radius:13px}.room-control-dock>.row:first-child{flex:1;gap:6px;flex-wrap:nowrap}.room-control-dock>.row:last-child{margin-left:auto}.room-control-dock .btn{font-size:11px;min-height:44px;padding:8px}.room-control-dock>.row:first-child>.btn{flex:1;gap:6px}.room-control-dock svg{width:16px;height:16px}.room-sidebar{border-radius:16px}.room-panel{padding:16px}.room-panel textarea{min-height:160px}
 .tab-player .player-head{padding:14px;gap:6px;font-size:13px}.tab-player .score-grid{padding:10px 8px 4px}.tab-player .player-controls{padding:12px;gap:10px}.tab-player .measure-nav{padding:6px 10px;font-size:12px}.tab-player .btn-sm{min-height:44px}.tab-player .tempo-field{gap:7px;font-size:12px}.tab-player .tempo-field input{width:62px}.tab-player .player-controls .btn{padding:10px 12px}.tab-player .compact-field{flex:1}
 .practice-context{padding:16px;gap:14px}.practice-context h2{font-size:25px}.practice-context .thumb{width:54px;height:60px}.practice-context .row{gap:12px}.practice-context>.row{flex-basis:100%}.practice-context .grow{min-width:150px}.material-picker{flex-basis:100%}.material-picker summary{min-height:44px}.practice-workspace{gap:0}.practice-submit .btn{width:100%}.practice-context+.mt{margin-top:16px}
 .drum-timeline{min-width:944px}.drum-grid{grid-template-columns:74px repeat(16,44px);gap:10px}.drum-step,.drum-step:nth-of-type(n){width:44px;min-height:44px;grid-column:auto}.drum-grid .drum-step:nth-of-type(8n+9){grid-column:auto}.drum-label{font-size:12px;background:#25262a;box-shadow:8px 0 8px #25262a}.drum-scroll{padding-block:8px 14px}.drum-scroll-hint{font-size:12px}.drum-machine>.section-title{align-items:start;gap:10px}.drum-machine>.section-title h2{font-size:23px}
 .btn-sm{min-height:44px}
}

/* Calendar: events first, configuration on demand. */
.calendar-toolbar{gap:16px;margin-bottom:14px}.calendar-range{font-size:23px;margin-left:6px}.calendar-context{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:20px;font-size:13px;color:var(--color-muted)}
.calendar-filter-details{position:relative;color:var(--color-text)}.calendar-filter-details summary{display:flex;align-items:center;gap:7px;min-height:42px;padding:8px 12px;border:1px solid var(--color-line);border-radius:9px;cursor:pointer;list-style:none;font-size:13px}.calendar-filter-details summary::-webkit-details-marker{display:none}.calendar-filter-details[open] summary{background:var(--color-panel-raised)}.calendar-filter-form{position:absolute;right:0;top:calc(100% + 8px);z-index:25;width:300px;max-width:calc(100vw - 64px);display:grid;gap:16px;padding:18px;background:#27272cf5;border:1px solid #e2e7f14d;box-shadow:0 16px 40px #0006;border-radius:14px;backdrop-filter:blur(18px)}
.calendar-settings{margin-top:24px;padding-top:12px;border-top:1px solid var(--color-line)}.calendar-settings>summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-size:13px;color:var(--color-muted)}.calendar-settings>summary::before{content:'+';font-size:20px;color:var(--color-text)}.calendar-settings[open]>summary::before{content:'−'}.calendar-settings .panel{box-shadow:none;background:var(--color-panel);border-radius:14px}
.calendar-scroll{max-height:600px;overflow:auto;scrollbar-color:#858990 #22252a}.week-calendar{min-width:900px}.week-head{position:sticky;top:0;z-index:5;background:#28292e}.week-times span,.week-zone,.week-day small,.calendar-event strong,.calendar-event span{font-size:12px}.week-day{min-height:60px}.week-day strong{font-size:18px}.hour-cell{height:64px}.calendar-event{font-size:12px;padding:5px 7px;gap:4px}.calendar-event span{line-height:1.3}.calendar-legend{font-size:12px;gap:16px;margin-bottom:12px}.calendar-scroll-hint{display:none;margin-bottom:10px}.calendar-list>section>.row{margin-bottom:12px}.calendar-list>section>.row h2{font-size:23px}.student-calendar-toolbar{margin-bottom:14px}.student-calendar-toolbar .calendar-range{font-size:22px}.calendar-days+.calendar-context{margin-top:14px}.plan-status{display:inline-block;margin-top:6px;color:var(--color-muted)}.plan-row.selected .plan-status{color:var(--color-accent)}
@media(max-width:700px){
 .calendar-toolbar{gap:10px;margin-bottom:12px}.calendar-toolbar>.row{gap:8px}.calendar-toolbar .calendar-range{width:100%;font-size:21px;margin:4px 0 0}.calendar-toolbar .tabs{width:auto;margin-left:auto}.calendar-toolbar .tabs .btn{font-size:12px;padding:8px 10px}.calendar-context{gap:8px;align-items:center;margin-bottom:14px;font-size:12px}.calendar-context>span{max-width:210px}.calendar-context-zone{display:block;font-size:12px;margin-top:3px}.calendar-filter-details summary{min-height:44px;font-size:12px;padding:8px 10px}.calendar-filter-details .calendar-filter-form{width:280px}.calendar-scroll-hint{display:block;font-size:12px}.week-calendar{min-width:900px}.calendar-list>section>.row{gap:6px}.calendar-list>section>.row h2{font-size:22px}.calendar-list .event{padding:16px}.calendar-list .event .row{gap:8px}.calendar-settings{margin-top:20px}.calendar-settings>summary{min-height:48px}.student-calendar-toolbar .calendar-range{font-size:20px}.calendar-days{gap:5px}.day-btn{min-height:60px}.heading>.row{gap:8px}.heading>.row .btn{font-size:12px;padding:10px 12px}.record-table{display:block;font-size:13px}.record-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.record-table tbody{display:grid;gap:14px}.record-table tr{display:block;border:1px solid #e2e7f13d;border-radius:14px;padding:16px;background:linear-gradient(135deg,#f5f7fa15,#d5dce70a);box-shadow:inset 0 1px 0 #fff2}.record-table td{display:grid;grid-template-columns:minmax(100px,.85fr) minmax(0,1.15fr);gap:12px;text-align:right;align-items:center;padding:9px 0;border:0;font-size:13px;overflow-wrap:anywhere}.record-table td::before{content:attr(data-label);color:var(--color-muted);text-align:left;font-size:12px}.record-table td:first-child{display:block;text-align:left;font-size:16px;padding:0 0 14px}.record-table td:first-child::before{display:none}.record-table td:first-child .row{flex-wrap:nowrap;align-items:center}.record-table td:first-child .row>div{min-width:0}.record-table td.record-action{display:block;padding-top:12px;padding-bottom:0}.record-table td.record-action::before{display:none}.record-table .record-action>.btn{width:100%;min-height:44px}.table-wrap:has(>.record-table){overflow:visible;background:none;border:0;box-shadow:none;backdrop-filter:none;border-radius:0}
}
