fffiloni's picture
Upload 8 files
6fe7e6d verified
Raw
History Blame Contribute Delete
41.5 kB
:root {
color-scheme: dark;
--ui-bg: #0b0d0e;
--ui-surface: #121517;
--ui-surface-2: #171b1e;
--ui-surface-3: #1b2023;
--ui-line: rgba(218, 233, 229, .1);
--ui-line-strong: rgba(218, 233, 229, .19);
--ui-text: #eef4f1;
--ui-soft: #b1bcb8;
--ui-muted: #727e7a;
--ui-accent: #45d1b5;
--ui-accent-dark: #168f7d;
--ui-warm: #eead68;
--ui-danger: #fb7185;
--ui-font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
--ui-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}
:host {
display: block;
min-height: 100vh;
overflow-x: hidden;
color-scheme: dark;
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
background:
linear-gradient(115deg, rgba(69,209,181,.045) 0 1px, transparent 1px 100%),
linear-gradient(180deg, #101315 0%, #0b0d0e 34%, #090b0c 100%);
background-size: 56px 56px, auto;
}
html, body { min-height: 100%; overflow-x: hidden; background: var(--ui-bg) !important; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; color: var(--ui-text); font-family: var(--ui-font); -webkit-font-smoothing: antialiased; }
.gradio-container, .gradio-container.dark { min-height: 100vh !important; max-width: none !important; overflow-x: hidden !important; margin: 0 !important; padding: 0 !important; color: var(--ui-text) !important; background: transparent !important; font-family: var(--ui-font) !important; }
.gradio-container .prose, .gradio-container .prose * { color: inherit; }
.gradio-container footer { display: none !important; }
#app-shell { width: min(1360px, calc(100% - 44px)); min-width: 0; margin: 0 auto; padding: 22px 0 48px; gap: 14px; }
#masthead, #intro { padding: 0 !important; border: 0 !important; background: transparent !important; }
.workbench-nav { display: flex; align-items: center; justify-content: space-between; min-height: 48px; gap: 20px; padding: 0 2px 11px; border-bottom: 1px solid var(--ui-line); }
.wordmark { display: inline-flex; align-items: center; gap: 11px; color: var(--ui-text) !important; text-decoration: none; }
.wordmark-glyph { display: flex; width: 35px; height: 35px; align-items: center; justify-content: center; gap: 2px; border: 1px solid rgba(69,209,181,.3); border-radius: 8px; background: #101a18; box-shadow: inset 0 0 0 5px rgba(69,209,181,.035); }
.wordmark-glyph i { display: block; width: 2px; border-radius: 2px; background: var(--ui-accent); box-shadow: 0 0 7px rgba(69,209,181,.22); }
.wordmark-glyph i:nth-child(1) { height: 8px; opacity: .65; }
.wordmark-glyph i:nth-child(2) { height: 17px; }
.wordmark-glyph i:nth-child(3) { height: 12px; opacity: .82; }
.wordmark-glyph i:nth-child(4) { height: 20px; }
.wordmark strong, .wordmark small { display: block; }
.wordmark strong { font-size: .92rem; font-weight: 670; letter-spacing: -.02em; }
.wordmark small { margin-top: 2px; color: var(--ui-muted); font: .53rem var(--ui-mono); letter-spacing: .045em; text-transform: uppercase; }
.runtime-status { display: flex; align-items: center; gap: 6px; }
.runtime-status span { display: inline-flex; align-items: center; min-height: 28px; gap: 7px; padding: 0 9px; border: 1px solid var(--ui-line); border-radius: 6px; color: var(--ui-muted); background: rgba(255,255,255,.018); font: 590 .56rem var(--ui-mono); letter-spacing: .025em; text-transform: uppercase; }
.runtime-status .model-status { border-color: rgba(69,209,181,.24); color: var(--ui-soft); background: rgba(69,209,181,.035); }
.runtime-status i { width: 6px; height: 6px; border-radius: 50%; background: var(--ui-accent); box-shadow: 0 0 10px rgba(69,209,181,.65); }
.runtime-status .gpu-status::before { color: var(--ui-soft); content: "◇"; font-size: .65rem; }
.workbench-intro { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(390px,.75fr); align-items: end; gap: clamp(32px,5vw,82px); padding: clamp(28px,4vw,46px) 2px clamp(24px,3.3vw,38px); }
.intro-statement { max-width: 790px; }
.overline { display: inline-block; margin-bottom: 11px; color: var(--ui-accent); font: 620 .58rem var(--ui-mono); letter-spacing: .1em; text-transform: uppercase; }
.intro-statement h1 { margin: 0; color: var(--ui-text); font-size: clamp(2.25rem,4.8vw,4.25rem); font-weight: 575; letter-spacing: -.058em; line-height: .96; }
.intro-statement h1 em { color: #8ee5d3; font-style: normal; }
.intro-statement p { max-width: 700px; margin: 14px 0 0; color: var(--ui-soft); font-size: clamp(.84rem,1.25vw,.98rem); line-height: 1.58; }
.project-references { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); overflow: hidden; border-top: 1px solid var(--ui-line-strong); border-bottom: 1px solid var(--ui-line); }
.project-references a { position: relative; display: block; min-width: 0; padding: 12px 31px 12px 12px; color: var(--ui-text) !important; text-decoration: none; transition: background 140ms ease; }
.project-references a + a { border-left: 1px solid var(--ui-line); }
.project-references span, .project-references strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-references span { margin-bottom: 5px; color: var(--ui-muted); font: 590 .51rem var(--ui-mono); letter-spacing: .065em; text-transform: uppercase; }
.project-references strong { font: 620 .68rem var(--ui-mono); }
.project-references i { position: absolute; top: 50%; right: 12px; color: #697570; font: normal .72rem var(--ui-mono); transform: translateY(-50%); transition: color 140ms ease, transform 140ms ease; }
.project-references a:hover { background: rgba(69,209,181,.045); }
.project-references a:hover i { color: var(--ui-accent); transform: translate(1px,calc(-50% - 1px)); }
.project-references a:focus-visible { z-index: 1; outline: 2px solid rgba(69,209,181,.72); outline-offset: -2px; background: rgba(69,209,181,.055); }
#input-workbench, #transcription-panel { position: relative; min-width: 0; padding: clamp(16px,1.9vw,23px) !important; border: 1px solid var(--ui-line) !important; background: rgba(18,21,23,.94) !important; box-shadow: 0 20px 58px rgba(0,0,0,.19) !important; }
#input-workbench { border-radius: 14px !important; }
#transcription-panel { border-radius: 14px !important; }
.panel-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 0 1px 13px; border-bottom: 1px solid var(--ui-line); }
.panel-heading span { display: block; margin-bottom: 5px; color: var(--ui-accent); font: 620 .57rem var(--ui-mono); letter-spacing: .1em; text-transform: uppercase; }
.studio-heading span { color: var(--ui-warm); }
.panel-heading h2 { margin: 0; color: var(--ui-text); font-size: 1.02rem; font-weight: 625; letter-spacing: -.025em; }
.panel-heading p { max-width: 440px; margin: 0; color: var(--ui-muted); font-size: .68rem; line-height: 1.45; text-align: right; }
#source-panel, #decode-panel, #notation-panel { min-width: 0; padding: 14px !important; border: 1px solid var(--ui-line) !important; border-radius: 9px !important; background: rgba(7,10,10,.32) !important; box-shadow: none !important; }
#decode-panel, #notation-panel {
--block-background-fill: rgba(255,255,255,.014);
--block-border-color: var(--ui-line);
--input-background-fill: rgba(255,255,255,.025);
--input-background-fill-focus: rgba(255,255,255,.045);
--input-border-color: var(--ui-line);
--input-border-color-focus: rgba(218,233,229,.28);
--panel-background-fill: transparent;
--checkbox-background-color: #0c1110;
--checkbox-background-color-hover: #15201d;
--checkbox-background-color-focus: #101916;
--checkbox-background-color-selected: var(--ui-accent);
--checkbox-border-color: rgba(218,233,229,.25);
--checkbox-border-color-hover: rgba(69,209,181,.72);
--checkbox-border-color-focus: var(--ui-accent);
--checkbox-border-color-selected: var(--ui-accent);
--checkbox-label-background-fill: rgba(255,255,255,.018);
--checkbox-label-background-fill-hover: rgba(69,209,181,.07);
--checkbox-label-background-fill-focus: rgba(69,209,181,.09);
--checkbox-label-background-fill-selected: rgba(69,209,181,.16);
--checkbox-label-border-color: var(--ui-line);
--checkbox-label-border-color-selected: rgba(69,209,181,.52);
--checkbox-label-text-color: var(--ui-soft);
--checkbox-label-text-color-selected: #eafffa;
}
#decode-panel { --color-accent: var(--ui-accent); --border-color-primary: var(--ui-accent); }
#notation-panel {
--checkbox-background-color-hover: #211a13;
--checkbox-background-color-focus: #1c1712;
--checkbox-background-color-selected: var(--ui-warm);
--checkbox-border-color-hover: rgba(238,173,104,.72);
--checkbox-border-color-focus: var(--ui-warm);
--checkbox-border-color-selected: var(--ui-warm);
--checkbox-label-background-fill-hover: rgba(238,173,104,.07);
--checkbox-label-background-fill-focus: rgba(238,173,104,.09);
--checkbox-label-background-fill-selected: rgba(238,173,104,.15);
--checkbox-label-border-color-selected: rgba(238,173,104,.5);
--checkbox-label-text-color-selected: #ffe5c7;
}
#notation-panel .form, #notation-panel #score-primary-settings, #notation-panel #score-musical-settings { border-color: var(--ui-line) !important; background: rgba(255,255,255,.014) !important; box-shadow: none !important; }
#source-panel { width: 100%; margin-top: 10px; background: linear-gradient(105deg,rgba(69,209,181,.045),rgba(7,10,10,.34) 58%) !important; }
#settings-grid { align-items: stretch; gap: 10px; padding-top: 10px; }
#decode-panel { flex: 2 1 0% !important; }
#notation-panel { flex: 1 1 0% !important; }
#notation-panel { background: linear-gradient(145deg,rgba(238,173,104,.035),rgba(7,10,10,.34)) !important; }
.control-heading { display: flex; align-items: flex-start; gap: 10px; min-height: 42px; padding-bottom: 9px; }
.control-icon { display: grid; width: 26px; height: 26px; flex: none; border: 1px solid rgba(69,209,181,.24); border-radius: 6px; color: var(--ui-accent); background: rgba(69,209,181,.04); place-items: center; }
.control-icon svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.65; }
#notation-panel .control-icon { border-color: rgba(238,173,104,.25); color: var(--ui-warm); background: rgba(238,173,104,.04); }
.control-heading strong, .control-heading small { display: block; }
.control-heading strong { color: var(--ui-text); font-size: .77rem; font-weight: 620; }
.control-heading small { margin-top: 3px; color: var(--ui-muted); font-size: .59rem; line-height: 1.4; }
#audio-input { overflow: hidden; min-height: 154px; border: 1px dashed rgba(69,209,181,.3) !important; border-radius: 8px !important; background: rgba(5,9,8,.58) !important; }
#audio-input:hover, #audio-input:focus-within { border-color: rgba(69,209,181,.7) !important; background: rgba(69,209,181,.035) !important; }
#audio-input .wrap, #audio-input > div, #audio-input .upload-container { border: 0 !important; background: transparent !important; }
#audio-input .upload-container { min-height: 128px; }
#audio-input button, #audio-input .upload-button { border: 1px solid var(--ui-line-strong) !important; border-radius: 7px !important; background: var(--ui-surface-3) !important; color: var(--ui-text) !important; box-shadow: none !important; }
#audio-input audio { width: 100%; filter: saturate(.72) contrast(.96); }
#youtube-import-panel { width: 100%; min-width: 0; gap: 7px !important; margin-top: 10px; padding: 10px 11px !important; border: 1px solid var(--ui-line) !important; border-radius: 8px !important; background: rgba(4,8,8,.34) !important; box-shadow: none !important; --input-background-fill: rgba(255,255,255,.025); --input-border-color: var(--ui-line); --input-border-color-focus: rgba(69,209,181,.48); }
#youtube-import-heading, #youtube-import-heading > div, #youtube-import-heading .html-container, #youtube-import-status-output, #youtube-import-status-output > div, #youtube-import-status-output .html-container { min-width: 0; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
.youtube-import-heading { display: grid; grid-template-columns: 26px minmax(0,1fr) auto; align-items: center; min-width: 0; gap: 9px; }
.youtube-import-icon { display: grid; width: 26px; height: 26px; border: 1px solid rgba(69,209,181,.2); border-radius: 6px; color: #8bdccc; background: rgba(69,209,181,.035); place-items: center; }
.youtube-import-icon svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.55; }
.youtube-import-heading strong, .youtube-import-heading small { display: block; }
.youtube-import-heading strong { color: var(--ui-soft); font-size: .65rem; font-weight: 620; }
.youtube-import-heading small { margin-top: 2px; color: var(--ui-muted); font-size: .53rem; line-height: 1.35; }
.youtube-import-heading > b { color: #56615d; font: 580 .48rem var(--ui-mono); letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }
#youtube-import-row { display: grid !important; grid-template-columns: minmax(0,1fr) 156px; align-items: stretch; min-width: 0; gap: 7px; }
#youtube-url-input { width: 100%; min-width: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
#youtube-url-input > div, #youtube-url-input .wrap { width: 100%; min-width: 0; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
#youtube-url-input input { width: 100%; min-height: 42px; padding: 0 12px !important; border: 1px solid var(--ui-line) !important; border-radius: 6px !important; outline: 0; color: var(--ui-text) !important; background: rgba(255,255,255,.024) !important; font: .66rem var(--ui-mono) !important; box-shadow: none !important; transition: border-color .15s ease,background .15s ease; }
#youtube-url-input input::placeholder { color: #56615d !important; opacity: 1; }
#youtube-url-input input:focus { border-color: rgba(69,209,181,.5) !important; background: rgba(69,209,181,.035) !important; }
#youtube-import-button { width: 100% !important; min-width: 0 !important; min-height: 42px !important; border: 1px solid rgba(69,209,181,.32) !important; border-radius: 6px !important; color: #d9fff7 !important; background: rgba(69,209,181,.085) !important; font-size: .65rem !important; font-weight: 650 !important; box-shadow: none !important; }
#youtube-import-button:hover:not(:disabled) { border-color: rgba(69,209,181,.58) !important; background: rgba(69,209,181,.14) !important; }
#youtube-import-button:disabled { border-color: var(--ui-line) !important; color: var(--ui-muted) !important; background: rgba(255,255,255,.018) !important; }
.youtube-import-status { display: grid; grid-template-columns: 7px minmax(0,1fr); align-items: center; min-width: 0; gap: 8px; padding: 1px 2px 0; }
.youtube-import-status > i { width: 7px; height: 7px; border: 1px solid var(--ui-line-strong); border-radius: 50%; background: #3a4441; }
.youtube-import-status strong, .youtube-import-status span { display: inline; font: .49rem/1.4 var(--ui-mono); }
.youtube-import-status strong { margin-right: 7px; color: var(--ui-soft); font-weight: 610; }
.youtube-import-status span { color: var(--ui-muted); }
.youtube-import-status[data-state="working"] > i { border-color: var(--ui-warm); background: var(--ui-warm); box-shadow: 0 0 10px rgba(238,173,104,.42); animation: stem-status-pulse 1.2s ease-in-out infinite; }
.youtube-import-status[data-state="complete"] > i { border-color: var(--ui-accent); background: var(--ui-accent); box-shadow: 0 0 10px rgba(69,209,181,.42); }
.youtube-import-status[data-state="error"] > i { border-color: var(--ui-danger); background: var(--ui-danger); }
.youtube-import-status[data-state="error"] strong { color: #ffacb9; }
#stem-workbench { width: 100%; gap: 9px !important; margin-top: 10px; padding: 12px !important; border: 1px solid var(--ui-line) !important; border-radius: 8px !important; background: linear-gradient(135deg,rgba(69,209,181,.022),rgba(255,255,255,.008) 52%,rgba(5,9,8,.26)) !important; box-shadow: none !important; }
#stem-workbench-heading, #stem-workbench-heading > div, #stem-workbench-heading .html-container, #stem-source-heading, #stem-source-heading > div, #stem-source-heading .html-container, #stem-status-output, #stem-status-output > div, #stem-status-output .html-container { padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
.stem-workbench-heading { display: flex; align-items: flex-end; justify-content: space-between; min-width: 0; gap: 14px; padding: 0 1px 2px; }
.stem-workbench-heading strong, .stem-workbench-heading small { display: block; }
.stem-workbench-heading strong { color: var(--ui-soft); font-size: .67rem; font-weight: 620; }
.stem-workbench-heading small { margin-top: 3px; color: var(--ui-muted); font-size: .55rem; line-height: 1.4; }
.stem-workbench-heading a { flex: none; color: #92dccc !important; font: 590 .52rem var(--ui-mono); text-decoration: none; }
.stem-workbench-heading a:hover { color: #d8fff6 !important; }
#demucs-quality-row { display: grid !important; grid-template-columns: 175px minmax(0,1fr); align-items: center; min-width: 0; gap: 10px; padding: 7px 8px !important; border: 1px solid var(--ui-line) !important; border-radius: 6px !important; background: rgba(5,9,8,.3) !important; }
#demucs-quality-heading, #demucs-quality-heading > div, #demucs-quality-heading .html-container { min-width: 0; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
.demucs-quality-copy strong, .demucs-quality-copy small { display: block; }
.demucs-quality-copy strong { color: var(--ui-soft); font-size: .6rem; font-weight: 620; }
.demucs-quality-copy small { margin-top: 2px; color: var(--ui-muted); font: .48rem/1.35 var(--ui-mono); }
#demucs-quality-preset, #demucs-quality-preset > div, #demucs-quality-preset fieldset { width: 100%; min-width: 0; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
#demucs-quality-preset .wrap { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; gap: 4px !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
#demucs-quality-preset label { display: flex !important; align-items: center; justify-content: center; min-width: 0; min-height: 32px; gap: 6px; padding: 5px 8px !important; border: 1px solid var(--ui-line) !important; border-radius: 4px !important; color: var(--ui-muted) !important; background: rgba(255,255,255,.014) !important; font: 590 .53rem var(--ui-mono) !important; cursor: pointer; }
#demucs-quality-preset label:hover { border-color: rgba(69,209,181,.34) !important; color: var(--ui-soft) !important; background: rgba(69,209,181,.045) !important; }
#demucs-quality-preset label.selected, #demucs-quality-preset label:has(input:checked) { border-color: rgba(69,209,181,.48) !important; color: #dffff8 !important; background: rgba(69,209,181,.12) !important; }
#demucs-quality-preset input[type="radio"] { accent-color: var(--ui-accent); }
#stem-separation-row { display: grid !important; grid-template-columns: minmax(0,1fr) 205px; align-items: stretch; gap: 8px; }
#stem-status-output { min-width: 0; flex: 1 1 auto !important; }
.stem-status { display: grid; grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; min-height: 46px; gap: 9px; padding: 8px 10px; border: 1px solid var(--ui-line); border-radius: 6px; background: rgba(5,9,8,.38); }
.stem-status > i { width: 8px; height: 8px; border: 1px solid var(--ui-line-strong); border-radius: 50%; background: var(--ui-faint,#4e5855); }
.stem-status strong, .stem-status span { display: block; }
.stem-status strong { color: var(--ui-soft); font-size: .61rem; font-weight: 620; }
.stem-status span { margin-top: 3px; color: var(--ui-muted); font: .5rem/1.4 var(--ui-mono); }
.stem-status > b { color: #56615d; font: 580 .48rem var(--ui-mono); letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.stem-status[data-state="ready"], .stem-status[data-state="complete"], .stem-status[data-state="selected"] { border-color: rgba(69,209,181,.25); background: rgba(69,209,181,.035); }
.stem-status[data-state="ready"] > i, .stem-status[data-state="complete"] > i, .stem-status[data-state="selected"] > i { border-color: rgba(69,209,181,.72); background: var(--ui-accent); box-shadow: 0 0 10px rgba(69,209,181,.4); }
.stem-status[data-state="working"] { border-color: rgba(238,173,104,.3); background: rgba(238,173,104,.045); }
.stem-status[data-state="working"] > i { border-color: var(--ui-warm); background: var(--ui-warm); box-shadow: 0 0 11px rgba(238,173,104,.4); animation: stem-status-pulse 1.2s ease-in-out infinite; }
.stem-status[data-state="error"] { border-color: rgba(251,113,133,.32); background: rgba(251,113,133,.045); }
.stem-status[data-state="error"] > i { border-color: var(--ui-danger); background: var(--ui-danger); }
#separate-stems-button { width: 100% !important; min-width: 0 !important; min-height: 46px !important; border: 1px solid rgba(69,209,181,.32) !important; border-radius: 6px !important; background: rgba(69,209,181,.075) !important; color: #cffff5 !important; font-size: .65rem !important; font-weight: 650 !important; box-shadow: none !important; }
#separate-stems-button:hover:not(:disabled) { border-color: rgba(69,209,181,.55) !important; background: rgba(69,209,181,.13) !important; }
#separate-stems-button:disabled { border-color: var(--ui-line) !important; color: var(--ui-muted) !important; background: rgba(255,255,255,.018) !important; }
.stem-source-heading { display: flex; align-items: flex-end; justify-content: space-between; min-width: 0; gap: 14px; margin-top: 2px; padding: 10px 1px 0; border-top: 1px solid var(--ui-line); }
.stem-source-heading div, .stem-source-heading span, .stem-source-heading strong, .stem-source-heading small { display: block; }
.stem-source-heading span { margin-bottom: 3px; color: var(--ui-accent); font: 600 .47rem var(--ui-mono); letter-spacing: .08em; text-transform: uppercase; }
.stem-source-heading strong { color: var(--ui-soft); font-size: .65rem; font-weight: 620; }
.stem-source-heading small { max-width: 300px; color: var(--ui-muted); font-size: .52rem; line-height: 1.4; text-align: right; }
#stem-source-selector, #stem-source-selector > div, #stem-source-selector .form, #stem-source-selector fieldset { width: 100%; min-width: 0; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; --checkbox-background-color-selected: transparent; --checkbox-border-color-selected: transparent; --checkbox-label-background-fill-selected: transparent; --checkbox-label-border-color-selected: transparent; --checkbox-label-text-color-selected: #eafffa; }
#stem-source-selector .wrap { display: grid !important; grid-template-columns: repeat(5,minmax(0,1fr)); width: 100%; gap: 6px !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
#stem-source-selector label { position: relative; display: flex !important; align-items: center; justify-content: flex-start; overflow: hidden; width: 100%; min-width: 0; min-height: 56px; gap: 9px; padding: 9px 10px !important; border: 1px solid var(--ui-line) !important; border-radius: 6px !important; color: var(--ui-muted) !important; background: rgba(2,5,5,.34) !important; font-size: .61rem !important; font-weight: 580 !important; cursor: pointer; transition: border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease; }
#stem-source-selector label::before { display: grid; width: 30px; height: 30px; flex: none; border: 1px solid var(--ui-line); border-radius: 6px; content: "SRC"; background: rgba(255,255,255,.018); color: var(--ui-faint); font: 620 .43rem var(--ui-mono); letter-spacing: .04em; place-items: center; transition: inherit; }
#stem-source-selector label:nth-of-type(1)::before { content: "MIX"; }
#stem-source-selector label:nth-of-type(2)::before { content: "VOX"; }
#stem-source-selector label:nth-of-type(3)::before { content: "DRM"; }
#stem-source-selector label:nth-of-type(4)::before { content: "BAS"; }
#stem-source-selector label:nth-of-type(5)::before { content: "OTH"; }
#stem-source-selector label::after { position: absolute; top: 8px; right: 8px; width: 5px; height: 5px; border-radius: 50%; content: ""; background: #303936; box-shadow: 0 0 0 2px rgba(255,255,255,.018); }
#stem-source-selector label:hover:not(:has(input:disabled)) { border-color: rgba(69,209,181,.34) !important; color: var(--ui-soft) !important; background: rgba(69,209,181,.045) !important; transform: translateY(-1px); }
#stem-source-selector label.selected, #stem-source-selector label:has(input:checked) { border-color: rgba(69,209,181,.5) !important; color: #eafffa !important; background: linear-gradient(135deg,rgba(69,209,181,.16),rgba(69,209,181,.055)) !important; box-shadow: inset 0 1px rgba(255,255,255,.035); }
#stem-source-selector label.selected::before, #stem-source-selector label:has(input:checked)::before { border-color: rgba(69,209,181,.42); color: #cffff5; background: rgba(69,209,181,.12); }
#stem-source-selector label.selected::after, #stem-source-selector label:has(input:checked)::after { background: var(--ui-accent); box-shadow: 0 0 8px rgba(69,209,181,.55); }
#stem-source-selector label:has(input:focus-visible) { outline: 2px solid rgba(69,209,181,.72); outline-offset: 2px; }
#stem-source-selector input[type="radio"] { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none; }
#stem-source-selector label > span { overflow: hidden; min-width: 0; text-overflow: ellipsis; white-space: nowrap; }
#stem-source-selector label:has(input:disabled):not(:has(input:checked)) { opacity: .38; cursor: not-allowed; }
#stem-source-selector .wrap > label:only-child { max-width: 220px; }
#decode-panel label, #notation-panel label { color: var(--ui-soft) !important; font-size: .7rem !important; }
#decode-panel input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), #decode-panel textarea, #decode-panel select, #notation-panel input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), #notation-panel textarea, #notation-panel select { border-color: var(--ui-line) !important; border-radius: 7px !important; background-color: rgba(255,255,255,.03) !important; color: var(--ui-text) !important; }
#decode-panel input[type="range"] { accent-color: var(--ui-accent); }
#notation-panel input[type="range"] { accent-color: var(--ui-warm); }
#decode-panel input[type="checkbox"], #notation-panel input[type="checkbox"], #notation-panel input[type="radio"] { position: relative; z-index: 1; flex: none; cursor: pointer; }
#decode-panel input[type="checkbox"]:focus-visible, #decode-panel input[type="radio"]:focus-visible { outline: 2px solid rgba(69,209,181,.72) !important; outline-offset: 2px; }
#notation-panel input[type="checkbox"]:focus-visible, #notation-panel input[type="radio"]:focus-visible { outline: 2px solid rgba(238,173,104,.72) !important; outline-offset: 2px; }
#decode-panel label.selected { border-color: rgba(69,209,181,.52) !important; background: rgba(69,209,181,.16) !important; color: #eafffa !important; }
#notation-panel label.selected { border-color: rgba(238,173,104,.5) !important; background: rgba(238,173,104,.15) !important; color: #ffe5c7 !important; }
#decoding-options, #score-primary-settings, #score-musical-settings { gap: 7px; }
#score-primary-settings > div, #score-musical-settings > div { min-width: 112px; }
#score-quantization { padding: 8px !important; border: 1px solid var(--ui-line) !important; border-radius: 7px !important; background: rgba(255,255,255,.012) !important; }
#score-quantization .wrap { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4px !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
#score-quantization label { min-width: 0; min-height: 30px; justify-content: center; padding: 4px 6px !important; border-radius: 5px !important; }
#score-quantization .info { color: var(--ui-muted) !important; font-size: .52rem !important; line-height: 1.35; }
#transcription-controls-layout { align-items: stretch; flex-wrap: nowrap !important; min-width: 0; gap: 10px; }
#instrument-lock-panel { min-width: 0 !important; flex: 3 1 0% !important; }
#decode-settings-panel { min-width: 220px !important; align-self: stretch; flex: 2 1 0% !important; justify-content: space-between; gap: 10px !important; padding: 10px !important; border: 1px solid var(--ui-line) !important; border-radius: 7px !important; background: rgba(255,255,255,.012) !important; box-shadow: none !important; }
#decode-settings-panel > .form, #decode-settings-panel .form { border: 0 !important; background: transparent !important; box-shadow: none !important; }
#decode-settings-panel #decode-preset { width: 100%; }
#decode-settings-panel #decode-preset, #decode-settings-panel #decoding-options, #decode-settings-panel #decoding-options > div { padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
#decode-settings-panel #decode-preset .wrap { display: grid !important; grid-template-columns: 1fr; gap: 4px !important; background: transparent !important; }
#decode-settings-panel #decode-preset label { width: 100%; min-height: 33px; }
#decode-settings-panel #decoding-options { width: 100%; }
#decode-preset { border: 1px solid var(--ui-line) !important; border-radius: 8px !important; background: rgba(255,255,255,.015) !important; }
#decode-preset label { min-height: 34px; border-radius: 5px !important; }
#instrument-lock-heading, #instrument-lock-heading > div, #instrument-lock-heading .html-container { padding: 0 !important; border: 0 !important; background: transparent !important; }
.instrument-lock-heading { display: flex; align-items: flex-end; justify-content: space-between; min-width: 0; gap: 12px; padding: 2px 1px 7px; }
.instrument-lock-heading strong, .instrument-lock-heading small { display: block; }
.instrument-lock-heading strong { color: var(--ui-soft); font-size: .67rem; font-weight: 620; }
.instrument-lock-heading strong span { margin-left: 5px; color: var(--ui-accent); font: 580 .48rem var(--ui-mono); letter-spacing: .035em; text-transform: uppercase; }
.instrument-lock-heading small { margin-top: 3px; color: var(--ui-muted); font-size: .55rem; line-height: 1.4; }
.instrument-lock-heading > b { flex: none; color: #56615d; font: 560 .5rem var(--ui-mono); letter-spacing: .05em; text-transform: uppercase; }
#instrument-categories { display: block !important; width: 100%; max-height: 310px; overflow-y: auto; padding: 0 4px 0 0 !important; scrollbar-color: rgba(69,209,181,.3) transparent; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
#instrument-categories > .form { display: grid !important; width: 100%; grid-template-columns: 1fr; gap: 7px !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
#instrument-categories::-webkit-scrollbar { width: 6px; }
#instrument-categories::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(69,209,181,.28); }
#instrument-categories .instrument-category { width: 100%; min-width: 0; align-self: start; padding: 8px !important; border: 1px solid var(--ui-line) !important; border-radius: 7px !important; background: rgba(255,255,255,.012) !important; box-shadow: none !important; }
.instrument-category > .wrap, .instrument-category .wrap { align-content: flex-start; gap: 4px !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.instrument-category .label-wrap { margin-bottom: 5px; color: var(--ui-soft) !important; font: 620 .56rem var(--ui-mono) !important; letter-spacing: .045em; text-transform: uppercase; }
.instrument-category label { min-height: 28px !important; padding-block: 4px !important; border-radius: 5px !important; }
#instrument-lock-footer { display: grid !important; grid-template-columns: minmax(0,1fr) 112px; align-items: stretch; min-width: 0; gap: 8px; margin-top: 8px; }
#instrument-lock-output { width: 100%; min-width: 0; margin: 0; }
#instrument-lock-output, #instrument-lock-output > div, #instrument-lock-output .html-container { padding: 0 !important; border: 0 !important; background: transparent !important; }
.instrument-lock-status { display: grid; grid-template-columns: 16px minmax(0,1fr); align-items: center; gap: 8px; min-height: 47px; padding: 6px 8px; border: 1px solid var(--ui-line); border-radius: 6px; background: rgba(255,255,255,.014); }
.instrument-lock-icon { position: relative; display: block; width: 12px; height: 10px; border: 1px solid var(--ui-muted); border-radius: 2px; }
.instrument-lock-icon::before { position: absolute; right: 2px; bottom: 8px; left: 2px; height: 6px; border: 1px solid currentColor; border-bottom: 0; border-radius: 5px 5px 0 0; content: ""; }
.instrument-lock-status strong, .instrument-lock-status small { display: block; }
.instrument-lock-status strong { color: var(--ui-soft); font-size: .59rem; font-weight: 620; }
.instrument-lock-status small { margin-top: 2px; color: var(--ui-muted); font: .5rem/1.35 var(--ui-mono); }
.instrument-lock-status[data-state="automatic"] .instrument-lock-icon::before { right: -1px; left: 5px; transform: translateY(-1px) rotate(18deg); transform-origin: left bottom; }
.instrument-lock-status[data-state="locked"] { border-color: rgba(69,209,181,.24); background: rgba(69,209,181,.035); }
.instrument-lock-status[data-state="locked"] .instrument-lock-icon { border-color: var(--ui-accent); color: var(--ui-accent); }
.instrument-lock-status[data-state="locked"] strong { color: #cffff5; }
#clear-instrument-lock-button { width: 100% !important; min-width: 0 !important; min-height: 47px !important; padding: 0 9px !important; border: 1px solid var(--ui-line) !important; border-radius: 6px !important; color: var(--ui-soft) !important; background: rgba(255,255,255,.018) !important; font: 610 .53rem var(--ui-mono) !important; box-shadow: none !important; }
#clear-instrument-lock-button:hover:not(:disabled) { border-color: rgba(69,209,181,.38) !important; color: #dffff8 !important; background: rgba(69,209,181,.065) !important; }
#clear-instrument-lock-button:disabled { color: var(--ui-muted) !important; opacity: .4; }
#run-row { align-items: center; gap: 14px; padding: 11px 1px 0; }
#transcribe-button { flex: 0 1 330px !important; min-height: 48px; border: 1px solid rgba(141,255,230,.32) !important; border-radius: 7px !important; background: linear-gradient(112deg,#168f7d,#21aa93) !important; box-shadow: 0 9px 24px rgba(18,132,113,.23), inset 0 1px rgba(255,255,255,.17) !important; color: #f5fffc !important; font-size: .84rem !important; font-weight: 680 !important; letter-spacing: .005em; transition: transform 140ms ease, filter 140ms ease !important; }
#transcribe-button:hover:not(:disabled) { filter: brightness(1.1); transform: translateY(-1px); }
#transcribe-button:disabled, #transcribe-button[aria-busy="true"] { cursor: wait; filter: grayscale(.35) brightness(.75); }
.cold-note { display: flex; align-items: center; gap: 7px; margin: 0 !important; color: var(--ui-muted); font: .57rem/1.5 var(--ui-mono); }
.cold-note strong { color: var(--ui-soft); font-weight: 620; }
.cold-note > span { width: 6px; height: 6px; flex: none; border-radius: 50%; background: var(--ui-warm); }
#generate-score-button { min-height: 38px; margin-top: 2px; border: 1px solid rgba(238,173,104,.38) !important; border-radius: 7px !important; background: rgba(238,173,104,.1) !important; color: #f5c996 !important; font-weight: 650 !important; }
#generate-score-button:hover:not(:disabled) { background: rgba(238,173,104,.17) !important; }
#generate-score-button:disabled { border-color: var(--ui-line) !important; background: rgba(255,255,255,.018) !important; color: var(--ui-muted) !important; }
#score-analysis-output, #score-analysis-output > div, #score-analysis-output .html-container { padding: 0 !important; border: 0 !important; background: transparent !important; }
.score-analysis { display: grid; grid-template-columns: 8px minmax(0,1fr); align-items: center; gap: 9px; min-height: 48px; padding: 8px 10px; border: 1px solid var(--ui-line); border-radius: 6px; background: rgba(255,255,255,.016); }
.score-analysis i { width: 7px; height: 7px; border-radius: 50%; background: var(--ui-muted); }
.score-analysis strong, .score-analysis span { display: block; }
.score-analysis strong { color: var(--ui-soft); font-size: .61rem; font-weight: 620; }
.score-analysis span { margin-top: 3px; color: var(--ui-muted); font: .52rem/1.4 var(--ui-mono); }
.score-analysis[data-state="ready"] { border-color: rgba(69,209,181,.22); background: rgba(69,209,181,.035); }
.score-analysis[data-state="ready"] i { background: var(--ui-accent); box-shadow: 0 0 8px rgba(69,209,181,.4); }
.score-analysis[data-state="unavailable"] i { background: var(--ui-warm); }
#studio-viewer { min-width: 0; margin: 14px 0 0; padding: 0 !important; border: 0 !important; background: transparent !important; }
#studio-viewer > .wrap, #studio-viewer > div, #studio-viewer .html-container { min-width: 0; padding: 0 !important; border: 0 !important; background: transparent !important; }
.footnote { display: flex; justify-content: space-between; gap: 16px; padding: 11px 3px 0; color: var(--ui-muted); font: .55rem var(--ui-mono); }
@keyframes stem-status-pulse { 0%,100% { opacity:.48; transform:scale(.82); } 50% { opacity:1; transform:scale(1); } }
@media (max-width: 1080px) {
.workbench-intro { grid-template-columns: 1fr; gap: 22px; }
.project-references { width: min(100%,520px); }
}
@media (max-width: 820px) {
#settings-grid { flex-wrap: wrap !important; }
#decode-panel, #notation-panel { width: 100% !important; flex: 1 1 100% !important; }
}
@media (max-width: 720px) {
#app-shell { width: calc(100% - 18px); max-width: 1360px; padding-top: 14px; }
.workbench-nav, .panel-heading, .footnote { align-items: flex-start; flex-direction: column; }
.runtime-status { width: 100%; flex-wrap: wrap; }
.workbench-intro { padding: 28px 2px 24px; }
.intro-statement h1 { font-size: clamp(2.35rem,12vw,3.6rem); }
.project-references { width: 100%; grid-template-columns: 1fr; }
.project-references a { padding: 10px 34px 10px 3px; }
.project-references a + a { border-top: 1px solid var(--ui-line); border-left: 0; }
#input-workbench, #transcription-panel { padding: 12px !important; border-radius: 11px !important; }
.panel-heading p { text-align: left; }
#decode-panel, #notation-panel { width: 100% !important; flex-basis: 100% !important; }
#score-primary-settings, #score-musical-settings { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); }
#transcription-controls-layout { flex-wrap: wrap !important; }
#instrument-lock-panel, #decode-settings-panel { width: 100% !important; min-width: 0 !important; flex: 1 1 100% !important; }
#decode-settings-panel { justify-content: flex-start; padding: 10px !important; }
#decode-settings-panel #decode-preset .wrap { grid-template-columns: repeat(2,minmax(0,1fr)); }
#instrument-categories { max-height: 420px; }
.stem-workbench-heading, .stem-source-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
.stem-source-heading small { max-width: none; text-align: left; }
.youtube-import-heading { grid-template-columns: 26px minmax(0,1fr); }
.youtube-import-heading > b { grid-column: 2; white-space: normal; }
#youtube-import-row { grid-template-columns: minmax(0,1fr); }
#youtube-import-button { width: 100% !important; }
.youtube-import-status strong, .youtube-import-status span { display: block; }
.youtube-import-status strong { margin-right: 0; }
#stem-separation-row { grid-template-columns: minmax(0,1fr); }
#demucs-quality-row { grid-template-columns: minmax(0,1fr); }
#demucs-quality-preset .wrap { grid-template-columns: repeat(3,minmax(0,1fr)); }
#separate-stems-button { width: 100% !important; min-width: 0 !important; min-height: 42px; }
#stem-source-selector .wrap { grid-template-columns: repeat(2,minmax(0,1fr)); }
#stem-source-selector .wrap > label:first-of-type { grid-column: 1 / -1; }
#stem-source-selector .wrap > label:only-child { max-width: none; }
.stem-status { grid-template-columns: 8px minmax(0,1fr); }
.stem-status > b { display: none; }
#instrument-lock-footer { grid-template-columns: minmax(0,1fr); }
#run-row { align-items: stretch; flex-direction: column !important; }
#transcribe-button { width: 100% !important; flex-basis: auto !important; }
#input-workbench input[type="text"], #input-workbench input[type="number"], #input-workbench input[type="search"], #input-workbench input[type="email"], #input-workbench input[type="url"], #input-workbench textarea, #input-workbench select { font-size: 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}