:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--paper:#fbfaf7;--surface:#fff;--surface-sunken:#f2f0ea;--border:#e0ddd4;--border-strong:#c9c5b8;--text:#1c1a17;--text-muted:#66625a;--text-faint:#8d887e;--accent:#3d4f8f;--accent-hover:#2f3e73;--accent-soft:#e8ebf6;--accent-text:#fff;--positive:#2f6a4a;--positive-soft:#e3f0e8;--warning:#8a5a12;--warning-soft:#f8eeda;--danger:#9b2f2f;--danger-hover:#7d2525;--danger-soft:#f7e6e4;--radius-sm:.375rem;--radius:.625rem;--radius-lg:1rem;--shadow-sm:0 1px 2px #1c1a170f;--shadow:0 2px 4px #1c1a170f, 0 8px 24px #1c1a170f;--shadow-paper:0 1px 2px #1c1a1714, 0 12px 32px #1c1a171a;--desk:#eae7df;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--content-width:60rem;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;font-family:var(--font-sans);-webkit-text-size-adjust:100%;line-height:1.55}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#16151a;--surface:#1e1d23;--surface-sunken:#26252c;--border:#35333c;--border-strong:#4b4854;--text:#f0eee9;--text-muted:#a8a49c;--text-faint:#837f78;--accent:#97a7e0;--accent-hover:#b0bdea;--accent-soft:#262b40;--accent-text:#14141a;--positive:#7fc39d;--positive-soft:#1e2b24;--warning:#d9ab63;--warning-soft:#2c2519;--danger:#e08b85;--danger-hover:#eba49f;--danger-soft:#2e1e1d;--shadow-sm:0 1px 2px #0006;--shadow:0 2px 4px #0000004d, 0 8px 24px #00000059;--shadow-paper:0 2px 6px #00000073, 0 16px 40px #00000073;--desk:#100f13}}*,:before,:after{box-sizing:border-box}body{background:var(--paper);color:var(--text);margin:0}h1,h2,h3{text-wrap:balance;margin:0;line-height:1.2}h1{letter-spacing:-.02em;font-size:clamp(1.75rem,1.3rem + 1.8vw,2.5rem)}h2{letter-spacing:-.01em;font-size:1.25rem}h3{font-size:1rem}p{margin:0}a{color:var(--accent);text-underline-offset:.15em;text-decoration-thickness:1px}img{max-width:100%}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-3) var(--space-5);padding:var(--space-4) var(--space-5);z-index:10;flex-wrap:wrap;justify-content:space-between;display:flex;position:sticky;top:0}.app-brand{color:var(--text);align-items:center;gap:var(--space-2);letter-spacing:-.01em;font-size:1.0625rem;font-weight:600;text-decoration:none;display:inline-flex}.app-brand:hover{color:var(--text)}.app-brand svg{color:var(--accent);flex:none}.app-session{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;font-size:.9375rem;display:flex}.app-session-user{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:16rem;overflow:hidden}.app-session-user:hover{color:var(--text)}.verification-banner{background:var(--warning-soft);color:var(--warning);align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-4);text-align:center;flex-wrap:wrap;justify-content:center;display:flex}.session-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.session-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center;gap:var(--space-3) var(--space-4);padding:var(--space-4) var(--space-5);flex-wrap:wrap;justify-content:space-between;display:flex}.app>main{max-width:var(--content-width);padding:var(--space-7) var(--space-5) var(--space-8);flex:1;width:100%;margin:0 auto}.app-footer{border-top:1px solid var(--border);color:var(--text-faint);max-width:var(--content-width);padding:var(--space-5);width:100%;margin:0 auto;font-size:.875rem}.app-error{max-width:34rem;padding:var(--space-8) var(--space-5);text-align:center;margin:0 auto}.page-header{gap:var(--space-3) var(--space-5);margin-bottom:var(--space-6);flex-wrap:wrap;justify-content:space-between;display:flex}.page-header p{color:var(--text-muted);margin-top:var(--space-2)}.section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--space-5);padding:var(--space-5)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.muted{color:var(--text-muted)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.back-link{margin-top:var(--space-5);font-size:.9375rem;display:inline-block}button,.button{background:var(--accent);border-radius:var(--radius);color:var(--accent-text);cursor:pointer;font:inherit;align-items:center;gap:var(--space-2);border:1px solid #0000;justify-content:center;padding:.5rem 1rem;font-size:.9375rem;font-weight:550;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}button:hover:not(:disabled),.button:hover{background:var(--accent-hover);color:var(--accent-text)}button:disabled{cursor:not-allowed;opacity:.5}button.secondary:hover:not(:disabled),.button.secondary:hover{background:var(--surface-sunken);color:var(--text)}button.danger{color:var(--danger);background:0 0;border-color:#0000}button.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger-hover)}button.link{color:var(--accent);text-underline-offset:.15em;background:0 0;border:none;padding:0;text-decoration:underline}button.link:hover:not(:disabled){color:var(--accent-hover);background:0 0}.button-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}label{font-size:.9375rem;font-weight:550;display:block}input[type=text],input[type=email],input[type=password],input[type=number],input[type=file]{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);font:inherit;margin-top:var(--space-2);width:100%;padding:.5rem .625rem;font-size:.9375rem;display:block}input[type=file]{padding:.4375rem .5rem}input:focus-visible{border-color:var(--accent)}input:disabled{background:var(--surface-sunken);color:var(--text-faint)}input[type=range]{accent-color:var(--accent);margin-top:var(--space-2);width:100%;display:block}input[type=checkbox]{accent-color:var(--accent);width:1rem;height:1rem;margin:0}.checkbox-label{align-items:center;gap:var(--space-2);font-weight:400;display:flex}.field-hint{color:var(--text-faint);margin-top:var(--space-1);font-size:.8125rem;font-weight:400;display:block}form{gap:var(--space-4);flex-direction:column;display:flex}[role=alert]{background:var(--danger-soft);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);border-radius:var(--radius);color:var(--danger);padding:var(--space-3) var(--space-4);font-size:.9375rem}.app-error [role=alert],[role=alert].plain{color:inherit;background:0 0;border:none;padding:0}.badge{background:var(--surface-sunken);color:var(--text-muted);align-items:center;gap:var(--space-2);white-space:nowrap;border-radius:999px;padding:.1875rem .625rem;font-size:.8125rem;font-weight:550;display:inline-flex}.badge.standing-badge.is-own-public{background:var(--accent-soft);color:var(--accent)}.badge.is-active:before{content:"";background:currentColor;border-radius:50%;width:.5rem;height:.5rem;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.badge.is-active:before{animation:none}}.app-facts{gap:var(--space-2) var(--space-5);grid-template-columns:auto 1fr;margin:0;display:grid}.app-facts dt{color:var(--text-muted);font-size:.9375rem}.app-facts dd{margin:0;font-size:.9375rem}.dropzone{border-style:dashed;border-color:var(--border-strong);transition:background-color .12s,border-color .12s}.dropzone .button-row{margin-top:var(--space-4)}.import-mode{gap:var(--space-2);margin:var(--space-3) 0;border:0;padding:0;display:grid}.import-mode legend{margin-bottom:var(--space-1);padding:0;font-weight:600}.import-mode .checkbox-label{align-items:baseline}.page-order{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}.page-order-choice{margin:0 0 var(--space-3);border:0;padding:0}.page-order-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.page-order-list li{align-items:center;gap:var(--space-3);min-width:0;display:flex}.page-order-thumb{object-fit:cover;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);flex:none;width:3.5rem;height:4.5rem}.page-order-name{overflow-wrap:anywhere;flex-direction:column;flex:1;min-width:0;display:flex}.page-order-moves{gap:var(--space-1);flex:none;display:flex}.page-order-moves button{min-width:2.75rem;min-height:2.75rem}.gallery{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));margin:0;padding:0;list-style:none;display:grid}.gallery-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.gallery-thumb-link{display:block}.gallery-thumb{aspect-ratio:4/3;background:var(--surface-sunken);border-bottom:1px solid var(--border);object-fit:cover;object-position:top center;width:100%;display:block}.gallery-thumb-empty{color:var(--text-faint);justify-content:center;align-items:center;font-size:2.5rem;display:flex}.gallery-card-body{gap:var(--space-2);padding:var(--space-4);flex-direction:column;flex:1;display:flex}.gallery-card-heading{align-items:start;gap:var(--space-3);justify-content:space-between;display:flex}.gallery-card-title{color:var(--text);font-size:1.0625rem;font-weight:600;text-decoration:none}.gallery-card-title:hover{color:var(--accent);text-decoration:underline}.gallery-card-actions{padding-top:var(--space-2);margin-top:auto}.gallery-card [role=alert]{font-size:.875rem}.empty-library{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-7) var(--space-5);text-align:center}.section-heading{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);justify-content:space-between;display:flex}.section-heading h2{margin-bottom:0}.recognition-progress{margin-top:var(--space-3);width:100%;display:block}.page-tabs{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.page-tabs button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.page-tabs .page-tab-failed{background:var(--surface-sunken);color:var(--text-faint);cursor:not-allowed;opacity:1;border-style:dashed}.score-sizer{flex:none;margin-inline:auto;position:relative}.score-world{transform-origin:top;position:absolute;top:0;left:50%}.sheet-music{flex-direction:column;display:flex}.sheet-music>div{border-radius:var(--radius-sm);box-shadow:var(--shadow-paper);outline:1px solid var(--border-strong);background:#fff}.sheet-music>div>svg{display:block}.score-chrome{pointer-events:none;position:absolute;inset:0}.score-chrome>*{pointer-events:auto;scale:var(--chrome-scale,1);transform-origin:0 0}.practice{border-top:1px solid var(--border);gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);display:grid}.practice h3{margin:0}.practice-tempo{gap:var(--space-2);max-width:24rem;display:grid}.practice-tempo input[type=range]{width:100%}.practice-loop{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.practice-measure-field{align-items:center;gap:var(--space-2);display:flex}.practice-measure-field input[type=number]{width:5rem;display:inline-block}.practice-progress{color:var(--text-muted);align-self:center}.practice-voice{margin:0}.piano-keyboard-scroll{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);padding:var(--space-3);-webkit-overflow-scrolling:touch;overflow-x:auto}.piano-keyboard{--white-key-width:1.75rem;--white-key-height:7rem;height:var(--white-key-height);width:calc(var(--white-key-count) * var(--white-key-width));display:flex;position:relative}.piano-key{border:1px solid var(--border-strong);cursor:pointer;font:inherit;padding:0}.piano-key-white{border-radius:0 0 var(--radius-sm) var(--radius-sm);color:var(--text-faint);flex:0 0 var(--white-key-width);height:100%;padding-bottom:var(--space-1);background:#fdfdfb;justify-content:center;align-items:flex-end;display:flex}.piano-key-black{border-radius:0 0 var(--radius-sm) var(--radius-sm);height:62%;left:calc(var(--key-offset) * var(--white-key-width));width:calc(var(--white-key-width) * .62);z-index:1;background:#26252c;border-color:#15141a;position:absolute;top:0}.piano-key-recorded.piano-key-white{background:var(--positive-soft)}.piano-key-recorded.piano-key-black{background:var(--positive)}.piano-key-failed.piano-key-white{background:var(--danger-soft)}.piano-key-failed.piano-key-black{background:var(--danger)}.piano-key-recording{animation:1s ease-in-out infinite piano-key-pulse}@keyframes piano-key-pulse{50%{background:var(--warning-soft)}}@media (prefers-reduced-motion:reduce){.piano-key-recording{background:var(--warning-soft);animation:none}}.piano-key[aria-pressed=true]{box-shadow:inset 0 0 0 3px var(--accent)}.piano-key-label{pointer-events:none;font-size:.65rem}.recording-note{align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.recording-note-name{font-size:2.5rem;font-weight:600;line-height:1}.recording-countdown{margin:0;font-size:3rem;font-weight:600}.recording-prompt{color:var(--accent);margin:0;font-size:1.25rem;font-weight:600}.record-button{padding:var(--space-3) var(--space-5);font-size:1.05rem}.level-meter{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;height:.75rem;overflow:hidden}.level-meter-fill{background:var(--positive);height:100%;transition:width 60ms linear}.level-meter-fill.is-clipping{background:var(--danger)}.sample-review{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);gap:var(--space-2);padding:var(--space-4);display:grid}.series-setup,.series-guide,.series-summary{gap:var(--space-3);display:grid}.series-scope{border:1px solid var(--border);border-radius:var(--radius);gap:var(--space-2);padding:var(--space-3) var(--space-4);display:grid}.series-scope label{align-items:center;gap:var(--space-2);display:flex}.series-guide{text-align:center;justify-items:center}.series-progress{color:var(--text-muted);margin:0;font-size:1.1rem}.series-current{letter-spacing:-.02em;margin:0;font-size:clamp(4rem,22vw,9rem);font-weight:700;line-height:1}.series-next{color:var(--text-muted);margin:0;font-size:1.25rem}.series-pulse{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;max-width:32rem;height:.6rem;overflow:hidden}.series-pulse-fill{background:var(--accent);width:100%;height:100%;animation-name:series-pulse-empty;animation-timing-function:linear;animation-iteration-count:1;animation-fill-mode:forwards;display:block}@keyframes series-pulse-empty{to{width:0%}}@media (prefers-reduced-motion:reduce){.series-pulse-fill{animation:none}}.series-overview{gap:var(--space-2);margin-top:var(--space-5);display:grid}.series-problems{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.series-problem{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);gap:var(--space-2);padding:var(--space-4);display:grid}.series-problem-note{font-size:1.75rem;font-weight:600;line-height:1}.voice-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.voice-row{border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.voice-choice{align-items:center;gap:var(--space-3);display:flex}.source-preview{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);object-fit:contain;width:100%;max-height:30rem;display:block}.quality{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:var(--radius);margin:var(--space-4) 0;padding:var(--space-4)}.quality-high{border-left-color:var(--positive)}.quality-medium{border-left-color:var(--warning)}.quality-low{border-left-color:var(--danger)}.quality-unknown{border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);margin:var(--space-4) 0;padding:var(--space-3) var(--space-4)}.quality-headline{align-items:baseline;gap:var(--space-3);margin:0;display:flex}.quality-badge{border-radius:var(--radius-sm);padding:.125rem var(--space-2);flex:none;font-size:.8125rem;font-weight:600}.quality-why{color:var(--text-muted);margin:var(--space-2) 0 0}.quality-measures{margin:var(--space-3) 0 0;padding:0;list-style:none}.quality-measures>li{border-top:1px solid var(--border);padding:var(--space-2) 0}.quality-measures>li>ul{color:var(--text-muted);margin:var(--space-1) 0 0;padding-left:var(--space-5)}.quality-measure-selected{background:var(--accent-soft)}.quality-measure-level{color:var(--text-muted);font-size:.875rem}.sheet-music-frame{margin:var(--space-4) 0}.sheet-music-controls{align-items:center;gap:var(--space-2);justify-content:flex-end;display:flex}.sheet-music-zoom{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:center;min-width:3.5rem}.sheet-measure-doubtful{fill:#fdf0d2}.sheet-note-hover{fill:#e6edf6;stroke:#b9c6d8;stroke-width:1px}.sheet-insertion-point{fill:#3d4f8f;animation:1.1s step-end infinite caret-blink}@keyframes caret-blink{0%,60%{opacity:1}61%,to{opacity:.25}}@media (prefers-reduced-motion:reduce){.sheet-insertion-point{animation:none}}.sheet-music-editable{cursor:default}.sheet-music-editable.is-over-note{cursor:grab}.sheet-music-editable.is-over-handle{cursor:ew-resize}.editor-canvas-pannable .sheet-music-editable,.editor-canvas-pannable .sheet-music-editable.is-over-note,.editor-canvas-pannable .sheet-music-editable.is-over-handle{cursor:inherit}.sheet-music-editable.is-dragging,.sheet-music-editable.is-dragging.is-over-note,.sheet-music-editable.is-dragging.is-over-handle{cursor:grabbing}.note-editor{gap:var(--space-3);flex-direction:column;display:flex}.note-editor-target{margin:0}.note-editor-row{align-items:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.note-editor-label{color:var(--text-muted);align-self:center}.note-editor-insert{border:1px solid var(--border);border-radius:var(--radius);gap:var(--space-2);padding:var(--space-3);flex-wrap:wrap;display:flex}.correction-stale{color:var(--text-muted)}.advice{background:var(--surface-sunken);border-radius:var(--radius);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.advice-explanation p{margin:0 0 var(--space-2)}.advice-source{font-size:.8125rem}.advice-suggestions{margin:0;padding:0;list-style:none}.advice-suggestions>li{align-items:baseline;gap:var(--space-2);padding:var(--space-2) 0;flex-wrap:wrap;justify-content:space-between;display:flex}.correction-form{align-items:end;gap:var(--space-3);flex-wrap:wrap;display:flex}.correction-form label{gap:var(--space-1);flex-direction:column;font-size:.875rem;display:flex}.correction-review{background:var(--surface-sunken);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.correction-list{margin:0;padding:0;list-style:none}.correction-list>li{border-top:1px solid var(--border);align-items:baseline;gap:var(--space-3);padding:var(--space-2) 0;justify-content:space-between;display:flex}.hero{padding:var(--space-6) 0 var(--space-7);text-align:center}.hero-lead{color:var(--text-muted);margin:var(--space-4) auto 0;text-wrap:pretty;max-width:38rem;font-size:1.125rem}.hero .button-row{margin-top:var(--space-6);justify-content:center}.steps{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));margin:0;padding:0;list-style:none;display:grid}.steps li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.steps h2{margin-bottom:var(--space-2);font-size:1rem}.steps p{color:var(--text-muted);font-size:.9375rem}.auth-page{max-width:24rem;margin:0 auto}.auth-page h1{margin-bottom:var(--space-5)}.auth-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.auth-alt{color:var(--text-muted);margin-top:var(--space-4);text-align:center;font-size:.9375rem}.app:has(>main.editor-page){height:100vh;overflow:hidden}.app:has(>main.editor-page)>.app-footer{display:none}.app>main.editor-page{flex-direction:column;max-width:none;min-height:0;padding:0;display:flex}.editor-title{border-bottom:1px solid var(--border);align-items:baseline;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}.editor-title h1{letter-spacing:-.01em;font-size:1.125rem}.editor-title p{font-size:.875rem}.editor{flex-direction:column;flex:1;min-height:0;display:flex}.editor-toolbar{background:var(--surface);border-bottom:1px solid var(--border);gap:var(--space-1);padding:var(--space-2) var(--space-3);z-index:5;flex-direction:column;display:flex;position:relative}.toolbar-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.toolbar-row-pen{border-top:1px solid var(--border);padding-top:var(--space-1)}.toolbar-spacer{min-width:var(--space-2);flex:auto}.toolbar-group{background:var(--surface-sunken);border-radius:var(--radius-sm);border:1px solid #0000;flex-wrap:wrap;align-items:center;gap:2px;padding:2px;display:flex}.toolbar-group-loud{border-color:var(--border)}.toolbar-divider{background:var(--border);margin:0 var(--space-1);align-self:stretch;width:1px}.tool-button{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;min-width:2rem;height:2rem;padding:0 var(--space-1);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:.9375rem;line-height:1;transition:background-color 90ms,color 90ms;display:inline-flex}.tool-button.tool-wide{min-width:2.5rem}.tool-button.tool-glyph{font-size:1.0625rem}.tool-button.tool-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);min-width:2.75rem;height:2.375rem}.tool-button.tool-primary .icon{width:1.25rem;height:1.25rem}.tool-button.tool-menu-text{font-variant-numeric:tabular-nums;min-width:4.25rem;padding:0 var(--space-2);white-space:nowrap;font-size:.8125rem}.playback-warnings{color:var(--text-muted);max-width:22rem;margin:0;padding-left:1.1rem;font-size:.8125rem}.tool-button:hover:not(:disabled){background:var(--surface);border-color:var(--border);color:var(--text)}.tool-button:disabled{color:var(--text-faint);cursor:default}.tool-button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tool-button.tool-danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.tool-button .icon{display:block}.toolbar-back{border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:var(--space-1);height:2rem;padding:0 var(--space-2);font-size:.8125rem;text-decoration:none;display:inline-flex}.toolbar-back:hover{background:var(--surface-sunken);color:var(--text)}.toolbar-saved{color:var(--text-faint);padding:0 var(--space-2);white-space:nowrap;font-size:.75rem}.toolbar-zoom{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-variant-numeric:tabular-nums;min-width:3.5rem;height:2rem;padding:0 var(--space-1);text-align:center;background:0 0;border:1px solid #0000;font-size:.8125rem}.toolbar-zoom:hover{background:var(--surface-sunken);color:var(--text)}.editor-body{flex:1;min-height:0;display:flex;position:relative}.editor-body>.editor-canvas{flex:1;min-width:0}.editor-inspector,.source-drawer{background:var(--surface);border-left:1px solid var(--border);z-index:30;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden auto;box-shadow:-12px 0 32px #0000001f}.sidebar-badge{background:var(--warning-soft);color:var(--warning);border-radius:999px;padding:.125rem .375rem;font-size:.6875rem;font-weight:600;line-height:1}.editor-sidebar{padding-bottom:var(--space-5);flex-direction:column;display:flex}.source-drawer{width:min(38rem,60%)}.source-drawer-head,.source-drawer-foot{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.source-drawer-foot{border-bottom:0;border-top:1px solid var(--border)}.source-drawer-head h2{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.875rem}.source-drawer-tools{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.source-drawer-zoom{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:center;min-width:3.5rem}.source-drawer-viewport{background:var(--desk);cursor:grab;min-height:0;padding:var(--space-4);flex:1;overflow:auto}.source-drawer-viewport.is-panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.source-drawer-image{box-shadow:var(--shadow-paper);background:#fff;max-width:none;margin-inline:auto;display:block}.sidebar-head{border-bottom:1px solid var(--border);padding:var(--space-3) var(--space-4);background:var(--surface);z-index:1;justify-content:space-between;align-items:baseline;display:flex;position:sticky;top:0}.sidebar-head h2{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:.875rem}.sidebar-section{border-bottom:1px solid var(--border)}.sidebar-section>summary{cursor:pointer;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);-webkit-user-select:none;user-select:none;font-size:.9375rem;font-weight:600;list-style:none;display:flex}.sidebar-section>summary::-webkit-details-marker{display:none}.sidebar-section>summary:after{color:var(--text-faint);content:"▸";margin-left:auto;transition:transform .12s}.sidebar-section[open]>summary:after{transform:rotate(90deg)}.sidebar-icon{color:var(--text-muted);width:1rem}.sidebar-body{padding:0 var(--space-4) var(--space-4);font-size:.9375rem}.sidebar-body .section,.sidebar-body .practice{background:0 0;border:0;border-radius:0;margin:0;padding:0}.sidebar-body .quality{padding:var(--space-3)}.sidebar-body .correction-form{grid-template-columns:minmax(0,1fr)}.editor-canvas{background:var(--desk);min-height:0;padding:var(--space-6) var(--space-5) var(--space-8);scroll-behavior:auto;flex-direction:column;display:flex;position:relative;overflow:auto}.editor-canvas-pannable{cursor:grab}.editor-canvas-panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.editor-empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);gap:var(--space-3);max-width:34rem;padding:var(--space-6);text-align:center;margin:0 auto;display:grid}.editor-paper{width:100%;display:block}.page-stack{gap:var(--space-5);flex-direction:column;display:flex}.page-stack-page{position:relative}.page-stack-page:not([data-focused]) .sheet-music{cursor:pointer}.page-stack-page[data-focused]:before{background:var(--accent);content:"";inline-size:3px;border-radius:999px;position:absolute;inset-block:0;inset-inline-start:calc(-1 * var(--space-3))}.page-stack-blank{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-paper);outline:1px solid var(--border-strong);padding:var(--space-5);text-align:center;justify-content:center;align-items:center;margin-inline:auto;display:flex}.page-stack-more{justify-content:center;display:flex}.editor-paper-entry .sheet-music>div{box-shadow:0 0 0 1px var(--accent), var(--shadow-paper);outline-color:var(--accent)}.toolbar-fit{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font:inherit;font-size:var(--text-sm,.875rem);background:0 0;border:1px solid #0000;padding:.25rem .5rem}.toolbar-fit:hover{background:var(--surface-hover);color:var(--text)}.toolbar-pages{color:var(--text-faint);font-size:var(--text-sm,.875rem);padding-inline:var(--space-2);white-space:nowrap}.find-panel{gap:var(--space-3);padding:var(--space-3) var(--space-4);display:grid}.find-row{gap:var(--space-2);display:flex}.find-row>label{align-items:baseline;gap:var(--space-1);flex:1;display:grid}.find-row>label>span,.find-panel>.find-row>label>span{color:var(--text-muted);font-size:.8125rem}.find-row input,.find-row select{width:100%}.find-quick{gap:var(--space-1);flex-wrap:wrap;display:flex}.find-fields{border:1px solid var(--border);border-radius:var(--radius-sm);gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-3);display:grid}.find-fields>legend{color:var(--text-muted);padding:0 var(--space-1);font-size:.8125rem}.find-actions{gap:var(--space-2);display:flex}.lyric-input{background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:2px var(--space-1);text-align:center;z-index:3;width:8rem;font-size:.9375rem;position:absolute;transform:translate(-50%)}.metadata-panel{gap:var(--space-3);padding:var(--space-3) var(--space-4);display:grid}.metadata-row{gap:var(--space-1);display:grid}.metadata-row>span{color:var(--text-muted);font-size:.875rem}.metadata-row input[type=text]{width:100%}.metadata-note{color:var(--text-faint);align-items:baseline;gap:var(--space-2);margin:var(--space-1) 0 0;flex-wrap:wrap;font-size:.8125rem;display:flex}.metadata-error{color:var(--danger);margin:0;font-size:.875rem}.layout-panel{gap:var(--space-3);padding:var(--space-3) var(--space-4);display:grid}.layout-row{align-items:center;gap:var(--space-2);grid-template-columns:1fr auto;display:grid}.layout-row>span{color:var(--text-muted);font-size:.875rem}.layout-row input[type=number]{width:6rem}.layout-choices{gap:var(--space-1);display:flex}.layout-margins,.layout-breaks{border:1px solid var(--border);border-radius:var(--radius-sm);gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-3);display:grid}.layout-margins>legend,.layout-breaks>legend{color:var(--text-muted);padding:0 var(--space-1);font-size:.8125rem}.floating-toolbar{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);z-index:4;gap:1px;padding:2px;display:flex;position:absolute;transform:translate(-50%,-100%)}.floating-toolbar.floating-below{transform:translate(-50%)}.floating-toolbar .tool-button{color:var(--text);min-width:1.75rem;height:1.75rem}.context-menu{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);max-width:16rem;max-height:min(28rem,80vh);padding:var(--space-2);z-index:20;position:fixed;overflow:hidden auto}.context-menu-section+.context-menu-section{border-top:1px solid var(--border);margin-top:var(--space-2);padding-top:var(--space-2)}.context-menu-heading{color:var(--text-faint);letter-spacing:.06em;margin:0 0 var(--space-1);padding:0 var(--space-2);text-transform:uppercase;font-size:.6875rem}.context-menu-items{flex-direction:column;display:flex}.context-menu-item{border-radius:var(--radius-sm);color:var(--text);cursor:pointer;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);text-align:left;background:0 0;border:0;width:100%;font-size:.875rem;display:flex}.context-menu-item:disabled{color:var(--text-faint);cursor:default}.context-menu-item.context-menu-danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.context-menu-glyph{text-align:center;min-width:1.25rem;font-size:1rem;display:inline-block}.editor-inspector{padding:var(--space-4);width:min(20rem,100%)}.inspector{gap:var(--space-4);flex-direction:column;display:flex}.inspector-head{border-bottom:1px solid var(--border);align-items:baseline;gap:var(--space-3);padding-bottom:var(--space-3);justify-content:space-between;display:flex}.inspector-title{letter-spacing:-.01em;font-size:1.25rem;font-weight:600}.inspector-where{font-size:.8125rem}.inspector-group h4{color:var(--text-muted);letter-spacing:.06em;margin:0 0 var(--space-2);text-transform:uppercase;font-size:.75rem}.inspector-row{align-items:center;gap:var(--space-1);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.inspector-row label{align-items:center;gap:var(--space-1);font-size:.8125rem;display:flex}.inspector-row input[type=number]{width:4rem}.inspector .clef-button{align-items:center;gap:var(--space-2);display:inline-flex}.inspector .glyph-button{min-width:2.25rem;padding:var(--space-1) var(--space-2);text-align:center;font-size:1rem;line-height:1.1}.inspector .dynamic-button{font-family:serif;font-style:italic;font-weight:700}.inspector button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.inspector-note{font-size:.75rem;line-height:1.4}.inspector-facts{gap:var(--space-1) var(--space-3);grid-template-columns:auto minmax(0,1fr);margin:0;font-size:.8125rem;display:grid}.inspector-facts dt{color:var(--text-muted)}.inspector-facts dd{margin:0}.inspector-reasons{padding-left:var(--space-4);margin:0;font-size:.875rem}.inspector-empty{padding:var(--space-4) 0}.inspector-messages{margin-top:var(--space-4)}.palette-backdrop{padding:max(var(--space-6), 12vh) var(--space-4) var(--space-4);z-index:40;background:#1c1a173d;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.palette{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;width:min(36rem,100%);max-height:min(32rem,70vh);display:flex;overflow:hidden}.palette-input{border:0;border-bottom:1px solid var(--border);padding:var(--space-4);border-radius:0;width:100%;font-size:1rem}.palette-input:focus-visible{outline:0}.palette-results{padding:var(--space-2);margin:0;list-style:none;overflow-y:auto}.palette-row{border-radius:var(--radius-sm);cursor:pointer;align-items:baseline;gap:var(--space-3);padding:var(--space-2) var(--space-3);grid-template-columns:minmax(0,1fr) auto auto;font-size:.875rem;display:grid}.palette-row.is-active{background:var(--accent-soft);color:var(--accent)}.palette-row.is-disabled{color:var(--text-faint);cursor:default}.palette-row.is-disabled.is-active{background:var(--surface-sunken);color:var(--text-faint)}.palette-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.palette-group{font-size:.75rem}.palette-row kbd{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-sans);white-space:nowrap;padding:.05rem .35rem;font-size:.75rem}.palette-empty,.palette-hint{padding:var(--space-3) var(--space-4);margin:0;font-size:.75rem}.palette-hint{border-top:1px solid var(--border)}@media (width<=30rem){.palette-backdrop{padding:var(--space-4) var(--space-2)}.palette-row{grid-template-columns:minmax(0,1fr) auto}.palette-group{display:none}.shortcut-list>div{grid-template-columns:minmax(0,1fr);gap:0}}.shortcut-heading{color:var(--text-muted);letter-spacing:.06em;margin:0 0 var(--space-2);text-transform:uppercase;font-size:.75rem}.shortcut-list{gap:var(--space-1);margin:0;font-size:.8125rem;display:grid}.shortcut-list>div{gap:var(--space-3);grid-template-columns:minmax(6rem,11rem) minmax(0,1fr);display:grid}.shortcut-list dt{color:var(--text-muted)}.shortcut-list dd{margin:0}.shortcut-list kbd{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-sans);padding:.05rem .35rem;font-size:.75rem}.sheet-measure-focused{fill:#d7e6ff;stroke:#2f63b4;stroke-width:2px}.sheet-measure-focused.sheet-measure-painted{stroke:none}.sheet-measure-drop{fill:none;stroke:#2f63b4;stroke-width:2.5px;stroke-dasharray:6 4}.sheet-clef-drop{fill:#2f63b4}.sheet-clef-selected{fill:#2f63b41f;stroke:#2f63b4;stroke-width:1.5px;rx:3}@media (width<=60rem){.editor-inspector,.source-drawer{width:100%}.toolbar-fit,.toolbar-pages{display:none}}@media (prefers-reduced-motion:reduce){.sidebar-section>summary:after{transition:none}}.tool-menu{position:relative}.tool-menu-button[aria-expanded=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tool-menu-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg,0 12px 32px #0000002e);gap:var(--space-2);max-width:min(30rem,100vw - 2rem);padding:var(--space-3);left:0;top:calc(100% + var(--space-1));z-index:40;flex-direction:column;display:flex;position:absolute}.tool-menu-row{gap:var(--space-1);flex-direction:column;display:flex}.tool-menu-label{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;font-size:.75rem}.tool-menu-tools{gap:var(--space-1);flex-wrap:wrap;display:flex}.tool-menu-row+.tool-menu-row{border-top:1px solid var(--border);padding-top:var(--space-2)}.editor-dialog-backdrop{z-index:60;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.editor-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg,0 24px 48px #00000047);max-width:min(28rem,100vw - 2rem);max-height:90vh;padding:var(--space-4);width:100%;overflow-y:auto}.editor-dialog h3{margin:0 0 var(--space-3)}.editor-dialog label{gap:var(--space-1);flex-direction:column;font-size:.875rem;display:flex}.editor-dialog .field-row{gap:var(--space-2);display:flex}.editor-dialog .field-row label{flex:1}.editor-stored-rows{background:var(--warning-soft);border-bottom:1px solid var(--border);gap:var(--space-1);padding:var(--space-2) var(--space-3);flex-direction:column;font-size:.8125rem;display:flex}.editor-stored-rows p{margin:0}.editor-marquee{background:var(--accent-soft);border:1px solid var(--accent);opacity:.5;pointer-events:none;z-index:20;border-radius:2px;position:absolute}.inspector-marks{color:var(--text-muted);gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin:0;font-size:.8125rem;display:flex}.inspector-mixed{color:var(--text-faint);font-style:italic}.lyric-row{align-items:center;gap:var(--space-1);display:flex}.lyric-row input[type=text]{flex:1}.sheet-drag-preview circle{fill:var(--accent);opacity:.28}.sheet-drag-preview text{fill:var(--accent);font-family:var(--font-sans,system-ui, sans-serif);paint-order:stroke;stroke:var(--surface);stroke-width:3px;font-size:11px;font-weight:600}.sheet-drag-invalid circle{fill:var(--danger);opacity:.3}.sheet-drag-invalid text{fill:var(--danger)}.sheet-drag-target{stroke:var(--accent);stroke-dasharray:3 2;stroke-width:1.2px;opacity:.9;fill:none!important}.sheet-drag-invalid .sheet-drag-target{stroke:var(--danger)}.sheet-note-dimmed{fill:#fff;opacity:.62;pointer-events:none}.sheet-span-handle{fill:var(--accent);opacity:.7}.sheet-playhead{pointer-events:none}.sheet-playhead-solid{stop-color:var(--accent);stop-opacity:1}.sheet-playhead-clear{stop-color:var(--accent);stop-opacity:0}.sheet-playhead-halo{fill:none;opacity:.18;stroke-linecap:round;stroke-width:7px}.sheet-playhead-core{fill:none;opacity:.9;stroke-linecap:round;stroke-width:1.75px}.sheet-playhead-cap{fill:var(--accent);opacity:.9}.sheet-loop-range{fill:var(--accent-soft);opacity:.55;pointer-events:none}.sheet-note-playing{fill:#c3cef5;stroke:#3d4f8f;stroke-width:1px;opacity:.85;pointer-events:none}.sheet-play-mark{pointer-events:none;stroke-width:1px}.sheet-play-wrong{fill:#ffc9c2;stroke:#c0432f}.sheet-play-missed{fill:none;stroke:#c0432f;stroke-dasharray:2 2;stroke-width:1.2px}.sheet-play-extra{fill:#ffe3ae;stroke:#b5761a}.sheet-play-early,.sheet-play-late{fill:#d8d3f0;stroke:none}.sheet-measure-playing{fill:#e6ebfd;stroke:#a9b7e8;stroke-width:1px;pointer-events:none}.playback-bar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.playback-tempo{align-items:center;gap:var(--space-1);font-size:.8125rem;display:flex}.playback-tempo input[type=range]{width:7rem}.playback-tempo-value{font-variant-numeric:tabular-nums;min-width:4.5rem}.tempo-plan{gap:var(--space-1);flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}.tempo-plan-point{align-items:center;gap:var(--space-1);font-size:.8125rem;display:flex}.tempo-plan-point input[type=number]{appearance:textfield;font-variant-numeric:tabular-nums;width:3.75rem;padding-inline:.5rem}.tempo-plan-point input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.tempo-plan-point input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}.tempo-plan-at{color:var(--text-muted)}.tempo-plan-mark{font-size:.9375rem;line-height:1}.tempo-plan-word{color:var(--text-muted);align-items:center;gap:var(--space-1);padding-left:3rem;font-size:.8125rem;display:flex}.tempo-plan-dashes{opacity:.6;border-top:1px dashed;flex:1}.mixer-row{align-items:center;gap:var(--space-2);justify-content:space-between;font-size:.8125rem;display:flex}.mixer-row input[type=range]{width:6rem}.mixer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.midi-live{font-variant-numeric:tabular-nums;min-height:1.4em;margin:0}.new-score-dialog{max-width:min(34rem,100vw - 2rem)}.new-score-dialog>.muted{margin:0 0 var(--space-3)}.new-score-grid{gap:var(--space-2) var(--space-3);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.new-score-ensembles{border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-1);padding:var(--space-2) var(--space-3) var(--space-3);margin:0;display:grid}.new-score-ensembles legend{padding:0 var(--space-1);font-size:.875rem}.new-score-ensemble{cursor:pointer;align-items:center;gap:var(--space-2);grid-template-columns:auto 1fr;display:grid}.new-score-ensemble>span{flex-direction:column;display:flex}.new-score-ensemble .muted{font-size:.8125rem}.playback-meter{border-radius:var(--radius-2,6px);bottom:var(--space-2,8px);color:#f2f4f8;font-variant-numeric:tabular-nums;left:var(--space-2,8px);pointer-events:none;z-index:9999;background:#0c0e14e0;border:1px solid #ffffff2e;gap:1px;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.35;display:grid;position:fixed}.playback-meter-row{grid-template-columns:5.5rem 4rem auto;gap:.5rem;display:grid}.playback-meter-row.is-bad{color:#ff9b9b;font-weight:600}.playback-meter-label{opacity:.7}.playback-meter-value{text-align:right}.playback-meter-extra{opacity:.85}.playback-meter-title{opacity:.7;border-top:1px solid #ffffff2e;margin-top:3px;padding-top:3px}.playback-meter-title:first-child{border-top:0;margin-top:0;padding-top:0}.playback-meter-copy,.playback-meter-text{pointer-events:auto}.playback-meter-copy{border-radius:var(--radius-1,4px);color:inherit;cursor:pointer;font:inherit;background:#ffffff1f;border:1px solid #ffffff3d;min-height:34px;margin-top:5px;padding:4px 10px}.playback-meter-text{border-radius:var(--radius-1,4px);color:inherit;font:inherit;resize:none;background:#00000073;border:1px solid #ffffff3d;width:22rem;max-width:70vw;margin-top:4px}.library-search{gap:var(--space-2);margin-block:var(--space-3);display:grid}.library-search-field{align-items:center;gap:var(--space-3);display:flex}.library-search-field input{flex:1;margin-top:0}.library-search-choices{gap:var(--space-2) var(--space-5);flex-wrap:wrap;display:flex}.library-search-choice{align-items:center;gap:var(--space-2) var(--space-4);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.library-search-choice legend{color:var(--text-muted);float:left;padding:0;font-size:.875rem}.library-search-choice label{align-items:center;gap:var(--space-1);font-weight:400;display:flex}.library-search-choice input[type=radio]{margin:0}.gallery-card-path{color:var(--text-faint);font-size:.8125rem}.gallery-card-snippet{color:var(--text-muted);font-size:.875rem;font-style:italic}.gallery-card-snippet mark{background:var(--accent-soft);color:inherit;padding-inline:.1em;font-style:normal}.editor-dialog.measure-popup{max-width:min(44rem,100vw - 2rem)}.measure-popup-sheet{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);margin-block:var(--space-3);min-height:10rem;overflow-x:auto}.measure-popup-tools{gap:var(--space-1);flex-wrap:wrap;display:flex}.measure-popup-tools button{min-width:2.5rem}.gallery-card-title{overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.gallery-card-progress{color:var(--text-muted);font-size:.875rem}.editor-dialog.editor-dialog-wide:has(.page-adjust){max-width:min(64rem,100vw - 2rem)}.page-adjust{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));display:grid}.page-adjust figure{align-items:center;gap:var(--space-1);flex-direction:column;margin:0;display:flex}.page-adjust figcaption{color:var(--text-muted,inherit);font-size:.875rem}.page-adjust-frame{touch-action:none;line-height:0;display:inline-block;position:relative;overflow:hidden}.page-adjust-frame img,.page-adjust-preview canvas{max-width:100%;max-height:60vh}.page-adjust-overlay{width:100%;height:100%;position:absolute;inset:0}.page-adjust-overlay polygon{fill:#508cff1f;stroke:#508cff;stroke-width:.004px}.page-adjust-overlay circle{cursor:grab;fill:#ffffffd9;stroke:#508cff;stroke-width:.006px}.page-adjust-overlay circle:focus-visible{stroke-width:.012px;outline:none}.page-adjust-controls,.page-adjust-actions{align-items:end;gap:var(--space-2);flex-wrap:wrap;display:flex}.page-adjust-actions{justify-content:flex-end}.editor-dialog label.page-adjust-recognize{flex-direction:row;align-items:center}.archive-filters{align-items:end;gap:var(--space-3);margin-block:var(--space-4);flex-wrap:wrap;display:flex}.archive-filters label{flex:14rem}.nav-badge{background:var(--accent);color:var(--surface);text-align:center;border-radius:999px;min-width:1.25rem;margin-inline-start:auto;padding:.1875rem .375rem;font-size:.75rem;font-weight:650;line-height:1}.notification-list{gap:var(--space-3);padding:0;list-style:none;display:grid}.notification{border:1px solid var(--border);padding:var(--space-3) var(--space-4);border-radius:.5rem}.notification.is-unread{border-color:var(--accent);border-inline-start-width:4px}.notification blockquote{margin:var(--space-2) 0;white-space:pre-wrap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--void:#04050c;--rail:#050813;--surface:#0c101c;--surface-sunken:#080c16;--surface-raised:#141824;--surface-hover:#1b2030;--border:#1c2133;--border-strong:#2b3247;--paper:var(--void);--text:#f2f3f8;--text-muted:#9aa2b8;--text-faint:#7b8398;--brand-violet:#8b31c4;--brand-magenta:#d92a77;--brand-coral:#ef7248;--accent:var(--brand-magenta);--accent-hover:#e8407f;--accent-fg:#f2669b;--accent-soft:#d92a7724;--accent-line:#d92a7773;--accent-text:#fff;--on-accent:#fff;--gradient-action:linear-gradient(100deg, #cf2168, #c94a2b);--gradient-display:linear-gradient(100deg, #d92a77, #ef7248);--gradient-mark:linear-gradient(140deg, #b23bd0, #d92a77 55%, #ef7248);--gradient-hero:radial-gradient(90% 120% at 8% 0%, #8b31c466, transparent 62%), radial-gradient(60% 90% at 78% 10%, #d92a773d, transparent 65%);--state:#7c4dff;--state-fg:#a78bfa;--state-soft:#7c4dff29;--state-line:#7c4dff73;--positive:#45c48a;--positive-soft:#45c48a24;--warning:#f0b429;--warning-soft:#f0b42924;--danger:#ff6b6b;--danger-hover:#ff8f8f;--danger-soft:#ff6b6b24;--sheet:#fff;--sheet-edge:#e6e4de;--ink:#14130f;--desk:var(--void);--mark-selected:#7c4dff38;--mark-corrected:#2daa6e33;--mark-review:#dc3c3c2e;--mark-doubtful:#fdf0d2;--radius-xs:.375rem;--radius-sm:.625rem;--radius:.875rem;--radius-lg:1.25rem;--radius-xl:1.75rem;--radius-pill:999px;--shadow-sm:0 1px 2px #00000080;--shadow:0 2px 6px #0006, 0 12px 32px #00000073;--shadow-lg:0 8px 20px #00000073, 0 32px 64px #0000008c;--shadow-paper:0 2px 8px #00000080, 0 24px 60px #0000008c;--glow-accent:0 6px 22px #cf216859;--glow-state:0 0 0 1px #7c4dff66, 0 8px 24px #7c4dff38;--sidebar-width:16rem;--sidebar-width-panelled:23rem;--rail-width:4.5rem;--content-width:68rem;--topbar-height:3.5rem;--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--text-display:clamp(2rem, 1.4rem + 2vw, 2.75rem);--text-h2:1.125rem;--text-h3:1rem;--text-body:.9375rem;--text-sm:.8125rem;--text-xs:.75rem;--leading-tight:1.15;--leading:1.55;--tracking-display:-.03em;--tracking-label:.06em;--ease:cubic-bezier(.2, .7, .3, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-1:.12s;--dur-2:.2s;--dur-3:.32s}@media (prefers-reduced-motion:reduce){:root{--dur-1:0s;--dur-2:0s;--dur-3:0s}}@media (prefers-contrast:more){:root{--border:#2b3247;--border-strong:#414a63;--text-faint:#9aa2b8}}@font-face{font-display:swap;font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;src:url(/fonts/plus-jakarta-sans-latin.woff2)format("woff2")}body{background:var(--void);color:var(--text);font-family:var(--font-sans);line-height:var(--leading);-webkit-font-smoothing:antialiased}h1{font-size:var(--text-display);letter-spacing:var(--tracking-display);font-weight:700;line-height:var(--leading-tight)}h2{font-size:var(--text-h2);letter-spacing:-.01em;font-weight:650}h3{font-size:var(--text-h3);font-weight:600}a{color:var(--accent-fg);text-underline-offset:.2em}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--state);outline-offset:2px}::selection{background:var(--state-soft);color:var(--text)}*{scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill);background-clip:padding-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--border-strong) 70%, var(--text-faint));background-clip:padding-box}.tabular,time,output{font-variant-numeric:tabular-nums}.label{color:var(--text-faint);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;font-weight:600}button,.button{background:var(--gradient-action);border-radius:var(--radius-sm);color:var(--on-accent);font-size:var(--text-body);min-height:2.5rem;transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease), color var(--dur-1) var(--ease), filter var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);padding:.5rem 1rem;font-weight:600}button:hover:not(:disabled),.button:hover{background:var(--gradient-action);box-shadow:var(--glow-accent);color:var(--on-accent);filter:brightness(1.08)}button:active:not(:disabled),.button:active{transform:translateY(1px)}button:disabled{filter:none;opacity:.45}button.secondary,.button.secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}button.secondary:hover:not(:disabled),.button.secondary:hover{background:var(--surface-hover);border-color:var(--text-faint);box-shadow:none;color:var(--text);filter:none}button.danger{color:var(--danger);background:0 0}button.secondary.is-danger{background:var(--danger-soft);color:var(--danger);border-color:#ff6b6b73}button.secondary.is-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger);color:var(--danger-hover)}button.danger:hover:not(:disabled){background:var(--danger-soft);box-shadow:none;color:var(--danger-hover);filter:none}button.link{color:var(--accent-fg);background:0 0;min-height:0}button.link:hover:not(:disabled){box-shadow:none;color:var(--accent-hover);filter:none;background:0 0}button.ghost,.button.ghost{color:var(--text-muted);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled),.button.ghost:hover{background:var(--surface-hover);box-shadow:none;color:var(--text);filter:none}button.icon-only,.button.icon-only{color:var(--text-muted);background:0 0;border-color:#0000;min-width:2.5rem;padding:.5rem}button.icon-only:hover:not(:disabled),.button.icon-only:hover{background:var(--surface-hover);box-shadow:none;color:var(--text);filter:none}input[type=text],input[type=email],input[type=password],input[type=number],input[type=file],input[type=search],select,textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:var(--text-body);min-height:2.5rem;transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);padding:.5rem .75rem}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--state);box-shadow:var(--glow-state);outline:none}input:disabled,select:disabled,textarea:disabled{background:var(--surface-sunken);color:var(--text-faint)}input[aria-invalid=true]{border-color:var(--danger)}label{color:var(--text-muted);font-size:var(--text-sm);font-weight:600}.field-hint{color:var(--text-faint);font-size:var(--text-xs)}input[type=checkbox],input[type=radio]{accent-color:var(--state);width:1.0625rem;height:1.0625rem}input[type=range]{accent-color:var(--accent)}.badge{background:var(--surface-raised);border-radius:var(--radius-pill);color:var(--text-muted);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;padding:.25rem .625rem;font-weight:700}.badge.is-active{background:var(--accent-soft);color:var(--accent-fg)}.badge.is-done{background:var(--positive-soft);color:var(--positive)}.badge.is-partial{background:var(--warning-soft);color:var(--warning)}.badge.is-failed{background:var(--danger-soft);color:var(--danger)}.badge.is-self{background:var(--state-soft);color:var(--state-fg)}.badge.is-active:before{animation-duration:1.6s}.chip{border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;font:inherit;font-size:var(--text-sm);align-items:center;gap:var(--space-2);min-height:2.25rem;transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);background:0 0;padding:.375rem .875rem;font-weight:600;display:inline-flex}.chip:hover{background:var(--surface-hover);color:var(--text)}.chip[aria-pressed=true],.chip.is-selected{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-fg)}.chip-row{gap:var(--space-2);flex-wrap:wrap;display:flex}[role=alert]{background:var(--danger-soft);border-radius:var(--radius-sm);color:var(--danger);font-size:var(--text-body);border:1px solid #ff6b6b4d}[role=alert].is-positive{background:var(--positive-soft);color:var(--positive);border-color:#45c48a4d}[role=alert].is-warning{background:var(--warning-soft);color:var(--warning);border-color:#f0b4294d}[data-tooltip]{position:relative}[data-tooltip]:after{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-xs);box-shadow:var(--shadow);color:var(--text);content:attr(data-tooltip);font-size:var(--text-xs);opacity:0;pointer-events:none;text-transform:none;transition:opacity var(--dur-1) var(--ease) .4s;white-space:nowrap;z-index:30;padding:.25rem .5rem;font-weight:500;position:absolute;top:calc(100% + .375rem);left:50%;transform:translate(-50%)}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{opacity:1}.section{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.section>h2{margin-bottom:var(--space-2)}.section>h2+p{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:var(--space-4)}.home-actions{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.home-tile,a.home-tile{background:var(--gradient-action);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);color:#fff;letter-spacing:-.02em;min-height:clamp(8rem,6rem + 10vw,12rem);padding:var(--space-6);transition:filter var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);border:0;justify-content:center;align-items:center;font-size:clamp(1.25rem,1rem + 1.2vw,1.75rem);font-weight:700;text-decoration:none;display:flex}.home-tile:hover,a.home-tile:hover,.home-tile:hover:not(:disabled){background:var(--gradient-action);color:#fff;filter:brightness(1.08);transform:translateY(-2px)}.home-row h2{font-size:var(--text-h3);margin-bottom:var(--space-4)}.home-welcome h1{letter-spacing:-.04em;font-size:clamp(2rem,1.5rem + 2vw,2.75rem);font-weight:800}.home-welcome .button-row{justify-content:flex-start}.gallery{gap:var(--space-5)}.gallery-card{border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-2) var(--ease), transform var(--dur-2) var(--ease)}.gallery-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.gallery-thumb{aspect-ratio:16/10}.gallery-thumb-empty{background:linear-gradient(160deg, #04050c8c, #04050cdb), var(--gradient-mark);color:#ffffffd9;font-size:2.75rem}.gallery-card-title{font-size:var(--text-h3)}.gallery-card-title:hover{color:var(--accent-fg)}.gallery-card-meta{color:var(--text-muted);font-size:var(--text-sm)}.dropzone{background:var(--surface-sunken);transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);border-style:dashed;border-width:1.5px}.dropzone-active{background:var(--accent-soft);border-color:var(--accent-line)}.choice-row{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:var(--space-4);min-height:3.5rem;padding:var(--space-3) var(--space-4);transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);display:flex}.choice-row:hover{background:var(--surface-hover)}.choice-row:has(:checked){background:var(--state-soft);border-color:var(--state-line)}.choice-row-body{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.choice-row-body small{color:var(--text-faint);font-size:var(--text-sm)}.voice-row{background:var(--surface-sunken);min-height:3.5rem;transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease)}.voice-row:hover{background:var(--surface-hover)}.voice-row:has(:checked){background:var(--state-soft);border-color:var(--state-line)}.voice-choice strong{font-weight:600}.choice-tiles{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));display:grid}.choice-fieldset{border:0;min-width:0;margin:0;padding:0}.choice-fieldset>legend{margin-bottom:var(--space-2);padding:0}.choice-tile{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:var(--space-1);padding:var(--space-4) var(--space-3);text-align:center;transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);flex-direction:column;display:flex}.choice-tile b{font-size:var(--text-body);font-weight:600}.choice-tile:hover{background:var(--surface-hover)}.choice-tile:has(:checked){background:var(--state-soft);border-color:var(--state)}.choice-tile small{color:var(--text-faint);font-size:var(--text-sm);line-height:1.4}.data-row,.session-row{border-radius:var(--radius);transition:background-color var(--dur-1) var(--ease)}.data-row:hover,.session-row:hover{background:var(--surface-hover)}.data-row-identity{align-items:center;gap:var(--space-3);min-width:0;display:flex}.data-row-title{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.avatar{background:var(--gradient-display);border-radius:var(--radius-pill);color:#fff;font-size:var(--text-sm);text-transform:uppercase;flex:none;justify-content:center;align-items:center;width:2.125rem;height:2.125rem;font-weight:700;display:inline-flex}.avatar.is-quiet{background:var(--surface-hover);color:var(--text-muted)}.empty-state,.empty-library{background:var(--surface-sunken);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);text-align:center;flex-direction:column;display:flex}.empty-state svg{color:var(--text-faint)}.empty-state h1{font-size:1.5rem}.not-found-code{color:var(--text-faint);letter-spacing:-.04em;font-size:3.5rem;font-weight:800;line-height:1}.skeleton{background:linear-gradient(90deg, var(--surface-hover) 0 30%, var(--surface-raised) 50%, var(--surface-hover) 70% 100%);border-radius:var(--radius-xs);background-size:300% 100%;animation:1.8s linear infinite skeleton-sweep;display:block}@keyframes skeleton-sweep{to{background-position:-300% 0}}.skeleton-card{border-radius:var(--radius);height:17rem}.skeleton-row{border-radius:var(--radius);height:4.5rem}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--surface-hover);animation:none}}.progress,.series-pulse,progress{appearance:none;background:var(--surface-hover);border-radius:var(--radius-pill);border:0;height:.375rem;display:block;overflow:hidden}.progress>i,.series-pulse-fill{background:var(--gradient-display);height:100%;display:block}progress::-webkit-progress-bar{background:var(--surface-hover);border-radius:var(--radius-pill)}progress::-webkit-progress-value{background:var(--gradient-display);border-radius:var(--radius-pill)}progress::-moz-progress-bar{background:var(--gradient-display);border-radius:var(--radius-pill)}.level-meter{background:var(--surface-sunken);border-color:var(--border);border-radius:var(--radius-pill)}.level-meter-fill{background:var(--gradient-display)}.menu,.context-menu{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-1)}.menu-item,.context-menu-item{border-radius:var(--radius-xs);color:var(--text);font-size:var(--text-body);gap:var(--space-3);min-height:2.25rem;padding:0 var(--space-3)}.menu-item:hover,.context-menu-item:hover{background:var(--surface-hover)}.menu-item kbd,.context-menu-item kbd{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--text-xs);margin-left:auto}.dialog{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--text);max-width:32rem;padding:var(--space-6)}.dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#04050cb3}.section.is-danger{border-color:#ff6b6b4d}.section.is-danger>h2{color:var(--danger)}.section.is-danger button[type=submit]{color:var(--danger);background:0 0;border-color:#ff6b6b73}.section.is-danger button[type=submit]:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger);box-shadow:none;color:var(--danger-hover);filter:none}.app>main.auth-page{align-content:center;gap:0 var(--space-7);grid-template-columns:minmax(0,1fr) 24rem;max-width:62rem;margin:0 auto;display:grid}.auth-page:before{border:1px solid var(--border);border-radius:var(--radius-xl);content:"";background:radial-gradient(80% 60% at 20% 15%,#d92a7773,#0000 70%),radial-gradient(70% 50% at 85% 80%,#ef724859,#0000 70%),linear-gradient(160deg,#1a0a2e,#04050c 70%);grid-area:1/1/-1;min-height:30rem}.auth-page>*{grid-column:2}.auth-page>h1{margin-bottom:var(--space-5)}.auth-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-6)}.auth-form button[type=submit]{width:100%}.section .auth-form{box-shadow:none;background:0 0;border:0;padding:0}.section .auth-form button[type=submit]{width:auto}.auth-alt{color:var(--text-muted);font-size:var(--text-sm);margin-top:var(--space-4);text-align:center}@media (width<=62rem){.app>main.auth-page{grid-template-columns:minmax(0,1fr);max-width:24rem}.auth-page:before{display:none}.auth-page>*{grid-column:1}}.account-grid{align-items:start;gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));display:grid}.account-grid>.section{margin-bottom:0}.status-dot{background:var(--text-faint);border-radius:var(--radius-pill);flex:none;width:.5rem;height:.5rem;display:inline-block}.status-dot.is-current{background:var(--positive);box-shadow:0 0 0 3px var(--positive-soft)}.sheet-music>div{background:var(--sheet);border:1px solid var(--sheet-edge);border-radius:var(--radius-xs);box-shadow:var(--shadow-paper);outline:0}.piano-key-white{color:#5b6070}.piano-key-black{color:#cfcdd6;background:#14131a}.piano-key-recording.piano-key-white,.piano-key-recording.piano-key-black{background:var(--accent);color:#fff}.folder-toolbar{align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.folder-bar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.breadcrumb{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.breadcrumb li+li:before{color:var(--text-faint);content:"›";margin-right:var(--space-2)}.breadcrumb [aria-current=page]{font-weight:600}.folder-form{align-items:end;gap:var(--space-3);flex-wrap:wrap;display:flex}.folder-form [role=alert]{flex-basis:100%;margin:0}.folder-hint{margin:0 0 var(--space-4)}.folder-list{gap:var(--space-4);margin:0 0 var(--space-5);grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));padding:0;list-style:none;display:grid}.folder-tile{aspect-ratio:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);transition:border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);flex-direction:column;display:flex;overflow:hidden}.folder-tile:hover{border-color:var(--border-strong);transform:translateY(-2px)}.folder-tile-head{border-bottom:1px solid var(--border);align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);justify-content:space-between;display:flex}.folder-tile-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;text-decoration:none;overflow:hidden}.folder-tile-name:hover{text-decoration:underline}.folder-tile-edit{padding:var(--space-1);flex:none}.folder-tile-cover{flex:1;min-height:0;display:block}.folder-tile-cover img,.folder-tile-blank{object-fit:cover;width:100%;height:100%;display:block}.folder-tile-blank{background:var(--gradient-hero), var(--void)}.editor-dialog.editor-dialog-wide{max-width:min(40rem,100vw - 2rem)}.editor-dialog>*+*{margin-top:var(--space-4)}.cover-picker{border:0;margin-left:0;margin-right:0;padding:0}.cover-picker legend{margin-bottom:var(--space-2);font-size:.875rem}.cover-picker ul{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(4.25rem,1fr));margin:0;padding:0;list-style:none;display:grid}.cover-option{aspect-ratio:1;background:var(--surface-2,var(--surface));border-radius:var(--radius);border:2px solid #0000;width:100%;padding:0;overflow:hidden}.cover-option img{width:100%;height:100%;display:block}.cover-option[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.cover-option-none{color:var(--text-muted,inherit);font-size:.75rem}.quick-add{bottom:max(var(--space-5), env(safe-area-inset-bottom));right:var(--space-5);z-index:50;position:fixed}.quick-add-button{background:var(--gradient-action);box-shadow:var(--shadow-md,0 12px 28px #00000059);color:#fff;height:3.5rem;transition:transform var(--dur-1) var(--ease);border:0;border-radius:999px;justify-content:center;align-items:center;width:3.5rem;padding:0;display:flex}.quick-add-button:hover:not(:disabled){background:var(--gradient-action);transform:scale(1.06)}.quick-add-button[aria-expanded=true] svg{transform:rotate(45deg)}.quick-add-button svg{transition:transform var(--dur-1) var(--ease)}.quick-add-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);bottom:calc(100% + var(--space-3));box-shadow:var(--shadow-md,0 12px 28px #00000059);gap:var(--space-1);min-width:12rem;padding:var(--space-2);flex-direction:column;margin:0;list-style:none;display:flex;position:absolute;right:0}.quick-add-menu button{color:var(--text);text-align:left;background:0 0;border:0;justify-content:flex-start;width:100%}.quick-add-menu button:hover:not(:disabled){background:var(--accent-soft);color:var(--text)}.drop-target{background:var(--accent-soft);outline:2px dashed var(--accent);outline-offset:2px}.move-status{margin:0 0 var(--space-3)}.move-status:empty{margin:0}.gallery-card[draggable=true],.folder-tile[draggable=true]{cursor:grab}.playlist-items{gap:var(--space-2);margin:var(--space-4) 0;padding:0;list-style:none;display:grid}.playlist-item{border:1px solid var(--border);border-radius:var(--radius-lg);cursor:grab;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.playlist-item.is-dragging{opacity:.5}.playlist-position{color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:2ch}.playlist-title{flex:1;min-width:0}.app{grid-template-areas:"sidebar banner""sidebar main""sidebar footer";grid-template-columns:var(--sidebar-width) minmax(0, 1fr);grid-template-rows:auto minmax(0,1fr) auto;min-height:100dvh;display:grid}.app:has(.app-view-panel>*){grid-template-columns:var(--sidebar-width-panelled) minmax(0, 1fr)}.app-header{background:var(--rail);border-bottom:0;border-right:1px solid var(--border);align-content:start;align-items:stretch;gap:var(--space-5);height:100dvh;padding:var(--space-5) var(--space-3);flex-flow:column;grid-area:sidebar;justify-content:flex-start;display:flex;position:sticky;top:0}.app-brand{gap:var(--space-3);padding:0 var(--space-2);font-size:.9375rem;font-weight:700}.app-brand svg{background:var(--gradient-mark);border-radius:var(--radius-xs);box-sizing:content-box;color:#fff;padding:.3125rem}.app-session{font-size:var(--text-body);align-items:stretch;gap:var(--space-1);flex-flow:column}.app-session>a{border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:var(--space-3);min-height:2.75rem;padding:0 var(--space-3);transition:background-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);text-decoration:none;display:flex;position:relative}.app-session>a:hover{background:var(--surface-hover);color:var(--text)}.app-session>a[aria-current=page]{background:var(--state-soft);color:var(--state-fg)}.app-session>a[aria-current=page]:before{background:var(--gradient-display);content:"";border-radius:0 2px 2px 0;width:3px;position:absolute;top:.5rem;bottom:.5rem;left:0}.app-nav-divider{background:var(--border);height:1px;margin:var(--space-3) var(--space-2);border:0}.app-view-actions{gap:var(--space-1);flex-direction:column;display:flex}.app-view-actions>button{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font:inherit;align-items:center;gap:var(--space-3);min-height:2.75rem;padding:0 var(--space-3);text-align:left;transition:background-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);background:0 0;border:0;width:100%;display:flex;position:relative}.app-view-actions>button:hover{background:var(--surface-hover);color:var(--text)}.app-view-actions>button[aria-pressed=true]{background:var(--state-soft);color:var(--state-fg)}.app-view-panel{border-top:1px solid var(--border);margin-top:var(--space-3);overscroll-behavior:contain;flex:1;min-height:0;overflow:hidden auto}.app-view-panel:empty{display:none}.app-nav-badge{background:var(--warning-soft);color:var(--warning);font-size:var(--text-xs);border-radius:999px;margin-left:auto;padding:.125rem .375rem;font-weight:600}.app-session>a.app-session-cta{background:var(--gradient-action);color:var(--on-accent);margin-top:var(--space-2);justify-content:center;font-weight:600}.app-session>a.app-session-cta:hover{box-shadow:var(--glow-accent);color:var(--on-accent);filter:brightness(1.08)}.app-user{border-top:1px solid var(--border);gap:var(--space-1);padding-top:var(--space-3);flex-direction:column;margin-top:auto;display:flex}.app-session-user{border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-sm);align-items:center;gap:var(--space-2);max-width:none;min-height:2.5rem;padding:0 var(--space-2);text-decoration:none;display:flex}.app-session-user:hover{background:var(--surface-hover);color:var(--text)}.app-user-email{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-user-logout{min-height:2.25rem;padding:0 var(--space-2);justify-content:flex-start}.app-session.muted{color:var(--text-faint);font-size:var(--text-sm);padding:0 var(--space-2);margin-top:auto}.app>main{padding:var(--space-7) var(--space-6) var(--space-8);grid-area:main}.app-footer{color:var(--text-faint);font-size:var(--text-xs);padding:0 var(--space-6) var(--space-6);border-top:0;grid-area:footer}.verification-banner{background:var(--warning-soft);border-left:3px solid var(--warning);border-radius:var(--radius-sm);margin:var(--space-5) var(--space-6) 0;padding:var(--space-3) var(--space-4);text-align:left;grid-area:banner;justify-content:flex-start}.page-header h1{text-wrap:balance}.page-header p{color:var(--text-muted);font-size:var(--text-body);max-width:60ch}@media (width<=1199px){.app{grid-template-columns:var(--rail-width) minmax(0, 1fr)}.app-header{padding:var(--space-5) var(--space-2);align-items:center}.app-brand{gap:0;font-size:0}.app-session>a{justify-content:center;padding:0}.app-session>a>span,.app-user-email,.app-user-logout>span{display:none}.app-session-user,.app-user-logout{justify-content:center;padding:0}.app>main{padding:var(--space-6) var(--space-5) var(--space-7)}.app:has(.app-view-panel>*){grid-template-columns:var(--sidebar-width-panelled) minmax(0, 1fr)}.app:has(.app-view-panel>*) .app-header{padding:var(--space-5) var(--space-3);align-items:stretch}.app:has(.app-view-panel>*) .app-brand{gap:var(--space-3);font-size:.9375rem}.app:has(.app-view-panel>*) .app-session>a{padding:0 var(--space-3);justify-content:flex-start}.app:has(.app-view-panel>*) .app-session-user{padding:0 var(--space-3);justify-content:flex-start}.app:has(.app-view-panel>*) .app-user-logout{padding:0 var(--space-3);justify-content:flex-start}.app:has(.app-view-panel>*) .app-session>a>span{display:inline}.app:has(.app-view-panel>*) .app-user-email{display:inline}.app:has(.app-view-panel>*) .app-user-logout>span{display:inline}}@media (width<=699px){.app{grid-template:"sidebar""banner""main"minmax(0,1fr)"footer"/minmax(0,1fr)}.app-header{border-bottom:1px solid var(--border);align-items:center;gap:var(--space-3);height:auto;min-height:var(--topbar-height);padding:var(--space-3) var(--space-4);border-right:0;flex-flow:wrap}.app-brand{gap:var(--space-2);font-size:.9375rem}.app-session{gap:var(--space-2);flex-flow:wrap;margin-left:auto}.app-session>a{min-height:2.5rem}.app-session>a>span,.app-user-logout>span,.app-user-email{display:none}.app-user{gap:var(--space-1);border-top:0;flex-direction:row;margin-top:0;padding-top:0}.app>main{padding:var(--space-5) var(--space-4) var(--space-7)}.verification-banner{margin:var(--space-4) var(--space-4) 0}.app:has(.app-view-panel>*){grid-template-columns:minmax(0,1fr)}.app-view-panel{margin-top:var(--space-2);flex-basis:100%;max-height:60dvh}}.editor-toolbar{background:var(--surface-raised);gap:var(--space-1);padding:var(--space-2) var(--space-3)}.editor-toolbar .toolbar-group{background:var(--surface);border-color:#0000}.editor-toolbar .toolbar-group-loud{border-color:var(--border)}.editor-toolbar .toolbar-row-pen{border-top-color:var(--border)}.tool-button.tool-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.tool-button.tool-primary:hover:not(:disabled){background:var(--accent-hover);color:var(--on-accent)}.tool-button.tool-primary:disabled{background:var(--surface-sunken);border-color:var(--border);color:var(--text-faint)}.source-drawer,.editor-sidebar .sidebar-head{background:var(--rail)}.editor-inspector{background:var(--surface-raised)}.floating-toolbar{background:var(--surface-raised);border-color:var(--border);border-radius:var(--radius-pill);padding:3px}.editor-canvas{background:var(--desk)}.tool-button[aria-pressed=true],.inspector button[aria-pressed=true],.tool-menu-button[aria-expanded=true],.floating-toolbar button[aria-pressed=true]{background:var(--state-soft);border-color:var(--state-line);color:var(--state-fg)}.tool-button:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.tool-button:disabled{opacity:.4}.toolbar-divider{background:var(--border)}.toolbar-saved{color:var(--positive);font-size:var(--text-sm)}.context-menu-item:hover:not(:disabled),.context-menu-item:focus-visible{background:var(--surface-hover);color:var(--text)}.context-menu-heading,.shortcut-heading{color:var(--text-faint);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase}.sheet-note-selected{fill:#ded4ff;stroke:#6a3fd8;stroke-width:1.2px}.sheet-note-corrected{fill:#cdeccd}.sheet-note-review{fill:#ffd0c4}.sheet-insertion-point{fill:#6a3fd8}.recognition-progress{margin-top:var(--space-3);width:100%}.quality-badge-high{background:var(--positive-soft);color:var(--positive)}.quality-badge-medium{background:var(--warning-soft);color:var(--warning)}.quality-badge-low{background:var(--danger-soft);color:var(--danger)}.quality-measure-selected{background:var(--state-soft);border-color:var(--state-line);color:var(--state-fg)}.recording-prompt,.series-scope,.advice-source{color:var(--accent-fg)}.app:has(>main.play-page){height:100vh;overflow:hidden}:is(.app:has(>main.play-page)>.app-header,.app:has(>main.play-page)>.app-footer){display:none}.app>main.play-page{flex-direction:column;max-width:none;min-height:0;padding:0;display:flex}.play-setup{gap:var(--space-5);max-width:34rem;padding:var(--space-6) var(--space-5);flex-direction:column;width:100%;margin:0 auto;display:flex;overflow-y:auto}.play-setup-head h1{letter-spacing:-.01em;font-size:1.5rem}.play-summary{color:var(--text-muted);margin-top:var(--space-3)}.play-setup-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);gap:var(--space-3);padding:var(--space-4);flex-direction:column;display:flex}.play-setup-group legend{padding:0 var(--space-2);font-weight:600}.play-setup-field{align-items:center;gap:var(--space-3);display:flex}.play-setup-field input[type=number]{max-width:6rem}.play-level{background:var(--surface-sunken,#00000014);border-radius:var(--radius-lg);width:100%;height:.75rem;overflow:hidden}.play-level>span{background:var(--accent,currentcolor);height:100%;transition:width 80ms linear;display:block}.play-setup-promise{color:var(--text-muted);text-align:center;margin:0}.play-mode{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.play-paper{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:0;overflow:auto}.play-images-bar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:color-mix(in srgb, var(--surface) 85%, transparent);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-4);z-index:2;flex-wrap:wrap;justify-content:space-between;transition:opacity .4s;display:flex;position:absolute;top:0;left:0;right:0}.play-images-turns{gap:var(--space-2);display:flex}.play-images-page{touch-action:none;-webkit-user-select:none;user-select:none;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:hidden}.play-images-img{object-fit:contain;width:100%;max-width:100%;height:100%}.play-controls{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:color-mix(in srgb, var(--surface) 85%, transparent);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);z-index:2;justify-content:space-between;transition:opacity .4s;display:flex;position:absolute;top:0;left:0;right:0}.play-controls-idle{opacity:0;pointer-events:none}.play-measure{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.play-hint{background:color-mix(in srgb, var(--surface) 85%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--border);color:var(--text-muted);padding:var(--space-2) var(--space-4);text-align:center;margin:0}.play-hint-alert{color:var(--text);font-weight:600}.play-summary{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);gap:var(--space-1);margin-top:var(--space-3);padding:var(--space-3);flex-direction:column;display:flex}.play-summary-line{margin:0}.play-summary-counts,.play-summary-bars{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.play-summary-counts{color:var(--text-muted)}.pedal-bindings{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pedal-binding{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.pedal-binding-label{flex:10rem}.pedal-binding-keys{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.pedal-key{background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font:inherit;padding:.125rem var(--space-2);font-size:.875rem}.pedal-key:hover{background:var(--surface-hover)}.pedal-refused{color:var(--accent-fg);margin:0}.play-back{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;max-width:40%;overflow:hidden}.play-engraved-page{align-items:flex-start}.play-listening.active{background:var(--accent-soft);border-color:var(--accent-line)}.play-listening-status{color:var(--text-muted);white-space:nowrap;align-self:center;font-size:.85rem}
