@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#141517;--panel:#1c1d20;--line:#303236;--muted:#92959c;--text:#ebeeed;--green:#b0f2c6;--violet:#b8a8f7}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'Noto Sans SC',Arial,sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}button,a,input,textarea,select{ -webkit-tap-highlight-color:transparent}button{color:inherit;border:0;background:none}button:disabled{opacity:.4;cursor:not-allowed}button:hover{filter:brightness(1.15)}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:4px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.topbar{height:76px;display:flex;align-items:center;padding:0 25px;gap:25px;border-bottom:1px solid #292b2d;background:#1b1c1e;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:11px;white-space:nowrap;text-decoration:none;color:inherit}.brand strong{font-size:21px;font-weight:600}.brand small{font-size:11px;letter-spacing:2px;color:#909892;margin-left:6px}.brandmark{height:31px;width:31px;border-radius:9px;background:var(--green);color:#1a3324;font:bold 28px Arial;line-height:35px;padding-left:7px;transform:rotate(-6deg)}.divider{height:24px;border-left:1px solid #36383b}.project-heading{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.breadcrumb{color:var(--muted);font-size:12px;white-space:nowrap}.breadcrumb span{margin-left:14px}.project-heading input{border:none;background:transparent;color:var(--text);width:180px;padding:8px 0;outline:none}.version{font-size:11px;background:#303235;padding:3px 7px;color:#a6a9ad;border-radius:4px}.header-actions{display:flex;align-items:center;gap:14px}.saved{font-size:12px;color:#969d98;white-space:nowrap}.saved:before{content:'✓';margin-right:6px;color:#8fbd9c}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:10px 15px;border-radius:8px;font-size:13px;font-weight:500;white-space:nowrap}.button svg{width:16px;height:16px}.subtle{background:#2b2d30;border:1px solid #383b3d}.primary{background:var(--green);color:#173321}.avatar{width:32px;height:32px;display:grid;place-items:center;border:2px solid #51574f;background:#485b4a;border-radius:50%;font-size:12px}.app-shell{display:flex;height:calc(100dvh - 76px);min-height:500px}.rail{width:76px;flex-shrink:0;border-right:1px solid #292b2e;display:flex;align-items:center;flex-direction:column;padding-top:22px;background:#1b1c1e;gap:12px;z-index:3}.rail-item{display:flex;align-items:center;flex-direction:column;gap:6px;border-radius:10px;padding:12px 10px;color:#95999e;width:54px}.rail-item span{font-size:11px}.rail-item svg{height:21px;width:21px}.rail-item.active{background:#29372e;color:var(--green)}.rail-item:hover{background:#25282a}.rail-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:18px;padding-bottom:20px}.question{border:1.5px solid #7e8489;border-radius:50%;width:19px;height:19px;text-align:center;font-size:13px!important}.rail-line{width:28px;border-top:1px solid #33363a}.team-icon{font:bold 17px Arial;color:#aeb4af;width:30px;height:30px;background:#333837;border-radius:9px;display:grid;place-items:center}#workspace{position:relative;flex:1;overflow:hidden;min-width:0;background-color:#151719;background-image:radial-gradient(#35383b .7px,transparent .7px);background-size:22px 22px}.canvas-heading{position:absolute;left:34px;top:28px;pointer-events:none;z-index:2}.eyebrow{font-family:Arial,sans-serif;font-size:10px;letter-spacing:2px;color:#828b85}.canvas-heading h1{font-size:23px;font-weight:500;letter-spacing:1px;margin:10px 0 8px}.mint-dot{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;margin:0 0 3px 9px}.canvas-heading p{font-size:12px;color:#777f7d;margin:0}.mode-pill{position:absolute;right:24px;top:30px;z-index:2;font-size:11px;color:#9ba59e;background:#202824;border:1px solid #344238;padding:7px 12px;border-radius:20px}.mode-pill span{display:inline-block;width:5px;height:5px;background:#a5c4ab;border-radius:50%;margin-right:6px}.mode-pill i{font-style:normal;margin:0 5px}#canvas{position:absolute;inset:0;overflow:hidden;touch-action:none;outline:none;cursor:grab}#canvas.dragging{cursor:grabbing}#world{position:absolute;left:0;top:0;transform-origin:0 0;width:1px;height:1px}#edges{position:absolute;overflow:visible;width:1px;height:1px;pointer-events:none}.edge-path{stroke:#718d7b;stroke-width:1.7;fill:none}.edge-hit{stroke:transparent;stroke-width:16;fill:none;pointer-events:stroke;cursor:pointer}.edge-hit:hover+.edge-path{stroke:var(--green);stroke-width:3}.node{position:absolute;width:274px;border:1px solid #414548;border-radius:12px;background:#222528;box-shadow:0 12px 36px #0003;cursor:default;user-select:none}.node.selected{border-color:var(--green);box-shadow:0 0 0 1px #b0f2c631,0 12px 30px #0004}.node-header{height:49px;padding:0 15px;display:flex;align-items:center;gap:9px;border-bottom:1px solid #35383c;cursor:grab;background:#282b2e;border-radius:11px 11px 0 0}.node-header svg{width:16px;height:16px;color:#bbbdc2}.node[data-kind=text] .node-header svg{color:#c8bcf5}.node[data-kind=image] .node-header svg{color:#b7d8b0}.node[data-kind=video] .node-header svg{color:#b2c9ff}.node-header strong{font-size:13px;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-index{color:#787e84;font:11px monospace}.node-body{padding:15px}.node-caption{font-size:10px;color:#91989b;letter-spacing:.7px;margin-bottom:11px}.node-text{white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;line-height:1.9;font-size:13px;color:#c4c8ca;min-height:125px}.node-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #34383b;padding:12px 15px;font-size:10px;color:#8f9994}.tiny-label{background:#323a35;color:#bdcbbf;padding:3px 6px;border-radius:4px}.node-meta{display:flex;gap:7px}.node-media{height:153px;background:linear-gradient(145deg,#2d3834,#202624);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;border:1px dashed #49584e;color:#a9b6ad;overflow:hidden}.node[data-kind=video] .node-media{background:linear-gradient(145deg,#2d333e,#22252c);border-color:#454d60;color:#a2acc2}.node-media>svg{width:30px;height:30px;opacity:.7}.node-media span{font-size:12px}.node-media small{font-size:10px;color:#7e8d83}.node-media img,.node-media video{width:100%;height:100%;object-fit:cover}.node-prompt{font-size:12px;line-height:1.8;color:#a5adb1;white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:12px;min-height:43px}.node-action{width:100%;border-radius:6px;background:#333e37;color:#c4e4cf;padding:9px;margin-top:12px;font-size:11px;display:flex;align-items:center;justify-content:center;gap:6px}.node-action svg{width:13px;height:13px}.port{position:absolute;top:48%;width:13px;height:13px;border-radius:50%;background:#252e29;border:2px solid #87b598;padding:0;z-index:4;cursor:crosshair}.port.in{left:-7px}.port.out{right:-7px}.port:hover,.port.armed{background:var(--green);box-shadow:0 0 0 5px #b0f2c622}.node.step::before{content:attr(data-step);position:absolute;top:-31px;left:0;font-size:10px;color:#7c8a81;letter-spacing:1.7px;white-space:nowrap}.add-toolbar{position:absolute;z-index:3;bottom:71px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;border:1px solid #414448;background:#25282bf5;box-shadow:0 6px 28px #0006;border-radius:12px;padding:7px}.add-toolbar button{display:flex;align-items:center;gap:7px;padding:12px 14px;border-radius:7px;white-space:nowrap;font-size:12px;color:#cbd0ce}.add-toolbar button:hover{background:#373e39;color:var(--green)}.add-toolbar>span{height:23px;border-left:1px solid #44494b;margin:0 5px}.add-toolbar svg{width:17px;height:17px}.canvas-footer{position:absolute;bottom:20px;left:27px;right:24px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.canvas-tip{color:#69736d;font-size:10px}.canvas-tip b{margin:0 9px;font-weight:400}.zoom-controls{display:flex;align-items:center;gap:4px;background:#24272a;border:1px solid #3b4040;border-radius:8px;padding:3px;pointer-events:auto}.zoom-controls button{width:30px;height:28px;display:grid;place-items:center;color:#b1bab4;font-size:20px}.zoom-controls span{font-size:10px;min-width:35px;text-align:center}.zoom-controls .separator{min-width:0;height:17px;border-left:1px solid #444}.zoom-controls svg{width:16px;height:16px}#minimap{position:absolute;right:24px;bottom:73px;width:112px;height:69px;border:1px solid #3a3f3c;background:#1d2220b8;border-radius:7px;pointer-events:none}#minimap i{position:absolute;background:#647b6b;border:1px solid #8aaf96;border-radius:2px}#inspector{width:294px;flex-shrink:0;background:#1c1e20;border-left:1px solid #303336;display:flex;flex-direction:column;z-index:4;overflow:auto}.inspector-title{height:65px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid #2d3033;flex-shrink:0}.inspector-title h2{font-size:14px;font-weight:500}.inspector-title>span{color:#7a8480;font-size:11px}.inspector-body{padding:23px 21px;flex:1}.section-label{font-size:10px;letter-spacing:1px;color:#777f7b;margin-bottom:11px}.type-label{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#c4d8ca;margin-bottom:24px}.type-label svg{width:15px;height:15px}.field{display:block;margin-bottom:23px}.field>span,.field-head{display:block;font-size:12px;color:#b0b9b3;margin-bottom:10px}.field-head{display:flex;justify-content:space-between}.field-head small{font-size:10px;color:#737f77}.field input,.field textarea,.field select{width:100%;border:1px solid #3a4040;background:#25292a;border-radius:7px;color:#d0d8d2;padding:10px 11px;outline:none;font-size:12px}.field textarea{resize:vertical;min-height:142px;line-height:1.9}.field input:focus,.field textarea:focus,.field select:focus{border-color:#82ab90}.field select{padding-right:10px}.field-help{font-size:10px;color:#738278;margin-top:8px;line-height:1.8}.segmented{display:flex;gap:5px}.segmented button{flex:1;padding:9px 2px;border:1px solid #3b4240;background:#252a28;border-radius:6px;font-size:11px;color:#89978c}.segmented button.active{background:#2c4033;border-color:#6a9077;color:#c6eed2}.inline-fields{display:flex;gap:12px}.inline-fields .field{flex:1;min-width:0}.ref-row{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #3a4140;border-radius:7px;background:#242a27;margin-bottom:7px;font-size:11px;color:#b5c6bb}.ref-row svg{width:15px;height:15px}.ref-row span{flex:1}.ref-row button{font-size:15px}.muted-copy{font-size:11px;line-height:1.8;color:#7f8c84}.inspector-divider{border-top:1px solid #303633;margin:24px 0}.node-tools{display:flex;gap:8px}.node-tools button{display:flex;align-items:center;justify-content:center;gap:6px;flex:1;border:1px solid #3b4440;border-radius:6px;padding:8px;font-size:11px;color:#99aaa0}.node-tools svg{height:14px;width:14px}.inspector-footer{padding:20px;border-top:1px solid #303633;background:#1e2320}.inspector-footer .button{width:100%;padding:13px}.cost-row{display:flex;justify-content:space-between;font-size:11px;color:#9bac9f;margin-bottom:13px}.cost-row strong{font-weight:500;color:#c7e2d0}.footer-note{text-align:center;font-size:10px;color:#758279;margin:11px 0 0}#empty-canvas{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;color:#7c8f81}#empty-canvas h2{font-size:20px;font-weight:400}#empty-canvas p{font-size:13px}dialog{color:var(--text);background:#202427;border:1px solid #414a45;border-radius:18px;padding:27px;width:min(880px,calc(100vw - 30px));max-height:85dvh;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#080d0ac7;backdrop-filter:blur(5px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-heading h2{font-size:23px;margin:8px 0 0;font-weight:500}.icon-button{width:30px;height:30px;display:grid;place-items:center;border-radius:6px}.icon-button:hover{background:#3a413e}.modal-note{font-size:12px;line-height:1.8;color:#8c9c91;margin:0 0 24px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.stat{padding:18px;background:#292f2b;border:1px solid #3b463e;border-radius:10px}.stat span{font-size:11px;color:#8c9d92;display:block}.stat strong{display:block;font-size:26px;font-weight:500;margin-top:9px;color:#d2efdc}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid #37403b}th{font-size:11px;font-weight:400;color:#8d9d93}td{color:#c2cec6}td small{font-size:10px;color:#7b8c80}.status-tag{background:#304637;color:#b0dabc;border-radius:4px;padding:4px 6px;font-size:10px}.modal-actions{display:flex;gap:10px;margin-top:23px;flex-wrap:wrap}.empty-message{padding:45px 20px;text-align:center;color:#819187;font-size:13px}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:15px}.asset-card{border:1px solid #3b4740;border-radius:9px;overflow:hidden;background:#272e29}.asset-card img,.asset-card video{width:100%;height:120px;object-fit:cover}.asset-card>div{padding:12px}.asset-card p{font-size:12px;margin:0 0 10px}.asset-card button{font-size:11px;color:var(--green)}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.help-grid>div{border:1px solid #3a463e;border-radius:9px;padding:16px}.help-grid h3{font-size:14px;color:#c7e7d1;margin:0 0 9px}.help-grid p{font-size:12px;line-height:1.9;color:#96a49a;margin:0}#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:99;background:#344f3c;border:1px solid #678772;color:#e0f4e7;border-radius:10px;padding:12px 22px;font-size:13px;transition:.2s;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}.progress-bar{height:3px;background:#35483b;overflow:hidden;margin-top:12px}.progress-bar i{display:block;height:100%;background:var(--green);transition:width .2s}.connecting #canvas{cursor:crosshair}.connecting .port.in{box-shadow:0 0 0 4px #b0f2c622}.mobile-close{display:none}.state-label{font-size:10px;color:#aac7b2}.danger{color:#e0a89e!important}
@media(min-width:1600px){#inspector{width:320px}.canvas-heading{top:38px;left:40px}.topbar{padding:0 30px}}@media(max-width:1200px){.breadcrumb,.saved,.brand small{display:none}.topbar{gap:16px;padding:0 18px}#inspector{width:266px}.canvas-heading h1{font-size:20px}.mode-pill{top:108px;left:34px;right:auto}.canvas-tip{display:none}#minimap{display:none}.canvas-footer{justify-content:flex-end}.add-toolbar{bottom:70px}.add-toolbar button{padding:10px}.inspector-body{padding:20px 16px}}@media(max-width:800px){.topbar{height:64px;padding:0 12px;gap:12px}.brand strong{font-size:17px}.brandmark{width:26px;height:26px;font-size:23px;line-height:30px;padding-left:6px}.divider,.version,.avatar{display:none}.project-heading input{width:100%;font-size:12px}.header-actions{gap:6px}.header-actions .button{padding:9px}.header-actions .button span{display:none}.app-shell{height:calc(100dvh - 64px);min-height:420px}.rail{width:58px}.rail-item{width:46px}.canvas-heading{left:23px;top:23px}.canvas-heading h1{font-size:18px}.canvas-heading p{font-size:11px}.mode-pill{left:23px;top:114px;font-size:10px}#inspector{position:absolute;right:0;top:64px;bottom:0;width:min(290px,85vw);box-shadow:-12px 0 40px #0006;display:none}#inspector.mobile-open{display:flex}.mobile-close{display:grid}.add-toolbar{bottom:64px;gap:0;padding:5px}.add-toolbar button{padding:10px 11px}.add-toolbar button span{display:none}.add-toolbar>span{margin:0 3px}.canvas-footer{bottom:15px;right:15px}.canvas-heading .eyebrow{font-size:9px}.stats{gap:6px}.stat{padding:12px 9px}.stat strong{font-size:21px}.help-grid{grid-template-columns:1fr}dialog{padding:20px}.node{box-shadow:0 6px 20px #0003}}
 .account-chip{width:34px;height:34px;border-radius:50%;background:#35483b;border:1px solid #6c8c74;color:#d9f0df;font-size:11px;font-weight:600}.auth-shade{position:fixed;inset:0;z-index:100;background:#111814;display:grid;place-items:center}.auth-panel{width:min(410px,calc(100vw - 32px));padding:38px;background:#202622;border:1px solid #405047;border-radius:16px;box-shadow:0 24px 80px #0008}.auth-panel .brandmark{display:block;margin-bottom:25px}.auth-panel h1{font-size:24px;font-weight:500;margin:0 0 10px}.auth-panel p{font-size:12px;line-height:1.8;color:#9dab9f;margin:0 0 25px}.auth-panel label{display:block;font-size:12px;color:#b7c4ba;margin:0 0 15px}.auth-panel input{display:block;width:100%;margin-top:8px;padding:11px 12px;color:#e4ece6;background:#171b19;border:1px solid #405047;border-radius:7px;outline:none}.auth-panel input:focus{border-color:#9feabc}.auth-panel small{display:block;color:#7e9384;font-size:11px;line-height:1.7;margin:-6px 0 18px}.auth-panel .button{width:100%;padding:13px;margin-top:7px}.auth-panel output{display:block;min-height:20px;color:#f1b3a6;font-size:12px;margin-top:15px}.table-action{color:var(--green);font-size:11px}.admin-section{border-top:1px solid #34403a;padding-top:18px;margin-top:22px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.section-heading h3{font-size:14px;font-weight:500;margin:0}.section-heading small{font-size:11px;color:#829287}.form-error,#company-error{display:block;min-height:20px;color:#f1b3a6;font-size:12px;margin-top:10px}
 .node[data-kind=audio] .node-header svg{color:#e2c38f}.node[data-kind=audio] .node-media{background:linear-gradient(145deg,#3a342b,#26231f);border-color:#675840}.node-media audio{width:90%;max-width:240px}
/* LibTV-style freeform canvas layer */
#workspace{background-color:#101112;background-image:radial-gradient(rgba(255,255,255,.12) .65px,transparent .65px);background-size:24px 24px}
.canvas-heading,.mode-pill{display:none}
#inspector{display:none}
.node{width:248px;background:#242424;border-color:#454545;border-radius:7px;box-shadow:0 14px 32px rgba(0,0,0,.32)}
.node.selected{border-color:#7ca9c7;box-shadow:0 0 0 1px rgba(124,169,199,.45),0 16px 34px rgba(0,0,0,.42)}
.node-header{height:31px;padding:0 7px;gap:6px;background:transparent;border:0;border-radius:7px 7px 0 0}
.node-header svg{width:12px;height:12px;color:#a6a6a6}.node-header strong{font-size:11px;color:#bdbdbd}.node-index{display:none}
.node-body{padding:0 6px 5px}.node-media{height:145px;border:0;border-radius:5px;background:#303030;gap:8px}.node[data-kind=video] .node-media{background:#292e34;border:0}.node[data-kind=audio] .node-media{height:76px;background:#2d2b27}.node-media img,.node-media video{border-radius:5px}.node-media audio{width:92%;max-width:220px}
.node-media>svg{width:26px;height:26px;color:#747474}.node-media span{font-size:11px;color:#8e8e8e}.node-media small{font-size:9px;color:#656565}.node-prompt,.node-action{display:none}.node-bottom{border:0;padding:4px 7px 8px;color:#777;font-size:9px}.node-bottom .node-meta{display:none}.node.step::before{display:none}.port{width:9px;height:9px;border-width:1px;background:#181a1c;border-color:#778c9a}.port.in{left:-5px}.port.out{right:-5px}
.edge-path{stroke:#768b9a;stroke-width:1.15}.edge-hit{stroke-width:14}.edge-hit:hover+.edge-path{stroke:#aad7ef;stroke-width:2.3}
.edge-draft{stroke:#b8dff4;stroke-width:1.8;stroke-dasharray:7 6;fill:none;filter:drop-shadow(0 0 4px rgba(184,223,244,.42))}
.add-toolbar{left:24px;bottom:24px;transform:none;padding:5px;opacity:.78;border-radius:9px;background:#202122d9}.add-toolbar button{padding:8px 10px;font-size:11px}.add-toolbar svg{width:14px;height:14px}.add-toolbar>span{height:18px;margin:0 2px}
.canvas-footer{bottom:20px;left:auto;right:24px}.canvas-tip{display:none}
#composer{display:none;position:absolute;z-index:8;left:50%;bottom:26px;transform:translateX(-50%);width:min(680px,calc(100% - 48px));padding:12px 14px 10px;background:#292929;border:1px solid #3d3d3d;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.5);color:#d5d5d5}#composer.open{display:block}.composer-top{display:flex;justify-content:space-between;align-items:center}.composer-chips{display:flex;gap:7px}.composer-chips button,.composer-expand{padding:5px 9px;border-radius:7px;background:#353535;color:#b9b9b9;font-size:11px}.composer-chips button:hover,.composer-expand:hover{background:#464646;color:#fff}.composer-expand{font-size:15px;padding:3px 7px}.composer-refs{display:flex;gap:6px;margin:10px 0 2px}.composer-ref{position:relative;width:43px;height:43px;display:grid;place-items:center;background:#363636;border-radius:6px;overflow:hidden;color:#a7a7a7}.composer-ref img{width:100%;height:100%;object-fit:cover}.composer-ref b{position:absolute;left:3px;top:2px;font:10px Arial;color:#fff;text-shadow:0 1px 3px #000}.composer-ref svg{width:20px;height:20px}.composer-ref:first-child{outline:1px solid #8c8c8c}.composer-refs+.composer-prompt{}
#composer-prompt{display:block;width:100%;height:88px;resize:vertical;min-height:62px;max-height:220px;padding:9px 2px 4px;border:0;outline:0;background:transparent;color:#e3e3e3;font-size:13px;line-height:1.65}#composer-prompt::placeholder{color:#737373}.composer-bottom{display:flex;align-items:center;gap:9px;color:#8d8d8d;font-size:11px}.composer-bottom select{max-width:165px;padding:5px 22px 5px 3px;border:0;background:#292929;color:#d3d3d3;outline:0;font-size:11px}.composer-divider{height:17px;border-left:1px solid #505050}.composer-setting{padding:4px 3px;color:#a5a5a5;font-size:11px}.composer-setting:disabled{opacity:.65}.composer-spacer{flex:1}.composer-count{color:#777;min-width:20px;text-align:right}.composer-submit{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#f0f0f0;color:#222;font-size:20px;line-height:1}.composer-submit:hover{background:#c5e7fa}
.node-menu{position:fixed;z-index:30;width:220px;padding:8px;background:#272727;border:1px solid #424242;border-radius:14px;box-shadow:0 18px 55px rgba(0,0,0,.58);color:#e1e1e1}.node-menu-title{padding:7px 11px 10px;color:#8b8b8b;font-size:11px}.node-menu button{display:flex;align-items:center;gap:11px;width:100%;height:37px;padding:0 10px;border-radius:7px;text-align:left;color:#d7d7d7;font-size:13px}.node-menu button:hover{background:#3a3a3a}.node-menu button:disabled{color:#626262;opacity:1}.node-menu button svg{width:16px;height:16px;color:#a9a9a9}.node-menu button em{font-style:normal;font-size:9px;margin-left:4px;padding:2px 4px;border-radius:3px;background:#777;color:#252525}.node-menu button em.new{background:#29a5bd;color:#fff}.node-menu button i{font-style:normal;margin-left:auto;color:#aaa}
@media(max-width:800px){#composer{width:calc(100% - 20px);bottom:10px;padding:10px;border-radius:14px}.composer-bottom select{max-width:120px}.composer-setting:nth-of-type(2){display:none}.add-toolbar{left:12px;bottom:12px;transform:none}.add-toolbar button{padding:8px}.canvas-footer{bottom:12px;right:12px}.node-menu{width:210px}}
.parameter-section{margin-bottom:22px}.parameter-section>span,.parameter-section>label,.parameter-grid+span{display:block;font-size:12px;color:#b0b9b3;margin-bottom:10px}.parameter-grid{display:grid;gap:7px}.ratio-grid{grid-template-columns:repeat(5,1fr)}.resolution-grid,.count-grid{grid-template-columns:repeat(3,1fr)}.parameter-grid button{min-height:42px;border:1px solid #3b4240;background:#252a28;border-radius:8px;color:#89978c;font-size:11px;display:flex;align-items:center;justify-content:center;gap:5px;flex-direction:column}.parameter-grid button.active{background:#3a3a39;border-color:#d7d7d7;color:#f0f0f0;box-shadow:0 0 0 1px #ffffff18}.parameter-grid button:hover{border-color:#83a88e}.resolution-grid button,.count-grid button{min-height:34px;flex-direction:row;font-size:12px}.ratio-icon{display:block;width:12px;height:12px;border:1.5px solid currentColor;border-radius:2px;opacity:.9}.ratio-icon.r-1-1{width:12px;height:12px}.ratio-icon.r-9-16{width:8px;height:14px}.ratio-icon.r-16-9{width:16px;height:9px}.ratio-icon.r-3-4{width:10px;height:14px}.ratio-icon.r-4-3{width:14px;height:10px}.ratio-icon.r-3-2{width:15px;height:10px}.ratio-icon.r-2-3{width:9px;height:14px}.ratio-icon.r-21-9{width:17px;height:7px}
#composer{left:0;top:0;bottom:auto;transform:none;width:min(680px,calc(100vw - 48px));pointer-events:auto}
.node{cursor:grab}.node:active{cursor:grabbing}.node .port,.node button,.node video,.node audio{cursor:pointer}
.composer-title-row{display:flex;gap:8px;align-items:center;margin:9px 0 2px}.composer-title-row input{min-width:0;flex:1;padding:7px 9px;border:1px solid #444;background:#242424;border-radius:7px;color:#e5e5e5;font-size:12px;outline:0}.composer-title-row input:focus{border-color:#9ab7a2}.composer-title-row button{padding:7px 11px;border:1px solid #62856d;background:#304538;border-radius:7px;color:#d4f0db;font-size:11px;white-space:nowrap}.node-media img[data-preview]{cursor:zoom-in}.media-preview{display:grid;place-items:center;max-height:65vh;overflow:auto;background:#151515;border-radius:10px;padding:8px}.media-preview img{display:block;max-width:100%;max-height:62vh;object-fit:contain}.asset-card img[data-preview]{cursor:zoom-in}.asset-history-label{display:inline-block;color:#9ab7a2;font-size:11px;padding-top:4px}
.node-media img[data-preview]{object-fit:contain;background:#17191a}.workspace-page{width:min(1440px,calc(100vw - 32px));height:calc(100dvh - 32px);max-width:none;max-height:none;padding:30px 34px;border-radius:16px;overflow:hidden}.workspace-page #modal-content{height:calc(100% - 62px);overflow:auto}.workspace-page .table-wrap{max-height:none}.workspace-page .asset-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}.workspace-page .stats{grid-template-columns:repeat(3,minmax(160px,1fr))}.workspace-page .empty-message{max-width:100%;overflow-wrap:anywhere}.project-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:800px){.workspace-page{width:calc(100vw - 16px);height:calc(100dvh - 16px);padding:20px 16px}.workspace-page .stats{grid-template-columns:1fr 1fr}.workspace-page .asset-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
.composer-parameters{position:absolute;right:14px;bottom:58px;width:330px;padding:14px 12px 10px;background:#292929;border:1px solid #444;border-radius:14px;box-shadow:0 18px 45px #0008;z-index:3}.composer-parameters[hidden]{display:none}.composer-parameters .parameter-section{margin:0 0 14px}.composer-parameters .parameter-section:last-child{margin-bottom:0}.composer-parameters .parameter-section>span{display:block;margin:0 0 8px;color:#b9b9b9;font-size:12px}.composer-parameters .parameter-grid{display:grid;gap:7px}.composer-parameters .resolution-grid,.composer-parameters .count-grid{grid-template-columns:repeat(3,1fr)}.composer-parameters .ratio-grid{grid-template-columns:repeat(5,1fr)}.composer-parameters .parameter-grid button{min-height:34px;border:1px solid #464646;background:#292929;border-radius:8px;color:#969696;font-size:12px;display:flex;align-items:center;justify-content:center;gap:5px;flex-direction:row}.composer-parameters .ratio-grid button{min-height:63px;flex-direction:column;gap:6px}.composer-parameters .parameter-grid button.active{background:#414141;border-color:#e1e1e1;color:#f1f1f1;box-shadow:0 0 0 1px #ffffff18}.composer-parameters .parameter-grid button:hover{border-color:#9cb6a3;color:#e7eee9}.composer-parameters .ratio-icon{display:block;width:12px;height:12px;border:1.5px solid currentColor;border-radius:2px;opacity:.9}.composer-parameters .ratio-icon.r-1-1{width:12px;height:12px}.composer-parameters .ratio-icon.r-9-16{width:8px;height:14px}.composer-parameters .ratio-icon.r-16-9{width:16px;height:9px}.composer-parameters .ratio-icon.r-3-4{width:10px;height:14px}.composer-parameters .ratio-icon.r-4-3{width:14px;height:10px}.composer-parameters .ratio-icon.r-3-2{width:15px;height:10px}.composer-parameters .ratio-icon.r-2-3{width:9px;height:14px}.composer-parameters .ratio-icon.r-21-9{width:17px;height:7px}
@media(max-width:800px){.composer-parameters{right:8px;bottom:57px;width:min(330px,calc(100vw - 36px));max-height:58vh;overflow:auto}.composer-parameters .ratio-grid{grid-template-columns:repeat(5,1fr)}.composer-setting{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.route-view #workspace{background:#151719;background-image:none;overflow:auto}.route-view #canvas,.route-view .canvas-heading,.route-view .mode-pill,.route-view .add-toolbar,.route-view .canvas-footer,.route-view #minimap,.route-view #inspector{display:none}.route-view #route-page{display:block;position:absolute;inset:0;overflow:auto;padding:34px 42px 48px}.route-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:24px;border-bottom:1px solid #303633}.route-page-head h1{font-size:28px;font-weight:500;margin:10px 0 0}.route-page-content{padding-top:25px;max-width:1500px}.route-page-content .table-wrap{max-height:none}.route-page-content .asset-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}.route-page-content .stats{grid-template-columns:repeat(3,minmax(160px,1fr))}.route-page-content .modal-note{max-width:900px}.route-page-content .admin-section:first-of-type{margin-top:0}@media(max-width:800px){.route-view #route-page{padding:22px 18px 35px}.route-page-head h1{font-size:23px}.route-page-content .stats{grid-template-columns:1fr 1fr}.route-page-content .asset-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
.composer-mention-menu{position:absolute;left:14px;bottom:58px;width:min(280px,calc(100% - 28px));padding:6px;background:#292929;border:1px solid #444;border-radius:10px;box-shadow:0 18px 45px #0008;z-index:5}.composer-mention-menu[hidden]{display:none}.composer-mention-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:0;border-radius:7px;background:transparent;color:#dedede;text-align:left;font-size:12px}.composer-mention-menu button:hover{background:#3c4540}.composer-mention-menu img{width:30px;height:30px;border-radius:5px;object-fit:cover}.duration-grid{grid-template-columns:repeat(3,1fr)}
.duration-control{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:10px 11px;border:1px solid #464646;background:#292929;border-radius:8px}.duration-control input[type=range]{width:100%;accent-color:#b0f2c6}.duration-control output,.duration-output{color:#f1f1f1;font-size:12px;min-width:38px;text-align:right}.duration-control small{grid-column:1/-1;color:#888;font-size:10px}
.node-prompt-expand{display:block;margin-top:7px;padding:4px 0;color:#b0f2c6;font-size:11px}.node-prompt-expand:hover{text-decoration:underline}.full-prompt{min-height:320px;white-space:pre-wrap}.composer-ref-mention{position:absolute;right:3px;bottom:3px;width:18px;height:18px;padding:0;border:1px solid #17231b;border-radius:50%;background:#b0f2c6;color:#173321;font:700 12px/16px Arial,sans-serif;text-align:center;box-shadow:0 2px 7px #0009;z-index:2}.composer-ref-mention:hover{filter:brightness(1.12)}.asset-card-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:9px}.asset-card-actions button{font-size:11px;color:var(--green)}
.asset-library-toolbar{display:flex;align-items:center;gap:14px;margin:0 0 18px;padding:11px 13px;border:1px solid #3b4740;border-radius:9px;background:#222a25;color:#afbbb2;font-size:12px}.asset-library-toolbar label{display:inline-flex;align-items:center;gap:7px}.asset-library-toolbar input,.asset-select-control input{accent-color:var(--green)}.asset-library-toolbar [data-asset-selection-count]{color:#87978c}.asset-library-toolbar [data-delete-selected]{margin-left:auto;padding:7px 11px}.asset-select-control{display:inline-flex;align-items:center;gap:5px;color:#9eafa3;font-size:10px}.asset-rename-button{font-size:11px!important;color:var(--green)!important}.asset-library-toolbar .danger{color:#f0b5aa!important}
.composer-prompt-expand{display:block;margin:-2px 0 7px;padding:3px 0;border:0;background:transparent;color:#b0f2c6;font-size:11px}.composer-prompt-expand:hover{text-decoration:underline}
.asset-category-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:10px 12px;border:1px solid #354038;border-radius:10px;background:#202722}.asset-category-label{font-size:11px;color:#8c9c91;margin-right:4px}.asset-category-tabs button{padding:8px 12px;border:1px solid #3b4740;border-radius:7px;color:#9dac9f;font-size:12px}.asset-category-tabs button.active{background:#304938;border-color:#80aa8a;color:#d8f2de}.asset-library-toolbar{flex-wrap:wrap}.asset-library-toolbar label{display:flex;align-items:center}.asset-category-control{display:inline-flex;align-items:center;gap:5px;color:#809287;font-size:10px}.asset-category-control select{max-width:86px;padding:3px 4px;border:1px solid #3b4740;border-radius:4px;background:#202623;color:#c1d1c5;font-size:10px}.asset-card[hidden]{display:none}
.loading-spinner{display:inline-block;width:13px;height:13px;margin-right:7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:frame-spin .75s linear infinite}.composer-submit .loading-spinner{width:14px;height:14px;margin:0;border-width:2px}.is-generating{cursor:wait!important}.node-action.is-generating{background:#30483a;color:#d9f4df;border-color:#70957a}.composer-submit.is-generating{background:#92bca0;color:#16251a;cursor:wait!important;animation:frame-pulse 1.4s ease-in-out infinite}.composer-submit.is-generating:hover{background:#92bca0}.progress-bar.indeterminate i{width:28%!important;animation:frame-progress 1.25s ease-in-out infinite}.button.is-generating{cursor:wait!important;background:#365140;color:#d9f4df}@keyframes frame-spin{to{transform:rotate(360deg)}}@keyframes frame-pulse{0%,100%{box-shadow:0 0 0 0 #9feabc33}50%{box-shadow:0 0 0 6px #9feabc00}}@keyframes frame-progress{0%{transform:translateX(-140%)}100%{transform:translateX(420%)}}
.reference-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;max-height:58vh;overflow:auto}.reference-asset-card{display:flex;gap:10px;padding:9px;border:1px solid #3b4740;border-radius:9px;background:#252c28;min-width:0}.reference-asset-card img{width:72px;height:72px;object-fit:cover;border-radius:6px;background:#171a18;flex-shrink:0}.reference-asset-card>div{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.reference-asset-card strong{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.reference-asset-card small{font-size:10px;color:#89998e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.reference-asset-card button{margin-top:auto;padding:5px 8px;border:1px solid #668c71;border-radius:5px;color:#c9efd2;background:#2d4434;font-size:10px}
