.regression-page{--bench-ink: #18212f;--bench-muted: #687386;--bench-line: #e5e8ee;display:grid;gap:1rem;color:var(--bench-ink)}.regression-hero{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.35rem 1.5rem;border:1px solid var(--bench-line);border-radius:1rem;color:var(--bench-ink);background:#fffffff5;box-shadow:0 4px 18px #0f172a0a}.regression-hero:after{display:none}.eyebrow,.section-kicker{display:flex;align-items:center;gap:.4rem;color:#fb923c;font-size:.7rem;font-weight:800;letter-spacing:.16em}.regression-hero h2{margin-top:.3rem;font-size:clamp(1.45rem,2.3vw,2rem);line-height:1.15;letter-spacing:-.03em}.regression-hero p{max-width:690px;margin-top:.5rem;color:var(--bench-muted);font-size:.82rem;line-height:1.5}.benchmark-run-button{min-width:170px;padding:.75rem 1rem;border:1px solid #f97316;border-radius:.65rem;background:#f97316;color:#fff;font-weight:800;cursor:pointer;box-shadow:none}.benchmark-run-button svg{vertical-align:middle;margin-right:.35rem}.benchmark-run-button span{display:block;margin-top:.25rem;font-size:.67rem;font-weight:600;opacity:.78}.benchmark-run-button:disabled{opacity:.45;cursor:not-allowed}.benchmark-message{padding:.8rem 1rem;border:1px solid #fed7aa;border-radius:.7rem;background:#fff7ed;color:#9a3412;font-size:.86rem}.benchmark-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.benchmark-tabbar{display:inline-flex;gap:.35rem;padding:.3rem;border:1px solid var(--bench-line);border-radius:999px;background:#fffffff0;width:fit-content}.benchmark-tabbar button{padding:.5rem 1.1rem;border:none;border-radius:999px;background:transparent;color:var(--bench-muted);font:inherit;font-weight:800;cursor:pointer;transition:background .18s ease,color .18s ease}.benchmark-tabbar button small{margin-left:.3rem;font-weight:700;opacity:.7}.benchmark-tabbar button:hover{color:var(--bench-ink)}.benchmark-tabbar button.active{background:#1f2937;color:#fff}.benchmark-scope-picker{display:block;padding:1.05rem 1.15rem;border:1.5px solid var(--bench-line);border-radius:.85rem;background:#fffffff0;color:var(--bench-ink);text-align:left;box-shadow:0 4px 14px #0f172a0a}.benchmark-scope-picker>span{display:block;margin-bottom:.5rem;color:var(--bench-muted);font-size:.68rem;font-weight:800;letter-spacing:.08em}.benchmark-scope-picker select{width:100%;padding:.5rem .65rem;border:1px solid var(--bench-line);border-radius:.6rem;font:inherit;font-weight:700;background:#fff}.benchmark-scope-picker small{display:block;margin-top:.45rem;color:var(--bench-muted);font-size:.74rem}.benchmark-subtabs{display:flex;gap:.4rem;border-bottom:2px solid var(--bench-line);padding-bottom:0;scroll-margin-top:1rem}.benchmark-subtabs button{display:inline-flex;align-items:center;gap:.45rem;padding:.65rem 1.05rem;border:none;border-bottom:2.5px solid transparent;margin-bottom:-2px;background:transparent;color:var(--bench-muted);font:inherit;font-weight:800;cursor:pointer;transition:color .18s ease,border-color .18s ease}.benchmark-subtabs button small{font-weight:700;opacity:.65}.benchmark-subtabs button:hover:not(:disabled){color:var(--bench-ink)}.benchmark-subtabs button.active{color:#c2410c;border-bottom-color:#fb923c}.benchmark-subtabs button:disabled{opacity:.45;cursor:default}.engine-history-split{display:grid;grid-template-columns:minmax(360px,440px) 1fr;gap:1.5rem;align-items:start}.engine-history-list{display:flex;flex-direction:column;gap:.25rem;max-height:38rem;overflow-y:auto;padding:.75rem .5rem .75rem .75rem}.engine-history-row{display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border:1px solid transparent;border-radius:.6rem;background:transparent;font:inherit;text-align:left;cursor:pointer;transition:background .15s ease,border-color .15s ease}.engine-history-row:hover{background:#fffaf5}.engine-history-row.active{background:#fff7ed;border-color:#fdba74}.engine-history-row .engine-order{color:var(--bench-muted);font-size:.72rem;font-weight:800}.engine-history-row strong{flex:1;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.engine-history-row em{font-style:normal;font-size:.62rem;font-weight:800;padding:.12rem .4rem;border-radius:999px}.engine-history-row .badge-default{background:#dcfce7;color:#15803d}.engine-history-row .badge-shadow{background:#ede9fe;color:#6d28d9}.engine-history-detail{padding:1.5rem 2rem 2rem 1.5rem;min-width:0;max-height:38rem;overflow-y:auto}.engine-history-detail header h3{margin:.2rem 0 .35rem;font-size:1.35rem}.engine-history-detail header .engine-modal-summary{margin:0 0 1rem}.engine-detail-section{margin-top:1.35rem}.engine-detail-section h4{margin:0 0 .6rem;font-size:.92rem}.engine-detail-section h4 small{color:var(--bench-muted);font-weight:700;margin-left:.35rem}.engine-detail-note{color:var(--bench-muted);font-size:.85rem;margin:0}.feature-diff{display:flex;flex-wrap:wrap;gap:.4rem}.feature-diff span{padding:.28rem .6rem;border-radius:.55rem;font-size:.8rem;font-weight:700}.feature-diff .diff-added{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.feature-diff .diff-removed{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.engine-score-cards{display:flex;flex-wrap:wrap;gap:.6rem}.engine-score-cards article{padding:.65rem .9rem;border:1px solid var(--bench-line);border-radius:.7rem;background:#fff;min-width:10rem}.engine-score-cards article span{display:block;color:var(--bench-muted);font-size:.72rem;font-weight:800}.engine-score-cards article strong{font-size:1.15rem}.engine-score-cards article em{display:block;font-style:normal;font-size:.74rem;color:var(--bench-muted)}.engine-score-cards article em.positive{color:#047857}.engine-score-cards article em.negative{color:#b91c1c}.feature-chips{display:flex;flex-wrap:wrap;gap:.35rem}.feature-chips span{padding:.24rem .55rem;border:1px solid var(--bench-line);border-radius:999px;background:#fff;font-size:.76rem;color:var(--bench-ink)}.benchmark-stats article,.benchmark-stat-button{padding:1.05rem 1.15rem;border:1px solid var(--bench-line);border-radius:.85rem;background:#fffffff0;color:var(--bench-ink);text-align:left;box-shadow:0 4px 14px #0f172a0a}.benchmark-stat-button{font:inherit;cursor:pointer;transition:border-color .18s ease,background .18s ease}.benchmark-stat-button:hover{border-color:#fdba74;background:#fffaf5}.benchmark-stat-button.active{border-color:#fb923c;background:#fff7ed}.benchmark-stats article>span,.benchmark-stat-button>span{display:block;margin-bottom:.5rem;color:var(--bench-muted);font-size:.65rem;font-weight:800;letter-spacing:.1em}.benchmark-stats strong{display:block;font-size:1.35rem;letter-spacing:-.03em}.benchmark-stats small{color:var(--bench-muted);font-size:.72rem;font-weight:600}.run-state{text-transform:uppercase;font-size:1rem!important}.run-state.running{color:#ea580c}.run-state.completed{color:#059669}.run-state.failed{color:#dc2626}.best-performance-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:1rem;width:100%;padding:1rem 1.2rem;border:1px solid #fed7aa;border-radius:1rem;background:linear-gradient(100deg,#fffaf5,#fff 70%);color:var(--bench-ink);text-align:left;cursor:pointer;box-shadow:0 5px 20px #f9731612}.best-performance-card:hover:not(:disabled){border-color:#fb923c}.best-performance-card.active{border-color:#fb923c;box-shadow:0 6px 22px #f973161f}.best-performance-card:disabled{opacity:.65;cursor:default}.best-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:.7rem;background:#ffedd5;color:#ea580c}.best-copy small,.best-copy strong,.best-copy em{display:block}.best-copy small{color:#ea580c;font-size:.63rem;font-weight:900}.best-copy strong{margin-top:.2rem;font-size:.93rem}.best-copy em{margin-top:.15rem;color:var(--bench-muted);font-size:.62rem;font-style:normal}.best-score{padding-right:1rem;text-align:right}.best-score strong,.best-score small{display:block}.best-score strong{font-size:1.35rem}.best-score small{margin-top:.1rem;color:#64748b;font-size:.56rem}.best-open{padding:.45rem .65rem;border-radius:.5rem;background:#f97316;color:#fff;font-size:.65rem;font-weight:800}.score-summary-row{cursor:pointer}.score-summary-row:hover td{background:#fffaf5}.score-expand-icon{display:inline-grid;place-items:center;margin-right:.35rem;color:#94a3b8;vertical-align:middle;transition:transform .18s ease}.score-expand-icon.expanded{transform:rotate(180deg);color:#ea580c}.score-detail-row>td{padding:0!important;background:#fbfcfe}.score-definition{padding:1rem 1.25rem 1.15rem 3.4rem;text-align:left}.score-definition-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.score-definition-heading>div>strong{font-size:.78rem}.score-definition-heading p{margin-top:.2rem;color:#64748b;font-size:.62rem}.score-total{color:#ea580c;font-size:1.2rem}.score-components{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:.55rem}.score-components article{padding:.7rem .75rem;border:1px solid #e8ebf0;border-radius:.6rem;background:#fff}.score-components span,.score-components strong,.score-components em{display:block}.score-components span{color:#64748b;font-size:.59rem;font-weight:700}.score-components strong{margin-top:.25rem;color:#1e293b;font-size:.9rem}.score-components strong small{color:#94a3b8;font-size:.58rem}.score-components em{margin-top:.15rem;color:#64748b;font-size:.55rem;font-style:normal}.score-formula{margin-top:.7rem;color:#7c8798;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.57rem}.benchmark-panel{overflow:hidden;border:1px solid var(--bench-line);border-radius:1rem;background:#fffffff5;box-shadow:0 6px 24px #0f172a0d}.engine-catalog-panel .panel-heading h3 small{margin-left:.4rem;color:var(--bench-muted);font-size:.66rem;font-weight:600}.engine-catalog-list{display:grid;grid-template-columns:1fr;max-height:380px;overflow-y:auto}.engine-catalog-item{display:grid;grid-template-columns:30px minmax(250px,.8fr) minmax(280px,1.2fr) auto;align-items:center;gap:.65rem;min-height:54px;padding:.65rem 1rem;border:0;border-top:1px solid #f0f2f5;background:#fff;color:inherit;text-align:left;cursor:pointer}.engine-catalog-item:hover{background:#fffaf5}.engine-order{color:#a1a9b7;font-size:.62rem;font-weight:800}.engine-catalog-name strong,.engine-catalog-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.engine-catalog-name strong{color:var(--bench-ink);font-size:.74rem}.engine-catalog-name small{margin-top:.15rem;color:var(--bench-muted);font-size:.59rem}.engine-catalog-item>p{color:#596579;font-size:.68rem;line-height:1.4}.engine-badges{display:flex;gap:.25rem}.engine-badges em{padding:.16rem .34rem;border-radius:.3rem;font-size:.5rem;font-style:normal;font-weight:900}.engine-badges .default{background:#ecfdf5;color:#047857}.engine-badges .shadow{background:#f1f5f9;color:#64748b}.engine-modal-backdrop{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1.5rem;background:#0f172a6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.engine-modal{width:min(680px,100%);max-height:min(82vh,760px);overflow-y:auto;border:1px solid var(--bench-line);border-radius:1rem;background:#fff;box-shadow:0 24px 70px #0f172a38}.metrics-modal{width:min(1400px,96vw);max-height:88vh;overflow:hidden;border:1px solid var(--bench-line);border-radius:1rem;background:#fff;box-shadow:0 24px 70px #0f172a38}.metrics-modal>header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.2rem 1.3rem;border-bottom:1px solid var(--bench-line)}.metrics-modal>header h3{margin-top:.3rem;font-size:1.15rem}.metrics-modal>header button{display:grid;place-items:center;padding:.4rem;border:0;border-radius:.45rem;background:#f8fafc;color:#64748b;cursor:pointer}.metrics-table-scroll{max-height:calc(88vh - 82px);overflow:auto}.metrics-table{width:100%;border-collapse:collapse;font-size:.67rem}.metrics-table th{position:sticky;z-index:1;top:0;padding:.65rem .7rem;background:#f8fafc;color:#64748b;text-align:right;white-space:nowrap}.metrics-table th:nth-child(2){min-width:250px;text-align:left}.metrics-table td{padding:.65rem .7rem;border-top:1px solid #f1f5f9;text-align:right;white-space:nowrap}.metrics-table td:nth-child(2){text-align:left}.metrics-table tr.best td{background:#fff7ed;color:#9a3412}.metrics-table tr:hover td{background:#fffaf5}.engine-modal>header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.35rem 1.4rem 1rem;border-bottom:1px solid var(--bench-line)}.engine-modal>header h3{margin-top:.35rem;font-size:1.25rem}.engine-modal>header button{display:grid;place-items:center;padding:.4rem;border:0;border-radius:.45rem;background:#f8fafc;color:#64748b;cursor:pointer}.engine-modal-summary{padding:1.05rem 1.4rem;color:#475569;font-size:.83rem;line-height:1.6}.engine-meta{display:grid;gap:.55rem;padding:0 1.4rem 1.1rem}.engine-meta>div{display:grid;grid-template-columns:90px 1fr;gap:.7rem;font-size:.72rem}.engine-meta dt{color:#94a3b8;font-weight:800;text-transform:uppercase}.engine-meta dd{color:#334155;word-break:break-word}.algorithm-flow{margin:0 1.4rem 1.4rem;padding:1rem;border-radius:.75rem;background:#f8fafc}.algorithm-flow h4{margin-bottom:.75rem;font-size:.76rem}.algorithm-flow ol{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;counter-reset:algorithm-step}.algorithm-flow li{counter-increment:algorithm-step;padding:.45rem .6rem;border:1px solid #e2e8f0;border-radius:.5rem;background:#fff;color:#475569;font-size:.66rem}.algorithm-flow li:before{content:counter(algorithm-step);margin-right:.35rem;color:#f97316;font-weight:900}.algorithm-flow p{color:#64748b;font-size:.7rem}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.3rem;border-bottom:1px solid var(--bench-line)}.panel-heading h3{margin-top:.25rem;font-size:1.15rem}.panel-heading select{max-width:320px;padding:.5rem .7rem;border:1px solid var(--bench-line);border-radius:.5rem;background:#fff;color:var(--bench-ink)}.run-progress{height:34px;position:relative;background:#fff7ed;overflow:hidden}.run-progress>div{height:3px;background:#f97316;transition:width .4s}.run-progress span{position:absolute;inset:7px auto auto 1.3rem;color:#9a3412;font-size:.72rem}.run-progress svg{vertical-align:middle}.spin{animation:benchmark-spin 1.2s linear infinite}@keyframes benchmark-spin{to{transform:rotate(360deg)}}.leaderboard-scroll{overflow-x:auto}.leaderboard{width:100%;border-collapse:collapse;font-size:.77rem}.leaderboard th{padding:.7rem .8rem;text-align:left;color:var(--bench-muted);background:#f8fafc;font-size:.63rem;letter-spacing:.05em;white-space:nowrap}.leaderboard td{padding:.72rem .8rem;border-top:1px solid #f0f2f5;white-space:nowrap}.leaderboard tr:hover td{background:#fffaf5}.leaderboard .baseline td{background:#fff7ed}.leaderboard td:nth-child(2){min-width:260px}.leaderboard em{margin-left:.5rem;padding:.16rem .35rem;border-radius:.3rem;background:#ffedd5;color:#c2410c;font-size:.55rem;font-style:normal}.leaderboard .score{font-size:.92rem;font-weight:800}.positive{color:#059669;font-weight:800}.negative{color:#dc2626;font-weight:800}.recommend-button{display:flex;align-items:center;gap:.4rem;padding:.55rem .75rem;border:1px solid #fdba74;border-radius:.55rem;background:#fff7ed;color:#c2410c;font-size:.75rem;font-weight:800;cursor:pointer}.set-description{padding:.85rem 1.3rem 0;color:var(--bench-muted);font-size:.8rem}.case-search{display:flex;align-items:center;gap:.5rem;position:relative;margin:.8rem 1.3rem 0;padding:.55rem .7rem;border:1px solid var(--bench-line);border-radius:.65rem;color:#94a3b8;background:#f8fafc}.case-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--bench-ink)}.case-search>button{border:0;background:transparent;color:#ea580c;font-size:.72rem;font-weight:800;cursor:pointer}.case-search-results{position:absolute;z-index:5;top:calc(100% + .35rem);right:0;left:0;overflow:hidden;border:1px solid var(--bench-line);border-radius:.65rem;background:#fff;box-shadow:0 12px 30px #0f172a26}.case-search-results button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.65rem .8rem;border:0;border-top:1px solid #f1f5f9;background:#fff;color:var(--bench-muted);text-align:left;cursor:pointer}.case-search-results button:first-child{border-top:0}.case-search-results button:hover{background:#fff7ed;color:#c2410c}.case-search-results span,.case-search-results strong{display:block}.case-search-results strong{margin-bottom:.12rem;color:var(--bench-ink);font-size:.78rem}.regression-song-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;padding:1rem 1.3rem 1.3rem}.regression-song{display:grid;grid-template-columns:26px 54px minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.7rem;border:1px solid #e9ebef;border-radius:.75rem;transition:opacity .2s,border-color .2s}.regression-song:hover{border-color:#fdba74}.regression-song.inactive{opacity:.45}.song-position{color:#9ca3af;font-size:.68rem;font-weight:800}.regression-song img,.cover-placeholder{width:54px;height:54px;border-radius:.55rem;object-fit:cover}.cover-placeholder{display:grid;place-items:center;background:#f1f5f9;color:#94a3b8}.song-copy{min-width:0}.song-copy>strong,.song-copy>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-copy>strong{font-size:.86rem}.song-copy>span{margin-top:.13rem;color:var(--bench-muted);font-size:.68rem}.song-copy small{display:flex;align-items:center;gap:.25rem;margin-top:.3rem;color:#059669;font-size:.62rem}.tag-row{display:flex;gap:.25rem;margin-top:.3rem;overflow:hidden}.tag-row i{padding:.13rem .3rem;border-radius:.25rem;background:#f1f5f9;color:#64748b;font-size:.55rem;font-style:normal;white-space:nowrap}.song-actions{display:flex;align-items:center;gap:.35rem}.song-actions button{display:grid;place-items:center;padding:.35rem;border:0;background:transparent;color:#9ca3af;cursor:pointer}.song-actions button:hover{color:#dc2626}.song-actions label input{display:none}.song-actions label span{display:block;width:30px;height:17px;padding:2px;border-radius:12px;background:#cbd5e1;cursor:pointer}.song-actions label span:after{content:"";display:block;width:13px;height:13px;border-radius:50%;background:#fff;transition:transform .2s}.song-actions label input:checked+span{background:#10b981}.song-actions label input:checked+span:after{transform:translate(13px)}.empty-set{grid-column:1 / -1;display:grid;justify-items:center;gap:.45rem;padding:3rem;color:#94a3b8}.empty-set strong{color:#475569}.empty-set span{font-size:.75rem}@media (max-width: 900px){.regression-hero{align-items:flex-start;flex-direction:column}.benchmark-stats{grid-template-columns:repeat(2,1fr)}.regression-song-grid,.engine-catalog-list{grid-template-columns:1fr}.engine-catalog-item{grid-template-columns:26px minmax(0,1fr) auto}.engine-catalog-item>p{display:none}.best-performance-card{grid-template-columns:auto minmax(0,1fr) auto}.best-open{display:none}.score-components{grid-template-columns:repeat(2,minmax(130px,1fr))}.score-definition{padding-left:1rem}}@media (max-width: 560px){.regression-hero{padding:1.4rem}.benchmark-run-button{width:100%}.benchmark-stats{grid-template-columns:1fr 1fr}.panel-heading{align-items:flex-start;flex-direction:column}.panel-heading select{width:100%}.regression-song{grid-template-columns:22px 44px minmax(0,1fr)}.regression-song img,.cover-placeholder{width:44px;height:44px}.song-actions{grid-column:3}.score-components{grid-template-columns:1fr}}.heatmap-modes{display:flex;gap:.4rem}.heatmap-modes button{font:inherit;font-size:.74rem;padding:.35rem .7rem;border-radius:3px;cursor:pointer;background:transparent;color:var(--bench-muted);border:1px solid var(--bench-line);transition:.14s}.heatmap-modes button:hover{color:var(--bench-ink)}.heatmap-modes button.active{background:var(--bench-ink);color:#fff;border-color:var(--bench-ink);font-weight:600}.heatmap-modes button:focus-visible{outline:2px solid var(--bench-ink);outline-offset:2px}.heatmap-hint{margin:0 0 .75rem;color:var(--bench-muted);font-size:.78rem}.heatmap-scroll{overflow-x:auto;border:1px solid var(--bench-line);border-radius:4px}.heatmap-grid{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}.heatmap-grid thead th{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid var(--bench-line);padding:.5rem .3rem;font-size:.62rem;font-weight:500;color:var(--bench-muted);white-space:nowrap;text-align:center}.heatmap-grid thead th.corner{left:0;z-index:5;text-align:left;padding-left:.8rem;border-right:1px solid var(--bench-line);min-width:210px}.heatmap-grid tbody th.song{position:sticky;left:0;z-index:2;background:#fff;border-right:1px solid var(--bench-line);border-bottom:1px solid var(--bench-line);text-align:left;padding:0 .8rem;min-width:210px;max-width:210px;display:flex;align-items:baseline;gap:.45rem;height:30px}.hm-title{font-size:.76rem;font-weight:600;color:var(--bench-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hm-artist{font-size:.64rem;color:var(--bench-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.hm-mean{font-size:.68rem;font-weight:700;color:var(--bench-muted)}.heatmap-grid tbody td{border-bottom:1px solid var(--bench-line);border-right:1px solid var(--bench-line);text-align:center;font-size:.62rem;height:30px;min-width:30px;color:#18212f;cursor:default}.heatmap-grid tbody td.on-dark{color:#f2efe9}.heatmap-grid tbody td:hover{outline:2px solid var(--bench-ink);outline-offset:-2px}.heatmap-grid tbody tr:hover th.song .hm-title{text-decoration:underline}.heatmap-mode-sep{width:1px;align-self:stretch;background:var(--bench-line);margin:0 .2rem}.benchmark-stat-button .stat-glyph{position:absolute;top:.6rem;right:.6rem;color:var(--bench-muted);opacity:.5}.benchmark-stat-button{position:relative}.hm-song-open{font:inherit;display:flex;align-items:baseline;gap:.45rem;width:100%;height:100%;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.hm-song-open:disabled{cursor:default}.hm-song-open:not(:disabled):hover .hm-title{color:var(--bench-ink);text-decoration:underline;text-underline-offset:2px}.hm-song-open:focus-visible{outline:2px solid var(--bench-ink);outline-offset:-2px;border-radius:2px}.heatmap-suite-note{margin:.25rem 0 0;font-size:.72rem;color:var(--bench-muted)}.heatmap-suite-note strong{color:var(--bench-ink);font-weight:600}.heatmap-pickers{display:flex;gap:.7rem;align-items:flex-end;flex-wrap:wrap}.heatmap-pickers label{display:flex;flex-direction:column;gap:.2rem}.heatmap-pickers span{font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bench-muted);font-weight:600}.heatmap-pickers select{font:inherit;font-size:.76rem}.calibration-panel h4{margin:1.1rem 0 .4rem;font-size:.86rem}.calibration-panel h4 small{font-weight:400;color:#8b93a3;margin-left:.4rem}.calibration-summary{margin:0 0 .8rem;font-size:.82rem;color:#3c4657}.calibration-table{width:100%;border-collapse:collapse;font-size:.8rem}.calibration-table th{text-align:left;font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:#8b93a3;padding:.35rem .5rem;border-bottom:1px solid #e5e7eb}.calibration-table td{padding:.4rem .5rem;border-bottom:1px solid #f0f1f4}.calibration-table tr.is-active-rule td{background:#fff7ed;font-weight:600}.calibration-trusted{color:#15803d;font-weight:600}.sysov{--so-ink: #1f2937;--so-ink-2: #4b5563;--so-ink-3: #6b7280;--so-rule: #e5e7eb;--so-rule-strong: #d1d5db;--so-surface: #ffffff;--so-surface-2: #f9fafb;--so-accent: #ea580c;--so-accent-soft: #fff7ed;--so-gpu: #7c3aed;--so-service: #be185d;--so-warn: #b45309;--so-mono: "SF Mono", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace;color:var(--so-ink);line-height:1.7;word-break:keep-all}.sysov-head{padding-bottom:1.25rem;border-bottom:2px solid var(--so-ink)}.sysov-eyebrow{margin:0 0 .6rem;font-family:var(--so-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--so-accent)}.sysov-head h2{margin:0 0 .75rem;font-size:1.75rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.sysov-lede{max-width:62ch;margin:0;font-size:1rem;color:var(--so-ink-2)}.sysov-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;margin:1.5rem 0 0;background:var(--so-rule);border:1px solid var(--so-rule);border-radius:.5rem;overflow:hidden}.sysov-fact{padding:.75rem .9rem .85rem;background:var(--so-surface)}.sysov-fact dt{margin:0 0 .35rem;font-family:var(--so-mono);font-size:.63rem;letter-spacing:.11em;text-transform:uppercase;color:var(--so-ink-3)}.sysov-fact dd{margin:0;font-family:var(--so-mono);font-size:.78rem;line-height:1.4;word-break:break-all}.sysov-fact dd .sysov-unavailable{color:var(--so-warn)}.sysov-fact dd .sysov-live{display:inline-block;margin-left:.35rem;padding:0 .35rem;border:1px solid var(--so-accent);border-radius:999px;font-size:.6rem;letter-spacing:.06em;color:var(--so-accent);vertical-align:1px}.sysov-jump{display:flex;flex-wrap:wrap;gap:.4rem;margin:1.25rem 0 0}.sysov-jump button{padding:.4rem .7rem;border:1px solid var(--so-rule-strong);border-radius:.45rem;background:var(--so-surface);color:var(--so-ink-2);font-family:var(--so-mono);font-size:.72rem;cursor:pointer;transition:border-color .15s,color .15s,background-color .15s}.sysov-jump button:hover{border-color:var(--so-accent);background:var(--so-accent-soft);color:var(--so-accent)}.sysov-jump button:focus-visible{outline:2px solid var(--so-accent);outline-offset:2px}.sysov-section{padding-top:2.75rem;scroll-margin-top:1rem}.sysov-sec-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.75rem;padding-bottom:.6rem;margin-bottom:1.2rem;border-bottom:1px solid var(--so-rule)}.sysov-tag{padding:.15rem .45rem;border:1px solid var(--so-accent);border-radius:.3rem;font-family:var(--so-mono);font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:var(--so-accent);white-space:nowrap}.sysov-sec-head h3{margin:0;font-size:1.3rem;font-weight:700;letter-spacing:-.015em;line-height:1.25}.sysov h4{margin:2rem 0 .5rem;font-size:1rem;font-weight:700}.sysov p{max-width:68ch;margin:0 0 .85rem;font-size:.94rem;color:var(--so-ink-2)}.sysov p strong{color:var(--so-ink);font-weight:700}.sysov-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 2.25rem;align-items:start}.sysov-m{padding:.05rem .3rem;border-radius:.2rem;background:var(--so-surface-2);border:1px solid var(--so-rule);font-family:var(--so-mono);font-size:.82em;word-break:break-word}.sysov figure{margin:1.5rem 0 .5rem}.sysov-figframe{padding:1.1rem 1rem;overflow-x:auto;background:var(--so-surface);border:1px solid var(--so-rule);border-radius:.6rem}.sysov figure svg{display:block;width:100%;min-width:720px;height:auto}.sysov figcaption{max-width:78ch;margin-top:.7rem;padding-left:.7rem;border-left:2px solid var(--so-accent);font-size:.84rem;line-height:1.6;color:var(--so-ink-3)}.sysov .d-box{fill:var(--so-surface);stroke:var(--so-rule-strong);stroke-width:1.4}.sysov .d-box-2{fill:var(--so-surface-2);stroke:var(--so-rule-strong);stroke-width:1.4}.sysov .d-zone{fill:none;stroke:var(--so-rule-strong);stroke-width:1.2;stroke-dasharray:6 5}.sysov .d-hit{fill:var(--so-surface);stroke:var(--so-accent);stroke-width:1.8}.sysov .d-hit-g{fill:var(--so-surface);stroke:var(--so-gpu);stroke-width:1.8}.sysov .d-hit-s{fill:var(--so-surface);stroke:var(--so-service);stroke-width:1.8}.sysov .d-hit-w{fill:var(--so-surface);stroke:var(--so-warn);stroke-width:1.8}.sysov .t{fill:var(--so-ink);font-size:13.5px;font-weight:700}.sysov .t-s{fill:var(--so-ink-2);font-size:12px}.sysov .t-m{fill:var(--so-ink-3);font-family:var(--so-mono);font-size:10.5px}.sysov .t-z{fill:var(--so-ink-3);font-family:var(--so-mono);font-size:11px;letter-spacing:.1em}.sysov .t-a{fill:var(--so-accent);font-family:var(--so-mono);font-size:10.5px}.sysov .t-g{fill:var(--so-gpu);font-family:var(--so-mono);font-size:10.5px}.sysov .t-sv{fill:var(--so-service);font-family:var(--so-mono);font-size:10.5px}.sysov .t-num{fill:var(--so-accent);font-family:var(--so-mono);font-size:11px;font-weight:700}.sysov .ln{stroke:var(--so-ink-2);stroke-width:1.5;fill:none}.sysov .ln-a{stroke:var(--so-accent);stroke-width:1.9;fill:none}.sysov .ln-g{stroke:var(--so-gpu);stroke-width:1.9;fill:none}.sysov .ln-s{stroke:var(--so-service);stroke-width:1.9;fill:none}.sysov .ln-d{stroke:var(--so-ink-3);stroke-width:1.4;fill:none;stroke-dasharray:5 4}.sysov .mk{fill:var(--so-ink-2)}.sysov .mk-a{fill:var(--so-accent)}.sysov .mk-g{fill:var(--so-gpu)}.sysov .mk-s{fill:var(--so-service)}.sysov .mk-d{fill:var(--so-ink-3)}.sysov-tablewrap{margin:1.25rem 0;overflow-x:auto}.sysov table{width:100%;min-width:620px;border-collapse:collapse;font-size:.88rem}.sysov th,.sysov td{padding:.6rem .8rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--so-rule)}.sysov thead th{font-family:var(--so-mono);font-size:.63rem;font-weight:400;letter-spacing:.11em;text-transform:uppercase;color:var(--so-ink-3);white-space:nowrap;border-bottom:1px solid var(--so-ink-2)}.sysov tbody tr:last-child td{border-bottom:1px solid var(--so-rule-strong)}.sysov td.sysov-mono{font-family:var(--so-mono);font-size:.78rem;color:var(--so-ink-2)}.sysov-rules{display:grid;gap:1px;margin:1.25rem 0 0;padding:0;list-style:none;background:var(--so-rule);border:1px solid var(--so-rule);border-radius:.5rem;overflow:hidden}.sysov-rules li{padding:.8rem 1rem;background:var(--so-surface);font-size:.9rem;line-height:1.6;color:var(--so-ink-2)}.sysov-rules li b{display:block;margin-bottom:.2rem;font-family:var(--so-mono);font-size:.63rem;font-weight:400;letter-spacing:.11em;text-transform:uppercase;color:var(--so-accent)}.sysov-foot{margin-top:3rem;padding-top:.9rem;border-top:1px solid var(--so-rule);font-family:var(--so-mono);font-size:.7rem;line-height:1.8;color:var(--so-ink-3)}@media (max-width: 720px){.sysov-figframe{padding:.7rem .55rem}.sysov-head h2{font-size:1.45rem}}*{box-sizing:border-box;margin:0;padding:0}:root{--app-font: "에이투지체", "AtoZ", "AtoZ체", "A To Z", "Apple SD Gothic Neo", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--primary-color: #f97316;--secondary-color: #ea580c;--success-color: #10b981;--error-color: #ef4444;--text-primary: #1f2937;--text-secondary: #6b7280;--bg-primary: #ffffff;--bg-secondary: #f9fafb;--border-color: #e5e7eb;--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1)}body{font-family:var(--app-font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(180deg,#fff,#fff 50%,#fffaf4 76%,#ffedd5);min-height:100vh;overflow-x:hidden}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(180deg,#fff7ed,#fff 48%,#ffedd5)}.auth-card{width:min(100%,420px);display:flex;flex-direction:column;gap:1rem;padding:2rem;border:1px solid #fed7aa;border-radius:1.25rem;background:#fffffff0;box-shadow:var(--shadow-lg)}.auth-card h1{color:var(--text-primary);font-size:2rem}.auth-eyebrow{color:var(--primary-color);font-size:.78rem;font-weight:900;letter-spacing:.14em}.auth-hint{color:var(--text-secondary);line-height:1.5}.auth-card label{display:flex;flex-direction:column;gap:.45rem;color:var(--text-primary);font-weight:800}.auth-card input{min-height:3.1rem;border:1px solid var(--border-color);border-radius:.7rem;padding:0 .9rem;font-size:1rem}.auth-error{color:var(--error-color);font-size:.9rem;line-height:1.4}.auth-submit{min-height:3.25rem;border:0;border-radius:.75rem;background:var(--primary-color);color:#fff;cursor:pointer;font-size:1rem;font-weight:900}.auth-submit:disabled{opacity:.6;cursor:wait}.auth-google-submit{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color);background:#fff;color:var(--text-primary)}.auth-google-submit:before{content:"G";display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;margin-right:.65rem;border-radius:999px;background:#4285f4;color:#fff;font-size:.95rem;font-weight:900}.auth-divider{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:.82rem;font-weight:800}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.auth-session-bar{position:fixed;top:.7rem;right:.7rem;z-index:20;display:flex;align-items:center;gap:.5rem;padding:.35rem .45rem .35rem .75rem;border:1px solid #fed7aa;border-radius:999px;background:#ffffffeb;box-shadow:var(--shadow);color:var(--text-secondary);font-size:.82rem;font-weight:800}.auth-session-bar button{border:0;border-radius:999px;background:#fff7ed;color:var(--secondary-color);cursor:pointer;padding:.35rem .65rem;font-weight:900}body:before,body:after{content:"";position:fixed;pointer-events:none;z-index:0;left:-42vw;width:184vw;-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%20320'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%20128C120%2074%20240%2074%20360%20128C480%20182%20600%20182%20720%20128C840%2074%20960%2074%201080%20128C1200%20182%201320%20182%201440%20128L1440%20320L0%20320Z'%20fill='black'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%20320'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%20128C120%2074%20240%2074%20360%20128C480%20182%20600%20182%20720%20128C840%2074%20960%2074%201080%20128C1200%20182%201320%20182%201440%20128L1440%20320L0%20320Z'%20fill='black'/%3E%3C/svg%3E");-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-size:50% 100%;mask-size:50% 100%;will-change:transform,mask-position}body:before{bottom:-17vh;height:50vh;opacity:.62;background:linear-gradient(90deg,#fff7ed3d,#fdba748f 42%,#ffedd5b8);animation:orange-wave-back 22s linear infinite}body:after{bottom:-11vh;height:43vh;opacity:.82;background:linear-gradient(90deg,#ffedd54d,#fb923c7a,#fdba74bd 72%,#fff7ed80);animation:orange-wave-front 9s ease-in-out infinite alternate}button,input,select,textarea{font-family:var(--app-font)}.secondary-button,.upload-submit-button,.cancel-button{border-radius:.5rem;font-size:1rem;font-weight:500;cursor:pointer;transition:border-color .2s,background-color .2s,color .2s,opacity .2s}.secondary-button{padding:.6rem .9rem;border:1px solid var(--border-color);background:#fff;color:var(--text-primary)}.secondary-button:hover:not(:disabled){border-color:var(--primary-color);color:var(--secondary-color);background:#fff7ed}.upload-submit-button{margin-top:1rem;margin-right:1rem;padding:.75rem 2rem;border:0;background:var(--primary-color);color:#fff}.upload-submit-button:hover:not(:disabled){background:var(--secondary-color)}.secondary-button:disabled,.upload-submit-button:disabled,.cancel-button:disabled{opacity:.5;cursor:not-allowed}.cancel-button{margin-top:1rem;padding:.75rem 2rem;border:1px solid var(--border-color);background:transparent;color:var(--text-secondary)}#root{position:relative;z-index:1}@keyframes orange-wave-front{0%{-webkit-mask-position:0 0;mask-position:0 0;transform:translate3d(-9vw,1vh,0) scaleY(1)}50%{transform:translate3d(0,-2.4vh,0) scaleY(1.08)}to{-webkit-mask-position:720px 0;mask-position:720px 0;transform:translate3d(9vw,-.4vh,0) scaleY(.98)}}@keyframes orange-wave-back{0%{-webkit-mask-position:720px 0;mask-position:720px 0;transform:translate3d(8vw,0,0) scaleY(1.08)}50%{transform:translate3d(0,-1.2vh,0) scaleY(.96)}to{-webkit-mask-position:0 0;mask-position:0 0;transform:translate3d(-8vw,.8vh,0) scaleY(1.04)}}@media (prefers-reduced-motion: reduce){body:before,body:after{animation:none}}.app{max-width:1200px;margin:0 auto;padding:2rem;position:relative;z-index:1}.app.app-workflow-mode{width:min(90vw,1680px);max-width:none;padding-left:0;padding-right:0}.app.app-workflow-mode .app-main{padding:1rem}.admin-section-tabs{display:inline-flex;gap:.25rem;margin-bottom:1rem;padding:.3rem;border:1px solid var(--border-color);border-radius:.75rem;background:#ffffffeb;box-shadow:var(--shadow)}.admin-section-tabs button{padding:.65rem 1rem;border:0;border-radius:.5rem;background:transparent;color:var(--text-secondary);font-size:.86rem;font-weight:700;cursor:pointer}.admin-section-tabs button.active{background:#1f2937;color:#fff}.app.app-workflow-mode .app-header{margin-bottom:1rem}.app.app-workflow-mode .logo{gap:.5rem;margin-bottom:.1rem}.app.app-workflow-mode .logo h1{font-size:2.25rem}.app.app-workflow-mode .logo svg{width:24px;height:24px}.app.app-workflow-mode .tagline{font-size:.9rem}.app-header{text-align:center;margin-bottom:3rem;color:var(--text-primary)}.logo{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:.5rem}.logo h1{font-size:3rem;font-weight:700;color:var(--primary-color)}.tagline{font-size:1.125rem;color:var(--text-secondary)}.app-main{background:#fffffff0;border-radius:1rem;padding:2rem;box-shadow:var(--shadow-lg);border:1px solid rgba(254,215,170,.42);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-height:400px}.upload-section{max-width:600px;margin:0 auto}.upload-section.wide{max-width:100%}.upload-section.lyrics-editor-mode,.upload-section.audio-collection-mode{width:100%;max-width:100%}.mode-selector{display:flex;flex-wrap:nowrap;gap:1rem;margin-bottom:2rem}.app.app-workflow-mode .mode-selector{gap:.55rem;margin-bottom:.85rem}.app.app-workflow-mode .mode-button{padding:.5rem .65rem;border-width:1px;border-radius:.45rem;font-size:.9rem}.mode-button{flex:1;min-width:110px;padding:.75rem;border:2px solid var(--border-color);background:#fff;border-radius:.5rem;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.persistent-mode-panel{width:100%}.persistent-mode-panel.active{position:static}.persistent-mode-panel.preserved-offscreen{position:fixed;left:-200vw;top:0;z-index:-1;width:420px;height:320px;overflow:hidden;opacity:0;pointer-events:none}.auto-register{display:grid;gap:1rem}.batch-floating-summary{display:none}.batch-floating-active{display:grid;gap:.15rem;min-width:0}.batch-floating-active strong{color:var(--text-primary);font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-floating-active span,.batch-floating-summary small{color:var(--text-secondary);font-size:.76rem}.auto-register-batch-panel{display:grid;gap:.5rem;padding:.65rem .7rem;border:1px solid var(--border-color);border-radius:.75rem;background:#fff}.batch-list-input{width:100%;min-height:132px;resize:vertical;padding:.85rem .95rem;border:1px solid var(--border-color);border-radius:.6rem;background:#fff;color:var(--text-primary);font:inherit;line-height:1.5}.batch-source-selector{display:inline-flex;flex-wrap:wrap;gap:.32rem}.auto-register-source-selector{margin-bottom:0;justify-content:flex-start}.auto-register-single-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.auto-register-single-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.auto-register-single-actions .secondary-button,.auto-register-single-actions .upload-submit-button{box-sizing:border-box;height:48px;min-height:48px;margin:0;padding:0 1.25rem;line-height:1}.auto-register-playback-status{margin-bottom:16px;border:1px solid #fed7aa;border-radius:12px;background:#fff7ed;color:#9a3412;font-size:.9rem;font-weight:700;padding:10px 14px}.auto-register-primary-action{display:flex;justify-content:flex-start;margin:-6px 0 16px}.auto-register-active-workspace{margin-top:0}.batch-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.42rem .5rem}.source-option{min-height:36px;display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .7rem;border:1px solid var(--border-color);border-radius:.55rem;background:#fff;color:var(--text-secondary);font-weight:800;cursor:pointer}.source-option.active{border-color:var(--primary-color);background:#fff7ed;color:var(--primary-color)}.source-option:disabled{cursor:not-allowed;opacity:.55}.batch-action-row{display:flex;flex-wrap:wrap;gap:.38rem;align-items:center}.batch-action-row .upload-submit-button,.batch-action-row .secondary-button{box-sizing:border-box;height:34px;min-height:34px;margin:0;padding-left:.65rem;padding-right:.65rem;padding-top:0;padding-bottom:0;border-radius:.45rem;font-size:.8rem;line-height:1}.batch-toolbar .source-option{box-sizing:border-box;height:34px;min-height:34px;gap:.28rem;padding:0 .56rem;border-radius:.45rem;font-size:.8rem;line-height:1}.batch-toolbar svg{width:14px;height:14px}.capture-source-selector{display:inline-flex;align-items:center;gap:.3rem;min-width:0;margin:0;padding:0;border:0}.capture-source-selector legend{float:left;margin-right:.08rem;color:var(--text-secondary);font-size:.74rem;font-weight:800;white-space:nowrap}.capture-source-option input{accent-color:var(--primary-color)}.capture-source-option.disabled{cursor:not-allowed;opacity:.55}.capture-participation-button{box-sizing:border-box;height:34px;min-height:34px;white-space:nowrap}.capture-participation-button.active{border-color:#86efac;background:#f0fdf4;color:#15803d}.apple-music-auth-button{box-sizing:border-box;height:34px;min-height:34px;margin:0;padding-left:.65rem;padding-right:.65rem;border-radius:.45rem;font-size:.8rem;white-space:nowrap}.apple-music-auth-button.authorized{border-color:#86efac;background:#f0fdf4;color:#15803d;opacity:1}.batch-add-button{border-color:#fdba74;color:#c2410c;background:#fff7ed}.batch-add-modal{width:min(720px,100%);max-height:min(720px,88vh);display:grid;grid-template-rows:auto minmax(220px,1fr) auto;border:1px solid var(--border-color);border-radius:.75rem;background:#fff;box-shadow:0 24px 80px #0f172a3d;overflow:hidden}.batch-add-modal-header,.batch-add-modal-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem}.batch-add-modal-header{border-bottom:1px solid var(--border-color)}.batch-modal-close{box-sizing:border-box;flex:0 0 38px;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:0;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#475569;cursor:pointer}.batch-modal-close svg{display:block;width:20px;height:20px}.batch-modal-close:hover{border-color:#fb7185;background:#fff1f2;color:#e11d48}.batch-add-modal-header>div:first-child{display:grid;gap:.2rem}.batch-add-modal-header strong{color:var(--text-primary);font-size:1.05rem}.batch-add-modal-header span,.batch-add-modal-actions>span{color:var(--text-secondary);font-size:.84rem}.batch-add-textarea{width:auto;min-height:260px;margin:1rem;resize:vertical;padding:.85rem .95rem;border:1px solid var(--border-color);border-radius:.6rem;color:var(--text-primary);font:inherit;line-height:1.55}.batch-add-modal-actions{border-top:1px solid var(--border-color);background:#f8fafc}.batch-add-modal-actions>div{display:flex;gap:.5rem;align-items:center}.batch-add-modal-actions .batch-modal-action{box-sizing:border-box;height:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:0 1.1rem;line-height:1}.batch-summary{display:flex;flex-wrap:wrap;gap:.32rem;color:var(--text-secondary);font-size:.74rem}.batch-summary span{padding:.18rem .42rem;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-secondary)}.server-queue-count{margin-left:.2rem;padding:.16rem .42rem;border:1px solid #fdba74;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:.72rem;font-weight:800}.batch-queue{display:grid;gap:.5rem;max-height:420px;overflow:auto;padding:.25rem}.batch-row{display:grid;grid-template-columns:112px minmax(0,1fr) minmax(92px,max-content);gap:.75rem;align-items:start;width:100%;padding:.75rem .85rem;border:1px solid var(--border-color);border-left-width:4px;border-radius:.6rem;background:#fff;text-align:left;cursor:pointer}.batch-row.active{border-color:var(--primary-color);box-shadow:0 0 0 3px #f973161f;scroll-margin-block:5rem}.batch-row.status-ready{border-left-color:#22c55e}.batch-row.status-needs_review{border-left-color:#f59e0b}.batch-row.status-recording,.batch-row.status-searching,.batch-row.status-queued{border-left-color:#3b82f6}.batch-row.active.status-recording{border-color:#f97316;border-left-color:#ea580c;background:linear-gradient(90deg,#ffedd5,#fff7ed 52%,#fff);box-shadow:0 0 0 3px #f973162e,0 8px 22px #ea580c1f}.batch-row.active.status-recording .batch-row-status{color:#c2410c}.batch-row.status-saved{border-left-color:#16a34a;background:#f0fdf4}.batch-row.status-failed,.batch-row.status-skipped{border-left-color:#ef4444}.batch-row-status{display:inline-flex;align-items:flex-start;gap:.35rem;color:var(--text-primary);font-size:.84rem;font-weight:700;min-width:0;padding-top:.1rem}.batch-row-status>svg{flex:0 0 auto}.batch-row-status-text{display:grid;gap:.08rem;min-width:0;line-height:1.25}.batch-row-status-text>span{overflow-wrap:anywhere;word-break:keep-all}.batch-row-main{display:grid;gap:.18rem;min-width:0}.batch-row-main strong,.candidate-meta strong{color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-row-main small,.batch-row-score small,.candidate-meta span{color:var(--text-secondary);font-size:.8rem;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-row-main .batch-row-message{display:block;max-width:100%;margin-top:.12rem;color:#4b5563;font-weight:700;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;word-break:keep-all}.batch-job-badges{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.18rem;min-width:0}.batch-job-badges em{display:inline-flex;align-items:center;max-width:100%;padding:.12rem .36rem;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:.68rem;line-height:1.1;font-style:normal;font-weight:800;white-space:nowrap}.batch-row-score{display:grid;gap:.15rem;justify-items:end;color:var(--text-primary);font-weight:800;min-width:92px;text-align:right}.batch-row-score strong{font-size:1.05rem;line-height:1.1}.batch-row-score small{max-width:132px;text-align:right}.batch-complete-panel{display:flex;align-items:center;gap:.75rem;padding:1rem;border:1px solid #bbf7d0;border-radius:.75rem;background:#f0fdf4;color:#166534}.batch-complete-panel svg{flex:0 0 auto}.batch-complete-panel div{display:grid;gap:.18rem;min-width:0}.batch-complete-panel strong{color:#14532d;font-size:1rem}.batch-complete-panel span,.batch-complete-panel small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-complete-panel span{color:var(--text-primary);font-weight:800}.batch-complete-panel small{color:#15803d;font-size:.82rem;font-weight:700}.auto-register-batch .batch-queue{max-height:172px;gap:.35rem}.auto-register-batch .batch-row{grid-template-columns:96px minmax(0,1fr) minmax(64px,max-content);gap:.5rem;padding:.48rem .65rem;border-radius:.5rem}.auto-register-batch .batch-row-status{gap:.25rem;font-size:.76rem}.auto-register-batch .batch-row-main{gap:.08rem}.auto-register-batch .batch-row-main strong{font-size:.86rem}.auto-register-batch .batch-row-main small,.auto-register-batch .batch-row-score small{font-size:.72rem;line-height:1.22}.auto-register-batch .batch-row-main .batch-row-message{margin-top:.04rem;font-size:.72rem}.auto-register-batch .batch-row-score{min-width:64px}.auto-register-batch .batch-row-score strong{font-size:.9rem}.candidate-meta{display:grid;gap:.2rem;margin-top:.5rem}.waveform-card{margin-top:.75rem;padding:.75rem;border:1px solid var(--border-color);border-radius:.75rem;background:#fff}.waveform-card.compact{margin-top:0;padding:.62rem .7rem}.waveform-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.waveform-card.compact .waveform-header{margin-bottom:.25rem}.waveform-title{color:var(--text-primary);font-size:.95rem;font-weight:600}.waveform-card.compact .waveform-title{font-size:.88rem}.waveform-pill{flex:0 0 auto;padding:.2rem .5rem;border:1px solid var(--border-color);border-radius:999px;font-size:.8rem;font-weight:600}.waveform-card.compact .waveform-pill{padding:.14rem .42rem;font-size:.72rem}.waveform-pill.on{border-color:#a7f3d0;background:#ecfdf5;color:#065f46}.waveform-pill.off{background:#f9fafb;color:var(--text-secondary)}.waveform-hint{margin-top:.5rem;color:var(--text-secondary);font-size:.85rem}.waveform-card.compact .waveform-description,.waveform-card.compact .metadata-preview{display:none}.live-device-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center;margin:.75rem 0 .25rem}.waveform-card.compact .live-device-row{grid-template-columns:76px minmax(0,1fr) auto;gap:.45rem;margin:.35rem 0 .2rem}.live-device-label{color:var(--text-secondary);font-size:.9rem}.waveform-card.compact .live-device-label{font-size:.78rem}.live-select{width:100%;min-width:0;padding:.6rem .75rem;border:1px solid var(--border-color);border-radius:.5rem;background:#fff;color:var(--text-primary);font-size:.95rem}.waveform-card.compact .live-select,.waveform-card.compact .secondary-button{min-height:36px;padding:.38rem .55rem;font-size:.82rem}.metadata-preview{margin-top:.5rem;padding:.5rem .625rem;border:1px solid #fed7aa;border-radius:.5rem;background:#fff7ed;color:#9a3412;font-size:.85rem;font-weight:600}.level-row{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.waveform-card.compact .level-row{gap:.5rem;margin-top:.3rem}.level-bar{position:relative;flex:1;height:10px;overflow:hidden;border:1px solid #e5e7eb;border-radius:999px;background:#ffedd5}.waveform-card.compact .level-bar{height:8px}.level-fill{width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#fbbf24,#f97316 60%,#ef4444);transition:width 60ms linear}.level-text{display:flex;min-width:86px;align-items:baseline;justify-content:flex-end;gap:.4rem}.waveform-card.compact .level-text{min-width:70px}.level-label{color:var(--text-secondary);font-size:.85rem}.waveform-card.compact .level-label{font-size:.74rem}.level-value{color:var(--text-primary);font-size:.95rem;font-weight:700}.waveform-card.compact .level-value{font-size:.86rem}.input-quality{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem;color:var(--text-secondary);font-size:.82rem;font-weight:600}.waveform-card.compact .input-quality{gap:.32rem;margin-top:.35rem;font-size:.72rem}.input-quality span{padding:.2rem .45rem;border:1px solid var(--border-color);border-radius:999px;background:#f9fafb}.waveform-card.compact .input-quality span{padding:.14rem .36rem}.input-quality span.input-ok{border-color:#bbf7d0;background:#ecfdf5;color:#047857}.input-quality span.input-warn{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.waveform-card.compact .waveform-hint:last-child{margin-top:.35rem;font-size:.74rem}.live-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.record-button,.stop-button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:0;border-radius:.5rem;color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s,opacity .2s}.record-button{background:var(--error-color)}.record-button:hover:not(:disabled){background:#dc2626}.stop-button{background:var(--text-primary)}.record-button:disabled,.stop-button:disabled{cursor:not-allowed;opacity:.5}.spin-icon{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auto-register-form{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:.75rem;align-items:start}.auto-register-form label{display:grid;gap:.35rem;color:var(--text-primary);font-weight:700}.auto-register-search-row{grid-column:1 / -1;display:flex;justify-content:center;margin-top:.25rem}.auto-register-search-row .upload-submit-button{min-width:340px}.auto-register-candidate-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:start}.candidate-panel{display:grid;gap:.75rem;padding:.9rem;border:1px solid var(--border-color);border-radius:.75rem;background:#fff}.candidate-list{display:grid;gap:.5rem;max-height:520px;overflow:auto}.candidate-card{width:100%;display:grid;grid-template-columns:104px minmax(0,1fr);gap:.75rem;padding:.6rem;border:1px solid var(--border-color);border-radius:.75rem;background:#fff;text-align:left;cursor:pointer}.candidate-card.active{border-color:var(--primary-color);background:#fff7ed;box-shadow:0 0 0 3px #f973161f}.candidate-card img{width:104px;height:58px;object-fit:cover;border-radius:.45rem;background:var(--bg-secondary)}.candidate-card span{min-width:0;display:grid;gap:.2rem}.candidate-card strong{color:var(--text-primary);font-size:.9rem;line-height:1.25}.candidate-card small,.candidate-card em{color:var(--text-secondary);font-size:.78rem;font-style:normal}.lyrics-candidate-panel{display:grid;gap:.75rem;padding:.9rem;border:1px solid #fed7aa;border-radius:.75rem;background:#fff7ed}.lyrics-candidate-list{display:grid;gap:.5rem;max-height:520px;overflow:auto}.candidate-empty{margin:0;padding:1rem;color:var(--text-secondary);font-size:.9rem;line-height:1.45;background:#ffffffa3;border:1px dashed #fdba74;border-radius:.6rem}.lyrics-candidate-card{display:grid;gap:.25rem;width:100%;padding:.65rem .75rem;border:1px solid var(--border-color);border-radius:.6rem;background:#fff;text-align:left;cursor:pointer}.lyrics-candidate-card.active{border-color:var(--primary-color);box-shadow:0 0 0 3px #f973161f}.lyrics-candidate-card strong{color:var(--text-primary);font-size:.95rem}.lyrics-candidate-card span,.lyrics-candidate-card small{color:var(--text-secondary);font-size:.82rem;line-height:1.35}.auto-register-selection{display:grid;grid-template-columns:minmax(320px,1fr) minmax(320px,1fr);gap:1rem;align-items:start;padding:.9rem;border:1px solid #fed7aa;border-radius:.75rem;background:#fff7edb8}.auto-register-selected-video,.auto-register-selected-lyrics{min-width:0}.auto-register-selected-video iframe{border:0;border-radius:.75rem;overflow:hidden;background:#111827;box-shadow:var(--shadow)}.apple-music-player-card{min-height:218px;display:grid;grid-template-columns:96px minmax(0,1fr);gap:1rem;align-items:center;padding:1rem;border:1px solid var(--border-color);border-radius:.75rem;background:linear-gradient(135deg,#fff7ed,#fff 58%,#f0f9ff);box-shadow:var(--shadow)}.apple-music-player-card img,.apple-music-player-card>svg{width:96px;height:96px;border-radius:.65rem;object-fit:cover;color:var(--primary-color);background:#fff}.apple-music-player-card div{min-width:0;display:grid;gap:.25rem}.apple-music-player-card small{color:var(--primary-color);font-weight:800}.apple-music-player-card strong,.apple-music-player-card span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apple-music-player-card strong{color:var(--text-primary);font-size:1.08rem}.apple-music-player-card span{color:var(--text-secondary)}.auto-register-selected-lyrics{display:grid;gap:.75rem}.auto-register-selected-lyrics pre{margin:0;padding:.9rem;min-height:320px;border:1px solid var(--border-color);border-radius:.75rem;background:#fff;color:var(--text-primary);font-family:inherit;font-size:.95rem;line-height:1.65;white-space:pre-wrap;word-break:keep-all}.batch-active-workspace{display:grid;gap:.7rem;padding:.65rem;border:1px solid #fed7aa;border-radius:.75rem;background:#fff7edb8}.batch-active-workspace.has-selection{grid-template-columns:minmax(300px,1.05fr) minmax(260px,.85fr) minmax(300px,1fr);align-items:stretch}.batch-active-workspace .auto-register-selection{display:contents}.batch-active-workspace .auto-register-selected-video,.batch-active-workspace .auto-register-selected-lyrics,.batch-capture-column{min-width:0}.batch-capture-column .waveform-card{height:100%}.auto-register-batch .auto-register-selected-video iframe{height:218px}.auto-register-batch .candidate-meta{margin-top:.35rem;gap:.08rem}.auto-register-batch .candidate-meta strong{font-size:.86rem}.auto-register-batch .candidate-meta span{font-size:.74rem}.selected-lyrics-source{color:var(--text-secondary);font-size:.74rem;font-weight:700}.auto-register-batch .auto-register-selected-lyrics{gap:.35rem;box-sizing:border-box;padding:.75rem;border:1px solid var(--border-color);border-radius:.75rem;background:#fff;box-shadow:var(--shadow)}.selected-lyrics-header{min-width:0;display:flex;align-items:baseline;gap:.45rem}.selected-lyrics-header strong{min-width:0;flex:0 1 auto;overflow:hidden;color:var(--text-primary);font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.selected-lyrics-header span{flex:0 0 auto;color:var(--text-secondary);font-size:.75rem;font-weight:700}.auto-register-batch .auto-register-selected-lyrics pre{min-height:0;height:188px;padding:.6rem .7rem;font-size:.8rem;line-height:1.38;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.auto-register-record-row{grid-column:1 / -1;display:flex;justify-content:center}.auto-register-record-row .upload-submit-button{min-width:360px}.lyrics-editor{width:100%}.lyrics-editor-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.lyrics-editor-header h2{color:var(--text-primary);font-size:1.5rem;margin-bottom:.25rem}.lyrics-editor-header p,.muted-text{color:var(--text-secondary);font-size:.9rem}.lyrics-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;flex-wrap:wrap;min-width:0}.lyrics-stat-badges{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;flex-wrap:wrap}.lyrics-stat-badge{min-height:34px;display:inline-flex;align-items:center;gap:.32rem;padding:.22rem .55rem;border:1px solid var(--border-color);border-radius:999px;background:#f8fafc;color:var(--text-secondary);font-size:.76rem;font-weight:800;white-space:nowrap}.lyrics-stat-badge strong{color:var(--text-primary);font-size:.88rem}.lyrics-stat-badge.is-complete{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.lyrics-stat-badge.is-draft{border-color:#bfdbfe;background:#eff6ff;color:#2563eb}.lyrics-stat-badge.is-review{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.lyrics-stat-badge.is-complete strong,.lyrics-stat-badge.is-draft strong,.lyrics-stat-badge.is-review strong{color:inherit}.batch-database-status{margin-bottom:1rem;padding:.75rem .85rem;border:1px solid var(--border-color);border-radius:.75rem;background:#f8fafc}.batch-database-status.is-active{border-color:#fed7aa;background:#fffaf5}.batch-database-status-header,.batch-database-status-header>div,.batch-database-counts,.batch-database-toggle{display:flex;align-items:center}.batch-database-status-header{justify-content:space-between;gap:.75rem}.batch-database-status-header>div{gap:.45rem}.batch-database-status-header strong{color:var(--text-primary);font-size:.9rem}.batch-database-status-header span{color:var(--text-secondary);font-size:.76rem}.batch-database-toggle{gap:.2rem;padding:.28rem .45rem;border:0;background:transparent;color:#c2410c;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.batch-database-error{margin-top:.55rem;color:#dc2626;font-size:.78rem}.batch-database-counts{gap:.45rem;margin-top:.65rem;flex-wrap:wrap}.batch-database-nodes{display:flex;gap:.4rem;margin-top:.5rem;flex-wrap:wrap}.batch-database-nodes span{padding:.25rem .45rem;border:1px solid #bbf7d0;border-radius:.45rem;background:#f0fdf4;color:#15803d;font-size:.7rem;font-weight:750}.batch-database-counts span{padding:.24rem .5rem;border-radius:999px;background:#e2e8f0;color:#475569;font-size:.76rem;font-weight:700}.batch-database-counts .is-remaining{background:#ffedd5;color:#c2410c}.batch-database-counts strong{margin-left:.15rem}.batch-database-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.45rem;max-height:240px;margin-top:.65rem;overflow-y:auto}.batch-database-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55rem;align-items:center;padding:.5rem .6rem;border:1px solid #fed7aa;border-radius:.55rem;background:#fff}.batch-database-item>span{padding:.14rem .35rem;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.68rem;font-weight:800}.batch-database-item>span.is-recording,.batch-database-item>span.is-searching,.batch-database-item>span.is-claimed{background:#dcfce7;color:#15803d}.batch-database-item>span.is-queued{background:#dbeafe;color:#2563eb}.batch-database-item div{min-width:0}.batch-database-item strong,.batch-database-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-database-item strong{color:var(--text-primary);font-size:.8rem}.batch-database-item small{color:var(--text-secondary);font-size:.7rem}.batch-database-item>small{grid-column:2}.lyrics-editor-grid{display:grid;grid-template-columns:minmax(320px,360px) minmax(0,1fr);gap:1rem}.audio-collection-grid{display:grid;grid-template-columns:minmax(360px,440px) minmax(0,1fr);gap:1rem}.audio-collection-form{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(220px,.7fr) auto;gap:.75rem;align-items:end}.audio-collection-form label{display:grid;gap:.35rem;color:var(--text-secondary);font-size:.82rem;font-weight:800}.audio-collection-form input{width:100%;min-height:42px;padding:.6rem .7rem;border:1px solid var(--border-color);border-radius:.55rem;color:var(--text-primary);font:inherit;outline:none}.audio-collection-form input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #f973161f}.audio-collection-form .upload-submit-button{min-height:42px;margin:0;padding:.6rem 1rem;white-space:nowrap}.audio-collection-detail{margin-top:1rem;padding:1rem;border:1px solid var(--border-color);border-radius:.75rem;background:#f8fafc}.audio-collection-detail small{display:block;margin-bottom:.25rem;color:var(--text-secondary);font-weight:800}.audio-collection-detail h3{margin-bottom:.25rem;color:var(--text-primary);font-size:1.25rem}.audio-collection-detail p{color:var(--text-secondary);word-break:break-all}.audio-collection-detail dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1rem}.audio-collection-detail dl div{padding:.7rem;border:1px solid var(--border-color);border-radius:.6rem;background:#fff}.audio-collection-detail dt{color:var(--text-secondary);font-size:.78rem;font-weight:800}.audio-collection-detail dd{margin-top:.25rem;color:var(--text-primary);font-weight:800;word-break:break-word}.audio-collection-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.audio-collection-actions .upload-submit-button,.audio-collection-actions .secondary-button,.audio-collection-actions .danger-button,.lyrics-editor-header .secondary-button{min-height:38px;display:inline-flex;align-items:center;gap:.4rem;margin:0;text-decoration:none}.empty-table-cell{padding:1.2rem .5rem;color:var(--text-secondary);text-align:center}.spinning{animation:spin .9s linear infinite}.song-list-panel,.lyrics-edit-panel{border:1px solid var(--border-color);border-radius:.75rem;background:#fff;box-shadow:var(--shadow)}.song-list-panel{padding:.9rem;min-width:0}.lyrics-edit-panel{padding:1.25rem;min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:var(--text-primary);font-weight:700;margin-bottom:.45rem}.panel-title span{display:inline-flex;align-items:center;gap:.5rem}.panel-title small{color:var(--text-secondary);font-size:.78rem;font-weight:700}.song-search-box{position:relative;margin-bottom:.55rem}.song-search-box input{width:100%;min-height:36px;padding:.45rem 2rem .45rem .65rem;border:1px solid var(--border-color);border-radius:.55rem;background:#fff;color:var(--text-primary);font:inherit;font-size:.82rem;outline:none}.song-search-box input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #f973161f}.song-search-clear{position:absolute;top:50%;right:.42rem;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;transform:translateY(-50%);border:0;border-radius:999px;background:transparent;color:var(--text-secondary);cursor:pointer}.song-search-clear:hover{background:#f1f5f9;color:var(--text-primary)}.song-sort-filter{display:flex;align-items:center;gap:.38rem;margin:0 0 .55rem;color:var(--text-secondary);font-size:.78rem;font-weight:700}.song-sort-filter select{flex:1;min-width:0;min-height:32px;padding:.32rem 1.8rem .32rem .5rem;border:1px solid var(--border-color);border-radius:.5rem;background:#fff;color:var(--text-primary);font:inherit;font-size:.78rem}.song-sort-filter select:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #f973161f}.song-sort-filter>span{min-width:.8rem;color:var(--primary-color);text-align:center}.song-filter-toggle{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.65rem;color:var(--text-secondary);font-size:.85rem;font-weight:700}.song-filter-toggle input{width:15px;height:15px;accent-color:var(--primary-color)}.song-table-wrap{border:1px solid var(--border-color);border-radius:.65rem;overflow-x:hidden;overflow-y:hidden;background:#fff}.song-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.8rem}.song-table th,.song-table td{padding:.48rem .42rem;border-bottom:1px solid var(--border-color);text-align:left;vertical-align:top}.song-table th{background:#f8fafc;color:var(--text-secondary);font-weight:800}.song-table th:nth-child(1){width:82px}.song-table th:nth-child(2){width:auto}.song-table th:nth-child(3){width:92px}.audio-collection-table th:nth-child(1){width:86px}.audio-collection-table th:nth-child(3){width:74px}.song-table tbody tr{cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}.song-table tbody tr:hover{background:#fff7ed}.song-table tbody tr.active{background:#fff7ed;box-shadow:inset 3px 0 0 var(--primary-color)}.song-table tbody tr:last-child td{border-bottom:0}.song-sort-button{width:100%;min-width:0;display:inline-flex;align-items:center;justify-content:flex-start;gap:.2rem;padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.song-sort-button.active{color:var(--text-primary)}.song-table .numeric{text-align:left}.song-table .numeric .song-sort-button{justify-content:flex-start}.song-table-title-cell{min-width:0}.song-table-title-cell strong,.song-table-title-cell span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-table-title-cell strong{color:var(--text-primary);font-size:.86rem;line-height:1.25}.song-table-title-cell span{margin-top:.18rem;color:var(--text-secondary);font-size:.73rem;line-height:1.25}.song-review-badge{display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:.12rem .32rem;border-radius:999px;border:1px solid var(--border-color);background:#f8fafc;color:var(--text-secondary);font-size:.66rem;font-weight:800;line-height:1.2;white-space:nowrap}.song-review-badge.rank--1{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.song-review-badge.rank-0,.song-review-badge.rank-1{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.song-review-badge.rank-2{border-color:#bfdbfe;background:#eff6ff;color:#2563eb}.song-review-badge.rank-3{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.song-review-badge.rank-4{border-color:#15803d;background:#15803d;color:#fff}.song-table-length-cell{white-space:nowrap;color:#111827;font-weight:500}.song-table-length-cell span{display:inline-block;min-width:45px}.song-table-length-cell .icon-only-button{width:26px;height:26px;margin-left:.28rem;vertical-align:middle}.song-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.65rem;color:var(--text-secondary);font-size:.78rem;font-weight:700}.song-pagination>div{display:flex;gap:.35rem}.song-pagination .secondary-button{min-height:30px;padding:0 .55rem;font-size:.78rem}.song-delete-button{color:#b45309;border-color:#fed7aa;background:#fff7ed}.song-delete-button:hover:not(:disabled){color:#b91c1c;border-color:#fecaca;background:#fef2f2}.selected-song-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color);margin-bottom:1rem}.selected-song-header h3{color:var(--text-primary);font-size:1.3rem}.song-metadata-display,.song-metadata-editor{min-width:0;display:grid;gap:.45rem}.song-metadata-title-row{display:flex;align-items:center;gap:.5rem;min-width:0}.song-metadata-title-row h3{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-metadata-edit-button{flex:0 0 auto;color:#b45309;border-color:#fed7aa;background:#fff7ed}.song-metadata-fields{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.7fr);gap:.5rem}.song-metadata-fields label{display:grid;gap:.25rem;color:var(--text-secondary);font-size:.75rem;font-weight:700}.song-metadata-fields input{min-width:0;padding:.55rem .65rem;border:1px solid var(--border-color);border-radius:.5rem;color:var(--text-primary);background:#fff;font:inherit}.song-metadata-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.song-metadata-actions .secondary-button,.song-metadata-actions .upload-submit-button{margin:0}.secondary-button.compact,.upload-submit-button.compact{min-height:36px;height:36px;padding:0 .85rem}.song-stat-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.song-stat-row span{padding:.35rem .5rem;border-radius:999px;border:1px solid var(--border-color);color:var(--text-secondary);font-size:.8rem;background:var(--bg-secondary)}.lyrics-textarea,.time-input,.lyric-line-input{border:1px solid var(--border-color);border-radius:.5rem;color:var(--text-primary);background:#fff}.lyrics-paste-panel{display:grid;gap:.75rem;margin-bottom:.75rem;padding:.9rem;border:1px solid var(--border-color);border-radius:.75rem;background:#fff}.lyrics-paste-panel.collapsed{background:#fff7ed;border-color:#fed7aa}.lyrics-paste-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.lyrics-paste-header div{display:grid;gap:.2rem;min-width:0}.lyrics-paste-header strong{color:var(--text-primary);font-size:1rem}.lyrics-paste-header span{color:var(--text-secondary);font-size:.9rem}.lyrics-paste-actions{display:flex;flex-wrap:wrap;gap:.5rem}.lyrics-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#0f172a6b}.lyrics-modal{width:min(720px,100%);max-height:min(720px,86vh);display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid var(--border-color);border-radius:.5rem;background:#fff;box-shadow:0 24px 80px #0f172a3d;overflow:hidden}.lyrics-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid var(--border-color)}.lyrics-modal-header>div:first-child{display:grid;gap:.2rem}.lyrics-modal-header strong{color:var(--text-primary);font-size:1.05rem}.lyrics-modal-header span,.lyrics-modal-actions span{color:var(--text-secondary);font-size:.86rem}.auto-map-engine-modal{width:min(440px,100%);max-height:min(560px,86vh);display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid var(--border-color);border-radius:.5rem;background:#fff;box-shadow:0 24px 80px #0f172a3d;overflow:hidden}.auto-map-engine-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border-bottom:1px solid var(--border-color)}.auto-map-engine-modal-header strong{color:var(--text-primary);font-size:1rem;font-weight:600}.auto-map-engine-list{display:grid;gap:.45rem;padding:.85rem;overflow:auto}.auto-map-engine-option{position:relative;width:100%;min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .75rem;align-items:center;padding:.72rem .82rem;border:1px solid var(--border-color);border-radius:.5rem;background:#fff;color:var(--text-primary);text-align:left;cursor:pointer}.auto-map-engine-option:hover:not(:disabled),.auto-map-engine-option.active{border-color:#fb923c;background:#fff7ed}.auto-map-engine-option:disabled{opacity:.6;cursor:not-allowed}.auto-map-engine-option>span{min-width:0;display:flex;align-items:center;gap:.4rem;font-size:.96rem;font-weight:500}.auto-map-engine-option>span>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auto-map-engine-option small{flex:0 0 auto;padding:.1rem .38rem;border:1px solid #fed7aa;border-radius:999px;background:#ffedd5;color:#c2410c;font-size:.7rem;font-weight:600}.auto-map-engine-option em{grid-column:1 / 2;min-width:0;overflow:hidden;color:var(--text-secondary);font-size:.78rem;font-style:normal;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.auto-map-engine-option svg{grid-column:2;grid-row:1 / 3;color:#f97316}.auto-map-engine-empty{min-height:82px;display:flex;align-items:center;justify-content:center;gap:.45rem;border:1px dashed var(--border-color);border-radius:.5rem;color:var(--text-secondary);font-size:.9rem;font-weight:500}.lyrics-modal-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.lyrics-modal-body{margin:0;padding:1rem;overflow:auto;color:var(--text-primary);font:inherit;font-size:.95rem;line-height:1.65;white-space:pre-wrap;background:#f8fafc}.reference-player{display:grid;gap:.75rem;padding:.9rem;border:1px solid var(--border-color);border-radius:.75rem;background:#f8fafc;margin-bottom:1rem}.reference-player-header{display:flex;flex-wrap:wrap;gap:.5rem .6rem;align-items:center;min-width:0}.reference-player-title-row{display:contents}.reference-player-header{position:relative}.reference-player-header>.reference-audio-source-row{position:static;order:2;flex:0 0 auto;min-width:0;padding-right:0}.reference-inline-controls{order:3;display:inline-flex;flex:0 0 auto;align-items:center;gap:.3rem}.reference-inline-controls .icon-only-button{width:28px;height:28px;border-radius:.4rem}.reference-inline-controls .icon-only-button svg{width:14px;height:14px}.reference-inline-controls .playback-seek-controls{gap:.25rem}.reference-player-header strong{color:var(--text-primary);font-size:.95rem}.reference-player-header span{color:var(--text-secondary);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reference-audio-source-row{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-start;gap:.35rem;min-width:0;height:36px;white-space:nowrap}.reference-audio-source{display:flex;flex:0 0 auto;align-items:center;gap:.4rem;min-width:0}.reference-audio-source span{flex:0 0 auto;color:var(--text-secondary);font-size:.78rem;font-weight:700}.reference-audio-source select{flex:0 0 112px;width:112px;min-width:0;max-width:112px;border:1px solid var(--border-color);border-radius:.4rem;background:#fff;color:var(--text-primary);font:inherit;font-size:.82rem;height:28px!important;min-height:28px;max-height:28px;line-height:1.1;padding:0 .55rem;box-sizing:border-box}.reference-audio-download{position:static;flex:0 0 26px;text-decoration:none;white-space:nowrap;min-width:26px;width:26px;height:26px!important;min-height:26px;max-height:26px;padding:0;border-radius:.4rem;justify-content:center;box-sizing:border-box}.reference-audio-download[aria-disabled=true]{opacity:.45;pointer-events:none}.reference-audio-download svg{width:14px;height:14px;flex:0 0 14px}.playback-clock{flex:0 0 auto;padding:.25rem .5rem;border:1px solid var(--border-color);border-radius:999px;background:#fff;color:var(--text-primary)!important;font-weight:700;font-variant-numeric:tabular-nums;position:absolute;top:auto!important;right:.55rem;bottom:.55rem!important;z-index:2}.reference-player-timeline{display:grid;gap:.35rem}.playback-seek-controls{display:inline-flex;flex:0 0 auto;align-items:center;gap:.2rem;padding:.15rem;border:1px solid var(--border-color);border-radius:.5rem;background:#fff;height:32px;box-sizing:border-box}.playback-seek-controls .icon-only-button{flex:0 0 26px;width:26px;height:26px;border:none;box-sizing:border-box}.playback-play-button.is-playing,.playback-play-button{color:#fff;border-color:#111827;background:#111827}.playback-play-button:hover:not(:disabled){color:#fff;border-color:#000;background:#000}.playback-track-wrap{position:relative;min-width:0;min-height:34px;display:flex;align-items:center}.playback-range{width:100%;accent-color:var(--primary-color)}.playback-markers{position:absolute;left:6px;right:6px;bottom:0;height:12px;pointer-events:none}.beat-info-badge{display:inline-flex;flex:0 0 auto;align-items:center;gap:.3rem;border:1px solid #93c5fd;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:.8rem;font-weight:700;line-height:1;padding:.35rem .8rem;white-space:nowrap}.structure-timeline{display:grid;min-width:0;gap:.3rem}.structure-timeline-track{position:relative;height:18px;border:1px solid #e2e8f0;border-radius:999px;overflow:hidden;background:#f8fafc}.structure-timeline-caption{position:absolute;left:.55rem;top:50%;z-index:2;transform:translateY(-50%);color:#0f172a94;font-size:.68rem;font-weight:800;letter-spacing:0;pointer-events:none}.structure-timeline-scale{position:absolute;left:6px;right:6px;top:0;bottom:0}.structure-timeline-segment{position:absolute;top:0;height:100%;padding:0;border:0;border-left:1px solid rgba(15,23,42,.16);border-right:1px solid rgba(255,255,255,.7);opacity:1;cursor:pointer}.structure-timeline-segment:hover{filter:brightness(.95) saturate(1.18)}.structure-timeline-segment.is-boundary{background-image:repeating-linear-gradient(90deg,#ffffff6b 0,#ffffff6b 2px,#fff0 2px,#fff0 5px)}.structure-timeline-segment.is-shadow-candidate{z-index:3;border:1px dashed #713f12;background-image:repeating-linear-gradient(135deg,#ffffff2e 0,#ffffff2e 4px,#78350f33 4px,#78350f33 8px)}.structure-timeline-legend{display:flex;flex-wrap:wrap;gap:.35rem .55rem;padding:0 .2rem}.structure-legend-item{display:inline-flex;align-items:center;gap:.25rem;color:var(--text-secondary);font-size:.72rem;font-weight:700;line-height:1}.structure-legend-swatch{width:.65rem;height:.65rem;border:1px solid rgba(15,23,42,.12);border-radius:999px;flex:0 0 auto}.chord-timeline{display:grid;min-width:0;gap:.3rem}.chord-timeline-track{position:relative;height:28px;overflow:hidden;border:1px solid #e2e8f0;border-radius:.5rem;background:#f8fafc}.chord-timeline-caption{position:absolute;z-index:2;top:50%;left:.55rem;color:#0f172a9e;font-size:.7rem;font-weight:800;transform:translateY(-50%);pointer-events:none}.chord-timeline-scale{position:absolute;top:0;right:6px;bottom:0;left:6px}.chord-timeline-segment{position:absolute;top:0;height:100%;overflow:hidden;padding:0 .2rem;border:0;border-left:1px solid rgba(15,23,42,.14);color:#334155;font:inherit;font-size:.66rem;font-weight:800;white-space:nowrap;cursor:pointer}.chord-timeline-segment:hover,.chord-timeline-segment:focus-visible{z-index:3;filter:brightness(.96) saturate(1.15);outline:2px solid #2563eb;outline-offset:-2px}.chord-timeline-meta,.chord-timeline-legend,.chord-hover-readout{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .6rem;padding:0 .2rem;color:var(--text-secondary);font-size:.72rem;font-weight:700}.chord-timeline-meta{justify-content:space-between}.chord-hover-readout{color:var(--text-primary)}.chord-hover-swatch,.chord-legend-swatch{width:.7rem;height:.7rem;flex:0 0 auto;border:1px solid rgba(15,23,42,.12);border-radius:999px}.chord-legend-item{display:inline-flex;align-items:center;gap:.25rem}.reference-player-stage{display:grid;grid-template-columns:minmax(0,.4fr) minmax(0,.6fr);gap:1rem;align-items:start}.reference-waveform-panel{min-width:0;padding:0;border:0;background:transparent}.reference-waveform-frame{position:relative;min-width:0}.playback-lyrics-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.reference-stage-label{display:block;color:var(--text-secondary);font-size:.76rem;font-weight:800}.reference-waveform-panel-metrics{position:absolute;z-index:2;top:.55rem;right:.55rem;left:.55rem;display:flex;min-width:0;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:.4rem;pointer-events:none}.waveform-mode-toggle{display:inline-flex;pointer-events:auto;padding:.12rem;border:1px solid #cbd5e1;border-radius:999px;background:#fffffff0}.waveform-mode-toggle button{width:1.65rem;height:1.65rem;border:0;border-radius:999px;padding:0;color:var(--text-secondary);background:transparent;font-size:.78rem;font-weight:900;line-height:1;cursor:pointer}.waveform-mode-toggle button.active{color:#1d4ed8;background:#dbeafe}.reference-waveform-panel .reference-waveform{height:180px;display:block}.waveform-bpm-badge{padding:.26rem .55rem;background:#eff6fff0}.playback-lyrics-panel{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:180px;gap:.45rem;padding:.65rem;border:1px solid var(--border-color);border-radius:.6rem;background:#fff}.playback-lyrics-header>div{display:grid;gap:.16rem;min-width:0}.playback-lyrics-header strong{color:var(--text-primary);font-size:1rem}.playback-lyrics-status{flex:0 0 auto;padding:.3rem .55rem;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#64748b;font-size:.72rem;font-weight:800}.playback-lyrics-status.is-playing{border-color:#86efac;background:#f0fdf4;color:#15803d}.playback-lyrics-lines{display:grid;grid-auto-rows:auto;gap:.25rem;min-height:0;align-content:center}.playback-lyric-line{width:100%;min-width:0;border:0;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}.playback-lyric-line.is-context{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:.45rem;align-items:center;padding:.25rem .45rem;border-radius:.4rem;background:transparent;color:#94a3b8;font-size:.76rem}.playback-lyric-line.is-context span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playback-lyric-line.is-context:hover{background:#f8fafc;color:#475569}.playback-lyric-line.is-placeholder{display:none}.playback-lyric-line.is-current{display:grid;align-content:center;gap:.35rem;padding:.55rem .7rem;border-left:4px solid var(--primary-color);border-radius:.5rem;background:#fff7ed}.playback-lyric-meta{display:flex;min-width:0;align-items:center;flex-wrap:wrap;gap:.4rem;color:#9a3412;font-size:.76rem;font-weight:800}.playback-lyric-time{font-variant-numeric:tabular-nums}.playback-lyric-current-main{overflow-wrap:anywhere;color:var(--text-primary);font-size:1.02rem;line-height:1.35}.playback-lyric-current-pronunciation,.playback-lyric-current-translation{display:block;overflow-wrap:anywhere;line-height:1.3}.playback-lyric-current-pronunciation{color:#2563eb;font-size:.88rem;font-weight:750}.playback-lyric-current-translation{color:#64748b;font-size:.84rem;font-weight:650}.playback-chord-sequence{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.25rem}.playback-chord-badge{min-width:1.6rem;padding:.12rem .3rem;border:1px solid;border-radius:.3rem;color:#334155;font-size:.68rem;font-weight:900;text-align:center}.playback-lyric-confidence{padding:.12rem .35rem;border-radius:999px;background:#ffedd5}.playback-lyric-confidence.needs-review{background:#fee2e2;color:#b91c1c}.playback-lyrics-empty{display:grid;place-content:center;gap:.25rem;min-height:4.5rem;padding:.55rem;border:1px dashed #cbd5e1;border-radius:.5rem;color:var(--text-secondary);text-align:center}.playback-lyrics-empty strong{color:var(--text-primary)}.playback-lyrics-empty span{font-size:.8rem}.playback-beat-markers{position:absolute;left:6px;right:6px;top:-3px;height:8px;pointer-events:none}.playback-beat-marker{position:absolute;top:50%;width:3px;height:3px;border-radius:999px;background:#93c5fd;transform:translate(-50%,-50%)}.playback-beat-marker.is-downbeat{width:6px;height:6px;background:#2563eb}.playback-bar-group-lines{position:absolute;left:6px;right:6px;top:-7px;bottom:-3px;pointer-events:none}.playback-bar-group-line{position:absolute;top:0;bottom:0;width:2px;border-radius:1px;background:#2563eb47;transform:translate(-50%)}.playback-marker{position:absolute;top:50%;width:10px;height:10px;padding:0;border:2px solid white;border-radius:999px;background:var(--primary-color);box-shadow:0 0 0 1px #c2410c73;transform:translate(-50%,-50%);cursor:pointer;pointer-events:auto}.playback-marker:hover{background:#ea580c;transform:translate(-50%,-50%) scale(1.18)}.reference-waveform{width:100%;height:74px;border:1px solid var(--border-color);border-radius:.6rem;background:#f8fafc}.reference-audio-warning{padding:.6rem .75rem;border:1px solid #fed7aa;border-radius:.5rem;background:#fff7ed;color:#9a3412;font-size:.85rem;line-height:1.4}.danger-button{padding:.6rem .9rem;border:1px solid #fecaca;border-radius:.5rem;background:#fff1f2;color:#be123c;font-weight:700;cursor:pointer}.danger-button:hover:not(:disabled){background:#ffe4e6}.danger-button:disabled{opacity:.6;cursor:not-allowed}.lyrics-textarea{width:100%;resize:vertical;padding:.75rem;font-size:.95rem;line-height:1.5;font-family:inherit}.lyrics-editor-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:.4rem 0 .55rem;max-width:100%;overflow:visible}.lyrics-editor-actions .secondary-button,.lyrics-editor-actions .upload-submit-button{box-sizing:border-box;flex:0 0 auto;max-width:100%;height:38px;min-height:38px;margin-top:0;margin-right:0;padding:0 .72rem;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-size:.9rem;line-height:1}.lyrics-editor-actions .icon-button{gap:.3rem}.lyrics-editor-actions svg{width:16px;height:16px}.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.lyric-review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:.75rem 0;padding:.55rem .65rem;border:1px solid #fed7aa;border-radius:.65rem;background:#fffaf5}.lyric-review-summary{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;color:var(--text-secondary);font-size:.82rem;font-weight:800}.lyric-review-summary strong{color:#c2410c}.lyric-review-summary span{display:inline-flex;align-items:center;padding:.14rem .42rem;border:1px solid #fed7aa;border-radius:999px;background:#fff;white-space:nowrap}.lyric-review-summary .lyric-engine-badge{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8;font-weight:800}.lyric-display-toggle{flex:0 0 auto;display:inline-flex;padding:.18rem;border:1px solid var(--border-color);border-radius:999px;background:#fff}.lyric-review-toolbar-actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:.45rem}.review-legend-button{min-height:30px;padding:0 .7rem;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#475569;font-size:.78rem;font-weight:800;cursor:pointer}.review-legend-button:hover{border-color:#94a3b8;background:#f8fafc}.lyric-display-toggle button{min-height:30px;padding:0 .65rem;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);font-size:.78rem;font-weight:800;cursor:pointer}.lyric-display-toggle button.active{background:var(--primary-color);color:#fff}.lyric-table{border:1px solid var(--border-color);border-radius:.75rem;overflow:hidden;background:#fff}.lyric-table-head,.lyric-row{display:grid;grid-template-columns:42px 88px 110px minmax(0,1fr) 44px;gap:.5rem;align-items:center}.lyric-table-head{padding:.55rem .75rem;background:var(--bg-secondary);color:var(--text-secondary);font-size:.8rem;font-weight:700}.lyric-table-body{max-height:clamp(260px,42vh,560px);overflow-y:auto;overscroll-behavior:contain}.lyric-row{padding:.55rem .75rem;border-top:1px solid var(--border-color);border-left:4px solid transparent;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.lyric-row.is-playable{cursor:pointer}.lyric-row.is-playable:hover{box-shadow:inset 0 0 0 1px #93c5fd}.lyric-row.is-stamped{background:#f0fdf4;border-left-color:#22c55e}.lyric-row.is-pending{background:#f8fafc}.lyric-row.is-next-target{background:#fff7ed;border-left-color:#fb923c}.lyric-row.is-low-confidence,.lyric-row.is-needs-review{background:#fffbeb;border-left-color:#f59e0b}.line-number{color:var(--text-secondary);font-weight:700;font-size:.85rem}.lyric-row.is-stamped .line-number{color:#15803d}.lyric-row.is-needs-review .line-number{color:#b45309}.lyric-row.is-pending .line-number{color:#94a3b8}.time-input,.lyric-line-input{width:100%;min-width:0;padding:.55rem .65rem;font-size:.95rem}.lyric-line-cell{min-width:0;display:grid;gap:.35rem}.lyric-english-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.lyric-english-fields label{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:.35rem;color:#64748b;font-size:.72rem;font-weight:800}.lyric-english-input{width:100%;min-width:0;padding:.42rem .55rem;border:1px solid #cbd5e1;border-radius:.45rem;background:#f8fafc;font-size:.83rem}.lyric-english-input.pronunciation{color:#1d4ed8}.lyric-english-input.translation{color:#475569}.lyric-english-complete{color:#15803d;font-weight:800}.auto-map-row-meta{display:flex;flex-wrap:wrap;gap:.35rem .65rem;color:#64748b;font-size:.78rem;line-height:1.25}.auto-map-row-meta span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auto-map-row-meta .score-badge{display:inline-flex;align-items:center;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#334155;font-size:.72rem;font-weight:800;line-height:1;padding:.24rem .5rem;white-space:nowrap}.auto-map-row-meta .score-badge-qa{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.auto-map-row-meta .score-badge-confidence{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.auto-map-row-meta .score-badge-source.source-projection{border-color:#ddd6fe;background:#f5f3ff;color:#6d28d9}.auto-map-row-meta .score-badge-source.source-asr{border-color:#a5f3fc;background:#ecfeff;color:#0e7490}.auto-map-row-meta .score-badge-source.source-vad{border-color:#fde68a;background:#fffbeb;color:#a16207}.auto-map-row-meta .score-badge-source.source-fallback{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.auto-map-row-meta .score-badge-source.source-other{border-color:#cbd5e1;background:#f8fafc;color:#475569}.review-legend-modal{width:min(600px,100%);grid-template-rows:auto minmax(0,1fr)}.review-legend-list{display:grid;gap:.75rem;padding:1rem;overflow:auto}.review-legend-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;padding:.7rem;border:1px solid #e2e8f0;border-radius:.55rem;background:#f8fafc}.review-legend-item .score-badge{display:inline-flex;align-items:center;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#334155;font-size:.72rem;font-weight:800;line-height:1;padding:.24rem .5rem;white-space:nowrap}.review-legend-item .score-badge-qa{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.review-legend-item .score-badge-confidence{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.review-legend-item .source-projection{border-color:#ddd6fe;background:#f5f3ff;color:#6d28d9}.review-legend-item .source-asr{border-color:#a5f3fc;background:#ecfeff;color:#0e7490}.review-legend-item .source-vad{border-color:#fde68a;background:#fffbeb;color:#a16207}.review-legend-item .source-fallback{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.review-legend-item p{margin:0;color:#475569;font-size:.84rem;line-height:1.45}.auto-map-row-meta .score-badge.is-low{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.auto-map-row-meta .needs-review{color:#b45309;font-weight:800}.auto-map-row-meta .line-break-suggestion{display:inline-flex;align-items:center;gap:.45rem;color:#1d4ed8;font-weight:700;white-space:normal}.auto-map-row-meta .line-break-suggestion button{border:1px solid #1d4ed8;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:.72rem;font-weight:700;padding:.1rem .55rem;cursor:pointer}.auto-map-row-meta .line-break-suggestion button:hover{background:#dbeafe}.lyric-row.is-pending .time-input,.lyric-row.is-pending .lyric-line-input{background:#f1f5f9;color:#64748b}.time-input.is-empty{text-align:center;color:#94a3b8;cursor:default}.row-review-controls{display:flex;align-items:center;gap:6px}.review-approve-icon-button{width:38px;height:38px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;transition:transform .12s ease,background-color .15s ease,border-color .15s ease}.review-approve-icon-button:hover:not(:disabled),.restamp-time-button:hover{transform:translateY(-1px)}.review-approve-icon-button.is-reviewed{border:1px solid #16a34a;background:#22c55e;color:#fff;box-shadow:0 6px 14px #22c55e2e}.review-approve-icon-button.is-needs-review{border-color:#f59e0b;background:#f59e0b;color:#fff7ed;box-shadow:0 6px 14px #f59e0b33}.review-approve-icon-button.is-unreviewed{border:1px solid #cbd5e1;background:#fff;color:#64748b}.review-approve-icon-button.is-disabled{opacity:.4;cursor:not-allowed}.restamp-time-button{width:34px;height:34px;border:1px solid #fdba74;border-radius:10px;background:#fff7ed;color:#c2410c;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s ease,background-color .15s ease,border-color .15s ease}.restamp-time-button.is-next-target{border-color:#fb923c;background:#ffedd5;color:#f97316}.asr-debug-panel{margin:.75rem 0;border:1px solid #dbeafe;border-radius:.75rem;background:#eff6ff;overflow:hidden}.asr-debug-header{padding:.75rem;display:flex;justify-content:space-between;align-items:center;gap:.75rem;border-bottom:1px solid #dbeafe}.asr-debug-header>div{display:grid;gap:.15rem}.asr-debug-header strong{color:#1e3a8a}.asr-debug-header span{color:#475569;font-size:.84rem}.asr-transcript-preview{display:grid;gap:.5rem;padding:.75rem;border-bottom:1px solid #dbeafe;background:#f8fafc}.asr-transcript-preview strong{color:#1e3a8a;font-size:.86rem}.asr-transcript-preview pre{max-height:180px;margin:0;padding:.75rem;overflow:auto;border:1px solid #dbeafe;border-radius:.5rem;color:#0f172a;background:#fff;font:inherit;font-size:.86rem;line-height:1.55;white-space:pre-wrap}.asr-comparison-scroll{max-height:420px;overflow:auto;background:#fff}.asr-comparison-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;table-layout:fixed}.asr-comparison-table th,.asr-comparison-table td{border-top:1px solid #e0e7ff;border-right:1px solid #e0e7ff;padding:.55rem .65rem;vertical-align:top}.asr-comparison-table th{position:sticky;top:0;z-index:2;background:#f8fafc;color:#475569;font-size:.78rem;font-weight:800;text-align:left}.asr-comparison-table th:first-child,.asr-comparison-time-cell{position:sticky;left:0;z-index:1;width:132px;background:#fff}.asr-comparison-table th:first-child{z-index:3;background:#f8fafc}.asr-comparison-transcript-cell{min-width:0;color:#0f172a}.asr-comparison-segment{display:grid;gap:.35rem}.asr-comparison-segment+.asr-comparison-segment{margin-top:.65rem;padding-top:.65rem;border-top:1px dashed #cbd5e1}.asr-comparison-time-button,.asr-comparison-text-button{border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}.asr-comparison-time-button{padding:0;color:#2563eb;font-size:.8rem;font-weight:800;white-space:nowrap}.asr-comparison-window-label{display:block;margin-top:.22rem;color:#64748b;font-size:.68rem;font-weight:800;line-height:1.2}.asr-comparison-text-button{width:100%;min-width:0;padding:0;color:#0f172a;line-height:1.4;overflow-wrap:anywhere}.asr-comparison-time-button:hover,.asr-comparison-text-button:hover{color:#1d4ed8;text-decoration:underline}.asr-comparison-badges{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}.asr-comparison-badge{min-height:20px;display:inline-flex;align-items:center;border:1px solid #dbeafe;border-radius:999px;padding:.1rem .42rem;background:#f8fafc;color:#64748b;font-size:.68rem;font-weight:800;line-height:1;white-space:nowrap}.asr-comparison-badge.is-word{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.asr-comparison-badge.is-confidence{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.asr-comparison-badge.is-confidence.is-low-confidence{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.asr-comparison-table.is-word-grid .asr-comparison-transcript-cell{padding:.48rem .55rem}.asr-word-comparison-cell{display:grid;gap:.42rem}.asr-word-list{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.28rem;max-height:9rem;overflow:auto;padding-right:.12rem}.asr-word-chip{min-height:24px;max-width:100%;display:inline-flex;align-items:center;padding:.18rem .42rem;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;color:#1e3a8a;font:inherit;font-size:.76rem;font-weight:800;line-height:1.15;cursor:pointer}.asr-word-chip:hover{border-color:#93c5fd;background:#dbeafe}.asr-word-chip.is-low-confidence{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.asr-comparison-empty,.asr-comparison-empty-row{color:#94a3b8;font-size:.82rem}.asr-comparison-empty-row{text-align:center}.icon-only-button{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:.5rem;background:#fff;color:var(--text-secondary);cursor:pointer}.icon-only-button:disabled{opacity:.45;cursor:not-allowed}.icon-only-button:hover{color:var(--error-color);border-color:#fecaca;background:#fef2f2}.icon-only-button:disabled:hover{color:var(--text-secondary);border-color:var(--border-color);background:#fff}.editor-status{margin-top:.75rem;padding:.75rem;border-radius:.5rem;font-weight:600}.editor-status.ok{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.editor-status.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.editor-status-inline{flex:1 1 180px;min-width:0;max-width:560px;max-height:2.3em;margin:0 0 0 .15rem;padding:.22rem .45rem;overflow:hidden;border-radius:.35rem;font-size:.68rem;font-weight:600;line-height:1.15;overflow-wrap:anywhere}.empty-panel{min-height:240px;display:grid;place-items:center;color:var(--text-secondary)}@media (max-width: 1180px){.batch-active-workspace.has-selection{grid-template-columns:minmax(300px,1fr) minmax(280px,1fr)}.batch-active-workspace.has-selection .batch-capture-column{grid-column:1 / -1}.lyrics-editor-grid{grid-template-columns:minmax(310px,340px) minmax(0,1fr)}.audio-collection-grid{grid-template-columns:minmax(320px,380px) minmax(0,1fr)}.audio-collection-form{grid-template-columns:1fr}}@media (max-width: 860px){.app.app-workflow-mode{width:100%;max-width:100%;padding-left:1rem;padding-right:1rem}.upload-section.lyrics-editor-mode{width:100%;max-width:100%}.auto-register-form,.auto-register-candidate-grid,.auto-register-selection{grid-template-columns:1fr}.auto-register-single-toolbar{align-items:stretch;flex-direction:column}.auto-register-single-actions{justify-content:stretch}.auto-register-single-actions>button{flex:1 1 auto}.batch-active-workspace.has-selection{grid-template-columns:1fr}.batch-active-workspace.has-selection .batch-capture-column{grid-column:auto}.auto-register-search-row .upload-submit-button,.auto-register-record-row .upload-submit-button{min-width:0;width:100%}.lyrics-editor-header,.selected-song-header{flex-direction:column}.lyrics-header-actions{justify-content:flex-start;width:100%}.lyrics-stat-badges{justify-content:flex-start}.lyrics-editor-grid,.audio-collection-grid,.audio-collection-detail dl{grid-template-columns:1fr}.lyric-review-toolbar,.song-pagination{align-items:stretch;flex-direction:column}.reference-player-stage{grid-template-columns:1fr}.reference-player-title-row,.reference-inline-controls{flex-wrap:wrap}.reference-audio-source-row{width:100%;min-width:0;justify-content:flex-start;flex-wrap:wrap}.reference-audio-source{flex:1 1 220px}.reference-timeline-zoom{margin-left:.5rem}.reference-timeline-zoom input[type=range]{flex:1 1 72px;min-width:56px}.lyric-table-head,.lyric-row{grid-template-columns:32px 76px 84px minmax(0,1fr) 38px}.lyric-english-fields,.asr-debug-header,.asr-segment-main{grid-template-columns:1fr}.asr-debug-header{display:grid}}.mode-button:hover{border-color:var(--primary-color)}.mode-button.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.app.app-workflow-mode .mode-selector{align-items:flex-end;gap:.35rem;padding:0 .35rem;border-bottom:3px solid #cbd5e1;background:transparent}.app.app-workflow-mode .mode-button{position:relative;border-color:#cbd5e1;border-bottom:0;border-radius:.65rem .65rem 0 0;background:#f1f5f9;color:#475569;box-shadow:inset 0 -3px #64748b1f}.app.app-workflow-mode .mode-button:hover{border-color:#fb923c;background:#ffedd5;color:#c2410c}.app.app-workflow-mode .mode-button.active{border-color:#f97316;background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;box-shadow:inset 0 -3px #c2410c,0 -2px 5px #ea580c29}.error-message{margin-top:1rem;padding:1rem;background:#fef2f2;border:1px solid var(--error-color);border-radius:.5rem;color:var(--error-color);text-align:center}.app-footer{text-align:center;margin-top:3rem;padding-top:2rem;color:var(--text-secondary)}.app-footer p{margin-bottom:.5rem;font-size:.875rem}@media (max-width: 768px){.app,.app-main{padding:1rem}.logo h1{font-size:2rem}}.interlude-annotator{margin-top:1rem;padding:.9rem 1rem 1rem;border:1px solid #e2e5ec;border-radius:8px;background:#fbfcfe;display:flex;flex-direction:column;gap:.6rem}.interlude-annotator>header{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap}.interlude-annotator h4{margin:.15rem 0 0;font-size:.95rem;color:#18212f}.interlude-annotator h4 small{font-weight:500;color:#687386;font-size:.75rem}.interlude-annotator .section-kicker{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:#8b93a3;font-weight:700}.interlude-actions{display:flex;gap:.4rem;flex-wrap:wrap}.interlude-actions button{font:inherit;font-size:.75rem;padding:.35rem .7rem;border-radius:4px;border:1px solid #d5d9e2;background:#fff;color:#3c4657;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem}.interlude-actions button:hover:not(:disabled){border-color:#9aa3b5}.interlude-actions button:disabled{opacity:.5;cursor:default}.interlude-actions button.primary{background:#18212f;color:#fff;border-color:#18212f;font-weight:600}.interlude-hint{margin:0;font-size:.75rem;color:#687386}.interlude-empty{margin:0;font-size:.8rem;color:#8b93a3}.interlude-table{width:100%;border-collapse:collapse;font-size:.78rem}.interlude-table th{text-align:left;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:#8b93a3;padding:.3rem .4rem;border-bottom:1px solid #e2e5ec}.interlude-table td{padding:.3rem .4rem;border-bottom:1px solid #eef0f4}.interlude-table tr.is-invalid td{background:#fdf2f1}.interlude-table input{font:inherit;font-size:.78rem;width:5.6rem;padding:.2rem .35rem;border:1px solid #d5d9e2;border-radius:3px;font-variant-numeric:tabular-nums}.interlude-table input.interlude-note{width:100%;min-width:8rem}.interlude-table td button{font:inherit;font-size:.68rem;margin-left:.25rem;padding:.15rem .4rem;border:1px solid #d5d9e2;border-radius:3px;background:#fff;cursor:pointer}.interlude-duration{font-variant-numeric:tabular-nums;color:#687386}.interlude-remove{color:#a33b32;border-color:#e4c9c6!important}.interlude-error{margin:0;font-size:.78rem;color:#a33b32}.interlude-message{margin:0;font-size:.78rem;color:#2f7d63}.autoplay-toggle{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;color:#687386;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.autoplay-toggle input{cursor:pointer;margin:0}.autoplay-toggle:has(input:checked){color:#a33b32;font-weight:600}.playback-marker.is-draggable{cursor:grab}.playback-marker.is-draggable:hover{transform:translate(-50%,-50%) scale(1.35)}.playback-marker.is-dragging{cursor:grabbing;z-index:3;transform:translate(-50%,-50%) scale(1.5);box-shadow:0 0 0 3px #18212f59}.reference-timeline-zoom{order:4;display:flex;flex:1 1 auto;align-items:center;gap:.35rem;margin:0;min-width:0;font-size:.72rem;color:#687386}.reference-player-header>.reference-timeline-zoom span{flex:0 0 auto;overflow:visible;text-overflow:clip;font-size:.72rem;color:#687386;white-space:nowrap}.reference-timeline-zoom input[type=range]{flex:1 1 160px;min-width:56px;max-width:420px}.reference-timeline-zoom output{font-variant-numeric:tabular-nums;font-weight:600;color:#18212f;min-width:2.1rem}.reference-timeline-zoom .zoom-reset-button{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid #d5d9e2;border-radius:.4rem;background:#fff;color:#687386;cursor:pointer}.reference-timeline-zoom .zoom-reset-button:hover{color:#18212f;border-color:#b8bfcc}.reference-compact-extras{display:flex;flex:0 0 auto;align-items:center;gap:.45rem;margin-left:auto}.reference-waveform-mini{width:110px;height:24px;border:0;background:transparent}.reference-compact-clock{font-variant-numeric:tabular-nums;font-weight:600;color:#18212f;white-space:nowrap}.reference-player-timeline-viewport{overflow-x:auto;overflow-y:hidden;padding-top:14px;padding-bottom:12px;scrollbar-width:none}.reference-player-timeline-viewport::-webkit-scrollbar{display:none}.reference-player-timeline-viewport .structure-timeline-legend,.reference-player-timeline-viewport .chord-timeline-legend,.reference-player-timeline-viewport .chord-timeline-meta{position:sticky;left:0;width:fit-content;max-width:100%}.playback-marker-tip{position:absolute;bottom:calc(100% + 8px);transform:translate(-50%);background:#18212f;color:#fff;font-size:.68rem;font-weight:600;padding:.2rem .45rem;border-radius:3px;white-space:nowrap;pointer-events:none;z-index:5;font-variant-numeric:tabular-nums}.playback-marker-tip em{font-style:normal;font-weight:400;opacity:.7}.playback-marker.is-dragging{background:#18212f;border-color:#fff}.word-chip-toggle{display:inline-flex;align-items:center;gap:.3rem;font-size:.74rem;color:#687386;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.word-chip-toggle input{cursor:pointer;margin:0}.word-chip-toggle:has(input:checked){color:#18212f;font-weight:600}.word-chip-strip{position:relative;height:44px;margin-top:.35rem;border:1px solid #e2e5ec;border-radius:4px;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 1px),#eef0f4 calc(10% - 1px) 10%)}.word-chip{position:absolute;padding:0 .3rem;border:1px solid #b8c0d0;border-radius:3px;background:#eef3fb;color:#24314a;font-size:.68rem;line-height:1;display:inline-flex;align-items:center;overflow:hidden;cursor:grab;white-space:nowrap}.word-chip span{overflow:hidden;text-overflow:ellipsis}.word-chip:hover{z-index:2;background:#dfe9fa}.word-chip.is-interpolated{border-style:dashed;background:#faf6ec;color:#6b5d33}.word-chip.is-reviewed{border-color:#2f7d63;background:#e8f4ef;color:#1d5a46}.word-chip.is-dragging{cursor:grabbing;z-index:3;box-shadow:0 0 0 2px #18212f59}.golden-set-page{display:flex;flex-direction:column;gap:1.1rem}.golden-set-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.golden-set-header h2{margin:0 0 .25rem;font-size:1.25rem;color:var(--text-primary, #1f2937)}.golden-set-suite{font-size:.78rem;font-weight:600;color:var(--primary-color);background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;padding:.15rem .6rem;margin-left:.5rem;vertical-align:middle}.golden-set-header p{margin:0;font-size:.82rem;color:#6b7280;max-width:64ch}.golden-set-header .secondary-button{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}.golden-set-grid{display:grid;grid-template-columns:250px minmax(0,1fr);gap:1.1rem;align-items:start}.golden-song-list{display:flex;flex-direction:column;gap:.45rem;max-height:76vh;overflow-y:auto;padding-right:.2rem}.golden-song{font:inherit;text-align:left;padding:.55rem .7rem;border:1.5px solid #f3d9c3;border-radius:10px;background:#fff;cursor:pointer;display:flex;flex-direction:column;gap:.12rem;transition:border-color .15s,box-shadow .15s}.golden-song:hover{border-color:var(--primary-color)}.golden-song.is-active{border-color:var(--primary-color);box-shadow:0 0 0 2px #f973162e;background:#fff7ed}.golden-song-title{font-size:.84rem;font-weight:700;color:#1f2937}.golden-song-artist{font-size:.7rem;color:#9ca3af}.golden-song-badges{display:flex;gap:.3rem;margin-top:.22rem}.golden-song-badges em{font-style:normal;font-size:.63rem;font-weight:600;padding:.1rem .45rem;border-radius:999px;background:#f3f4f6;color:#6b7280}.golden-song-badges em.partial{background:#fef3c7;color:#92400e}.golden-song-badges em.done{background:#dcfce7;color:#166534}.golden-work{display:flex;flex-direction:column;gap:.9rem;min-width:0}.golden-label-bar{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap}.golden-label-kinds{display:flex;gap:.4rem}.golden-label-kinds button{font:inherit;font-size:.8rem;font-weight:600;padding:.42rem 1rem;border-radius:999px;border:1.5px solid #e5e7eb;background:#fff;color:#6b7280;cursor:pointer;transition:.15s}.golden-label-kinds button:hover{border-color:var(--primary-color);color:var(--primary-color)}.golden-label-kinds button.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.primary-button{padding:.45rem .95rem;border:0;border-radius:.5rem;background:var(--primary-color);color:#fff;font-weight:600;font-size:.8rem;cursor:pointer}.primary-button:hover:not(:disabled){background:var(--secondary-color)}.golden-save{white-space:nowrap}.golden-save:disabled{opacity:.45;cursor:default}.golden-lines{display:flex;flex-direction:column;gap:.55rem;max-height:56vh;overflow-y:auto;padding-right:.3rem}.golden-line{padding:.45rem .6rem;border:1px solid #f0f1f4;border-radius:8px;background:#fff;display:flex;flex-direction:column;gap:.3rem}.golden-line.is-current{border-color:var(--primary-color);background:#fffbf7}.golden-line-head{display:flex;align-items:baseline;gap:.55rem}.golden-line-time{font:inherit;font-size:.74rem;font-weight:600;font-variant-numeric:tabular-nums;border:0;background:none;color:var(--primary-color);cursor:pointer;padding:0;white-space:nowrap}.golden-line-text{font-size:.86rem;color:#1f2937}.golden-empty{font-size:.8rem;color:#9ca3af;margin:0}.golden-error{margin:0;font-size:.78rem;color:#b91c1c}.golden-message{margin:0;font-size:.78rem;color:#15803d}@media (max-width: 1100px){.golden-set-grid{grid-template-columns:1fr}.golden-song-list{max-height:30vh}}.golden-word-actions{display:flex;gap:.5rem;align-items:center}.upload-section.golden-set-mode{max-width:none}.golden-player-wrap{width:100%}.golden-kind-row{margin-top:-.3rem}.golden-line-tools{display:inline-flex;gap:.25rem;margin-left:.5rem}.golden-line-tools button{font:inherit;font-size:.66rem;font-variant-numeric:tabular-nums;padding:.14rem .45rem;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#6b7280;cursor:pointer}.golden-line-tools button:hover{border-color:var(--primary-color);color:var(--primary-color)}.golden-line-tools .golden-stamp{display:inline-flex;align-items:center;justify-content:center;padding:.14rem .5rem;border-color:var(--primary-color);color:var(--primary-color);font-weight:700}.golden-line-tools .golden-stamp:hover{background:var(--primary-color);color:#fff}.golden-line-done{font-size:.66rem;font-weight:600;padding:.14rem .5rem;border-radius:999px;border:1px solid #bbdecf;background:#e8f4ef;color:#1d5a46;white-space:nowrap}body{margin:0;font-family:에이투지체,AtoZ,AtoZ체,A To Z,Apple SD Gothic Neo,Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}
