:root{--bg:#fff;--panel:#fafafa;--fg:#09090b;--muted:#71717a;--line:#e4e4e7;--hover:#f4f4f5;--ring:#a1a1aa;--accent:#18181b;--accent-fg:#fafafa;--accent-soft:#f4f4f5;--surface:#fff;--err-bg:#fff7f7;--canvas-bg:#e5e7eb;--dots:#0000001f;--err:#ef4444;--warn:#c88a04;--ok:#2f9e6a;--on-solid:#fff;--overlay:#0f121973;--ai-grad:linear-gradient(135deg, #6366f1, #8b5cf6 55%, #ec4899);--brand-1:#ff8a00;--brand-2:#ff2e7e;--brand-3:#6f5bff;--brand-4:#4b73ff;--grouped:#f2f2f7;--cell:#fff;--sep:#c6c6c8;--press:#e5e5ea;--grabber:#d4d4d8;--r-xs:6px;--r-sm:8px;--r-md:10px;--r-lg:12px;--r-xl:14px;--r-full:999px;--radius:var(--r-sm);--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 16px #0f121914;--shadow-lg:0 10px 30px #0000001f;--shadow-xl:0 16px 48px #0f121938;--device:#0b0b0d;--device-edge:#3a3a40;--focus:0 0 0 3px #a1a1aa59;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-base:14px;--fs-lg:15px;--fs-xl:16px;--fs-2xl:20px;--fs-3xl:22px;--mono:"JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--z-bar:2;--z-float:5;--z-overlay:19;--z-orb:20;--z-sheet:31;--z-swipe:40;--z-toast:60;--spring:cubic-bezier(.34,1.56,.64,1)}:root.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#09090b;--panel:#0c0c0e;--fg:#fafafa;--muted:#a1a1aa;--line:#27272a;--hover:#27272a;--ring:#52525b;--accent:#fafafa;--accent-fg:#18181b;--accent-soft:#27272a;--surface:#09090b;--err-bg:#2a1215;--canvas-bg:#18181b;--dots:#ffffff1a;--grouped:#000;--cell:#1c1c1e;--sep:#38383a;--press:#2c2c2e;--grabber:#52525b}@font-face{font-family:WF Icons;src:url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/webfonts/fa-solid-900.woff2)format("woff2");font-weight:100 900;font-display:block}@font-face{font-family:WF Brands;src:url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/webfonts/fa-brands-400.woff2)format("woff2");font-weight:100 900;font-display:block}:root{font:var(--fs-base)/1.45 Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color:var(--fg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}#app{flex-direction:column;height:100%;display:flex}[hidden]{display:none!important}button,input,select,textarea{font:inherit}.spacer{flex:1}.muted{color:var(--muted)}.btn{border:1px solid var(--line);background:var(--bg);height:36px;color:var(--fg);border-radius:var(--radius);cursor:pointer;white-space:nowrap;font-size:var(--fs-base);box-shadow:var(--shadow-sm);align-items:center;gap:8px;padding:0 14px;font-weight:500;transition:background .12s,border-color .12s,color .12s,opacity .12s;display:inline-flex}.btn:hover{background:var(--hover)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn.primary:hover{opacity:.9;background:var(--accent)}.btn.ghost{color:var(--muted);box-shadow:none;background:0 0;border-color:#0000}.btn.ghost:hover,.btn.ghost.active{background:var(--hover);color:var(--fg)}.btn.danger:hover{color:var(--err);border-color:var(--err)}.btn.icon{justify-content:center;width:36px;padding:0}.btn.small{height:32px;font-size:var(--fs-md);padding:0 10px}.btn:disabled{opacity:.55;cursor:progress}a.btn{text-decoration:none}.link{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:4px}.sel,.inp{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);height:36px;color:var(--fg);box-shadow:var(--shadow-sm);padding:0 10px}.sel.small{height:32px;font-size:var(--fs-md);color:var(--muted);padding:0 8px}textarea.inp{height:auto;padding:8px 10px}.btn:focus-visible,.sel:focus-visible,.inp:focus-visible,.name:focus-visible{border-color:var(--ring);box-shadow:var(--focus);outline:0}.topbar{background:var(--bg);border-bottom:1px solid var(--line);height:52px;z-index:var(--z-bar);align-items:center;gap:8px;padding:0 12px;display:flex}.topbar-title{font-size:var(--fs-lg);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.btn.top-btn{color:var(--fg);padding:0 12px;font-weight:500}.btn.top-btn#back{justify-content:center;width:36px;padding:0}.top-email{font-size:var(--fs-md)}@media (width<=640px){.top-email,.topbar>#logout span,.topbar>#admin-link span{display:none}.topbar{gap:4px}.btn.top-btn{padding:0 10px}}.name{border-radius:var(--radius);font-weight:600;font-size:var(--fs-base);min-width:120px;max-width:320px;color:var(--fg);background:0 0;border:1px solid #0000;padding:4px 6px}.name:hover,.name:focus{border-color:var(--line);background:var(--surface);outline:0}.name.save-error{border-color:var(--err)}.modal{border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface);width:min(420px,92vw);color:var(--fg);box-shadow:var(--shadow-xl);padding:0}.modal::backdrop{background:var(--overlay)}.modal form{flex-direction:column;gap:16px;padding:20px;display:flex}.modal p{margin:0;line-height:1.5}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.toast{z-index:var(--z-toast);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-width:min(360px,100vw - 24px);color:var(--fg);box-shadow:var(--shadow-lg);padding:12px 16px;font-weight:500;transition:opacity .2s,transform .2s;animation:.2s toast-in;position:fixed;bottom:20px;right:20px}.toast.out{opacity:0;transform:translateY(8px)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (width<=900px){.toast{max-width:none;bottom:12px;left:12px;right:12px}}.page{background:var(--panel);flex-direction:column;height:100%;display:flex;overflow:auto}.center{flex:1;place-items:center;padding:24px;display:grid}.form-err{color:var(--err);min-height:1em}.form-err:empty{display:none}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);width:min(380px,92vw);box-shadow:var(--shadow-lg);flex-direction:column;gap:10px;padding:24px;display:flex}.auth-card h1{font-size:var(--fs-2xl);margin:0}.auth-card p{margin:0 0 6px}.auth-card .btn.primary{padding:8px}.list{width:min(1100px,100%);margin:0 auto;padding:24px}.list-head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.list-head h1{font-size:var(--fs-3xl);margin:0}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;gap:6px;padding:14px;display:flex}.card:hover{border-color:var(--ring)}.card-name{color:var(--fg);font-weight:600;font-size:var(--fs-lg);text-decoration:none}.card-name:hover{color:var(--accent)}.card-actions{gap:6px;margin-top:6px;display:flex}.empty{text-align:center;grid-column:1/-1;padding:48px 0}.admin-shell{flex:1;min-height:0;display:flex}.admin-nav{border-right:1px solid var(--line);background:var(--bg);flex-direction:column;flex:none;gap:2px;width:220px;padding:12px;display:flex}.admin-link{border-radius:var(--r-xs);color:var(--muted);align-items:center;gap:10px;padding:8px 10px;font-weight:500;text-decoration:none;display:flex}.admin-link i{text-align:center;width:16px}.admin-link:hover{background:var(--hover);color:var(--fg)}.admin-link.active{background:var(--accent-soft);color:var(--fg)}.admin{flex:1;min-width:0;padding:24px;overflow:auto}.admin>*{max-width:760px;margin:0 auto}.admin-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);flex-direction:column;gap:18px;padding:24px;display:flex}.admin-card h1{font-size:var(--fs-2xl);margin:0}.admin-sec{flex-direction:column;gap:8px;display:flex}.admin-sec h2{font-size:var(--fs-base);margin:0}.admin .row{align-items:center;gap:8px;display:flex}.admin-sec .row .inp{flex:1;min-width:0}.admin-sec>.row h2{flex:1}.admin-foot{align-items:center;gap:8px;display:flex}.form-status:empty{display:none}.form-status.error{color:var(--err)}.admin-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.field{flex-direction:column;gap:4px;display:flex}.field-label{font-weight:500}.model-list{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;display:flex}.model{cursor:pointer;align-items:center;gap:8px;padding:8px 10px;display:flex}.model+.model{border-top:1px solid var(--line)}.log-item{border-top:1px solid var(--line);padding:10px 0}.log-item:first-of-type{border-top:0}.log-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.log-head code{font-size:var(--fs-xs)}.log-item p{font-size:var(--fs-md);margin:4px 0 0;line-height:1.5}.admin>.kit-lab{max-width:1280px}.kit-body{grid-template-columns:280px 1fr;align-items:start;gap:20px;display:grid}.kit-body>aside{flex-direction:column;gap:12px;display:flex}.kit-view{flex-direction:column;gap:10px;min-width:0;display:flex}.kit-preview{flex-direction:column;gap:16px;display:flex}.kit-svg{border:1px solid var(--line);border-radius:var(--r-md);background:var(--canvas-bg);overflow:hidden}.kit-svg svg{max-width:100%;height:auto;margin:0 auto;display:block}.kit-head{font-size:var(--fs-base);margin:0}.kit-list{flex-direction:column;gap:2px;display:flex}.kit-item{border-radius:var(--r-xs);align-items:center;gap:8px;padding:4px 8px;display:flex}.kit-item:hover,.kit-item.active{background:var(--hover)}.kit-item input{cursor:pointer;accent-color:var(--accent);margin:0}.kit-name{color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:0;flex:1;padding:2px 0}.kit-item.off .kit-name{color:var(--muted);text-decoration:line-through}.kit-preview [data-comp]{cursor:pointer;transition:opacity .15s}.kit-preview [data-comp]:hover{opacity:.85}.kit-preview [data-comp].off{opacity:.3}.kit-badge{border-radius:var(--r-full);background:var(--accent-soft);color:var(--muted);font-size:var(--fs-xs);margin-left:auto;padding:0 6px}.kit-code{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);max-height:360px;font:var(--fs-sm)/1.5 var(--mono);white-space:pre;margin:0;padding:12px;overflow:auto}@media (width<=900px){.kit-body{grid-template-columns:1fr}.kit-list{flex-flow:wrap;gap:4px}.kit-item{border:1px solid var(--line)}}.doctor-wrap{overflow-x:auto}table.doctor{border-collapse:collapse;width:100%;font-size:var(--fs-md)}table.doctor th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px;font-weight:600}table.doctor td{border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px}table.doctor td.warn{color:var(--warn)}table.doctor td.bad{color:var(--err);font-weight:600}.doctor-act{text-align:right}@media (width<=640px){.admin-shell{flex-direction:column}.admin-nav{border-right:0;border-bottom:1px solid var(--line);scrollbar-width:none;flex-direction:row;width:auto;padding:8px;overflow-x:auto}.admin-link{white-space:nowrap;flex:none}.admin{padding:0}.admin>*{max-width:none}.admin-card{border:0;border-radius:0;gap:24px;padding:16px 16px 0}.admin-foot{z-index:1;background:var(--surface);border-top:1px solid var(--line);flex-wrap:wrap;margin:0 -16px;padding:12px 16px;position:sticky;bottom:0}.admin-foot .spacer{display:none}.admin-foot .form-status{flex-basis:100%}.admin-foot .btn.primary{flex:1;justify-content:center;height:44px}.admin-foot:not(:has(.btn)){border:0;position:static}.admin-grid{grid-template-columns:1fr}.inp,.sel{height:44px;font-size:var(--fs-xl)}textarea.inp{height:auto}.model{flex-wrap:wrap}.model small{flex-basis:100%;padding-left:24px}}.users-list{flex-direction:column;gap:2px;display:flex}.user-item{border-radius:var(--r-xs);cursor:pointer;align-items:center;gap:10px;padding:6px 8px;display:flex}.user-item:hover{background:var(--hover)}.user-email{flex:1}.workspace{flex:1;min-height:0;display:flex}.workspace-main{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.canvas-host{flex:1;min-height:0;position:relative}.preview{background:var(--canvas-bg) radial-gradient(var(--dots) 1px, transparent 1px) 0 0 / 24px 24px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;overflow:hidden}.preview.panning{cursor:grabbing}.world{transform-origin:0 0;position:absolute;top:0;left:0}.world svg{display:block}.canvas-empty{position:absolute;inset:0}.world [data-screen].ai-edit>rect:first-of-type{stroke-width:5px;animation:1.8s linear infinite ai-edit}.world [data-screen].ai-edit>text:first-of-type{fill:var(--brand-3);font-weight:900}@keyframes ai-edit{0%,to{stroke:var(--brand-1)}33%{stroke:var(--brand-2)}66%{stroke:var(--brand-3)}}.world [data-scroll]>rect:first-of-type,.world [data-scroll] clipPath rect{height:var(--h);transition:height .7s cubic-bezier(.4,0,.2,1)}.world [data-scroll] [data-fixed]{transform:translateY(calc(-1 * var(--grow)));transition:transform .7s cubic-bezier(.4,0,.2,1)}.world [data-scroll]:is(:hover,.peek)>rect:first-of-type,.world [data-scroll]:is(:hover,.peek) clipPath rect{height:var(--full)}.world [data-scroll]:is(:hover,.peek) [data-fixed]{transform:none}.world .lane-band{fill:none;stroke:var(--lane);stroke-width:4px}.world .lane-head{fill:var(--lane)}.world .lane-name{fill:var(--on-solid);letter-spacing:.08em;text-anchor:middle;dominant-baseline:central;font-size:16px;font-weight:900}.lanes-links marker path{fill:var(--muted)}.lanes-links marker[id$=-on] path{fill:var(--fg)}.lanes-links path.link{fill:none;stroke:var(--muted);stroke-width:3px;opacity:.3;transition:opacity .2s,stroke-width .2s}.lanes-links path.back{stroke-dasharray:6 6;opacity:0}.lanes-links path.link.on{stroke:var(--fg);opacity:1;stroke-width:5px;marker-end:url(#lane-arrow-on)}[data-screen]{transition:opacity .2s}.flows-on.flow-focus [data-screen]:not(.near){opacity:.3}.canvas-bar{z-index:var(--z-float);pointer-events:none;flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.canvas-bar>*{pointer-events:auto}.canvas-bar>.spacer{pointer-events:none;flex:1}.steps{border-radius:var(--r-lg);border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-md);align-items:center;gap:2px;padding:3px;display:flex}.step{border-radius:var(--r-sm);height:32px;color:var(--muted);font:inherit;font-size:var(--fs-md);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:0 10px 0 5px;display:inline-flex}.step:hover:not(:disabled){color:var(--fg);background:var(--hover)}.step:disabled{opacity:.45;cursor:default}.step.on:disabled{opacity:1}.step.on{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm);font-weight:600}.step-num{border:1.5px solid;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:11px;display:grid}.step.on .step-num{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.step.done:not(.on) .step-num{background:var(--ok);border-color:var(--ok);color:var(--on-solid)}.step-sep{width:14px;color:var(--line);place-items:center;font-size:11px;display:grid}.step-sep.done{color:var(--ok)}.step.busy:after{background:var(--warn);content:"";background:var(--brand-2);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite blink}.step-next-wrap:empty{display:none}.step-next{border-radius:var(--r-lg);height:38px;box-shadow:var(--shadow-md);gap:8px;padding:0 16px}.pro-chip{padding:0 8px 0 10px}.step:not(.pro-chip)+.pro-chip{margin-left:6px}.step:not(.pro-chip)+.pro-chip:before{content:"";background:var(--line);width:1px;height:20px;margin:0 8px 0 -12px}.pro-badge{border-radius:var(--r-full);letter-spacing:.04em;color:var(--on-solid);background:linear-gradient(120deg, var(--brand-1), var(--brand-3));padding:1px 6px;font-size:10px;font-weight:800}.settings-btn{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:38px;height:38px;box-shadow:var(--shadow-md);border-radius:50%;position:relative}.steps-burger,.steps-settings{display:none}.steps-burger{width:32px;color:var(--fg);justify-content:center;padding:0}.steps-settings{position:relative}.settings-btn .err-count:not(:empty),.steps-settings .err-count:not(:empty){border-radius:var(--r-full);background:var(--err);min-width:16px;height:16px;color:var(--on-solid);padding:0 4px;font-size:10px;line-height:16px;position:absolute;top:-4px;right:-4px}@keyframes steps-unfold{0%{clip-path:inset(0 0 calc(100% - 40px) 0 round var(--r-lg));opacity:.5}to{clip-path:inset(0 round var(--r-lg));opacity:1}}@media (width<=900px){.canvas-bar{gap:6px}.steps{scrollbar-width:none;flex:1;order:0;min-width:0;overflow-x:auto}.settings-btn,.canvas-bar>.spacer{display:none}.steps-burger,.steps-settings{display:inline-flex}.step-sep,.steps:not(.open) :is(.step:not(.on),[data-chip=flows]) .step-name,.steps:not(.open) :is(.pro-badge,.steps-settings .step-name){display:none}.steps:not(.open) .step:not(.pro-chip)+.pro-chip{margin-left:0}.steps:not(.open) .step:not(.pro-chip)+.pro-chip:before{margin:0 6px 0 -2px}.steps.open{flex-direction:column;flex:none;align-items:stretch;gap:2px;min-width:230px;padding:6px;animation:.28s cubic-bezier(.2,.8,.2,1) steps-unfold;overflow:visible}.steps.open .step{height:42px;padding-right:14px}.steps.open .steps-burger{width:42px}.steps.open .pro-chip{gap:13px;padding-left:10px}.steps.open .pro-badge{margin-left:auto}.steps.open .step:not(.pro-chip)+.pro-chip,.steps.open .steps-settings{margin:6px 0 0}.steps.open .step:not(.pro-chip)+.pro-chip:before{display:none}.steps.open .steps-settings .err-count:not(:empty){margin-left:auto;position:static}.step-next-wrap{left:50%;bottom:calc(30px + env(safe-area-inset-bottom));position:fixed;transform:translate(-50%)}.step-next{border-radius:var(--r-full);height:44px;box-shadow:var(--shadow-xl);white-space:nowrap;padding:0 20px}}.planning{z-index:var(--z-float);width:min(640px,100% - 24px);max-height:calc(100% - 96px);box-shadow:var(--shadow-xl);background:linear-gradient(var(--surface), var(--surface)) padding-box, linear-gradient(135deg, var(--brand-1), var(--brand-2) 50%, var(--brand-3)) border-box;scrollbar-gutter:stable;border:3px solid #0000;border-radius:22px;flex-direction:column;gap:14px;padding:24px 28px 28px;animation:.25s bubble-in;display:flex;position:absolute;top:calc(50% + 28px);left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.planning::-webkit-scrollbar{width:10px}.planning::-webkit-scrollbar-track{background:0 0}.planning::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--muted) 45%, transparent) padding-box;border:3px solid #0000;border-radius:8px}.planning::-webkit-scrollbar-thumb:hover{background-color:var(--muted)}@supports not selector(::-webkit-scrollbar){.planning{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--muted) 45%, transparent) transparent}}.planning::-webkit-scrollbar-button{display:none}.planning[hidden],.planning-on>:is(.bubble,.orb-dock){display:none}.planning h2{font-size:var(--fs-3xl);margin:0}.planning p{color:var(--muted);margin:0;line-height:1.5}.iv-head{align-items:center;gap:8px;display:flex}.start-step{border-radius:var(--r-full);background:var(--accent-soft);font-size:var(--fs-sm);padding:3px 10px;font-weight:700}.iv-idea{position:relative}.start-input,.iv-text{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg);width:100%;color:var(--fg);font:inherit;padding:12px}.start-input{resize:none;padding-bottom:26px}.iv-text{padding:9px 12px}.start-input:focus,.iv-text:focus{box-shadow:0 0 0 2px var(--ring);outline:0}.iv-count{color:var(--muted);font-size:var(--fs-xs);position:absolute;bottom:9px;right:12px}.start-examples{flex-wrap:wrap;gap:6px;display:flex}.start-ex{border:1px dashed var(--ring);border-radius:var(--r-full);color:var(--fg);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer;background:0 0;padding:6px 10px}.start-ex:hover{background:var(--hover)}.start-go{gap:8px;height:40px;padding:0 18px}.iv-actions{background:linear-gradient(transparent, var(--surface) 35%);flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:0 -28px -28px;padding:12px 28px 20px;display:flex;position:sticky;bottom:-28px}.iv-actions .btn{gap:8px}.iv-tree{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.iv-node{flex-direction:column;gap:10px;padding:0 34px 18px 32px;display:flex;position:relative}.iv-node:before{content:"";background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%;position:absolute;top:4px;left:6px}.iv-node:not(:last-child):after{content:"";background:var(--line);border-radius:1px;width:2px;position:absolute;top:22px;bottom:2px;left:11px}.iv-root{font-size:var(--fs-lg);flex-direction:row;align-items:flex-start;gap:8px}.iv-root:before{display:none}.iv-root>i{color:var(--warn);font-size:16px;position:absolute;top:2px;left:4px}.iv-done{flex-direction:column;gap:5px;display:flex}.iv-q-text{color:var(--muted);font-size:var(--fs-sm)}.iv-chips{flex-wrap:wrap;gap:5px;display:flex}.iv-chip{border-radius:var(--r-full);background:var(--accent-soft);font-size:var(--fs-sm);padding:3px 10px;font-weight:600}.iv-chip.skip{border:1px dashed var(--line);color:var(--muted);background:0 0;font-weight:400}.iv-edit{opacity:0;transition:opacity .15s;position:absolute;top:-6px;right:0}.iv-node:hover>.iv-edit,.iv-edit:focus-visible{opacity:1}@media (hover:none){.iv-edit{opacity:.7}}.iv-open:before{background:var(--brand-2);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand-2) 25%, transparent);animation:1.6s ease-in-out infinite blink}.iv-tip{color:var(--muted);flex-direction:row;align-items:center;gap:8px}.iv-tip.ok{color:var(--fg);font-weight:600}.iv-tip.ok:before{background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb, var(--ok) 25%, transparent)}.iv-tip.ok>i{color:var(--ok)}.iv-tip.err{color:var(--err)}.iv-tip.err:before{background:var(--err)}.iv-form{flex-direction:column;gap:16px;display:flex}.iv-q{border:0;min-width:0;margin:0;padding:0}.iv-q legend{margin-bottom:8px;padding:0;font-weight:600;line-height:1.4}.iv-opts{flex-wrap:wrap;gap:6px;display:flex}.iv-opt{border:1px solid var(--line);border-radius:var(--r-full);background:var(--bg);font-size:var(--fs-md);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:7px 13px 7px 8px;transition:border-color .15s,background .15s;display:inline-flex;position:relative}.iv-opt input{opacity:0;pointer-events:none;position:absolute}.iv-opt:hover{border-color:var(--ring)}.iv-mark{border:1.5px solid var(--line);color:#0000;border-radius:5px;flex:none;place-items:center;width:18px;height:18px;font-size:10px;transition:background .15s;display:grid}.iv-opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft);font-weight:600}.iv-opt:has(input:checked) .iv-mark{border-color:var(--accent);background:var(--accent);color:var(--accent-fg)}.iv-opt:has(input:focus-visible){box-shadow:0 0 0 2px var(--ring)}.iv-add{width:36px;color:var(--muted);font:inherit;border-style:dashed;justify-content:center;padding:7px 0}.iv-add:hover{color:var(--fg)}.iv-add-input{border:1px solid var(--accent);border-radius:var(--r-full);background:var(--bg);width:min(100%,320px);color:var(--fg);font:inherit;font-size:var(--fs-md);padding:7px 13px}.iv-add-input:focus{box-shadow:0 0 0 2px var(--ring);outline:0}.iv-more{border:1px dashed var(--ring);border-radius:var(--r-full);align-self:flex-start;gap:6px}.iv-more-wrap{flex-direction:column;display:flex}.iv-more[hidden],.iv-extra[hidden]{display:none}.iv-extra{border:1px solid var(--accent);border-radius:var(--r-lg);background:var(--bg);width:100%;color:var(--fg);font:inherit;resize:vertical;padding:10px 12px}.iv-extra:focus{box-shadow:0 0 0 2px var(--ring);outline:0}.iv-chip.extra{font-style:italic;font-weight:400}@media (width<=900px){.planning{max-height:calc(100% - 72px);padding:18px 20px 20px;top:calc(50% + 24px)}.iv-actions{margin:0 -20px -20px;padding:12px 20px 16px;bottom:-20px}.iv-actions .btn{flex:1;justify-content:center}}.drawer{border-top:1px solid var(--line);background:var(--bg);flex-direction:column;height:38vh;min-height:180px;display:flex}.drawer-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:6px 12px;display:flex}.drawer-head strong{align-items:center;gap:8px;display:inline-flex}.diags{flex:1;overflow:auto}.diag{font:var(--fs-sm)/1.5 var(--mono);align-items:center;gap:8px;padding:4px 12px;display:flex}.diag span{align-items:center;gap:8px;display:inline-flex}.diag:hover{background:var(--hover)}.diag.error{color:var(--err)}.diag.warn{color:var(--muted)}.diag.ok{color:var(--ok)}.err-count:empty{display:none}.err-count{border-radius:var(--r-full);background:var(--err);min-width:18px;height:18px;color:var(--on-solid);font-size:var(--fs-xs);place-items:center;padding:0 5px;font-weight:700;display:inline-grid}.bubble{right:22px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:var(--z-orb);width:min(420px,100% - 24px);box-shadow:var(--shadow-xl);background:linear-gradient(var(--surface), var(--surface)) padding-box, linear-gradient(135deg, var(--brand-1), var(--brand-2) 50%, var(--brand-3)) border-box;border:3px solid #0000;border-radius:22px;flex-direction:column;gap:8px;padding:8px 10px 10px;display:flex;position:absolute}.bubble.pop{animation:.2s bubble-in}.bubble[hidden]{display:none}.bubble.dragging{box-shadow:var(--shadow-xl), 0 0 0 4px var(--accent-soft)}@property --spin{syntax:"<angle>";inherits:false;initial-value:0deg}:is(.bubble,.planning).busy{background-image:linear-gradient(var(--surface), var(--surface)), conic-gradient(from var(--spin), var(--brand-1), var(--brand-2), var(--brand-3), var(--brand-1));animation:2.4s linear infinite border-spin}@keyframes border-spin{to{--spin:360deg}}@media (prefers-reduced-motion:reduce){:is(.bubble,.planning).busy{animation:none}}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.bubble-head{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;min-height:30px;display:flex}.bubble.dragging .bubble-head{cursor:grabbing}.bubble-grip{color:var(--ring);font-size:var(--fs-sm);padding:0 2px}.bubble-status{min-width:0;color:var(--muted);font-size:var(--fs-md);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;align-items:center;gap:6px;line-height:1.35;display:-webkit-box;overflow:hidden}.bubble.busy .bubble-status{display:flex}.bubble-status.err{color:var(--err)}.bubble-tokens{font:var(--fs-xs)/1.4 var(--mono);color:var(--muted);padding:0 4px}.bubble-tokens[hidden]{display:none}.chat-empty{text-align:center;max-width:260px;color:var(--muted);margin:auto}.chat-empty i{font-size:var(--fs-3xl);color:var(--ring)}.chat-empty p{margin:10px 0 0}.chat-thumbs{flex-wrap:wrap;gap:6px;display:flex}.chat-thumbs:empty{display:none}.chat-thumb{border-radius:var(--r-md);border:1px solid var(--line);width:56px;height:56px;position:relative;overflow:hidden}.chat-thumb img{object-fit:cover;width:100%;height:100%;display:block}.chat-thumb button{cursor:pointer;width:18px;height:18px;color:var(--on-solid);background:var(--overlay);border:0;border-radius:50%;place-items:center;padding:0;font-size:10px;display:grid;position:absolute;top:2px;right:2px}.chat-box{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg);align-items:flex-end;gap:6px;padding:6px 6px 6px 8px;transition:border-color .12s,box-shadow .12s;display:flex}.chat-box:focus-within{border-color:var(--ring);box-shadow:0 0 0 3px var(--accent-soft)}.chat-input{resize:none;max-height:160px;color:var(--fg);font:inherit;field-sizing:content;background:0 0;border:0;outline:0;flex:1;min-height:2.6em;padding:6px 0}.chat-send{border-radius:var(--r-sm);width:34px;height:34px}.bubble.busy .chat-send{background:var(--fg);border-color:var(--fg)}.model-pick select{max-width:160px;margin-left:auto}.dots{gap:3px;display:inline-flex}.dots i{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite blink}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes blink{0%,80%,to{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.top-actions{align-items:center;gap:8px;display:flex}.sheet-group{display:contents}.cycle-val{font-size:var(--fs-sm);font-weight:600}.sheet-overlay,.sheet-label,.sheet-head,.sheet-close,.sheet-grab{display:none}.sheet-head{align-items:center;gap:8px;padding:4px 4px 12px 10px}.sheet-head strong{font-size:var(--fs-xl);font-weight:600}@media (width<=900px){#app:has(>.workspace)>.topbar{display:none}.name{flex:1;min-width:0}.sheet-overlay{z-index:1;background:var(--overlay);opacity:0;pointer-events:none;transition:opacity .2s;display:block;position:fixed;inset:0}.sheet-overlay.open{opacity:1;pointer-events:auto}.sheet-side{z-index:var(--z-sheet);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-xl) var(--r-xl) 0 0;visibility:hidden;border-bottom:0;transition:transform .45s cubic-bezier(.32,.72,0,1),visibility .45s,box-shadow .45s;animation:none;position:fixed;overflow:hidden}.sheet-grab{z-index:1;cursor:grab;touch-action:none;height:24px;display:block;position:absolute;top:0;left:0;right:0}.sheet-grab:after{content:"";border-radius:var(--r-full);background:var(--grabber);width:36px;height:5px;margin-left:-18px;position:absolute;top:6px;left:50%}.sheet-side .sheet-head{touch-action:none}.sheet-head,.sheet-close{display:flex}.top-actions.sheet-side{padding:22px 12px 16px}.sheet-side{top:calc(env(safe-area-inset-top) + 12px);width:auto;padding-top:14px;bottom:0;left:0;right:0;transform:translateY(100%)}.sheet-side.open{visibility:visible;box-shadow:var(--shadow-xl);transform:none}}.top-actions.sheet-side{background:var(--grouped);flex-direction:column;align-items:stretch;gap:0;overflow:auto}.top-actions .sheet-head,.top-actions .sheet-close{display:flex}.top-actions .sheet-label{display:inline}.top-actions .sheet-group{background:var(--cell);border-radius:var(--r-md);flex-direction:column;margin-bottom:24px;display:flex;overflow:hidden}.top-actions .sheet-group>*{height:44px;box-shadow:none;background:var(--cell);color:var(--fg);font-weight:400;font-size:var(--fs-xl);border:0;border-radius:0;justify-content:flex-start;gap:12px;padding:0 16px;position:relative}.top-actions .sheet-group>:active{background:var(--press)}.top-actions .sheet-group>*+:before{content:"";border-top:.5px solid var(--sep);position:absolute;top:0;left:48px;right:0}.top-actions .sheet-group i{text-align:center;width:20px;color:var(--muted)}.top-actions .cycle-val{font-size:var(--fs-xl);color:var(--muted);margin-left:auto;font-weight:400}@media (width>=901px){.top-actions.sheet-side{z-index:var(--z-sheet);border-left:1px solid var(--line);width:320px;box-shadow:var(--shadow-xl);visibility:hidden;padding:16px 12px 0;transition:transform .3s cubic-bezier(.32,.72,0,1),visibility .3s;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.top-actions.sheet-side.open{visibility:visible;transform:none}.top-actions .sheet-group{margin-bottom:12px}.sheet-overlay{z-index:var(--z-overlay);pointer-events:none;display:block;position:fixed;inset:0}.sheet-overlay.open{pointer-events:auto}}.orb-dock{right:22px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:var(--z-orb);width:60px;height:60px;position:absolute}.orb{cursor:pointer;isolation:isolate;background:linear-gradient(var(--surface), var(--surface)) padding-box, linear-gradient(135deg, var(--brand-1), var(--brand-2) 50%, var(--brand-3)) border-box;box-shadow:var(--shadow-lg);width:60px;height:60px;transition:transform .2s var(--spring);border:2px solid #0000;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.orb:before{content:"";z-index:-1;background:conic-gradient(var(--brand-1), var(--brand-2), var(--brand-3), var(--brand-4), var(--brand-1));filter:blur(5px);opacity:.35;border-radius:50%;animation:7s linear infinite orb-spin;position:absolute;inset:-3px}.orb svg{width:30px;height:30px;transition:transform .25s}.orb:hover{transform:scale(1.06)}.orb:active{transform:scale(.94)}.workspace:has(.bubble.busy) .orb:before{opacity:.7;animation-duration:1.1s}@media (prefers-reduced-motion:reduce){.orb:before{animation:none}}@media (width>=901px){.top-actions .small-only{display:none}}.top-actions .sheet-group:has(>[hidden]:only-child){display:none}.swipe{z-index:var(--z-swipe);color:var(--fg);background:radial-gradient(120% 80% at 50% 0%, color-mix(in srgb, var(--accent) 18%, var(--bg)), var(--bg) 70%);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.swipe-head{flex-direction:column;flex:none;justify-content:center;gap:8px;height:64px;padding:8px 12px 0;display:flex}.swipe-bar{gap:4px;display:flex}.swipe-bar i{background:color-mix(in srgb, var(--fg) 18%, transparent);border-radius:2px;flex:1;height:4px;transition:background .2s}.swipe-bar i.now{background:var(--fg)}.swipe-bar i.ok{background:var(--ok)}.swipe-bar i.no{background:var(--err)}.swipe-row{align-items:center;gap:8px;display:flex}.swipe-title{font-size:var(--fs-xl);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.swipe-close{background:color-mix(in srgb, var(--fg) 10%, transparent);width:36px;height:36px;color:var(--fg);cursor:pointer;border:0;border-radius:50%}.swipe-deck{flex:1;grid-template:minmax(0,1fr)/1fr auto 1fr;place-items:center;column-gap:32px;min-height:0;padding:4px 8px 16px;display:grid;position:relative}.swipe-side{place-items:center;display:grid;position:relative}.swipe-side .undo{position:absolute;top:calc(100% + 18px)}.swipe-side.left{grid-area:1/1;justify-self:end}.swipe-side.right{grid-area:1/3;justify-self:start}.swipe-deck[hidden]{display:none}.swipe-card{max-width:100%;height:100%;aspect-ratio:var(--ar);border:10px solid var(--device);background:var(--device);box-shadow:0 0 0 2px var(--device-edge), var(--shadow-xl);touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;will-change:transform;--yes-p:0;--no-p:0;border-radius:56px;grid-area:1/2;transition:transform .3s cubic-bezier(.2,.8,.2,1);position:relative}.swipe-card:before,.swipe-card:after{content:"";background:var(--device-edge);border-radius:2px;width:4px;position:absolute}.swipe-card:before{height:9%;box-shadow:0 64px var(--device-edge);top:18%;left:-16px}.swipe-card:after{height:13%;top:24%;right:-16px}@media (width<=639px){.swipe-card{aspect-ratio:auto;width:100%}.swipe-card:before,.swipe-card:after{display:none}}.swipe-island{background:var(--device);pointer-events:none;border-radius:15px;width:31%;height:30px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.swipe-card.dragging{cursor:grabbing;transition:none}.swipe-card.fly{transition:transform .26s ease-in}.swipe-card.behind{opacity:.55;pointer-events:none;transform:scale(.94)translateY(14px)}.swipe-scroll{scrollbar-width:none;background:var(--device);border-radius:46px;width:100%;height:100%;overflow:hidden auto}.swipe-scroll svg{width:100%;height:auto;display:block}.swipe-stamp{letter-spacing:.06em;text-transform:uppercase;background:color-mix(in srgb, var(--bg) 70%, transparent);pointer-events:none;border:4px solid;border-radius:12px;padding:6px 16px;font-size:32px;font-weight:900;position:absolute;top:56px}.swipe-stamp.ok{color:var(--ok);opacity:var(--yes-p);left:24px;transform:rotate(-14deg)}.swipe-stamp.no{color:var(--err);opacity:var(--no-p);right:24px;transform:rotate(14deg)}.swipe-card.fly-ok .swipe-stamp.ok,.swipe-card.fly-no .swipe-stamp.no{opacity:1}.swipe-btn{cursor:pointer;width:68px;height:68px;color:var(--c);background:color-mix(in srgb, var(--c) 18%, transparent);border:2px solid color-mix(in srgb, var(--c) 50%, transparent);opacity:.8;border-radius:50%;place-items:center;font-size:24px;transition:transform .15s,opacity .15s,background .15s;display:grid}.swipe-btn:hover{opacity:1;background:color-mix(in srgb, var(--c) 28%, transparent)}.swipe-btn:active{transform:scale(.9)}.swipe-btn.yes{--c:var(--ok)}.swipe-btn.no{--c:var(--err)}.swipe-btn.undo{--c:var(--fg);width:44px;height:44px;font-size:16px}.swipe-btn:disabled{opacity:.35;cursor:default}.swipe-ask{padding:20px 16px calc(20px + env(safe-area-inset-bottom));background:var(--surface);box-shadow:var(--shadow-xl);border-radius:24px 24px 0 0;flex-direction:column;gap:12px;animation:.25s ease-out swipe-up;display:flex;position:absolute;bottom:0;left:0;right:0}.swipe-ask[hidden]{display:none}.swipe-ask h3{margin:0}.swipe-ask-actions,.swipe-end-actions{justify-content:flex-end;gap:8px;display:flex}.swipe-text{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg);width:100%;color:var(--fg);font:inherit;resize:vertical;padding:12px}@keyframes swipe-up{0%{transform:translateY(100%)}}@media (width>=640px){.swipe-ask{border-radius:24px;width:520px;animation:none;bottom:24px;left:50%;right:auto;transform:translate(-50%)}}.swipe-end{text-align:center;flex-direction:column;flex:1;justify-content:center;gap:12px;width:min(560px,100%);margin:0 auto;padding:16px;display:flex}.swipe-end[hidden]{display:none}.swipe-end h2{margin:0}.swipe-end p{color:var(--muted);margin:0}.swipe-end .swipe-text{text-align:left;min-height:180px}.swipe-end-actions{justify-content:center}.swipe-end-icon{color:var(--accent);font-size:40px}@media (width<=639px),(pointer:coarse){.swipe-side{display:none}.swipe-deck{grid-template-columns:0 minmax(0,1fr) 0;column-gap:0}.swipe-card.hint{animation:2.4s ease-in-out .5s swipe-hint}.swipe-card.hint .swipe-stamp.ok{animation:2.4s ease-in-out .5s swipe-hint-ok}.swipe-card.hint .swipe-stamp.no{animation:2.4s ease-in-out .5s swipe-hint-no}}@keyframes swipe-hint{0%,to{transform:none}25%{transform:translate(56px)rotate(4deg)}45%,55%{transform:none}75%{transform:translate(-56px)rotate(-4deg)}}@keyframes swipe-hint-ok{0%,45%,to{opacity:0}25%{opacity:.8}}@keyframes swipe-hint-no{0%,55%,to{opacity:0}75%{opacity:.8}}@media (prefers-reduced-motion:reduce){.swipe-card.hint,.swipe-card.hint .swipe-stamp{animation:none}}
