@layer site{@font-face{font-family:Inter;src:url(/fonts/Inter.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Fraunces;src:url(/fonts/Fraunces.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Fraunces;src:url(/fonts/Fraunces-Italic.woff2)format("woff2");font-style:italic;font-weight:100 900;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink900:#100e18;--ink800:#15131f;--ink700:#1f1c29;--ink600:#2c2939;--ink400:#6b6776;--ink300:#9b96a4;--ink200:#c9c3d2;--cream:#f4ede0;--magenta:#ff3d8a;--magenta-hi:#ff5fa0;--brass:#d4a24c;--brass-hi:#e7bc68;--mint:#5fdfb1;--muted:var(--ink300);--line:var(--ink600);--line-brass:#d4a24c80;--serif:Fraunces, Georgia, serif;--sans:Inter, Arial, sans-serif;font-family:var(--sans);color:var(--ink200);background:var(--ink900);font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:112px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}img{max-width:100%;height:auto;display:block}svg{max-width:100%}p{margin:0 0 20px;font-size:15px;line-height:1.8}h1,h2,h3{color:var(--cream);font-family:var(--serif);letter-spacing:-.045em;margin:0;font-weight:450}h1{font-size:clamp(54px,5.4vw,83px);line-height:1.06}h2{font-size:clamp(38px,3.7vw,58px);line-height:1.14}h3{font-size:28px;line-height:1.24}em{color:var(--brass);font-weight:420}h1 em{color:var(--brass)}::selection{background:var(--brass);color:var(--ink900)}:focus-visible{outline:3px solid var(--brass-hi);outline-offset:5px}[hidden]{display:none!important}.wrap{width:min(1280px,100% - 112px);margin-inline:auto}.section-space{padding-block:112px}.eyebrow,.small-label{letter-spacing:.16em;text-transform:uppercase;font-size:10px;font-weight:650;line-height:1.6}.eyebrow{align-items:center;gap:10px;margin-bottom:25px;display:flex}.small-label{color:var(--muted)}.section-intro{color:var(--muted);font-size:17px;line-height:1.85}.section-heading{max-width:680px}.section-heading h2{margin-bottom:25px}.status-dot{background:var(--mint);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.small-star{color:var(--brass);font-size:23px;line-height:1}.color-star{vertical-align:-.125em;fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;width:1em;height:1em}.button{background:var(--magenta);min-height:56px;color:var(--ink900);border:1px solid var(--magenta);border-radius:100px;justify-content:center;align-items:center;gap:32px;padding:16px 25px;font-size:13px;font-weight:650;line-height:1.5;transition:background .2s,transform .2s;display:inline-flex}.button:hover{background:var(--magenta-hi);transform:translateY(-2px)}.button span[aria-hidden]{font-size:19px;line-height:1}.button-small{gap:20px;min-height:42px;padding:11px 17px;font-size:11px}.text-link{color:var(--brass-hi);border-bottom:1px solid;align-items:center;gap:25px;padding-block:9px;font-size:13px;font-weight:650;line-height:1.8;display:inline-flex}.text-link:hover{color:var(--brass)}.text-link span{font-size:20px}.small-note{color:var(--muted);margin-top:14px;font-size:11px;line-height:1.7;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--brass);color:var(--ink900);z-index:100;padding:14px;position:fixed;top:10px;left:10px;transform:translateY(-200%)}.skip-link:focus{transform:none}.announcement{min-height:33px;color:var(--brass-hi);background:var(--ink700);justify-content:center;align-items:center;gap:10px;padding:8px 20px;font-size:10px;font-weight:500;display:flex}.announcement a{margin-left:10px;font-weight:650}.site-header{z-index:10;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#100e18eb;border-bottom:1px solid #f4ede00a;justify-content:space-between;align-items:center;gap:28px;width:min(1360px,100%);min-height:92px;margin:0 auto;padding:16px 40px;display:flex;position:sticky;top:0}.brand{color:var(--cream);letter-spacing:-1.7px;align-items:center;font-size:28px;font-weight:650;display:flex}.brand svg{fill:none;width:33px;height:33px;stroke:var(--brass);stroke-width:3.2px;stroke-linecap:round;margin-right:6px}.brand-dot{color:var(--magenta)}.site-header nav{align-items:center;gap:30px;margin-left:auto;display:flex}.site-header nav>a:not(.button){color:var(--ink200);padding:10px 0;font-size:11px;position:relative}.site-header nav>a:not(.button):hover,.site-header nav>a:not(.button)[aria-current]{color:var(--cream)}.site-header nav>a[aria-current]:after{content:"";background:var(--magenta);width:16px;height:2px;position:absolute;bottom:2px;left:0}.menu-toggle{display:none}.hero{grid-template-columns:1.04fr 1fr;align-items:center;gap:50px;min-height:680px;padding-top:45px;padding-bottom:76px;display:grid}.hero-copy{padding-bottom:18px}.hero h1{margin-bottom:28px}.hero-intro{max-width:430px;color:var(--muted);margin-bottom:28px;font-size:15px;line-height:1.85}.hero-note{color:var(--muted);margin:14px 0 0;font-size:10px}.hero-visual{isolation:isolate;min-width:0;position:relative}.photo-frame{background:var(--ink700);border-radius:130px 8px 8px;height:540px;position:relative;overflow:hidden}.photo-frame>img{object-fit:cover;object-position:46% center;width:100%;height:100%}.photo-frame:after{content:"";pointer-events:none;background:linear-gradient(#0000,#100e1880);height:150px;position:absolute;bottom:0;left:0;right:0}.photo-label{letter-spacing:.12em;color:var(--cream);z-index:1;align-items:center;gap:9px;font-size:9px;display:flex;position:absolute;bottom:25px;left:28px;right:20px}.photo-label .status-dot{background:var(--mint)}.floating-note{background:var(--ink700);border-radius:6px;align-items:center;gap:14px;max-width:calc(100% + 10px);padding:18px 22px;display:flex;position:absolute;bottom:82px;left:-38px;box-shadow:0 8px 35px #100e1866}.note-icon{width:40px;height:40px;color:var(--brass-hi);font-family:var(--serif);background:#d4a24c1a;border-radius:50%;place-items:center;font-size:25px;display:grid}.floating-note strong{margin-bottom:7px;font-size:12px;font-weight:600;display:block}.floating-note span{color:var(--muted);font-size:10px;display:block}.suite-layout{grid-template-columns:1fr 1.28fr;align-items:center;gap:60px;margin-top:58px;display:grid}.suite-features>.small-label{margin-bottom:15px}.suite-cta{margin-top:24px}.suite-features [role=tab]{text-align:left;border:0;border-bottom:1px solid var(--line);width:100%;color:var(--muted);background:0 0;align-items:flex-start;gap:17px;padding:26px 0;transition:color .2s;display:flex}.suite-features [role=tab][aria-selected=true]{color:var(--brass-hi)}.step-number{letter-spacing:.08em;color:var(--brass);flex-shrink:0;font-size:10px;line-height:1.5;display:block}.suite-features .step-number{margin-top:6px}.suite-features [role=tab] strong{font-family:var(--serif);letter-spacing:-.03em;margin-bottom:9px;font-size:25px;font-weight:450;display:block}.suite-features [role=tab] span span{max-width:320px;color:var(--muted);font-size:12px;line-height:1.85;display:block}.tab-arrow{opacity:0;margin-left:auto;font-size:21px}.suite-features [aria-selected=true] .tab-arrow{opacity:1}.product-preview{background:var(--ink800);border:1px solid var(--line-brass);transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));border-radius:20px;padding:22px;box-shadow:0 30px 100px #00000040,0 0 60px #d4a24c09}.preview-top{background:var(--ink700);border-bottom:1px solid var(--line);border-radius:5px 5px 0 0;align-items:center;gap:20px;height:58px;padding:16px 20px;display:flex}.preview-brand{letter-spacing:-1px;font-size:18px;font-weight:650}.preview-top>span:nth-child(2){letter-spacing:.08em;margin-left:auto;font-size:6px}.preview-avatar{background:var(--ink600);border-radius:50%;place-items:center;width:26px;height:26px;font-size:10px;display:grid}.preview-body{background:var(--ink700);border-radius:0 0 5px 5px;min-height:360px;display:flex;overflow:hidden}.preview-sidebar{border-right:1px solid var(--line);width:54px;color:var(--muted);flex-direction:column;flex-shrink:0;align-items:center;gap:25px;padding-top:26px;font-size:17px;display:flex}.preview-sidebar span{padding:4px}.preview-sidebar .sidebar-active{color:var(--magenta);background:#ff3d8a14;border-radius:4px}.preview-content{width:100%;min-width:0;padding:28px}.preview-content h3{letter-spacing:-.04em;margin-bottom:24px;font-size:29px}.preview-content .small-label{margin-bottom:14px;font-size:7px}.lesson-objective{border:1px solid var(--line-brass);background:#d4a24c1a;border-radius:5px;align-items:center;gap:12px;margin-bottom:8px;padding:17px 14px;display:flex}.objective-icon{color:var(--brass);font-size:27px}.lesson-objective small{letter-spacing:.1em;margin-bottom:6px;font-size:6px;display:block}.lesson-objective strong{font-size:11px;font-weight:550}.exercise-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 0;display:flex}.exercise-check{background:var(--mint);width:26px;height:26px;color:var(--ink900);border-radius:50%;place-items:center;font-size:11px;display:grid}.exercise-check.pale{background:var(--ink600);color:var(--muted)}.exercise-row strong{margin-bottom:5px;font-size:9px;font-weight:550;display:block}.exercise-row small{color:var(--muted);font-size:7px;display:block}.exercise-row>span:last-child{color:var(--muted);margin-left:auto;font-size:8px}.preview-disclaimer{color:var(--ink200);letter-spacing:.01em;justify-content:center;align-items:center;gap:7px;margin-top:18px;font-size:8px;display:flex}.preview-disclaimer .status-dot{width:5px;height:5px}.message-example{background:var(--ink600);border-radius:5px;margin-bottom:12px;padding:16px}.message-example span{letter-spacing:.08em;font-size:7px}.message-example p{margin:8px 0 0;font-size:11px;line-height:1.7}.message-teacher{background:#d4a24c1a;margin-left:20px}.preview-caption{color:var(--muted);margin:18px 0 0;font-size:10px;line-height:1.7}.elo-preview{background:var(--ink800);border-radius:6px;padding:18px}.elo-preview>span{letter-spacing:.07em;font-size:7px;display:block}.elo-preview strong{color:var(--cream);font-family:var(--serif);margin:8px 0;font-size:47px;font-weight:450;display:block}.elo-preview strong span{color:var(--mint);font-size:28px}.elo-preview svg{width:100%;height:85px}.method-section{background:var(--ink700);color:var(--cream);position:relative;overflow:hidden}.method-section:after{content:"♪";font-family:var(--serif);color:#d4a24c08;pointer-events:none;font-size:350px;line-height:1;position:absolute;top:60px;right:-20px;transform:rotate(-18deg)}.method-heading{justify-content:space-between;align-items:flex-end;gap:60px;display:flex}.method-heading>div{flex:1.5}.method-heading>p{max-width:330px;color:var(--ink200);flex:1;margin-bottom:5px;font-size:13px;line-height:1.9}.vision-quote{border:1px solid var(--line-brass);background:var(--ink800);color:var(--brass-hi);font-family:var(--serif);border-radius:18px;margin:0 0 32px;padding:16px 22px;font-size:clamp(17px,1.7vw,23px);line-height:1.5;display:inline-block;position:relative}.vision-quote:after{content:"";background:var(--ink800);border-right:1px solid var(--line-brass);border-bottom:1px solid var(--line-brass);width:12px;height:12px;position:absolute;bottom:-7px;left:28px;transform:rotate(45deg)}.method-section .eyebrow,.method-section em{color:var(--brass)}.method-steps{border-top:1px solid var(--line-brass);grid-template-columns:repeat(3,1fr);gap:50px;margin-top:64px;display:grid}.method-steps article{padding-top:28px}.method-number{letter-spacing:.05em;color:var(--brass);justify-content:space-between;margin-bottom:35px;font-size:10px;font-weight:500;display:flex}.method-number span{font-size:25px}.method-steps h3{margin-bottom:17px;font-size:30px}.method-steps p{color:var(--ink200);max-width:320px;min-height:89px;font-size:12px;line-height:1.85}.step-tag{letter-spacing:.1em;color:var(--brass-hi);border:1px solid var(--line-brass);border-radius:3px;padding:6px 10px;font-size:8px;display:inline-block}.method-footnote{color:var(--muted);border-top:1px solid var(--line-brass);max-width:950px;margin:40px 0 0;padding-top:24px;font-size:10px;line-height:1.9}.jassie-section{grid-template-columns:1fr 1fr;align-items:center;gap:100px;display:grid}.jassie-art{aspect-ratio:1;background:radial-gradient(ellipse at 20% 15%, #d4a24c1a, transparent 80%), radial-gradient(ellipse at 90% 80%, #ff3d8a0f, transparent 60%), var(--ink700);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.jassie-art:before,.jassie-art:after{content:"";border:1px solid var(--line-brass);pointer-events:none;border-radius:50%;width:88%;height:88%;position:absolute;transform:rotate(-25deg)}.jassie-art:after{width:64%;height:110%;transform:rotate(30deg)}.jassie-art img{background:var(--ink900);z-index:1;border-radius:33px;width:135px;height:135px;padding:19px;position:relative;transform:rotate(-8deg);box-shadow:8px 12px #d4a24c1a}.jassie-art-wordmark{color:var(--cream);font-family:var(--serif);letter-spacing:-7px;z-index:1;margin-top:12px;font-size:92px;font-weight:500;line-height:1.1}.jassie-art-wordmark span{color:var(--magenta);vertical-align:top;margin-top:18px;margin-left:7px;font-size:33px;display:inline-block;transform:rotate(20deg)}.jassie-art-caption{letter-spacing:.22em;z-index:1;margin-top:16px;font-size:7px}.jassie-orbit span{letter-spacing:.2em;font-size:7px;position:absolute}.jassie-orbit span:first-child{top:27px;left:30px}.jassie-orbit span:nth-child(2){bottom:35px;right:30px}.jassie-orbit span:nth-child(3){writing-mode:vertical-rl;top:45px;right:22px}.jassie-copy h2{margin-bottom:24px}.jassie-copy>p:not(.eyebrow):not(.small-note){color:var(--muted);font-size:14px}.jassie-copy>.button{margin-top:4px}.student-bridge{background:var(--ink700);border-radius:8px;grid-template-columns:1.2fr 1fr;gap:85px;padding:50px 55px;display:grid}.student-bridge h2{font-size:40px}.student-bridge>div>p:not(.eyebrow){color:var(--ink200);font-size:13px}.student-bridge .small-note{margin-top:18px;font-size:9px}.team-section{grid-template-columns:.85fr 1fr;align-items:center;gap:100px;display:grid}.team-placeholder{aspect-ratio:1.12;background:var(--ink700);border:1px solid var(--line-brass);outline:12px solid var(--ink800);text-align:center;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;transform:rotate(-2deg)}.team-doodle{font-family:var(--serif);letter-spacing:24px;color:var(--brass);margin-bottom:20px;font-size:45px;transform:rotate(-4deg)}.team-doodle span{color:var(--magenta);font-size:55px}.team-placeholder p{font-family:var(--serif);color:var(--cream);letter-spacing:-1px;font-size:30px;font-style:italic;line-height:1.3}.team-placeholder>span{letter-spacing:.15em;color:var(--muted);margin-top:15px;font-size:7px}.team-section h2{margin-bottom:25px}.team-section .section-intro{font-size:16px}.team-section p:not(.eyebrow){color:var(--muted);font-size:14px}.faq-section,.student-faq{border-top:1px solid var(--line);grid-template-columns:1fr 1.2fr;gap:80px;padding-top:75px;padding-bottom:80px;display:grid}.faq-section h2,.student-faq h2{font-size:44px}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding:23px 0;font-size:13px;font-weight:550;line-height:1.6;list-style:none;display:flex}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:22px;font-weight:350;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{color:var(--muted);padding-bottom:5px;padding-right:25px;font-size:13px;line-height:1.9}.waitlist-section{border-top:1px solid var(--line);grid-template-columns:1.1fr 1fr;align-items:center;gap:105px;padding-top:80px;display:grid}.waitlist-copy h2{margin-bottom:27px}.waitlist-copy .section-intro{max-width:400px;font-size:15px}.waitlist-note{color:var(--muted);margin-top:24px;font-size:11px;line-height:1.9}.handwritten{font-family:var(--serif);color:var(--brass);align-items:center;gap:20px;margin:25px 0 0 15px;font-size:25px;font-style:italic;display:flex;transform:rotate(-6deg)}.handwritten span{font-family:var(--sans);font-size:60px;font-weight:200;line-height:1}.waitlist-card{background:var(--ink700);border:1px solid var(--line);border-radius:20px;padding:36px;box-shadow:0 15px 50px #100e1840}.waitlist-card h3{font-size:30px}.form-intro{color:var(--muted);margin:9px 0 25px;font-size:12px}.audience-fieldset{border:0;margin:0 0 23px;padding:0}.audience-fieldset legend{margin-bottom:10px;font-size:10px;font-weight:550}.role-switch{border:1px solid var(--line);background:var(--ink900);border-radius:5px;padding:4px;display:flex}.role-switch label{cursor:pointer;flex:1;position:relative}.role-switch input{opacity:0;position:absolute}.role-switch span{min-height:38px;color:var(--muted);border-radius:3px;justify-content:center;align-items:center;padding:8px;font-size:10px;display:flex}.role-switch input:checked+span{background:var(--brass);color:var(--ink900)}.role-switch input:focus-visible+span{outline:3px solid var(--brass-hi);outline-offset:2px}.form-fields{gap:18px;margin-bottom:19px;display:grid}.form-fields label,.instrument-label{font-size:10px;font-weight:550}.optional{color:var(--muted);font-size:9px;font-weight:400}input:not([type=checkbox]):not([type=radio]),select{border:1px solid var(--ink400);background:var(--ink900);width:100%;min-height:45px;color:var(--cream);border-radius:4px;margin-top:9px;padding:13px 12px;font-size:12px;display:block}input::placeholder{color:var(--muted);font-size:11px}select{padding-right:30px}.instrument-label{margin-bottom:22px;display:block}.consent,.partner-field{color:var(--ink200);cursor:pointer;align-items:flex-start;gap:10px;margin-bottom:23px;font-size:11px;line-height:1.9;display:flex}.consent input,.partner-field input{accent-color:var(--magenta);flex-shrink:0;width:16px;height:16px;margin:2px 0 0}.consent a{text-underline-offset:3px;text-decoration:underline}.partner-field{background:var(--ink600);border-radius:4px;padding:13px;font-size:10px}.form-submit{justify-content:space-between;width:100%;min-height:49px;font-size:12px}.form-submit:disabled{opacity:.7;cursor:wait}.form-footnote{text-align:center;color:var(--muted);margin:13px 0 0;font-size:9px;line-height:1.7}.honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.form-error{color:var(--cream);background:#cf3a3626;border-radius:4px;padding:12px;font-size:11px;line-height:1.7}.form-success{padding:30px 0}.success-mark{background:var(--mint);width:56px;height:56px;color:var(--ink900);border-radius:50%;place-items:center;margin-bottom:30px;font-size:26px;display:grid}.form-success h3{margin-bottom:24px;font-size:48px}.form-success p{color:var(--muted);font-size:13px}.form-success strong{overflow-wrap:anywhere;color:var(--cream);font-weight:550}.form-success .eyebrow{font-size:9px}.text-button{border:none;border-bottom:1px solid var(--muted);color:var(--muted);background:0 0;margin-top:24px;padding:7px 0;font-size:10px;display:block}.site-footer{background:var(--ink800);color:var(--cream);padding-top:48px;overflow:hidden}.footer-top{justify-content:space-between;gap:30px;display:flex}.footer-top .eyebrow{color:var(--brass);margin-bottom:12px;font-size:8px}.footer-top p:not(.eyebrow){font-family:var(--serif);letter-spacing:-.03em;font-size:24px}.footer-links{align-items:flex-start;gap:28px;padding-top:8px;font-size:10px;display:flex}.footer-links a:hover{text-decoration:underline}.footer-wordmark{text-align:center;letter-spacing:-.07em;color:var(--cream);-webkit-user-select:none;user-select:none;white-space:nowrap;margin:25px auto 30px;padding-right:.06em;font-size:clamp(38px,12.5vw,192px);font-weight:600;line-height:1.15}.footer-wordmark span{color:var(--magenta)}.footer-bottom{border-top:1px solid var(--line-brass);color:var(--muted);justify-content:space-between;gap:20px;padding-block:22px;font-size:8px;display:flex}.student-hero .photo-frame{border-radius:8px 130px 8px 8px}.student-hero .photo-frame img{object-position:center}.student-hero .hero-intro{max-width:440px}.hero-secondary{color:var(--brass-hi);text-underline-offset:5px;margin-top:20px;font-size:11px;text-decoration:underline;display:block}.student-journey{border-top:1px solid var(--line)}.journey-grid{grid-template-columns:repeat(3,1fr);gap:50px;margin-top:55px;display:grid}.journey-grid article{border-top:1px solid var(--line);flex-direction:column;align-items:flex-start;padding-top:25px;display:flex}.journey-grid .step-number{margin-bottom:25px}.journey-grid h3{margin-bottom:18px;font-size:31px}.journey-grid p{color:var(--muted);font-size:13px}.journey-grid .text-link{margin-bottom:25px;font-size:11px}.availability{letter-spacing:.1em;color:var(--mint);background:#5fdfb11a;border-radius:4px;margin-top:auto;padding:7px 10px;font-size:8px;display:inline-block}.availability.future{color:var(--brass-hi);background:#d4a24c1a}.student-manifesto{background:var(--ink700);color:var(--cream);text-align:center;padding:85px 0}.student-manifesto .eyebrow{color:var(--brass);justify-content:center;font-size:9px}.student-manifesto em{color:var(--brass)}.student-manifesto p:last-child{max-width:680px;color:var(--ink200);margin:28px auto 0;font-size:14px}.student-faq{border:0}.legal-page{max-width:780px;padding:70px 0 100px}.legal-page h1{margin-bottom:25px;font-size:62px}.legal-page h2{letter-spacing:-.025em;margin:38px 0 14px;font-size:28px}.legal-page h3{letter-spacing:-.02em;margin:28px 0 10px;font-size:21px}.legal-page p,.legal-page li{color:var(--muted);font-size:14px;line-height:1.9}.legal-page li{margin-bottom:8px}.legal-page a{overflow-wrap:anywhere;text-decoration:underline}.legal-page .legal-date{font-size:11px}@media (width>=1550px){.hero{min-height:730px}.photo-frame{height:590px}.hero-visual{margin-left:15px}.hero{gap:70px}}@media (width<=1100px){.wrap{width:calc(100% - 64px)}.site-header{padding-inline:30px}.site-header nav{gap:20px}.hero{gap:32px;min-height:615px;padding-top:30px}.hero h1{font-size:60px}.photo-frame{height:475px}.floating-note{gap:10px;padding:14px;left:-15px}.floating-note strong{font-size:10px}.floating-note span{font-size:9px}.section-space{padding-block:85px}.suite-layout{gap:32px}.suite-features [role=tab] strong{font-size:23px}.product-preview{padding:14px}.preview-content{padding:22px 18px}.preview-sidebar{width:40px}.preview-top{gap:10px;padding-inline:14px}.preview-top>span:nth-child(2){font-size:5px}.method-heading{gap:40px}.method-steps{gap:30px}.jassie-section,.team-section{gap:55px}.student-bridge{gap:45px;padding:40px}.student-bridge h2{font-size:35px}.faq-section,.student-faq{gap:45px}.faq-section h2,.student-faq h2{font-size:37px}.waitlist-section{gap:55px}.waitlist-card{padding:28px}.footer-links{gap:20px}.journey-grid{gap:30px}.journey-grid h3{font-size:27px}}@media (width<=850px){.brand{font-size:22px}.site-header nav{gap:12px}.site-header{gap:16px}.site-header nav>a:not(.button){font-size:10px}.button-small{gap:12px;padding-inline:12px}.hero h1{font-size:51px}.hero-intro{font-size:13px}.hero{gap:24px;min-height:550px}.photo-frame{height:420px}.floating-note{bottom:65px}.note-icon{width:30px;height:30px;font-size:20px}.floating-note strong{font-size:9px}.floating-note span{font-size:8px}.photo-label{font-size:7px;left:17px}.hero-note{font-size:8px}.hero .button{gap:20px;min-height:50px;padding:14px 18px;font-size:11px}.method-heading{align-items:flex-start;gap:30px}.method-heading>p{max-width:240px;margin-top:44px;font-size:11px}.method-heading h2{font-size:38px}.jassie-section,.team-section{gap:35px}.jassie-section h2,.team-section h2,.waitlist-section h2{font-size:38px}.jassie-copy .eyebrow{font-size:8px}.student-bridge{gap:30px;padding:30px}.student-bridge h2{font-size:30px}.student-bridge>div>p:not(.eyebrow){font-size:11px}.student-bridge .eyebrow{font-size:8px}.faq-section h2{font-size:32px}.waitlist-section{gap:30px}.waitlist-card{padding:23px}.waitlist-card h3{font-size:26px}.preview-content h3{font-size:25px}.suite-features [role=tab] strong{font-size:21px}.preview-top>span:nth-child(2){display:none}.preview-avatar{margin-left:auto}.footer-top p:not(.eyebrow){font-size:20px}.footer-links{gap:15px;font-size:9px}}@media (width<=760px){:root{scroll-padding-top:96px}.wrap{width:calc(100% - 40px)}.section-space{padding-block:66px}.announcement{gap:6px;min-height:30px;padding:8px 10px;font-size:8px}.announcement>a{display:none}.site-header{gap:12px;min-height:77px;padding:19px 20px}.brand{letter-spacing:-1.4px;font-size:21px}.brand svg{width:26px}.menu-toggle{border:1px solid var(--line);width:42px;height:42px;color:var(--cream);z-index:2;background:0 0;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.menu-toggle span{background:currentColor;width:18px;height:1px;transition:transform .2s;display:block}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px)rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px)rotate(-45deg)}.site-header nav{background:var(--ink900);border-bottom:1px solid var(--line);align-items:stretch;gap:5px;padding:20px 24px 28px;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 15px 20px #100e1880}.site-header nav[data-open]{flex-direction:column;display:flex}.site-header nav>a:not(.button){padding:12px 0;font-size:14px}.site-header nav>a[aria-current]:after{display:none}.hero{grid-template-columns:1fr;gap:38px;min-height:0;padding-top:25px;padding-bottom:37px}.hero-copy{padding-bottom:0}.hero .eyebrow{margin-bottom:20px;font-size:9px}.hero h1{letter-spacing:-.045em;margin-bottom:22px;font-size:clamp(46px,8.8vw,66px);line-height:1.07}.hero-intro{max-width:470px;margin-bottom:24px;font-size:14px;line-height:1.8}.hero .button{gap:35px;min-height:52px;padding:15px 20px;font-size:12px}.hero-note{margin-top:12px;font-size:9px}.hero-visual{margin:0 5px 0 0}.photo-frame{border-radius:85px 6px 6px;height:410px}.photo-frame>img{object-position:center center}.floating-note{max-width:calc(100% - 24px);padding:15px 18px;bottom:60px;left:12px}.floating-note strong{font-size:11px}.floating-note span{font-size:9px}.note-icon{width:34px;height:34px;font-size:23px}.photo-label{font-size:8px;bottom:23px;left:22px}h2{letter-spacing:-.045em;font-size:38px}.eyebrow{margin-bottom:20px;font-size:9px}.section-intro{font-size:14px;line-height:1.85}.section-heading{max-width:560px}.suite-layout{grid-template-columns:1fr;gap:35px;margin-top:30px}.suite-features>.small-label{margin-bottom:5px;font-size:8px}.suite-features [role=tab]{gap:16px;padding:21px 0}.suite-features [role=tab] strong{margin-bottom:7px;font-size:24px}.suite-features [role=tab] span span{max-width:90%;font-size:12px}.product-preview{justify-self:center;width:100%;max-width:560px;padding:18px;transform:none}.preview-top>span:nth-child(2){font-size:6px;display:inline}.preview-content{padding:24px}.preview-content h3{font-size:29px}.preview-content .small-label{font-size:7px}.preview-sidebar{width:42px}.preview-body{min-height:365px}.exercise-row strong{font-size:10px}.exercise-row small{font-size:8px}.lesson-objective strong{font-size:11px}.lesson-objective small{font-size:7px}.preview-disclaimer{font-size:8px}.method-heading{display:block}.method-heading h2{font-size:38px}.method-heading>p{max-width:520px;margin-top:25px;font-size:13px}.method-steps{grid-template-columns:1fr;gap:28px;margin-top:30px}.method-steps article{border-bottom:1px solid var(--line-brass);grid-template-columns:35px 1fr;gap:0 16px;padding-top:25px;padding-bottom:26px;display:grid}.method-number{grid-row:1/4;margin-top:7px;margin-bottom:0;display:block}.method-number span{display:none}.method-steps h3{margin-bottom:12px;font-size:29px}.method-steps p{max-width:100%;min-height:0;margin-bottom:18px;font-size:12px}.step-tag{grid-column:2;justify-self:start}.method-footnote{border:0;margin-top:5px;padding-top:20px;font-size:10px}.jassie-section{grid-template-columns:1fr;gap:38px}.jassie-art{aspect-ratio:1.25;justify-self:center;width:100%;max-width:550px}.jassie-art img{border-radius:25px;width:113px;height:113px;padding:16px}.jassie-art-wordmark{font-size:77px}.jassie-art-caption{font-size:6px}.jassie-copy h2{font-size:40px}.jassie-copy>.eyebrow{font-size:8px}.jassie-copy>p:not(.eyebrow):not(.small-note){font-size:14px}.student-bridge{grid-template-columns:1fr;gap:20px;padding:32px 25px}.student-bridge h2{font-size:33px}.student-bridge>div>p:not(.eyebrow){font-size:13px}.team-section{grid-template-columns:1fr;gap:48px}.team-placeholder{aspect-ratio:1.5;justify-self:center;width:calc(100% - 22px);max-width:500px}.team-doodle{margin-bottom:12px;font-size:30px}.team-doodle span{font-size:38px}.team-placeholder p{margin-bottom:9px;font-size:26px}.team-placeholder>span{margin-top:8px}.team-section h2{font-size:39px}.team-section p:not(.eyebrow){font-size:14px}.faq-section,.student-faq{grid-template-columns:1fr;gap:20px}.faq-section h2,.student-faq h2{font-size:38px}.faq-list summary{padding-block:21px;font-size:12px}.faq-list details p{padding-right:12px;font-size:12px}.waitlist-section{grid-template-columns:1fr;gap:35px}.waitlist-section h2{font-size:42px}.waitlist-copy .section-intro{max-width:100%;font-size:14px}.waitlist-note{margin-top:20px;font-size:10px}.handwritten{display:none}.waitlist-card{padding:26px 23px}.waitlist-card h3{font-size:29px}.form-intro{font-size:12px}.form-fields{grid-template-columns:1fr 1fr;gap:13px}.form-fields label,.instrument-label{font-size:11px}.optional{font-size:8px}.form-fields .optional{margin-top:5px;display:block}.form-fields label:last-child input{margin-top:24px}input:not([type=checkbox]):not([type=radio]),select{min-height:48px;padding:12px 10px;font-size:16px}input::placeholder{font-size:11px}.role-switch span{min-height:40px;font-size:11px}.consent{font-size:10px;line-height:1.8}.form-submit{min-height:52px;font-size:13px}.form-footnote{font-size:9px}.site-footer{padding-top:35px}.footer-top{display:block}.footer-top .eyebrow{font-size:7px}.footer-top p:not(.eyebrow){margin-bottom:25px;font-size:22px}.footer-links{flex-wrap:wrap;gap:25px;font-size:10px}.footer-wordmark{margin:28px 0 22px;font-size:12.5vw}.footer-bottom{flex-wrap:wrap;row-gap:13px;font-size:8px}.footer-bottom>span:last-child{flex-basis:100%}.student-hero .photo-frame{border-radius:6px 85px 6px 6px}.hero-secondary{margin-top:22px;font-size:11px}.journey-grid{grid-template-columns:1fr;gap:30px;margin-top:32px}.journey-grid .step-number{margin-bottom:18px}.journey-grid h3{font-size:29px}.journey-grid p{max-width:520px;font-size:14px}.journey-grid .text-link{margin-bottom:18px}.student-manifesto{text-align:left;padding-block:60px}.student-manifesto .eyebrow{justify-content:flex-start;font-size:8px}.student-manifesto h2{font-size:37px}.student-manifesto p:last-child{font-size:13px}.legal-page{padding-top:40px}.legal-page h1{font-size:43px}.legal-page h2{font-size:26px}.legal-page p,.legal-page li{font-size:13px}}@media (width<=380px){.wrap{width:calc(100% - 32px)}.hero h1{font-size:43px}.hero-intro{font-size:13px}.photo-frame{height:350px}.floating-note{gap:9px;padding:12px;left:9px}.floating-note strong{font-size:10px}.floating-note span{font-size:8px}.preview-content{padding:20px 15px}.product-preview{padding:12px}.preview-content h3{font-size:25px}.preview-top>span:nth-child(2){display:none}.preview-disclaimer{font-size:7px}.form-fields{grid-template-columns:1fr}.form-fields .optional{display:inline}.form-fields label:last-child input{margin-top:9px}.waitlist-section h2{font-size:37px}.form-fields label{font-size:11px}.team-section h2{font-size:36px}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.button:hover{transform:none}}.site-area-links{flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;margin-left:auto;display:flex}.site-area-links a{border:1px solid var(--line);min-height:44px;font:550 12px var(--sans);color:var(--cream);white-space:nowrap;border-radius:8px;padding:12px 14px}.site-area-links a:hover,.site-area-links a[aria-current]{border-color:var(--brass);color:var(--brass-hi);background:#d4a24c12}@media (width<=650px){.site-area-links{gap:6px}.site-area-links a{padding:12px 8px;font-size:11px}.site-header{grid-template-columns:1fr auto;gap:8px;padding-bottom:12px;display:grid}.site-header>.brand{grid-area:1/1}.site-header>.menu-toggle{grid-area:1/2}.site-header>.site-area-links{grid-area:2/1/auto/-1}}}@layer tokens{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--neutral-0:oklch(100% 0 0);--neutral-25:oklch(99.1% .001 286.4);--neutral-50:oklch(98.5% .001 286.4);--neutral-100:oklch(96.5% .003 286.3);--neutral-150:oklch(94.4% .003 286.3);--neutral-200:oklch(92.6% .005 286.3);--neutral-300:oklch(89.8% .006 275);--neutral-400:oklch(72.6% .013 271.2);--neutral-500:oklch(62.7% .014 271.2);--neutral-600:oklch(51% .015 266.6);--neutral-700:oklch(37.9% .014 269.3);--neutral-800:oklch(29.8% .011 271);--neutral-900:oklch(20.5% .008 274.5);--night-950:oklch(16.4% .005 264.4);--night-900:oklch(18.2% .004 264.5);--night-850:oklch(20.5% .006 271.1);--night-800:oklch(22.3% .008 274.6);--night-750:oklch(25.7% .009 276.7);--night-700:oklch(29% .011 278.2);--night-650:oklch(31.1% .011 278.2);--night-600:oklch(33.1% .012 279.2);--night-500:oklch(53.5% .014 271.1);--night-450:oklch(59% .014 271.2);--night-400:oklch(70.6% .013 271.2);--night-300:oklch(84.2% .009 271.3);--night-100:oklch(96.1% .001 286.4);--magenta-100:oklch(94.1% .029 350.5);--magenta-200:oklch(88.9% .067 353.3);--magenta-300:oklch(77.4% .15 356.2);--magenta-400:oklch(71% .202 358.4);--magenta-500:oklch(67.2% .233 2.3);--magenta-600:oklch(57.4% .216 4.4);--magenta-700:oklch(47.9% .179 5.9);--magenta-900:oklch(35.2% .129 358.7);--magenta-950:oklch(25.8% .069 350.4);--green-600:oklch(48.2% .104 156.5);--green-400:oklch(73.5% .136 159.3);--red-600:oklch(50% .182 29.5);--red-400:oklch(70.9% .183 27.7);--amber-600:oklch(50.8% .108 73.3);--amber-400:oklch(76.4% .139 73.2);--color-bg:var(--neutral-0);--color-surface:var(--neutral-100);--color-surface-raised:var(--neutral-0);--color-surface-hover:var(--neutral-150);--color-surface-selected:var(--neutral-200);--color-field:var(--neutral-0);--color-backdrop:oklch(20.5% .008 274.5/.42);--color-border:var(--neutral-150);--color-border-strong:var(--neutral-300);--color-border-control:var(--neutral-500);--color-border-hover:var(--neutral-600);--color-text:var(--neutral-900);--color-text-soft:var(--neutral-700);--color-text-muted:var(--neutral-600);--color-text-disabled:var(--neutral-400);--color-accent:var(--neutral-900);--color-accent-hover:var(--neutral-800);--color-on-accent:var(--neutral-0);--color-accent-soft:var(--neutral-700);--color-action:var(--magenta-600);--color-action-hover:var(--magenta-700);--color-on-action:var(--neutral-0);--color-action-text:var(--magenta-700);--color-action-border:color-mix(in oklch, var(--magenta-600) 50%, transparent);--tint-action:var(--magenta-100);--color-icon:var(--color-brand);--tint-icon:color-mix(in oklch, var(--magenta-500) 10%, transparent);--color-invite:color-mix(in oklch, var(--magenta-100) 60%, transparent);--edge-invite:color-mix(in oklch, var(--magenta-500) 18%, transparent);--color-highlight:var(--neutral-900);--color-highlight-strong:var(--neutral-900);--color-on-highlight:var(--neutral-0);--color-highlight-soft:var(--neutral-700);--color-selected:var(--color-highlight);--color-on-selected:var(--color-on-highlight);--color-mark:var(--magenta-500);--color-brand:var(--magenta-600);--color-brand-hover:var(--magenta-700);--color-on-brand:var(--neutral-0);--color-focus:var(--magenta-600);--color-link:var(--color-action-text);--color-success:var(--green-600);--color-success-soft:oklch(42% .09 156.5);--color-danger:var(--red-600);--color-danger-soft:oklch(45% .16 29.5);--color-warning:var(--amber-600);--color-spotlight:var(--magenta-100);--color-on-spotlight:var(--magenta-900);--edge-spotlight:transparent;--color-nav:var(--neutral-50);--color-whatsapp:var(--green-400);--tint-accent:color-mix(in oklch, var(--color-accent) 8%, transparent);--tint-highlight:color-mix(in oklch, var(--color-highlight) 7%, transparent);--tint-success:color-mix(in oklch, var(--color-success) 10%, transparent);--tint-danger:color-mix(in oklch, var(--color-danger) 10%, transparent);--tint-focus:color-mix(in oklch, var(--color-focus) 20%, transparent);--tint-highlight-strong:color-mix(in oklch, var(--color-highlight) 10%, transparent);--edge-highlight:color-mix(in oklch, var(--color-highlight) 30%, transparent);--category-register:oklch(47% .025 80);--category-calendar:oklch(47% .025 166);--category-songs:oklch(47% .025 350);--category-melody:oklch(47% .025 295);--category-theory:oklch(47% .025 40);--category-recordings:oklch(47% .025 235);--category-metronome:oklch(47% .025 125);--category-students:oklch(47% .025 200);--category-settings:oklch(47% .025 265);--category-jassie:oklch(47% .025 320);--category-admin:oklch(47% .025 20);--category-billing:oklch(47% .025 100);--font-display:Newsreader, "Source Serif 4", Georgia, serif;--font-ui:"Hanken Grotesk", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:clamp(1.875rem, 1.55rem + 1.3vw, 2.5rem);--text-display:clamp(2.375rem, 1.7rem + 2.8vw, 3.75rem);--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.55;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-display:400;--weight-control:500;--tracking-display:-.015em;--tracking-tight:-.01em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:2rem;--space-8:2.5rem;--space-9:3rem;--space-10:4rem;--radius-xs:8px;--radius-sm:14px;--radius-md:20px;--radius-lg:24px;--radius-full:999px;--radius-control:var(--radius-full);--shadow-raised:0 0 0 1px oklch(20% .02 260/.05), 0 8px 10px -6px oklch(20% .01 270/.08), 0 20px 25px -5px oklch(20% .01 270/.08);--shadow-overlay:0 0 0 1px oklch(20% .02 260/.05), 0 8px 40px oklch(20% .01 270/.12);--shadow-paper:0 0 0 1px oklch(20% .02 260/.05), 0 8px 10px -6px oklch(20% .01 270/.08), 0 20px 25px -5px oklch(20% .01 270/.08);--duration-instant:90ms;--duration-fast:.14s;--duration-base:.22s;--duration-slow:.36s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-exit:cubic-bezier(.3, 0, 1, 1);--ease-out-strong:cubic-bezier(.23, 1, .32, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--duration-turn:.56s;--duration-stagger:50ms;--ease-spring:linear(0, .006, .025 2.8%, .101 6.1%, .539 18.9%, .721 25.3%, .849 31.5%, .937 38.1%, .968 41.8%, .991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001);--control-height:44px;--control-height-sm:36px;--control-padding-x:1.25rem;--focus-ring:0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-focus);--icon-select:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2362666f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");--page-max:90.625rem;--page-gutter:clamp(1.25rem, 4vw, 4rem);--z-sticky:10;--z-nav:30;--z-overlay:40;--z-guide:50;--z-toast:60;--score-paper:var(--neutral-0);--score-paper-edge:var(--neutral-150);--score-paper-shade:var(--neutral-300);--score-ink:var(--neutral-900);--score-line:oklch(35.7% .011 271.1);--score-muted:oklch(54.2% .016 268.4);--score-accent:var(--magenta-700);--score-accent-tint:color-mix(in oklch, var(--magenta-500) 16%, transparent);--score-playhead:color-mix(in oklch, var(--magenta-500) 26%, transparent);--score-action:var(--neutral-900);--score-action-hover:var(--neutral-800);--score-on-action:var(--neutral-0);--score-field:var(--neutral-0);--score-danger:oklch(48% .16 28);--score-good:oklch(50% .12 160);--score-timing:oklch(56% .13 62);--score-pitch:oklch(52% .19 4);--score-missed:oklch(57% .012 270);--score-note-c:oklch(56% .21 355);--score-note-d:oklch(62% .14 62);--score-note-e:oklch(58% .14 125);--score-note-f:oklch(57% .11 170);--score-note-g:oklch(54% .19 295);--score-note-a:oklch(52% .19 27);--score-note-b:oklch(56% .11 230);--score-font-music:Petaluma;--score-font-text:"Petaluma Script";--score-font-chord:"Petaluma Script", var(--font-ui);--ink900:var(--color-bg);--ink800:var(--color-surface);--ink700:var(--color-surface-raised);--ink600:var(--color-surface-selected);--ink400:var(--color-border-control);--ink300:var(--color-text-muted);--ink200:var(--color-text-soft);--cream:var(--color-text);--magenta:var(--color-accent);--magenta-hi:var(--color-accent-hover);--brass:var(--color-highlight);--brass-hi:var(--color-highlight-strong);--mint:var(--color-success);--muted:var(--color-text-muted);--line:var(--color-border);--line-brass:var(--edge-highlight);--serif:var(--font-display);--sans:var(--font-ui);--paper:var(--score-paper);--paper-ink:var(--score-ink)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:var(--night-900);--color-surface:var(--night-800);--color-surface-raised:var(--night-750);--color-surface-hover:var(--night-700);--color-surface-selected:var(--night-650);--color-field:var(--night-850);--color-backdrop:oklch(0% 0 0/.6);--color-nav:var(--night-950);--color-whatsapp:var(--green-400);--color-border:var(--night-700);--color-border-strong:var(--night-600);--color-border-control:var(--night-500);--color-border-hover:var(--night-450);--color-text:var(--night-100);--color-text-soft:var(--night-300);--color-text-muted:var(--night-400);--color-text-disabled:var(--night-500);--color-accent:var(--night-100);--color-accent-hover:var(--neutral-0);--color-on-accent:var(--night-900);--color-accent-soft:var(--night-300);--color-action:var(--magenta-400);--color-action-hover:var(--magenta-300);--color-on-action:var(--night-900);--color-action-text:var(--magenta-300);--color-action-border:color-mix(in oklch, var(--magenta-400) 55%, transparent);--tint-action:color-mix(in oklch, var(--magenta-400) 14%, transparent);--color-icon:var(--color-brand);--tint-icon:color-mix(in oklch, var(--magenta-400) 14%, transparent);--color-invite:color-mix(in oklch, var(--magenta-950) 70%, transparent);--edge-invite:color-mix(in oklch, var(--magenta-400) 22%, transparent);--color-highlight:var(--night-100);--color-highlight-strong:var(--night-100);--color-on-highlight:var(--night-900);--color-highlight-soft:var(--night-300);--color-selected:var(--color-highlight);--color-on-selected:var(--color-on-highlight);--color-mark:var(--magenta-400);--color-brand:var(--magenta-400);--color-brand-hover:var(--magenta-300);--color-on-brand:var(--night-900);--color-focus:var(--magenta-400);--color-link:var(--color-action-text);--color-success:var(--green-400);--color-success-soft:oklch(80% .11 159.3);--color-danger:var(--red-400);--color-danger-soft:oklch(78% .13 27.7);--color-warning:var(--amber-400);--color-spotlight:var(--magenta-950);--color-on-spotlight:var(--magenta-200);--category-register:oklch(80% .03 80);--category-calendar:oklch(80% .03 166);--category-songs:oklch(80% .03 350);--category-melody:oklch(80% .03 295);--category-theory:oklch(80% .03 40);--category-recordings:oklch(80% .03 235);--category-metronome:oklch(80% .03 125);--category-students:oklch(80% .03 200);--category-settings:oklch(80% .03 265);--category-jassie:oklch(80% .03 320);--category-admin:oklch(80% .03 20);--category-billing:oklch(80% .03 100);--shadow-raised:0 0 0 1px oklch(100% 0 0/.07);--shadow-overlay:0 0 0 1px oklch(100% 0 0/.08), 0 24px 48px -12px oklch(0% 0 0/.6);--shadow-paper:0 0 0 1px oklch(100% 0 0/.08), 0 20px 40px -24px oklch(0% 0 0/.7);--icon-select:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23c9cbd1' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");--score-paper:oklch(96.8% .003 286.4);--score-paper-edge:var(--neutral-200)}:root[data-notation=inciso]{--score-font-music:Bravura;--score-font-text:Academico;--score-font-chord:Academico, var(--font-display)}@font-face{font-family:Hanken Grotesk;src:url(/fonts/HankenGrotesk.woff2)format("woff2");font-style:normal;font-weight:400 700;font-display:swap}@font-face{font-family:Newsreader;src:url(/fonts/Newsreader.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Newsreader;src:url(/fonts/Newsreader-Italic.woff2)format("woff2");font-style:italic;font-weight:400;font-display:swap}}@layer base{:where(html){-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--color-border-strong) transparent;background:var(--color-bg)}:where(body){background:var(--color-bg);color:var(--color-text-soft);font-family:var(--font-ui);font-size:var(--text-md);line-height:var(--leading-normal);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:where(h1,h2,h3,h4){color:var(--color-text);font-family:var(--font-display);font-weight:var(--weight-display);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);text-wrap:balance;margin:0}:where(h1){font-size:var(--text-3xl)}:where(h2){font-size:var(--text-2xl)}:where(h3){font-size:var(--text-xl)}:where(h4){font-family:var(--font-ui);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight)}:where(p){margin:0 0 var(--space-4);font-size:inherit;line-height:var(--leading-normal);text-wrap:pretty}:where(small){font-size:var(--text-sm)}:where(em){color:inherit;font-weight:inherit}:where(strong,b){font-weight:var(--weight-semibold)}:where(time,output,.tabular){font-variant-numeric:tabular-nums}:where(p,li,small,dd,.portal-help) :where(a:not([class])){color:var(--color-link);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:from-font}:where(hr){border:0;border-top:1px solid var(--color-border);margin:var(--space-6) 0}:where(:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}::selection{background:var(--color-highlight);color:var(--color-on-highlight)}:where(input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=file],[type=hidden],[type=button],[type=submit]),select,textarea){width:100%;min-width:0;min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);background-color:var(--color-field);color:var(--color-text);font:inherit;font-size:var(--text-md);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);margin:0;line-height:1.3;display:block}:where(textarea){min-height:6.5rem;padding:var(--space-3);line-height:var(--leading-normal);resize:vertical}:where(select){appearance:none;background-image:var(--icon-select);cursor:pointer;background-position:right .85rem center;background-repeat:no-repeat;background-size:1rem;padding-right:2.5rem}:where(input,select,textarea):where(:hover:not(:disabled,[readonly])){border-color:var(--color-border-hover)}:where(input,select,textarea):where(:focus-visible){border-color:var(--color-focus);box-shadow:0 0 0 3px var(--tint-focus);outline:none}:where(input,select,textarea):where(:disabled,[readonly]){color:var(--color-text-muted);cursor:default}:where(input,select,textarea):where([aria-invalid=true]){border-color:var(--color-danger)}:where(input,textarea)::placeholder{color:var(--color-text-muted);font:inherit;letter-spacing:inherit;text-transform:none;opacity:1}:where(input[type=checkbox],input[type=radio]){width:1.25rem;height:1.25rem;accent-color:var(--color-highlight);cursor:pointer;flex-shrink:0;margin:0}:where(input[type=range]){accent-color:var(--color-highlight);cursor:pointer}:where(label){color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-medium)}:where(fieldset){border:0;min-width:0;margin:0;padding:0}:where(legend){color:var(--color-text);font-weight:var(--weight-semibold);padding:0}:where(summary){cursor:pointer}:where(dialog){color:var(--color-text-soft)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}}@layer components{:where(.btn,.portal-button,.rep-button,.reg-button,.assign-button,.rep-icon-button){--btn-bg:transparent;--btn-fg:var(--color-text);--btn-border:var(--color-border-control);justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--control-padding-x);border:1px solid var(--btn-border);border-radius:var(--radius-control);background:var(--btn-bg);color:var(--btn-fg);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-control);letter-spacing:0;text-align:center;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), transform var(--duration-instant) var(--ease-standard);line-height:1.2;text-decoration:none;display:inline-flex}:where(.btn-primary,.portal-button:not(.secondary,.danger),.rep-button:not(.ghost,.light),.reg-button:not(.secondary),.assign-button:not(.ghost)){--btn-bg:var(--color-action);--btn-fg:var(--color-on-action);--btn-border:var(--color-action)}:where(.btn-primary,.portal-button:not(.secondary,.danger),.rep-button:not(.ghost,.light),.reg-button:not(.secondary),.assign-button:not(.ghost)):hover:not(:disabled){--btn-bg:var(--color-action-hover);--btn-border:var(--color-action-hover)}:where(.btn-secondary,.portal-button.secondary,.rep-button.ghost,.rep-button.light,.reg-button.secondary,.assign-button.ghost,.rep-icon-button){--btn-fg:var(--color-action-text);--btn-border:var(--color-action-border)}:where(.btn-secondary,.portal-button.secondary,.rep-button.ghost,.rep-button.light,.reg-button.secondary,.assign-button.ghost,.rep-icon-button):hover:not(:disabled,[aria-pressed=true]){--btn-bg:var(--tint-action);--btn-border:var(--color-action)}:where(.btn-danger,.portal-button.danger:not(.secondary)){--btn-bg:var(--color-danger);--btn-fg:var(--color-on-accent);--btn-border:var(--color-danger)}:where(.btn-danger,.portal-button.danger:not(.secondary)):hover:not(:disabled){--btn-bg:var(--color-danger-soft);--btn-border:var(--color-danger-soft)}:where(.btn-secondary.btn-danger,.portal-button.secondary.danger){--btn-bg:transparent;--btn-fg:var(--color-danger-soft);--btn-border:color-mix(in oklch, var(--color-danger) 55%, transparent)}:where(.btn,.portal-button,.rep-button,.reg-button,.assign-button):where([aria-pressed=true]){--btn-bg:var(--color-selected);--btn-fg:var(--color-on-selected);--btn-border:var(--color-highlight)}:where(.btn-icon,.rep-icon-button){width:var(--control-height);padding:0;font-size:1.25rem;line-height:1}:where(.btn-sm){min-height:var(--control-height-sm);padding:0 var(--space-3)}@media (pointer:coarse){:where(.btn-sm){min-height:var(--control-height)}}:where(.btn,.portal-button,.rep-button,.reg-button,.assign-button,.rep-icon-button):active:not(:disabled){transform:translateY(1px)}:where(.btn,.portal-button,.rep-button,.reg-button,.assign-button,.rep-icon-button):disabled{opacity:.5;cursor:not-allowed}:where(.btn-link,.rep-text-button,.reg-text-button,.reg-card-open,.portal-link-button){align-items:center;gap:var(--space-1);min-height:var(--control-height);color:var(--color-link);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-control);text-align:left;text-underline-offset:.25em;cursor:pointer;transition:color var(--duration-fast) var(--ease-standard), text-decoration-color var(--duration-fast) var(--ease-standard);background:0 0;border:0;padding:0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:from-font;display:inline-flex}:where(.btn-link,.rep-text-button,.reg-text-button,.reg-card-open,.portal-link-button):hover{color:var(--color-highlight-soft);text-decoration-color:currentColor}:where(.portal-link-button){min-height:1.5em;color:inherit;text-decoration-color:currentColor}:where(.btn-link,.rep-text-button):where(.danger){color:var(--color-danger-soft)}:where(.tools-back){align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-4) 0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-soft);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-control);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;text-decoration:none;display:inline-flex}:where(.tools-back):hover{border-color:var(--color-border-strong);color:var(--color-text)}:where(.segmented,.rep-segments,.theory-tabs,.theory-switch){gap:var(--space-1);padding:var(--space-1);border:1px solid var(--color-border);border-radius:calc(var(--radius-control) + var(--space-1));background:var(--color-surface);display:inline-flex}:where(.segmented,.rep-segments,.theory-tabs,.theory-switch)>:where(button){justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-4);border-radius:var(--radius-control);box-shadow:none;color:var(--color-text-muted);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-control);white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:0;display:inline-flex}@media (pointer:fine){:where(.segmented,.rep-segments,.theory-tabs,.theory-switch)>:where(button){min-height:var(--control-height-sm)}}:where(.segmented,.rep-segments,.theory-tabs,.theory-switch)>:where(button:hover){color:var(--color-text)}:where(.segmented,.rep-segments,.theory-tabs,.theory-switch)>:where(button[aria-pressed=true],button[aria-selected=true],button[aria-current=true]){background:var(--color-selected);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--color-highlight) 55%, transparent);color:var(--color-on-selected)}:where(.switch){align-items:center;gap:var(--space-3);min-height:var(--control-height);padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-control);cursor:pointer;background:0 0;border:0;display:inline-flex}:where(.switch-track){border:1px solid var(--color-border-control);border-radius:var(--radius-full);background:var(--color-surface-selected);width:40px;height:24px;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);flex:none;position:relative}:where(.switch-track):after{content:"";background:var(--color-text-soft);width:18px;height:18px;transition:transform var(--duration-fast) var(--ease-standard);border-radius:50%;position:absolute;top:2px;left:2px}:where(.switch[aria-checked=true]) :where(.switch-track){border-color:var(--color-highlight);background:var(--color-selected)}:where(.switch[aria-checked=true]) :where(.switch-track):after{background:var(--color-on-selected);transform:translate(16px)}:where(.chip,.solo-chip,.solo-fret){justify-content:center;align-items:center;gap:var(--space-1);min-width:var(--control-height-sm);min-height:var(--control-height-sm);padding:0 var(--space-3);border:1px solid var(--color-border-control);border-radius:var(--radius-full);color:var(--color-text-soft);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-control);white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;line-height:1;display:inline-flex}@media (pointer:coarse){:where(.chip,.solo-chip,.solo-fret){min-width:var(--control-height);min-height:var(--control-height)}}:where(.chip,.solo-chip,.solo-fret):where(:hover){border-color:var(--color-border-hover);color:var(--color-text)}:where(.chip,.solo-chip,.solo-fret):where([aria-pressed=true],[aria-checked=true],.is-selected){border-color:var(--color-highlight);background:var(--color-selected);color:var(--color-on-selected)}:where(.chip,.solo-chip,.solo-fret):disabled{opacity:.5;cursor:not-allowed}:where(.tag,.portal-badge,.theory-badge){align-items:center;gap:var(--space-1);min-height:1.5rem;padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-xs);color:var(--color-text-soft);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:0;text-transform:none;white-space:nowrap;display:inline-flex}:where(.portal-badge):before{content:"";background:currentColor;border-radius:50%;width:.375rem;height:.375rem}:where(.tag-success,.portal-badge.active){border-color:color-mix(in oklch, var(--color-success) 45%, transparent);background:var(--tint-success);color:var(--color-success-soft)}:where(.tag-highlight,.portal-badge.suspended){border-color:color-mix(in oklch, var(--color-highlight) 45%, transparent);background:var(--tint-highlight);color:var(--color-highlight-soft)}:where([aria-pressed=true],[aria-selected=true],[aria-checked=true],.is-selected) :where(.tag,.portal-badge,.theory-badge){color:inherit;background:0 0;border-color:currentColor}:where(.eyebrow,.small-label,.rep-kicker,.reg-eyebrow,.assign-kicker){margin:0 0 var(--space-2);color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:0;text-transform:none}:where(.notice,.portal-notice,.rep-notice){margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid color-mix(in oklch, var(--color-success) 40%, transparent);border-radius:var(--radius-sm);background:var(--tint-success);color:var(--color-success-soft);font-size:var(--text-sm);line-height:var(--leading-normal)}:where(.notice-error,.portal-notice.error,.rep-notice.error){border-color:color-mix(in oklch, var(--color-danger) 50%, transparent);background:var(--tint-danger);color:var(--color-danger-soft)}:where(.help,.portal-help,.assign-hint,.solo-hint,.metronome-help){color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}:where(.toast:not([hidden])){inset:calc(env(safe-area-inset-top) + var(--space-3)) var(--space-4) auto;z-index:var(--z-toast);align-items:center;gap:var(--space-4);max-width:30rem;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-5);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-raised);box-shadow:var(--shadow-overlay);color:var(--color-text);margin-inline:auto;display:flex;position:fixed}:where(.toast p){min-width:0;font-size:var(--text-sm);line-height:var(--leading-normal);flex:auto;margin:0}:where(.toast .btn){flex:none}@media (width>=640px){:where(.toast:not([hidden])){inset:auto var(--space-5) calc(env(safe-area-inset-bottom) + var(--space-5))}}:where(.surface,.card){border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}:where(.card){border-radius:var(--radius-md);padding:var(--space-5)}:where(.dialog,.portal-dialog,.rep-dialog,.solo-dialog,.reg-dialog,.assign-dialog){width:min(var(--dialog-width,560px), calc(100% - 2 * var(--space-4)));max-height:calc(100dvh - 2 * var(--space-4));padding:var(--space-6);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-overlay);color:var(--color-text-soft);overscroll-behavior:contain}:where(.dialog,.portal-dialog,.rep-dialog,.solo-dialog,.reg-dialog,.assign-dialog)::backdrop{background:var(--color-backdrop)}:where(.dialog,.portal-dialog,.rep-dialog,.solo-dialog,.reg-dialog,.assign-dialog) :where(h2){font-size:var(--text-2xl)}@media (width<=570px){:where(.dialog,.portal-dialog,.rep-dialog,.solo-dialog,.reg-dialog,.assign-dialog){padding:var(--space-5)}}@media (width<=639px){:where(.dialog,.portal-dialog,.rep-dialog,.solo-dialog,.reg-dialog,.assign-dialog):where(:modal){width:100%;max-width:100%;max-height:calc(100dvh - var(--space-6));padding-bottom:max(var(--space-5), env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:sheet-rise var(--duration-base) var(--ease-standard);border-bottom:0;margin:auto 0 0}:where(.dialog,.portal-dialog,.rep-dialog,.solo-dialog,.reg-dialog,.assign-dialog):where(:modal):before{content:"";width:40px;height:5px;margin:calc(-1 * var(--space-2)) auto var(--space-3);background:var(--color-border-strong);border-radius:3px;flex:none;display:block}}@keyframes sheet-rise{0%{opacity:0;translate:0 2rem}}:where(.empty-state,.portal-empty,.rep-empty,.reg-empty,.assign-empty){justify-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-6);color:var(--color-text-muted);text-align:center;display:grid}:where(.empty-state,.portal-empty,.rep-empty,.reg-empty,.assign-empty) :where(h3){font-size:var(--text-xl)}:where(.empty-state,.portal-empty,.rep-empty,.reg-empty,.assign-empty) :where(p){max-width:42ch;font-size:var(--text-sm);margin:0}:where(.group-head){justify-content:space-between;align-items:baseline;gap:var(--space-3);margin:var(--space-6) var(--space-1) var(--space-2);color:var(--color-text);font-family:var(--font-ui);font-size:var(--text-md);letter-spacing:var(--tracking-tight);font-weight:650;display:flex}:where(.group-head) :where(h2,h3){font:inherit;letter-spacing:inherit}:where(.group-count){color:var(--color-text-muted);font-weight:var(--weight-medium)}:where(.list){border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}:where(.row){align-items:center;gap:var(--space-3);width:100%;min-height:60px;padding:var(--space-2) var(--space-4) var(--space-2) var(--space-4);color:inherit;font:inherit;text-align:left;background:0 0;border:0;text-decoration:none;display:flex;position:relative}:where(.row+.row){border-top:1px solid var(--color-border)}:where(button.row,a.row){cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}:where(button.row,a.row):hover{background:var(--color-surface-hover)}:where(.row[aria-current],.row.is-selected){background:var(--tint-highlight)}:where(.row[data-tone=cancelled]) :where(.row-title){color:var(--color-text-muted);text-decoration:line-through}:where(.row-main){flex:1;min-width:0}:where(.row-title){color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;line-height:1.3;display:block;overflow:hidden}:where(.row-meta){color:var(--color-text-muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;line-height:1.35;display:block;overflow:hidden}:where(.row-trail){align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);flex:none;display:flex}:where(.time-col){width:3.25rem;color:var(--color-text);font-variant-numeric:tabular-nums;flex:none;font-size:.9375rem;font-weight:650}:where(.time-col) :where(small){color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);display:block}:where(.lead-icon){border-radius:var(--radius-sm);background:var(--tint-icon);width:36px;height:36px;color:var(--color-icon);flex:none;place-items:center;display:grid}:where(.lead-icon) :where(svg){fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}:where(.lead-icon.is-brass){background:var(--tint-highlight);color:var(--color-highlight-strong)}:where(.lead-icon.is-mint){background:var(--tint-success);color:var(--color-success)}:where(.lead-icon.is-danger){background:var(--tint-danger);color:var(--color-danger)}:where(.spotlight){border:1px solid var(--edge-spotlight);border-radius:var(--radius-lg);background:var(--color-spotlight);color:var(--color-on-spotlight)}:where(.live-dot){width:8px;height:8px;margin-right:var(--space-1);background:currentColor;border-radius:50%;display:inline-block}:where(.sr-only){clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@font-face{font-family:Petaluma;src:url(/fonts/notation/petaluma.woff2)format("woff2");font-display:block}@font-face{font-family:Petaluma Script;src:url(/fonts/notation/petaluma-script.woff2)format("woff2");font-display:swap}@font-face{font-family:Bravura;src:url(/fonts/notation/bravura.woff2)format("woff2");font-display:block}@font-face{font-family:Academico;src:url(/fonts/notation/academico.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Academico;src:url(/fonts/notation/academico-bold.woff2)format("woff2");font-weight:700;font-display:swap}:where(.score-paper){border-radius:var(--radius-md);background:var(--score-paper);box-shadow:var(--shadow-paper);color:var(--score-ink)}:where(.chord-symbol){font-family:var(--score-font-chord);letter-spacing:0;font-variant-numeric:lining-nums;font-weight:400}}@layer tools{.portal-shell{min-height:100dvh}.portal-header{justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-4) var(--page-gutter);border-bottom:1px solid var(--color-border);display:flex}.portal-header .brand{color:var(--color-text);font-size:1.5rem}.portal-header .brand-dot{color:var(--color-brand)}.portal-header .site-area-links a{min-height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-soft);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);transition:border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;align-items:center;display:inline-flex}.portal-header .site-area-links a:hover{border-color:var(--color-border-strong);color:var(--color-text);background:0 0}.portal-header .site-area-links a[aria-current]{border-color:color-mix(in oklch, var(--color-highlight) 55%, transparent);background:var(--tint-highlight);color:var(--color-highlight-strong)}.portal-main{width:100%;max-width:var(--page-max);min-width:0;padding:0 var(--page-gutter) var(--space-9);margin:0 auto}.portal-topbar{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:var(--control-height);margin-bottom:var(--space-4);display:flex}.portal-topbar .eyebrow{margin:0}.portal-account{align-items:center;gap:var(--space-4);min-width:0;font-size:var(--text-sm);display:flex}.portal-account span{overflow-wrap:anywhere}.portal-notice{margin-top:var(--space-5)}.portal-heading{justify-content:space-between;align-items:center;gap:var(--space-5);margin-bottom:var(--space-7);display:flex}.portal-heading h1,.portal-teacher h1{font-size:var(--text-3xl)}.portal-heading p:last-child{margin:var(--space-3) 0 0;color:var(--color-text-muted)}.tools-back{margin:0 0 var(--space-4)}#learning-panel{padding-top:var(--space-6)}#learning-panel>.portal-heading{align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);flex-direction:row}#learning-panel>.portal-heading .eyebrow{display:none}#learning-panel>.portal-heading>div{min-width:0}.portal-state{max-width:40rem;margin:var(--space-10) auto}.portal-state h1{margin-bottom:var(--space-6)}.connect-panel{gap:var(--space-6);max-width:40rem;margin:var(--space-10) auto;display:grid}.connect-panel h1{font-size:var(--text-display)}.connect-panel h2{margin-bottom:var(--space-3)}.connect-request{gap:var(--space-4);padding:var(--space-6);display:grid}.connect-school{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:grid}.connect-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.connect-guide{gap:var(--space-4);display:grid}.connect-guide code{overflow-wrap:anywhere}.connect-steps{gap:var(--space-3);padding-left:var(--space-5);display:grid}.connect-grant-list{gap:var(--space-3);padding:0;list-style:none;display:grid}.connect-grant-list li{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.portal-loading{color:var(--color-text-muted);font-size:var(--text-sm);animation:portal-loading-in var(--duration-slow) var(--ease-standard) .6s both}@keyframes portal-loading-in{0%{opacity:0}}#learning-panel:not([hidden]){animation:portal-view-in var(--duration-base) var(--ease-standard)}@keyframes portal-view-in{0%{opacity:0;translate:0 6px}}#learning-title,.tool-open strong{width:fit-content;max-width:100%}::view-transition-group(tool-title){animation-duration:var(--duration-slow);animation-timing-function:var(--ease-standard)}::view-transition-old(tool-title){top:50%;translate:0 -50%}::view-transition-new(tool-title){top:50%;translate:0 -50%}::view-transition-group(portal-header){animation-duration:var(--duration-base);animation-timing-function:var(--ease-standard)}:root[data-tool-transition]::view-transition-old(root){--tool-step:-12px;animation:tool-leave var(--duration-fast) var(--ease-exit) both}:root[data-tool-transition]::view-transition-new(root){--tool-step:12px;animation:tool-arrive var(--duration-slow) var(--ease-standard) var(--duration-instant) both}:root[data-tool-transition=out]::view-transition-old(root){--tool-step:12px}:root[data-tool-transition=out]::view-transition-new(root){--tool-step:-12px}@keyframes tool-leave{to{opacity:0;translate:0 var(--tool-step)}}@keyframes tool-arrive{0%{opacity:0;translate:0 var(--tool-step)}}.portal-login{max-width:30rem;margin:var(--space-10) auto}.portal-login h1{margin-bottom:var(--space-5);font-size:var(--text-display)}.portal-login>p{color:var(--color-text-muted)}.portal-login>.portal-button{width:100%}.portal-lines>span{display:block}.signup-password-help{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.portal-login>.portal-switch{margin-top:calc(-1 * var(--space-2));color:var(--color-text);font-weight:var(--weight-semibold)}.portal-switch .portal-link-button{font-weight:var(--weight-semibold)}.portal-login>.in-app-hint{margin-bottom:var(--space-5);color:var(--color-text)}.portal-login>.portal-invitation-hint{padding:var(--space-3) var(--space-4);border:1px solid color-mix(in oklch, var(--color-highlight) 55%, transparent);border-radius:var(--radius-md);background:var(--tint-highlight);color:var(--color-text)}.portal-divider{align-items:center;gap:var(--space-4);margin:var(--space-6) 0;color:var(--color-text-muted);font-size:var(--text-sm);display:flex}.portal-divider:before,.portal-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.portal-form{gap:var(--space-5);display:grid}.portal-form label,.portal-filters label{gap:var(--space-2);flex-direction:column;display:flex}.portal-form>.portal-help{margin:calc(-1 * var(--space-3)) 0 0}.portal-login-links{justify-content:space-between;gap:var(--space-4);margin-top:var(--space-6);font-size:var(--text-sm);display:flex}.portal-login-links a{text-underline-offset:.25em;text-decoration:underline;text-decoration-thickness:from-font}.portal-signup-sent{margin-top:var(--space-2);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.portal-signup-sent h2{margin:0 0 var(--space-3);font-size:var(--text-xl)}.portal-signup-actions{align-items:center;gap:var(--space-4);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.portal-dialog-heading{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.portal-dialog-heading :is(.eyebrow,h2){margin:0}.portal-dialog-heading>.portal-button[aria-label]{width:var(--control-height);padding:0;font-size:1.25rem}.portal-dialog p{font-size:var(--text-sm);margin:0}.portal-dialog-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-2);display:flex}.learning-section{margin-top:var(--space-7);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.learning-section>h2,.learning-section summary{margin-bottom:var(--space-4);color:var(--color-text);font-family:var(--font-display);font-size:var(--text-2xl)}.learning-section p:not(.portal-notice){max-width:60ch;color:var(--color-text-muted);font-size:var(--text-sm)}.learning-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,18.75rem),1fr));display:grid}.learning-card{min-width:0;padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);overflow-wrap:anywhere}.learning-card h3{font-size:var(--text-xl)}.learning-card p{margin:var(--space-3) 0;font-size:var(--text-sm)}.learning-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.month-stepper{align-items:center;gap:var(--space-2);display:flex}.month-stepper-label{min-inline-size:9.5rem;color:var(--color-text);font-weight:var(--weight-semibold);text-align:center;margin:0}.learning-actions .portal-button{white-space:normal}.tools-hub{margin:0 0 var(--space-7)}.tools-search{display:block}.tools-search input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%239b96a4' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='5.5'/%3E%3Cpath d='m12.2 12.2 4 4'/%3E%3C/svg%3E");background-position:.9rem;background-repeat:no-repeat;background-size:1.125rem;max-width:28.75rem;padding-left:2.75rem}.tools-hub .portal-help{margin:var(--space-3) 0 0}.tools-grid{display:grid}.tools-group-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));display:grid}.tool-card{--tool-color:var(--category-register);min-width:0;position:relative}.tool-card[data-tool=calendar]{--tool-color:var(--category-calendar)}.tool-card[data-tool=repertoire]{--tool-color:var(--category-songs)}.tool-card[data-tool=solos]{--tool-color:var(--category-melody)}.tool-card[data-tool=theory]{--tool-color:var(--category-theory)}.tool-card[data-tool=recordings]{--tool-color:var(--category-recordings)}.tool-card[data-tool=metronome]{--tool-color:var(--category-metronome)}.tool-card[data-tool=students]{--tool-color:var(--category-students)}.tool-card[data-tool=settings]{--tool-color:var(--category-settings)}.tool-card[data-tool=jassie]{--tool-color:var(--category-jassie)}.tool-card[data-tool=admin]{--tool-color:var(--category-admin)}.tool-open{appearance:none;align-items:start;column-gap:var(--space-3);width:100%;height:100%;min-height:84px;padding:var(--space-4) var(--space-9) var(--space-4) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer;transition:border-color var(--duration-base) var(--ease-standard), background-color var(--duration-base) var(--ease-standard);grid-template-rows:auto 1fr;grid-template-columns:44px minmax(0,1fr);row-gap:2px;text-decoration:none;display:grid}.tool-open:hover{border-color:color-mix(in oklch, var(--tool-color) 60%, transparent);background:var(--color-surface-raised)}.tool-card.is-favorite .tool-open{border-color:color-mix(in oklch, var(--color-highlight) 45%, transparent)}.tool-icon{border:1px solid var(--edge-invite);border-radius:var(--radius-sm);background:var(--tint-icon);width:44px;height:44px;color:var(--color-icon);grid-row:1/3;place-items:center;display:grid}.tool-icon svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px;display:block}.tool-open strong{font-family:var(--font-display);font-size:1.3125rem;font-weight:var(--weight-display);letter-spacing:var(--tracking-display);overflow-wrap:normal;line-height:1.2}.tool-desc{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-snug);grid-column:2}.tool-open .tool-lock,.tool-open .tool-badge{margin-top:var(--space-1);grid-column:2;justify-self:start}.tool-star{top:var(--space-1);right:var(--space-1);width:var(--control-height);height:var(--control-height);color:var(--color-text-muted);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:0;border-radius:50%;place-items:center;font-size:1.25rem;line-height:1;display:grid;position:absolute}.tool-star:hover{background:var(--color-surface-selected);color:var(--color-highlight-strong)}.tool-star[aria-pressed=true]{color:var(--color-highlight)}@media (width<=1150px){.portal-heading{flex-direction:column;align-items:flex-start}}@media (width<=650px){.learning-section{padding:var(--space-5) var(--space-4)}.learning-card{padding:var(--space-4)}}@media (width<=570px){.portal-header{gap:var(--space-3);padding:var(--space-4);flex-wrap:wrap}.portal-header .brand{font-size:1.25rem}.portal-heading{gap:var(--space-5);margin-bottom:var(--space-6)}.portal-login{margin:var(--space-8) 0}.portal-login-links{flex-direction:column}.portal-dialog-actions{flex-wrap:wrap}.portal-topbar{min-height:0;padding:0}.portal-topbar>.eyebrow{display:none}.portal-account{justify-content:space-between;width:100%}}.portal-shell[data-nav]>.portal-header,.app-nav{display:none}.nav-list,.tabbar-list{margin:0;padding:0;list-style:none}.nav-icon svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px;display:block}.nav-count{border-radius:var(--radius-full);background:var(--color-brand);min-width:20px;height:20px;color:var(--color-on-brand);font-size:var(--text-xs);text-align:center;padding:0 6px;font-weight:700;line-height:20px}.app-tabbar:not([hidden]){z-index:var(--z-nav);padding:var(--space-1) var(--space-1) max(var(--space-2), env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:var(--color-nav);position:fixed;inset:auto 0 0}.tabbar-list{grid-template-columns:repeat(var(--tabs,4), minmax(0, 1fr));display:grid}.tab{min-height:52px;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;align-items:center;gap:3px;line-height:1.2;text-decoration:none;display:flex;position:relative}.tab .nav-icon{width:58px;height:30px;color:var(--color-icon);transition:background-color var(--duration-fast) var(--ease-standard);border-radius:15px;place-items:center;display:grid;position:relative}.tab[aria-current=page]{color:var(--color-highlight-strong)}.tab[aria-current=page] .nav-icon{background:var(--tint-icon);color:var(--color-icon)}.tab .nav-count{position:absolute;top:-4px;right:6px}.tab .nav-tag{display:none}.tab-dot{background:var(--color-mark);width:8px;height:8px;box-shadow:0 0 0 2px var(--color-nav);border-radius:50%;position:absolute;top:2px;right:12px}.portal-shell[data-nav]>.portal-main{padding-bottom:calc(76px + env(safe-area-inset-bottom) + var(--space-7))}.portal-subtitle{font-size:.9375rem}#learning-panel>.portal-heading .portal-subtitle{margin:var(--space-1) 0 0}.portal-shell[data-nav] #tools-back{min-height:var(--control-height);margin:0 0 var(--space-1) calc(-1 * var(--space-2));padding:0 var(--space-3) 0 var(--space-1);color:var(--color-link);font:inherit;font-size:var(--text-md);cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;font-weight:560;display:inline-flex}.portal-shell[data-nav] #tools-back[hidden]{display:none}#tools-back svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}@media (width<=639px){.portal-shell[data-nav] #learning-panel{padding-top:var(--space-4)}.portal-shell[data-nav] #learning-panel>.portal-heading{margin-bottom:var(--space-5);align-items:flex-start}.portal-shell[data-nav] #learning-title{font-size:2rem}}@media (width>=640px){.portal-shell[data-nav]{grid-template-columns:88px minmax(0,1fr);display:grid}.portal-shell[data-nav]>.portal-main{padding-bottom:var(--space-9);grid-column:2}.app-tabbar:not([hidden]){display:none}.app-nav:not([hidden]){z-index:var(--z-nav);align-items:center;gap:var(--space-1);height:100dvh;padding:var(--space-6) 0 var(--space-4);overscroll-behavior:contain;border-right:1px solid var(--color-border);background:var(--color-nav);scrollbar-width:thin;flex-direction:column;grid-area:1/1;display:flex;position:sticky;top:0;overflow-y:auto}.app-nav .nav-brand,.app-nav .nav-group,.app-nav .nav-who,.app-nav .nav-tag{display:none}.app-nav .nav-list{gap:var(--space-1);display:grid}.app-nav .nav-item{width:80px;min-height:60px;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-align:center;flex-direction:column;align-items:center;gap:4px;padding-top:4px;line-height:1.2;text-decoration:none;display:flex;position:relative}.app-nav .nav-item .nav-icon{width:56px;height:32px;color:var(--color-icon);transition:background-color var(--duration-fast) var(--ease-standard);border-radius:16px;place-items:center;display:grid;position:relative}.app-nav .nav-item:hover .nav-icon{background:var(--color-surface-hover)}.app-nav .nav-item[aria-current=page]{color:var(--color-highlight-strong)}.app-nav .nav-item[aria-current=page] .nav-icon{background:var(--tint-icon);color:var(--color-icon)}.app-nav .nav-item .nav-count{position:absolute;top:0;right:8px}.nav-spacer{flex:1}.nav-foot{justify-items:center;gap:var(--space-2);display:grid}.nav-account{width:var(--control-height);height:var(--control-height);color:inherit;border-radius:50%;place-items:center;text-decoration:none;display:grid}.nav-avatar{background:color-mix(in oklch, var(--category-register) 22%, var(--color-surface));width:32px;height:32px;color:var(--color-text);font-size:var(--text-xs);letter-spacing:.01em;border-radius:50%;flex:none;place-items:center;font-weight:650;display:grid}.portal-shell[data-nav] #learning-panel{padding-top:0}.portal-shell[data-nav] #learning-panel>.portal-heading{min-height:64px;margin:0 calc(-1 * var(--page-gutter)) var(--space-6);padding:var(--space-2) var(--page-gutter);border-bottom:1px solid var(--color-border)}.portal-shell[data-nav] #learning-title{font-size:1.625rem;line-height:1.15}.portal-shell[data-nav] #learning-panel>.portal-heading .portal-subtitle{font-size:var(--text-sm);margin:2px 0 0}.portal-shell[data-nav] #tools-back{display:none}}@media (width>=1024px){.portal-shell[data-nav]{grid-template-columns:240px minmax(0,1fr)}.app-nav:not([hidden]){padding:0 var(--space-2) var(--space-3);align-items:stretch;gap:0}.app-nav .nav-brand{height:64px;padding:0 var(--space-3);color:var(--color-text);letter-spacing:-1.2px;flex:none;align-items:center;font-size:1.25rem;font-weight:650;text-decoration:none;display:flex}.app-nav .nav-brand .brand-dot{color:var(--color-brand)}.app-nav .nav-rail-only{display:none}.app-nav .nav-group{display:block}.nav-group-title{margin:var(--space-4) var(--space-3) var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:650}.app-nav .nav-list{gap:2px}.app-nav .nav-item{width:auto;min-height:36px;padding:0 var(--space-3);color:var(--color-text-soft);font-size:var(--text-sm);text-align:left;transition:background-color var(--duration-fast) var(--ease-standard);border-radius:9px;flex-direction:row;gap:10px;font-weight:560}.app-nav .nav-item .nav-icon,.app-nav .nav-item[aria-current=page] .nav-icon,.app-nav .nav-item:hover .nav-icon{width:auto;height:auto;color:var(--color-icon);background:0 0}.app-nav .nav-icon svg{width:18px;height:18px}.app-nav .nav-item:hover{background:var(--color-surface-hover)}.app-nav .nav-item[aria-current=page],.app-nav .nav-item[aria-current=page] .nav-icon{background:var(--tint-highlight-strong);color:var(--color-highlight-strong)}.app-nav .nav-item[aria-current=page] .nav-icon{color:var(--color-icon);background:0 0}.app-nav .nav-item .nav-count{margin-left:auto;position:static}.app-nav .nav-tag{margin-left:auto;display:inline-flex}.nav-foot{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);justify-items:stretch;display:block}.nav-account{width:auto;height:auto;min-height:52px;padding:var(--space-2) var(--space-3);border-radius:9px;align-items:center;gap:10px;display:flex}.nav-account:hover{background:var(--color-surface-hover)}.nav-account[aria-current=page]{background:var(--tint-highlight-strong)}.app-nav .nav-who{min-width:0;display:grid}.nav-name,.nav-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-name{color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.nav-detail{color:var(--color-text-muted);font-size:var(--text-xs)}}@media print{.app-nav,.app-tabbar,.toast{display:none!important}.portal-shell[data-nav]{display:block}.portal-shell[data-nav]>.portal-main{padding-bottom:0}}.today-panel:not([hidden]){gap:var(--space-2) var(--space-7);margin-bottom:var(--space-7);display:grid}.today-panel[aria-busy=true]:empty{min-height:12rem}.today-main,.today-side{min-width:0}.today-side{align-content:start;gap:var(--space-6);display:grid}.today-side+.today-main{margin-top:var(--space-4)}@media (width>=1024px){.today-panel:not([hidden]){grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:start}.today-main{grid-area:1/1}.today-side{grid-area:1/2}.today-side+.today-main,.today-side>.group-head:first-child{margin-top:0}}.today-todo{padding:var(--space-4) var(--space-5) var(--space-2);border-radius:var(--radius-lg);background:var(--color-surface);display:grid}.today-todo-title{color:var(--color-text-soft);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:0}.today-todo-list{margin:var(--space-1) 0 0;padding:0;list-style:none}.today-todo-list>li+li{border-top:1px solid var(--color-border)}.today-todo-item{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:48px;padding:var(--space-2) 0;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;font-size:.9375rem;line-height:1.4;display:flex}.today-todo-text{overflow-wrap:anywhere;min-width:0}.today-todo-item:hover .today-todo-text{text-underline-offset:.2em;text-decoration:underline}.today-todo-item svg{fill:none;width:18px;height:18px;stroke:var(--color-text-muted);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none}.today-todo .today-more{margin:0 0 var(--space-2);justify-self:start}.today-lessons{margin:0;padding:0;list-style:none}.today-lessons>li{border-bottom:1px solid var(--color-border)}.today-lesson{align-items:center;gap:var(--space-3);width:calc(100% + 2 * var(--space-2));min-height:76px;margin:0 calc(-1 * var(--space-2));padding:var(--space-2);border-radius:var(--radius-xs);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);background:0 0;border:0;grid-template-columns:3.25rem minmax(0,1fr) auto;display:grid}.today-lesson:hover{background:var(--color-surface)}.today-lesson-time{font-size:var(--text-md);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.today-lesson-words{gap:2px;min-width:0;display:grid}.today-lesson-who{font-size:var(--text-md);font-weight:var(--weight-medium);overflow-wrap:anywhere;line-height:1.3}.today-lesson-meta{color:var(--color-text-muted);font-size:.8125rem;line-height:1.4}.today-lesson[data-tone=cancelled] :is(.today-lesson-time,.today-lesson-who){color:var(--color-text-muted);text-decoration:line-through}.today-state{min-height:1.75rem;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);color:var(--color-text-soft);font-size:.8125rem;font-weight:var(--weight-semibold);white-space:nowrap;align-items:center;display:inline-flex}.today-state.is-todo{border:1.5px solid var(--color-text);color:var(--color-text)}.today-state:is(.is-live,.is-next){border-color:var(--color-selected);background:var(--color-selected);color:var(--color-on-selected)}.today-state.is-live .live-dot{color:var(--color-mark)}.today-state.is-muted{color:var(--color-text-muted);border-color:#0000}.today-now{gap:var(--space-2);margin-top:var(--space-5);display:grid}.today-now .today-now-actions{border-top:0;margin-top:0;padding-top:0}.today-now .today-now-actions>*{min-height:3.25rem}@media (width>=640px){.today-now .today-now-actions>*{padding-inline:var(--space-6);flex:0 auto}}.today-now .today-now-help{margin:0}.today-after{margin:var(--space-4) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.today-spotlight{padding:var(--space-5)}.today-spotlight-top{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.today-now-title{overflow-wrap:anywhere;min-width:0;font-size:1.625rem}.today-spotlight-top .tag{flex:none}.today-now-details{margin:var(--space-1) 0 0;color:var(--color-text-soft);font-size:var(--text-sm)}.today-spotlight>.tag{margin-top:var(--space-2)}.today-now-actions{gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.today-now-actions>*{flex:11rem}.today-now-help{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.today-now-actions svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.today-empty{justify-items:start;gap:var(--space-2);padding:var(--space-5);display:grid}.today-empty-title{font-size:var(--text-xl)}.today-empty-text,.today-clear{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.today-empty .btn{margin-top:var(--space-2)}.today-clear{margin:0 var(--space-1)}.studio-next{justify-items:start;gap:var(--space-1);padding:var(--space-5);display:grid}.studio-next-label{color:var(--color-text-muted);font-size:var(--text-sm);align-items:center;margin:0;display:inline-flex}.studio-when{font-family:var(--font-display);font-size:1.6875rem;font-weight:var(--weight-display);letter-spacing:var(--tracking-tight);overflow-wrap:anywhere;line-height:1.2}.studio-when:focus{outline:none}.studio-next-line{color:var(--color-text-soft);font-size:.9375rem;line-height:var(--leading-normal);margin:0}.studio-next-line.is-muted{color:var(--color-text-muted)}.studio-next .tag{margin-top:var(--space-1)}.studio-next-actions{align-items:center;gap:var(--space-2) var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.studio-next-actions svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.studio-next-until{color:var(--color-text-muted);font-size:var(--text-sm)}.studio-prep{margin-top:var(--space-7)}.studio-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.studio-title{font-family:var(--font-display);font-size:1.625rem;font-weight:var(--weight-display);letter-spacing:var(--tracking-tight);line-height:1.18}.studio-count{color:var(--color-text-muted);font-size:var(--text-sm);flex:none}.studio-note{gap:var(--space-2);margin:var(--space-3) 0 0;padding:var(--space-4) var(--space-5);display:grid}.studio-note-caption{font-size:var(--text-sm)}.studio-note-text{font-family:var(--font-display);overflow-wrap:anywhere;margin:0;font-size:1.1875rem;font-style:italic;line-height:1.38}.studio-note-text p{white-space:pre-line;margin:0}.studio-note-text p:before{content:"«"}.studio-note-text p:after{content:"»"}.studio-items{margin:var(--space-3) 0 0;padding:0;list-style:none}.studio-items>li{border-top:1px solid var(--color-border)}.studio-item{align-items:center;gap:var(--space-3);width:calc(100% + 2 * var(--space-2));min-height:72px;margin:var(--space-1) calc(-1 * var(--space-2));padding:var(--space-2);border-radius:var(--radius-xs);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);background:0 0;border:0;grid-template-columns:40px minmax(0,1fr) auto;display:grid}.studio-item:hover{background:var(--color-surface)}.studio-item-icon{border-radius:var(--radius-full);background:var(--color-surface);width:40px;height:40px;color:var(--color-text)}.studio-item-icon svg{width:18px;height:18px}.studio-item-words{gap:2px;min-width:0;display:grid}.studio-item-title{color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-medium);overflow-wrap:anywhere;line-height:1.3}.studio-item-meta,.studio-item-note,.studio-item-state{color:var(--color-text-muted);font-size:.8125rem;line-height:1.4}.studio-item-note{color:var(--color-text-soft);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.studio-item-state{align-items:center;gap:6px;display:inline-flex}.studio-item-state.is-ready{color:var(--color-text)}.studio-item-state.is-ready:before{content:"";box-sizing:border-box;border:1px solid;border-radius:50%;flex:none;width:6px;height:6px}.studio-item-go{color:var(--color-text);font-size:.9375rem;font-weight:var(--weight-medium);flex:none}.studio-side{align-content:start;gap:var(--space-4);margin-top:var(--space-6);display:grid}.studio-last{justify-items:start;gap:var(--space-2);padding-top:var(--space-5);border-top:1px solid var(--color-border);display:grid}.studio-last-title{font-family:var(--font-display);font-size:1.3125rem;font-weight:var(--weight-display);line-height:1.2}.studio-last-text{color:var(--color-text-soft);font-size:.9375rem;line-height:var(--leading-normal);-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.studio-link{font-size:.9375rem}@media (width>=640px){.studio-tools{display:none}}@media (width>=1024px){.studio-side{margin-top:0}.studio-side>.studio-last:first-child{border-top:0;padding-top:0}}.today-side>.today-zoom>.group-head:first-child{margin-top:0}.today-zoom-row{flex-wrap:wrap}.today-zoom-row .row-title,.today-zoom-row .row-meta{white-space:normal}.today-zoom-actions{flex-wrap:wrap}.today-zoom-actions.is-wide{padding-bottom:var(--space-2);flex:1 0 100%}.today-zoom-actions.is-wide>.btn{flex:1}.today-zoom-saved:empty{display:none}.today-zoom-saved,.today-zoom-help{margin:var(--space-2) var(--space-1) 0;color:var(--color-text-muted);font-size:var(--text-sm)}.today-zoom-saved.is-error{color:var(--color-danger-soft)}.lesson-sheet{--dialog-width:680px;padding:0}.lesson-sheet[open]{flex-direction:column;display:flex;overflow:hidden}.lesson-sheet:before{margin:var(--space-2) auto 0}.lesson-sheet-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-6) var(--space-3);flex:none;display:flex}.lesson-sheet-words{justify-items:start;gap:var(--space-1);min-width:0;display:grid}.lesson-sheet-words .eyebrow{margin:0}.lesson-sheet .lesson-sheet-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-display);letter-spacing:var(--tracking-tight);overflow-wrap:anywhere;line-height:1.15}.lesson-sheet-when{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.lesson-sheet-close{width:var(--control-height);height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-soft);font:inherit;cursor:pointer;background:0 0;flex:none;font-size:1.375rem;line-height:1}.lesson-sheet-close:hover{border-color:var(--color-border-hover)}.lesson-sheet-body{overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.lesson-sheet-status{padding:var(--space-4) var(--space-6);color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.lesson-sheet-status.is-error{color:var(--color-danger-soft)}.lesson-sheet-body>.btn{margin:0 var(--space-6) var(--space-5)}.lesson-sheet-form{gap:var(--space-6);padding:var(--space-2) var(--space-6) 0;display:grid}.lesson-sheet-section,.lesson-sheet-field{gap:var(--space-2);min-width:0;display:grid}.lesson-sheet .lesson-sheet-heading{color:var(--color-text);font-family:var(--font-ui);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:0;margin:0}.lesson-sheet-help,.lesson-sheet-said{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.lesson-sheet-said:empty{display:none}.lesson-sheet-said.is-error{color:var(--color-danger-soft)}.lesson-sheet-home{margin:0;padding:0;list-style:none}.lesson-sheet-home-item{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.lesson-sheet-home-words{flex:14rem;gap:2px;min-width:0;display:grid}.lesson-sheet-home-kind{color:var(--color-text-muted);font-size:var(--text-xs)}.lesson-sheet-home-title,.lesson-sheet-given-name{color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-medium);overflow-wrap:anywhere}.lesson-sheet-home-reply,.lesson-sheet-home-take{color:var(--color-text-soft);font-size:var(--text-sm);overflow-wrap:anywhere}.lesson-sheet-home-reply b{color:var(--color-text);font-weight:var(--weight-semibold)}.lesson-sheet-home-take{color:var(--color-text-muted)}.lesson-sheet-home-item [aria-pressed=true]{border-color:var(--color-selected);background:var(--color-selected);color:var(--color-on-selected)}.lesson-sheet .attendance-control{margin:0}.lesson-sheet .attendance-makeup{align-items:center;gap:var(--space-2);min-height:var(--control-height);display:inline-flex}.lesson-sheet .attendance-makeup input{flex:none;width:1.25rem;height:1.25rem;margin:0}.lesson-sheet-text{resize:vertical;width:100%;min-height:6.5rem}.lesson-sheet-given{gap:var(--space-1);padding-top:var(--space-2);display:grid}.lesson-sheet-given-title{color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-semibold);margin:0}.lesson-sheet-given-list{margin:0;padding:0;list-style:none}.lesson-sheet-given-item{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);min-height:56px;padding:var(--space-1) 0;border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.lesson-sheet-given-words{flex:12rem;gap:2px;min-width:0;display:grid}.lesson-sheet-given-remove{width:var(--control-height);height:var(--control-height);border-radius:var(--radius-full);color:var(--color-text-soft);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;flex:none;font-size:1.375rem;line-height:1}.lesson-sheet-given-remove:hover{border-color:var(--color-border-hover);color:var(--color-text)}.lesson-sheet-given-ask{min-width:0;color:var(--color-text);font-size:var(--text-sm);overflow-wrap:anywhere;flex:14rem}.lesson-sheet-given-answers{gap:var(--space-2);flex-wrap:wrap;display:flex}.lesson-sheet-add{width:100%;margin-top:var(--space-2);border-style:dashed;justify-content:center}.lesson-add{--dialog-width:560px}.lesson-add[open]{gap:var(--space-3);display:grid}.lesson-add-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.lesson-add-words{gap:2px;min-width:0;display:grid}.lesson-add-words .eyebrow{margin:0}.lesson-add .lesson-add-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-display);line-height:1.15}.lesson-add-recent{gap:var(--space-1);margin-block:var(--space-2);display:grid}.lesson-add-recent[hidden]{display:none}.lesson-add .lesson-add-recent-title{color:var(--color-text);font-family:var(--font-ui);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:0;margin:0}.lesson-add-recent .lesson-add-list{max-height:none}.lesson-add-kinds{gap:var(--space-2);flex-wrap:wrap;display:flex}.lesson-add-field{gap:var(--space-1);display:grid}.lesson-add-label{color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.lesson-add-status{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.lesson-add-status:empty{display:none}.lesson-add-status.is-error{color:var(--color-danger-soft)}.lesson-add-list{max-height:45dvh;margin:0;padding:0;list-style:none;overflow-y:auto}.lesson-add-row{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) 0;border-top:1px solid var(--color-border);display:flex}.lesson-add-name{color:var(--color-text);font-weight:var(--weight-medium);overflow-wrap:anywhere}.lesson-add-meta{color:var(--color-text-muted);font-size:var(--text-sm)}.lesson-add-row [aria-pressed=true]{border-color:var(--color-selected);background:var(--color-selected);color:var(--color-on-selected);opacity:1}.lesson-add-row .btn{flex:none}.lesson-add-new:empty{display:none}.lesson-add-footer{justify-content:flex-end;display:flex}.lesson-sheet-private>summary{min-height:var(--control-height);color:var(--color-text);font-weight:var(--weight-semibold);cursor:pointer;align-items:center;display:flex}.lesson-sheet-private[open]>summary{margin-bottom:var(--space-2)}.lesson-sheet-footer{gap:var(--space-2);margin:0 calc(-1 * var(--space-6));padding:var(--space-3) var(--space-6) max(var(--space-5), env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:var(--color-surface-raised);display:grid;position:sticky;bottom:0}.lesson-sheet-error{margin:0}.lesson-sheet-actions{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.lesson-sheet-actions .btn-primary{flex:14rem}@media (width>=640px){.lesson-sheet-actions .btn-primary{flex:0 auto}}@media (width<=570px){.lesson-sheet-head,.lesson-sheet-status,.lesson-sheet-form{padding-inline:var(--space-5)}.lesson-sheet-body>.btn{margin-inline:var(--space-5)}.lesson-sheet-footer{margin-inline:calc(-1 * var(--space-5));padding-inline:var(--space-5)}}.first-steps{margin:0 0 var(--space-7);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.first-steps-heading{justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-6);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.first-steps-heading h2{font-size:var(--text-2xl)}#first-steps-intro{max-width:62ch;margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.first-steps-count{color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.first-steps-list{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.first-step{min-width:0;display:flex;position:relative}.first-step-open{appearance:none;align-items:center;column-gap:var(--space-3);width:100%;padding:var(--space-5);border-radius:var(--radius-md);color:var(--color-text);font:inherit;text-align:left;overflow-wrap:break-word;cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard);background:0 0;border:1px solid #0000;grid-template:"mark tag""title title""desc desc"1fr"go go"/2rem minmax(0,1fr);display:grid}.first-step-open:hover{border-color:var(--color-border);background:var(--color-surface-hover)}.first-step-mark{border:1px solid var(--color-border-strong);width:2rem;height:2rem;color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;border-radius:50%;grid-area:mark;place-items:center;display:grid}.first-step svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;display:block}.first-step-mark svg{stroke-width:2px;width:1.125rem;height:1.125rem}.first-step-tag{grid-area:tag;justify-self:start}.first-step-open strong{margin-top:var(--space-4);font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug);text-wrap:balance;grid-area:title}.first-step-desc{margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);grid-area:desc;align-self:start}.first-step-go{align-items:center;gap:var(--space-2);margin-top:var(--space-4);color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-semibold);grid-area:go;display:inline-flex}.first-step-go svg{stroke-width:2px;width:1rem;height:1rem;transition:translate var(--duration-base) var(--ease-standard)}.first-step-open:hover .first-step-go svg{translate:2px}.first-step[data-state=next] .first-step-open{border-color:var(--edge-spotlight);background:var(--color-spotlight)}.first-step[data-state=next] .first-step-mark{border-color:var(--color-highlight);background:var(--color-highlight);color:var(--color-on-highlight)}.first-step[data-state=next] .first-step-go{color:var(--color-link)}.first-step[data-state=done] .first-step-mark{border-color:color-mix(in oklch, var(--color-success) 45%, transparent);background:var(--tint-success);color:var(--color-success-soft)}.first-step[data-state=done] .first-step-open strong{color:var(--color-text-soft)}.first-step[data-state=done] .first-step-go{color:var(--color-success-soft)}.first-step:has(.first-step-remove) .first-step-open{padding-right:calc(var(--control-height) + var(--space-3))}.first-step:has(.first-step-guide) .first-step-open{padding-bottom:calc(var(--space-5) + var(--control-height))}.first-step-guide{left:var(--space-5);bottom:var(--space-3);min-height:var(--control-height);font-size:var(--text-sm);font-weight:var(--weight-semibold);position:absolute}.first-step-remove{top:var(--space-3);right:var(--space-3);width:var(--control-height);height:var(--control-height);color:var(--color-text-muted);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute}.first-step-remove:hover:not(:disabled){background:var(--color-surface-selected);color:var(--color-text)}.first-step-remove:disabled{opacity:.5;cursor:not-allowed}.first-step-remove svg{stroke-width:1.8px;width:1.25rem;height:1.25rem}@media (width<=1100px){.first-steps-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.first-steps{padding:var(--space-5) var(--space-4)}.first-steps-heading{margin-bottom:var(--space-4)}.first-steps-list{gap:var(--space-2);grid-template-columns:minmax(0,1fr)}.first-step-open{padding:var(--space-4);grid-template-rows:auto;grid-template-areas:"mark tag""mark title""mark desc""mark go";align-items:start}.first-step-tag{margin-bottom:var(--space-2)}.first-step-open strong{margin-top:var(--space-1)}.first-step-go{margin-top:var(--space-3)}.first-step[data-state=done] .first-step-desc{display:none}.first-step[data-state=done] .first-step-go{margin-top:var(--space-1)}.first-step-remove{top:var(--space-2);right:var(--space-2)}.first-step:has(.first-step-guide) .first-step-open{padding-bottom:calc(var(--space-2) + var(--control-height))}.first-step-guide{left:calc(var(--space-4) + 2rem + var(--space-3));bottom:var(--space-1)}}@media (prefers-reduced-motion:reduce){.first-step-open:hover .first-step-go svg{translate:none}}.tutorials{margin:var(--space-8) 0 0}.tutorials-heading{justify-content:space-between;align-items:flex-end;gap:var(--space-2) var(--space-6);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.tutorials-heading h2{font-size:var(--text-2xl)}.tutorials-intro{max-width:62ch;margin:var(--space-2) 0 0;color:var(--color-text-soft);font-size:var(--text-sm)}.tutorials-count{color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.tutorials-list{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));display:grid}.tutorial-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);min-width:0;box-shadow:var(--shadow-raised);flex-direction:column;display:flex;overflow:hidden}.tutorial-card[data-state=progress]{border-color:var(--color-action-border)}.tutorial-art{justify-content:center;align-items:flex-start;gap:var(--space-2);padding:var(--space-6) var(--space-5) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-invite);display:flex}.tutorial-card:is([data-state=completed],[data-state=marked]) .tutorial-art{background:var(--tint-success)}.tutorial-stop{align-items:center;gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.tutorial-tile{border-radius:var(--radius-md);background:var(--color-surface-raised);width:3rem;height:3rem;box-shadow:var(--shadow-raised);color:var(--color-icon);place-items:center;display:grid;position:relative}.tutorial-tile svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.4rem;height:1.4rem}.tutorial-tile[data-current]{outline:2px solid var(--color-action);outline-offset:2px}.tutorial-tick{border:2px solid var(--color-surface-raised);border-radius:var(--radius-full);background:var(--color-success);width:1.15rem;height:1.15rem;color:var(--color-surface-raised);place-items:center;display:grid;position:absolute;top:-.35rem;right:-.35rem}.tutorial-tile .tutorial-tick svg{stroke-width:3.4px;width:.7rem;height:.7rem}.tutorial-stop-label{color:var(--color-action-text);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap}.tutorial-path{border-top:2px dotted var(--color-action-border);flex:0 2rem;min-width:.75rem;margin-top:1.5rem}.tutorial-path.is-done{border-top-style:solid;border-top-color:var(--color-action)}.tutorial-card:is([data-state=completed],[data-state=marked]) .tutorial-path{border-top:2px solid var(--color-success)}.tutorial-body{gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-4);flex-direction:column;flex:1;display:flex}.tutorial-meta{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.tutorial-meta .tag svg{width:.9rem;height:.9rem;margin-right:var(--space-1);fill:none;stroke:currentColor;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.12em}.tutorial-length{color:var(--color-text-muted);font-size:var(--text-xs)}.tutorial-progress{gap:var(--space-1);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.tutorial-progress span{border-radius:var(--radius-full);background:var(--color-border);height:.25rem}.tutorial-progress .is-done{background:var(--color-action)}.tutorial-progress .is-current{background:var(--color-action-border)}.tutorial-title{font-size:var(--text-lg);margin:0}.tutorial-text{color:var(--color-text-soft);font-size:var(--text-sm);margin:0}.tutorial-foot{justify-content:space-between;align-items:center;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border);flex-wrap:wrap;margin-top:auto;display:flex}.tutorial-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.tutorial-mark{align-items:center;gap:var(--space-2);min-height:2.75rem;padding-inline:var(--space-2) 0;color:var(--color-text-soft);font-weight:var(--weight-medium);cursor:pointer;display:inline-flex}.tutorial-mark input{width:1.375rem;height:1.375rem;accent-color:var(--color-success);cursor:pointer;margin:0}.tutorial-mark:has(input:checked){color:var(--color-success)}@media (width<=639px){.tutorials-list{gap:var(--space-3);margin-inline:calc(-1 * var(--space-5));padding:0 var(--space-5) var(--space-2);scroll-snap-type:x mandatory;scroll-padding-inline:var(--space-5);scrollbar-width:none;display:flex;overflow-x:auto}.tutorials-list::-webkit-scrollbar{display:none}.tutorial-card{scroll-snap-align:start;flex:0 0 min(19rem,82%)}}.guide-veil{z-index:var(--z-guide);background:var(--color-backdrop);pointer-events:none;position:fixed;inset:0}.guide-target{outline:3px solid var(--color-action);outline-offset:3px;box-shadow:0 0 0 9px var(--tint-action)}.guide-coach{z-index:calc(var(--z-guide) + 2);gap:var(--space-3);width:min(24rem,100vw - 2rem);max-height:calc(100dvh - 2rem);padding:var(--space-5) var(--space-5) var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-overlay);color:var(--color-text);flex-direction:column;display:flex;position:fixed;overflow-y:auto}.guide-coach.is-docked{width:auto;margin:0 0 var(--space-5);border:1px solid var(--color-action-border);box-shadow:var(--shadow-raised);position:static}.guide-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.guide-eyebrow{color:var(--color-action-text);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.guide-close{width:2.75rem;height:2.75rem;margin:calc(-1 * var(--space-3)) calc(-1 * var(--space-3)) calc(-1 * var(--space-3)) 0;border-radius:var(--radius-full);color:var(--color-text-soft);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.guide-close:where(:hover){background:var(--color-surface-hover)}.guide-close svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:1.1rem;height:1.1rem}.guide-steps{gap:var(--space-1);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.guide-steps span{border-radius:var(--radius-full);background:var(--color-border);height:.25rem}.guide-steps .is-done{background:var(--color-action)}.guide-steps .is-current{background:var(--color-action-border)}.guide-done{color:var(--color-success);font-size:var(--text-sm);font-weight:var(--weight-semibold);margin:0}.guide-done:before{content:"✓ "}.guide-title{font-size:var(--text-xl);margin:0}.guide-title:focus{outline:none}.guide-text,.guide-tip{color:var(--color-text-soft);font-size:var(--text-sm);margin:0}.guide-tip{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.guide-wait{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-invite);font-size:var(--text-sm);font-weight:var(--weight-medium);margin:0;display:flex}.guide-pulse{border-radius:var(--radius-full);background:var(--color-action);width:.625rem;height:.625rem;box-shadow:0 0 0 4px var(--tint-action);flex:none}.guide-foot{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.guide-foot .btn-link{min-height:2.75rem}@media (width<=639px){.guide-coach:not(.is-docked){right:var(--space-3);bottom:calc(76px + env(safe-area-inset-bottom) + var(--space-3));left:var(--space-3);width:auto;max-height:55dvh;overflow-y:auto}.guide-coach.is-top:not(.is-docked){top:calc(env(safe-area-inset-top) + var(--space-3));bottom:auto}}.guide-intro,.guide-end{--dialog-width:36rem}.guide-intro-form,.guide-end-form{gap:var(--space-4);flex-direction:column;display:flex}.guide-intro-text{color:var(--color-text-soft);margin:0}.guide-intro-list{counter-reset:guide;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.guide-intro-list li{column-gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--color-border);counter-increment:guide;grid-template-rows:auto auto;grid-template-columns:2rem minmax(0,1fr);display:grid}.guide-intro-list li:before{content:counter(guide);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);width:1.75rem;height:1.75rem;color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-semibold);grid-row:span 2;place-items:center;display:grid}.guide-intro-list span{color:var(--color-text-muted);font-size:var(--text-sm)}.guide-intro-actions,.guide-end-actions{justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.guide-end-eyebrow{color:var(--color-success)}.guide-end-list{margin:0;padding:0;list-style:none}.guide-end-list li{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--color-border);display:flex}.guide-end-list li span:first-child:before{content:"✓ ";color:var(--color-success);font-weight:var(--weight-semibold)}.guide-end-list li span:last-child{color:var(--color-text-muted);font-size:var(--text-sm)}.guide-end-choice{gap:var(--space-3);border:0;flex-direction:column;margin:0;padding:0;display:flex}.guide-end-choice legend{margin-bottom:var(--space-3);font-weight:var(--weight-semibold)}.guide-end-choice label{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer;align-items:flex-start;display:flex}.guide-end-choice label:has(input:checked){border-color:var(--color-action);background:var(--color-invite)}.guide-end-choice input{width:1.25rem;height:1.25rem;accent-color:var(--color-action);margin:.1rem 0 0}.guide-end-choice strong{display:block}.guide-end-choice small{color:var(--color-text-soft);font-size:var(--text-sm);display:block}#agenda-panel{margin-top:var(--space-5);padding:var(--space-5)}#agenda-panel>.portal-heading{align-items:center;gap:var(--space-4);margin-bottom:var(--space-3);flex-flow:wrap}#agenda-title{font-family:var(--font-ui);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-snug)}.calendar-invite{align-items:center;gap:var(--space-3) var(--space-4);margin:var(--space-2) 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid color-mix(in oklch, var(--category-calendar) 32%, transparent);border-radius:var(--radius-md);background:color-mix(in oklch, var(--category-calendar) 8%, transparent);flex-wrap:wrap;display:flex}.calendar-invite svg{fill:none;width:1.5rem;height:1.5rem;stroke:var(--category-calendar);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none}#calendar-invite-text{max-width:none;color:var(--color-text);flex:12rem;margin:0}#booking-description:empty{display:none}#booking-description{margin:var(--space-2) 0}.agenda-controls{align-items:end;gap:var(--space-4);margin:var(--space-5) 0;flex-wrap:wrap;display:flex}.agenda-controls label{gap:var(--space-2);flex:180px;display:grid}.agenda-view>summary{display:none}.agenda-view .learning-grid{grid-template-columns:1fr}.agenda-view .lesson-card{padding:var(--space-5)}.week-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);margin:var(--space-5) 0 var(--space-4);flex-wrap:wrap;display:flex}.week-toolbar h3{font-family:var(--font-ui);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-snug)}.week-toolbar p{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--text-xs)}.week-scroll{overscroll-behavior:contain;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);scrollbar-width:thin;max-height:680px;overflow:auto}.week-calendar{grid-template-rows:minmax(76px,auto) 1440px;grid-template-columns:56px repeat(7,minmax(86px,1fr));min-width:720px;display:grid;position:relative}.week-corner,.week-day-heading{z-index:4;padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);background:var(--color-surface);position:sticky;top:0}.week-corner{z-index:5;color:var(--color-text-muted);font-size:var(--text-xs);text-align:center;place-items:center;display:grid;left:0}.week-day-heading{align-content:center;justify-items:center;gap:var(--space-1);border-left:1px solid var(--color-border);display:grid}.week-day-heading span{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:capitalize}.week-day-heading strong{width:2rem;height:2rem;color:var(--color-text);font-size:var(--text-lg);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;line-height:1;display:grid}.week-day-heading.today strong{background:var(--color-highlight);color:var(--color-on-highlight)}.week-times{z-index:3;background:var(--color-surface);grid-template-rows:repeat(24,60px);display:grid;position:sticky;left:0}.week-times span{padding:var(--space-2) var(--space-1) 0;color:var(--color-text-muted);font-size:var(--text-xs);text-align:center;font-variant-numeric:tabular-nums}.week-day-body{border-left:1px solid var(--color-border);background:linear-gradient(to bottom, transparent 59px, var(--color-border) 59px) 0 0 / 100% 60px;position:relative;container-type:inline-size}.week-day-body.today{background-color:color-mix(in oklch, var(--color-highlight) 4%, transparent)}.week-slot{cursor:pointer;background:0 0;border:0;width:100%;height:60px;position:absolute;left:0}.week-slot:hover,.week-slot:focus-visible{outline:1px solid var(--color-highlight);outline-offset:-2px;background:var(--tint-highlight)}.week-event{--event-color:var(--color-highlight);left:var(--space-1);right:var(--space-1);z-index:2;min-height:24px;padding:var(--space-1) var(--space-2);border:1px solid color-mix(in oklch, var(--event-color) 50%, transparent);border-radius:var(--radius-xs);background:color-mix(in oklch, var(--event-color) 20%, var(--color-surface));color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);flex-direction:column;gap:2px;display:flex;position:absolute;overflow:hidden}.week-event>*{flex-shrink:0}.week-event.short strong{white-space:nowrap}.week-event.short>:not(strong){display:none}.week-event strong{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-overflow:ellipsis;line-height:1.25;overflow:hidden}.week-event span{color:var(--color-text-soft);font-size:var(--text-xs);white-space:nowrap;font-variant-numeric:tabular-nums}@container (width<=10rem){.week-event-source{display:none}}@container (width<=6.75rem){.week-event-end{display:none}}.week-event:hover{background:color-mix(in oklch, var(--event-color) 30%, var(--color-surface))}.week-event.available{--event-color:var(--color-success)}.week-event.class-lesson{box-shadow:3px 3px 0 -1px var(--color-surface), 3px 3px 0 0 color-mix(in oklch, var(--event-color) 55%, transparent)}.week-event.class-lesson.cancelled{box-shadow:none}.week-event.cancelled{z-index:1;border-color:var(--color-border);background:var(--color-surface-raised);color:var(--color-text-muted);opacity:.75;text-decoration:line-through}.week-event.personal{--event-color:var(--category-settings);z-index:1;background:color-mix(in oklch, var(--event-color) 9%, var(--color-surface));color:var(--color-text-soft);cursor:default;pointer-events:none;border-style:dashed;left:2px;right:2px}.week-event.personal.free{opacity:.65}.week-allday{box-sizing:border-box;width:100%;max-width:100%;padding:2px var(--space-2);border:1px dashed color-mix(in oklch, var(--category-settings) 55%, transparent);border-radius:var(--radius-xs);color:var(--color-text-soft);font-size:var(--text-xs);text-align:center;text-overflow:ellipsis;white-space:nowrap;line-height:1.4;display:block;overflow:hidden}.lesson-card.personal-card{opacity:.9;border-style:dashed}.schedule-personal{border-color:color-mix(in oklch, var(--category-settings) 55%, transparent);background:color-mix(in oklch, var(--category-settings) 10%, transparent);color:var(--color-text-soft)}.week-list{margin-top:var(--space-5)}.week-list:not(.agenda-view){display:none}.week-list>summary,.calendar-settings>summary{padding:var(--space-2) 0;color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer}.week-list[open] .learning-grid{margin-top:var(--space-4)}#calendar-event-dialog[open]{flex-direction:column;display:flex}#calendar-event-dialog .learning-card{padding:0 0 var(--space-4);background:0 0;border:0}#calendar-event-details .lesson-card h3{font-size:var(--text-2xl)}#calendar-event-details .lesson-card h3:focus{outline:none}#calendar-event-close{order:-1;align-self:flex-end}@media (width>=1024px){#calendar-event-dialog.is-panel[open]{z-index:var(--z-nav);width:var(--lesson-panel);max-width:none;height:100dvh;max-height:none;padding:var(--space-5) var(--space-6) var(--space-7);overscroll-behavior:contain;box-shadow:var(--shadow-overlay);border-width:0 0 0 1px;border-radius:0;margin:0;position:fixed;inset:0 0 0 auto;overflow-y:auto}.portal-shell:has(#calendar-event-dialog.is-panel[open])>.portal-main{padding-right:calc(var(--lesson-panel) + var(--space-5))}.portal-shell:has(#calendar-event-dialog.is-panel[open]) .week-calendar{grid-template-columns:56px repeat(7,minmax(0,1fr));min-width:0}}:root{--lesson-panel:min(25rem, 36vw)}.week-strip,.week-day-caption{display:none}[data-calendar-mode=day] .week-strip{gap:var(--space-1);margin:0 0 var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}[data-calendar-mode=day] .week-day-caption{margin:0 0 var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);display:block}.week-strip-day{min-width:0;min-height:64px;padding:var(--space-2) 0 var(--space-1);border-radius:var(--radius-sm);color:var(--color-text-muted);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);background:0 0;border:1px solid #0000;justify-items:center;gap:2px;display:grid}.week-strip-day:hover{background:var(--color-surface-hover)}.week-strip-day strong{color:var(--color-text);font-size:var(--text-lg);font-variant-numeric:tabular-nums;font-weight:650;line-height:1.1}.week-strip-day.today strong{color:var(--color-highlight-strong)}.week-strip-day[aria-pressed=true]{border-color:var(--edge-highlight);background:var(--tint-highlight-strong);color:var(--color-highlight-strong)}.week-strip-dots{gap:3px;height:6px;display:flex}.week-strip-dots i{background:var(--color-highlight);border-radius:50%;width:5px;height:5px}.week-calendar[data-mode=day]{grid-template-rows:1440px;grid-template-columns:56px minmax(0,1fr);min-width:0}.week-calendar[data-mode=day]>:is(.week-corner,.week-day-heading){display:none}.week-nav svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}[data-calendar-mode=day] #calendar-list{display:none}.lesson-primary-actions{margin:var(--space-4) 0 var(--space-3)}.lesson-members{color:var(--color-text-soft)}.lesson-registers>summary{padding:var(--space-2) 0;color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer}.lesson-registers[open] .learning-actions{margin:var(--space-2) 0 var(--space-3)}.lesson-more-actions>summary{padding:var(--space-2) 0;color:var(--color-text-muted);font-size:var(--text-sm)}.lesson-more-actions[open] .learning-actions{margin-top:var(--space-3)}.calendar-mobile-help{display:none}.attendance-badges{gap:var(--space-2);margin:var(--space-2) 0;flex-wrap:wrap;display:flex}.attendance-badges[hidden]{display:none}.attendance-control{align-items:center;gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap;display:flex}.attendance-note{flex:10rem;min-width:10rem}.attendance-makeup{flex:none}.attendance-saved{flex:1 0 100%;margin:0}.attendance-saved.error{color:var(--color-danger-soft)}.attendance-zoom{flex:1 0 100%;margin:0}.attendance-status>button.is-proposed{box-shadow:inset 0 0 0 1px var(--edge-highlight);color:var(--color-highlight-strong)}.attendance-list{gap:var(--space-3);margin:var(--space-3) 0;flex-direction:column;display:flex}.attendance-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.attendance-row-name{font-weight:var(--weight-semibold);flex:none}.event-delete-actions{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.delete-event-scope legend{margin-bottom:var(--space-3)}.portal-form .delete-event-option{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);cursor:pointer;flex-direction:row;display:flex}.portal-form .delete-event-option input{accent-color:var(--color-highlight);margin-top:2px}.delete-event-option:has(input:checked){border-color:var(--color-highlight);background:var(--tint-highlight)}.delete-event-option small{margin-top:var(--space-1);color:var(--color-text-muted);display:block}#delete-event-summary{color:var(--color-text)}#delete-event-warning{color:var(--color-text-muted);font-size:var(--text-sm)}#delete-event-dialog .learning-actions{justify-content:flex-end}@media (width<=850px){.week-toolbar{align-items:flex-start;gap:var(--space-3);flex-direction:column}.week-scroll{max-height:620px}.calendar-mobile-help:not([hidden]){margin-bottom:var(--space-3);color:var(--color-text-muted);font-size:var(--text-xs);display:block}}@media (width<=639px){.portal-shell[data-nav] #agenda-panel{padding:0 0 calc(76px + var(--space-7) + env(safe-area-inset-bottom));background:0 0;border:0;margin-top:0}.portal-shell[data-nav] .week-scroll{max-height:min(620px,100dvh - 12rem)}.portal-shell[data-nav] #agenda-title{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.portal-shell[data-nav] #agenda-panel>.portal-heading{margin-bottom:var(--space-2)}.portal-shell[data-nav] #agenda-teacher-actions{gap:var(--space-2);flex:100%;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.portal-shell[data-nav] #agenda-teacher-actions .portal-button{padding-inline:var(--space-3)}.calendar-invite{gap:var(--space-2);padding:var(--space-3)}.calendar-invite svg{display:none}#calendar-invite-text{font-size:var(--text-sm);flex-basis:100%}.calendar-views{flex:100%;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.portal-shell[data-nav] .week-toolbar{align-items:center;gap:var(--space-2);flex-flow:row}.portal-shell[data-nav] .week-toolbar>div:first-child{flex:1;min-width:0}.portal-shell[data-nav] .week-toolbar .learning-actions{gap:var(--space-1);flex-wrap:nowrap}.portal-shell[data-nav] .week-nav{width:var(--control-height);padding:0}.portal-shell[data-nav] .week-nav-label{display:none}.agenda-controls{gap:var(--space-3);margin:var(--space-3) 0}.agenda-controls label{flex:140px}}@media (width<=570px){#agenda-panel{margin-top:var(--space-4);padding:var(--space-4) var(--space-3)}#agenda-panel>.portal-heading{gap:var(--space-3)}.week-toolbar{margin:var(--space-4) 0 var(--space-3)}.week-toolbar h3{font-size:var(--text-lg)}}.room-picker{gap:var(--space-3);min-width:0;display:grid}.room-picker legend{margin-bottom:var(--space-2)}.room-options{gap:var(--space-2);display:grid}.room-option,.portal-form .room-option{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);cursor:pointer;flex-direction:row;display:flex}.room-option input,.portal-form .room-option input{accent-color:var(--color-highlight);margin-top:2px}.room-option:has(input:checked){border-color:var(--color-highlight);background:var(--tint-highlight)}.room-option:has(input:disabled){cursor:default;border-style:dashed}.room-option-title{color:var(--color-text);font-weight:var(--weight-semibold);display:block}.room-option small{margin-top:var(--space-1);color:var(--color-text-muted);display:block}.room-warning{padding-left:var(--space-3);border-left:3px solid var(--color-warning);color:var(--color-text-soft);font-size:var(--text-sm);margin:0}.room-dates{gap:var(--space-2);display:grid}.room-date,.portal-form .room-date{align-items:center;gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);display:grid}@media (width<=639px){.room-date,.portal-form .room-date{gap:var(--space-1);grid-template-columns:minmax(0,1fr)}}.learning-capacity{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-6);border:1px solid color-mix(in oklch, var(--color-highlight) 30%, transparent);border-radius:var(--radius-lg);background:color-mix(in oklch, var(--color-highlight) 8%, var(--color-surface));display:flex}.learning-capacity strong{margin:0 var(--space-3);color:var(--color-highlight-strong);font-family:var(--font-display);font-size:var(--text-display);font-weight:var(--weight-display);font-variant-numeric:tabular-nums;line-height:1}.learning-capacity span,.learning-capacity p{font-size:var(--text-sm)}#student-list{gap:var(--space-3);grid-template-columns:1fr}#student-list .learning-card{align-items:center;column-gap:var(--space-5);row-gap:var(--space-2);padding:var(--space-5) var(--space-6);grid-template-columns:minmax(140px,1fr) minmax(150px,1fr) auto;display:grid}#student-list h3{grid-column:1}#student-list .learning-card>p{overflow-wrap:anywhere;min-width:0;margin:0}#student-list .learning-card>p:first-of-type{color:var(--color-text-muted);grid-area:2/1}#student-list .learning-card>p:nth-of-type(2){grid-area:1/2}#student-list .learning-card>p:nth-of-type(3){grid-area:2/2}#student-list .learning-actions{grid-area:1/3/span 2;justify-content:flex-end;align-items:center}#student-list .student-remove{min-height:var(--control-height);margin-left:var(--space-2)}.class-heading{justify-content:space-between;align-items:start;gap:var(--space-4);margin-bottom:var(--space-4);flex-flow:wrap}.class-heading h2{margin-bottom:var(--space-2)}.class-heading p{margin:0}#classes-empty{max-width:none}#class-list{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr))}.class-card{flex-direction:column;display:flex}.class-card .learning-actions{margin-top:auto}.class-members{border:0;margin:0;padding:0}.class-members legend{margin-bottom:var(--space-3);color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-medium)}.class-member-list{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));max-height:min(42dvh,360px);padding:2px;display:grid;overflow-y:auto}.portal-form .class-member{align-items:center;gap:var(--space-3);min-height:var(--control-height);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);overflow-wrap:anywhere;cursor:pointer;flex-direction:row}.class-member:has(input:checked){border-color:var(--color-highlight);background:var(--tint-highlight)}.class-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.class-actions #class-save{margin-left:auto}#student-new-fields{gap:var(--space-4);margin:0}#credentials-password{letter-spacing:.04em;font-family:ui-monospace,SF Mono,Menlo,monospace}@media (width<=1100px){#student-list .learning-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}#student-list .learning-actions{margin-top:var(--space-2);grid-area:3/1/auto/-1;justify-content:flex-start}}@media (width<=650px){.learning-capacity{padding:var(--space-5);flex-direction:column;align-items:flex-start}}@media (width<=570px){#student-list .learning-card{padding:var(--space-5)}#student-list .learning-card>p:nth-of-type(2){margin-top:var(--space-2);grid-area:3/1/auto/-1}#student-list .learning-card>p:nth-of-type(3){text-align:right;grid-area:1/2/span 2}#student-list .learning-actions{flex-wrap:wrap;grid-row:4}}.learning-settings{max-width:35rem;margin-top:var(--space-6)}.portal-form .learning-check{align-items:center;gap:var(--space-3);color:var(--color-text);font-size:var(--text-md);flex-direction:row}.settings-heading{margin:var(--space-6) 0 var(--space-2);font-family:var(--font-ui);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight)}.learning-section>h2+.settings-heading{margin-top:0}.push-actions{gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}#push-devices{margin-top:var(--space-3)}.settings-subsection{margin-top:var(--space-7);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.settings-subsection h3{font-family:var(--font-display);font-size:var(--text-xl)}.settings-subsection .learning-settings{margin-top:var(--space-4)}#absence-preview:empty{display:none}#absences-empty{margin-top:var(--space-5)}.calendar-connection{align-items:start;gap:var(--space-6);grid-template-columns:minmax(0,1fr) auto;display:grid}.calendar-connection h2{margin:var(--space-2) 0 var(--space-4)}.calendar-connection .eyebrow{margin:0}.calendar-connection p:not(.eyebrow){max-width:37.5rem}.calendar-connection .portal-help{margin-top:var(--space-3)}#calendar-link-box{gap:var(--space-3);min-width:0;max-width:20rem;margin-top:var(--space-6);display:grid}.calendar-settings label{gap:var(--space-2);margin:var(--space-3) 0;display:grid}.account-settings .portal-form{max-width:30rem}.account-settings .portal-account{margin-bottom:var(--space-5);justify-content:space-between}.app-release{margin:var(--space-7) 0 0;color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.portal-teacher{max-width:46rem}.portal-teacher-card{margin:var(--space-7) 0 var(--space-5);padding:var(--space-7);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.portal-teacher-card h2{margin:var(--space-5) 0}.portal-teacher-card p{font-size:var(--text-sm)}#teacher-dashboard{max-width:none;margin-bottom:var(--space-8)}#teacher-dashboard .portal-teacher-card{margin:var(--space-4) 0;padding:var(--space-5)}#teacher-dashboard>.eyebrow,#teacher-dashboard .portal-teacher-card>a,#teacher-dashboard.compact{display:none}@media (width<=1100px){.calendar-connection{grid-template-columns:1fr}#calendar-link-box{max-width:100%}}@media (width<=570px){.portal-teacher-card{padding:var(--space-6)}}.notation-sample{gap:var(--space-4);max-width:30rem;margin-top:var(--space-5);padding:var(--space-5) var(--space-6);flex-wrap:wrap;display:flex}.notation-sample .chord-symbol{padding-left:var(--space-3);border-left:1.5px solid var(--score-line);font-size:1.75rem;line-height:1.2}.account-settings.is-grouped [data-settings]:not(.is-current){display:none}@media (width<=1023px){.account-settings.is-grouped:not(.is-open)>.settings-pane,.account-settings.is-grouped.is-open>.settings-index{display:none}}.account-settings.is-grouped [data-settings].learning-section{margin-top:0}.account-settings .settings-back:not([hidden]){min-height:var(--control-height);margin:0 0 var(--space-3) calc(-1 * var(--space-2));padding:0 var(--space-3) 0 var(--space-1);color:var(--color-link);font-size:var(--text-md);background:0 0;border:0;align-items:center;gap:2px;font-weight:560;display:inline-flex}.settings-back svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}@media (width<=1023px){#learning-panel:has(~.account-settings.is-open:not([hidden]))>:is(#tools-back,.portal-heading){display:none}.portal-shell[data-nav] #learning-panel:has(~.account-settings.is-open:not([hidden])){padding-top:var(--space-4)}}.settings-index .list:first-child .settings-profile{min-height:72px}.settings-avatar{background:color-mix(in oklch, var(--category-register) 22%, var(--color-surface));width:48px;height:48px;color:var(--color-text);font-size:var(--text-md);border-radius:50%;flex:none;place-items:center;font-weight:650;display:grid}.settings-row{min-height:52px}.settings-row .row-title{white-space:normal}.settings-row .row-value{max-width:45%;color:var(--color-text-muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;flex:none;overflow:hidden}.settings-chevron{fill:none;width:16px;height:16px;stroke:var(--color-text-muted);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none}.settings-row.is-todo .row-title:before{content:"";width:8px;height:8px;margin:0 var(--space-2) 1px 0;background:var(--color-mark);vertical-align:middle;border-radius:50%;display:inline-block}.settings-row.is-danger .row-title{color:var(--color-danger-soft)}.settings-theme{padding-block:var(--space-1);justify-content:space-between}.settings-index-end{gap:var(--space-3);margin-top:var(--space-7);display:grid}.settings-index-end .help,.settings-release{text-align:center;margin:0}.settings-release{color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.account-settings.is-grouped .settings-pane>.app-release{margin-top:var(--space-5)}.account-settings .portal-account:not([hidden]){align-items:center;gap:var(--space-4);margin-bottom:var(--space-3);display:flex}.settings-person{flex:1;min-width:0}.settings-person strong,.settings-person span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.settings-person strong{color:var(--color-text);font-size:var(--text-md)}.settings-person span{color:var(--color-text-muted);font-size:var(--text-sm)}.learning-section .settings-shared{margin:0 0 var(--space-5)}.danger-zone{margin-top:var(--space-7);padding:var(--space-5);border:1px solid color-mix(in oklch, var(--color-danger) 45%, transparent);border-radius:var(--radius-md);background:color-mix(in oklch, var(--color-danger) 6%, var(--color-surface))}.danger-zone h3{margin:0 0 var(--space-2);color:var(--color-danger-soft);font-family:var(--font-ui);font-size:var(--text-md)}.danger-zone p{margin:0 0 var(--space-4)}.delete-facts{gap:var(--space-2);margin:0 0 var(--space-2);padding-left:var(--space-5);color:var(--color-text-soft);font-size:var(--text-sm);line-height:var(--leading-normal);display:grid}.delete-facts.is-gone ::marker{color:var(--color-danger-soft)}#delete-account:not([data-role=teacher]) [data-for=teacher],#delete-account:not([data-role=student]) [data-for=student],#delete-account:not([data-role=manager]) [data-for=manager]{display:none}#delete-account-status.error{color:var(--color-danger-soft)}@media (width>=1024px){.account-settings.is-grouped:not([hidden]){gap:var(--space-7);grid-template-columns:15rem minmax(0,1fr);align-items:start;display:grid}.settings-index{top:calc(64px + var(--space-4));position:sticky}.settings-index .group-head{margin:var(--space-5) var(--space-3) var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm)}.settings-index .list{background:0 0;border:0}.settings-index .row+.row{border-top:0}.settings-index .settings-row{min-height:40px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm)}.settings-index .settings-row .row-title{font-size:var(--text-sm);font-weight:var(--weight-medium)}.settings-index .settings-row[aria-current] .row-title{color:var(--color-highlight-strong);font-weight:var(--weight-semibold)}.settings-index .row-value,.settings-index .settings-chevron,.settings-index-end{display:none}.settings-index .list:has(.settings-profile){display:none}.settings-index .list:has(.settings-profile)+.group-head{margin-top:0}}.onboarding{width:100%;max-width:100%;height:100%;max-height:100%;padding:calc(env(safe-area-inset-top) + var(--space-2)) var(--space-5) calc(env(safe-area-inset-bottom) + var(--space-5));background:var(--color-bg);color:var(--color-text);border:0;margin:0}.onboarding[open]{flex-direction:column;display:flex}.onboarding::backdrop{background:var(--color-backdrop)}.onboarding-top{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:56px;display:flex}.onboarding-count{color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin:0}.onboarding-layout{padding-bottom:var(--space-7);flex:1;align-content:center;justify-items:center;display:grid}.onboarding-aside{display:none}.onboarding-body{gap:var(--space-4);width:min(100%,27rem);display:grid}.onboarding-body h2{font-family:var(--font-display);font-size:var(--text-3xl);margin:0;line-height:1.1}.onboarding-body h2:focus{outline:none}.onboarding-body>p{color:var(--color-text-soft);line-height:var(--leading-normal);margin:0}.onboarding-halo{border:1px solid var(--edge-invite);border-radius:var(--radius-md);background:var(--tint-icon);width:56px;height:56px;color:var(--color-icon);place-items:center;display:grid}.onboarding-halo svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px}.onboarding-theme{justify-self:start}.onboarding-form{max-width:none}.onboarding-actions{gap:var(--space-3);margin-top:var(--space-3);display:grid}@media (width>=1024px){.onboarding{width:min(56rem,92vw);height:auto;max-height:min(44rem,92vh);padding:var(--space-5) var(--space-7) var(--space-7);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-overlay);margin:auto}.onboarding-layout{align-content:start;place-items:start stretch;gap:var(--space-8);grid-template-columns:14rem minmax(0,1fr);padding-bottom:0}.onboarding-aside{display:block}.onboarding-actions{grid-auto-flow:column;justify-content:start}}.onboarding-steps{gap:var(--space-2);margin:var(--space-3) 0 0;padding-left:var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm);display:grid}.onboarding-steps [aria-current]{color:var(--color-highlight-strong);font-weight:var(--weight-semibold)}.onboarding-steps [data-state=done]{color:var(--color-text)}.setting-invite:not([hidden]){gap:var(--space-3) var(--space-4);margin:0 0 var(--space-6);padding:var(--space-5);border:1px solid var(--edge-invite);border-radius:var(--radius-lg);background:var(--color-invite);grid-template-columns:auto minmax(0,1fr);display:grid}.setting-invite .onboarding-halo{width:48px;height:48px}.setting-invite .onboarding-halo svg{width:24px;height:24px}.setting-invite-text h2{margin:0 0 var(--space-1);font-family:var(--font-ui);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.setting-invite-text p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.setting-invite-actions{align-items:center;gap:var(--space-2) var(--space-5);flex-wrap:wrap;grid-column:1/-1;display:flex}.setting-invite>.notice{grid-column:1/-1;margin:0}.setting-invite>.help{font-size:var(--text-xs);grid-column:1/-1;margin:0}.install-steps{gap:var(--space-3);margin:var(--space-4) 0;padding-left:var(--space-6);line-height:var(--leading-normal);display:grid}.install-steps[hidden]{display:none}.install-link{gap:var(--space-2);display:flex}.install-link input{flex:1;min-width:0}.install-dialog .notice{margin-top:var(--space-4)}.admin-nav{justify-content:space-between;align-items:center;gap:var(--space-4);margin:var(--space-4) 0 var(--space-3);flex-wrap:wrap;display:flex}.admin-nav .segmented{flex-wrap:wrap;max-width:100%}body[data-page=admin] .rep-hero{display:none}.admin-section{margin-top:var(--space-4)}.admin-kpis,.admin-sums{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));display:grid}.admin-sums{padding:0 var(--space-6) var(--space-6)}.admin-kpi{gap:var(--space-2);min-width:0;padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;display:flex}.admin-kpi.is-warning{border-color:color-mix(in oklch, var(--color-highlight) 55%, transparent);background:var(--tint-highlight)}.admin-kpi span{color:var(--color-text-soft);font-size:var(--text-sm)}.admin-kpi strong{color:var(--color-text);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-display);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.1}.admin-kpi small{color:var(--color-text-muted);font-size:var(--text-xs);line-height:var(--leading-normal)}.admin-columns{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-columns .learning-section{margin-top:var(--space-5)}.admin-weeks{table-layout:auto}.admin-weeks th:first-child,.admin-weeks th:last-child{width:auto}.admin-weeks td,.admin-weeks th{padding:var(--space-2) var(--space-3)}.portal-table.admin-weeks td:last-child{text-align:left}.admin-bar{width:calc(var(--share,0) * 6rem);min-width:2px;height:.5rem;margin-right:var(--space-2);border-radius:var(--radius-xs);background:var(--color-highlight);display:inline-block}.admin-coupon-line{gap:var(--space-1);margin:0 0 var(--space-3);display:grid}.admin-coupon-line span{color:var(--color-text-muted);font-size:var(--text-sm)}.admin-table td .tag+.tag{margin-left:var(--space-2)}.admin-table td>span:not(.tag){margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs);display:block}.admin-pages{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.admin-pages span{color:var(--color-text-muted);font-size:var(--text-sm);margin-right:auto}.admin-user-dialog{--dialog-width:44rem}.admin-user-dialog h2{margin:var(--space-2) 0;overflow-wrap:anywhere}.admin-detail-section{margin-top:var(--space-5)}.admin-detail-section h3{margin:0 0 var(--space-3);font-size:var(--text-md)}.admin-detail-line{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);margin:0 0 var(--space-2);font-size:var(--text-sm);overflow-wrap:anywhere;flex-wrap:wrap;display:flex}.admin-gift{align-items:end;gap:var(--space-3);width:100%;margin-top:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));display:grid}.admin-coupon-form{gap:var(--space-3);max-width:32rem;display:grid}.admin-coupon-form h2{margin:0}.portal-roster{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.portal-roster-heading{justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-6) var(--space-6) 0;display:flex}.portal-roster-heading p{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.portal-filters{gap:var(--space-4);padding:var(--space-6);display:flex}.portal-filters label:first-child{flex:1}.portal-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);text-align:left;table-layout:fixed}.portal-table th{padding:var(--space-3) var(--space-6);border-block:1px solid var(--color-border);background:color-mix(in oklch, var(--color-surface-raised) 50%, transparent);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.portal-table th:first-child{width:36%}.portal-table th:last-child{width:150px}.portal-table td{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);overflow-wrap:anywhere}.portal-table tr:last-child td{border-bottom:0}.portal-table td:first-child strong{color:var(--color-text);display:block}.portal-table td:first-child>span{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs);display:block}.portal-table td:last-child{text-align:right}.portal-table.table-auto{table-layout:auto}.portal-table.table-auto th:first-child,.portal-table.table-auto th:last-child{width:auto}.portal-table.table-auto td:last-child button{white-space:nowrap}@media (width<=1150px){.portal-table th,.portal-table td{padding:var(--space-4) var(--space-3)}}@media (width<=760px){.admin-columns{grid-template-columns:minmax(0,1fr)}}@media (width<=570px){.portal-roster-heading{padding:var(--space-5) var(--space-4) 0;flex-wrap:wrap}.portal-filters{padding:var(--space-5) var(--space-4);flex-direction:column}.portal-table,.portal-table tbody,.portal-table tr,.portal-table td{width:100%;display:block}.portal-table thead{display:none}.portal-table tr{padding:var(--space-5) var(--space-4);border-top:1px solid var(--color-border)}.portal-table td{padding:var(--space-2) 0;border:0}.portal-table td[data-label]:not(:first-child){align-items:center;gap:var(--space-3);display:flex}.portal-table td[data-label]:not(:first-child):before{content:attr(data-label);color:var(--color-text-muted);font-size:var(--text-xs);margin-right:auto}.portal-table td:last-child{text-align:left}.portal-table td:last-child button{width:100%}}.repertoire button:disabled,.rep-dialog button:disabled{opacity:.5;cursor:not-allowed}.rep-hero{padding:var(--space-5) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.rep-hero>div:first-child{align-items:center;column-gap:var(--space-3);row-gap:var(--space-1);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.rep-hero .rep-kicker{display:none}.rep-hero h2{font-size:var(--text-xl);grid-area:1/1;margin:0}.rep-hero p{color:var(--color-text-muted);font-size:var(--text-sm);grid-area:2/1;margin:0}.rep-hero>div:first-child>button{grid-row:1/span 2}.rep-hero>div:first-child>.rep-button.ghost{order:-1}.rep-library-tools{justify-content:space-between;align-items:center;gap:var(--space-5);margin:var(--space-7) 0 var(--space-6);display:flex}.rep-search{align-items:center;gap:var(--space-2);min-width:200px;max-width:380px;padding:0 var(--space-3);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);background:var(--color-field);transition:border-color var(--duration-fast) var(--ease-standard);flex:1;display:flex}.rep-search:hover{border-color:var(--color-border-hover)}.rep-search:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 3px var(--tint-highlight)}.rep-search svg{fill:none;width:18px;height:18px;stroke:var(--color-text-muted);stroke-width:1.6px;flex:0 0 18px}.rep-search input{width:100%;min-width:0;box-shadow:none;background:0 0;border:0;padding-inline:0}.rep-search input:focus-visible{box-shadow:none}.rep-list-heading{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.rep-list-heading h3{font-family:var(--font-ui);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight)}.rep-list-heading span{color:var(--color-text-muted);font-size:var(--text-sm)}.rep-cards{gap:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.rep-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-width:0;transition:border-color var(--duration-base) var(--ease-standard);overflow:hidden}.rep-card:hover{border-color:var(--color-border-strong)}.rep-card-open{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.rep-card-preview{min-height:100px;padding:var(--space-6) var(--space-4);background:var(--score-paper-edge);color:var(--score-ink);transition:background-color var(--duration-base) var(--ease-standard);grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;display:grid}.rep-card-open:hover .rep-card-preview{background:var(--score-paper)}.rep-card-preview span{padding:var(--space-2) var(--space-1) var(--space-2) var(--space-2);border-left:1.5px solid var(--score-line);font-family:var(--score-font-chord);text-overflow:ellipsis;white-space:nowrap;font-size:1.375rem;line-height:1.1;overflow:hidden}.rep-card-body{padding:var(--space-5)}.rep-card-body h4{margin:0 0 var(--space-1);font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);overflow-wrap:anywhere}.rep-card-body p{margin:0 0 var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.rep-card-meta{align-items:center;gap:var(--space-2);color:var(--color-text-soft);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.rep-card-meta span{min-height:1.5rem;padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-xs);align-items:center;display:inline-flex}.rep-card-credit{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-xs);overflow-wrap:anywhere;display:flex}.rep-avatar{background:var(--tint-highlight);width:24px;height:24px;color:var(--color-highlight-strong);font-size:var(--text-xs);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.rep-empty{border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg)}.rep-empty-symbol{color:var(--color-highlight);font-size:3rem;line-height:1}.rep-more{margin:var(--space-7) auto;display:flex}.rep-loading{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-9);color:var(--color-text-muted);font-size:var(--text-sm);display:flex}.rep-loading span{border:2px solid var(--color-border-strong);border-top-color:var(--color-highlight);border-radius:50%;width:16px;height:16px;animation:1s linear infinite rep-spin}@keyframes rep-spin{to{transform:rotate(360deg)}}.rep-editor-toolbar{z-index:4;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);padding:var(--space-3) 0;background:var(--color-bg);flex-wrap:wrap;display:flex;position:sticky;top:0}#rep-save-state{color:var(--color-text-muted);font-size:var(--text-sm);margin-right:auto}.rep-editor-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.rep-editor-layout{align-items:start;gap:var(--space-6);grid-template-columns:235px minmax(0,1fr);display:grid}#rep-editor>.rep-editor-layout{max-width:980px;margin:0 auto;display:block}#rep-editor>.rep-editor-layout.readonly{max-width:850px}.rep-editor-layout.readonly{grid-template-columns:1fr;max-width:850px;margin:auto}.rep-settings{gap:var(--space-4);padding:var(--space-5) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.rep-settings label,.rep-dialog label{gap:var(--space-2);flex-direction:column;display:flex}.rep-fields{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.rep-sheet-wrap{min-width:0}.rep-sheet-tools{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.rep-sheet-tools p{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.rep-sheet-tools>div{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.rep-structure-list{gap:var(--space-2);display:grid}.rep-structure-row{align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);grid-template-columns:minmax(0,1fr) 44px 44px;display:grid}.rep-structure-name{gap:var(--space-1);padding:var(--space-2);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:grid}.rep-structure-name small{color:var(--color-text-muted);font-size:var(--text-xs)}.rep-section-presets,.rep-structure-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.rep-section-presets button{min-height:var(--control-height-sm);padding:0 var(--space-3);border:1px solid var(--color-border-control);border-radius:var(--radius-full);color:var(--color-text-soft);font:inherit;font-size:var(--text-sm);background:0 0}.rep-structure-actions{margin:var(--space-4) 0}.rep-structure-actions .rep-button{flex:1;min-width:130px}.rep-sheet{min-height:480px;padding:var(--space-7) clamp(16px, 3vw, 40px) var(--space-5);border-radius:var(--radius-md);background:var(--score-paper);box-shadow:var(--shadow-paper);color:var(--score-ink)}.rep-sheet header{margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid color-mix(in oklch, var(--score-line) 20%, transparent);text-align:center}.rep-sheet header>span{color:var(--score-muted);font-size:var(--text-xs)}.rep-sheet h2{margin:var(--space-4) 0 var(--space-1);color:var(--score-ink);font-family:var(--score-font-text), var(--font-display);letter-spacing:0;overflow-wrap:anywhere;font-size:clamp(1.75rem,3.2vw,2.75rem);font-weight:400;line-height:1.15}.rep-sheet header p{margin:var(--space-1) 0;color:var(--score-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.rep-sheet #rep-credit{font-size:var(--text-xs)}.rep-sheet:not(.editing) .rep-sheet-edit,.rep-sheet.editing .rep-sheet-static{display:none}.rep-sheet-fields{justify-content:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.rep-sheet-fields label{align-items:center;gap:var(--space-2);color:var(--score-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);display:flex}.rep-sheet.editing :is(input,select,textarea){border:1px dashed color-mix(in oklch, var(--score-line) 35%, transparent);border-radius:var(--radius-xs);min-width:0;color:var(--score-ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-color:#0000}.rep-sheet.editing select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23312f36' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E")}.rep-sheet.editing :is(input,select,textarea):hover{border-color:color-mix(in oklch, var(--score-line) 60%, transparent)}.rep-sheet.editing :is(input,select,textarea):focus-visible{outline:2px solid var(--score-accent);outline-offset:1px;box-shadow:none;border-color:#0000}.rep-sheet-fields select,.rep-sheet-fields input{min-height:var(--control-height-sm);padding:0 var(--space-2)}.rep-sheet-fields select{background-position:right .5rem center;padding-right:2rem}.rep-sheet-fields option{background:var(--color-bg);color:var(--color-text)}.rep-sheet-bpm input{width:5rem}.rep-sheet.editing #rep-title{width:100%;min-height:52px;padding:var(--space-1) var(--space-3);font:inherit;text-align:center;line-height:1.15;display:block}.rep-sheet.editing #rep-artist{width:min(420px,100%);min-height:var(--control-height-sm);margin:2px auto var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-md);text-align:center;display:block}.rep-sheet.editing :is(input,textarea)::placeholder{color:var(--score-muted)}.rep-sheet-notes-field{gap:var(--space-2);margin:var(--space-6) 0;color:var(--score-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);display:grid}.rep-sheet.editing .rep-sheet-notes-field textarea{width:100%;min-height:60px;padding:var(--space-2) var(--space-3);line-height:var(--leading-normal);resize:vertical}.rep-section{margin-bottom:var(--space-6)}.rep-section-heading{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.rep-section-heading h3{align-items:center;gap:var(--space-2);color:var(--score-ink);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:0;margin:0;display:flex}.rep-section-heading h3 span{padding:2px var(--space-2);border:1.5px solid var(--score-ink);font-family:var(--score-font-text), var(--font-display);font-size:var(--text-lg);border-radius:3px;font-weight:400}.rep-section-heading button,.rep-sheet .rep-bar-add{min-height:var(--control-height-sm);padding:0 var(--space-2);border-radius:var(--radius-xs);color:var(--score-muted);font:inherit;font-size:var(--text-sm);background:0 0;border:0}@media (pointer:coarse){.rep-section-heading button,.rep-sheet .rep-bar-add{min-height:var(--control-height)}}.rep-section-heading button:hover,.rep-sheet .rep-bar-add:hover{background:color-mix(in oklch, var(--score-ink) 6%, transparent);color:var(--score-ink)}.rep-bars{row-gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.rep-bar{min-width:0;min-height:76px;padding:19px var(--space-2) var(--space-3);border:0;border-left:1.5px solid var(--score-line);color:var(--score-ink);text-align:left;background:0 0;border-radius:0;align-items:center;gap:5px;display:grid;position:relative;container-type:inline-size}button.rep-bar{cursor:pointer}button.rep-bar:hover{background:var(--score-accent-tint)}.rep-bar:focus-visible{outline:2px solid var(--score-accent);outline-offset:-2px}.rep-bar small{top:3px;left:var(--space-2);color:var(--score-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;position:absolute}.rep-bar span,.rep-bar.multi span{min-width:0;font-family:var(--score-font-chord);font-size:clamp(10px, calc(var(--chord-scale,40) * 1cqw), 28px);white-space:nowrap;font-weight:400;line-height:1.2}.rep-bar .rep-rest{color:var(--score-muted);font-size:var(--text-xl);grid-column:1/-1}.rep-bar.review:after{content:"";top:var(--space-1);right:var(--space-2);background:var(--score-accent);border-radius:50%;width:6px;height:6px;position:absolute}.rep-bar.repeat-start{padding-left:calc(var(--space-2) + 7px);border-left:4px double var(--score-ink)}.rep-bar.repeat-start:before,.rep-bar.repeat-end:after{content:"";background:radial-gradient(circle, var(--score-ink) 1.4px, transparent 1.6px) 0 0 / 3px 5.5px repeat-y;width:3px;height:11px;position:absolute;top:50%;translate:0 -50%}.rep-bar.repeat-start:before{left:3px}.rep-bar.repeat-end{border-right:4px double var(--score-ink)}.rep-bar.repeat-end:after{right:3px}.rep-bar.double{border-right:3px double var(--score-ink)}.rep-bar.final{border-right:5px double var(--score-ink)}.rep-bar .rep-bar-meter{bottom:3px;left:var(--space-2);color:var(--score-ink);font:italic var(--weight-semibold) var(--text-xs) / 1 var(--font-ui);font-variant-numeric:tabular-nums;position:absolute}.rep-bar .rep-ending{top:1px;left:1.6em;right:var(--space-1);border-top:1.5px solid var(--score-ink);border-left:1.5px solid var(--score-ink);height:12px;color:var(--score-ink);font:normal var(--weight-semibold) var(--text-xs) / 1.1 var(--font-ui);padding-left:3px;position:absolute}.rep-bar .rep-bar-marks{top:1px;right:var(--space-1);max-width:85%;color:var(--score-ink);font:italic var(--weight-regular) var(--text-xs) / 1.2 var(--score-font-text);align-items:center;gap:4px;display:flex;position:absolute}.rep-bar .rep-bar-marks em{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-style:italic;overflow:hidden}.rep-bar .rep-bar-marks b,.rep-bar .rep-simile{font-family:var(--score-font-music);font-style:normal;font-weight:400}.rep-bar .rep-bar-marks b{flex-shrink:0;font-size:18px;line-height:1}.rep-bar .rep-times{right:var(--space-2);color:var(--score-ink);font:normal var(--weight-semibold) var(--text-xs) / 1 var(--font-ui);position:absolute;bottom:3px}.rep-bar span.rep-simile{grid-column:1/-1;justify-self:center;font-size:28px;line-height:1}.rep-bar.has-alt{grid-template-rows:auto auto}.rep-bar.has-alt>span{grid-row:2}.rep-bar.has-alt>span.rep-alt{color:var(--score-muted);grid-row:1;font-size:clamp(9px,7cqw,15px)}.rep-bar.playing{border-left-color:var(--score-accent);background:var(--score-playhead);color:var(--score-ink)}.rep-sheet-notes{margin:var(--space-6) 0;font-size:var(--text-sm);line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere}.rep-sheet footer{justify-content:space-between;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid color-mix(in oklch, var(--score-line) 20%, transparent);color:var(--score-muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.rep-add-section{width:100%;min-height:var(--control-height);margin-top:var(--space-4);padding:var(--space-3);border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-muted);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0}.rep-add-section:hover{border-color:var(--color-border-hover);color:var(--color-text)}.rep-editor-footer{align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.rep-editor-footer #rep-delete{margin-left:auto}.rep-report{margin:var(--space-4) auto;color:var(--color-text-muted);display:flex}.rep-dialog{--dialog-width:590px;overflow-y:auto}.rep-dialog h2{margin:var(--space-3) var(--space-7) var(--space-3) 0}.rep-dialog>p{margin:0 0 var(--space-6);color:var(--color-text-muted);font-size:var(--text-sm)}.rep-dialog-close{top:var(--space-3);right:var(--space-3);width:var(--control-height);height:var(--control-height);color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;font-size:1.5rem;display:grid;position:absolute}.rep-dialog-close:hover{background:var(--color-surface-selected);color:var(--color-text)}.rep-dialog form{gap:var(--space-4);display:grid}.rep-create-options{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.rep-create-options button{gap:var(--space-3);padding:var(--space-5);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);flex-direction:column;display:flex;position:relative}.rep-ireal-dialog textarea{width:100%;min-height:calc(var(--control-height) * 2);font-family:var(--font-mono);font-size:var(--text-sm);resize:vertical}.rep-ireal-songs{gap:var(--space-2);min-width:0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);margin:0;display:grid}.rep-ireal-songs legend{padding:0 var(--space-1);font-weight:var(--weight-semibold)}.rep-ireal-list{gap:var(--space-1);max-height:16rem;display:grid;overflow-y:auto}.rep-ireal-list label{align-items:start;gap:var(--space-2);min-height:var(--control-height);padding:var(--space-1) 0;grid-template-columns:auto minmax(0,1fr);display:grid}.rep-ireal-list small{color:var(--color-text-muted);font-size:var(--text-xs);display:block}.rep-ireal-list small.warning{color:var(--color-danger-soft)}.rep-create-options button:hover{border-color:var(--color-highlight);background:var(--tint-highlight)}.rep-option-icon{border-radius:var(--radius-sm);background:var(--tint-highlight);width:40px;height:40px;color:var(--color-highlight-strong);place-items:center;font-size:1.5rem;display:grid}.rep-create-options strong{font-size:var(--text-md)}.rep-create-options button>span:not(.rep-option-icon){color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.rep-create-options b{top:var(--space-6);right:var(--space-5);color:var(--color-text-muted);font-weight:400;position:absolute}.rep-create-options button:disabled{border-color:var(--color-border-strong);background:var(--color-bg);opacity:.5;cursor:not-allowed}.rep-export-dialog progress{width:100%;accent-color:var(--color-highlight)}#rep-export-status{margin:var(--space-4) 0 var(--space-2);color:var(--color-highlight-strong);font-size:var(--text-sm)}#rep-export-status:empty{display:none}.rep-create-help{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.rep-create-help p{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.rep-dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.rep-beat-inputs{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.rep-beat-inputs input{font-family:var(--score-font-chord);text-align:center}.rep-chord-roots,.rep-chord-qualities{gap:var(--space-2);flex-wrap:wrap;display:flex}.rep-chord-roots button,.rep-chord-qualities button{min-width:var(--control-height);min-height:var(--control-height);padding:0 var(--space-2);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font:inherit;font-size:var(--text-md);cursor:pointer}.rep-chord-roots button:hover,.rep-chord-qualities button:hover{border-color:var(--color-highlight)}.rep-chord-qualities button{color:var(--color-highlight-strong)}.rep-caption{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.rep-form-error{padding:var(--space-3);border:1px solid color-mix(in oklch, var(--color-danger) 50%, transparent);border-radius:var(--radius-sm);background:var(--tint-danger);color:var(--color-danger-soft);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.rep-dialog .rep-check{align-items:start;gap:var(--space-3);font-weight:400;line-height:var(--leading-normal);flex-direction:row;display:flex}.rep-check input{margin:1px 0}#rep-action-fields{gap:var(--space-3);max-height:45dvh;display:grid;overflow-y:auto}.rep-request-contact{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--color-bg);font-size:var(--text-sm);display:grid}.rep-request-contact span{color:var(--color-text-muted);font-size:var(--text-xs)}.rep-request-contact strong{font-weight:var(--weight-medium);overflow-wrap:anywhere}.rep-wide{width:100%}.rep-request-success{padding:var(--space-5) 0;text-align:center}.rep-request-success>span{background:var(--tint-success);width:60px;height:60px;color:var(--color-success);font-size:var(--text-2xl);border-radius:50%;place-items:center;display:inline-grid}.rep-request-success h3{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-2xl)}.rep-request-success p{margin-bottom:var(--space-6);color:var(--color-text-muted);font-size:var(--text-sm)}.rep-dialog .rep-upload{padding:var(--space-5);border:1px dashed var(--color-border-control);border-radius:var(--radius-md);font-size:var(--text-md);text-align:center}.rep-upload span{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:400;line-height:var(--leading-normal)}.rep-player{z-index:3;margin:0 0 var(--space-5);padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-raised);box-shadow:var(--shadow-raised);position:sticky;top:84px;container-type:inline-size}.rep-player[data-state=playing]{border-color:color-mix(in oklch, var(--color-highlight) 55%, transparent)}.rep-player[data-state=error]{border-color:color-mix(in oklch, var(--color-danger) 60%, transparent)}.rep-player-main{align-items:center;gap:var(--space-2);grid-template-columns:auto 38px minmax(100px,1fr) 60px 160px 36px;display:grid}.rep-player button{cursor:pointer;font-family:inherit}.rep-play{justify-content:center;align-items:center;gap:var(--space-2);min-width:92px;min-height:48px;padding:0 var(--space-4);border-radius:var(--radius-control);background:var(--color-brand);color:var(--color-on-brand);font-size:var(--text-sm);font-weight:var(--weight-semibold);transition:background-color var(--duration-fast) var(--ease-standard);border:0;display:flex}.rep-play:hover:not(:disabled){background:var(--color-brand-hover)}.rep-play span{font-size:var(--text-lg);line-height:1}.rep-player-stop,.rep-player-loop{min-height:var(--control-height);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-md);background:0 0;padding:0}.rep-player-stop:disabled{opacity:.35}.rep-player-loop{font-size:1.375rem}.rep-player-loop[aria-pressed=true]{border-color:var(--color-highlight);background:var(--tint-highlight);color:var(--color-highlight-strong)}.rep-player-caption{gap:2px;min-width:0;display:grid}.rep-player-caption .rep-kicker{font-size:var(--text-xs);margin:0}#rep-play-status{color:var(--color-text-soft);font-size:var(--text-xs)}.rep-player .rep-tempo{color:var(--color-text-soft);font-size:var(--text-xs);margin:0;padding-top:0;display:block;position:relative}.rep-player .rep-tempo input{width:100%;min-height:30px;color:var(--color-text);appearance:textfield;font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:0;padding:2px}.rep-tempo input::-webkit-inner-spin-button{appearance:none;margin:0}.rep-tempo input::-webkit-outer-spin-button{appearance:none;margin:0}.rep-player .rep-groove{min-width:0;margin:0}.rep-groove select{padding-left:var(--space-2)}.rep-player-mixer{align-items:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.rep-player-mixer button{min-width:0;min-height:var(--control-height);padding:0 var(--space-2);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-sm);background:0 0;flex:6.5rem}.rep-player-mixer button:before{content:"";width:6px;height:6px;margin-right:var(--space-2);background:var(--color-border-control);vertical-align:middle;border-radius:50%;display:inline-block}.rep-player-mixer button[aria-pressed=true]{border-color:color-mix(in oklch, var(--color-highlight) 50%, transparent);background:var(--tint-highlight);color:var(--color-text)}.rep-player-mixer button[aria-pressed=true]:before{background:var(--color-highlight)}.rep-player-choruses{align-items:center;gap:var(--space-2);color:var(--color-text-soft);font-size:var(--text-xs);flex:none;margin:0;display:flex}.rep-player-choruses select{width:auto;min-height:var(--control-height)}.rep-player-volume{align-items:center;gap:var(--space-2);color:var(--color-text-soft);font-size:var(--text-xs);flex:10rem;margin:0;display:flex}.rep-practice{border-top:1px solid var(--color-border);min-width:0;padding-top:var(--space-2);flex:100%}.rep-practice summary,.rep-bar-marks summary{align-items:center;gap:var(--space-2);min-height:var(--control-height);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;display:flex}.rep-practice summary:before,.rep-bar-marks summary:before{content:"";width:.45em;height:.45em;transition:transform var(--duration-fast) var(--ease-standard);border-bottom:2px solid;border-right:2px solid;flex-shrink:0;transform:rotate(-45deg)}.rep-practice[open] summary:before,.rep-bar-marks[open] summary:before{transform:rotate(45deg)}.rep-practice summary::-webkit-details-marker{display:none}.rep-bar-marks summary::-webkit-details-marker{display:none}#rep-practice-summary,#rep-bar-marks-summary{min-width:0;color:var(--color-highlight-strong);font-weight:var(--weight-regular);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rep-practice-grid{gap:var(--space-2) var(--space-3);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(min(100%,11rem),1fr));display:grid}.rep-practice-grid>label,.rep-practice-range{gap:var(--space-1);min-width:0;color:var(--color-text-soft);font-size:var(--text-xs);margin:0;display:grid}.rep-practice-grid select{width:100%;min-height:var(--control-height)}.rep-practice-range{border:0;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;padding:0}.rep-practice-range legend{grid-column:1/-1;padding:0}.rep-practice-range legend label{align-items:center;gap:var(--space-2);min-height:24px;margin:0;display:flex}.rep-practice-range input[type=number]{width:100%;min-height:var(--control-height);font-variant-numeric:tabular-nums}.rep-practice-range input:disabled{opacity:.5}.rep-playlist-card .rep-card-open{align-items:center;gap:var(--space-3);padding:var(--space-4);display:flex}.rep-playlist-card .rep-card-body{padding:0}.rep-playlist-icon{border-radius:var(--radius-sm);background:var(--tint-highlight);width:44px;height:44px;color:var(--color-highlight-strong);font-size:var(--text-xl);flex-shrink:0;place-items:center;display:grid}.rep-playlist-new{border:1px dashed var(--color-border-control);min-height:96px;color:var(--color-link);font:inherit;font-weight:var(--weight-semibold);cursor:pointer;background:0 0;place-items:center;display:grid}.rep-playlist-head{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.rep-playlist-head h3{font-size:var(--text-xl);margin:0}#rep-playlist-count{color:var(--color-text-soft);font-size:var(--text-sm)}.rep-playlist-actions{align-items:center;gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap;display:flex}.rep-playlist-charts{gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none;display:grid}.rep-playlist-row{align-items:center;gap:var(--space-2);grid-template-columns:2rem minmax(0,1fr) auto;display:grid}.rep-playlist-chart{min-width:0;min-height:56px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;gap:2px;display:grid}.rep-playlist-chart:hover{border-color:var(--color-border-strong)}.rep-playlist-chart strong,.rep-playlist-chart small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rep-playlist-chart small{color:var(--color-text-soft);font-size:var(--text-xs)}.rep-playlist-number{color:var(--color-text-soft);font-variant-numeric:tabular-nums;text-align:right}.rep-playlist-tools{gap:var(--space-1);display:flex}.rep-playlist-tools .rep-icon-button:disabled{opacity:.35}@media (width<=540px){.rep-playlist-row{grid-template-columns:minmax(0,1fr) auto}.rep-playlist-number{display:none}}.rep-playlist-pick{margin:var(--space-3) 0;border:0;padding:0}#rep-playlist-options{gap:var(--space-1);overscroll-behavior:contain;max-height:min(50vh,24rem);display:grid;overflow-y:auto}.rep-dialog .rep-playlist-option{align-items:center;gap:var(--space-3);min-height:var(--control-height);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;flex-direction:row;display:flex}.rep-dialog .rep-playlist-option:has(input:checked){background:var(--tint-highlight)}.rep-playlist-option span{display:grid}.rep-playlist-option small{color:var(--color-text-soft);font-size:var(--text-xs)}.rep-diagrams{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--score-line)}.rep-diagrams h3{margin:0 0 var(--space-3);color:var(--score-ink);font-size:var(--text-md)}.rep-diagram-list{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));display:grid}.rep-diagram{justify-items:center;gap:var(--space-1);break-inside:avoid;margin:0;display:grid}.rep-diagram svg{width:100%;max-width:9rem;height:auto}.rep-diagram figcaption{color:var(--score-ink);font-family:var(--score-font-chord);font-size:var(--text-lg)}.rep-diagram-none{color:var(--score-muted)}.rep-piano rect{fill:var(--score-paper);stroke:var(--score-line)}.rep-piano rect.is-black{fill:var(--score-ink);stroke:var(--score-ink)}.rep-piano rect.is-on{fill:var(--score-accent)}.rep-exercise-list{margin:0 0 var(--space-3);border:0;padding:0}#rep-exercise-list{gap:var(--space-2);overscroll-behavior:contain;max-height:min(50vh,26rem);display:grid;overflow-y:auto}.rep-dialog .rep-exercise{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;flex-direction:row;display:flex}.rep-dialog .rep-exercise:has(input:checked){border-color:var(--color-highlight);background:var(--tint-highlight)}.rep-exercise input{flex-shrink:0;margin-top:3px}.rep-exercise span{gap:2px;display:grid}.rep-exercise small{color:var(--color-text-soft);font-size:var(--text-xs)}#rep-exercise-form>label{margin-bottom:var(--space-3)}.rep-bar-marks{margin-top:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-2)}.rep-marks-grid{gap:var(--space-2) var(--space-3);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr));display:grid}.rep-marks-grid>label,.rep-mark-signs{gap:var(--space-1);min-width:0;color:var(--color-text-soft);font-size:var(--text-xs);margin:0;display:grid}.rep-marks-grid>label[hidden]{display:none}.rep-marks-grid :is(select,input[type=text]){width:100%;min-height:var(--control-height)}.rep-marks-grid .rep-mark-check{align-items:center;gap:var(--space-2);min-height:var(--control-height);color:var(--color-text);font-size:var(--text-sm);flex-direction:row;display:flex}.rep-mark-signs{border:0;grid-column:1/-1;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));padding:0}.rep-mark-signs legend{margin-bottom:var(--space-1);padding:0}.rep-practice-note{margin:var(--space-2) 0 0;color:var(--color-text-soft);font-size:var(--text-xs)}.rep-player input[type=range]{width:100%;min-width:0;min-height:24px;box-shadow:none;background:0 0;border:0;padding:0}.rep-player-progress{align-items:center;gap:var(--space-3);margin-top:var(--space-2);display:flex}#rep-play-position{color:var(--color-text-soft);font-size:var(--text-xs);font-variant-numeric:tabular-nums;flex-shrink:0}.rep-player-progress input{flex:1}@container (width<=600px){.rep-player-main{grid-template-columns:auto 32px 50px minmax(70px,1fr) 32px;gap:6px}.rep-player-caption{grid-area:2/1/auto/-1;margin-top:2px}.rep-player-caption .rep-kicker{display:none}.rep-play{gap:var(--space-1);min-width:77px;padding:0 var(--space-2)}.rep-player-mixer button{padding:0 var(--space-1);font-size:var(--text-xs);flex-basis:4.5rem}.rep-player-mixer button:before{margin-right:var(--space-1)}}.rep-details-toggle{display:none}@media (width>=1500px){.rep-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=1200px){.rep-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.rep-editor-layout{gap:var(--space-4);grid-template-columns:200px minmax(0,1fr)}}@media (width<=780px){.rep-hero>div:first-child{gap:var(--space-3);flex-wrap:wrap;display:flex}.rep-hero h2,.rep-hero p{flex-basis:100%}.rep-hero>div:first-child>.rep-button.ghost{order:1}.rep-library-tools{align-items:stretch;gap:var(--space-3);flex-direction:column}.rep-search{max-width:none}.rep-segments{align-self:flex-start;max-width:100%;overflow:auto}.rep-editor-toolbar{position:static}.rep-editor-layout{flex-direction:column;display:flex}.rep-settings{grid-template-columns:1fr 1fr;width:100%}.rep-settings>label:nth-of-type(3){grid-column:1/-1}.rep-settings>.rep-kicker{display:none}.rep-settings .rep-fields{grid-column:1/-1}.rep-details-toggle{min-height:var(--control-height);color:var(--color-text);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);background:0 0;border:0;grid-column:1/-1;justify-content:space-between;align-items:center;padding:0;display:flex}.rep-settings.collapsed>:not(.rep-details-toggle){display:none}.rep-settings.collapsed{padding-block:var(--space-1);gap:0}.rep-settings.collapsed .rep-details-toggle span{transform:rotate(-90deg)}.rep-sheet-wrap{width:100%}.rep-sheet{padding-top:var(--space-6)}.rep-sheet header{margin-bottom:var(--space-4);padding-bottom:var(--space-4)}.rep-bars{grid-template-columns:repeat(4,minmax(0,1fr))}.rep-bar.dense{grid-column:span 2}.rep-bar{gap:3px;min-height:64px;padding-inline:5px}.rep-bar span,.rep-bar.multi span{font-size:clamp(10px, calc(var(--chord-scale,40) * 1cqw), 24px)}.rep-editor-actions{width:100%}.rep-editor-actions .rep-button{padding:0 var(--space-3);flex:1}.rep-editor-actions #rep-publish{flex-basis:100%;order:1}.rep-dialog-actions .rep-button{flex:1}.rep-player{top:8px}}@media (width<=430px){.rep-editor-footer #rep-delete{margin-left:0}.rep-cards,.rep-create-options{grid-template-columns:1fr}.rep-create-options button{padding:var(--space-5) var(--space-4) var(--space-5) 76px}.rep-create-options .rep-option-icon{top:var(--space-5);left:var(--space-4);position:absolute}.rep-create-options b{display:none}.rep-bar-dialog{margin:auto auto var(--space-3)}.rep-beat-inputs{gap:var(--space-1)}.rep-dialog .rep-beat-inputs input{padding:0 var(--space-1)}.rep-settings{padding:var(--space-4) var(--space-3)}}@media (prefers-reduced-motion:reduce){.rep-loading span{animation:none}}@media print{body *{visibility:hidden}body,.portal-shell,.portal-main,#learning-panel,#repertoire-panel,#rep-editor,.rep-editor-layout,.rep-sheet-wrap{max-width:none;min-height:0;margin:0;padding:0;display:block}.portal-header,.portal-topbar,#portal-notice,#teacher-dashboard,.portal-heading,.tools-back,.tools-hub,.rep-editor-toolbar,.rep-editor-footer,.rep-settings,.rep-sheet-tools,.rep-add-section,.rep-report,.rep-player,#rep-notice,dialog{display:none!important}#rep-sheet,#rep-sheet *{visibility:visible}#rep-sheet{width:100%;box-shadow:none;color:#000;background:#fff;border-radius:0;padding:20px;position:static}#rep-sheet button.rep-bar-add,#rep-sheet .rep-section-heading button,#rep-sheet .rep-sheet-edit{display:none!important}#rep-sheet .rep-sheet-static{display:revert!important}.rep-bars{grid-template-columns:repeat(4,minmax(0,1fr))}.rep-bar,.rep-section{break-inside:avoid}.rep-bar.playing{color:#000;background:0 0;border-left-color:#000}}#rep-editor>.practice-teacher-note{max-width:850px;margin:0 auto var(--space-5)}#rep-editor:has(>.practice-teacher-note:not([hidden])) .practice-note-button{display:none}.rep-bar.is-selected{box-shadow:inset 0 0 0 2px var(--score-accent)}.rep-beat-inputs label.is-current input{border-color:var(--color-highlight)}#rep-bar-dialog[open]{z-index:var(--z-overlay);margin:0;position:fixed}#rep-bar-dialog h2:focus{outline:none}body:has(#rep-bar-dialog[open]) .rep-player{position:static}#rep-bar-dialog .rep-dialog-actions{bottom:calc(-1 * var(--space-4));z-index:1;margin:0 calc(-1 * var(--space-2));padding:var(--space-3) var(--space-2);background:var(--color-surface-raised);position:sticky}@media (width>=1024px),(width>=640px) and (orientation:landscape){#rep-bar-dialog[open]{inset:var(--space-4) var(--space-4) var(--space-4) auto;width:min(22rem,45vw);height:auto;max-height:none;padding:var(--space-5) var(--space-5) var(--space-4)}body:has(#rep-bar-dialog[open]) #rep-editor{margin-right:calc(min(22rem, 45vw) + var(--space-4))}}@media (width<=639px),(width<=1023px) and (orientation:portrait){#rep-bar-dialog[open]{width:100%;max-width:none;max-height:60dvh;padding:var(--space-4) var(--space-4) max(var(--space-4), env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:0;inset:auto 0 0}body:has(#rep-bar-dialog[open]) .rep-sheet{padding-bottom:60dvh}body:has(#rep-bar-dialog[open]) .rep-bar{scroll-margin-bottom:calc(60dvh + var(--space-4))}}@media (width<=639px){.rep-editor-layout:not(.readonly) .rep-sheet-wrap{flex-direction:column;display:flex}.rep-editor-layout:not(.readonly) .rep-sheet-wrap>*{order:4}.rep-editor-layout:not(.readonly) .rep-sheet-wrap>.rep-sheet-tools{order:0}.rep-editor-layout:not(.readonly) .rep-sheet-wrap>#rep-sheet{order:1}.rep-editor-layout:not(.readonly) .rep-sheet-wrap>#rep-add-section{order:2}.rep-editor-layout:not(.readonly) .rep-sheet-wrap>#rep-player{margin:var(--space-5) 0;order:3;position:relative;top:auto}.rep-editor-layout:not(.readonly) #rep-player[data-state=playing]{bottom:calc(76px + env(safe-area-inset-bottom) + var(--space-2));position:sticky}.rep-editor-layout:not(.readonly) #rep-player[data-state=playing]>:not(.rep-player-main,.rep-player-mixer),.rep-editor-layout:not(.readonly) #rep-player[data-state=playing] :is(.rep-player-choruses,.rep-player-volume,#rep-practice),.rep-editor-layout:not(.readonly) #rep-sheet-help{display:none}#rep-editor:has(>.rep-editor-layout:not(.readonly)) #rep-publish{min-height:var(--control-height);color:var(--color-link);text-underline-offset:.3em;background:0 0;border:0;text-decoration:underline;text-decoration-thickness:from-font}#rep-bar-dialog>:is(.rep-kicker,h2+p){display:none}#rep-bar-dialog h2{margin-top:0}}.assign-dialog{--dialog-width:620px;overflow-y:auto}.assign-dialog-close{top:var(--space-3);right:var(--space-3);width:var(--control-height);height:var(--control-height);color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;font-size:1.5rem;display:grid;position:absolute}.assign-dialog-close:hover,.assign-dialog-close:focus-visible{background:var(--color-surface-selected);color:var(--color-text)}.assign-kicker{margin:0}.assign-dialog h2{margin:var(--space-2) var(--space-8) var(--space-2) 0;overflow-wrap:anywhere}.assign-intro{margin:0 0 var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm)}.assign-dialog[open]{flex-direction:column;display:flex}.assign-form{gap:var(--space-3);flex-direction:column;flex:auto;min-height:0;display:flex}.assign-form>*{flex:none}.assign-form>.assign-body{gap:var(--space-3);min-height:0;margin:calc(-1 * var(--space-1));padding:var(--space-1);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.assign-body>*{flex:none}.assign-body>.assign-choices{flex:auto;min-height:7rem}.assign-choices{align-content:start;gap:var(--space-2);padding:2px;display:grid;overflow-y:auto}.assign-list,.assign-classes{gap:var(--space-2);display:grid}.assign-classes{margin-bottom:var(--space-2)}.assign-classes[hidden],.assign-section-title[hidden],.assign-band[hidden]{display:none}.assign-section-title{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:0}.assign-class .assign-avatar{border-radius:var(--radius-sm);background:color-mix(in oklch, var(--color-highlight) 18%, var(--color-surface-selected))}.assign-band{gap:var(--space-2);border:0;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));margin:0;padding:0;display:grid}.assign-band legend{margin-bottom:var(--space-2);color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-medium)}.assign-band-option{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg);cursor:pointer;display:flex}.assign-band-option:has(input:checked){border-color:var(--color-highlight);background:var(--tint-highlight)}.assign-band-option input{margin-top:2px}.assign-band-option strong{color:var(--color-text);font-size:var(--text-md);display:block}.assign-band-option small{color:var(--color-text-muted);font-size:var(--text-xs);margin-top:2px;display:block}.assign-bars-range{gap:var(--space-2) var(--space-4);flex-wrap:wrap;grid-column:1/-1;display:flex}.assign-bars-range[hidden]{display:none}.assign-bars-range label{align-items:center;gap:var(--space-2);color:var(--color-text-soft);font-size:var(--text-sm);white-space:nowrap;display:flex}.assign-bars-range select{min-width:5rem;min-height:44px;font-size:var(--text-md)}.assign-empty{padding:var(--space-6) var(--space-4);margin:0}.assign-student{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg);transition:border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard)}.assign-student.is-selected{border-color:var(--color-highlight);background:var(--tint-highlight)}.assign-student-head{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;display:flex}.assign-avatar{background:var(--color-surface-selected);height:40px;color:var(--color-highlight-strong);font-size:var(--text-sm);font-weight:var(--weight-semibold);border-radius:50%;flex:0 0 40px;place-items:center;display:grid}.assign-student-words{flex:1;gap:3px;min-width:0;display:grid}.assign-student-words strong{color:var(--color-text);font-size:var(--text-md);overflow-wrap:anywhere}.assign-student-words small{color:var(--color-text-muted);font-size:var(--text-xs)}.assign-toggle{border-radius:var(--radius-full);background:var(--color-border-strong);appearance:none;cursor:pointer;height:26px;transition:background-color var(--duration-fast) var(--ease-standard);flex:0 0 46px;margin:0;position:relative}.assign-toggle:after{content:"";background:var(--color-text);width:20px;height:20px;transition:translate var(--duration-fast) var(--ease-standard);border-radius:50%;position:absolute;top:3px;left:3px}.assign-toggle:checked{background:var(--color-highlight)}.assign-toggle:checked:after{translate:20px}.assign-toggle:indeterminate{background:color-mix(in oklch, var(--color-highlight) 45%, var(--color-border-strong))}.assign-toggle:indeterminate:after{translate:10px}.assign-lesson{gap:var(--space-2);padding:0 var(--space-4) var(--space-4) 68px;color:var(--color-text-muted);font-size:var(--text-sm);display:grid}.assign-lesson[hidden]{display:none}.assign-error{color:var(--color-danger-soft);font-size:var(--text-sm);margin:0}.assign-footer{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.assign-count{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.assign-actions{gap:var(--space-2);margin-left:auto;display:flex}@media (height<=640px){.assign-intro,.assign-band-option small{display:none}.assign-dialog h2{margin-bottom:var(--space-3);font-size:var(--text-xl)}.assign-band-option{padding:var(--space-2) var(--space-3)}.assign-body>.assign-choices{min-height:5rem}}@media (width<=520px){.assign-lesson{padding-left:var(--space-4)}.assign-actions{width:100%}.assign-actions .assign-button{flex:1}}.assign-details{align-items:end;gap:var(--space-2) var(--space-4);padding:var(--space-3) 0 0;border:0;border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) minmax(0,12rem);margin:0;display:grid}.assign-details[hidden]{display:none}.assign-details legend{float:left;margin-bottom:var(--space-2);color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-medium);grid-column:1/-1}.assign-details label{gap:var(--space-1);color:var(--color-text-soft);font-size:var(--text-sm);display:grid}.assign-details textarea,.assign-details input{width:100%;font-size:var(--text-md)}.assign-details .assign-hint{grid-column:1/-1;margin:0}@media (width<=639px){.assign-details{grid-template-columns:minmax(0,1fr)}}.reflection-dialog{overflow-y:auto}@media (width>=640px){.reflection-dialog{width:min(520px, calc(100% - 2 * var(--space-4)))}}.reflection-kicker{margin:0 0 var(--space-1);overflow-wrap:anywhere}.reflection-dialog h2{margin:0 0 var(--space-4)}.teacher-note{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--tint-highlight);color:var(--color-text)}.teacher-note p{margin:var(--space-1) 0 0;font-size:var(--text-sm);line-height:var(--leading-normal);overflow-wrap:anywhere;white-space:pre-line}.teacher-note-label{color:var(--color-highlight-strong);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.reflection-form{gap:var(--space-4);display:grid}.reflection-states{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.reflection-states legend{margin-bottom:var(--space-2);color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:0}.reflection-state{align-items:flex-start;gap:var(--space-3);min-height:44px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg);cursor:pointer;display:flex}.reflection-state:has(input:checked){border-color:var(--color-highlight);background:var(--tint-highlight)}.reflection-state:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}.reflection-state input:focus-visible{outline:none}.reflection-state input{width:20px;height:20px;accent-color:var(--color-highlight);flex:none;margin:1px 0 0}.reflection-state strong{color:var(--color-text);font-size:var(--text-md);display:block}.reflection-state small{color:var(--color-text-muted);font-size:var(--text-xs);margin-top:2px;display:block}.reflection-note{gap:var(--space-1);color:var(--color-text-soft);font-size:var(--text-sm);display:grid}.reflection-note textarea{width:100%;font-size:var(--text-md)}.reflection-form .notice{margin:0}.reflection-actions{justify-content:flex-end;gap:var(--space-2);display:flex}@media (width<=639px){.reflection-actions>.btn{flex:1}}.solos button:disabled,.solo-dialog button:disabled,.solos select:disabled,.solos input:disabled{opacity:.5;cursor:not-allowed}.solo-card-preview{gap:var(--space-3);padding:var(--space-5) var(--space-4);grid-template-columns:1fr;display:grid}.solo-card-tab{gap:5px;display:grid}.solo-card-tab i{background:color-mix(in oklch, var(--score-line) 45%, transparent);height:1px;display:block}.solo-card-melody{width:100%;height:auto;display:block;overflow:visible}.solo-card-line{stroke:color-mix(in oklch, var(--score-line) 55%, transparent);stroke-width:1px}.solo-card-head{fill:var(--score-ink)}.solo-card-cross{fill:none;stroke:var(--score-ink);stroke-width:1.6px;stroke-linecap:round}.solo-card-empty{fill:var(--score-muted);font-size:14px}.solo-card-chords{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.solo-card-chords span{padding:2px var(--space-1) 2px var(--space-2);border-left:1.5px solid var(--score-line);font-family:var(--score-font-chord);font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.solo-save-state{color:var(--color-text-muted);font-size:var(--text-sm);margin-right:auto}.solo-work{min-width:0}.solo-notation-toolbar .solo-inline,.solo-notation-toolbar .solo-palette-label{color:var(--color-text-soft)}.solo-editor-layout{background:var(--color-bg);grid-template-columns:270px minmax(0,1fr);gap:0;padding:0}.solo-sidebar{min-width:0;padding:var(--space-3);background:var(--color-surface-raised);color:var(--color-text);align-self:start}.solo-sidebar .solo-settings{padding:var(--space-2);background:0 0;border:0;position:static}.solo-sidebar label,.solo-sidebar .rep-caption,.solo-sidebar .solo-inline,.solo-sidebar .solo-palette-label,.solo-sidebar .solo-keys summary{color:var(--color-text-soft)}.solo-sidebar .solo-palette{padding:var(--space-3) 0;background:0 0;border:0;border-radius:0;margin:0;position:static}.solo-sidebar .solo-palette h3{margin:var(--space-1) 0;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:0}.solo-sidebar .solo-palette-row{gap:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.solo-sidebar .solo-palette-label{width:100%}.solo-sidebar .solo-frets{grid-template-columns:repeat(7,minmax(0,1fr));width:100%}.solo-editor-layout .solo-work{padding:var(--space-4)}.solo-entering-notes svg.solo-editable{cursor:crosshair}.solo-import-dialog{--dialog-width:940px}.solo-import-dialog form,.solo-import-dialog [data-options]{gap:var(--space-4);display:grid}.solo-import-dialog label{gap:var(--space-2);display:grid}.solo-import-dialog input[type=file]{white-space:normal}.solo-import-dialog [data-preview]{min-width:0}.solo-import-score{border-radius:var(--radius-sm);background:var(--score-paper);max-height:440px;color:var(--score-ink);overflow:auto}.solo-import-score svg{width:100%;display:block}.solo-sheet-tools{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.solo-selection-text{min-height:1.5em;color:var(--color-highlight-strong);font-size:var(--text-sm);margin:0}.solo-palette{z-index:2;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid;position:sticky;top:8px}.solo-palette-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.solo-palette-label{min-width:60px;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.solo-chips{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.solo-chip,.solo-fret{border-radius:var(--radius-sm)}.solo-duration{font-variant-numeric:tabular-nums;min-width:44px}.solo-frets{flex:1;grid-template-columns:repeat(13,minmax(34px,1fr));gap:5px;display:grid}.solo-fret{min-width:0;padding:var(--space-1) 0;font-variant-numeric:tabular-nums}.solo-inline{align-items:center;gap:var(--space-2);color:var(--color-text-soft);font-size:var(--text-sm);display:inline-flex}.solo-inline select{width:auto;min-height:var(--control-height-sm);padding-left:var(--space-2)}.solo-palette-actions{padding-top:var(--space-2);border-top:1px solid var(--color-border)}.solo-keys summary{color:var(--color-text-muted);font-size:var(--text-sm)}.solo-sheet{padding:var(--space-6) clamp(10px, 2.4vw, 32px) var(--space-4);border-radius:var(--radius-md);background:var(--score-paper);box-shadow:var(--shadow-paper);color:var(--score-ink)}.solo-sheet header{margin-bottom:var(--space-3);padding-bottom:var(--space-4);border-bottom:1px solid color-mix(in oklch, var(--score-line) 20%, transparent);text-align:center}.solo-sheet header>span{color:var(--score-muted);font-size:var(--text-xs)}.solo-sheet h2{margin:var(--space-3) 0 var(--space-1);color:var(--score-ink);font-family:var(--score-font-text), var(--font-display);letter-spacing:0;overflow-wrap:anywhere;font-size:clamp(1.625rem,3vw,2.5rem);font-weight:400;line-height:1.15}.solo-sheet header p{margin:var(--space-1) 0;color:var(--score-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.solo-sheet .solo-credit{font-size:var(--text-xs)}.solo-sheet footer{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid color-mix(in oklch, var(--score-line) 20%, transparent);color:var(--score-muted);font-size:var(--text-xs);justify-content:space-between;display:flex}.solo-sheet footer span{font-family:var(--score-font-text), var(--font-display)}.solo-sheet-notes:empty{display:none}.solo-score{border-radius:var(--radius-xs);outline:none;min-height:120px}.solo-score:focus-visible{box-shadow:0 0 0 3px var(--score-accent-tint)}.solo-score svg{width:100%;height:auto;display:block}.solo-score svg.solo-editable{cursor:pointer}.solo-score-loading{padding:var(--space-8) 0;color:var(--score-muted);font-size:var(--text-sm);text-align:center}.solo-chord{fill:var(--score-ink);font-family:var(--score-font-chord);font-size:18px;font-weight:400}.solo-section{fill:var(--score-ink);font-family:var(--score-font-text), var(--font-display);font-size:15px}.solo-volta{fill:none;stroke:var(--score-ink);stroke-width:1.2px}.solo-volta-label,.solo-repeat-times{fill:var(--score-ink);font-family:var(--score-font-text), var(--font-display);font-size:13px}.solo-simile{fill:var(--score-ink);font-family:var(--score-font-music);pointer-events:none;font-size:40px}.solo-dim{fill:var(--score-paper);opacity:.74;pointer-events:none}.solo-selection{fill:var(--score-accent);opacity:.16;pointer-events:none}.solo-selection-string{fill:none;stroke:var(--score-accent);stroke-width:2px;pointer-events:none}.solo-cursor{fill:var(--score-accent);opacity:.85;pointer-events:none}.solo-extra{fill:var(--score-pitch);font:700 17px var(--font-ui)}.solo-editor-layout.readonly{grid-template-columns:minmax(0,1fr);max-width:none;margin:0}.solo-practice-header{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--control-height);display:flex}.practice-back{min-width:var(--control-height);min-height:var(--control-height);padding:0 var(--space-2) 0 0;color:var(--color-text);font:inherit;font-size:.9375rem;font-weight:var(--weight-semibold);white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:none;align-items:center;display:inline-flex}.practice-back:hover{text-underline-offset:.2em;text-decoration:underline}.practice-eyebrow{min-width:0;color:var(--color-text-muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;overflow:hidden}.practice-body{align-content:start;gap:var(--space-4);grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.solo-practice-title{margin:var(--space-2) 0 0;font-size:var(--text-3xl);overflow-wrap:anywhere;outline:none}.practice-teacher-note{max-width:48rem;margin:calc(-1 * var(--space-2)) 0 0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;line-height:var(--leading-normal);overflow-wrap:anywhere}.practice-teacher-note>[id$=practice-teacher-text]{white-space:pre-line}.solo-stage{padding:var(--space-2) clamp(6px, 1.6vw, 20px);border-radius:var(--radius-md);background:var(--score-paper);box-shadow:var(--shadow-paper);position:relative}.note-legend{justify-content:flex-end;gap:var(--space-1) var(--space-3);margin:0 0 var(--space-1);color:var(--score-ink);font-size:var(--text-xs);flex-wrap:wrap;padding:0;line-height:1.4;list-style:none;display:flex}.note-legend li{align-items:center;gap:var(--space-1);display:inline-flex}.note-legend li:before{content:"";border-radius:var(--radius-full);background:var(--note-color);block-size:.625rem;inline-size:.625rem}.note-legend [data-note=c]{--note-color:var(--score-note-c)}.note-legend [data-note=d]{--note-color:var(--score-note-d)}.note-legend [data-note=e]{--note-color:var(--score-note-e)}.note-legend [data-note=f]{--note-color:var(--score-note-f)}.note-legend [data-note=g]{--note-color:var(--score-note-g)}.note-legend [data-note=a]{--note-color:var(--score-note-a)}.note-legend [data-note=b]{--note-color:var(--score-note-b)}.solo-stage-scroll{scroll-behavior:smooth;max-height:min(64vh,720px);overflow-y:auto}.solo-countin{place-content:center;justify-items:center;gap:var(--space-1);border-radius:var(--radius-md);background:color-mix(in oklch, var(--color-bg) 70%, transparent);color:var(--color-text);pointer-events:none;display:grid;position:absolute;inset:0}.solo-countin span{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.solo-countin strong{color:var(--color-highlight);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:4.5rem;line-height:1}.solo-status{min-height:1.6em;margin:var(--space-3) 0;color:var(--color-success);font-size:var(--text-sm)}.solo-status.error{color:var(--color-danger-soft)}.practice-stage-wrap{align-content:start;align-self:start;gap:var(--space-2);grid-template-columns:minmax(0,1fr);min-width:0;display:grid;position:relative}.practice-stage-foot{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.practice-tab{min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--color-border-control);border-radius:var(--radius-full);color:var(--color-text-soft);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0}.practice-tab[aria-pressed=true]{border-color:var(--color-selected);background:var(--color-selected);color:var(--color-on-selected)}.practice-position{color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.practice-side{align-content:start;gap:var(--space-4);grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.practice-side>.solo-status{margin:0}.practice-side>.solo-status:empty{display:none}.practice-controls{gap:var(--space-3);grid-template-columns:minmax(0,1fr);display:grid}.practice-range-chips{gap:var(--space-2);scrollbar-width:none;grid-auto-columns:minmax(max-content,1fr);grid-auto-flow:column;display:grid;overflow-x:auto}.practice-range-chips>.practice-range{min-height:var(--control-height);justify-content:center}.practice-range-custom>summary{min-height:var(--control-height);color:var(--color-text-soft);font-size:var(--text-sm);cursor:pointer;align-items:center;display:inline-flex}.practice-range-fields{gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.practice-range-fields label{align-items:center;gap:var(--space-2);color:var(--color-text-soft);font-size:var(--text-sm);display:flex}.practice-range-fields select{width:auto;min-height:var(--control-height);padding-left:var(--space-2)}.practice-speed{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.practice-speed-words{gap:2px;margin:0;display:grid}.practice-speed-words strong{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.practice-speed-words span{color:var(--color-text-muted);font-size:.8125rem}.practice-stepper{align-items:center;gap:var(--space-2);display:flex}.practice-step{width:var(--control-height);height:var(--control-height);border:1px solid var(--color-text);border-radius:var(--radius-full);color:var(--color-text);font:inherit;font-size:var(--text-xl);cursor:pointer;background:0 0;place-items:center;line-height:1;display:grid}.practice-step:disabled{border-color:var(--color-border);color:var(--color-text-disabled);cursor:default}.practice-bpm{min-width:5.5rem;font-size:var(--text-xl);font-weight:var(--weight-semibold);text-align:center;font-variant-numeric:tabular-nums}.practice-guide{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));display:grid}.practice-guide>button{min-height:var(--control-height);padding:0 var(--space-2);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0}.practice-guide>button[aria-pressed=true]{border-color:var(--color-selected);background:var(--color-selected);color:var(--color-on-selected);font-weight:var(--weight-semibold)}.practice-guide>button:disabled{opacity:.55;cursor:default}.practice-guide-note{margin:calc(-1 * var(--space-1)) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.practice-mixer{min-width:var(--control-height);min-height:var(--control-height);justify-self:start;align-items:center;display:inline-flex}.practice-reflection{gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:grid}.practice-reflection h3{font-family:var(--font-ui);font-size:.9375rem;font-weight:var(--weight-semibold);letter-spacing:0}.practice-readiness{gap:var(--space-2);display:grid}.practice-readiness>button{min-height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;font-size:.9375rem}.practice-readiness>button[aria-pressed=true]{border-color:var(--color-selected);background:var(--color-selected);color:var(--color-on-selected);font-weight:var(--weight-semibold)}.practice-reflection label{margin-top:var(--space-1);color:var(--color-text-muted);font-size:.8125rem}.practice-reflection textarea{resize:vertical;width:100%}.practice-reflection-send{justify-self:start}.practice-said{color:var(--color-success);font-size:var(--text-sm);margin:0}.practice-said:empty{display:none}.practice-said.is-error{color:var(--color-danger-soft)}.practice-take{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex}.practice-take-words{gap:2px;min-width:0;margin:0;display:grid}.practice-take-words strong{font-size:.9375rem;font-weight:var(--weight-semibold)}.practice-take-words span{color:var(--color-text-muted);font-size:.8125rem}.practice-record{flex:none}.practice-record.recording{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-on-accent);animation:1s ease-in-out infinite solo-pulse}@keyframes solo-pulse{50%{box-shadow:0 0 0 10px color-mix(in oklch, var(--color-danger) 18%, transparent)}}.practice-play{z-index:1;margin-top:var(--space-4);padding:var(--space-3) 0 var(--space-4);background:var(--color-bg);justify-content:center;display:flex;position:sticky;bottom:0}.practice-play-button{width:min(100%,26rem);min-height:3.5rem;font-size:var(--text-md)}@media (width>=1100px){.solo-practice .practice-body{column-gap:var(--space-7);grid-template-columns:minmax(0,1fr) minmax(18rem,21rem)}.solo-practice .practice-body>:not(.practice-stage-wrap,.practice-side){grid-column:1/-1}}.solo-grading{justify-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-5);text-align:center;display:grid}.solo-grading progress{width:min(360px,100%);accent-color:var(--color-highlight)}.solo-spinner{border:3px solid var(--color-border-strong);border-top-color:var(--color-highlight);border-radius:50%;width:30px;height:30px;animation:1s linear infinite rep-spin}.solo-grade-error{gap:var(--space-4);padding:var(--space-7) 0;display:grid}.solo-result h2{margin:var(--space-2) 0 var(--space-5);font-size:var(--text-3xl);outline:none}.solo-result-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);display:grid}.solo-stars{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid}.solo-star-card,.solo-xp{align-content:start;gap:var(--space-1);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.solo-star-card strong{color:var(--color-text);font-size:var(--text-2xl)}.solo-star-card small{color:var(--color-text-muted);font-size:var(--text-sm)}.solo-star-meter{background:linear-gradient(90deg, var(--color-highlight-strong) var(--fill), var(--color-border-strong) var(--fill));color:#0000;width:fit-content;font-size:var(--text-xl);letter-spacing:3px;-webkit-background-clip:text;background-clip:text}.solo-xp strong{color:var(--color-success);font-size:var(--text-3xl);font-variant-numeric:tabular-nums}.solo-xp-level{color:var(--color-text-soft);font-size:var(--text-sm)}.solo-xp-bar{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--color-success) var(--fill), var(--color-border-strong) var(--fill));height:8px}.solo-observations{gap:var(--space-2);margin:0 0 var(--space-4);padding:0;list-style:none;display:grid}.solo-observations li{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--text-sm);line-height:var(--leading-normal)}.solo-legend{gap:var(--space-2) var(--space-4);margin-bottom:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.solo-legend span:before{content:"●";margin-right:var(--space-2);color:var(--dot)}.solo-result-sheet{margin-bottom:var(--space-4)}.solo-replay{gap:var(--space-2);margin-bottom:var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm);display:grid}.solo-replay audio{width:100%}.solo-result-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}#solo-unsaved{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.solo-dialog{--dialog-width:600px;overflow-y:auto}.solo-dialog h2{margin:var(--space-3) var(--space-7) var(--space-3) 0}.solo-dialog>p{margin:0 0 var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm)}.solo-dialog-close{top:var(--space-3);right:var(--space-3);width:var(--control-height);height:var(--control-height);color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;font-size:1.5rem;display:grid;position:absolute}.solo-dialog-close:hover{background:var(--color-surface-selected);color:var(--color-text)}.solo-dialog form{gap:var(--space-4);display:grid}.solo-dialog label{gap:var(--space-2);flex-direction:column;display:flex}.solo-dialog .solo-check{align-items:start;gap:var(--space-3);font-weight:400;line-height:var(--leading-normal);flex-direction:row}.solo-dialog-actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.solo-action-fields{gap:var(--space-3);max-height:45dvh;display:grid;overflow-y:auto}.solo-create-options{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.solo-create-options button{gap:var(--space-3);padding:var(--space-5);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);flex-direction:column;display:flex;position:relative}.solo-create-options button:hover,.solo-create-options button[aria-expanded=true]{border-color:var(--color-highlight);background:var(--tint-highlight)}.solo-option-icon{border-radius:var(--radius-sm);background:var(--tint-highlight);width:40px;height:40px;color:var(--color-highlight-strong);place-items:center;font-size:1.5rem;display:grid}.solo-create-options button>span:not(.solo-option-icon){color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.solo-create-options b{top:var(--space-6);right:var(--space-5);color:var(--color-text-muted);font-weight:400;position:absolute}.solo-chart-picker{gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:grid}.solo-blank-form{align-items:end;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;display:grid}.solo-blank-form[hidden]{display:none}.solo-blank-form label{gap:var(--space-2);display:grid}.solo-blank-form p{grid-column:1/-1;margin:0}.solo-bars-help{margin:0 0 var(--space-2);align-self:end}.solo-chart-list{gap:var(--space-2);max-height:40dvh;display:grid;overflow-y:auto}.solo-chart-item{gap:var(--space-1);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;display:grid}.solo-chart-item:hover{border-color:var(--color-highlight)}.solo-chart-item span{color:var(--color-text-muted);font-size:var(--text-sm)}.solo-beat-inputs{gap:var(--space-2);display:grid}.solo-beat-inputs input{font-family:var(--score-font-chord);text-align:center}.solo-chord-buttons{gap:var(--space-2);flex-wrap:wrap;display:flex}.solo-chord-buttons button{min-width:var(--control-height);min-height:var(--control-height);padding:0 var(--space-2);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font:inherit;font-size:var(--text-md);cursor:pointer}.solo-chord-buttons button:hover{border-color:var(--color-highlight)}.solo-chord-buttons.qualities button{color:var(--color-highlight-strong)}.solo-mixer-tracks{gap:var(--space-4);display:grid}.solo-dialog .solo-mixer-track{gap:var(--space-2) var(--space-3);font-size:var(--text-sm);grid-template-columns:1fr auto;display:grid}.solo-mixer-track input{grid-column:1/-1;min-height:24px;padding:0}.solo-mixer-track output{color:var(--color-text-muted);font-variant-numeric:tabular-nums}@media (width>=1101px){.solo-sidebar{max-height:calc(100vh - 32px);position:sticky;top:16px;overflow-y:auto}}@media (width<=1100px){.solo-editor-layout{grid-template-columns:220px minmax(0,1fr)}.solo-editor-layout .solo-work{padding:var(--space-3)}.solo-frets{grid-template-columns:repeat(9,minmax(34px,1fr))}.solo-meta{grid-template-columns:1fr 1fr}.solo-meta .solo-tempo{grid-area:2/1/auto/-1}}@media (width<=780px){.solo-editor-layout{grid-template-columns:minmax(0,1fr)}.solo-sidebar{max-height:330px;overflow:auto}.solo-sidebar .solo-frets{grid-template-columns:repeat(13,minmax(20px,1fr))}.solo-sidebar .solo-settings{display:block}.solo-work{flex-direction:column;display:flex}.solo-work>.solo-sheet{margin-bottom:var(--space-4);order:-1}.solo-palette{padding:var(--space-3);position:static}.solo-palette-label{min-width:100%}.solo-frets{grid-template-columns:repeat(7,minmax(34px,1fr))}.solo-transport{grid-template-columns:1fr;justify-items:stretch}.solo-transport>*,.solo-transport>.rep-button,.solo-guide{justify-self:stretch;justify-items:stretch}.solo-guide div button{flex:1}.solo-record{width:100%}.solo-result-grid,.solo-create-options{grid-template-columns:1fr}}@media (width<=520px){.solo-blank-form{grid-template-columns:1fr 1fr}.solo-blank-form .rep-button{grid-column:1/-1}}@media (width<=430px){.solo-meta,.solo-stars{grid-template-columns:1fr}.solo-meta .solo-tempo{grid-row:auto}}@media (prefers-reduced-motion:reduce){.solo-record.recording,.solo-spinner{animation:none}.solo-stage-scroll{scroll-behavior:auto}}@media print{.solo-palette,.solo-sheet-tools,.rep-editor-toolbar,.solo-settings{display:none!important}}#solo-editor:not([hidden]){z-index:90;overscroll-behavior:contain;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--color-bg);grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid;position:fixed;inset:0;overflow:hidden}body:has(#solos-panel:not([hidden]) #solo-editor:not([hidden])){overflow:hidden}#solo-editor>*{min-width:0}#solo-editor .rep-button{min-height:var(--control-height-sm);padding:0 var(--space-3);font-size:var(--text-sm);white-space:nowrap}#solo-editor>.melody-topbar{z-index:21;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg);grid-row:1;grid-template-columns:auto minmax(0,1fr) auto auto auto;margin:0;display:grid;position:relative}.melody-heading{align-items:baseline;gap:var(--space-3);min-width:0;display:flex}.melody-heading-title{color:var(--color-text);font-size:var(--text-lg);font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#solo-editor .solo-save-state{font-size:var(--text-sm);white-space:nowrap;flex-shrink:0;margin:0}#solo-editor .rep-editor-actions{gap:var(--space-2);flex-wrap:nowrap;width:auto}#solo-editor .rep-editor-actions .rep-button{flex:none}.melody-history{gap:2px;display:flex}#solo-editor .melody-history .melody-tool{font-size:var(--text-xl)}#solo-editor .melody-play{--btn-bg:var(--color-brand);--btn-fg:var(--color-on-brand);--btn-border:var(--color-brand)}#solo-editor .melody-play:hover:not(:disabled){--btn-bg:var(--color-brand-hover);--btn-border:var(--color-brand-hover)}.melody-more{position:relative}.melody-more summary{min-width:40px;min-height:var(--control-height-sm);padding:var(--space-2);border:1px solid var(--color-border-control);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;justify-content:center;align-items:center;list-style:none;display:flex}.melody-more summary::-webkit-details-marker{display:none}.melody-folder>summary::-webkit-details-marker{display:none}.melody-more>div{z-index:15;gap:var(--space-2);min-width:240px;padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-raised);box-shadow:var(--shadow-overlay);display:grid;position:absolute;top:calc(100% + 6px);right:0}.melody-more .solo-check{min-height:var(--control-height-sm);padding:0 var(--space-2)}#solo-editor>.solo-notation-toolbar{z-index:20;padding:6px var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface-raised);flex-wrap:wrap;grid-row:2;align-items:center;gap:4px 2px;display:flex;position:relative}#solo-editor>.solo-notation-toolbar>*{flex-shrink:0}.melody-durations,.melody-accidentals,.melody-articulations{gap:2px;display:flex}.melody-rule{background:var(--color-border-strong);flex:none;width:1px;height:24px;margin:0 4px}#solo-editor .melody-tool{border-radius:var(--radius-xs);min-width:40px;min-height:40px;color:var(--color-text);font-size:var(--text-sm);border-color:#0000;gap:6px;padding:0 6px}#solo-editor .melody-tool:hover:not(:disabled){border-color:var(--color-border-hover)}#solo-editor .melody-tool[aria-pressed=true],#solo-editor .melody-tool[aria-expanded=true]{border-color:var(--color-highlight);background:var(--color-selected);color:var(--color-on-selected)}.melody-tool-glyph{font-size:var(--text-lg);line-height:1}.melody-note-glyph{width:.7em;font-family:var(--score-font-music);text-align:center;font-size:22px;line-height:1;display:inline-block;transform:translateY(.18em)}.melody-tuplet-glyph{font-style:italic;font-weight:var(--weight-semibold)}.melody-glyph{width:26px;height:26px;font-family:var(--score-font-music);justify-content:center;align-items:center;font-size:26px;line-height:0;display:inline-flex}.melody-glyph:before{transform:translateY(var(--glyph-shift,0))}.melody-glyph[data-glyph=dot]:before{content:"";font-size:34px}.melody-glyph[data-glyph=double-dot]:before{content:" ";font-size:34px}.melody-glyph[data-glyph=rest]:before{content:""}.melody-glyph[data-glyph=double-flat]:before{content:"";--glyph-shift:.12em}.melody-glyph[data-glyph=flat]:before{content:"";--glyph-shift:.12em}.melody-glyph[data-glyph=natural]:before{content:""}.melody-glyph[data-glyph=sharp]:before{content:""}.melody-glyph[data-glyph=double-sharp]:before{content:""}.melody-glyph[data-glyph=staccato]:before{content:"";--glyph-shift:.06em;font-size:40px}.melody-glyph[data-glyph=accent]:before{content:"";--glyph-shift:.12em;font-size:34px}.melody-glyph[data-glyph=tenuto]:before{content:"";--glyph-shift:.06em;font-size:34px}.melody-glyph[data-glyph=marcato]:before{content:"";--glyph-shift:.16em;font-size:30px}.melody-glyph[data-glyph=grace]:before{content:"";--glyph-shift:.3em}.melody-glyph[data-glyph=tie]:before{content:"";--glyph-shift:-2px;border-bottom:2.5px solid;border-radius:50%;width:20px;height:9px}.melody-tuplet select{width:96px;min-height:40px;padding:0 var(--space-6) 0 var(--space-2);border-radius:var(--radius-xs);font-size:var(--text-sm);background-color:#0000;border-color:#0000}.melody-tuplet select:hover{border-color:var(--color-border-hover)}#solo-editor .solo-editor-layout{background:var(--color-surface);border:0;border-radius:0;flex-direction:row;grid-row:3;align-items:stretch;min-height:0;padding:0;display:flex;position:relative}#solo-editor .solo-sidebar{overscroll-behavior:contain;width:300px;min-height:0;max-height:none;padding:0 0 var(--space-6);border-right:1px solid var(--color-border);background:var(--color-surface-raised);flex:0 0 300px;align-self:stretch;display:block;position:static;overflow:auto}#solo-editor .solo-sidebar[hidden]{display:none}.melody-palettes-head{z-index:1;min-height:48px;padding:0 var(--space-2) 0 var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text);font-size:var(--text-sm);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}#solo-editor .melody-panel-close{font-size:var(--text-lg);border-color:#0000}.melody-folder{border-bottom:1px solid var(--color-border)}.melody-folder>summary{align-items:center;gap:var(--space-3);min-height:44px;padding:0 var(--space-4);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);transition:background-color var(--duration-fast) var(--ease-standard);list-style:none;display:flex}.melody-folder>summary:hover{background:var(--color-surface-hover)}.melody-folder>summary:before{content:"";width:7px;height:7px;transition:transform var(--duration-fast) var(--ease-standard);border-bottom:1.5px solid;border-right:1.5px solid;flex:none;margin:0 2px 2px 0;transform:rotate(-45deg)}.melody-folder[open]>summary:before{transform:rotate(45deg)}.melody-folder-body{gap:var(--space-3);padding:var(--space-1) var(--space-4) var(--space-4);display:grid}.melody-folder-body>label:not(.solo-check){gap:6px;display:grid}.melody-folder-body .solo-chips{gap:6px}#solo-editor .melody-folder-body .solo-chip{font-size:var(--text-sm)}.melody-folder-body .solo-check{align-items:center;gap:var(--space-2);color:var(--color-text);display:flex}.melody-folder-note{color:var(--color-text-muted);font-size:var(--text-xs);margin:0;line-height:1.45}.melody-folder-body>.switch{margin-left:calc(-1 * var(--space-2));justify-self:start}.melody-drum-pieces{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}#solo-editor .melody-drum-pieces .melody-drum{justify-content:flex-start;gap:var(--space-2);width:100%;min-height:var(--control-height);text-align:left}.melody-drum-head{text-align:center;flex:none;width:1.25em}.melody-drum-name{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.melody-drum-key{min-width:1.6em;padding:2px var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--text-xs);text-align:center;flex:none}.melody-drum[aria-pressed=true] .melody-drum-key{color:inherit;border-color:currentColor}.melody-input{gap:var(--space-2);display:grid}.melody-input+.melody-input{padding-top:var(--space-3);border-top:1px solid var(--color-border)}.melody-input h3{color:var(--color-text);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:0;margin:0}.melody-panel-row{align-items:end;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.melody-panel-row>label{flex:100px;gap:6px;display:grid}.melody-count{padding:var(--space-1) var(--space-3);border-radius:var(--radius-xs);background:var(--tint-highlight);color:var(--color-highlight-strong);font-size:var(--text-lg);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.melody-studio[data-phase=recording] .melody-count{background:var(--tint-danger);color:var(--color-danger-soft)}.melody-barlines{flex-wrap:wrap;gap:6px;display:flex}.melody-barlines>.melody-folder-note{flex-basis:100%}#solo-editor .melody-barline{gap:var(--space-2);padding-left:var(--space-2);font-size:var(--text-xs)}.melody-barline-icon{background:repeating-linear-gradient(currentColor 0 1px,#0000 1px 4px);flex:none;width:28px;height:17px;position:relative}.melody-barline-icon:before,.melody-barline-icon:after{content:"";position:absolute;top:0;bottom:0}.melody-barline-icon:after{border-left:1.5px solid;left:50%;transform:translate(-50%)}.melody-barline-icon[data-kind=double]:after{border-right:1.5px solid;width:4.5px}.melody-barline-icon[data-kind=final]:after{border-right:3.5px solid;width:5px}.melody-barline-icon[data-kind=start]:after{border-left-width:3.5px;border-right:1.5px solid;width:5px;transform:translate(-80%)}.melody-barline-icon[data-kind=end]:after{border-right:3.5px solid;width:5px;transform:translate(-20%)}.melody-barline-icon[data-kind=start]:before,.melody-barline-icon[data-kind=end]:before{background:radial-gradient(circle,currentColor 1.4px,#0000 1.6px) 50% 5px/3px 3px no-repeat,radial-gradient(circle,currentColor 1.4px,#0000 1.6px) 50% 9px/3px 3px no-repeat;width:3px}.melody-barline-icon[data-kind=start]:before{left:calc(50% + 5px)}.melody-barline-icon[data-kind=end]:before{left:calc(50% - 8px)}.melody-tab-row{gap:var(--space-3);display:grid}.melody-tab-row[hidden]{display:none}.melody-tab-row>.solo-palette-row{gap:6px;display:grid}.melody-tab-row .solo-palette-label{color:var(--color-text-soft);font-size:var(--text-sm)}#solo-editor .melody-tab-row .solo-frets{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%;display:grid}#solo-editor .melody-tab-row .solo-fret{min-width:0;min-height:var(--control-height-sm)}#solo-editor .solo-work{flex-direction:column;flex:1 1 0;min-width:0;min-height:0;padding:0;display:flex}.melody-paper-scroll{overscroll-behavior:contain;min-height:0;padding:var(--space-5) var(--space-5) var(--space-6);scrollbar-gutter:stable;flex:1;position:relative;overflow:auto}#solo-editor .solo-sheet{max-width:1400px;padding:var(--space-5) var(--space-6);margin:0 auto}#solo-editor .solo-sheet header{text-align:left;margin-bottom:0;padding-bottom:6px}#solo-editor .solo-sheet h2{font-size:var(--text-2xl);margin:5px 0}#solo-editor .solo-sheet header p{margin-right:var(--space-3);display:inline}#solo-editor .solo-sheet footer{margin-top:var(--space-3)}.solo-editable [data-chord-bar]{cursor:pointer}.solo-editable .solo-chord[data-chord-bar]:hover{fill:var(--score-accent)}.solo-chord-placeholder{fill:var(--score-muted);font:600 13px var(--font-ui)}.solo-chord-placeholder:hover{fill:var(--score-accent)}.solo-selection-note{fill:none;stroke:var(--score-accent);stroke-width:2px;pointer-events:none}.solo-note-hit{cursor:grab;touch-action:none}.solo-note-hit:active{cursor:grabbing}.solo-note-preview{color:var(--score-accent);fill:currentColor;stroke:currentColor;stroke-width:1.3px;opacity:.75}.solo-note-preview text{font:650 11px var(--font-ui)}#solo-editor>.melody-statusbar{align-items:center;gap:2px var(--space-4);min-height:36px;padding:4px var(--space-4);border-top:1px solid var(--color-border);background:var(--color-surface-raised);flex-wrap:wrap;grid-row:4;margin:0;display:flex}#solo-editor .solo-selection-text{min-width:0;min-height:0;color:var(--color-text);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;flex:320px;margin:0;line-height:1.5;overflow:hidden}#solo-selection{color:var(--color-highlight-strong);font-weight:var(--weight-semibold)}.solo-hint{margin-left:var(--space-2);color:var(--color-text-soft)}.melody-status{color:var(--color-text);font-size:var(--text-xs);flex:0 auto;margin:0 0 0 auto;line-height:1.5}.melody-status:empty{display:none}.melody-status.error{color:var(--color-danger-soft)}#solos-panel:has(#solo-editor:not([hidden]))>#solo-notice:not([hidden]){bottom:calc(env(safe-area-inset-bottom) + 52px);z-index:95;width:max-content;max-width:min(560px,100vw - 32px);box-shadow:var(--shadow-overlay);pointer-events:none;margin:0;position:fixed;left:50%;transform:translate(-50%)}#solos-panel:has(#melody-preview:not([hidden]))>#solo-notice{display:none}.melody-preview{z-index:30;min-height:0;padding:var(--space-5);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-raised);box-shadow:var(--shadow-overlay), 0 0 0 100vmax color-mix(in oklch, var(--color-backdrop) 40%, transparent);flex-direction:column;display:flex;position:absolute;inset:60px 16px 16px;overflow:auto}.melody-preview h3{margin:0 0 var(--space-3);font-size:var(--text-xl)}.melody-preview p{margin:var(--space-2) 0;font-size:var(--text-sm)}.melody-review-controls{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.melody-review-controls input{width:65px;min-height:var(--control-height-sm);border-radius:var(--radius-xs);padding:0 6px}#melody-offset-hint{max-width:340px;color:var(--color-text-muted);font-size:var(--text-xs)}.melody-preview audio{width:100%;height:44px;margin-bottom:var(--space-2);flex-shrink:0}.melody-preview .solo-score{min-height:180px;margin-bottom:var(--space-3);border-radius:var(--radius-sm);background:var(--score-paper);flex:1;overflow:auto}@media (width<=1439px){.melody-palettes-toggle .melody-tool-name{display:none}}@media (width>=780px) and (height<=760px){#solo-editor>.melody-topbar{min-height:46px;padding-block:4px}#solo-editor>.solo-notation-toolbar{padding-block:3px}#solo-editor .melody-tool,.melody-tuplet select{min-width:36px;min-height:36px}#solo-editor>.melody-statusbar{min-height:30px;padding-block:2px}.melody-paper-scroll{padding:var(--space-3)}#solo-editor .solo-sheet{padding:var(--space-3) var(--space-4)}#solo-editor .solo-sheet h2{font-size:var(--text-xl)}.melody-folder>summary{min-height:40px}}@media (width<=779px){#solo-editor>.melody-topbar{gap:6px var(--space-2);min-height:0;padding:6px max(8px, env(safe-area-inset-left));grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"back heading history more""actions actions actions actions"}.melody-back{grid-area:back}.melody-history{grid-area:history}.melody-heading{flex-direction:column;grid-area:heading;align-items:flex-start;gap:0}.melody-heading-title{max-width:100%;font-size:var(--text-md)}#solo-editor .solo-save-state{font-size:var(--text-xs)}#solo-editor .melody-more{grid-area:more}#solo-editor .rep-editor-actions{scrollbar-width:none;grid-area:actions;gap:6px;padding-bottom:2px;overflow-x:auto}#solo-editor .rep-editor-actions .switch{margin-right:auto}.melody-long-label{display:none}#solo-editor>.solo-notation-toolbar{scrollbar-width:none;flex-wrap:nowrap;padding:4px 8px;overflow-x:auto}#solo-editor .melody-palettes-toggle{z-index:1;box-shadow:8px 0 8px -4px var(--color-surface-raised);position:sticky;left:-8px}#solo-editor .melody-palettes-toggle:not([aria-expanded=true]){background:var(--color-surface-raised)}#solo-editor .melody-tool{min-width:36px;padding:0 4px}.melody-rule{display:none}#solo-editor .solo-sidebar{z-index:40;width:min(340px,88vw);padding-bottom:calc(env(safe-area-inset-bottom) + var(--space-6));border-right:1px solid var(--color-border-strong);box-shadow:var(--shadow-overlay);position:fixed;top:0;bottom:0;left:0}#solo-editor .solo-editor-layout:has(>.solo-sidebar:not([hidden])):after{content:"";z-index:39;background:color-mix(in oklch, var(--color-backdrop) 40%, transparent);position:fixed;inset:0}.melody-paper-scroll{padding:var(--space-2) var(--space-2) var(--space-3)}#solo-editor .solo-sheet{padding:10px 4px}#solo-editor .solo-sheet h2{font-size:var(--text-xl)}#solo-editor>.melody-statusbar{min-height:30px;padding:2px var(--space-3)}.solo-hint{display:none}.melody-preview{padding:var(--space-3);inset:54px 4px 4px}#solos-panel:has(#solo-editor:not([hidden]))>#solo-notice:not([hidden]){bottom:calc(env(safe-area-inset-bottom) + 40px);max-width:calc(100vw - 16px)}}@media (width<=380px){.melody-play-label{display:none}#solo-editor .rep-editor-actions .rep-button{padding:0 var(--space-2)}}@media print{#solo-editor:not([hidden]){padding:0;display:block;position:static;overflow:visible}.melody-topbar,.solo-notation-toolbar,#solo-sidebar,.melody-statusbar{display:none!important}#solo-editor .solo-editor-layout,#solo-editor .solo-work,.melody-paper-scroll{background:0 0;height:auto;padding:0;display:block;overflow:visible}body:has(#solos-panel:not([hidden]) #solo-editor:not([hidden])){overflow:visible}}.register-panel{padding-bottom:var(--space-6);color:var(--color-text)}.register-panel h2{font-size:var(--text-3xl)}.register-panel h3{font-size:var(--text-2xl)}.register-panel h4{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-display);letter-spacing:var(--tracking-display)}.reg-intro{margin:var(--space-6) 0 var(--space-8)}.reg-muted{margin:var(--space-3) 0;color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.reg-surface{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.reg-agenda-preview,.reg-next{border-color:var(--edge-spotlight);background:var(--color-spotlight)}.reg-between,.reg-section-heading,.reg-profile-controls{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.reg-section-heading{margin:var(--space-7) 0 var(--space-3);flex-wrap:wrap}.reg-text-button,.reg-card-open{text-align:left}.reg-card-open{width:100%;display:flex}.reg-overview{gap:var(--space-5);grid-template-columns:minmax(0,34rem);display:grid}.reg-agenda-preview{padding:var(--space-7)}.reg-toolbar{gap:var(--space-3);margin:var(--space-6) 0;display:flex}.reg-toolbar>input{flex:260px;width:0}.reg-toolbar>select{flex:0 230px;width:auto}.register-panel.is-teacher{gap:var(--space-6);display:grid}.reg-detail{min-width:0;container:register/inline-size}@media (width>=1024px){.register-panel.is-teacher{grid-template-columns:minmax(16rem,21rem) minmax(0,1fr);align-items:start}.register-panel.is-teacher>.reg-message{grid-column:1/-1}.register-panel.is-teacher>.reg-list{top:var(--space-4);max-height:calc(100dvh - var(--space-8));scrollbar-width:thin;position:sticky;overflow-y:auto}.register-panel.is-teacher .reg-profile-controls{display:none}}@media (width<=1023px){.register-panel.is-teacher.has-selection>.reg-list,.register-panel.is-teacher:not(.has-selection)>.reg-detail{display:none}}.reg-list{align-content:start;gap:var(--space-3);min-width:0;display:grid}.reg-list-summary{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.reg-list-search{width:100%}.reg-list-filters{gap:var(--space-2);flex-wrap:wrap;display:flex}.reg-list-filters .count{margin-left:var(--space-1);font-variant-numeric:tabular-nums}.reg-student-list{margin:0;padding:0;list-style:none}.reg-student-card+.reg-student-card{border-top:1px solid var(--color-border)}.reg-student-card>.row{min-height:64px}.reg-student-card .row-trail{flex-wrap:wrap;justify-content:flex-end;max-width:45%}.reg-list-empty{padding:var(--space-5) var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm)}.reg-list-actions{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.register-panel.has-selection .reg-add-student{--btn-bg:transparent;--btn-fg:var(--color-action-text);--btn-border:var(--color-action-border)}@media (width<=639px){.portal-shell[data-nav] .register-panel:not(.has-selection) .reg-add-student{right:var(--space-4);bottom:calc(76px + env(safe-area-inset-bottom) + var(--space-4));z-index:var(--z-nav);min-height:56px;padding:0 var(--space-6) 0 var(--space-5);font-size:var(--text-md);border-radius:18px;position:fixed;box-shadow:0 12px 28px -12px oklch(0% 0 0/.7)}.portal-shell[data-nav] .register-panel.is-teacher:not(.has-selection){padding-bottom:calc(56px + var(--space-7))}}.reg-avatar{--tone:var(--category-students);border:1px solid color-mix(in oklch, var(--tone) 40%, transparent);background:color-mix(in oklch, var(--tone) 16%, transparent);width:40px;height:40px;color:var(--color-text);font-size:var(--text-sm);letter-spacing:.01em;border-radius:50%;flex:none;place-items:center;font-weight:650;display:grid}.reg-avatar.is-large{width:64px;height:64px;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-display)}.reg-avatar[data-tone=mint]{--tone:var(--category-calendar)}.reg-avatar[data-tone=blue]{--tone:var(--category-recordings)}.reg-avatar[data-tone=violet]{--tone:var(--category-melody)}.reg-avatar[data-tone=orange]{--tone:var(--category-theory)}.reg-avatar[data-tone=pink]{--tone:var(--category-songs)}.reg-chip{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.reg-level-strip{width:100%;margin:var(--space-4) 0}.reg-level-strip .reg-between{color:var(--tone,var(--color-highlight-strong));font-size:var(--text-sm)}.reg-level-strip .reg-between span:last-child{color:var(--color-text-muted)}.reg-level-strip progress{appearance:none;width:100%;height:4px;margin-top:var(--space-3);border-radius:var(--radius-full);background:var(--color-surface-selected);color:var(--tone,var(--color-highlight));border:0;display:block;overflow:hidden}.reg-level-strip progress::-webkit-progress-bar{background:var(--color-surface-selected)}.reg-level-strip progress::-webkit-progress-value{border-radius:var(--radius-full);background:var(--tone,var(--color-highlight))}.reg-level-strip progress::-moz-progress-bar{background:var(--tone,var(--color-highlight))}.reg-next-compact{margin:var(--space-5) 0 var(--space-1);padding:var(--space-4) 0;border-block:1px solid var(--color-border)}.reg-next-compact .eyebrow,.reg-next-compact .reg-eyebrow{margin-bottom:var(--space-2)}.reg-next-compact p:last-child{font-size:var(--text-sm);margin:0}.reg-profile-controls{margin:var(--space-3) 0 var(--space-6)}.reg-profile-controls>select{width:auto;min-width:250px;max-width:100%}.reg-profile-controls>button{white-space:nowrap}.reg-profile-controls:empty{display:none}.reg-profile-head{align-items:center;gap:var(--space-4);margin:0 0 var(--space-5);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.reg-profile-words h2{font-size:var(--text-3xl);overflow-wrap:anywhere}.reg-level-hero{gap:var(--space-1);width:min(100%,22rem);margin-top:var(--space-2);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:grid}.reg-level-label{color:var(--color-text-muted);font-size:var(--text-sm)}.reg-level-hero .reg-level-strip{margin:0}.reg-level-hero .reg-level-strip .reg-between{display:none}.reg-profile-actions{align-items:center;gap:var(--space-2);display:flex}@container register (width<=36rem){.reg-profile-head{grid-template-columns:auto minmax(0,1fr)}.reg-profile-actions{grid-column:1/-1}}.reg-more{position:relative}.reg-more-toggle{width:var(--control-height);height:var(--control-height);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);color:var(--color-text-soft);font-size:var(--text-lg);cursor:pointer;place-items:center;line-height:1;list-style:none;display:grid}.reg-more-toggle::-webkit-details-marker{display:none}.reg-more-items{top:calc(100% + var(--space-1));z-index:var(--z-sticky);min-width:14rem;padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-raised);box-shadow:var(--shadow-overlay);display:grid;position:absolute;right:0}.reg-note-callout{justify-items:start;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-5);border-color:var(--edge-highlight);background:color-mix(in oklch, var(--color-highlight) 7%, var(--color-surface));order:-2;grid-column:1/-1;display:grid}.reg-note-callout h3{font-size:var(--text-xl)}.reg-note-callout .reg-muted{margin:0}.reg-note-callout-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.reg-tabs{gap:var(--space-1);border-bottom:1px solid var(--color-border);scrollbar-width:none;margin-bottom:2px;display:flex;overflow-x:auto}.reg-tab{min-height:var(--control-height);padding:var(--space-3) var(--space-5);color:var(--color-text-muted);font:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold);cursor:pointer;transition:color var(--duration-fast) var(--ease-standard);background:0 0;border:0;border-bottom:2px solid #0000;flex:none}.reg-tab:hover{color:var(--color-text)}.reg-tab[aria-pressed=true]{border-bottom-color:var(--color-highlight);color:var(--color-text)}.reg-path-layout{gap:var(--space-6);grid-template-columns:minmax(0,1fr) 300px;display:grid}.reg-sidebar{gap:var(--space-5);padding-top:var(--space-8);flex-direction:column;display:flex}.reg-next,.reg-stats,.reg-attendance{padding:var(--space-6)}.reg-next h3,.reg-stats h3,.reg-attendance h3{font-size:var(--text-2xl)}.reg-attendance-recent{gap:var(--space-1);margin:var(--space-2) 0 var(--space-5);color:var(--color-text-soft);font-size:var(--text-sm);flex-direction:column;padding:0;list-style:none;display:flex}.reg-makeup-row{align-items:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.reg-makeup-row p{flex:auto;margin:0}.reg-attendance-reminder{margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.reg-next{align-items:center;column-gap:var(--space-4);padding:var(--space-4) var(--space-5);flex-wrap:wrap;display:flex}.reg-next>:is(.reg-eyebrow,h3,.reg-muted){flex-basis:100%}.reg-next h3{font-size:var(--text-xl)}.reg-next .reg-eyebrow{margin:0}.reg-next .reg-muted{margin:var(--space-1) 0}.reg-next .reg-text-button{display:inline-flex}.reg-stats h3{margin-bottom:var(--space-5)}.reg-stats select{width:100%}.reg-metric{gap:var(--space-2);margin-top:var(--space-4);font-size:var(--text-sm);grid-template-columns:1fr auto;display:grid}.reg-metric strong{color:var(--color-success)}.reg-metric meter{grid-column:1/-1;width:100%;height:8px}.reg-metric meter::-webkit-meter-bar{background:var(--color-surface-selected);border:0}.reg-metric meter::-webkit-meter-optimum-value{background:var(--color-success)}.reg-stats-note{color:var(--color-success-soft);font-size:var(--text-sm);line-height:var(--leading-normal)}.reg-sparkline{height:54px;margin:var(--space-6) 0 var(--space-2);padding-top:var(--space-2);border-bottom:1px solid var(--color-border-strong);align-items:flex-end;gap:5px;display:flex}.reg-sparkline span{border-radius:var(--radius-xs) var(--radius-xs) 0 0;background:color-mix(in oklch, var(--color-success) 75%, transparent);flex:1;max-width:28px}.reg-materials{margin-top:var(--space-8)}.reg-materials>.reg-muted{max-width:70ch;margin-top:var(--space-2)}.reg-material-group+.reg-material-group{margin-top:var(--space-8)}.reg-material-list{margin-top:var(--space-3);border-top:1px solid var(--color-border);display:grid}.reg-material{border-bottom:1px solid var(--color-border)}.reg-material-summary{gap:2px var(--space-3);min-height:56px;padding:var(--space-3) 0;cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;list-style:none;display:grid}.reg-material-summary::-webkit-details-marker{display:none}.reg-material-summary:after{content:"›";color:var(--color-icon);font-size:var(--text-xl);transition:transform var(--duration-fast) var(--ease-standard);grid-area:1/2/span 3}.reg-material[open]>.reg-material-summary:after{transform:rotate(90deg)}.reg-material-kind{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase}.reg-material-title{overflow-wrap:anywhere;min-width:0}.reg-material-dates{color:var(--color-text-muted);font-size:var(--text-sm)}.reg-material>.reg-assignment{margin:0 0 var(--space-4)}.reg-history{margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.reg-history-toggle{min-height:var(--control-height);font-size:var(--text-lg);font-weight:var(--weight-semibold);cursor:pointer;align-items:center;display:flex}.reg-history>.reg-muted{max-width:70ch;margin-top:var(--space-2)}.reg-assignment{margin-top:var(--space-4);display:flex;overflow:hidden}.reg-score-art{--art:var(--category-songs);background:linear-gradient(transparent 14px, color-mix(in oklch, var(--art) 16%, transparent) 14px) center / 100% 15px, linear-gradient(135deg, color-mix(in oklch, var(--art) 22%, var(--color-surface)), color-mix(in oklch, var(--art) 8%, var(--color-surface)));width:92px;color:var(--art);font-family:var(--font-display);flex-shrink:0;place-items:center;font-size:3.5rem;display:grid}.reg-score-art.solos{--art:var(--category-melody)}.reg-score-art.recordings{--art:var(--category-recordings);background:linear-gradient(90deg, transparent 9px, color-mix(in oklch, var(--art) 16%, transparent) 9px) center / 11px 60px repeat-x, linear-gradient(135deg, color-mix(in oklch, var(--art) 22%, var(--color-surface)), color-mix(in oklch, var(--art) 8%, var(--color-surface)));font-size:3rem}.reg-assignment-body{min-width:0;padding:var(--space-6);flex:1}.reg-assignment .reg-between{align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.reg-assignment .reg-eyebrow{margin-bottom:var(--space-2)}.reg-assignment h4{overflow-wrap:anywhere}.reg-topic{margin-top:var(--space-5);color:var(--color-highlight-strong);font-size:var(--text-sm)}.reg-lesson-chip{align-items:center;gap:var(--space-2);margin:var(--space-3) 0 0;padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);color:var(--color-text);font-size:var(--text-xs);display:inline-flex}.reg-lesson-chip:before{content:"";background:var(--color-highlight);border-radius:50%;width:7px;height:7px}.reg-lesson-materials ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.reg-lesson-materials li{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.reg-lesson-material{overflow-wrap:anywhere}.reg-prose{margin-bottom:var(--space-4);color:var(--color-text-soft);font-size:var(--text-md);line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere}.reg-assignment blockquote{margin:var(--space-4) 0;padding:var(--space-1) 0 var(--space-1) var(--space-4);border-left:2px solid color-mix(in oklch, var(--color-success) 60%, transparent);color:var(--color-text-soft);font-size:var(--text-sm);white-space:pre-wrap;overflow-wrap:anywhere}.reg-assignment blockquote small{margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);display:block}.reg-assignment-notes h5{margin:var(--space-4) 0 var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.reg-assignment-notes .reg-prose{margin-bottom:0}.reg-assignment-notes.reg-private{margin-top:var(--space-4)}.reg-assignment-notes.reg-private h5{margin-top:0}.reg-assigned-audio:empty,.reg-assigned-audio>.reg-muted:empty{display:none}.reg-assigned-audio .recording-playback-tools{gap:var(--space-2);margin-bottom:var(--space-3)}.reg-assigned-audio>.reg-muted{margin-top:var(--space-3)}.reg-actions{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.reg-completed{margin-top:var(--space-6)}.reg-completed>summary{padding:var(--space-3) 0;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.reg-diary{margin-top:0}.reg-diary-navigation{align-items:center;gap:var(--space-2);margin:var(--space-4) 0;display:flex}.reg-diary-navigation select{flex:1;width:0;min-width:0}.reg-diary-navigation .reg-button{padding-inline:var(--space-3)}.reg-diary-search{align-items:center;gap:var(--space-2);margin:var(--space-4) 0;flex-wrap:wrap;display:flex}.reg-diary-search input{flex:160px;min-width:0}.reg-diary-entry{align-items:start;gap:var(--space-7);margin-top:var(--space-4);padding:var(--space-6);grid-template-columns:145px minmax(0,1fr) auto;display:grid}.reg-diary .reg-diary-entry{gap:var(--space-5);grid-template-columns:100px minmax(0,1fr)}.reg-diary-entry time{padding-top:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm)}.reg-diary-entry h4{font-size:var(--text-xl)}.reg-diary-entry h5{margin:var(--space-4) 0 var(--space-1);font-size:var(--text-sm)}.reg-diary-entry>.reg-text-button{grid-column:2;justify-self:start}.reg-lesson-body{min-width:0;padding-left:var(--space-5);border-left:1px solid var(--color-border)}.reg-lesson-row+.reg-lesson-row{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.reg-lesson-row h4{margin:0 0 var(--space-3);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:0}.reg-lesson-row .reg-eyebrow{margin:var(--space-2) 0}.reg-lesson-topic{margin-top:var(--space-4);padding-left:var(--space-4);border-left:1px solid var(--color-border-strong)}.reg-private{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px dashed var(--color-border-strong)}.reg-private summary{color:var(--color-text-muted);font-size:var(--text-sm)}.reg-diary .reg-section-heading,.reg-materials .reg-section-heading{gap:var(--space-3);flex-wrap:wrap}.reg-diary .reg-section-heading h3,.reg-materials .reg-section-heading h3{font-size:var(--text-2xl)}.reg-empty{margin-top:var(--space-4);padding:var(--space-7);color:var(--color-text-muted);font-size:var(--text-sm)}.reg-empty-symbol{margin-bottom:var(--space-4);color:var(--color-highlight);font-size:2.25rem;display:block}.register-panel:not(.is-teacher) .reg-detail{max-width:54rem}.reg-upcoming,.reg-past,.reg-path{margin-top:var(--space-6);justify-items:start;display:grid}.reg-upcoming>*,.reg-past>*,.reg-path>*{max-width:100%}.reg-path{gap:var(--space-2)}.reg-path>.reg-fold{width:100%}.register-panel .reg-group-title{margin:0 0 var(--space-2);font-size:var(--text-2xl)}.reg-group-title:focus{outline:none}.reg-upcoming-list{width:100%;margin:0;padding:0;list-style:none}.reg-upcoming-row{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);min-height:64px;padding:var(--space-3) 0;border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.reg-upcoming-words{justify-items:start;gap:2px;min-width:0;display:grid}.reg-upcoming-when{font-size:var(--text-md);font-weight:var(--weight-semibold);margin:0}.reg-upcoming-words .reg-muted{margin:0}.reg-upcoming-actions{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.reg-upcoming-actions .reg-muted{margin:0}.reg-past-list{gap:var(--space-2);width:100%;margin-top:var(--space-2);display:grid}.reg-past-entry,.reg-fold{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised)}.reg-past-head,.reg-fold-head{min-height:60px;padding:var(--space-3) var(--space-8) var(--space-3) var(--space-4);border-radius:inherit;cursor:pointer;gap:2px;list-style:none;display:grid;position:relative}.reg-past-head::-webkit-details-marker{display:none}.reg-fold-head::-webkit-details-marker{display:none}.reg-past-head:after,.reg-fold-head:after{content:"+";top:50%;right:var(--space-4);color:var(--color-text-soft);font-size:1.25rem;line-height:1;position:absolute;transform:translateY(-50%)}.reg-past-entry[open]>.reg-past-head:after,.reg-fold[open]>.reg-fold-head:after{content:"−"}.reg-past-head:hover,.reg-fold-head:hover{background:var(--color-surface)}.reg-past-day,.reg-fold-name{color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-semibold)}.reg-past-meta,.reg-fold-meta{color:var(--color-text-muted);font-size:var(--text-sm)}.reg-past-meta:empty{display:none}.reg-past-entry>.reg-lesson-body,.reg-fold>.reg-fold-body{margin:0 var(--space-4) var(--space-4);padding:var(--space-4) 0 0;border-top:1px solid var(--color-border);border-left:0}.reg-fold-body{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.reg-fold-body>.reg-muted{max-width:70ch;margin:0}.reg-fold-body>.reg-assignment{margin-top:0}.reg-fold-body>.reg-attendance,.reg-fold-body>.reg-milestone-intro{background:0 0;border:0;margin:0;padding:0}.reg-past-entry h5{margin:var(--space-3) 0 var(--space-1);font-size:var(--text-sm)}.reg-past .reg-diary-search{width:100%;margin:var(--space-2) 0}.reg-milestone-intro{margin:var(--space-7) 0 var(--space-6);padding:var(--space-8);position:relative;overflow:hidden}.reg-milestone-intro h3{font-size:var(--text-3xl);white-space:pre-line}.reg-milestone-intro .reg-level-strip{max-width:450px}.reg-orbit{color:color-mix(in oklch, var(--color-highlight) 20%, transparent);font-size:190px;line-height:1;position:absolute;top:20px;right:8%;transform:rotate(10deg)}.reg-milestone-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.reg-milestone{padding:var(--space-7) var(--space-5);text-align:center}.reg-milestone-symbol{width:72px;height:72px;margin:0 auto var(--space-5);border:1px solid color-mix(in oklch, var(--color-highlight) 32%, transparent);background:var(--tint-highlight);color:var(--color-highlight-strong);border-radius:50%;place-items:center;font-size:2.25rem;display:grid}.reg-milestone.ahead .reg-milestone-symbol{border-style:dashed;border-color:var(--color-border-control);color:var(--color-text-muted);background:0 0}.reg-milestone.reached{border-color:color-mix(in oklch, var(--color-highlight) 33%, transparent)}.reg-milestone h4{margin-bottom:var(--space-4)}.reg-milestone-note{max-width:650px;margin:var(--space-8) auto;text-align:center}.reg-message{padding:var(--space-3) var(--space-4);border:1px solid color-mix(in oklch, var(--color-success) 40%, transparent);border-radius:var(--radius-md);background:var(--tint-success);color:var(--color-success-soft);font-size:var(--text-sm);line-height:var(--leading-normal)}.reg-message.error{border-color:color-mix(in oklch, var(--color-danger) 50%, transparent);background:var(--tint-danger);color:var(--color-danger-soft)}.reg-dialog{--dialog-width:590px;overflow-y:auto}.reg-dialog .reg-muted{margin-bottom:var(--space-6)}.reg-form{gap:var(--space-5);flex-direction:column;display:flex}.reg-form label{gap:var(--space-2);flex-direction:column;display:flex}.reg-form input[type=checkbox]{align-self:flex-start}.reg-form .reg-actions{flex-wrap:nowrap;margin:0}.reg-form .reg-actions input{flex:1;width:100%}.reg-form .reg-muted{margin:0}.reg-dialog-footer{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--color-border);display:flex}@media (width<=1100px){.reg-score-art{width:60px}.reg-assignment-body{padding:var(--space-5)}}@media (width<=800px){.reg-overview{grid-template-columns:1fr}.reg-diary-entry{gap:var(--space-3);grid-template-columns:1fr auto}.reg-diary-entry time{grid-column:1/-1}.reg-milestone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.reg-toolbar{flex-wrap:wrap}.reg-toolbar>input{flex-basis:100%;width:100%}.reg-toolbar>select{width:0;padding-inline:var(--space-3) 2.25rem;flex:1}.reg-profile-controls{align-items:start;gap:var(--space-2);flex-direction:column}.reg-profile-controls>select{width:100%}.reg-section-heading{align-items:start;gap:var(--space-3)}.reg-score-art{width:40px;font-size:2.25rem}.reg-assignment-body{padding:var(--space-5) var(--space-4)}.reg-assignment .reg-between{gap:0 var(--space-2)}.reg-diary-entry{padding:var(--space-5);display:block}.reg-diary-entry time{margin-bottom:var(--space-3);display:block}.reg-diary-entry .reg-text-button{margin-top:var(--space-1)}.reg-diary{margin-top:var(--space-7)}.reg-diary-navigation{flex-wrap:wrap}.reg-diary-navigation select{flex-basis:100%;order:-1;width:100%}.reg-diary-navigation button{flex:1}.reg-diary .reg-diary-entry{gap:var(--space-4);grid-template-columns:minmax(0,1fr)}.reg-diary-entry>.reg-text-button{grid-column:1}.reg-lesson-body{border-left:0;padding-left:0}.reg-milestone-intro{padding:var(--space-7)}.reg-orbit{font-size:120px;top:95px;right:-15px}.reg-milestone{padding:var(--space-6) var(--space-3)}.reg-milestone-grid{gap:var(--space-3)}}@container register (width<=52rem){.reg-path-layout{grid-template-columns:minmax(0,1fr)}.reg-sidebar{display:contents}.reg-path-layout>div{order:0}.reg-path-layout .reg-next{margin-top:var(--space-6);order:-1}.reg-path-layout .reg-stats{order:1}}.recordings-panel{width:100%;min-width:0}.recordings-intro{max-width:760px;margin:0 0 var(--space-6);color:var(--color-text-muted)}.recording-workspace{align-items:start;gap:var(--space-6);grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);display:grid}.recording-studio{gap:var(--space-6);display:grid}.recording-capture,.recording-detail,.recording-library{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:clamp(18px,2.2vw,28px)}.recordings-panel section,.recording-workspace>*,.recording-studio,.recordings-panel .portal-form,.recordings-panel label{min-width:0}.recordings-panel h2{margin:0 0 var(--space-5);font-size:var(--text-2xl);overflow-wrap:anywhere}.recording-fields{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 160px;display:grid}.recording-transport{align-items:center;gap:var(--space-3);padding-top:var(--space-1);grid-template-columns:auto minmax(0,1fr);display:grid}.recording-buttons{gap:var(--space-2);flex-wrap:wrap;grid-column:1/-1;display:flex}.recording-clock{min-width:80px;color:var(--color-text);font-family:var(--font-display);font-size:var(--text-3xl);font-variant-numeric:tabular-nums}[data-recording=recording] .recording-clock{color:var(--color-danger-soft)}#recording-state,#recording-save-status{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.recording-capture .portal-help{margin:var(--space-4) 0 0}.recording-detail{border-color:color-mix(in oklch, var(--color-highlight) 40%, transparent)}.recording-detail h2{margin-bottom:var(--space-2)}.recording-player{min-width:0}.recording-player audio{width:100%;min-width:0;margin:var(--space-4) 0;display:block}.recording-seek{gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);display:grid}.recording-seek input[type=range]{border:0;width:100%;min-height:24px;padding:0}.recording-playback-tools{align-items:center;gap:var(--space-2);margin:var(--space-3) 0 var(--space-5);flex-wrap:wrap;display:flex}.recording-playback-tools label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:inline-flex}.recording-playback-tools select{width:auto}.recording-playback-tools .portal-help{margin:0}.recording-playback-tools button,.recordings-panel .portal-button{white-space:normal;overflow-wrap:anywhere;max-width:100%}.recording-rename,.recording-search{align-items:end;gap:var(--space-2);display:flex}.recording-search{margin-top:var(--space-5)}.recording-rename label,.recording-search label{flex:1}.recording-rename-details{margin-top:var(--space-5);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.recording-rename-details summary{padding-block:var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.recording-rename-details[open] summary{margin-bottom:var(--space-3)}.recording-library .portal-heading{align-items:center;gap:var(--space-3);flex-flow:wrap;margin-bottom:0}.recording-library .portal-heading h2{margin:0}#recording-list-status{color:var(--color-text-muted);font-size:var(--text-sm)}.recording-list{gap:var(--space-1);max-height:680px;margin:var(--space-4) 0;display:grid;overflow-y:auto}.recording-item{gap:var(--space-2) var(--space-4);padding:var(--space-4) var(--space-3);border-bottom:1px solid var(--color-border);border-radius:var(--radius-sm);grid-template-columns:minmax(0,1fr) auto;display:grid}.recording-item.is-selected{background:var(--tint-highlight);border-bottom-color:#0000}.recording-item h3{font-family:var(--font-ui);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:0;line-height:var(--leading-normal);overflow-wrap:anywhere;margin:0}.recording-item p{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.recording-item button{grid-area:1/2/3;align-self:center}.recording-teaching{justify-content:space-between;align-items:center;gap:var(--space-6);margin-bottom:var(--space-6);padding:0 0 var(--space-6);border-bottom:1px solid var(--color-border);display:flex}.recording-teaching p{max-width:75ch;margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.recording-teaching button{flex-shrink:0}@media (width<=1000px){.recording-workspace{grid-template-columns:minmax(0,1fr)}.recording-list{max-height:none}}@media (width<=570px){.recording-fields{grid-template-columns:minmax(0,1fr)}.recording-rename,.recording-search,.recording-teaching{flex-direction:column;align-items:stretch}.recording-teaching{gap:var(--space-3)}.recording-item{grid-template-columns:minmax(0,1fr)}.recording-item button{grid-area:auto/1;justify-self:start}.recording-library .portal-heading{align-items:flex-start}}.files-panel{width:100%;min-width:0}.files-intro{max-width:760px;margin:0 0 var(--space-6);color:var(--color-text-muted)}.files-workspace{align-items:start;gap:var(--space-6);grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);display:grid}.files-studio{gap:var(--space-6);display:grid}.files-upload,.files-detail,.files-library{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:clamp(18px,2.2vw,28px)}.files-panel section,.files-workspace>*,.files-studio,.files-panel .portal-form,.files-panel label{min-width:0}.files-panel h2{margin:0 0 var(--space-5);font-size:var(--text-2xl);overflow-wrap:anywhere}.files-link-form{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.files-detail{border-color:color-mix(in oklch, var(--color-highlight) 40%, transparent)}#files-preview img,#files-preview video{width:100%;max-height:420px;margin:var(--space-4) 0;object-fit:contain;border-radius:var(--radius-md);display:block}#files-preview audio{width:100%;margin:var(--space-4) 0;display:block}.files-rename,.files-search{align-items:end;gap:var(--space-2);display:flex}.files-search{margin-top:var(--space-5)}.files-rename label,.files-search label{flex:1}.files-rename-details{margin-top:var(--space-5);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.files-rename-details summary{padding-block:var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.files-rename-details[open] summary{margin-bottom:var(--space-3)}.files-library .portal-heading{align-items:center;gap:var(--space-3);flex-flow:wrap;margin-bottom:0}.files-library .portal-heading h2{margin:0}.files-panel :is(.files-path,.group-head)[hidden]{display:none}.files-path{align-items:center;gap:var(--space-2);margin-top:var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.files-path-here{min-width:0;color:var(--color-text);font-weight:var(--weight-semibold);overflow-wrap:anywhere}.files-library .group-head{margin:var(--space-5) var(--space-1) var(--space-2)}#files-folder-list{background:var(--color-surface-raised)}#files-folder-list .row-title{overflow-wrap:anywhere;white-space:normal}.files-item-folder{text-overflow:ellipsis;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}#files-list-status{color:var(--color-text-muted);font-size:var(--text-sm)}.files-list{gap:var(--space-1);max-height:680px;margin:var(--space-4) 0;display:grid;overflow-y:auto}.files-item{gap:var(--space-2) var(--space-4);padding:var(--space-4) var(--space-3);border-bottom:1px solid var(--color-border);border-radius:var(--radius-sm);grid-template-columns:minmax(0,1fr) auto;display:grid}.files-item.is-selected{background:var(--tint-highlight);border-bottom-color:#0000}.files-item h3{font-family:var(--font-ui);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:0;line-height:var(--leading-normal);overflow-wrap:anywhere;margin:0}.files-item p{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.files-item button{grid-area:1/2/3;align-self:center}@media (width<=1000px){.files-workspace{grid-template-columns:minmax(0,1fr)}.files-list{max-height:none}}@media (width<=570px){.files-rename,.files-search{flex-direction:column;align-items:stretch}.files-item{grid-template-columns:minmax(0,1fr)}.files-item button{grid-area:auto/1;justify-self:start}.files-library .portal-heading{align-items:flex-start}}.tracks-panel{width:100%;min-width:0}.tracks-workspace{align-items:start;gap:var(--space-6);grid-template-columns:minmax(260px,340px) minmax(0,1fr);display:grid}.tracks-library,.tracks-player,.tracks-library>*,.tracks-player>*{min-width:0}.tracks-intro{margin:0 0 var(--space-4)}.tracks-sources{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.tracks-subtitle{margin:var(--space-3) var(--space-1) var(--space-2);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-muted);font-weight:600}.tracks-library .group-head h2{font:inherit;margin:0}.tracks-row{text-align:start;cursor:pointer;width:100%;min-height:60px}.tracks-row[aria-current=true]{background:var(--color-surface-selected)}.tracks-row[aria-current=true] .lead-icon{color:var(--color-highlight)}.tracks-row .row-title,.tracks-row .row-meta{overflow-wrap:anywhere}.tracks-player{gap:var(--space-5);padding:clamp(16px,2vw,28px);display:grid}.tracks-close{justify-self:start}.tracks-head{align-items:flex-start;gap:var(--space-3);display:flex}.tracks-head-text{flex:1;min-width:0}.tracks-title{font-family:var(--font-display);font-size:var(--text-2xl);overflow-wrap:anywhere;margin:0;line-height:1.15}.tracks-head .help{margin:var(--space-1) 0 0}.tracks-role{margin:calc(-1 * var(--space-3)) 0 0}.tracks-role:empty{display:none}.tracks-deck{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);display:grid}.tracks-wave-box{height:128px;position:relative}.tracks-wave{cursor:pointer;position:absolute;inset:0 0 12px}.tracks-wave-layer{background:var(--color-border-strong);position:absolute;inset:0;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.tracks-wave-layer.is-played{background:var(--color-mark);clip-path:inset(0 100% 0 0)}.tracks-wave-shade{background:var(--color-surface-raised);opacity:.75;pointer-events:none;width:0;position:absolute;top:0;bottom:0}.tracks-wave-shade[data-edge=start]{left:0}.tracks-wave-shade[data-edge=end]{right:0}.tracks-playhead{border-radius:var(--radius-full);background:var(--color-text);pointer-events:none;will-change:transform;width:2px;position:absolute;top:-4px;bottom:-4px;left:-1px}.tracks-deck:not(.is-loaded) .tracks-playhead,.tracks-deck:not(.is-loaded) .tracks-wave-layer{visibility:hidden}.tracks-position{width:100%;height:12px;accent-color:var(--color-highlight);margin:0;position:absolute;bottom:0;left:0;right:0}.tracks-handle{z-index:1;cursor:ew-resize;touch-action:none;width:44px;position:absolute;top:0;bottom:12px}.tracks-handle[data-edge=start]{margin-left:0}.tracks-handle[data-edge=end]{margin-left:-44px}.tracks-handle:before,.tracks-handle:after{content:"";background:var(--color-highlight);position:absolute}.tracks-handle:before{width:2px;top:0;bottom:0}.tracks-handle:after{border-radius:var(--radius-full);width:8px;height:32px;transition:transform var(--duration-fast) var(--ease-out-strong);top:50%;transform:translateY(-50%)}.tracks-handle[data-edge=start]:before,.tracks-handle[data-edge=start]:after{left:0}.tracks-handle[data-edge=end]:before,.tracks-handle[data-edge=end]:after{right:0}@media (hover:hover) and (pointer:fine){.tracks-handle:hover:after{transform:translateY(-50%)scaleY(1.15)}}.tracks-handle.is-dragging:after{transform:translateY(-50%)scaleY(1.15)}.tracks-handle:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.tracks-times{align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--color-text-muted);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.tracks-trim{justify-content:center;align-items:center;gap:var(--space-2);text-align:center;flex-wrap:wrap;min-width:0;display:flex}.tracks-transport{justify-content:center;align-items:center;gap:var(--space-3);display:flex}.tracks-skip{font-variant-numeric:tabular-nums;min-width:64px}.tracks-play{justify-content:center;align-items:center;gap:var(--space-2);border-color:var(--color-brand);border-radius:var(--radius-full);background:var(--color-brand);min-width:min(220px,50%);min-height:56px;color:var(--color-on-brand);letter-spacing:.06em;font-weight:700;display:inline-flex}@media (hover:hover) and (pointer:fine){.tracks-play:hover:not(:disabled){border-color:var(--color-brand-hover);background:var(--color-brand-hover)}}.tracks-play-icon{display:inline-flex}.tracks-play-icon .i{width:20px;height:20px}.tracks-tune{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tracks-control{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);grid-template-columns:minmax(0,1fr) auto;display:grid}.tracks-control-label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:600}.tracks-stepper{align-items:center;gap:var(--space-2);grid-template-columns:auto 5ch auto;display:grid}.tracks-stepper output{text-align:center;font-size:var(--text-lg);font-variant-numeric:tabular-nums;color:var(--color-text);font-weight:650}.tracks-original,.tracks-reset{justify-self:start}.tracks-original{grid-column:1/-1}@media (width<=1023px){.tracks-workspace{grid-template-columns:minmax(0,1fr)}.tracks-workspace.is-playing .tracks-library{display:none}}@media (width>=1024px){.tracks-close{display:none}}@media (width<=720px){.tracks-tune{grid-template-columns:minmax(0,1fr)}}@media (width<=639px){.tracks-deck{padding:var(--space-3)}.tracks-wave-box{height:96px}.tracks-transport{bottom:calc(76px + env(safe-area-inset-bottom) + var(--space-2));z-index:2;padding:var(--space-2);margin:0 calc(-1 * var(--space-2));border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface-raised);position:sticky}.tracks-play{flex:1;min-height:52px}}.tracks-stems{gap:var(--space-3);display:grid}.tracks-stems-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.tracks-stems-head h3{margin:0;font-family:inherit}.tracks-stems>.btn{justify-self:start}.tracks-stems p{margin:0}.tracks-stems p:empty{display:none}.tracks-stems-progress{appearance:none;border-radius:var(--radius-full);background:var(--color-surface-selected);width:100%;height:6px;color:var(--color-highlight);border:0;display:block;overflow:hidden}.tracks-stems-progress::-webkit-progress-bar{background:var(--color-surface-selected)}.tracks-stems-progress::-webkit-progress-value{border-radius:var(--radius-full);background:var(--color-highlight)}.tracks-stems-progress::-moz-progress-bar{border-radius:var(--radius-full);background:var(--color-highlight)}.tracks-stems-progress[hidden]{display:none}.tracks-stem-list{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.tracks-stem-list[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.tracks-stem-list[hidden]{display:none}.tracks-stem{gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--duration-fast) var(--ease-standard);display:grid}.tracks-stem.is-solo{border-color:var(--color-highlight)}.tracks-stem-toggle{justify-items:start;gap:var(--space-1);min-width:0;min-height:52px;padding:var(--space-2);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;text-align:start;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), transform var(--duration-instant) var(--ease-standard);background:0 0;border:0;display:grid}@media (hover:hover) and (pointer:fine){.tracks-stem-toggle:hover{background:var(--color-surface-hover)}}.tracks-stem-toggle:active{transform:scale(.98)}.tracks-stem-toggle .i{width:22px;height:22px;margin-bottom:var(--space-1);box-sizing:content-box;fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;border-radius:var(--radius-full);background:var(--tint-highlight);color:var(--color-highlight);transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);padding:9px;display:block}.tracks-stem-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.tracks-stem-state{font-size:var(--text-sm);color:var(--color-text-muted)}.tracks-stem.is-muted .tracks-stem-name{color:var(--color-text-muted);text-decoration:line-through;text-decoration-thickness:1px}.tracks-stem.is-muted .tracks-stem-toggle .i{background:var(--color-surface-selected);color:var(--color-text-muted)}.tracks-stem-solo{width:100%}.tracks-stem-solo[aria-pressed=true]{background:var(--color-highlight);border-color:var(--color-highlight);color:var(--color-on-highlight)}@media (width<=720px){.tracks-stem-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.tracks-separate-dialog{--dialog-width:480px}.tracks-separate-dialog form{gap:var(--space-3);display:grid}.tracks-separate-dialog h2,.tracks-separate-dialog p{margin:0}.tracks-separate-modes{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.metronome-panel{width:100%;min-width:0}.metronome-intro{margin:0 0 var(--space-6);color:var(--color-text-muted)}.metronome-workspace{align-items:stretch;gap:var(--space-6);grid-template-columns:minmax(0,1.25fr) minmax(260px,1fr);max-width:1000px;display:grid}.metronome-clock,.metronome-options{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-width:0;padding:clamp(20px,3vw,36px)}.metronome-clock{border-color:color-mix(in oklch, var(--color-highlight) 35%, transparent);text-align:center}.metronome-tempo-label{color:var(--color-text);font-size:var(--text-md)}.metronome-tempo-label span{color:var(--color-text-muted)}.metronome-tempo{align-items:center;gap:var(--space-3);margin:var(--space-2) 0 var(--space-4);grid-template-columns:48px minmax(0,1fr) 48px;display:grid}.metronome-tempo .portal-button{min-height:48px;padding:0;font-size:1.625rem}#metronome-bpm{width:100%;min-width:0;min-height:0;padding:var(--space-1) 0;border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-display);font-size:clamp(3rem,7vw,5rem);font-weight:var(--weight-display);text-align:center;appearance:textfield;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;line-height:1.15}#metronome-bpm::-webkit-inner-spin-button{appearance:none;margin:0}#metronome-bpm::-webkit-outer-spin-button{appearance:none;margin:0}.metronome-panel input[type=range]{border:0;width:100%;min-width:0;min-height:36px;padding:0}.metronome-beats{justify-content:center;gap:var(--space-2);margin:var(--space-7) 0 var(--space-3);flex-wrap:wrap;display:flex}.metronome-beats span{border:1px solid var(--color-border-control);width:40px;height:40px;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;display:grid}.has-accent .metronome-beats span:first-child{border-color:var(--color-mark)}.metronome-beats span.is-current{border-color:var(--color-text);background:var(--color-text);color:var(--color-on-highlight)}.metronome-beats span.is-hit{animation:metronome-pulse var(--duration-fast) var(--ease-standard)}.has-accent .metronome-beats span:first-child.is-current{border-color:var(--color-brand);background:var(--color-brand);color:var(--color-on-brand)}@keyframes metronome-pulse{0%{box-shadow:0 0 0 6px color-mix(in oklch, var(--color-mark) 35%, transparent);scale:1.18}}.metronome-position{min-height:22px;margin:0 0 var(--space-6);color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.metronome-toggle{min-width:150px;max-width:100%;min-height:48px}.metronome-status{min-height:22px;margin:var(--space-4) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.metronome-options{gap:var(--space-4)}.metronome-options h2{margin:0 0 var(--space-2)}.metronome-options label,.metronome-options select{min-width:0;max-width:100%}.metronome-tap{padding-top:var(--space-4);border-top:1px solid var(--color-border)}.metronome-tap .portal-help{margin:var(--space-2) 0 0}.metronome-help{max-width:60ch;margin-top:var(--space-6)}@media (width<=740px){.metronome-workspace{gap:var(--space-4);grid-template-columns:minmax(0,1fr)}}.theory-heading{justify-content:space-between;align-items:center;gap:var(--space-5);margin:0 0 var(--space-6);padding:var(--space-5) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);display:flex}.theory-heading .rep-kicker{display:none}.theory-heading h2{font-size:var(--text-xl);margin:0}.theory-heading p{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.theory-switch{flex-shrink:0}.theory-tabs{display:flex}.theory-tabs button{flex:1}.theory-collections{margin-top:var(--space-2)}.theory-collections button{min-width:0;padding-inline:var(--space-2)}.theory-saved-count{color:var(--color-text-muted);font-weight:var(--weight-medium)}[aria-pressed=true]>.theory-saved-count{color:inherit}.theory-workspace{align-items:start;gap:var(--space-6);grid-template-columns:minmax(240px,290px) minmax(0,1fr);display:grid}.theory-library,.theory-detail{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-width:0}.theory-library{padding:var(--space-4)}.theory-search,.theory-field{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.theory-library label{margin-top:var(--space-4)}.theory-count{margin:var(--space-5) 0 var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm)}.theory-list{gap:var(--space-1);scrollbar-width:thin;flex-direction:column;max-height:min(540px,70dvh);padding:2px;display:flex;overflow:auto}.theory-item{align-items:center;gap:var(--space-3);min-height:58px;padding:var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard);background:0 0;border:1px solid #0000;flex-shrink:0;display:flex}.theory-item:hover{background:var(--color-surface-hover)}.theory-item[aria-pressed=true]{border-color:color-mix(in oklch, var(--color-highlight) 55%, transparent);background:var(--tint-highlight)}.theory-item-mark{min-width:0;color:var(--category-theory);font-family:var(--score-font-chord);font-size:var(--text-lg);overflow-wrap:anywhere;flex:0 0 3.75rem;line-height:1.1}.theory-item-mark.is-long{font-size:var(--text-sm)}.theory-list[data-kind=scale] .theory-item-mark{flex-basis:1.25rem}.theory-item>span:last-child{min-width:0}.theory-item strong{font-size:var(--text-sm);overflow-wrap:anywhere;display:block}.theory-item small{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs);display:block}.theory-source{margin:var(--space-4) 0 0;padding-top:var(--space-4);border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-xs);line-height:var(--leading-normal)}.theory-detail{padding:clamp(18px,2.8vw,36px)}.theory-detail-heading{justify-content:space-between;align-items:start;gap:var(--space-3);display:flex}.theory-detail .rep-kicker{color:var(--category-theory)}.theory-detail h3{margin:var(--space-2) 0;font-size:var(--text-3xl);overflow-wrap:anywhere}.theory-badge{flex-shrink:0}.theory-tonic-row{align-items:end;gap:var(--space-6);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.theory-tonic-row label{min-width:140px}.theory-formula{margin:0 0 var(--space-2);color:var(--color-text-soft);font-size:var(--text-md);letter-spacing:.06em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.theory-tonics{gap:var(--space-2);margin:var(--space-4) 0 var(--space-6);flex-wrap:wrap;display:flex}.theory-tonics button{min-width:var(--control-height);min-height:var(--control-height);padding:0 var(--space-2);border:1px solid var(--color-border-control);border-radius:var(--radius-full);color:var(--color-text-soft);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);background:0 0}.theory-tonics button:hover{border-color:var(--color-border-hover);color:var(--color-text)}.theory-tonics button[aria-pressed=true]{border-color:var(--color-highlight);background:var(--color-highlight);color:var(--color-on-highlight)}.theory-notes{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.theory-note{min-width:49px;padding:var(--space-2) var(--space-3);border-left:1.5px solid var(--color-border-strong)}.theory-note:first-child{border-color:var(--color-highlight)}.theory-note strong{color:var(--color-text);font-size:var(--text-md);display:block}.theory-note small{color:var(--color-text-muted);font-size:var(--text-xs)}.theory-paper{border-radius:var(--radius-md);background:var(--score-paper);box-shadow:var(--shadow-paper);color:var(--score-ink);overflow:hidden}.theory-paper-head{justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid color-mix(in oklch, var(--score-line) 18%, transparent);color:var(--score-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);display:flex}.theory-score{min-height:185px;padding:var(--space-3);overflow:auto}.theory-score>svg{max-width:100%;height:auto;display:block}.theory-grip{padding:var(--space-2);border-radius:var(--radius-md);background:var(--score-paper);box-shadow:var(--shadow-paper);color:var(--score-ink);text-align:center;margin:0}.theory-grip figcaption{padding:var(--space-2);color:var(--score-ink);font-family:var(--score-font-chord);font-size:var(--text-lg)}.theory-diagram{width:100%;max-height:305px;display:block}.theory-diagram line{stroke:var(--score-muted);stroke-width:1px}.theory-diagram text{fill:var(--score-ink);font-family:var(--font-ui);font-size:var(--text-sm)}.theory-diagram .theory-nut{stroke:var(--score-ink);stroke-width:5px}.theory-diagram .theory-barre{stroke:var(--score-ink);stroke-width:23px;stroke-linecap:round}.theory-dot{--note-color:var(--score-ink)}.theory-dot circle{fill:var(--note-color);stroke:none}.theory-dot text{fill:var(--score-paper);font-weight:700}.theory-dot.is-tonic{--note-color:var(--score-accent)}.theory-dot .theory-root-ring{fill:none;stroke:var(--note-color);stroke-width:1.7px}.theory-dot.is-current{--note-color:var(--score-good)}.theory-positions{gap:var(--space-2);padding:var(--space-2);flex-wrap:wrap;display:flex}.theory-positions button{min-height:var(--control-height);padding:0 var(--space-3);border:1px solid color-mix(in oklch, var(--score-line) 35%, transparent);border-radius:var(--radius-full);color:var(--score-ink);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0}.theory-positions button[aria-pressed=true]{border-color:var(--score-accent);background:var(--score-accent-tint)}.theory-position-caption{margin:var(--space-1) var(--space-3);color:var(--score-muted);font-size:var(--text-sm)}.theory-assign-choice{margin-top:var(--space-2);border-top:1px solid color-mix(in oklch, var(--score-line) 20%, transparent);padding-top:var(--space-2)}.theory-assign-label{color:var(--score-ink);font-weight:var(--weight-semibold)}.theory-assign-choice button{min-width:var(--control-height)}.theory-assign-choice button[aria-pressed=true]:before{content:"✓ "}.theory-neck-scroll{overscroll-behavior-x:contain;padding:var(--space-1) 0 var(--space-2);overflow-x:auto}.theory-neck-scroll .theory-neck-diagram{width:min(100%, calc(var(--neck-units) * 1.4px));min-width:min(720px, calc(var(--neck-units) * 1px));max-height:none;margin-inline:auto}.theory-neck-band{fill:var(--score-accent-tint);stroke:var(--score-accent);stroke-width:1.2px;stroke-dasharray:4 4}.theory-inlay{fill:var(--score-paper-shade);stroke:none}.theory-neck-dot.is-long text{font-size:var(--text-xs);letter-spacing:-.02em}.theory-neck-dot.is-dim{opacity:.32}.theory-neck-dot.is-dim.is-tonic{opacity:.45}.theory-cell{fill:#0000;stroke:none}.theory-neck-diagram.is-selectable{touch-action:manipulation}@media (pointer:coarse){.theory-neck-scroll .theory-neck-diagram.is-selectable{min-width:min(960px, calc(var(--neck-units) * 1.12px))}}.theory-neck-diagram.is-selectable .theory-neck-dot{cursor:pointer;outline:none}.theory-neck-dot.is-selected .theory-cell{fill:var(--score-accent-tint);stroke:var(--score-accent);stroke-width:1.5px}@media (hover:hover){.theory-neck-diagram.is-selectable .theory-neck-dot:hover .theory-cell{stroke:var(--score-accent);stroke-width:1.5px}}.theory-neck-diagram.is-selectable .theory-neck-dot:focus-visible .theory-cell{stroke:var(--score-ink);stroke-width:3px}.theory-selection{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-highlight);border-radius:var(--radius-md);background:var(--tint-highlight);flex-wrap:wrap;display:flex}.theory-selection p{color:var(--color-text);font-size:var(--text-sm);line-height:var(--leading-normal);flex:260px;margin:0}.theory-selection p.error{color:var(--color-danger-soft)}.theory-legend{margin:var(--space-3) 0 var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.theory-options{gap:var(--space-3);padding:var(--space-4) 0;border-top:1px solid var(--color-border);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.theory-actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.theory-practice-note{margin:var(--space-6) 0 0;padding:var(--space-4) var(--space-5);border:1px solid color-mix(in oklch, var(--color-success) 35%, transparent);border-radius:var(--radius-md);background:var(--tint-success);color:var(--color-success-soft);font-size:var(--text-sm);line-height:var(--leading-normal)}.theory-practice-note strong{color:var(--color-text);font-size:var(--text-md);display:block}.theory-practice-board,.theory-practice-notes{border:1px solid color-mix(in oklch, var(--score-line) 20%, transparent);border-radius:var(--radius-md);background:0 0}.theory-practice-board{padding:var(--space-4)}.theory-practice-notes{gap:var(--space-2);padding:var(--space-4);flex-wrap:wrap;display:flex}.theory-practice-notes span{padding:var(--space-2) var(--space-3);border:2px solid var(--note-color,color-mix(in oklch, var(--score-line) 45%, transparent));border-radius:var(--radius-sm);color:var(--score-ink);font-size:var(--text-sm)}.theory-practice-notes .is-current{border-color:var(--score-good);background:var(--score-good);color:var(--score-paper)}@media (width<=1000px){.theory-workspace{gap:var(--space-4);grid-template-columns:240px minmax(0,1fr)}.theory-options{grid-template-columns:repeat(2,minmax(0,1fr))}.theory-heading{align-items:start}}@media (width<=740px){.theory-heading{align-items:stretch;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-4);flex-direction:column}.theory-heading h2{display:none}.theory-heading>div>p{margin:0}.theory-switch{align-self:stretch}.theory-switch button{padding:0 var(--space-2);flex:1}.theory-workspace{grid-template-columns:1fr}.theory-library{gap:0 var(--space-2);padding:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.theory-tabs,.theory-search,.theory-count,.theory-list,.theory-create,#theory-more{grid-column:1/-1}.theory-create{margin-top:var(--space-3)}.theory-list{max-height:170px}.theory-source{display:none}.theory-library label,.theory-count{margin-top:var(--space-3)}.theory-detail{padding:var(--space-4)}.theory-detail-heading{flex-wrap:wrap}.theory-detail-heading .rep-caption{overflow-wrap:anywhere;max-width:100%}.theory-grip{padding:0}.theory-score{padding:3px}.theory-paper-head{padding:var(--space-3) var(--space-2)}.theory-actions>button{flex:145px}.theory-tonic-row{gap:var(--space-3)}.theory-formula{font-size:var(--text-sm)}.theory-tonics{padding:2px 0 var(--space-2);flex-wrap:nowrap;overflow-x:auto}.theory-tonics button{flex-shrink:0}.theory-note{min-width:36px;padding:var(--space-1) 6px}.theory-note strong{font-size:var(--text-sm)}.theory-options{grid-template-columns:1fr}}.theory-note.is-current{border-color:var(--color-success);background:var(--tint-success)}.theory-description{margin:0 0 var(--space-2);color:var(--color-text-soft);font-size:var(--text-sm);line-height:var(--leading-normal)}.theory-examples{margin:0 0 var(--space-5)}.theory-create{width:100%;margin-top:var(--space-4)}.theory-list[data-kind=progression] .theory-item-mark{flex-basis:1.25rem}.theory-grips{gap:var(--space-3);padding:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(190px,1fr));display:grid}.theory-grip-button{gap:var(--space-1);min-width:0;padding:var(--space-2);border-radius:var(--radius-md);background:var(--score-paper);color:var(--score-ink);font:inherit;text-align:center;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard);border:2px solid #0000;flex-direction:column;display:flex}.theory-grip-button:hover{border-color:color-mix(in oklch, var(--score-line) 45%, transparent)}.theory-grip-button.is-current{border-color:var(--score-good)}.theory-grip-button .theory-diagram{max-height:230px}.theory-grip-caption{font-family:var(--score-font-chord);font-size:var(--text-md);line-height:1.2}.theory-grip-caption small{color:var(--score-muted);font-family:var(--font-ui);font-size:var(--text-xs);margin-top:2px;display:block}.theory-grips .theory-grip{min-height:120px;padding:var(--space-3);color:var(--score-muted);font-size:var(--text-sm);justify-content:center;align-items:center;display:flex}.theory-empty{margin:0}.theory-editor{--dialog-width:780px}.theory-editor-close{top:var(--space-3);right:var(--space-3);position:absolute}.theory-editor h2{margin:var(--space-1) 0 0;padding-right:var(--space-10)}.theory-editor-intro{margin:var(--space-2) 0 var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.theory-editor-head{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));display:grid}.theory-editor-steps{gap:var(--space-2);flex-direction:column;display:flex}.theory-step{align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:auto minmax(0,1fr) minmax(0,1.4fr) minmax(0,1.15fr) minmax(3rem,auto) auto;display:grid}.theory-step-index{min-width:1.5rem;color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:center}.theory-step-name{font-family:var(--score-font-chord);font-size:var(--text-md);text-align:center;overflow-wrap:anywhere}.theory-step-tools{gap:var(--space-1);display:flex}#theory-editor-add{margin-top:var(--space-3)}.theory-editor-preview{margin:var(--space-4) 0 0;color:var(--color-text-soft);font-size:var(--text-sm);line-height:var(--leading-normal);overflow-wrap:anywhere}#theory-editor-error{margin-top:var(--space-3)}.theory-editor-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5);display:flex}@media (width<=740px){.theory-grips{gap:var(--space-2);padding:var(--space-2);overscroll-behavior-x:contain;scroll-snap-type:x mandatory;display:flex;overflow-x:auto}.theory-grip-button,.theory-grips .theory-grip{scroll-snap-align:start;flex:0 0 200px}.theory-editor-head{grid-template-columns:repeat(2,minmax(0,1fr))}.theory-editor-name{grid-column:1/-1}.theory-step{grid-template-columns:auto minmax(0,1fr) auto}.theory-step-index{grid-area:1/1/span 4}.theory-step-tools{flex-direction:column;grid-area:1/3/span 4}.theory-step select,.theory-step-name{grid-column:2}}.tool-card[data-tool=abbonamento]{--tool-color:var(--category-billing)}.tool-card.is-locked .tool-open{background:color-mix(in oklch, var(--color-surface) 60%, transparent);border-style:dashed}.tool-card.is-locked .tool-icon,.tool-card.is-locked .tool-open strong{opacity:.72}.tool-lock{align-self:flex-start;margin-top:auto}.plan-banner{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);margin:0 0 var(--space-5);padding:var(--space-4) var(--space-5);border:1px solid color-mix(in oklch, var(--color-highlight) 35%, transparent);border-radius:var(--radius-md);background:var(--tint-highlight);flex-wrap:wrap;display:flex}.plan-banner-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.plan-banner p{color:var(--color-text);font-size:var(--text-sm);flex:22rem;margin:0}.plan-trial{color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-control);margin:0}.billing-panel{gap:var(--space-6);max-width:64rem;display:grid}.billing-panel>.notice,.billing-panel>.learning-section{margin:0}.billing-offer .plan-price-note{margin-bottom:var(--space-4)}.billing-current{padding:var(--space-6)}.billing-current h2{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-display)}.billing-current p{max-width:44rem}.billing-current .learning-actions{margin-top:var(--space-5)}.billing-current .notice-error{margin-bottom:0}.plan-choice{gap:var(--space-6);display:grid}.plan-choice-heading h2{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-display)}.plan-choice-heading p{max-width:44rem;color:var(--color-text-soft);margin:0}.plan-cards{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.plan-card{gap:var(--space-3);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;display:flex}.plan-card.is-featured{border-color:color-mix(in oklch, var(--color-accent) 55%, transparent);background:color-mix(in oklch, var(--color-accent) 6%, var(--color-surface))}.plan-cards[data-chosen=free] [data-plan=free],.plan-cards[data-chosen=pro] [data-plan=pro]{outline:2px solid var(--color-highlight);outline-offset:2px}.plan-card h3{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-display);margin:0}.plan-card>.btn,.plan-card>.plan-soon{margin-top:auto}.plan-price{color:var(--color-text-soft);font-size:var(--text-sm);margin:0}.plan-price strong{color:var(--color-text);font-family:var(--font-display);font-size:var(--text-display);font-weight:var(--weight-display);font-variant-numeric:tabular-nums;line-height:1}.plan-price-note,.plan-tagline{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.plan-soon{padding:var(--space-3) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-soft);font-size:var(--text-sm);margin:0}.plan-periods{grid-template-columns:repeat(3,minmax(0,1fr));align-self:stretch;display:grid}.plan-periods>button{gap:var(--space-1);padding:var(--space-2) var(--space-1);flex-direction:column}.plan-period-price{gap:var(--space-2);display:grid}.billing-current .plan-periods{max-width:32rem;margin-top:var(--space-4)}.billing-current .plan-period-price{margin:var(--space-4) 0}.plan-notify{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.plan-notify .help{margin:0}.plan-tagline{color:var(--color-text);font-weight:var(--weight-semibold)}.plan-points{gap:var(--space-2);margin:0 0 var(--space-3);padding:0;list-style:none;display:grid}.plan-points li{padding-left:var(--space-6);font-size:var(--text-sm);position:relative}.plan-points li:before{content:"";border-bottom:2px solid var(--color-success);border-left:2px solid var(--color-success);width:.9em;height:.5em;position:absolute;top:.35em;left:0;rotate:-45deg}.plan-consents{gap:var(--space-3);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.plan-consents .learning-check,#marketing-settings .learning-check{align-items:flex-start;gap:var(--space-3);color:var(--color-text);font-size:var(--text-sm);display:flex}.plan-consents input,#marketing-settings input{flex:none;width:1.25rem;height:1.25rem;margin:.1rem 0 0}.plan-code{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.plan-code label{gap:var(--space-2);max-width:22rem;font-size:var(--text-sm);flex:14rem;display:grid}.plan-code input{text-transform:uppercase}.plan-compare h3,.billing-offer h2,.billing-code h2,.billing-paused h2{margin:0 0 var(--space-4)}.plan-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.plan-table th,.plan-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.plan-table thead th{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.plan-table thead th:not(:first-child),.plan-table td{text-align:center;width:7rem}.plan-table tbody th strong{color:var(--color-text);display:block}.plan-table tbody th span{margin-top:var(--space-1);color:var(--color-text-muted);font-weight:var(--weight-regular);display:block}.plan-table svg{width:1.25rem;height:1.25rem;color:var(--color-icon);fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.plan-yes{color:var(--color-success)}.plan-no{color:var(--color-text-muted)}.billing-paused-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.billing-paused-list li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex-wrap:wrap;display:flex}.billing-paused-list li>span{gap:var(--space-1);overflow-wrap:anywhere;min-width:0;display:grid}.billing-paused-list li>span span{color:var(--color-text-muted);font-size:var(--text-sm)}#free-students{align-items:center;gap:var(--space-3);margin:var(--space-4) 0 0;flex-wrap:wrap;display:flex}#free-students[hidden]{display:none}@media (width<=760px){.plan-cards{grid-template-columns:minmax(0,1fr)}.plan-table th,.plan-table td{padding:var(--space-3) var(--space-2)}.plan-table thead th:not(:first-child),.plan-table td{width:3.5rem}}.school-panel{gap:var(--space-2);min-width:0;display:grid}.school-panel>.group-head:first-child{margin-top:0}.school-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.school-summary{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.school-empty{padding:var(--space-5) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);text-align:center;margin:0}.school-today{gap:var(--space-5) var(--space-7);margin-bottom:var(--space-5);display:grid}.school-today .today-side{grid-row:1}.school-today .today-main>.group-head:first-child{margin-top:0}.school-today .help{margin:var(--space-3) 0 0}@media (width>=1024px){.school-today{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:start}.school-today .today-main{grid-area:1/1}.school-today .today-side{grid-column:2}}.school-todo-words{gap:2px;display:grid}.school-todo-title{font-weight:var(--weight-semibold)}.school-todo-detail{color:var(--color-text-muted);font-size:var(--text-sm)}.school-month-head{margin-top:var(--space-4)}.school-sections{gap:var(--space-3);margin-top:var(--space-4);display:grid}.school-sections-list{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1024px){.school-sections-list{grid-template-rows:auto 1fr;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.school-area:first-child{grid-row:span 2}}.school-area{gap:var(--space-2);display:grid}.school-area-title{color:var(--color-text-soft);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-semibold);margin:0}.school-kpis{gap:var(--space-3);margin-top:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.school-kpi{min-width:0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.school-kpi-label{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium)}.school-kpi-value{color:var(--color-text);letter-spacing:-.01em;margin-top:2px;font-size:1.75rem;font-weight:650;line-height:1.15}.school-kpi-note{color:var(--color-text-muted);font-size:var(--text-xs);overflow-wrap:anywhere}@media (width<=639px){.school-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.school-avatar{background:color-mix(in oklch, var(--category-students) 18%, var(--color-surface));width:40px;height:40px;color:var(--category-students);font-size:var(--text-sm);border-radius:50%;flex:none;place-items:center;font-weight:650;display:grid}.school-person .row-meta+.row-meta{margin-top:0}@media (width<=639px){.school-panel .row:has(>.row-trail){flex-wrap:wrap}.school-panel .row:has(>.row-trail)>.row-trail{flex-basis:100%;justify-content:flex-end}}.school-dialog form{gap:var(--space-4);display:grid}.school-dialog .field,.school-choices{gap:var(--space-2);display:grid}.school-choices legend{margin-bottom:var(--space-2)}.school-choice{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;display:flex}.school-choice:has(input:checked){border-color:var(--edge-highlight);background:var(--tint-highlight)}.school-choice input{margin-top:2px}.school-choice-title{color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-semibold);display:block}.school-choice-text{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-regular);margin-top:2px;display:block}.school-choice:has(input:checked) .school-choice-text{color:var(--color-text-soft)}.school-dialog .check{align-items:center;gap:var(--space-3);min-height:var(--control-height);display:flex}.school-week{gap:var(--space-2);display:flex}.school-week-title{color:var(--color-text);font-size:var(--text-lg);font-weight:var(--weight-semibold);flex:12rem;margin:0}.school-filter{gap:var(--space-1);min-width:14rem;display:grid}.school-calendar-filters{align-items:end;gap:var(--space-3);flex-wrap:wrap;display:flex}.school-calendar-filters:not(:has(>:not([hidden]))){display:none}.school-day .group-head{margin-top:var(--space-5)}.school-day .row{width:100%;font:inherit;text-align:left}.school-day .row[data-tone=cancelled] .row-title{color:var(--color-text-muted);text-decoration:line-through}.school-grid-scroll{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);max-height:min(72vh,56rem);overflow:auto}.school-grid-scroll:focus-visible{box-shadow:var(--focus-ring);outline:none}.school-grid{grid-template-columns:3.5rem repeat(var(--columns), minmax(9rem, 1fr));min-width:calc(3.5rem + var(--columns) * 9rem);display:grid}.school-grid-head,.school-grid-body{display:contents}.school-grid-head>*{z-index:3;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface-raised);position:sticky;top:0}.school-grid-corner{z-index:4;left:0}.school-grid-title{border-left:1px solid var(--color-border);min-width:0}.school-grid-title b,.school-grid-title small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.school-grid-title b{color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.school-grid-title small{color:var(--color-text-muted);font-size:var(--text-xs)}.school-grid-hours{z-index:2;height:calc(var(--minutes) * 1px);background:var(--color-surface-raised);position:sticky;left:0}.school-grid-hours span{left:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;margin-top:2px;position:absolute}.school-grid-lane{height:calc(var(--minutes) * 1px);border-left:1px solid var(--color-border);background-image:repeating-linear-gradient(to bottom, var(--color-border) 0 1px, transparent 1px 60px);position:relative}.school-grid-event{--event-color:var(--color-highlight);left:var(--space-1);right:var(--space-1);z-index:1;min-height:28px;padding:var(--space-1) var(--space-2);border:1px solid color-mix(in oklch, var(--event-color) 50%, transparent);border-radius:var(--radius-xs);background:color-mix(in oklch, var(--event-color) 20%, var(--color-surface));color:var(--color-text);font:inherit;text-align:left;cursor:pointer;flex-direction:column;gap:2px;display:flex;position:absolute;overflow:hidden}.school-grid-event:hover{background:color-mix(in oklch, var(--event-color) 30%, var(--color-surface))}.school-grid-event-title,.school-grid-event-meta{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.school-grid-event-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1.25}.school-grid-event-meta{color:var(--color-text-soft);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.school-grid-event[data-tone=cancelled]{z-index:0;border-color:var(--color-border);background:var(--color-surface-raised);color:var(--color-text-muted);text-decoration:line-through}.school-event-when{color:var(--color-text-soft);margin:0}.school-grid-event[data-tone=waiting]{--event-color:var(--color-warning);border-style:dashed}.school-substitution{gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:grid}.school-substitution h3{color:var(--color-text);font-family:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold)}.school-substitution>p{margin:0}.school-substitution>.btn{justify-self:start}.school-candidates{gap:var(--space-2);display:grid}.school-candidates>.help{margin:0}.school-choice:has(input:disabled){cursor:default;border-style:dashed}.school-substitution-actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.school-section{gap:var(--space-3);margin-top:var(--space-5);display:grid}.school-section:first-child{margin-top:0}.school-section>h2{color:var(--color-text);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.school-section>p{max-width:64ch;margin:0}.school-section input[type=number]{width:10ch}.second-step{gap:var(--space-4);max-width:34rem;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);display:grid}.second-step h2{color:var(--color-text);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-display)}.second-step h2:focus{outline:none}.second-step-lead{color:var(--color-text-soft);margin:0}.second-step-steps{gap:var(--space-4);margin:0;padding-left:1.25rem;display:grid}.second-step-steps>li{gap:var(--space-2);padding-left:var(--space-1);display:grid}.second-step-steps strong{color:var(--color-text)}.second-step-qr{width:184px;height:184px;padding:var(--space-2);border-radius:var(--radius-sm);background:var(--score-paper)}.second-step-manual summary{min-height:var(--control-height);color:var(--color-link);font-size:var(--text-sm);font-weight:var(--weight-semibold);align-items:center;display:flex}.second-step-manual code{overflow-wrap:anywhere;color:var(--color-text);font-size:var(--text-md);letter-spacing:.08em}.second-step-form{gap:var(--space-3);display:grid}.second-step-code{gap:var(--space-2);max-width:14rem;display:grid}.second-step-code input{letter-spacing:.2em;font-variant-numeric:tabular-nums;font-size:1.25rem}.second-step-form .btn{justify-self:start}.second-step-scan:focus{outline:none}.second-step-scan>.btn{justify-self:start}.school-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.school-rooms{gap:var(--space-5);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=1024px){.school-rooms{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}}.school-rooms-sites,.school-rooms-list,.school-rooms-closures{gap:var(--space-3);min-width:0;display:grid}.school-rooms-closures>.group-head{margin-top:0}.school-rooms-empty h2{color:var(--color-text);font-size:var(--text-xl)}.school-site-head{background:var(--color-surface-raised)}.school-site-head .row-title{font-size:var(--text-md)}.school-site-empty{padding:var(--space-3) var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.school-room .row-meta+.row-meta{margin-top:0}.school-closure .row-meta,.school-room .row-meta,.school-site-head .row-meta{white-space:normal}.school-date-chip{border-radius:var(--radius-sm);background:var(--color-surface-selected);text-align:center;flex:none;align-content:center;place-items:center;width:46px;height:46px;line-height:1.1;display:grid}.school-date-chip b{color:var(--color-text);font-size:var(--text-md);font-weight:650}.school-date-chip small{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.school-dates{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.school-students-filters{gap:var(--space-3);flex-wrap:wrap;display:flex}.school-students{gap:var(--space-5);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=1024px){.school-students{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}}.school-students-list{gap:var(--space-3);min-width:0;display:grid}.school-student-row{width:100%;font:inherit;text-align:left}.school-student-row[aria-current=true]{background:var(--tint-highlight)}.school-student{gap:var(--space-2);min-width:0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.school-student .group-head{margin-top:var(--space-4)}.school-student>p{margin:0}.school-student-head{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.school-student-who{flex:12rem;min-width:0}.school-student-who h2:focus{outline:none}.school-student-who h2{scroll-margin-top:var(--space-6);color:var(--color-text);font-size:var(--text-xl);font-weight:var(--weight-semibold)}.school-student-form-fields{gap:var(--space-4);display:grid}.school-student-form-fields:empty{display:none}.school-section-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.school-section-head>h2{color:var(--color-text);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.school-student-attendance{color:var(--color-text-soft);font-size:var(--text-sm)}.school-student-due{flex-wrap:wrap}.school-student-due .row-main{flex:14rem}.school-student-late{color:var(--color-text);font-weight:var(--weight-semibold)}.school-guardian{flex-wrap:wrap}.school-guardian .row-main{flex:14rem}.school-guardian .row-title,.school-guardian .row-meta{white-space:normal;overflow-wrap:anywhere}.school-guardian .row-trail{flex-wrap:wrap;margin-left:auto}.school-room-month{flex-wrap:wrap}.school-room-month .row-main{flex:10rem}.school-room-bar{border-radius:var(--radius-full);background:var(--color-surface-raised);flex:2 10rem;height:8px;overflow:hidden}.school-room-bar>span{border-radius:var(--radius-full);background:var(--color-highlight);height:100%;display:block}.school-room-figure{min-width:9rem;color:var(--color-text-soft);font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:right;flex:none}.school-export-data{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.school-export-data legend{margin-bottom:var(--space-2);color:var(--color-text);font-weight:var(--weight-semibold)}.check-line{align-items:flex-start;gap:var(--space-3);min-height:44px;color:var(--color-text);font-size:var(--text-sm);display:flex}.check-line input{flex:none;width:1.25rem;height:1.25rem;margin:.1rem 0 0}.school-fees-tabs{margin-bottom:var(--space-2);justify-self:start}.fees-found{flex-wrap:wrap}.fees-found-name{min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:12rem;padding:0}.fees-found-payers{gap:var(--space-2);flex-wrap:wrap}.fees-fieldset{gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0;display:grid}.fees-fieldset legend{padding:0 var(--space-2);color:var(--color-text);font-weight:var(--weight-semibold)}.fees-preview{gap:var(--space-2);display:grid}.fees-preview .help{margin:0}.fees-preview-list{padding-left:var(--space-5);color:var(--color-text-soft);font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin:0}.fees-row .row-main{flex:12rem}.fees-trail{flex-wrap:wrap;justify-content:flex-end}.fees-amount{color:var(--color-text);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.fees-state.is-paid{border-color:color-mix(in oklch, var(--color-success) 45%, transparent);background:var(--tint-success);color:var(--color-success-soft)}.fees-state.is-due,.fees-state.is-partial{border-color:color-mix(in oklch, var(--color-highlight) 45%, transparent);background:var(--tint-highlight);color:var(--color-highlight-soft)}.fees-state.is-late{border-color:color-mix(in oklch, var(--color-danger) 50%, transparent);background:var(--tint-danger);color:var(--color-danger-soft)}.fees-totals{margin:var(--space-2) 0 0;color:var(--color-text-soft);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.fees-bar{border-radius:var(--radius-full);background:var(--color-surface-raised);height:8px;overflow:hidden}.fees-bar>span{border-radius:var(--radius-full);background:var(--color-success);height:100%;display:block}@media (width>=640px){.fees-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}.enrol-form{gap:var(--space-2);padding:var(--space-4);display:grid}.enrol-form p{margin:0}.enrol-link{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.enrol-link a{min-width:0;color:var(--color-link);overflow-wrap:anywhere}.enrol-contract{margin-top:var(--space-4)}.enrol-contract summary{min-height:44px;color:var(--color-link);font-weight:var(--weight-semibold);cursor:pointer;line-height:44px}.enrol-contract pre{max-height:20rem;padding:var(--space-4);border-radius:var(--radius-md);background:var(--score-paper);color:var(--score-ink);font:var(--text-sm) / 1.5 var(--font-ui);white-space:pre-wrap;margin:0;overflow:auto}.enrol-confirm{gap:var(--space-4);display:grid}.enrol-page{gap:var(--space-6);width:min(100% - 2rem,40rem);padding:var(--space-6) 0 var(--space-8);margin:0 auto;display:grid}.enrol-page-head{gap:var(--space-2);display:grid}.enrol-page-head h1{color:var(--color-text);font-family:var(--font-display);font-size:var(--text-2xl);margin:0;font-weight:560}.enrol-page-head h1:focus{outline:none}.enrol-page-head .eyebrow{margin:var(--space-4) 0 0}.enrol-brand{color:var(--color-text);font-size:var(--text-lg);letter-spacing:-.04em;font-weight:650;text-decoration:none}.enrol-brand span{color:var(--color-accent)}.enrol-intro{color:var(--color-text-soft);white-space:pre-line;margin:0}.enrol-root,.enrol-steps,.enrol-sign{gap:var(--space-5);display:grid}.enrol-root>p{margin:0}.enrol-step{gap:var(--space-4);min-width:0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);margin:0;display:grid}.enrol-step legend,.enrol-step h2{padding:0 var(--space-2);color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-semibold)}.enrol-step .field{gap:var(--space-2);display:grid}.enrol-step .help{margin:0}.enrol-terms,.enrol-contract-text{max-height:22rem;padding:var(--space-4);border-radius:var(--radius-md);background:var(--score-paper);color:var(--score-ink);font:var(--text-sm) / 1.5 var(--font-ui);white-space:pre-wrap;margin:0;overflow:auto}.enrol-consents{gap:var(--space-4);display:grid}.enrol-consent{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.enrol-consent legend{color:var(--color-text);font-weight:var(--weight-semibold);padding:0}.enrol-consent a,.enrol-page-foot a{color:var(--color-link);text-decoration:underline}.enrol-yesno{gap:var(--space-5);display:flex}.enrol-page-foot{margin:0}.leads-board{gap:var(--space-5);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=1024px){.leads-board{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}.leads-columns{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));min-width:0;display:grid}.leads-column{align-content:start;gap:var(--space-2);min-width:0;display:grid}.leads-column-head{color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-semibold);justify-content:space-between;align-items:center;margin:0;display:flex}.leads-empty{padding:var(--space-3)}.leads-trial{gap:var(--space-2);padding:var(--space-4);display:grid}.leads-trial h3,.leads-trial p{margin:0}.leads-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.leads-actions .help{flex-basis:100%;margin:0}.leads-history{gap:var(--space-2);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.leads-history li{gap:2px;display:grid}.leads-history time{color:var(--color-text-muted);font-size:var(--text-xs)}.leads-note{gap:var(--space-2);justify-items:start;display:grid}.leads-note .field{gap:var(--space-2);width:100%;display:grid}.trials-panel:not([hidden]){gap:var(--space-3);display:grid}.trials-card{gap:var(--space-2);padding:var(--space-4);display:grid}.trials-card h3,.trials-card p{margin:0}.trials-card .tag{justify-self:start}.trials-form{gap:var(--space-3);justify-items:start;display:grid}.trials-form fieldset{border:0;margin:0;padding:0}.trials-form .field{gap:var(--space-2);width:100%;display:grid}.trials-outcomes{gap:var(--space-4);flex-wrap:wrap;display:flex}.enrol-contact{margin-top:var(--space-2)}.enrol-contact h2,.enrol-contact p{margin:0}.school-table-wrap{max-width:100%;overflow-x:auto}.family-cards{gap:var(--space-3);margin-top:var(--space-5);display:grid}.family-cards h2{color:var(--color-text);font-size:var(--text-lg);margin:0}.membership-card{gap:var(--space-1);max-width:22rem;padding:var(--space-4);border:1px solid var(--edge-highlight);border-radius:var(--radius-lg);background:var(--color-surface-raised);color:var(--color-text-soft);font-size:var(--text-sm);display:grid}.membership-card strong{color:var(--color-text);font-family:var(--font-display);font-size:var(--text-xl);font-weight:560}.membership-school{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.membership-due{color:var(--color-danger-soft)}#payments-panel{gap:var(--space-6);display:grid}@media (width<=639px){#payments-panel .row:has(>.row-trail){flex-wrap:wrap}#payments-panel .row:has(>.row-trail)>.row-trail{flex-basis:100%;justify-content:flex-end}#payments-panel .row :is(.row-title,.row-meta){overflow-wrap:anywhere;white-space:normal}}.payments-school{gap:var(--space-4);display:grid}.payments-school h2,.payments-box h3,.payments-box p{margin:0}.payments-total{font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;margin:0}.payments-row input[type=checkbox]{block-size:1.25rem;inline-size:1.25rem;accent-color:var(--color-accent);flex-shrink:0}label.payments-row{cursor:pointer}.payments-school>.btn{justify-self:start}.payments-box{gap:var(--space-3);padding:var(--space-4);overflow-wrap:anywhere;display:grid}.payments-box .btn{justify-self:start}.doc-paper{gap:var(--space-2);padding:var(--space-4) var(--space-5);border:1px solid var(--score-paper-edge);border-radius:var(--radius-md);background:var(--score-paper);color:var(--score-ink);font-size:var(--text-sm);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;display:grid}.doc-paper h3,.doc-paper p{margin:0}.doc-paper h3{color:inherit;font-family:var(--font-display);font-size:var(--text-lg)}.doc-muted{color:var(--score-muted)}.doc-lines{display:grid}.doc-line{justify-content:space-between;gap:var(--space-3);padding:var(--space-1) 0;border-bottom:1px solid var(--score-paper-shade);display:flex}.doc-amount{flex-shrink:0}.doc-total{font-weight:var(--weight-semibold);border-bottom:0}.doc-actions{margin-top:var(--space-3)}.payments-missing{color:var(--color-danger-soft)}.doc-print{display:none}@media print{html.printing-doc body>:not(.doc-print){display:none!important}html.printing-doc .doc-print{display:block}html.printing-doc .doc-paper{color:#000;background:#fff;border:0;font-size:11pt}html.printing-doc .doc-muted,html.printing-doc .doc-line{color:#000;border-color:#000}}.substitutions-panel:not([hidden]){gap:var(--space-3);margin-bottom:var(--space-5);display:grid}.substitutions-panel>.group-head{margin-top:0}.substitution-card{gap:var(--space-2);min-width:0;padding:var(--space-4);border:1px solid var(--edge-highlight);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.substitute-card>.substitution-card{background:0 0;border:0;padding:0}.substitution-card .eyebrow{margin:0}.substitution-title{color:var(--color-text);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.substitution-when,.substitution-meta{margin:0}.substitution-when{color:var(--color-text-soft)}.substitution-meta{color:var(--color-text-muted);font-size:var(--text-sm)}.substitution-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.substitution-heading{margin-top:var(--space-2);color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-semibold)}.substitution-know{gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-raised);display:grid}.substitution-know p{color:var(--color-text-soft);font-size:var(--text-sm);margin:0}.substitution-card>.btn{justify-self:start}.substitution-students{gap:var(--space-2);display:grid}.substitution-student{justify-content:space-between;align-items:center;gap:var(--space-2);color:var(--color-text);flex-wrap:wrap;display:flex}.substitution-register summary{min-height:var(--control-height);color:var(--color-link);font-size:var(--text-sm);font-weight:var(--weight-semibold);align-items:center;display:flex}.substitution-register-form{gap:var(--space-3);display:grid}.substitution-register-form .field{gap:var(--space-1);display:grid}.substitution-register-form .help{margin:0}.substitution-register-form .btn{justify-self:start}.lesson-substitution{color:var(--color-highlight-strong);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.tool-badge{align-self:flex-start;margin-top:auto}.messages-panel [data-messages-panel]{margin-top:var(--space-5)}.messages-panel [data-messages-panel]>h2{margin:0 0 var(--space-4)}.messages-list{gap:var(--space-4);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}.messages-item{gap:var(--space-3);min-width:0;padding:var(--space-5);border:1px solid var(--color-border);border-left:4px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);overflow-wrap:anywhere;justify-items:start;display:grid}.messages-item.is-unread{border-left-color:var(--color-highlight);background:var(--color-surface)}.messages-item-meta{gap:var(--space-1);display:grid}.messages-item h3,.messages-item p{margin:0}.messages-body{white-space:pre-line}.messages-form{max-width:40rem}.messages-channels{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0;display:grid}.messages-channels p{margin:0}.family-today:not([hidden]),.family-panel:not([hidden]){gap:var(--space-2);min-width:0;margin-bottom:var(--space-7);display:grid}.family-panel:not([hidden]){gap:var(--space-5)}.family-chips{gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.family-chips .chip{min-height:44px}.family-today>.group-head:has(>.btn-link){align-items:center}.family-child{min-width:0;display:grid}.family-child-head{align-items:center;gap:var(--space-3);display:flex}.family-child-who{min-width:0}.family-child-head h2{font-size:var(--text-xl);overflow-wrap:anywhere}.family-child-meta{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.family-lesson .row-title,.family-lesson .row-meta,.family-study .row-title,.family-due :is(.row-title,.row-meta){white-space:normal}.family-lesson .row-trail{flex-wrap:wrap;justify-content:flex-end}.family-lesson .row-trail svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}@media (width<=639px){.family-lesson{flex-wrap:wrap}.family-lesson .row-trail{width:100%;padding-left:calc(3.25rem + var(--space-3));justify-content:flex-start}}.family-note{margin-top:var(--space-1);color:var(--color-text-soft);font-size:var(--text-sm);overflow-wrap:anywhere;display:block}.family-empty{min-height:52px}.family-privacy{margin:0}.learning-card .learning-check{align-items:flex-start;gap:var(--space-3);display:flex}.learning-card .learning-check input{flex:none;width:1.25rem;height:1.25rem;margin:.1rem 0 0}.consent-banner:not([hidden]){margin-bottom:var(--space-5)}.consent-banner .list{margin-top:var(--space-3)}.consent-dialog h2{margin-top:var(--space-1)}.consent-body{margin:var(--space-3) 0 0;color:var(--color-text-soft);white-space:pre-line;overflow-wrap:anywhere}.consent-dialog .btn-link{align-items:center;min-height:44px;display:inline-flex}.consent-choices{gap:var(--space-2);margin:var(--space-3) 0 0;border:0;padding:0;display:grid}.consent-choice{align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-weight:var(--weight-semibold);cursor:pointer;display:flex}.consent-choice:has(input:checked){border-color:var(--edge-highlight);background:var(--tint-highlight)}.consent-choice input{width:20px;height:20px;accent-color:var(--color-highlight);flex:none;margin:0}.consent-row .row-title,.consent-row .row-meta{white-space:normal}.school-consents-root{display:contents}.school-consents-root>.school-section:first-child{margin-top:var(--space-5)}.school-consent{flex-wrap:wrap;align-items:flex-start}.school-consent .row-title{white-space:normal}.school-consent-history summary{min-height:44px;color:var(--color-text-soft);font-size:var(--text-sm);cursor:pointer;align-items:center;display:inline-flex}.school-consent-history ul{gap:var(--space-1);padding-left:var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm);margin:0;display:grid}.school-consents-foot{justify-items:start;gap:var(--space-2);margin-top:var(--space-3);display:grid}.school-consents-foot .help{margin:0}.school-consents-ask{justify-items:start;gap:var(--space-2);margin-top:var(--space-4);display:grid}.school-consents-ask .help{margin:0}.school-students-filters .chip{align-self:end;gap:var(--space-2);min-height:44px}.school-students-filters .count{min-width:1.5em;padding:0 var(--space-1);border-radius:var(--radius-full);background:var(--tint-highlight);color:var(--color-highlight-strong);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-align:center}.school-student-row .tag{flex:none}.import-steps{gap:var(--space-2) var(--space-5);margin:0 0 var(--space-2);counter-reset:import-step;flex-wrap:wrap;padding:0;list-style:none;display:flex}.import-steps li{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);counter-increment:import-step;display:inline-flex}.import-steps li:before{content:counter(import-step);border:1px solid var(--color-border);border-radius:var(--radius-full);width:26px;height:26px;font-size:var(--text-xs);place-items:center;display:grid}.import-steps li.is-done{color:var(--color-text-soft)}.import-steps li.is-done:before{border-color:var(--color-success);background:var(--tint-success);color:var(--color-success)}.import-steps li[aria-current]{color:var(--color-text)}.import-steps li[aria-current]:before{border-color:var(--edge-highlight);background:var(--tint-highlight);color:var(--color-highlight-strong)}[data-step] h2:focus{outline:none}.import-mapping .row{flex-wrap:wrap}.import-mapping .row-main,.import-mapping .row-trail{flex:14rem;min-width:0}.import-mapping .row-meta{white-space:normal;overflow-wrap:anywhere}.import-mapping select{width:100%}.import-filters{gap:var(--space-2);flex-wrap:wrap;display:flex}.import-filters .chip{gap:var(--space-2);min-height:44px}.import-filters .count{min-width:1.5em;padding:0 var(--space-1);border-radius:var(--radius-full);background:var(--tint-highlight);color:var(--color-highlight-strong);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-align:center}.import-row{flex-wrap:wrap;align-items:flex-start}.import-row .time-col small{font-weight:var(--weight-medium)}.import-row .row-main{flex:12rem}.import-row .row-title,.import-row .row-meta{white-space:normal;overflow-wrap:anywhere}.import-outcome{margin-top:var(--space-1);color:var(--color-text-soft);font-size:var(--text-sm);display:block}.import-row.is-error .import-outcome{color:var(--color-danger)}.import-row.is-duplicate .import-outcome{color:var(--color-highlight-strong)}.import-choice{flex-wrap:wrap}.import-choice .btn[aria-pressed=true]{border-color:var(--edge-highlight);background:var(--tint-highlight);color:var(--color-text)}.import-actions{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.school-panel progress{width:100%;height:8px;accent-color:var(--color-highlight)}.hours-toolbar{margin-bottom:var(--space-5);justify-content:space-between;align-items:center}#hours-table,.hours-panel .portal-empty{margin-top:var(--space-6)}.hours-rates-missing .portal-help{margin:0}.online-provider{gap:var(--space-3);max-width:35rem;margin-top:var(--space-4);display:grid}.online-provider>.portal-help{margin:0}.online-provider>[data-provider-connect]{justify-self:start}.online-choices{gap:var(--space-2);display:grid}.online-choices legend{margin-bottom:var(--space-2)}.online-choice{align-items:flex-start;gap:var(--space-3);min-height:44px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;display:flex}.online-choice:has(input:checked){border-color:var(--edge-highlight);background:var(--tint-highlight)}.online-choice input{flex:none;width:1.25rem;height:1.25rem;margin:.1rem 0 0}.online-choice-title{color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-semibold);display:block}.online-choice-text,.online-choice-meta{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-regular);margin-top:2px;display:block}.online-choice-meta{color:var(--color-text-soft);font-weight:var(--weight-medium)}.online-zoom{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border);display:grid}.online-zoom-row{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.online-zoom-account{overflow-wrap:anywhere;min-width:0}.online-zoom .portal-help{margin:0}.online-zoom-switch{flex-wrap:nowrap;align-items:flex-start}.online-zoom-switch>.online-zoom-account{flex:1}.practice-rotate,.rep-player-band{display:none}@media (width<=540px),(height<=540px){:is(body:has(#learning-panel:not([hidden]) #solos-panel:not([hidden]) #solo-practice:not([hidden])),body:has(#learning-panel:not([hidden]) #theory-panel:not([hidden]) #theory-practice-host:not([hidden])>.solo-practice:not([hidden])),body:has(#learning-panel:not([hidden]) #repertoire-panel:not([hidden]) #rep-editor:not([hidden])>.rep-editor-layout.readonly)){overflow:hidden}:is(body:has(#learning-panel:not([hidden]) #solos-panel:not([hidden]) #solo-practice:not([hidden])) :is(.portal-header,#tools-back,.portal-heading,.app-release,#app-nav,#app-tabbar),body:has(#learning-panel:not([hidden]) #theory-panel:not([hidden]) #theory-practice-host:not([hidden])>.solo-practice:not([hidden])) :is(.portal-header,#tools-back,.portal-heading,.app-release,#app-nav,#app-tabbar),body:has(#learning-panel:not([hidden]) #repertoire-panel:not([hidden]) #rep-editor:not([hidden])>.rep-editor-layout.readonly) :is(.portal-header,#tools-back,.portal-heading,.app-release,#app-nav,#app-tabbar)){visibility:hidden}#learning-panel:not([hidden]) #solos-panel:not([hidden]) #solo-practice:not([hidden]),#learning-panel:not([hidden]) #theory-panel:not([hidden]) #theory-practice-host:not([hidden])>.solo-practice:not([hidden]){z-index:var(--z-overlay);gap:var(--space-2);padding:max(var(--space-2), env(safe-area-inset-top)) max(var(--space-3), env(safe-area-inset-right)) max(var(--space-2), env(safe-area-inset-bottom)) max(var(--space-3), env(safe-area-inset-left));background:var(--color-bg);margin:0;display:grid;position:fixed;inset:0;overflow:hidden}#learning-panel:not([hidden]) #repertoire-panel:not([hidden]) #rep-editor:not([hidden]):has(>.rep-editor-layout.readonly){z-index:var(--z-overlay);gap:var(--space-2);padding:max(var(--space-2), env(safe-area-inset-top)) max(var(--space-3), env(safe-area-inset-right)) max(var(--space-2), env(safe-area-inset-bottom)) max(var(--space-3), env(safe-area-inset-left));background:var(--color-bg);margin:0;display:grid;position:fixed;inset:0;overflow:hidden}.practice-rotate{justify-content:space-between;align-items:center;gap:var(--space-2);padding:0 0 0 var(--space-3);border-radius:var(--radius-sm);background:var(--tint-highlight);color:var(--color-highlight-strong);font-size:var(--text-sm);margin:0}.practice-rotate-close{min-width:var(--control-height);min-height:var(--control-height);color:inherit;font:inherit;font-size:var(--text-lg);cursor:pointer;background:0 0;border:0;flex:none}.solo-practice{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.solo-practice>.solo-practice-header{gap:var(--space-2)}.solo-practice>:is([id$=-session],.solo-grading,.solo-grade-error,.solo-result){grid-area:2/1/auto/-1;align-self:stretch;min-height:0;margin:0}.solo-practice>:is(.solo-grading,.solo-grade-error,.solo-result){overscroll-behavior:contain;overflow-y:auto}.solo-practice>[id$=-session]{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid}.solo-practice>[id$=-session]>.practice-body{gap:var(--space-3);overscroll-behavior:contain;padding-bottom:var(--space-3);overflow-y:auto}.solo-practice .solo-practice-title{font-size:var(--text-2xl);margin:0;line-height:1.2}.solo-practice .practice-teacher-note{margin:0}.solo-practice .solo-stage{height:clamp(12rem,48svh,32rem);min-height:0;padding:var(--space-1) var(--space-2);flex-direction:column;display:flex}.solo-stage>.solo-stage-scroll{overscroll-behavior:contain;flex:1;min-height:0;max-height:none;overflow-y:auto}.solo-practice>[id$=-session]>.practice-play{padding:var(--space-2) 0 0;border-top:1px solid var(--color-border);margin:0;position:static}.solo-practice .practice-play-button{width:100%}#rep-editor:has(>.rep-editor-layout.readonly){grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}#rep-editor:has(>.rep-editor-layout.readonly)>.practice-teacher-note{display:none}#rep-editor:has(>.practice-teacher-note:not([hidden])) .practice-note-button{display:inline-flex}#rep-editor:has(>.rep-editor-layout.readonly)>.rep-editor-toolbar{flex-wrap:wrap;min-height:0;margin:0;padding:0;position:static}#rep-editor:has(>.rep-editor-layout.readonly) .rep-editor-actions{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;width:auto;min-width:0;margin-left:auto}#rep-editor:has(>.rep-editor-layout.readonly) #rep-save-state{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}#rep-editor>.rep-editor-layout.readonly #rep-sheet{min-height:0;padding-top:var(--space-4)}#rep-editor>.rep-editor-layout.readonly #rep-sheet header{margin-bottom:var(--space-3);padding-bottom:var(--space-3)}#rep-editor>.rep-editor-layout.readonly #rep-sheet h2{margin-top:var(--space-2);font-size:var(--text-2xl)}#rep-editor>.rep-editor-layout.readonly{overscroll-behavior:contain;max-width:none;min-height:0;margin:0;display:block;overflow-y:auto}#rep-editor>.rep-editor-layout.readonly>.rep-sheet-wrap{gap:var(--space-2);flex-direction:column;min-height:100%;display:flex}#rep-editor>.rep-editor-layout.readonly .rep-sheet-tools{display:none}#rep-editor>.rep-editor-layout.readonly :is(#rep-sheet,#rep-report){order:1}#rep-editor>.rep-editor-layout.readonly #rep-player{align-items:center;gap:var(--space-2);padding:var(--space-2);order:2;grid-template-columns:auto auto minmax(0,1fr) auto auto;grid-template-areas:"play stop.tempo loop""progress progress progress progress band";margin:auto 0 0;display:grid;position:sticky;top:auto;bottom:0}#rep-editor>.rep-editor-layout.readonly #rep-player>.rep-player-main{display:contents}#rep-editor>.rep-editor-layout.readonly #rep-player .rep-play{grid-area:play}#rep-editor>.rep-editor-layout.readonly #rep-player .rep-player-stop{grid-area:stop}#rep-editor>.rep-editor-layout.readonly #rep-player .rep-tempo{align-items:center;gap:var(--space-1);grid-area:tempo;display:flex}#rep-editor>.rep-editor-layout.readonly #rep-player .rep-tempo input{width:3.25rem;min-height:var(--control-height)}#rep-editor>.rep-editor-layout.readonly #rep-player .rep-player-loop{grid-area:loop}#rep-editor>.rep-editor-layout.readonly #rep-player .rep-player-band{min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-sm);background:0 0;grid-area:band;align-items:center;display:inline-flex}#rep-editor>.rep-editor-layout.readonly #rep-player .rep-player-band[aria-expanded=true]{border-color:var(--color-highlight);background:var(--tint-highlight);color:var(--color-highlight-strong)}#rep-editor>.rep-editor-layout.readonly #rep-player :is(.rep-player-stop,.rep-player-loop){min-width:var(--control-height);min-height:var(--control-height)}#rep-editor>.rep-editor-layout.readonly #rep-player .rep-player-progress{grid-area:progress;margin:0}#rep-editor>.rep-editor-layout.readonly #rep-player .rep-groove{grid-area:groove}#rep-editor>.rep-editor-layout.readonly #rep-player .rep-player-mixer{grid-area:mixer;margin:0}#rep-editor>.rep-editor-layout.readonly #rep-player:has(#rep-play-band[aria-expanded=true]){grid-template-areas:"play stop.tempo loop""progress progress progress progress band""groove groove groove groove groove""mixer mixer mixer mixer mixer"}#rep-editor>.rep-editor-layout.readonly #rep-player:not(:has(#rep-play-band[aria-expanded=true])) :is(.rep-groove,.rep-player-mixer){display:none}#rep-editor>.rep-editor-layout.readonly #rep-player .rep-player-caption{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=540px) and (orientation:portrait) and (pointer:coarse){.solo-practice .practice-rotate{display:flex}#rep-editor:has(>.rep-editor-layout.readonly)>.practice-rotate{display:flex}}@media (height<=540px) and (orientation:landscape){.solo-practice>[id$=-session]{column-gap:var(--space-3);grid-template:"stage title""stage note""stage side"minmax(0,1fr)"stage play"/minmax(0,1fr) minmax(15rem,18rem)}.solo-practice>[id$=-session]>.practice-body{display:contents}.solo-practice .solo-practice-title{font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap;grid-area:title;overflow:hidden}.solo-practice .practice-teacher-note{max-height:4.6em;margin-top:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);grid-area:note;overflow-y:auto}.solo-practice .practice-rotate{display:none}.solo-practice .practice-stage-wrap{grid-area:stage;align-self:stretch;min-height:0;display:block}.solo-practice .solo-stage{height:100%;padding-bottom:calc(var(--control-height) + var(--space-3))}.solo-practice .practice-stage-foot{right:var(--space-2);bottom:var(--space-2);left:var(--space-2);position:absolute}.solo-practice .practice-side{min-height:0;margin-top:var(--space-2);overscroll-behavior:contain;grid-area:side;overflow-y:auto}.solo-practice>[id$=-session]>.practice-play{grid-area:play}#rep-editor>.rep-editor-layout.readonly #rep-sheet{padding-top:var(--space-2)}#rep-editor>.rep-editor-layout.readonly #rep-sheet header{margin-bottom:var(--space-2);padding-bottom:var(--space-2)}#rep-editor>.rep-editor-layout.readonly #rep-sheet h2{font-size:var(--text-xl);margin:0}#rep-editor>.rep-editor-layout.readonly #rep-sheet header p{font-size:var(--text-xs);margin:0}#rep-editor>.rep-editor-layout.readonly #rep-player{grid-template-columns:auto auto minmax(0,1fr) auto auto auto;grid-template-areas:"play stop progress tempo loop band"}#rep-editor>.rep-editor-layout.readonly #rep-player:has(#rep-play-band[aria-expanded=true]){grid-template-areas:"play stop progress tempo loop band""groove mixer mixer mixer mixer mixer"}}}@layer utilities;
