@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Manrope:wght@400;500;600;700&display=swap";:root{font-family:Manrope,sans-serif;color:#d9e2e0;background:#090b0d;font-synthesis:none;--accent: #72f1c2;--accent-dim: rgba(114, 241, 194, .18);--panel: rgba(15, 19, 21, .88);--line: rgba(196, 218, 211, .13);--muted: #77837f;--canvas-grid-color: hsl(0 0% 40%);--canvas-snap-color: var(--accent)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button,input,textarea{font:inherit}button{color:inherit;outline:none}.login-page{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);width:100%;height:100%;overflow:hidden;background:#090b0d}.auth-background{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.auth-dot-field{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.48;background-image:radial-gradient(circle at 1px 1px,rgba(168,194,185,.26) 1px,transparent 1.25px);background-size:24px 24px;-webkit-mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.8) 55%,transparent 88%);mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.8) 55%,transparent 88%)}.auth-network{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.5;mix-blend-mode:screen;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.35),#000 28%,rgba(0,0,0,.72) 62%,transparent 88%);mask-image:linear-gradient(90deg,rgba(0,0,0,.35),#000 28%,rgba(0,0,0,.72) 62%,transparent 88%)}.auth-network .wire{fill:none;stroke:#79f2c31a;stroke-width:1;vector-effect:non-scaling-stroke}.auth-network .pulse{fill:none;stroke:#79f2c380;stroke-width:1.2;stroke-linecap:round;stroke-dasharray:1 34;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 5px rgba(121,242,195,.32));animation:auth-network-flow 5.5s linear infinite}.auth-network .pulse.slow{animation-duration:8s;animation-direction:reverse}.auth-network circle{fill:var(--accent);opacity:.34;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 0 5px rgba(121,242,195,.5));animation:auth-network-node 3.6s ease-in-out infinite alternate}.auth-network circle:nth-of-type(2n){animation-delay:-1.8s}.login-ambient{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 28% 42%,rgba(52,142,111,.19),transparent 33%),radial-gradient(circle at 82% 26%,rgba(35,84,70,.14),transparent 27%);pointer-events:none}.login-topbar{position:absolute;z-index:3;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;height:68px;padding:0 34px;border-bottom:1px solid rgba(196,218,211,.08);background:#080a0c8f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-status{display:flex;align-items:center;gap:8px;color:#66736e;font:500 9px/1 DM Mono,monospace;letter-spacing:.14em}.login-status i{width:5px;height:5px;background:var(--accent);border-radius:50%;box-shadow:0 0 9px var(--accent)}.login-intro{position:relative;z-index:1;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:104px clamp(44px,7vw,120px) 56px}.login-kicker{color:var(--accent);font:500 10px/1 DM Mono,monospace;letter-spacing:.22em}.login-intro h1{margin:20px 0 18px;color:#e2ebe7;font-size:clamp(46px,6vw,82px);font-weight:500;line-height:1.06;letter-spacing:-.055em}.login-intro h1 strong{color:transparent;background:linear-gradient(100deg,#dff9ef 4%,var(--accent) 72%);-webkit-background-clip:text;background-clip:text;font-weight:600}.login-intro>p{max-width:560px;margin:0;color:#77837f;font-size:14px;line-height:1.9}.login-flow{display:flex;align-items:center;height:180px;margin-top:38px}.login-flow svg{width:clamp(70px,10vw,170px);overflow:visible}.login-flow path{fill:none;stroke:#72f1c294;stroke-width:1.4;stroke-dasharray:6 7;filter:drop-shadow(0 0 6px rgba(114,241,194,.35));animation:login-flow-line 1.8s linear infinite}.login-demo-node{position:relative;flex:0 0 auto;width:220px;height:132px;padding:17px;background:linear-gradient(145deg,#1b2223f0,#0e1214f2);border:1px solid rgba(114,241,194,.3);border-radius:5px;box-shadow:0 20px 55px #00000059,0 0 25px #72f1c214;transform:translateZ(0);will-change:transform,box-shadow;animation:login-demo-float 5.8s ease-in-out infinite}.login-demo-node>span{display:flex;align-items:center;gap:7px;color:#899792;font:500 9px/1 DM Mono,monospace;letter-spacing:.14em}.login-demo-node b,.login-demo-node small{display:block;font-weight:500}.login-demo-node b{margin-top:23px;color:#cbd7d2;font-size:11px}.login-demo-node small{margin-top:9px;color:#61706a;font-size:9px}.login-demo-node>i{position:absolute;top:50%;width:12px;height:12px;background:var(--accent);border:4px solid #111719;border-radius:50%;transform:translateY(-50%);animation:login-demo-port 1.8s ease-in-out infinite}.prompt-demo>i{right:-7px}.image-demo{animation-delay:-2.9s}.image-demo{width:190px;height:145px;padding:12px}.image-demo>i{left:-7px}.image-demo div{height:94px;margin-top:12px;background:radial-gradient(circle at 68% 32%,rgba(114,241,194,.26),transparent 25%),linear-gradient(145deg,#25332f,#101716 65%);border:1px solid rgba(196,218,211,.12);animation:login-demo-image 4.4s ease-in-out infinite}.login-panel{position:relative;z-index:2;display:grid;place-items:center;padding:92px 54px 54px;border-left:1px solid rgba(196,218,211,.1);background:linear-gradient(150deg,#111617d1,#080b0cf0);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.login-auth-page .login-panel{display:flex;align-items:center;justify-content:center;padding-top:68px;padding-bottom:68px;overflow-y:auto;scrollbar-gutter:stable both-edges}.login-panel-stack{display:grid;gap:14px;width:min(100%,410px);margin-block:auto}.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:100%;padding:4px;background:#04070880;border:1px solid rgba(196,218,211,.12);border-radius:6px}.auth-switch button{height:34px;color:#71817a;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;font-size:11px;font-weight:700}.auth-switch button:hover{color:#c5d4ce;background:#c4dad30a}.auth-switch button.active{color:#07100d;background:var(--accent);border-color:var(--accent)}.login-panel form{width:min(100%,410px);padding:36px;background:#0f1315c2;border:1px solid rgba(196,218,211,.13);border-radius:8px;box-shadow:0 35px 90px #0000006b,0 0 0 1px #72f1c206}.login-panel-stack form{width:100%}.register-form{border-color:#72f1c233}.login-panel header{margin-bottom:30px}.login-panel header span{color:var(--accent);font:500 9px/1 DM Mono,monospace;letter-spacing:.2em}.login-panel h2{margin:12px 0 7px;color:#e2ebe7;font-size:24px;font-weight:600;letter-spacing:-.04em}.login-panel header p{margin:0;color:#697671;font-size:11px}.login-panel form>label{display:block;margin-top:17px;color:#77847f;font:500 9px/1 DM Mono,monospace;letter-spacing:.12em}.login-input{display:flex;align-items:center;gap:9px;height:44px;margin-top:8px;padding:0 12px;color:#71817a;background:#04070885;border:1px solid rgba(196,218,211,.14);border-radius:4px;transition:border-color .18s,box-shadow .18s}.login-input:focus-within{color:var(--accent);border-color:#72f1c2a6;box-shadow:0 0 0 2px #72f1c214,0 0 18px #72f1c214}.login-input input{min-width:0;flex:1;color:#d8e3de;background:transparent;border:0;outline:0;font-size:12px}.login-input input::placeholder{color:#4d5955}.login-input.input-readonly{border-color:#72f1c242;background:#72f1c20e}.login-input.input-readonly input{cursor:default}.login-input button{display:grid;place-items:center;padding:4px;color:#66736e;background:transparent;border:0;cursor:pointer}.login-options{display:flex;align-items:center;justify-content:space-between;margin:17px 0 21px;color:#697671;font-size:10px}.login-options label{display:flex;align-items:center;gap:7px;cursor:pointer}.login-options input{accent-color:var(--accent)}.login-options button,.login-panel footer button{padding:0;color:#8da199;background:transparent;border:0;cursor:pointer;font-size:inherit}.login-options button:hover,.login-panel footer button:hover{color:var(--accent)}.login-submit{display:flex;align-items:center;justify-content:space-between;width:100%;height:46px;padding:0 16px;color:#07100d;background:var(--accent);border:1px solid var(--accent);border-radius:4px;box-shadow:0 12px 30px #72f1c21f;cursor:pointer;font-size:12px;font-weight:700;transition:filter .16s,transform .16s,box-shadow .16s}.login-submit:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 16px 34px #72f1c233}.login-submit:disabled,.login-submit.disabled{opacity:.48;filter:none;transform:none;box-shadow:none}.login-panel footer{margin-top:22px;color:#5e6b66;font-size:10px;text-align:center}.login-error{margin:-8px 0 18px;padding:12px 13px;color:#fff0ee;background:linear-gradient(135deg,#ff777133,#78272733);border:1px solid rgba(255,119,113,.58);border-left:3px solid #ff7771;border-radius:5px;box-shadow:0 0 0 2px #ff77710f,0 14px 30px #00000038;font-size:12px;font-weight:700;line-height:1.45}@keyframes login-demo-float{0%,to{transform:translateZ(0) rotate(0);box-shadow:0 20px 55px #00000059,0 0 25px #72f1c214}50%{transform:translate3d(0,-9px,0) rotate(.35deg);box-shadow:0 30px 66px #0000006b,0 0 34px #72f1c224}}@keyframes login-flow-line{to{stroke-dashoffset:-26}}@keyframes login-demo-port{0%,to{box-shadow:0 0 #72f1c23d}50%{box-shadow:0 0 0 7px #72f1c200}}@keyframes login-demo-image{0%,to{filter:brightness(1);background-position:0 0}50%{filter:brightness(1.16);background-position:8px -6px}}@keyframes auth-network-flow{to{stroke-dashoffset:-140}}@keyframes auth-network-node{to{opacity:.75;transform:scale(1.35)}}@media(prefers-reduced-motion:reduce){.auth-network .pulse,.auth-network circle,.login-flow path,.login-demo-node,.login-demo-node>i,.image-demo div{animation:none}}.register-page .login-panel form{padding-top:32px}.register-ambient{background:radial-gradient(circle at 24% 45%,rgba(52,142,111,.18),transparent 34%),radial-gradient(circle at 78% 25%,rgba(87,129,113,.12),transparent 28%)}.register-signal{display:grid;grid-template-columns:1fr 32px 1fr 32px 1fr;align-items:center;width:min(760px,100%);margin-top:40px}.register-signal article{min-width:0;height:118px;padding:15px;background:linear-gradient(145deg,#1b2223f0,#0e1214f2);border:1px solid rgba(114,241,194,.26);border-radius:5px;box-shadow:0 20px 55px #00000052,0 0 25px #72f1c212}.register-signal article span{display:flex;align-items:center;gap:7px;color:#899792;font:500 9px/1 DM Mono,monospace;letter-spacing:.14em}.register-signal article b{display:block;margin-top:24px;color:#cbd7d2;font:600 11px/1 DM Mono,monospace;letter-spacing:.1em}.register-signal article small{display:block;margin-top:9px;color:#61706a;font-size:9px}.register-signal>i{height:1px;background:linear-gradient(90deg,#72f1c29e,#72f1c214);box-shadow:0 0 8px #72f1c247}.register-code-input button{width:28px;height:28px;padding:0;border-left:1px solid rgba(196,218,211,.1);font-size:10px}.register-code-input button:disabled,.register-code-input button.disabled{opacity:.42}.register-code-countdown{min-width:28px;color:#8da199;font:600 10px/1 DM Mono,monospace;text-align:right}.login-input.input-error{border-color:#ff77718f;box-shadow:0 0 0 2px #ff777112}.register-warning,.register-notice,.register-error{margin:12px 0 0;font-size:10px;line-height:1.6}.register-warning{color:#ff8c86}.register-notice{color:var(--accent)}.register-error{padding:10px 11px;color:#ffd2cf;background:#ff77711a;border:1px solid rgba(255,119,113,.28);border-radius:4px}.register-submit{margin-top:22px}.projects-page{position:relative;width:100%;height:100%;overflow:auto;background:#090b0d}.projects-ambient{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 78% 10%,rgba(51,129,101,.14),transparent 31%),radial-gradient(circle at 12% 80%,rgba(33,76,67,.1),transparent 28%);pointer-events:none}.projects-topbar{position:sticky;z-index:20;top:0;display:grid;grid-template-columns:1fr auto;align-items:center;height:64px;padding:0 28px;border-bottom:1px solid rgba(196,218,211,.09);background:#080a0cd1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.projects-topbar nav{display:flex;gap:4px}.projects-topbar nav button,.projects-user button{display:flex;align-items:center;gap:7px;height:32px;padding:0 11px;color:#718079;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;font-size:10px}.projects-topbar nav button:hover,.projects-topbar nav button.active,.projects-user button:hover{color:var(--accent);background:var(--accent-dim);border-color:#72f1c229}.projects-user{position:relative;display:flex;align-items:center;justify-content:flex-end}.projects-user .projects-user-trigger{gap:9px;max-width:min(360px,45vw);color:#8b9993;font:500 12px/1 DM Mono,monospace;letter-spacing:.08em}.projects-user-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-user-trigger i{flex:0 0 auto;width:5px;height:5px;background:var(--accent);border-radius:50%;box-shadow:0 0 8px var(--accent)}.projects-user-chevron{flex:0 0 auto;transition:transform .16s ease}.projects-user-chevron.open{transform:rotate(180deg)}.projects-user-menu{position:absolute;z-index:30;top:calc(100% + 9px);right:0;width:230px;padding:8px;background:#0e1214fa;border:1px solid rgba(196,218,211,.14);border-radius:6px;box-shadow:0 18px 48px #0000006b,0 0 24px #72f1c20a}.projects-user-credit{display:flex;align-items:center;justify-content:space-between;min-height:48px;margin-bottom:6px;padding:0 11px;color:var(--accent);background:#72f1c20f;border:1px solid rgba(114,241,194,.12);border-radius:4px}.projects-user-credit span{display:flex;align-items:center;gap:8px;font-size:10px}.projects-user-credit b{font:600 12px/1 DM Mono,monospace}.projects-user-menu button{width:100%;height:38px;justify-content:flex-start;font-size:11px}.projects-user-menu button span{font:inherit;letter-spacing:.02em}.projects-user-menu .projects-user-logout{margin-top:5px;padding-top:5px;border-top-color:#c4dad31a;border-radius:0 0 4px 4px}.projects-user-menu .projects-user-logout:hover{color:#ff8b85;background:#ff777114;border-color:#ff77711f}.invite-toast{position:fixed;z-index:100;top:80px;right:28px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:min(430px,calc(100vw - 36px));min-height:52px;padding:10px 10px 10px 12px;color:#bcebd8;background:#0d1b17f7;border:1px solid rgba(114,241,194,.3);border-radius:6px;box-shadow:0 18px 48px #00000073,0 0 24px #72f1c212;font:500 11px/1.55 DM Mono,monospace}.invite-toast>i{display:grid;place-items:center;width:28px;height:28px;color:var(--accent);background:#72f1c21a;border-radius:50%}.invite-toast>span{min-width:0;overflow-wrap:anywhere}.invite-toast>button{display:grid;place-items:center;width:28px;height:28px;padding:0;color:#718079;background:transparent;border:0;border-radius:4px;cursor:pointer}.invite-toast>button:hover{color:var(--accent);background:#72f1c214}.invite-toast-enter-active,.invite-toast-leave-active{transition:opacity .18s ease,transform .18s ease}.invite-toast-enter-from,.invite-toast-leave-to{opacity:0;transform:translateY(-8px)}.projects-content{position:relative;z-index:1;width:min(1420px,calc(100% - 64px));margin:0 auto;padding:58px 0 80px}.projects-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.projects-heading h1{margin:12px 0 5px;color:#e1ebe7;font-size:clamp(30px,4vw,48px);font-weight:600;letter-spacing:-.05em}.projects-heading p{margin:0;color:#697671;font-size:12px}.projects-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:38px 0 18px;padding-top:20px;border-top:1px solid rgba(196,218,211,.09)}.projects-toolbar label{display:flex;align-items:center;gap:9px;width:min(340px,100%);height:38px;padding:0 11px;color:#66736e;background:#0c1011c7;border:1px solid rgba(196,218,211,.12);border-radius:4px}.projects-toolbar label:focus-within{color:var(--accent);border-color:#72f1c27a}.projects-toolbar input{min-width:0;flex:1;color:#d3dfda;background:transparent;border:0;outline:0;font-size:11px}.projects-toolbar input::placeholder{color:#56625d}.projects-toolbar>span{color:#5e6b65;font:500 8px/1 DM Mono,monospace;letter-spacing:.14em}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.project-create-card,.project-card{min-height:240px;background:#0e1214db;border:1px solid rgba(196,218,211,.12);border-radius:6px;transition:border-color .18s,box-shadow .18s,transform .18s}.project-create-card{display:grid;place-items:center;align-content:center;gap:10px;color:#6b7872;cursor:pointer}.project-create-card i{display:grid;place-items:center;width:48px;height:48px;margin-bottom:4px;color:var(--accent);background:var(--accent-dim);border:1px solid rgba(114,241,194,.3);border-radius:50%;box-shadow:0 0 22px #72f1c214}.project-create-card b{color:#bac7c1;font-size:12px;font-weight:600}.project-create-card span{font-size:10px}.project-create-card:hover,.project-card:hover{border-color:#72f1c280;box-shadow:0 20px 55px #00000047,0 0 25px #72f1c212;transform:translateY(-2px)}.project-card{overflow:hidden;cursor:pointer}.project-preview{position:relative;height:126px;overflow:hidden;border-bottom:1px solid rgba(196,218,211,.09);background:radial-gradient(circle at 70% 24%,rgba(59,143,112,.17),transparent 30%),#0a0d0e}.project-preview.tone-2{filter:hue-rotate(28deg)}.project-preview.tone-3{filter:hue-rotate(-24deg)}.project-preview.tone-4{filter:hue-rotate(60deg)}.project-preview svg{position:absolute;top:20px;right:45px;bottom:20px;left:45px;width:calc(100% - 90px);height:calc(100% - 40px)}.project-preview path{fill:none;stroke:#72f1c28c;stroke-width:1.4;stroke-dasharray:4 5}.preview-node{position:absolute;z-index:1;display:flex;align-items:center;gap:5px;width:96px;height:54px;padding:8px;color:#7f8d87;background:#141b1bf2;border:1px solid rgba(114,241,194,.28);border-radius:3px;font:500 7px/1 DM Mono,monospace;letter-spacing:.1em;box-shadow:0 12px 25px #00000047}.preview-node-a{left:13%;top:31px}.preview-node-b{right:13%;bottom:25px}.project-preview>i{position:absolute;left:10px;bottom:8px;color:#4d5b55;font:500 6px/1 DM Mono,monospace;letter-spacing:.1em}.project-card-body{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:15px 15px 12px}.project-card-body h2{margin:0 0 5px;color:#cad6d1;font-size:12px;font-weight:600}.project-card-body p{margin:0;color:#62706a;font-size:9px}.project-card-body button{padding:3px;color:#65716c;background:transparent;border:0;cursor:pointer}.project-title-row{display:flex;min-width:0;align-items:center;gap:5px;margin-bottom:5px}.project-title-row h2{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-title-row input{min-width:0;height:25px;padding:0 7px;color:#cad6d1;background:#04070885;border:1px solid rgba(114,241,194,.48);border-radius:3px;outline:0;font-size:11px}.project-title-row button:hover{color:var(--accent)}.project-description-input{width:100%;height:24px;padding:0 7px;color:#8b9993;background:#04070885;border:1px solid rgba(196,218,211,.18);border-radius:3px;outline:0;font-size:9px}.project-description-input:focus{border-color:#72f1c27a}.project-card-body .project-delete-button:hover{color:#ff7771}.project-card footer{display:flex;align-items:center;gap:15px;padding:0 15px 14px;color:#596660;font:500 7px/1 DM Mono,monospace;letter-spacing:.1em}.project-card footer b{color:#8d9b95;font-weight:500}.project-card footer button{display:flex;align-items:center;gap:5px;margin-left:auto;padding:0;color:#74827c;background:transparent;border:0;cursor:pointer;font-size:9px}.project-card:hover footer button{color:var(--accent)}.project-delete-overlay{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#030506c7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.project-delete-dialog{position:relative;width:min(100%,390px);padding:30px;text-align:center;background:#111516;border:1px solid rgba(255,119,113,.24);border-radius:8px;box-shadow:0 35px 90px #00000094,0 0 30px #ff77710f}.project-delete-dialog>i{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 18px;color:#ff7771;background:#ff77711a;border:1px solid rgba(255,119,113,.25);border-radius:50%}.project-delete-dialog>span{color:#ff7771;font:500 8px/1 DM Mono,monospace;letter-spacing:.18em}.project-delete-dialog h2{margin:12px 0 8px;color:#e1e9e6;font-size:18px;font-weight:600}.project-delete-dialog p{margin:0;color:#68756f;font-size:10px;line-height:1.7}.project-delete-dialog .project-delete-error{margin-top:12px;color:#ff7771}.project-delete-dialog footer{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:24px}.project-delete-dialog footer button{height:36px;color:#9eaaa5;background:#ffffff09;border:1px solid rgba(196,218,211,.12);border-radius:4px;cursor:pointer;font-size:10px}.project-delete-dialog footer button:hover{color:#d7e1dd;border-color:#c4dad347}.project-delete-dialog button:disabled{opacity:.55;cursor:wait}.project-delete-dialog footer .danger{color:#180807;background:#ff7771;border-color:#ff7771;font-weight:700}.project-name-dialog{border-color:#72f1c23d}.project-name-dialog>i{color:var(--accent);background:var(--accent-dim);border-color:#72f1c24d}.project-name-dialog>span{color:var(--accent)}.project-name-dialog input,.project-name-dialog textarea{width:100%;margin-top:12px;padding:0 11px;color:#d8e3de;background:#04070885;border:1px solid rgba(196,218,211,.18);border-radius:4px;outline:0;font-size:12px}.project-name-dialog input{height:40px;margin-top:20px}.project-name-dialog textarea{height:76px;padding-top:10px;resize:none}.project-name-dialog input:focus,.project-name-dialog textarea:focus{border-color:#72f1c2a6;box-shadow:0 0 0 2px #72f1c214}.project-name-dialog small{display:block;margin-top:8px;color:#ff7771;font-size:9px;text-align:left}.project-name-dialog footer .confirm{color:#07100d;background:var(--accent);border-color:var(--accent);font-weight:700}.project-name-dialog footer .confirm{display:flex;align-items:center;justify-content:center;gap:6px}.button-spinner{animation:button-spinner .8s linear infinite}@keyframes button-spinner{to{transform:rotate(360deg)}}.project-delete-close{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:28px;height:28px;padding:0;color:#68756f;background:transparent;border:0;cursor:pointer}.project-delete-close:hover{color:#ff7771}@keyframes image-converting-spin{to{transform:rotate(360deg)}}.canvas-viewport{position:relative;width:100%;height:100%;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:none;background:#090b0d;cursor:grab}.canvas-viewport:active{cursor:grabbing}.canvas-viewport.selecting,.canvas-viewport.selecting:active{cursor:default}.canvas-dot-grid{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;overflow:hidden;color:var(--canvas-grid-color);pointer-events:none;touch-action:none;contain:strict;-webkit-mask-image:radial-gradient(ellipse at center,#000 18%,#000000e0 72%,#0000009e);mask-image:radial-gradient(ellipse at center,#000 18%,#000000e0 72%,#0000009e)}.canvas-dot-grid__dot{fill:currentColor}.canvas-viewport.zoom-animating .canvas-world{transition:transform .16s cubic-bezier(.2,.75,.25,1);will-change:transform}.ambient-light{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 70% 18%,rgba(53,124,101,.12),transparent 34%),radial-gradient(circle at 18% 82%,rgba(33,76,67,.13),transparent 28%)}.canvas-world{position:absolute;z-index:2;left:0;top:0;transform-origin:0 0}.connection-layer{position:absolute;z-index:18;left:0;top:0;width:1px;height:1px;overflow:visible}.connection-hit{fill:none;stroke:transparent;stroke-width:18;pointer-events:stroke;cursor:pointer}.connection-line{fill:none;stroke:#9ab1a96b;stroke-width:2;pointer-events:none;transition:stroke .2s,stroke-width .2s,filter .2s}.connection-line.primary{stroke:#72f1c2;stroke-width:3;filter:drop-shadow(0 0 8px rgba(114,241,194,.5))}.connection-line.upscale,.connection-line.angle,.connection-line.toolbox{stroke:#7effd2e6;stroke-width:3;filter:drop-shadow(0 0 10px rgba(114,241,194,.58))}.connection-line.selected,.connection-line.active{stroke:var(--accent);stroke-width:2.5;filter:drop-shadow(0 0 7px rgba(114,241,194,.4))}.connection-line.collapsed{stroke:#72f1c2b8;stroke-dasharray:10 8;filter:drop-shadow(0 0 8px rgba(114,241,194,.22));animation:collapsed-dash 1.8s linear infinite}.connection-line.active{stroke-dasharray:6 7;animation:dash .8s linear infinite}.connection-actions{display:flex;align-items:center;justify-content:center;gap:5px;width:max-content;min-width:28px;height:28px;padding:4px;background:#101617;border:1px solid rgba(114,241,194,.34);border-radius:16px;box-shadow:0 6px 18px #00000073}.connection-actions-overlay{position:absolute;z-index:105;transform:translate(-50%,-50%)}.connection-primary{height:20px;padding:0 8px;color:#bcebd8;background:#72f1c21a;border:0;border-radius:10px;font-size:9px;cursor:pointer}.connection-primary:hover{color:#07100d;background:var(--accent)}.connection-switcher{display:grid;gap:4px;width:210px;max-height:240px;padding:7px;overflow-y:auto;color:#aebbb6;background:#0d1213f7;border:1px solid rgba(143,156,151,.28);border-radius:6px;box-shadow:0 18px 40px #00000075}.connection-switcher-overlay{position:absolute;z-index:105;transform:translate(-50%)}.connection-switcher strong{padding:2px 4px 5px;color:#7f8e88;font:600 9px/1 DM Mono,monospace;letter-spacing:.12em}.connection-switcher-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:5px;min-height:30px;padding:3px;border-radius:4px}.connection-switcher-row.active{background:#72f1c214}.connection-switcher-select{min-width:0;padding:4px 5px;color:#c7d2ce;background:transparent;border:0;text-align:left;cursor:pointer}.connection-switcher-select span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-switcher-select span{font-size:10px;font-weight:600}.connection-switcher-select:hover span{color:var(--accent)}.connection-switcher-badge{padding:0 2px;color:#8f9c97;background:transparent;border-radius:0;font-size:9px;font-style:normal;font-weight:600;line-height:1}.connection-switcher-delete{position:relative;width:20px;height:20px;padding:0;color:#8f9c97;background:transparent;border:0;border-radius:4px;cursor:pointer}.connection-switcher-delete:before,.connection-switcher-delete:after{content:"";position:absolute;left:50%;top:50%;width:8px;height:1px;background:currentColor;border-radius:999px;transform:translate(-50%,-50%) rotate(45deg)}.connection-switcher-delete:after{transform:translate(-50%,-50%) rotate(-45deg)}.connection-switcher-delete:hover{color:#ff9a95;background:#ff777114}.connection-delete{position:relative;display:block;width:18px;height:18px;padding:0;color:#d9e4df;background:#151b1c;border:1px solid rgba(114,241,194,.62);border-radius:50%;box-shadow:0 5px 16px #00000080,0 0 12px #72f1c229;cursor:pointer;transition:color .16s,background .16s,border-color .16s,transform .16s}.connection-delete:before,.connection-delete:after{content:"";position:absolute;left:50%;top:50%;width:8px;height:1px;background:currentColor;border-radius:999px;transform:translate(-50%,-50%) rotate(45deg)}.connection-delete:after{transform:translate(-50%,-50%) rotate(-45deg)}.connection-delete:hover{color:#07100d;background:var(--accent);border-color:var(--accent);transform:scale(1.08)}.node-delete{position:absolute;z-index:12;right:-11px;top:-11px;width:24px;height:24px;padding:0;color:#d9e4df;background:#151b1c;border:1px solid rgba(114,241,194,.5);border-radius:50%;box-shadow:0 5px 14px #0000007a;opacity:0;cursor:pointer;transition:opacity .16s,color .16s,background .16s,transform .16s}.node-delete:before,.node-delete:after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;background:currentColor;border-radius:999px;transform:translate(-50%,-50%) rotate(45deg)}.node-delete:after{transform:translate(-50%,-50%) rotate(-45deg)}.canvas-node:hover .node-delete,.canvas-node.selected .node-delete{opacity:1}.node-delete:hover{color:#07100d;background:var(--accent);transform:scale(1.08)}.canvas-node:hover .node-delete:disabled,.canvas-node.selected .node-delete:disabled{opacity:.28}.node-delete:disabled,.node-delete:disabled:hover{color:#7d8984;background:#151b1c;cursor:not-allowed;transform:none}@keyframes dash{to{stroke-dashoffset:-13}}@keyframes collapsed-dash{to{stroke-dashoffset:-36}}.canvas-node{position:absolute;z-index:20;display:flex;flex-direction:column;padding:22px 24px;color:#dce6e2;background:linear-gradient(145deg,#1b2223f5,#0e1214f5);border:1px solid rgba(183,211,201,.15);border-radius:5px;box-shadow:0 24px 55px #00000057,inset 0 1px #ffffff06;cursor:move;transition:border-color .18s,box-shadow .18s;contain:layout style}.canvas-group{position:absolute;z-index:10;box-sizing:border-box;border:1px solid rgba(114,241,194,.46);border-radius:6px;background:#72f1c209;box-shadow:inset 0 0 0 1px #72f1c212,0 18px 55px #00000029;cursor:move;transition:border-color .16s,background .16s,box-shadow .16s}.canvas-group:hover,.canvas-group.selected{border-color:#72f1c2e6;background:#72f1c20e;box-shadow:inset 0 0 0 1px #72f1c229,0 0 22px #72f1c21f}.canvas-group span,.canvas-group-title-input{position:absolute;left:12px;top:-26px;max-width:calc(100% - 24px);padding:2px 0;overflow:hidden;color:#8f9c97;background:transparent;border:0;border-radius:0;text-overflow:ellipsis;white-space:nowrap;font:600 11px/1 Inter,sans-serif;text-shadow:0 2px 8px rgba(0,0,0,.72);box-shadow:none}.canvas-group span{cursor:text}.canvas-group-title-input{width:min(220px,calc(100% - 24px));outline:0;text-overflow:clip}.canvas-group-title-input:focus{color:#c1cbc7;box-shadow:none}.canvas-group-ungroup{position:absolute;right:-10px;top:-10px;width:20px;height:20px;padding:0;color:#d6dfdc;background:#14191a;border:1px solid rgba(143,156,151,.78);border-radius:50%;box-shadow:0 6px 16px #0000006b;cursor:pointer}.canvas-group-ungroup:before,.canvas-group-ungroup:after{content:"";position:absolute;left:50%;top:50%;width:9px;height:1.5px;background:currentColor;border-radius:999px;transform:translate(-50%,-50%) rotate(45deg)}.canvas-group-ungroup:after{transform:translate(-50%,-50%) rotate(-45deg)}.canvas-group-ungroup:hover{color:#07100d;background:#d6dfdc;border-color:#d6dfdc}.canvas-node.selected{z-index:50}.canvas-node.dropdown-open{z-index:100}.canvas-node:hover,.canvas-node.selected{border-color:#72f1c2ad;box-shadow:0 25px 60px #0000006b,0 0 0 1px #72f1c21f}.canvas-node.selected{border-color:var(--accent);box-shadow:0 25px 60px #0000006b,0 0 0 2px #72f1c2c7,0 0 14px #72f1c294,0 0 34px #72f1c247}.canvas-node.generating.selected{border-color:#b7d3c926;box-shadow:0 24px 55px #00000057,inset 0 1px #ffffff06}.upscale-node,.toolbox-node{background:linear-gradient(145deg,#181f1ff5,#0d1113f5)}.canvas-node.generating:before{content:"";position:absolute;z-index:60;top:-3px;right:-3px;bottom:-3px;left:-3px;padding:2px;pointer-events:none;border-radius:7px;background:conic-gradient(from var(--node-edge-angle),transparent 0 54%,rgba(114,241,194,.16) 64%,rgba(114,241,194,.54) 76%,rgba(230,255,246,1) 87%,rgba(114,241,194,.78) 94%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;filter:drop-shadow(0 0 6px rgba(114,241,194,.62));animation:node-image-edge 3.2s linear infinite}.node-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;color:var(--muted)}.node-type{display:flex;align-items:center;gap:7px;font:500 10px/1 DM Mono,monospace;letter-spacing:.15em}.node-type{min-width:0}.node-type svg{flex:0 0 auto}.node-grip{opacity:.28}.image-node{gap:0;padding:0;overflow:visible;background:#101516;border-color:#b7d3c926;border-radius:5px;box-shadow:0 24px 55px #00000057,inset 0 1px #ffffff06}.image-node-header{position:relative;z-index:4;display:flex;flex:0 0 28px;align-items:center;justify-content:space-between;min-width:0;padding:0 6px 0 9px;color:var(--muted);background:linear-gradient(180deg,#1d2424f0,#131919f0);border-bottom:1px solid rgba(114,241,194,.1);border-radius:4px 4px 0 0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.image-node-title{display:flex;align-items:center;gap:7px;min-width:0;font:500 10px/1 DM Mono,monospace;letter-spacing:.12em}.image-node-title svg{flex:0 0 auto;color:#e5f0ebb8}.image-node-title span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-node-size{flex:0 0 auto;max-width:190px;overflow:hidden;color:#e5f0eb6b;font:500 8px/1 DM Mono,monospace;letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap}.image-node-body{position:relative;flex:1;min-height:0;overflow:hidden;background:#101516;border-radius:0 0 4px 4px}.node-image{display:block;width:100%;height:100%;object-fit:cover;cursor:move}.canvas-node:has(.node-image-pending){background:linear-gradient(145deg,#1b2223f5,#0e1214f5)}.node-image-pending{position:relative;display:grid;place-content:center;justify-items:center;gap:18px;width:100%;height:100%;overflow:hidden;color:var(--accent);background:linear-gradient(145deg,#1b2223f5,#0e1214f5);border-radius:4px;box-shadow:inset 0 1px #ffffff06}.image-node:has(.node-image-pending){background:#101516}.image-node .node-image-pending{border-radius:0 0 4px 4px}.node-loading-edge{position:absolute;z-index:60;top:-3px;right:-3px;bottom:-3px;left:-3px;padding:2px;pointer-events:none;border-radius:7px;background:conic-gradient(from var(--node-edge-angle),transparent 0 76%,rgba(114,241,194,.1) 83%,var(--accent) 90%,transparent 97%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;filter:drop-shadow(0 0 5px rgba(114,241,194,.62));animation:node-image-edge 2.8s linear infinite}.node-image-loader{position:relative;z-index:2;display:grid;place-items:center;width:92px;height:92px;color:#bbffe5e6;border:1px solid rgba(114,241,194,.16);border-radius:50%;box-shadow:inset 0 0 28px #72f1c20d,0 0 38px #72f1c214}.node-image-loader:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:3px solid transparent;border-top-color:var(--accent);border-right-color:#72f1c22e;border-radius:50%;filter:drop-shadow(0 0 7px rgba(114,241,194,.6));animation:node-image-spin 1.15s linear infinite}.node-image-loader svg{opacity:.7;animation:node-image-icon 1.7s ease-in-out infinite}.node-image-timer{position:relative;z-index:2;display:grid;place-items:center;width:auto;height:auto;color:#bbffe5eb;background:transparent;border:0;border-radius:0;box-shadow:none;font:700 36px/1 DM Mono,monospace;letter-spacing:.03em}.node-image-timer svg{opacity:.75}.node-image-pending.error{color:#ff7771}.node-image-pending.error .node-image-timer{color:#ff9a95;border-color:transparent;box-shadow:none}.node-image-pending.error .node-image-loader{color:#ff9a95;border-color:#ff777138;box-shadow:inset 0 0 28px #ff77710d,0 0 38px #ff777114}.node-image-pending.error .node-image-loader:before,.node-image-pending.error .node-image-loader svg{animation:none}.node-image-pending.error .node-image-loader:before{border-top-color:#ff7771;border-right-color:#ff77712e}.node-image-pending strong{color:#d8eee5;font-size:22px;font-weight:600}.node-image-pending strong,.node-image-pending span{position:relative;z-index:2}.node-image-pending span{color:#61766d;font:500 14px/1 DM Mono,monospace;letter-spacing:.08em}.node-image-timer span{color:inherit;font:inherit;letter-spacing:inherit}.image-run-retry{position:relative;z-index:2;display:flex;align-items:center;gap:6px;height:28px;margin-top:3px;padding:0 8px 0 10px;color:#ffd0cc;background:#ff77711a;border:1px solid rgba(255,119,113,.32);border-radius:4px;cursor:pointer;font-size:10px}.image-run-retry:hover{color:#fff;background:#ff777133}.retry-credit-cost{display:inline-flex;align-items:center;gap:3px;height:18px;margin-left:2px;padding:0 5px;color:var(--accent);background:#72f1c21a;border:1px solid rgba(114,241,194,.2);border-radius:9px;font:600 9px/1 DM Mono,monospace;font-style:normal}@keyframes node-image-spin{to{transform:rotate(360deg)}}@property --node-edge-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@keyframes node-image-edge{to{--node-edge-angle: 360deg}}@keyframes node-image-icon{0%,to{opacity:.4;transform:scale(.92)}50%{opacity:.95;transform:scale(1)}}.image-preview-button{position:absolute;z-index:3;right:10px;top:10px;display:grid;place-items:center;width:28px;height:28px;padding:0;color:#e5f0ebb3;background:#070a0b5c;border:1px solid rgba(215,235,227,.08);border-radius:5px;box-shadow:0 10px 22px #00000024;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:color .16s,background .16s,border-color .16s,transform .16s}.image-preview-button:hover{color:var(--accent);background:var(--accent-dim);border-color:#72f1c22e;transform:translateY(-1px)}.prompt-input-wrap{position:relative;flex:1;min-height:0;width:100%}.node-generation-mask{position:absolute;z-index:90;top:0;right:0;bottom:0;left:0;display:flex;place-items:center;align-items:center;justify-content:center;flex-direction:column;color:#d3ffeff5;background:radial-gradient(circle at 50% 50%,#0f1f1aa8,#050a0ad6);border-radius:inherit;pointer-events:auto;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.node-generation-overlay{top:0;right:0;bottom:0;left:0;border-radius:inherit}.node-generation-timer{width:60%;height:60%;overflow:visible;color:#dcfff2fa;filter:drop-shadow(0 0 8px rgba(220,255,242,.48)) drop-shadow(0 0 24px rgba(114,241,194,.52))}.node-generation-timer text{fill:currentColor;font:700 28px Manrope,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.03em}.prompt-input{width:100%;height:100%;padding:2px;color:#e4eeea;border:0;background:transparent;outline:none;-webkit-user-select:text;user-select:text;resize:none;font-size:12px;line-height:1.7;scrollbar-width:thin;scrollbar-color:rgba(114,241,194,.24) transparent}.prompt-input::placeholder{color:#66736e}.prompt-input::-webkit-scrollbar{width:5px}.prompt-input::-webkit-scrollbar-track{background:transparent}.prompt-input::-webkit-scrollbar-thumb{background:#72f1c233;border-radius:999px}.prompt-input::-webkit-scrollbar-thumb:hover{background:#72f1c26b}.upscale-node-body,.toolbox-node-body{position:relative;display:flex;flex:1;min-height:0;flex-direction:column;gap:12px}.upscale-effect,.toolbox-effect{position:relative;display:grid;flex:1;min-height:0;place-items:center;gap:12px;color:#bbffe5db;border:1px solid rgba(114,241,194,.12);border-radius:4px;background:radial-gradient(circle at 50% 45%,rgba(114,241,194,.1),transparent 34%),linear-gradient(145deg,#0c1414cc,#070a0b7a);box-shadow:inset 0 0 38px #72f1c20a}.upscale-effect svg,.toolbox-effect svg{filter:drop-shadow(0 0 16px rgba(114,241,194,.3))}.upscale-node .button-spinner,.toolbox-node .button-spinner{animation-duration:1.35s}.upscale-effect span,.toolbox-effect span{color:#bbffe594;font:600 8px/1 DM Mono,monospace;letter-spacing:.18em}.upscale-controls{display:grid;grid-template-columns:minmax(0,1fr) 118px 58px;gap:8px}.toolbox-controls{display:grid;grid-template-columns:minmax(0,1fr) 130px 58px;gap:8px}.toolbox-effect{width:100%;flex:0 0 auto;aspect-ratio:16 / 9}.toolbox-effect strong{color:#dcfff2e6;font-size:13px;font-weight:600;letter-spacing:.08em}.toolbox-comparison{position:relative;width:100%;height:100%;overflow:hidden;border-radius:3px;-webkit-user-select:none;user-select:none;touch-action:none}.toolbox-comparison.ready{cursor:ew-resize}.toolbox-comparison-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;transition:opacity .18s ease}.toolbox-comparison.ready .toolbox-comparison-image{opacity:1}.toolbox-comparison-before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.toolbox-comparison-handle{position:absolute;z-index:3;top:0;bottom:0;width:64px;transform:translate(-50%);pointer-events:none}.toolbox-comparison-handle>svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;fill:none;stroke:#ebfff7f2;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 1px rgba(5,12,10,.7)) drop-shadow(0 0 6px rgba(0,0,0,.58))}.toolbox-comparison-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;place-items:center;gap:9px;background:radial-gradient(circle at 50% 42%,rgba(114,241,194,.1),transparent 32%)}.toolbox-comparison-empty span{font:600 9px/1 sans-serif!important;letter-spacing:.08em!important}.model-popover.toolbox-popover{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;max-height:min(320px,calc(100vh - 32px));overflow-y:auto}.model-popover.toolbox-preset-popover{left:auto;right:0;width:100%}.toolbox-preset-popover button{justify-content:space-between}.toolbox-popover button{min-width:0;min-height:36px;margin-top:0;align-items:center}.toolbox-option{display:flex;min-width:0;align-items:center;gap:9px;font-size:11px;font-weight:600;text-align:left;white-space:nowrap}.toolbox-option svg{flex:0 0 auto;color:#d3e2dcad}.toolbox-popover button.active .toolbox-option svg{color:currentColor}.upscale-model-field .model-popover{width:176px}.upscale-scale-popover button{justify-content:space-between;font-weight:600}.angle-node{background:linear-gradient(145deg,#1a2021f5,#0d1113f5)}.angle-node-body{display:grid;grid-template-columns:220px minmax(0,1fr);flex:1;min-height:0;gap:18px}.angle-preview{position:relative;display:grid;min-height:0;height:100%;container-type:size;place-items:center;overflow:hidden;background:linear-gradient(145deg,#e6ebe917,#c9d2ce0b);border:1px solid rgba(218,238,230,.1);border-radius:8px}.angle-sphere{position:relative;display:grid;place-items:center;width:min(100%,100cqh);max-width:100%;height:auto;aspect-ratio:1 / 1;color:#b6c4beb3;cursor:grab;touch-action:none;perspective:520px;transform-style:preserve-3d}.angle-sphere:active{cursor:grabbing}.angle-sphere-thumbnail{position:absolute;z-index:0;display:grid;width:64%;aspect-ratio:1 / 1;place-items:center;overflow:hidden;color:#daeee652;background:#ffffff09;border-radius:50%;pointer-events:none}.angle-sphere-thumbnail:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:#050a097a}.angle-sphere-thumbnail img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.72) saturate(.72)}.angle-globe{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:block;width:100%;height:100%;pointer-events:none}.angle-globe-surface{fill:#d9e4df0e;stroke:#e8f2ed1a;stroke-width:1}.angle-globe-rim{fill:none;stroke:#e6f0eb8f;stroke-width:1.2}.angle-camera-ray{stroke:#72f1c26b;stroke-width:1.3;stroke-linecap:round}.angle-camera-dot{fill:var(--accent);filter:drop-shadow(0 0 7px rgba(114,241,194,.7))}.angle-camera-mark.back .angle-camera-ray{stroke:#daeee647;stroke-dasharray:3 4}.angle-camera-mark.back .angle-camera-dot{fill:#0d1113e0;stroke:#72f1c2bd;stroke-width:1.8;filter:drop-shadow(0 0 4px rgba(114,241,194,.32))}.angle-nudge{position:absolute;z-index:3;display:grid;place-items:center;width:24px;height:24px;padding:0;color:#daeee67a;background:transparent;border:0;cursor:pointer;transition:color .16s,transform .16s}.angle-nudge:hover{color:var(--accent)}.nudge-top{top:4px;transform:rotate(180deg)}.nudge-right{right:4px;transform:rotate(-90deg)}.nudge-bottom{bottom:4px}.nudge-left{left:4px;transform:rotate(90deg)}.angle-settings{display:flex;min-width:0;min-height:0;flex-direction:column;gap:10px}.angle-settings-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.angle-settings-head strong{color:#dce8e3;font-size:12px;font-weight:700}.angle-settings-head button{display:flex;align-items:center;gap:6px;color:#6d7974;background:transparent;border:0;cursor:pointer;font-size:10px}.angle-settings-head button:hover{color:var(--accent)}.angle-view-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px}.angle-view-grid button{display:flex;align-items:center;justify-content:center;gap:6px;height:34px;min-width:0;padding:0 10px;color:#a4b1ac;background:#ffffff08;border:1px solid rgba(218,238,230,.1);border-radius:5px;cursor:pointer;font-size:10px;font-weight:600;white-space:nowrap}.angle-view-grid button:hover,.angle-view-grid button.active{color:var(--accent);background:var(--accent-dim);border-color:#72f1c26b}.angle-slider{display:grid;grid-template-columns:42px minmax(0,1fr) 34px;align-items:center;gap:9px;color:#dce8e3;font-size:10px;font-weight:700}.angle-slider input{min-width:0;accent-color:var(--accent)}.angle-slider b{color:#c9d4d0;font:600 10px/1 DM Mono,monospace;text-align:right}.angle-generate-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:30px}.angle-generate-row>span{color:#dce8e3;font-size:10px;font-weight:700}.prompt-image-inputs b{flex:0 0 auto;font-weight:600}.prompt-image-inputs span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.prompt-image-inputs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:9px;border-top:1px solid rgba(183,211,201,.08)}.prompt-image-inputs button{display:flex;min-width:0;max-width:100%;align-items:center;gap:6px;height:24px;padding:0 8px;color:#8f9d98;background:#0407084d;border:1px solid rgba(154,177,169,.2);border-radius:12px;cursor:pointer;font-size:10px}.prompt-image-inputs button.editing{color:var(--accent);background:var(--accent-dim);border-color:#72f1c294}.prompt-image-inputs button:hover{color:#dce8e3;border-color:#72f1c26b}.prompt-image-description-editor{display:grid;grid-template-columns:minmax(0,1fr);margin-top:8px;padding:6px;background:#04070857;border:1px solid rgba(114,241,194,.18);border-radius:6px}.prompt-image-description-editor input{min-width:0;height:28px;padding:0 8px;color:#dce8e3;background:#ffffff0a;border:1px solid rgba(213,225,220,.13);border-radius:4px;outline:none;font-size:11px}.prompt-image-description-editor input:focus{border-color:#72f1c27a}.prompt-controls{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) minmax(0,1.08fr) 58px;gap:8px;margin-top:13px;padding-top:12px;border-top:1px solid rgba(183,211,201,.1)}.control-field{display:flex;min-width:0;flex-direction:column;gap:6px;color:#66736e;font:500 9px/1 DM Mono,monospace;letter-spacing:.12em}.library-field,.generate-field{align-items:center}.model-trigger,.size-trigger{min-width:0;width:100%;height:30px;padding:0 8px;color:#b9c8c2;background:#0407086b;border:1px solid rgba(114,241,194,.16);border-radius:3px;outline:none;cursor:pointer;font:500 10px/1 DM Mono,monospace}.model-trigger.active,.size-trigger.active{color:var(--accent);background:var(--accent-dim);border-color:#72f1c29e}.size-field,.model-field{position:relative}.prompt-controls>.size-field{position:static}.size-trigger,.model-trigger{display:flex;align-items:center;justify-content:space-between;gap:5px;white-space:nowrap}.model-name{display:flex;min-width:0;align-items:center;gap:5px}.openai-icon{flex:0 0 auto;width:14px;height:14px}.model-trigger.active .model-chevron{transform:rotate(180deg)}.model-popover{position:absolute;z-index:80;left:0;top:calc(100% + 8px);display:grid;width:190px;padding:7px;color:#9da6a3;background:#1d1f21;border:1px solid rgba(211,222,218,.16);border-radius:10px;box-shadow:0 22px 55px #0000008c;letter-spacing:0}.model-popover button{display:flex;align-items:center;justify-content:space-between;min-height:32px;margin-top:3px;padding:0 8px;color:#aab6b1;background:transparent;border:0;border-radius:6px;cursor:pointer;font:500 10px/1 DM Mono,monospace}.model-popover button:hover,.model-popover button.active{color:var(--accent);background:var(--accent-dim)}.model-popover.prompt-model-popover{width:100%}.model-popover button.disabled .model-label{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:currentColor}.model-popover.upscale-scale-popover{width:118px}.size-popover{position:absolute;z-index:80;left:50%;top:calc(100% + 8px);transform:translate(-50%);width:min(340px,calc(100vw - 32px));padding:15px;color:#9da6a3;background:#1d1f21;border:1px solid rgba(211,222,218,.16);border-radius:12px;box-shadow:0 22px 55px #0000008c}.ratio-grid button{color:#969d9a;background:#292b2d;border:1px solid rgba(220,230,226,.08);border-radius:8px;cursor:pointer}.ratio-grid button.active{color:var(--accent);background:var(--accent-dim);border-color:#72f1c29e}.ratio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ratio-grid button{display:grid;place-items:center;gap:7px;height:72px;padding:8px 3px;font-size:10px}.ratio-shape{display:block;width:24px;height:18px;border:2px solid currentColor;border-radius:3px;opacity:.65}.ratio-auto{width:20px;height:16px}.ratio-1-1{width:18px;height:18px}.ratio-9-16,.ratio-2-3{width:13px;height:22px}.ratio-16-9,.ratio-3-2{width:26px;height:14px}.ratio-21-9{width:30px;height:13px}.ratio-3-4{width:16px;height:21px}.ratio-4-3{width:22px;height:16px}.library-button{align-self:end;display:grid;place-items:center;width:34px;height:30px;padding:0;color:#d7dfdc;background:#0407086b;border:1px solid rgba(183,211,201,.14);border-radius:3px;cursor:pointer;transition:color .16s,background .16s,border-color .16s}.library-button:hover{color:var(--accent);background:var(--accent-dim);border-color:#72f1c273}.generate-button{align-self:end;display:inline-flex;align-items:center;justify-content:center;gap:4px;width:58px;height:30px;padding:0 7px;color:#07100d;background:var(--accent);border:1px solid var(--accent);border-radius:3px;cursor:pointer;font:700 10px/1 DM Mono,monospace;transition:filter .16s,transform .16s}.generate-button>svg{flex:0 0 auto}.generate-credit-cost{color:currentColor;font:inherit;letter-spacing:.02em}.generate-button:hover{filter:brightness(1.1);transform:translateY(-1px)}.generate-button:active{transform:translateY(0)}.generate-button.running{color:var(--accent);background:var(--accent-dim)}.generate-button:disabled{color:#56625e;background:#ffffff06;border-color:#b7d3c914;cursor:not-allowed;filter:none;transform:none}.node-run-error{position:absolute;z-index:70;left:24px;right:24px;bottom:82px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;padding:11px 12px;color:#ff9a95;background:#261214f5;border:1px solid rgba(255,119,113,.38);border-radius:6px;box-shadow:0 14px 32px #0000006b;cursor:default}.node-run-error>svg{margin-top:1px}.node-run-error>span{display:grid;gap:5px;min-width:0}.node-run-error b{color:#ffc1bd;font-size:11px;font-weight:600}.node-run-error small{overflow-wrap:anywhere;color:#c58b87;font-size:10px;line-height:1.45}.node-run-error button{display:grid;place-items:center;width:22px;height:22px;padding:0;color:#c58b87;background:transparent;border:0;border-radius:4px;cursor:pointer}.node-run-error button:hover{color:#fff;background:#ffffff14}.connection-handle{position:absolute;top:50%;display:grid;place-items:center;width:28px;height:28px;padding:0;color:#07100d;background:#66746f;border:6px solid #111719;border-radius:50%;opacity:0;cursor:crosshair;transform:translateY(-50%);transition:opacity .16s,background .16s,transform .16s}.connection-handle svg{position:absolute;left:50%;top:50%;display:block;transform:translate(-50%,-50%)}.connection-handle.target{left:-15px}.connection-handle.source{right:-15px}.canvas-node:hover .connection-handle,.canvas-node.selected .connection-handle,.canvas-node.connecting .connection-handle{opacity:1}.connection-handle:hover{background:var(--accent);transform:translateY(-50%) scale(1.18)}.resize-handle{position:absolute;width:12px;height:12px;padding:0;background:#111617;border:1px solid var(--accent);opacity:0}.canvas-node.selected .resize-handle{opacity:1}.resize-handle.top-left{left:-6px;top:-6px;cursor:nwse-resize}.resize-handle.top-right{right:-6px;top:-6px;cursor:nesw-resize}.resize-handle.bottom-left{left:-6px;bottom:-6px;cursor:nesw-resize}.resize-handle.bottom-right{right:-6px;bottom:-6px;cursor:nwse-resize}.snap-guide,.snap-gap-guide{position:absolute;z-index:120;pointer-events:none;background:var(--canvas-snap-color)}.snap-gap-guide:before,.snap-gap-guide:after,.snap-gap-guide>i{content:"";position:absolute;display:block;background:var(--canvas-snap-color)}.snap-gap-guide.horizontal:before,.snap-gap-guide.horizontal:after,.snap-gap-guide.horizontal>i{top:50%;width:var(--snap-line-width);height:var(--snap-tick-size);transform:translate(-50%,-50%)}.snap-gap-guide.horizontal:before{left:0}.snap-gap-guide.horizontal:after{left:100%}.snap-gap-guide.horizontal>i{left:50%}.snap-gap-guide.vertical:before,.snap-gap-guide.vertical:after,.snap-gap-guide.vertical>i{left:50%;width:var(--snap-tick-size);height:var(--snap-line-width);transform:translate(-50%,-50%)}.snap-gap-guide.vertical:before{top:0}.snap-gap-guide.vertical:after{top:100%}.snap-gap-guide.vertical>i{top:50%}.selection-box{position:absolute;border:1px solid var(--accent);background:#72f1c212;box-shadow:0 0 25px #72f1c214;pointer-events:none}.hidden-file-input{display:none}.local-editor{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:auto minmax(0,1fr);color:#d9e4df;background:#030506f0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.annotation-toolbar{display:flex;align-items:center;align-content:center;justify-content:flex-start;flex-wrap:wrap;gap:10px;min-height:56px;max-height:112px;padding:8px 15px;overflow-y:auto;border-bottom:1px solid rgba(218,238,230,.1);background:#050708fa;scrollbar-width:none}.annotation-toolbar::-webkit-scrollbar{display:none}.annotation-toolbar>i{flex:0 0 auto;width:1px;height:24px;background:#daeee61a}.annotation-group{display:flex;align-items:center;gap:4px;flex:0 0 auto}.annotation-toolbar button{display:flex;align-items:center;justify-content:center;gap:5px;height:32px;padding:0 10px;color:#aebbb6;background:#ffffff09;border:1px solid rgba(218,238,230,.12);border-radius:16px;cursor:pointer;font-size:11px}.annotation-toolbar button:hover,.annotation-toolbar button.active{color:var(--accent);background:var(--accent-dim);border-color:#72f1c26b}.annotation-toolbar button:disabled{opacity:.28;cursor:default}.brush-control{display:flex;flex:0 0 auto;align-items:center;gap:8px;height:32px;padding:0 10px;color:#73817b;background:#ffffff09;border:1px solid rgba(218,238,230,.12);border-radius:16px;font:500 10px/1 DM Mono,monospace}.brush-control input{width:110px;accent-color:var(--accent)}.brush-control b{min-width:22px;color:var(--accent);font-weight:500}.annotation-actions{margin-left:auto}.annotation-toolbar .confirm-edit{color:#07100d;background:var(--accent);border-color:var(--accent)}.annotation-toolbar .confirm-edit:disabled{opacity:.3}@media(max-width:1180px){.annotation-toolbar{gap:7px;padding-inline:10px}.annotation-toolbar>i{display:none}.annotation-toolbar button{height:30px;padding:0 8px;font-size:10px}.brush-control{height:30px;padding:0 8px}.brush-control input{width:80px}}.local-editor-workspace{position:relative;display:grid;place-items:center;min-height:0;padding:18px;overflow:hidden}.local-editor-stage{position:relative;max-width:100%;max-height:100%;transform-origin:center;will-change:transform}.local-editor-stage img{display:block;max-width:min(92vw,1600px);max-height:calc(100vh - 92px);object-fit:contain;border:1px solid rgba(218,238,230,.15);box-shadow:0 35px 100px #000000ad}.local-editor-stage .comparison-image{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center;background:#080b0c;pointer-events:none}.local-editor-stage canvas{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.local-editor-stage canvas.brush-active{cursor:none}.local-editor-stage canvas.shape-active{cursor:crosshair}.local-editor-stage canvas.comparison-active{cursor:grab}.local-editor-stage canvas.comparison-active.panning{cursor:grabbing}.local-editor-stage canvas.move-active{cursor:grab}.local-editor-stage canvas.move-active.panning{cursor:grabbing}.local-editor-stage canvas.temporary-pan{cursor:grab}.local-editor-stage canvas.temporary-pan.panning{cursor:grabbing}.comparison-handle{position:absolute;z-index:5;top:0;bottom:0;width:2px;background:#fffffff2;box-shadow:0 0 0 1px #0000006b,0 0 14px #0000008c;cursor:ew-resize;touch-action:none;transform:translate(-50%)}.comparison-handle:before{content:"";position:absolute;top:0;right:-18px;bottom:0;left:-18px}.comparison-handle i{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:34px;height:34px;color:#07100d;background:#e9fff7;border:2px solid rgba(7,16,13,.62);border-radius:50%;box-shadow:0 5px 18px #00000080;transform:translate(-50%,-50%)}.comparison-handle.dragging i,.comparison-handle:hover i{background:var(--accent);transform:translate(-50%,-50%) scale(1.08)}.comparison-label{position:absolute;z-index:4;top:12px;padding:6px 9px;color:#e6f3ee;background:#070a0bb8;border:1px solid rgba(218,238,230,.18);border-radius:4px;font-size:10px;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.comparison-source{left:12px}.comparison-result{right:12px}.pen-selection-overlay{position:absolute;z-index:5;top:0;right:0;bottom:0;left:0;pointer-events:none}.pen-selection-overlay svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.pen-selection-overlay polygon{fill:#72f1c21f;stroke:none}.pen-selection-overlay polyline{fill:none;stroke:#e8fff7;stroke-width:1.5;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px rgba(0,0,0,.8))}.pen-selection-overlay i{position:absolute;width:9px;height:9px;background:#e8fff7;border:1px solid rgba(7,16,13,.8);border-radius:50%;box-shadow:0 2px 7px #000000a6;transform:translate(-50%,-50%)}.pen-selection-overlay i.closed{cursor:move;pointer-events:auto;touch-action:none}.pen-selection-overlay i.first{width:13px;height:13px;background:var(--accent);box-shadow:0 0 0 3px #72f1c233,0 2px 8px #000000b3}.crop-mode-mask{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;background:#00000061;pointer-events:none}.editable-shape-box{position:absolute;z-index:5;box-sizing:border-box;border:1px dashed rgba(232,255,247,.94);background:#72f1c20f;box-shadow:0 0 0 1px #07100d85,0 0 18px #72f1c24d;cursor:move;touch-action:none}.editable-shape-box.circle{border-radius:50%}.shape-size-label{position:absolute;left:50%;top:-30px;padding:5px 7px;color:#e8fff7;background:#070c0bdb;border:1px solid rgba(114,241,194,.36);border-radius:4px;box-shadow:0 4px 14px #00000059;font:500 10px/1 DM Mono,monospace;white-space:nowrap;pointer-events:none;transform:translate(-50%)}.editable-shape-box i{position:absolute;width:11px;height:11px;background:#e8fff7;border:1px solid rgba(7,16,13,.8);border-radius:50%;box-shadow:0 2px 8px #00000080;touch-action:none}.editable-shape-box i.top-left{left:-6px;top:-6px;cursor:nwse-resize}.editable-shape-box i.top{left:50%;top:-6px;cursor:ns-resize;transform:translate(-50%)}.editable-shape-box i.top-right{right:-6px;top:-6px;cursor:nesw-resize}.editable-shape-box i.right{right:-6px;top:50%;cursor:ew-resize;transform:translateY(-50%)}.editable-shape-box i.bottom-right{right:-6px;bottom:-6px;cursor:nwse-resize}.editable-shape-box i.bottom{left:50%;bottom:-6px;cursor:ns-resize;transform:translate(-50%)}.editable-shape-box i.bottom-left{left:-6px;bottom:-6px;cursor:nesw-resize}.editable-shape-box i.left{left:-6px;top:50%;cursor:ew-resize;transform:translateY(-50%)}.crop-box{position:absolute;z-index:4;box-sizing:border-box;border:1px solid var(--accent);background:#72f1c214;box-shadow:0 0 0 9999px #00000061,0 0 18px #72f1c240;cursor:move;touch-action:none}.crop-box.pan-through{pointer-events:none}.grid-crop-lines{position:absolute;top:0;right:0;bottom:0;left:0}.grid-crop-lines b{position:absolute;display:block;background:#e8fff7eb;box-shadow:0 0 5px #000000a6;touch-action:none}.grid-crop-lines b:after{content:"";position:absolute}.grid-crop-lines b.vertical{top:0;bottom:0;width:2px;cursor:ew-resize;transform:translate(-1px)}.grid-crop-lines b.vertical:after{top:0;right:-8px;bottom:0;left:-8px}.grid-crop-lines b.horizontal{left:0;right:0;height:2px;cursor:ns-resize;transform:translateY(-1px)}.grid-crop-lines b.horizontal:after{top:-8px;right:0;bottom:-8px;left:0}.grid-crop-magnifier{position:absolute;z-index:8;width:168px;height:168px;overflow:hidden;background-repeat:no-repeat;border:2px solid #e8fff7;border-radius:50%;box-shadow:0 10px 36px #000000c2,0 0 0 1px #07100dd9;pointer-events:none}.grid-crop-magnifier>i:before,.grid-crop-magnifier>i:after{content:"";position:absolute;z-index:1;background:#72f1c2f5;box-shadow:0 0 2px #000000e6}.grid-crop-magnifier>i:before{left:50%;top:0;bottom:0;width:1px}.grid-crop-magnifier>i:after{left:0;right:0;top:50%;height:1px}.crop-box i{position:absolute;width:11px;height:11px;background:var(--accent);border:1px solid rgba(7,16,13,.75);border-radius:50%;box-shadow:0 2px 8px #00000073;touch-action:none}.crop-box i.top-left{left:-6px;top:-6px;cursor:nwse-resize}.crop-box i.top{left:50%;top:-6px;cursor:ns-resize;transform:translate(-50%)}.crop-box i.top-right{right:-6px;top:-6px;cursor:nesw-resize}.crop-box i.right{right:-6px;top:50%;cursor:ew-resize;transform:translateY(-50%)}.crop-box i.bottom-left{left:-6px;bottom:-6px;cursor:nesw-resize}.crop-box i.bottom{left:50%;bottom:-6px;cursor:ns-resize;transform:translate(-50%)}.crop-box i.bottom-right{right:-6px;bottom:-6px;cursor:nwse-resize}.crop-box i.left{left:-6px;top:50%;cursor:ew-resize;transform:translateY(-50%)}.local-editor-zoom{position:absolute;right:18px;bottom:16px;display:flex;align-items:center;gap:7px;padding:5px;color:#9caca6;background:#080b0cc7;border:1px solid rgba(218,238,230,.12);border-radius:6px;font:500 10px/1 DM Mono,monospace;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.local-editor-zoom span{min-width:44px;text-align:center}.local-editor-zoom button{height:27px;padding:0 9px;color:#aebbb6;background:#ffffff09;border:1px solid rgba(218,238,230,.12);border-radius:4px;cursor:pointer;font-size:10px}.local-editor-zoom button:hover{color:var(--accent);background:var(--accent-dim);border-color:#72f1c26b}.local-editor-zoom button:disabled{opacity:.3;cursor:default}.brush-cursor{position:absolute;z-index:2;box-sizing:border-box;border:1.5px solid rgba(255,255,255,.95);border-radius:50%;box-shadow:inset 0 0 0 1px #000c;pointer-events:none;transform:translate(-50%,-50%)}.brush-cursor.marker{border-color:#168ff0f2;background:#168ff014}.prompt-generate-overlay{position:fixed;z-index:110;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px 64px;background:#030506d1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.prompt-generate-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:calc(100vw - 128px);height:calc(100vh - 48px);color:#aebbb6;background:#111316;border:1px solid rgba(208,226,219,.13);border-radius:14px;box-shadow:0 32px 100px #00000094;overflow:hidden}.generate-panel-header,.generate-panel-actions{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid rgba(208,226,219,.08)}.generate-panel-header span{color:#e3ece8;font-size:13px;font-weight:600}.generate-panel-header button,.generate-panel-actions button{display:flex;align-items:center;justify-content:center;gap:7px;height:29px;padding:0 11px;color:#9aa7a2;background:#ffffff08;border:1px solid rgba(208,226,219,.12);border-radius:7px;cursor:pointer;font-size:10px}.generate-panel-header button{width:29px;padding:0}.generate-panel-content{padding:20px;overflow-y:auto;scrollbar-color:rgba(114,241,194,.25) transparent}.generate-section-title{display:block;margin:0 0 12px;color:#7e8985;font-size:12px;font-weight:600}.scene-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:20px}.scene-grid button,.option-card-item>button{display:flex;align-items:center;gap:11px;min-width:0;color:#a7aeab;background:#1c1e22;border:1px solid rgba(213,225,220,.12);border-radius:9px;cursor:pointer;text-align:left}.scene-grid button,.option-card-item>button{height:58px;padding:0 14px}.scene-grid button{font-size:11px}.scene-grid button>svg,.option-card-item>button>svg{flex:0 0 auto}.scene-grid button>span,.option-card-item>button>span{display:grid;gap:4px;min-width:0}.scene-grid button b{overflow:hidden;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.scene-grid button small{overflow:hidden;color:#69746f;font-size:10px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.scene-grid button.active small{color:#72f1c29e}.scene-grid button.active,.option-card-item>button.active{color:var(--accent);background:var(--accent-dim);border-color:#72f1c27a}.generate-fields{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}.generate-fields label{display:grid;gap:7px;min-width:0;color:#69746f;font-size:11px}.generate-select{position:relative;display:block}.generate-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;height:36px;padding:0 10px 0 11px;color:#89938f;background:#1c1e22;border:1px solid rgba(213,225,220,.12);border-radius:7px;outline:none;cursor:pointer;font-size:11px}.generate-select.open .generate-select-trigger{color:var(--accent);background:var(--accent-dim);border-color:#72f1c29e}.generate-select.open .generate-select-trigger svg{transform:rotate(180deg)}.generate-select-menu{position:absolute;z-index:140;top:calc(100% + 7px);left:0;display:grid;width:100%;min-width:190px;max-height:220px;padding:5px;overflow-y:auto;overscroll-behavior:contain;color:#a8b3ae;background:#1b1d21;border:1px solid rgba(213,225,220,.16);border-radius:8px;box-shadow:0 18px 42px #0000007a;scrollbar-width:none}.generate-select-menu::-webkit-scrollbar{display:none}.generate-select-menu button{display:flex;align-items:center;justify-content:space-between;min-height:29px;margin-top:1px;padding:0 8px;color:#a8b3ae;background:transparent;border:0;border-radius:5px;cursor:pointer;font-size:10px;text-align:left}.generate-select-menu button:hover{color:#dce8e3;background:#ffffff0b}.generate-select-menu button.active{color:var(--accent);background:var(--accent-dim)}.option-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:16px 0 0}.option-card-section-title{grid-column:1 / -1;margin:6px 0 0;color:#7e8985;font-size:11px;font-weight:600}.option-card-section-title:first-child{margin-top:0}.option-card-item{position:relative;min-width:0}.option-card-item>button{width:100%}.option-card-item>button b{color:inherit;font-size:11px;font-weight:600}.option-card-item>button small{color:#626d68;font-size:10px}.light-temperature-popover{position:absolute;z-index:150;bottom:calc(100% + 10px);left:0;display:grid;gap:11px;width:100%;padding:12px;background:#181a1e;border:1px solid rgba(114,241,194,.3);border-radius:10px;box-shadow:0 18px 42px #0000007a}.light-temperature-popover:after{position:absolute;top:100%;left:50%;width:9px;height:9px;background:#181a1e;border-right:1px solid rgba(114,241,194,.3);border-bottom:1px solid rgba(114,241,194,.3);content:"";transform:translate(-50%,-50%) rotate(45deg)}.light-temperature-heading{display:grid;gap:7px;color:#7b8782;font-size:11px}.light-temperature-heading b{color:var(--accent);font:600 12px/1 DM Mono,monospace}.light-temperature-popover input{width:100%;accent-color:var(--accent)}.temperature-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.temperature-options button{height:27px;color:#8c9692;background:#222428;border:1px solid rgba(213,225,220,.12);border-radius:14px;cursor:pointer;font:500 10px/1 DM Mono,monospace}.temperature-options button.active{color:var(--accent);background:var(--accent-dim);border-color:#72f1c27a}.generate-panel-actions{justify-content:flex-end;gap:8px;border-top:1px solid rgba(208,226,219,.08);border-bottom:0}.generate-panel-actions button{width:88px;height:36px;padding:0;font-size:12px}.generate-panel-actions .generate-submit{color:#07100d;background:var(--accent);border-color:var(--accent)}.prompt-generate-panel,.prompt-generate-panel *{cursor:default!important}@media(max-width:1100px){.scene-grid{grid-template-columns:repeat(2,1fr)}.generate-fields{grid-template-columns:repeat(3,1fr)}.option-card-grid{grid-template-columns:repeat(2,1fr)}}.top-bar{position:absolute;z-index:20;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 22px;background:linear-gradient(to bottom,rgba(8,10,12,.92),rgba(8,10,12,.35),transparent);pointer-events:none}.canvas-error-banner{position:fixed;z-index:90;top:76px;left:50%;display:flex;align-items:center;gap:9px;max-width:min(620px,calc(100vw - 32px));padding:10px 12px;color:#ffd5d5;border:1px solid rgba(255,95,95,.4);background:#320f13f0;box-shadow:0 12px 34px #00000057;transform:translate(-50%);font:500 11px/1.5 DM Mono,monospace}.canvas-error-banner span{min-width:0;overflow-wrap:anywhere}.canvas-error-banner button{width:22px;height:22px;margin-left:4px;color:inherit;border:0;background:transparent;cursor:pointer}.brand-mark,.top-status{display:flex;align-items:center;font:500 10px/1 DM Mono,monospace;letter-spacing:.16em}.brand-mark{gap:9px;color:var(--accent)}.brand-mark img{width:21px;height:21px;object-fit:contain}.login-topbar,.projects-topbar,.top-bar{height:64px;padding-left:28px;padding-right:28px}.top-status{gap:22px;color:#64716c}.top-status>span{display:inline-flex;align-items:center;height:16px;line-height:16px}.top-status .credit-balance{gap:7px}.top-status .status-value{display:inline-flex;align-items:center;gap:3px}.top-status .credit-balance svg{display:block;flex:0 0 auto}.top-status b{color:#b9c7c2;font-weight:500}.top-status .credit-balance,.top-status .credit-balance b{color:var(--accent)}.tool-dock,.zoom-control{position:absolute;z-index:30;display:flex;align-items:center;background:var(--panel);border:1px solid var(--line);box-shadow:0 18px 50px #00000061;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.tool-dock{left:50%;bottom:24px;gap:4px;padding:5px;transform:translate(-50%)}.tool-dock button,.zoom-control button{display:flex;align-items:center;justify-content:center;height:34px;padding:0 10px;color:#87948f;background:transparent;border:0;cursor:pointer;transition:color .16s,background .16s}.tool-dock button span{margin-left:8px;font:500 9px/1 DM Mono,monospace;letter-spacing:.12em}.tool-dock button:hover,.zoom-control button:hover,.tool-dock button.active{color:var(--accent);background:var(--accent-dim)}.tool-dock button:disabled{opacity:.25;cursor:default}.tool-dock button.save-waiting:disabled{opacity:1;color:var(--accent);cursor:wait}.tool-dock i{width:1px;height:20px;margin:0 3px;background:var(--line)}.connection-menu{position:absolute;z-index:42;display:grid;gap:4px;min-width:128px;padding:5px;background:#0b0f11f0;border:1px solid var(--line);border-radius:6px;box-shadow:0 18px 50px #00000061;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform:translate(-50%,10px)}.connection-menu button{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;color:#a5b2ad;background:transparent;border:0;border-radius:4px;cursor:pointer;font-size:11px}.connection-menu button:hover{color:var(--accent);background:var(--accent-dim)}.zoom-control{right:22px;bottom:24px;height:45px;padding:5px}.zoom-control input{width:95px;accent-color:var(--accent)}.zoom-control strong{width:46px;color:#9caca6;font:500 10px/1 DM Mono,monospace;text-align:center}.minimap-shell{position:absolute;z-index:25;right:22px;bottom:83px;width:232px;padding:0;background:#0b0f11e6;border:1px solid var(--line);box-shadow:0 20px 50px #00000059;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.minimap-label{display:flex;justify-content:space-between;padding:9px 10px 7px;color:#65736d;border-bottom:1px solid rgba(196,218,211,.08);font:500 8px/1 DM Mono,monospace;letter-spacing:.13em}.minimap{position:relative;width:230px;height:150px;overflow:hidden;cursor:crosshair}.minimap-node{position:absolute;min-width:3px;min-height:3px;background:#72f1c261;border:1px solid rgba(114,241,194,.5)}.minimap-viewport{position:absolute;border:1px solid var(--accent);background:#72f1c20d;pointer-events:none}@media(max-width:800px){.login-page{display:block;overflow-y:auto}.login-topbar{position:fixed}.login-topbar,.projects-topbar,.top-bar{height:58px;padding-left:18px;padding-right:18px}.login-status,.login-intro{display:none}.login-panel{min-height:100%;padding:82px 18px 24px;border:0}.login-panel form{padding:28px 22px}.projects-topbar{grid-template-columns:1fr auto}.projects-topbar nav{display:none}.projects-user .projects-user-trigger{max-width:48vw;padding:0 8px}.projects-user-trigger span{display:block}.projects-user-menu{width:min(230px,calc(100vw - 36px))}.invite-toast{top:70px;right:18px}.projects-content{width:calc(100% - 28px);padding:34px 0 60px}.projects-heading{align-items:start;flex-direction:column}.projects-toolbar{align-items:stretch;flex-direction:column}.projects-grid{grid-template-columns:1fr}.top-status,.minimap-shell{display:none}.zoom-control{right:12px;bottom:12px}.tool-dock{left:12px;bottom:12px;transform:none}.tool-dock button span{display:none}}
