:root{--sf-bg-app:#000;--sf-bg-raised:#000;--sf-bg-panel:#121212;--sf-bg-panel-inset:#1e1e1e;--sf-bg-topbar:#000;--sf-bg-overlay:#000000eb;--sf-border:#27272a;--sf-border-muted:#1e1e1e;--sf-border-strong:#3f3f46;--sf-border-focus:#fff;--sf-text-primary:#fff;--sf-text-secondary:#fff;--sf-text-body:#e4e4e7;--sf-text-muted:#a1a1aa;--sf-text-subtle:#71717a;--sf-text-faint:#52525b;--sf-text-disabled:#3f3f46;--sf-accent:#fff;--sf-accent-hover:#e4e4e7;--sf-accent-muted:#ffffff14;--sf-accent-secondary:#a1a1aa;--sf-accent-green:#d4d4d8;--sf-brand-ink:#52525b;--sf-font-display:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--sf-font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sf-shadow-soft:none;--sf-shadow-lift:none;--sf-space-xs:6px;--sf-space-sm:12px;--sf-space-md:20px;--sf-space-lg:32px;--sf-space-xl:48px;--sf-space-2xl:64px;--sf-space-3xl:80px;--sf-space-4xl:96px;--sf-space-5xl:128px;--sf-panel-padding-y:var(--sf-space-xl);--sf-panel-padding-x:var(--sf-space-2xl);--sf-panel-gap:var(--sf-space-xl);--sf-section-gap:var(--sf-space-lg);--sf-library-rail-gap:var(--sf-space-md);--sf-canvas-inset:var(--sf-space-sm);--sf-radius-sm:4px;--sf-radius-md:6px;--sf-radius-lg:8px;--sf-radius-xl:10px;--sf-radius-pill:999px;--sf-font-title:1.5rem;--sf-font-heading:1.125rem;--sf-font-section:1rem;--sf-font-body:.9rem;--sf-font-small:.8125rem;--sf-font-caption:.75rem;--sf-font-micro:.625rem;--sf-text-micro-opacity:.5;--sf-font-sidebar-min:.6875rem;--sf-sidebar-gap:10px;--sf-sidebar-section-padding:12px;--sf-interactive-surface:#ffffff0d;--sf-interactive-surface-active:#ffffff1a;--sf-sidebar-width:300px;--sf-viewport-height:100vh;--sf-topbar-height:72px;--sf-content-max:1100px;--sf-copy-max:min(36rem, 100%);--sf-ease:cubic-bezier(.33, 1, .38, 1);--sf-ease-out:cubic-bezier(.16, 1, .3, 1);--sf-ease-in-out:cubic-bezier(.45, 0, .55, 1);--sf-duration-fast:.15s;--sf-duration:.2s;--sf-duration-fade:.24s;--sf-duration-press:.17s;--sf-focus-ring:0 0 0 1px #000, 0 0 0 2px #fff;--sf-focus-ring-subtle:0 0 0 1px #121212, 0 0 0 2px #a1a1aa}:focus{outline:none}:focus-visible{box-shadow:var(--sf-focus-ring);outline:none}button:focus:not(:focus-visible),[role=button]:focus:not(:focus-visible){box-shadow:none}.panel,.profile-panel,.profile-stat,.profile-level,.practice-section,.practice-view__empty,.practice-view__panel,.library-welcome,.session-restore-overlay__card{border-color:var(--sf-border)}.panel,.profile-panel,.profile-level,.practice-view__empty,.practice-view__panel{background:var(--sf-bg-panel)}.topbar__nav-btn,.topbar__feedback,.feedback-link,.session-restore-banner__btn,.library-welcome__btn,.demo-piece__button,.profile-footer__reset,.profile-dev-tools__btn,.profile-name-form__cancel,.profile-name-form__save,.upload-btn,.pdf-fullscreen__close,.midi-transport__btn,.practice-fullscreen-hud__play,.wait-for-you__btn,.wait-for-you__btn--primary{transition:background var(--sf-duration-fast) var(--sf-ease-out), border-color var(--sf-duration-fast) var(--sf-ease-out), color var(--sf-duration-fast) var(--sf-ease-out), filter var(--sf-duration-fast) var(--sf-ease-out), box-shadow var(--sf-duration-fast) var(--sf-ease-out), opacity var(--sf-duration-fast) var(--sf-ease-out), transform var(--sf-duration-fast) var(--sf-ease-out)}.topbar__nav-btn:active:not(:disabled),.demo-piece__button:active:not(:disabled),.upload-btn:active:not(:disabled),.library-welcome__btn:active:not(:disabled),.wait-for-you__btn:active:not(:disabled),.session-restore-banner__btn:active:not(:disabled),.pdf-fullscreen__close:active:not(:disabled),.practice-fullscreen-hud__play:active:not(:disabled){opacity:.9}.topbar__nav-btn:focus-visible,.topbar__feedback:focus-visible,.feedback-link:focus-visible,.session-restore-banner__btn:focus-visible,.library-welcome__btn:focus-visible,.demo-piece__button:focus-visible,.profile-footer__reset:focus-visible,.profile-dev-tools__btn:focus-visible,.profile-name-form__save:focus-visible,.profile-name-form__cancel:focus-visible,.upload-btn:focus-visible,.pdf-fullscreen__close:focus-visible,.midi-transport__btn:focus-visible,.practice-fullscreen-hud__play:focus-visible,.wait-for-you__btn:focus-visible,.practice-section__toggle:focus-visible{box-shadow:var(--sf-focus-ring)}.profile-empty,.practice-workspace__empty,.library-panel__empty{color:var(--sf-text-muted);line-height:1.55}.profile-empty{padding:var(--sf-space-3xl) var(--sf-space-2xl);text-align:center;background:var(--sf-bg-panel);border:1px dashed var(--sf-border-strong);border-radius:var(--sf-radius-xl)}.profile-panel__empty{margin:var(--sf-space-sm) 0 0;color:var(--sf-text-muted);font-size:var(--sf-font-small);line-height:1.5}.library-panel__empty{margin:var(--sf-space-lg) 0 0;padding:var(--sf-space-md) var(--sf-space-lg);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel-inset);border:1px solid var(--sf-border-muted)}.topbar__nav-btn--muted:hover{opacity:.85}.profile-dev-tools{margin-top:var(--sf-space-2xl);padding:var(--sf-space-md) 0 0;border:none;border-top:1px solid var(--sf-border-muted);background:0 0;border-radius:0}.profile-dev-tools__label{margin:0 0 var(--sf-space-sm);font-size:var(--sf-font-caption);color:var(--sf-text-disabled);text-transform:none;letter-spacing:0;font-weight:500}.profile-dev-tools__btn{border-radius:var(--sf-radius-sm);border:1px solid var(--sf-border);background:var(--sf-bg-panel-inset);color:var(--sf-text-muted);font-size:var(--sf-font-caption);padding:7px 12px;font-weight:500}.profile-dev-tools__btn:hover{border-color:var(--sf-border-strong);color:var(--sf-text-secondary);background:var(--sf-bg-panel)}.profile-dev-tools__btn--muted{background:0 0}@media (width<=768px){.library-panel{padding:var(--sf-space-lg) var(--sf-space-md) var(--sf-space-2xl)}.library-welcome-wrap{padding:var(--sf-space-md) var(--sf-space-lg) 0}.panel{padding:var(--sf-space-xl) var(--sf-space-lg)}.session-restore-banner{padding:var(--sf-space-md) var(--sf-space-lg)}}@media (width<=640px){.topbar{height:auto;min-height:var(--sf-topbar-height);padding:var(--sf-space-md) var(--sf-space-lg);gap:var(--sf-space-md);flex-wrap:wrap}.topbar__nav{justify-content:stretch;width:100%}.topbar__nav-btn{padding:var(--sf-space-md) var(--sf-space-sm);text-align:center;flex:1}}.library-welcome-wrap{padding:var(--sf-space-2xl) var(--sf-space-2xl) 0}.library-welcome{gap:var(--sf-panel-gap);padding:var(--sf-space-xl) var(--sf-space-2xl)}.library-welcome__footer{padding-top:var(--sf-space-lg);margin-top:var(--sf-space-sm)}.library-panel{padding:var(--sf-space-xl) var(--sf-space-lg) var(--sf-space-3xl)}.library-panel__hero{margin-bottom:var(--sf-space-lg);padding-bottom:var(--sf-space-md)}.library-panel .panel,.library-panel__upload-card.panel{padding:var(--sf-space-lg) var(--sf-space-md);margin-bottom:var(--sf-space-md);border-radius:var(--sf-radius-md)}.midi-tracks{gap:4px}.midi-transport,.practice-playback-settings{gap:var(--sf-space-md)}.library-welcome__summary,.library-welcome__lead,.library-welcome__best,.library-welcome__privacy,.practice-workspace__empty-lead{max-width:var(--sf-copy-max)}.library-welcome__title{max-width:22em}.library-welcome__steps{gap:var(--sf-space-md)}.midi-transport__time,.midi-tracks__empty,.practice-progress__header,.practice-progress__label,.practice-progress__percent,.practice-files__label,.practice-files__value,.wait-for-you__progress-header,.wait-for-you__now-label,.practice-stats-card__label,.practice-stats-card__hint,.practice-section--collapsible .practice-section__summary,.metronome-beat-indicator__label,.metronome-beat-indicator__count,.practice-shortcuts-hint{font-family:var(--sf-font-mono);font-size:var(--sf-font-micro);letter-spacing:.08em;opacity:var(--sf-text-micro-opacity);font-weight:400}.practice-status-chip--ready,.practice-status-chip--warning{opacity:1}.practice-progress__header{letter-spacing:.12em;text-transform:uppercase}.midi-transport__time{letter-spacing:.04em;text-transform:none}@supports (height:100dvh){:root{--sf-viewport-height:100dvh}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}body{background:var(--sf-bg-app);min-height:100vh;color:var(--sf-text-secondary);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--sf-font-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}#root{min-height:100vh}button,input{font:inherit}.recognition-report-modal{z-index:80;padding:var(--sf-space-md,16px);place-items:end center;display:grid;position:fixed;inset:0}@media (width>=640px){.recognition-report-modal{place-items:center}}.recognition-report-modal__scrim{background:var(--sf-bg-overlay,#000000eb);position:absolute;inset:0}.recognition-report-modal__dialog{z-index:1;width:min(100%,28rem);max-height:min(92vh,40rem);padding:var(--sf-space-md,16px);border:1px solid var(--sf-border,#27272a);background:var(--sf-bg-panel,#121212);color:var(--sf-text-body,#e4e4e7);position:relative;overflow:auto}.recognition-report-modal__header{justify-content:space-between;align-items:flex-start;gap:var(--sf-space-sm,12px);margin-bottom:var(--sf-space-sm,12px);display:flex}.recognition-report-modal__header h2{font-family:var(--sf-font-display,Inter, ui-sans-serif, system-ui, sans-serif);letter-spacing:.08em;text-transform:uppercase;color:var(--sf-text-primary,#fff);margin:0;font-size:.78rem;font-weight:600}.recognition-report-modal__close,.recognition-report-modal__btn{border:1px solid var(--sf-border,#27272a);background:var(--sf-bg-panel-inset,#1e1e1e);color:var(--sf-text-body,#e4e4e7);font:inherit;cursor:pointer;margin:0;padding:.55rem .85rem;font-size:.8rem}.recognition-report-modal__close{letter-spacing:.06em;text-transform:uppercase;color:var(--sf-text-muted,#a1a1aa);background:0 0;border-color:#0000;padding:.35rem .55rem;font-size:.7rem}.recognition-report-modal__close:hover,.recognition-report-modal__close:focus-visible{color:var(--sf-text-primary,#fff)}.recognition-report-modal__lead,.recognition-report-modal__privacy,.recognition-report-modal__hint{margin:0 0 var(--sf-space-sm,12px);color:var(--sf-text-muted,#a1a1aa);font-size:.82rem;line-height:1.45}.recognition-report-modal__privacy{color:var(--sf-text-body,#e4e4e7)}.recognition-report-modal__field{margin-bottom:var(--sf-space-sm,12px);color:var(--sf-text-muted,#a1a1aa);gap:.35rem;font-size:.78rem;display:grid}.recognition-report-modal__field span{letter-spacing:.04em;text-transform:uppercase;font-size:.68rem}.recognition-report-modal__field select,.recognition-report-modal__field input,.recognition-report-modal__field textarea{box-sizing:border-box;border:1px solid var(--sf-border,#27272a);background:var(--sf-bg-panel-inset,#1e1e1e);width:100%;color:var(--sf-text-primary,#fff);font:inherit;padding:.55rem .65rem;font-size:.85rem}.recognition-report-modal__row{gap:var(--sf-space-sm,12px);grid-template-columns:1fr 1fr;display:grid}.recognition-report-modal__check{margin:0 0 var(--sf-space-sm,12px);color:var(--sf-text-body,#e4e4e7);align-items:flex-start;gap:.55rem;font-size:.82rem;display:flex}.recognition-report-modal__check--confirm{padding:var(--sf-space-sm,12px);border:1px solid var(--sf-border-strong,#3f3f46);background:var(--sf-bg-panel-inset,#1e1e1e)}.recognition-report-modal__error{margin:0 0 var(--sf-space-sm,12px);color:#fca5a5;font-size:.82rem}.recognition-report-modal__status{margin:0 0 var(--sf-space-sm,12px);color:var(--sf-text-primary,#fff);font-size:.82rem}.recognition-report-modal__actions{justify-content:flex-end;gap:var(--sf-space-sm,12px);margin-top:var(--sf-space-sm,12px);display:flex}.recognition-report-modal__btn--primary{background:var(--sf-accent,#fff);color:#000;border-color:var(--sf-accent,#fff)}.recognition-report-modal__btn:disabled{opacity:.45;cursor:not-allowed}.omr-quality-warning__actions{flex-direction:column;flex:none;align-items:flex-end;gap:.35rem;display:flex}.omr-quality-warning__report{color:var(--sf-text-subtle,#71717a);font:inherit;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;text-underline-offset:.15em;background:0 0;border:0;margin:0;padding:0;font-size:.7rem;text-decoration:underline}.omr-quality-warning__report:hover,.omr-quality-warning__report:focus-visible{color:var(--sf-text-primary,#fff)}.recognition-report-trigger{color:var(--sf-text-subtle,#71717a);font:inherit;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;text-underline-offset:.15em;background:0 0;border:0;margin:0;padding:0;font-size:.75rem;text-decoration:underline}.recognition-report-trigger:hover,.recognition-report-trigger:focus-visible{color:var(--sf-text-primary,#fff)}.library-omr-panel__report{margin-top:.5rem}.practice-workspace{min-width:0;min-height:0;max-height:calc(var(--sf-viewport-height) - var(--sf-topbar-height));background:var(--sf-bg-raised);flex-direction:column;flex:auto;display:flex;overflow:hidden}.session-restore-banner~.practice-workspace{max-height:calc(var(--sf-viewport-height) - var(--sf-topbar-height) - 52px)}.practice-workspace__layout{flex:1;align-items:stretch;min-width:0;min-height:0;display:flex;overflow:hidden}.practice-workspace__score{-webkit-overflow-scrolling:touch;background:var(--sf-bg-app);flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.practice-control-panel{flex:0 0 var(--sf-sidebar-width);width:var(--sf-sidebar-width);-webkit-overflow-scrolling:touch;min-width:0;max-width:36vw;min-height:0;padding:var(--sf-panel-padding-y) var(--sf-space-xl);align-self:stretch;gap:var(--sf-panel-gap);border-left:1px solid var(--sf-border);background:var(--sf-bg-panel);z-index:2;flex-direction:column;display:flex;position:sticky;top:0;overflow:hidden auto}.practice-control-panel>*{flex-shrink:0}.practice-workspace__layout--playing .practice-control-panel__footer{opacity:.72}.practice-workspace__layout--playing .practice-control-panel__primary{opacity:1}.practice-workspace__layout--playing .practice-section--position-focus{box-shadow:0 0 0 1px var(--sf-border-strong)}.practice-workspace__score{scroll-behavior:auto}.practice-section--position-focus .practice-position__hero-value{font-size:1.35rem}.practice-control-panel .practice-section--compact .practice-section__title--static{margin-bottom:8px;font-size:.75rem}.practice-control-panel .practice-collapsible-section{margin-top:4px}.practice-workspace__empty{padding:var(--sf-space-4xl) var(--sf-space-2xl);text-align:center;color:var(--sf-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.practice-workspace__empty h2{margin:0 0 var(--sf-space-md);font-size:var(--sf-font-heading);color:var(--sf-text-primary);font-weight:600}.practice-workspace__empty p{margin:0 0 var(--sf-space-sm);max-width:420px;line-height:1.55}.practice-workspace__empty-lead{max-width:420px;margin:0 0 12px}.practice-workspace__empty-hint{color:#6b82a8;font-size:.85rem}.practice-workspace__steps{text-align:left;max-width:420px;margin:0 0 16px;padding:0;list-style:none}.practice-workspace__steps li{counter-increment:practice-step;background:#152238d9;border:1px solid #243552;border-radius:10px;margin:0 0 10px;padding:10px 12px 10px 36px;font-size:.9rem;line-height:1.45;position:relative}.practice-workspace__steps{counter-reset:practice-step}.practice-workspace__steps li:before{content:counter(practice-step);color:#c5d4ef;background:#263a5e;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.7rem;font-weight:700;display:flex;position:absolute;top:10px;left:10px}.practice-control-panel__primary{flex-direction:column;gap:10px;display:flex}.practice-control-panel__primary .practice-section--compact:first-child{border-color:var(--sf-border-strong);box-shadow:none}.practice-workspace__score{position:relative}.practice-timing-prep{border:1px solid var(--sf-border);background:var(--sf-surface-raised,#121212b8);color:var(--sf-text-secondary);font-size:var(--sf-font-sidebar-min);letter-spacing:.02em;pointer-events:none;margin:0 0 10px;padding:8px 12px;line-height:1.4}.practice-timing-prep--error{color:var(--sf-text-primary);border-color:var(--sf-border-strong)}.score-follow-setup-status{border-radius:var(--sf-radius-pill);font-size:var(--sf-font-sidebar-min);color:var(--sf-text-secondary);border:1px solid var(--sf-border);box-shadow:none;pointer-events:none;text-align:left;background:#121212b8;align-items:center;gap:8px;max-width:100%;margin:0 0 10px;padding:5px 10px;line-height:1.35;display:inline-flex;position:static}.practice-workspace__score>.score-follow-setup-status{z-index:30;text-align:right;justify-content:flex-end;max-width:min(45%,18rem);margin:0;position:absolute;top:12px;left:auto;right:12px}.practice-workspace__score>.omr-quality-warning{z-index:28;margin:8px 12px 0;position:relative}.omr-quality-warning{justify-content:space-between;align-items:flex-start;gap:var(--sf-space-md);padding:var(--sf-space-sm) var(--sf-space-md);border:1px solid var(--sf-border-muted);background:var(--sf-bg-elevated,#ffffff0a);display:flex}.omr-quality-warning__text{color:var(--sf-text-primary);margin:0;font-size:.82rem;line-height:1.45}.omr-quality-warning__dismiss{color:var(--sf-text-muted);font:inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;flex:none;margin:0;padding:0;font-size:.75rem}.omr-quality-warning__dismiss:hover,.omr-quality-warning__dismiss:focus-visible{color:var(--sf-text-primary)}.practice-control-panel .score-follow-setup-status,.practice-setup .score-follow-setup-status{text-align:left;justify-content:flex-start;max-width:100%;margin:0 0 10px;display:flex;position:static}.score-follow-setup-status--running{border-color:var(--sf-border-strong);color:var(--sf-text-secondary)}.score-follow-setup-status--ready{border-color:var(--sf-border-strong)}.score-follow-setup-status--warning{color:#e8d4a8;background:#18140ceb;border:1px solid #dca03c73}.score-follow-setup-status--needs-setup{color:var(--sf-text-secondary,#8a8478)}.score-follow-setup-status--hint{color:var(--sf-text-secondary,#8a8478);font-size:.9rem}.score-follow-approximate-hint{transition:opacity var(--sf-duration-fade) var(--sf-ease-out), visibility var(--sf-duration-fade) var(--sf-ease-out)}.score-follow-approximate-hint--dismissed{opacity:0;visibility:hidden;pointer-events:none}.score-follow-setup-status--failed{color:#f0c8cc;border-color:#f0a0a873}.practice-env-notices{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.practice-env-notices__item{border-radius:var(--sf-radius-md);font-size:var(--sf-font-small);color:var(--sf-text-secondary);background:var(--sf-bg-panel-inset);border:1px solid var(--sf-border);margin:0;padding:10px 12px;line-height:1.45}.practice-env-notices__item kbd{background:#ffffff14;border-radius:4px;padding:1px 5px;font-size:.72rem}.score-follow-setup-intro{color:#a8b8d8;margin:0 0 10px;font-size:.8rem;line-height:1.45}.score-follow-setup-status__spinner{border:2px solid var(--sf-border-strong);border-top-color:var(--sf-text-muted);border-radius:50%;flex-shrink:0;width:11px;height:11px;animation:.65s linear infinite score-follow-setup-spin}@keyframes score-follow-setup-spin{to{transform:rotate(360deg)}}.score-follow-setup-steps{color:#9fb3d9;margin:0 0 12px;padding:0 0 0 18px;font-size:.8rem;line-height:1.5}.score-follow-setup-steps li{margin-bottom:6px}.score-follow-setup-steps kbd{font-size:.7rem}.practice-files{background:var(--sf-bg-panel-inset);border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);box-sizing:border-box;flex-direction:column;gap:8px;min-width:0;max-width:100%;padding:12px 14px;display:flex;overflow:hidden}.practice-files__item{flex-direction:column;gap:2px;min-width:0;max-width:100%;display:flex;overflow:hidden}.practice-files__item--ok .practice-files__value{color:#c8e6d4}.practice-files__label{text-transform:uppercase;letter-spacing:.04em;color:#8fa3c7;font-size:.7rem;font-weight:600}.practice-files__hint{color:#6b82a8;font-size:.7rem;line-height:1.3}.practice-files__value,.practice-files__value--truncate{color:#c8d4e8;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:.8rem;display:block;overflow:hidden}.practice-files__hint--wrap,.practice-import-notices__warning--wrap,.practice-import-notices__guidance-item{overflow-wrap:anywhere;word-break:break-word;max-width:100%}.practice-setup,.practice-diagnostics{flex-direction:column;gap:12px;display:flex}.practice-setup .score-follow-controls--embedded,.practice-advanced .score-follow-controls--embedded{background:0 0;border:none;flex:none;width:100%;max-width:none;padding:0}.practice-section--setup .score-follow-controls__list{max-height:min(200px,28vh)}.practice-section--diagnostics{padding:14px 16px}.practice-section--diagnostics .timing-diagnostics{margin:0}.score-follow-controls__debug--panel{border-top:none;margin:0;padding-top:0}.practice-status__hint{font-size:var(--sf-font-sidebar-min);color:var(--sf-text-muted);margin-bottom:2px;display:block}.practice-view{flex-direction:column;flex:1;gap:24px;min-height:0;padding:32px 40px;display:flex}.practice-view__header h2{color:#f4f7fc;margin:0 0 6px;font-size:1.5rem;font-weight:600}.practice-view__intro{color:#8fa3c7;max-width:720px;margin:0;font-size:.9rem;line-height:1.5}.practice-layout{grid-template-columns:minmax(300px,1fr) minmax(300px,1fr);align-items:start;gap:16px;display:grid}@media (width<=960px){.practice-layout{grid-template-columns:1fr}}.practice-layout__primary,.practice-layout__secondary{flex-direction:column;gap:16px;min-width:0;display:flex}.practice-section{padding:var(--sf-panel-padding-y) var(--sf-space-2xl);background:var(--sf-bg-panel);border:1px solid var(--sf-border);border-radius:var(--sf-radius-xl)}.practice-section__title--static,.practice-section__title--editorial{margin:0 0 var(--sf-space-xl);font-family:var(--sf-font-mono);color:var(--sf-text-muted);text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;font-weight:500}.practice-section__body--flat{gap:var(--sf-section-gap);flex-direction:column;display:flex}.practice-position__hero-meta--repeat{color:#c4b5fd}.timing-diagnostics__stats--repeats{border-top:1px solid #2a3d5c;margin-top:8px;padding-top:8px}.timing-diagnostics__repeat-warning{color:#e8d4a8;background:#b48c281f;border:1px solid #dcb43c59;border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:.8rem;line-height:1.45}.practice-section__hint--sound{color:#9fb3d9;background:#152238a6;border:1px solid #2a3d5c;border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:.8rem;line-height:1.45}.practice-section__hint{color:#6b82a8;margin:0;font-size:.85rem;line-height:1.45}.practice-section__hint--inline{margin-bottom:4px}.practice-section__file{color:#8fa3c7;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.8rem;overflow:hidden}.practice-section__status--loading{color:var(--sf-text-muted);animation:practice-status-pulse 2s var(--sf-ease-in-out) infinite}@keyframes practice-status-pulse{0%,to{opacity:.65}50%{opacity:1}}.practice-section__status{color:#8fa3c7;margin:0;font-size:.85rem}.practice-section__error{color:#f0a0a8;margin:0;font-size:.85rem}.practice-section--collapsible{padding:0;overflow:hidden}.practice-section__toggle{width:100%;min-width:0;max-width:100%;padding:var(--sf-space-lg) var(--sf-space-xl);border-radius:var(--sf-radius-md);color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;display:flex}.practice-section__toggle:hover{background:#ffffff0a}.practice-section__toggle-label{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex;overflow:hidden}.practice-section__summary{color:#6b82a8;text-transform:none;letter-spacing:normal;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:.75rem;font-weight:400;overflow:hidden}.practice-section--collapsible .practice-section__title{color:#9fb3d9;text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.85rem;font-weight:600}.practice-section__chevron{color:#6b82a8;flex-shrink:0;font-size:.9rem}.practice-section--collapsible .practice-section__body{padding:0 18px 16px}.practice-status{background:#0d1628;border:1px solid #243552;border-radius:14px;padding:14px 18px}.practice-status__heading{color:#6b82a8;text-transform:uppercase;letter-spacing:.05em;margin:0 0 10px;font-size:.75rem;font-weight:600}.practice-status__grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.practice-status__item{background:#101c30;border:1px solid #243552;border-radius:8px;padding:8px 10px}.practice-status__item--ok{border-color:#6d4aff59}.practice-status__label{color:#6b82a8;text-transform:uppercase;letter-spacing:.04em;font-size:.65rem;font-weight:500;display:block}.practice-status__value{color:#9fb3d9;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.75rem;display:block;overflow:hidden}.practice-status__item--ok .practice-status__value{color:#e8eef8}.practice-position--embedded,.measure-nav--embedded,.practice-loop--embedded{background:0 0;border:none;border-radius:0;padding:0}.practice-position--embedded .practice-position__grid{margin-top:0}.measure-nav--embedded{border-top:1px solid #243552;flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;display:flex}.measure-nav--embedded .measure-nav__label{color:#6b82a8;margin-right:4px;font-size:.75rem;font-weight:500}.measure-nav--embedded .measure-nav__current,.measure-nav--embedded .measure-nav__current-value,.measure-nav--embedded .measure-nav__current-meta{display:none}.practice-loop__toggle--inline{color:#9fb3d9;font-size:.85rem}.practice-mode__options{flex-wrap:wrap;gap:12px 20px;display:flex}.practice-mode__option{color:#e8eef8;cursor:pointer;align-items:center;gap:8px;font-size:.9rem;display:flex}.practice-mode__option input{accent-color:#6d4aff}.practice-scope__options{flex-wrap:wrap;gap:8px;display:flex}.practice-scope__option{color:#dce7f6;cursor:pointer;background:#1420386b;border:1px solid #2e4268;border-radius:8px;align-items:center;gap:7px;min-height:38px;padding:0 12px;font-size:.84rem;display:inline-flex}.practice-scope__option--selected{color:#edfdf6;background:#6ee7b71f;border-color:#6ee7b77a;font-weight:600}.practice-scope__option input{accent-color:#48b878}.wait-for-you__header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.wait-for-you__header .practice-section__title--static{margin:0}.wait-for-you__badge{color:#d4c8ff;background:#6d4aff33;border:1px solid #6d4aff73;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:600}.wait-for-you__status{color:#e8eef8;margin:0;font-size:.9rem;line-height:1.45}.wait-for-you__status--complete{color:#b8e6c8}.wait-for-you__status--no-checkpoints{color:#f0b8b8}.wait-for-you__status--missed{color:#f0b0b0}.wait-for-you__status--correct{color:#b8e6c8}.wait-for-you__status--continuing{color:#c8d8f0}.wait-for-you__badge--continuing{color:#d8e4ff;background:#7896c82e;border-color:#7896c866;animation:none}.practice-stats-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:10px;margin:0 0 .75rem;padding:.75rem .85rem}.practice-stats-card--compact{margin-bottom:.65rem;padding:.65rem .75rem}.practice-stats-card--flat{background:0 0;border:0;margin:0;padding:0}.practice-stats-card__header{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.55rem;display:flex}.practice-stats-card__title{letter-spacing:.02em;text-transform:uppercase;color:#9aa8bc;margin:0;font-size:.78rem;font-weight:600}.practice-stats-card__hint{color:#6b7a90;font-size:.68rem}.practice-stats-card__grid{grid-template-columns:1fr 1fr;gap:.35rem .75rem;display:grid}.practice-stats-card__row{flex-direction:column;gap:.1rem;display:flex}.practice-stats-card__label{color:#7d8da3;font-size:.72rem}.practice-stats-card__value{color:#e4eaf2;font-size:.86rem;font-weight:500}.wait-for-you__progress{color:#6b82a8;margin:0;font-size:.8rem}.wait-for-you__target{grid-template-columns:repeat(2,1fr);gap:8px;margin:0;display:grid}.wait-for-you__target dt{color:#6b82a8;text-transform:uppercase;margin:0 0 2px;font-size:.65rem}.wait-for-you__target dd{color:#f4f7fc;margin:0;font-size:1.1rem;font-weight:600}.wait-for-you__actions{flex-wrap:wrap;gap:8px;display:flex}.wait-for-you__btn{min-height:40px;padding:0 var(--sf-space-lg);border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel-inset);color:var(--sf-text-body);font-size:var(--sf-font-small);cursor:pointer;font-weight:500}.wait-for-you__btn:hover:not(:disabled){border-color:var(--sf-border-focus);background:#1a2844}.wait-for-you__btn:disabled{opacity:.45;cursor:not-allowed}.wait-for-you__btn--primary{color:#d8f5e4;background:#48b47829;border-color:#48b4786b}.wait-for-you__btn--primary:hover:not(:disabled){background:#48b4783d}.wait-for-you__hint{color:#6b82a8;margin:0;font-size:.75rem;line-height:1.45}.wait-for-you__checkpoint-mode{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:10px;display:flex}.wait-for-you__checkpoint-mode-label{color:#6b82a8;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.wait-for-you__checkpoint-mode-option{color:#e8eef8;cursor:pointer;align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.wait-for-you__checkpoint-mode-option input{accent-color:#6d4aff}.wait-for-you__listening{color:#b8d4ff;margin:0;font-size:.8rem}.wait-for-you__mic-chord-hint{color:#e8d4a8;background:#c8a03c1a;border:1px solid #c8a03c47;border-radius:8px;margin:0;padding:8px 10px;font-size:.78rem;line-height:1.45}.wait-for-you__mic-off,.wait-for-you__reference-error{color:#efd8a8;background:#dcaa461a;border:1px solid #dcaa4652;border-radius:8px;margin:0;padding:8px 10px;font-size:.78rem;line-height:1.45}.wait-for-you__mic-off{gap:8px;display:grid}.wait-for-you__mic-off p{margin:0}.wait-for-you__reference-error{color:#f2c0c0;background:#dc5a5a1a;border-color:#dc5a5a66}.wait-for-you__explainer{color:#9fb3d9;margin:0 0 12px;font-size:.82rem;line-height:1.45}.wfy-input-source__summary{cursor:pointer;color:#9fb3d9;align-items:center;gap:8px;min-width:0;max-width:100%;font-size:.76rem;list-style:none;display:inline-flex;overflow:hidden}.wfy-input-source__summary::-webkit-details-marker{display:none}.wfy-input-source__summary:after{content:""}.wfy-input-source__summary:before{content:"▸";color:#8fa3c7;font-size:var(--sf-font-caption)}.wfy-input-source[open]>.wfy-input-source__summary:before{content:"▾"}.wfy-input-source__current{color:#e8eef8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;font-weight:600;overflow:hidden}.wfy-input-source__change{color:#9fb3d9;text-underline-offset:2px;text-decoration:underline}.wfy-input-source__body{background:#1420388c;border:1px solid #2e4268;border-radius:8px;margin-top:8px;padding:8px}.wfy-input-source__label{text-transform:uppercase;letter-spacing:.04em;color:#8fa3c7;font-size:.72rem;font-weight:600}.wfy-input-source__options{flex-direction:column;gap:6px;display:flex}.wfy-input-source__option{color:#e8eef8;cursor:pointer;align-items:flex-start;gap:8px;font-size:.82rem;display:flex}.wfy-input-source__option--disabled{opacity:.45;cursor:not-allowed}.wfy-input-source__option--selected{color:#f4f7fc}.wfy-input-source__option input{accent-color:#6d4aff;margin-top:3px}.wfy-input-source__option-text{flex-direction:column;gap:2px;display:flex}.wfy-input-source__option-hint{color:#8fa3c7;font-size:.72rem}.wfy-input-source__option-label{font-weight:600}.wfy-input-source__manual{color:#9fb3d9;cursor:pointer;align-items:center;gap:8px;margin-top:8px;font-size:.74rem;display:flex}.wfy-input-source__manual input{accent-color:#6d4aff}.wfy-input-source__manual--selected{color:#dbe6fb}.mic-input-status__blocked{color:#ffd7b0;margin:6px 0 0;font-size:.78rem}.wfy-input-source__accuracy-note{color:#9fb3d9;margin:8px 0 0;font-size:.72rem;line-height:1.45}.wfy-input-source-modal{z-index:2600;box-sizing:border-box;overscroll-behavior:contain;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:hidden auto}.wfy-input-source-modal__scrim{-webkit-backdrop-filter:blur(8px);background:#040810b8;position:absolute;inset:0}.wfy-input-source-modal__dialog{z-index:1;background:#121c30;border:1px solid #3a4f78;border-radius:8px;width:min(360px,100vw - 40px);max-width:100%;padding:18px;position:relative;box-shadow:0 24px 70px #00000061}.wfy-input-source-modal__dialog h2{color:#f4f7fc;margin:0 0 14px;font-size:1.1rem;line-height:1.25}.wfy-input-source-modal__actions{gap:8px;display:grid}.wfy-input-source-modal__btn{color:#eef4ff;cursor:pointer;background:#1b2a47;border:1px solid #425a86;border-radius:8px;width:100%;min-height:44px;padding:10px 12px;font-weight:650}.wfy-input-source-modal__btn:hover:not(:disabled){background:#24385d}.wfy-input-source-modal__btn--primary{background:#173c35;border-color:#57d69380}.wfy-input-source-modal__btn--primary:hover:not(:disabled){background:#1e4e44}.wfy-input-source-modal__btn--quiet{color:#c9d8f2;background:0 0}.wfy-input-source-modal__btn:disabled{opacity:.45;cursor:not-allowed}.wfy-input-source-modal__guitar{gap:var(--sf-space-3,12px);display:grid}.wfy-input-source-modal__link{color:var(--sf-text-muted,#a1a1aa);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;justify-self:center;padding:0;font-size:.82rem;font-weight:500;text-decoration:underline}.wfy-input-source-modal__link:hover{color:var(--sf-text-body,#e4e4e7)}.wfy-input-source-modal__advanced{margin-top:var(--sf-space-1,4px);border-top:1px solid var(--sf-border,#27272a);padding-top:var(--sf-space-2,8px)}.wfy-input-source-modal__advanced-summary{cursor:pointer;letter-spacing:.06em;text-transform:uppercase;color:var(--sf-text-subtle,#71717a);font-size:.78rem;font-weight:600;list-style:none}.wfy-input-source-modal__advanced-summary::-webkit-details-marker{display:none}.wfy-input-source-modal__advanced-body{gap:var(--sf-space-2,8px);margin-top:var(--sf-space-2,8px);display:grid}.wfy-input-source-modal__btn--secondary{background:var(--sf-bg-panel-inset,#1e1e1e);border-color:var(--sf-border-strong,#3f3f46);font-weight:600}.wfy-input-source-modal__btn--secondary:hover:not(:disabled){background:var(--sf-bg-panel,#121212)}.mic-input-status__grid{grid-template-columns:1fr 1fr;gap:8px 12px;margin:8px 0;font-size:.78rem;display:grid}.mic-input-status__grid dt{color:#8fa3c7;font-weight:600}.mic-input-status__grid dd{color:#e8eef8;margin:0}.mic-input-status__mvp-note{color:#9fb3d9;margin:8px 0 0;font-size:.75rem;line-height:1.45}.mic-input-status__actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.mic-input-status__btn{color:#e8eef8;cursor:pointer;background:#1a2844;border:1px solid #3d5278;border-radius:8px;padding:6px 12px;font-size:.8rem}.mic-input-status__btn:hover{background:#243558}.mic-input-status__safari{color:#e8d4a8;background:#b48c281f;border:1px solid #b48c2859;border-radius:8px;margin:0 0 8px;padding:8px 10px;font-size:.75rem;line-height:1.45}.mic-input-status__heard{color:#c8d6f0;background:#1a2844;border:1px solid #2d4268;border-radius:8px;margin:8px 0 0;padding:8px 10px;font-size:.82rem;line-height:1.4}.mic-input-status__heard--wrong{color:#f5c4c4;border-color:#dc5a5a73}.mic-input-status__heard--correct{color:#b8f0d0;border-color:#48b47873}.mic-input-status__chord-note{color:#b8c8e8;margin:8px 0 0;font-size:.75rem;font-style:italic;line-height:1.45}.mic-test{background:#121c30;border:1px solid #2a3d5c;border-radius:10px;margin-top:12px;padding:10px 12px}.mic-test__title{color:#e8eef8;margin:0 0 4px;font-size:.8rem;font-weight:600}.mic-test__hint{color:#8fa3c7;margin:0 0 10px;font-size:.72rem;line-height:1.45}.mic-test__cents{color:#8fa3c7;font-variant-numeric:tabular-nums;font-size:.72rem}.mic-input-status__calibration{color:#9bb4d4;margin:4px 0 0;font-size:.74rem;line-height:1.4}.mic-input-status__calibration--measuring{color:#b9c6dd}.mic-input-status__calibration--room-noisy{color:#f0c674}.mic-input-status__calibration--no-input{color:#f0b8b8}.mic-input-status__calibration--ready{color:#8fcf9f}.mic-input-status__chord-progress{color:#c9d8ef;margin:4px 0 0;font-size:.74rem;line-height:1.45}.mic-input-status__btn--retry{margin-top:6px}.mic-test__meter-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.mic-test__meter-label{color:#8fa3c7;flex-shrink:0;width:4.5rem;font-size:.72rem}.mic-test__meter{background:#0d1526;border-radius:4px;flex:1;height:8px;overflow:hidden}.mic-test__meter-fill{background:linear-gradient(90deg,#3d7a52,#6ecf8a);border-radius:4px;height:100%;transition:width 80ms ease-out}.mic-test__readout{grid-template-columns:1fr 1fr;gap:6px 12px;margin:0;font-size:.78rem;display:grid}.mic-test__readout dt{color:#8fa3c7;font-weight:600}.mic-test__readout dd{color:#e8eef8;margin:0}.mic-test__quality--good{color:#8ce8b0}.mic-test__quality--too-quiet,.mic-test__quality--weak{color:#e8d4a8}.mic-test__quality--too-noisy{color:#f5b0b0}.wait-for-you__settings-fieldset{border:1px solid #2d4268;border-radius:8px;margin:10px 0 0;padding:8px 10px}.wait-for-you__settings-fieldset legend{color:#c8d6f0;padding:0 4px;font-size:.78rem;font-weight:600}.wait-for-you__settings-fieldset-hint{color:#8fa3c7;margin:0 0 8px;font-size:.72rem;line-height:1.4}.wait-for-you__feedback{border-radius:8px;margin:0;padding:8px 10px;font-size:.85rem;line-height:1.4}.wait-for-you__feedback--success{color:#b8e6c8;background:#48a06426;border:1px solid #48a06459}.wait-for-you__feedback--error{color:#f0b8b8;background:#c850501f;border:1px solid #c8505059}.wait-for-you__feedback--partial{color:#e8d4a8;background:#c8a03c1f;border:1px solid #c8a03c59}.wait-for-you__feedback--waiting,.wait-for-you__feedback--neutral{color:#c8d4e8;background:#50648c26;border:1px solid #50648c4d}.wait-for-you__guidance{border-radius:8px;flex-direction:column;gap:3px;min-width:0;max-width:100%;margin:0;padding:8px 12px;display:flex;overflow:hidden}.wait-for-you__guidance-primary{overflow-wrap:anywhere;word-break:break-word;margin:0;font-size:.92rem;font-weight:600}.wait-for-you__guidance-detail{opacity:.92;margin:0;font-size:.82rem}.wait-for-you__guidance-hint{margin:0;font-size:.82rem;font-weight:500}.wait-for-you__guidance--success{color:#b8e6c8;background:#48a0642e;border:1px solid #48a06466}.wait-for-you__guidance--error{color:#f0b8b8;background:#c8505024;border:1px solid #c8505066}.wait-for-you__guidance--partial{color:#e8d4a8;background:#c8a03c24;border:1px solid #c8a03c66}.wait-for-you__guidance--hint{color:#ffe9a8;background:#d2aa2829;border:1px solid #d2aa2873}.wait-for-you__guidance--hint .wait-for-you__guidance-hint{color:#bfe0ff}.wait-for-you__guidance--neutral,.wait-for-you__guidance--waiting{color:#d8c8f0;background:#785ab429;border:1px solid #785ab461}.wait-for-you__settings{background:#14203899;border:1px solid #2e4268;border-radius:10px;margin-bottom:12px;padding:10px 12px}.wait-for-you__settings-summary{cursor:pointer;color:#b8c8e8;font-size:.8rem;font-weight:600;list-style:none}.wait-for-you__settings-summary::-webkit-details-marker{display:none}.wait-for-you__settings-body{flex-direction:column;gap:8px;margin-top:10px;display:flex}.wait-for-you__settings-row{color:#e8eef8;cursor:pointer;align-items:center;gap:8px;font-size:.85rem;display:flex}.wait-for-you__settings-row--number{cursor:default;flex-direction:column;align-items:flex-start}.wait-for-you__settings-row--number input{color:#e8eef8;background:#152238;border:1px solid #2e4268;border-radius:8px;width:100%;max-width:120px;height:32px;padding:0 8px;font-size:.85rem}.wait-for-you__settings-row input[type=checkbox]{accent-color:#6d4aff}.wait-for-you__settings-reset{color:#9ab0d0;cursor:pointer;background:0 0;border:1px solid #2e4268;border-radius:8px;align-self:flex-start;height:32px;padding:0 12px;font-size:.8rem}.wait-for-you__settings-reset:hover:not(:disabled){color:#e8eef8;background:#1d2d4d}.wait-for-you__settings-hint{color:#6b82a8;margin:8px 0 0;font-size:.75rem;line-height:1.4}.wait-for-you__target-wide{grid-column:1/-1}.wait-for-you__target-wide dd{font-size:.95rem;font-weight:500}.midi-input-status__grid{grid-template-columns:repeat(2,1fr);gap:8px;margin:0 0 10px;display:grid}.midi-input-status__grid dt{color:#6b82a8;text-transform:uppercase;margin:0 0 2px;font-size:.65rem}.midi-input-status__grid dd{color:#f4f7fc;margin:0;font-size:.9rem}.midi-input-status__devices{color:#c8d4e8;margin:0 0 10px;padding:0;font-size:.85rem;list-style:none}.midi-input-status__device-name{font-weight:500}.midi-input-status__device-meta{color:#6b82a8}.midi-input-status__actions{flex-wrap:wrap;gap:8px;display:flex}.midi-input-status__device-picker{align-items:center;gap:8px;margin:0 0 10px;display:flex}.midi-input-status__device-label{color:#6b82a8;text-transform:uppercase;font-size:.62rem}.midi-input-status__device-picker select{color:#f4f7fc;background:#141c2c99;border:1px solid #50648c66;border-radius:6px;flex:1;height:32px;padding:0 8px}.midi-diagnostics__grid{grid-template-columns:repeat(2,1fr);gap:8px;margin:0;display:grid}.midi-diagnostics__grid dt{color:#6b82a8;text-transform:uppercase;margin:0 0 2px;font-size:.62rem}.midi-diagnostics__grid dd{color:#f4f7fc;margin:0;font-size:.85rem}.midi-diagnostics__active{grid-column:1/-1}.midi-diagnostics__chips{flex-wrap:wrap;gap:4px;display:inline-flex}.midi-diagnostics__chip{background:#5078b440;border:1px solid #78a0dc66;border-radius:999px;padding:1px 7px;font-size:.78rem}.midi-input-status__btn{color:#e8eef8;cursor:pointer;background:#1d2d4d;border:1px solid #2e4268;border-radius:10px;height:36px;padding:0 14px;font-size:.85rem}.midi-input-status__btn:hover{background:#263a5e}.timing-diagnostics{flex-direction:column;gap:12px;font-size:.8rem;display:flex}.timing-diagnostics__empty{color:#6b82a8;margin:0}.timing-diagnostics__sync{color:#9fb3d9;background:#0d1628;border:1px solid #243552;border-radius:8px;margin:0;padding:6px 10px;font-size:.8rem}.timing-diagnostics__sync--active{color:#d4c8ff;border-color:#5a3fd4}.timing-diagnostics__file,.timing-diagnostics__status{color:#8fa3c7;margin:0}.timing-diagnostics__error{color:#f0a0a8;margin:0}.timing-diagnostics__stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.timing-diagnostics__stats>div{background:#0d1628;border:1px solid #243552;border-radius:8px;padding:8px}.timing-diagnostics__stats dt{color:#6b82a8;margin:0 0 2px;font-size:.65rem}.timing-diagnostics__stats dd{color:#e8eef8;margin:0}.timing-diagnostics__scrub{color:#9fb3d9;flex-direction:column;gap:6px;display:flex}.timing-diagnostics__scrub input{accent-color:#6d4aff;width:100%}.timing-diagnostics__scrub-time,.timing-diagnostics__clock{color:#6b82a8;font-size:.75rem}.timing-diagnostics__details{background:#0d1628;border:1px solid #243552;border-radius:8px;padding:8px 10px}.timing-diagnostics__details summary{cursor:pointer;color:#9fb3d9;font-size:.8rem}.timing-diagnostics__details ul{max-height:160px;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.timing-diagnostics__event{border-bottom:1px solid #1a2840;grid-template-columns:3rem 6rem 1fr;gap:6px;padding:4px 0;font-size:.7rem;display:grid}.timing-diagnostics--muted{color:#6b82a8}.practice-view__columns{grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);align-items:start;gap:24px;display:grid}@media (width<=900px){.practice-view__columns{grid-template-columns:1fr}}.practice-view__column{flex-direction:column;gap:12px;min-width:0;display:flex}.practice-view__section-title{color:#c5d4ef;margin:0;font-size:1rem;font-weight:600}.practice-view__column-hint{margin:0}.practice-view__regions{flex-direction:column;gap:12px;display:flex}.practice-position{background:#101c30;border:1px solid #243552;border-radius:16px;flex-direction:column;gap:12px;padding:14px 20px;display:flex}.practice-position__title{color:#c5d4ef;margin:0;font-size:.9rem;font-weight:600}.practice-position__grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.practice-position__stat{background:#0d1628;border:1px solid #243552;border-radius:10px;padding:10px 12px}.practice-position__stat--wide{grid-column:1/-1}.practice-position__label{color:#6b82a8;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.7rem;font-weight:500;display:block}.practice-position__value{font-variant-numeric:tabular-nums;color:#f4f7fc;font-size:1.5rem;font-weight:700;line-height:1}.practice-position__meta{color:#9fb3d9;font-size:.85rem}.practice-position__controls{flex-wrap:wrap;gap:8px;display:flex}.practice-position__btn{color:#e8eef8;cursor:pointer;background:#1d2d4d;border:1px solid #2e4268;border-radius:10px;height:36px;padding:0 12px;font-size:.8rem;font-weight:500;transition:background .15s}.practice-position__btn:hover:not(:disabled){background:#263a5e}.practice-position__btn:disabled{opacity:.4;cursor:not-allowed}.practice-position__btn--secondary{color:#9fb3d9;background:0 0}.measure-nav{background:#101c30;border:1px solid #243552;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;padding:16px 20px;display:flex}.measure-nav__current{flex-wrap:wrap;align-items:baseline;gap:8px 12px;min-width:0;display:flex}.measure-nav__current-label{color:#8fa3c7;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:500}.measure-nav__current-value{font-variant-numeric:tabular-nums;color:#f4f7fc;font-size:2rem;font-weight:700;line-height:1}.measure-nav__current-meta{color:#6b82a8;font-size:.8rem}.measure-nav__number-range{color:#6b82a8}.measure-nav__controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.measure-nav__btn{color:#e8eef8;cursor:pointer;background:#1d2d4d;border:1px solid #2e4268;border-radius:10px;height:40px;padding:0 14px;font-size:.875rem;font-weight:500;transition:background .15s}.measure-nav__btn:hover:not(:disabled){background:#263a5e}.measure-nav__btn:disabled{opacity:.4;cursor:not-allowed}.measure-nav__goto{align-items:center;gap:8px;display:flex}.measure-nav__goto-label{color:#9fb3d9;font-size:.85rem}.measure-nav__goto-input{color:#e8eef8;font-variant-numeric:tabular-nums;background:#0d1628;border:1px solid #2e4268;border-radius:10px;width:4.5rem;height:40px;padding:0 10px;font-size:.9rem}.measure-nav__goto-input:disabled{opacity:.4}.measure-nav__btn--go{min-width:3.5rem}.practice-loop{background:#101c30;border:1px solid #243552;border-radius:16px;flex-direction:column;gap:12px;padding:14px 20px;display:flex}.practice-loop__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.practice-loop__snap--compact{flex-flow:wrap;align-items:center;gap:8px 12px;margin-bottom:8px}.practice-loop__snap--compact .practice-loop__snap-label{margin:0}.practice-loop__snap{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.practice-loop__snap-label{color:#6b82a8;font-size:.8rem}.practice-loop__snap-option{color:#9fb3d9;cursor:pointer;align-items:center;gap:6px;font-size:.8rem;display:flex}.practice-loop__snap-option input{accent-color:#6d4aff}.practice-loop__title{color:#c5d4ef;margin:0;font-size:.9rem;font-weight:600}.practice-loop__toggle{color:#9fb3d9;cursor:pointer;align-items:center;gap:8px;font-size:.85rem;display:flex}.practice-loop__toggle input{accent-color:#6d4aff}.practice-loop__actions{flex-wrap:wrap;gap:8px;display:flex}.practice-loop__btn{color:#e8eef8;cursor:pointer;background:#1d2d4d;border:1px solid #2e4268;border-radius:10px;height:36px;padding:0 12px;font-size:.8rem;font-weight:500;transition:background .15s}.practice-loop__btn:hover:not(:disabled){background:#263a5e}.practice-loop__btn:disabled{opacity:.4;cursor:not-allowed}.practice-loop__btn--ghost{color:#9fb3d9;background:0 0}.practice-loop__summary{flex-direction:column;gap:4px;display:flex}.practice-loop__range{color:#e8eef8;margin:0;font-size:.9rem;font-weight:600}.practice-loop__duration{color:#9fb3d9;margin:0;font-size:.8rem}.practice-loop__times{color:#6b82a8;font-variant-numeric:tabular-nums}.practice-loop__hint{color:#6b82a8;margin:4px 0 0;font-size:.75rem;line-height:1.4}.practice-view__file{color:#8fa3c7;text-overflow:ellipsis;white-space:nowrap;max-width:480px;margin:0;font-size:.9rem;overflow:hidden}.practice-view__empty{background:#101c30;border:1px solid #243552;border-radius:16px;max-width:420px;padding:32px}.practice-view__empty p{color:#9fb3d9;margin:0;line-height:1.5}.practice-view__empty-hint{font-size:.875rem;color:#6b82a8!important;margin-top:10px!important}.practice-view__panel{background:#101c30;border:1px solid #243552;border-radius:16px;flex-direction:column;gap:24px;max-width:560px;padding:24px;display:flex}.practice-view__status{color:#8fa3c7;margin:0}.practice-view__error{color:#f0a0a8;margin:0}.practice-view__tracks-title{color:#e8eef8;margin:0 0 4px;font-size:1rem;font-weight:600}.practice-view__tracks-hint{color:#6b82a8;margin:0 0 12px;font-size:.8rem}.midi-transport{gap:var(--sf-space-lg);flex-direction:column;display:flex}.midi-transport__buttons{gap:var(--sf-space-sm);display:flex}.midi-transport__btn{border:1px solid var(--sf-border);background:var(--sf-bg-panel-inset);width:44px;height:44px;color:var(--sf-text-primary);cursor:pointer;border-radius:0;padding:0;font-size:1rem}.midi-transport__btn--active{border-color:var(--sf-text-primary);background:var(--sf-bg-panel)}.midi-transport__btn:hover:not(:disabled){border-color:var(--sf-border-strong);background:var(--sf-bg-panel)}.midi-transport__btn:disabled{opacity:.4;cursor:not-allowed}.midi-transport__timeline{align-items:center;gap:var(--sf-space-md);display:flex}.midi-transport__time{min-width:2.5rem;font-family:var(--sf-font-mono);font-variant-numeric:tabular-nums;color:var(--sf-text-muted);flex-shrink:0;font-size:.75rem}.midi-transport__seek{background:var(--sf-border);height:1px;accent-color:var(--sf-text-primary);cursor:pointer;appearance:none;border:none;border-radius:0;flex:1;margin:0}.midi-transport__seek::-webkit-slider-runnable-track{background:var(--sf-border);border-radius:0;height:1px}.midi-transport__seek::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid var(--sf-border-strong);background:var(--sf-text-primary);opacity:0;width:5px;height:5px;transition:opacity var(--sf-duration-fast) var(--sf-ease);border-radius:0;margin-top:-2px}.midi-transport__seek:hover::-webkit-slider-thumb{opacity:1}.midi-transport__seek:focus-visible::-webkit-slider-thumb{opacity:1}.midi-transport__seek:active::-webkit-slider-thumb{opacity:1}.midi-transport__seek::-moz-range-track{background:var(--sf-border);border:none;border-radius:0;height:1px}.midi-transport__seek::-moz-range-thumb{border:1px solid var(--sf-border-strong);background:var(--sf-text-primary);opacity:0;width:5px;height:5px;transition:opacity var(--sf-duration-fast) var(--sf-ease);border-radius:0}.midi-transport__seek:hover::-moz-range-thumb{opacity:1}.midi-transport__seek:focus-visible::-moz-range-thumb{opacity:1}.midi-transport__seek:active::-moz-range-thumb{opacity:1}.midi-transport__seek:disabled{opacity:.4;cursor:not-allowed}.midi-tracks{flex-direction:column;gap:4px;max-height:240px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.midi-tracks__item{margin:0}.midi-tracks__label{border-radius:var(--sf-radius-sm);border:1px solid var(--sf-border);cursor:pointer;transition:background var(--sf-duration-fast) var(--sf-ease), border-color var(--sf-duration-fast) var(--sf-ease), opacity var(--sf-duration-fast) var(--sf-ease);background:0 0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.midi-tracks__label:has(input:checked){background:var(--sf-bg-panel-inset);border-color:var(--sf-border-strong)}.midi-tracks__label:has(input:not(:checked)){opacity:.78;border-color:var(--sf-border-muted)}.midi-tracks__label:hover{background:var(--sf-interactive-surface);border-color:var(--sf-border-strong)}.midi-tracks__label:hover .midi-tracks__name{color:var(--sf-text-secondary)}.midi-tracks__label:hover:has(input:checked) .midi-tracks__name{color:var(--sf-text-primary)}.midi-tracks__label input[type=checkbox]{width:15px;height:15px;accent-color:var(--sf-text-primary);cursor:pointer;margin:0}.midi-tracks__name{min-width:0;font-size:var(--sf-font-small);color:var(--sf-text-muted);text-overflow:ellipsis;white-space:nowrap;transition:color var(--sf-duration-fast) var(--sf-ease);font-weight:500;overflow:hidden}.midi-tracks__label:has(input:checked) .midi-tracks__name{color:var(--sf-text-primary)}.midi-tracks__label:has(input:not(:checked)) .midi-tracks__name{color:var(--sf-text-subtle);font-weight:400}.midi-tracks__meta{font-size:var(--sf-font-sidebar-min);font-variant-numeric:tabular-nums;color:var(--sf-text-muted);white-space:nowrap;flex-shrink:0}.midi-tracks__label:has(input:not(:checked)) .midi-tracks__meta{color:var(--sf-text-subtle)}.midi-tracks__empty{color:var(--sf-text-muted);font-size:var(--sf-font-small);margin:0;line-height:1.45}.library-panel__midi{margin-top:16px}.library-panel__midi .panel__hint{margin-bottom:14px}.library-panel__musicxml{margin-top:16px}.practice-files__hint--error{color:#e8b4b4}.practice-import-notices{box-sizing:border-box;background:#152238d9;border:1px solid #2e4268;border-radius:12px;flex-direction:column;gap:10px;min-width:0;max-width:100%;padding:12px 14px;display:flex;overflow:hidden}.practice-import-notices__heading{text-transform:uppercase;letter-spacing:.05em;color:#8fa3c7;margin:0 0 6px;font-size:.72rem;font-weight:600}.practice-import-notices__list,.practice-import-notices__warnings{color:#9fb3d9;margin:0;padding:0 0 0 18px;font-size:.78rem;line-height:1.45}.practice-import-notices__warnings{padding:0;list-style:none}.practice-import-notices__warning{color:#b8c8e8;background:#6d4aff14;border:1px solid #6d4aff33;border-radius:8px;margin:0 0 8px;padding:8px 10px}.practice-import-notices__warning:last-child{margin-bottom:0}.practice-import-notices__warning--strong{color:#e8d4b8;background:#b4783c1a;border-color:#c88c4659}.practice-import-notices__disclosure{margin:0}.practice-import-notices__disclosure-summary{border:1px solid var(--sf-border);background:var(--sf-bg-panel-inset);min-height:32px;color:var(--sf-text-muted);font-size:var(--sf-font-sidebar-min);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;list-style:none;display:flex}.practice-import-notices__disclosure-summary::-webkit-details-marker{display:none}.practice-import-notices__disclosure-label{color:var(--sf-text-secondary);font-weight:650}.practice-import-notices__disclosure-count{border:1px solid var(--sf-border);background:var(--sf-bg-panel);min-width:1.4rem;color:var(--sf-text-muted);font-family:var(--sf-font-mono);font-size:var(--sf-font-sidebar-min);text-align:center;padding:1px 7px}.practice-import-notices__warnings--disclosure{margin-top:8px}.practice-import-notices__warnings--disclosure .practice-import-notices__warning{font-size:var(--sf-font-sidebar-min);padding:6px 8px;line-height:1.35}.upload-btn--musicxml{background:var(--sf-bg-panel);color:var(--sf-text-primary);border:1px solid var(--sf-border-strong);border-radius:0}.musicxml-debug{background:#101c30;border:1px solid #243552;border-radius:16px;flex-direction:column;gap:16px;min-width:0;padding:24px;display:flex}.musicxml-debug--empty{max-width:none}.musicxml-debug__title{color:#e8eef8;margin:0;font-size:1rem;font-weight:600}.musicxml-debug__subtitle{color:#9fb3d9;margin:4px 0 0;font-size:.9rem}.musicxml-debug__file{color:#6b82a8;text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:.8rem;overflow:hidden}.musicxml-debug__hint{color:#6b82a8;margin:8px 0 0;font-size:.875rem;line-height:1.5}.musicxml-debug__sync{color:#9fb3d9;background:#0d1628;border:1px solid #243552;border-radius:8px;margin:6px 0 0;padding:6px 10px;font-size:.8rem;font-weight:500}.musicxml-debug__sync--active{color:#d4c8ff;background:#6d4aff1f;border-color:#5a3fd4}.musicxml-debug__clock{color:#9fb3d9;flex-direction:column;gap:6px;margin:0;font-size:.85rem;display:flex}.musicxml-debug__clock-time{font-variant-numeric:tabular-nums;color:#e8eef8;font-size:.9rem}.musicxml-debug__status{color:#8fa3c7;margin:0}.musicxml-debug__error{color:#f0a0a8;margin:0}.musicxml-debug__stats{grid-template-columns:repeat(2,1fr);gap:12px;margin:0;display:grid}.musicxml-debug__stats>div{background:#0d1628;border:1px solid #243552;border-radius:10px;padding:10px 12px}.musicxml-debug__stats dt{color:#6b82a8;margin:0 0 4px;font-size:.75rem}.musicxml-debug__stats dd{color:#e8eef8;font-variant-numeric:tabular-nums;margin:0;font-size:1.1rem;font-weight:600}.musicxml-debug__scrub{color:#9fb3d9;flex-direction:column;gap:8px;font-size:.85rem;display:flex}.musicxml-debug__scrub input{accent-color:#6d4aff;width:100%}.musicxml-debug__scrub-time{font-variant-numeric:tabular-nums;color:#6b82a8;font-size:.8rem}.musicxml-debug__meta{color:#6b82a8;flex-wrap:wrap;gap:12px;font-size:.8rem;display:flex}.musicxml-debug__events h4{color:#c5d4ef;margin:0 0 8px;font-size:.85rem;font-weight:600}.musicxml-debug__events ul{flex-direction:column;gap:4px;max-height:220px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.musicxml-debug__event{background:#0d1628;border-radius:8px;grid-template-columns:3rem 7rem 1fr;gap:8px;padding:6px 8px;font-size:.75rem;display:grid}.musicxml-debug__event-time{color:#6b82a8;font-variant-numeric:tabular-nums}.musicxml-debug__event-type{color:#9fb3d9}.musicxml-debug__event-detail{color:#e8eef8;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.musicxml-debug--muted{color:#6b82a8;background:0 0}.alignment-diagnostics{border-top:1px solid #243552;margin-top:8px;padding-top:16px}.alignment-diagnostics__title{color:#c5d4ef;margin:0 0 8px;font-size:.9rem;font-weight:600}.alignment-diagnostics__disclaimer{color:#6b82a8;margin:0 0 10px;font-size:.75rem;line-height:1.45}.alignment-diagnostics__status{color:#8fa3c7;margin:0;font-size:.8rem}.alignment-diagnostics__error{color:#f0a0a8;margin:0;font-size:.8rem}.alignment-diagnostics__verdict{border-radius:8px;margin:0 0 12px;padding:8px 10px;font-size:.8rem;line-height:1.45}.alignment-diagnostics__verdict--ok{color:#b8e6c8;background:#48a06e1f;border:1px solid #48a06e59}.alignment-diagnostics__verdict--caution{color:#e8d4a8;background:#c8a0481f;border:1px solid #c8a04859}.alignment-diagnostics__verdict--warn{color:#f0b8b8;background:#c85a5a1f;border:1px solid #c85a5a59}.alignment-diagnostics__grid{grid-template-columns:repeat(2,1fr);gap:10px;margin:0;display:grid}.alignment-diagnostics__grid>div{background:#0d1628;border:1px solid #243552;border-radius:8px;padding:8px 10px}.alignment-diagnostics__wide{grid-column:1/-1}.alignment-diagnostics__grid dt{color:#6b82a8;margin:0 0 4px;font-size:.7rem}.alignment-diagnostics__grid dd{color:#e8eef8;margin:0;font-size:.8rem;line-height:1.4}.alignment-diagnostics__hint{color:#6b82a8;font-size:.7rem}.practice-empty-state{border-left:2px solid #6d4aff59;padding-left:8px;font-style:italic}.practice-section__title--with-tip{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.practice-section__collapse{pointer-events:none;visibility:hidden;grid-template-rows:0fr;display:grid}.practice-section--collapsible-open>.practice-section__collapse{pointer-events:auto;visibility:visible;grid-template-rows:1fr}.practice-section__collapse-inner{min-height:0;overflow:hidden}.practice-section--collapsible-open>.practice-section__collapse>.practice-section__collapse-inner{box-sizing:border-box;min-width:0;max-width:100%;padding:0 18px 16px;overflow:hidden}.practice-tracks-compact{margin-top:0}.practice-tracks-compact .midi-track-list{margin-top:6px}.practice-safari-audio-notice{background:#b478281f;border:1px solid #dca03c73;border-radius:10px;margin:0 0 10px;padding:10px 12px}.practice-safari-audio-notice__lead{color:#e8d4a8;margin:0 0 6px;font-size:.8rem;line-height:1.45}.practice-safari-audio-notice__list{color:#b8a67a;margin:0;padding-left:1.15rem;font-size:.75rem;line-height:1.45}.practice-safari-audio-notice__list li+li{margin-top:4px}.practice-safari-audio-notice__hint{color:#b8a67a;margin:0;font-size:.75rem;line-height:1.45}.midi-transport__btn--test{min-width:2.25rem;font-size:.95rem}.practice-loop-compact{flex-direction:column;gap:10px;display:flex}.practice-loop-compact .practice-loop--compact{gap:10px}.practice-loop--compact .practice-loop__actions{margin-top:2px}.practice-loop--compact .practice-loop__summary{gap:2px}.practice-loop__duration--compact{color:#6b82a8;font-size:.75rem}.practice-loop-compact__hint{margin:0}.practice-loop-compact__more{color:#6b82a8;margin:0;font-size:.7rem;line-height:1.4}.practice-loop-compact__more strong{color:#9fb3d9;font-weight:600}.practice-help-tip{vertical-align:middle;display:inline-flex;position:relative}.practice-help-tip__trigger{color:#9fb3d9;cursor:help;background:#152238;border:1px solid #3d5278;border-radius:50%;width:18px;height:18px;padding:0;font-size:.65rem;font-weight:700;line-height:1}.practice-help-tip__trigger:hover,.practice-help-tip__trigger:focus-visible{color:#e8eef8;border-color:#6d4aff;outline:none;box-shadow:0 0 0 2px #6d4aff59}.practice-help-tip__popover{z-index:20;color:#d8e4f8;text-transform:none;letter-spacing:normal;opacity:0;pointer-events:none;background:#1a2844;border:1px solid #3d5278;border-radius:10px;width:max-content;max-width:240px;padding:10px 12px;font-size:.75rem;font-weight:400;line-height:1.45;transition:opacity .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000059}.practice-help-tip:hover .practice-help-tip__popover,.practice-help-tip:focus-within .practice-help-tip__popover{opacity:1}.practice-files__label-row{align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex;overflow:hidden}.practice-shortcuts-hint{color:#6b82a8;text-align:center;pointer-events:none;background:#0d162899;border-radius:10px;flex-shrink:0;margin:4px 0 0;padding:10px 12px;font-size:.68rem;line-height:1.5}.practice-shortcuts{margin:0 0 8px}.practice-shortcuts__summary{cursor:pointer;letter-spacing:.06em;text-transform:uppercase;color:#8fa3c4;font-size:.72rem;list-style:none}.practice-shortcuts__summary::-webkit-details-marker{display:none}.practice-shortcuts .practice-shortcuts-hint{pointer-events:auto;text-align:left;margin-top:8px}.practice-shortcuts-hint__touch{display:none}.practice-shortcuts-hint kbd{color:#9fb3d9;background:#152238;border:1px solid #2e4268;border-radius:4px;margin:0 1px;padding:1px 5px;font-family:inherit;font-size:.65rem;display:inline-block}.practice-diagnostics__intro{color:#8fa3c7;margin:0 0 10px;font-size:.78rem;line-height:1.45}.practice-diagnostics__group{background:#0d162880;border:1px solid #2e4268;border-radius:10px;margin-bottom:8px}.practice-diagnostics__group summary{color:#b8c8e8;cursor:pointer;padding:10px 12px;font-size:.82rem;font-weight:600}.practice-diagnostics__group-body{padding:0 12px 12px}.practice-diagnostics__kv{grid-template-columns:1fr 1fr;gap:8px;margin:0;font-size:.78rem;display:grid}.practice-diagnostics__kv dt{color:#7a92b8;font-weight:600}.practice-diagnostics__kv dd{color:#e8eef8;margin:0}.practice-position--hero{gap:10px}.practice-position__hero{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.practice-position__hero-stat{text-align:center}.practice-position__hero-label{text-transform:uppercase;letter-spacing:.05em;color:#6b82a8;margin-bottom:4px;font-size:.65rem;font-weight:600;display:block}.practice-position--embedded.practice-position--hero .practice-position__hero-value{font-size:1.35rem}.practice-position__hero-value{font-variant-numeric:tabular-nums;color:#f4f7fc;font-size:1.75rem;font-weight:700;line-height:1}.practice-position--embedded .practice-position__progress-group{gap:var(--sf-space-sm)}.practice-position--embedded .practice-progress__header{font-size:.68rem}.practice-position__hero-divider{background:#2e4268;width:1px;height:36px}.practice-position__hero-meta{text-align:center;color:#8fa3c7;margin:0;font-size:.75rem}.practice-position__progress-group{flex-direction:column;gap:8px;display:flex}.practice-progress__header{margin-bottom:var(--sf-space-sm);font-family:var(--sf-font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--sf-text-muted);justify-content:space-between;font-size:.6875rem;display:flex}.practice-progress__track{background:var(--sf-border);border-radius:0;height:1px;overflow:hidden}.practice-progress__fill{background:var(--sf-text-primary);border-radius:0;height:100%;transition:width .18s ease-out}.practice-position--embedded .practice-progress__fill{transition:none}.practice-progress--subtle .practice-progress__fill{background:var(--sf-text-muted)}.wait-for-you__badge--pulse{animation:1.6s ease-in-out infinite wfy-badge-pulse}@keyframes wfy-badge-pulse{0%,to{opacity:1;box-shadow:0 0 #6d4aff66}50%{opacity:.85;box-shadow:0 0 0 6px #6d4aff00}}.wait-for-you__progress-block{flex-direction:column;gap:6px;margin:4px 0 8px;display:flex}.wait-for-you__progress-header{color:#8fa3c7;justify-content:space-between;font-size:.72rem;display:flex}.wait-for-you__progress-track{background:var(--sf-border);border-radius:0;height:1px;overflow:hidden}.wait-for-you__progress-fill{background:var(--sf-text-primary);border-radius:0;height:100%;transition:width .2s ease-out}.wait-for-you__now-playing{background:#0d1628;border:1px solid #2e4268;border-radius:12px;min-width:0;max-width:100%;margin:8px 0;padding:12px 14px;overflow:hidden}.wait-for-you__now-label{text-transform:uppercase;letter-spacing:.05em;color:#6b82a8;margin:0 0 4px;font-size:.65rem}.wait-for-you__now-place{color:#f4f7fc;margin:0 0 10px;font-size:1rem;font-weight:600}.wait-for-you__now-notes{flex-wrap:wrap;align-items:center;gap:10px;margin:0;display:flex}.wait-for-you__now-notes-label{color:#8fa3c7;font-size:.75rem}.wait-for-you__note-chips{flex-wrap:wrap;gap:6px;display:flex}.wait-for-you__note-chip{color:#e8dcff;overflow-wrap:anywhere;word-break:break-word;background:#6d4aff40;border:1px solid #6d4aff73;border-radius:8px;min-width:0;max-width:100%;padding:6px 12px;font-size:1.1rem;font-weight:700}.wait-for-you__target-details{color:#8fa3c7;margin-top:8px;font-size:.78rem}.wait-for-you__target-details summary{cursor:pointer;color:#b7c5df;width:fit-content}.wait-for-you__target-details p{margin:6px 0 0;line-height:1.4}.practice-fullscreen-hud{z-index:12;align-items:stretch;gap:var(--sf-space-sm);width:min(92vw,520px);padding:var(--sf-space-md) var(--sf-space-lg) var(--sf-space-sm);border-radius:var(--sf-radius-lg);background:var(--sf-bg-overlay);border:1px solid var(--sf-border-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;opacity:0;transition:opacity var(--sf-duration) var(--sf-ease-out), transform var(--sf-duration) var(--sf-ease-out);flex-direction:column;display:flex;position:absolute;bottom:48px;left:50%;transform:translate(-50%)translateY(6px);box-shadow:0 8px 32px #00000059}.practice-fullscreen-hud--visible{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.practice-fullscreen-hud__timeline{border-radius:var(--sf-radius-pill);background:var(--sf-border-muted);height:4px;overflow:hidden}.practice-fullscreen-hud__timeline-fill{border-radius:inherit;background:linear-gradient(90deg, #456a9a, var(--sf-accent));height:100%;transition:width var(--sf-duration-fast) linear}.practice-fullscreen-hud__row{align-items:center;gap:var(--sf-space-md);flex-wrap:wrap;display:flex}.practice-fullscreen-hud__position{flex-direction:column;gap:2px;display:flex}.practice-fullscreen-hud__label{font-size:var(--sf-font-caption);text-transform:uppercase;letter-spacing:.05em;color:var(--sf-text-disabled)}.practice-fullscreen-hud__value{font-size:var(--sf-font-body);color:var(--sf-text-primary);white-space:nowrap;font-weight:600}.practice-fullscreen-hud__play{background:var(--sf-accent);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:50%;flex-shrink:0;width:42px;height:42px;font-size:.9rem}.practice-fullscreen-hud__play:hover:not(:disabled){background:var(--sf-accent-hover)}.practice-fullscreen-hud__pass{color:var(--sf-text-disabled);margin-top:2px;font-size:.65rem;display:block}.practice-fullscreen-hud__hint{text-align:center;color:var(--sf-text-disabled);margin:0;font-size:.65rem;line-height:1.35}.practice-fullscreen-hud__wfy{width:auto;min-height:42px;padding:0 var(--sf-space-lg);border-radius:var(--sf-radius-pill);font-size:var(--sf-font-small);font-weight:600}.practice-fullscreen-hud__wfy-badge{border-radius:var(--sf-radius-pill);font-size:var(--sf-font-caption);color:#f4e8c8;background:#facc152e;border:1px solid #facc1566;padding:5px 11px;font-weight:600;animation:1.6s ease-in-out infinite practice-wfy-pulse}@media (width<=960px){.practice-layout{grid-template-columns:1fr}}.practice-section--dev{border-style:dashed;border-color:#3d5280}.smoke-test-checklist{color:#9fb3d9;margin:0;padding-left:1.2rem;font-size:.8rem;line-height:1.55}.smoke-test-checklist li{margin-bottom:6px}.smoke-test-checklist li:last-child{margin-bottom:0}.practice-control-panel{min-width:0;max-width:32vw;padding:var(--sf-space-sm) 10px var(--sf-space-md);gap:var(--sf-sidebar-gap);box-sizing:border-box}.practice-piece-header{grid-column:1/-1;min-width:0;margin:0 0 2px;padding:0 2px}.practice-piece-header__title{color:var(--sf-text);letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin:0;font-family:Inter,system-ui,sans-serif;font-size:.7rem;font-weight:700;line-height:1.25;overflow:hidden}.practice-control-panel__primary,.practice-control-panel__footer,.practice-more{gap:var(--sf-sidebar-gap);flex-direction:column;flex-shrink:0;min-width:0;max-width:100%;display:flex;overflow-x:hidden}.practice-more{box-sizing:border-box}.practice-more__group{border-top:1px solid var(--sf-border-muted);flex-direction:column;gap:8px;min-width:0;padding:8px 0 0;display:flex}.practice-more__group:first-child{border-top:0;padding-top:0}.practice-more__group-title{color:var(--sf-text-muted);font-size:var(--sf-font-sidebar-min);letter-spacing:0;text-transform:none;margin:0 0 2px;font-weight:700}.practice-status-strip{flex-wrap:wrap;gap:6px;min-height:24px;display:flex}.practice-status-chip{border:1px solid var(--sf-border);border-radius:var(--sf-radius-pill);background:var(--sf-bg-panel-inset);width:fit-content;min-height:22px;color:var(--sf-text-muted);font-family:var(--sf-font-mono);font-size:var(--sf-font-sidebar-min);white-space:normal;opacity:1;align-items:center;padding:3px 9px;font-weight:500;line-height:1.2;display:inline-flex}.practice-status-chip--ready{color:#b8e6c8;background:#48b4781a;border-color:#48b47861}.practice-status-chip--warning{color:#e8d4a8;background:#dca03c1a;border-color:#dca03c61}.practice-score-cursor{gap:10px}.practice-score-cursor__summary{align-items:center;gap:var(--sf-space-md);cursor:pointer;list-style:none;display:flex}.practice-score-cursor__summary::-webkit-details-marker{display:none}.practice-score-cursor__summary .practice-section__title--static,.practice-score-cursor__summary .practice-section__title--editorial{margin:0}.practice-score-cursor__summary .practice-status-chip{margin-left:auto}.practice-score-cursor__summary:after{content:"▸";color:var(--sf-text-faint);font-size:var(--sf-font-caption)}.practice-score-cursor__details[open]>.practice-score-cursor__summary:after{content:"▾"}.practice-score-cursor__details>:not(summary){margin-top:10px}.practice-score-cursor__toggle{color:var(--sf-text-body);font-size:var(--sf-font-sidebar-min);align-items:center;gap:8px;line-height:1.35;display:inline-flex}.practice-score-cursor__hint{margin:0}.practice-score-cursor__target{flex-wrap:wrap;gap:6px;display:flex}.practice-score-cursor__target-option{border:1px solid var(--sf-border);border-radius:var(--sf-radius-sm);background:var(--sf-bg-panel-inset);min-height:30px;color:var(--sf-text-muted);font:inherit;font-size:var(--sf-font-sidebar-min);cursor:pointer;flex:112px;line-height:1.15}.practice-score-cursor__target-option[aria-pressed=true]{color:var(--sf-text-body);background:#76beff1f;border-color:#76beff8c}.practice-score-cursor__target-option:disabled{cursor:not-allowed;opacity:.62}.practice-control-panel .practice-section--compact{padding:var(--sf-sidebar-section-padding) 14px}.practice-control-panel .practice-section--compact .practice-section__title--static,.practice-control-panel .practice-section--compact .practice-section__title--editorial{margin-bottom:8px}.practice-section{border-radius:var(--sf-radius-lg)}.practice-section__body--flat{gap:var(--sf-section-gap)}.practice-section__toggle{min-height:42px;padding:var(--sf-space-md) var(--sf-space-lg)}.practice-section--collapsible .practice-section__title{font-size:var(--sf-font-caption)}.practice-section__summary{min-width:0;text-overflow:unset;white-space:normal;line-height:1.35;overflow:visible}.practice-section__toggle-label{align-items:baseline;gap:var(--sf-space-sm);flex-direction:row}.practice-section--collapsible-open>.practice-section__collapse>.practice-section__collapse-inner{padding:0 var(--sf-space-lg) var(--sf-space-lg);box-sizing:border-box;min-width:0;max-width:100%;overflow:hidden}.practice-transport .practice-section__title--static,.practice-transport .practice-section__title--editorial{margin-bottom:var(--sf-space-md)}.practice-playback-settings{gap:var(--sf-space-lg);flex-direction:column;display:flex}.practice-playback-settings__row{align-items:center;gap:var(--sf-space-md);grid-template-columns:minmax(92px,auto) 1fr;display:grid}.practice-playback-settings__label{gap:var(--sf-space-xs);color:var(--sf-text-secondary);font-family:var(--sf-font-mono);font-size:var(--sf-font-caption);letter-spacing:.12em;text-transform:uppercase;flex-direction:column;font-weight:500;display:flex}.practice-playback-settings__label span{color:var(--sf-text-faint);font-size:var(--sf-font-caption);letter-spacing:.04em;text-transform:none;font-weight:400}.practice-playback-settings__row input[type=range]{width:100%;min-width:0;height:20px;accent-color:var(--sf-text-primary);appearance:none;background:0 0;border:none;border-radius:0;margin:0}.practice-playback-settings__row input[type=range]::-webkit-slider-runnable-track{background:var(--sf-border);border-radius:var(--sf-radius-pill);height:4px}.practice-playback-settings__row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid var(--sf-border-strong);background:var(--sf-text-primary);opacity:1;width:14px;height:14px;transition:opacity var(--sf-duration-fast) var(--sf-ease);border-radius:50%;margin-top:-5px}.practice-playback-settings__row input[type=range]:hover::-webkit-slider-thumb{opacity:1}.practice-playback-settings__row input[type=range]:focus-visible::-webkit-slider-thumb{opacity:1}.practice-playback-settings__row input[type=range]:active::-webkit-slider-thumb{opacity:1}.practice-playback-settings__row input[type=range]::-moz-range-track{background:var(--sf-border);border-radius:var(--sf-radius-pill);border:none;height:4px}.practice-playback-settings__row input[type=range]::-moz-range-thumb{border:1px solid var(--sf-border-strong);background:var(--sf-text-primary);opacity:1;width:14px;height:14px;transition:opacity var(--sf-duration-fast) var(--sf-ease);border-radius:50%}.practice-playback-settings__row input[type=range]:hover::-moz-range-thumb{opacity:1}.practice-playback-settings__row input[type=range]:focus-visible::-moz-range-thumb{opacity:1}.practice-playback-settings__row input[type=range]:active::-moz-range-thumb{opacity:1}.practice-playback-settings__row--metronome{grid-template-columns:auto 1fr}.practice-playback-settings__check{color:var(--sf-text-muted);font-size:var(--sf-font-caption);align-items:center;gap:6px;display:inline-flex}.practice-playback-settings__row--grid{grid-template-columns:1fr 1fr;gap:10px}.practice-playback-settings__label--inline{gap:4px;display:grid}.practice-playback-settings__label select{border-radius:var(--sf-radius-sm);border:1px solid var(--sf-border);background:var(--sf-surface-2);width:100%;min-width:0;color:var(--sf-text);font-size:var(--sf-font-caption);padding:4px 8px}.metronome-beat-indicator{border-radius:var(--sf-radius-md);background:#6d4aff14;border:1px solid #6d4aff2e;align-items:center;gap:10px;padding:8px 10px;display:flex}.metronome-beat-indicator--count-in{background:#f59e0b1a;border-color:#f59e0b47}.metronome-beat-indicator__status{letter-spacing:.04em;text-transform:uppercase;color:#f59e0b;font-size:.68rem;font-weight:600}.metronome-beat-indicator__beats{flex:1;gap:6px;display:flex}.metronome-beat-indicator__beat{width:1.6rem;height:1.6rem;color:var(--sf-text-muted);transition:background var(--sf-duration-fast) var(--sf-ease-out), color var(--sf-duration-fast) var(--sf-ease-out), transform var(--sf-duration-fast) var(--sf-ease-out);background:#ffffff0a;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;font-size:.72rem;font-weight:600;display:inline-flex}.metronome-beat-indicator__beat--downbeat{border-color:#ffffff14}.metronome-beat-indicator__beat--active{color:#f4f7fc;background:#6d4aff59;transform:scale(1.04)}.metronome-beat-indicator__beat--accent.metronome-beat-indicator__beat--active{color:#fff7ed;background:#f59e0b6b}.midi-transport{gap:9px}.midi-transport__buttons{gap:6px}.midi-transport__btn{border-radius:0;width:38px;height:38px}.midi-transport__btn--primary{color:#d8f5e4;background:#48b4781f;border-color:#48b47873;width:auto;min-width:112px;padding:0 14px}.midi-transport__btn--text{justify-content:center;align-items:center;gap:8px;font-weight:650;display:inline-flex}.midi-transport__btn-icon{font-size:.9rem;line-height:1}.midi-transport__timeline{gap:8px}.midi-transport__time{min-width:2.25rem;font-size:.72rem}.practice-mode__options{border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel-inset);grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.practice-mode__option{border-radius:var(--sf-radius-sm);min-height:34px;color:var(--sf-text-muted);font-size:var(--sf-font-sidebar-min);text-align:center;border:1px solid #0000;justify-content:center;padding:6px 8px;position:relative}.practice-mode__option--selected{background:var(--sf-bg-panel);border:1px solid var(--sf-border-strong);color:var(--sf-text-primary);font-weight:600}.practice-mode__option input{opacity:0;pointer-events:none;position:absolute}.practice-mode__option:has(input:focus-visible){outline:2px solid var(--sf-border-focus);outline-offset:1px}.practice-scope__options{border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel-inset);grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.practice-scope__option{border-radius:var(--sf-radius-sm);min-height:34px;color:var(--sf-text-muted);font-size:var(--sf-font-sidebar-min);text-align:center;background:0 0;border:1px solid #0000;justify-content:center;padding:6px 8px;position:relative}.practice-scope__option--selected{background:var(--sf-bg-panel);border-color:var(--sf-border-strong);color:var(--sf-text-primary);font-weight:600}.practice-scope__option input{opacity:0;pointer-events:none;position:absolute}.practice-scope__option:has(input:focus-visible){outline:2px solid var(--sf-border-focus);outline-offset:1px}.practice-loop-compact,.practice-loop--compact{gap:7px}.practice-loop--embedded{background:0 0;border:0;border-radius:0;padding:0}.practice-loop__options{color:var(--sf-text-faint);font-size:var(--sf-font-caption)}.practice-loop__options summary{cursor:pointer;width:fit-content}.practice-loop__options .practice-loop__snap{margin:7px 0 2px;padding-left:2px}.practice-loop--compact .practice-loop__actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.practice-loop--compact .practice-loop__btn{width:100%;min-width:0;height:32px;font-size:var(--sf-font-sidebar-min);border-color:var(--sf-border-strong);background:var(--sf-bg-panel-inset);border-radius:var(--sf-radius-sm);color:var(--sf-text-secondary);padding:0 6px}.practice-loop--compact .practice-loop__btn:hover:not(:disabled){border-color:var(--sf-text-muted);background:var(--sf-interactive-surface)}.practice-loop__range{font-size:.8rem}.practice-section--collapsible .practice-section--position-focus{background:0 0;border:0;border-radius:0;padding:0}.practice-section--position-focus .practice-position__hero-value,.practice-position--embedded.practice-position--hero .practice-position__hero-value{font-size:1.15rem}.practice-position__hero-divider{height:28px}.practice-position__progress-group{gap:5px}.practice-position__controls,.measure-nav--embedded{gap:6px}.practice-position__btn,.measure-nav__btn{height:32px;padding:0 9px;font-size:.72rem}.measure-nav--embedded{padding-top:7px}.wait-for-you{flex-direction:column;gap:8px;display:flex}.wait-for-you__header{margin-bottom:0}.wait-for-you__badge{padding:3px 8px;font-size:.6875rem}.wfy-input-source{margin:0;padding:0}.wfy-input-source__summary{width:fit-content;max-width:100%}.wfy-input-source__options{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.wfy-input-source__option{border:1px solid var(--sf-border);border-radius:var(--sf-radius-sm);background:var(--sf-bg-panel-inset);min-height:32px;font-size:var(--sf-font-sidebar-min);text-align:center;justify-content:center;align-items:center;padding:5px 6px;position:relative}.wfy-input-source__option--selected{border-color:var(--sf-border-strong);background:var(--sf-bg-panel);color:var(--sf-text-primary);font-weight:600}.wfy-input-source__option input{opacity:0;pointer-events:none;position:absolute}.wait-for-you__checkpoint-mode{grid-template-columns:1fr;gap:7px;margin:0;display:grid}.wait-for-you__checkpoint-mode-label{font-size:.6875rem}.wait-for-you__checkpoint-mode-option{align-items:center;gap:6px;font-size:.75rem;display:flex}.wait-for-you__status,.wait-for-you__listening,.wait-for-you__note-target-status{border:1px solid var(--sf-border);border-radius:var(--sf-radius-pill);background:var(--sf-bg-panel-inset);width:fit-content;color:var(--sf-text-muted);margin:0;padding:4px 9px;font-size:.6875rem;line-height:1.3}.wait-for-you__note-target-chip{border-radius:var(--sf-radius-pill);color:#c98a2e;letter-spacing:.02em;text-transform:uppercase;background:#ffb4502e;margin-right:4px;padding:1px 6px;font-size:.625rem;font-weight:600;display:inline-block}.wait-for-you__progress-block{gap:4px;margin:0}.wait-for-you__now-playing{border-radius:var(--sf-radius-md);margin:0;padding:9px 10px}.wait-for-you__now-place{margin-bottom:6px;font-size:.85rem}.wait-for-you__note-chip{padding:4px 9px;font-size:.95rem}.wait-for-you__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.wait-for-you__actions--compact{grid-template-columns:1fr auto;align-items:stretch}.wait-for-you__actions--compact .wait-for-you__btn--primary{grid-column:auto;min-width:0}.wait-for-you__more{min-width:0}.wait-for-you__more-summary{border:1px solid var(--sf-border);background:var(--sf-bg-panel-inset);min-width:4.5rem;min-height:34px;color:var(--sf-text-muted);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;justify-content:center;align-items:center;padding:0 10px;font-family:Inter,system-ui,sans-serif;font-size:.72rem;font-weight:600;list-style:none;display:inline-flex}.wait-for-you__more-summary::-webkit-details-marker{display:none}.wait-for-you__more[open]{grid-column:1/-1}.wait-for-you__more[open] .wait-for-you__more-summary{width:100%;margin-bottom:6px}.wait-for-you__more-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.wait-for-you__header--compact{justify-content:flex-start;margin:0}.wait-for-you__btn{overflow-wrap:anywhere;width:100%;min-height:34px;padding:0 8px;font-size:.72rem}.wfy-input-source--compact .wfy-input-source__option-hint{display:none}.practice-input-status__header{justify-content:space-between;align-items:center;gap:8px;display:flex}.practice-input-status__header .practice-section__title--static{margin:0}.mic-input-status__heard{margin:0;padding:6px 8px;font-size:.75rem}.mic-input-status__actions,.midi-input-status__actions{margin-top:7px}.practice-input-details{color:var(--sf-text-faint);font-size:var(--sf-font-caption);margin-top:7px}.practice-input-details summary{cursor:pointer}.practice-input-details[open]{border-top:1px solid var(--sf-border-muted);padding-top:6px}.practice-input-details>:not(summary){margin-top:8px}.practice-more .practice-files,.practice-more .practice-import-notices,.practice-more .practice-section{border-radius:var(--sf-radius-md);min-width:0;max-width:100%}.practice-shortcuts-hint{border:1px solid var(--sf-border-muted);background:0 0;margin:0;padding:8px}.score-follow-setup-status{max-width:min(86%,280px);min-height:24px;font-size:var(--sf-font-sidebar-min);padding:4px 10px}.practice-workspace__score>.score-follow-setup-status{max-width:min(45%,18rem)}@media (width<=1100px) and (orientation:portrait),(width<=900px){.practice-workspace__layout{flex-direction:column;min-height:0;overflow-y:auto}.practice-workspace__score{flex:auto;min-height:56vh;overflow-y:auto}.practice-control-panel{-webkit-overflow-scrolling:touch;width:100%;max-width:none;min-height:0;max-height:min(62vh,640px);padding-bottom:max(12px, env(safe-area-inset-bottom,0px));border-top:1px solid var(--sf-border);border-left:0;flex:none;align-self:stretch;position:relative;top:auto;overflow-y:auto}.practice-control-panel__primary{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.practice-piece-header,.practice-transport,.practice-control-panel__primary>.practice-scope,.practice-control-panel__primary>.wait-for-you,.practice-control-panel__primary>.midi-input-status,.practice-control-panel__primary>.mic-input-status,.practice-control-panel__primary>.practice-section--collapsible{grid-column:1/-1}.practice-control-panel__footer{z-index:2;background:var(--sf-bg-app);margin-top:auto;padding-top:8px;position:sticky;bottom:0}.practice-control-panel__footer .practice-section__toggle{z-index:1;position:relative}.practice-loop__actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.practice-loop__btn{width:100%;min-width:0;padding:0 8px}}@media (width<=1100px){.practice-shortcuts-hint__keys{display:none}.practice-shortcuts-hint__touch{display:block}.practice-fullscreen-hud{bottom:max(48px, env(safe-area-inset-bottom,0px) + 40px);padding:var(--sf-space-md) var(--sf-space-lg);padding-left:max(var(--sf-space-lg), env(safe-area-inset-left,0px));padding-right:max(var(--sf-space-lg), env(safe-area-inset-right,0px));gap:var(--sf-space-md)}.practice-fullscreen-hud__hint{font-size:.6875rem}.practice-section__toggle{min-height:48px}.practice-mode__option,.practice-scope__option{min-height:44px;padding:8px 0}.score-follow-controls__row input[type=checkbox]{width:18px;height:18px}.score-follow-controls__delete{width:36px;height:36px}}@media (width<=1100px) and (orientation:landscape) and (width>=901px){.practice-control-panel{flex:0 0 min(var(--sf-sidebar-width), 34vw);width:min(var(--sf-sidebar-width), 34vw);max-width:34vw}}@media (width<=1100px) and (height<=500px) and (orientation:landscape){.practice-workspace__score{min-height:34vh}.practice-control-panel{max-height:64vh}}@media (width<=900px) and (orientation:landscape) and (height>=501px) and (height<=900px){.practice-workspace__score{min-height:42vh}.practice-control-panel{max-height:58vh}}@media (width<=700px){.practice-workspace__score{min-height:50vh}.practice-control-panel{max-height:58vh;padding:10px}.practice-control-panel__primary{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-piece-header,.practice-transport,.practice-control-panel__primary>.practice-scope,.practice-control-panel__primary>.wait-for-you,.practice-control-panel__primary>.midi-input-status,.practice-control-panel__primary>.mic-input-status,.practice-control-panel__primary>.practice-section--collapsible{grid-column:1/-1}.practice-mode__option,.practice-scope__option{min-height:44px;padding:8px 5px}.wfy-input-source__options{grid-template-columns:1fr}.wait-for-you__actions{grid-template-columns:1fr auto}.wait-for-you__actions:not(.wait-for-you__actions--compact){grid-template-columns:1fr 1fr}.wait-for-you__btn--primary{grid-area:1/1/auto/-1}.wait-for-you__actions--compact .wait-for-you__btn--primary{grid-area:auto}}@media (width<=360px){.practice-control-panel__primary{grid-template-columns:1fr}.practice-piece-header,.practice-transport,.practice-control-panel__primary>.practice-scope,.practice-control-panel__primary>.wait-for-you,.practice-control-panel__primary>.midi-input-status,.practice-control-panel__primary>.mic-input-status,.practice-control-panel__primary>.practice-section--collapsible{grid-column:auto}.wait-for-you__actions--compact{grid-template-columns:1fr}.wait-for-you__more-summary{width:100%}}.calibration-debug-panel__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;margin:0 0 .75rem;display:grid}.calibration-debug-panel__metric dt{color:var(--practice-muted,#8a96a8);margin:0;font-size:.72rem}.calibration-debug-panel__metric dd{margin:.15rem 0 0;font-size:.82rem;font-weight:600}.calibration-debug-panel__section{margin-bottom:.75rem}.calibration-debug-panel__subtitle{color:var(--practice-muted,#8a96a8);margin:0 0 .35rem;font-size:.75rem;font-weight:600}.calibration-debug-panel__list,.calibration-debug-panel__warnings{margin:0;padding-left:1.1rem;font-size:.78rem;line-height:1.45}.calibration-debug-panel__warnings{color:#c97a2e}.calibration-debug-panel__list-item--weak{color:#b45309}.calibration-debug-panel__list-item--low{color:#c2410c;font-weight:600}.calibration-debug-panel__actions{flex-direction:column;gap:.65rem;margin-top:.5rem;display:flex}.pdf-page-frame--rot-90,.pdf-page-frame--rot-270{justify-content:center;align-items:center;display:flex}.pdf-page-rotator__inner{transform-origin:50%;position:relative}.calibration-debug-panel__status{font-size:var(--sf-font-micro);font-family:var(--sf-font-mono);opacity:var(--sf-text-micro-opacity);color:var(--sf-text-muted);margin:0 0 .65rem}.midi-transport__time,.practice-progress__header,.practice-progress__label,.practice-progress__percent,.practice-files__label,.practice-files__value,.wait-for-you__progress-header,.metronome-beat-indicator__label,.metronome-beat-indicator__count,.practice-shortcuts-hint{font-family:var(--sf-font-mono);font-size:var(--sf-font-micro);opacity:var(--sf-text-micro-opacity)}.practice-control-panel .practice-section{padding:var(--sf-sidebar-section-padding) 14px}.practice-control-panel .practice-section--collapsible{padding:0}.practice-control-panel .practice-section__title--static,.practice-control-panel .practice-section__title--editorial{font-size:var(--sf-font-caption);letter-spacing:.12em;color:var(--sf-text-secondary);opacity:1;margin-bottom:8px;font-weight:600}.practice-control-panel .practice-section__hint,.practice-control-panel .practice-section__hint--inline,.practice-control-panel .practice-loop-compact__hint,.practice-control-panel .practice-loop__hint,.practice-control-panel .wfy-input-source__accuracy-note{max-width:100%;font-size:var(--sf-font-sidebar-min);color:var(--sf-text-muted);opacity:1;overflow-wrap:anywhere;line-height:1.45}.practice-control-panel .practice-section__hint--inline{margin-bottom:8px}.practice-control-panel .practice-section__summary{font-size:var(--sf-font-sidebar-min);color:var(--sf-text-muted);opacity:1}.practice-control-panel .practice-section__status,.practice-control-panel .practice-section__error{font-size:var(--sf-font-small);overflow-wrap:anywhere;opacity:1;line-height:1.45}.practice-control-panel .practice-section__error{color:#f0a0a8}.practice-control-panel .practice-section__toggle{min-height:40px;padding:10px 14px}.practice-control-panel .practice-section__toggle:hover{background:var(--sf-interactive-surface)}.practice-control-panel .practice-section--collapsible-open>.practice-section__toggle{background:var(--sf-interactive-surface-active);border-bottom:1px solid var(--sf-border)}.practice-control-panel .practice-section--collapsible .practice-section__title{font-family:var(--sf-font-mono);color:var(--sf-text-muted);text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;font-weight:500}.practice-control-panel .practice-section--collapsible .practice-section__summary{font-family:var(--sf-font-mono);font-size:var(--sf-font-micro);color:var(--sf-text-muted);letter-spacing:.06em;opacity:var(--sf-text-micro-opacity);font-weight:400}.practice-control-panel .practice-playback-settings__label{font-size:var(--sf-font-sidebar-min);color:var(--sf-text-secondary);opacity:1}.practice-control-panel .practice-playback-settings__label span{font-size:var(--sf-font-sidebar-min);color:var(--sf-text-muted);opacity:1;letter-spacing:normal}.practice-control-panel .practice-playback-settings__check{font-size:var(--sf-font-sidebar-min);color:var(--sf-text-body)}.practice-control-panel .practice-files__hint,.practice-control-panel .practice-status__hint,.practice-control-panel .practice-status__label{font-size:var(--sf-font-sidebar-min);color:var(--sf-text-muted);opacity:1;overflow-wrap:anywhere;line-height:1.45}.practice-control-panel .practice-import-notices__warning,.practice-control-panel .practice-import-notices__guidance-item,.practice-control-panel .practice-env-notices__item{font-size:var(--sf-font-small);overflow-wrap:anywhere;line-height:1.45}.practice-tracks-compact .practice-section__hint--inline{margin-bottom:8px}.practice-tracks-compact .midi-tracks{margin-top:2px}.practice-workspace__main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.practice-view-switchbar{justify-content:flex-end;align-items:center;gap:var(--sf-space-sm);padding:6px var(--sf-space-md);border-bottom:1px solid var(--sf-border);background:var(--sf-bg-panel);flex:none;display:flex}.practice-view-switchbar__label{font-size:var(--sf-font-caption);color:var(--sf-text-muted);letter-spacing:.04em;text-transform:uppercase}.practice-view-switch{border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);display:inline-flex;overflow:hidden}.practice-view-switch__option{appearance:none;color:var(--sf-text-muted);font:inherit;font-size:var(--sf-font-small);cursor:pointer;background:0 0;border:none;padding:5px 14px}.practice-view-switch__option+.practice-view-switch__option{border-left:1px solid var(--sf-border-strong)}.practice-view-switch__option:hover{color:var(--sf-text-primary)}.practice-view-switch__option[aria-pressed=true]{background:var(--sf-accent);color:#000;cursor:default}.visual-practice{--vp-accent:#6ee7b7;--vp-accent-glow:#6ee7b78c;--vp-played:#57b48a;--vp-upcoming:#b4b4bb;gap:var(--sf-space-md);min-width:0;min-height:0;padding:var(--sf-space-md);background:var(--sf-bg-app);flex-direction:column;flex:1;display:flex;overflow:hidden}.visual-practice--empty{justify-content:center;align-items:center}.visual-practice__empty{text-align:center;border:1px solid var(--sf-border);border-radius:var(--sf-radius-lg);background:var(--sf-bg-panel);max-width:420px;padding:var(--sf-space-lg)}.visual-practice__empty h3{font-size:var(--sf-font-heading);color:var(--sf-text-primary);margin:0 0 8px}.visual-practice__empty p{font-size:var(--sf-font-body);color:var(--sf-text-muted);margin:0;line-height:1.5}.visual-practice__omr-details{font-size:var(--sf-font-caption);color:var(--sf-text-subtle);flex:none}.visual-practice__omr-details summary{cursor:pointer;-webkit-user-select:none;user-select:none;width:fit-content}.visual-practice__omr-details summary:hover{color:var(--sf-text-muted)}.visual-practice__omr-note{border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel-inset);color:var(--sf-text-muted);font-size:var(--sf-font-small);margin:6px 0 0;padding:8px 12px;line-height:1.45}.visual-practice__target{border:1px solid var(--sf-border);border-radius:var(--sf-radius-lg);background:var(--sf-bg-panel);flex-direction:column;gap:4px;min-width:0;padding:12px 16px;display:flex}.visual-practice__target--waiting{border-color:var(--sf-border-focus)}.visual-practice__target--complete{border-color:var(--sf-border-strong)}.visual-practice__target-kicker{font-size:var(--sf-font-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--sf-text-muted)}.visual-practice__target-notes{letter-spacing:.01em;color:var(--sf-text-primary);overflow-wrap:anywhere;font-size:1.35rem;font-weight:650;line-height:1.28}.visual-practice__target-meta{font-size:var(--sf-font-small);color:var(--sf-text-subtle);line-height:1.35}.staff-lane{border:1px solid var(--sf-border);border-radius:var(--sf-radius-lg);background:var(--sf-bg-panel);flex:clamp(220px,44vh,390px);min-height:190px;position:relative;overflow:hidden}.staff-lane__scroll,.tab-lane__scroll{will-change:transform}.staff-lane:after{content:"";background:linear-gradient(to right, transparent, var(--sf-bg-panel) 88%);pointer-events:none;width:16%;position:absolute;top:0;bottom:0;right:0}.staff-lane__svg{shape-rendering:geometricprecision;display:block}.staff-lane__mask{fill:var(--sf-bg-panel)}.staff-lane__line{stroke:#8b8b94;stroke-width:1.35px}.staff-lane__barline{stroke:var(--sf-border-strong);stroke-width:1px;opacity:.8}.staff-lane__timesig text{fill:var(--sf-text-muted);-webkit-user-select:none;user-select:none;font-family:Georgia,Times New Roman,serif;font-weight:700}.staff-lane__clef{fill:var(--sf-text-subtle);-webkit-user-select:none;user-select:none}.staff-lane__clef--letter{fill:var(--sf-text-muted);font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:700}.staff-lane__playhead{stroke:var(--vp-accent,#6ee7b7);stroke-width:2px;opacity:.95;filter:drop-shadow(0 0 4px var(--vp-accent-glow,#6ee7b78c))}.staff-lane__playhead-cap{fill:var(--vp-accent,#6ee7b7);filter:drop-shadow(0 0 5px var(--vp-accent-glow,#6ee7b78c))}.staff-lane__ledger{stroke:var(--sf-text-subtle);stroke-width:1px}.staff-lane__sharp,.staff-lane__accidental,.staff-lane__key-accidental{fill:currentColor;paint-order:stroke fill;stroke:var(--sf-bg-panel);stroke-width:2.4px;-webkit-user-select:none;user-select:none}.staff-lane__key-accidental{fill:var(--sf-text-muted)}.staff-lane__head{fill:currentColor}.staff-lane__stem{stroke:currentColor;stroke-width:1.6px;stroke-linecap:round}.staff-lane__beam{stroke:currentColor;stroke-width:4.8px;stroke-linecap:butt}.staff-lane__flag{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round}.staff-lane__augmentation-dot{fill:currentColor}.staff-lane__span-mark{color:var(--vp-upcoming,#b4b4bb);fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.45px;opacity:.86}.staff-lane__span-mark--slur{stroke-width:1.25px;opacity:.74}.staff-lane__articulation{color:var(--vp-upcoming,#b4b4bb);fill:currentColor;stroke:currentColor;stroke-linecap:round;stroke-width:1.55px;-webkit-user-select:none;user-select:none;font-family:Georgia,Times New Roman,serif;font-weight:700}.staff-lane__head--hollow{fill:#0000;stroke:currentColor;stroke-width:2px}.staff-lane__note--correct,.tab-lane__note--correct{color:var(--vp-played,#57b48a);opacity:1;filter:drop-shadow(0 0 5px #57b48a8c)}.staff-lane__note--wrong,.tab-lane__note--wrong{color:#e85d5d;opacity:.92;filter:drop-shadow(0 0 4px #e85d5d73)}.tab-lane__sustain{fill:currentColor;opacity:.18}.visual-practice__legend-item--correct:before{background:var(--vp-played,#57b48a)}.visual-practice__legend-item--wrong:before{background:#e85d5d}.staff-lane__note{color:var(--vp-upcoming,#b4b4bb);transition:color var(--sf-duration-press) var(--sf-ease-out), opacity var(--sf-duration-press) var(--sf-ease-out), filter var(--sf-duration-press) var(--sf-ease-out)}.staff-lane__note--current{color:#fff;filter:drop-shadow(0 0 7px var(--vp-accent-glow,#6ee7b7a6)) drop-shadow(0 0 2px #ffffffe6)}.staff-lane__note--past{color:var(--vp-played,#57b48a);opacity:.5;transition:opacity var(--sf-duration-press) var(--sf-ease-out), color var(--sf-duration-press) var(--sf-ease-out)}.tab-lane{border:1px solid var(--sf-border);border-radius:var(--sf-radius-lg);background:var(--sf-bg-panel);flex:clamp(220px,44vh,390px);min-height:190px;position:relative;overflow:hidden}.tab-lane:after{content:"";background:linear-gradient(to right, transparent, var(--sf-bg-panel) 88%);pointer-events:none;width:16%;position:absolute;top:0;bottom:0;right:0}.tab-lane__svg{shape-rendering:geometricprecision;display:block}.tab-lane__mask{fill:var(--sf-bg-panel)}.tab-lane__line{stroke:#8b8b94;stroke-width:1.35px}.tab-lane__line--inner{stroke:#52525b;stroke-width:1px}.tab-lane__barline{stroke:var(--sf-border-strong);stroke-width:1px;opacity:.8}.tab-lane__string-label{fill:var(--sf-text-subtle);-webkit-user-select:none;user-select:none;font-family:Georgia,Times New Roman,serif;font-weight:700}.tab-lane__playhead{stroke:var(--vp-accent,#6ee7b7);stroke-width:2px;opacity:.95;filter:drop-shadow(0 0 4px var(--vp-accent-glow,#6ee7b78c))}.tab-lane__playhead-cap{fill:var(--vp-accent,#6ee7b7);filter:drop-shadow(0 0 5px var(--vp-accent-glow,#6ee7b78c))}.tab-lane__note{color:var(--vp-upcoming,#b4b4bb);transition:color var(--sf-duration-press) var(--sf-ease-out), opacity var(--sf-duration-press) var(--sf-ease-out), filter var(--sf-duration-press) var(--sf-ease-out)}.tab-lane__disc{fill:var(--sf-bg-panel-inset);stroke:currentColor;stroke-width:1.6px}.tab-lane__fret{fill:currentColor;font-variant-numeric:tabular-nums;paint-order:stroke fill;stroke:var(--sf-bg-panel-inset);stroke-width:1.25px;stroke-linejoin:round;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:700}.tab-lane__technique{color:var(--vp-upcoming,#b4b4bb);-webkit-user-select:none;user-select:none;font-family:Georgia,Times New Roman,serif;font-weight:700}.tab-lane__technique-text{fill:currentColor;paint-order:stroke fill;stroke:var(--sf-bg-panel);stroke-width:2.2px;stroke-linejoin:round}.tab-lane__technique-line,.tab-lane__technique-arc{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.55px}.tab-lane__note--current{color:#fff;filter:drop-shadow(0 0 7px var(--vp-accent-glow,#6ee7b7a6)) drop-shadow(0 0 2px #ffffffe6)}.tab-lane__chord-shape{fill:currentColor;opacity:.16;stroke:currentColor;stroke-width:1px;stroke-opacity:.35}.wait-for-you__note-chip--shape{letter-spacing:.04em;text-transform:none}.tab-lane__note--past{color:var(--vp-played,#57b48a);opacity:.5;transition:opacity var(--sf-duration-press) var(--sf-ease-out), color var(--sf-duration-press) var(--sf-ease-out)}.visual-practice__fretboard-wrap{flex:none;padding-top:10px;position:relative}.visual-practice__fretboard{border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel-inset);overflow:hidden}.visual-practice__fret-string{height:20px;display:flex;position:relative}.visual-practice__fret-string:after{content:"";pointer-events:none;background:#52525b;height:1px;position:absolute;top:50%;left:0;right:0}.visual-practice__fret-cell{border-right:1px solid var(--sf-border);justify-content:center;align-items:center;display:flex;position:relative}.visual-practice__fret-dot{z-index:1;background:var(--vp-accent,#6ee7b7);color:#0f172a;text-align:center;min-width:17px;height:17px;box-shadow:0 0 6px var(--vp-accent-glow,#6ee7b7a6);border-radius:50%;font-size:11px;font-weight:700;line-height:17px;position:relative}.visual-practice__fret-numbers{padding-top:3px;display:flex}.visual-practice__fret-number{text-align:center;color:var(--sf-text-subtle);font-variant-numeric:tabular-nums;font-size:10px}.visual-practice__keyboard-wrap{flex:none;padding-top:38px;position:relative}.visual-practice__key-chips{pointer-events:none;height:38px;position:absolute;top:0;left:0;right:0}.visual-practice__key-chip{border:1.5px solid var(--vp-accent,#6ee7b7);width:28px;height:28px;color:var(--vp-accent,#6ee7b7);font-size:var(--sf-font-small);box-shadow:0 0 8px var(--vp-accent-glow,#6ee7b773);transition:left var(--sf-duration-press) var(--sf-ease-out), opacity var(--sf-duration-press) var(--sf-ease-out), transform var(--sf-duration-press) var(--sf-ease-out);will-change:left, transform;animation:visual-practice-chip-in var(--sf-duration-press) var(--sf-ease-out);background:#6ee7b729;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex;position:absolute;top:4px;transform:translate(-50%)}.visual-practice__keyboard{border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);height:120px;display:flex;position:relative;overflow:hidden}.visual-practice__key{color:#18181b;transition:transform var(--sf-duration-press) var(--sf-ease-out), box-shadow var(--sf-duration-press) var(--sf-ease-out);will-change:transform;background:#d4d4d8;border-right:1px solid #52525b;flex:1;justify-content:center;align-items:flex-end;padding-bottom:6px;display:flex;position:relative}.visual-practice__key:after{content:"";background:linear-gradient(to bottom, #d3f7e7, var(--vp-accent,#6ee7b7));opacity:0;transition:opacity var(--sf-duration-press) var(--sf-ease-out);pointer-events:none;position:absolute;inset:0}.visual-practice__key:last-child{border-right:none}.visual-practice__key--black{height:60%;color:var(--sf-text-primary);z-index:1;transition:transform var(--sf-duration-press) var(--sf-ease-out), box-shadow var(--sf-duration-press) var(--sf-ease-out);background:#09090b;border:1px solid #3f3f46;border-top:none;border-radius:0 0 3px 3px;position:absolute;top:0}.visual-practice__key--target{box-shadow:inset 0 0 0 1px #00000059, 0 0 14px var(--vp-accent-glow,#6ee7b78c);transform:translateY(2px)}.visual-practice__key--target:after{opacity:1}.visual-practice__key--black:after{background:linear-gradient(#79dcb2,#3ea67c);border-radius:0 0 3px 3px}.visual-practice__key--black.visual-practice__key--target{box-shadow:inset 0 0 0 1px #00000080, 0 0 12px var(--vp-accent-glow,#6ee7b78c);transform:translateY(2px)}.visual-practice__key-label{z-index:1;font-size:var(--sf-font-micro);letter-spacing:.02em;opacity:.75;font-weight:600;position:relative}@keyframes visual-practice-chip-in{0%{opacity:0;transform:translate(-50%)translateY(-4px)scale(.82)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.visual-practice__legend{justify-content:center;gap:var(--sf-space-md);flex:none;padding:2px 0;display:flex}.visual-practice__legend-item{font-size:var(--sf-font-caption);color:var(--sf-text-muted);align-items:center;gap:7px;display:inline-flex}.visual-practice__legend-item:before{content:"";border-radius:50%;width:9px;height:9px}.visual-practice__legend-item--played:before{background:var(--vp-played,#57b48a)}.visual-practice__legend-item--now:before{box-shadow:0 0 5px var(--vp-accent-glow,#6ee7b799);background:#fff}.visual-practice__legend-item--upcoming:before{background:var(--vp-upcoming,#b4b4bb)}@media (prefers-reduced-motion:reduce){.staff-lane__note,.tab-lane__note,.visual-practice__key,.visual-practice__key--black,.visual-practice__key-chip{transition:none;animation:none}.staff-lane__scroll,.tab-lane__scroll{will-change:auto}}@media (width<=900px){.visual-practice{padding:var(--sf-space-sm) var(--sf-space-sm);gap:10px}.staff-lane,.tab-lane{flex-basis:180px;min-height:148px}.visual-practice__legend{flex-wrap:wrap}.visual-practice__keyboard-wrap{padding-top:30px}.visual-practice__key-chips{height:30px}.visual-practice__key-chip{width:22px;height:22px;font-size:var(--sf-font-micro);top:3px}.visual-practice__keyboard{height:72px}.visual-practice__target{padding:10px 12px}.visual-practice__target-notes{font-size:1.15rem}.visual-practice__legend-item{font-size:var(--sf-font-micro)}}@media (width>=901px) and (width<=1180px){.staff-lane,.tab-lane{min-height:220px}.visual-practice__keyboard{height:104px}}@media (width<=600px){.visual-practice__key:not(.visual-practice__key--target) .visual-practice__key-label{display:none}}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:2700;height:var(--sf-topbar-height);padding:env(safe-area-inset-top,0px) max(var(--sf-space-3xl), env(safe-area-inset-right,0px)) 0 max(var(--sf-space-3xl), env(safe-area-inset-left,0px));background:var(--sf-bg-topbar);border-bottom:1px solid var(--sf-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}.topbar__logo{object-fit:contain;flex-shrink:0;width:auto;max-width:min(148px,42vw);height:40px;display:block}.topbar__brand,.topbar__actions{align-items:center;display:flex}.topbar__brand{gap:var(--sf-space-md)}.topbar__brand-btn{cursor:pointer;text-align:left;font:inherit;color:inherit;align-items:center;gap:var(--sf-space-md);background:0 0;border:none;margin:0;padding:0;text-decoration:none;display:inline-flex}.topbar__brand-btn:hover .topbar__logo{opacity:.9}.topbar__brand-btn:focus-visible{outline:2px solid var(--sf-accent);outline-offset:3px;border-radius:var(--sf-radius-sm)}.topbar__beta{border-radius:var(--sf-radius-pill);color:#8fa3c7;letter-spacing:0;white-space:nowrap;background:#8fa3c70f;border:1px solid #8fa3c72e;padding:3px 7px;font-size:.64rem;font-weight:600}.topbar__actions{gap:var(--sf-space-lg)}.topbar__nav{gap:var(--sf-space-md);display:flex}.topbar__nav-btn{color:var(--sf-text-muted);padding:10px var(--sf-space-xl);border-radius:var(--sf-radius-md);cursor:pointer;background:0 0;border:1px solid #0000;min-height:38px}.topbar__nav-btn:hover{color:var(--sf-text-secondary);background:var(--sf-bg-panel);border-color:var(--sf-border-strong)}.topbar__nav-btn--active{color:var(--sf-text-primary);background:var(--sf-bg-panel-inset);border-color:var(--sf-border-strong)}.instrument-selector{background:var(--sf-bg-panel-inset);border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);gap:2px;padding:3px;display:inline-flex}.instrument-selector__option{color:var(--sf-text-muted);border-radius:calc(var(--sf-radius-md) - 3px);cursor:pointer;background:0 0;border:1px solid #0000;min-height:30px;padding:5px 14px;font-size:.88rem}.instrument-selector__option:hover{color:var(--sf-text-secondary);background:var(--sf-bg-panel)}.instrument-selector__option--active{color:var(--sf-text-primary);background:var(--sf-bg-panel);border-color:var(--sf-border-strong)}.topbar__help-menu{position:relative}.topbar__help{min-height:36px;color:var(--sf-text-muted);font:inherit;font-size:var(--sf-font-small);cursor:pointer;background:0 0;border:none;padding:7px 0;list-style:none}.topbar__help::-webkit-details-marker{display:none}.topbar__help::marker{content:""}.topbar__help:hover,.topbar__help:focus-visible{color:var(--sf-text-primary)}.topbar__help-panel{z-index:250;border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);gap:2px;width:190px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 40px #00000057}.topbar__help-menu:not([open]) .topbar__help-panel{display:none}.topbar__help-item{border-radius:var(--sf-radius-sm);width:100%;min-height:34px;color:var(--sf-text-secondary);font:inherit;font-size:var(--sf-font-small);text-align:left;cursor:pointer;background:0 0;border:0;padding:8px 10px;line-height:1.2;text-decoration:none}.topbar__help-item:hover,.topbar__help-item:focus-visible{background:var(--sf-bg-panel-inset);color:var(--sf-text-primary);outline:none}.guided-tour{z-index:1000;pointer-events:auto;position:fixed;inset:0}.guided-tour--choice{pointer-events:none}.guided-tour__backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#030812ad;position:absolute;inset:0}.guided-tour__backdrop--piece{inset:auto}.guided-tour__highlight{z-index:1001;pointer-events:none;transition:opacity var(--sf-duration-fast) var(--sf-ease-out);border:2px solid #f4f7fc;border-radius:10px;position:fixed;box-shadow:0 0 0 4px #48b47857,0 12px 40px #00000059}.guided-tour__card{z-index:1002;border:1px solid var(--sf-border-strong);background:var(--sf-bg-panel);max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);color:var(--sf-text-primary);border-radius:10px;flex-direction:column;gap:10px;padding:16px;display:flex;position:fixed;box-shadow:0 18px 56px #00000073}.guided-tour--choice .guided-tour__card{pointer-events:auto}.guided-tour__card--choice{left:auto;right:24px;top:calc(var(--sf-topbar-height) + 16px);background:#121d30f5;border-color:#74c8a047;width:min(380px,100vw - 32px);transform:none}.guided-tour__card--center{width:min(360px,100vw - 32px);top:50%;left:50%;transform:translate(-50%,-50%)}.guided-tour__step{color:var(--sf-text-muted);font-family:var(--sf-font-mono);font-size:var(--sf-font-micro);letter-spacing:.08em;text-transform:uppercase;margin:0}.guided-tour__title{margin:0;font-size:1.05rem;line-height:1.2}.guided-tour__body{color:var(--sf-text-secondary);font-size:var(--sf-font-small);margin:0;line-height:1.45}.guided-tour__demo{background:#48b47814;border:1px solid #48b4783d;border-radius:8px;gap:8px;padding:10px;display:grid}.guided-tour__demo-copy{color:var(--sf-text-secondary);font-size:var(--sf-font-small);margin:0;line-height:1.4}.guided-tour__choice-actions{grid-template-columns:1fr;gap:8px;display:grid}.guided-tour__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:4px;display:flex}.guided-tour__btn{border:1px solid var(--sf-border-strong);background:var(--sf-bg-panel-inset);min-height:34px;color:var(--sf-text-primary);font:inherit;font-size:var(--sf-font-small);cursor:pointer;border-radius:8px;padding:7px 12px}.guided-tour__btn:hover:not(:disabled),.guided-tour__btn:focus-visible{border-color:#74c8a080}.guided-tour__btn:disabled{opacity:.45;cursor:not-allowed}.guided-tour__btn--ghost{color:var(--sf-text-muted);background:0 0}.guided-tour__btn--primary{color:#d8f5e4;background:#48b47824;border-color:#48b47873}.guided-tour__btn--secondary{background:var(--sf-bg-panel-inset)}.guided-tour__btn--choice{justify-content:center;min-height:42px;font-weight:700}.guided-tour__btn--demo{justify-self:start;min-height:40px;padding-inline:14px}.app--guided-choice .main-layout--empty-score{scroll-margin-top:0}.main-layout{--sf-library-preview-height:clamp(420px, calc(var(--sf-viewport-height) - var(--sf-topbar-height) - 16px), calc(var(--sf-viewport-height) - var(--sf-topbar-height) - 16px));height:var(--sf-library-preview-height);max-height:var(--sf-library-preview-height);flex:1;align-items:stretch;gap:0;min-width:0;min-height:0;display:flex;overflow:hidden}.library-welcome-wrap+.main-layout{--sf-library-preview-height:clamp(360px, calc(var(--sf-viewport-height) - var(--sf-topbar-height) - 300px), min(640px, calc(var(--sf-viewport-height) - var(--sf-topbar-height) - 300px)))}.library-welcome-wrap+.app-footer{margin-top:auto}.main-layout__score{-webkit-overflow-scrolling:touch;background:var(--sf-bg-app);flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.main-layout--sidebar-hidden .library-panel{opacity:0;pointer-events:none;border:none;width:0;padding:0;overflow:hidden}.main-layout--sidebar-hidden .main-layout__score{justify-content:center}.main-layout--empty-score .main-layout__score{opacity:.88}.library-main{min-height:calc(var(--sf-viewport-height) - var(--sf-topbar-height));padding:var(--sf-space-xl) var(--sf-space-3xl);background:var(--sf-bg-app);flex:auto;overflow:hidden auto}.library-panel{width:var(--sf-sidebar-width);gap:var(--sf-library-rail-gap);padding:var(--sf-panel-padding-y) var(--sf-space-lg) var(--sf-space-4xl);border-right:1px solid var(--sf-border);background:var(--sf-bg-raised);transition:opacity var(--sf-duration) var(--sf-ease-out);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden auto}.library-panel>*{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.library-panel__hero{border-bottom:1px solid var(--sf-border-muted);margin-bottom:18px;padding-bottom:14px}.library-panel__tagline{font-family:var(--sf-font-display);color:#f4f7fc;letter-spacing:-.01em;margin:0 0 6px;font-size:1.08rem;font-weight:600;line-height:1.35}.library-panel__hero-hint{color:#8fa3c7;margin:0;font-size:.78rem;line-height:1.45}.library-panel__browser-hint{color:#7a92b8;margin:8px 0 0;font-size:.74rem;line-height:1.45}.library-panel__tabs{gap:var(--sf-space-xs);border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);grid-template-columns:repeat(2,minmax(0,1fr));padding:3px;display:grid}.library-panel__tab{border-radius:var(--sf-radius-sm);min-width:0;min-height:38px;color:var(--sf-text-muted);font-size:var(--sf-font-caption);cursor:pointer;background:0 0;border:1px solid #0000;padding:8px 10px;font-weight:600}.library-panel__tab:hover,.library-panel__tab:focus-visible{color:var(--sf-text-primary);border-color:var(--sf-border)}.library-panel__tab--active{background:var(--sf-bg-panel-inset);border-color:var(--sf-border-strong);color:var(--sf-text-primary)}.library-main .library-panel{background:0 0;border-right:0;width:min(100%,1040px);margin:0 auto;padding:0;overflow:visible}.library-panel--practice-library .library-panel__hero{max-width:680px}.practice-library,.library-panel__uploads{gap:var(--sf-space-lg);display:grid}.practice-library__header{align-items:end;gap:var(--sf-space-lg);grid-template-columns:minmax(0,1fr) auto;display:grid}.practice-library__eyebrow{margin:0 0 var(--sf-space-xs);color:var(--sf-text-muted);font-family:var(--sf-font-mono);font-size:var(--sf-font-caption);letter-spacing:.12em;text-transform:uppercase;font-weight:500}.practice-library__title{color:var(--sf-text-primary);font-family:var(--sf-font-display);font-size:var(--sf-font-heading);margin:0;font-weight:600;line-height:1.25}.practice-library__filters{justify-content:flex-end;gap:var(--sf-space-xs);flex-wrap:wrap;display:flex}.practice-library__tools{justify-items:end;gap:var(--sf-space-sm);display:grid}.library-search{gap:var(--sf-space-xs);width:min(100%,280px);display:grid}.library-search__label{color:var(--sf-text-muted);font-family:var(--sf-font-mono);font-size:var(--sf-font-micro);letter-spacing:.1em;text-transform:uppercase;font-weight:600}.library-search__input{border:1px solid var(--sf-border);border-radius:var(--sf-radius-sm);background:var(--sf-bg-panel);width:100%;min-height:38px;color:var(--sf-text-primary);font:inherit;font-size:var(--sf-font-small);padding:8px 10px}.library-search__input:focus{outline:none}.library-search__input:focus-visible{box-shadow:var(--sf-focus-ring);border-color:var(--sf-border-strong)}.practice-library__filter{border:1px solid var(--sf-border);border-radius:var(--sf-radius-sm);background:var(--sf-bg-panel);min-height:34px;color:var(--sf-text-muted);font-size:var(--sf-font-caption);cursor:pointer;padding:7px 10px;font-weight:600}.practice-library__filter:hover,.practice-library__filter:focus-visible,.practice-library__filter--active{border-color:var(--sf-border-strong);background:var(--sf-bg-panel-inset);color:var(--sf-text-primary)}.practice-library__groups{gap:var(--sf-space-lg);display:grid}.practice-library__group{gap:var(--sf-space-md);display:grid}.practice-library__group-title{color:var(--sf-text-muted);font-family:var(--sf-font-mono);font-size:var(--sf-font-caption);letter-spacing:.12em;text-transform:uppercase;margin:0;font-weight:600}.practice-library__grid{gap:var(--sf-space-md);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));align-items:stretch;display:grid}.library-panel__uploads-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}.practice-piece-card{gap:var(--sf-space-md);min-width:0;padding:var(--sf-space-lg);border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);grid-template-columns:minmax(0,1fr) minmax(132px,148px);align-items:center;display:grid;overflow:hidden}.practice-piece-card__main{min-width:0;overflow:hidden}.practice-piece-card__meta,.practice-piece-card__subtitle,.practice-piece-card__teaches,.practice-piece-card__credit,.practice-library__empty{color:var(--sf-text-muted);font-size:var(--sf-font-caption);margin:0;line-height:1.45}.practice-piece-card__title{min-width:0;margin:var(--sf-space-xs) 0;color:var(--sf-text-primary);font-family:var(--sf-font-display);font-size:var(--sf-font-section);overflow-wrap:break-word;word-break:normal;font-weight:600;line-height:1.25}.practice-piece-card__teaches{margin-top:var(--sf-space-sm);color:var(--sf-text-body);overflow-wrap:break-word}.practice-piece-card__action{gap:var(--sf-space-sm);text-align:right;justify-self:end;min-width:132px;max-width:148px;display:grid}.practice-piece-card--uploaded .practice-piece-card__meta,.practice-piece-card--uploaded .practice-piece-card__subtitle,.practice-piece-card--uploaded .practice-piece-card__credit,.practice-piece-card__credit{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.practice-piece-card--add-files{grid-template-columns:1fr;align-items:stretch}.practice-piece-card--add-files .practice-piece-card__main{max-width:520px}.practice-piece-card__button{border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);background:var(--sf-text-primary);color:#000;width:100%;min-height:40px;font-size:var(--sf-font-small);white-space:nowrap;cursor:pointer;padding:9px 12px;font-weight:700}.practice-piece-card__button:hover:not(:disabled),.practice-piece-card__button:focus-visible{background:var(--sf-accent-hover)}.practice-piece-card__button:disabled{opacity:.65;cursor:wait}.practice-piece-card__remove{border:1px solid var(--sf-border);border-radius:var(--sf-radius-sm);width:100%;min-height:34px;color:var(--sf-text-secondary);font-size:var(--sf-font-caption);cursor:pointer;background:0 0;font-weight:600}.practice-piece-card__remove:hover:not(:disabled),.practice-piece-card__remove:focus-visible{color:#ffd6d6;border-color:#a85555}.practice-piece-card__remove:disabled{opacity:.55;cursor:not-allowed}.practice-piece-card__error-block{gap:var(--sf-space-sm);grid-column:1/-1;display:grid}.practice-piece-card__error{color:#f0a0a8;font-size:var(--sf-font-caption);margin:0}.practice-piece-card__retry{border-radius:var(--sf-radius-sm);color:#f0c8cc;min-height:32px;font-size:var(--sf-font-caption);cursor:pointer;background:0 0;border:1px solid #f0a0a873;justify-self:start;padding:6px 10px;font-weight:600}.library-panel__uploads-header{gap:var(--sf-space-xs);display:grid}.demo-piece{gap:var(--sf-space-md) var(--sf-space-xl);padding:var(--sf-space-lg);border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;position:relative}.demo-piece__copy{min-width:0}.demo-piece:hover{border-color:var(--sf-border-strong)}.demo-piece--compact{padding:var(--sf-space-md) var(--sf-space-lg);border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);grid-template-columns:minmax(0,1fr);margin:0;display:grid}.demo-piece__badge{margin:0 0 var(--sf-space-xs);border:1px solid var(--sf-border);background:var(--sf-bg-panel-inset);color:var(--sf-text-muted);letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;font-size:.65rem;font-weight:700;display:inline-block}.demo-piece__title{font-family:var(--sf-font-display);color:var(--sf-text-primary);font-size:var(--sf-font-section);letter-spacing:-.01em;overflow-wrap:break-word;margin:0;font-weight:600;line-height:1.25}.demo-piece__intro{margin:var(--sf-space-sm) 0 0;color:var(--sf-text-body);font-size:var(--sf-font-small);line-height:1.45}.demo-piece__subtitle,.demo-piece__credit{margin:var(--sf-space-xs) 0 0;color:var(--sf-text-muted);font-size:var(--sf-font-caption);line-height:1.4}.demo-piece__action{text-align:right;min-width:136px}.demo-piece__button{width:100%;padding:10px var(--sf-space-lg);border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel-inset);color:var(--sf-text-primary);font-size:var(--sf-font-small);cursor:pointer;font-weight:600}.demo-piece__button:hover:not(:disabled){background:var(--sf-bg-panel);border-color:var(--sf-text-muted)}.demo-piece__button:disabled{opacity:.65;cursor:wait}.demo-piece__error{color:#f0a0a8;font-size:var(--sf-font-caption);grid-column:1/-1;margin:0}.demo-piece__error-block{flex-direction:column;grid-column:1/-1;align-items:flex-start;gap:8px;display:flex}.demo-piece__retry{border-radius:var(--sf-radius-pill);color:#f0c8cc;font-size:var(--sf-font-caption);cursor:pointer;background:#f0a0a814;border:1px solid #f0a0a873;padding:6px 12px;font-weight:600}.demo-piece__retry:hover:not(:disabled){background:#f0a0a829}.demo-piece__retry:disabled{opacity:.6;cursor:wait}.demo-piece--compact .demo-piece__action{min-width:0;margin-top:var(--sf-space-md);text-align:left;width:100%}.demo-piece--compact .demo-piece__button{border-radius:var(--sf-radius-md);width:100%}.demo-piece--compact .demo-piece__credit{margin-top:var(--sf-space-sm)}.library-panel .panel{padding:var(--sf-space-lg);border-radius:var(--sf-radius-md);margin:0}.library-panel__upload-card:last-of-type{margin-bottom:0}.panel__step-badge{color:#d4c8ff;vertical-align:middle;background:#6d4aff40;border-radius:6px;justify-content:center;align-items:center;min-width:1.35rem;height:1.35rem;margin-right:6px;font-size:.75rem;font-weight:700;display:inline-flex}.panel__optional{color:#8fa3c7;font-size:.8rem;font-weight:500}.panel--sample,.library-sample{margin-bottom:var(--sf-space-lg);background:var(--sf-bg-panel);border-color:#488c7859}.library-sample__badge{letter-spacing:.04em;text-transform:uppercase;color:#b8f0d0;background:#488c6433;border-radius:6px;margin:0 0 6px;padding:2px 8px;font-size:.68rem;font-weight:700;display:inline-block}.library-sample__features{color:#9fb3d9;margin:0 0 12px;padding-left:18px;font-size:.78rem;line-height:1.5}.library-sample__credit{color:#6b82a8;margin:10px 0 0;font-size:.68rem;line-height:1.4}.upload-btn--sample{border:1px solid var(--sf-border-strong);background:var(--sf-bg-panel);width:100%;color:var(--sf-text-primary);border-radius:0;font-size:.95rem}.upload-btn--sample:hover:not(:disabled){background:var(--sf-bg-panel-inset);border-color:var(--sf-text-muted)}.library-panel__step-num{color:#c8b8ff;vertical-align:middle;background:#6d4aff33;border-radius:50%;justify-content:center;align-items:center;min-width:1.25rem;height:1.25rem;margin-right:8px;font-size:.7rem;font-weight:700;display:inline-flex}.library-panel--hidden{opacity:0}.panel{background:var(--sf-bg-panel);border:1px solid var(--sf-border);border-radius:var(--sf-radius-xl);padding:var(--sf-panel-padding-y) var(--sf-space-2xl)}.panel__title{margin:0 0 var(--sf-space-sm);font-size:var(--sf-font-heading);color:var(--sf-text-primary);font-weight:600}.panel__hint{margin:0 0 var(--sf-space-2xl);max-width:var(--sf-copy-max);font-size:var(--sf-font-body);color:var(--sf-text-subtle);line-height:1.65}.upload-btn{box-sizing:border-box;width:100%;padding:var(--sf-space-md) var(--sf-space-lg);border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);color:var(--sf-text-primary);text-align:center;cursor:pointer;font-weight:600;display:block}.upload-btn:hover:not(:disabled){background:var(--sf-bg-panel-inset);border-color:var(--sf-text-muted)}.upload-btn--midi{background:var(--sf-bg-panel);color:var(--sf-text-primary)}.multi-upload{gap:var(--sf-library-rail-gap);flex-direction:column;margin:0;display:flex}.multi-upload__dropzone{align-items:stretch;gap:var(--sf-space-sm);width:100%;padding:var(--sf-space-lg) var(--sf-space-md);border:1px dashed var(--sf-border-strong);border-radius:var(--sf-radius-md);color:var(--sf-text-body);cursor:pointer;text-align:center;min-height:148px;transition:border-color var(--sf-duration) var(--sf-ease), background var(--sf-duration) var(--sf-ease);background:#ffffff05;flex-direction:column;justify-content:center;display:flex}.multi-upload__dropzone:hover:not(:disabled),.multi-upload__dropzone--over{border-color:var(--sf-border-strong);background:#ffffff08}.multi-upload__dropzone:focus-visible{box-shadow:var(--sf-focus-ring);outline:none}.multi-upload__dropzone:disabled{opacity:.55;cursor:not-allowed}.multi-upload__title{font-family:var(--sf-font-display);font-size:var(--sf-font-section);letter-spacing:0;text-transform:none;color:var(--sf-text-primary);font-weight:600}.multi-upload__hint{font-size:var(--sf-font-caption);color:var(--sf-text-muted);line-height:1.45}.multi-upload__cta{width:100%;margin-top:var(--sf-space-md);padding:var(--sf-space-md) var(--sf-space-lg);border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);background:var(--sf-text-primary);color:#000;font-size:var(--sf-font-small);text-align:center;box-sizing:border-box;font-weight:600}.multi-upload__status{gap:var(--sf-space-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.multi-upload__chip{flex:1 1 calc(33.333% - var(--sf-space-xs));min-width:4.5rem;padding:var(--sf-space-sm);border:1px solid var(--sf-border);border-radius:var(--sf-radius-sm);background:var(--sf-bg-panel);font-family:var(--sf-font-mono);font-size:var(--sf-font-caption);text-align:center;color:var(--sf-text-muted);line-height:1.25}.multi-upload__remove{width:100%;margin-top:var(--sf-space-xs);border:1px solid var(--sf-border);border-radius:var(--sf-radius-sm);color:var(--sf-text-secondary);font:inherit;font-size:var(--sf-font-micro);cursor:pointer;background:0 0;padding:4px 6px;display:block}.multi-upload__remove:hover:not(:disabled),.multi-upload__remove:focus-visible{border-color:var(--sf-border-strong);color:var(--sf-text-primary)}.multi-upload__chip--ready{color:var(--sf-text-primary);background:var(--sf-bg-panel-inset);border-color:var(--sf-border-strong)}.multi-upload__notices{padding:var(--sf-space-sm) var(--sf-space-md);border:1px solid var(--sf-border);border-radius:var(--sf-radius-sm);background:var(--sf-bg-panel);font-size:var(--sf-font-caption);color:var(--sf-text-muted);margin:0;line-height:1.45;list-style:none}.library-panel__advanced{margin-top:var(--sf-space-md)}.library-panel__advanced-summary{cursor:pointer;font-size:var(--sf-font-small);color:var(--sf-text-muted);padding:var(--sf-space-sm) 0}.panel--dev{margin-top:var(--sf-space-lg);border-color:var(--sf-border);background:var(--sf-bg-panel-inset)}.upload-btn--dev{border:1px solid var(--sf-border-strong);width:100%;font-size:var(--sf-font-body);background:var(--sf-bg-panel);color:var(--sf-text-muted)}.upload-btn--dev:hover:not(:disabled){filter:none;color:var(--sf-text-secondary);border-color:var(--sf-border-focus);background:#152238}.upload-btn--dev:disabled{opacity:.6;cursor:wait}.panel__error{color:#f0a0a8;margin:12px 0 0;font-size:.85rem}.library-panel__file{color:#c5d4ef;text-overflow:ellipsis;white-space:nowrap;background:#0d1628;border-radius:10px;margin:16px 0 0;padding:12px 14px;font-size:.875rem;overflow:hidden}.library-panel__loaded-file{gap:var(--sf-space-xs);display:grid}.library-panel__loaded-file .library-panel__file{margin-bottom:0}.library-panel__file-remove{border:1px solid var(--sf-border);border-radius:var(--sf-radius-sm);min-height:32px;color:var(--sf-text-secondary);font:inherit;font-size:var(--sf-font-caption);cursor:pointer;background:0 0}.library-panel__file-remove:hover:not(:disabled),.library-panel__file-remove:focus-visible{border-color:var(--sf-border-strong);color:var(--sf-text-primary)}.library-panel__empty{color:#6b82a8;margin:16px 0 0;font-size:.875rem;line-height:1.45}.library-accuracy-guide{padding:var(--sf-space-lg);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);border:1px solid var(--sf-border);box-shadow:none;margin:0}.library-accuracy-guide__status{color:var(--sf-text-body);margin:0;font-size:.8rem;line-height:1.45}.library-accuracy-guide__status strong{color:var(--sf-text-primary)}.library-accuracy-guide__status-detail{color:var(--sf-text-muted);font-weight:400}.library-accuracy-guide__status--good strong{color:var(--sf-text-primary)}.library-accuracy-guide__more{margin-top:8px}.library-accuracy-guide__more summary{color:#8fa3c7;cursor:pointer;font-size:.75rem;font-weight:600}.library-accuracy-guide__body{margin-top:var(--sf-space-md);padding-top:var(--sf-space-md);border-top:1px solid var(--sf-border)}.library-accuracy-guide__intro{margin:0 0 var(--sf-space-md);color:var(--sf-text-muted);font-size:.78rem;line-height:1.45}.library-accuracy-guide__current{margin:0 0 var(--sf-space-md);padding:var(--sf-space-md);background:var(--sf-bg-panel-inset);border:1px solid var(--sf-border);border-radius:0;flex-direction:column;gap:4px;display:flex}.library-accuracy-guide__current--good{border-color:var(--sf-border-strong);background:var(--sf-bg-panel-inset)}.library-accuracy-guide__current--basic,.library-accuracy-guide__current--partial{border-color:var(--sf-border);background:var(--sf-bg-panel-inset)}.library-accuracy-guide__current-label{color:var(--sf-text-primary);font-size:.78rem;font-weight:600}.library-accuracy-guide__current-detail{color:var(--sf-text-muted);font-size:.75rem;line-height:1.4}.library-accuracy-guide__tiers{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.library-accuracy-guide__tier{padding:var(--sf-space-md);border:1px solid #0000;border-radius:0}.library-accuracy-guide__tier--active{border-color:var(--sf-border-strong);background:var(--sf-bg-panel-inset)}.library-accuracy-guide__tier-label{color:#c8d4e8;margin:0;font-size:.72rem;font-weight:600}.library-accuracy-guide__tier-summary{color:#9fb3d9;margin:2px 0 0;font-size:.78rem}.library-accuracy-guide__tier-detail{color:#7a92b8;margin:4px 0 0;font-size:.72rem;line-height:1.4}.library-accuracy-guide__roles{color:#8fa3c7;margin:0;font-size:.72rem;line-height:1.45}.library-accuracy-guide__roles div{margin-bottom:6px}.library-accuracy-guide__roles dt{color:#9fb3d9;font-weight:600}.library-accuracy-guide__roles dd{margin:2px 0 0}.library-panel__workflow{padding:var(--sf-space-lg);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);border:1px solid var(--sf-border);box-shadow:none;margin:0}.library-panel__workflow-lead{margin:0 0 var(--sf-space-md);font-size:var(--sf-font-caption);color:var(--sf-text-body);line-height:1.45}.library-panel__workflow-title{margin:0 0 var(--sf-space-md);font-family:var(--sf-font-mono);font-size:var(--sf-font-caption);text-transform:uppercase;letter-spacing:.1em;color:var(--sf-text-muted);font-weight:500}.library-panel__workflow-steps{color:var(--sf-text-body);margin:0;padding:0 0 0 20px;font-size:.82rem;line-height:1.5}.library-panel__workflow-steps li{margin-bottom:var(--sf-space-sm)}.library-panel__workflow-step--done{color:var(--sf-text-primary)}.library-panel__workflow.library-panel__open-practice,.library-panel__open-practice{padding:var(--sf-space-lg);border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);gap:var(--sf-library-rail-gap);box-shadow:none;flex-direction:column;margin:0;display:flex}.library-panel__open-practice-text{color:var(--sf-text-muted);margin:0;font-size:.8rem;line-height:1.45}.upload-btn--practice{text-align:center;border:1px solid var(--sf-text-primary);border-radius:var(--sf-radius-md);background:var(--sf-text-primary);color:#000;width:100%}.upload-btn--practice:hover:not(:disabled){background:var(--sf-accent-hover);border-color:var(--sf-accent-hover);color:#000}.library-panel__workflow-next{padding:var(--sf-space-md) var(--sf-space-lg);border:1px solid var(--sf-border);border-radius:var(--sf-radius-sm);background:var(--sf-bg-panel);color:var(--sf-text-muted);margin:0;font-size:.8rem;line-height:1.45}.library-panel__feedback{padding:var(--sf-space-md) var(--sf-space-lg);border-radius:var(--sf-radius-sm);border:1px solid var(--sf-border);border-left-width:3px;margin:0;font-size:.8rem;line-height:1.45}.library-panel__feedback--success{color:#c8e6d4;background:#488c6426;border:1px solid #488c6459}.library-panel__feedback--info{color:var(--sf-text-body);background:var(--sf-bg-panel);border:1px solid var(--sf-border);border-left-width:3px;border-left-color:var(--sf-border-strong)}.library-panel__feedback--error{color:#f5c8c8;background:#b446461f;border:1px solid #b4464659}.library-omr-panel{padding:var(--sf-space-lg);border-radius:var(--sf-radius-sm);background:#3c5a821f;border:1px solid #78a0c859;margin:0;position:relative}.library-omr-panel__header{align-items:center;gap:var(--sf-space-sm);margin-bottom:var(--sf-space-sm);display:flex}.library-omr-panel__title{margin:0;font-size:.95rem}.library-omr-panel__badge{letter-spacing:.04em;text-transform:uppercase;color:#c8daf0;background:#648cc840;border:1px solid #78a0c866;border-radius:999px;padding:.1rem .45rem;font-size:.65rem;font-weight:600}.library-omr-panel__lede{margin:0 0 var(--sf-space-md);color:var(--sf-text-muted);font-size:.8rem;line-height:1.45}.library-omr-panel__actions{gap:var(--sf-space-sm);flex-direction:column;display:flex}.library-omr-panel__btn{width:100%}.library-omr-panel__btn--cancel{color:#f0c8c8;background:0 0;border-color:#c8787873}.library-omr-panel__status{margin:var(--sf-space-sm) 0 0;color:var(--sf-text-muted);font-size:.78rem;line-height:1.4}.library-omr-panel__status--ready{color:#c8e6d4;padding:var(--sf-space-sm) var(--sf-space-md);border-radius:var(--sf-radius-sm);background:#488c641f;border:1px solid #488c6459}.library-omr-panel__status--error{color:#f5c8c8}.library-omr-panel__dev-tools{margin-top:var(--sf-space-3)}.library-omr-panel__disclaimer{opacity:.9;font-style:italic}.library-omr-panel__progress{gap:var(--sf-space-xs);margin-top:var(--sf-space-sm);flex-direction:column;display:flex}.library-omr-panel__progress-bar{border-radius:var(--sf-radius-pill);background:var(--sf-border-muted);width:100%;height:3px;display:block;position:relative;overflow:hidden}.library-omr-panel__progress-bar:before{content:"";background:var(--sf-text-primary);will-change:transform;width:42%;animation:omr-progress-slide 1s var(--sf-ease-in-out) infinite;position:absolute;inset:0 auto 0 0}@keyframes omr-progress-slide{0%{transform:translate(-100%)}50%{transform:translate(80%)}to{transform:translate(240%)}}.viewer-float-toolbar{z-index:25;pointer-events:none;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.viewer-float-toolbar__bar{border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);box-shadow:none;-webkit-backdrop-filter:blur(8px);pointer-events:auto;opacity:0;transition:opacity var(--sf-duration) var(--sf-ease-out), transform var(--sf-duration) var(--sf-ease-out);background:#121212cc;align-items:center;gap:2px;padding:4px 6px;display:flex;transform:translateY(-4px)}.viewer-float-toolbar__page{min-width:2.75rem;font-family:var(--sf-font-mono);font-size:var(--sf-font-caption);color:var(--sf-text-muted);text-align:center;font-variant-numeric:tabular-nums;padding:0 8px;font-weight:500}.viewer-float-toolbar__sep{background:var(--sf-border);flex-shrink:0;width:1px;height:16px;margin:0 2px}.viewer-float-toolbar__hint{font-family:var(--sf-font-mono);font-size:var(--sf-font-micro);color:var(--sf-text-muted);opacity:0;transition:opacity var(--sf-duration) var(--sf-ease-out)}.tb-icon{border-radius:var(--sf-radius-sm);width:30px;min-width:30px;height:30px;min-height:30px;color:var(--sf-text-muted);cursor:pointer;transition:color var(--sf-duration-fast) var(--sf-ease-out), background var(--sf-duration-fast) var(--sf-ease-out);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (width<=1100px){.tb-icon{width:44px;min-width:44px;height:44px;min-height:44px}.viewer-float-toolbar__bar{gap:4px}}.tb-icon:hover:not(:disabled){color:var(--sf-text-primary);background:#ffffff0f}.tb-icon:disabled{opacity:.35;cursor:not-allowed}.tb-icon--active{color:var(--sf-text-primary);box-shadow:none;background:#ffffff14}.viewer-float-toolbar--visible .viewer-float-toolbar__bar,.viewer-float-toolbar--embedded .viewer-float-toolbar__bar{opacity:1;transform:translateY(0)}.viewer-float-toolbar--visible .viewer-float-toolbar__hint{opacity:var(--sf-text-micro-opacity)}.tb-icon__glyph{font-size:.95rem;line-height:1}.tb-popover{position:relative}.tb-popover__panel{border:1px solid var(--sf-border);min-width:140px;box-shadow:none;-webkit-backdrop-filter:blur(8px);z-index:30;background:#121212f2;border-radius:0;padding:4px;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.tb-popover__panel[hidden]{display:none}.tb-popover__panel--brush-settings{width:212px;max-width:calc(100vw - 16px);padding:8px;left:auto;right:0;overflow:hidden;transform:none}.tb-popover__panel--markup{width:min(252px,100vw - 16px);padding:8px;left:auto;right:0;overflow:hidden;transform:none}.tb-markup{gap:8px;display:grid}.tb-markup__tools{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.tb-markup__tools .tb-icon{width:100%;min-width:0}.tb-markup__actions{border-top:1px solid var(--sf-border);padding-top:4px}.tb-menu{flex-direction:column;gap:2px;display:flex}.tb-menu__item{width:100%;color:var(--sf-text-muted);text-align:left;cursor:pointer;transition:background var(--sf-duration-fast) var(--sf-ease);background:0 0;border:none;border-radius:0;padding:8px 12px;font-size:.8rem}.tb-menu__item:hover:not(:disabled){color:var(--sf-text-primary);background:#ffffff0f}.tb-menu__item--active{color:var(--sf-text-primary);background:#ffffff14}.tb-menu__item:disabled{opacity:.4;cursor:not-allowed}.ann-settings--compact{flex-direction:column;flex:none;align-items:stretch;gap:8px;width:100%;min-width:0}.ann-settings--compact .ann-settings__slider{flex:none;width:100%;min-width:0;max-width:none}.annotation-toolbar{background:#0d1628;border:1px solid #243552;border-radius:12px;padding:8px 12px}.annotation-toolbar__row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.annotation-toolbar__tools{flex-shrink:0;gap:4px;display:flex}.annotation-toolbar__actions{flex-shrink:0;gap:4px;margin-left:auto;display:flex}.ann-settings{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.ann-settings__colors{box-sizing:border-box;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:6px;width:100%;max-width:100%;padding:2px;display:flex}.ann-settings__swatch{cursor:pointer;border:2px solid #2e4268;border-radius:50%;flex:0 0 22px;width:22px;height:22px;padding:0;transition:border-color .12s}.ann-settings__swatch:hover:not(:disabled){border-color:#6d4aff}.ann-settings__swatch--active{outline-offset:1px;border-color:#f4f7fc;outline:2px solid #6d4aff}.ann-settings__slider{flex:1;align-items:center;gap:8px;min-width:120px;max-width:180px;display:flex}.ann-settings__slider-label{color:#7a92b8;white-space:nowrap;min-width:2.75rem;font-size:.75rem}.ann-settings__slider input[type=range]{accent-color:#6d4aff;cursor:pointer;flex:1;height:4px}.ann-settings__slider input[type=range]:disabled{opacity:.4;cursor:not-allowed}.annotation-toolbar__btn{color:#9fb3d9;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:7px 12px;font-size:.85rem;transition:background .15s,color .15s,border-color .15s}.annotation-toolbar__btn:hover:not(:disabled){color:#e8eef8;background:#1a2844}.annotation-toolbar__btn--active{color:#f4f7fc;background:#263a5e;border-color:#3d5280}.annotation-toolbar__btn--muted{color:#7a92b8}.annotation-toolbar__divider{background:#2e4268;width:1px;height:22px;margin:0 4px}.pdf-page-frame{contain:layout style;line-height:0;display:inline-flex;position:relative}.pdf-page-window{line-height:0;display:inline-flex;position:relative}.pdf-page-window__slot--active{position:relative}.pdf-page-window__slot--warm,.pdf-page-preload{clip:rect(0, 0, 0, 0);white-space:nowrap;pointer-events:none;visibility:hidden;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.annotation-layer-root{z-index:2;touch-action:none;cursor:crosshair;position:absolute;overflow:visible}.annotation-layer-root--eraser{cursor:cell}.annotation-layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.annotation-layer--eraser{cursor:cell}.brush-cursor{pointer-events:none;z-index:3;border:2px solid #ffffffa6;border-radius:50%;transition:width 80ms,height 80ms;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000059}.brush-cursor--highlighter{background:#facc1533;border-color:#facc15b3}.brush-cursor--eraser{background:#ffffff1f;border-style:dashed}.pdf-viewer-section{min-width:0;min-height:0;padding:var(--sf-canvas-inset);background:var(--sf-bg-app);flex-direction:column;flex:1;display:flex;position:relative}.pdf-viewer-section--library,.pdf-viewer-section--practice{min-width:0;min-height:100%;padding:var(--sf-canvas-inset);background:var(--sf-bg-app);flex-direction:column;flex:auto;display:flex;overflow:visible}.pdf-viewer-section--practice{padding:4px 6px}.pdf-viewer-section--library{height:100%;min-height:0;max-height:100%;overflow:hidden}.pdf-viewer-section--practice .sidebar-toggle{display:none}.pdf-viewer-section--empty .pdf-canvas{border:1px dashed var(--sf-border);background:var(--sf-bg-panel)}.pdf-viewer-section--library .pdf-viewer-stage,.pdf-viewer-section--practice .pdf-viewer-stage{flex-direction:column;flex:1;gap:0;min-width:0;min-height:0;display:flex;position:relative}.pdf-viewer-section--practice .pdf-viewer-stage{padding-top:52px}.pdf-viewer-section--practice .pdf-canvas{padding:2px;position:relative}.pdf-viewer-section--practice .pdf-canvas__placeholder,.pdf-viewer-section--practice .pdf-canvas__status{z-index:28;border-radius:var(--sf-radius-pill);max-width:min(45%,16rem);font-size:var(--sf-font-sidebar-min);text-align:right;color:var(--sf-text-body);border:1px solid var(--sf-border-strong);-webkit-backdrop-filter:blur(8px);pointer-events:none;background:#121212e0;margin:0;padding:5px 10px;line-height:1.35;position:absolute;top:12px;left:auto;right:12px}.pdf-viewer-section--practice .pdf-canvas--paper-light .pdf-canvas__status{color:var(--sf-text-body)}.pdf-viewer-section--practice .viewer-float-toolbar{align-items:center;width:100%;left:0;right:0;transform:none}.pdf-viewer-section--practice .viewer-float-toolbar__bar{margin-top:10px}.pdf-viewer-section--practice .viewer-float-toolbar__hint{z-index:30;border-radius:var(--sf-radius-pill);font-size:var(--sf-font-sidebar-min);color:var(--sf-text-muted);border:1px solid var(--sf-border);-webkit-backdrop-filter:blur(8px);opacity:1;pointer-events:none;background:#121212e0;margin:0;padding:4px 10px;line-height:1.35;position:absolute;top:12px;left:auto;right:12px}.practice-workspace__score:has(>.score-follow-setup-status) .pdf-viewer-section--practice .viewer-float-toolbar__hint{display:none}.pdf-viewer-section--library .pdf-viewer-body,.pdf-viewer-section--practice .pdf-viewer-body{flex:1;min-width:0;min-height:0}.pdf-viewer-section--library .pdf-viewer-body{max-height:100%}.pdf-viewer-section--library .pdf-canvas,.pdf-viewer-section--practice .pdf-canvas{flex:1;width:100%;min-width:0;min-height:0}.pdf-viewer-section--library .pdf-canvas{max-height:100%}.pdf-viewer-section--library .pdf-canvas--fit-page,.pdf-viewer-section--practice .pdf-canvas--fit-page{overflow:auto}.pdf-page-frame--rot-90,.pdf-page-frame--rot-180,.pdf-page-frame--rot-270{justify-content:center;align-items:center;display:flex;overflow:hidden}.pdf-page-rotator__inner{transform-origin:50%;flex-shrink:0;position:relative}.pdf-viewer-section--library .pdf-canvas--fit-width,.pdf-viewer-section--practice .pdf-canvas--fit-width{align-items:flex-start;overflow:auto}.pdf-viewer-section--library .pdf-canvas--fit-page,.pdf-viewer-section--practice .pdf-canvas--fit-page{justify-content:center;align-items:center;overflow:hidden}.pdf-viewer-stage{flex-direction:column;flex:1;gap:8px;min-width:0;min-height:0;display:flex;position:relative}.pdf-viewer-body{flex-direction:row;flex:1;gap:8px;min-width:0;min-height:0;display:flex}.sidebar-toggle{z-index:5;color:#dce8ff;cursor:pointer;width:30px;height:52px;transition:background var(--sf-duration-fast) var(--sf-ease-out), color var(--sf-duration-fast) var(--sf-ease-out), border-color var(--sf-duration-fast) var(--sf-ease-out), box-shadow var(--sf-duration-fast) var(--sf-ease-out);background:#243a62;border:1px solid #3d5a82;border-radius:0 10px 10px 0;padding:0;font-size:.8rem;font-weight:600;line-height:1;position:absolute;top:50%;left:0;transform:translate(-50%,-50%);box-shadow:0 2px 10px #00000059}.sidebar-toggle:active:not(:disabled){opacity:.9}.sidebar-toggle:hover{color:#f4f8ff;background:#2f4a75;border-color:#5a7eb0}.sidebar-toggle--expand{color:#fff;background:#2d4a78;border-color:#7ba3d4 #7ba3d4 #7ba3d4 #9ec0ef;border-left-style:solid;border-left-width:3px;width:40px;height:64px;font-size:1rem;box-shadow:0 3px 16px #00000080,inset 0 0 0 1px #ffffff1a}.sidebar-toggle--expand:hover{color:#fff;background:#3a5d90;border-color:#9ec0ef}.sidebar-toggle:focus-visible{outline-offset:2px;outline:2px solid #8aaee0}.viewer-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.viewer-toolbar button{color:#e8eef8;cursor:pointer;background:#1d2d4d;border:1px solid #2e4268;border-radius:10px;padding:10px 16px;transition:background .15s,opacity .15s}.viewer-toolbar button:hover:not(:disabled){background:#263a5e}.viewer-toolbar button:disabled{opacity:.4;cursor:not-allowed}.viewer-toolbar__page{color:#9fb3d9;margin-left:4px;font-size:.9rem}.viewer-toolbar__fit-group{background:#0d1628;border:1px solid #2e4268;border-radius:10px;gap:4px;margin-left:auto;padding:4px;display:flex}.viewer-toolbar__fit-btn{color:#9fb3d9;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 14px}.viewer-toolbar__fit-btn:hover:not(:disabled){color:#e8eef8;background:#1a2844}.viewer-toolbar__fit-btn--active{color:#f4f7fc;background:#263a5e}.viewer-toolbar__fullscreen{margin-left:8px}.pdf-canvas{width:100%;min-height:0;padding:var(--sf-space-sm);background:var(--sf-bg-app);transition:background var(--sf-duration) var(--sf-ease);border:none;border-radius:0;flex:1;justify-content:center;align-items:center;display:flex;overflow:hidden}.pdf-canvas--paper-light{background:#e8e4dc;border-color:#c9c4b8}.pdf-canvas--paper-light .pdf-canvas__placeholder,.pdf-canvas--paper-light .pdf-canvas__status{color:#5c5348}.pdf-fullscreen__stage.pdf-canvas--paper-light{background:#e8e4dc}.pdf-canvas--fit-width{align-items:flex-start;overflow:auto}.pdf-canvas__placeholder,.pdf-canvas__status{color:var(--sf-text-muted);text-align:center;max-width:28rem;margin:auto;font-size:1.05rem;line-height:1.5}.pdf-canvas__placeholder{padding:var(--sf-space-xl);border:1px dashed var(--sf-border-strong);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);color:var(--sf-text-body)}.pdf-canvas__status--error{color:#f0a0a8}.pdf-canvas--paper-light .pdf-canvas__status--error{color:#8c2632}.pdf-canvas .react-pdf__Document{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.pdf-canvas .react-pdf__Page{box-shadow:none;border-radius:0;overflow:hidden}.pdf-canvas .react-pdf__Page canvas{display:block}.pdf-fullscreen{z-index:1000;background:var(--sf-bg-app);flex-direction:column;display:flex;position:fixed;inset:0}.pdf-fullscreen .viewer-float-toolbar{top:max(14px, calc(env(safe-area-inset-top,0px) + 8px))}.pdf-fullscreen__page{color:#9fb3d9;font-size:.95rem}.pdf-fullscreen__close{background:var(--sf-bg-panel);border:1px solid var(--sf-border-strong);color:var(--sf-text-secondary);border-radius:var(--sf-radius-md);font-size:var(--sf-font-small);cursor:pointer;padding:9px 18px;font-weight:500}.pdf-fullscreen__close:hover{border-color:var(--sf-border-focus);background:#1a2844}.pdf-fullscreen__stage{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.pdf-fullscreen__stage.pdf-canvas--fit-width{-webkit-overflow-scrolling:touch;align-items:flex-start;overflow:auto}.pdf-fullscreen__stage .react-pdf__Document{justify-content:center;align-items:center;display:flex}.pdf-fullscreen__stage .react-pdf__Page{border-radius:4px;overflow:hidden;box-shadow:0 16px 48px #0009}.pdf-fullscreen__zone{cursor:pointer;z-index:1;background:0 0;border:none;width:38%;padding:0;position:absolute;top:0;bottom:0}.pdf-fullscreen__zone--left{left:0}.pdf-fullscreen__zone--right{right:0}.pdf-fullscreen__zone:disabled{cursor:default}.pdf-fullscreen__zone:not(:disabled):hover{background:#ffffff08}.pdf-fullscreen__status{color:#8fa3c7}.pdf-fullscreen__hint{bottom:max(12px, calc(env(safe-area-inset-bottom,0px) + 8px));text-align:center;color:#5a7094;opacity:0;transition:opacity var(--sf-duration) var(--sf-ease-out), transform var(--sf-duration) var(--sf-ease-out);pointer-events:none;background:#0f1a2ed9;border-radius:8px;margin:0;padding:8px 14px;font-size:.8rem;position:absolute;left:50%;transform:translate(-50%)translateY(4px)}.pdf-fullscreen__hint--visible{opacity:1;transform:translate(-50%)translateY(0)}.pdf-fullscreen__chrome-zone{z-index:22;pointer-events:auto;touch-action:manipulation;background:0 0;position:absolute}.pdf-fullscreen__chrome-zone--top{top:env(safe-area-inset-top,0px);width:min(100vw - 40px,720px);height:calc(56px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%)}.pdf-fullscreen__chrome-zone--bottom{bottom:env(safe-area-inset-bottom,0px);width:min(92vw,520px);height:calc(92px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%)}.pdf-fullscreen__chrome-reveal{top:max(12px, calc(env(safe-area-inset-top,0px) + 8px));z-index:24;border-radius:var(--sf-radius-pill);border:1px solid var(--sf-border-strong);background:var(--sf-bg-overlay);color:var(--sf-text-muted);font-size:var(--sf-font-caption);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);align-items:center;gap:6px;padding:7px 14px;font-weight:500;transition:opacity .2s,border-color .15s,color .15s;display:inline-flex;position:absolute;left:50%;transform:translate(-50%)}.pdf-fullscreen__chrome-reveal:hover{color:var(--sf-text-secondary);border-color:var(--sf-border-focus)}.pdf-fullscreen__chrome-reveal-icon{font-size:.85rem;line-height:1}@media (width<=900px){.topbar{padding:env(safe-area-inset-top,0px) max(var(--sf-space-xl), env(safe-area-inset-right,0px)) 0 max(var(--sf-space-xl), env(safe-area-inset-left,0px));gap:var(--sf-space-lg)}.topbar__brand,.topbar__brand-btn,.topbar__actions{gap:var(--sf-space-sm);min-width:0}.topbar__nav{gap:var(--sf-space-xs)}.topbar__nav-btn{padding:8px var(--sf-space-md);min-height:44px}.instrument-selector__option{min-height:44px;padding:8px 12px}.topbar__help{min-height:44px;padding:10px 12px}.topbar__feedback{display:none}.topbar__help-panel{right:0}.library-panel{width:260px;padding:16px}.pdf-viewer-section{padding:6px}.viewer-float-toolbar__bar{flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 48px)}}@media (width<=800px){.library-main{padding:var(--sf-space-md)}.main-layout{height:auto;max-height:none;display:block;overflow:visible}.main-layout--sidebar-hidden .library-panel{display:none}.library-panel{border-right:0;border-bottom:1px solid var(--sf-border);width:100%}.library-main .library-panel{border-bottom:0;width:100%}.practice-library__header{grid-template-columns:1fr;align-items:start}.practice-library__tools,.library-search{justify-items:stretch;width:100%}.practice-library__filters{justify-content:flex-start}.practice-piece-card{grid-template-columns:1fr}.practice-piece-card__action{text-align:left;justify-self:stretch;min-width:0;max-width:none}.practice-piece-card__button{min-width:0}.main-layout__score{height:clamp(380px,62vh,520px);min-height:380px;overflow:hidden}.main-layout--empty-score .main-layout__score{height:150px;min-height:150px}}@media (width<=640px){:root{--sf-topbar-height:136px}.main-layout__score{height:clamp(420px,68vh,560px);min-height:420px}.topbar{height:auto;min-height:var(--sf-topbar-height);padding:max(10px, env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-right,0px)) 10px max(16px, env(safe-area-inset-left,0px));flex-wrap:wrap;gap:8px}.topbar__logo{max-width:min(132px,38vw);height:34px}.topbar__actions{flex-wrap:wrap;justify-content:space-between;gap:8px;width:100%}.topbar__nav{flex:auto;order:3;gap:2px;width:100%}.topbar__help-menu{margin-left:auto}.topbar__nav-btn{flex:1 1 0;padding:7px 10px}.topbar__help{white-space:nowrap;flex:none;padding:7px 0 7px 10px}.topbar__help-panel{width:min(190px,100vw - 32px);right:0}.multi-upload__dropzone{min-height:132px}.instrument-selector__option{min-height:44px;padding:8px 12px}.guided-tour__card{right:max(16px, env(safe-area-inset-right,0px) + 16px);bottom:max(16px, env(safe-area-inset-bottom,0px) + 16px);max-width:none;left:max(16px, env(safe-area-inset-left,0px) + 16px)!important;width:auto!important;top:auto!important}.guided-tour__card--choice{right:max(16px, env(safe-area-inset-right,0px) + 16px);bottom:auto;left:max(16px, env(safe-area-inset-left,0px) + 16px)!important;top:max(calc(var(--sf-topbar-height) + 12px), calc(env(safe-area-inset-top,0px) + var(--sf-topbar-height) + 12px))!important;width:auto!important}.app--guided-choice .main-layout--empty-score{height:max(420px, calc(var(--sf-library-preview-height) - 300px));max-height:none;margin-top:300px}.guided-tour__card--center{bottom:auto;right:auto;width:min(360px, calc(100vw - max(32px, env(safe-area-inset-left,0px) + env(safe-area-inset-right,0px) + 32px)))!important;top:50%!important;left:50%!important}.guided-tour__actions{justify-content:stretch}.guided-tour__btn{flex:auto}.session-restore-banner{top:auto;bottom:max(12px, calc(env(safe-area-inset-bottom,0px) + 12px));left:max(12px, env(safe-area-inset-left,0px));right:max(12px, env(safe-area-inset-right,0px));width:auto}.viewer-toolbar__fit-group{justify-content:center;width:100%;margin-left:0}}.placeholder-view{flex:1;justify-content:center;align-items:center;padding:48px 24px;display:flex}.placeholder-card{text-align:center;background:#101c30;border:1px solid #243552;border-radius:20px;max-width:420px;padding:40px 44px}.placeholder-card h2{color:#f4f7fc;margin:0 0 12px;font-size:1.5rem;font-weight:600}.placeholder-card p{color:#9fb3d9;margin:0;line-height:1.55}.placeholder-card__note{color:#6b82a8;font-size:.875rem;margin-top:16px!important}.pdf-overlay-stack,.pdf-overlay-layer{overflow:visible}.score-follow-overlay{position:absolute;inset:0;overflow:hidden}.score-follow-overlay--align{cursor:crosshair;outline-offset:-2px;background:#6d4aff14;outline:2px dashed #6d4aff73}.pdf-overlay-layer--disabled{opacity:1}.score-follow-overlay__anchor-marker--align{width:12px;height:12px;margin:-6px 0 0 -6px;box-shadow:0 0 0 2px #6d4aff80}.score-follow-overlay__align-hint{color:#e8eef8;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#142038d9;border-radius:6px;max-width:calc(100% - 16px);margin:0;padding:4px 10px;font-size:.75rem;font-weight:600;position:absolute;bottom:8px;left:50%;overflow:hidden;transform:translate(-50%)}.score-follow-overlay__anchor-marker{pointer-events:none;background:#6d4affe6;border:2px solid #fff;border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;box-shadow:0 0 0 1px #00000040}.score-follow-overlay__anchor-marker--auto{background:#38bdf8e6;border-color:#e0f2fef2}.score-follow-overlay__anchor-marker--manual{background:#6d4affe6}.score-follow-overlay__candidate-marker{pointer-events:none;background:#f472b68c;border:1px dashed #be185df2;border-radius:2px;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute}.score-follow-overlay__anchor-marker--align.score-follow-overlay__anchor-marker--auto{width:12px;height:12px;margin:-6px 0 0 -6px}.score-follow-overlay--semi-auto-preview{pointer-events:none}.pdf-geometry-debug{z-index:60;color:#e2e8f0;pointer-events:auto;background:#0f172aeb;border:1px solid #94a3b866;border-radius:8px;max-height:70%;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.66rem;line-height:1.35;position:absolute;top:8px;left:8px;overflow:auto}.pdf-geometry-debug__head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px;display:flex}.pdf-geometry-debug__copy{color:#e2e8f0;cursor:pointer;background:#38bdf82e;border:1px solid #38bdf899;border-radius:6px;margin-left:auto;padding:2px 8px}.pdf-geometry-debug__table{border-collapse:collapse}.pdf-geometry-debug__table th,.pdf-geometry-debug__table td{text-align:right;white-space:nowrap;border-bottom:1px solid #94a3b82e;padding:2px 6px}.pdf-geometry-debug__table th:first-child,.pdf-geometry-debug__table td:first-child{text-align:left}.calibration-debug-overlay-root{pointer-events:none;position:absolute;inset:0;overflow:visible}.calibration-debug-overlay{pointer-events:none;opacity:.55;position:absolute;inset:0;overflow:visible}.calibration-debug-overlay__system-bounds{fill:#38bdf814;stroke:#38bdf8bf;stroke-width:.25px;vector-effect:non-scaling-stroke}.calibration-debug-overlay__system-bounds--low{fill:#fb923c2e;stroke:#fb923cf2;stroke-dasharray:1.2 .8}.calibration-debug-overlay__system-bounds--weak{fill:#facc1529;stroke:#facc15f2;stroke-dasharray:.9 .7}.calibration-debug-overlay__system-label{fill:#fffbebf5;pointer-events:none;font-size:2.4px;font-weight:700}.calibration-debug-overlay__system-label--weak{fill:#fef3c7fa}.calibration-debug-overlay__system-label--low{fill:#ffedd5fa}.calibration-debug-overlay__ink-bounds{fill:#a78bfa1f;stroke:#a78bfae6;stroke-width:.2px;vector-effect:non-scaling-stroke}.calibration-debug-overlay__center-line{stroke:#94a3b88c;stroke-width:.15px;stroke-dasharray:1.5 1;vector-effect:non-scaling-stroke}.calibration-debug-overlay__anchor-dot{fill:#34d399f2;stroke:#ffffffe6;stroke-width:.15px;vector-effect:non-scaling-stroke}.calibration-debug-overlay__anchor-label{fill:#ecfdf5f2;pointer-events:none;font-size:1.5px;font-weight:600}.calibration-debug-overlay__legend{color:#e2e8f0;pointer-events:none;background:#0f172ad1;border:1px solid #94a3b84d;border-radius:8px;flex-direction:column;gap:3px;margin:0;padding:6px 8px;font-size:.66rem;line-height:1.2;list-style:none;display:flex;position:absolute;top:8px;right:8px}.calibration-debug-overlay__legend-item{align-items:center;gap:6px;display:flex}.calibration-debug-overlay__legend-swatch{border-radius:2px;flex:none;width:14px;height:10px}.calibration-debug-overlay__legend-swatch--system{background:#38bdf82e;border:1px solid #38bdf8d9}.calibration-debug-overlay__legend-swatch--low{background:#fb923c38;border:1px dashed #fb923cf2}.calibration-debug-overlay__legend-swatch--weak{background:#facc1538;border:1px dashed #facc15f2}.calibration-debug-overlay__legend-swatch--ink{background:#a78bfa38;border:1px solid #a78bfae6}.calibration-debug-overlay__legend-swatch--center{background:0 0;border-top:2px dashed #94a3b8d9;align-self:center;height:0}.calibration-debug-overlay__legend-swatch--anchor{background:#34d399f2;border:1px solid #ffffffe6;border-radius:50%;width:10px;height:10px}.score-follow-overlay__system-band{box-sizing:border-box;pointer-events:none;background:#38bdf81a;border:1px dashed #38bdf88c;border-radius:4px;position:absolute}.score-follow-overlay__system-band-label{color:#e0f2fe;background:#0c1628bf;border-radius:4px;padding:1px 5px;font-size:.65rem;font-weight:600;position:absolute;top:2px;left:4px}.score-follow-overlay__anchor-marker--preview{opacity:.85;width:8px;height:8px;margin:-4px 0 0 -4px}.score-follow-overlay__align-hint--semi-auto{white-space:normal;text-align:center;max-width:90%;line-height:1.35;bottom:12px}.score-follow-overlay__align-hint--system-start{white-space:normal;text-align:center;color:#fbbf24;background:#101828d1;max-width:90%;line-height:1.35;bottom:12px}.score-follow-overlay__system-start-mark{pointer-events:none;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:absolute;transform:translate(-50%,-50%)}.score-follow-overlay__system-start-mark:before,.score-follow-overlay__system-start-mark:after{content:"";background:#fbbf24;border-radius:1px;position:absolute}.score-follow-overlay__system-start-mark:before{width:16px;height:2px}.score-follow-overlay__system-start-mark:after{width:2px;height:16px}.score-follow-overlay__system-start-label{color:#fbbf24;pointer-events:none;background:#101828bf;border-radius:3px;padding:1px 3px;font-size:9px;font-weight:700;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.score-follow-overlay--system-start{cursor:crosshair}.score-follow-controls__semi-auto-btn{color:#e8eef8;cursor:pointer;background:linear-gradient(#1e4a6e 0%,#153a58 100%);border:1px solid #38bdf8;border-radius:8px;width:100%;margin:8px 0 6px;padding:9px 10px;font-weight:600;display:block}.score-follow-controls__semi-auto-btn:hover:not(:disabled){background:#1e5080;border-color:#7dd3fc}.score-follow-controls__semi-auto-btn:disabled{opacity:.55;cursor:not-allowed}.score-follow-controls__semi-auto-review{background:#0c1c30bf;border:1px solid #38bdf859;border-radius:8px;margin:8px 0;padding:10px}.score-follow-controls__semi-auto-summary{margin:0 0 6px;font-size:.78rem;line-height:1.4}.score-follow-controls__semi-auto-warn{color:#fde68a;background:#b4781426;border:1px solid #facc1559;border-radius:6px;margin:0 0 6px;padding:6px 8px;font-size:.72rem;line-height:1.35}.score-follow-controls__semi-auto-note{color:#9eb4d8;margin:0 0 8px;font-size:.72rem;line-height:1.4}.score-follow-controls__semi-auto-actions{flex-direction:column;gap:6px;display:flex}.score-follow-controls__mark-start-btn--secondary{background:0 0;border-color:#3a5078;font-weight:500}.score-follow-overlay__anchor-marker--setup{opacity:.9;width:7px;height:7px;margin:-3.5px 0 0 -3.5px}.score-follow-overlay__anchor-marker--next{z-index:2;box-shadow:0 0 0 3px #6d4aff8c,0 0 0 1px #00000040}.score-follow-cursor{pointer-events:none;z-index:2;width:0;height:9%;position:absolute;transform:translate(-50%,-50%)}.score-follow-cursor__line{background:#7d64ffeb;border-radius:1px;width:2px;height:100%;margin:0 0 0 -1px;transition:opacity .12s;display:block;box-shadow:0 0 6px #6d4aff73,0 0 1px #6d4affcc}.pdf-page-frame--rot-90 .score-follow-cursor,.pdf-page-frame--rot-270 .score-follow-cursor{width:9%;height:0}.pdf-page-frame--rot-90 .score-follow-cursor__line,.pdf-page-frame--rot-270 .score-follow-cursor__line{width:100%;height:2px;margin:-1px 0 0}.score-follow-cursor--active .score-follow-cursor__line{transition:none}.score-follow-overlay__note-highlight{pointer-events:none;z-index:3;background:#ffc65238;border:1px solid #ffb8469e;border-radius:7px;animation:1.8s ease-in-out infinite wfy-note-highlight-pulse;position:absolute;box-shadow:0 0 0 2px #ffc65214,0 0 14px #ffb4463d}.score-follow-overlay__note-highlight--chord{background:#ffc65233;border-color:#ffb846ad;box-shadow:0 0 0 2px #ffc65214,0 0 16px #ffb44647}.score-follow-overlay__note-highlight--approximate{background:#ffc65229;border-style:dashed;box-shadow:0 0 10px #ffb4462e}.score-follow-overlay__note-target{pointer-events:none;z-index:3;position:absolute;transform:translate(-50%,-50%)}.score-follow-overlay__note-target--compact{animation:2s ease-in-out infinite wfy-note-target-pulse}.score-follow-overlay__note-target-glow{background:radial-gradient(circle,#ffc45c73 0%,#ff8c3c1f 55%,#0000 70%);border-radius:50%;width:56px;height:56px;position:absolute;top:-28px;left:-28px}.score-follow-overlay__note-target--compact .score-follow-overlay__note-target-glow{display:none}.score-follow-overlay__note-target-ring{border:2px solid #ffb446d9;border-radius:50%;width:44px;height:44px;position:absolute;top:-22px;left:-22px;box-shadow:0 0 14px #ffa03c80}.score-follow-overlay__note-target--compact .score-follow-overlay__note-target-ring{border-width:1.5px;width:20px;height:20px;top:-10px;left:-10px;box-shadow:0 0 6px #ffa03c73}.score-follow-overlay__note-target-dot{background:#ffb347;border-radius:50%;width:14px;height:14px;position:absolute;top:-7px;left:-7px;box-shadow:0 0 10px #ffb450e6}.score-follow-overlay__note-target--compact .score-follow-overlay__note-target-dot{width:6px;height:6px;top:-3px;left:-3px;box-shadow:0 0 4px #ffb450bf}.score-follow-overlay__note-target-label{letter-spacing:.03em;text-transform:uppercase;color:#2a1a08;white-space:nowrap;background:#ffc478f2;border-radius:6px;padding:2px 8px;font-size:.62rem;font-weight:600;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000040}.score-follow-overlay__note-target--compact .score-follow-overlay__note-target-label{display:none}.score-follow-overlay__note-target--chord .score-follow-overlay__note-target-ring{width:48px;height:48px;top:-24px;left:-24px}.score-follow-overlay__note-target--compact.score-follow-overlay__note-target--chord .score-follow-overlay__note-target-ring{width:24px;height:24px;top:-12px;left:-12px}.score-follow-overlay__note-target--wide-chord .score-follow-overlay__note-target-ring{width:56px;height:56px;top:-28px;left:-28px}.score-follow-overlay__note-target--wide-chord .score-follow-overlay__note-target-glow{width:64px;height:64px;top:-32px;left:-32px}.score-follow-overlay__note-target--compact.score-follow-overlay__note-target--wide-chord .score-follow-overlay__note-target-ring{width:28px;height:28px;top:-14px;left:-14px}@keyframes wfy-note-target-pulse{0%,to{opacity:1;transform:translate(-50%,-50%)scale(1)}50%{opacity:.88;transform:translate(-50%,-50%)scale(1.04)}}@keyframes wfy-note-highlight-pulse{0%,to{opacity:.95}50%{opacity:.72}}.wait-for-you__note-target-status{color:#9fb3d9;margin:8px 0 0;font-size:.75rem;line-height:1.45}.wait-for-you__note-target-status-hint{color:#8fa3c7;font-style:italic}.score-follow-controls{color:#c8d4e8;background:#152238;border:1px solid #2e4268;border-radius:12px;flex:0 0 220px;max-width:220px;padding:10px 12px;font-size:.8rem;overflow-y:auto}.score-follow-controls__title{color:#e8eef8;margin:0 0 10px;font-size:.85rem;font-weight:600}.score-follow-controls__row{cursor:pointer;align-items:flex-start;gap:8px;margin-bottom:8px;line-height:1.35;display:flex}.score-follow-controls__row--number{cursor:default;flex-direction:column}.score-follow-controls__row--number input{color:#e8eef8;background:#0d1628;border:1px solid #2e4268;border-radius:8px;width:100%;height:32px;padding:0 8px}.score-follow-controls__row input[type=checkbox]{accent-color:#6d4aff;margin-top:2px}.score-follow-controls__status{color:#9fb3d9;margin:0 0 8px;line-height:1.4}.score-follow-controls__status--hint{color:#6b82a8;margin-top:-4px;font-size:.8rem}.score-follow-controls__list{max-height:160px;margin:0 0 8px;padding:0;list-style:none;overflow-y:auto}.score-follow-controls__item{border-bottom:1px solid #243552;justify-content:space-between;align-items:center;gap:6px;padding:4px 0;display:flex}.score-follow-controls__auto-row{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.score-follow-controls__auto-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82c4,#2563eb);border:1px solid #3d5280;border-radius:8px;flex:auto;min-height:34px;padding:6px 10px;font-size:.8rem;font-weight:600}.score-follow-controls__auto-btn:hover:not(:disabled){filter:brightness(1.06)}.score-follow-controls__auto-btn:disabled{opacity:.55;cursor:not-allowed}.score-follow-controls__auto-btn--secondary{color:#9fb3d9;background:0 0}.score-follow-controls__auto-progress,.score-follow-controls__auto-success{color:#9fb3d9;margin:0 0 10px;font-size:.8rem;line-height:1.45}.score-follow-controls__auto-error{color:#f0b8b8;margin:0 0 6px;font-size:.8rem;line-height:1.45}.score-follow-controls__auto-failed{background:#b43c3c26;border:1px solid #dc646459;border-radius:8px;margin:0 0 8px;padding:8px 10px}.score-follow-controls__system-start-btn{color:#fde68a;cursor:pointer;background:linear-gradient(#4a3400 0%,#2d1f00 100%);border:1px solid #fbbf24;border-radius:8px;width:100%;margin:6px 0 0;padding:9px 10px;font-size:.85rem;font-weight:600;transition:opacity .15s;display:block}.score-follow-controls__system-start-btn:hover:not(:disabled){opacity:.85}.score-follow-controls__system-start-btn:disabled{opacity:.4;cursor:not-allowed}.score-follow-controls__adjust{margin:4px 0 0}.score-follow-controls__adjust-toggle{color:#9bb4d4;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;align-items:center;gap:4px;padding:4px 2px;font-size:.8rem;text-decoration:underline;display:inline-flex}.score-follow-controls__adjust-toggle:hover{color:#c4d6f0}.score-follow-controls__adjust-panel{flex-direction:column;gap:6px;margin-top:6px;display:flex}.score-follow-controls__system-start-panel{background:#fbbf2414;border:1px solid #fbbf24;border-radius:8px;margin:0 0 8px;padding:10px}.score-follow-controls__system-start-instruction{color:#fde68a;margin:0 0 6px;font-size:.82rem;font-weight:500}.score-follow-controls__system-start-count{color:#94a3b8;margin:0 0 10px;font-size:.78rem}.score-follow-controls__source-badge{text-transform:uppercase;letter-spacing:.03em;vertical-align:middle;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:.65rem;font-weight:600;display:inline-block}.score-follow-controls__source-badge--auto{color:#7dd3fc;background:#38bdf833}.score-follow-controls__source-badge--manual{color:#c4b5fd;background:#6d4aff33}.score-follow-controls__delete{color:#f0b8b8;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;width:24px;height:24px;padding:0;font-size:1rem;line-height:1}.score-follow-controls__delete:hover{background:#c8505033}.score-follow-controls__clear{color:#9fb3d9;cursor:pointer;background:0 0;border:1px solid #2e4268;border-radius:8px;width:100%;height:32px;font-size:.8rem}.score-follow-controls__clear:hover{color:#e8eef8;background:#1d2d4d}.score-follow-controls__mark-start-btn,.score-follow-controls__mark-done-btn{color:#e8eef8;cursor:pointer;background:linear-gradient(#2a3f66 0%,#1e3050 100%);border:1px solid #4a5f8a;border-radius:8px;width:100%;margin:8px 0 4px;padding:8px 10px;font-weight:600;display:block}.score-follow-controls__mark-start-btn:hover:not(:disabled),.score-follow-controls__mark-done-btn:hover{background:#2e4268;border-color:#6d4aff}.score-follow-controls__mark-start-btn:disabled{opacity:.55;cursor:not-allowed}.score-follow-controls__mark-done-btn{background:#1a2a44;border-color:#6d4aff}.score-follow-controls__marking-panel{background:#0c1628a6;border:1px solid #3a5078;border-radius:8px;margin:6px 0 8px;padding:8px 10px}.score-follow-controls__progress-label,.score-follow-controls__progress-next{margin:0 0 4px;font-size:.78rem;line-height:1.35}.score-follow-controls__progress-next{color:#9eb4d8}.score-follow-controls__progress-bar{background:#0e1828;border-radius:3px;height:6px;margin-top:6px;overflow:hidden}.score-follow-controls__progress-fill{background:linear-gradient(90deg,#6d4aff,#38bdf8);border-radius:3px;height:100%;transition:width .15s;display:block}.score-follow-controls__marking-actions{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.score-follow-controls__action-btn{color:#c8d4e8;cursor:pointer;background:#152238;border:1px solid #3a5078;border-radius:6px;flex:auto;min-width:0;padding:5px 8px;font-size:.72rem}.score-follow-controls__action-btn:hover{border-color:#5a78a8}.score-follow-controls__action-btn--secondary{color:#9eb4d8}.score-follow-controls__shortcuts{color:#7a92b8;margin:4px 0 8px;font-size:.7rem;line-height:1.4}.score-follow-controls__shortcuts kbd,.score-follow-overlay__align-hint kbd{background:#0e1828;border:1px solid #3a5078;border-radius:3px;padding:1px 4px;font-size:.68rem}.score-follow-controls__system-hint{color:#b8cce8;background:#38bdf814;border:1px solid #38bdf840;border-radius:6px;margin:6px 0;padding:6px 8px;font-size:.72rem;line-height:1.4}.score-follow-controls__clear-row{flex-direction:column;gap:6px;margin-top:8px;display:flex}.score-follow-controls__markers-details{margin-top:8px}.score-follow-controls__markers-details summary{cursor:pointer;color:#9eb4d8;font-size:.75rem}.score-follow-controls__markers-details summary:hover{color:#c8d4e8}.score-follow-controls__empty{color:#9fb3d9;margin:0 0 10px;font-size:.8rem;line-height:1.45}.score-follow-controls__align-notice{color:#d4c8ff;background:#6d4aff1f;border:1px solid #6d4aff4d;border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:.75rem;line-height:1.4}.score-follow-controls__status-card{background:#0d162899;border:1px solid #2e4268;border-radius:10px;margin:0 0 12px;padding:10px 12px}.score-follow-controls__status-card--setup{background:#6d4aff14;border-color:#6d4aff59}.score-follow-controls__status-card--active{background:#facc1514;border-color:#facc1566}.score-follow-controls__status-card--ready{background:#488c641a;border-color:#488c6466}.score-follow-controls__status-title{color:#e8eef8;margin:0 0 4px;font-size:.82rem;font-weight:600}.score-follow-controls__status-detail{color:#9fb3d9;margin:0;font-size:.78rem;line-height:1.45}.score-follow-controls__row--primary span{color:#e8eef8;font-weight:600}.score-follow-controls__details{color:#8fa3c7;margin:4px 0 8px;font-size:.78rem}.score-follow-controls__details summary{cursor:pointer;padding:4px 0;list-style-position:outside}.score-follow-controls__details summary:hover{color:#c5d4ef}.score-follow-controls__details[open] summary{margin-bottom:6px}.score-follow-controls__item-meta{color:#6b82a8;font-size:.75rem}.score-follow-controls__debug{border-top:1px solid #243552;grid-template-columns:1fr 1fr;gap:6px 10px;margin:12px 0 0;padding-top:10px;display:grid}.score-follow-controls__debug dt{color:#6b82a8;text-transform:uppercase;margin:0;font-size:.65rem}.score-follow-controls__debug dd{color:#e8eef8;margin:0;font-size:.8rem}.score-follow-controls__debug-wide{grid-column:1/-1}.score-follow-controls__debug-wide dd{color:#c8d4e8;line-height:1.35}.topbar__nav-btn--muted{opacity:.55}.session-restore-overlay{z-index:200;padding:max(16px, env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-right,0px)) max(16px, env(safe-area-inset-bottom,0px)) max(16px, env(safe-area-inset-left,0px));pointer-events:all;background:#0a101c8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.session-restore-overlay__card{text-align:center;background:#152238;border:1px solid #2d4268;border-radius:12px;max-width:22rem;padding:1.25rem 1.5rem;box-shadow:0 12px 40px #00000059}.session-restore-overlay__logo{object-fit:contain;opacity:.92;width:72px;height:72px;margin:0 auto .85rem;display:block}.session-restore-overlay__title{color:#f4f7fc;margin:0 0 .5rem;font-size:1rem;font-weight:600}.session-restore-overlay__hint{color:#9fb3d9;margin:0;font-size:.9rem;line-height:1.45}.session-restore-overlay__skip{margin-top:1rem}.app--restoring .main-layout,.app--restoring .library-welcome-wrap{pointer-events:none;-webkit-user-select:none;user-select:none}.upload-btn--disabled{opacity:.55;cursor:not-allowed}.app-view-placeholder{justify-content:center;align-items:center;gap:var(--sf-space-md);min-height:min(420px, calc(var(--sf-viewport-height) - var(--sf-topbar-height) - 120px));padding:var(--sf-space-3xl);text-align:center;background:var(--sf-bg-raised);flex-direction:column;flex:1;display:flex}.app-view-placeholder__title{color:var(--sf-text-primary);margin:0;font-size:1.15rem;font-weight:600}.app-view-placeholder__message{max-width:32rem;color:var(--sf-text-muted);margin:0;line-height:1.5}.app-view-placeholder__actions{justify-content:center;align-items:center;gap:var(--sf-space-sm);margin-top:var(--sf-space-sm);flex-wrap:wrap;display:flex}.app-view-placeholder__action{min-width:10rem}.app-view-placeholder__secondary{min-width:10rem;min-height:42px;padding:var(--sf-space-sm) var(--sf-space-lg);border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);background:var(--sf-bg-panel);color:var(--sf-text-primary);font:inherit;font-size:var(--sf-font-small);cursor:pointer;font-weight:600}.app-view-placeholder__secondary:hover:not(:disabled){background:var(--sf-bg-panel-inset)}.session-restore-banner{z-index:180;top:calc(var(--sf-topbar-height) + 10px);border-radius:var(--sf-radius-md);background:#141f34f0;border:1px solid #2e4268;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;width:min(420px,100vw - 32px);margin:0;padding:8px 10px;display:flex;position:fixed;right:16px;box-shadow:0 12px 34px #00000042}.session-restore-banner--success{background:#488c641f;border-color:#488c6459}.session-restore-banner--error{background:#2e1b21f5;border-color:#c8505073}.session-restore-banner--info{background:#1a2844f0}.session-restore-banner__message{color:#d4e0f4;flex:13rem;margin:0;font-size:.76rem;line-height:1.35}.session-restore-banner__actions{gap:8px;display:flex}.session-restore-banner__btn{border-radius:var(--sf-radius-sm);color:#e8eef8;cursor:pointer;background:#1a2844;border:1px solid #3d5278;padding:5px 9px;font-size:.72rem}.session-restore-banner__btn--ghost{background:0 0}.library-welcome-wrap{padding:var(--sf-space-xl) var(--sf-space-3xl) 0;width:100%;max-width:1200px;margin:0 auto}.library-welcome{gap:var(--sf-space-xl);padding:var(--sf-space-2xl) var(--sf-space-3xl);border:1px solid var(--sf-border);border-radius:var(--sf-radius-lg);background:var(--sf-bg-panel);grid-template-columns:repeat(12,minmax(0,1fr));display:grid;position:relative;overflow:hidden}.library-welcome__intro{grid-area:1/1/auto/span 5;align-self:center;min-width:0}.library-welcome__how{grid-area:2/1/auto/-1}.library-welcome__logo{width:auto;max-width:min(220px,72vw);height:52px;margin-bottom:var(--sf-space-md);object-fit:contain;display:block}.library-welcome__eyebrow{margin:0 0 var(--sf-space-sm);color:var(--sf-text-muted);font-family:var(--sf-font-mono);font-size:var(--sf-font-caption);letter-spacing:.2em;text-transform:uppercase;font-weight:500}.library-welcome__title{max-width:22em;margin:0 0 var(--sf-space-md);font-family:var(--sf-font-display);letter-spacing:-.02em;color:var(--sf-text-primary);font-size:clamp(1.35rem,2.2vw,1.75rem);line-height:1.16}.library-welcome__summary{max-width:100%;margin:0 0 var(--sf-space-md);font-size:var(--sf-font-body);color:var(--sf-text-body);line-height:1.6}.library-welcome__lead{max-width:100%;font-size:var(--sf-font-small);color:var(--sf-text-muted);margin:0;line-height:1.55}.library-welcome__section-title{margin:0 0 var(--sf-space-md);color:var(--sf-text-muted);font-family:var(--sf-font-mono);font-size:var(--sf-font-caption);letter-spacing:.2em;text-transform:uppercase;font-weight:500}.library-welcome__steps{gap:var(--sf-space-sm);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.library-welcome__steps li{align-items:center;gap:1px var(--sf-space-sm);grid-template-columns:22px minmax(0,1fr);min-width:0;display:grid}.library-welcome__steps li>span{border:1px solid var(--sf-border);background:var(--sf-bg-panel-inset);width:24px;height:24px;color:var(--sf-text-muted);font-family:var(--sf-font-mono);grid-row:1/3;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.library-welcome__steps strong{color:var(--sf-text-secondary);font-size:var(--sf-font-caption);white-space:normal;font-weight:600}.library-welcome__steps small{color:var(--sf-text-muted);white-space:normal;font-size:.68rem;line-height:1.35}.library-welcome .demo-piece{grid-area:1/6/auto/-1;align-self:center;min-width:min(100%,28rem)}.library-welcome__best{max-width:var(--sf-copy-max);padding:var(--sf-space-xl);border:1px dashed var(--sf-border);background:var(--sf-bg-panel-inset);color:var(--sf-text-muted);font-size:var(--sf-font-small);grid-column:1/-1;margin:0;line-height:1.65}.library-welcome__footer{padding-top:var(--sf-space-sm);border-top:1px solid var(--sf-border-muted);grid-column:1/-1}.library-welcome__privacy{max-width:var(--sf-copy-max);color:var(--sf-text-muted);font-size:var(--sf-font-caption);margin:0;line-height:1.55}.library-welcome__actions{align-items:center;gap:var(--sf-space-md);margin-top:var(--sf-space-lg);flex-wrap:wrap;display:flex}.feedback-link{text-decoration:none}.library-welcome__actions .feedback-link{min-height:36px;padding:var(--sf-space-sm) 0;color:var(--sf-text-muted);font-size:var(--sf-font-caption);text-align:left;align-items:center;display:inline-flex}.library-welcome__actions .feedback-link:hover{color:var(--sf-text-primary)}.library-welcome__btn{border:1px solid var(--sf-border-strong);background:var(--sf-bg-panel-inset);color:var(--sf-text-primary);font-size:var(--sf-font-small);cursor:pointer;padding:12px 24px;font-weight:600}.library-welcome__btn:hover:not(:disabled){background:var(--sf-bg-panel);border-color:var(--sf-text-muted)}.library-welcome__btn:disabled{opacity:.65;cursor:wait}.app-footer{justify-content:center;gap:var(--sf-space-sm) var(--sf-space-xl);padding:var(--sf-space-md) max(var(--sf-space-xl), env(safe-area-inset-right,0px)) max(var(--sf-space-md), env(safe-area-inset-bottom,0px)) max(var(--sf-space-xl), env(safe-area-inset-left,0px));border-top:1px solid var(--sf-border);background:var(--sf-bg-topbar);color:var(--sf-text-muted);font-size:var(--sf-font-caption);text-align:center;flex-wrap:wrap;flex-shrink:0;line-height:1.4;display:flex}.app-footer a{color:var(--sf-text-secondary)}@media (width<=900px){.library-welcome-wrap{padding:var(--sf-space-md)}.library-welcome{gap:var(--sf-space-lg);grid-template-columns:1fr}.library-welcome__intro,.library-welcome__how{grid-area:auto/1/auto/-1}.library-welcome .demo-piece{grid-area:auto/1/auto/-1;min-width:0}.library-welcome__footer{padding-top:0}.library-welcome__actions{width:100%}.app-view-placeholder{padding:var(--sf-space-2xl) var(--sf-space-lg)}}@media (width<=640px){.library-welcome__steps{grid-template-columns:1fr}}@media (width<=480px){.topbar__beta{font-size:.62rem}.library-welcome{padding:var(--sf-space-lg)}.library-welcome__title{font-size:1.38rem}.library-welcome__btn{flex:9rem}.app-view-placeholder__actions,.app-view-placeholder__action,.app-view-placeholder__secondary{width:100%}.demo-piece{grid-template-columns:1fr}.demo-piece__action{text-align:left;min-width:0}}.profile-view{width:100%;max-width:var(--sf-content-max);padding:var(--sf-space-4xl) max(var(--sf-space-3xl), env(safe-area-inset-right,0px)) max(56px, calc(env(safe-area-inset-bottom,0px) + 40px)) max(var(--sf-space-3xl), env(safe-area-inset-left,0px));background:var(--sf-bg-raised);flex:1;margin:0 auto;overflow-y:auto}.profile-header{margin-bottom:var(--sf-space-3xl)}.profile-header__title{color:var(--sf-text-primary);font-size:var(--sf-font-title);letter-spacing:-.02em;margin:0;font-weight:600}.profile-header__lede{margin:var(--sf-space-sm) 0 0;color:var(--sf-text-muted);line-height:1.5}.profile-scope{margin-bottom:var(--sf-space-2xl);background:var(--sf-bg-panel-inset);border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);gap:2px;padding:3px;display:inline-flex}.profile-scope__option{color:var(--sf-text-muted);border-radius:calc(var(--sf-radius-md) - 3px);cursor:pointer;background:0 0;border:1px solid #0000;min-height:32px;padding:6px 16px;font-size:.9rem}.profile-scope__option:hover{color:var(--sf-text-secondary);background:var(--sf-bg-panel)}.profile-scope__option--active{color:var(--sf-text-primary);background:var(--sf-bg-panel);border-color:var(--sf-border-strong)}.profile-stats-grid{gap:var(--sf-space-md);margin-bottom:var(--sf-space-3xl);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.profile-stats-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-stat,.profile-panel,.profile-empty{border:1px solid var(--sf-border);border-radius:var(--sf-radius-xl);background:var(--sf-bg-panel)}.profile-stat{gap:var(--sf-space-xs);padding:var(--sf-space-lg) var(--sf-space-xl);flex-direction:column;display:flex}.profile-stat__label{color:var(--sf-text-muted);font-size:var(--sf-font-caption);letter-spacing:.03em;text-transform:uppercase}.profile-stat__value{color:var(--sf-text-primary);font-size:1.35rem;font-weight:600}.profile-empty{padding:var(--sf-space-3xl);text-align:center}.profile-empty h3{margin:0 0 var(--sf-space-sm);color:var(--sf-text-secondary);font-size:var(--sf-font-section)}.profile-empty p,.profile-panel__empty{color:var(--sf-text-muted);margin:0;line-height:1.5}.profile-panels{gap:var(--sf-space-lg);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.profile-panel{padding:var(--sf-space-xl) var(--sf-space-2xl)}.profile-panel__title{margin:0 0 var(--sf-space-md);color:var(--sf-text-secondary);font-size:var(--sf-font-section);font-weight:600}.profile-list{margin:0;padding:0;list-style:none}.profile-list__item{justify-content:space-between;align-items:baseline;gap:var(--sf-space-md);padding:var(--sf-space-md) 0;border-bottom:1px solid var(--sf-border-muted);color:var(--sf-text-muted);font-size:var(--sf-font-small);display:flex}.profile-list__item:first-child{padding-top:0}.profile-list__item:last-child{border-bottom:0;padding-bottom:0}.profile-list__item>span:first-child{flex-direction:column;gap:2px;min-width:0;display:flex}.profile-list__item strong{color:var(--sf-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.profile-list__item small{color:var(--sf-text-faint);font-size:var(--sf-font-caption)}.profile-list__item>span:last-child{flex-shrink:0}.profile-footer{justify-content:space-between;align-items:center;gap:var(--sf-space-md);margin-top:var(--sf-space-4xl);padding-top:var(--sf-space-xl);border-top:1px solid var(--sf-border);display:flex}.profile-footer p{color:var(--sf-text-faint);font-size:var(--sf-font-small);margin:0}.profile-footer__reset{border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);color:var(--sf-text-muted);cursor:pointer;font-size:var(--sf-font-small);background:0 0;padding:9px 16px;font-weight:500}.profile-footer__reset:hover{border-color:var(--sf-border-focus);background:var(--sf-bg-panel-inset);color:var(--sf-text-secondary)}@media (width<=900px){.profile-view{padding:var(--sf-space-3xl) max(var(--sf-space-2xl), env(safe-area-inset-right,0px)) max(48px, calc(env(safe-area-inset-bottom,0px) + 36px)) max(var(--sf-space-2xl), env(safe-area-inset-left,0px))}}@media (width<=760px){.profile-view{padding:var(--sf-space-2xl) max(var(--sf-space-lg), env(safe-area-inset-right,0px)) max(40px, calc(env(safe-area-inset-bottom,0px) + 32px)) max(var(--sf-space-lg), env(safe-area-inset-left,0px))}.profile-scope{flex-wrap:wrap;width:100%;display:flex}.profile-scope__option{text-align:center;flex:1 1 0;min-width:min(100%,9rem);min-height:44px}.profile-stats-grid,.profile-panels{grid-template-columns:1fr}.profile-footer{flex-direction:column;align-items:flex-start}}.profile-manual-log{margin-bottom:var(--sf-space-3xl)}.profile-manual-log__lede{margin:0 0 var(--sf-space-lg);color:var(--sf-text-muted);font-size:var(--sf-font-small);line-height:1.5}.profile-manual-log__timer{align-items:baseline;gap:var(--sf-space-md);margin-bottom:var(--sf-space-lg);display:flex}.profile-manual-log__time{color:var(--sf-text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:2rem;font-weight:600}.profile-manual-log__status{color:var(--sf-text-faint);font-size:var(--sf-font-small)}.profile-manual-log__controls,.profile-manual-log__form-actions{gap:var(--sf-space-sm);flex-wrap:wrap;display:flex}.profile-manual-log__btn{border:1px solid var(--sf-border-strong);border-radius:var(--sf-radius-md);color:var(--sf-text-muted);cursor:pointer;font-size:var(--sf-font-small);background:0 0;padding:9px 16px;font-weight:500}.profile-manual-log__btn:hover,.profile-manual-log__btn--primary{border-color:var(--sf-border-focus);background:var(--sf-bg-panel-inset);color:var(--sf-text-secondary)}.profile-manual-log__form{gap:var(--sf-space-md);margin-top:var(--sf-space-lg);padding-top:var(--sf-space-lg);border-top:1px solid var(--sf-border-muted);flex-direction:column;display:flex}.profile-manual-log__field{gap:var(--sf-space-xs);color:var(--sf-text-muted);font-size:var(--sf-font-small);flex-direction:column;display:flex}.profile-manual-log__field input,.profile-manual-log__field select,.profile-manual-log__field textarea{border:1px solid var(--sf-border);border-radius:var(--sf-radius-md);background:var(--sf-bg-raised);width:100%;color:var(--sf-text-secondary);font:inherit;padding:10px 12px}.profile-manual-log__field textarea{resize:vertical;min-height:72px}.profile-manual-log__form-actions{justify-content:flex-end}.profile-manual-log__message{margin:var(--sf-space-md) 0 0;color:var(--sf-text-muted);font-size:var(--sf-font-small)}.profile-panel__subtitle{margin:var(--sf-space-lg) 0 var(--sf-space-sm);color:var(--sf-text-faint);font-size:var(--sf-font-caption);letter-spacing:.03em;text-transform:uppercase;font-weight:600}.profile-panel__subtitle:first-of-type{margin-top:0}.profile-list--compact .profile-list__item{padding:var(--sf-space-sm) 0}.profile-list__notes{color:var(--sf-text-faint);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.legal-page{width:100%;max-width:var(--sf-content-max);padding:var(--sf-space-4xl) max(var(--sf-space-3xl), env(safe-area-inset-right,0px)) max(56px, calc(env(safe-area-inset-bottom,0px) + 40px)) max(var(--sf-space-3xl), env(safe-area-inset-left,0px));background:var(--sf-bg-raised);flex:1;margin:0 auto;overflow-y:auto}.legal-page__header{margin-bottom:var(--sf-space-3xl)}.legal-page__logo{width:auto;max-width:min(180px,60vw);height:52px;margin-bottom:var(--sf-space-lg);object-fit:contain;display:block}.legal-page__title{color:var(--sf-text-primary);font-size:var(--sf-font-title);letter-spacing:-.02em;margin:0;font-weight:600}.legal-page__lede{margin:var(--sf-space-sm) 0 0;color:var(--sf-text-muted);max-width:42rem;line-height:1.55}.legal-page__content{gap:var(--sf-space-2xl);flex-direction:column;max-width:42rem;display:flex}.legal-page__content section h3{margin:0 0 var(--sf-space-sm);color:var(--sf-text-secondary);font-size:var(--sf-font-section);font-weight:600}.legal-page__content section p{color:var(--sf-text-muted);margin:0;line-height:1.6}.legal-page__content a{color:var(--sf-text-secondary);text-underline-offset:2px;text-decoration:underline}.legal-page__content a:hover{color:var(--sf-text-primary)}.legal-page__updated{margin:var(--sf-space-md) 0 0;color:var(--sf-text-muted);font-size:var(--sf-font-caption)}.app-footer__legal{justify-content:center;gap:var(--sf-space-sm) var(--sf-space-lg);flex-wrap:wrap;width:100%;display:flex}.app-footer__legal a{color:var(--sf-text-secondary);text-decoration:none}.app-footer__legal a:hover{color:var(--sf-text-primary);text-decoration:underline}@media (width<=640px){.legal-page{padding:var(--sf-space-3xl) max(var(--sf-space-lg), env(safe-area-inset-right,0px)) max(32px, calc(env(safe-area-inset-bottom,0px) + 24px)) max(var(--sf-space-lg), env(safe-area-inset-left,0px))}.legal-page__title{font-size:1.35rem}}@media (width<=480px){.legal-page{padding:var(--sf-space-2xl) max(var(--sf-space-md), env(safe-area-inset-right,0px)) max(28px, calc(env(safe-area-inset-bottom,0px) + 20px)) max(var(--sf-space-md), env(safe-area-inset-left,0px))}}
