.welcome{position:relative;display:flex;width:100%;height:100%;background:var(--bg, #07071a);overflow:hidden}.welcome-hero{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:16px;padding:48px 40px;position:relative;z-index:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable both-edges}.welcome-hero>*{max-width:560px;width:100%;flex-shrink:0}.welcome-brand,.welcome-h1{width:auto}.welcome-brand{--logo: clamp(37px, 5vw, 60px);display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:8px}.welcome-brand-logo{display:block;width:var(--logo);height:var(--logo);color:var(--accent, #5555ff);filter:drop-shadow(0 0 18px rgba(85,85,255,.45));animation:welcome-logo-breathe 5s ease-in-out infinite}.brand-word{font-size:calc(var(--logo) * .33);font-weight:600;letter-spacing:1.6px;line-height:1;color:#9a9fd6;text-shadow:0 0 12px rgba(110,120,255,.35)}@media (prefers-reduced-motion: reduce){.welcome-brand-logo{animation:none}}@keyframes welcome-logo-breathe{0%,to{filter:drop-shadow(0 0 8px rgba(85,85,255,.3))}50%{filter:drop-shadow(0 0 14px rgba(128,128,255,.45))}}.welcome-h1{font-size:clamp(23px,4vw,34px);font-weight:700;letter-spacing:-.6px;line-height:1.12;color:var(--txt, #e9eafb);text-align:center;margin:6px 0 0}.welcome-quietrow{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:4px}.quiet-link{display:inline-flex;align-items:center;gap:6px;background:#ffffff0a;border:1px solid rgba(120,120,190,.28);padding:9px 18px;border-radius:11px;font-size:13px;font-weight:600;color:var(--txt, #e9eafb);cursor:pointer;list-style:none;transition:color .12s,background .12s,border-color .12s}.quiet-link::-webkit-details-marker{display:none}.quiet-link:hover{color:#fff;background:#ffffff14;border-color:#8c8cdc73}.quiet-dot{display:none}.open-menu{position:relative}.open-menu-pop{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);min-width:210px;padding:5px;border-radius:12px;background:#0a0a14eb;border:1px solid rgba(120,120,190,.18);box-shadow:0 14px 44px #0000008c;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:5;display:flex;flex-direction:column;gap:1px}.open-menu-pop button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 11px;border:none;border-radius:8px;background:transparent;color:var(--txt-2, #a6abd4);font-size:12.5px;font-weight:500;text-align:start;cursor:pointer;transition:background .1s,color .1s}.open-menu-pop button:hover{background:#ffffff0f;color:var(--txt, #e9eafb)}.recent-label{font-size:10.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--txt-3, #8084ae);margin:2px 0 7px;text-align:start}.welcome-footer{font-size:11px;color:var(--txt-3, #5a5a80);opacity:.5;text-align:center;margin-top:24px}.welcome-recents{width:260px;background:#0a0a12eb;border-left:1px solid var(--line, #161628);padding:24px 16px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;position:relative;z-index:1}.recents-heading{font-size:13px;font-weight:700;color:var(--txt-2, #9898c0);text-transform:uppercase;letter-spacing:.5px;padding:0 4px}.recents-list{list-style:none;display:flex;flex-direction:column;gap:2px}.recent-item{display:flex;align-items:center;border-radius:6px;overflow:hidden}.recent-open{flex:1;display:flex;align-items:center;gap:10px;background:transparent;border:none;padding:10px 8px;text-align:left;color:var(--txt-2, #9898c0);border-radius:6px 0 0 6px;transition:background .1s}.recent-open:hover{background:var(--bg-hover, #1c1c32)}.recent-icon{color:var(--txt-3, #5a5a80);display:flex;align-items:center;flex-shrink:0}.recent-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.recent-name{font-size:13px;font-weight:500;color:var(--txt, #e8e8f8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-time{font-size:11px;color:var(--txt-3, #5a5a80)}.recent-del:hover{color:var(--warn, #f9a8a8);border-color:var(--warn, #f9a8a8)}@media (hover: none),(pointer: coarse){.recent-open{min-height:44px}.recent-del,.recent-rename{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}}.recent-open.loading{opacity:.6;pointer-events:none}.recent-open.loading .recent-time{color:var(--accent, #5555ff)}.dialog-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(2px)}.dialog{background:var(--bg-2, #12121f);border:1px solid var(--line, #232340);border-radius:10px;padding:28px;width:380px;display:flex;flex-direction:column;gap:14px;box-shadow:0 24px 64px #0009}.dialog-title{font-size:16px;font-weight:600;color:var(--txt, #e8e8f8)}.dialog-label{font-size:12px;color:var(--txt-2, #9898c0)}.dialog-input{background:var(--bg-2, #12121f);border:1px solid var(--line, #232340);border-radius:6px;color:var(--txt, #e8e8f8);font-family:var(--mono, ui-monospace, monospace);font-size:14px;padding:9px 12px;outline:none;transition:border-color .12s}.dialog-input:focus{border-color:var(--accent)}.dialog-input.has-error{border-color:var(--err)}.dialog-error{font-size:12px;color:var(--err)}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.dialog-btn{padding:8px 20px;border-radius:6px;font-size:13px;font-weight:500;transition:background .12s,color .12s}.dialog-btn.cancel{background:var(--bg-hover, #1c1c32);color:var(--txt-2, #9898c0)}.dialog-btn.cancel:hover{color:var(--txt, #e8e8f8);background:var(--bg-hover-strong, #242440)}.dialog-btn.confirm{background:var(--accent, #5555ff);color:#fff}.dialog-btn.confirm:hover{background:var(--accent-2, #4444dd)}.dialog-btn.danger{background:transparent;color:var(--err, #cc4444);border:1px solid var(--err, rgba(204,68,68,.35))}.dialog-btn.danger:hover{background:#cc444429}.error-dialog{gap:16px}.dialog-msg{font-size:13px;color:var(--txt-2, #9898c0);line-height:1.6}.dialog-actions-col{display:flex;flex-direction:column;gap:8px;margin-top:4px}.dialog-actions-col .dialog-btn{width:100%;text-align:center}.new-project-dialog{width:480px}.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.type-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px 12px;background:var(--bg-2, #12121f);border:1px solid var(--line, #232340);border-radius:6px;cursor:pointer;text-align:center;transition:background .1s,border-color .12s}.type-card:hover{background:var(--bg-hover, #1c1c32)}.type-card.selected{border-color:var(--accent, #5555ff);background:var(--bg-hover-strong, rgba(85,85,255,.14))}.type-card-icon{color:var(--txt-2, #9898c0);display:flex;align-items:center;justify-content:center;transition:color .1s}.type-card.selected .type-card-icon,.type-card:hover .type-card-icon{color:var(--accent-2, #7b7bff)}.type-card-label{font-size:12px;font-weight:600;color:var(--txt, #e8e8f8);line-height:1.2}.type-card-desc{font-size:10px;color:var(--txt-2, #9898c0);line-height:1.4}.lang-grid{grid-template-columns:repeat(4,1fr)}.lang-card{padding:8px 6px 7px;gap:0}.lang-card.locked{opacity:.3;cursor:not-allowed;pointer-events:none}:root[data-theme=light] .brand-word{color:#4b4f74;text-shadow:0 0 12px rgba(79,70,229,.18)}:root[data-theme=light] .welcome-brand-logo{filter:drop-shadow(0 0 14px rgba(79,70,229,.28))}:root[data-theme=light] .quiet-link{background:#1e20460a;border-color:#1e20462e}:root[data-theme=light] .quiet-link:hover{color:var(--txt, #181a2e);background:#1e204614;border-color:#1e20464d}:root[data-theme=light] .open-menu-pop{background:#fffffff5;border-color:#1e204624;box-shadow:0 14px 44px #1e20462e}:root[data-theme=light] .open-menu-pop button:hover{background:#1e20460f}:root[data-theme=light] .welcome-recents{background:#ffffffd9;border-left-color:var(--line, rgba(30, 32, 70, .16))}:root[data-theme=light] .dialog{box-shadow:0 24px 64px #1e204638}:root[data-theme=light] .dialog-backdrop{background:#1e20464d}@media (max-width: 768px),(max-height: 600px){:root[data-theme=light] .welcome-recents{border-top-color:var(--line, rgba(30, 32, 70, .16))}}@media (max-height: 600px){.welcome{flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch}.welcome-hero{flex:0 0 auto;padding:24px 24px 20px}.welcome-recents{width:100%;border-left:none;border-top:1px solid var(--line, #161628);max-height:40vh}}@media (max-width: 768px){.welcome{flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch}.welcome-corner{position:static!important;order:-1;width:100%;flex-wrap:wrap;justify-content:center;padding:calc(10px + var(--sa-top, 0px)) 16px 2px}.welcome-hero{padding:12px 18px calc(120px + var(--sa-bottom, 0px));gap:12px;flex:0 0 auto}[data-prompt-ideas]{flex-direction:column;align-items:stretch}[data-prompt-ideas]>button{width:100%;text-align:center;padding:9px 12px}.welcome-hero>*{max-width:100%}.welcome-recents{width:100%;border-left:none;border-top:1px solid var(--line, #161628);max-height:320px;padding:16px 12px}.welcome-h1{font-size:22px}.new-project-dialog{width:calc(100vw - 32px)}.type-grid,.lang-grid{grid-template-columns:repeat(2,1fr)}.dialog{width:calc(100vw - 32px);padding:20px}}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrainsmono-latin.woff2) format("woff2")}:root{--sa-top:0px;--sa-bottom:0px;--sa-left:0px;--sa-right:0px;--vvh:100dvh;--kb:0px}:root,[data-dola-mesh-host]{--bg:#07071a;--preview-bg:#1e2233;--palette-bg:rgba(13,14,26,.97);--palette-shadow:8px 0 34px rgba(0,0,0,.45);--panel-3:rgba(10,10,24,.7);--hair:rgba(120,130,255,.08);--line:rgba(120,130,255,.12);--line-2:rgba(120,130,255,.2);--txt:#e9eafb;--txt-2:#a6abd4;--txt-3:#8084ae;--accent:#6366f1;--accent-2:#818cf8;--accent-soft:rgba(99,102,241,.14);--accent-btn:#4f46e5;--accent-btn-h:#4338ca;--accent-ink:#ffffff;--purple:#8b5cf6;--purple-2:#a78bfa;--purple-soft:rgba(139,92,246,.16);--tertiary:#22d3ee;--tertiary-2:#67e8f9;--tertiary-soft:rgba(34,211,238,.16);--primary:var(--accent);--primary-2:var(--accent-2);--primary-soft:var(--accent-soft);--secondary:var(--purple);--secondary-2:var(--purple-2);--secondary-soft:var(--purple-soft);--warn:#c9b34a;--err:#cc4444;--ok:#5fd889;--bg-0:#0a0b11;--bg-1:rgba(8,8,16,.18);--bg-2:rgba(8,8,22,.76);--bg-hover:rgba(99,102,241,.09);--bg-hover-strong:rgba(255,255,255,.07);--hue-chip-bg-l:24%;--hue-chip-fg-l:80%;--hue-chip-border-l:38%;--hue-phase-l:82%;--hue-text-l:72%;--sans:"Inter",-apple-system,system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;--ui:"Inter",-apple-system,system-ui,sans-serif;--glass:rgba(8,8,22,.72);--glass-2:rgba(8,8,22,.76);--blur:blur(20px) saturate(170%);--glass-hi:inset 0 1px 0 rgba(255,255,255,.07);--glass-glow:0 8px 32px rgba(0,0,0,.42);--glass-edge:rgba(120,130,255,.12);--r:9px;--focus-ring:var(--accent-2);--bubble-bg:#05060a;--bubble-bg-2:#0b0b16;--bubble-accent:#7b7bff;--bubble-logo:#5555ff;--bubble-glow:#8080ff;--bubble-txt:#cdd6f4;--bubble-txt-2:#8b8ba7;--bubble-dim:#454a5e;--bubble-border:rgba(128,128,255,.14);--bubble-border-2:rgba(128,128,255,.2);--bubble-border-3:rgba(128,128,255,.22);--bubble-border-glow:rgba(128,128,255,.32);--bubble-win-bg:rgba(5,6,10,.96);--status-ok:#7ee2a8;--status-building:#f9d88a;--err-text:#f9a8a8;--danger-btn:#b3434f;--danger-btn-ink:#f1b0b6}:root[data-theme=light],:root[data-theme=light] [data-dola-mesh-host]{--hue-chip-bg-l:88%;--hue-chip-fg-l:28%;--hue-chip-border-l:62%;--hue-phase-l:32%;--hue-text-l:38%;--bg:#e3e6f3;--preview-bg:#e3e6f3;--palette-bg:rgba(255,255,255,.97);--palette-shadow:8px 0 30px rgba(30,32,70,.18);--panel-3:#ffffff;--hair:rgba(30,32,70,.1);--line:rgba(30,32,70,.16);--line-2:rgba(30,32,70,.24);--txt:#181a2e;--txt-2:#4b4f74;--txt-3:#6b6f94;--accent:#4f46e5;--accent-2:#4338ca;--accent-soft:rgba(79,70,229,.1);--accent-btn:#4f46e5;--accent-btn-h:#4338ca;--accent-ink:#ffffff;--purple:#7c3aed;--purple-2:#6d28d9;--purple-soft:rgba(124,58,237,.12);--tertiary:#0e7490;--tertiary-2:#0891b2;--tertiary-soft:rgba(14,116,144,.14);--primary:var(--accent);--primary-2:var(--accent-2);--primary-soft:var(--accent-soft);--secondary:var(--purple);--secondary-2:var(--purple-2);--secondary-soft:var(--purple-soft);--warn:#8a6d1a;--err:#b3261e;--ok:#1f8a4c;--bg-0:#e3e6f3;--bg-1:rgba(255,255,255,.55);--bg-2:rgba(255,255,255,.9);--bg-hover:rgba(79,70,229,.08);--bg-hover-strong:rgba(79,70,229,.16);--glass:rgba(255,255,255,.68);--glass-2:rgba(255,255,255,.82);--glass-hi:inset 0 1px 0 rgba(255,255,255,.7);--glass-glow:0 8px 32px rgba(30,30,60,.14);--glass-edge:rgba(30,32,70,.18);--bubble-bg:#e3e6f3;--bubble-bg-2:#ffffff;--bubble-accent:#4f46e5;--bubble-logo:#4338ca;--bubble-glow:#6366f1;--bubble-txt:#181a2e;--bubble-txt-2:#55597e;--bubble-dim:#a5a9d4;--bubble-border:rgba(50,50,120,.2);--bubble-border-2:rgba(50,50,120,.28);--bubble-border-3:rgba(50,50,120,.32);--bubble-border-glow:rgba(50,50,120,.42);--bubble-win-bg:rgba(255,255,255,.98);--status-ok:#1a7f4b;--status-building:#8a6d1a;--err-text:#b3261e;--danger-btn:#dc2626;--danger-btn-ink:#ffffff}:root[data-theme=light]{background:var(--bg,#e3e6f3)}:root[data-theme=light] body{background:var(--bg,#e3e6f3)}:root[data-theme=light] body{background:radial-gradient(640px 480px at 8% 4%,rgba(79,70,229,.05),transparent 60%),radial-gradient(900px 700px at 92% 104%,rgba(124,58,237,.06),transparent 60%),radial-gradient(640px 520px at 96% 4%,rgba(34,180,238,.04),transparent 58%),var(--bg)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible,[role=tab]:focus-visible,.pal:focus-visible,.pick:focus-visible,.runbtn:focus-visible,.node:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px;border-radius:var(--r)}.node-select:focus-visible{outline:2px solid var(--focus-ring)!important;outline-offset:3px;border-radius:10px}.skip-to-canvas{position:absolute;left:8px;top:-48px;z-index:200;padding:8px 14px;border-radius:8px;background:var(--accent-btn);color:var(--accent-ink);font:600 12px var(--ui);text-decoration:none;transition:top .15s;box-shadow:0 4px 18px #00000080}.skip-to-canvas:focus{top:8px;outline:2px solid #fff}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}*{box-sizing:border-box}html,body{margin:0;height:100vh;overflow:hidden;background:#07071a;overscroll-behavior-x:contain}body{color:var(--txt);font-family:var(--ui);font-size:13px;-webkit-font-smoothing:antialiased;overflow:hidden;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;background:radial-gradient(640px 480px at 8% 4%,rgba(99,102,241,.045),transparent 60%),radial-gradient(900px 700px at 92% 104%,rgba(139,92,246,.07),transparent 60%),radial-gradient(640px 520px at 96% 4%,rgba(34,211,238,.03),transparent 58%),var(--bg);background-attachment:fixed}*::-webkit-scrollbar{width:3px;height:3px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#6366f140;border-radius:3px}*::-webkit-scrollbar-thumb:hover{background:#6366f173}*{scrollbar-width:thin;scrollbar-color:rgba(99,102,241,.25) transparent}#root{position:fixed;inset:0;z-index:1;overflow:hidden}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation}html,body{overscroll-behavior:none;max-width:100%}body{-webkit-tap-highlight-color:transparent}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (display-mode: standalone){:root{--sa-top:env(safe-area-inset-top);--sa-bottom:env(safe-area-inset-bottom);--sa-left:env(safe-area-inset-left);--sa-right:env(safe-area-inset-right)}}.welcome{padding-top:var(--sa-top);padding-bottom:var(--sa-bottom)}[data-runtime-modal]>div,[data-regtype-modal]>div,[data-newproj-modal]>div,[data-device-pip],[data-terminal]{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);background:var(--glass);border-color:var(--glass-edge);box-shadow:var(--glass-hi),var(--glass-glow)}[data-runtime-modal],[data-regtype-modal],[data-newproj-modal]{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.card{-webkit-backdrop-filter:blur(10px) saturate(150%);backdrop-filter:blur(10px) saturate(150%);box-shadow:var(--glass-hi)}.aurora{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.aurora b{position:absolute;display:block;border-radius:50%;filter:blur(120px)}.aurora .a1{width:50vw;height:50vw;left:30%;top:-30vw;background:radial-gradient(circle,#2a5cbf,#2a5cbf00 70%);opacity:.16}.aurora .a2,.aurora .a3,.aurora .a4{display:none}.aurora:after{content:none}.app{height:100%;width:100%;display:flex;flex-direction:column;position:relative}.dot{width:6px;height:6px;border-radius:50%;background:var(--txt-3);flex:0 0 auto}.dot.run{background:var(--accent)}.dot.paused{background:var(--warn)}.runbtn{display:flex;align-items:center;gap:5px;height:23px;padding:0 10px 0 7px;border-radius:var(--r);font-family:var(--ui);font-weight:600;font-size:10.5px;cursor:pointer;border:1px solid transparent;transition:background .15s;letter-spacing:-.01em}.runbtn.go{background:var(--accent-btn);color:var(--accent-ink)}.runbtn.go:hover{background:var(--accent-btn-h)}.runbtn.stop{background:transparent;color:var(--txt);border-color:var(--line-2)}.runbtn.stop:hover{border-color:var(--accent)}.iconbtn{width:24px;height:24px;border-radius:var(--r);display:grid;place-items:center;cursor:pointer;background:transparent;border:1px solid transparent;color:var(--txt-3);transition:.13s}.iconbtn:hover{color:var(--txt);background:#8282c80d}.body{flex:1;display:flex;min-height:0;position:relative}.sidebar{position:absolute;left:0;top:0;bottom:0;width:min(80vw,250px);z-index:45;padding-top:var(--sa-top);padding-left:var(--sa-left);isolation:isolate;background:var(--palette-bg, rgba(13,14,26,.97));border-right:1px solid var(--line, rgba(120,130,255,.12));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--palette-shadow, 8px 0 34px rgba(0,0,0,.45));display:flex;flex-direction:column;transform:translate3d(-100%,0,0);transition:transform .24s cubic-bezier(.4,0,.2,1);will-change:transform}.sidebar.mobile-open{transform:translateZ(0)}.sidebar:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:linear-gradient(125deg,transparent 32%,rgba(255,255,255,.03) 48%,rgba(255,255,255,.014) 54%,transparent 70%)}.sidebar>*{position:relative;z-index:1}.sidebar-scrim{display:block;position:absolute;inset:0;z-index:44;background:#00000080;animation:scrimIn .2s ease}@keyframes scrimIn{0%{opacity:0}to{opacity:1}}.mobile-menu-btn{display:grid;place-items:center;position:absolute;inset-inline-start:calc(8px + var(--sa-left));top:8px;z-index:55;width:44px;height:44px;border-radius:var(--r);cursor:pointer;color:var(--txt);padding:0;background:var(--glass);border:1px solid var(--line-2);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}.mobile-menu-btn:active{background:var(--bg-hover)}.view-toggle{inset-inline-start:60px!important}.side-h{padding:56px 10px 4px!important;font-size:8.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-3)}.side-h .s{display:none}.palette{display:flex;flex-direction:column;gap:2px;padding:2px 5px 8px}.pal{display:flex;align-items:center;gap:10px;padding:6px;border-radius:var(--r);cursor:pointer;background:transparent;border:none;transition:background .12s;text-align:start;font-family:var(--ui)}.pal:hover{background:#8282c80d}.pal .pico{width:34px;height:34px;flex:0 0 34px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);border:1px solid rgba(128,128,255,.22);color:var(--accent-2);box-shadow:inset 0 1px #ffffff0f;transition:color .12s,background .12s,box-shadow .12s,transform .12s}.pal:hover .pico{color:#fff;background:#6366f138;box-shadow:inset 0 1px #ffffff1a,0 0 14px #6366f14d;transform:translateY(-1px)}.pal .pt{font-size:12px;font-weight:600;letter-spacing:-.01em;display:block;color:var(--txt)}.pal .pd{font-size:9px;color:var(--txt-3);margin-top:1px}.pal .plus{margin-left:auto;color:var(--txt-3);opacity:0;transition:.12s}.pal:hover .plus{opacity:1}.side-foot{margin-top:auto;padding:9px 10px;border-top:1px solid var(--line);font-size:9px;color:var(--txt-3);line-height:1.65}.side-foot b{color:var(--txt-2);font-weight:500}.side-foot .row{display:flex;align-items:center;gap:7px}.stage{flex:1;position:relative;overflow:hidden;min-width:0;background:transparent;touch-action:none;container-type:inline-size;container-name:mesh-stage}.grid{position:absolute;inset:0;pointer-events:none;opacity:1}.world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.edges{position:absolute;left:0;top:0;overflow:visible;width:1px;height:1px;pointer-events:none}.edge{fill:none;stroke:#8b5cf68c;stroke-width:1.6;filter:drop-shadow(0 0 3px rgba(139,92,246,.4))}.edge.active{stroke:var(--purple-2);stroke-width:2.2;filter:drop-shadow(0 0 6px rgba(139,92,246,.65))}.edge.flow{stroke:var(--purple);stroke-width:1.25;stroke-dasharray:2 9;stroke-linecap:round;animation:flow 1.2s linear infinite}.edge.flow.paused{animation-play-state:paused;opacity:.2}@keyframes flow{to{stroke-dashoffset:-44}}.packet{position:absolute;left:0;top:0;width:5px;height:5px;border-radius:50%;background:var(--purple-2);box-shadow:0 0 8px #8b5cf6e6;margin:-2px 0 0 -2px;animation:travel 2.4s linear infinite;pointer-events:none}.packet.paused{animation-play-state:paused;opacity:0}@keyframes travel{0%{offset-distance:0%}to{offset-distance:100%}}.edge-hit{fill:none;stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer}.edge-hit:hover+*,.edge-hit:hover{stroke:#8b5cf61f}.edge-hit:focus-visible{outline:none;stroke:#8b5cf638}.edge-inspector{background:var(--panel-3,rgba(18,19,32,.96));border:1px solid var(--line,#22223c);border-radius:9px;padding:8px 9px;color:var(--txt,#d8d8ee);box-shadow:0 10px 28px #00000080,0 0 0 1px #8b5cf62e;backdrop-filter:blur(8px)}.node{position:absolute;width:52px;cursor:grab}.node.dragging{cursor:grabbing;z-index:6}.tile{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;position:relative;background:linear-gradient(150deg,rgba(255,255,255,.05),transparent 55%),var(--glass);-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);border:1px solid var(--glass-edge);color:var(--txt);box-shadow:inset 0 1px #ffffff1a,inset 0 -1px #00000040,0 6px 20px #0006,0 0 #6366f100;transition:border-color .15s,box-shadow .15s,transform .15s}.node:hover .tile{border-color:#8c96ff59;transform:translateY(-2px);box-shadow:inset 0 1px #ffffff1f,inset 0 -1px #00000040,0 10px 26px #00000075,0 0 18px #6366f138}.node.sel .tile{border-color:var(--accent);box-shadow:inset 0 1px #ffffff1f,0 10px 26px #00000075,0 0 22px #6366f166}.node.dim .tile{opacity:.9}.tile.empty{border-style:dashed;color:var(--txt-2);background:transparent}.tile .stat{position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:var(--txt-3)}.tile.live .stat{background:var(--accent)}.tile .badge{position:absolute;bottom:-5px;right:-5px;width:16px;height:16px;border-radius:3px;display:grid;place-items:center;background:var(--panel-3);border:1px solid var(--line-2);color:var(--accent)}.tile .pluschip{position:absolute;bottom:-5px;right:-5px;width:14px;height:14px;border-radius:3px;display:grid;place-items:center;background:var(--accent-btn);color:var(--accent-ink)}.node-pip{position:absolute;top:-11px;right:-11px;z-index:7;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;cursor:pointer;padding:0;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#f1ecff;border:1px solid rgba(255,255,255,.18);box-shadow:0 4px 14px #7c3aed80,inset 0 1px #ffffff2e;transition:transform .12s,box-shadow .12s}.node-pip:hover{transform:translateY(-1px) scale(1.06);box-shadow:0 6px 18px #7c3aed9e,inset 0 1px #ffffff38}.node-pip:active{transform:scale(.96)}.nlabel{position:absolute;top:58px;left:50%;transform:translate(-50%);text-align:center;white-space:nowrap;pointer-events:none;max-width:128px}.nlabel .nm{font-size:10px;font-weight:500;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;pointer-events:auto;cursor:text}.node-name-input{pointer-events:auto;box-sizing:border-box;width:100%;min-width:96px;text-align:center;font-size:10px;font-weight:600;padding:2px 6px;border-radius:6px;border:1px solid var(--accent,#6ea8ff);background:var(--bg-1,#0d0f17);color:var(--txt,#e8e8f4);outline:none;box-shadow:0 2px 10px #0006}.node-name-input::placeholder{color:var(--txt-3,#787ca6);font-weight:400}.node.draft .tile.draft-tile{border:1.5px dashed var(--accent,#6ea8ff);background:#6ea8ff14;opacity:.95}.nlabel .sub{font-family:var(--mono);font-size:8px;color:var(--txt-3);margin-top:1px;overflow:hidden;text-overflow:ellipsis}.nlabel .sub.set{color:var(--accent-2)}.nlabel .naddr{font-family:var(--mono);font-size:8px;color:var(--txt-3);margin-top:2px;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis}.port{position:absolute;width:24px;height:24px;border-radius:50%;background:transparent;border:none;transform:translate(-50%,-50%);opacity:0;pointer-events:none;transition:opacity .12s;cursor:crosshair;z-index:5}.port:before{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;border-radius:50%;background:#0c0c1a;border:1px solid rgba(167,139,250,.55);box-shadow:0 0 6px #8b5cf680;transform:translate(-50%,-50%);transition:background .12s,border-color .12s,box-shadow .12s}.node:hover .port,.node.sel .port,.node.wiring .port{opacity:1;pointer-events:auto}.port:hover:before{background:var(--purple);border-color:var(--purple-2);box-shadow:0 0 10px #8b5cf6d9}.port.t{left:26px;top:0}.port.b{left:26px;top:52px}.port.l{left:0;top:26px}.port.r{left:52px;top:26px}.canvas-runbar{position:absolute;top:calc(12px + var(--sa-top));left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:20;padding:5px;border:1px solid var(--glass-edge);border-radius:13px;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);box-shadow:var(--glass-hi),var(--glass-glow)}.runbar-btn{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 13px;border-radius:9px;border:1px solid var(--line);background:var(--bg-1);color:var(--txt);font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:.13s}.runbar-btn:hover{border-color:var(--accent);color:var(--accent)}@media (max-width:640px){.runbar-btn{min-height:40px;padding:0 12px}}@container mesh-stage (max-width:640px){.canvas-runbar{top:calc(58px + var(--sa-top))}}.hover-panel .hover-msgs,.hover-panel .hover-msgs *,.hover-panel pre,.hover-panel pre *,.hover-panel code,.terminal-bubble,.terminal-bubble *,.monaco-editor,.monaco-editor *,.monaco-editor textarea{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}.hover-resize{background:transparent;transition:background .12s}.hover-resize:hover,.hover-resize:focus-visible{background:linear-gradient(to right,color-mix(in srgb,var(--accent) 55%,transparent),transparent);outline:none}@media (max-width:640px){.hover-dialog{width:100vw!important;max-width:100vw!important}.hover-resize{display:none}}.zoomctl{position:absolute;inset-inline-start:calc(10px + var(--sa-left));bottom:calc(10px + var(--sa-bottom));display:flex;flex-direction:row;z-index:20;border:1px solid var(--glass-edge);border-radius:11px;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);box-shadow:var(--glass-hi),var(--glass-glow)}.zoomctl .iconbtn{width:24px;height:24px;border:none;border-radius:3px;background:transparent}.zoomctl .iconbtn:hover{background:#8282c80f}.hint{position:absolute;left:50%;bottom:calc(12px + var(--sa-bottom));transform:translate(-50%);z-index:18;font-family:var(--mono);font-size:9.5px;letter-spacing:.02em;color:var(--txt-3);display:flex;gap:14px;pointer-events:none;padding:5px 13px;border-radius:999px;background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-edge);box-shadow:var(--glass-hi),0 6px 22px #00000061}.hint b{color:var(--txt-2);font-weight:500}.canvas-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--txt-3);pointer-events:none;text-align:center}.canvas-empty .ce-ic{width:44px;height:44px;border-radius:var(--r);display:grid;place-items:center;border:1px dashed var(--line-2);margin-bottom:4px}.canvas-empty .ce-t{font-size:13px;color:var(--txt-2);font-weight:500}.canvas-empty .ce-s{font-size:11px}.drawer{position:absolute;top:0;right:0;bottom:0;width:288px;z-index:50;border-left:1px solid var(--line);background:linear-gradient(270deg,rgba(255,255,255,.03),transparent 10%),var(--glass-2);backdrop-filter:blur(30px) saturate(165%);-webkit-backdrop-filter:blur(30px) saturate(165%);box-shadow:inset 1px 0 #8c96ff1a,-8px 0 32px #0006;display:flex;flex-direction:column;overflow:hidden;transform:translate3d(100%,0,0);transition:transform .26s cubic-bezier(.4,0,.2,1);will-change:transform}.drawer.open{transform:translateZ(0)}.dh{padding:10px 10px 9px 12px;display:flex;align-items:center;gap:9px}.dh .di{width:28px;height:28px;flex:0 0 28px;border-radius:var(--r);display:grid;place-items:center;background:#8282c808;border:1px solid var(--hair);color:var(--accent)}.dh .dn{font-size:12px;font-weight:600;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.dh .dt{font-size:9.5px;color:var(--txt-3);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dh .dclose{margin-left:auto}.tabs{display:flex;padding:0 10px;border-bottom:1px solid var(--line)}.tab{padding:7px 8px;font-size:10.5px;font-weight:500;color:var(--txt-3);cursor:pointer;position:relative;transition:.13s}.tab:hover{color:var(--txt-2)}.tab.on{color:var(--txt)}.tab.on:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--accent)}.dbody{flex:1;overflow-y:auto;padding:2px 12px 64px}.dbody::-webkit-scrollbar{width:6px}.dbody::-webkit-scrollbar-thumb{background:var(--panel-3);border-radius:8px}.dev-hero{display:flex;align-items:center;gap:10px;padding:12px;margin:4px 0 12px;border-radius:12px;background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-edge);box-shadow:var(--glass-hi)}.dev-hero-ic{width:34px;height:34px;flex:0 0 34px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);border:1px solid rgba(128,128,255,.2)}.dev-hero-name{font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dev-hero-sub{font-family:var(--mono);font-size:9.5px;color:var(--txt-3);margin-top:2px}.dev-actions{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:4px}.btn-ghost{flex:1;min-width:96px;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border-radius:var(--r);cursor:pointer;font-family:var(--ui);font-size:11px;font-weight:600;border:1px solid var(--glass-edge);background:var(--bg-1);color:var(--txt-2);transition:.13s}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.adv{margin:6px 0 8px;border-radius:10px;border:1px solid var(--line);background:#ffffff03;overflow:hidden}.adv>summary{cursor:pointer;list-style:revert;padding:10px 12px;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--txt-2);user-select:none;transition:color .13s}.adv>summary:hover{color:var(--txt)}.adv[open]>summary{border-bottom:1px solid var(--line);color:var(--txt)}.adv-body{padding:2px 12px 10px}.adv-body .card:last-of-type{border-bottom:none}.card{background:transparent;border:none;border-bottom:1px solid var(--line);border-radius:0;padding:11px 1px;margin:0}.card .ct{font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-3);margin-bottom:8px;font-weight:600}.tag{font-family:var(--mono);font-size:9.5px;padding:2px 6px;border-radius:3px;background:#8282c808;border:1px solid var(--hair);color:var(--txt-2)}.tag.run{color:var(--accent);border-color:#8080ff40;background:var(--accent-soft)}.tag.paused{color:var(--warn);border-color:#e8b56640;background:#e8b56612}.pick-head{display:flex;flex-direction:column;gap:3px;margin:8px 0 10px}.pick-head .ph-t{font-size:12px;font-weight:600;letter-spacing:-.01em}.pick-head .ph-s{font-size:10px;color:var(--txt-2);line-height:1.5}.picker{display:flex;flex-direction:column}.pick{display:flex;align-items:center;gap:9px;padding:6px;border-radius:var(--r);border:none;background:transparent;cursor:pointer;text-align:start;transition:background .12s;font-family:var(--ui)}.pick:hover{background:#8282c80a}.pick .pi{width:22px;height:22px;flex:0 0 22px;border-radius:3px;display:grid;place-items:center;background:#8282c808;color:var(--accent);border:1px solid var(--hair)}.pick .pn{font-size:11px;font-weight:500;letter-spacing:-.01em;color:var(--txt)}.pick .pdsc{font-size:9px;color:var(--txt-3);margin-top:0;line-height:1.4}.pick .pgo{margin-left:auto;color:var(--txt-3);opacity:0;transition:.12s}.pick:hover .pgo{opacity:1}@media (hover: none),(pointer: coarse){.pal .plus,.pick .pgo{opacity:.55}}.appcard{display:flex;align-items:center;gap:9px}.appcard .ag{width:24px;height:24px;flex:0 0 24px;border-radius:3px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);border:1px solid rgba(128,128,255,.18)}.appcard .an{font-size:11.5px;font-weight:600}.appcard .am{font-size:9px;color:var(--txt-3);margin-top:1px}.linkbtn{background:none;border:none;color:var(--accent);font-family:var(--ui);font-size:10px;font-weight:500;cursor:pointer;padding:0;opacity:.9}.linkbtn:hover{opacity:1;text-decoration:underline}.gauge{margin-bottom:9px}.gauge:last-child{margin-bottom:0}.gauge .gl{display:flex;justify-content:space-between;font-size:10px;margin-bottom:5px}.gauge .gl .gk{color:var(--txt-2)}.gauge .gl .gv{font-family:var(--mono);font-size:10px;color:var(--txt-3)}.gtrack{height:3px;border-radius:0;background:#8282c80f;overflow:hidden}.gtrack i{display:block;height:100%;border-radius:0;background:var(--accent);opacity:.85;transition:width .7s ease}.gtrack.w i{background:var(--accent)}.portrow{display:flex;align-items:center;gap:8px;padding:5px 0;font-family:var(--mono);font-size:9.5px}.portrow+.portrow{border-top:1px solid var(--hair)}.portrow .pst{width:5px;height:5px;border-radius:50%;background:var(--accent)}.portrow .ppath{color:var(--txt-2)}.portrow .pnum{margin-left:auto;color:var(--txt)}.conn{display:flex;align-items:center;gap:9px;padding:6px;border:none;border-radius:var(--r);margin:0 -6px;font-size:11px;background:transparent;cursor:pointer;transition:background .12s}.conn:hover{background:#8282c80a}.conn .cn{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn .cd{font-family:var(--mono);font-size:9.5px;color:var(--txt-3);margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}.btn-line{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:6px;border-radius:var(--r);margin-top:11px;border:1px solid var(--line);background:transparent;color:var(--txt-3);font-family:var(--ui);font-size:10.5px;font-weight:500;cursor:pointer;transition:.13s}.btn-line:hover{border-color:#f07a7a66;color:var(--err)}.btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:var(--r);border:1px solid var(--accent-btn);background:var(--accent-btn);color:var(--accent-ink);font-family:var(--ui);font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}.btn:hover{background:var(--accent-btn-h);border-color:var(--accent-btn-h)}.btn:disabled{opacity:.5;cursor:not-allowed}.logwrap{background:#00000080;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;margin-top:10px}.logbar{display:flex;align-items:center;gap:8px;padding:8px 11px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:10px;color:var(--txt-3)}.logbar .blink{margin-left:auto;color:var(--accent)}.logs{flex:1;overflow-y:auto;padding:10px 12px;font-family:var(--mono);font-size:10.5px;line-height:1.75}.logs::-webkit-scrollbar{width:6px}.logs::-webkit-scrollbar-thumb{background:var(--panel-3);border-radius:8px}.lg{display:flex;gap:10px}.lg .lt{color:var(--txt-3);flex:0 0 auto}.lg .lv{color:var(--txt-2)}.lg .lv.ok{color:var(--accent-2)}.lg .lv.warn{color:var(--warn)}.lg .lv.err{color:var(--err)}.lg .lv.info{color:var(--accent)}.lg .lv.phase{color:var(--accent-2);font-weight:600}.pvwrap{display:flex;flex-direction:column;gap:10px;padding-top:10px}.seg{display:flex;gap:2px;padding:2px;background:#8282c806;border:1px solid var(--hair);border-radius:var(--r)}.seg button{flex:1;padding:4px;border-radius:3px;border:none;background:transparent;color:var(--txt-3);font-family:var(--ui);font-size:10px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;transition:.13s}.seg button.on{background:#8282c80f;color:var(--txt)}.pvstage{border:1px solid var(--line);border-radius:var(--r);background:#8282c803;display:grid;place-items:center;overflow:hidden;padding:16px}.phone{width:208px;height:426px;border-radius:26px;background:#000;border:6px solid #15171b;box-shadow:0 0 0 1px #000;position:relative;overflow:hidden;display:flex;flex-direction:column}.ph-status{height:24px;flex:0 0 24px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-family:var(--mono);font-size:9px;color:#cfd2d6;background:#07080b}.ph-status .r{display:flex;align-items:center;gap:5px}.ph-screen{flex:1;background:#06070a;position:relative;overflow:hidden}.ph-appbar{padding:13px 13px 11px;display:flex;align-items:center;gap:9px;border-bottom:1px solid rgba(130,130,200,.05)}.ph-appbar .logo{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);border:1px solid rgba(128,128,255,.22)}.ph-appbar .t{font-size:12px;font-weight:600;color:#eaeaea;display:block}.ph-appbar .s{font-family:var(--mono);font-size:8px;color:#6a6d72}.ph-hero{margin:12px;border-radius:8px;padding:13px;background:#8080ff12;border:1px solid rgba(128,128,255,.16)}.ph-hero .hl{font-family:var(--mono);font-size:8px;color:var(--accent);letter-spacing:.1em;text-transform:uppercase}.ph-hero .hv{font-size:19px;font-weight:600;color:#fff;margin-top:5px;letter-spacing:-.02em}.ph-hero .hs{font-family:var(--mono);font-size:8.5px;color:#7e8186;margin-top:4px}.ph-list{padding:2px 12px;display:flex;flex-direction:column;gap:6px}.ph-row{display:flex;align-items:center;gap:10px;padding:9px;border-radius:6px;background:#8282c805;border:1px solid rgba(130,130,200,.04)}.ph-row .rc{width:6px;height:6px;border-radius:50%;flex:0 0 6px}.ph-row .rt{font-size:10.5px;color:#dcdcdc;font-weight:500;display:block}.ph-row .rm{font-family:var(--mono);font-size:8px;color:#6a6d72}.ph-row .rv{margin-left:auto;font-family:var(--mono);font-size:9px;color:#b6b9bd}.ph-nav{height:30px;flex:0 0 30px;display:flex;align-items:center;justify-content:space-around;background:#05060a;border-top:1px solid rgba(130,130,200,.05)}.ph-nav span{color:#6a6d72}.watchframe{width:158px;height:186px;border-radius:40px;border:7px solid #15171b;background:#000;display:flex;flex-direction:column;overflow:hidden}.watchframe .wt{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#040507}.watchframe .wbig{font-family:var(--mono);font-size:27px;font-weight:500;color:#fff}.watchframe .wsm{font-family:var(--mono);font-size:8.5px;color:var(--accent);letter-spacing:.1em;text-transform:uppercase}.watchframe .wring{width:66px;height:66px;border-radius:50%;border:3px solid rgba(128,128,255,.2);border-top-color:var(--accent);animation:spin 3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes hoverSlideIn{0%{transform:translate3d(100%,0,0)}to{transform:translateZ(0)}}.shell{width:100%;height:100%;background:#00000080;border-radius:var(--r);border:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.shell-bar{height:28px;flex:0 0 28px;display:flex;align-items:center;gap:7px;padding:0 11px;border-bottom:1px solid var(--line)}.shell-bar .tl{display:flex;gap:5px}.shell-bar .tl i{width:8px;height:8px;border-radius:50%;display:block;opacity:.7}.shell-bar .nm{font-family:var(--mono);font-size:10px;color:var(--txt-3);margin-left:5px}.shell-body{flex:1;overflow-y:auto;padding:11px 13px;font-family:var(--mono);font-size:10.5px;line-height:1.75}.shell-body::-webkit-scrollbar{width:6px}.shell-body::-webkit-scrollbar-thumb{background:var(--panel-3);border-radius:8px}.sl{white-space:pre-wrap;word-break:break-word}.sl .p{color:var(--accent)}.sl .d{color:var(--txt-3)}.sl .c{color:var(--accent-2)}.sl .w{color:var(--warn)}.sl .o{color:var(--txt-2)}.sl .err{color:var(--err)}.sl .warn{color:var(--warn)}.sl .info{color:var(--accent)}.sl .phase{color:var(--accent-2);font-weight:600}.caret{display:inline-block;width:6px;height:13px;background:var(--accent);vertical-align:-2px;margin-left:3px;animation:cbl 1s steps(1) infinite}@keyframes cbl{50%{opacity:0}}.pv-empty{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--txt-3);text-align:center;padding:30px}@media (max-width:640px){input,textarea,select{font-size:16px!important}input[type=checkbox],input[type=radio]{width:24px;height:24px;accent-color:var(--accent,#6ea8ff)}.linkbtn{min-height:36px;padding:6px 12px;display:inline-flex;align-items:center;justify-content:center}.btn-ghost{min-height:44px}.dn[role=button]{min-height:24px;line-height:24px}.view-toggle button{min-height:44px;box-sizing:border-box}.drawer{width:100vw}.drawer .dh{padding-inline-start:calc(56px + var(--sa-left))}.drawer .btn,.drawer .btn-line{min-height:44px}.hint{display:none}.iconbtn{width:44px;height:44px}.zoomctl .iconbtn{width:40px;height:40px}.zoomctl{inset-inline-start:calc(8px + var(--sa-left));bottom:calc(8px + var(--sa-bottom))}.runbtn{height:30px;font-size:11.5px;padding:0 12px 0 9px}.pal{padding:10px 8px}.tabs .tab{min-height:44px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:11.5px}.dbody{padding-bottom:calc(28px + var(--sa-bottom))}.tabs{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;flex-wrap:nowrap}.tabs::-webkit-scrollbar{display:none}.tabs .tab{flex:0 0 auto;padding:0 9px}.pick{padding:9px 7px;min-height:44px;box-sizing:border-box}.node,.tile{width:56px}.tile{height:56px}.port{width:13px;height:13px}.port.b{top:56px}.port.r{left:56px}.port.l{top:28px}.port.t,.port.b{left:28px}.nlabel{top:62px}}::view-transition-old(root),::view-transition-new(root){animation-duration:.3s}
