:root{color:var(--color-text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--color-page);font-synthesis:none;text-rendering:optimizelegibility;--color-page:#ede8de;--color-page-gradient-start:#ffffff80;--color-page-gradient-end:#ede8de00;--color-text:#26231f;--color-text-strong:#2f2a25;--color-text-soft:#403932;--color-text-muted:#756e63;--color-control-text:#332d27;--color-surface:#fcfbf7d6;--color-surface-translucent:#fcfbf7b8;--color-surface-solid:#fcfbf7;--color-surface-raised:#fffefb;--color-surface-muted:#eee7dc;--color-surface-hover:#f6f2ea;--color-border:#d5cdc0;--color-border-subtle:#e1d9cd;--color-border-soft:#e4ded4;--color-border-control:#cfc6b8;--color-border-frame:#d8d0c3;--color-border-hover:#9db4aa;--color-accent:#27685f;--color-accent-foreground:#fffaf2;--color-accent-soft:#eef5ef;--color-accent-text:#2f5f56;--color-accent-meta:#33423f;--color-level:#4b6f9b;--color-range:#7d4cc2;--color-success-text:#125647;--color-success-bg:#dff4eb;--color-warning-text:#5c4600;--color-warning-bg:#fff2bf;--color-error-text:#7c2d20;--color-error-bg:#ffe3dc;--color-error-soft-bg:#fff1ee;--color-error-border:#d58a7b;--color-neutral-badge-text:#61594f;--focus-ring:#4b6f9b4d;--shadow-brand:0 8px 24px #27685f2e;--shadow-panel:0 18px 44px #3c302117;--shadow-panel-soft:0 18px 44px #3c302114;--shadow-option:0 10px 24px #3744401a;--shadow-dropdown:0 16px 36px #3c302129;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-page:#121613;--color-page-gradient-start:#4f6a5e33;--color-page-gradient-end:#12161300;--color-text:#f3eee5;--color-text-strong:#fff8ed;--color-text-soft:#e1d9cc;--color-text-muted:#b8afa2;--color-control-text:#f3eee5;--color-surface:#1f2420e0;--color-surface-translucent:#1f2420bd;--color-surface-solid:#1f2420;--color-surface-raised:#252b26;--color-surface-muted:#343b35;--color-surface-hover:#30372f;--color-border:#485044;--color-border-subtle:#3d463d;--color-border-soft:#353d36;--color-border-control:#586154;--color-border-frame:#495247;--color-border-hover:#7ea394;--color-accent:#65c8b7;--color-accent-foreground:#081513;--color-accent-soft:#1f4039;--color-accent-text:#94dccf;--color-accent-meta:#c0d9d0;--color-level:#8baee0;--color-range:#b998ef;--color-success-text:#8ee1bf;--color-success-bg:#173b31;--color-warning-text:#f1cf70;--color-warning-bg:#40320f;--color-error-text:#f3a191;--color-error-bg:#4b241f;--color-error-soft-bg:#3a201d;--color-error-border:#a9675a;--color-neutral-badge-text:#d5ccbf;--focus-ring:#8baee05c;--shadow-brand:0 8px 26px #00000047;--shadow-panel:0 18px 44px #00000047;--shadow-panel-soft:0 18px 44px #0000003d;--shadow-option:0 10px 24px #0000003d;--shadow-dropdown:0 16px 36px #00000061}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-page:#121613;--color-page-gradient-start:#4f6a5e33;--color-page-gradient-end:#12161300;--color-text:#f3eee5;--color-text-strong:#fff8ed;--color-text-soft:#e1d9cc;--color-text-muted:#b8afa2;--color-control-text:#f3eee5;--color-surface:#1f2420e0;--color-surface-translucent:#1f2420bd;--color-surface-solid:#1f2420;--color-surface-raised:#252b26;--color-surface-muted:#343b35;--color-surface-hover:#30372f;--color-border:#485044;--color-border-subtle:#3d463d;--color-border-soft:#353d36;--color-border-control:#586154;--color-border-frame:#495247;--color-border-hover:#7ea394;--color-accent:#65c8b7;--color-accent-foreground:#081513;--color-accent-soft:#1f4039;--color-accent-text:#94dccf;--color-accent-meta:#c0d9d0;--color-level:#8baee0;--color-range:#b998ef;--color-success-text:#8ee1bf;--color-success-bg:#173b31;--color-warning-text:#f1cf70;--color-warning-bg:#40320f;--color-error-text:#f3a191;--color-error-bg:#4b241f;--color-error-soft-bg:#3a201d;--color-error-border:#a9675a;--color-neutral-badge-text:#d5ccbf;--focus-ring:#8baee05c;--shadow-brand:0 8px 26px #00000047;--shadow-panel:0 18px 44px #00000047;--shadow-panel-soft:0 18px 44px #0000003d;--shadow-option:0 10px 24px #0000003d;--shadow-dropdown:0 16px 36px #00000061}*{box-sizing:border-box}body{background:var(--color-page);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{border:0}.app-shell{background:linear-gradient(180deg, var(--color-page-gradient-start), var(--color-page-gradient-end)), var(--color-page);min-height:100vh;padding:20px}.coach-workspace{max-width:1220px;margin:0 auto}.top-bar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-mark{width:44px;height:44px;color:var(--color-accent-foreground);background:var(--color-accent);box-shadow:var(--shadow-brand);border-radius:8px;place-items:center;display:grid}h1,h2,p{margin:0}h1{letter-spacing:0;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.05}.brand-lockup p,.readout-label{color:var(--color-text-muted);text-transform:uppercase;font-size:.82rem;font-weight:650}.theme-picker{border:1px solid var(--color-border);background:var(--color-surface-translucent);border-radius:8px;flex:none;gap:2px;padding:3px;display:inline-flex}.theme-option{width:34px;height:34px;color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;place-items:center;display:inline-grid}.theme-option:hover{color:var(--color-control-text);background:var(--color-surface-hover)}.theme-option:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.theme-option-active{color:var(--color-accent-foreground);background:var(--color-accent)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.session-readout{border:1px solid var(--color-border);background:var(--color-surface-translucent);border-radius:8px;min-width:160px;padding:10px 14px}.session-readout strong{margin-top:3px;font-size:1.12rem;display:block}.top-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.mode-action{white-space:nowrap;min-height:44px;padding:0 13px}.exercise-library{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-panel-soft);border-radius:8px;gap:14px;padding:16px;display:grid}.library-heading{justify-content:space-between;align-items:end;gap:12px;display:flex}.library-heading h2{margin-top:3px;font-size:1.45rem}.library-heading>span{color:var(--color-text-muted);font-size:.84rem;font-weight:750}.exercise-list{gap:9px;display:grid}.exercise-option{border:1px solid var(--color-border-subtle);min-height:82px;color:var(--color-text-strong);background:var(--color-surface-raised);cursor:pointer;text-align:left;border-radius:8px;grid-template-columns:96px minmax(0,1fr) minmax(170px,auto) 74px;align-items:center;gap:14px;padding:12px 14px;transition:border-color .12s,box-shadow .12s,transform .12s;display:grid}.exercise-option:not(:disabled):hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-option);transform:translateY(-1px)}.exercise-option:disabled{cursor:not-allowed;opacity:.55}.exercise-option-active{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent)}.difficulty-meter{grid-template-columns:repeat(5,1fr);gap:4px;width:82px;display:grid}.difficulty-meter span{background:var(--color-border-subtle);border-radius:999px;height:6px}.difficulty-meter .difficulty-on{background:var(--color-level)}.exercise-copy{align-content:start;gap:4px;min-width:0;display:grid}.exercise-copy strong{overflow-wrap:anywhere;font-size:1.05rem;line-height:1.18}.exercise-copy span{color:var(--color-text-muted);font-size:.82rem;font-weight:620;line-height:1.3}.exercise-copy .exercise-progress{color:var(--color-accent-text);font-weight:800}.exercise-meta{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.exercise-meta span{overflow-wrap:anywhere;max-width:100%;color:var(--color-accent-meta);background:var(--color-accent-soft);border-radius:999px;padding:4px 7px;font-size:.72rem;font-weight:800}.exercise-start{color:var(--color-accent-foreground);background:var(--color-accent);border-radius:8px;justify-self:end;padding:8px 12px;font-size:.82rem;font-weight:800}.practice-layout{grid-template-columns:minmax(0,1fr) 330px;gap:18px;display:grid}.lesson-panel,.side-panel{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-panel);border-radius:8px}.lesson-panel{padding:16px}.side-panel{align-content:start;gap:14px;padding:14px;display:grid}.exercise-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.exercise-strip>div,.control-group,.feedback-panel{border:1px solid var(--color-border-subtle);background:var(--color-surface-raised);border-radius:8px}.exercise-strip>div{min-height:68px;padding:12px}.exercise-strip strong{overflow-wrap:anywhere;letter-spacing:0;margin-top:5px;font-size:1.18rem;line-height:1.15;display:block}.timeline-frame{border:1px solid var(--color-border-frame);background:var(--color-surface-solid);border-radius:8px;width:100%;height:min(54vh,520px);min-height:340px;overflow:hidden}.song-timeline-frame{height:min(56vh,560px)}.pitch-timeline{width:100%;height:100%;display:block}.transport-row{align-items:center;gap:10px;margin-top:14px;display:flex}.primary-action,.icon-action{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;transition:transform .12s,background-color .12s,opacity .12s;display:inline-flex}.primary-action{min-width:160px;color:var(--color-accent-foreground);background:var(--color-accent);padding:0 18px;font-weight:750}.icon-action{width:44px;color:var(--color-control-text);background:var(--color-surface-muted)}.back-action{flex:none}.primary-action:not(:disabled):hover,.icon-action:not(:disabled):hover{transform:translateY(-1px)}.primary-action:disabled,.icon-action:disabled{cursor:not-allowed;opacity:.45}.error-banner{border:1px solid var(--color-error-border);color:var(--color-error-text);background:var(--color-error-soft-bg);border-radius:8px;margin-top:12px;padding:10px 12px}.control-group,.feedback-panel{gap:12px;padding:13px;display:grid}.group-heading{color:var(--color-text-soft);align-items:center;gap:8px;display:flex}.group-heading h2{letter-spacing:0;font-size:.98rem}label{color:var(--color-text-soft);grid-template-columns:72px minmax(0,1fr);align-items:center;gap:10px;font-weight:650;display:grid}select,input[type=range]{width:100%}.dropdown-trigger{border:1px solid var(--color-border-control);width:100%;min-height:38px;color:var(--color-text);background:var(--color-surface-solid);cursor:pointer;text-align:left;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:0 10px;display:inline-grid}.dropdown-trigger:hover:not(:disabled){border-color:var(--color-border-hover)}.dropdown-trigger:disabled{cursor:not-allowed;opacity:.55}.dropdown-trigger:focus-visible,.dropdown-item:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.dropdown-trigger>span:first-child,.dropdown-trigger [data-radix-select-value]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dropdown-trigger-icon{color:var(--color-text-muted)}.dropdown-content{z-index:20;min-width:var(--radix-select-trigger-width);max-height:min(var(--radix-select-content-available-height), 300px);border:1px solid var(--color-border-control);background:var(--color-surface-raised);box-shadow:var(--shadow-dropdown);border-radius:8px;overflow:hidden}.dropdown-viewport{padding:5px}.dropdown-item{min-height:34px;color:var(--color-text);cursor:pointer;border-radius:6px;outline:none;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:10px;padding:7px 8px;font-size:.92rem;font-weight:700;display:grid;position:relative}.dropdown-item[data-highlighted]{color:var(--color-accent-foreground);background:var(--color-accent)}.dropdown-item[data-disabled]{cursor:not-allowed;opacity:.45}.dropdown-item-indicator{justify-content:center;display:inline-flex}.exercise-select-card{padding:0}.exercise-select-card>.readout-label{padding:12px 12px 0;display:block}.readout-dropdown-trigger{min-height:43px;color:var(--color-text);background:0 0;border:0;padding:3px 12px 10px;font-size:1.18rem;font-weight:800;line-height:1.15}.readout-dropdown-trigger:hover:not(:disabled){background:var(--color-surface-hover)}.readout-dropdown-trigger:focus-visible{outline-offset:-2px}input[type=range]{accent-color:var(--color-range)}output{color:var(--color-text-muted);grid-column:2;font-size:.84rem;font-weight:650}.coach-summary{color:var(--color-text-soft);line-height:1.45}.feedback-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.feedback-list li{border:1px solid var(--color-border-soft);background:var(--color-surface-solid);border-radius:8px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:54px;padding:7px;display:grid}.degree-pill{width:28px;height:28px;color:var(--color-accent-foreground);background:var(--color-level);border-radius:999px;place-items:center;font-weight:800;display:grid}.note-copy{gap:2px;min-width:0;display:grid}.note-name{overflow-wrap:anywhere;min-width:0;font-weight:800}.note-detail{color:var(--color-text-muted);font-size:.78rem;font-weight:650;line-height:1.25}.score-badge{overflow-wrap:anywhere;max-width:120px;color:var(--color-neutral-badge-text);background:var(--color-surface-muted);border-radius:999px;padding:5px 8px;font-size:.78rem;font-weight:800}.score-pass{color:var(--color-success-text);background:var(--color-success-bg)}.score-passWithWarning{color:var(--color-warning-text);background:var(--color-warning-bg)}.score-flat,.score-sharp,.score-wrongNote,.score-unstable,.score-unclear,.score-missed{color:var(--color-error-text);background:var(--color-error-bg)}.toggle-row{color:var(--color-text-soft);align-items:center;gap:9px;font-size:.84rem;font-weight:750;display:flex}.toggle-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--color-accent)}.clip-player{width:100%}.clip-actions{color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:10px;font-size:.84rem;font-weight:700;display:flex}.text-action{min-height:34px;color:var(--color-control-text);background:var(--color-surface-muted);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-weight:750;display:inline-flex}.text-action:disabled{cursor:not-allowed;opacity:.48}.clip-error{color:var(--color-error-text);font-weight:650}.song-practice-layout{grid-template-columns:minmax(0,1fr) 360px}.song-workbench{min-width:0}.file-input-row input[type=file]{width:100%;min-width:0;color:var(--color-text-soft);font-size:.82rem;font-weight:650}.song-section-readout{color:var(--color-text-muted);flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:.8rem;font-weight:750;display:flex}.song-full-action{justify-content:center;width:100%}.analysis-meter{color:var(--color-text-soft);grid-template-columns:58px minmax(0,1fr) 44px;align-items:center;gap:8px;font-size:.82rem;font-weight:750;display:grid}.analysis-meter progress{width:100%;accent-color:var(--color-accent)}.segmented-control{border:1px solid var(--color-border-frame);background:var(--color-surface-muted);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.segmented-control button{min-height:32px;color:var(--color-control-text);cursor:pointer;background:0 0;border-radius:6px;padding:0 6px;font-size:.78rem;font-weight:800}.segmented-control button:disabled{cursor:not-allowed;opacity:.48}.segmented-control .segmented-active{color:var(--color-accent-foreground);background:var(--color-accent)}.reference-quality{flex-wrap:wrap;gap:7px;display:flex}.reference-quality span{color:var(--color-accent-meta);background:var(--color-accent-soft);border-radius:999px;padding:4px 7px;font-size:.75rem;font-weight:800}.reference-quality p{flex:100%}.song-debug-toggle{padding-top:4px}.song-debug-panel{border-color:var(--color-border-hover);background:var(--color-surface-raised)}.song-debug-readout{border:1px solid var(--color-border-soft);background:var(--color-surface-solid);color:var(--color-text-muted);border-radius:8px;grid-template-columns:minmax(64px,auto) minmax(0,1fr);gap:5px 10px;padding:8px;font-size:.78rem;font-weight:750;display:grid}.song-debug-readout strong{color:var(--color-text-strong);font-weight:850}.song-debug-note-list{gap:7px;max-height:260px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.song-debug-note-list li{border:1px solid var(--color-border-soft);background:var(--color-surface-solid);color:var(--color-text-muted);border-radius:8px;gap:2px;padding:7px;font-size:.76rem;font-weight:700;line-height:1.25;display:grid}.song-debug-note-list strong{color:var(--color-accent-text);font-weight:850}.song-reason-list{color:var(--color-text-muted);gap:7px;margin:0;padding-left:18px;font-size:.84rem;font-weight:650;line-height:1.35;display:grid}.song-region-list{max-height:280px;overflow:auto}.history-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.history-list li{border:1px solid var(--color-border-soft);background:var(--color-surface-solid);border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;padding:8px;display:grid}.history-result{border-radius:999px;padding:4px 7px;font-size:.72rem;font-weight:850}.history-pass{color:var(--color-success-text);background:var(--color-success-bg)}.history-fail{color:var(--color-error-text);background:var(--color-error-bg)}.history-copy{gap:3px;min-width:0;display:grid}.history-copy strong,.history-copy span,.history-empty{overflow-wrap:anywhere;line-height:1.3}.history-copy strong{color:var(--color-text-soft);font-size:.82rem}.history-copy span,.history-empty{color:var(--color-text-muted);font-size:.8rem;font-weight:650}@media (width<=900px){.app-shell{padding:12px}.top-bar,.practice-layout{grid-template-columns:1fr}.top-bar{flex-direction:column;align-items:stretch}.top-actions{justify-content:space-between}.top-actions .session-readout,.mode-action{flex:auto}.practice-layout{display:grid}.exercise-option{grid-template-columns:88px minmax(0,1fr) auto}.exercise-start{display:none}.side-panel{grid-template-columns:1fr}}@media (width<=640px){.library-heading{flex-direction:column;align-items:start}.exercise-strip{grid-template-columns:1fr}.exercise-option{grid-template-columns:1fr;align-items:start}.exercise-meta{justify-content:flex-start}.timeline-frame{height:48vh;min-height:300px}.transport-row{flex-wrap:wrap}.primary-action{flex:180px}label{grid-template-columns:1fr;gap:6px}output{grid-column:auto}}
