/* VOCAL TOOLS v33 — isolated private separation prototype. */
#page-separate{max-width:1100px}
.lab-badge{display:inline-flex;vertical-align:middle;align-items:center;font-size:10px;font-weight:700;letter-spacing:.01em;padding:6px 9px;border-radius:999px;border:1px solid var(--accent-border);color:var(--accent);background:var(--accent-soft)}
.lab-banner{border:1px solid var(--accent-border);background:var(--accent-soft);color:var(--txt);border-radius:12px;padding:15px 18px;font-size:12px;line-height:1.85;margin:0 0 17px}
.lab-banner strong{margin-right:6px}
.lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.lab-panel{margin:0 0 16px;padding:24px;min-width:0}
.lab-panel h2{font-size:12px;font-weight:750;color:var(--accent);margin:0 0 20px;display:flex;align-items:center;gap:12px}
.lab-panel h2 span{font-size:17px;color:var(--txt);letter-spacing:-.025em}
.lab-drop{min-height:202px;padding:27px 15px;border:1.5px dashed var(--accent-border);border-radius:12px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:10px;background:var(--soft);transition:background .12s,border-color .12s}
.lab-drop:hover,.lab-drop.drag{background:var(--hover);border-color:var(--accent)}
.lab-drop input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.lab-drop:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.lab-drop-icon{font-size:34px;color:var(--accent)}
.lab-drop strong{font-size:14px;color:var(--txt)}
.lab-drop>span:last-of-type,.lab-file-summary{font-size:12px;color:var(--muted);line-height:1.7}
.lab-file-summary{word-break:break-word;margin:15px 0 6px}
.lab-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 12px}
.lab-help{font-size:12px;color:var(--muted);line-height:1.85;margin:12px 0 0}
.lab-help strong{color:var(--txt)}
.lab-chipline{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 25px}
.lab-chip{border:1px solid var(--border);border-radius:999px;padding:7px 10px;font-size:11px;color:var(--muted);background:var(--surface-2)}
.lab-status{font-size:14px;color:var(--txt);font-weight:680;min-height:40px;line-height:1.55;word-break:break-word}
.lab-progress{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden;margin-top:15px}
.lab-progress>div{width:0;height:100%;background:var(--accent);transition:width .18s}
.lab-progress.waiting>div{width:38%;animation:lab-wait 1.5s ease-in-out infinite}
@keyframes lab-wait{0%{transform:translateX(-100%)}100%{transform:translateX(280%)}}
.lab-error{margin-top:15px;padding:13px 14px;border:1px solid #db818170;border-radius:10px;background:#cb434311;color:var(--txt);font-size:12px;line-height:1.7;word-break:break-word}
.lab-result{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:11px}
.lab-result h3{font-size:15px;margin:0;color:var(--txt)}
.lab-result audio{width:100%;max-width:100%}
.lab-result .button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-align:center}
.lab-license p{font-size:12px;color:var(--muted);line-height:1.85}.lab-license a:not(.button){color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.lab-home{display:inline-flex;text-decoration:none;margin-top:13px}
@media(max-width:800px){.lab-grid{grid-template-columns:1fr}.lab-panel{padding:18px}.lab-drop{min-height:160px}.lab-badge{margin-top:9px}}

/* v37 — visible file metadata replaces the drop prompt after file selection. */
.lab-drop-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;width:100%}
.lab-drop.has-file{padding:18px;align-items:stretch;min-height:188px;text-align:left;border-style:solid;background:var(--surface-2)}
.lab-drop-selected{display:flex;flex-direction:column;gap:17px;width:100%;text-align:left}
.lab-drop-empty[hidden],.lab-drop-selected[hidden]{display:none!important}
.lab-selected-head{display:flex;align-items:center;gap:12px;width:100%}
.lab-selected-icon{display:flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border-radius:10px;background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);font-size:22px}
.lab-selected-head-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.lab-selected-head-copy strong{font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.lab-selected-sub{font-size:11px;color:var(--muted)}
.lab-selected-check{font-size:15px;color:var(--accent);font-weight:800}
.lab-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.lab-meta-grid>span{display:flex;flex-direction:column;gap:6px;min-width:0;padding:12px;border:1px solid var(--border);background:var(--surface);border-radius:9px}
.lab-meta-grid small{font-size:10px;color:var(--muted)}
.lab-meta-grid b{font-size:13px;font-weight:700;color:var(--txt);overflow-wrap:anywhere}
.lab-selected-foot{font-size:11px;color:var(--muted)}
/* The task dock belongs to the one persistent document, so it survives internal navigation. */
.lab-job-dock{position:fixed;right:24px;bottom:20px;width:min(350px,calc(100vw - 32px));z-index:1000;display:flex;flex-direction:column;gap:11px;padding:16px 17px;border-radius:15px;background:var(--surface);color:var(--txt);border:1px solid var(--border);box-shadow:0 12px 45px #0003;line-height:1.5}
.lab-job-dock[hidden],.lab-dock-results[hidden]{display:none!important}
.lab-dock-head{display:flex;align-items:center;gap:8px;font-size:12px}
.lab-dock-head strong{font-weight:750}
.lab-dock-indicator{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}
.lab-job-dock.is-running .lab-dock-indicator{animation:lab-pulse 1.3s ease-in-out infinite}
.lab-job-dock.is-complete .lab-dock-indicator{background:#28ad72}
.lab-job-dock.is-error .lab-dock-indicator{background:#db6868}
@keyframes lab-pulse{50%{opacity:.25}}
.lab-dock-open{margin-left:auto;border:0;background:var(--accent-soft);color:var(--accent);border-radius:7px;padding:6px 9px;font:inherit;font-size:11px;font-weight:700;cursor:pointer}
.lab-dock-file{font-size:13px;font-weight:700;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.lab-dock-status{display:flex;justify-content:space-between;align-items:center;gap:6px;color:var(--muted);font-size:11px}
.lab-dock-status>span:first-child{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.lab-dock-progress{height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden}
.lab-dock-progress>div{height:100%;background:var(--accent);width:0%;transition:width .2s}
.lab-dock-progress.waiting>div{animation:lab-wait 1.5s ease-in-out infinite}
.lab-dock-results{display:flex;gap:8px}
.lab-dock-results a{flex:1;font-size:11px;font-weight:700;text-decoration:none;text-align:center;padding:8px;border:1px solid var(--accent-border);color:var(--accent);background:var(--accent-soft);border-radius:8px}
.lab-dock-note{border-top:1px solid var(--border);padding-top:8px;color:var(--muted);font-size:10px;line-height:1.4}
@media(max-width:600px){.lab-job-dock{right:10px;bottom:10px;width:min(330px,calc(100vw - 20px));padding:12px 13px}.lab-meta-grid{gap:6px}.lab-meta-grid>span{padding:10px 8px}}

/* v38: single file/status card; compact dock controls. */
/* v39: align upload / separation station with the full-width result panel. */
#page-separate .lab-single-column{width:100%;max-width:none}
#page-separate .lab-single-column > .lab-panel{width:100%}
@media(min-width:801px){#page-separate .lab-drop{min-height:174px}}
#page-separate .lab-panel{padding:24px}
#page-separate .lab-panel h2{margin-bottom:18px}
.lab-drop[hidden],.lab-file-card[hidden],.lab-card-process[hidden],.lab-dock-mini[hidden]{display:none!important}
.lab-drop{width:100%}
.lab-file-card{border:1.5px solid var(--accent-border);border-radius:13px;background:var(--surface-2);padding:19px;gap:15px}
.lab-selected-sub{font-size:11px}
.lab-remove-file{flex:none;width:31px;height:31px;display:inline-flex;align-items:center;justify-content:center;font-size:24px;line-height:1;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:8px;cursor:pointer;transition:background .15s,color .15s}
.lab-remove-file:hover{color:var(--txt);background:var(--hover);border-color:var(--border)}
.lab-remove-file:focus-visible,.lab-dock-icon:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lab-card-process{border-top:1px solid var(--border);padding-top:15px;display:flex;flex-direction:column;gap:9px}
.lab-card-process-heading{display:flex;flex-direction:column;gap:7px}
.lab-card-process-heading>strong{font-size:11px;color:var(--muted);font-weight:700}
.lab-card-process .lab-status{font-size:13px;min-height:unset}
.lab-card-process .lab-progress{margin-top:0}
.lab-card-process .lab-help{margin-top:0}
.lab-gpu-info{font-size:11px;color:var(--muted);line-height:1.6;margin:0}
.lab-gpu-info[hidden]{display:none!important}
.lab-job-dock{gap:0;padding:14px 16px}
.lab-dock-head{min-height:30px}
.lab-dock-tools{margin-left:auto;display:flex;align-items:center;gap:3px}
.lab-dock-icon{height:29px;width:29px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;color:var(--muted);border-radius:7px;cursor:pointer;transition:background .15s}
.lab-dock-icon:hover{background:var(--hover);color:var(--txt)}
.lab-dock-close{font-size:22px;line-height:1}
.lab-dock-chevron{display:block;width:9px;height:9px;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;transform:rotate(45deg) translate(-2px,-2px)}
.lab-job-dock.is-collapsed .lab-dock-chevron{transform:rotate(225deg) translate(-1px,-1px)}
.lab-dock-body{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.lab-job-dock.is-collapsed .lab-dock-body{display:none}
.lab-job-dock.is-collapsed .lab-dock-mini{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:11px;color:var(--muted);white-space:nowrap;min-width:0}
.lab-dock-mini-file{display:block;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.lab-dock-mini-status{color:var(--accent);font-weight:700;flex:none}
.lab-dock-open{display:inline-flex;margin-left:0;align-self:flex-start}
@media(max-width:600px){#page-separate .lab-panel{padding:18px}.lab-file-card{padding:13px}.lab-job-dock{padding:12px 13px}}
