:root{--bg:var(--app-bg);--surface:var(--app-panel);--surface-2:var(--app-panel-2);--line:var(--app-line);--text:var(--app-text);--muted:var(--app-muted);--faint:var(--app-faint);--green:var(--app-accent);--green-deep:var(--app-accent-soft);--coral:var(--app-coral);--violet:#8c82ff;--cyan:var(--app-secondary);--warm:var(--app-warm);--radius:10px;--shell-sidebar:var(--app-sidebar);--shell-panel-alt:#171a20;--shell-panel-alt-2:#1a1d23;--shell-panel-input:#111419;--shell-deep:#111318;--shell-line-deep:#252932;--shell-line-soft:#272b35;--shell-hover:var(--app-elevated);--shell-on-accent:var(--app-accent-ink);--shell-on-accent-soft:#0c1713;--shell-track:#303640;--shell-track-strong:#20252d;--shell-track-deep:#20242b;--shell-divider:#34334b;--shell-divider-strong:#3c3767;--shell-divider-soft:#20252d;--shell-pill:#27252b;--shell-active:#48544f;--shell-active-bg:#191e21}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:var(--font-base) var(--font-family-base);letter-spacing:0}button,textarea,input{font:inherit}button{cursor:pointer;color:inherit;border:0}button:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:2px}.app-shell{display:flex;min-height:100vh}.sidebar{width:244px;background:var(--shell-sidebar);border-right:1px solid var(--line);padding:26px 16px 18px;display:flex;flex-direction:column;flex-shrink:0}.brand{font-size:18px;font-weight:800;letter-spacing:-.6px;display:flex;align-items:center;gap:10px;margin:0 10px 30px}.brand-mark{display:grid;place-items:center;width:26px;height:26px;background:var(--green);color:var(--shell-on-accent-soft);font-weight:800;border-radius:7px}.workspace-switcher{height:42px;border:1px solid var(--line);border-radius:7px;padding:0 12px;display:flex;align-items:center;gap:9px;color:#d8dce3;margin-bottom:23px}.workspace-switcher i{margin-left:auto;color:var(--muted)}.status-dot,.save-dot{width:7px;height:7px;background:var(--green);border-radius:50%;display:inline-block}.main-nav{display:grid;gap:4px}.nav-item,.tag-list button{background:transparent;color:var(--muted);display:flex;gap:12px;align-items:center;min-height:42px;padding:0 11px;border-radius:7px;text-align:left;width:100%}.nav-item:hover,.tag-list button:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--shell-track-strong);color:var(--text);font-weight:700}.icon{font-size:17px;width:17px;text-align:center;color:#aeb5c2}.nav-count{margin-left:auto;color:var(--faint);font:12px var(--font-family-mono)}.nav-count.warm{color:var(--warm)}.side-section-label,.eyebrow{font:11px var(--font-family-mono);letter-spacing:.12em;color:var(--faint)}.side-section-label{margin:30px 11px 9px}.tag-list{display:grid;gap:2px}.tag-list button{min-height:36px;font-size:12px;padding-left:13px}.tag-list button span:last-child{margin-left:auto;color:var(--faint)}.tag-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--coral)}.tag-dot.violet{background:var(--violet)}.tag-dot.cyan{background:var(--cyan)}.sidebar-spacer{flex:1}.storage-card{background:var(--shell-panel-alt-2);border:1px solid var(--shell-line-soft);border-radius:7px;padding:13px;margin:18px 0 16px}.storage-row{display:flex;justify-content:space-between;color:#b4bac4;font-size:11px}.storage-row strong{color:#eef0f3;font:11px var(--font-family-mono)}.storage-row small{color:var(--faint)}.progress,.mini-progress{height:4px;background:var(--shell-track);border-radius:20px;overflow:hidden}.progress{margin:11px 0 8px}.progress span{display:block;height:100%;width:24%;background:var(--green)}.storage-card p{color:var(--faint);font-size:11px;margin:0}.profile{border-top:1px solid var(--line);padding:16px 6px 0;display:flex;align-items:center;gap:9px}.avatar{width:29px;height:29px;border-radius:50%;background:#4d455c;display:grid;place-items:center;font-weight:700;font-size:12px}.profile strong,.profile span{display:block;font-size:12px}.profile span{font-size:11px;color:var(--faint);margin-top:2px}.profile button{margin-left:auto;background:transparent;color:var(--faint)}.main-content{flex:1;min-width:0;padding:0 48px 50px;background:radial-gradient(circle at 80% 0%,#242342 0,transparent 32%),var(--bg)}.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.breadcrumbs{display:flex;align-items:center;gap:11px;color:var(--muted);font-size:12px}.breadcrumbs strong{color:var(--text)}.breadcrumbs b{color:#454b57;font-weight:400}.autosave{color:var(--faint);display:flex;gap:7px;align-items:center;margin-left:8px;font-size:11px}.top-actions,.editor-actions{display:flex;gap:9px}.ghost-btn,.outline-btn,.primary-btn,.copy-all,.folder-btn{min-height:40px;border-radius:7px;padding:0 14px;transition:.2s ease}.ghost-btn{background:transparent;color:var(--muted)}.ghost-btn:hover{background:var(--surface-2);color:var(--text)}.outline-btn{background:var(--surface);border:1px solid var(--line);color:#d6d9e0}.outline-btn span{font:11px var(--font-family-mono);color:var(--faint);margin-left:8px}.primary-btn{background:var(--green);color:var(--shell-on-accent);font-weight:800}.primary-btn:hover,.copy-all:hover{filter:brightness(1.07);transform:translateY(-1px)}.project-header{display:flex;justify-content:space-between;align-items:center;padding:34px 0 32px;max-width:1300px}.project-title{display:flex;align-items:center;gap:18px}.cover-art{width:74px;height:74px;border-radius:10px;position:relative;overflow:hidden;background:linear-gradient(135deg,#4e2457,#161b52 55%,#75c1bb);display:grid;place-items:center;font-size:21px;line-height:.95;font-weight:800;box-shadow:0 12px 30px #08090c}.cover-orbit{position:absolute;width:90px;height:30px;border:1px solid #bce8df8a;border-radius:50%;transform:rotate(-35deg)}.cover-art span{position:relative;color:#f7f5ea}.project-header h1{font-size:29px;letter-spacing:-1.4px;margin:5px 0 3px}.project-header p{color:var(--muted);margin:0 0 10px;font-size:12px}.project-meta{display:flex;align-items:center;gap:13px;color:var(--faint);font-size:11px}.pill{padding:4px 8px;background:var(--shell-pill);border-radius:100px;color:#c8cad0;display:flex;gap:6px;align-items:center}.pill .tag-dot{width:6px;height:6px}.header-stat{width:145px;color:var(--faint);font-size:11px}.header-stat strong{display:block;color:var(--text);font-size:22px;margin:6px 0}.mini-progress{height:5px}.mini-progress span{display:block;height:100%;width:68%;background:var(--green)}.content-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.8fr);gap:34px;max-width:1300px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:15px}.section-head.compact{margin-top:32px}.section-head h2,.tool-panel h2{font-size:16px;letter-spacing:-.4px;margin:6px 0 0}.icon-btn,.more-btn{background:transparent;color:var(--muted);font-size:18px;min-width:40px;min-height:40px;border-radius:6px}.icon-btn:hover,.more-btn:hover{background:var(--surface-2);color:var(--text)}.lyrics-card,.tool-panel{border:1px solid var(--line);background:var(--shell-panel-alt);border-radius:var(--radius)}.lyrics-toolbar{height:58px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 20px}.segmented{display:flex;background:var(--shell-deep);border:1px solid var(--line);border-radius:6px;padding:3px;gap:2px}.segmented button{background:transparent;color:var(--faint);border-radius:4px;padding:6px 11px;font-size:11px}.segmented button.active{background:var(--shell-track);color:var(--text);font-weight:700}.count-label{color:var(--faint);font:11px var(--font-family-mono)}.lyrics-content{padding:8px 20px 16px}.lyric-block{display:grid;grid-template-columns:38px 1fr;gap:8px;padding:15px 0;border-bottom:1px solid var(--shell-line-deep)}.line-num{font:11px var(--font-family-mono);color:#525966;padding-top:5px}.lyric-block textarea{display:block;width:100%;border:0;resize:none;background:transparent;line-height:1.65;padding:0;color:var(--text);min-height:24px;overflow:hidden}.lyric-block .en-line{color:#89919e;font-size:12px;margin-top:5px}.add-line{margin:15px 0 0 38px;background:transparent;color:var(--muted);font-size:12px;padding:7px}.add-line:hover{color:var(--green)}.suno-panel{border-color:var(--shell-divider-strong);background:linear-gradient(145deg,#201e3c,var(--shell-panel-alt) 58%);box-shadow:0 15px 42px #0b0b18}.tool-panel{padding:20px;margin-bottom:15px}.panel-title{display:flex;justify-content:space-between;align-items:flex-start}.panel-title h2{font-size:18px;margin-top:6px}.spark{color:var(--green);font-size:21px}.panel-copy{color:#a9a5bb;font-size:12px;line-height:1.7;margin:14px 0 18px}.suno-block{background:#141620;border:1px solid var(--shell-divider);border-radius:7px;padding:14px}.block-head,.note-footer{display:flex;justify-content:space-between;align-items:center}.block-head{font-size:11px;font-weight:700;color:#d5d3df}.block-head small{font:11px var(--font-family-mono);color:#6c668c;margin-left:6px}.copy-small{background:transparent;color:var(--green);font-size:11px}.suno-block p{font-size:12px;line-height:1.65;color:#b5b3c2;margin:12px 0 0}.copy-all{width:100%;background:var(--green);color:var(--shell-on-accent);font-weight:800;margin-top:12px;display:flex;justify-content:space-between;align-items:center}.copy-all span{font-size:19px}.notes{width:100%;min-height:110px;resize:vertical;background:transparent;border:0;color:#ccd0d7;line-height:1.7;margin:12px 0 17px;display:block}.notes::placeholder{color:var(--faint)}.note-footer{border-top:1px solid var(--line);padding-top:12px;color:var(--faint);font-size:11px}.folder-path{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:7px;padding:12px;margin-top:15px}.folder-path>span{font-size:22px;color:var(--green)}.folder-path strong,.folder-path small{display:block}.folder-path strong{font-size:11px}.folder-path small{color:var(--faint);font:11px var(--font-family-mono);margin-top:5px;overflow-wrap:anywhere}.folder-btn{width:100%;border:1px solid var(--line);background:var(--shell-track-deep);color:#cdd1d9;margin-top:10px}.folder-btn:hover{border-color:#59616e}.audio-row{border:1px solid var(--line);background:var(--shell-panel-alt);border-radius:9px;display:flex;align-items:center;gap:14px;padding:13px 15px;margin-bottom:9px;min-height:84px}.audio-row.active{border-color:var(--shell-active);background:var(--shell-active-bg)}.play-btn{width:40px;height:40px;border-radius:50%;background:var(--green);color:var(--shell-on-accent);font-size:13px;flex-shrink:0}.audio-row:not(.active) .play-btn{background:#2c323b;color:#aab1bc}.audio-main{min-width:0;flex:1}.audio-main strong{font-size:12px}.version-badge{display:inline-block;margin-left:8px;padding:3px 5px;border-radius:3px;background:#2c5747;color:var(--green);font:11px var(--font-family-mono)}.version-badge.muted{background:#2a2d35;color:#8e95a1}.audio-main p{font:11px var(--font-family-mono);color:var(--faint);margin:6px 0 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audio-duration{color:#aeb4be;font:11px var(--font-family-mono)}.more-btn{font-size:14px;min-width:28px}.waveform{display:flex;height:13px;align-items:center;gap:2px}.waveform i{display:block;width:3px;border-radius:3px;background:#5fb28e;height:var(--h,8px)}.waveform i:nth-child(2n){height:11px}.waveform i:nth-child(3n){height:5px}.waveform.subtle i{background:#4c545f}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#eaf7ef;color:#13241a;padding:10px 16px;border-radius:7px;font-size:12px;font-weight:700;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.modal-backdrop{position:fixed;inset:0;background:#060709aa;display:none;place-items:center;padding:20px}.modal-backdrop.open{display:grid}.modal{width:min(460px,100%);background:var(--shell-panel-alt-2);border:1px solid var(--line);border-radius:10px;padding:24px;box-shadow:0 20px 80px #0008}.modal-head{display:flex;justify-content:space-between;margin-bottom:25px}.modal h2{margin:6px 0 0}.modal label{display:grid;gap:8px;font-size:12px;color:#b7bdc8}.modal input{background:var(--shell-panel-input);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:12px}.modal p{font-size:11px;color:var(--faint);line-height:1.7}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:25px}@media(max-width:1020px){.sidebar{width:200px}.main-content{padding:0 28px}.content-grid{grid-template-columns:1fr}.tool-column{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.tool-panel{margin:0}.suno-panel{grid-column:span 2}}@media(max-width:700px){.sidebar{display:none}.main-content{padding:0 16px 35px}.topbar{height:68px}.breadcrumbs .autosave{display:none}.top-actions .ghost-btn{font-size:0;padding:0 10px}.top-actions .ghost-btn span{font-size:17px}.primary-btn{min-height:38px;padding:0 10px}.project-header{align-items:flex-start;padding:25px 0}.project-title{gap:12px}.cover-art{width:60px;height:60px}.project-header h1{font-size:24px}.project-header p{max-width:220px;line-height:1.5}.header-stat{display:none}.project-meta{flex-wrap:wrap;gap:7px}.tool-column{display:block}.tool-panel{margin-bottom:15px}.section-head{align-items:center}.editor-actions .icon-btn{display:none}.outline-btn span{display:none}.lyrics-toolbar{padding:0 12px}.lyrics-content{padding:5px 12px 14px}.lyric-block{grid-template-columns:26px 1fr}.add-line{margin-left:26px}.audio-row{gap:9px;padding:11px}.audio-duration{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.workflow-strip{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#15181e;border-radius:9px;padding:12px 16px;margin-bottom:26px;overflow:auto}.workflow-label{display:grid;gap:4px;min-width:100px}.workflow-label strong{font-size:12px}.workflow-step{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 10px;background:transparent;color:var(--muted);border-radius:6px;white-space:nowrap}.workflow-step b{font:10px var(--font-family-mono);color:var(--faint)}.workflow-step span{font-size:11px}.workflow-step:hover,.workflow-step.active{background:#26372f;color:var(--text)}.workflow-step.active b{color:var(--green)}.workflow-arrow{color:#414753;font-size:14px}.project-modal{width:min(680px,100%)}.project-modal label{margin-bottom:13px}.project-modal textarea{min-height:70px;resize:vertical;background:var(--shell-panel-input);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:10px;line-height:1.6}.translation-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.editor-focus{grid-column:1 / -1}.editor-focus~.tool-column{display:none}@media(max-width:700px){.workflow-strip{margin-left:-2px;margin-right:-2px}.translation-grid{grid-template-columns:1fr}}
.audio-list.drag-ready{outline:2px dashed var(--green);outline-offset:6px;border-radius:8px}
.lyrics-card{min-height:560px}.lyrics-content{max-height:680px;overflow-y:auto}.lyric-block textarea{min-height:44px}.project-modal>label>textarea#newProjectPrompt{min-height:190px}.project-modal{max-height:calc(100vh - 40px);overflow-y:auto}
@media(max-width:700px){.lyrics-card{min-height:460px}.lyrics-content{max-height:none}.project-modal>label>textarea#newProjectPrompt{min-height:150px}}
.project-search{height:36px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:6px;padding:0 9px;background:var(--shell-panel-input);margin-bottom:7px}.project-search span{color:var(--faint);font-size:17px}.project-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:11px}.project-search input::placeholder{color:var(--faint)}#projectSort{width:100%;height:28px;background:#171a20;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:0 8px;font-size:11px}.project-list{display:grid;gap:2px;margin-top:7px;max-height:132px;overflow:auto}.project-list-item{display:flex;align-items:center;gap:8px;text-align:left;background:transparent;padding:7px 8px;border-radius:5px}.project-list-item:hover,.project-list-item.active{background:var(--shell-track-strong)}.project-list-item strong,.project-list-item small{display:block;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-list-item strong{font-size:11px}.project-list-item small{font-size:9px;color:var(--faint);margin-top:3px}.project-list-dot{width:6px;height:6px;border-radius:50%;background:var(--faint);flex-shrink:0}.project-list-item.active .project-list-dot{background:var(--green)}.project-empty{color:var(--faint);font-size:10px;padding:8px}
.project-modal{width:min(1180px,calc(100vw - 64px));max-height:calc(100vh - 64px);padding:32px 40px}.project-modal>label>textarea#newProjectPrompt{min-height:280px}.project-modal .translation-grid{grid-template-columns:1fr 1fr}.field-help{display:block;color:var(--faint);font-size:11px;font-weight:400;line-height:1.5;margin-top:-3px}.project-modal .translation-grid textarea{min-height:150px}.project-modal .modal-actions{margin-top:28px}@media(max-width:800px){.project-modal{width:calc(100vw - 28px);padding:22px 18px}.project-modal .translation-grid{grid-template-columns:1fr}.project-modal>label>textarea#newProjectPrompt{min-height:190px}}
.lyrics-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;align-items:start}.lyrics-content .lyric-block{padding:16px;border:1px solid #2b303b;border-radius:8px;background:#14171c;min-width:0}.lyrics-content .add-line{grid-column:1/-1;margin-left:0}.lyrics-content .line-num{color:var(--green)}
@media(min-width:1500px){.lyrics-content{grid-template-columns:repeat(4,minmax(260px,1fr))}}@media(min-width:1100px) and (max-width:1499px){.lyrics-content{grid-template-columns:repeat(3,minmax(260px,1fr))}}@media(max-width:700px){.lyrics-content{grid-template-columns:1fr}.lyrics-content .lyric-block{padding:14px}}
.version-panel{border-color:#3e4e54}.version-help{font-size:11px;color:var(--faint);line-height:1.6;margin:10px 0 14px}.version-card{border:1px solid var(--line);background:#13161b;border-radius:8px;padding:12px;margin-bottom:9px;transition:.2s}.version-card.drop-active{border-color:var(--green);background:#19251f;box-shadow:0 0 0 2px #75e6aa33}.version-card-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:10px}.version-card-head strong{display:block;font-size:12px}.version-card-head span{display:inline-block;color:var(--green);font:11px var(--font-family-mono);margin-top:5px}.version-card-head small{color:var(--faint);font:11px var(--font-family-mono)}.version-drop{border:1px dashed #3c434e;border-radius:6px;padding:9px;text-align:center;color:#737b88;font-size:11px}.version-files{display:grid;gap:5px;margin-top:8px}.version-file{display:flex;align-items:center;gap:7px;text-align:left;background:#20252c;color:#cdd3db;border-radius:5px;padding:8px;font-size:10px;min-width:0}.version-file span:first-child{color:var(--green);font-size:9px}.version-file span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.version-empty{color:var(--faint);font-size:10px;padding:3px}
.lyrics-content.read-mode{display:block;max-height:calc(100vh - 390px);min-height:520px;overflow-y:auto;padding:24px 34px 48px}.lyrics-content.read-mode .lyric-display{padding:24px 10px 28px;border-bottom:1px solid #2a3038}.lyrics-content.read-mode .lyric-display:first-child{padding-top:2px}.lyric-display-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.lyric-display-head .line-num{font-size:11px;color:var(--green)}.lyric-display-head strong{font-size:16px;color:#e8ebef;font-weight:700}.lyric-display-zh{font-size:17px;line-height:2;color:#f3f4f5;letter-spacing:.01em;white-space:normal}.lyric-display-en{font-size:13px;line-height:1.8;color:#89929f;margin-top:12px}@media(max-width:700px){.lyrics-content.read-mode{max-height:none;min-height:420px;padding:18px 16px 32px}.lyrics-content.read-mode .lyric-display{padding:20px 4px 24px}.lyric-display-zh{font-size:16px}}
.project-root{border:1px solid var(--line);border-radius:6px;padding:9px 10px;margin:10px 0 12px;background:var(--shell-panel-input)}.project-root span,.project-root strong{display:block}.project-root span{font-size:11px;color:var(--faint);margin-bottom:4px}.project-root strong{font:11px var(--font-family-mono);color:#c2c9d2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:22px}.project-root button{float:right;margin-top:-22px;background:transparent;color:var(--green);font-size:16px;min-width:28px;min-height:28px}
.project-header,.workflow-strip{display:none}.editor-column>.section-head{margin-top:28px;margin-bottom:26px}.editor-column>.section-head h2{font-size:28px;letter-spacing:-1px}.lyrics-card{margin-bottom:30px}
:root{--sidebar-width:244px;--editor-width:68%}.sidebar{width:var(--sidebar-width)}.content-grid{display:flex;gap:0;max-width:1300px}.editor-column{flex:0 0 var(--editor-width);width:var(--editor-width);min-width:0;padding-right:18px}.tool-column{flex:1;min-width:280px;padding-left:18px}.resize-handle{flex:0 0 8px;width:8px;cursor:col-resize;position:relative;touch-action:none;z-index:5}.resize-handle::after{content:"";position:absolute;top:0;bottom:0;left:3px;width:2px;background:transparent;border-radius:2px;transition:.2s}.resize-handle:hover::after,.resizing .resize-handle::after{background:var(--green)}body.resizing{cursor:col-resize;user-select:none}.topbar{height:58px}.editor-column>.section-head{margin-top:16px;margin-bottom:18px}.editor-column>.section-head h2{font-size:26px}
@media(max-width:1020px){.resize-handle{display:none}.content-grid{display:grid;gap:34px}.editor-column{width:auto;padding-right:0}.tool-column{padding-left:0}}
@media(max-width:700px){.sidebar{width:0}.topbar{height:54px}.editor-column>.section-head{margin-top:12px}}
.breadcrumbs button{background:transparent;color:var(--muted);padding:0;font-size:12px}.breadcrumbs button:hover{color:var(--text)}.metadata-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.metadata-grid label{display:grid;gap:7px}.metadata-grid input,.metadata-grid select{width:100%;background:var(--shell-panel-input);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:11px}.metadata-wide{grid-column:span 2}.library-view{display:none;padding:34px 0 60px;max-width:1300px}.library-header{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.library-header h1{font-size:30px;margin:8px 0 5px}.library-header p{font-size:12px;color:var(--muted);margin:0}.library-toolbar{display:flex;gap:10px;align-items:center;border:1px solid var(--line);background:#171a20;border-radius:9px;padding:12px;margin-bottom:15px}.library-search{display:flex;align-items:center;gap:8px;flex:1;min-width:260px;border:1px solid var(--line);background:var(--shell-panel-input);border-radius:6px;padding:0 10px;color:var(--faint);font-size:18px}.library-search input{border:0;outline:0;background:transparent;color:var(--text);width:100%;height:38px}.library-toolbar select{height:38px;background:var(--shell-panel-input);color:#c6ccd4;border:1px solid var(--line);border-radius:6px;padding:0 10px}.library-count{font:11px var(--font-family-mono);color:var(--faint);margin:16px 4px}.library-list{display:grid;gap:8px}.library-row{display:grid;grid-template-columns:44px minmax(220px,1fr) 110px 110px 30px;align-items:center;gap:16px;text-align:left;background:#171a20;border:1px solid var(--line);border-radius:8px;padding:14px 16px;transition:.2s}.library-row:hover{border-color:#61706c;background:#1c2324}.library-cover{width:40px;height:40px;display:grid;place-items:center;border-radius:7px;background:linear-gradient(135deg,#4b2555,#25495e);font-size:18px;font-weight:800}.library-main strong,.library-main small,.library-main em{display:block}.library-main strong{font-size:14px}.library-main small{color:var(--muted);font-size:11px;margin-top:5px}.library-main em{color:var(--faint);font-size:10px;font-style:normal;margin-top:5px}.library-lyrics,.library-time{color:var(--muted);font-size:11px}.library-arrow{color:var(--green);font-size:18px}.library-empty{border:1px dashed var(--line);padding:50px;text-align:center;color:var(--faint)}
@media(max-width:800px){.metadata-grid{grid-template-columns:1fr 1fr}.metadata-wide{grid-column:span 2}.library-toolbar{flex-wrap:wrap}.library-search{min-width:100%}.library-row{grid-template-columns:40px 1fr 28px}.library-lyrics,.library-time{display:none}}
.version-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.version-select,.version-stems,.version-online-upload{min-height:39px;border-radius:5px;padding:8px 10px;font-size:11px;white-space:nowrap}.version-select{background:#26332f;color:var(--green);border:1px solid #385345}.version-stems{background:#202830;color:#b9d3df;border:1px solid #3d5664}.version-stems:hover{background:#273640;color:#dcf5ff}.version-online-upload{background:#17352b;color:#75e6aa;border:1px solid rgba(117,230,170,.35)}.version-online-upload:hover{background:#214a39}.version-online-upload:disabled{opacity:.6;cursor:wait}.version-actions .version-drop{flex:1 1 150px}
.player-bar{position:fixed;left:calc(var(--sidebar-width) + 18px);right:24px;bottom:16px;z-index:50;display:flex;align-items:center;gap:12px;background:var(--shell-track-strong);border:1px solid #48534f;border-radius:10px;padding:10px 14px;box-shadow:0 16px 40px #050607cc}.player-bar.hidden{display:none}.player-bar>button{background:transparent;color:#c9d0d7;min-width:32px;min-height:32px;border-radius:5px}.player-bar>button:hover{background:#303942;color:var(--green)}.player-bar .player-play{background:var(--green);color:#102017;border-radius:50%;font-size:12px}.player-track{min-width:240px;flex:1}.player-track-title{display:flex;gap:10px;align-items:center;margin-bottom:7px}.player-track-title strong{font-size:12px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-track-title span{font:11px var(--font-family-mono);color:var(--faint)}.player-track input{display:block;width:100%;accent-color:var(--green)}.player-times{display:flex;justify-content:space-between;color:var(--faint);font:10px var(--font-family-mono)}.player-volume{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.player-volume input{width:80px;accent-color:var(--green)}.player-bar select{background:#171b20;color:#c9d0d7;border:1px solid var(--line);border-radius:5px;padding:6px;font-size:10px}.version-actions .version-drop{min-height:39px;display:grid;place-items:center}@media(max-width:700px){.player-bar{left:12px;right:12px;bottom:10px;gap:5px;padding:8px}.player-bar>button{min-width:28px}.player-volume{display:none}.player-track{min-width:0}.player-track-title strong{max-width:120px}}
.danger-btn{background:transparent;border:1px solid #653b42;color:#ff9b9b;border-radius:6px;padding:0 12px;min-height:38px;font-size:11px}.danger-btn:hover{background:#3a2228}.view-toggle{display:flex;border:1px solid var(--line);border-radius:6px;padding:3px;background:var(--shell-panel-input)}.view-toggle button{background:transparent;color:var(--faint);min-width:30px;height:30px;border-radius:4px}.view-toggle button.active{background:#303840;color:var(--text)}.library-list.mode-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.library-list.mode-covers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.library-item{position:relative;border:1px solid var(--line);border-radius:8px;background:#171a20;transition:.2s}.library-item:hover{border-color:#62736d;background:#1b2324}.library-item.list{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.library-open{display:grid;grid-template-columns:44px minmax(0,1fr) 110px 110px;align-items:center;gap:16px;text-align:left;background:transparent;color:inherit;padding:14px 16px;min-width:0}.library-item.cards .library-open{grid-template-columns:44px 1fr;align-items:start;padding:16px}.library-item.covers .library-open{display:block;padding:0}.library-item.covers .library-cover{width:100%;height:130px;border-radius:7px 7px 0 0;font-size:44px}.library-item.covers .library-main{display:block;padding:14px}.library-item.covers .library-lyrics,.library-item.covers .library-time{display:none}.library-actions{display:flex;gap:3px;padding-right:12px}.library-actions button{width:30px;height:30px;border-radius:5px;background:transparent;color:var(--muted)}.library-actions button:hover{background:#303840;color:var(--green)}.library-item.cards .library-lyrics,.library-item.cards .library-time,.library-item.cards .library-actions{display:none}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;padding:22px 0;color:var(--muted);font:11px var(--font-family-mono)}.pagination button,.pagination select{background:var(--shell-track-strong);border:1px solid var(--line);color:#ccd2da;border-radius:5px;padding:8px 12px}.pagination button:disabled{opacity:.4;cursor:not-allowed}.trash-row{display:grid;grid-template-columns:44px 1fr auto auto;align-items:center;gap:14px;background:#171a20;border:1px solid var(--line);border-radius:8px;padding:12px 16px}.trash-row button{border:1px solid var(--line);background:var(--shell-track-strong);color:#cbd1d8;border-radius:5px;padding:8px 10px;font-size:11px}.trash-row button[data-trash-action="permanent"]{color:#ff9b9b}.trash-row button:hover{border-color:var(--green)}
@media(max-width:1000px){.library-list.mode-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.library-list.mode-covers{grid-template-columns:repeat(3,minmax(0,1fr))}.library-open{grid-template-columns:44px minmax(0,1fr)}}@media(max-width:700px){.library-list.mode-cards,.library-list.mode-covers{grid-template-columns:1fr 1fr}.library-item.list{grid-template-columns:1fr auto}.library-open{grid-template-columns:40px 1fr}.library-open .library-lyrics,.library-open .library-time{display:none}.trash-row{grid-template-columns:36px 1fr}.trash-row button{grid-column:2}}

.library-item.is-current{border-color:var(--app-accent);background:color-mix(in srgb,var(--app-accent-soft) 56%,var(--app-panel));box-shadow:inset 3px 0 0 var(--app-accent)}
.library-title-line{display:flex;align-items:center;gap:9px;min-width:0}
.library-title-line strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-current-badge{flex:0 0 auto;padding:3px 7px;border:1px solid color-mix(in srgb,var(--app-accent) 48%,var(--app-line));border-radius:999px;color:var(--app-accent);background:color-mix(in srgb,var(--app-accent-soft) 72%,transparent);font-size:11px;line-height:1;font-weight:800}
.library-actions{align-items:center;gap:5px}
.library-actions button{border:1px solid transparent;color:var(--app-muted);background:transparent}
.library-actions button:hover:not(:disabled){border-color:var(--app-line);color:var(--app-text);background:var(--state-hover)}
.library-actions .library-action-text{width:auto;min-width:66px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 9px;white-space:nowrap;font-size:11px;font-weight:800}
.library-actions .library-action-select{border-color:var(--app-line);background:var(--button-secondary-bg)}
.library-actions .library-action-select:disabled{border-color:color-mix(in srgb,var(--app-accent) 38%,var(--app-line));color:var(--app-accent);background:color-mix(in srgb,var(--app-accent-soft) 62%,var(--app-panel));cursor:default;opacity:1}
.library-actions .library-action-practice{border-color:var(--button-accent-border);color:var(--button-accent-text);background:var(--button-accent-bg)}
.library-actions .library-action-practice:hover:not(:disabled){border-color:var(--button-accent-border);color:var(--button-accent-text);background:var(--button-accent-bg-hover)}
@media(max-width:1000px){.library-actions>button:not(.library-action-select):not(.library-action-practice){display:none}}
.analyze-btn{grid-column:1/-1;justify-self:start;background:#263b33;border:1px solid #3f705a;color:var(--green);border-radius:6px;padding:9px 12px;font-size:11px}.analyze-btn:hover{background:#2e4b3e}
.project-list{min-height:132px;max-height:132px;overflow:hidden;gap:3px}.project-list-item{width:100%;min-width:0;height:42px;padding:6px 8px;border-radius:6px}.project-list-item>span:nth-child(2){min-width:0;flex:1}.project-list-item strong,.project-list-item small{max-width:100%;min-width:0}
.version-file.now-playing,.audio-row.now-playing{border-color:var(--green);background:#1b3028;box-shadow:0 0 0 1px #75e6aa33}.version-file.playing,.audio-row.playing{background:#203d30}.version-file.playing span:first-child,.audio-row.playing .play-btn{color:var(--green)}.audio-row.playing .play-btn{animation:player-pulse 1.2s ease-in-out infinite}.audio-row.playing .waveform i{animation:wave-bounce .75s ease-in-out infinite alternate}.audio-row.playing .waveform i:nth-child(2n){animation-delay:.12s}.audio-row.playing .waveform i:nth-child(3n){animation-delay:.24s}.player-bar #playerMode{min-width:88px}@keyframes player-pulse{0%,100%{box-shadow:0 0 0 0 #75e6aa55}50%{box-shadow:0 0 0 5px #75e6aa00}}@keyframes wave-bounce{from{transform:scaleY(.55);opacity:.65}to{transform:scaleY(1.25);opacity:1}}@media(prefers-reduced-motion:reduce){.audio-row.playing .play-btn,.audio-row.playing .waveform i{animation:none}}
.lyrics-version-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}.lyrics-version-tools select{height:30px;max-width:150px;background:var(--shell-panel-input);color:#cbd2da;border:1px solid var(--line);border-radius:5px;padding:0 8px;font-size:11px}.lyrics-version-tools .outline-btn{min-height:30px;padding:0 9px;font-size:11px}.compare-mode{display:block;max-height:680px;overflow:auto;padding:0 18px 24px}.compare-toolbar{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px}.compare-toolbar label{display:flex;align-items:center;gap:7px}.compare-toolbar select{background:var(--shell-panel-input);color:#d4d9df;border:1px solid var(--line);border-radius:5px;padding:7px}.compare-legend{display:flex;gap:10px;margin-left:auto}.compare-legend i{font-style:normal;font-size:11px}.legend-removed{color:#ff9b9b}.legend-added{color:#75e6aa}.compare-head,.compare-row{display:grid;grid-template-columns:36px 1fr 1fr;gap:10px;align-items:start}.compare-head{padding:14px 0 8px;color:#a9b1bd;font-size:11px}.compare-row{border-top:1px solid #252b34;padding:10px 0;font-size:12px;line-height:1.7}.compare-row .line-num{color:var(--green);font:10px var(--font-family-mono);padding-top:2px}.compare-old,.compare-new{min-height:28px;padding:7px 9px;border-radius:5px;white-space:normal;overflow-wrap:anywhere}.compare-row:not(.same) .compare-old{background:#4b272d;color:#ffb2b2}.compare-row:not(.same) .compare-new{background:#203d30;color:#a8f0c7}.compare-old.removed{color:#ffb2b2}.compare-new.added{color:#a8f0c7}@media(max-width:700px){.lyrics-version-tools{width:100%;margin-left:0}.lyrics-version-tools select{max-width:none;flex:1}.compare-mode{padding:0 12px 20px}.compare-toolbar{flex-wrap:wrap}.compare-legend{width:100%;margin-left:0}.compare-head,.compare-row{grid-template-columns:24px 1fr 1fr;gap:6px;font-size:11px}}
.version-file.playing span:first-child{animation:player-pulse 1.2s ease-in-out infinite}.version-file.playing span:first-child{color:var(--green)}
.lyrics-card.lyrics-collapsed .lyrics-content{display:none}.lyrics-card.lyrics-collapsed .lyrics-toolbar{border-bottom:0}.version-settings{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:8px;margin:8px 0 10px}.version-settings label{display:grid;gap:5px;color:var(--faint);font-size:10px}.version-settings textarea{width:100%;min-height:44px;resize:vertical;background:var(--shell-panel-input);color:#cbd2da;border:1px solid var(--line);border-radius:5px;padding:7px;font-size:10px;line-height:1.5}.version-rating{width:100%;height:28px;background:var(--shell-panel-input);color:#e9c56a;border:1px solid var(--line);border-radius:5px;padding:0 5px;font-size:10px}.version-remove,.version-remove-asset{background:transparent;border:1px solid #623d45;color:#ff9b9b;border-radius:5px;font-size:10px}.version-remove{margin-left:8px;padding:3px 7px}.version-remove:hover,.version-remove-asset:hover{background:#3a2228}.version-files{grid-template-columns:minmax(0,1fr) 28px;gap:5px}.version-files .version-empty{grid-column:1/-1}.version-remove-asset{width:28px;height:34px}.version-files .version-file{min-width:0}.version-settings+.version-files{margin-top:4px}@media(max-width:700px){.version-settings{grid-template-columns:1fr}.version-remove{display:block;margin:8px 0 0}}
.lrc-align-btn{min-height:34px;padding:0 7px;border:1px solid #3d5664;border-radius:5px;background:#202830;color:#b9d3df;font-size:11px;white-space:nowrap}.lrc-align-btn:hover{background:#273640;color:#dcf5ff;border-color:#75e6aa}.lrc-modal{width:min(1120px,calc(100vw - 48px));max-height:calc(100vh - 48px);display:flex;flex-direction:column}.lrc-modal .modal-head{flex:none}.lrc-file-name{margin:5px 0 0;color:var(--muted);font-size:11px;max-width:760px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lrc-toolbar{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--green);font:11px var(--font-family-mono)}.lrc-toolbar .primary-btn{min-height:36px}.lrc-help{color:var(--faint);font:11px inherit;margin-left:auto}.lrc-lines{overflow:auto;display:grid;gap:6px;padding:14px 2px;min-height:200px}.lrc-line{display:grid;grid-template-columns:32px minmax(180px,1fr) minmax(150px,2fr) 54px 86px;align-items:center;gap:10px;padding:9px 10px;border:1px solid transparent;border-radius:6px;background:#15191f;transition:background .18s,border-color .18s}.lrc-line.active{border-color:var(--green);background:#1a3028}.lrc-index{color:var(--green);font:10px var(--font-family-mono)}.lrc-text{font-size:12px;line-height:1.5;color:#d6dbe1;overflow-wrap:anywhere}.lrc-range{width:100%;accent-color:var(--green)}.lrc-time{color:#c7d5ca;font:10px var(--font-family-mono);text-align:right}.lrc-capture{min-height:30px;border:1px solid var(--line);border-radius:5px;background:var(--shell-track-strong);color:#bdc6d0;font-size:10px;white-space:nowrap}.lrc-capture:hover{border-color:var(--green);color:var(--green)}@media(max-width:800px){.lrc-modal{width:calc(100vw - 24px);padding:20px 16px}.lrc-line{grid-template-columns:26px 1fr 52px 82px}.lrc-range{grid-column:2 / -1}.lrc-help{display:none}}
.lyrics-card.lyrics-collapsed{min-height:0;height:auto}.lyrics-card.lyrics-collapsed .lyrics-content{display:none}.audio-library-tools{display:flex;align-items:center;gap:8px}.audio-search{display:flex;align-items:center;gap:7px;width:min(330px,42vw);height:38px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--shell-panel-input);color:var(--faint);font-size:17px}.audio-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:11px}.audio-library-tools select{height:38px;background:var(--shell-panel-input);color:#cbd2da;border:1px solid var(--line);border-radius:6px;padding:0 8px;font-size:10px}.audio-pagination{display:flex;justify-content:center;align-items:center;gap:8px;padding:10px 0 4px;color:var(--faint);font:10px var(--font-family-mono)}.audio-pagination span{margin-right:auto}.audio-pagination button{background:var(--shell-track-strong);border:1px solid var(--line);color:#cbd2da;border-radius:5px;padding:7px 10px;font-size:10px}.audio-pagination button:disabled{opacity:.4;cursor:not-allowed}.audio-empty{border:1px dashed var(--line);border-radius:8px;padding:28px;text-align:center;color:var(--faint);font-size:11px}@media(max-width:700px){.audio-library-tools{width:100%;margin-top:10px}.audio-search{width:auto;flex:1}.section-head.compact:has(.audio-library-tools){display:block}.audio-pagination{flex-wrap:wrap}.audio-pagination span{width:100%;margin:0 0 5px}}
.lyrics-content.read-mode .synced-line{opacity:.72;transition:opacity .2s,background .2s,border-color .2s}.lyrics-content.read-mode .synced-line.sync-active{opacity:1;background:#203d30;border-color:#75e6aa;box-shadow:0 0 0 1px #75e6aa33}.lyrics-content.read-mode .lyric-time{min-width:46px;color:#75e6aa;font:10px var(--font-family-mono)}.lyrics-content.read-mode .lyric-section{padding-top:8px}.lyrics-content.read-mode .lyric-section .lyric-display-head{margin-bottom:0}
.ai-tools-panel{border:1px solid #3d4960;border-radius:10px;background:linear-gradient(135deg,#18232b,#171a20 72%);padding:18px 20px;margin:14px 0 22px}.ai-tools-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.ai-tools-head h2{font-size:18px;margin:6px 0}.ai-tools-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.ai-tool-buttons,.ai-structure-picker,.ai-quick-tags{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.ai-tool-buttons{margin-top:16px}.ai-tool-buttons button,.ai-structure-picker button,.ai-quick-tags button{min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:5px;background:#202830;color:#bfc8d2;font-size:11px}.ai-tool-buttons button:hover,.ai-tool-buttons button.active,.ai-structure-picker button:hover,.ai-structure-picker button.active,.ai-quick-tags button:hover{border-color:var(--green);color:var(--green);background:#203b31}.ai-structure-picker{margin-top:10px;padding-top:10px;border-top:1px solid #2a3540}.ai-structure-picker>span,.ai-quick-tags>span{color:var(--faint);font-size:10px;margin-right:3px}.ai-structure-copy{margin-left:auto!important;color:var(--green)!important}.ai-structure-detail{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin-top:9px;padding:9px 10px;border-left:2px solid var(--green);background:#12191d;color:var(--muted);font-size:10px;line-height:1.5}.ai-structure-detail strong{color:#e4e8ed}.ai-structure-detail code{grid-column:1/-1;color:#8fd8b0;font:10px var(--font-family-mono);white-space:normal}.ai-inputs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.ai-inputs label{display:grid;gap:5px;color:#b9c1cb;font-size:10px}.ai-inputs input,.ai-inputs select,.ai-inputs textarea{width:100%;height:34px;background:var(--shell-panel-input);color:var(--text);border:1px solid var(--line);border-radius:5px;padding:7px 9px;font-size:11px}.ai-inputs textarea{height:45px;resize:vertical;line-height:1.4}.ai-input-wide{grid-column:span 2}.ai-generate-btn{align-self:end;height:34px;border:1px solid #4e8067;border-radius:5px;background:#234936;color:var(--green);font-size:11px;font-weight:700}.ai-generate-btn:hover{background:#2e5c45}.ai-prompt-preview{display:block;width:100%;min-height:132px;max-height:210px;margin-top:10px;padding:10px;background:#101419;color:#c7d4ce;border:1px solid #2e3e45;border-radius:6px;resize:vertical;font:11px/1.6 var(--font-family-mono)}.ai-quick-tags{margin-top:10px}.ai-quick-tags button{min-height:28px;padding:0 8px}@media(max-width:900px){.ai-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.ai-tools-head{display:block}.ai-tools-head .primary-btn{margin-top:12px}.ai-inputs{grid-template-columns:1fr}.ai-input-wide{grid-column:auto}.ai-structure-copy{margin-left:0!important}.ai-prompt-preview{min-height:180px}}
.ai-nav-item{color:var(--green)!important;background:#19332a;border:1px solid #315a48;margin:3px 0 7px}.ai-nav-item:hover{background:#244838!important;color:#d7ffe8!important}.ai-tools-panel{scroll-margin-top:18px}
.lrc-line{grid-template-columns:32px minmax(170px,1fr) minmax(290px,1.25fr) auto}.lrc-line.selected{border-color:#6aa9d1;background:#182630}.lrc-line.active{border-color:var(--green);background:#1a3028}.lrc-time-edit{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lrc-time-edit label{display:grid;grid-template-columns:auto 92px;align-items:center;gap:5px;color:var(--faint);font:9px var(--font-family-mono)}.lrc-time-edit .lrc-range{width:92px}.lrc-time-edit .lrc-time{grid-column:2;text-align:right}.lrc-capture-actions{display:flex;gap:5px}.lrc-capture-actions .lrc-capture{min-width:48px;padding:0 7px}.lrc-line.selected .lrc-index{color:#9ed8ff}@media(max-width:900px){.lrc-line{grid-template-columns:28px 1fr}.lrc-time-edit,.lrc-capture-actions{grid-column:2}.lrc-time-edit{grid-template-columns:1fr 1fr}.lrc-capture-actions{justify-content:flex-start}}
.version-files{grid-template-columns:minmax(0,1fr) 84px 28px!important;align-items:center}.version-files .version-file{width:100%;min-width:0}.version-files .lrc-align-btn{width:100%;overflow:hidden;text-overflow:ellipsis}.version-files .version-remove-asset{justify-self:stretch}
.lrc-auto-wave{min-height:36px;border:1px solid rgba(240,109,95,.45);border-radius:5px;background:#30201f;color:#f09b90;padding:8px 10px;font-size:11px;white-space:nowrap}.lrc-auto-wave:hover{background:#452b28}.lrc-auto-wave:disabled{opacity:.55;cursor:wait}
.ai-tool-purpose{margin-top:8px;padding:8px 10px;border-left:2px solid #5b7390;background:#12191d;color:#9eabb8;font-size:10px;line-height:1.5}.ai-tool-buttons button{font-size:11px}
.lrc-line{position:relative;overflow:hidden}
.lrc-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:transparent;pointer-events:none}
.lrc-progress>span{display:block;width:0;height:100%;background:var(--green);transition:width 80ms linear}
.lrc-signal{display:none;color:var(--green);font-style:normal;margin-right:5px}
.lrc-line.active .lrc-signal{display:inline-block;animation:lrc-note-bounce .65s ease-in-out infinite alternate}
.lrc-empty{padding:42px 18px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:6px}
@keyframes lrc-note-bounce{from{transform:translateY(1px);opacity:.6}to{transform:translateY(-2px);opacity:1}}
@media(prefers-reduced-motion:reduce){.lrc-line.active .lrc-signal{animation:none}}
.lrc-lines{flex:1 1 auto;min-height:240px;align-content:start}
.lrc-line{min-height:56px;overflow:visible}
.version-files{grid-template-columns:minmax(0,1fr) 96px 58px!important}
.version-files .lrc-align-btn{font-weight:600}
.version-files{grid-template-columns:minmax(0,1fr) 96px 72px 58px!important}
.ai-style-tag-picker{margin-top:14px;padding:12px;border:1px solid #2e3e45;border-radius:7px;background:#11181c}.ai-style-tag-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.ai-style-tag-head strong{display:block;color:#e4e8ed;font-size:11px}.ai-style-tag-head span{display:block;margin-top:3px;color:var(--faint);font-size:11px}.ai-style-tag-head button{border:1px solid #623d45;border-radius:5px;background:#2a2025;color:#ffb0ab;padding:6px 8px;font-size:11px}.ai-style-tag-group{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px;align-items:start;padding:8px 0;border-top:1px solid #243139}.ai-style-tag-group>span{color:#8fd8b0;font:11px var(--font-family-mono);padding-top:7px}.ai-style-tag-group>div{display:flex;flex-wrap:wrap;gap:5px}.ai-style-tag-group button{min-height:28px;padding:5px 7px;border:1px solid #2d3a42;border-radius:5px;background:#202830;color:#bfc8d2;font-size:11px;text-align:left}.ai-style-tag-group button:hover,.ai-style-tag-group button.active{border-color:var(--green);background:#203b31;color:var(--green)}.ai-style-tag-output{margin-top:9px;padding:8px 9px;border-left:2px solid var(--green);background:#12191d;color:#b8c8be;font:10px/1.5 var(--font-family-mono);overflow-wrap:anywhere}@media(max-width:700px){.ai-style-tag-group{grid-template-columns:1fr}.ai-style-tag-group>span{padding-top:0}}
.version-files{display:grid;grid-template-columns:1fr!important;gap:8px!important}.version-main-group,.stem-group{display:grid;gap:5px}.asset-group-label{padding:5px 2px;color:var(--faint);font:10px var(--font-family-mono)}.version-asset-row{display:grid;grid-template-columns:minmax(0,1fr) 84px 96px 72px;gap:5px;align-items:center}.version-asset-row .version-file{width:100%;min-width:0}.stem-group{border:1px solid #2b3940;border-radius:6px;background:#11181c;padding:7px}.stem-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.stem-group-toggle{border:0;background:transparent;color:#b9d3df;padding:5px 2px;font-size:10px;text-align:left}.stem-group-actions{display:flex;gap:5px}.stem-group-actions button,.stem-mute-toggle{min-height:30px;padding:0 7px;border:1px solid #3d5664;border-radius:5px;background:#202830;color:#b9d3df;font-size:10px;white-space:nowrap}.stem-group-actions button:hover,.stem-mute-toggle:hover{border-color:var(--green);color:var(--green)}.stem-mute-toggle.muted{border-color:#75404a;background:#3a2228;color:#ff9b9b}.stem-group-body{display:grid;gap:5px;margin-top:6px;padding-top:6px;border-top:1px solid #2b3940}.stem-group-body[hidden]{display:none}.stem-asset-row{grid-template-columns:minmax(0,1fr) 54px 84px 96px 72px}.stem-asset-row .stem-mute-toggle{width:100%}@media(max-width:800px){.version-asset-row,.stem-asset-row{grid-template-columns:minmax(0,1fr) 72px 72px}.stem-asset-row .stem-mute-toggle{grid-column:2}.stem-asset-row .lrc-align-btn{grid-column:3}.stem-asset-row .version-reveal-asset{grid-column:2 / 4}.stem-group-head{align-items:flex-start;flex-direction:column}.stem-group-actions{width:100%}}
.version-reveal-asset{min-height:34px;padding:0 8px;border:1px solid #466274;border-radius:5px;background:#202a33;color:#b9d3df;font-size:10px;white-space:nowrap}
.version-reveal-asset:hover{border-color:var(--green);background:#203b31;color:var(--green)}
.stem-mix-choice{display:flex;align-items:center;gap:4px;min-width:54px;color:#9eb5c3;font-size:9px;white-space:nowrap}.stem-mix-choice input{accent-color:var(--green)}.stem-mix-choice:has(input:disabled){opacity:.5}.stem-mix-accompaniment{min-height:30px;padding:0 7px;border:1px solid #3f705a;border-radius:5px;background:#203b31;color:var(--green);font-size:10px;white-space:nowrap}.stem-mix-accompaniment:hover{background:#294d3d}.stem-mix-accompaniment:disabled{opacity:.55}
.stem-mix-hint{margin:5px 0 0;color:#82909b;font-size:9px;line-height:1.45}.stem-mix-choice span{overflow:hidden;text-overflow:ellipsis}.stem-mix-choice:has(input:not(:checked)):not(:has(input:disabled)){color:#75808a}
.stem-format-choice{display:flex;align-items:center;gap:5px;color:#9eb5c3;font-size:9px;white-space:nowrap}.stem-format-choice select{height:30px;border:1px solid #3d5664;border-radius:5px;background:#202830;color:#d4e5ea;padding:0 5px;font-size:10px}
.accompaniment-ready{grid-column:1/-1;margin:0 0 2px;padding:6px 8px;border-left:2px solid var(--green);background:#182820;color:#9fe1b7;font-size:10px}
.stem-mix-status{margin:5px 0 0;padding:6px 8px;border-left:2px solid var(--green);background:#16251d;color:#a7dfb9;font-size:10px;line-height:1.45}.stem-mix-status.error{border-color:#f08074;background:#352125;color:#ffb1a9}.stem-mix-status[hidden]{display:none}
.version-remove-asset{width:auto;min-width:58px;padding:0 7px}
.lrc-time-edit label{grid-template-columns:36px minmax(92px,1fr) 78px;gap:7px}
.lrc-time-edit .lrc-range{width:100%}
.lrc-time-edit .lrc-time{grid-column:auto;display:block;min-width:78px;color:#d9f4e4;text-align:right}
.lrc-capture-actions{align-items:center;flex-wrap:wrap}
.lrc-lock{min-height:30px;padding:0 8px;border:1px solid #466274;border-radius:5px;background:#202a33;color:#b9d3df;font-size:10px;white-space:nowrap}
.lrc-lock:hover:not(:disabled){border-color:var(--green);color:var(--green);background:#203b31}
.lrc-lock:disabled{opacity:.45;cursor:not-allowed}
.lrc-clear-time{min-height:30px;padding:0 8px;border:1px solid #69414a;border-radius:5px;background:#2b2025;color:#ffaaa9;font-size:10px;white-space:nowrap}
.lrc-clear-time:hover:not(:disabled){border-color:#ff8e7a;color:#ffd0c9;background:#43282d}
.lrc-clear-time:disabled{opacity:.45;cursor:not-allowed}
.lrc-line.locked{border-color:#7d6a3d;background:#272719}
.lrc-line.locked .lrc-index{color:#e4c36e}
.lrc-line.locked .lrc-text{color:#f0e3bb}
.lrc-line.timed{background:#17271f;border-color:#2d5943}
.lrc-line.past{background:#1b2923}
.lrc-line.active{background:#214c38;border-color:var(--green);box-shadow:0 0 0 1px #75e6aa55}
.lrc-line.next{background:#2b2518;border-color:#8e7035}
.lrc-line.untimed .lrc-text{color:#9da5ae}
.lrc-char{color:inherit;transition:color 70ms linear}
.lrc-line.active .lrc-char.played,.lrc-line.active .lrc-char.singing{color:var(--green)}.lrc-line.active .lrc-char.singing{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.lrc-line.past .lrc-char.played{color:#75e6aa}
.lrc-line.past .lrc-text{color:#75e6aa}
.lrc-line.active .lrc-char:not(.played){color:#effff5}
.lrc-text{cursor:text}
.lrc-inline-edit{width:100%;min-height:42px;resize:vertical;background:#111a16;color:var(--text);border:1px solid var(--green);border-radius:5px;padding:6px 8px;line-height:1.5;font-size:12px}
.lrc-progress{display:block}
.lrc-follow-toggle{min-height:36px;padding:0 12px;border:1px solid #4d876d;border-radius:6px;background:#1b3228;color:#75e6aa;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:inset 0 0 0 1px #75e6aa22}
.lrc-follow-toggle:hover{background:#264b39;color:#e5fff0;border-color:#8df0b7}
.lrc-follow-toggle.paused{background:#342b1c;border-color:#a77e3a;color:#ffd28a}
.lrc-follow-toggle.paused:hover{background:#4a3820;color:#ffe7ba;border-color:#e7b75f}
.lrc-selection{padding:6px 9px;border:1px solid #3d5664;border-radius:5px;color:#cce8d8;font:10px var(--font-family-mono);white-space:nowrap}
.lrc-nudge{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.lrc-nudge button{min-height:30px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:#202830;color:#c5ced7;font-size:10px;white-space:nowrap}
.lrc-nudge button:hover{border-color:var(--green);color:var(--green);background:#203b31}
.lrc-nudge #lrcPreviousEnd{color:#e4c36e;border-color:#66542d}
.lrc-nudge #lrcPreviousEnd:hover{background:#3a301a;border-color:#e4c36e}
.lrc-toolbar{flex-wrap:wrap}
.modal-backdrop{z-index:100}
.project-diagnostics-modal{width:min(780px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow:auto;padding:28px}.project-diagnostics-state{display:flex;align-items:center;gap:13px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.project-diagnostics-state .diagnostics-indicator{width:10px;height:10px;border-radius:50%;background:var(--warm);box-shadow:0 0 0 5px color-mix(in srgb,var(--warm) 14%,transparent);flex:0 0 auto}.project-diagnostics-state.ok .diagnostics-indicator{background:var(--green);box-shadow:0 0 0 5px color-mix(in srgb,var(--green) 14%,transparent)}.project-diagnostics-state.error .diagnostics-indicator{background:var(--coral);box-shadow:0 0 0 5px color-mix(in srgb,var(--coral) 14%,transparent)}.project-diagnostics-state strong,.project-diagnostics-state small{display:block}.project-diagnostics-state strong{font-size:15px}.project-diagnostics-state small{margin-top:4px;color:var(--muted);font-size:11px}.project-diagnostics-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line)}.project-diagnostics-metric{min-width:0;padding:16px 12px;border-right:1px solid var(--line)}.project-diagnostics-metric:last-child{border-right:0}.project-diagnostics-metric span,.project-diagnostics-metric strong{display:block}.project-diagnostics-metric span{color:var(--faint);font-size:10px}.project-diagnostics-metric strong{margin-top:7px;font:700 19px var(--font-family-mono)}.project-diagnostics-source{padding:14px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.7}.project-diagnostics-source strong{color:var(--text)}.project-diagnostics-source code{color:var(--green);overflow-wrap:anywhere}.project-diagnostics-issues{padding-top:16px}.diagnostics-section-head{display:flex;align-items:center;justify-content:space-between}.diagnostics-section-head .ghost-btn{min-height:32px;padding:0 8px;font-size:11px}.diagnostics-issue-list{display:grid;gap:7px;margin:10px 0 0;padding:0;list-style:none}.diagnostics-issue-list li{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border-left:2px solid var(--warm);background:color-mix(in srgb,var(--warm) 7%,transparent);color:var(--muted);font-size:11px;line-height:1.55}.diagnostics-issue-list li.error{border-left-color:var(--coral);background:color-mix(in srgb,var(--coral) 7%,transparent);color:var(--text)}.diagnostics-empty{margin-top:10px;color:var(--green);font-size:11px}.project-diagnostics-import-status{min-height:19px;margin-top:14px;color:var(--muted);font-size:11px}.project-diagnostics-import-status.error{color:var(--coral)}.project-diagnostics-import-status.ok{color:var(--green)}.project-diagnostics-modal .modal-actions{align-items:center;justify-content:space-between}.project-diagnostics-modal .outline-btn{display:flex;align-items:center;gap:7px}.project-diagnostics-modal button:disabled{cursor:wait;opacity:.6}@media(max-width:640px){.project-diagnostics-modal{padding:20px 16px}.project-diagnostics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.project-diagnostics-metric:nth-child(2){border-right:0}.project-diagnostics-metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.project-diagnostics-modal .modal-actions{align-items:stretch;flex-direction:column}.project-diagnostics-modal .modal-actions button{justify-content:center;width:100%}}
.lrc-capture-start{background:#203b52;border-color:#4d8fbd;color:#b9ddf4}
.lrc-capture-start:hover:not(:disabled){background:#285477;border-color:#79c7f1;color:#e7f7ff}
.lrc-capture-end{background:#4b3421;border-color:#a4713f;color:#f2c892}
.lrc-capture-end:hover:not(:disabled){background:#68451f;border-color:#e9a75d;color:#ffe5bd}
.lrc-boundary-start .lrc-time{color:#a9dbfa}
.lrc-boundary-end .lrc-time{color:#f0c184}
.lrc-capture-notice{position:absolute;top:112px;left:50%;z-index:3;display:flex;align-items:baseline;gap:12px;padding:12px 18px;border:1px solid #47718c;border-radius:7px;background:#17242d;box-shadow:0 12px 30px #050607aa;opacity:0;pointer-events:none;transform:translate(-50%,-8px);transition:opacity .18s ease,transform .18s ease}
.lrc-capture-notice.show{opacity:1;transform:translate(-50%,0)}
.lrc-capture-notice span{font-size:12px;color:#c5d4dd}
.lrc-capture-notice strong{font:700 24px var(--font-family-mono);color:#b9e6fb}
.lrc-capture-notice.end{border-color:#9b6b35;background:#302318}
.lrc-capture-notice.end strong{color:#f4c17c}
@media(max-width:900px){.lrc-help{width:100%;margin-left:0}.lrc-selection{order:3}.lrc-nudge{order:4}}
.lrc-transfer-tools{display:flex;align-items:center;gap:5px}
.lrc-transfer-tools{flex-wrap:wrap}
.lrc-reference-scope{height:30px;display:inline-flex;align-items:center;padding:0 9px;border:1px solid #385846;border-radius:5px;background:#17251d;color:#a9dfbe;font-size:10px;white-space:nowrap}
.lrc-transfer-tools select{width:310px;height:32px;max-width:100%;background:var(--control-bg);color:var(--app-text);border:1px solid var(--app-line);border-radius:5px;padding:0 28px 0 9px;font-size:12px;text-overflow:ellipsis}
.lrc-transfer-tools button{min-height:32px;padding:0 8px;border:1px solid var(--app-line);border-radius:5px;background:var(--control-bg);color:var(--app-text);font-size:12px;white-space:nowrap}
.lrc-transfer-tools button:hover{border-color:var(--app-accent);color:var(--app-accent-readable);background:var(--state-hover)}
.lrc-transfer-tools button:disabled{opacity:.55;cursor:wait}
.lrc-transfer-tools #lrcClearSelected{border-color:var(--status-danger-border);background:var(--status-danger-bg);color:var(--status-danger-text)}
.lrc-transfer-tools #lrcClearSelected:hover:not(:disabled),.lrc-transfer-tools #lrcClearAll:hover{border-color:var(--status-danger-text);background:color-mix(in srgb,var(--status-danger-bg) 78%,var(--state-hover));color:var(--status-danger-text)}
.lrc-transfer-tools #lrcClearSelected:disabled{cursor:not-allowed}
.lrc-backup-tools{display:flex;align-items:center;gap:5px;flex:1 0 100%;padding-top:7px;border-top:1px solid #29342f}
.lrc-backup-label{height:30px;display:inline-flex;align-items:center;padding:0 9px;color:#e2c27d;font:10px var(--font-family-mono);white-space:nowrap}
.lrc-backup-tools select{width:340px;height:30px;max-width:100%;background:var(--shell-panel-input);color:#d8c690;border:1px solid #5c5137;border-radius:5px;padding:0 28px 0 9px;font-size:10px;text-overflow:ellipsis}
.lrc-backup-tools button{min-height:30px;padding:0 9px;border:1px solid #6b5a35;border-radius:5px;background:#28251d;color:#e4c98b;font-size:10px;white-space:nowrap}
.lrc-backup-tools button:hover:not(:disabled){border-color:#f0bd6b;background:#3b3222;color:#ffe6ad}
.lrc-backup-tools button:disabled{opacity:.45;cursor:not-allowed}
.lrc-shortcut-help{color:#b8d9c4;font:10px var(--font-family-mono);padding:6px 8px;border:1px solid #385846;border-radius:5px;background:#17251d;white-space:nowrap}
.lrc-modal{width:calc(100vw - 24px);max-width:none;height:calc(100vh - 24px);max-height:none;padding:24px 28px 20px}
.lrc-modal .lrc-lines{flex:1;min-height:0}
.lrc-modal .modal-actions{flex:none}
.lrc-index{display:flex;align-items:center;gap:5px}
.lrc-clear-check{width:13px;height:13px;margin:0;accent-color:var(--coral);cursor:pointer}
.lrc-clear-check:disabled{cursor:not-allowed}
.lrc-lines{--lrc-col-select:58px;--lrc-col-lyrics:220px;--lrc-col-start:155px;--lrc-col-end:155px;--lrc-col-actions:320px;display:block;overflow-x:hidden;scrollbar-width:none;cursor:grab;touch-action:pan-y;padding:0 2px 14px}
.lrc-lines:active{cursor:grabbing}
.lrc-lines::-webkit-scrollbar{display:none}
.lrc-line,.lrc-columns{grid-template-columns:var(--lrc-col-select) minmax(0,var(--lrc-col-lyrics)) minmax(0,var(--lrc-col-start)) minmax(0,var(--lrc-col-end)) minmax(0,var(--lrc-col-actions));min-width:0;width:100%}
.lrc-columns{display:grid;align-items:center;gap:10px;padding:0 10px;color:var(--faint);font:10px var(--font-family-mono);position:sticky;top:0;z-index:3;background:#171a21;border-bottom:1px solid var(--line);min-height:34px;margin-bottom:6px}
.lrc-columns>span{position:relative;min-width:0;padding:5px 4px;text-transform:uppercase}
.lrc-column-handle{position:absolute;top:3px;right:-5px;width:9px;height:22px;border-right:2px solid #53606b;cursor:col-resize}
.lrc-column-handle:hover{border-color:var(--green);background:#75e6aa22}
.lrc-line>.lrc-range{width:100%;min-width:60px}
.lrc-time-column{min-width:0;height:52px;display:block;position:relative;z-index:1;padding-bottom:18px}
.lrc-time-column .lrc-range{display:block;height:22px;position:absolute;left:0;right:0;top:0}
.lrc-time-column .lrc-time{display:block;min-height:16px;position:absolute;left:0;right:0;bottom:0;text-align:center;font:10px/16px var(--font-family-mono);color:#c9e6d4;white-space:nowrap}
.lrc-time-column.start-column{display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:22px 16px;gap:4px 6px;height:48px;padding:0}
.lrc-time-column.end-column{display:grid;grid-template-columns:minmax(0,1fr) 48px;grid-template-rows:22px 16px;gap:4px 6px;height:48px;padding:0}
.lrc-time-column.start-column .lrc-capture{grid-column:1;grid-row:1 / 3;min-height:32px;padding:0 5px}
.lrc-time-column.end-column .lrc-capture{grid-column:2;grid-row:1 / 3;min-height:32px;padding:0 5px}
.lrc-time-column.start-column .lrc-range{position:static;grid-column:2;grid-row:1}
.lrc-time-column.end-column .lrc-range{position:static;grid-column:1;grid-row:1}
.lrc-time-column.start-column .lrc-time{position:static;grid-column:2;grid-row:2}
.lrc-time-column.end-column .lrc-time{position:static;grid-column:1;grid-row:2}
.lrc-line{min-height:76px;align-items:center;margin-bottom:6px}
.lrc-line>.lrc-time{display:block;min-width:0;text-align:right}
.lrc-line>.lrc-capture-actions{min-width:0;display:flex;gap:4px;align-items:center;flex-wrap:nowrap;overflow:hidden}
.lrc-line>.lrc-capture-actions button{flex:0 0 auto;padding-left:6px;padding-right:6px;font-size:9px}
.player-track-title{cursor:grab}
.player-track-title:active{cursor:grabbing}
.player-bar.is-positioned{right:auto;bottom:auto;max-width:calc(100vw - 16px)}
.player-bar #playerKaraoke{color:var(--green);font-size:18px}
.karaoke-overlay{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);width:min(640px,calc(100vw - 32px));z-index:60;background:#11161bfa;border:1px solid #4d6b5d;border-radius:12px;padding:12px 18px 16px;box-shadow:0 20px 60px #000b;backdrop-filter:blur(12px)}
.karaoke-overlay.hidden{display:none}
.karaoke-overlay[data-background="transparent"]{background:transparent;border-color:transparent;box-shadow:none}
.karaoke-overlay[data-background="green"]{background:var(--karaoke-key-color,#00ff00);border-color:transparent;box-shadow:none}
.karaoke-overlay[data-orientation="vertical"]{width:min(92vw,540px);min-height:70vh}
.karaoke-overlay[data-rows="2"] .karaoke-prev{display:none}
.karaoke-overlay .karaoke-line-text,.karaoke-overlay .karaoke-current{font-size:var(--karaoke-output-size,34px)}
.karaoke-overlay .karaoke-char.played{color:var(--karaoke-output-played,#8be28b)}
.karaoke-overlay .karaoke-char.singing,.karaoke-overlay .karaoke-current .karaoke-line-text{color:var(--karaoke-output-current,#fff)}
.karaoke-overlay .karaoke-next,.karaoke-overlay .karaoke-next .karaoke-line-text{color:var(--karaoke-output-upcoming,#d5dbe5);opacity:1}
.karaoke-output-settings{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px;padding:10px 12px;border-bottom:1px solid var(--app-border);background:var(--app-surface);font-size:12px}
.karaoke-output-settings label{display:grid;gap:4px;color:var(--app-text)}
.karaoke-output-settings .check{display:flex;align-items:center;gap:6px}
@media(max-width:700px){.karaoke-output-settings{grid-template-columns:repeat(2,minmax(110px,1fr))}}
.karaoke-head{display:flex;align-items:center;gap:10px;padding-bottom:9px;border-bottom:1px solid #2d3b36;cursor:grab;color:var(--green)}
.karaoke-head:active{cursor:grabbing}
.karaoke-head strong{font-size:12px}
.karaoke-status{color:var(--muted);font:10px var(--font-family-mono)}
.karaoke-head button{margin-left:auto;background:transparent;color:var(--muted);font-size:18px;min-width:28px;min-height:28px}
.karaoke-head button:hover{color:var(--text);background:#273129;border-radius:5px}
.karaoke-pitch-title{display:flex;justify-content:space-between;align-items:center;margin:10px 0 6px;color:#cfe9d8;font-size:11px}.karaoke-pitch-title small{color:#829a8d;font:9px var(--font-family-mono)}.karaoke-pitch-lane{position:relative;height:92px;overflow:hidden;border:1px solid #3b5548;border-radius:5px;background:repeating-linear-gradient(to bottom,#111a16 0 14px,#1e352a 14px 15px)}.karaoke-target-note{position:absolute;height:9px;min-width:5px;border:1px solid #b7ed5a;border-radius:2px;background:#4d7a16;box-shadow:0 0 6px #a3e63588}.karaoke-target-note.manual{border-color:#f8d56a;background:#965b19;box-shadow:0 0 6px #fbbf2488}.karaoke-pitch-playhead{position:absolute;top:0;bottom:0;width:2px;background:#5ed9ff;box-shadow:0 0 8px #38bdf8}.karaoke-pitch-empty{position:absolute;inset:0;display:grid;place-items:center;color:#81948a;font-size:10px}.karaoke-actions{display:flex;justify-content:center;gap:8px;margin-top:10px}.karaoke-actions button{min-height:30px;border:1px solid #456353;border-radius:5px;background:#17251e;color:#bfe7ce;padding:0 12px;font-size:10px;cursor:pointer}.karaoke-actions button:hover{border-color:var(--green);color:var(--green)}
.karaoke-prev,.karaoke-next{min-height:28px;display:grid;place-items:center;padding:7px 0;color:#79858a;opacity:.72}
.karaoke-current{position:relative;min-height:58px;display:grid;place-items:center;padding:8px 0 11px;overflow:hidden}
.karaoke-line-text{width:100%;max-width:100%;text-align:center;line-height:1.45}.karaoke-lyric-copy{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.karaoke-start-cue{display:flex;justify-content:center;align-items:center;gap:5px;min-height:14px;margin-bottom:1px;color:#91a29a;font:10px var(--font-family-mono)}.karaoke-start-cue i{width:5px;height:5px;border-radius:50%;background:#5f7569;box-shadow:0 0 0 3px rgba(117,230,170,.08)}.karaoke-start-cue.urgent{color:var(--green);font-size:13px;font-weight:800}.karaoke-start-cue.urgent i{background:var(--green);box-shadow:0 0 10px #75e6aa}
.karaoke-beat-lights{display:flex;justify-content:center;gap:8px;height:11px;margin-bottom:1px}.karaoke-beat-lights i{width:7px;height:7px;border:1px solid #5a7466;border-radius:50%;background:var(--green);box-shadow:0 0 9px #75e6aa9c;transition:background .22s ease,box-shadow .22s ease,opacity .22s ease}.karaoke-beat-lights i.off{background:#1b2520;box-shadow:none;opacity:.42}
.karaoke-prev .karaoke-line-text{font-size:13px}.karaoke-next .karaoke-line-text{font-size:25px;font-weight:800;color:#cbd8d0;line-height:1.35}
.karaoke-current .current-text{font-size:25px;font-weight:800;color:#ecfff3;line-height:1.35;transform:scale(1.02);transition:transform .2s,color .2s}
.karaoke-char{color:#d2ddd6;text-shadow:var(--karaoke-output-shadow,0 3px 2px #000);transition:color 70ms linear}
.karaoke-char.played,.karaoke-char.singing{color:var(--green)}.karaoke-char.singing{filter:brightness(1.18);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.karaoke-current .karaoke-progress{display:none}
.karaoke-line-text.muted{color:#586469}
.karaoke-countdown{display:none}
@media(max-width:700px){.karaoke-overlay{bottom:74px;padding:10px 12px}.karaoke-current .current-text,.karaoke-next .karaoke-line-text{font-size:20px}.player-bar.is-positioned{width:calc(100vw - 16px)}}
.lrc-insert-line,.lrc-delete-line{min-height:30px;padding:0 8px;border-radius:5px;font-size:10px;white-space:nowrap}
.lrc-insert-line{border:1px solid #466274;background:#202a33;color:#b9d3df}
.lrc-insert-line:hover{border-color:var(--green);background:#203b31;color:var(--green)}
.lrc-delete-line{border:1px solid #69414a;background:#2b2025;color:#ffaaa9}
.lrc-delete-line:hover{border-color:#ff8e7a;background:#43282d;color:#ffd0c9}
.lrc-overall-seek{display:grid;grid-template-columns:auto 82px minmax(180px,1fr) 82px;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px}
.lrc-overall-seek input{width:100%;accent-color:var(--green);cursor:pointer}
.lrc-overall-seek output{font:10px var(--font-family-mono);color:#cce8d8}
.lrc-overall-seek output:last-child{text-align:right;color:var(--faint)}
.player-bar{left:50%;right:auto;bottom:16px;width:min(1180px,calc(100vw - 32px));display:grid;align-items:stretch;gap:0;padding:0 14px 12px;transform:translateX(-50%);overflow:hidden;background:var(--shell-track-strong)f7;border:1px solid #48534f;box-shadow:0 16px 40px #050607cc;backdrop-filter:blur(14px)}.player-drag-handle{margin:0 -14px;border:0;border-radius:0;background:transparent;backdrop-filter:none}.player-controls{border:0;border-radius:0;background:transparent;box-shadow:none;padding:9px 0 8px}
.player-bar.is-positioned{right:auto;bottom:auto;transform:none;max-width:calc(100vw - 16px)}
.player-bar.is-dragging{user-select:none;box-shadow:0 22px 60px #000e;border-color:#75e6aa}
.player-drag-handle{height:22px;display:grid;place-items:center;margin:0 -14px;color:#6f7a80;cursor:grab;touch-action:none;border-bottom:1px solid #30383d}
.player-drag-handle:hover{color:var(--green);background:#25302b}
.player-drag-handle:active{cursor:grabbing}
.player-drag-handle span{font-size:16px;line-height:1;letter-spacing:0}
.player-controls{display:flex;align-items:center;gap:12px;min-width:0;padding:9px 0 8px}
.player-controls>button{background:transparent;color:#c9d0d7;min-width:32px;min-height:32px;border-radius:5px}
.player-controls>:is(#playerPrev,#playerPlay,#playerNext,#playerKaraoke,#playerClose){width:32px;height:32px;min-width:32px;min-height:32px;display:grid;place-items:center;padding:0;line-height:1}
.player-control-icon{width:16px;height:16px;display:block;margin:auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.player-controls>button:hover{background:#303942;color:var(--green)}
.player-controls .player-play{background:var(--green);color:#102017;border-radius:50%;font-size:12px}
.player-controls .player-track{min-width:220px;flex:1}
.player-controls .player-track-title{cursor:default}
.player-inline-lyrics{height:112px;display:grid;grid-template-rows:20px 40px 50px;overflow:hidden;border-top:1px solid #34413b;margin-top:0;padding:1px 0 0;border-radius:0;background:transparent;box-shadow:none;isolation:isolate}
.player-inline-lyrics .karaoke-prev,.player-inline-lyrics .karaoke-next{min-height:0;padding:0;display:grid;place-items:center;opacity:.62;color:#87918d;overflow:hidden}
.player-inline-lyrics .karaoke-current{min-height:0;padding:0 4px 4px;display:grid;place-items:center;overflow:hidden}
.player-inline-lyrics .karaoke-line-text{max-width:100%;font-size:11px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
.player-inline-lyrics .karaoke-current .current-text{font-size:18px;line-height:34px;font-weight:800;color:#effff5;transform:none;letter-spacing:0}
.player-inline-lyrics .karaoke-next .karaoke-line-text{font-size:18px;line-height:34px;color:#cbd8d0}.player-inline-lyrics .karaoke-start-cue{min-height:12px;margin-bottom:0;font-size:9px}.player-inline-lyrics .karaoke-start-cue.urgent{font-size:11px}
.player-inline-lyrics .karaoke-beat-lights{height:9px;gap:5px;margin-bottom:0}.player-inline-lyrics .karaoke-beat-lights i{width:5px;height:5px}
.player-inline-lyrics .karaoke-current .karaoke-progress{left:12%;right:12%;bottom:1px;height:2px}
.player-inline-lyrics.karaoke-advance .karaoke-prev,.player-inline-lyrics.karaoke-advance .karaoke-current,.player-inline-lyrics.karaoke-advance .karaoke-next{animation:player-lyrics-rise .32s cubic-bezier(.2,.75,.25,1) both}
.player-inline-lyrics.karaoke-advance .karaoke-current{animation-delay:.035s}
.player-inline-lyrics.karaoke-advance .karaoke-next{animation-delay:.07s}
@keyframes player-lyrics-rise{from{transform:translateY(9px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(max-width:900px){.player-bar{width:calc(100vw - 24px);bottom:10px;padding-left:10px;padding-right:10px}.player-controls{gap:6px}.player-controls .player-volume{display:none}.player-controls .player-track{min-width:120px}.player-inline-lyrics .karaoke-current .current-text{font-size:16px}.player-controls #playerMode{min-width:76px}}
@media(prefers-reduced-motion:reduce){.player-inline-lyrics.karaoke-advance .karaoke-prev,.player-inline-lyrics.karaoke-advance .karaoke-current,.player-inline-lyrics.karaoke-advance .karaoke-next{animation:none}}
.lrc-lyric-cell{min-width:0;display:flex;align-items:center;gap:8px}
.lrc-vocal-controls{display:inline-flex;align-items:center;gap:3px;flex:0 0 auto}
.lrc-vocal-role{width:24px;height:25px;padding:0;border:1px solid #43505a;border-radius:5px;background:#202830;color:#aeb9c2;font-size:10px;font-weight:700;line-height:1}
.lrc-vocal-role:hover{border-color:var(--green);color:#eafff2;background:#203b31}
.lrc-vocal-role.vocal-male.active{border-color:#65b5df;background:#1e4960;color:#c9efff}
.lrc-vocal-role.vocal-female.active{border-color:#e18b9b;background:#59313f;color:#ffd9df}
.lrc-vocal-role.vocal-duet.active{border-color:#e0ad62;background:#594324;color:#ffe5b3}
.lrc-text{min-width:0;flex:1}
.vocal-role-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 5px;border:1px solid transparent;border-radius:4px;font-size:10px;font-weight:800;line-height:1;vertical-align:middle}
.vocal-role-badge.vocal-male{border-color:#65b5df;background:#1e4960;color:#c9efff}
.vocal-role-badge.vocal-female{border-color:#e18b9b;background:#59313f;color:#ffd9df}
.vocal-role-badge.vocal-duet{border-color:#e0ad62;background:#594324;color:#ffe5b3}
.lrc-line.has-vocal-role .lrc-text{font-weight:650}
.lrc-line.looping{border-color:#e0ad62;background:#302719;box-shadow:inset 0 -3px 0 #e0ad62}
.lrc-loop-mark{margin-left:3px;color:#ffd27d;font-size:13px;font-style:normal}
.lrc-time-column.start-column,.lrc-time-column.end-column{height:56px;padding:0;display:grid;align-items:center;gap:4px}
.lrc-time-column.start-column{grid-template-columns:48px minmax(0,1fr);grid-template-rows:56px}
.lrc-time-column.end-column{grid-template-columns:minmax(0,1fr) 48px;grid-template-rows:56px}
.lrc-time-column.start-column>.lrc-capture{grid-column:1;grid-row:1;min-height:34px}
.lrc-time-column.end-column>.lrc-capture{grid-column:2;grid-row:1;min-height:34px}
.lrc-boundary-adjust{min-width:0;display:grid;grid-template-columns:48px minmax(55px,1fr) 48px;grid-template-rows:34px 18px;align-items:center;gap:3px}
.lrc-time-column.start-column>.lrc-boundary-adjust{grid-column:2;grid-row:1}
.lrc-time-column.end-column>.lrc-boundary-adjust{grid-column:1;grid-row:1}
.lrc-boundary-adjust .lrc-range{grid-column:2;grid-row:1;position:static;width:100%;min-width:0;height:22px}
.lrc-boundary-adjust .lrc-time{grid-column:1 / -1;grid-row:2;position:static;min-height:18px;text-align:center;line-height:18px}
.lrc-local-nudge{height:30px;min-width:48px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;gap:3px;border:1px solid var(--app-line);border-radius:4px;background:var(--control-bg);color:var(--app-text);font:12px var(--font-family-mono);white-space:nowrap}
.lrc-local-nudge:hover:not(:disabled){border-color:var(--app-accent);background:var(--state-hover);color:var(--app-accent-readable)}
.lrc-local-nudge:disabled{opacity:.38;cursor:not-allowed}
.lrc-local-nudge span{font-size:12px;line-height:1}
.lrc-local-nudge small{font:12px var(--font-family-mono)}
.lrc-line.looping .lrc-local-nudge{border-color:var(--status-warning-border)}
.lyric-vocal-badge{margin-left:5px}
.karaoke-line-text{display:flex;align-items:center;justify-content:center;gap:8px}
.karaoke-lyric-copy{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.karaoke-vocal-badge{flex:0 0 auto}
.lrc-boundary-adjust .lrc-local-nudge{width:48px;min-width:48px;max-width:48px}
.lrc-time-column.start-column .lrc-boundary-adjust .lrc-range,.lrc-time-column.end-column .lrc-boundary-adjust .lrc-range{grid-column:2!important;grid-row:1!important;position:static!important;left:auto!important;right:auto!important;top:auto!important}
.lrc-time-column.start-column .lrc-boundary-adjust .lrc-time,.lrc-time-column.end-column .lrc-boundary-adjust .lrc-time{grid-column:1 / -1!important;grid-row:2!important;position:static!important;left:auto!important;right:auto!important;bottom:auto!important}
@media(max-width:900px){.lrc-lines{--lrc-col-start:270px;--lrc-col-end:270px}.lrc-line{grid-template-columns:28px 1fr}.lrc-time-column.start-column,.lrc-time-column.end-column{grid-column:2;grid-template-columns:48px minmax(0,1fr)}.lrc-time-column.end-column>.lrc-capture{grid-column:1}.lrc-time-column.end-column>.lrc-boundary-adjust{grid-column:2}.lrc-lyric-cell{align-items:flex-start}.lrc-vocal-controls{padding-top:2px}}

/* Workspace view and lyric reading modes */
.ai-tools-panel:not(.is-visible){display:none}
/* Lyrics toolbar now uses a two-row layout to keep the version/AI tools from
 * crowding the language toggle. The first row holds the view controls and
 * word count; the second row holds the version/AI tools. */
.lyrics-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:8px;height:auto;min-height:58px;padding:10px 16px;flex-wrap:wrap}
.lyrics-toolbar-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:36px}
.lyrics-toolbar-row + .lyrics-toolbar-row{border-top:1px dashed var(--app-line);padding-top:8px}
.lyrics-view-controls{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.lyrics-view-controls .segmented{flex:0 0 auto}
.lyrics-display-toggle{border-color:#33413d;background:#111713}
.lyrics-display-toggle button.active{background:#244b38;color:#8ff0bc}
.lyrics-display-toggle button:disabled{cursor:not-allowed;opacity:.45}
.lyrics-version-tools{margin-left:0}
.lyrics-toolbar .count-label{margin-left:auto;font-weight:600}
.lyrics-time-source{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid #2e3941;border-radius:6px;background:#12171b;color:#95a0ab;font-size:10px;line-height:1.5}
.lyrics-time-source strong{flex:0 0 auto;color:#75e6aa;font-size:10px}
.lyrics-time-source.missing-timing{border-style:dashed}
.lyrics-time-source.missing-timing strong{color:#d7b66a}
.lyrics-content.read-mode:not(.timed-mode) .line-num{display:none}
.lyrics-content.read-mode:not(.timed-mode) .lyric-display-head:empty{display:none}
.lyrics-content.read-mode:not(.timed-mode) .lyric-display-head{margin-bottom:8px}
.lyrics-content.read-mode .lyric-display-zh,.lyrics-content.read-mode .lyric-display-en{letter-spacing:0}
.lyrics-content.read-mode .lyric-time.is-empty{color:#68727c}
.lyrics-empty{padding:80px 20px;text-align:center;color:var(--faint);font-size:12px}
@media(max-width:760px){.lyrics-view-controls{width:100%}.lyrics-version-tools{width:100%}.lyrics-toolbar .count-label{margin-left:0}.lyrics-time-source{align-items:flex-start;flex-direction:column;gap:3px}}
.ai-suno-style-box{margin:16px 0 14px;padding:16px;border:1px solid #3a765c;border-radius:8px;background:linear-gradient(135deg,#14251f,#11191d);box-shadow:0 8px 24px rgba(0,0,0,.14)}
.ai-suno-style-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.ai-suno-style-head strong{display:block;color:#e9fff2;font-size:15px}.ai-suno-style-head span{display:block;margin-top:4px;color:#9db6aa;font-size:11px}.ai-suno-style-head .copy-small{border:0;border-radius:6px;background:var(--green);color:#102218;font-weight:700;padding:9px 12px;white-space:nowrap;cursor:pointer}.ai-suno-style-head .copy-small:hover{filter:brightness(1.08)}#aiSunoStylePreview{display:block;width:100%;min-height:76px;resize:vertical;border:1px solid #315443;border-radius:6px;background:#0d1512;color:#d9f6e4;padding:11px;font:12px/1.65 var(--font-family-mono);box-sizing:border-box}.ai-suno-style-box::after{content:'复制这段内容到 Suno 的 Style / 风格栏，再把歌词粘贴到 Lyrics / 歌词栏';display:block;margin-top:8px;color:#7ea18e;font-size:10px}
@media(max-width:700px){.ai-suno-style-head{flex-direction:column}.ai-suno-style-head .copy-small{width:100%}}
.ai-style-tag-group button[hidden]{display:none}.ai-style-tag-more{border-color:#527e69!important;background:#172a22!important;color:var(--green)!important;font-weight:700;cursor:pointer}.ai-style-tag-more:hover{background:#203b31!important}
.suno-panel #styleText{max-height:210px;overflow:auto;padding-right:8px;scrollbar-width:thin}
.ai-module-tabs{margin-top:18px;border-top:1px solid #28363d}.ai-module-tabbar{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:12px 0}.ai-module-tabbar button{min-height:48px;border:1px solid #293941;border-radius:6px;background:#1c252c;color:#aebbc2;text-align:left;padding:8px 10px;font-size:12px;cursor:pointer}.ai-module-tabbar button span{display:block;margin-top:3px;color:#71818a;font-size:10px}.ai-module-tabbar button.active{border-color:var(--green);background:#1c382d;color:#e0fae9}.ai-module-tabbar button.active span{color:#9ed3b2}.ai-module-view[hidden]{display:none}.ai-module-view>.ai-inputs{margin-top:0}.ai-module-view>.ai-style-tag-picker,.ai-module-view>.ai-suno-style-box{margin-top:12px}.ai-module-prompt>.ai-tool-buttons{margin-top:0}.ai-module-prompt>#aiPromptPreview{margin-top:12px}.ai-module-prompt>#copyAiFull{margin:0 0 12px}.ai-module-structure>.ai-structure-picker{margin-top:0}@media(max-width:700px){.ai-module-tabbar{grid-template-columns:1fr}.ai-module-tabbar button{min-height:42px}}
.ai-advanced-tools{margin-top:16px;border-top:1px solid #28363d}.ai-advanced-tools summary{display:flex;align-items:center;gap:10px;padding:14px 2px;color:#cbd6da;cursor:pointer;list-style:none}.ai-advanced-tools summary::-webkit-details-marker{display:none}.ai-advanced-tools summary::before{content:'+';display:grid;place-items:center;width:20px;height:20px;border:1px solid #52626a;border-radius:4px;color:var(--green);font-size:16px}.ai-advanced-tools[open] summary::before{content:'−'}.ai-advanced-tools summary strong{font-size:13px}.ai-advanced-tools summary span{color:var(--faint);font-size:11px}.ai-advanced-tools>#copyAiFull{margin:0 0 12px}.ai-advanced-tools .ai-tool-buttons{margin-top:0}.ai-advanced-tools #aiPromptPreview{margin-top:12px}.ai-advanced-tools .ai-quick-tags{margin-top:12px}.ai-style-tag-picker{margin-top:16px}.ai-suno-style-box{margin-top:16px}
.ai-create-project{display:block;width:100%;margin-top:12px;border:1px solid #4b876b;border-radius:6px;background:#183126;color:#bdebcf;padding:10px 12px;font-size:12px;font-weight:700;cursor:pointer}.ai-create-project:hover{background:#214936}
.ai-style-analysis-box{margin-top:16px;padding:14px;border:1px solid #354b58;border-radius:7px;background:#121c22}.ai-style-analysis-box strong{display:block;color:#d9e5ea;font-size:13px}.ai-style-analysis-box span{display:block;margin-top:4px;color:#83949c;font-size:10px}.ai-style-analysis-box textarea{display:block;width:100%;min-height:100px;margin:10px 0;border:1px solid #30434d;border-radius:6px;background:#0d1418;color:#c7d8df;padding:10px;resize:vertical;font:11px/1.55 var(--font-family-mono);box-sizing:border-box}.ai-style-analysis-box button{border:1px solid #4b876b;border-radius:5px;background:#183126;color:#bdebcf;padding:8px 11px;font-size:11px;cursor:pointer}
.ai-segment-controls{display:grid;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid #26343b}.ai-segment-controls>strong{color:#cbd9de;font-size:12px}.ai-segment-controls>span{color:#7e9098;font-size:10px}.ai-segment-controls label{display:grid;grid-template-columns:minmax(140px,1fr) minmax(170px,240px);align-items:center;gap:10px}.ai-segment-controls code{color:#9fe0b7;font:11px var(--font-family-mono)}.ai-segment-controls select{border:1px solid #30424a;border-radius:5px;background:#151e23;color:#c8d2d6;padding:6px;font-size:11px}@media(max-width:700px){.ai-segment-controls label{grid-template-columns:1fr}.ai-segment-controls select{width:100%}}
.ai-workflow-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0 14px}.ai-workflow-mode-tabs button{min-height:64px;border:1px solid #2c3c44;border-radius:7px;background:#182229;color:#aebcc2;text-align:left;padding:11px 13px;cursor:pointer}.ai-workflow-mode-tabs button strong{display:block;color:#dce8eb;font-size:13px}.ai-workflow-mode-tabs button span{display:block;margin-top:5px;color:#81929a;font-size:10px}.ai-workflow-mode-tabs button.active{border-color:var(--green);background:#1b382c}.ai-workflow-mode-tabs button.active strong{color:#e0fae9}.ai-workflow-mode-tabs button.active span{color:#9ed3b2}.ai-brief-form{padding:14px;border:1px solid #2d424b;border-radius:8px;background:#121c21}.ai-brief-intro,.ai-step-intro{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:16px 0 12px}.ai-brief-intro{margin-top:0}.ai-brief-intro strong,.ai-step-intro strong{font-size:13px}.ai-brief-intro span,.ai-step-intro span{font-size:10px}.ai-brief-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ai-brief-grid-advanced{margin-top:10px}.ai-brief-form label{display:grid;gap:5px;color:#aebfc5;font-size:11px}.ai-brief-form input,.ai-brief-form select,.ai-brief-form textarea{width:100%;box-sizing:border-box;border:1px solid #2b3b43;border-radius:5px;background:#0e1519;color:#d5e1e5;padding:9px;font-size:11px}.ai-brief-form input::placeholder,.ai-brief-form textarea::placeholder{color:#64747b}.ai-brief-wide{margin-top:10px}.ai-brief-wide textarea{min-height:54px;resize:vertical}.ai-brief-advanced{margin-top:12px;border:1px solid var(--ai-border,var(--app-line));border-radius:6px;background:var(--ai-control-bg,var(--app-panel-2));padding:0 10px 10px}.ai-brief-advanced>summary{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:10px 0;cursor:pointer;list-style:none}.ai-brief-advanced>summary::-webkit-details-marker{display:none}.ai-brief-advanced>summary strong{font-size:12px}.ai-brief-advanced>summary span{font-size:10px}.ai-memory-actions{display:flex;align-items:center;gap:10px;margin-top:11px}.ai-memory-actions button{border:1px solid #604348;border-radius:5px;background:#291f23;color:#f0aaa8;padding:7px 10px;font-size:10px;cursor:pointer}.ai-memory-actions span{color:#74858d;font-size:10px}.ai-workflow-mode-tabs~.ai-brief-form[hidden],.ai-brief-form[hidden],.ai-step-intro[hidden]{display:none}.ai-tools-panel.ai-mode-existing .ai-module-style{display:none!important}.ai-tools-panel.ai-mode-existing .ai-style-analysis-box{display:block}.ai-tools-panel.ai-mode-new .ai-style-analysis-box{display:none}@media(max-width:900px){.ai-brief-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.ai-workflow-mode-tabs{grid-template-columns:1fr}.ai-brief-grid{grid-template-columns:1fr}.ai-brief-intro,.ai-step-intro,.ai-brief-advanced>summary{display:grid}}
.ai-module-tabbar{display:none!important}.ai-module-tabs{margin-top:0;border-top:0}.ai-module-view{padding-top:0}
.ai-mode-guide{margin:0 0 14px;padding:11px 13px;border-left:3px solid var(--green);border-radius:4px;background:#10191d;color:#aebfc5;font-size:11px;line-height:1.6}.ai-mode-guide strong{color:#e1f5e8}.ai-module-prompt .ai-tool-buttons,.ai-module-prompt #aiToolPurpose,.ai-module-prompt .ai-quick-tags,.ai-module-prompt #copyAiStructure{display:none!important}.ai-final-prompt-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 10px;flex-wrap:wrap}.ai-final-prompt-actions #copyAiFull{margin:0;min-height:42px;padding:0 18px}.ai-module-prompt #aiPromptPreview{margin-top:0}
.ai-final-prompt-label{display:grid;gap:3px;color:#d8e6ea;min-width:0;flex:1}.ai-final-prompt-label strong{font-size:13px}.ai-final-prompt-label span{color:#81929a;font-size:10px}
.ai-only-view .content-grid{display:block!important}.ai-only-view .editor-column{width:100%!important;max-width:none}.ai-only-view .editor-column>*:not(#aiToolsPanel){display:none!important}.ai-only-view .tool-column{display:none!important}.ai-only-view #aiToolsPanel{display:block!important;max-width:1080px;margin:0 auto}.ai-only-view #newProject{display:none}.ai-only-view .project-search,.ai-only-view #projectSort,.ai-only-view .project-list,.ai-only-view .tag-list,.ai-only-view .side-section-label{display:none}.ai-only-view .content-grid{padding-bottom:40px}
.ai-suno-style-actions{display:flex;gap:7px;align-items:center}.ai-style-clear{border:1px solid #70494d;border-radius:6px;background:#2a2024;color:#ffb0ab;padding:8px 10px;font-size:11px;cursor:pointer;white-space:nowrap}.ai-style-clear:hover{background:#42272c}@media(max-width:700px){.ai-suno-style-actions{width:100%}.ai-suno-style-actions>*{flex:1}}
.lrc-ai-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line);background:#15191f}.lrc-ai-run,.lrc-ai-recognize,.lrc-ai-cancel{min-height:36px;border-radius:6px;padding:0 12px;font-size:11px;font-weight:800;white-space:nowrap}.lrc-ai-run{background:var(--green);color:#0d1914}.lrc-ai-recognize{border:1px solid #4d876d;background:#193126;color:#a9efc4}.lrc-ai-run:hover,.lrc-ai-recognize:hover{filter:brightness(1.07)}.lrc-ai-run:disabled,.lrc-ai-recognize:disabled{opacity:.55;cursor:wait}.lrc-ai-cancel{border:1px solid #734b48;background:#2e211f;color:#f2a69c}.lrc-ai-tools>label{display:flex;align-items:center;gap:6px;color:#8f98a5;font-size:10px;white-space:nowrap}.lrc-ai-tools select{height:34px;border:1px solid #343b46;border-radius:5px;background:#101318;color:#d7dce4;padding:0 26px 0 8px;font-size:10px}.lrc-ai-checkbox input{accent-color:var(--green)}.lrc-ai-state{min-width:240px;display:grid;grid-template-columns:8px minmax(150px,1fr);align-items:center;gap:7px;margin-left:auto;color:#9da7b2;font-size:10px}.lrc-ai-dot{width:7px;height:7px;border-radius:50%;background:#68727f}.lrc-ai-tools.running .lrc-ai-dot{background:var(--green);box-shadow:0 0 0 4px rgba(117,230,170,.1)}.lrc-ai-tools.error .lrc-ai-dot{background:var(--coral)}.lrc-ai-meter{grid-column:1/-1;height:3px;overflow:hidden;border-radius:4px;background:#282e37}.lrc-ai-meter span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--green),var(--cyan));transition:width .18s ease}.lrc-ai-confidence{flex:0 0 auto;border:1px solid #35634e;border-radius:4px;background:#193126;color:#8ce1ae;padding:2px 5px;font:normal 9px var(--font-family-mono);white-space:nowrap}.lrc-ai-confidence.low{border-color:#754842;background:#34201f;color:#f0a096}
@media(max-width:900px){.lrc-ai-tools{align-items:flex-start}.lrc-ai-state{flex-basis:100%;margin-left:0}.lrc-ai-tools>label{white-space:normal}.lrc-ai-confidence{margin-left:auto}}
.lrc-modal .modal-head{margin-bottom:14px}
.lrc-ai-tools{padding:10px 12px;border:1px solid #2e443a;border-radius:7px;background:#151b18}
.lrc-ai-state{flex:1 1 260px;max-width:520px}.lrc-ai-timing{grid-column:1/-1;display:flex;gap:14px;align-items:center;color:#7f8d96;font:10px var(--font-family-mono)}.lrc-ai-timing span{display:flex;gap:4px;white-space:nowrap}.lrc-ai-timing strong{color:#c7d8cf;font-weight:700}.lrc-ai-install-btn{height:26px;padding:0 10px;font-size:12px;font-weight:700;border-radius:4px;border:1px solid var(--app-accent);color:var(--app-accent);background:transparent;white-space:nowrap;cursor:pointer;flex-shrink:0}.lrc-ai-install-btn:hover{background:color-mix(in srgb,var(--app-accent) 15%,transparent)}
.lrc-playback-toolbar{padding:8px 0 4px;border:0;color:#aeb8b2}
.lrc-playback-toolbar .lrc-selection{color:#9fb3aa;border-color:#34463e;background:#171e1b}
.lrc-playback-toolbar .lrc-follow-toggle{margin-left:auto}
.lrc-overall-seek{padding:7px 0 10px}
.lrc-more-tools{flex:none;border-bottom:1px solid var(--line);color:var(--muted)}
.lrc-more-tools>summary{width:max-content;min-height:30px;display:flex;align-items:center;gap:7px;padding:0 4px;cursor:pointer;color:#8f98a5;font-size:10px;list-style:none}
.lrc-more-tools>summary::-webkit-details-marker{display:none}
.lrc-more-tools>summary::before{content:'+';width:17px;height:17px;display:grid;place-items:center;border:1px solid #3a444d;border-radius:4px;color:#b7c1c9;font:12px var(--font-family-mono)}
.lrc-more-tools[open]>summary::before{content:'−'}
.lrc-more-tools>summary:hover{color:var(--green)}
.lrc-more-tools-body{display:grid;gap:8px;padding:5px 0 10px}
.lrc-more-tools .lrc-backup-tools{flex-basis:auto}
.lrc-capture-notice{top:176px}
@media(max-width:900px){.lrc-ai-state{max-width:none}.lrc-playback-toolbar .lrc-selection{order:0}.lrc-playback-toolbar .lrc-follow-toggle{margin-left:0}.lrc-overall-seek{grid-template-columns:auto 68px minmax(120px,1fr) 68px}.lrc-more-tools-body{padding-bottom:12px}}

/* Desktop information hierarchy: the workbench is organized around the current song. */
.main-nav { gap: 4px; }
.main-nav .compat-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.main-nav .nav-item { min-height: 42px; border-radius: 6px; }
.main-nav .ai-nav-item { margin-top: 8px; border-top: 1px solid #29343d; padding-top: 13px; }
.workflow-strip { border-color: #31434b; background: #121b20; }
.workflow-label strong { color: #e3f2ee; }
.workflow-step { min-height: 46px; }
.project-header { border-bottom: 1px solid #29373d; }
@media (min-width: 1100px) {
  .content-grid { grid-template-columns: minmax(0, 1fr) 280px; gap: 22px; }
  .editor-column > .ai-tools-panel { margin-top: 0; }
  .tool-column { padding-top: 0; }
}
.version-pitch { border: 1px solid #4d876d; background: #193126; color: #a9efc4; }
.version-pitch:hover:not(:disabled) { filter: brightness(1.08); }
.version-pitch:disabled { opacity: .55; cursor: wait; }
.pitch-status { flex-basis: 100%; margin: 0; color: #83949c; font-size: 10px; }
.pitch-status-ready { color: #8fd8ac; }
.pitch-status-empty { color: #b39b69; }

/* Account and support surfaces inherit the global theme tokens. */
.account-chip,.support-chip{min-height:var(--control-height);border:1px solid var(--app-line);border-radius:var(--control-radius);background:var(--button-secondary-bg);color:var(--app-text);font:600 var(--font-sm) inherit;cursor:pointer}.account-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:0 10px}.account-chip-icon{color:var(--app-accent);font-size:16px}.support-chip{padding:0 10px;color:var(--app-muted)}.account-chip:hover,.support-chip:hover{border-color:var(--app-accent);color:var(--app-text)}.account-modal,.support-modal{width:min(460px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto}.account-status{min-height:20px;margin:4px 0 14px;color:var(--app-muted);font-size:var(--font-sm);line-height:1.5}.account-status.error{color:var(--app-danger)}.account-status.ok{color:var(--app-accent)}.account-view-switch{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:var(--space-4);border:1px solid var(--app-line);border-radius:var(--control-radius);overflow:hidden}.account-view-switch button{min-height:34px;border:0;border-right:1px solid var(--app-line);background:var(--app-panel-2);color:var(--app-muted);cursor:pointer}.account-view-switch button:last-child{border-right:0}.account-view-switch button.active{background:var(--app-accent-soft);color:var(--app-text)}.account-view{display:grid;gap:var(--space-3)}.account-view label{display:grid;gap:6px;color:var(--app-muted);font-size:var(--font-sm)}.account-view input{width:100%;box-sizing:border-box;min-height:var(--control-height);border:1px solid var(--app-line);border-radius:var(--control-radius);background:var(--app-panel-2);color:var(--app-text);padding:0 10px}.account-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--space-2);align-items:end}.account-code-row .outline-btn{min-height:var(--control-height);white-space:nowrap}.account-submit{justify-content:center}.account-help,.support-intro,.support-note{margin:0;color:var(--app-muted);font-size:var(--font-xs);line-height:1.6}.account-member{margin-top:var(--space-4);padding:var(--space-3);border:1px solid var(--app-line);border-radius:var(--panel-radius);background:var(--app-panel-2)}.account-member strong,.account-member span{display:block}.account-member strong{color:var(--app-text);font-size:var(--font-base)}.account-member span{margin-top:4px;color:var(--app-muted);font-size:var(--font-xs)}.account-footer{margin-top:var(--space-4)}.support-items{display:grid;gap:var(--space-2);margin:var(--space-4) 0}.support-item{display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:var(--space-2);padding:10px;border:1px solid var(--app-line);border-radius:var(--control-radius);background:var(--app-panel-2)}.support-item span,.support-item strong{min-width:0}.support-item span{color:var(--app-muted);font-size:var(--font-sm)}.support-item strong{overflow:hidden;color:var(--app-text);font-size:var(--font-sm);text-overflow:ellipsis;white-space:nowrap}.support-item button{min-height:28px;border:1px solid var(--app-line);border-radius:var(--control-radius);background:var(--app-panel);color:var(--app-text);cursor:pointer}.support-item button:disabled{cursor:not-allowed;opacity:.55}.support-note{min-height:18px;color:var(--app-info)}
@media(max-width:900px){.top-actions{gap:6px}.account-chip{padding:0 8px}.support-chip{padding:0 8px}}@media(max-width:620px){.account-chip{font-size:0}.account-chip-icon{font-size:16px}.support-chip{font-size:0}.support-chip::after{content:'?';font-size:var(--font-sm)}.account-code-row{grid-template-columns:1fr}.account-code-row .outline-btn{width:100%}}

/* Promo / ad hosts — free-tier only; content from license-api /api/ads */
.app-ad-host{display:none;width:100%;margin:0;padding:0;border:0;background:transparent}
.app-ad-host:not([hidden]){display:block}
.app-ad-card{display:grid;gap:8px;padding:10px;border:1px solid var(--app-line);border-radius:var(--control-radius,8px);background:var(--app-panel-2);color:var(--app-text);text-align:left;cursor:pointer}
.app-ad-card:hover{border-color:var(--app-accent)}
.app-ad-card img{display:block;width:100%;max-height:88px;object-fit:cover;border-radius:6px;background:var(--app-bg)}
.app-ad-card strong{font-size:12px;line-height:1.35}
.app-ad-card span{color:var(--app-muted);font-size:11px;line-height:1.45}
.app-ad-card em{color:var(--app-accent);font-size:11px;font-style:normal;font-weight:700}
.app-ad-host-inline{margin:0 0 14px}
.app-ad-host-practice{width:min(360px,100%);margin-top:8px}
.sidebar-spacer{display:flex;flex-direction:column;justify-content:flex-end;gap:10px;flex:1;min-height:12px;padding:8px 0}

/* Works library — task-first separation between songs that need preparation and songs ready to sing. */
.library-quick-nav{display:none;gap:4px;margin-top:14px;padding-top:13px;border-top:1px solid var(--app-line)}
body[data-shell-surface="library"] .library-quick-nav{display:grid}
.library-quick-nav-title{display:flex;align-items:center;justify-content:space-between;padding:0 9px 7px;color:var(--app-muted)}
.library-quick-nav-title span{font-size:10px;font-weight:800;letter-spacing:.08em}
.library-quick-nav-title small{font-size:8px}
.library-quick-nav .nav-item{display:grid;grid-template-columns:20px minmax(0,1fr) auto;min-height:48px;gap:9px;padding:7px 9px;border:1px solid transparent;text-align:left}
.library-quick-nav .nav-item>span:nth-child(2){display:grid;min-width:0;gap:2px}
.library-quick-nav .nav-item strong{overflow:hidden;color:var(--app-text);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.library-quick-nav .nav-item small{overflow:hidden;color:var(--app-muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.library-quick-nav .nav-item .icon{color:var(--app-muted);font-size:15px}
.library-quick-nav .nav-item.active{border-color:color-mix(in srgb,var(--app-accent) 42%,var(--app-line));background:var(--workspace-nav-active)}
.library-quick-nav .nav-item.active .icon,.library-quick-nav .nav-item.active .nav-count{color:var(--app-accent)}
.library-quick-nav .nav-count{font:700 10px var(--font-family-mono)}
#libraryView.library-view{max-width:1480px;padding-top:30px}
#libraryView .library-header{align-items:center;margin-bottom:18px}
#libraryView .library-header h1{margin:7px 0 6px;font-size:30px;letter-spacing:-1px}
#libraryView .library-header p{max-width:680px;color:var(--app-muted);font-size:12px;line-height:1.6}
.library-category-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
.library-category-tabs>button{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 16px;border:1px solid var(--app-line);border-radius:10px;background:var(--app-panel);color:var(--app-text);text-align:left;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.library-category-tabs>button:hover{border-color:color-mix(in srgb,var(--app-accent) 46%,var(--app-line));background:var(--state-hover);transform:translateY(-1px)}
.library-category-tabs>button.active{border-color:var(--app-accent);background:color-mix(in srgb,var(--app-accent-soft) 72%,var(--app-panel));box-shadow:inset 3px 0 0 var(--app-accent)}
.library-category-tabs span,.library-category-tabs strong,.library-category-tabs small{display:block}
.library-category-tabs strong{font-size:14px}
.library-category-tabs small{margin-top:5px;color:var(--app-muted);font-size:10px;font-weight:500}
.library-category-tabs b{min-width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--app-line);border-radius:999px;background:var(--app-panel-2);color:var(--app-text);font:700 12px var(--font-family-mono)}
.library-category-tabs>button.active b{border-color:color-mix(in srgb,var(--app-accent) 52%,var(--app-line));background:var(--app-accent);color:var(--app-accent-ink)}
#libraryView .library-toolbar{position:relative;display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:9px;border-color:var(--app-line);background:var(--app-panel);border-radius:9px}
#libraryView .library-search{min-width:260px;height:38px;border-color:var(--app-line);background:var(--app-panel-2);color:var(--app-muted)}
#libraryView .library-toolbar select,#libraryView .library-filter-menu summary{height:38px;border:1px solid var(--app-line);border-radius:6px;background:var(--app-panel-2);color:var(--app-text);font-size:10px}
#libraryView .library-collection-select{display:none}
#libraryView .library-toolbar>select{min-width:118px;padding:0 28px 0 10px}
.library-filter-menu{position:relative}
.library-filter-menu summary{min-width:88px;display:flex;align-items:center;padding:0 12px;cursor:pointer;list-style:none;white-space:nowrap}
.library-filter-menu summary::-webkit-details-marker{display:none}
.library-filter-menu summary::after{content:'⌄';margin-left:auto;padding-left:9px;color:var(--app-muted)}
.library-filter-menu[open] summary{border-color:var(--app-accent);background:var(--app-accent-soft)}
.library-filter-menu>div{position:absolute;right:0;top:44px;z-index:8;width:220px;display:grid;gap:7px;padding:9px;border:1px solid var(--app-line);border-radius:8px;background:var(--app-elevated);box-shadow:0 14px 34px var(--app-shadow)}
.library-filter-menu>div select{width:100%;padding:0 8px}
#libraryView .view-toggle{margin-left:auto;gap:2px;padding:3px;border-color:var(--app-line);background:var(--app-panel-2)}
#libraryView .view-toggle button{width:auto;min-width:48px;height:30px;padding:0 10px;color:var(--app-muted);font-size:10px}
#libraryView .view-toggle button.active{background:var(--app-accent-soft);color:var(--app-accent);font-weight:800}
#libraryView .library-count{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:9px 3px;color:var(--app-muted)}
#libraryView .library-count strong{color:var(--app-text);font:700 11px inherit}
#libraryView .library-count span{font:10px var(--font-family-mono)}
#libraryView .library-list.mode-list{display:grid;gap:7px}
#libraryView .library-list-head,#libraryView .library-item.list{--library-row-columns:minmax(230px,1.3fr) minmax(210px,1fr) minmax(105px,.52fr) minmax(92px,.44fr) minmax(365px,auto);display:grid;grid-template-columns:var(--library-row-columns);align-items:center;gap:14px}
#libraryView .library-list-head{min-height:34px;padding:0 14px;border-bottom:1px solid var(--app-line);color:var(--app-faint);font:9px var(--font-family-mono);letter-spacing:.06em}
#libraryView .library-item{overflow:visible;border-color:var(--app-line);border-radius:9px;background:var(--app-panel);color:var(--app-text);box-shadow:0 1px 0 var(--app-highlight) inset}
#libraryView .library-item:hover{border-color:color-mix(in srgb,var(--app-accent) 46%,var(--app-line));background:var(--state-hover)}
#libraryView .library-item.is-incomplete{border-left:3px solid var(--status-warning-border)}
#libraryView .library-item.is-ready{border-left:3px solid var(--status-success-border)}
#libraryView .library-item.is-current{box-shadow:inset 3px 0 0 var(--app-accent),0 1px 0 var(--app-highlight) inset}
#libraryView .library-open{width:100%;min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;padding:13px 0 13px 14px;color:inherit;text-align:left;background:transparent}
#libraryView .library-cover{width:42px;height:42px;border:1px solid color-mix(in srgb,var(--app-accent) 32%,var(--app-line));border-radius:8px;background:var(--app-accent-soft);color:var(--app-accent);font-size:15px}
#libraryView .library-main{min-width:0}
#libraryView .library-main small,#libraryView .library-main em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#libraryView .library-main small{color:var(--app-muted)}
#libraryView .library-main em{color:var(--app-faint)}
.library-state-badge,.library-current-badge{flex:0 0 auto;padding:3px 7px;border:1px solid var(--app-line);border-radius:999px;font-size:11px;line-height:1;font-weight:800}
.library-state-badge.pending{border-color:var(--status-warning-border);background:var(--status-warning-bg);color:var(--status-warning-text)}
.library-state-badge.ready{border-color:var(--status-success-border);background:var(--status-success-bg);color:var(--status-success-text)}
.library-state-badge.import{border-color:var(--app-secondary);background:var(--status-info-bg);color:var(--status-info-text)}
#libraryView .library-readiness{min-width:0;padding:10px 0}
.library-readiness-copy{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:7px}
.library-readiness-copy strong{font-size:11px}
.library-readiness-copy small{color:var(--app-muted);font:9px var(--font-family-mono);white-space:nowrap}
.library-readiness-copy.is-ready{display:grid;gap:4px;margin:0}
.library-readiness-copy.is-ready strong{color:var(--status-success-text)}
.library-readiness-copy.is-ready small{white-space:normal;line-height:1.45}
.library-missing-actions{display:flex;flex-wrap:wrap;gap:5px}
.library-missing-actions button{min-height:27px;display:inline-flex;align-items:center;gap:6px;padding:0 8px;border:1px solid var(--status-warning-border);border-radius:5px;background:var(--status-warning-bg);color:var(--status-warning-text);font-size:9px;font-weight:700}
.library-missing-actions button:hover{border-color:var(--app-warm);background:color-mix(in srgb,var(--app-warm) 19%,var(--app-panel));color:color-mix(in srgb,var(--app-warm) 86%,var(--app-text))}
.library-missing-actions button span{font-size:11px}
.library-practice-cell{min-width:0;display:grid;gap:5px;padding:10px 0}
.library-practice-cell strong{font-size:11px}
.library-practice-cell small{overflow:hidden;color:var(--app-muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.library-practice-bar{height:4px;overflow:hidden;border-radius:999px;background:var(--app-panel-2)}
.library-practice-bar i{display:block;width:var(--library-practice-progress,0%);height:100%;border-radius:inherit;background:var(--app-accent)}
#libraryView .library-time{display:grid;gap:4px;color:var(--app-muted);font-style:normal}
#libraryView .library-time strong{color:var(--app-text);font:700 10px var(--font-family-mono)}
#libraryView .library-time small{font-size:9px}
#libraryView .library-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;padding:10px 12px 10px 0}
#libraryView .library-actions button{width:auto;height:31px;min-width:0;padding:0 8px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--app-muted);font-size:9px;font-weight:700;white-space:nowrap}
#libraryView .library-actions button:hover{border-color:var(--app-line);background:var(--button-secondary-bg-hover);color:var(--app-text)}
#libraryView .library-actions .library-action-continue,#libraryView .library-actions .library-action-practice{border-color:var(--button-accent-border);background:var(--button-accent-bg);color:var(--button-accent-text)}
#libraryView .library-actions .library-action-play,#libraryView .library-actions .library-action-post{border-color:var(--app-line);background:var(--button-secondary-bg);color:var(--app-text)}
#libraryView .library-actions .library-action-delete:hover{border-color:var(--state-danger-line);background:var(--state-danger-bg);color:var(--state-danger-text)}
#libraryView .library-list.mode-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#libraryView .library-item.cards{display:grid;grid-template-columns:1fr;padding:0}
#libraryView .library-item.cards .library-open{padding:14px}
#libraryView .library-item.cards .library-readiness,#libraryView .library-item.cards .library-practice-cell,#libraryView .library-item.cards .library-time{margin:0 14px;padding:12px 0;border-top:1px solid var(--app-line)}
#libraryView .library-item.cards .library-time{display:flex;align-items:center;justify-content:space-between}
#libraryView .library-item.cards .library-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;padding:0 14px 14px}
#libraryView .library-item.cards .library-actions .library-action-practice,#libraryView .library-item.cards .library-actions .library-action-continue{order:-2}
#libraryView .library-item.cards .library-actions .library-action-play{order:-3}
#libraryView .library-empty{grid-column:1/-1;min-height:230px;display:grid;place-items:center;align-content:center;gap:7px;padding:34px;border-color:var(--app-line);border-radius:9px;background:color-mix(in srgb,var(--app-panel) 72%,var(--app-bg));color:var(--app-muted)}
#libraryView .library-empty strong{color:var(--app-text);font-size:14px}
#libraryView .library-empty span{font-size:11px}
#libraryView .library-empty button{min-height:34px;margin-top:8px;padding:0 12px;border:1px solid var(--app-line);border-radius:6px;background:var(--button-secondary-bg);color:var(--app-text);font-size:10px;font-weight:700}
#libraryView .pagination{position:relative;gap:8px;padding:18px 0 8px;color:var(--app-muted)}
#libraryView .pagination button,#libraryView .pagination select{border-color:var(--app-line);background:var(--button-secondary-bg);color:var(--app-text)}
#libraryView .pagination label{position:absolute;right:0;display:flex;align-items:center;gap:7px;color:var(--app-muted);font:9px var(--font-family-mono)}
#libraryView .pagination label select{padding:7px 9px}
@media(max-width:1500px){#libraryView .library-list-head,#libraryView .library-item.list{--library-row-columns:minmax(220px,1.25fr) minmax(200px,1fr) minmax(105px,.5fr) minmax(330px,auto)}#libraryView .library-list-head span:nth-child(4),#libraryView .library-item.list>.library-time{display:none}}
@media(max-width:1180px){#libraryView .library-list-head,#libraryView .library-item.list{--library-row-columns:minmax(220px,1.2fr) minmax(210px,1fr) minmax(310px,auto)}#libraryView .library-list-head span:nth-child(3),#libraryView .library-practice-cell{display:none}#libraryView .library-list.mode-cards{grid-template-columns:repeat(2,minmax(0,1fr))}#libraryView .library-item.cards .library-practice-cell{display:grid}}
@media(max-width:820px){#libraryView.library-view{padding-top:22px}#libraryView .library-header{align-items:flex-start}.library-category-tabs{grid-template-columns:1fr}#libraryView .library-toolbar{flex-wrap:wrap}#libraryView .library-search{width:100%;min-width:100%}#libraryView .library-filter-menu{position:static}#libraryView .library-filter-menu>div{left:9px;right:9px;top:auto;width:auto;margin-top:6px}#libraryView .view-toggle{margin-left:0}#libraryView .library-list-head{display:none}#libraryView .library-item.list{display:grid;grid-template-columns:1fr;padding:0}#libraryView .library-item.list>.library-readiness,#libraryView .library-item.list>.library-practice-cell,#libraryView .library-item.list>.library-time{display:grid;margin:0 14px;padding:11px 0;border-top:1px solid var(--app-line)}#libraryView .library-item.list>.library-time{display:flex;align-items:center;justify-content:space-between}#libraryView .library-actions{justify-content:flex-start;flex-wrap:wrap;padding:0 14px 14px}#libraryView .library-actions>button{display:inline-flex}#libraryView .library-list.mode-cards{grid-template-columns:1fr}#libraryView .pagination{padding-bottom:48px}#libraryView .pagination label{right:auto;bottom:8px}}
@media(max-width:700px){#libraryView .library-collection-select{display:block;min-width:118px}}

/* The library is a destination, not another project-editing step. Keep its
   sidebar focused on collections and remove controls that belong to the
   current-song workflow while this shell is active. */
body[data-shell-surface="library"] .sidebar-quick-title,
body[data-shell-surface="library"] #sidebarLyricRemix,
body[data-shell-surface="library"] .workspace-experience,
body[data-shell-surface="library"] #projectStageNav,
body[data-shell-surface="library"] .sidebar-tools-title,
body[data-shell-surface="library"] #desktopPlayerNav,
body[data-shell-surface="library"] #activeSongContext,
body[data-shell-surface="library"] .top-actions #newProject { display: none !important; }
body[data-shell-surface="library"] .library-quick-nav { margin-top: 10px; padding-top: 10px; }
body[data-shell-surface="library"] .library-quick-nav-title span,
body[data-shell-surface="library"] .library-quick-nav-title small,
body[data-shell-surface="library"] .library-quick-nav .nav-item strong,
body[data-shell-surface="library"] .library-quick-nav .nav-item small,
body[data-shell-surface="library"] .library-quick-nav .nav-count { font-size: 12px; }
body[data-shell-surface="library"] .library-quick-nav .nav-item { min-height: 46px; }

/* Classic workflow pages keep the main process visible. Low-frequency desktop
   tools stay in their own dashed block and do not compete with the active
   stage's primary navigation. */
body[data-shell-surface="project"][data-workspace-experience="classic"] .workflow-desktop-block { display: none !important; }

/* Library metadata and action labels are user-facing content. Keep them
   readable and let the responsive rules fold low-frequency actions instead of
   shrinking the type. */
#libraryView .library-category-tabs small,
#libraryView .library-toolbar select,
#libraryView .library-filter-menu summary,
#libraryView .view-toggle button,
#libraryView .library-main small,
#libraryView .library-main em,
#libraryView .library-state-badge,
#libraryView .library-current-badge,
#libraryView .library-readiness-copy strong,
#libraryView .library-readiness-copy small,
#libraryView .library-missing-actions button,
#libraryView .library-practice-cell strong,
#libraryView .library-practice-cell small,
#libraryView .library-time strong,
#libraryView .library-time small,
#libraryView .library-actions button,
#libraryView .library-empty span,
#libraryView .library-empty button,
#libraryView .pagination label { font-size: 12px; }
#libraryView .library-list-head { font-size: 12px; }
#libraryView .library-actions { gap: 7px; }
#libraryView .library-actions button { min-height: 36px; padding-inline: 10px; }
#libraryView .library-more-actions summary { min-height: 36px; display: inline-flex; align-items: center; padding-inline: 10px; }

/* AI co-writer: the direct generation path is primary; legacy prompt tools stay available below. */
.ai-tools-panel.ai-cowriter-primary { display: block; }
.ai-co-writer-panel { width: 100%; margin: 18px 0 24px; padding: 22px; border: 1px solid var(--app-accent); border-radius: calc(var(--panel-radius) + 4px); background: color-mix(in srgb, var(--app-accent-soft) 36%, var(--app-panel)); box-shadow: 0 18px 42px color-mix(in srgb, var(--app-shadow) 68%, var(--app-bg)); }
.ai-co-writer-panel[hidden] { display: none; }
.ai-co-writer-panel .eyebrow { font-size: 12px; }
.ai-co-writer-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ai-co-writer-head > div { display: grid; gap: 4px; }
.ai-co-writer-head h3 { margin: 0; color: var(--app-text); font-size: 17px; font-weight: 700; line-height: 1.3; }
.ai-co-writer-route-hint { color: var(--app-muted); font-size: 12px; line-height: 1.4; }
.ai-co-writer-context { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; padding: 12px 14px; border: 1px solid var(--app-line); border-left: 4px solid var(--app-secondary); border-radius: 8px; background: color-mix(in srgb, var(--app-secondary) 10%, var(--app-panel)); }
.ai-co-writer-context > div { display: grid; min-width: 0; gap: 4px; }
.ai-co-writer-context .eyebrow { color: var(--app-secondary); font-size: 12px; }
.ai-co-writer-context strong { overflow: hidden; color: var(--app-text); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.ai-co-writer-context > div > span:last-child { color: var(--app-muted); font-size: 12px; line-height: 1.5; }
.ai-co-writer-context-badge { flex: 0 0 auto; padding: 6px 9px; border: 1px solid var(--app-secondary); border-radius: 999px; color: var(--app-secondary); font-size: 12px; font-weight: 800; white-space: nowrap; }
.ai-co-writer-context-badge[data-state="independent"] { border-color: var(--app-line); color: var(--app-muted); background: var(--app-panel-2); }
.ai-co-writer-route-options { display: flex; gap: 0; border: 1px solid var(--app-line); border-radius: 7px; overflow: hidden; }
.ai-co-writer-route-options button { padding: 7px 14px; border: none; background: var(--app-panel-2); color: var(--app-muted); font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.ai-co-writer-route-options button:not(:last-child) { border-right: 1px solid var(--app-line); }
.ai-co-writer-route-options button.active { background: var(--app-accent); color: var(--app-accent-ink); }
.ai-co-writer-route-options button:hover:not(.active) { background: color-mix(in srgb, var(--app-accent-soft) 40%, var(--app-panel-2)); }
.ai-co-writer-entry { margin-top: 16px; padding: 16px; border: 1px solid var(--app-line); border-radius: var(--panel-radius); background: color-mix(in srgb, var(--app-panel) 82%, var(--app-bg)); }
.ai-co-writer-advanced { margin-top: 12px; border: 1px solid var(--app-line); border-radius: 7px; background: color-mix(in srgb, var(--app-accent-soft) 10%, var(--app-panel)); }
.ai-co-writer-advanced > summary { display: flex; align-items: center; gap: 6px; padding: 8px 12px; color: var(--app-muted); font-size: 12px; font-weight: 600; cursor: pointer; list-style: none; }
.ai-co-writer-advanced > summary::-webkit-details-marker { display: none; }
.ai-co-writer-advanced > summary::before { content: '▸'; font-size: 11px; }
.ai-co-writer-advanced[open] > summary::before { content: '▾'; }
.ai-co-writer-advanced-body { display: grid; gap: 10px; padding: 0 12px 12px; }
.ai-co-writer-external-view { margin-top: 14px; }
.ai-co-writer-external-view[hidden] { display: none; }
.ai-co-writer-output-mode { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, 240px); gap: 4px 12px; align-items: center; margin: 0 0 12px; padding: 10px 12px; border: 1px solid var(--app-line); border-radius: 7px; background: color-mix(in srgb, var(--app-accent-soft) 12%, var(--app-panel)); }
.ai-co-writer-output-mode strong { color: var(--app-text); font-size: 13px; }
.ai-co-writer-output-mode span { color: var(--app-muted); font-size: 12px; line-height: 1.5; }
.ai-co-writer-output-mode select { grid-column: 2; grid-row: 1 / span 2; min-height: 42px; padding: 8px 10px; border: 1px solid var(--app-line); border-radius: 7px; background: var(--app-control-surface); color: var(--app-text); font: 13px/1.4 var(--font-family-base); }
.ai-co-writer-output-mode select:focus { outline: 2px solid color-mix(in srgb, var(--app-accent) 56%, var(--app-bg)); outline-offset: 1px; border-color: var(--app-accent); }
.ai-co-writer-input-label { display: grid; gap: 7px; }
.ai-co-writer-input-label strong { color: var(--app-text); font-size: 15px; }
.ai-co-writer-input-label span { color: var(--app-muted); font-size: 12px; line-height: 1.5; }
.ai-co-writer-input-label input,
.ai-co-writer-input-label textarea,
.ai-co-writer-draft-meta input,
.ai-co-writer-draft-meta textarea,
.ai-co-writer-lyrics-label textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--app-line); border-radius: 7px; background: var(--app-control-surface); color: var(--app-text); padding: 12px; font: 13px/1.6 var(--font-family-base); resize: vertical; }
.ai-co-writer-input-label input { min-height: 42px; resize: none; }
.ai-co-writer-input-label textarea { min-height: 88px; }
.ai-co-writer-input-label input:focus,
.ai-co-writer-input-label textarea:focus,
.ai-co-writer-draft-meta input:focus,
.ai-co-writer-draft-meta textarea:focus,
.ai-co-writer-lyrics-label textarea:focus { outline: 2px solid color-mix(in srgb, var(--app-accent) 56%, var(--app-bg)); outline-offset: 1px; border-color: var(--app-accent); }
.ai-co-writer-title-input { margin-bottom: 12px; }
.ai-co-writer-reference-toggle { display: flex; align-items: flex-start; gap: 9px; margin: 0 0 12px; padding: 10px 12px; border: 1px solid var(--app-line); border-radius: 7px; background: color-mix(in srgb, var(--app-accent-soft) 18%, var(--app-panel)); color: var(--app-text); cursor: pointer; }
.ai-co-writer-reference-toggle input { flex: 0 0 auto; width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--app-accent); }
.ai-co-writer-reference-toggle span { display: grid; gap: 3px; }
.ai-co-writer-reference-toggle strong { font-size: 13px; }
.ai-co-writer-reference-toggle small { color: var(--app-muted); font-size: 12px; line-height: 1.5; }
.ai-co-writer-reference-toggle:has(input:focus-visible) { outline: 2px solid color-mix(in srgb, var(--app-accent) 56%, var(--app-bg)); outline-offset: 1px; }
.ai-co-writer-reference-toggle:has(input:disabled) { cursor: not-allowed; opacity: .66; }
.ai-co-writer-chips,
.ai-co-writer-quick-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 11px; }
.ai-co-writer-chips button,
.ai-co-writer-quick-actions button,
.ai-co-writer-copy-actions button { min-height: 34px; padding: 6px 10px; border: 1px solid var(--app-line); border-radius: 6px; background: var(--app-panel-2); color: var(--app-muted); font-size: 12px; cursor: pointer; }
.ai-co-writer-chips button:hover,
.ai-co-writer-quick-actions button:hover,
.ai-co-writer-copy-actions button:hover { border-color: var(--app-accent); color: var(--app-accent-readable); background: color-mix(in srgb, var(--app-accent-soft) 62%, var(--app-panel-2)); }
.ai-co-writer-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.ai-co-writer-actions > button { min-height: 40px; }
.ai-co-writer-actions > span { min-width: 220px; flex: 1 1 260px; color: var(--app-muted); font-size: 12px; line-height: 1.5; }
.ai-co-writer-conversation { display: grid; gap: 10px; max-height: 360px; margin-top: 14px; overflow: auto; scrollbar-width: thin; }
.ai-co-writer-empty { display: grid; gap: 5px; padding: 18px; border: 1px dashed var(--app-line); border-radius: var(--panel-radius); color: var(--app-muted); background: color-mix(in srgb, var(--app-panel) 70%, transparent); }
.ai-co-writer-empty strong { color: var(--app-text); font-size: 13px; }
.ai-co-writer-empty span { font-size: 12px; line-height: 1.5; }
.ai-co-writer-message { max-width: 86%; padding: 11px 13px; border: 1px solid var(--app-line); border-radius: 10px; background: var(--app-panel); }
.ai-co-writer-message.is-user { justify-self: end; border-color: color-mix(in srgb, var(--app-secondary) 44%, var(--app-line)); background: color-mix(in srgb, var(--app-secondary) 12%, var(--app-panel)); }
.ai-co-writer-message > span { display: block; color: var(--app-accent-readable); font-size: 12px; font-weight: 800; }
.ai-co-writer-message p { margin: 5px 0 0; color: var(--app-text); font-size: 13px; line-height: 1.6; white-space: normal; }
.ai-co-writer-draft { margin-top: 15px; padding: 16px; border: 1px solid var(--app-accent); border-radius: var(--panel-radius); background: color-mix(in srgb, var(--app-accent-soft) 22%, var(--app-panel)); }
.ai-co-writer-draft[hidden] { display: none; }
.ai-co-writer-draft > header,
.ai-co-writer-versions > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.ai-co-writer-draft > header strong { display: block; margin-top: 4px; color: var(--app-text); font-size: 14px; }
.ai-co-writer-copy-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.ai-co-writer-copy-actions button { color: var(--app-accent-readable); border-color: var(--app-accent); }
.ai-co-writer-draft-meta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; margin-top: 14px; }
.ai-co-writer-draft-meta label,
.ai-co-writer-lyrics-label { display: grid; gap: 6px; color: var(--app-muted); font-size: 12px; }
.ai-co-writer-format-hint { color: var(--app-faint); font-size: 12px; line-height: 1.5; }
.ai-co-writer-draft-meta input { min-height: 42px; }
.ai-co-writer-draft-meta textarea { min-height: 90px; }
.ai-co-writer-lyrics-label { margin-top: 12px; }
.ai-co-writer-lyrics-label textarea { min-height: 260px; font-family: var(--font-family-mono); }
.ai-co-writer-quick-actions > span { color: var(--app-muted); font-size: 12px; }
.ai-co-writer-draft > footer { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.ai-co-writer-draft > footer button { min-height: 40px; }
.ai-co-writer-versions { margin-top: 15px; padding-top: 14px; border-top: 1px solid var(--app-line); }
.ai-co-writer-versions > header strong { color: var(--app-text); font-size: 13px; }
.ai-co-writer-versions > header span { color: var(--app-muted); font-size: 12px; }
.ai-co-writer-versions > div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
.ai-co-writer-versions > div > span { color: var(--app-faint); font-size: 12px; }
.ai-co-writer-versions button { display: grid; grid-template-columns: auto minmax(70px, 1fr); gap: 2px 8px; min-width: 160px; padding: 8px 10px; border: 1px solid var(--app-line); border-radius: 6px; background: var(--app-panel); color: var(--app-text); text-align: left; cursor: pointer; }
.ai-co-writer-versions button:hover { border-color: var(--app-accent); background: color-mix(in srgb, var(--app-accent-soft) 34%, var(--app-panel)); }
.ai-co-writer-versions button span { grid-row: 1 / span 2; align-self: center; color: var(--app-accent-readable); font: 700 12px var(--font-family-mono); }
.ai-co-writer-versions button strong { overflow: hidden; color: var(--app-text); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.ai-co-writer-versions button small { overflow: hidden; color: var(--app-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.ai-tools-panel.ai-cowriter-primary .ai-legacy-writing-tools { margin-top: 16px; border-color: var(--app-line); opacity: .94; }
.ai-tools-panel.ai-cowriter-primary .ai-module-tabs.ai-legacy-writing-tools { padding-top: 15px; border-top: 1px solid var(--app-line); }
.ai-tools-panel.ai-cowriter-primary .ai-legacy-writing-tools::before { display: block; margin-bottom: 10px; color: var(--app-muted); font-size: 13px; font-weight: 800; }
.ai-tools-panel.ai-cowriter-primary .ai-workflow-mode-tabs.ai-legacy-writing-tools::before { content: '其他创作歌词方式'; }
.ai-tools-panel.ai-cowriter-primary .ai-brief-form.ai-legacy-writing-tools::before { content: '详细创作设定'; }
.ai-tools-panel.ai-cowriter-primary .ai-module-tabs.ai-legacy-writing-tools::before { content: '高级设定与复制方式'; }
.ai-tools-panel.ai-cowriter-primary .ai-legacy-writing-tools::before { display: none; }
/* old .ai-co-writer-route grid removed; route options now use inline-button style in .ai-co-writer-head */
.ai-co-writer-panel[data-ai-route="external"] { border-color: color-mix(in srgb, var(--app-accent) 55%, var(--app-line)); }
.ai-co-writer-lyrics-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 9px 0 8px; }
.ai-co-writer-lyrics-tools > span { margin-right: 2px; color: var(--app-muted); font-size: 12px; font-weight: 800; }
.ai-co-writer-lyrics-tools button { min-height: 34px; padding: 0 10px; border: 1px solid var(--app-line); border-radius: 6px; background: var(--button-secondary-bg); color: var(--app-text); font-size: 12px; cursor: pointer; }
.ai-co-writer-lyrics-tools button:hover,
.ai-co-writer-lyrics-tools button:focus-visible { border-color: var(--app-accent); background: var(--state-hover); outline: 0; }
.ai-co-writer-suno-actions { display: grid; gap: 12px; margin-top: 15px; padding: 14px; border: 1px solid color-mix(in srgb, var(--app-accent) 46%, var(--app-line)); border-radius: 9px; background: color-mix(in srgb, var(--app-accent-soft) 18%, var(--app-panel)); }
.ai-co-writer-suno-actions > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.ai-co-writer-suno-actions > header > div { display: grid; gap: 5px; }
.ai-co-writer-suno-actions strong { color: var(--app-text); font-size: 14px; }
.ai-co-writer-suno-actions header span:not(.ai-co-writer-suno-badge),
.ai-co-writer-suno-actions > small { color: var(--app-muted); font-size: 12px; line-height: 1.5; }
.ai-co-writer-suno-badge { flex: 0 0 auto; padding: 5px 8px; border: 1px solid var(--app-accent); border-radius: 999px; color: var(--app-accent-readable); font-size: 12px; font-weight: 800; }
.ai-co-writer-suno-actions > div { display: flex; flex-wrap: wrap; gap: 8px; }
.ai-co-writer-suno-actions button { min-height: 40px; }
.ai-co-writer-history { margin-top: 15px; border-top: 1px solid var(--app-line); }
.ai-co-writer-history > summary { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 13px 2px; color: var(--app-text); cursor: pointer; list-style: none; }
.ai-co-writer-history > summary::-webkit-details-marker { display: none; }
.ai-co-writer-history > summary::after { color: var(--app-accent-readable); content: '+'; font-size: 16px; font-weight: 800; }
.ai-co-writer-history[open] > summary::after { content: '−'; }
.ai-co-writer-history > summary strong { font-size: 13px; }
.ai-co-writer-history > summary span { color: var(--app-muted); font-size: 12px; }
.ai-legacy-writing-tools-shell { margin-top: 16px; border: 1px solid var(--app-line); border-radius: 9px; background: color-mix(in srgb, var(--app-panel-2) 62%, var(--app-panel)); }
.ai-legacy-writing-tools-shell > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 54px; padding: 10px 15px; color: var(--app-text); cursor: pointer; list-style: none; }
.ai-legacy-writing-tools-shell > summary::-webkit-details-marker { display: none; }
.ai-legacy-writing-tools-shell > summary::after { color: var(--app-accent-readable); content: '+'; font-size: 18px; font-weight: 800; }
.ai-legacy-writing-tools-shell[open] > summary::after { content: '−'; }
.ai-legacy-writing-tools-shell > summary > span:first-child { display: grid; gap: 3px; }
.ai-legacy-writing-tools-shell > summary strong { font-size: 14px; }
.ai-legacy-writing-tools-shell > summary small { color: var(--app-muted); font-size: 12px; }
.ai-legacy-tools-toggle-label { color: var(--app-accent-readable); font-size: 12px; font-weight: 800; }
.ai-legacy-writing-tools-shell > :not(summary) { margin-right: 14px; margin-left: 14px; }
.ai-external-import { display: grid; gap: 12px; margin-top: 14px; padding: 14px; border: 1px solid color-mix(in srgb, var(--app-accent) 38%, var(--app-line)); border-radius: 8px; background: color-mix(in srgb, var(--app-accent-soft) 12%, var(--app-panel)); }
.ai-external-import > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.ai-external-import > header > div { display: grid; gap: 5px; }
.ai-external-import strong { color: var(--app-text); font-size: 14px; }
.ai-external-import p { margin: 0; color: var(--app-muted); font-size: 12px; line-height: 1.55; }
.ai-external-import-badge { flex: 0 0 auto; color: var(--app-accent-readable); font-size: 12px; font-weight: 800; }
.ai-external-import textarea { width: 100%; min-height: 128px; box-sizing: border-box; padding: 11px; border: 1px solid var(--app-line); border-radius: 7px; background: var(--app-panel-2); color: var(--app-text); font-size: 13px; line-height: 1.6; resize: vertical; }
.ai-external-import textarea::placeholder { color: var(--app-faint); }
.ai-external-import > footer { display: flex; flex-wrap: wrap; gap: 8px; }
.ai-external-import > footer button { min-height: 40px; }
@media(max-width:760px) {
  .ai-co-writer-panel { padding: 16px; }
  .ai-co-writer-head { display: grid; }
  .ai-co-writer-context { align-items: flex-start; flex-direction: column; }
  .ai-co-writer-badge { justify-self: start; }
  .ai-co-writer-draft-meta { grid-template-columns: 1fr; }
  .ai-co-writer-message { max-width: 100%; }
  .ai-co-writer-route { min-width: 0; }
  .ai-co-writer-output-mode { grid-template-columns: 1fr; }
  .ai-co-writer-output-mode select { grid-column: 1; grid-row: auto; width: 100%; }
  .ai-co-writer-suno-actions > header,
  .ai-external-import > header { display: grid; }
}

/* Source capture is an import-stage workflow, not a performance recorder. */
.song-import-source-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
}
.song-import-folder-picker,
.song-import-record-picker {
  min-width: 0;
  min-height: 72px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 11px 13px;
  border: 1px solid var(--app-line);
  border-radius: 10px;
  color: var(--app-text);
  background: var(--button-secondary-bg);
  text-align: left;
}
.song-import-folder-picker:hover,
.song-import-record-picker:hover,
.song-import-folder-picker.is-ready {
  border-color: var(--button-accent-border);
  background: var(--button-secondary-bg-hover);
}
.song-import-record-picker { border-color: var(--button-accent-border); }
.song-import-folder-icon,
.song-import-record-icon {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  color: var(--button-accent-ink);
  background: var(--button-accent-bg);
  font-size: 18px;
  font-weight: 800;
}
.song-import-record-icon { color: var(--status-error-text); background: var(--status-error-bg); font-size: 13px; }
.song-import-folder-picker span:nth-child(2),
.song-import-record-picker span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.song-import-folder-picker strong,
.song-import-record-picker strong { font-size: 13px; }
.song-import-folder-picker small,
.song-import-record-picker small,
.song-import-folder-picker em,
.song-import-record-picker em { min-width: 0; color: var(--app-muted); font-size: 12px; font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.song-import-folder-picker em,
.song-import-record-picker em { color: var(--app-accent); }
.song-import-recordings {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid var(--app-line);
  border-radius: 10px;
  background: var(--app-panel-2);
}
.song-import-recordings-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.song-import-recordings-head > div { display: grid; gap: 4px; }
.song-import-recordings-head span { color: var(--app-muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.song-import-recordings-head strong { font-size: 14px; }
.song-import-recordings-head small { max-width: 290px; color: var(--app-muted); font-size: 12px; line-height: 1.45; text-align: right; }
#songImportRecordingList { display: grid; gap: 8px; }
.song-import-recording-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 10px; border: 1px solid var(--app-line); border-radius: 8px; background: var(--app-panel); }
.song-import-recording-row > span:first-child { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--button-accent-ink); background: var(--button-accent-bg); font-size: 13px; font-weight: 800; }
.song-import-recording-row.is-accompaniment > span:first-child { color: var(--status-info-text); background: var(--status-info-bg); }
.song-import-recording-copy { min-width: 0; display: grid; gap: 3px; }
.song-import-recording-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.song-import-recording-copy small { color: var(--app-muted); font-size: 12px; }
.song-import-recording-copy audio { width: min(100%, 260px); min-height: 30px; margin-top: 2px; }
.song-import-recording-row button { min-height: 30px; padding: 0 9px; border: 1px solid var(--app-line); border-radius: 7px; color: var(--app-muted); background: var(--button-secondary-bg); font-size: 12px; }
.song-import-recording-row button:hover { color: var(--app-text); border-color: var(--button-accent-border); }
.song-import-recorder-dialog {
  --app-dialog-width: min(920px, calc(100vw - var(--app-dialog-viewport-gap)));
  min-height: min(720px, calc(100dvh - 24px));
  container-type: inline-size;
  container-name: source-recording-dialog;
  position: relative;
}
.song-import-recorder-dialog.is-positioned {
  position: fixed;
  margin: 0;
  transform: none;
  max-height: calc(100dvh - 16px);
}
.song-import-recorder-dialog.is-dragging,
.song-import-recorder-dialog.is-resizing { user-select: none; }
.song-import-recorder-dialog > :is(.modal-head, .modal-scroll-body, .modal-actions) {
  position: relative;
  z-index: 2;
}
.song-import-recorder-dialog .source-recording-dialog-resize {
  position: absolute;
  z-index: 1;
  touch-action: none;
}
.song-import-recorder-dialog .source-recording-dialog-resize--se {
  left: 0;
  right: auto;
  bottom: 0;
  width: 14px;
  height: 14px;
  cursor: nesw-resize;
}
.song-import-recorder-dialog .source-recording-dialog-resize--se::after {
  content: "";
  position: absolute;
  left: 4px;
  bottom: 4px;
  width: 8px;
  height: 8px;
  border-left: 2px solid var(--app-muted);
  border-bottom: 2px solid var(--app-muted);
  border-radius: 0 0 0 2px;
  opacity: 0.72;
}
.song-import-recorder-dialog.is-dragging { user-select: none; }
.song-import-recorder-dialog > .modal-head[data-source-recording-dialog-handle] {
  cursor: grab;
  touch-action: none;
}
.song-import-recorder-dialog.is-dragging > .modal-head[data-source-recording-dialog-handle] { cursor: grabbing; }
.song-import-recorder-dialog > .modal-head .source-recording-dialog-grip {
  flex: 0 0 auto;
  align-self: center;
  color: var(--app-muted);
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0;
}
.song-import-recorder-dialog > .modal-head > div { min-width: 0; }
.song-import-recorder-dialog > .modal-head h2 { overflow-wrap: anywhere; }
.song-import-recorder-dialog .app-dialog__body { display: grid; gap: 12px; }
@container source-recording-dialog (min-width: 880px) {
  .song-import-recorder-dialog .app-dialog__body { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .song-import-recorder-dialog .app-dialog__body > :is(
    #sourceRecordingWorkflow,
    #sourceRecordingStatus,
    #sourceRecordingMeter,
    #sourceRecordingTimer,
    #sourceRecordingResult,
    #sourceRecordingAlignmentReview,
    #sourceRecordingLibrary
  ) { grid-column: 1 / -1; }
  .source-recording-workflow-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .source-recording-alignment-audio { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .source-recording-trim-pad { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.source-recording-library-actions .source-recording-library-save { min-height: 30px; padding: 0 10px; font-size: 12px; }
.song-import-recorder-section { display: grid; gap: 9px; padding: 12px; border: 1px solid var(--app-line); border-radius: 10px; background: var(--app-panel-2); }
.song-import-recorder-label { color: var(--app-text); font-size: 13px; font-weight: 800; }
.song-import-mode-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.song-import-mode-grid button { display: grid; gap: 4px; min-height: 62px; padding: 10px; border: 1px solid var(--app-line); border-radius: 8px; color: var(--app-text); background: var(--button-secondary-bg); text-align: left; }
.song-import-mode-grid button:hover,
.song-import-mode-grid button.is-active { border-color: var(--button-accent-border); background: var(--button-accent-bg); }
.song-import-mode-grid small,
.song-import-format-row small,
.song-import-recorder-options small { color: var(--app-muted); font-size: 12px; line-height: 1.4; }
.song-import-recorder-field-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.song-import-recorder-field-head .ghost-btn { min-height: 30px; padding: 0 9px; font-size: 12px; }
.song-import-recorder-select select { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid var(--app-line); border-radius: 8px; color: var(--app-text); background: var(--app-panel); }
.song-import-recorder-source-note,
.song-import-recorder-format-note,
#sourceRecordingResultNote { margin: 0; color: var(--app-muted); font-size: 12px; line-height: 1.5; }
.song-import-format-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.song-import-format-row label { display: flex; align-items: flex-start; gap: 8px; min-height: 56px; padding: 9px 10px; border: 1px solid var(--app-line); border-radius: 8px; background: var(--button-secondary-bg); cursor: pointer; }
.song-import-format-row label:has(input:checked) { border-color: var(--button-accent-border); background: var(--button-accent-bg); }
.song-import-format-row label:has(input:disabled) { cursor: not-allowed; opacity: .65; }
.song-import-format-row input { margin-top: 3px; accent-color: var(--app-accent); }
.song-import-format-row label span { display: grid; gap: 3px; }
.song-import-format-row em { margin-left: 4px; padding: 2px 5px; border-radius: 5px; color: var(--button-accent-ink); background: var(--button-accent-bg); font-size: 12px; font-style: normal; }
.song-import-recorder-options { gap: 7px; }
.song-import-recorder-options label { display: flex; align-items: flex-start; gap: 8px; }
.song-import-recorder-options input { margin-top: 3px; accent-color: var(--app-accent); }
.song-import-recorder-options label span { display: grid; gap: 2px; }
.source-recording-status { min-height: 38px; display: flex; align-items: center; padding: 9px 10px; border: 1px solid var(--app-line); border-radius: 8px; color: var(--app-muted); background: var(--app-panel); font-size: 12px; }
.source-recording-workflow { display: grid; gap: 8px; margin-bottom: 12px; padding: 10px 12px; border: 1px solid var(--button-accent-border); border-radius: 10px; background: color-mix(in srgb, var(--button-accent-bg) 42%, var(--app-panel)); }
.source-recording-workflow-head { display: grid; gap: 4px; }
.source-recording-workflow-head strong { font-size: 13px; }
.source-recording-workflow-head small { color: var(--app-muted); font-size: 12px; line-height: 1.45; }
.source-recording-workflow-steps { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.source-recording-workflow-step { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border: 1px solid var(--app-line); border-radius: 8px; color: var(--app-muted); background: var(--app-panel); font-size: 12px; }
.source-recording-workflow-step.is-active { border-color: var(--button-accent-border); color: var(--app-text); background: color-mix(in srgb, var(--button-accent-bg) 55%, var(--app-panel)); }
.source-recording-workflow-step.is-done { border-color: var(--status-success-border); color: var(--status-success-text); background: var(--status-success-bg); }
.source-recording-workflow-index { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border: 1px solid currentColor; border-radius: 999px; font-size: 12px; font-weight: 800; line-height: 1; }
.source-recording-workflow-label { min-width: 0; }
.source-recording-status.is-recording { color: var(--status-error-text); border-color: var(--status-error-border); background: var(--status-error-bg); }
.source-recording-status.is-processing { color: var(--status-info-text); border-color: var(--status-info-border); background: var(--status-info-bg); }
.source-recording-status.is-success { color: var(--status-success-text); border-color: var(--status-success-border); background: var(--status-success-bg); }
.source-recording-meter { display: grid; gap: 6px; padding: 9px 10px; border: 1px solid var(--app-line); border-radius: 8px; background: var(--app-panel-2); }
.source-recording-meter-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--app-muted); font-size: 12px; }
.source-recording-meter-head span:first-child { color: var(--app-text); font-weight: 800; }
.source-recording-meter-head span:last-child { min-width: 0; max-width: 62%; overflow: hidden; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.source-recording-waveform { display: block; width: 100%; height: 72px; border: 1px solid var(--app-line); border-radius: 7px; color: var(--app-accent); background: var(--app-panel); }
.source-recording-meter-scale { display: flex; justify-content: space-between; gap: 8px; color: var(--app-muted); font-size: 12px; line-height: 1.25; }
.source-recording-meter-scale span:last-child { color: var(--status-warning-text); }
.source-recording-meter-hint { margin: 0; color: var(--app-muted); font-size: 12px; line-height: 1.4; }
.source-recording-waveform[hidden],
.source-recording-meter[hidden] { display: none; }
.source-recording-timer { color: var(--app-accent); font: 700 24px var(--font-family-mono); text-align: center; }
.source-recording-result { display: grid; gap: 8px; padding: 10px; border: 1px solid var(--app-line); border-radius: 8px; background: var(--app-panel); }
.source-recording-result-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.source-recording-result-head strong { font-size: 13px; }
.source-recording-result-head span { color: var(--app-muted); font-size: 12px; }
#sourceRecordingPreview { width: 100%; min-height: 38px; }
.source-recording-library { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--app-line); border-radius: 10px; background: var(--app-panel-2); }
.source-recording-alignment-review { display: grid; gap: 9px; padding: 10px; border: 1px solid var(--button-accent-border); border-radius: 8px; background: color-mix(in srgb, var(--button-accent-bg) 48%, var(--app-panel)); }
.source-recording-alignment-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.source-recording-alignment-head > div { display: grid; gap: 4px; min-width: 0; }
.source-recording-alignment-head span { color: var(--app-muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.source-recording-alignment-head strong { font-size: 13px; }
.source-recording-alignment-head em { flex: 0 0 auto; padding: 3px 7px; border: 1px solid var(--status-warning-border); border-radius: 999px; color: var(--status-warning-text); background: var(--status-warning-bg); font-size: 12px; font-style: normal; font-weight: 800; }
.source-recording-alignment-head em.is-aligned { border-color: var(--status-success-border); color: var(--status-success-text); background: var(--status-success-bg); }
.source-recording-alignment-summary,
.source-recording-alignment-hint { margin: 0; color: var(--app-muted); font-size: 12px; line-height: 1.45; }
.source-recording-alignment-waveforms { display: grid; gap: 7px; }
.source-recording-alignment-waveforms figure { display: grid; gap: 4px; margin: 0; }
.source-recording-alignment-waveforms figcaption { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--app-text); font-size: 12px; font-weight: 800; }
.source-recording-alignment-waveforms figcaption small { color: var(--app-muted); font-size: 12px; font-weight: 500; }
.source-recording-alignment-waveforms canvas { display: block; width: 100%; height: 52px; border: 1px solid var(--app-line); border-radius: 6px; color: var(--app-accent); background: var(--app-panel); }
.source-recording-alignment-waveforms figure:nth-child(2) canvas { color: var(--app-secondary); }
.source-recording-alignment-metrics { display: flex; flex-wrap: wrap; gap: 8px 14px; color: var(--app-accent-readable); font-size: 12px; font-weight: 800; }
.source-recording-alignment-audio { display: grid; gap: 6px; }
.source-recording-alignment-track { display: grid; gap: 4px; min-width: 0; }
.source-recording-alignment-track-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--app-muted); font-size: 12px; }
.source-recording-alignment-mute { min-height: 30px; padding: 0 10px; border-color: var(--app-line); color: var(--app-text); background: var(--button-secondary-bg); font-size: 12px; }
.source-recording-alignment-mute:hover { border-color: var(--button-accent-border); background: var(--button-secondary-bg-hover); }
.source-recording-alignment-mute.is-muted { border-color: var(--status-warning-border); color: var(--status-warning-text); background: var(--status-warning-bg); }
.source-recording-alignment-audio audio { width: 100%; min-height: 32px; }
  .source-recording-alignment-actions { display: flex; flex-wrap: wrap; gap: 7px; }
  .source-recording-alignment-actions #sourceRecordingRealign { flex: 1 1 148px; }
  .source-recording-alignment-actions button { min-height: 32px; padding: 0 10px; font-size: 12px; }
.source-recording-alignment-hint { color: var(--app-faint); }
.source-recording-library-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.source-recording-library-head > div { display: grid; gap: 4px; }
.source-recording-library-head span { color: var(--app-muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.source-recording-library-head strong { font-size: 14px; }
.source-recording-library-head small { max-width: 300px; color: var(--app-muted); font-size: 12px; line-height: 1.45; text-align: right; }
#sourceRecordingLibraryList { display: grid; gap: 8px; }
.source-recording-library-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "icon copy actions" "trim trim trim"; align-items: start; gap: 10px; padding: 9px 10px; border: 1px solid var(--app-line); border-radius: 8px; background: var(--app-panel); cursor: pointer; }
.source-recording-library-row.is-active { border-color: var(--button-accent-border); background: var(--button-accent-bg); }
.source-recording-library-row:focus-visible { outline: 2px solid var(--button-accent-border); outline-offset: 2px; }
.source-recording-library-row > .source-recording-library-icon { grid-area: icon; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--button-accent-ink); background: var(--button-accent-bg); font-size: 13px; font-weight: 800; }
.source-recording-library-row.is-accompaniment > .source-recording-library-icon { color: var(--status-info-text); background: var(--status-info-bg); }
.source-recording-library-copy { grid-area: copy; min-width: 0; display: grid; gap: 4px; }
.source-recording-library-copy-head { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.source-recording-library-copy-head strong { font-size: 13px; }
.source-recording-library-copy > small { color: var(--app-muted); font-size: 12px; line-height: 1.4; }
.source-recording-library-copy audio { width: min(100%, 420px); min-height: 30px; }
.source-recording-library-state { padding: 2px 6px; border-radius: 5px; color: var(--status-info-text); background: var(--status-info-bg); font-size: 12px; }
.source-recording-library-state.is-saved { color: var(--status-success-text); background: var(--status-success-bg); }
.source-recording-library-actions { grid-area: actions; display: flex; align-items: center; gap: 6px; }
.source-recording-library-actions button { min-height: 30px; padding: 0 9px; font-size: 12px; }
.source-recording-library-review { color: var(--app-accent-readable); }
.source-recording-library-delete { color: var(--status-error-text); border-color: var(--status-error-border); }
.source-recording-library-delete:hover { color: var(--status-error-text); border-color: var(--status-error-border); background: var(--status-error-bg); }
.source-recording-library-saved { color: var(--status-success-text); font-size: 12px; white-space: nowrap; }
.source-recording-trim { grid-area: trim; display: grid; gap: 6px; min-width: 0; }
.source-recording-trim-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.source-recording-trim-head strong { font-size: 12px; }
.source-recording-trim-range { color: var(--app-muted); font-size: 12px; }
.source-recording-trim-canvas { display: block; width: 100%; height: 64px; border: 1px solid var(--app-line); border-radius: 7px; color: var(--app-accent); background: var(--app-panel-2); cursor: ew-resize; touch-action: none; }
.source-recording-trim-hint { margin: 0; color: var(--app-muted); font-size: 12px; line-height: 1.4; }
.source-recording-trim-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.source-recording-trim-actions button { min-height: 30px; padding: 0 9px; font-size: 12px; }
.source-recording-trim-pad { display: grid; gap: 8px; }
.source-recording-trim-pad-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.source-recording-trim-pad-row > span { font-size: 12px; white-space: nowrap; }
.source-recording-trim-pad-row > output { min-width: 4.5em; color: var(--app-muted); font-size: 12px; text-align: right; }
.source-recording-trim-pad-row > input[type="range"] { width: 100%; min-width: 0; }
.source-recording-trim-zoom { display: flex; flex-wrap: wrap; gap: 6px; }
.source-recording-trim-zoom button { min-height: 30px; padding: 0 9px; font-size: 12px; }
#songImportRecorderModal { z-index: calc(var(--app-layer-dialog) + 1); }
/* This modal is a direct body child. Keep playback descendants' hidden toggles
   out of the document-wide :has() invalidation path. */
body:has(> #songImportRecorderModal:not([hidden])) { overflow: hidden; }
@media (max-width: 680px) {
  .song-import-source-actions,
  .song-import-mode-grid,
  .song-import-format-row { grid-template-columns: 1fr; }
  .song-import-recordings-head { display: grid; }
  .song-import-recordings-head small { max-width: none; text-align: left; }
  .source-recording-library-head { display: grid; }
  .source-recording-library-head small { max-width: none; text-align: left; }
  .source-recording-library-row { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "icon copy" "trim trim" "actions actions"; }
  .source-recording-library-actions { justify-content: flex-start; }
  .source-recording-alignment-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .source-recording-alignment-actions button:last-child { grid-column: 1 / -1; }
}

.folder-record-primary {
  border-color: var(--button-accent-border);
  background: var(--button-accent-bg);
  color: var(--button-accent-ink);
}
.folder-record-primary:hover {
  border-color: var(--button-accent-border);
  background: var(--button-secondary-bg-hover);
}
