:root{color-scheme:light;--bg:#f6f7f9;--panel:#ffffff;--panel-border:#d9dee7;--text:#172033;--muted:#647089;--accent:#0f766e;--accent-strong:#0b5f59;--danger:#b42318;--shadow:0 10px 30px rgba(23,32,51,0.08)}*{box-sizing:border-box}body,html{min-height:100%;margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.home-page{min-height:100vh;color:#f4f7f6;background:#090b0b}.home-header{position:relative;z-index:3;justify-content:space-between;height:52px;padding:0 24px;background:#090b0b;border-bottom:1px solid #242828}.home-brand,.home-header,.home-header nav,.home-nav-action{display:flex;align-items:center}.home-brand{gap:9px;font-size:.94rem}.home-brand svg{color:#32b8a6}.home-header nav{gap:18px;color:#aeb8b6;font-size:.88rem}.home-header nav>a:hover{color:#fff}.home-nav-action{gap:7px;min-height:34px;padding:0 12px;color:#f7fffd;background:#117c70;border:1px solid #279c8e;border-radius:6px;font-weight:700}.home-nav-action:hover{background:#159285}.home-hero{position:relative;display:flex;align-items:flex-end;min-height:calc(100svh - 52px);overflow:hidden;isolation:isolate}.auth-background,.home-hero-image{object-fit:cover}.home-hero-image{z-index:-3;object-position:center 34%}.home-hero-shade{position:absolute;z-index:-2;inset:0;background:rgba(3,5,5,.68)}.home-hero-content{width:min(100%,1180px);margin:0 auto;padding:72px 36px 82px}.home-hero-content>p:first-child{margin:0 0 13px;color:#55d4c2;font-size:.76rem;font-weight:800}.home-hero-content h1{max-width:760px;margin:0;font-size:4.4rem;line-height:1.02;letter-spacing:0}.home-hero-content h2{max-width:760px;margin:18px 0 0;color:#e4e9e8;font-size:1.55rem;font-weight:600;line-height:1.35}.home-hero-copy{max-width:620px;margin:18px 0 0;color:#b7c0be;font-size:1rem;line-height:1.75}.home-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:28px}.home-primary-action,.home-secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 17px;border-radius:6px;font-size:.92rem;font-weight:800}.home-primary-action{color:#06100e;background:#57d7c5;border:1px solid #79e5d6}.home-primary-action:hover{background:#77e4d4}.home-secondary-action{color:#eef3f2;background:rgba(10,13,13,.82);border:1px solid #525b59}.home-secondary-action:hover{border-color:#8b9693}.home-capabilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,1180px);margin:0 auto;padding:42px 36px 56px;border-top:1px solid #252929}.home-capabilities>div{display:grid;grid-gap:7px;gap:7px;min-width:0;padding:0 30px;border-right:1px solid #2a2f2e}.home-capabilities>div:first-child{padding-left:0}.home-capabilities>div:last-child{padding-right:0;border-right:0}.home-capabilities span{color:#f2a55f;font-size:.72rem;font-weight:800}.home-capabilities strong{font-size:1rem}.home-capabilities p{margin:0;color:#8f9a98;font-size:.88rem;line-height:1.6}.auth-page{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;padding:62px 16px 28px;color:#eef3f2;background:#090b0b;isolation:isolate}.auth-background{z-index:-3;object-position:center 34%}.auth-background-shade{position:absolute;z-index:-2;inset:0;background:rgba(3,5,5,.78)}.auth-back-link{position:absolute;top:18px;left:22px;display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;color:#c5cecc;background:rgba(9,11,11,.82);border:1px solid #3b4241;border-radius:6px;font-size:.86rem;font-weight:700}.auth-back-link:hover{color:#fff;border-color:#697270}.auth-panel{width:min(100%,408px);padding:28px;background:rgba(14,17,17,.94);border:1px solid #3b4241;border-radius:8px;box-shadow:0 18px 52px rgba(0,0,0,.38)}.auth-header{margin-bottom:24px}.auth-kicker{display:flex;align-items:center;gap:7px;margin:0 0 8px;color:#55d4c2;font-size:.8rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.auth-header h1{margin:0;font-size:1.75rem;line-height:1.2}.auth-header p{margin:10px 0 0;color:#9ba6a4;line-height:1.6}.auth-form{display:grid;grid-gap:16px;gap:16px}.auth-field{display:grid;grid-gap:8px;gap:8px;color:#dce3e1;font-size:.95rem;font-weight:600}.auth-field input{width:100%;min-height:44px;padding:10px 12px;color:#f4f7f6;background:#111515;border:1px solid #3a4240;border-radius:6px;outline:none}.auth-field input:focus{border-color:#43c5b3;box-shadow:0 0 0 3px rgba(67,197,179,.14)}.auth-field input:disabled{color:#76817f;background:#1c2020;cursor:not-allowed}.auth-error{margin:0;padding:10px 12px;color:#ffafa6;background:#291514;border:1px solid #67312e;border-radius:6px;line-height:1.5}.auth-mode-button,.auth-submit{min-height:44px;border-radius:6px;border:1px solid transparent;cursor:pointer}.auth-submit{color:#06100e;background:#57d7c5;font-weight:700}.auth-submit:hover:not(:disabled){background:#77e4d4}.auth-mode-button{width:100%;margin-top:14px;color:#72d9ca;background:transparent;font-weight:700}.auth-mode-button:hover:not(:disabled){background:rgba(87,215,197,.08)}.auth-otoken-action{display:flex;align-items:center;justify-content:center;gap:8px}.auth-otoken-actions{display:grid;grid-gap:10px;gap:10px}.auth-otoken-register{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:0;text-decoration:none}.auth-mode-button:disabled,.auth-submit:disabled{opacity:.65;cursor:not-allowed}@media (max-width:480px){.home-header{padding:0 14px}.home-header nav>a:not(.home-nav-action){display:none}.home-hero-content{padding:64px 20px 54px}.home-hero-content h1{font-size:3rem}.home-hero-content h2{font-size:1.2rem}.home-primary-action,.home-secondary-action{width:100%}.home-capabilities{grid-template-columns:1fr;padding:30px 20px 40px}.home-capabilities>div,.home-capabilities>div:first-child,.home-capabilities>div:last-child{padding:18px 0;border-right:0;border-bottom:1px solid #2a2f2e}.home-capabilities>div:last-child{border-bottom:0}.auth-back-link{top:12px;left:12px}.auth-panel{padding:22px}}.projects-page{min-height:100vh;padding:32px 16px}.projects-shell{width:min(100%,920px);margin:0 auto}.projects-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.projects-header h1{margin:0;font-size:1.8rem;line-height:1.2}.projects-header p{margin:0 0 7px;color:var(--accent);font-size:.74rem;font-weight:800}.projects-header span{display:block;margin-top:8px;color:var(--muted);line-height:1.5}.project-create{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;min-width:min(100%,360px)}.project-create input{width:100%;min-height:40px;padding:9px 11px;color:var(--text);background:#fff;border:1px solid var(--panel-border);border-radius:6px;outline:none}.project-create input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,118,110,.14)}.project-create button,.project-delete-button,.project-open-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid transparent;border-radius:6px;font-weight:700;cursor:pointer}.project-create button{min-width:88px;padding:0 14px;color:#fff;background:var(--accent)}.project-create button:hover:not(:disabled){background:var(--accent-strong)}.project-list{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.project-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;padding:12px 14px;background:var(--panel);border:1px solid var(--panel-border);border-radius:8px}.project-summary{min-width:0;display:grid;grid-gap:4px;gap:4px}.project-summary strong{overflow:hidden;font-size:1rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.project-summary span{color:var(--muted);font-size:.9rem}.project-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.project-open-button{min-width:116px;padding:0 12px;color:var(--accent);background:#eef8f6;border-color:#c7e7e2}.project-open-button:hover:not(:disabled){background:#ddf1ee}.project-delete-button{width:40px;color:var(--danger);background:#fff4f2;border-color:#ffd6d1}.project-delete-button:hover:not(:disabled){background:#ffe8e3}.project-empty,.projects-error{margin:0;padding:12px 14px;background:var(--panel);border:1px solid var(--panel-border);border-radius:8px}.projects-error{margin-bottom:12px;color:var(--danger);background:#fff4f2;border-color:#ffd6d1}.project-empty{color:var(--muted)}.project-create button:disabled,.project-delete-button:disabled,.project-open-button:disabled{opacity:.6;cursor:not-allowed}.spin-icon{animation:spin .9s linear infinite}.canvas-placeholder-page{min-height:100vh;display:grid;place-items:center;padding:24px}.canvas-placeholder-panel{width:min(100%,520px);padding:28px;background:var(--panel);border:1px solid var(--panel-border);border-radius:8px;box-shadow:var(--shadow)}.canvas-placeholder-kicker{margin:0 0 8px;color:var(--accent);font-weight:700}.canvas-placeholder-panel h1{margin:0;font-size:1.5rem}.canvas-placeholder-panel p:not(.canvas-placeholder-kicker){margin:12px 0 18px;color:var(--muted);line-height:1.6}.canvas-placeholder-panel a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;color:#fff;background:var(--accent);border-radius:6px}.settings-page{min-height:100vh;padding:32px 16px}.settings-shell{width:min(100%,720px);margin:0 auto}.settings-header{margin-bottom:18px}.settings-header p{margin:0 0 8px;color:var(--accent);font-size:.8rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.settings-header h1{margin:0;font-size:1.8rem;line-height:1.2}.settings-form{display:grid;grid-gap:16px;gap:16px;padding:24px;background:var(--panel);border:1px solid var(--panel-border);border-radius:8px;box-shadow:var(--shadow)}.settings-field{display:grid;grid-gap:8px;gap:8px;color:var(--text);font-size:.95rem;font-weight:600}.settings-field input{width:100%;min-height:44px;padding:10px 12px;color:var(--text);background:#fff;border:1px solid var(--panel-border);border-radius:6px;outline:none}.settings-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,118,110,.14)}.settings-field input:disabled{color:var(--muted);background:#eef1f5;cursor:not-allowed}.settings-message{margin:0;color:var(--muted);line-height:1.5}.settings-message-error{padding:10px 12px;color:var(--danger);background:#fff4f2;border:1px solid #ffd6d1;border-radius:6px}.settings-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.settings-secondary-button,.settings-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;color:#fff;background:var(--accent);border:1px solid transparent;border-radius:6px;font-weight:700;cursor:pointer}.settings-submit{color:#fff;background:var(--accent)}.settings-secondary-button{color:var(--accent);background:#eef8f6;border-color:#c7e7e2}.settings-submit:hover:not(:disabled){background:var(--accent-strong)}.settings-secondary-button:hover:not(:disabled){background:#ddf1ee}.settings-secondary-button:disabled,.settings-submit:disabled{opacity:.65;cursor:not-allowed}.app-shell{display:grid;grid-template-columns:72px minmax(0,1fr);height:100vh;min-height:0;background:#050505}.app-sidebar{display:grid;align-content:start;grid-gap:8px;gap:8px;padding:12px 8px;color:#f4f4f5;background:#0a0a0a;border-right:1px solid #27272a}.app-sidebar a{display:grid;place-items:center;min-height:40px;padding:0 4px;border-radius:6px;font-size:.76rem;font-weight:700}.app-sidebar a:hover{background:rgba(255,255,255,.1)}.app-main{min-width:0;min-height:0}.canvas-workspace{position:relative;height:100vh;min-height:0;overflow:hidden;color:#f8fafc;background:#050505}.settings-key-group{display:grid;grid-gap:12px;gap:12px;margin:0;padding:14px;border:1px solid var(--panel-border);border-radius:8px}.settings-key-group legend{padding:0 6px;color:var(--text);font-size:.8rem;font-weight:800}.canvas-surface{position:relative;width:100%;height:100%;min-width:0;min-height:0}.canvas-image-drop-overlay{position:absolute;inset:12px;z-index:28;display:grid;place-content:center;grid-gap:6px;gap:6px;color:#ffffff;text-align:center;pointer-events:none;background:rgba(5,5,5,.72);border:1px dashed rgba(255,255,255,.72);border-radius:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.canvas-image-drop-overlay strong{font-size:.9rem}.canvas-image-drop-overlay span{color:#a1a1aa;font-size:.75rem}.canvas-topbar{position:absolute;top:14px;right:14px;left:14px;z-index:22;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;pointer-events:none}.canvas-status-pills,.canvas-topbar-actions,.canvas-topbar-left{display:inline-flex;align-items:center;gap:8px;min-width:0;pointer-events:auto}.canvas-project-trigger,.canvas-save-state,.canvas-topbar-actions button{min-height:40px;color:#f4f4f5;background:rgba(10,10,12,.9);border:1px solid #303036;border-radius:999px;box-shadow:0 18px 45px rgba(0,0,0,.24);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.canvas-project-trigger{display:inline-flex;align-items:center;gap:10px;max-width:min(48vw,420px);padding:6px 14px 6px 12px;cursor:pointer}.canvas-project-trigger span{display:grid;min-width:0;grid-gap:1px;gap:1px;text-align:left}.canvas-project-trigger small{color:#a3a3ad;font-size:.68rem;font-weight:800}.canvas-project-trigger strong{overflow:hidden;color:#ffffff;font-size:.86rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.canvas-save-state{display:inline-flex;align-items:center;gap:6px;min-width:0;padding:0 10px;color:#d4d4d8;font-size:.76rem;font-weight:800}.canvas-save-state:before{width:6px;height:6px;flex:0 0 auto;content:"";background:#a1a1aa;border-radius:999px}.canvas-save-state[data-status=local-saved]{color:#fde68a;border-color:rgba(251,191,36,.42);background:rgba(113,63,18,.3)}.canvas-save-state[data-status=local-saved]:before{background:#fbbf24}.canvas-save-state[data-status=saving-server],.canvas-save-state[data-status=writing-local]{color:#bae6fd;border-color:rgba(56,189,248,.36);background:rgba(14,116,144,.24)}.canvas-save-state[data-status=saving-server]:before,.canvas-save-state[data-status=writing-local]:before{background:#38bdf8}.canvas-save-state[data-status=saved]{color:#bbf7d0;border-color:rgba(74,222,128,.3);background:rgba(22,101,52,.22)}.canvas-save-state[data-status=saved]:before{background:#4ade80}.canvas-save-state[data-status=conflict],.canvas-save-state[data-status=failed]{color:#fecaca;border-color:rgba(248,113,113,.4);background:rgba(127,29,29,.25)}.canvas-save-state[data-status=conflict]:before,.canvas-save-state[data-status=failed]:before{background:#f87171}.canvas-save-announcement{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.canvas-topbar-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:40px;min-height:40px;padding:0 12px;cursor:pointer}.canvas-project-trigger:focus-visible,.canvas-topbar-actions button:focus-visible,.canvas-topbar-more:focus-visible{outline:2px solid #f4f4f5;outline-offset:2px}.canvas-project-trigger:hover,.canvas-topbar-actions button:hover:not(:disabled){border-color:#ffffff;background:rgba(5,5,5,.96)}.canvas-topbar-actions button:disabled{color:#71717a;cursor:not-allowed}.canvas-topbar-compact{position:relative;display:grid;justify-items:end;pointer-events:auto}.canvas-topbar-more{display:inline-flex;align-items:center;justify-content:center;width:40px;min-height:40px;color:#f4f4f5;background:rgba(10,10,12,.9);border:1px solid #303036;border-radius:999px;box-shadow:0 18px 45px rgba(0,0,0,.24);cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.canvas-topbar-more:hover{border-color:#ffffff;background:rgba(5,5,5,.96)}.canvas-topbar-compact-menu{position:absolute;top:48px;right:0;display:grid;grid-gap:8px;gap:8px;min-width:min(310px,calc(100vw - 20px));padding:10px;background:rgba(10,10,12,.96);border:1px solid #303036;border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.42);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.canvas-topbar-compact-menu .canvas-status-pills,.canvas-topbar-compact-menu .canvas-topbar-actions{display:flex;flex-wrap:wrap;width:100%;justify-content:flex-start}.canvas-topbar-compact-menu .canvas-save-state{flex:1 1}.canvas-topbar-compact-menu .canvas-topbar-actions button{flex:1 1 132px}.canvas-topbar-actions .has-provider-warning{color:#fde68a;border-color:rgba(251,191,36,.34);background:rgba(113,63,18,.26)}.canvas-topbar-actions .has-provider-warning:hover:not(:disabled){border-color:rgba(253,230,138,.68);background:rgba(113,63,18,.38)}.canvas-topbar-actions button:not(:first-child) span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.canvas-notice{position:absolute;top:68px;left:50%;z-index:21;display:flex;align-items:center;justify-content:center;gap:10px;max-width:min(420px,calc(100vw - 36px));padding:10px 14px;transform:translateX(-50%);color:#f8fafc;background:rgba(10,10,12,.92);border:1px solid rgba(255,255,255,.18);border-radius:999px;box-shadow:0 18px 45px rgba(0,0,0,.34);font-size:.82rem;font-weight:800;line-height:1.35;pointer-events:auto;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.canvas-notice button{flex:0 0 auto;min-height:28px;padding:0 9px;color:#050505;background:#ffffff;border:1px solid #ffffff;border-radius:999px;font-size:.7rem;font-weight:800;cursor:pointer}.canvas-topbar-actions .canvas-settings-trigger{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border-radius:12px}.canvas-left-rail{position:absolute;top:86px;left:14px;z-index:12;display:grid;align-content:start;grid-gap:8px;gap:8px;padding:8px;background:rgba(10,10,10,.92);border:1px solid #303036;border-radius:12px;box-shadow:0 18px 46px rgba(0,0,0,.36);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.canvas-left-rail.is-collapsed{padding:6px}.canvas-rail-actions,.canvas-rail-group{display:grid;grid-gap:8px;gap:8px}.canvas-rail-status{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;white-space:nowrap;border:0;clip:rect(0,0,0,0)}.canvas-rail-canvas-actions{padding-top:8px;border-top:1px solid #303036}.canvas-left-rail button{display:grid;place-items:center;width:38px;height:38px;color:#e4e4e7;background:#18181b;border:1px solid #303036;border-radius:8px;cursor:pointer}.canvas-left-rail .canvas-rail-toggle{color:#ffffff;background:#0a0a0a;border-color:#3f3f46}.canvas-left-rail button:hover:not(:disabled){border-color:#ffffff;color:#ffffff;background:#050505}.canvas-left-rail .canvas-tool-danger{color:#fca5a5}.canvas-left-rail .canvas-tool-danger:hover:not(:disabled){border-color:rgba(248,113,113,.5);color:#fecaca;background:rgba(127,29,29,.34)}.canvas-left-rail button:disabled{color:#71717a;background:#111113;cursor:not-allowed}.canvas-stage{position:absolute;inset:0;min-width:0;min-height:0;background:#050505}.canvas-stage .react-flow{background:transparent}.canvas-stage .react-flow__background{display:none}.canvas-stage:after{position:absolute;inset:12px;z-index:10;display:none;pointer-events:none;content:"";border:1px dashed rgba(248,250,252,.38);border-radius:16px;box-shadow:inset 0 0 0 999px rgba(24,24,27,.18)}.canvas-stage.is-dragging-image:after{display:block}.canvas-view-controls{position:absolute;right:14px;bottom:64px;z-index:15;display:inline-flex;overflow:hidden;background:rgba(5,5,5,.9);border:1px solid #2a2a30;border-radius:7px;box-shadow:0 14px 36px rgba(0,0,0,.28);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.canvas-view-controls button{display:grid;width:34px;height:34px;place-items:center;color:#e5e7eb;background:transparent;border:0;border-right:1px solid #24242a;cursor:pointer}.canvas-view-controls button:last-child{border-right:0}.canvas-view-controls button:hover{color:#ffffff;background:#18181b}.empty-canvas-starter{position:absolute;top:min(22vh,190px);left:50%;z-index:11;display:grid;grid-gap:12px;gap:12px;width:min(520px,calc(100vw - 120px));max-width:100%;min-width:0;transform:translateX(-50%);padding:14px;color:#a3a3ad;background:rgba(8,8,10,.94);border:1px solid #2a2a30;border-radius:8px;box-shadow:0 16px 40px rgba(0,0,0,.26);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.empty-canvas-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:4px;gap:4px;padding:3px;background:#111114;border:1px solid #29292f;border-radius:6px}.empty-canvas-mode button{min-height:32px;color:#a1a1aa;background:transparent;border:0;border-radius:4px;cursor:pointer}.empty-canvas-mode button[aria-pressed=true]{color:#ffffff;background:#27272a}.empty-canvas-prompt{display:grid;grid-gap:6px;gap:6px;color:#d4d4d8;font-size:.78rem;font-weight:700}.empty-canvas-prompt textarea{width:100%;min-height:82px;resize:vertical;padding:10px;color:#f4f4f5;background:#0c0c0e;border:1px solid #303036;border-radius:6px;font:inherit}.empty-canvas-prompt textarea:focus{border-color:#71717a;outline:2px solid rgba(161,161,170,.22);outline-offset:1px}.empty-canvas-references{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.76rem}.empty-canvas-reference{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0 8px;color:#d4d4d8;background:#18181b;border:1px solid #323238;border-radius:4px;cursor:pointer}.empty-canvas-error{flex-basis:100%;margin:0;color:#fca5a5;font-size:.75rem}.empty-canvas-create{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;color:#09090b;background:#f4f4f5;border:1px solid #ffffff;border-radius:6px;font-weight:800;cursor:pointer}.empty-canvas-create:disabled{color:#71717a;background:#202024;border-color:#303036;cursor:not-allowed}.empty-canvas-starter p{margin:0;color:#e5e7eb;font-size:.8rem;font-weight:700;white-space:nowrap}.empty-canvas-actions{display:inline-flex;align-items:center;gap:6px;min-width:0}.empty-canvas-actions button,.empty-canvas-upload{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;color:#f8fafc;background:#18181b;border:1px solid #2d2d33;border-radius:999px;font-size:.74rem;font-weight:800;cursor:pointer;white-space:nowrap}.empty-canvas-actions .empty-canvas-preset{color:#d4d4d8;background:#0c0c0e;border-color:#25252a;font-weight:700}.empty-canvas-actions button:hover,.empty-canvas-upload:hover{border-color:#ffffff;background:#050505}.empty-canvas-upload.is-disabled{color:#71717a;cursor:not-allowed}.empty-canvas-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.empty-canvas-starter .empty-canvas-error{color:#fca5a5;font-size:.75rem;font-weight:500;white-space:normal;overflow-wrap:anywhere}.context-parameter-bar{position:absolute;left:50%;bottom:76px;z-index:22;display:grid;grid-template-columns:max-content minmax(0,1fr) max-content max-content;align-items:center;grid-gap:10px;gap:10px;width:min(1120px,calc(100vw - 32px));max-height:calc(100vh - 160px);overflow-y:visible;padding:10px 12px;color:#f4f4f5;background:rgba(10,10,12,.96);border:1px solid #303036;border-radius:8px;box-shadow:0 20px 50px rgba(0,0,0,.38);transform:translateX(-50%);scrollbar-color:#52525b transparent;scrollbar-width:thin;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.context-parameter-bar header{display:grid;grid-gap:2px;gap:2px;min-width:72px}.context-parameter-bar header strong{color:#f8fafc;font-size:.82rem;white-space:nowrap}.context-parameter-bar header span{color:#a3a3ad;font-size:.68rem;white-space:nowrap}.canvas-left-rail button.is-dragging{color:#ffffff;border-color:#f8fafc;background:#27272a;cursor:-webkit-grabbing;cursor:grabbing}.context-parameter-bar .context-delete-workflow{display:inline-flex;align-items:center;gap:4px;width:max-content;min-height:26px;margin-top:4px;padding:0 7px;color:#fecaca;background:rgba(127,29,29,.18);border:1px solid rgba(252,165,165,.28);border-radius:5px;font-size:.68rem;font-weight:800;cursor:pointer}.context-parameter-bar .context-delete-workflow:hover:not(:disabled){color:#ffffff;background:#2a0d0d;border-color:#ef4444}.context-parameter-bar label{display:grid;grid-gap:4px;gap:4px;min-width:0}.context-parameter-bar label>span{color:#a3a3ad;font-size:.68rem;font-weight:700}.context-parameter-bar input,.context-parameter-bar select,.context-parameter-bar textarea,.model-select-trigger{width:100%;min-width:0;color:#f8fafc;background:#18181b;border:1px solid #2d2d33;border-radius:6px;outline:none}.context-parameter-bar input,.context-parameter-bar select{min-height:32px;padding:0 8px;font-size:.75rem}.model-select{position:relative;min-width:0}.model-select-trigger{display:flex;align-items:center;justify-content:space-between;min-height:32px;gap:8px;padding:0 8px;font-size:.75rem;text-align:left;cursor:pointer}.model-select-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-select-trigger>svg{flex:0 0 auto;color:#a1a1aa;transition:transform .16s ease}.model-select-trigger[aria-expanded=true]>svg{transform:rotate(180deg)}.model-select-menu{position:absolute;top:auto;right:0;bottom:calc(100% + 7px);left:0;z-index:45;display:grid;grid-gap:3px;gap:3px;max-height:min(260px,38vh);overflow-y:auto;padding:5px;background:#111114;border:1px solid #52525b;border-radius:8px;box-shadow:0 18px 42px rgba(0,0,0,.48);scrollbar-color:#71717a #18181b;scrollbar-width:thin}.model-select-menu::-webkit-scrollbar{width:8px}.model-select-menu::-webkit-scrollbar-track{background:#18181b;border-radius:99px}.model-select-menu::-webkit-scrollbar-thumb{background:#71717a;border:2px solid #18181b;border-radius:99px}.model-select-option{display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;min-height:32px;gap:8px;padding:0 8px;color:#d4d4d8;background:transparent;border:0;border-radius:5px;font-size:.72rem;text-align:left;cursor:pointer}.model-select-option>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-select-option:hover,.model-select-option[aria-selected=true]{color:#ffffff;background:#27272a}.model-select-option[aria-selected=true]{font-weight:800}.context-parameter-bar textarea{min-height:54px;padding:7px 8px;font-size:.78rem;resize:vertical}.context-parameter-bar.is-prompt{grid-template-columns:max-content minmax(280px,1fr);width:min(760px,calc(100vw - 32px));align-items:start}.context-parameter-bar.is-prompt label{width:100%}.context-parameter-bar.is-prompt textarea{min-height:108px;max-height:min(320px,42vh);line-height:1.5}.context-parameter-bar input:focus,.context-parameter-bar select:focus,.context-parameter-bar textarea:focus{border-color:#f8fafc;box-shadow:0 0 0 3px rgba(248,250,252,.12)}.context-parameter-common{display:grid;grid-template-columns:minmax(160px,1.5fr) repeat(4,minmax(92px,1fr));grid-gap:8px;gap:8px;min-width:0}.context-parameter-bar.is-prompt,.context-parameter-bar.is-reference{grid-template-columns:max-content minmax(0,1fr) max-content}.context-parameter-bar.is-prompt label{min-width:0}.context-node-group-actions button,.context-parameter-actions>button,.context-parameter-bar.is-reference>button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 10px;color:#f8fafc;background:#18181b;border:1px solid #3f3f46;border-radius:6px;font-size:.72rem;font-weight:800;white-space:nowrap;cursor:pointer}.context-parameter-bar button:hover:not(:disabled){border-color:#f8fafc;background:#27272a}.context-parameter-bar button:disabled{opacity:.52;cursor:not-allowed}.context-parameter-actions{gap:8px}.context-node-group-actions,.context-parameter-actions{display:flex;align-items:center;justify-content:flex-end;min-width:0}.context-node-group-actions{grid-column:1/-1;gap:7px;padding-top:8px;border-top:1px solid #29292f}.context-node-group-label{display:inline-flex;min-width:0;align-items:center;gap:6px;margin-right:auto;overflow:hidden;color:#a3a3ad;font-size:.69rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.context-group-picker{position:relative}.context-group-menu{position:absolute;right:0;bottom:calc(100% + 7px);z-index:6;display:grid;grid-gap:2px;gap:2px;width:max-content;min-width:156px;max-width:min(280px,calc(100vw - 32px));max-height:min(240px,36vh);overflow-y:auto;padding:5px;background:#101014;border:1px solid #3f3f46;border-radius:6px;box-shadow:0 16px 36px rgba(0,0,0,.46)}.context-group-menu button{justify-content:flex-start;width:100%;overflow:hidden;text-overflow:ellipsis}.context-image-parameter-common{grid-template-columns:minmax(175px,1.35fr) minmax(235px,1.8fr) minmax(150px,1fr) minmax(88px,.65fr) 64px;align-items:end}.context-ratio-field{min-width:0}.context-segmented-control{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:2px;gap:2px;min-width:0;padding:3px;background:#101014;border:1px solid #2d2d33;border-radius:6px}.context-segmented-control button{min-width:0;min-height:26px;padding:0 5px;color:#a1a1aa;background:transparent;border:0;border-radius:4px;font-size:.68rem;font-weight:800;cursor:pointer}.context-segmented-control button[aria-pressed=true]{color:#09090b;background:#f4f4f5}.context-segmented-control button:hover:not([aria-pressed=true]){color:#ffffff;background:#27272a}.context-size-field{min-width:0}.context-image-parameter-common>label:first-child .model-select-menu{min-width:240px}.context-size-field .model-select-menu{min-width:168px}.context-count-field input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;text-align:center}.context-count-field input::-webkit-inner-spin-button,.context-count-field input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;appearance:none}.context-parameter-bar.is-llm{width:min(560px,calc(100vw - 32px));grid-template-columns:max-content minmax(0,1fr) max-content}.context-parameter-bar.is-generation:not(.is-llm){width:min(1040px,calc(100vw - 32px));grid-template-columns:max-content minmax(0,1fr) max-content}.context-parameter-bar.is-llm .context-parameter-common{grid-template-columns:minmax(180px,1fr)}.context-parameter-actions.is-run-action{display:flex;justify-content:center}.context-parameter-actions.is-run-action>button{min-width:88px}.context-parameter-actions>button{color:#050505;background:#ffffff;border-color:#ffffff}.context-parameter-actions>button:hover:not(:disabled){background:#e4e4e7}.context-model-error,.context-parameter-actions .typed-readiness-message{max-width:190px;color:#fde68a;font-size:.7rem;line-height:1.35;text-align:right}.context-reference-assets{display:flex;align-items:center;gap:6px;min-width:0;overflow-x:auto}.context-reference-item{display:inline-flex;align-items:center;gap:3px;flex:0 0 auto;min-height:32px;padding:3px 4px 3px 8px;background:#18181b;border:1px solid #2d2d33;border-radius:6px}.context-reference-item>span{max-width:132px;overflow:hidden;color:#d4d4d8;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.context-reference-item button{display:inline-grid;width:26px;height:26px;padding:0;place-items:center;color:#a1a1aa;background:transparent;border:0;border-radius:4px}.context-reference-empty{color:#a3a3ad;font-size:.72rem}.context-reference-actions{display:flex;justify-content:flex-end;gap:6px}.context-reference-actions>button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 10px;color:#f8fafc;background:#18181b;border:1px solid #3f3f46;border-radius:6px;font-size:.72rem;font-weight:800;white-space:nowrap;cursor:pointer}.canvas-project-panel,.workspace-settings-panel{position:absolute;top:74px;z-index:24;display:grid;grid-gap:14px;gap:14px;width:min(440px,calc(100vw - 28px));max-height:calc(100vh - 102px);overflow-y:auto;padding:14px;color:#f8fafc;background:rgba(10,10,12,.96);border:1px solid #303036;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.42);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.canvas-project-panel{left:14px}.workspace-settings-panel{right:14px;width:min(520px,calc(100vw - 28px))}.canvas-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.canvas-panel-header p{margin:0 0 4px;color:#a3a3ad;font-size:.72rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.canvas-panel-header h2{margin:0;color:#ffffff;font-size:1rem}.canvas-panel-header span{display:block;margin-top:6px;color:#a3a3ad;font-size:.78rem}.canvas-panel-header button{display:inline-grid;place-items:center;flex:0 0 auto;width:32px;height:32px;color:#f8fafc;background:#18181b;border:1px solid #2d2d33;border-radius:999px;cursor:pointer}.canvas-panel-header button:hover{border-color:#ffffff;background:#050505}.canvas-project-form{display:grid;grid-template-columns:minmax(0,1fr) max-content;grid-gap:8px;gap:8px}.canvas-project-field{display:grid;grid-gap:6px;gap:6px}.canvas-project-field span{color:#a3a3ad;font-size:.76rem;font-weight:800}.canvas-project-field input,.workspace-settings-panel .settings-field input{width:100%;min-height:38px;color:#f8fafc;background:#18181b;border:1px solid #2d2d33;border-radius:10px;outline:none}.canvas-project-field input{padding:0 10px}.canvas-project-field input:focus,.workspace-settings-panel .settings-field input:focus{border-color:#ffffff;box-shadow:0 0 0 3px rgba(248,250,252,.12)}.canvas-project-form button,.canvas-project-row a,.workspace-settings-panel .settings-secondary-button,.workspace-settings-panel .settings-submit{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 12px;color:#f8fafc;background:#18181b;border:1px solid #2d2d33;border-radius:999px;font-size:.76rem;font-weight:800;cursor:pointer}.canvas-project-form button:hover:not(:disabled),.canvas-project-row a:hover,.workspace-settings-panel .settings-secondary-button:hover:not(:disabled),.workspace-settings-panel .settings-submit:hover:not(:disabled){border-color:#ffffff;background:#050505}.canvas-project-form button:disabled,.workspace-settings-panel .settings-secondary-button:disabled,.workspace-settings-panel .settings-submit:disabled{color:#71717a;cursor:not-allowed}.canvas-panel-state{margin:0;padding:10px;color:#a3a3ad;background:#101014;border:1px solid #25252b;border-radius:10px;font-size:.8rem;line-height:1.5}.canvas-panel-state-error{color:#fecaca;background:rgba(127,29,29,.2);border-color:rgba(252,165,165,.3)}.canvas-project-list{display:grid;grid-gap:8px;gap:8px}.canvas-project-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:10px;background:#101014;border:1px solid #25252b;border-radius:10px}.canvas-project-row div{display:grid;grid-gap:4px;gap:4px;min-width:0}.canvas-project-row span,.canvas-project-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-project-row strong{color:#f8fafc;font-size:.84rem}.canvas-project-row span{color:#a3a3ad;font-size:.74rem}.workspace-settings-panel .settings-form{display:grid;grid-gap:12px;gap:12px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.workspace-settings-panel .settings-field{color:#f8fafc}.workspace-settings-panel .settings-field span,.workspace-settings-panel .settings-key-group legend,.workspace-settings-panel .settings-message{color:#a3a3ad}.context-parameter-bar.is-llm .context-parameter-common{grid-template-columns:minmax(180px,1.5fr) repeat(2,minmax(110px,1fr))}.workspace-settings-panel .settings-key-group{padding:12px;border-color:#303036}.workspace-settings-panel .settings-actions{grid-template-columns:1fr}.workspace-settings-panel .settings-message-error{color:#fecaca;background:rgba(127,29,29,.2);border-color:rgba(252,165,165,.3)}.canvas-node{position:relative;min-width:180px;max-width:280px;padding:12px;color:#f8fafc;background:#101014;border:1px solid #2d2d33;border-radius:8px;box-shadow:0 18px 45px rgba(0,0,0,.26)}.typed-node{min-width:224px;min-height:150px;width:100%;height:100%;max-width:none;padding:12px 14px 14px;box-sizing:border-box}.typed-node-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:9px;border-bottom:1px solid #29292f}.typed-node-header strong{color:#ffffff;font-size:.86rem}.typed-node-header span{color:#8f8f99;font-size:.68rem}.llm-node-title{display:inline-flex;align-items:baseline;min-width:0;gap:7px}.llm-node-title strong{flex:0 0 auto}.typed-node-header .llm-node-header-model{min-width:0;overflow:hidden;color:#a1a1aa;font-size:.62rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.typed-node p{margin:11px 0 20px;color:#e4e4e7;font-size:.8rem;line-height:1.45;overflow-wrap:anywhere}.reference-image-node{display:flex;flex-direction:column;padding-bottom:34px}.reference-image-previews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);align-items:stretch;flex:1 1;grid-gap:6px;gap:6px;margin:10px 0 8px;min-height:0;overflow:auto}.reference-image-previews.is-single{grid-template-columns:minmax(0,1fr);justify-content:stretch}.reference-image-previews.is-many{grid-template-columns:repeat(3,minmax(0,1fr))}.reference-image-previews .image-sink-preview-item{min-width:0;height:100%;aspect-ratio:auto}.reference-image-preview-placeholder{display:grid;place-items:center;width:100%;aspect-ratio:1;padding:4px;color:#a1a1aa;background:#202023;border-radius:5px;font-size:.58rem;overflow:hidden}.reference-image-summary{flex:0 0 auto;color:#d4d4d8;font-size:.72rem}.image-sink-node{width:290px;min-width:290px;max-width:290px;padding-bottom:34px}.image-sink-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px;margin:10px 0 8px;min-height:86px}.image-sink-preview-grid.is-single{grid-template-columns:minmax(0,1fr)}.image-sink-preview-grid span,.image-sink-preview-item{display:grid;place-items:center;width:100%;aspect-ratio:1;margin:0;overflow:hidden;border-radius:5px;background:#09090b;border:1px solid #29292f}.image-sink-preview-grid.is-single .image-sink-preview-item{height:220px;aspect-ratio:auto}.image-sink-preview-item img{display:block;width:100%;height:100%;object-fit:contain}.image-sink-preview-trigger{display:block;width:100%;height:100%;padding:0;overflow:hidden;background:transparent;border:0;cursor:zoom-in}.image-sink-preview-trigger:focus-visible{outline:2px solid #ffffff;outline-offset:-2px}.canvas-image-lightbox{position:fixed;inset:0;z-index:100;display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center;grid-gap:10px;gap:10px;padding:44px 24px 18px;background:rgba(0,0,0,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.canvas-image-lightbox-viewport{position:relative;width:min(1400px,92vw);height:min(78vh,900px);overflow:hidden;background:#050505;border:1px solid #303036;border-radius:8px;cursor:-webkit-grab;cursor:grab;box-shadow:0 28px 90px rgba(0,0,0,.52)}.canvas-image-lightbox-viewport:active{cursor:-webkit-grabbing;cursor:grabbing}.canvas-image-lightbox-image{position:absolute;top:50%;left:50%;display:block;width:auto;max-width:calc(100% - 32px);height:auto;max-height:calc(100% - 32px);transform-origin:center;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.canvas-image-lightbox-toolbar{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:4px 6px;color:#d4d4d8;background:rgba(10,10,12,.96);border:1px solid #3f3f46;border-radius:8px}.canvas-image-lightbox-toolbar button{display:grid;width:30px;height:30px;place-items:center;padding:0;color:#e4e4e7;background:#18181b;border:1px solid #3f3f46;border-radius:5px;cursor:pointer}.canvas-image-lightbox-toolbar button:hover{color:#ffffff;border-color:#ffffff;background:#27272a}.canvas-image-lightbox-toolbar span{min-width:44px;color:#f4f4f5;font-size:.72rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.canvas-image-lightbox-close{position:absolute;top:18px;right:20px;display:grid;width:38px;height:38px;place-items:center;color:#ffffff;background:#18181b;border:1px solid #52525b;border-radius:999px;cursor:pointer}.canvas-image-lightbox-close:hover{background:#27272a;border-color:#ffffff}.image-sink-preview-item.is-unavailable>span{display:grid;place-items:center;grid-gap:7px;gap:7px;width:100%;height:100%;padding:12px;color:#fca5a5;font-size:.68rem;text-align:center}.image-sink-preview-grid span{padding:6px;color:#a1a1aa;font-size:.62rem;overflow-wrap:anywhere}.react-flow__edge.is-running-edge .react-flow__edge-path{stroke:#5eead4;stroke-width:2.5;stroke-dasharray:10 7;animation:canvas-edge-flow .8s linear infinite;filter:drop-shadow(0 0 3px rgba(45,212,191,.72))}@keyframes canvas-edge-flow{to{stroke-dashoffset:-34}}.image-sink-summary{color:#a1a1aa;font-size:.7rem}.save-image-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:32px;margin:0 0 2px;color:#09090b;background:#f4f4f5;border:1px solid #f4f4f5;border-radius:5px;font-size:.72rem;font-weight:800;cursor:pointer}.save-image-action:hover:not(:disabled){background:#d4d4d8;border-color:#d4d4d8}.save-image-action:disabled{color:#71717a;background:#202024;border-color:#303036;cursor:not-allowed}.node-port-label{position:absolute;bottom:6px;color:#8f8f99;font-size:.64rem;pointer-events:none}.node-port-label.is-input{left:14px}.node-port-label.is-output{right:14px;text-align:right}.image-to-image-node{min-width:410px;min-height:230px;padding-bottom:38px}.text-to-image-node{min-width:360px;min-height:200px;padding-bottom:38px}.image-to-image-node .node-port-label.is-prompt{bottom:20px}.image-to-image-node .node-port-label.is-references{bottom:6px}.typed-node .node-port-handle.node-port-output{top:auto;bottom:10px}.typed-node .node-port-handle.node-port-prompt{top:auto;bottom:24px}.typed-node .node-port-handle.node-port-references{top:auto;bottom:10px}.prompt-node .node-port-handle.node-port-output,.reference-image-node .node-port-handle.node-port-output,.text-to-image-node .node-port-handle.node-port-output,.text-to-image-node .node-port-handle.node-port-prompt{bottom:10px}.generation-node-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:7px 16px;gap:7px 16px;margin-top:10px;padding:10px 0 4px}.generation-node-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35}.llm-node{min-width:360px;min-height:210px;width:100%;max-width:none;padding-bottom:38px}.node-status-badge{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;min-height:22px;padding:0 7px;color:#a1a1aa;background:#18181b;border:1px solid #3f3f46;border-radius:999px;font-size:.64rem;font-weight:800;white-space:nowrap}.typed-node-header>.node-status-badge{display:inline-flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;min-width:max-content;line-height:1}.typed-node-header>.node-status-badge .node-status-dot{display:block}.node-status-dot{width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:#71717a}.node-status-badge[data-status=pending],.node-status-badge[data-status=running]{color:#99f6e4;background:rgba(13,148,136,.2);border-color:rgba(94,234,212,.42)}.node-status-badge[data-status=pending] .node-status-dot,.node-status-badge[data-status=running] .node-status-dot{background:#5eead4;box-shadow:0 0 0 3px rgba(94,234,212,.13);animation:node-status-pulse 1.2s ease-in-out infinite}.node-status-badge[data-status=succeeded]{color:#bbf7d0;background:rgba(22,101,52,.2);border-color:rgba(134,239,172,.36)}.node-status-badge[data-status=succeeded] .node-status-dot{background:#86efac}.node-status-badge[data-status=failed]{color:#fecaca;background:rgba(127,29,29,.34);border-color:rgba(248,113,113,.65)}.node-status-badge[data-status=failed] .node-status-dot{background:#f87171;box-shadow:0 0 0 3px rgba(248,113,113,.14)}@keyframes node-status-pulse{50%{opacity:.45}}.canvas-node-resize-handle{display:none!important;width:18px!important;height:18px!important;background:transparent!important;border:0!important}.canvas-node-resize-handle.bottom.right{right:-7px!important;bottom:-7px!important;display:block!important;cursor:nwse-resize}.canvas-node-resize-handle:after,.canvas-node-resize-handle:before{position:absolute;right:1px;bottom:1px;content:"";background:transparent;border-right:2px solid #a1a1aa;border-bottom:2px solid #a1a1aa;border-radius:0 0 2px}.canvas-node-resize-handle:before{width:11px;height:11px}.canvas-node-resize-handle:after{right:5px;bottom:5px;width:5px;height:5px}.canvas-node-resize-handle:hover:after,.canvas-node-resize-handle:hover:before{border-color:#ffffff}.canvas-node-resize-line{border-color:transparent!important}.canvas-stage .react-flow__node.selected .canvas-node-resize-line{border-color:rgba(161,161,170,.38)!important}.canvas-stage .react-flow__node.selected .canvas-node-resize-line.react-flow__resize-control.line.left,.canvas-stage .react-flow__node.selected .canvas-node-resize-line.react-flow__resize-control.line.right{border-width:0 1px 0 0!important}.canvas-stage .react-flow__node.selected .canvas-node-resize-line.react-flow__resize-control.line.bottom,.canvas-stage .react-flow__node.selected .canvas-node-resize-line.react-flow__resize-control.line.top{border-width:0 0 1px!important}.llm-node-output-shell{display:grid;grid-gap:5px;gap:5px;margin-top:10px}.llm-node-output{margin:0;color:#d4d4d8;font-size:.74rem;line-height:1.45;overflow-wrap:anywhere}.llm-node-output-shell:not(.is-expanded) .llm-node-output{display:-webkit-box;max-height:4.35em;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.llm-node-output-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.llm-node-output-actions button{display:inline-grid;width:26px;height:26px;place-items:center;padding:0;color:#a1a1aa;background:#18181b;border:1px solid #2d2d33;border-radius:5px;cursor:pointer}.llm-node-output-actions button:hover{color:#ffffff;border-color:#a1a1aa;background:#27272a}.llm-node-output-actions>span{color:#86efac;font-size:.66rem}.llm-node small[data-status=failed],.llm-node small[data-status=running]{display:inline-block;width:max-content;margin-top:8px;padding:3px 7px;border-radius:999px}.llm-node small[data-status=running]{color:#99f6e4;background:rgba(13,148,136,.24);border:1px solid rgba(94,234,212,.38)}.llm-node small[data-status=failed]{color:#fecaca;background:rgba(127,29,29,.3);border:1px solid rgba(248,113,113,.52)}.llm-node>em{display:block;margin-top:8px;color:#fca5a5;font-size:.7rem;font-style:normal;font-weight:700}.canvas-stage .react-flow__node.selected .canvas-node,.canvas-stage .react-flow__node:focus .canvas-node{border-color:#ffffff;box-shadow:0 0 0 1px rgba(255,255,255,.42),0 18px 45px rgba(0,0,0,.34)}.canvas-stage .react-flow__node .canvas-node.is-failed,.canvas-stage .react-flow__node.selected .canvas-node.is-failed,.canvas-stage .react-flow__node:focus .canvas-node.is-failed{border-color:#ef4444;box-shadow:0 0 0 1px rgba(239,68,68,.72),0 0 18px rgba(239,68,68,.2),0 18px 45px rgba(0,0,0,.34)}.node-failure-message{display:block;margin-top:8px;padding:5px 7px;color:#fecaca;background:rgba(127,29,29,.3);border:1px solid rgba(248,113,113,.5);border-radius:5px;font-size:.7rem;font-style:normal;font-weight:700;line-height:1.35;overflow-wrap:anywhere}.canvas-node .react-flow__handle{width:9px;height:9px;background:#f8fafc;border:2px solid #050505}.generation-node p,.text-node p{margin:8px 0;color:#f8fafc;line-height:1.45}.image-node{display:grid;padding:6px;position:relative;background:#050505}.image-node img{display:block;width:220px;max-height:220px;object-fit:cover;border-radius:6px}.image-node-actions{display:inline-flex;align-items:center;gap:4px;position:absolute;top:10px;right:10px;z-index:2;max-width:calc(100% - 20px);padding:4px;border:1px solid rgb(255 255 255/.14);border-radius:8px;background:rgb(5 5 5/.86);box-shadow:0 12px 28px rgb(0 0 0/.42);opacity:.24;pointer-events:auto;transform:translateY(-2px);transition:opacity .16s ease,transform .16s ease,border-color .16s ease}.image-node:focus-within .image-node-actions,.image-node:hover .image-node-actions{border-color:rgb(255 255 255/.24);opacity:1;pointer-events:auto;transform:translateY(0)}.image-node-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;white-space:nowrap;color:#f8fafc;background:#18181b;border:1px solid #2d2d33;border-radius:8px;font-size:.74rem;font-weight:800;cursor:pointer}.image-node-action-icon{width:28px;padding-inline:0}.image-node-action:hover:not(:disabled){border-color:#ffffff;background:#050505}.image-node-action-danger{color:#fecaca}.image-node-action-danger:hover:not(:disabled){border-color:#ef4444;background:#2a0d0d;color:#ffffff}.image-node-action:disabled{opacity:.45;cursor:not-allowed}.generation-node strong{display:block;color:#ffffff;font-size:.88rem}.group-node{width:100%;height:100%;min-width:0;max-width:none;padding:0;color:#e5e7eb;background:rgba(24,24,27,.3);border-color:rgba(161,161,170,.38);box-shadow:none}.group-node-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:42px;padding:0 14px;border-bottom:1px solid rgba(161,161,170,.2);background:rgba(24,24,27,.72);border-radius:7px 7px 0 0}.group-node.is-collapsed .group-node-header{height:100%;border-bottom:0;border-radius:7px}.group-node-title{display:flex;align-items:baseline;gap:10px;min-width:0}.group-node-header strong{color:#ffffff;font-size:.86rem}.group-node-header span{color:#a3a3ad;font-size:.74rem}.group-node-actions{display:inline-flex;align-items:center;gap:3px;flex:none}.group-node-actions button{display:grid;place-items:center;width:28px;height:28px;padding:0;color:#a3a3ad;background:rgba(9,9,11,.64);border:1px solid #34343a;border-radius:5px;cursor:pointer}.group-node-actions button:hover{color:#ffffff;border-color:#71717a}.canvas-stage .react-flow__node-group.selected .group-node,.canvas-stage .react-flow__node-group:focus .group-node{border-color:rgba(255,255,255,.72);box-shadow:0 0 0 1px rgba(255,255,255,.18)}.generation-node small,.generation-node span{display:block;color:#a3a3ad;font-size:.76rem}.generation-node small{width:max-content;margin-top:8px;padding:3px 7px;color:#d4d4d8;background:#18181b;border:1px solid #2d2d33;border-radius:999px}.generation-node small[data-status=running]{color:#bae6fd;background:rgba(14,116,144,.24);border-color:rgba(125,211,252,.35)}.generation-node small[data-status=succeeded]{color:#bbf7d0;background:rgba(22,101,52,.24);border-color:rgba(134,239,172,.34)}.generation-node small[data-status=failed]{color:#fecaca;background:rgba(127,29,29,.24);border-color:rgba(252,165,165,.34)}.generation-node em{display:block;margin-top:8px;color:#fca5a5;font-size:.8rem;font-style:normal}.workbench-toolbar{left:50%;z-index:23;display:flex;width:auto;max-width:calc(100vw - 32px);min-width:0;transform:translateX(-50%);color:#a3a3ad;background:rgba(5,5,5,.88);border:1px solid #303036;border-radius:999px}.canvas-navigation-controls,.workbench-toolbar{position:absolute;bottom:16px;align-items:center;gap:4px;padding:5px;box-shadow:0 14px 36px rgba(0,0,0,.24);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.canvas-navigation-controls{left:14px;z-index:24;display:inline-flex;background:rgba(5,5,5,.9);border:1px solid #303036;border-radius:8px}.canvas-navigation-controls>button,.canvas-zoom-trigger{display:grid;place-items:center;width:38px;height:38px;padding:0;color:#d4d4d8;background:#18181b;border:1px solid #2d2d33;border-radius:6px;cursor:pointer}.canvas-navigation-controls>button:hover,.canvas-navigation-controls>button[aria-pressed=true],.canvas-zoom-trigger:hover{color:#ffffff;background:#050505;border-color:#71717a}.canvas-navigation-controls button:focus-visible{outline:2px solid #f4f4f5;outline-offset:2px}.canvas-surface.is-box-selection-enabled .react-flow__pane{cursor:crosshair}.canvas-stage .react-flow__selection{background:rgba(161,161,170,.08);border:1px solid rgba(228,228,231,.72)}.canvas-zoom-region{position:relative}.canvas-zoom-trigger{width:58px;font-size:.76rem;font-weight:800}.canvas-zoom-menu{position:absolute;bottom:calc(100% + 12px);left:0;display:grid;grid-gap:3px;gap:3px;width:220px;padding:6px;background:rgba(12,12,14,.98);border:1px solid #3f3f46;border-radius:8px;box-shadow:0 18px 44px rgba(0,0,0,.46)}.canvas-zoom-menu button{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;grid-gap:8px;gap:8px;min-height:36px;padding:0 9px;color:#e4e4e7;text-align:left;background:transparent;border:0;border-radius:5px;cursor:pointer}.canvas-zoom-menu button:hover:not(:disabled){color:#ffffff;background:#27272a}.canvas-zoom-menu button:disabled{color:#71717a;cursor:not-allowed}.canvas-zoom-menu kbd{color:#71717a;font:inherit;font-size:.68rem}.canvas-minimap-shell{position:absolute;bottom:72px;left:14px;z-index:23;width:220px;height:138px;overflow:hidden;background:rgba(10,10,12,.96);border:1px solid #3f3f46;border-radius:8px;box-shadow:0 18px 44px rgba(0,0,0,.42)}.canvas-minimap-shell .react-flow__minimap{position:static;width:100%;height:100%;margin:0;background:#0a0a0a}.workbench-toolbar-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:40px;min-height:40px;padding:0 10px;color:#f8fafc;background:#18181b;border:1px solid #2d2d33;border-radius:999px;font-size:.72rem;font-weight:800;cursor:pointer}.workbench-toolbar-toggle:hover{border-color:#ffffff;background:#050505}.toolbar-group{display:inline-flex;align-items:center;gap:6px;min-width:0}.workbench-more-region{position:relative;flex:0 0 auto}.workbench-save-slot{display:inline-flex;align-items:center;padding-left:4px;margin-left:2px;border-left:1px solid #3f3f46}.workbench-save-slot.is-leading{order:-1;padding-right:4px;padding-left:0;margin-right:2px;margin-left:0;border-right:1px solid #3f3f46;border-left:0}.workbench-more-popover{position:absolute;right:0;bottom:calc(100% + 12px);z-index:30;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px;width:max-content;max-width:min(360px,calc(100vw - 32px));padding:8px;background:rgba(10,10,12,.98);border:1px solid #3f3f46;border-radius:8px;box-shadow:0 18px 44px rgba(0,0,0,.46);transform-origin:bottom right;animation:workbench-more-enter .18s ease-out}.toolbar-file-button,.toolbar-group button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 9px;color:#f8fafc;background:#18181b;border:1px solid #2d2d33;border-radius:999px;font-size:.72rem;font-weight:700;cursor:pointer}.workbench-toolbar .toolbar-file-button:focus-visible,.workbench-toolbar .toolbar-file-button:has(+.toolbar-file-input:focus-visible),.workbench-toolbar button:focus-visible{outline:2px solid #f4f4f5;outline-offset:2px}.workbench-more-popover .toolbar-file-button,.workbench-more-popover button{width:100%;min-width:0;overflow:hidden;justify-content:flex-start;text-overflow:ellipsis;white-space:nowrap}.toolbar-file-button:hover,.toolbar-group button:hover:not(:disabled){border-color:#ffffff;background:#050505}.toolbar-group button:disabled{color:#71717a;cursor:not-allowed}.toolbar-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.toolbar-history-actions button{width:40px;padding:0;justify-content:center}.task-history-panel{position:absolute;right:16px;bottom:78px;z-index:12;display:grid;grid-gap:10px;gap:10px;width:min(100%,460px);max-height:min(560px,calc(100vh - 110px));overflow:hidden;overflow:auto;padding:14px;color:#f8fafc;background:rgba(10,10,12,.96);border:1px solid #303036;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.42);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.shortcut-panel+.task-history-panel{display:none}.task-history-header p{margin:0 0 4px;color:#a3a3ad;font-size:.72rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.task-history-header h2{margin:0;font-size:1rem}.task-history-list{min-height:0;overflow-y:auto;padding-right:4px;display:grid;grid-gap:8px;gap:8px;scrollbar-color:#52525b transparent;scrollbar-width:thin}.task-history-list::-webkit-scrollbar{width:6px}.task-history-list::-webkit-scrollbar-track{background:transparent}.task-history-list::-webkit-scrollbar-thumb{background:#52525b;border:1px solid transparent;border-radius:999px;background-clip:padding-box}.task-history-list::-webkit-scrollbar-thumb:hover{background:#71717a;background-clip:padding-box}.task-history-item{display:grid;grid-gap:7px;gap:7px;padding:10px;background:#101014;border:1px solid #25252b;border-radius:10px}.task-history-actions,.task-history-item>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.task-history-item strong{overflow:hidden;color:#f8fafc;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.task-history-item>div:first-child>span{padding:2px 7px;color:#d4d4d8;background:#18181b;border:1px solid #2d2d33;border-radius:999px;font-size:.72rem;font-weight:800}.task-history-item p{margin:0;color:#a3a3ad;font-size:.78rem;line-height:1.45}.task-history-item em{color:#fca5a5;font-size:.76rem;font-style:normal}.task-history-actions{justify-content:flex-start}.task-history-actions button{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 9px;color:#f8fafc;background:#18181b;border:1px solid #2d2d33;border-radius:999px;font-size:.72rem;font-weight:800;cursor:pointer}.task-history-actions button:hover{border-color:#ffffff;background:#050505}.generation-result-gallery{display:grid;grid-gap:8px;gap:8px;padding-top:4px;border-top:1px solid #25252b}.generation-result-gallery>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.generation-result-gallery>header span{display:inline-flex;align-items:center;gap:6px;color:#e4e4e7;font-size:.74rem;font-weight:800}.generation-result-gallery>header small{color:#a1a1aa;font-size:.7rem}.generation-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.generation-result-grid article{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center;min-width:0;overflow:hidden;background:#09090b;border:1px solid #2d2d33;border-radius:6px}.generation-result-grid img{grid-column:1/-1;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#050505}.generation-result-grid label{display:flex;align-items:center;gap:6px;min-width:0;padding:6px 8px;color:#d4d4d8;font-size:.7rem}.generation-result-grid label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generation-result-grid a{display:grid;width:30px;height:30px;place-items:center;color:#d4d4d8}.generation-result-gallery>button{min-height:30px;color:#f8fafc;background:#18181b;border:1px solid #3f3f46;border-radius:5px;font-size:.72rem;font-weight:800;cursor:pointer}.generation-result-gallery>button:disabled{color:#71717a;cursor:not-allowed}.shortcut-panel{position:absolute;right:16px;bottom:72px;z-index:13;width:min(420px,calc(100vw - 32px));padding:14px;color:#f8fafc;background:rgba(10,10,12,.96);border:1px solid #303036;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.42);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.shortcut-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.shortcut-panel-header p{margin:0 0 4px;color:#a3a3ad;font-size:.72rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.shortcut-panel-header h2{margin:0;font-size:1rem}.shortcut-panel-header button{min-height:30px;padding:0 10px;color:#f8fafc;background:#18181b;border:1px solid #2d2d33;border-radius:999px;font-size:.76rem;font-weight:700;cursor:pointer}.shortcut-list{display:grid;grid-gap:10px;gap:10px;margin:0}.shortcut-list div{display:flex;align-items:center;justify-content:space-between;gap:12px}.shortcut-list dt{color:#f8fafc;font-size:.8rem}.shortcut-list dd{margin:0;display:inline-flex;align-items:center;gap:6px;color:#a3a3ad;font-size:.76rem}.shortcut-list kbd{padding:3px 7px;color:#f8fafc;background:#18181b;border:solid #2d2d33;border-width:1px 1px 2px;border-radius:6px;font-size:.72rem;font-family:inherit}.asset-drawer{position:absolute;top:84px;left:50%;bottom:72px;z-index:14;display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr);grid-gap:10px;gap:10px;width:min(900px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 112px));transform:translateX(-50%);padding:12px;color:#f8fafc;background:rgba(10,10,12,.96);border:1px solid #303036;border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.42);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.empty-canvas-starter-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:2px}.empty-canvas-starter-header>div{display:grid;grid-gap:4px;gap:4px;min-width:0}.empty-canvas-starter-kicker{display:inline-flex;align-items:center;gap:6px;width:max-content;color:#7dd3c7;font-size:.72rem;font-weight:800;letter-spacing:.08em}.empty-canvas-starter-header p{color:#8f8f99;font-size:.75rem;font-weight:500;line-height:1.45;white-space:normal}.empty-canvas-starter-dismiss{display:grid;flex:0 0 auto;width:30px;height:30px;place-items:center;padding:0;color:#85858f;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer}.empty-canvas-starter-dismiss:hover{color:#f4f4f5;background:#18181b;border-color:#303036}.empty-canvas-starter-dismiss:focus-visible,.empty-canvas-starter-restore:focus-visible{outline:2px solid rgba(125,211,199,.62);outline-offset:2px}.empty-canvas-starter-restore{position:absolute;top:min(22vh,190px);left:50%;z-index:11;display:inline-flex;align-items:center;gap:8px;min-height:36px;transform:translateX(-50%);padding:0 12px;color:#a3a3ad;background:rgba(12,12,14,.9);border:1px solid #29292f;border-radius:6px;font-size:.76rem;font-weight:700;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.empty-canvas-starter-restore:hover{color:#f4f4f5;background:#18181b;border-color:#3f3f46}.canvas-project-panel,.workspace-settings-panel{scrollbar-width:thin;scrollbar-color:#4a4a53 transparent}.canvas-project-panel::-webkit-scrollbar,.workspace-settings-panel::-webkit-scrollbar{width:6px}.canvas-project-panel::-webkit-scrollbar-track,.workspace-settings-panel::-webkit-scrollbar-track{background:transparent}.canvas-project-panel::-webkit-scrollbar-thumb,.workspace-settings-panel::-webkit-scrollbar-thumb{background:#4a4a53;border-radius:999px}.canvas-recovery-dialog{position:absolute;top:50%;left:50%;z-index:40;width:min(520px,calc(100vw - 32px));padding:22px;color:#f8fafc;background:rgba(10,10,12,.98);border:1px solid #3f3f46;border-radius:12px;box-shadow:0 28px 80px rgba(0,0,0,.55);transform:translate(-50%,-50%)}.canvas-recovery-dialog h2{margin:0;font-size:1rem}.canvas-recovery-dialog p{margin:10px 0 0;color:#a1a1aa;font-size:.78rem;line-height:1.55}.canvas-recovery-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:18px}.canvas-recovery-actions button{display:grid;grid-gap:5px;gap:5px;min-height:64px;padding:11px 12px;color:#f8fafc;text-align:left;background:#18181b;border:1px solid #3f3f46;border-radius:7px;cursor:pointer}.canvas-recovery-actions button:first-child{color:#d7fff7;background:#12312d;border-color:#2d8d7e}.canvas-recovery-actions button:hover:not(:disabled){border-color:#7dd3c7}.canvas-recovery-actions button:disabled{opacity:.55;cursor:not-allowed}.canvas-recovery-actions strong{font-size:.78rem}.canvas-recovery-actions span{color:#a1a1aa;font-size:.68rem;line-height:1.35}.canvas-recovery-actions button:first-child span{color:#a7d8d0}.task-history-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.task-history-header>button{display:grid;place-items:center;width:30px;height:30px;padding:0;color:#d4d4d8;background:#18181b;border:1px solid #3f3f46;border-radius:6px;cursor:pointer}.task-history-header>button:hover{color:#ffffff;border-color:#a1a1aa;background:#27272a}.task-history-empty{margin:4px 0;padding:28px 12px;color:#a1a1aa;text-align:center}.asset-drawer-actions,.asset-drawer-header{display:flex;align-items:center;gap:8px}.asset-drawer-header{align-items:flex-start;justify-content:space-between}.asset-drawer-header p{margin:0 0 4px;color:#a3a3ad;font-size:.7rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.asset-drawer-header h2{margin:0;font-size:1rem}.asset-card-meta a,.asset-card-meta button,.asset-drawer-actions button,.asset-drawer-header button,.asset-upload-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#f8fafc;background:#18181b;border:1px solid #2d2d33;border-radius:6px;font-size:.76rem;font-weight:700;cursor:pointer}.asset-drawer-header button{width:32px;height:32px;padding:0}.asset-count{margin-left:auto;color:#a3a3ad;font-size:.72rem}.asset-drawer-actions button,.asset-upload-button{min-height:32px;padding:0 10px}.asset-upload-button{position:relative}.asset-card-meta button:disabled,.asset-drawer-actions button:disabled,.asset-upload-button.is-disabled{color:#71717a;cursor:not-allowed}.asset-upload-input{position:absolute;width:1px;height:1px;opacity:0}.asset-search{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 10px;color:#71717a;background:#101014;border:1px solid #2d2d33;border-radius:6px}.asset-search:focus-within{color:#e4e4e7;border-color:#71717a}.asset-search input{min-width:0;flex:1 1;color:#f4f4f5;background:transparent;border:0;outline:0;font:inherit;font-size:.78rem}.asset-filter-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:3px;gap:3px;padding:3px;background:#101014;border:1px solid #25252b;border-radius:6px}.asset-filter-tabs button{min-height:30px;color:#a3a3ad;background:transparent;border:0;border-radius:4px;font-size:.74rem;font-weight:700;cursor:pointer}.asset-filter-tabs button[aria-selected=true]{color:#ffffff;background:#27272a}.asset-card-meta a:hover,.asset-card-meta button:hover:not(:disabled),.asset-drawer-actions button:hover:not(:disabled),.asset-drawer-header button:hover,.asset-upload-button:hover:not(.is-disabled){border-color:#ffffff;background:#050505}.asset-drawer-state{margin:0;padding:12px;color:#a3a3ad;background:#101014;border:1px solid #25252b;border-radius:6px;font-size:.82rem;line-height:1.5}.asset-drawer-error{color:#fecaca;background:rgba(127,29,29,.2);border-color:rgba(252,165,165,.3)}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:8px;gap:8px;min-height:0;overflow-y:auto;padding-right:2px}.asset-grid,.context-parameter-bar,.task-history-panel{scrollbar-color:#52525b transparent;scrollbar-width:thin}.asset-grid::-webkit-scrollbar,.context-parameter-bar::-webkit-scrollbar,.task-history-panel::-webkit-scrollbar{width:6px;height:6px}.asset-grid::-webkit-scrollbar-track,.context-parameter-bar::-webkit-scrollbar-track,.task-history-panel::-webkit-scrollbar-track{background:transparent}.asset-grid::-webkit-scrollbar-thumb,.context-parameter-bar::-webkit-scrollbar-thumb,.task-history-panel::-webkit-scrollbar-thumb{background:#52525b;border:1px solid transparent;border-radius:999px;background-clip:padding-box}.asset-grid::-webkit-scrollbar-thumb:hover,.context-parameter-bar::-webkit-scrollbar-thumb:hover,.task-history-panel::-webkit-scrollbar-thumb:hover{background:#71717a;background-clip:padding-box}.canvas-workspace:has(.asset-drawer) .context-parameter-bar,.canvas-workspace:has(.task-history-panel) .context-parameter-bar{display:none}.canvas-workspace:has(.asset-drawer) .shortcut-panel,.canvas-workspace:has(.asset-drawer) .task-history-panel,.canvas-workspace:has(.shortcut-panel) .asset-drawer,.canvas-workspace:has(.task-history-panel) .asset-drawer{display:none}.asset-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);grid-gap:10px;gap:10px;min-width:0;overflow:hidden;padding:8px;background:#101014;border:1px solid #25252b;border-radius:6px}.asset-thumb{position:relative;display:block;overflow:hidden;width:100%;padding:0;aspect-ratio:4/3;background:#050505;border:1px solid #2d2d33;border-radius:5px;cursor:zoom-in}.asset-thumb img{display:block;width:100%;height:100%;object-fit:cover}.asset-thumb>span{position:absolute;right:5px;bottom:5px;display:grid;width:24px;height:24px;place-items:center;color:#ffffff;background:rgba(0,0,0,.72);border-radius:4px;opacity:0}.asset-thumb:focus-visible>span,.asset-thumb:hover>span{opacity:1}.asset-card-meta{display:grid;grid-template-columns:minmax(0,1fr);align-content:space-between;grid-gap:8px;gap:8px;min-width:0;min-height:82px}.asset-card-meta span,.asset-card-meta strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-card-meta strong{color:#f8fafc;font-size:.78rem}.asset-card-meta span{margin-top:4px;color:#a3a3ad;font-size:.7rem}.asset-card-meta .asset-kind{display:inline-flex;width:-moz-fit-content;width:fit-content;margin:0 0 5px;padding:2px 5px;color:#d4d4d8;background:#27272a;border-radius:4px;font-size:.64rem;font-weight:700}.asset-card-actions{display:flex;justify-content:flex-end;gap:5px;min-width:0}.asset-card-meta a,.asset-card-meta button{width:30px;min-height:30px;padding:0;border-radius:5px}.asset-preview-modal{position:absolute;inset:0;z-index:40;display:grid;grid-template-rows:auto minmax(0,1fr);place-items:center;padding:20px;color:#f4f4f5;background:rgba(0,0,0,.86);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.asset-preview-toolbar{display:flex;width:min(960px,100%);align-items:center;justify-content:space-between;gap:16px;padding:10px 0}.asset-preview-toolbar>div{display:grid;min-width:0;grid-gap:2px;gap:2px}.asset-preview-toolbar span{overflow:hidden;color:#a3a3ad;font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.asset-preview-toolbar button{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;color:#ffffff;background:#18181b;border:1px solid #3f3f46;border-radius:6px;cursor:pointer}.asset-preview-modal>img{display:block;width:auto;max-width:min(960px,100%);height:auto;max-height:calc(100vh - 100px);object-fit:contain}.workbench-toolbar strong{color:#f8fafc;font-size:.82rem}@keyframes spin{to{transform:rotate(1turn)}}@keyframes workbench-more-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.context-parameter-bar{grid-template-columns:1fr;right:16px;bottom:76px;left:82px;width:auto;max-height:calc(100vh - 160px);overflow-y:auto;transform:none}.canvas-navigation-controls{bottom:70px}.canvas-minimap-shell{bottom:126px}.canvas-workspace:has(.context-parameter-bar) .canvas-minimap-shell,.canvas-workspace:has(.context-parameter-bar) .canvas-navigation-controls{display:none}.context-parameter-bar.is-prompt,.context-parameter-bar.is-reference{grid-template-columns:1fr}.context-parameter-bar.is-prompt{width:min(100%,calc(100vw - 32px))}.context-image-parameter-common{grid-template-columns:repeat(2,minmax(0,1fr))}.context-ratio-field{grid-column:1/-1}.context-reference-actions{justify-content:stretch}.context-reference-actions>button{flex:1 1}}@media (max-width:680px){.projects-page{padding:20px 12px}.project-row,.projects-header{align-items:stretch;flex-direction:column}.project-create{width:100%;min-width:0}.project-actions{width:100%}.project-open-button{flex:1 1}.settings-page{padding:20px 12px}.settings-form{padding:20px}.app-shell,.settings-actions{grid-template-columns:1fr}.app-shell{grid-template-rows:48px minmax(0,1fr)}.app-sidebar{grid-auto-flow:column;grid-auto-columns:max-content;align-content:center;padding:6px 10px}.canvas-workspace{height:100vh;--mobile-context-max-height:min(300px,calc(100vh - 184px))}.canvas-topbar{top:10px;right:10px;left:10px;display:grid;grid-gap:8px;gap:8px}.canvas-topbar.is-compact{display:flex;align-items:flex-start}.canvas-topbar-actions,.canvas-topbar-left{width:100%;justify-content:space-between}.canvas-topbar.is-compact .canvas-topbar-left{width:auto;flex:1 1 auto}.canvas-project-trigger{max-width:none;flex:1 1 auto}.canvas-topbar.is-compact .canvas-project-trigger{max-width:calc(100vw - 70px)}.canvas-status-pills{flex:0 0 auto}.canvas-save-state{min-width:0;padding:0 9px}.canvas-notice{top:104px;left:50%;max-width:none;width:calc(100vw - 20px);transform:translateX(-50%);text-align:center}.canvas-project-panel,.context-parameter-bar,.workspace-settings-panel{top:104px;right:10px;left:10px;width:auto;max-height:calc(100vh - 184px)}.context-parameter-bar{right:10px;bottom:auto;left:10px;width:auto;max-height:var(--mobile-context-max-height);overflow-y:auto;transform:none}.context-parameter-bar.is-prompt,.context-parameter-bar.is-reference{grid-template-columns:1fr}.context-parameter-common{grid-template-columns:repeat(2,minmax(0,1fr))}.context-image-parameter-common{grid-template-columns:1fr}.model-select-menu{position:static;top:auto;bottom:auto;max-height:min(220px,30vh);margin-top:4px}.context-parameter-bar header{display:flex;align-items:baseline;justify-content:space-between}.context-parameter-actions{justify-content:stretch}.context-parameter-actions>button{flex:1 1}.context-model-error,.context-parameter-actions .typed-readiness-message{max-width:none;text-align:left}.canvas-left-rail{top:120px;left:10px}.canvas-workspace:has(.context-parameter-bar) .canvas-left-rail,.canvas-workspace:has(.context-parameter-bar) .canvas-minimap-shell,.canvas-workspace:has(.context-parameter-bar) .canvas-navigation-controls,.canvas-workspace:has(.workspace-settings-panel) .canvas-left-rail,.canvas-workspace:has(.workspace-settings-panel) .canvas-minimap-shell,.canvas-workspace:has(.workspace-settings-panel) .canvas-navigation-controls,.canvas-workspace:has(.workspace-settings-panel) .workbench-toolbar{display:none}.canvas-workspace:has(.asset-drawer) .canvas-left-rail,.canvas-workspace:has(.asset-drawer) .canvas-minimap-shell,.canvas-workspace:has(.asset-drawer) .canvas-navigation-controls,.canvas-workspace:has(.shortcut-panel) .canvas-left-rail,.canvas-workspace:has(.shortcut-panel) .canvas-minimap-shell,.canvas-workspace:has(.shortcut-panel) .canvas-navigation-controls,.canvas-workspace:has(.task-history-panel) .canvas-left-rail,.canvas-workspace:has(.task-history-panel) .canvas-minimap-shell,.canvas-workspace:has(.task-history-panel) .canvas-navigation-controls{display:none}.workbench-toolbar{bottom:14px;width:auto;max-width:calc(100vw - 20px)}.canvas-navigation-controls{bottom:70px;left:10px}.canvas-minimap-shell{bottom:126px;left:10px;width:min(220px,calc(100vw - 20px))}.workbench-toolbar-toggle,.workbench-toolbar>.toolbar-group:not(.toolbar-history-actions) button{width:40px;padding:0;justify-content:center;font-size:0}.workbench-toolbar-toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.workbench-more-popover{right:0;max-width:calc(100vw - 20px)}.workbench-more-popover .toolbar-file-button,.workbench-more-popover button{width:auto;min-width:0;padding:0 9px;justify-content:flex-start;font-size:.72rem}.empty-canvas-starter{top:112px;flex-direction:column;flex-wrap:wrap;align-items:stretch;justify-content:center;width:min(340px,calc(100vw - 72px));max-width:calc(100vw - 72px);padding:10px 12px;border-radius:14px}.empty-canvas-starter p{text-align:center}.empty-canvas-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px;width:100%}.empty-canvas-actions button,.empty-canvas-upload{justify-content:center;min-width:0;min-height:34px;padding:0 8px;text-align:center;white-space:normal}.shortcut-panel,.task-history-panel{right:10px;bottom:76px;left:10px;width:auto}.empty-canvas-starter-restore{top:112px;left:calc(50% + 28px)}.task-history-panel{top:104px;max-height:none}.asset-drawer{top:104px;right:10px;left:10px;bottom:76px;width:auto;max-height:min(440px,max(240px,calc(100vh - 92px)));transform:none}.asset-card{grid-template-columns:minmax(0,1fr)}.asset-thumb{width:100%}}@media (max-width:420px){.empty-canvas-starter{left:calc(50% + 28px);width:min(300px,calc(100vw - 92px));max-width:calc(100vw - 92px)}}@media (prefers-reduced-motion:reduce){.workbench-more-popover{animation:none}}.reference-image-expand-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:28px;margin-top:8px;padding:0 8px;color:#d4d4d8;background:#18181b;border:1px solid #3f3f46;border-radius:5px;font-size:.68rem;font-weight:700;cursor:pointer}.reference-image-expand-action:hover{color:#ffffff;border-color:#a1a1aa;background:#27272a}.canvas-save-button{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;min-height:40px;padding:0 11px;color:#f4f4f5;background:rgba(10,10,12,.9);border:1px solid #303036;border-radius:999px;box-shadow:0 18px 45px rgba(0,0,0,.24);font-size:0;font-weight:800;cursor:pointer}.canvas-save-button:hover:not(:disabled){color:#ffffff;background:#18181b;border-color:#ffffff}.canvas-save-button:disabled{color:#71717a;background:rgba(10,10,12,.68);border-color:#303036;cursor:not-allowed}.canvas-save-button[data-status=saving-server],.canvas-save-button[data-status=writing-local]{color:#bae6fd;background:#18181b;border-color:rgba(56,189,248,.42)}.canvas-save-button[data-status=conflict],.canvas-save-button[data-status=failed]{color:#fecaca;background:rgba(127,29,29,.28);border-color:rgba(248,113,113,.46)}.canvas-save-button .is-spinning{animation:spin .9s linear infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.canvas-takeover-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 11px;color:#f4f4f5;background:#18181b;border:1px solid #52525b;border-radius:6px;font-size:.74rem;font-weight:800;cursor:pointer}.canvas-takeover-button:hover{color:#ffffff;background:#27272a;border-color:#a1a1aa}