@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-cream:#f9f5ed;--color-cream-deep:#f2ece0;--color-ink:#0c3a2b;--color-ink-soft:#11543e;--color-grass:#0bb50e;--color-grass-deep:#089c0b;--color-apricot:#ff9e5e;--color-apricot-soft:#ffd9bd;--color-muted:#4a5a4c;--color-line:#ded6c6;--font-display:"Fraunces Variable", Georgia, "Times New Roman", serif;--font-sans:"Inter Variable", ui-sans-serif, system-ui, sans-serif;--radius-card:1.25rem;--radius-block:2rem;--shadow-lift:0 1px 2px #0b3d0e0f, 0 12px 32px -12px #0b3d0e2e}@layer base{body{background-color:var(--color-cream);color:var(--color-ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;font-weight:600;line-height:1.05}p{text-wrap:pretty}:focus-visible{outline:3px solid var(--color-ink);outline-offset:3px;border-radius:4px}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,h4{margin:0}h4{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600}}@layer components{.brand{font-family:var(--font-display);letter-spacing:-.025em;color:var(--color-ink);align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;text-decoration:none;display:inline-flex}.brand:after{content:"";background-color:var(--color-grass);border-radius:999px;flex-shrink:0;width:.5rem;height:.5rem}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);font-size:.8rem;font-weight:700}.card{border:1px solid var(--color-line);border-radius:var(--radius-card);background-color:var(--color-cream)}.btn{text-align:center;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.95rem 1.6rem;font-weight:600;line-height:1;text-decoration:none;transition:transform .2s,background-color .2s,box-shadow .2s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background-color:var(--color-ink);color:var(--color-cream);box-shadow:var(--shadow-lift)}.btn-primary:hover:not(:disabled){background-color:var(--color-ink-soft)}.btn-accent{background-color:var(--color-grass);color:var(--color-ink)}.btn-accent:hover:not(:disabled){background-color:var(--color-grass-deep)}.btn-ghost{border-color:var(--color-line);color:var(--color-ink);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--color-cream-deep)}.btn-sm{padding:.6rem 1.1rem;font-size:.9rem}.marker{background-image:linear-gradient(to top, color-mix(in srgb, var(--color-grass) 42%, transparent) 0 .28em, transparent .28em);-webkit-box-decoration-break:clone;box-decoration-break:clone}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn:hover:not(:disabled){transform:none}}}:root{--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--text-2xs:.72rem;--text-xs:.8rem;--text-sm:.9rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.75rem;--text-2xl:2.4rem;--text-display:clamp(2.6rem, 6vw, 4.4rem);--radius-sm:.75rem;--radius-md:var(--radius-card);--radius-lg:var(--radius-block);--radius-pill:999px;--surface:#fffcf6;--surface-sunken:var(--color-cream-deep);--surface-active:color-mix(in srgb, var(--color-cream-deep) 60%, var(--color-line));--border:var(--color-line);--border-soft:color-mix(in srgb, var(--color-line) 60%, var(--color-cream));--text:var(--color-ink);--text-muted:var(--color-muted);--accent:var(--color-ink);--accent-ring:color-mix(in srgb, var(--color-grass) 30%, transparent);--danger:#b03a2e;--danger-text:#8d2f25;--danger-surface:#fcebe6;--danger-border:#e8b4a8;--success-surface:color-mix(in srgb, var(--color-grass) 16%, var(--color-cream));--warning-surface:var(--color-apricot-soft);--neutral-surface:var(--color-cream-deep);font-synthesis:none;text-rendering:optimizelegibility;line-height:1.5}.eyebrow{margin:0 0 var(--space-4)}.btn.is-busy{cursor:wait}.danger-button{color:var(--danger)}.btn-ghost.danger-button{border-color:var(--danger-border)}.btn-ghost.danger-button:hover:not(:disabled){background:var(--danger-surface)}.auth-shell,.center-shell{min-height:100vh;padding:var(--space-8) clamp(var(--space-5), 5vw, 5rem)}.auth-shell{gap:clamp(var(--space-8), 8vw, 8rem);grid-template-columns:minmax(0,1.15fr) minmax(320px,440px);align-items:center;max-width:72rem;margin:0 auto;display:grid}.auth-intro{padding:var(--space-8) 0}.auth-intro .brand{margin:0 0 var(--space-12)}.auth-intro h1{font-size:var(--text-display);max-width:40rem}.intro-copy{color:var(--text-muted);margin:var(--space-6) 0 0;max-width:28rem;font-size:1.125rem;line-height:1.65}.music-mark{align-items:end;gap:.45rem;height:5rem;margin-top:3.5rem;display:flex}.music-mark span{background:var(--color-ink);border-radius:var(--radius-pill);width:.65rem;display:block}.music-mark span:first-child{height:2.2rem}.music-mark span:nth-child(2){background:var(--color-grass);height:4.3rem}.music-mark span:nth-child(3){background:var(--color-apricot);height:3.1rem}.auth-card,.status-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift)}.auth-card{padding:clamp(var(--space-6), 5vw, var(--space-10))}.card-heading h2{font-size:var(--text-2xl);margin-bottom:var(--space-6)}.auth-card .btn-primary{margin-top:var(--space-8);width:100%}.invite-note{color:var(--text-muted);font-size:var(--text-xs);margin:var(--space-6) 0 0;text-align:center}.center-shell{place-items:center;display:grid}.status-card{gap:var(--space-2);max-width:30rem;padding:var(--space-10);text-align:center;justify-items:center;display:grid}.status-card .brand{margin:0 0 var(--space-4)}.status-card .eyebrow{margin:0}.status-card h1{font-size:var(--text-xl);margin-bottom:var(--space-4)}.status-card p{margin:0}.status-card .btn{min-width:16rem}@media (width<=760px){.auth-shell{gap:var(--space-4);padding-top:var(--space-8);grid-template-columns:1fr}.auth-intro{padding-bottom:0}.auth-intro .brand{margin-bottom:var(--space-8)}.music-mark{display:none}}label{font-size:var(--text-xs);margin:var(--space-5) 0 .45rem;font-weight:600;display:block}input,textarea,select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-md);outline:0;width:100%;min-height:3rem;padding:.7rem .95rem;font-weight:400}textarea{resize:vertical;min-height:6rem}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}input[aria-invalid=true]{border-color:var(--danger)}.field-error,.form-error{color:var(--danger);font-size:var(--text-xs);margin:var(--space-1) 0 0}.text-button{color:var(--text-muted);font-size:var(--text-sm);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:.3em;background:0 0;border:0;padding:0;font-weight:500;transition:color .2s,text-decoration-color .2s}.text-button:hover:not(:disabled){color:var(--text);text-decoration-color:currentColor}.text-button.danger-button{color:var(--danger)}.text-button:disabled{cursor:wait;opacity:.55}.panel-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb, var(--color-cream) 85%, transparent);border-bottom:1px solid color-mix(in srgb, var(--color-line) 60%, transparent);z-index:10;position:sticky;top:0}.panel-bar{align-items:center;gap:var(--space-6);padding:var(--space-3) 0;justify-content:space-between;width:min(72rem,100% - 2.5rem);margin:0 auto;display:flex}.panel-bar .brand{margin:0}.panel-nav{gap:var(--space-1);flex-wrap:wrap;margin-left:auto;display:flex}.panel-nav a{border-radius:var(--radius-pill);color:var(--text-muted);font-size:var(--text-sm);padding:.5rem .9rem;font-weight:500;text-decoration:none;transition:color .2s,background-color .2s}.panel-nav a:hover{color:var(--text)}.panel-nav a.active{background:var(--color-ink);color:var(--color-cream)}.panel-shell{min-height:100vh;padding:clamp(var(--space-8), 5vw, var(--space-12)) 0 var(--space-16);width:min(72rem,100% - 2.5rem);margin:0 auto}.panel-title{font-size:clamp(2.2rem,5vw,3.4rem)}.panel-lede{color:var(--text-muted);margin:var(--space-4) 0 var(--space-8);max-width:40rem;font-size:1.075rem;line-height:1.65}.panel-section{margin:var(--space-10) 0}.section-heading{align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);justify-content:space-between;display:flex}.section-heading h2,.panel-section>h2{font-size:var(--text-xl);margin-bottom:var(--space-4)}.section-heading h2{margin-bottom:0}.loading-state,.empty-state{color:var(--text-muted);padding:var(--space-2) 0}.empty-state{gap:var(--space-3);justify-items:start;display:grid}.empty-state p{margin:0}.panel-error{background:var(--danger-surface);border:1px solid var(--danger-border);border-radius:var(--radius-md);color:var(--danger-text);align-items:center;gap:var(--space-4);margin:var(--space-4) 0;padding:.9rem var(--space-5);justify-content:space-between;display:flex}.panel-error .text-button{color:inherit}.counter.counter-clear{background:var(--neutral-surface)}.counter{background:var(--warning-surface);border-radius:var(--radius-md);padding:.8rem var(--space-5);align-items:center;gap:.7rem;display:flex}.counter strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:600}.counter span,.duration-badge,.timezone-badge{font-size:var(--text-xs);font-weight:600}.duration-badge,.timezone-badge{background:var(--success-surface);border-radius:var(--radius-pill);white-space:nowrap;padding:.35rem .75rem}.assignment-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.assignment-card,.assignment-row,.rule-row,.exception-row,.lesson-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-6)}.assignment-card{gap:var(--space-4);display:grid}.assignment-heading,.lesson-heading,.assignment-row,.rule-row,.exception-row{align-items:center;gap:var(--space-4);justify-content:space-between;display:flex}.back-link{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:var(--space-3);font-weight:600;text-decoration:none;display:inline-block}.back-link:hover{color:var(--text)}.assignment-state{border-top:1px solid var(--border-soft);margin-top:var(--space-6);padding-top:var(--space-4)}.stat-grid{gap:var(--space-3);margin:var(--space-4) 0 0;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat{background:var(--surface-sunken);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.stat dt{color:var(--text-muted);font-size:var(--text-xs)}.stat dd{font-family:var(--font-display);font-size:var(--text-lg);margin:var(--space-1) 0 0}.assignment-card h3,.assignment-row h3{font-size:var(--text-lg);margin:0}.assignment-card .eyebrow,.assignment-row .eyebrow,.lesson-card .eyebrow{margin-bottom:var(--space-1)}.assignment-list,.rule-list,.exception-list,.lesson-list{gap:var(--space-3);display:grid}.assignment-controls{align-items:end;gap:var(--space-2);display:flex}.assignment-controls label{margin:0}.assignment-controls input{max-width:100px;padding:var(--space-2)}.slot-picker{gap:var(--space-3);margin-top:var(--space-4);display:grid}.day-tabs{gap:var(--space-2);padding-bottom:var(--space-1);scrollbar-width:thin;display:flex;overflow-x:auto}.day-tab{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);align-items:center;gap:var(--space-1);min-width:6.5rem;padding:var(--space-2) var(--space-3);justify-items:center;display:grid}.day-tab.active{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-cream)}.day-tab-label{white-space:nowrap;font-weight:600}.day-tab-count{font-size:var(--text-2xs)}.day-tab:not(.active) .day-tab-count{color:var(--text-muted)}.slot-groups{gap:var(--space-4);margin-top:var(--space-4);display:grid}.slot-group h4{font-size:var(--text-md);margin:0 0 var(--space-2)}.slot-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(96px,1fr));display:grid}.slot-button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-variant-numeric:tabular-nums;padding:.7rem var(--space-3);font-weight:600;transition:border-color .2s,background-color .2s}.slot-button:hover:not(:disabled){background:var(--success-surface);border-color:var(--color-grass)}.slot-button:disabled{cursor:wait;opacity:.6}.slot-button span{color:var(--text-muted);font-size:var(--text-2xs);margin-top:.2rem;font-weight:400;display:block}.lesson-card{gap:var(--space-3);padding:var(--space-5);display:grid}.lesson-card h3{font-size:var(--text-lg);margin:0}.lesson-meta{color:var(--text-muted);font-size:var(--text-sm);margin:0}.lesson-cancelled{opacity:.7}.status-badge{border-radius:var(--radius-pill);color:var(--text);font-size:var(--text-2xs);white-space:nowrap;padding:.35rem .7rem;font-weight:600}.status-scheduled,.status-settled{background:var(--success-surface)}.status-cancelled,.status-no-show{background:var(--neutral-surface);color:var(--text-muted)}.status-pending{background:var(--warning-surface)}.status-overdue{background:var(--danger-surface);color:var(--danger-text)}.lesson-actions,.row-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.inline-form,.availability-form,.exception-form{background:var(--surface-sunken);border-radius:var(--radius-md);gap:var(--space-2);padding:var(--space-5);display:grid}.inline-form label,.availability-form label,.exception-form label{margin:var(--space-1) 0 0}.inline-form .btn-primary,.availability-form .btn-primary,.exception-form .btn-primary{margin-top:var(--space-2);justify-self:start}.availability-form{margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end}.exception-form{margin-bottom:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr))}.exception-form .supporting-copy,.exception-form .form-error,.exception-form .btn-primary{grid-column:1/-1}.field{gap:var(--space-1);display:grid}.field label{margin:0}.field-legend{grid-column:1/-1;margin:0;font-weight:600}.moment-field{gap:var(--space-2);display:grid}.moment-inputs{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.availability-form .btn-primary,.exception-form .btn-primary{grid-column:1/-1}.rule-row>div:first-child{align-items:center;gap:.8rem;display:flex}.rule-row>div:first-child span{color:var(--text-muted)}.compact-fields,.exception-edit{gap:var(--space-2);flex-wrap:wrap;display:flex}.compact-fields input{max-width:125px;padding:.55rem}.compact-fields input,.exception-edit input,.exception-edit select,.assignment-controls input{min-height:2.5rem}.exception-row{align-items:flex-start}.exception-row p{color:var(--text-muted);margin:var(--space-1) 0 0}.exception-edit{flex:1}.exception-edit input,.exception-edit select{width:auto;min-width:130px;padding:.55rem}.inline-link{color:inherit;text-decoration:none;display:inline-block}.commercial-columns,.work-grid{gap:var(--space-4);margin:var(--space-4) 0;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.subpanel{background:var(--surface-sunken);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--space-5)}.subpanel h3{font-size:var(--text-lg);margin:0 0 var(--space-3)}.commercial-summary{border-left:3px solid var(--color-grass);padding-left:var(--space-4)}.commercial-summary p{color:var(--text-muted);font-size:var(--text-sm);margin:var(--space-2) 0}.supporting-copy{color:var(--text-muted);line-height:1.6}.history-list{gap:var(--space-2);padding-left:1.3rem;display:grid}.history-list li{color:var(--text-muted);font-size:var(--text-xs)}.history-list strong{color:var(--text)}details>summary{cursor:pointer;font-size:var(--text-sm);font-weight:600}details>summary:hover{color:var(--text)}.booking-details,.material-details{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5)}.material-details{margin-top:var(--space-4)}.material-details>summary{font-weight:600}.booking-details>summary{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.02em;list-style-position:inside}.booking-details[open]>summary{margin-bottom:var(--space-2)}.check-label{align-items:flex-start;gap:.55rem;display:flex}.check-label input{accent-color:var(--color-ink);width:auto;min-height:0;margin-top:.2rem}.resolution-row{border-top:1px solid var(--border);margin-top:.8rem;padding-top:.8rem}.financial-history{margin-top:var(--space-4)}@media (width<=760px){.panel-bar{row-gap:var(--space-2);flex-wrap:wrap}.panel-nav{flex-wrap:wrap;order:3;width:100%;margin-left:0}.availability-form,.exception-form,.commercial-columns,.work-grid{grid-template-columns:1fr}.exception-form .supporting-copy,.exception-form .form-error,.exception-form .btn-primary{grid-column:auto}.assignment-row,.rule-row,.exception-row{flex-direction:column;align-items:flex-start}.assignment-controls{width:100%}.assignment-controls input{flex:1;max-width:none}.row-actions{width:100%}}.skeleton{gap:var(--space-2);padding:var(--space-4) 0;display:grid}.skeleton-line{background:linear-gradient(90deg, var(--surface-sunken), var(--surface-active), var(--surface-sunken));border-radius:var(--radius-pill);background-size:200% 100%;height:1.1rem;animation:1.4s ease-in-out infinite skeleton-shift;display:block}.skeleton-line:last-child{width:60%}@keyframes skeleton-shift{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton-line{animation:none}}.toast-tray{bottom:var(--space-6);gap:var(--space-2);width:min(30rem, calc(100vw - var(--space-8)));z-index:20;display:grid;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--color-ink);border-radius:var(--radius-md);box-shadow:var(--shadow-lift);color:var(--color-cream);align-items:center;gap:var(--space-3);padding:.9rem var(--space-5);justify-content:space-between;display:flex}.toast .text-button{color:color-mix(in srgb, var(--color-cream) 75%, transparent);text-decoration-color:currentColor}.toast .text-button:hover{color:var(--color-cream)}.toast-success:before{background:var(--color-grass);border-radius:var(--radius-pill);content:"";flex-shrink:0;width:.5rem;height:.5rem}.toast-danger{background:var(--danger-surface);border:1px solid var(--danger-border);color:var(--danger-text)}.toast-danger .text-button,.toast-danger .text-button:hover{color:inherit}.toast>span{flex:1}.dialog-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:color-mix(in srgb, var(--color-ink) 40%, transparent);padding:var(--space-4);z-index:30;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--color-cream);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);gap:var(--space-4);max-height:calc(100vh - var(--space-8));max-width:34rem;padding:var(--space-8);width:100%;display:grid;overflow-y:auto}.dialog h3{font-size:var(--text-lg)}.dialog h2{font-size:var(--text-xl)}.dialog .supporting-copy{margin:0}.dialog .row-actions{justify-content:flex-end}.dialog-confirm.danger-button{background:var(--danger);color:var(--color-cream)}.dialog-confirm.danger-button:hover:not(:disabled){background:var(--danger-text)}.policy-hint{align-items:center;gap:var(--space-2);margin-left:var(--space-2);display:inline-flex}.policy-hint-toggle{background:var(--surface-active);border-radius:var(--radius-pill);color:var(--text);font-size:var(--text-2xs);border:0;width:1.35rem;height:1.35rem;font-weight:700;line-height:1}.policy-hint-body{color:var(--text-muted);font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:0;font-weight:400}.badge-with-help{align-items:center;gap:var(--space-2);display:inline-flex}.tooltip{display:inline-flex;position:relative}.tooltip-trigger{background:var(--surface-active);border-radius:var(--radius-pill);color:var(--text);cursor:help;font-size:var(--text-2xs);border:0;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;padding:0;font-weight:700;line-height:1;display:inline-flex}.tooltip-trigger:hover{background:var(--color-line)}.tooltip-body{background:var(--color-ink);border-radius:var(--radius-sm);box-shadow:var(--shadow-lift);color:var(--color-cream);font-size:var(--text-xs);opacity:0;padding:var(--space-2) var(--space-3);font-weight:400;line-height:1.5;font-family:var(--font-sans);letter-spacing:0;pointer-events:none;text-align:left;top:calc(100% + var(--space-2));visibility:hidden;z-index:5;width:max-content;max-width:18rem;transition:opacity .15s;position:absolute}.tooltip-start{left:0}.tooltip-end{right:0}.heading-with-help{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);display:flex;position:relative}.heading-with-help .tooltip{position:static}.heading-with-help h2{font-size:var(--text-xl)}.section-heading .heading-with-help{margin-bottom:0}.tooltip:hover .tooltip-body,.tooltip:focus-within .tooltip-body{opacity:1;visibility:visible}.is-busy{position:relative}.spinner{border-radius:var(--radius-pill);vertical-align:-.1em;border:2px solid;border-right-color:#0000;width:.8em;height:.8em;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.5s}}.tab-bar{box-shadow:inset 0 -1px 0 var(--border);gap:var(--space-2);margin:var(--space-6) 0 var(--space-6);scrollbar-width:none;display:flex;overflow-x:auto}.tab-bar button{color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-3) var(--space-3);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;font-weight:600}.tab-bar button:hover{color:var(--text)}.tab-bar button.active{border-bottom-color:var(--color-grass);color:var(--text)}.decision-queue{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.decision-queue li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:var(--space-4);padding:.9rem var(--space-5);justify-content:space-between;display:flex}.decision-queue .btn{white-space:nowrap}.today-lesson{font-variant-numeric:tabular-nums}.flow-panel{background:var(--surface-sunken);border-radius:var(--radius-md);gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-5);display:grid}.flow-panel h4{font-size:var(--text-lg);margin:0}.flow-panel .row-actions{margin-top:var(--space-2);justify-content:flex-end}.advanced-operations{border-top:1px solid var(--border);margin-top:var(--space-4);padding-top:var(--space-3)}.advanced-operations summary{color:var(--text-muted)}.advanced-operations .btn,.advanced-operations .text-button{margin-top:var(--space-2)}.picker{border:1px solid var(--border);border-radius:var(--radius-sm);gap:var(--space-2);margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);display:grid}.picker legend{font-size:var(--text-xs);padding:0 var(--space-2);font-weight:600}a.assignment-row{color:inherit;align-items:center;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:flex}a.assignment-row:hover{border-color:var(--color-ink);box-shadow:var(--shadow-lift)}.material-form{margin-bottom:var(--space-6)}.material-form .btn{justify-self:start}.material-form h3{font-size:var(--text-lg);margin:0}.material-list{gap:var(--space-3);display:grid}.material-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-3);padding:var(--space-5);display:grid}.material-heading{align-items:flex-start;gap:var(--space-4);justify-content:space-between;display:flex}.material-heading h3{font-size:var(--text-lg);margin:0}.material-body{overflow-wrap:anywhere;line-height:1.6}.material-body>:first-child{margin-top:0}.material-body>:last-child{margin-bottom:0}.material-body h3,.material-body h4{font-size:var(--text-md);margin:var(--space-3) 0 var(--space-1)}.material-images{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));display:grid}.material-images img{aspect-ratio:4/3;background:var(--surface-sunken);border:1px solid var(--border-soft);border-radius:var(--radius-sm);object-fit:cover;width:100%;display:block}.material-files{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.material-files a{color:var(--text);font-size:var(--text-sm);-webkit-text-decoration-color:var(--color-grass);text-decoration-color:var(--color-grass);text-underline-offset:.25em;font-weight:600;text-decoration-thickness:2px}.learner-materials{border-top:1px solid var(--border);padding-top:var(--space-4)}.learner-materials h4{font-size:var(--text-lg);margin:0}.learner-materials .heading-with-help{margin-bottom:var(--space-3)}.rich-text{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.rich-text:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}.rich-text-toolbar{border-bottom:1px solid var(--border-soft);gap:var(--space-1);padding:var(--space-1);flex-wrap:wrap;display:flex}.rich-text-toolbar button{border-radius:var(--radius-pill);color:var(--text);font-size:var(--text-xs);padding:var(--space-1) var(--space-3);background:0 0;border:0;font-weight:600}.rich-text-toolbar button:hover{background:var(--surface-sunken)}.rich-text-area{min-height:8rem;padding:var(--space-3);outline:0}.learner-panel{--text-2xs:.85rem;--text-xs:.95rem;--text-sm:1.05rem;--text-md:1.125rem;--touch-target:44px;font-size:var(--text-md)}.learner-panel .btn,.learner-panel .slot-button,.learner-panel .panel-nav a,.learner-panel summary,.learner-panel .text-button{min-height:var(--touch-target);align-items:center;display:inline-flex}.learner-panel .slot-button{display:block}.learner-panel .panel-nav a{font-size:var(--text-md)}.assignment-switcher{align-items:center;gap:var(--space-3);margin:var(--space-6) 0 0;max-width:28rem;display:flex}.assignment-switcher label{white-space:nowrap;margin:0}.next-lesson{gap:var(--space-2);justify-items:start;display:grid}.next-lesson-time{font-family:var(--font-display);font-size:var(--text-xl);margin:0}@media (width<=720px){.learner-panel .panel-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--color-cream)}.learner-panel .panel-shell{padding-bottom:calc(var(--space-16) * 2)}.learner-panel .learner-nav{background:var(--surface);border-top:1px solid var(--border);padding:var(--space-1) var(--space-2) calc(var(--space-1) + env(safe-area-inset-bottom));z-index:20;--text-2xs:.75rem;width:auto;padding-inline:var(--space-1);grid-auto-columns:auto;grid-auto-flow:column;justify-content:space-between;gap:0;margin:0;display:grid;position:fixed;bottom:0;left:0;right:0}.learner-panel .learner-nav a{border-radius:var(--radius-sm);font-size:var(--text-2xs);min-width:0;padding-inline:var(--space-1);justify-content:center;position:relative}.learner-panel .learner-nav .nav-badge{right:0;top:calc(-1 * var(--space-2));margin:0;position:absolute}}.payment-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6)}.payment-card h2{margin-top:0}.due-list{gap:var(--space-3);margin:var(--space-4) 0;padding:0;list-style:none;display:grid}.due-row{border-bottom:1px solid var(--border-soft);align-items:center;gap:var(--space-4);padding-bottom:var(--space-3);justify-content:space-between;display:flex}.due-row p{margin:var(--space-1) 0 0}.due-amount{font-variant-numeric:tabular-nums;align-items:flex-end;gap:var(--space-1);white-space:nowrap;justify-items:end;font-weight:600;display:grid}.transfer-details{align-items:start;gap:var(--space-8);grid-template-columns:minmax(0,1fr) auto;display:grid}.transfer-fields{gap:var(--space-2) var(--space-4);grid-template-columns:auto minmax(0,1fr);margin:0;display:grid}.transfer-fields dt{color:var(--text-muted)}.transfer-fields dd{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.iban{font-variant-numeric:tabular-nums;letter-spacing:.02em}.transfer-qr{gap:var(--space-2);text-align:center;justify-items:center;max-width:16rem;margin:0;display:grid}.transfer-qr img{border-radius:var(--radius-sm);image-rendering:pixelated}.transfer-qr figcaption{color:var(--text-muted);font-size:var(--text-xs)}@media (width<=720px){.transfer-details,.transfer-fields{grid-template-columns:1fr}}.check-row{align-items:center;gap:var(--space-2);margin:0;display:flex}.check-row input{width:auto;min-height:auto}.note-list,.note-lessons{gap:var(--space-4);display:grid}.note-card .lesson-meta{margin:0 0 var(--space-2)}.note-form{margin-top:var(--space-3)}.repertoire .heading-with-help{margin-bottom:var(--space-3)}.piece-group{gap:var(--space-3);margin-top:var(--space-5);display:grid}.piece-group h3{font-size:var(--text-lg);margin:0}.piece-list,.piece-rows{gap:var(--space-3);display:grid}.piece-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-2);padding:var(--space-4) var(--space-5);display:grid}.piece-heading h4{font-size:var(--text-lg);margin:0}.piece-heading .supporting-copy{margin:0}.piece-versions[open]>summary{margin-bottom:var(--space-3)}.piece-versions .material-card{background:var(--surface-sunken)}.wish-list{gap:var(--space-2);margin:var(--space-3) 0;padding:0;list-style:none;display:grid}.wish-list li{border-bottom:1px solid var(--border-soft);align-items:center;gap:var(--space-3);padding:var(--space-2) 0;flex-wrap:wrap;justify-content:space-between;display:flex}.wish-inbox{background:var(--surface-sunken);border-radius:var(--radius-md);margin-bottom:var(--space-5);padding:var(--space-4) var(--space-5)}.wish-inbox h3{margin:0}.piece-row{border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.piece-row .lesson-meta{margin:var(--space-1) 0 0}.piece-form{margin-top:var(--space-5)}.piece-form h3{font-size:var(--text-lg);margin:0}.piece-row select,.material-heading select{width:auto}.piece-rows{margin-bottom:var(--space-2)}.pieces-heading{font-size:var(--text-lg);margin:var(--space-2) 0 var(--space-3)}.task-list{gap:var(--space-3);margin:0 0 var(--space-4);padding:0;list-style:none;display:grid}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-1);padding:var(--space-4) var(--space-5);display:grid}.task-card h3{font-size:var(--text-lg);margin:0}.task-details{white-space:pre-line;margin:0}.task-card .lesson-meta{gap:var(--space-3);margin:var(--space-1) 0 0;flex-wrap:wrap;display:flex}.task-titles{gap:var(--space-1);margin:0 0 var(--space-3);padding-left:var(--space-5);display:grid}.practice-button{justify-self:start}.session-form,.plan-form{margin-top:var(--space-3)}.session-form textarea,.plan-form textarea{font:inherit}.practice-legend{color:var(--text-muted);font-size:var(--text-xs);margin:var(--space-3) 0 0}.practice-grid{gap:var(--space-1);margin:var(--space-3) 0 var(--space-5);max-width:22rem;display:grid}.practice-week{gap:var(--space-1);text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.practice-week [role=columnheader]{color:var(--text-muted);font-size:var(--text-2xs);font-weight:600}.practice-day{aspect-ratio:1;border-radius:var(--radius-pill);color:var(--text-muted);font-size:var(--text-xs);justify-content:center;align-items:center;display:flex}.practice-day.practiced{background:var(--color-grass);color:var(--color-ink);font-weight:700}.practice-day.today{box-shadow:inset 0 0 0 2px var(--color-ink)}.practice-day.future{opacity:.35}.session-list{margin:0;padding:0;list-style:none;display:grid}.session-list li{border-bottom:1px solid var(--border-soft);align-items:flex-start;gap:var(--space-3);padding:var(--space-3) 0;justify-content:space-between;display:flex}.session-list .lesson-meta,.session-comment{margin:var(--space-1) 0 0}.session-comment{font-style:italic}.practice-summary{background:var(--surface-sunken);border-radius:var(--radius-md);margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4)}.practice-summary p{margin:0}.session-comments{gap:var(--space-1);margin:var(--space-2) 0 0;padding:0;list-style:none;display:grid}.plan-task{align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.plan-task select{width:auto}.new-task{gap:var(--space-1);display:grid}.plan-form>.btn-ghost{justify-self:start}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.nav-badge{background:var(--color-ink);border-radius:var(--radius-pill);color:var(--color-cream);font-size:var(--text-2xs);margin-left:var(--space-1);padding:var(--space-1) var(--space-2);vertical-align:middle;font-weight:700;line-height:1;display:inline-block}.panel-nav a.active .nav-badge,.tab-bar .active .nav-badge{background:var(--color-cream);color:var(--color-ink)}.message-thread{gap:var(--space-3);display:grid}.message-thread>.text-button{justify-self:center}.message-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.message{background:var(--surface-sunken);border:1px solid var(--border-soft);border-radius:var(--radius-md);gap:var(--space-2);max-width:90%;padding:var(--space-3);display:grid}.message.own{background:var(--surface);justify-self:end}.message-meta{color:var(--text-muted);font-size:var(--text-xs);margin:0}.message .material-images{grid-template-columns:repeat(auto-fill,minmax(8rem,10rem))}.message-body{overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.message-note-label{color:var(--text-muted);font-size:var(--text-2xs);letter-spacing:.08em;text-transform:uppercase;font-weight:600;display:block}.message-note{background:var(--surface-sunken);border-left:var(--space-1) solid var(--color-ink);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin:0}.message-form{gap:var(--space-2);display:grid}.message-form>.btn{justify-self:start}.message-attach{gap:var(--space-2);flex-wrap:wrap;display:flex}.file-button{cursor:pointer;position:relative}.file-button:focus-within{box-shadow:0 0 0 4px var(--accent-ring)}.selected-files{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.selected-files li{align-items:center;gap:var(--space-2);justify-content:space-between;display:flex}
