:root{--zoom: 1;--vh: calc(1vh / var(--zoom));--dock-w: 46px;--lh: 30px;--bg: #f6f3ee;--paper: #fffdf9;--ink: #1f1b2e;--muted: #6c6578;--line: #e3ddd3;--accent: #b86b0e;--accent-ink: #fff;--focus: #3d6fd8;--active: rgba(61, 111, 216, .09);--ok: #1d7f4e;--ok-bg: rgba(29, 127, 78, .08);--warn: #a86400;--warn-bg: rgba(232, 163, 61, .2);--bad: #c03434;--bad-bg: rgba(192, 52, 52, .13);--neutral: #8f879b;color-scheme:light;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}@media(prefers-color-scheme:dark){:root{--bg: #15131c;--paper: #1e1b28;--ink: #ece8f3;--muted: #9b94a8;--line: #322e3e;--accent: #e8a33d;--accent-ink: #1f1b2e;--focus: #7aa2ff;--active: rgba(122, 162, 255, .1);--ok: #4cc38a;--ok-bg: rgba(76, 195, 138, .08);--warn: #f0b44c;--warn-bg: rgba(240, 180, 76, .16);--bad: #ff7b7b;--bad-bg: rgba(255, 123, 123, .15);--neutral: #6f687c;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45}h1,h2,h3{margin:0;line-height:1.2}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:.85rem}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.spacer{flex:1}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}kbd{font:.8em ui-monospace,monospace;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 4px}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:7px 12px;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover:not(:disabled){background:var(--active);border-color:transparent}.btn.small{padding:3px 8px;font-size:.85rem}.btn.icon{padding:3px 6px}.confirm{display:inline-flex;align-items:center;gap:6px;font-size:.85rem}.home{max-width:760px;margin:0 auto;padding:40px 20px}.home-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:32px}.brand{display:flex;gap:14px;align-items:center}.brand h1{font-size:1.6rem}.brand p{margin:2px 0 0}.empty-state{text-align:center;padding:48px 20px;border:1px dashed var(--line);border-radius:14px}.empty-state p{max-width:460px;margin:10px auto 20px}.project-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.project-card{display:flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:6px 10px 6px 6px}.project-open{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:10px 12px;border-radius:8px;cursor:pointer;display:grid;gap:2px}.project-open:hover{background:var(--active)}.project-title{font-weight:600;font-size:1.05rem}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;padding:10px 20px;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.titles{display:grid;flex:1;min-width:220px}.title-input{font-size:1.25rem;font-weight:700;border:1px solid transparent;background:transparent;border-radius:6px;padding:2px 6px;margin-left:-6px}.title-input:hover,.source-input input:hover{border-color:var(--line)}.source-input{display:flex;align-items:center;gap:6px;font-size:.9rem}.source-input input{flex:1;border:1px solid transparent;background:transparent;border-radius:6px;padding:1px 6px;min-width:0}.topbar-status{display:flex;align-items:center;gap:14px;font-size:.9rem}.score strong{color:var(--ok);font-size:1.05rem}.save-state{color:var(--muted)}.save-state.error{color:var(--bad);font-weight:600}.topbar-actions{display:flex;flex-wrap:wrap;gap:8px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;padding:20px;align-items:start;max-width:1500px;margin:0 auto}.sheet{min-width:0}.pane-headings,.section-body{display:grid;grid-template-columns:2.25rem minmax(0,1fr) 9.5rem minmax(0,1fr);gap:0 8px}.pane-headings{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 0 6px}.gutter-heading{text-align:center;text-transform:none;letter-spacing:0}.section{margin-bottom:18px}.section-header{display:flex;align-items:center;gap:8px;padding:4px 0 6px;min-width:0}.chevron{display:inline-block;transition:transform .15s}.collapsed .chevron{transform:rotate(-90deg)}.section-name{font-weight:700;font-size:.95rem;border:1px solid transparent;background:transparent;border-radius:6px;padding:2px 6px;width:9rem}.section-name:hover{border-color:var(--line)}.repeat{display:inline-flex;align-items:center;gap:2px;color:var(--muted);font-size:.85rem}.repeat select{border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:1px 2px}.section-stats{font-size:.85rem;white-space:nowrap}.stat-ok{color:var(--ok)}.stat-off{color:var(--warn);font-weight:600}.section-preview{font-size:.85rem;font-style:italic;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-numbers,.gutter{padding-top:1px}.line-numbers div{height:var(--lh);line-height:var(--lh);text-align:right;font-size:.75rem;color:var(--neutral);font-variant-numeric:tabular-nums}.line-numbers .active{color:var(--ink);font-weight:600}.pane{position:relative;border:1px solid var(--line);border-radius:10px;background:var(--paper);overflow:hidden}.pane:focus-within{border-color:var(--focus)}.row-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.row-tint{height:var(--lh)}.pane-parody .tint-near{background:var(--warn-bg)}.pane-parody .tint-far{background:var(--bad-bg)}.row-tint.active{box-shadow:inset 3px 0 0 var(--focus);background-image:linear-gradient(var(--active),var(--active))}.lyrics{position:relative;display:block;width:100%;border:0;background:transparent;resize:none;padding:0 12px;margin:0;font-size:16px;line-height:var(--lh);white-space:pre;overflow-x:auto;overflow-y:hidden}.lyrics:focus-visible{outline:none}.lyrics::placeholder{color:var(--neutral)}.gutter-row{height:var(--lh);display:grid;grid-template-columns:1.1rem 1fr 2.9rem 1fr 1.1rem;align-items:center;font-variant-numeric:tabular-nums;font-size:.95rem;border-radius:6px}.gutter-row.active{background:var(--active)}.gutter-row .count{text-align:right;padding-right:2px}.gutter-row .count~.count{text-align:left;padding:0 0 0 2px}.scheme{font-size:.72rem;font-weight:700;text-align:center;color:var(--accent);font-family:ui-monospace,monospace}.scheme.unpaired{color:var(--neutral);font-weight:400}.scheme.near{font-style:italic}.scheme.off{color:var(--warn);background:var(--warn-bg);border-radius:4px}.flag-stress{color:var(--warn);font-size:.72rem;margin-left:1px}.stress-clash .flag{background:var(--warn-bg)}.count.estimated:after{content:"*";color:var(--warn);font-weight:700}.flag{display:inline-flex;justify-content:center;align-items:center;gap:1px;margin:0 auto;min-width:2.2rem;height:22px;border-radius:11px;font-size:.78rem;font-weight:700;line-height:1}.flag-match .flag{color:var(--ok)}.flag-near .flag{color:var(--warn);background:var(--warn-bg)}.flag-far .flag{color:var(--bad);background:var(--bad-bg)}.flag-pending .flag,.flag-extra .flag{color:var(--neutral)}.flag-diff{font-size:.72rem}.sheet-actions{display:flex;gap:8px;padding-left:calc(2.25rem + 8px)}.inspector{position:sticky;top:90px;max-height:calc(var(--vh) * 100 - 110px);overflow-y:auto;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:14px}.inspector h2{font-size:1rem}.inspector-intro p{margin:8px 0}.legend{list-style:none;padding:0;margin:10px 0;display:grid;gap:6px;font-size:.9rem}.flag-chip{display:inline-block;min-width:2.6rem;text-align:center;border-radius:10px;font-weight:700;font-size:.8rem;padding:1px 6px;margin-right:6px}.flag-chip.flag-match{color:var(--ok);background:var(--ok-bg)}.flag-chip.flag-near{color:var(--warn);background:var(--warn-bg)}.flag-chip.flag-far{color:var(--bad);background:var(--bad-bg)}.legend .count{display:inline-block;min-width:2.6rem;margin-right:6px;text-align:center;font-weight:600}.inspector-title{color:var(--muted);font-weight:600}.line-breakdown{display:grid;gap:6px}.breakdown-head{display:flex;justify-content:space-between;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.breakdown-total{font-weight:700;color:var(--ink);font-size:.95rem}.chips{display:flex;flex-wrap:wrap;gap:4px}.chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:1px 4px 1px 7px;cursor:pointer;font-size:.9rem}.chip.selected{border-color:var(--focus)}.chip-count{font-size:.72rem;font-weight:700;background:var(--paper);border-radius:4px;padding:0 4px}.chip.source-estimate .chip-count{color:var(--warn)}.chip.source-song .chip-count,.chip.source-personal .chip-count{color:var(--focus)}.line-compare{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.line-compare>.syl-scroll,.line-compare>p{grid-column:1 / -1}.syl-scroll{overflow-x:auto;padding-bottom:4px}.syl-grid{display:grid;gap:3px 2px;align-items:stretch}.syl-label{font-size:.7rem;font-weight:700;color:var(--muted);align-self:center;padding-right:4px}.syl{border:1px solid var(--line);background:var(--bg);border-radius:4px;padding:2px 5px;font-size:.85rem;cursor:pointer;text-align:center;min-width:1.6rem}.syl.word-start{margin-left:4px}.syl.strong{font-weight:800}.syl.weak{color:var(--muted)}.syl.source-estimate{border-style:dashed;border-color:var(--warn)}.syl.source-song,.syl.source-personal{border-color:var(--focus)}.syl.selected{background:var(--active);border-color:var(--focus)}.syl.clash{background:var(--warn-bg);border-color:var(--warn);color:var(--ink)}.syl.extra{background:var(--bad-bg);border-color:var(--bad)}.syl.missing{border:1px dashed var(--line);background:transparent;cursor:default}.clash-note{color:var(--warn);margin:0}.rhyme-panel{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:14px}.rhyme-panel p{margin:0}.rhyme-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.rhyme-head h3{font-size:.95rem}.tabs{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.tab{border:0;background:transparent;padding:3px 10px;font-size:.82rem;cursor:pointer}.tab.current{background:var(--ink);color:var(--paper)}.tab-count{margin-left:5px;opacity:.7;font-size:.75rem}.syl-filter{display:flex;gap:4px}.syl-filter .chip{padding:1px 9px}.rhyme-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px}.rhyme{display:inline-flex;align-items:baseline;gap:4px;border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:2px 7px;cursor:pointer;font-size:.9rem}.rhyme:hover{border-color:var(--accent)}.rhyme.tier-common{font-weight:600}.rhyme.tier-rare{color:var(--muted)}.rhyme-count{font-size:.7rem;color:var(--muted)}.word-panel{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:14px}.word-panel p{margin:-6px 0 0}.word-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.word-big{font-size:1.4rem;font-weight:700;word-break:break-word}.word-count{font-weight:600;color:var(--muted);white-space:nowrap}.scope{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.88rem}.scope legend{padding:0;margin-bottom:4px;color:var(--muted);font-size:.8rem}.pron-list{display:grid;gap:6px}.pron{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:8px 10px;cursor:pointer}.pron:hover{border-color:var(--muted)}.pron.current{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.pron-split{font-size:1.05rem;font-weight:600}.pron-meta{font-size:.78rem;color:var(--muted);font-family:ui-monospace,monospace}.custom-count{display:flex;align-items:center;gap:6px;font-size:.88rem;flex-wrap:wrap}.custom-count input{width:3.4rem;border:1px solid var(--line);border-radius:6px;background:var(--bg);padding:3px 6px;text-align:center}.override-list summary{cursor:pointer;font-size:.88rem;color:var(--muted)}.override-list ul{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:2px}.override-list li{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;font-size:.9rem}.dialog{width:min(880px,calc(100vw - 32px));border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);padding:20px}.dialog::backdrop{background:#14101e73}.dialog>p{margin:6px 0 14px}.import-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px}.import-text{width:100%;min-height:340px;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:10px 12px;resize:vertical;line-height:1.5}.import-preview{max-height:360px;overflow-y:auto}.import-preview h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px}.import-preview ol{margin:0;padding-left:1.3rem;display:grid;gap:8px}.dialog .scope{margin-top:14px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.home-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}#zoom-dock{position:fixed;right:12px;top:50%;transform:translateY(-50%);z-index:60;font-size:14px}.zoom-control{box-shadow:0 2px 10px #0000002e;display:inline-flex;flex-direction:column-reverse;align-items:stretch;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:2px}.zoom-control .btn{justify-content:center;padding:6px 4px;border-radius:8px;font-size:1rem;line-height:1}.zoom-control .zoom-value{font-size:.72rem;font-weight:600;padding:6px 2px;width:2.9rem;font-variant-numeric:tabular-nums;border-block:1px solid var(--line);border-radius:0}@media(min-width:901px){.workspace,.sing-layout,.melody-main,.lyric-sheet{padding-right:calc((var(--dock-w) + 24px) / var(--zoom))}}@media(max-width:900px){:root{--dock-w: 122px}#zoom-dock{top:calc(env(safe-area-inset-top,0px) + 10px);transform:none}.zoom-control{flex-direction:row;align-items:center}.zoom-control .btn{padding:3px 9px}.zoom-control .zoom-value{border-block:0;border-inline:1px solid var(--line)}.topbar,.home-header{padding-right:calc((var(--dock-w) + 20px) / var(--zoom))}}.btn.google{background:var(--paper);font-weight:600}.account{position:relative}.account summary{list-style:none;cursor:pointer;position:relative;display:grid;place-items:center;width:36px;height:36px;border-radius:50%}.account summary::-webkit-details-marker{display:none}.account summary img,.account .avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--paper);box-shadow:0 0 0 1px var(--line)}.account .avatar{display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font-weight:700}.sync-dot{position:absolute;right:0;bottom:0;width:11px;height:11px;border-radius:50%;border:2px solid var(--paper);background:var(--neutral)}.sync-dot.sync-idle{background:var(--ok)}.sync-dot.sync-syncing{background:var(--focus)}.sync-dot.sync-error{background:var(--bad)}.account-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:min(300px,calc(100vw - 32px));background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #00000026;padding:14px;display:grid;gap:10px;justify-items:start}.signout-confirm{display:grid;gap:8px}.save-state .sync-error{color:var(--bad)}.save-state .sync-offline{color:var(--warn)}.upload-prompt{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;background:var(--active);border:1px solid var(--focus);border-radius:10px;padding:10px 14px;margin:-12px 0 20px}.upload-prompt p{margin:0;flex:1 1 280px}label.btn:focus-within{outline:2px solid var(--focus);outline-offset:2px}.error-banner{background:var(--bad-bg);color:var(--bad);border-radius:8px;padding:8px 12px;margin:-16px 0 20px}.dialog.narrow{width:min(560px,calc(100vw - 32px))}.history-list{list-style:none;padding:0;margin:0;display:grid;gap:2px;max-height:calc(var(--vh) * 60);overflow-y:auto}.history-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 4px;border-bottom:1px solid var(--line)}.lyric-sheet{padding:16px}.sheet-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;max-width:900px;margin:0 auto 16px}.sheet-page{max-width:900px;margin:0 auto;background:#fff;color:#1a1a1a;border-radius:6px;box-shadow:0 1px 4px #0000001f;padding:48px 56px;font-family:Georgia,Times New Roman,serif}.sheet-page header{margin-bottom:24px}.sheet-page h1{font-size:1.8rem}.sheet-page header p{margin:4px 0 0;color:#666}.sheet-section{break-inside:avoid;margin-bottom:18px}.sheet-section h2{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;font-family:system-ui,sans-serif;color:#8a5a10;margin-bottom:4px}.sheet-section h2 .muted{color:#888}.sheet-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;line-height:1.6}.sheet-cols>span:first-child{color:#666}.sheet-col-heads{font:600 .7rem system-ui,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:#999;margin-bottom:8px}.sheet-cols.sheet-col-heads>span:first-child{color:#999}.sheet-line{line-height:1.7;font-size:1.1rem}.sheet-page sup{font:600 .6rem system-ui,sans-serif;color:#999;margin-left:4px}@media print{:root,body{background:#fff}#root{zoom:1!important}#zoom-dock,.sheet-controls{display:none}.lyric-sheet{padding:0}.sheet-page{box-shadow:none;padding:0;max-width:none}@page{margin:18mm}}.studio{min-height:calc(var(--vh) * 100);display:flex;flex-direction:column}.lyric-strip{min-height:92px;padding:14px 20px 10px;text-align:center;border-bottom:1px solid var(--line);background:var(--paper)}.strip-now{font-size:1.7rem;font-weight:700;min-height:2.2rem}.strip-next{font-size:1rem;margin-top:4px}.count-in{font-size:3rem;font-weight:800;color:var(--bad);line-height:1}.studio-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:10px 20px;border-bottom:1px solid var(--line)}.studio-bar .play{width:44px;height:44px;justify-content:center;border-radius:50%}.btn.rec{border-color:var(--bad);color:var(--bad);font-weight:700}.btn.rec.on{background:var(--bad);color:#fff;animation:rec-pulse 1.2s ease-in-out infinite}@keyframes rec-pulse{50%{box-shadow:0 0 0 6px var(--bad-bg)}}.studio-time{font-size:1.1rem;font-weight:700;min-width:4.5rem}.mic-box{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mic-box select{max-width:14rem;border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:4px}.meter{display:inline-block;width:90px;height:10px;border-radius:5px;background:var(--line);overflow:hidden}.meter span{display:block;height:100%;background:var(--ok);transition:width 60ms linear}.meter span.clip{background:var(--bad)}.studio-error{margin:10px 20px 0}.mic-error{display:grid;gap:6px;justify-items:start}.mic-error ul{margin:0;padding-left:1.2rem;display:grid;gap:2px;font-size:.9rem}.mic-retry{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.mic-retry select{max-width:22rem;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);padding:4px}.mic-detail{font-size:.75rem;opacity:.75;font-family:ui-monospace,monospace}.studio-note{margin:8px 20px 0;color:var(--warn)}.tl-scroll{flex:1;overflow:auto;margin:12px 20px 0;border:1px solid var(--line);border-radius:10px;background:var(--paper)}.tl{position:relative;min-width:100%}.tl-row{display:flex;min-height:72px;border-bottom:1px solid var(--line)}.tl-row.armed .tl-head{box-shadow:inset 3px 0 0 var(--bad)}.tl-head{position:sticky;left:0;z-index:3;flex:none;width:250px;padding:6px 10px;background:var(--paper);border-right:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr);gap:4px;align-content:center}.tl-zoom{display:flex;align-items:center;gap:4px}.tl-zoom .small.muted{margin-right:auto}.tl-ruler-row{min-height:30px;position:sticky;top:0;z-index:4;background:var(--paper)}.tl-lane{position:relative;flex:1;min-height:72px}.tl-ruler-row .tl-lane{min-height:30px}.ruler{cursor:pointer;background:var(--bg)}.tick{position:absolute;top:0;bottom:0;border-left:1px solid var(--line);padding-left:4px;font-size:.7rem;color:var(--muted);line-height:30px;font-variant-numeric:tabular-nums}.clip{position:absolute;top:4px;height:64px;border-radius:6px;overflow:hidden}.backing-clip{background:var(--bg);border:1px solid var(--line)}.take-clip{background:color-mix(in srgb,var(--accent) 16%,transparent);border:1px solid var(--accent);cursor:grab;touch-action:none}.take-clip.dragging{cursor:grabbing;opacity:.85}.take-clip.missing{border-style:dashed;display:grid;place-items:center}.live-clip{background:var(--bad-bg);border:1px solid var(--bad);padding:4px 8px;color:var(--bad);font-weight:700}.lane-note{padding:26px 12px}.empty-lane{min-height:48px}.playhead{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--focus);z-index:5;pointer-events:none}.track-top{display:flex;align-items:center;gap:6px}.track-name{flex:1;min-width:0;border:1px solid transparent;background:transparent;border-radius:6px;padding:2px 6px;font-weight:600}.track-name:hover{border-color:var(--line)}.track-name.static{padding-left:0}.arm{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--neutral);cursor:pointer;flex:none;line-height:1}.arm.on{color:#fff;background:var(--bad);border-color:var(--bad)}.ch-controls{display:flex;align-items:center;gap:4px}.ch-controls input[type=range]{flex:1;min-width:0;width:100%;accent-color:var(--accent)}.ch-controls input.pan{flex:0 0 52px;width:52px}.ch-btn{width:24px;height:22px;border-radius:4px;border:1px solid var(--line);background:var(--paper);font-size:.72rem;font-weight:700;cursor:pointer;flex:none}.ch-btn.on.mute{background:var(--warn);border-color:var(--warn);color:#1a1a1a}.ch-btn.on.solo{background:var(--focus);border-color:var(--focus);color:#fff}.edit-tools{display:inline-flex;gap:2px;align-items:center}.track-tools{display:flex;gap:4px;align-items:center;min-width:0}.fx-btn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem}.fx-btn.on{border-color:var(--accent);color:var(--accent)}.fx-btn.open{background:color-mix(in srgb,var(--accent) 14%,transparent)}.takes-btn{flex:none;font-size:.75rem}.takes-btn.open{background:var(--active)}.take-clip.selected{box-shadow:0 0 0 2px var(--focus);z-index:1}.clip-wave{position:absolute;top:4px;pointer-events:none}.fade-shape{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.fade-shape polygon{fill:var(--paper);opacity:.6}.trim-handle{position:absolute;top:0;bottom:0;width:7px;cursor:ew-resize;z-index:2}.trim-handle.start{left:0}.trim-handle.end{right:0}.trim-handle:hover{background:color-mix(in srgb,var(--accent) 45%,transparent)}.fade-handle{position:absolute;top:1px;width:9px;height:9px;margin-left:-4px;border-radius:2px;background:var(--paper);border:1px solid var(--accent);cursor:ew-resize;z-index:3;opacity:0}.take-clip:hover .fade-handle,.take-clip.selected .fade-handle{opacity:1}.take-lane-row{min-height:44px;background:color-mix(in srgb,var(--bg) 55%,transparent)}.take-lane-row .tl-head{padding-left:28px;display:flex;justify-content:space-between;align-items:center;gap:4px;min-height:44px}.take-lane-tools{display:inline-flex;gap:2px}.take-lane{min-height:44px;cursor:crosshair;touch-action:none}.take-ghost{position:absolute;top:3px;height:38px;border-radius:5px;border:1px dashed var(--line);overflow:hidden;pointer-events:none}.take-ghost canvas{position:relative;top:2px;opacity:.8}.take-used{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--accent) 28%,transparent);border-left:1px solid var(--accent);border-right:1px solid var(--accent)}.comp-sel{position:absolute;top:2px;bottom:2px;background:color-mix(in srgb,var(--focus) 22%,transparent);border:1px solid var(--focus);border-radius:4px;pointer-events:none}.line-mark{position:absolute;bottom:0;height:8px;border-left:2px solid var(--accent);opacity:.6;pointer-events:none}.fx-panel{margin:12px 20px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}.fx-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.fx-toggle{display:inline-flex;align-items:center;gap:6px}.fx-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin-bottom:12px}.fx-preset{display:grid;gap:2px;text-align:left;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);cursor:pointer;font:inherit}.fx-preset>span:first-child{font-weight:600}.fx-preset.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--paper))}.fx-knobs{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px 18px}.fx-knobs.off{opacity:.5}.fx-knob{display:grid;gap:2px;min-width:0}.fx-label{display:flex;justify-content:space-between;gap:6px;font-weight:600;font-size:.85rem}.fx-knob input[type=range]{width:100%;min-width:0;accent-color:var(--accent)}.fx-knob select{border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);padding:3px}.export-choices{display:grid;gap:6px;margin:8px 0}.export-choice{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.export-choice>span{display:grid;gap:2px}.export-choice.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.export-progress{display:grid;gap:4px;margin:8px 0}.export-progress progress{width:100%;accent-color:var(--accent)}@media(min-width:901px){.fx-panel{margin-right:calc((var(--dock-w) + 24px) / var(--zoom))}}.studio-tips{padding:8px 20px 14px;margin:0}.cal-steps{margin:4px 0 12px;padding-left:1.2rem;display:grid;gap:4px}@media(min-width:901px){.studio-bar,.lyric-strip,.studio-tips{padding-right:calc((var(--dock-w) + 24px) / var(--zoom))}.tl-scroll{margin-right:calc((var(--dock-w) + 24px) / var(--zoom))}}.melody-map{min-height:calc(var(--vh) * 100)}.melody-main{max-width:1300px;margin:0 auto;padding:16px 20px 110px;display:grid;gap:16px}.melody-facts{display:flex;flex-wrap:wrap;gap:6px}.fact{background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:.85rem;font-weight:600;white-space:nowrap}.fact .muted{font-weight:400;margin-right:4px}.overview-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.piano-roll{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;cursor:pointer}.piano-roll canvas{display:block}.scan-panel{max-width:560px}.scan-panel .btn{justify-self:start}.scan-again{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-bottom:-8px}.melody-lines{list-style:none;padding:0;margin:0;display:grid;gap:14px}.melody-line{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:8px}.melody-line.active{border-color:var(--focus);box-shadow:0 0 0 2px var(--active)}.melody-line .k-section{margin:0}.melody-line-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.melody-line-text{font-weight:600;font-size:1.05rem}.fit-summary{margin-left:auto;display:inline-flex;gap:8px;flex-wrap:wrap}.fit-ok{color:var(--ok);font-weight:600}.fit-bad{color:var(--bad);font-weight:600}.fit-warn{color:var(--warn);font-weight:600}.bind-scroll{overflow-x:auto;padding-bottom:4px}.bind-grid{display:grid;justify-content:start;gap:3px;align-items:center;font-size:.85rem}.bind-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding-right:6px}.bind-note{text-align:center;font-family:ui-monospace,monospace;font-size:.75rem;color:var(--accent);font-weight:700;white-space:nowrap}.bind-orig{text-align:center;color:var(--muted)}.bind-parody{border:1px solid var(--line);border-radius:5px;background:var(--bg);padding:2px 6px;text-align:center;cursor:pointer;font-weight:600;min-height:1.6rem}.bind-parody.selected{border-color:var(--focus);box-shadow:inset 0 0 0 1px var(--focus)}.bind-parody.fit-melisma{border-style:dashed;border-color:var(--accent)}.bind-parody.fit-no-note{color:var(--muted)}.bind-parody.fit-extra{background:var(--bad-bg);border-color:var(--bad);color:var(--bad)}.bind-parody.fit-unused{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}.guide-volume{width:90px;accent-color:var(--accent)}.guide-voice{border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:4px}.sing{min-height:calc(var(--vh) * 100);display:flex;flex-direction:column}.sing-title{font-size:1.1rem}.sing-layout{flex:1;display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:20px;padding:16px 20px 96px;max-width:1500px;width:100%;margin:0 auto;align-items:start}.sing-side{display:grid;gap:14px;min-width:0}.sing-layout>*,.sing-side>*,.panel>*{min-width:0}.file-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.track-card-text{min-width:0}.now-playing,.panel p,.panel strong{overflow-wrap:anywhere}.video-frame{position:relative;aspect-ratio:16 / 9;max-width:100%;background:#000;border-radius:10px;overflow:hidden}.video-frame.empty{background:var(--paper);border:1px dashed var(--line);display:grid;place-items:center}.video-frame.empty .video-host{display:none}.video-host,.video-host iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.video-frame .error-banner,.sing-side .error-banner{margin:0}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:8px}.panel h3{font-size:.95rem}.panel p{margin:0}.search-row{display:flex;gap:6px}.search-row input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:6px 10px}.quick-queries{display:flex;flex-wrap:wrap;gap:4px}.quick-queries .chip{padding:1px 8px;font-size:.8rem}.video-results{list-style:none;padding:0;margin:0;display:grid;gap:4px;max-height:320px;overflow-y:auto}.video-result{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:8px;padding:4px;cursor:pointer}.video-result:hover{background:var(--active)}.video-result.current{border-color:var(--accent)}.video-result img{border-radius:4px;object-fit:cover;flex:none;background:var(--line)}.video-result>span{display:grid;min-width:0}.video-title{font-size:.88rem;font-weight:600;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.now-playing{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabs.wide{display:flex}.tabs.wide .tab{flex:1;padding:6px 8px}.youtube-tab,.generate{display:grid;gap:8px}.generated-current{display:grid;gap:6px;padding-bottom:8px;border-bottom:1px solid var(--line)}.guide-vocal{display:flex;align-items:center;gap:8px}.guide-vocal input{flex:1;accent-color:var(--accent)}.guide-vocal output{min-width:2.6rem;text-align:right;font-variant-numeric:tabular-nums}.consent{display:flex;gap:8px;align-items:flex-start}.consent input{margin-top:3px}.generate>.btn{justify-self:start}.job-progress{display:grid;gap:4px}.job-stage{display:flex;justify-content:space-between;font-size:.88rem;font-weight:600}.job-progress progress{width:100%;height:8px;accent-color:var(--accent)}.track-card{display:flex;align-items:center;gap:14px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px}.track-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-size:1.4rem;flex:none}.offset-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.offset-row>.small{margin-right:4px}.offset-value{min-width:3.4rem;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}.karaoke{background:var(--paper);border:1px solid var(--line);border-radius:14px;max-height:calc(var(--vh) * 100 - 190px);overflow-y:auto;padding:16px 24px calc(var(--vh) * 40)}.karaoke-empty{text-align:center}.karaoke-lines{list-style:none;padding:0;margin:0}.k-line{padding:6px 10px;border-radius:10px;cursor:pointer;transition:opacity .2s}.k-line:hover{background:var(--active)}.k-section{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:700;margin:18px 0 4px 3.6rem}.k-main{display:flex;align-items:baseline;gap:12px}.k-time{flex:none;width:2.8rem;font-size:.72rem;color:var(--neutral);font-variant-numeric:tabular-nums;text-align:right}.k-text{font-size:1.5rem;line-height:1.35;font-weight:600;color:var(--muted)}.k-sub{margin-left:calc(2.8rem + 12px);font-size:.95rem;color:var(--neutral)}.k-line.past .k-text{color:var(--neutral)}.k-line.active .k-text{color:var(--ink);font-size:1.85rem}.k-line.active{background:var(--active)}.k-text .sung{color:var(--accent)}.k-text .singing{background:linear-gradient(90deg,var(--accent) var(--fill),var(--ink) var(--fill));-webkit-background-clip:text;background-clip:text;color:transparent}.k-line.untimed .k-time{color:var(--line)}.timing-actions{display:flex;flex-wrap:wrap;gap:6px}.lineup-hint{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--active);border-radius:8px;padding:8px 10px}.k-line.misordered .k-time{color:var(--warn);font-weight:700}.warn-text{color:var(--warn)}.karaoke.editing .k-line{cursor:default}.karaoke.editing .k-main{flex-wrap:wrap}.time-editor{display:inline-flex;align-items:center;gap:3px;flex:none}.time-editor.warn input{border-color:var(--warn);background:var(--warn-bg)}.time-editor input{width:5.2rem;border:1px solid var(--line);border-radius:6px;background:var(--bg);padding:3px 6px;font-variant-numeric:tabular-nums;text-align:center;font-size:.85rem}.time-editor input.bad{border-color:var(--bad)}.time-editor .btn{padding:2px 7px}.syncing .k-line.cursor{outline:2px dashed var(--accent);outline-offset:-2px}.syncing .k-line.cursor .k-time:before{content:"tap ▸ ";color:var(--accent);font-weight:700}.transport{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 20px calc(10px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--paper) 94%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line)}.transport .play{width:44px;height:44px;justify-content:center;border-radius:50%;font-size:1rem}.t-time{font-variant-numeric:tabular-nums;font-size:.85rem;white-space:nowrap}.scrub{flex:1;min-width:140px;accent-color:var(--accent)}.t-field{display:inline-flex;align-items:center;gap:6px}.t-field select{border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:4px;max-width:11rem}@media(max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr)}.inspector{position:static;max-height:none}.sing-layout{grid-template-columns:minmax(0,1fr);padding-bottom:150px}.karaoke{max-height:calc(var(--vh) * 70);order:-1}}@media(max-width:640px){:root{--lh: 28px}.topbar{padding-block:8px;padding-left:12px}.topbar,.home-header{padding-right:calc((var(--dock-w) + 20px) / var(--zoom))}.workspace{padding:12px}.pane-headings,.section-body{gap:0 4px}.pane-headings,.section-body{grid-template-columns:1.4rem minmax(0,1fr) 5.4rem minmax(0,1fr)}.gutter-row{grid-template-columns:.7rem 1fr 1.8rem 1fr .7rem;font-size:.82rem}.scheme{font-size:.62rem}.flag{min-width:1.8rem}.flag-diff{display:none}.lyrics{font-size:15px;padding:0 6px}.section-header{flex-wrap:wrap}.section-preview{display:none}.import-grid{grid-template-columns:1fr}.sheet-actions{padding-left:0}.sheet-page{padding:24px 20px}.sheet-cols{gap:12px;font-size:.9rem}}.take-cloud{color:var(--muted)}.take-cloud.on{color:var(--ok)}.studio-gate-body{max-width:34rem;margin:4rem auto;padding:0 1rem;text-align:center}.studio-gate-body h2{margin-bottom:.5rem}.studio-gate-body .btn{margin-top:1rem}
