:root{--node-scene: #EDB83F;--node-image: #8A65CE;--node-video: #36977A;--node-audio: #C79342;--node-cut: #487DBE;--node-structure: #82909C;--node-prompt: #667484;--node-image-generator: #7356CF;--node-video-generator: #368D80;--node-flow: #AB6396;--node-review: #BB873D;--node-note: #9A8D67;--edge-default: #747F8F;--edge-reference: #8B99A8;--edge-opinion: #B79CCC;--media-backdrop: #101319;--font: "Pretendard", "Malgun Gothic", "Apple SD Gothic Neo", "Noto Sans CJK KR", "Segoe UI", sans-serif;--type-caption: 500 11px/1.45 var(--font);--type-small: 400 12px/1.45 var(--font);--type-body: 400 13px/1.45 var(--font);--type-title: 600 15px/1.45 var(--font);--type-page: 600 18px/1.45 var(--font);--type-metric: 600 22px/1.45 var(--font);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius-badge: 4px;--radius-row: 6px;--radius-control: 8px;--radius-card: 12px;--control-dense: 28px;--control-default: 32px;--control-primary: 36px;--motion-state: .15s;--motion-panel: .2s;--bg: #141518;--surface1: #1B1C20;--surface2: #222329;--surface3: #2A2C33;--surface4: #33353D;--line: #2E3038;--line-strong: #3D404A;--text: #ECEDF0;--text-secondary: #B4B8C2;--text-tertiary: #8B909C;--text-disabled: #5E626D;--accent: #6554C0;--accent-hover: #7565D0;--accent-text: #A99BF0;--focus: #8A7BE6;--danger: #F07883;--on-accent: #FFFFFF;--accent-pressed: #4C3D91;--status-waiting: #9AA0AC;--status-working: #6AA8F0;--status-review: #E3AC57;--status-changes: #F07883;--status-approval: #4FC1D6;--status-approved: #55C08A}:root[data-theme=light]{--bg: #F4F5F7;--surface1: #FFFFFF;--surface2: #F9FAFB;--surface3: #EEF0F3;--surface4: #E4E7EC;--line: #E3E6EB;--line-strong: #D0D4DB;--text: #1C1E24;--text-secondary: #4A4F5A;--text-tertiary: #5F6571;--text-disabled: #A3A8B2;--accent: #6554C0;--accent-hover: #5444B0;--accent-text: #5444B0;--focus: #6554C0;--danger: #C2303F;--on-accent: #FFFFFF;--accent-pressed: #463798;--status-waiting: #5F6571;--status-working: #1A64B3;--status-review: #915600;--status-changes: #B72D3B;--status-approval: #076D7E;--status-approved: #1A7046}@font-face{font-family:Pretendard;font-weight:400;src:url(/fonts/Pretendard-Regular.otf) format("opentype")}@font-face{font-family:Pretendard;font-weight:500;src:url(/fonts/Pretendard-Medium.otf) format("opentype")}@font-face{font-family:Pretendard;font-weight:600;src:url(/fonts/Pretendard-SemiBold.otf) format("opentype")}@font-face{font-family:Pretendard;font-weight:700;src:url(/fonts/Pretendard-Bold.otf) format("opentype")}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:var(--type-body);-webkit-font-smoothing:antialiased;letter-spacing:-.01em}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}.btn{display:inline-flex;align-items:center;gap:6px;height:var(--control-default);padding:0 12px;border-radius:var(--radius-control);border:1px solid var(--line-strong);background:var(--surface2);color:var(--text);font:var(--type-body);font-weight:500;white-space:nowrap}.btn:hover{background:var(--surface3)}.btn.quiet{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn.quiet:hover{background:var(--surface3);color:var(--text)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);height:var(--control-primary);padding:0 16px;font-weight:600}.btn.primary:hover{background:var(--accent-hover)}.btn.danger{border-color:var(--line-strong);color:var(--danger)}.btn.block{width:100%;justify-content:center}.btn.small{height:var(--control-dense);padding:0 10px;font:var(--type-small);font-weight:500}.btn svg{flex:none}.field{width:100%;height:var(--control-primary);padding:0 12px;border-radius:var(--radius-control);border:1px solid var(--line-strong);background:var(--surface1);outline:none}.field:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 24%,transparent)}textarea.field{height:auto;min-height:96px;padding:10px 12px;resize:none;line-height:1.55}.label{font:var(--type-small);color:var(--text-secondary);margin-bottom:6px;display:block}.caption{font:var(--type-caption);color:var(--text-tertiary)}.segmented{display:flex;gap:4px;padding:3px;border-radius:var(--radius-control);background:var(--surface1);border:1px solid var(--line)}.segmented button{flex:1;height:28px;border:0;border-radius:6px;background:transparent;color:var(--text-secondary);font:var(--type-small);font-weight:500}.segmented button.on{background:var(--surface4);color:var(--text)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{height:30px;padding:0 10px;border-radius:15px;border:1px solid var(--line-strong);background:transparent;color:var(--text-secondary);font:var(--type-small);font-weight:500;display:inline-flex;align-items:center;gap:6px}.chip.on{border-color:var(--accent);color:var(--accent-text);background:color-mix(in srgb,var(--accent) 14%,transparent)}.status{display:inline-flex;align-items:center;gap:6px;font:var(--type-small);font-weight:500;color:var(--text-secondary);white-space:nowrap}.status i{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}.status.waiting{color:var(--status-waiting)}.status.working{color:var(--status-working)}.status.done{color:var(--status-approved)}.status.failed{color:var(--status-changes)}.status.check{color:var(--status-review)}.status.live{color:var(--status-approved)}.progress{height:4px;border-radius:2px;background:var(--surface4);overflow:hidden}.progress>span{display:block;height:100%;background:var(--status-working);border-radius:2px}.toggle{width:32px;height:18px;border-radius:9px;background:var(--surface4);position:relative;border:0;padding:0}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--text-secondary);transition:left var(--motion-state)}.toggle.on{background:var(--accent)}.toggle.on:after{left:16px;background:var(--on-accent)}.topbar{height:52px;display:flex;align-items:center;gap:12px;padding:0 16px 0 20px;background:var(--surface1);border-bottom:1px solid var(--line)}.brand{font:700 15px/1 var(--font);letter-spacing:.04em}.edition{font:var(--type-caption);color:var(--accent-text);border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);border-radius:var(--radius-badge);padding:2px 6px}.crumb{color:var(--text-secondary);display:flex;align-items:center;gap:8px}.crumb strong{color:var(--text);font-weight:600}.spacer{flex:1}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font:600 12px/1 var(--font);background:var(--surface4);color:var(--text)}.who{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.line-error{margin:8px 0 0;color:var(--danger);font:var(--type-small)}.art{position:relative;overflow:hidden;background:var(--bg)}.art canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,transparent 70%,var(--surface1) 100%);opacity:.6}.ready{height:100%;display:grid;background:var(--bg)}.ready>.art{grid-area:1 / 1}.ready-card{grid-area:1 / 1;place-self:center;z-index:1;display:flex;flex-direction:column;align-items:center;gap:16px}.ready-card .join-head{display:flex;align-items:center;gap:8px}.ready-card h1{margin:0;font:700 40px/1.2 var(--font);letter-spacing:-.02em}.join{height:100%;display:grid;grid-template-columns:1fr 460px;background:var(--bg)}.join-card{display:flex;flex-direction:column;justify-content:center;gap:0;padding:0 56px;background:var(--surface1);border-left:1px solid var(--line)}.join-head{display:flex;align-items:center;gap:8px;margin-bottom:28px}.join-card h1{font:700 26px/1.3 var(--font);margin:0 0 28px;letter-spacing:-.02em}.join-card .label{margin-top:18px}.join-classes{display:flex;flex-direction:column;gap:6px}.join-class{display:flex;align-items:center;gap:10px;width:100%;height:52px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface2);text-align:left}.join-class.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface2))}.join-class-name{font-weight:600;flex:1}.pin{display:flex;gap:8px}.pin-box{width:56px;height:56px;display:grid;place-items:center;font:700 24px/1 var(--font);border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface1)}.pin-box.focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 24%,transparent)}.join-mine{display:flex;align-items:center;gap:8px;margin:18px 0 22px;color:var(--text-secondary);font:var(--type-small)}.join-mine input{accent-color:var(--accent)}.pin{position:relative}.pin-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;border:0;cursor:text}.join-notice{display:flex;align-items:center;gap:8px;margin:-12px 0 12px;padding:10px 12px;border-radius:var(--radius-control);background:var(--surface2);color:var(--text-secondary)}.join-empty{padding:14px 0}.screen{height:100%;display:flex;flex-direction:column}.workspace{flex:1;display:flex;min-height:0}.crumb .sep{color:var(--text-disabled)}.canvas-area{flex:1;display:flex;flex-direction:column;min-width:0}.canvas-tools{height:48px;display:flex;align-items:center;gap:2px;padding:0 12px;background:var(--bg);border-bottom:1px solid var(--line)}.canvas-name{color:var(--text);font-weight:600}.divider{width:1px;height:20px;background:var(--line-strong);margin:0 8px}.canvas{flex:1;position:relative;overflow:hidden;background-color:var(--bg);background-image:radial-gradient(circle,color-mix(in srgb,var(--text-tertiary) 32%,transparent) 1px,transparent 1.2px);background-size:22px 22px}.edges{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.edges path{fill:none;stroke:var(--edge-default);stroke-width:1.6}.node{position:absolute;background:var(--surface2);border:1px solid var(--line-strong);border-radius:var(--radius-card);box-shadow:0 1px color-mix(in srgb,var(--bg) 40%,transparent)}.node.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 0 5px color-mix(in srgb,var(--accent) 22%,transparent)}.node-head{height:42px;display:flex;align-items:center;gap:8px;padding:0 12px}.node-icon{display:inline-grid;place-items:center}.node-title{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-media{margin:0 8px 8px;border-radius:8px;overflow:hidden;background:var(--media-backdrop);aspect-ratio:4 / 3}.node-media img{width:100%;height:100%;object-fit:cover;display:block}.node.image .node-media{margin-top:0}.node-prompt{margin:0 12px 8px;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.node-meta{margin:0 12px 12px;font:var(--type-caption);color:var(--text-tertiary)}.node-progress{margin:-4px 12px 12px}.node.note{background:color-mix(in srgb,var(--node-note) 14%,var(--surface2));border-color:color-mix(in srgb,var(--node-note) 40%,var(--line-strong))}.node.note .node-prompt{color:var(--text);-webkit-line-clamp:4}.port{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--surface2);border:1.6px solid var(--edge-default);transform:translateY(-50%)}.port.in{left:-6px}.port.out{right:-6px}.drawer{height:148px;background:var(--surface1);border-top:1px solid var(--line);display:flex;flex-direction:column}.drawer-head{height:40px;display:flex;align-items:center;gap:8px;padding:0 12px 0 16px}.drawer-list{display:flex;gap:8px;padding:0 16px 12px;overflow:hidden}.job{width:196px;flex:none;display:flex;gap:10px;padding:8px;border-radius:var(--radius-row);background:var(--surface2);border:1px solid var(--line)}.job-thumb{width:72px;height:72px;border-radius:6px;overflow:hidden;background:var(--surface3);display:grid;place-items:center;flex:none}.job-thumb img{width:100%;height:100%;object-fit:cover}.job-text{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:0}.job-text>span:first-child{font-weight:600}.panel{width:336px;flex:none;background:var(--surface1);border-left:1px solid var(--line);display:flex;flex-direction:column}.panel-head{height:48px;display:flex;align-items:center;gap:8px;padding:0 16px;border-bottom:1px solid var(--line)}.panel-head strong{flex:1;font:var(--type-title)}.panel-body{flex:1;overflow:hidden;padding:16px;display:flex;flex-direction:column;gap:16px}.panel-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel-input{display:flex;align-items:center;gap:10px;padding:6px;border-radius:var(--radius-control);border:1px solid var(--line-strong);background:var(--surface2)}.panel-input img{width:56px;height:40px;object-fit:cover;border-radius:4px}.panel-input span{color:var(--text-secondary)}.panel-foot{padding:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px}.panel-run{display:flex;flex-direction:column;gap:8px}.panel-run-line{display:flex;justify-content:space-between;font:var(--type-small);color:var(--status-working);font-weight:500}.panel-run-line span:last-child{color:var(--text-tertiary)}.canvas{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.canvas:active{cursor:grabbing}.canvas-layer{position:absolute;left:0;top:0;transform-origin:0 0}.canvas-layer .edges{width:1px;height:1px;overflow:visible}.edges path.linking{stroke:var(--accent);stroke-dasharray:5 4}.node{cursor:default}.node-head{cursor:move}.node.link-target{border-color:var(--accent)}.port.out{cursor:crosshair;pointer-events:auto}.port.out:hover{background:var(--accent);border-color:var(--accent)}.node-text{display:block;width:calc(100% - 16px);margin:0 8px 8px;padding:6px 8px;border:1px solid transparent;border-radius:6px;background:var(--surface1);color:var(--text);line-height:1.5;resize:none;outline:none;-webkit-user-select:text;user-select:text}.node-text:focus{border-color:var(--focus)}.node-media{position:relative}.media-wait{display:block;width:100%;height:100%;min-height:120px;background:linear-gradient(90deg,var(--surface3),var(--surface4),var(--surface3));background-size:200% 100%;animation:wait 1.4s linear infinite}.media-wait.small{width:56px;height:40px;min-height:0;border-radius:4px}@keyframes wait{to{background-position:-200% 0}}.media-play{position:absolute;left:8px;bottom:8px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 70%,transparent);color:var(--text)}.canvas-select{height:var(--control-default);max-width:200px;padding:0 8px;border-radius:var(--radius-control);border:1px solid transparent;background:transparent;font-weight:600}.canvas-select:hover{background:var(--surface3)}.tool-error{margin:0 8px}.panel-preview{border-radius:8px;overflow:hidden;background:var(--media-backdrop);aspect-ratio:4 / 3}.panel-preview img{width:100%;height:100%;object-fit:contain;display:block}.panel-actions{display:flex;gap:8px}.panel-seed{display:grid;grid-template-columns:1fr 1fr;gap:8px}.panel-seed .field{height:36px}.panel-body{overflow:auto}.btn:disabled{opacity:.45;cursor:default}.drawer.closed{height:40px}.drawer-list{overflow-x:auto}.job{cursor:default}.job-text .job-cancel{align-self:flex-start;margin-left:-10px}.status.offline{color:var(--text-tertiary)}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 82%,transparent)}.viewer-box{width:min(92vw,1400px);height:min(88vh,900px);display:flex;flex-direction:column;background:var(--surface1);border:1px solid var(--line-strong);border-radius:var(--radius-card);overflow:hidden}.viewer-head{height:48px;display:flex;align-items:center;gap:8px;padding:0 12px 0 16px;border-bottom:1px solid var(--line)}.viewer-media{flex:1;min-height:0;display:grid;place-items:center;background:var(--media-backdrop)}.viewer-media img,.viewer-media video{max-width:100%;max-height:100%;object-fit:contain}.t-side{width:248px;flex:none;background:var(--surface1);border-right:1px solid var(--line);padding:12px 8px;display:flex;flex-direction:column;gap:2px}.t-side-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px 0 8px;margin-bottom:4px}.t-side-head .label{margin:0}.t-course{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:8px;row-gap:2px;align-items:center;text-align:left;padding:10px;border:0;border-radius:var(--radius-row);background:transparent;color:var(--text)}.t-course:hover,.t-course.on{background:var(--surface3)}.t-course-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-course .caption{grid-column:1}.t-course .status{grid-column:2;grid-row:1 / 3}.t-main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}.t-head{height:56px;flex:none;display:flex;align-items:center;gap:12px;padding:0 24px;border-bottom:1px solid var(--line)}.t-tabs{display:flex;gap:4px;height:100%}.t-tabs button{height:100%;padding:0 12px;border:0;background:transparent;color:var(--text-secondary);font:var(--type-body);font-weight:600;border-bottom:2px solid transparent}.t-tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.t-toggle{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font:var(--type-small);font-weight:500}.t-body{flex:1;overflow:auto;padding:24px;display:flex;flex-direction:column;gap:24px}.t-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.t-stat{background:var(--surface1);border:1px solid var(--line);border-radius:var(--radius-card);padding:14px 16px;display:flex;flex-direction:column;gap:4px}.t-stat strong{font:var(--type-metric)}.t-section h2{font:var(--type-title);margin:0 0 12px;display:flex;align-items:center;gap:8px}.t-workers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.t-worker{background:var(--surface1);border:1px solid var(--line);border-radius:var(--radius-card);padding:14px 16px;display:flex;flex-direction:column;gap:8px}.t-worker-top{display:flex;align-items:center;gap:8px}.t-worker-job{display:flex;flex-direction:column;gap:6px;color:var(--text-secondary);font:var(--type-small)}.t-table{width:100%;border-collapse:collapse;background:var(--surface1);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden}.t-table th{text-align:left;font:var(--type-small);color:var(--text-tertiary);font-weight:500;padding:10px 14px;border-bottom:1px solid var(--line)}.t-table td{padding:0 14px;height:46px;border-bottom:1px solid var(--line);white-space:nowrap}.t-table tr:last-child td{border-bottom:0}.t-table .num{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.t-prompt{max-width:340px;overflow:hidden;text-overflow:ellipsis;color:var(--text-secondary)}.t-act{text-align:right;display:flex;gap:4px;justify-content:flex-end;align-items:center;height:46px}.t-filter{width:220px}.g-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.g-card{margin:0;background:var(--surface1);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden}.g-media{position:relative;aspect-ratio:4 / 3;background:var(--media-backdrop)}.g-media img{width:100%;height:100%;object-fit:cover;display:block}.g-play{position:absolute;left:10px;bottom:10px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 65%,transparent);color:var(--text)}.g-card figcaption{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px}.g-line{display:flex;align-items:center;gap:8px}.g-card p{margin:0;color:var(--text-secondary);font:var(--type-small);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar.small{width:22px;height:22px;font-size:11px}.t-error{margin:0}.t-section h2{display:flex;align-items:center;gap:8px}.t-checks{list-style:none;margin:0;padding:12px 16px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px 16px;background:var(--surface1);border:1px solid var(--line);border-radius:var(--radius-card)}.t-checks li{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.t-flows{display:flex;flex-wrap:wrap;gap:4px 12px}.t-new{display:flex;flex-direction:column;gap:8px;padding:8px;margin-bottom:8px;border-radius:var(--radius-row);background:var(--surface2)}.t-new-actions{display:flex;gap:6px}.field.small{height:var(--control-dense);padding:0 8px;width:auto;min-width:64px;max-width:120px}.t-new .field.small{max-width:none;width:100%}.t-upload h2{margin-top:8px}.t-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.t-form>.field{width:220px}.t-form .segmented{width:280px}.t-inline{display:inline-flex;align-items:center;gap:6px}.t-upload .t-checks{margin-top:12px;grid-template-columns:1fr}.chip-x{border:0;background:transparent;padding:0;display:inline-grid;place-items:center;color:inherit}.t-size-add{display:inline-flex;align-items:center;gap:4px;color:var(--text-tertiary)}.t-size-add .field.small{width:64px;min-width:0}.t-settings{display:flex;flex-direction:column;align-items:flex-start;gap:16px;max-width:920px}.t-form-table th{width:200px;vertical-align:middle}.t-form-table td{height:56px;color:var(--text-secondary)}.t-seg{width:200px}.t-pin{display:flex;align-items:center;gap:4px}.t-pin .field.small{width:72px;min-width:0}.btn.quiet.danger-text,.danger-text{color:var(--danger)}.t-login{margin-top:22px}.g-card{cursor:zoom-in}.t-models{color:var(--text-secondary);font:var(--type-small);word-break:break-all}
