:root{color:#172033;background:#f8f9fc;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px}button,textarea,input{font:inherit}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%)}button{border:0;background:none;cursor:pointer}.auth-shell{display:grid;min-height:100vh;place-items:center;padding:32px;background:radial-gradient(circle at 20% 18%,rgba(6,119,248,.12),transparent 28%),linear-gradient(135deg,#f8fbff,#eef5ff,#f8f9fc)}.auth-card{display:grid;width:min(460px,calc(100vw - 40px));gap:22px;border:1px solid #dde8f8;border-radius:24px;padding:28px;background:#fffffff0;box-shadow:0 28px 80px #12274c29;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.auth-brand{display:inline-flex;align-items:center;gap:7px}.auth-copy{display:grid;gap:8px}.auth-copy span{color:#0f5bd7;font-size:12px;font-weight:800;letter-spacing:0}.auth-copy h1{margin:0;color:#071139;font-size:28px;line-height:1.14;letter-spacing:0}.auth-copy p{margin:0;color:#5f6b80;font-size:14px;line-height:1.65}.auth-provider-list{display:grid;gap:10px}.auth-provider-list button,.auth-dev-shortcut{display:flex;min-height:48px;align-items:center;gap:12px;border:1px solid #dfe7f5;border-radius:14px;padding:0 14px;color:#172033;background:#fff;font-weight:750;text-align:left}.auth-provider-list button:hover,.auth-dev-shortcut:hover{border-color:#9cc4ff;background:#f4f8ff}.auth-provider-icon{display:inline-flex;flex:0 0 auto;width:28px;height:28px;align-items:center;justify-content:center;border:1px solid #e4ebf7;border-radius:999px;background:#fff;box-shadow:0 3px 10px #0f5bd714}.auth-provider-icon svg{display:block;width:18px;height:18px}.auth-provider-icon-github{color:#111827}.auth-provider-note{display:flex;align-items:flex-start;gap:8px;margin:0;border-radius:14px;padding:12px;color:#41516b;background:#eef5ff;font-size:12px;line-height:1.55}.auth-provider-note svg{flex:0 0 auto;margin-top:1px;color:#0f5bd7}.auth-dev-user-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.auth-dev-user-list button{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 9px;align-items:center;min-height:64px;border:1px solid #dfe7f5;border-radius:14px;padding:10px;color:#172033;background:#fff;text-align:left}.auth-dev-user-list button:hover{border-color:#9cc4ff;background:#f4f8ff}.auth-dev-user-list button>span{display:grid;grid-row:span 2;width:34px;height:34px;place-items:center;border-radius:999px;color:#fff;background:#0f5bd7;font-size:12px;font-weight:900}.auth-dev-user-list strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.auth-dev-user-list em{color:#667085;font-size:11px;font-style:normal;font-weight:850;text-transform:uppercase}.auth-dev-shortcut{justify-content:center;min-height:40px;color:#0f3d91;border-color:#cfe2ff;background:#f8fbff;font-size:12px;font-weight:850}.app-shell{display:grid;min-height:100vh;grid-template-rows:58px 1fr;background:#f8f9fc}.topbar{z-index:10;display:grid;grid-template-columns:auto minmax(360px,1fr) auto;align-items:center;gap:14px;padding:0 26px;border-bottom:1px solid #eceef6;background:#ffffffe6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:inline-flex;align-items:center;gap:6px;line-height:1}.brand-wordmark{color:#071139;font-size:24px;font-weight:900;letter-spacing:0}.brand-wordmark span{color:#0677f8}.brand-mark{display:inline-grid;place-items:center;background:transparent}.brand-mark{width:32px;height:28px}.brand-mark img{width:100%;height:100%;display:block;object-fit:contain}.canvas-switcher-shell{display:inline-flex;align-items:center;min-width:0;gap:6px}.topbar-canvas-group{display:inline-flex;align-items:center;gap:10px;min-width:0}.canvas-title-editor{display:inline-flex;max-width:min(420px,42vw);min-width:160px}.canvas-title-button,.canvas-title-editor input{display:inline-flex;width:100%;min-width:0;align-items:center;border:1px solid transparent;border-radius:8px;padding:7px 8px;color:#1d2433;background:transparent;box-shadow:none;font-weight:780}.canvas-title-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-title-button:hover,.canvas-title-editor input:focus{border-color:#9cc4ff;color:#0f3d91;background:#f3f8ff}.canvas-title-editor input{height:34px;font:inherit;outline:none}.canvas-save-state{flex:0 0 auto;max-width:128px;overflow:hidden;color:#6f7b8f;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.topbar-library-button,.topbar-settings-button,.topbar-status-chip{display:inline-flex;flex:0 0 auto;min-height:34px;align-items:center;gap:7px;border:1px solid #e7eaf2;border-radius:10px;padding:0 10px;color:#263247;background:#ffffffd1;font-size:12px;font-weight:850}.topbar-library-button{color:#0f3d91;border-color:#cfe2ff;background:#f3f8ff}.topbar-library-button:hover,.topbar-settings-button:hover{border-color:#9cc4ff;background:#eaf4ff}.topbar-status-chip{color:#667085;background:#f8fafc}.topbar-user-chip{display:inline-flex;flex:0 1 auto;max-width:210px;min-height:34px;align-items:center;gap:7px;border:1px solid #dce7f8;border-radius:999px;padding:0 7px 0 5px;color:#263247;background:#f8fbff;font-size:12px;font-weight:850}.topbar-user-chip>span{display:grid;width:24px;height:24px;flex:0 0 auto;place-items:center;border-radius:999px;color:#fff;background:#0f5bd7;font-size:10px;font-weight:900}.topbar-user-chip strong{min-width:0;overflow:hidden;max-width:82px;text-overflow:ellipsis;white-space:nowrap}.topbar-user-chip em{color:#0f3d91;font-size:10px;font-style:normal;font-weight:900;text-transform:uppercase}.topbar-user-chip button{display:grid;width:24px;height:24px;flex:0 0 auto;place-items:center;border-radius:999px;color:#536073}.topbar-user-chip button:hover{color:#0f3d91;background:#eaf4ff}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;color:#536073;font-size:14px;white-space:nowrap}.top-actions>button:not(.topbar-settings-button){display:inline-grid;flex:0 0 auto;width:34px;min-height:34px;place-items:center;border-radius:10px;padding:0;color:#263247}.top-actions>button:not(.topbar-settings-button):hover{background:#f0f2fb}.app-toast{position:fixed;right:24px;bottom:24px;z-index:80;display:grid;max-width:min(420px,calc(100vw - 32px));gap:4px;border:1px solid #c8dcff;border-radius:12px;padding:12px 14px;color:#10233f;background:#fffffff5;box-shadow:0 18px 44px #1f40782e}.app-toast strong{font-size:13px;font-weight:850}.app-toast span{color:#5d6b82;font-size:12px;line-height:1.35}.locale-select{display:inline-flex;flex:0 0 auto;align-items:center;gap:6px;min-height:34px;border:1px solid #e7eaf2;border-radius:10px;padding:0 8px;color:#536073;background:#ffffffd1}.locale-select span{color:#6f7b8f;font-size:12px}.locale-select select{width:88px;max-width:88px;border:0;outline:0;color:#263247;background:transparent;font-size:13px;font-weight:600}.canvas-stage{position:relative;min-height:0;overflow:hidden;background-color:#fbfcff;background-image:radial-gradient(circle,rgba(102,112,133,.18) 1px,transparent 1px),radial-gradient(circle,rgba(102,112,133,.1) 1px,transparent 1px);background-position:0 0,12px 12px;background-size:24px 24px,24px 24px;touch-action:none}.canvas-stage.file-drag-over{background-color:#f7fbff}.canvas-file-drop-overlay{position:absolute;inset:84px 24px 84px 96px;z-index:40;display:grid;place-items:center;gap:6px;border:2px dashed rgba(15,91,215,.62);border-radius:18px;color:#0f3d91;background:#eff6ffb8;box-shadow:inset 0 0 0 1px #ffffffbd;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.canvas-file-drop-overlay strong{align-self:end;font-size:18px;line-height:1.2}.canvas-file-drop-overlay span{align-self:start;max-width:min(440px,70vw);color:#4f5a70;font-size:13px;line-height:1.45;text-align:center}.connections{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.connections path{fill:none;stroke:#0f3d916b;stroke-width:3;stroke-linecap:round}.connections marker path{fill:#0f3d91ad;stroke:none}.connections .connection-preview{stroke:#2563eb;stroke-width:2;stroke-dasharray:7 7;filter:drop-shadow(0 0 8px rgba(37,99,235,.35))}.connections marker#connection-preview-arrow path{fill:#2563eb}.node-palette-panel{position:absolute;z-index:8;top:92px;left:24px;display:grid;width:276px;max-height:calc(100% - 180px);align-content:start;align-items:start;gap:16px;border:1px solid #e6e9f2;border-radius:18px;padding:14px;overflow-y:auto;overscroll-behavior:contain;background:#fffffff0;box-shadow:0 20px 54px #1720331f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.node-palette-panel::-webkit-scrollbar{width:8px}.node-palette-panel::-webkit-scrollbar-thumb{border:2px solid rgba(255,255,255,.94);border-radius:999px;background:#c8d4e7}.node-palette-panel header{display:flex;align-items:center;justify-content:space-between}.node-palette-panel header span,.palette-section p{color:#667085;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.node-palette-panel header strong{color:#243047;font-size:14px}.palette-section{display:grid;gap:8px}.palette-section p{margin:2px 0 0}.palette-section button{display:grid;grid-template-columns:34px minmax(0,1fr) 30px;align-items:center;gap:10px;min-height:54px;border:1px solid transparent;border-radius:12px;padding:8px 10px;color:#253044;text-align:left}.palette-section button:hover,.palette-section button.active{border-color:#bcd7ff;background:#eaf2ff}.palette-section button>span{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#0f3d91;background:#f3f7ff}.palette-tool-copy{min-width:0}.palette-section strong{display:block;overflow:hidden;color:#20283a;font-size:13px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.palette-section small{display:block;margin-top:3px;overflow:hidden;color:#667085;font-size:11px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.palette-section em{justify-self:end;border-radius:999px;min-width:26px;padding:3px 6px;color:#0f3d91;background:#fff;font-size:10px;font-style:normal;font-weight:800}.palette-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:2px}.palette-actions button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:6px;border:1px solid #e1e8f5;border-radius:11px;padding:0 8px;color:#0f3d91;background:#fff;font-size:12px;font-weight:700;white-space:nowrap}.palette-actions button:hover{border-color:#bcd7ff;background:#f3f8ff}.palette-drag-preview{position:absolute;z-index:40;left:0;top:0;display:inline-flex;align-items:center;gap:8px;border:1px solid #bcd7ff;border-radius:12px;padding:9px 12px;color:#0f3d91;background:#fffffff5;box-shadow:0 18px 42px #1f293f29;font-size:13px;font-weight:800;pointer-events:none;transform-origin:top left}.canvas-node{position:absolute;z-index:4;left:0;top:0;transform-origin:top left;border:1px solid #e1e6f0;border-radius:14px;background:#fffffff5;box-shadow:0 18px 48px #1f293f24;cursor:grab;-webkit-user-select:none;user-select:none}.canvas-node.selected{border-color:#0f3d91;box-shadow:0 0 0 2px #0f3d91,0 18px 48px #1f293f24}.node-group-frame{position:absolute;z-index:2;transform-origin:top left;border:1.5px dashed rgba(15,61,145,.62);border-radius:18px;background:#2563eb0b;box-shadow:0 18px 48px #0f3d9114;cursor:grab;pointer-events:auto;-webkit-user-select:none;user-select:none}.node-group-frame:active{cursor:grabbing}.node-group-frame span{position:absolute;top:-26px;left:14px;border:1px solid #d9e6ff;border-radius:999px;padding:5px 10px;color:#0f3d91;background:#fffffff0;box-shadow:0 8px 22px #1f293f1a;font-size:12px;font-weight:700;white-space:nowrap}.canvas-node-image{overflow:visible;padding:0;border:0;background:transparent;box-shadow:none}.canvas-node-image.selected{box-shadow:none}.connection-dot{position:absolute;z-index:7;top:50%;display:block;width:14px;height:14px;border:2px solid #2563eb;border-radius:999px;background:#fff;box-shadow:0 5px 14px #0f3d9138;opacity:0;transform:translateY(-50%);transition:opacity .12s ease,transform .12s ease}.canvas-node:hover .connection-dot,.canvas-node.selected .connection-dot{opacity:1}.connection-dot.left{left:-19px}.connection-dot.right{right:-19px;cursor:crosshair}.connection-dot.right:hover{transform:translateY(-50%) scale(1.2)}.image-media-shell{position:relative;width:100%;overflow:visible}.image-node-toolbar{position:absolute;z-index:9;left:50%;bottom:calc(100% + 18px);display:inline-flex;align-items:center;gap:6px;max-width:min(720px,calc(100vw - 48px));border:1px solid #e5ebf5;border-radius:16px;padding:7px;background:#fffffff5;box-shadow:0 20px 52px #1f293f29;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform:translate(-50%)}.image-node-toolbar button{display:inline-grid;grid-template-rows:18px 14px;place-items:center;gap:2px;min-width:54px;min-height:46px;border-radius:11px;padding:5px 7px;color:#213047;font-size:10px;font-weight:750;line-height:1;white-space:nowrap}.image-node-toolbar button:hover{color:#0f3d91;background:#edf5ff}.image-node-toolbar button[aria-disabled=true],.image-action-overflow button[aria-disabled=true]{cursor:not-allowed;color:#9aa4b2;background:transparent;opacity:.62}.image-node-toolbar button[aria-disabled=true] svg,.image-action-overflow button[aria-disabled=true] svg{color:#9aa4b2}.image-node-toolbar button svg{color:#0f3d91}.image-node-toolbar-more{position:relative}.image-action-overflow{position:absolute;top:calc(100% + 8px);right:0;display:grid;width:238px;gap:4px;border:1px solid #e5ebf5;border-radius:14px;padding:8px;background:#fffffffa;box-shadow:0 22px 56px #1f293f2e}.image-action-overflow button{display:grid;grid-template-columns:24px minmax(0,1fr) 38px;grid-template-rows:auto;justify-items:start;width:100%;min-height:36px;padding:7px 8px;font-size:12px;text-align:left}.image-action-overflow em{justify-self:end;color:#667085;font-size:10px;font-style:normal;font-weight:800}.image-media-frame{position:absolute;inset:0;overflow:hidden;border-radius:14px;background:#05070d;outline:2px solid #0f3d91;outline-offset:0;box-shadow:0 18px 48px #1f293f24}.image-media-frame img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.image-node-task-badge{position:absolute;top:10px;right:10px;z-index:2;display:inline-flex;align-items:center;gap:6px;max-width:calc(100% - 20px);border:1px solid rgba(255,255,255,.7);border-radius:999px;padding:5px 8px;color:#0f2f6d;background:#ffffffe0;box-shadow:0 10px 24px #0f172a1f;font-size:10px;font-weight:900;pointer-events:none}.image-node-task-badge.queued{color:#0f3d91;background:#edf5ffeb}.image-node-task-badge.completed{color:#047857;background:#ecfdf5eb}.image-node-task-badge.failed{color:#b42318;background:#fef2f2eb}.image-node-task-badge strong{overflow:hidden;max-width:112px;text-overflow:ellipsis;white-space:nowrap}.image-node-placeholder{display:grid;height:100%;place-items:center;align-content:center;gap:8px;padding:24px;color:#445168;background:linear-gradient(135deg,#0f5bd714,#ffffff0a),#f8fbff;text-align:center}.image-node-placeholder svg{color:#0f5bd7}.image-node-placeholder strong{color:#172033;font-size:15px}.image-node-placeholder span{max-width:220px;color:#667085;font-size:12px;line-height:1.45}.image-node-placeholder small{max-width:230px;color:#0f3d91;font-size:11px;font-weight:750;line-height:1.45}.image-node-placeholder button{display:inline-flex;align-items:center;gap:6px;min-height:34px;border:1px solid #c7dcff;border-radius:999px;padding:0 12px;color:#0f3d91;background:#fff;font-size:12px;font-weight:800}.image-node-placeholder button:hover{background:#edf5ff}.node-card-content{height:100%;padding:16px}.node-card-content span{color:#7a8395;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.node-card-content strong{display:block;margin-top:12px;color:#20283a;font-size:16px}.node-card-content p{margin:8px 0 0;color:#667085;font-size:13px;line-height:1.45}.handle{position:absolute;z-index:3;width:16px;height:16px;border:2px solid #0f3d91;border-radius:999px;background:#fff;box-shadow:0 3px 10px #0f3d9138;touch-action:none}.handle.nw{top:-24px;left:-24px;cursor:nwse-resize}.handle.ne{top:-24px;right:-24px;cursor:nesw-resize}.handle.sw{bottom:-24px;left:-24px;cursor:nesw-resize}.handle.se{right:-24px;bottom:-24px;cursor:nwse-resize}.connection-create-menu{position:absolute;z-index:20;display:grid;width:260px;gap:6px;border:1px solid #e7eaf2;border-radius:16px;padding:10px;color:#263247;background:#fffffff5;box-shadow:0 24px 68px #1f293f29;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.connection-create-menu-header{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 6px;color:#667085;font-size:12px;font-weight:700}.connection-create-menu-header button{display:grid;width:24px;height:24px;place-items:center;border-radius:8px;color:#536073}.connection-create-menu>button{display:grid;gap:3px;border-radius:11px;padding:10px;text-align:left}.connection-create-menu>button:hover{color:#2563eb;background:#eaf2ff}.connection-create-menu strong{font-size:13px}.connection-create-menu span{color:#667085;font-size:11px}.node-composer{width:min(430px,calc(100vw - 48px));min-height:124px;margin-top:18px;margin-left:50%;border:1px solid #e7eaf2;border-radius:18px;padding:12px;background:#ffffffeb;box-shadow:0 26px 70px #1f293f1f;transform:translate(-50%)}.node-composer textarea{width:100%;height:68px;resize:none;border:0;outline:0;color:#273246;background:transparent}.node-composer footer{display:flex;align-items:center;gap:8px;margin-top:10px}.node-composer footer span{min-height:34px;border:1px solid #e4eaf4;border-radius:12px;padding:8px 10px;color:#334155;background:#fff;font-size:12px;font-weight:750;white-space:nowrap}.node-composer footer span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}.node-composer footer button{display:inline-flex;min-height:34px;align-items:center;gap:6px;margin-left:auto;border-radius:12px;padding:0 13px;color:#fff;background:#0f5bd7;font-size:12px;font-weight:850;white-space:nowrap;box-shadow:0 10px 24px #0f5bd73d}.image-preview-backdrop{position:fixed;z-index:42;inset:58px 0 0;display:grid;place-items:center;padding:28px;background:#0f172a6b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.image-preview-modal{display:grid;width:min(1080px,calc(100vw - 48px));max-height:calc(100vh - 104px);gap:12px;border:1px solid rgba(255,255,255,.38);border-radius:20px;padding:14px;background:#fffffff5;box-shadow:0 30px 90px #0f172a47}.image-preview-modal header{display:flex;align-items:center;justify-content:space-between;gap:12px}.image-preview-modal header div{display:grid;gap:2px}.image-preview-modal header span{color:#0f5bd7;font-size:11px;font-weight:900}.image-preview-modal header strong{color:#172033;font-size:14px}.image-preview-modal header button{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#253044;background:#eef3fb;font-size:22px}.image-preview-modal>img{display:block;width:100%;max-height:calc(100vh - 184px);object-fit:contain;border-radius:14px;background:#07111f}.image-info-backdrop{position:fixed;z-index:44;inset:58px 0 0;display:grid;place-items:center;padding:28px;background:#0f172a61;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.image-info-modal{display:grid;width:min(960px,calc(100vw - 48px));max-height:calc(100vh - 104px);gap:14px;border:1px solid rgba(255,255,255,.42);border-radius:20px;padding:16px;color:#172033;background:#fffffff7;box-shadow:0 30px 90px #0f172a47}.image-info-modal header{display:flex;align-items:center;justify-content:space-between;gap:12px}.image-info-modal header div{display:grid;gap:2px}.image-info-modal header span{color:#0f5bd7;font-size:11px;font-weight:900}.image-info-modal header strong{color:#172033;font-size:15px}.image-info-modal header button{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#253044;background:#eef3fb;font-size:22px}.image-info-layout{display:grid;grid-template-columns:minmax(340px,1.25fr) minmax(260px,.75fr);gap:16px;min-height:420px}.image-info-preview{display:grid;min-height:420px;place-items:center;overflow:hidden;border-radius:16px;background:#07111f}.image-info-preview img{display:block;width:100%;height:100%;max-height:calc(100vh - 206px);object-fit:contain}.image-info-list{display:grid;align-content:start;gap:10px;margin:0;padding:12px;border:1px solid #dce7f8;border-radius:16px;background:#f8fbff}.image-info-list div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:start}.image-info-list dt{color:#667085;font-size:11px;font-weight:850}.image-info-list dd{margin:0;overflow:hidden;color:#1f2a3d;font-size:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.image-action-sheet-backdrop{position:fixed;z-index:43;inset:58px 0 0;display:grid;place-items:center;padding:28px;background:#0f172a47;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.image-action-sheet{display:grid;width:min(540px,calc(100vw - 48px));gap:16px;border:1px solid #dce7f8;border-radius:20px;padding:16px;color:#172033;background:#fffffff7;box-shadow:0 28px 88px #0f172a3d}.image-action-sheet.crop-sheet{width:min(940px,calc(100vw - 48px));max-height:calc(100vh - 96px)}.image-action-sheet header,.image-action-sheet footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.image-action-sheet header div{display:grid;gap:3px}.image-action-sheet header span{color:#0f5bd7;font-size:11px;font-weight:900}.image-action-sheet header strong{font-size:17px}.image-action-sheet header button{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#253044;background:#eef3fb;font-size:22px}.image-action-sheet-body{display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px}.image-action-sheet-body.crop-mode{grid-template-columns:1fr}.image-action-sheet-preview{display:grid;min-height:132px;place-items:center;overflow:hidden;border:1px solid #dce7f8;border-radius:16px;color:#0f5bd7;background:#f6f9ff}.image-action-sheet-preview.crop-editor-preview{min-height:min(58vh,520px);padding:10px;background:#07111f}.image-action-sheet-preview img{width:100%;height:100%;object-fit:cover}.crop-editor-surface{position:relative;width:min(100%,820px);max-height:min(62vh,620px);overflow:hidden;border-radius:12px;background:#020617;touch-action:none}.crop-editor-surface>img{display:block;width:100%;height:100%;object-fit:fill;-webkit-user-select:none;user-select:none;pointer-events:none}.crop-selection{position:absolute;z-index:2;border:2px solid #67a8ff;background:linear-gradient(#fff3,#fff3),#0f5bd70f;box-shadow:0 0 0 9999px #02061780,0 10px 26px #0f172a38;cursor:move;touch-action:none}.crop-handle{position:absolute;width:14px;height:14px;border:2px solid #0f3d91;border-radius:999px;background:#fff;box-shadow:0 4px 12px #0f3d9147;touch-action:none}.crop-handle.nw{top:-8px;left:-8px;cursor:nwse-resize}.crop-handle.ne{top:-8px;right:-8px;cursor:nesw-resize}.crop-handle.sw{bottom:-8px;left:-8px;cursor:nesw-resize}.crop-handle.se{right:-8px;bottom:-8px;cursor:nwse-resize}.image-action-sheet-copy{display:grid;align-content:start;gap:12px}.image-action-sheet-copy p{margin:0;color:#405066;font-size:13px;line-height:1.55}.crop-ratio-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.crop-ratio-options button{min-height:32px;border:1px solid #dce7f8;border-radius:10px;color:#334155;background:#fff;font-size:12px;font-weight:850}.crop-ratio-options button:hover,.crop-ratio-options button.active{border-color:#9ec4ff;color:#0f3d91;background:#edf5ff}.image-action-sheet-copy dl{display:grid;gap:8px;margin:0}.image-action-sheet-copy dl div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:center}.image-action-sheet-copy dt{color:#667085;font-size:11px;font-weight:850}.image-action-sheet-copy dd{margin:0;overflow:hidden;color:#1f2a3d;font-size:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.image-action-sheet footer{justify-content:flex-end}.image-action-sheet footer button{min-height:38px;border-radius:12px;padding:0 14px;color:#253044;background:#eef3fb;font-size:13px;font-weight:850}.image-action-sheet footer button.primary{color:#fff;background:#0f5bd7;box-shadow:0 12px 26px #0f5bd73d}.canvas-dialog-backdrop{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:24px;background:#f8fafc94;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.canvas-manager-dialog{display:grid;width:min(1080px,calc(100vw - 48px));max-height:calc(100vh - 48px);gap:14px;border:1px solid #e7eaf2;border-radius:20px;padding:18px;background:#fffffff5;box-shadow:0 28px 90px #1f293f33}.canvas-manager-dialog header,.canvas-manager-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.canvas-manager-dialog header span{color:#667085;font-size:12px;font-weight:700}.canvas-manager-dialog h1{margin:3px 0 0;color:#172033;font-size:22px;letter-spacing:0}.canvas-manager-dialog header button{display:grid;width:32px;height:32px;place-items:center;border-radius:10px;color:#344054;background:#f3f6fb;font-size:20px}.canvas-library-body{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;min-height:min(62vh,560px)}.canvas-library-sidebar{display:grid;align-content:start;gap:16px;border-right:1px solid #edf0f7;padding-right:14px}.canvas-library-nav,.canvas-library-folders{display:grid;gap:7px}.canvas-library-folders strong{margin:2px 0 4px;color:#667085;font-size:11px;font-weight:900;text-transform:uppercase}.canvas-library-nav button,.canvas-library-folders button{display:inline-flex;min-height:36px;align-items:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:0 10px;color:#4f5a70;background:transparent;font-size:13px;font-weight:800;text-align:left}.canvas-library-nav button.active,.canvas-library-nav button:hover,.canvas-library-folders button:hover{color:#0f3d91;border-color:#cfe2ff;background:#f3f8ff}.canvas-library-main{display:grid;min-width:0;align-content:start;gap:12px}.canvas-library-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.canvas-manager-search{display:flex;align-items:center;gap:8px;min-height:42px;border:1px solid #dce7f8;border-radius:13px;padding:0 12px;color:#667085;background:#f8fbff}.canvas-manager-search input{width:100%;min-width:0;border:0;outline:0;color:#172033;background:transparent;font-size:13px}.canvas-library-view-controls{display:inline-flex;align-items:center;gap:6px}.canvas-library-view-controls button,.canvas-library-heading button{display:inline-flex;min-height:38px;align-items:center;gap:7px;border:1px solid #e7eaf2;border-radius:11px;padding:0 11px;color:#344054;background:#fff;font-size:12px;font-weight:850}.canvas-library-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.canvas-library-heading div{display:grid;gap:2px;min-width:0}.canvas-library-heading span{color:#667085;font-size:12px;font-weight:800}.canvas-library-heading strong{color:#172033;font-size:17px}.canvas-library-heading .primary{color:#fff;border-color:#0f5bd7;background:#0f5bd7}.canvas-manager-list{display:grid;gap:10px;overflow:auto;max-height:min(48vh,430px);padding-right:2px}.canvas-manager-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;border:1px solid #e7eaf2;border-radius:14px;background:#fff}.canvas-manager-row:hover,.canvas-manager-row.active{border-color:#9cc4ff;background:#f3f8ff}.canvas-manager-row-main{display:grid;gap:4px;min-width:0;padding:14px;color:#253044;text-align:left}.canvas-manager-row-main strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.canvas-manager-row-main span,.canvas-manager-row-main small{overflow:hidden;color:#667085;text-overflow:ellipsis;white-space:nowrap}.canvas-manager-row-main span{font-size:12px}.canvas-manager-row-main small{font-size:11px}.canvas-manager-rename{display:grid;grid-template-columns:minmax(0,1fr) 32px 32px;gap:8px;align-items:center;min-width:0;padding:10px 12px}.canvas-manager-rename input{min-width:0;height:36px;border:1px solid #bdd6fb;border-radius:10px;padding:0 11px;color:#172033;background:#fff;font-size:13px;font-weight:800;outline:none}.canvas-manager-rename input:focus{border-color:#0f5bd7;box-shadow:0 0 0 3px #0f5bd71f}.canvas-manager-rename button{display:grid;width:32px;height:32px;place-items:center;border-radius:9px;color:#344054;background:#eef3fb}.canvas-manager-rename button.primary{color:#fff;background:#0f5bd7}.canvas-manager-confirm-delete{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;min-width:0;padding:10px 12px}.canvas-manager-confirm-delete strong,.canvas-manager-confirm-delete span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-manager-confirm-delete strong{color:#9f1d22;font-size:13px;font-weight:900}.canvas-manager-confirm-delete span{color:#667085;font-size:12px}.canvas-manager-confirm-delete button{min-height:32px;border-radius:9px;padding:0 10px;color:#344054;background:#eef3fb;font-size:12px;font-weight:850}.canvas-manager-confirm-delete button.danger{color:#fff;background:#c3262d}.canvas-manager-row em{border-radius:999px;padding:5px 8px;color:#0f3d91;background:#e8f2ff;font-size:11px;font-style:normal;font-weight:850}.canvas-row-actions{display:flex;align-items:center;gap:2px;padding-right:10px}.canvas-row-actions button{display:grid;width:28px;height:28px;place-items:center;border-radius:8px;color:#8a95a8}.canvas-row-actions button:disabled{cursor:not-allowed;opacity:.56}.canvas-row-actions button.danger:not(:disabled){color:#b4232a;background:#fff1f2}.canvas-import-panel,.canvas-manager-empty{display:grid;place-items:center;gap:12px;min-height:220px;border:1px dashed #cddcf2;border-radius:16px;padding:24px;color:#667085;background:#f8fbff;text-align:center}.canvas-import-panel>svg{color:#0f5bd7}.canvas-import-panel strong{color:#172033;font-size:16px}.canvas-import-panel p{max-width:520px;margin:6px 0 0;font-size:13px;line-height:1.6}.canvas-import-panel footer{justify-content:center;margin-top:4px}.canvas-manager-dialog footer{justify-content:flex-end}.canvas-manager-dialog footer button,.canvas-import-panel footer button{display:inline-flex;min-height:40px;align-items:center;gap:7px;border:1px solid #e7eaf2;border-radius:12px;padding:0 14px;color:#253044;background:#fff}.canvas-manager-dialog footer .primary,.canvas-import-panel footer .primary{color:#fff;border-color:#0f5bd7;background:#0f5bd7}.settings-dialog{display:grid;width:min(900px,calc(100vw - 48px));max-height:calc(100vh - 48px);gap:16px;overflow:auto;border:1px solid #e7eaf2;border-radius:20px;padding:18px;background:#fffffff5;box-shadow:0 28px 90px #1f293f33}.settings-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.settings-dialog header span{color:#667085;font-size:12px;font-weight:800}.settings-dialog h1{margin:4px 0 6px;color:#172033;font-size:22px;letter-spacing:0}.settings-dialog p{max-width:660px;margin:0;color:#667085;font-size:13px;line-height:1.55}.settings-dialog header button{display:grid;flex:0 0 auto;width:32px;height:32px;place-items:center;border-radius:10px;color:#344054;background:#f3f6fb}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.settings-section-card{display:grid;grid-template-columns:22px minmax(0,1fr);gap:5px 10px;min-height:96px;align-content:start;border:1px solid #e7eaf2;border-radius:14px;padding:14px;color:#253044;background:#fff;text-align:left}.settings-section-card:hover{border-color:#9cc4ff;background:#f8fbff}.settings-section-card svg{grid-row:span 2;color:#0f5bd7}.settings-section-card strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.settings-section-card span{color:#667085;font-size:12px;line-height:1.45}.settings-back-button{justify-self:start;min-height:34px;border:1px solid #dce7f8;border-radius:10px;padding:0 12px;color:#0f3d91;background:#f3f8ff;font-size:12px;font-weight:850}.provider-settings-panel{display:grid;gap:14px}.provider-settings-hero{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #cfe2ff;border-radius:16px;padding:14px;background:#f6faff}.provider-settings-hero div{display:grid;gap:3px;min-width:0}.provider-settings-hero span,.provider-list header span,.provider-capabilities header span{color:#667085;font-size:12px;font-weight:750}.provider-settings-hero strong{color:#10233f;font-size:16px;font-weight:900}.provider-settings-hero p{max-width:680px}.provider-settings-hero button,.provider-detail header button{display:inline-flex;flex:0 0 auto;min-height:36px;align-items:center;gap:7px;border:1px solid #0f5bd7;border-radius:11px;padding:0 12px;color:#fff;background:#0f5bd7;font-size:12px;font-weight:850}.provider-flow-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.provider-flow-list li{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:7px;min-height:42px;border:1px solid #e7eaf2;border-radius:12px;padding:0 10px;color:#253044;background:#fff}.provider-flow-list svg{color:#0f5bd7}.provider-flow-list li>span{display:grid;width:18px;height:18px;place-items:center;border-radius:999px;color:#0f3d91;background:#eaf4ff;font-size:10px;font-weight:900}.provider-flow-list strong{overflow:hidden;font-size:11px;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.provider-settings-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px}.provider-list,.provider-detail{min-width:0;border:1px solid #e7eaf2;border-radius:16px;background:#fff}.provider-list{display:grid;align-content:start;gap:8px;padding:12px}.provider-list header,.provider-capabilities header{display:flex;align-items:center;justify-content:space-between;gap:10px}.provider-list button{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;min-height:48px;align-items:center;border:1px solid transparent;border-radius:12px;padding:8px;color:#253044;background:transparent;text-align:left}.provider-list button.active,.provider-list button:hover{border-color:#cfe2ff;background:#f6faff}.provider-status-dot{grid-row:span 2;width:9px;height:9px;border-radius:999px;background:#94a3b8}.provider-status-dot.ready{background:#10a878}.provider-status-dot.blocked{background:#f59e0b}.provider-status-dot.planned{background:#94a3b8}.provider-list button strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.provider-list button em{color:#667085;font-size:11px;font-style:normal;font-weight:750}.provider-detail{display:grid;gap:12px;padding:14px}.provider-detail header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.provider-detail h2{margin:3px 0 5px;color:#10233f;font-size:18px;letter-spacing:0}.provider-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.provider-detail-grid>div{display:grid;gap:4px;min-width:0;border:1px solid #edf0f7;border-radius:12px;padding:10px;background:#fbfcff}.provider-detail-grid strong,.provider-capabilities strong{color:#253044;font-size:12px;font-weight:900}.provider-detail-grid span,.provider-capabilities p,.provider-safety-note{color:#667085;font-size:12px;line-height:1.45}.provider-capabilities{display:grid;gap:8px}.provider-capabilities article{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.8fr);gap:10px;border:1px solid #edf0f7;border-radius:12px;padding:10px;background:#fff}.provider-capabilities article>div{display:grid;gap:4px}.provider-capabilities em{color:#667085;font-size:11px;font-style:normal;font-weight:800;text-transform:uppercase}.provider-capability-status{display:inline-flex;width:fit-content;align-items:center;gap:5px;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:850}.provider-capability-status.ready{color:#047857;background:#ecfdf5}.provider-capability-status.blocked{color:#a15c00;background:#fff7ed}.provider-capability-status.planned{color:#475569;background:#f1f5f9}.provider-safety-note{display:flex;align-items:center;gap:8px;border:1px solid #dce7f8;border-radius:12px;padding:10px;background:#f8fbff}.provider-safety-note svg{flex:0 0 auto;color:#0f5bd7}.provider-tabs{display:flex;flex-wrap:wrap;gap:8px}.provider-tabs button{min-height:34px;border:1px solid #e7eaf2;border-radius:999px;padding:0 12px;color:#4f5a70;background:#fff;font-size:12px;font-weight:850}.provider-tabs button.active,.provider-tabs button:hover{color:#0f3d91;border-color:#9cc4ff;background:#f3f8ff}.provider-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.provider-connection-card,.provider-custom-guide,.provider-local-panel,.provider-advanced-panel,.provider-connection-dialog{min-width:0;border:1px solid #e7eaf2;border-radius:16px;background:#fff}.provider-connection-card{display:grid;align-content:space-between;gap:14px;padding:14px}.provider-connection-card header{display:grid;gap:7px}.provider-connection-card strong,.provider-custom-guide h2,.provider-local-panel strong,.provider-advanced-panel strong,.provider-connection-dialog h2{margin:0;color:#10233f;font-size:16px;font-weight:900;letter-spacing:0}.provider-connection-card p,.provider-custom-guide p,.provider-local-panel p,.provider-connection-dialog label span{margin:0;color:#667085;font-size:12px;line-height:1.5}.provider-chip-row{display:flex;flex-wrap:wrap;gap:6px}.provider-chip-row span{border-radius:999px;padding:5px 8px;color:#0f3d91;background:#eaf4ff;font-size:11px;font-weight:850;text-transform:capitalize}.provider-connection-card button,.provider-custom-guide>button,.provider-connection-dialog footer button{display:inline-flex;min-height:36px;align-items:center;justify-content:center;gap:7px;border:1px solid #dce7f8;border-radius:11px;padding:0 12px;color:#0f3d91;background:#f8fbff;font-size:12px;font-weight:850}.provider-connection-card button:hover,.provider-custom-guide>button:hover,.provider-connection-dialog footer button:hover{border-color:#9cc4ff;background:#f3f8ff}.provider-custom-guide{display:grid;gap:14px;padding:16px}.provider-custom-guide>div,.provider-local-panel>div,.provider-advanced-panel header,.provider-connection-dialog header{display:grid;gap:4px}.provider-custom-guide span,.provider-advanced-panel header span,.provider-connection-dialog header span{color:#667085;font-size:12px;font-weight:800}.provider-custom-guide ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.provider-custom-guide li{min-height:74px;border:1px solid #edf0f7;border-radius:13px;padding:10px;color:#344054;background:#fbfcff;font-size:12px;font-weight:800;line-height:1.45}.provider-local-panel{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1fr);gap:14px;padding:14px}.provider-local-panel .provider-connection-card{border-color:#dce7f8;background:#f8fbff}.provider-advanced-panel{display:grid;gap:12px;padding:14px}.provider-advanced-panel header{grid-template-columns:minmax(0,1fr) auto;align-items:center}.provider-advanced-panel em{color:#667085;font-size:12px;font-style:normal;font-weight:800}.provider-dialog-backdrop{position:fixed;z-index:42;inset:0;display:grid;place-items:center;padding:24px;background:#0f172a2e;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.provider-connection-dialog{display:grid;width:min(620px,calc(100vw - 48px));max-height:calc(100vh - 48px);gap:12px;padding:16px;box-shadow:0 24px 80px #1f293f3d}.provider-connection-dialog header{grid-template-columns:minmax(0,1fr) auto;align-items:start}.provider-connection-dialog header button{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#344054;background:#f3f6fb}.provider-connection-dialog label{display:grid;gap:6px}.provider-connection-dialog input,.provider-connection-dialog textarea{width:100%;min-width:0;border:1px solid #dce7f8;border-radius:12px;padding:10px 12px;color:#172033;background:#fbfcff;font:inherit;font-size:13px;outline:none}.provider-connection-dialog input:focus,.provider-connection-dialog textarea:focus{border-color:#0f5bd7;box-shadow:0 0 0 3px #0f5bd71f}.provider-connection-dialog textarea{min-height:82px;resize:vertical}.provider-connection-dialog footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.provider-connection-dialog footer .primary{color:#fff;border-color:#0f5bd7;background:#0f5bd7}.zoom-strip{position:absolute;z-index:12;bottom:24px;left:24px;display:flex;align-items:center;gap:9px;height:40px;max-width:292px;border:1px solid #e7eaf2;border-radius:12px;padding:0 10px;color:#4f5a70;background:#fffffff0;box-shadow:0 18px 42px #1f293f1a;font-size:13px}.zoom-strip span:nth-child(2){max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zoom-strip button{min-width:26px;min-height:26px;border-radius:8px}.zoom-strip button:hover{background:#f0f2fb}.canvas-minimap{position:absolute;right:24px;bottom:24px;z-index:12;display:grid;width:212px;gap:8px;border:1px solid #e7eaf2;border-radius:16px;padding:10px;color:#4f5a70;background:#fffffff0;box-shadow:0 18px 42px #1f293f1f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.canvas-minimap header{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.canvas-minimap header span{color:#263247;font-weight:800}.canvas-minimap header strong{color:#667085;font-size:11px}.canvas-minimap svg{display:block;width:100%;height:126px;cursor:crosshair}.minimap-surface{fill:#f8fbff;stroke:#dbe7f7;stroke-width:1}.minimap-node{fill:#0f5bd752;stroke:#0f5bd794;stroke-width:1}.minimap-node.selected{fill:#0677f8b8;stroke:#0f3d91;stroke-width:1.5}.minimap-viewport{fill:#0f5bd714;stroke:#0f5bd7;stroke-width:2;vector-effect:non-scaling-stroke}@media(max-width:1100px){.topbar{grid-template-columns:auto minmax(260px,1fr) auto;gap:10px;padding:0 14px}.topbar-status-chip,.topbar-user-chip strong,.topbar-user-chip em,.topbar-settings-button span,.locale-select span{display:none}.topbar-library-button span{max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-title-editor{min-width:120px}.canvas-library-body{grid-template-columns:1fr;min-height:auto}.canvas-library-sidebar{border-right:0;border-bottom:1px solid #edf0f7;padding:0 0 12px}.canvas-library-nav,.canvas-library-folders{grid-template-columns:repeat(2,minmax(0,1fr))}.canvas-library-folders strong{grid-column:1 / -1}.settings-grid{grid-template-columns:1fr}.provider-flow-list,.provider-card-grid,.provider-custom-guide ol,.provider-detail-grid,.provider-capabilities article,.provider-local-panel,.provider-settings-layout{grid-template-columns:1fr}.provider-settings-hero,.provider-detail header{align-items:stretch;flex-direction:column}.top-links,.canvas-minimap{display:none}.node-palette-panel{top:84px;left:14px;width:76px;max-height:calc(100% - 152px);gap:10px;border-radius:16px;padding:10px}.node-palette-panel header,.palette-section p,.palette-tool-copy{display:none}.palette-section button{grid-template-columns:1fr;justify-items:center;min-height:44px;padding:8px}.palette-section button>span{width:30px;height:30px}.palette-section button em{position:static;min-width:38px;margin-top:-2px;font-size:10px;text-align:center}.palette-actions{grid-template-columns:1fr}.palette-actions button{justify-content:center;min-height:38px;font-size:0}.image-info-layout{grid-template-columns:1fr;min-height:auto}.image-info-preview{min-height:320px}.image-action-sheet-body{grid-template-columns:1fr}.image-action-sheet-preview.crop-editor-preview{min-height:360px}}
