:root{--bg-top:#fff5e8;--bg-bottom:#e5f8ff;--panel:#ffffffd6;--panel-stroke:#0b1c2d1f;--text:#0f2538;--accent:#ff6f3d;--accent-dark:#d95124;--muted:#47617a;--ok:#18794e;--warn:#bf360c;--sidebar-w:clamp(172px, 15vw, 220px);--rail-w:clamp(272px, 24vw, 352px);--layout-gap:12px}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--text);background:linear-gradient(145deg, var(--bg-top), var(--bg-bottom));min-height:100vh;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}button,a,input,select{font:inherit}button,.job-actions a{transition:transform 80ms,box-shadow .14s,filter .14s,border-color .14s}button:active,.job-actions a:active{transform:translateY(1px)scale(.985)}button:disabled:active{transform:none}.studio{grid-template-rows:auto minmax(0,1fr);gap:14px;width:100%;max-width:100vw;min-height:100vh;padding:16px;display:grid}.app-header{border:1px solid var(--panel-stroke);background:var(--panel);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:18px;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.app-header h1{margin:0;font-size:1.35rem}.header-actions{align-items:center;gap:12px;display:flex}.kicker{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 4px;font-size:.75rem}.local-badge{color:var(--ok);background:#18794e1a;border:1px solid #18794e2e;border-radius:999px;align-items:center;padding:7px 12px;font-size:.86rem;font-weight:700;display:inline-flex}.language-switch{color:var(--muted);align-items:center;gap:8px;font-size:.9rem;display:flex}.language-switch select{border:1px solid var(--panel-stroke);color:var(--text);background:#fff;border-radius:8px;padding:6px 8px}.workbench{gap:var(--layout-gap);grid-template-columns:var(--sidebar-w) minmax(0, 1fr) var(--rail-w);grid-template-rows:minmax(0,1fr);align-items:stretch;width:100%;max-width:100%;min-height:0;display:grid;position:relative;overflow:hidden}.tool-sidebar,.workspace,.tool-config,.job-dock{border:1px solid var(--panel-stroke);background:var(--panel);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:18px}.tool-sidebar{align-self:stretch;height:100%;padding:14px;position:static;overflow:auto}.tool-group+.tool-group{margin-top:18px}.tool-group h2{color:var(--muted);margin:0 0 8px;font-size:.95rem}.tool-btn{text-align:left;border:1px solid var(--panel-stroke);cursor:pointer;width:100%;color:var(--text);background:#fff;border-radius:12px;margin-bottom:8px;padding:11px 12px;font-size:1rem}.tool-btn:hover{border-color:#ff6f3d73}.tool-btn.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.workspace-shell{flex-direction:column;gap:10px;min-width:0;display:flex}.workspace{flex-direction:column;gap:12px;height:100%;min-height:0;padding:14px;display:flex}.preview-header h3,.workspace-header h3{margin:0}.preview-header p{color:var(--muted);margin:4px 0 0;font-size:.9rem}.workspace-dropzone{cursor:default;flex-direction:column;flex:1;min-height:clamp(420px,72vh,980px);display:flex}.workspace-dropzone.has-files{min-height:clamp(360px,66vh,900px)}.workspace-dropzone.drag-over{border-color:var(--accent);box-shadow:0 0 0 3px #ff6f3d33}.merge-canvas{background:linear-gradient(135deg,#ff6f3d24,#ffffffe6);border:2px dashed #0f253838;border-radius:16px;min-height:clamp(360px,70vh,920px);padding:18px;position:relative}.merge-canvas.has-files{min-height:clamp(330px,64vh,860px)}.merge-upload-input{display:none}.merge-empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;min-height:100%;display:flex}.merge-empty-state strong{font-size:clamp(1.6rem,3.2vw,2.8rem);line-height:1.1}.merge-empty-state span{color:var(--muted);font-size:clamp(1rem,1.9vw,1.28rem)}.merge-empty-state small{color:var(--muted);font-size:1.06rem}.merge-empty-state button,.run-btn{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-dark));cursor:pointer;border:none;border-radius:14px;font-weight:700}.merge-empty-state button{margin-top:10px;padding:clamp(12px,1.3vw,18px) clamp(20px,2.2vw,34px);font-size:clamp(1rem,1.6vw,1.35rem)}.merge-canvas-actions{justify-content:flex-end;margin-bottom:10px;display:flex}.merge-canvas-actions button,.job-dock-head button,.job-actions button,.job-actions a{cursor:pointer;white-space:nowrap;border:none;border-radius:10px;max-width:100%;padding:8px 12px;text-decoration:none}.merge-canvas-actions button,.job-dock-head button,.job-actions button{color:var(--text);background:#0f253814}.workspace-inline-files{flex-wrap:wrap;gap:8px;display:flex}.workspace-file-chip{border:1px solid var(--panel-stroke);background:#ffffffe6;border-radius:999px;align-items:center;gap:8px;max-width:100%;padding:7px 10px;display:inline-flex}.workspace-file-chip span{text-overflow:ellipsis;white-space:nowrap;max-width:min(460px,62vw);font-size:.92rem;overflow:hidden}.workspace-file-chip button{cursor:pointer;background:#fff;border:1px solid #0f253833;border-radius:999px;width:24px;height:24px;padding:0;line-height:1}.split-selection-bar{background:#ffffffdb;border:1px solid #0b1c2d1a;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:10px;display:flex}.split-selection-bar button{color:var(--text);cursor:pointer;background:#0f253814;border:none;border-radius:10px;padding:8px 12px}.split-selection-bar span{color:var(--muted);font-size:.9rem}.preview-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));align-content:start;gap:12px;min-height:0;margin-top:16px;display:grid}.preview-status{background:#ffffffd1;border-radius:10px;grid-column:1/-1;padding:8px 10px}.preview-card{border:1px solid var(--panel-stroke);background:#ffffffeb;border-radius:12px;min-width:0;padding:10px;position:relative;box-shadow:0 10px 24px #0f253814}.split-select-btn{z-index:2;border:1px solid var(--panel-stroke);width:28px;height:28px;color:var(--muted);background:#ffffffeb;border-radius:999px;justify-content:center;align-items:center;font-weight:700;display:inline-flex;position:absolute;top:8px;right:8px}.split-select-btn.active{background:linear-gradient(135deg, var(--accent), var(--accent-dark));color:#fff;border-color:#0000}.preview-card[draggable=true]{cursor:grab}.preview-card[draggable=true]:active{cursor:grabbing}.preview-card.selectable{cursor:pointer}.preview-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent), 0 10px 24px #d9512424}.preview-thumb{aspect-ratio:.707;background:linear-gradient(145deg,#0f253814,#ffffffe6);border:1px solid #0f253814;border-radius:9px;place-items:center;display:grid;overflow:hidden}.preview-thumb img{object-fit:contain;background:#fff;width:100%;height:100%}.preview-thumb span{color:var(--muted);letter-spacing:.08em;font-weight:700}.preview-card-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:8px;font-size:.86rem;overflow:hidden}.right-rail{gap:var(--layout-gap);grid-template-rows:auto minmax(0,1fr);align-content:start;align-items:stretch;width:100%;min-width:0;max-width:100%;min-height:0;display:grid;overflow:auto}.tool-config{flex-direction:column;gap:12px;min-width:0;max-width:100%;height:auto;min-height:0;padding:14px;display:flex;position:relative;overflow:hidden}.panel-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.panel-head h2,.job-dock h2{margin:0}.tool-config-scroll{align-content:start;gap:12px;min-width:0;max-width:100%;height:auto;min-height:0;padding-right:0;display:grid;overflow:visible}.tool-config section{gap:10px;display:grid}.tool-config h3{margin:0;font-size:.98rem}.tool-config label{color:var(--muted);gap:4px;min-width:0;font-size:.9rem;display:grid}.tool-config input,.tool-config select{border:1px solid var(--panel-stroke);color:var(--text);background:#fff;border-radius:10px;width:100%;min-width:0;padding:10px}.checkbox-row{color:var(--text);align-items:center;gap:8px;grid-template-columns:none!important;display:flex!important}.checkbox-row input{width:16px;height:16px;accent-color:var(--accent);margin:0;padding:0}.checkbox-row span{color:var(--text);font-size:.92rem}.run-footer{background:0 0;border-top:1px solid #0b1c2d14;justify-content:flex-end;margin-top:2px;padding:10px 0 0;display:flex;position:static}.run-btn{padding:8px 12px;font-size:1.02rem}.run-btn:disabled{opacity:.7;cursor:progress}.primary-run{width:100%;min-width:0;padding:13px 18px}.job-dock{scrollbar-gutter:stable;min-width:0;max-width:100%;height:100%;min-height:84px;max-height:none;padding:12px 14px;overflow:hidden auto}.job-dock-head{grid-template-columns:minmax(0,1fr);align-items:start;gap:8px;margin-bottom:10px;display:grid}.job-dock-head-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.job-dock-head-controls button{justify-content:center;align-items:center;min-height:32px;padding:0 12px;font-size:.86rem;font-weight:500;line-height:1;display:inline-flex}.job-row{border:1px solid var(--panel-stroke);background:#ffffffe6;border-radius:12px;grid-template-columns:minmax(0,1fr);align-items:start;gap:8px;min-width:0;margin-bottom:8px;padding:10px;display:grid}.job-main{gap:4px;min-width:0;display:grid}.job-row-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.job-status-badge{min-height:24px;color:var(--muted);background:#0b1c2d0f;border:1px solid #0b1c2d1a;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0 10px;font-size:.78rem;font-weight:700;line-height:1;display:inline-flex}.job-status-badge.processing{color:#2358a4;background:#2358a41f}.job-status-badge.completed{color:var(--ok);background:#18794e1f}.job-status-badge.failed{color:var(--warn);background:#b83e321f}.job-meta-text{color:var(--muted)}.job-row p{margin:3px 0}.job-main>progress{appearance:none;border:none;border-radius:999px;width:100%;height:8px;overflow:hidden}.job-main>progress::-webkit-progress-bar{border-radius:inherit;background:#0f253814}.job-main>progress::-webkit-progress-value{border-radius:inherit;background:linear-gradient(90deg,#2358a4b3,#2358a4);transition:width .5s}.job-main>progress::-moz-progress-bar{border-radius:inherit;background:linear-gradient(90deg,#2358a4b3,#2358a4)}.job-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;width:100%;min-width:0;display:flex}.job-actions a{min-height:34px;color:var(--ok);background:#18794e1f;justify-content:center;align-items:center;padding:0 14px;font-size:.92rem;font-weight:500;display:inline-flex}.hint{color:var(--muted);margin:0}.quick-run-hint{overflow-wrap:anywhere;background:#ffffffe6;border:1px solid #0b1c2d1f;border-radius:10px;padding:8px 10px}.error-text{color:var(--warn);margin:0}@media (width>=1181px){body{overflow:hidden}.studio{height:100dvh;min-height:100dvh}.workbench,.workspace-shell,.tool-sidebar,.right-rail{height:100%;min-height:0}.workspace-shell,.workspace{overflow:hidden}.workspace-dropzone,.merge-canvas{height:100%;min-height:0}.merge-canvas{overflow:auto}}@media (width<=1180px){body{overflow:auto}.studio{min-height:100dvh}.workbench{grid-template-columns:1fr;overflow:visible}.tool-sidebar{height:auto}.right-rail{overflow:visible}.workspace,.tool-config,.job-dock{height:auto}}@media (width<=760px){.studio{padding:10px}.app-header{flex-direction:column;align-items:flex-start;gap:10px}.tool-sidebar{gap:8px;padding:10px;display:flex;overflow-x:auto}.tool-group{gap:8px;margin:0;display:flex}.tool-group h2{display:none}.tool-btn{width:max-content;min-width:150px;margin-bottom:0}.merge-empty-state strong{font-size:1.55rem}}
