:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f2f5fa;--muted:#f2f5fab8;--faint:#f2f5fa80;--accent:#64d2ff;--accent-hover:#8edeff;--accent-ink:#04121a;--warn:#ff9f0a;--bad:#ff456b;--good:#64d2ff;--glass:#1e243275;--glass-strong:#181e2cb8;--edge:#ffffff24;--line:#ffffff14;--fill:#ffffff14;--fill-hover:#ffffff26;--font:Geist, "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;--mono:"Geist Mono", ui-monospace, "Cascadia Mono", monospace;--panel-w:420px;--gutter:20px;--fea-font:var(--font);--fea-text:var(--ink);--fea-text-muted:var(--muted);--fea-text-caption:var(--muted);--fea-panel:#161c2adb;--fea-border:var(--edge);--fea-swatch-outline:#ffffff40;--fea-space-1:4px;--fea-space-2:8px;--fea-space-3:12px;--fea-radius-control:10px;--fea-radius-overlay:18px;--fea-box-window:#64d2ff;--fea-box-crossing:#30d158;--fea-status-text:var(--muted);--fea-status-hover:var(--fill-hover);--fea-hud-good:#30d158;--fea-hud-warn:#ff9f0a;--fea-hud-bad:#ff456b}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;background:#070a14;overflow:hidden}button,input,select{font:inherit;color:inherit}a{color:var(--accent)}a:hover{color:#a8e6ff}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}::-webkit-scrollbar{background:0 0;width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-thumb{background:#ffffff29 padding-box padding-box;border:3px solid #0000;border-radius:999px;min-height:40px}::-webkit-scrollbar-thumb:hover{background-color:#ffffff4d}::-webkit-scrollbar-thumb:active{background-color:#64d2ff99}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:#fff3 transparent}}.s3{background:linear-gradient(#141c36 0%,#05070d 100%);position:fixed;inset:0;overflow:hidden}.s3-view{z-index:0;transition:left .35s,opacity .35s;position:absolute;inset:0}.s3-view .fea-viewport{position:absolute;inset:0}.s3-view .fea-viewport canvas{width:100%;height:100%;display:block}.s3[data-step=templates] .s3-view{opacity:.5}@media (min-width:900px){.s3[data-step=size] .s3-view,.s3[data-step=materials] .s3-view,.s3[data-step=loads] .s3-view{left:calc(var(--panel-w) + var(--gutter) * 2)}}.s3-glow{pointer-events:none;mix-blend-mode:screen;background:radial-gradient(1100px 700px at 88% 8%,#2e8bff4d,#0000 62%),radial-gradient(900px 640px at 6% 96%,#bf5af23d,#0000 60%),radial-gradient(700px 500px at 50% 55%,#00c7be14,#0000 70%);position:absolute;inset:0}.s3-ui{z-index:1;padding:16px var(--gutter) var(--gutter);pointer-events:none;flex-direction:column;gap:16px;display:flex;position:absolute;inset:0}.s3-ui>*{pointer-events:auto}.s3-stage{gap:var(--gutter);pointer-events:none;flex:1;min-height:0;display:flex}.s3-stage>*{pointer-events:auto}.glass{background:var(--glass);-webkit-backdrop-filter:blur(30px)saturate(180%);backdrop-filter:blur(30px)saturate(180%);border:1px solid var(--edge);box-shadow:inset 0 1px #ffffff42,0 24px 64px #00000073}.topbar{border-radius:30px;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:6px 8px 6px 18px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:10px;font-size:17px;font-weight:600;display:flex}.brand svg{color:var(--accent)}.project-name{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:10px;width:24ch;max-width:40vw;padding:4px 8px;font-size:14px}.project-name:hover,.project-name:focus{border-color:var(--edge);color:var(--ink);outline:none}.steps{flex-wrap:wrap;flex:auto;justify-content:center;gap:2px;display:flex}.step{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:500;display:inline-flex}.step:hover{color:#fff;background:#ffffff12}.step .num{font-family:var(--mono);font-size:12px}.step.done{color:var(--accent)}.step[aria-current=step]{color:#05121a;background:#ffffffeb}.top-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.pill{background:var(--fill);min-height:44px;color:var(--ink);cursor:pointer;white-space:nowrap;border:1px solid #ffffff29;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex;box-shadow:inset 0 1px #ffffff38}.pill:hover{background:var(--fill-hover);color:#fff}.pill:disabled{opacity:.5;cursor:default}.pill.on,.pill[aria-pressed=true]{color:#05121a;background:#ffffffeb;border-color:#ffffffe6}.pill.primary{background:var(--accent);color:var(--accent-ink);border-color:#ffffff8c;box-shadow:inset 0 1px #fff9,0 10px 28px #64d2ff4d}.pill.primary:hover{background:var(--accent-hover);color:var(--accent-ink)}.pill.small{min-height:36px;padding:0 12px;font-size:13px}.pill .sub{font-family:var(--mono);opacity:.75;font-size:12px}.icon-btn{color:#f2f5fad9;cursor:pointer;background:0 0;border:0;border-radius:14px;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:inline-flex}.icon-btn:hover{color:#fff;background:#ffffff1a}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);box-shadow:inset 0 1px #fff9}.round{background:var(--fill);width:44px;height:44px;color:var(--ink);cursor:pointer;border:1px solid #ffffff29;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:inset 0 1px #ffffff38}.round:hover{background:var(--fill-hover)}.seg{background:#00000047;border-radius:999px;gap:2px;padding:3px;display:inline-flex}.seg>button{white-space:nowrap;min-height:38px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 16px;font-size:14px;font-weight:500}.seg>button:hover{color:#fff}.seg>button[aria-pressed=true]{color:#05121a;background:#ffffffeb;box-shadow:0 2px 10px #0000004d}.chips{flex-wrap:wrap;gap:6px;display:flex}.select{appearance:none;background:var(--fill) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23f2f5fa' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E") no-repeat right 12px center;min-height:44px;color:var(--ink);font-family:var(--mono);cursor:pointer;border:1px solid #ffffff29;border-radius:14px;max-width:100%;padding:0 34px 0 14px;font-size:14px}.select option,.select optgroup{color:var(--ink);background:#151a24}.switch{width:100%;min-height:56px;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:14px;padding:0;font-size:15px;display:flex}.switch .label{flex-direction:column;flex:1;gap:2px;display:flex}.switch .note{color:var(--muted);font-size:13px}.switch .track{background:#ffffff2e;border-radius:999px;flex:none;align-items:center;width:52px;height:32px;padding:3px;transition:background .2s;display:inline-flex}.switch .knob{background:#fff;border-radius:999px;width:26px;height:26px;transition:transform .2s;box-shadow:0 2px 6px #00000059}.switch[aria-checked=true] .track{background:var(--accent)}.switch[aria-checked=true] .knob{transform:translate(20px)}.boxed{background:#ffffff0d;border:1px solid #ffffff1f;border-radius:20px;padding:4px 16px}.tile{color:var(--ink);cursor:pointer;text-align:left;background:#ffffff0d;border:1px solid #ffffff24;border-radius:18px;flex:1 1 0;align-items:center;gap:12px;min-width:96px;min-height:56px;padding:12px 14px;font-size:15px;font-weight:500;display:flex}.tile:hover{background:#ffffff1a}.tile[aria-pressed=true]{border-color:var(--accent);background:#64d2ff29}.panel{width:var(--panel-w);border-radius:30px;flex-direction:column;gap:0;max-width:100%;padding:24px;display:flex;overflow:hidden}.panel-head{border-bottom:1px solid var(--line);flex:none;padding-bottom:14px}.panel-body{flex-direction:column;flex:auto;gap:20px;min-height:0;margin:0 -24px;padding:18px 24px;display:flex;overflow-y:auto}.panel>.panel-body:first-child{padding-top:0}.panel>.panel-foot{border-top:1px solid var(--line);flex:none;margin-top:0;padding-top:14px}.panel h1{letter-spacing:-.02em;margin:0;font-size:30px;font-weight:600}.panel .lead{color:var(--muted);margin:4px 0 0;font-size:15px}.section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 6px;font-size:12px;font-weight:500}.group{flex-direction:column;gap:8px;display:flex}.row{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:56px;font-size:15px;display:flex}.row:last-child{border-bottom:0}.row .label{flex:1;min-width:0}.row output{text-align:center;min-width:78px;font-family:var(--mono);font-size:16px}.row output .unit{color:var(--muted);font-size:12px}.row .num-input{text-align:center;width:78px;font-family:var(--mono);background:0 0;border:1px solid #0000;border-radius:10px;padding:6px 2px;font-size:16px}.row .num-input:hover,.row .num-input:focus{border-color:var(--edge);background:#0003;outline:none}.unit{color:var(--muted);font-size:12px}.swatch{border-radius:4px;flex:none;width:12px;height:12px}.panel-foot{gap:10px;margin-top:auto;padding-top:8px;display:flex}.panel-foot .primary{flex:1}.link-btn{min-height:44px;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;font-size:14px;display:flex}.link-btn:hover{color:#a8e6ff}.crumb{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.crumb span{align-items:center;gap:8px;display:inline-flex}.note{color:var(--muted);margin:0;font-size:13px}.warning{color:#ffd28a;align-items:flex-start;gap:8px;margin:0;font-size:13px;display:flex}.view-area{pointer-events:none;flex-direction:column;flex:1;justify-content:space-between;align-items:flex-end;gap:16px;min-width:0;display:flex}.view-area>*{pointer-events:auto}.chip-glass{color:var(--muted);border-radius:22px;flex-wrap:wrap;align-items:center;gap:4px 18px;padding:10px 18px;font-size:14px;display:flex}.chip-glass b{font-family:var(--mono);color:var(--ink);font-weight:500}.legend-line{color:var(--ink);align-items:center;gap:8px;display:inline-flex}.legend-line i{border-radius:2px;width:18px;height:4px;display:inline-block}.gallery{pointer-events:auto;min-height:0;margin:0 calc(-1 * var(--gutter));padding:8px var(--gutter) 40px;flex:1;overflow-y:auto}.gallery-inner{flex-direction:column;gap:28px;max-width:1368px;margin:0 auto;display:flex}.hero{flex-direction:column;gap:16px;max-width:760px;display:flex}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0;font-size:13px;font-weight:500}.hero h1{letter-spacing:-.03em;margin:0;font-size:clamp(34px,5vw,56px);font-weight:600;line-height:1.05}.hero p{color:var(--muted);margin:0;font-size:18px;line-height:1.5}.filters{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.search{border-radius:999px;flex:260px;align-items:center;gap:10px;max-width:380px;min-height:48px;padding:0 18px;display:flex}.search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;flex:1;height:46px;font-size:15px}.cards{grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:16px;display:grid}.card{text-align:left;color:var(--ink);cursor:pointer;font:inherit;border-radius:24px;flex-direction:column;gap:14px;padding:18px;transition:transform .2s,border-color .2s;display:flex}.card:hover,.card:focus-visible{border-color:#ffffff59;transform:translateY(-3px)}.card .name{letter-spacing:-.01em;font-size:16px;font-weight:600}.card .meta{color:var(--muted);font-size:13px}.card.draw{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff0a;border:1.5px dashed #ffffff4d}.icon-tile{border-radius:20px;justify-content:center;align-items:center;width:68px;height:68px;display:flex;box-shadow:inset 0 1px #ffffff8c,inset 0 -8px 16px #0000002e,0 10px 24px #00000059}.gallery-foot{color:var(--muted);margin:0;font-size:14px}.ws{pointer-events:none;flex:1;gap:16px;min-height:0;display:flex}.ws>*{pointer-events:auto}.ws-left{flex:0 340px;align-items:flex-start;gap:12px;min-width:0;display:flex}.dock{border-radius:22px;flex-direction:column;flex:none;gap:4px;padding:6px;display:flex}.dock hr{border:0;border-top:1px solid var(--line);margin:2px 4px}.card-panel{border-radius:24px;flex-direction:column;flex:1;gap:2px;min-width:0;padding:14px 8px 10px;display:flex}.card-panel h2{margin:0 12px 6px}.setup-link{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:16px;align-items:center;gap:12px;width:100%;min-height:44px;padding:8px 12px;text-decoration:none;display:flex}.setup-link:hover{color:#fff;background:#ffffff14}.setup-link .ic{width:32px;height:32px;color:var(--accent);background:#64d2ff1f;border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.setup-link .txt{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.setup-link .t1{font-size:14px;font-weight:500}.setup-link .t2{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.ws-center{pointer-events:none;flex-direction:column;flex:999 420px;justify-content:space-between;align-items:center;gap:16px;min-width:0;padding-bottom:70px;display:flex}.ws-center>*{pointer-events:auto}.ws-center.no-legend{padding-bottom:0}.hint{border-radius:999px;align-items:center;gap:10px;padding:8px 8px 8px 18px;font-size:14px;display:flex}.hint .dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 10px var(--accent);border-radius:999px;flex:none}.ws-right{flex-direction:column;flex:0 320px;gap:12px;min-width:0;display:flex;overflow-y:auto}.inspector{border-radius:24px;flex-direction:column;gap:14px;padding:18px;display:flex}.inspector h2{font-size:22px;font-weight:600;font-family:var(--mono);letter-spacing:-.01em;margin:0}.inspector .kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-size:12px}.facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;margin:0;font-size:14px;display:grid}.facts div{flex-direction:column;gap:2px;min-width:0;display:flex}.facts dt{color:var(--faint);font-size:12px}.facts dd{font-family:var(--mono);text-overflow:ellipsis;margin:0;overflow:hidden}.meter{background:#ffffff1f;border-radius:999px;height:8px;display:block;overflow:hidden}.meter>span{background:var(--accent);border-radius:999px;height:100%;display:block}.meter.fail>span{background:var(--bad)}.big-num{font-family:var(--mono);font-size:20px;font-weight:500}.ws-left.results{flex:none}.result-panel{flex:none;gap:4px;width:232px;padding:14px 8px 8px}.result-panel h2{margin:0 8px 2px}.result-sep{border:0;border-top:1px solid var(--line);margin:8px 8px 6px}.result-list{flex-direction:column;gap:2px;display:flex}.result-list>button{min-height:40px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:8px;padding:0 12px;font-size:14px;display:flex}.result-list>button>span:first-child{flex:1}.result-list .q-unit{font-family:var(--mono);color:#f2f5fa8c;font-size:11px}.result-list>button:hover{color:#fff;background:#ffffff14}.result-list>button[aria-pressed=true]{color:#05121a;background:#ffffffeb;font-weight:500}.result-list>button[aria-pressed=true] .q-unit{color:#05121a99}.anim-btn{z-index:2;bottom:24px;left:calc(50% - var(--legend-w) / 2 + 12px);min-height:44px;padding:0 16px 0 14px;position:fixed}.anim-btn[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:#ffffff8c;box-shadow:inset 0 1px #fff9,0 8px 22px #64d2ff4d}.anim-btn[aria-pressed=true]:hover{background:var(--accent-hover);color:var(--accent-ink)}.s3{--legend-w:min(580px, 100vw - 24px)}.s3:has(.anim-btn) .vp-legend{width:var(--legend-w);min-height:68px;padding-left:136px}.s3:has(.anim-btn) .vp-legend .head{text-align:left}.dd-trigger{background:var(--fill);width:100%;min-height:44px;color:var(--ink);cursor:pointer;border:1px solid #ffffff29;border-radius:14px;align-items:center;gap:10px;padding:0 12px 0 8px;font-size:14px;font-weight:500;display:flex;box-shadow:inset 0 1px #ffffff1f}.dd-trigger:hover{background:var(--fill-hover);color:#fff;border-color:#ffffff3d}.dd-trigger[aria-expanded=true]{background:var(--fill-hover);border-color:#64d2ffb3}.dd-tag{min-width:30px;height:22px;color:var(--accent);font-family:var(--mono);background:#64d2ff29;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:500;display:inline-flex}.dd-value{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.dd-chevron{color:var(--muted);flex:none;transition:transform .2s}.dd-trigger[aria-expanded=true] .dd-chevron{transform:rotate(180deg)}.dd-pop{z-index:20;-webkit-backdrop-filter:blur(30px)saturate(180%);backdrop-filter:blur(30px)saturate(180%);color:var(--ink);background:#161c2af0;border:1px solid #ffffff29;border-radius:18px;flex-direction:column;padding:6px;animation:.14s ease-out dd-in;display:flex;position:fixed;box-shadow:inset 0 1px #fff3,0 24px 64px #0009}@keyframes dd-in{0%{opacity:0;transform:translateY(-4px)}}.dd-search{height:40px;color:var(--faint);background:#00000040;border:1px solid #0000;border-radius:12px;flex:none;align-items:center;gap:8px;margin-bottom:4px;padding:0 10px 0 12px;display:flex}.dd-search:focus-within{border-color:#64d2ff80}.dd-input{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:14px}.dd-input::placeholder{color:var(--faint)}.dd-input:focus-visible{outline:none}.dd-count{font-family:var(--mono);border:1px solid var(--edge);border-radius:6px;padding:2px 6px;font-size:11px}.dd-list{outline:none;flex-direction:column;gap:1px;min-height:0;display:flex;overflow-y:auto}.dd-group{color:var(--faint);padding:8px 12px 4px;font-size:12px;font-weight:500}.dd-sep{background:var(--line);flex:none;height:1px;margin:4px 8px}.dd-opt{box-sizing:border-box;cursor:pointer;border-radius:10px;flex:none;align-items:center;gap:10px;min-height:38px;padding:4px 12px 4px 10px;font-size:14px;display:flex}.dd-opt.active{background:#ffffff14}.dd-list:focus-visible .dd-opt.active,.dd-search:focus-within~.dd-list .dd-opt.active{box-shadow:inset 0 0 0 2px #64d2ff80}.dd-opt[aria-selected=true]{color:#fff;background:#64d2ff24;font-weight:500}.dd-check{width:16px;color:var(--accent);flex:none;display:inline-flex}.dd-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.dd-text b{color:var(--accent);font-weight:600}.dd-detail{color:var(--muted);font-size:12px;font-weight:400}.dd-code{font-family:var(--mono);color:var(--faint);flex:none;font-size:12px;font-weight:400}.dd-empty{color:var(--muted);padding:10px 12px;font-size:13px}.result-bar{flex-direction:column;align-items:center;gap:10px;max-width:100%;display:flex}.result-bar .glass{border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;padding:5px;display:flex}.result-bar .select{min-height:38px;font-family:var(--font);border-radius:999px}.status-ok{color:var(--accent)}.status-bad{color:#ff8aa1}.s3 .vp-legend{-webkit-backdrop-filter:blur(24px)saturate(170%);backdrop-filter:blur(24px)saturate(170%);background:#181e2c99;border-radius:22px;width:min(440px,100% - 24px);font-size:13px;bottom:18px;box-shadow:inset 0 1px #ffffff38,0 18px 48px #0006}.busy{pointer-events:auto;z-index:10;background:#05070c59;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.busy .glass{border-radius:24px;align-items:center;gap:14px;padding:18px 24px;font-size:15px;display:flex}.spinner{border:3px solid #fff3;border-top-color:var(--accent);border-radius:999px;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{z-index:11;pointer-events:auto;border-radius:20px;align-items:center;gap:12px;max-width:min(640px,100% - 32px);padding:12px 12px 12px 18px;font-size:14px;display:flex;position:absolute;top:92px;left:50%;transform:translate(-50%)}.toast.error{border-color:#ff456b99}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (max-width:899px){.s3[data-step=size] .s3-view,.s3[data-step=materials] .s3-view,.s3[data-step=loads] .s3-view{top:150px;bottom:52%}.s3-stage{flex-direction:column;overflow-y:auto}.s3-stage>.panel{margin-top:calc(48vh - 150px)}.s3-stage>.view-area{display:none}.panel{width:100%;overflow:visible}.panel-body{overflow:visible}.ws{flex-direction:column;overflow-y:auto}.ws-left,.ws-right{flex:none}.ws-center{min-height:280px;padding-bottom:80px}.s3[data-step=workspace] .s3-view{top:150px;bottom:42%}.s3[data-step=workspace] .s3-ui{gap:10px;padding:10px 10px 12px}.topbar{border-radius:24px;padding:6px 6px 6px 14px}.project-name{display:none}.top-actions .icon-btn{width:40px;height:40px}.ws{scrollbar-width:none;flex-direction:column;gap:10px;overflow-y:auto}.ws-left{flex-direction:column;flex:none;align-items:stretch;gap:8px}.dock{scrollbar-width:none;border-radius:18px;flex-direction:row;overflow-x:auto}.dock hr{display:none}.card-panel{scrollbar-width:none;border-radius:18px;flex-direction:row;gap:6px;padding:6px;overflow-x:auto}.card-panel h2{display:none}.result-list{flex-direction:row}.result-list>button{white-space:nowrap}.result-panel{flex:1;align-items:center;width:auto}.result-sep,.result-list .q-unit{display:none}.result-panel .dd-trigger{flex:none;width:200px}.anim-btn{position:static}.s3:has(.anim-btn) .vp-legend{width:calc(100% - 16px);min-height:0;padding-left:var(--fea-space-3)}.s3:has(.anim-btn) .vp-legend .head{text-align:center}.setup-link{flex:none;width:auto;max-width:72vw;padding:6px 10px}.setup-link .ic,.setup-link>svg:last-child{display:none}.ws-center{flex:none;justify-content:space-between;height:calc(58vh - 150px);min-height:220px;padding-bottom:0}.ws-center .hint{padding:6px 6px 6px 12px;font-size:13px}.result-bar .glass{border-radius:20px}.result-bar .seg{border-radius:18px;flex-wrap:wrap;justify-content:center}.result-bar .seg>button{min-height:34px;padding:0 10px;font-size:13px}.ws-right{flex:none;overflow:visible}.s3[data-step=workspace] .vp-legend{width:calc(100% - 16px);bottom:8px}}.rpt{z-index:60;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--font);color:var(--ink);background:#080b12d1;flex-direction:column;display:flex;position:fixed;inset:0}.rpt-bar{border-radius:22px;flex-wrap:wrap;flex:none;align-items:center;gap:10px;margin:12px 16px 0;padding:8px 8px 8px 16px;display:flex}.rpt-title{flex-direction:column;min-width:0;margin-right:auto;display:flex}.rpt-title .kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-size:11px}.rpt-title b{white-space:nowrap;text-overflow:ellipsis;max-width:32ch;font-weight:600;overflow:hidden}.rpt-seg{border:1px solid var(--line);background:#00000040;border-radius:999px;gap:2px;padding:3px;display:flex}.rpt-seg-btn{min-height:32px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 14px;font-size:13px}.rpt-seg-btn:hover{color:var(--ink)}.rpt-seg-btn[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}.rpt-group{align-items:center;gap:4px;display:flex}.rpt-scope{flex:0 260px;min-width:200px;max-width:300px}.rpt-scope .dd-trigger{width:100%}body>.dd-pop{z-index:70}.rpt-tool{min-height:34px;padding:0 12px}.rpt-tool:disabled{opacity:.4;cursor:default}.rpt-zoom{text-align:center;min-width:48px;font-family:var(--mono);color:var(--muted);font-size:12px}.rpt-status{color:var(--faint);min-width:8ch;font-size:12px}.rpt-close{flex:none}.rpt-scroll{flex:1;padding:8px 16px 32px;overflow:auto}.rpt-pages{width:max-content;min-width:100%}.rpt-pages .rp-page{border-radius:2px;margin:16px auto;box-shadow:0 2px 6px #00000059,0 18px 48px #00000059}.rpt-pages a.rp-toc{color:inherit;cursor:pointer;text-decoration:none}.rpt-pages a.rp-toc:hover span:nth-child(2),.rpt-pages a.rp-toc:hover .rp-tp{color:#1f5fbf;text-decoration:underline}.rpt-wait{border-radius:16px;align-items:center;gap:12px;width:max-content;margin:18vh auto 0;padding:14px 20px;font-size:14px;display:flex}@media (max-width:899px){.rpt-bar{gap:6px;margin:8px 8px 0;padding:8px}.rpt-title{flex-basis:calc(100% - 56px)}.rpt-scroll{padding:4px 8px 24px}}.cd{border:1px solid var(--line);background:#ffffff08;border-radius:12px}.cd>summary{cursor:pointer;color:var(--muted);border-radius:12px;align-items:flex-start;gap:10px;padding:8px 10px;font-size:13px;list-style:none;display:flex}.cd>summary::-webkit-details-marker{display:none}.cd>summary:hover{background:var(--fill)}.cd>summary:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cd>summary:after{content:"";border-right:1.5px solid var(--faint);border-bottom:1.5px solid var(--faint);flex:none;width:6px;height:6px;margin:5px 2px 0 auto;transition:transform .15s;transform:rotate(-45deg)}.cd[open]>summary:after{transform:rotate(45deg)}.cd-u{font-family:var(--mono);color:var(--ink);min-width:34px;font-weight:500}.cd.fail .cd-u,.cd-checks li.fail b{color:#ff8aa1}.cd-sum{flex-direction:column;gap:2px;min-width:0;display:flex}.cd-where{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:11px}.cd-body{flex-direction:column;gap:12px;padding:4px 10px 12px;display:flex}.cd-fig{flex-direction:column;gap:4px;margin:0;display:flex}.cd-art{color:var(--ink);background:#0000002e;border-radius:8px;padding:6px}.cd-art svg{width:100%;height:auto;max-height:300px;display:block}.cd-fig figcaption{color:var(--faint);font-size:11px}.cd-data{flex-direction:column;gap:6px;margin:0;font-size:12px;display:flex}.cd-data dt{color:var(--faint);font-size:11px}.cd-data dd{color:var(--ink);margin:0}.cd-block h4{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 6px;font-size:11px;font-weight:500}.cd-tab{border-collapse:collapse;width:100%;font-size:12px}.cd-tab td{border-top:1px solid var(--line);vertical-align:top;padding:3px 0}.cd-tab td.num{font-family:var(--mono);text-align:right;white-space:nowrap;color:var(--ink);padding:3px 8px}.cd-combo{color:var(--faint);overflow-wrap:anywhere}.cd-checks{flex-direction:column;margin:0 0 6px;padding:0;list-style:none;display:flex}.cd-checks li{border-top:1px solid var(--line);padding:5px 0;font-size:12px}.cd-checks li.gov{box-shadow:inset 2px 0 0 var(--accent);padding-left:8px}.cd-row{color:var(--ink);justify-content:space-between;gap:8px;display:flex}.cd-row b{font-family:var(--mono);font-weight:500}.cd-sub{color:var(--faint);overflow-wrap:anywhere;font-size:11px}.cd-f{font-family:var(--mono)}.ui-switch{background:#00000047;border:1px solid #ffffff1a;border-radius:999px;gap:2px;padding:3px;display:inline-flex}.ui-switch>button{min-height:38px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:0 16px;font-size:14px;font-weight:500}.ui-switch>button:hover{color:#fff}.ui-switch>button[aria-pressed=true]{color:#05121a;background:#ffffffeb}.ui-switch.compact>button{min-height:28px;padding:0 14px;font-size:13px}.ui-switch.compact>button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.full-hint{color:var(--muted);border:1px dashed #64d2ff66;border-radius:14px;align-items:flex-start;gap:10px;margin:8px 4px 2px;padding:10px 12px;font-size:13px;display:flex}.full-hint svg{color:var(--accent);flex:none;margin-top:1px}.link-btn.inline{min-height:0;font-size:inherit;display:inline}.set-in-full{background:#ffffff0f;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.set-in-full .link-btn{white-space:nowrap;min-height:32px;font-size:13px}.s3[data-layout=full]{--fx-bar:#0e1320;--fx-panel:#121826;--fx-line:#ffffff14;--fx-left:264px;--fx-right:328px;--fx-top:120px;--fx-bottom:248px;--fx-status:26px;background:#0a0e18}.s3[data-layout=full][data-bottom=closed]{--fx-bottom:36px}.s3[data-layout=full] .s3-glow{display:none}.s3[data-layout=full] .s3-view{top:var(--fx-top);left:var(--fx-left);right:var(--fx-right);bottom:calc(var(--fx-bottom) + var(--fx-status));opacity:1;transition:none}.s3[data-layout=full] .s3-ui{grid-template-columns:var(--fx-left) minmax(0, 1fr) var(--fx-right);grid-template-rows:44px 30px 46px minmax(0, 1fr) var(--fx-bottom) var(--fx-status);grid-template-areas:"title title title""menu menu menu""tool tool tool""exp center props""bottom bottom bottom""status status status";gap:0;padding:0;font-size:13px;display:grid}.fx-title{background:var(--fx-bar);border-bottom:1px solid var(--fx-line);grid-area:title;align-items:center;gap:14px;min-width:0;padding:0 12px;display:flex}.fx-title .brand{gap:8px;font-size:15px}.fx-title .project-name{width:20ch;font-size:13px}.fx-mode{background:#ffffff0f;border-radius:8px;gap:2px;margin:0 auto;padding:2px;display:inline-flex}.fx-mode>button{min-height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 16px;font-size:13px;font-weight:500}.fx-mode>button:hover{color:#fff}.fx-mode>button[aria-pressed=true]{color:#fff;background:#ffffff24}.fx-title-actions{align-items:center;gap:8px;display:flex}.fx-primary{background:var(--accent);min-height:32px;color:var(--accent-ink);cursor:pointer;white-space:nowrap;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 16px;font-size:13px;font-weight:600;display:inline-flex}.fx-primary:hover{background:var(--accent-hover)}.fx-primary:disabled{opacity:.5;cursor:default}.fx-menubar{background:var(--fx-bar);border-bottom:1px solid var(--fx-line);scrollbar-width:none;grid-area:menu;align-items:stretch;padding:0 6px;display:flex;overflow-x:auto}.fx-menu-btn{color:#d7dce6;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:4px;padding:0 10px;font-size:13px}.fx-menu-btn:hover,.fx-menu-btn[aria-expanded=true]{color:#fff;background:#ffffff1a}.fx-menu{z-index:30;background:#182033;border:1px solid #ffffff24;border-radius:8px;flex-direction:column;min-width:240px;padding:4px;animation:.1s ease-out dd-in;display:flex;position:fixed;box-shadow:0 16px 40px #0000008c}.fx-menu-item{min-height:30px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;padding:0 10px 0 8px;font-size:13px;display:grid}.fx-menu-item:hover,.fx-menu-item:focus{background:#64d2ff29;outline:none}.fx-menu-item:focus-visible{box-shadow:inset 0 0 0 2px #64d2ff99}.fx-menu-item[aria-disabled=true]{color:#f2f5fa66;cursor:default}.fx-menu-item[aria-disabled=true]:hover{background:0 0}.fx-menu-check{color:var(--accent);display:inline-flex}.fx-menu-key{font-family:var(--mono);color:var(--faint);font-size:11px}.fx-menu-sep{background:var(--fx-line);height:1px;margin:4px 6px}.fx-toolbar{background:var(--fx-panel);border-bottom:1px solid var(--fx-line);scrollbar-width:thin;grid-area:tool;align-items:center;padding:0 6px;display:flex;overflow:auto hidden}.fx-tb-group{border-right:1px solid var(--fx-line);flex:none;align-items:center;gap:2px;padding:0 8px;display:flex}.fx-tb-group:last-child{border-right:0}.fx-tb{color:#d7dce6;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;padding:0;display:inline-flex}.fx-tb.small{width:30px;height:30px}.fx-tb:hover{color:#fff;background:#ffffff1a}.fx-tb:disabled{opacity:.35;cursor:default;background:0 0}.fx-tb[aria-pressed=true]{color:var(--accent);background:#64d2ff33}.fx-dd{flex:none;width:230px}.fx-dd .dd-trigger{border-radius:8px;min-height:32px;padding:0 10px 0 6px;font-size:13px}.fx-explorer,.fx-props{background:var(--fx-panel);flex-direction:column;min-height:0;display:flex}.fx-explorer{border-right:1px solid var(--fx-line);grid-area:exp}.fx-props{border-left:1px solid var(--fx-line);grid-area:props}.fx-panel-head{flex:none;justify-content:space-between;align-items:center;padding:10px 12px 6px;display:flex}.fx-h{letter-spacing:.06em;text-transform:uppercase;color:#aab3c5;margin:0;font-size:11px;font-weight:600}.fx-tree{flex:1;min-height:0;padding:0 6px 12px;overflow-y:auto}.fx-root{color:var(--ink);align-items:center;gap:6px;padding:4px 8px 6px;font-weight:600;display:flex}.fx-root svg{color:var(--accent);flex:none}.fx-sec-head,.fx-leaf{color:#d7dce6;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:6px;width:100%;min-height:28px;padding:0 8px;font-size:13px;display:flex}.fx-sec-head svg{color:var(--faint);flex:none;transition:transform .15s}.fx-sec-head[aria-expanded=true] svg{transform:rotate(90deg)}.fx-sec-head.flat{padding-left:26px}.fx-leaf{padding-left:28px}.fx-leaf.static{cursor:default}.fx-sec-head:hover,.fx-leaf:not(.static):hover{color:#fff;background:#ffffff0f}.fx-leaf[aria-pressed=true],.fx-sec-head[aria-pressed=true]{color:#fff;background:#64d2ff29}.fx-leaves{margin:0;padding:0;list-style:none}.fx-leaf-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.fx-count{font-family:var(--mono);color:var(--faint);white-space:nowrap;font-size:11px}.fx-leaf .swatch{border-radius:2px;width:9px;height:9px}.fx-center{pointer-events:none;flex-direction:column;grid-area:center;justify-content:space-between;align-items:center;min-width:0;padding:10px 12px 62px;display:flex;position:relative}.fx-center>*{pointer-events:auto}.fx-chips{flex-wrap:wrap;align-self:stretch;gap:6px;display:flex;pointer-events:none!important}.fx-chip{background:#121826eb;border:1px solid #ffffff1a;border-radius:6px;padding:4px 10px;font-size:12px}.fx-chip.muted{color:var(--muted)}.fx-hint{background:#121826f0;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:12px;max-width:100%;padding:6px 6px 6px 14px;font-size:13px;display:flex}.fx-btn{min-height:30px;color:var(--ink);cursor:pointer;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff29;border-radius:6px;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.fx-btn:hover{background:#ffffff1f}.fx-btn:disabled{opacity:.45;cursor:default}.s3[data-layout=full] .vp-legend{-webkit-backdrop-filter:none;backdrop-filter:none;background:#121826f0;border-radius:10px;bottom:12px;box-shadow:0 8px 24px #0006}.s3[data-layout=full] .toast{top:128px}.fx-props-body{flex-direction:column;flex:1;gap:14px;min-height:0;padding:0 12px 16px;display:flex;overflow-y:auto}.fx-props .inspector{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;border:0;border-bottom:1px solid var(--fx-line);background:0 0;border-radius:0;gap:12px;padding:4px 2px 14px}.fx-props .inspector h2{font-size:17px}.fx-props .facts{gap:10px 8px;font-size:13px}.fx-props .row{min-height:40px;font-size:13px}.fx-props .select{border-radius:6px;min-height:32px;padding:0 30px 0 10px;font-size:13px}.fx-props .pill.small{border-radius:6px;min-height:30px;font-size:13px}.fx-props .switch{min-height:44px;font-size:13px}.fx-editor{flex-direction:column;gap:16px;display:flex}.fx-sub{flex-direction:column;gap:8px;display:flex}.fx-field{align-items:center;gap:8px;font-size:13px;display:flex}.fx-field>span:first-child{color:#aab3c5;flex:0 0 72px}.fx-input{width:76px;height:30px;color:var(--ink);font-family:var(--mono);background:#ffffff0a;border:1px solid #ffffff24;border-radius:6px;padding:0 8px;font-size:13px}.fx-input:focus{border-color:var(--accent);outline:none}.fx-select{height:30px;color:var(--ink);background:#182033;border:1px solid #ffffff24;border-radius:6px;padding:0 6px;font-size:13px}.fx-select.grow{min-width:0;font-family:var(--mono);flex:1}.fx-rel-grid{grid-template-columns:40px repeat(6,minmax(0,1fr));align-items:center;gap:4px;display:grid}.fx-rel-head{text-align:center;color:var(--faint);font-size:11px;font-family:var(--mono)}.fx-rel-row{color:#aab3c5;font-size:12px}.fx-rel{height:28px;color:var(--accent-ink);cursor:pointer;background:0 0;border:1px solid #ffffff2e;border-radius:4px;padding:0;font-size:11px;font-weight:700}.fx-rel:hover{border-color:var(--accent)}.fx-rel[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}.fx-rel:disabled{opacity:.35;cursor:default}.fx-chipbtn{min-height:28px;color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.fx-chipbtn:hover{background:#ffffff14}.fx-chipbtn[aria-pressed=true]{background:#64d2ff2e;border-color:#64d2ff99}.fx-chipbtn:disabled{opacity:.4;cursor:default}.fx-loadlist{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.fx-loadlist li{align-items:center;gap:6px;display:flex}.fx-loadlist .fx-select{flex:1;min-width:0}.fx-links{flex-direction:column;gap:6px;display:flex}.fx-links .fx-btn{justify-content:space-between}.fx-dl{grid-template-columns:auto minmax(0,1fr);gap:4px 12px;margin:0;font-size:13px;display:grid}.fx-dl dt{color:#aab3c5;font-family:var(--mono)}.fx-dl dd{text-align:right;font-family:var(--mono);margin:0}.fx-diagram{width:100%;height:auto}.fx-diagram .axis{stroke:#ffffff40}.fx-diagram .area{fill:#64d2ff29;stroke:var(--accent);stroke-width:1.6px}.fx-diagram text{fill:var(--ink);font-family:var(--mono);font-size:10px}.fx-bottom{background:var(--fx-panel);border-top:1px solid var(--fx-line);flex-direction:column;grid-area:bottom;min-height:0;display:flex}.fx-bottom-head{border-bottom:1px solid var(--fx-line);scrollbar-width:none;flex:none;align-items:center;gap:10px;min-height:35px;padding:0 8px;display:flex;overflow-x:auto}.fx-tabs{flex:none;gap:2px;display:flex}.fx-tabs>button{color:#aab3c5;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;min-height:28px;padding:0 12px;font-size:13px}.fx-tabs>button:hover{color:#fff;background:#ffffff0f}.fx-tabs>button[aria-selected=true]{color:#fff;background:#ffffff1f;font-weight:500}.fx-filter{border:1px solid var(--fx-line);height:28px;color:var(--faint);background:#ffffff0d;border-radius:6px;flex:0 220px;align-items:center;gap:6px;min-width:120px;padding:0 8px;display:flex}.fx-filter input{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:12px}.fx-filter:focus-within{border-color:#64d2ff99}.fx-bottom-actions{flex:none;gap:2px;margin-left:auto;display:flex}.fx-table-wrap{flex:1;min-height:0;overflow:auto}.fx-table-wrap:focus-visible{outline-offset:-2px}.fx-table{border-collapse:collapse;width:100%;font-size:12px}.fx-table th{z-index:1;background:var(--fx-panel);text-align:left;color:#aab3c5;white-space:nowrap;border-bottom:1px solid var(--fx-line);padding:6px 12px;font-weight:500;position:sticky;top:0}.fx-table td{white-space:nowrap;border-bottom:1px solid #ffffff0d;height:28px;padding:2px 12px}.fx-table .num{text-align:right;font-family:var(--mono)}.fx-table tbody tr:hover{background:#ffffff0a}.fx-table tr.sel{background:#64d2ff24}.fx-table tr.bad td:first-child{color:#ffb4a8}.fx-rowbtn{color:inherit;font:inherit;font-family:var(--mono);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.fx-rowbtn:hover{color:var(--accent)}.fx-cell-input{width:84px;height:24px;color:var(--ink);font-family:var(--mono);text-align:right;background:0 0;border:1px solid #0000;border-radius:4px;padding:0 6px;font-size:12px}.fx-cell-input:hover{border-color:#ffffff29}.fx-cell-input:focus{border-color:var(--accent);background:#00000040;outline:none}.fx-cell-select{height:24px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:4px;padding:0 4px;font-size:12px}.fx-cell-select:hover,.fx-cell-select:focus{background:#182033;border-color:#fff3}.fx-cell-select option{background:#182033}.fx-inline{color:var(--muted);align-items:center;gap:2px;display:inline-flex}.fx-status-ok{color:#a8e6ff;background:#64d2ff1f;border-radius:999px;padding:0 8px;font-weight:600;display:inline-block}.fx-status-bad{color:#ffb4a8;background:#ff456b2e;border-radius:999px;padding:0 8px;font-weight:600;display:inline-block}.fx-empty,.fx-table-note{color:var(--muted);margin:0;padding:10px 12px;font-size:12px}.fx-table-note{border-top:1px solid var(--fx-line);flex:none;padding:4px 12px}.fx-status{background:var(--fx-bar);border-top:1px solid var(--fx-line);color:#aab3c5;white-space:nowrap;grid-area:status;align-items:center;gap:18px;padding:0 12px;font-size:12px;display:flex;overflow:hidden}.fx-dot{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px;margin-right:-12px}.fx-dot.busy{background:var(--warn)}.fx-dot.bad{background:var(--bad)}.fx-status-right{font-family:var(--mono);margin-left:auto}.fx-dialog-wrap{z-index:40;pointer-events:auto;background:#05070c80;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.fx-dialog{border-radius:22px;flex-direction:column;gap:14px;width:min(440px,100%);padding:22px;display:flex}.fx-dialog h2{margin:0;font-size:19px;font-weight:600}.fx-dialog p{color:#d7dce6;margin:0;font-size:14px;line-height:1.5}.fx-check{cursor:pointer;align-items:center;gap:10px;min-height:32px;font-size:14px;display:flex}.fx-check input{width:18px;height:18px;accent-color:var(--accent)}.fx-dialog-foot{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (max-width:899px){.s3[data-layout=full] .s3-view{height:44vh;bottom:auto;left:0;right:0}.s3[data-layout=full] .s3-ui{grid-template-columns:minmax(0,1fr);grid-template-rows:44px 30px 46px 44vh max-content max-content max-content var(--fx-status);grid-template-areas:"title""menu""tool""center""props""bottom""exp""status";overflow-y:auto}.fx-title{scrollbar-width:none;gap:8px;overflow-x:auto}.fx-title .project-name,.fx-title .brand{display:none}.fx-mode{margin:0}.fx-explorer,.fx-props{border:0;border-top:1px solid var(--fx-line)}.fx-tree,.fx-props-body{overflow:visible}.fx-bottom{min-height:280px}.s3[data-layout=full][data-bottom=closed] .fx-bottom{min-height:0}}.fea-status-slot{align-items:stretch;display:flex}.vp-hud{align-items:center;gap:var(--fea-space-3);padding:0 var(--fea-space-2);font:var(--fea-text-caption)/1 "Cascadia Mono", Consolas, ui-monospace, monospace;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.vp-hud:hover{background:var(--fea-status-hover)}.vp-hud[hidden],.vp-hud-part[hidden]{display:none}.vp-hud.continuous{box-shadow:inset 0 -2px}.vp-hud-fps{font-weight:600}.vp-hud [data-level]{align-items:center;gap:var(--fea-space-1);display:inline-flex}.vp-hud [data-level]:before{content:"";width:8px;height:8px;box-shadow:0 0 0 1px var(--fea-status-text);border-radius:50%}.vp-hud [data-level=good]:before{background:var(--fea-hud-good)}.vp-hud [data-level=warn]:before{background:var(--fea-hud-warn)}.vp-hud [data-level=bad]:before{background:var(--fea-hud-bad)}.vp-box{z-index:3;pointer-events:none;border:1px solid var(--fea-box-window);background:color-mix(in srgb, var(--fea-box-window) 12%, transparent);position:absolute}.vp-box.crossing{border:1px dashed var(--fea-box-crossing);background:color-mix(in srgb, var(--fea-box-crossing) 12%, transparent)}.vp-box[hidden]{display:none}.vp-box.zoom{border:1px dashed var(--fea-text);background:0 0}.fea-viewport.tool-active canvas,.fea-viewport.zoom-window canvas{cursor:crosshair}.fea-viewport.walking:after{content:"Walk  ·  W A S D move  ·  Q E down, up  ·  Shift faster  ·  drag to look  ·  Esc ends";top:var(--fea-space-2);z-index:3;padding:var(--fea-space-1) var(--fea-space-3);border:1px solid var(--fea-border);border-radius:var(--fea-radius-overlay);background:color-mix(in srgb, var(--fea-panel) 88%, transparent);color:var(--fea-text);font-size:var(--fea-text-caption);white-space:pre;pointer-events:none;position:absolute;inset-inline-start:var(--fea-space-2)}.vp-legend{z-index:3;box-sizing:border-box;width:min(360px,100% - 24px);padding:var(--fea-space-2) var(--fea-space-3) var(--fea-space-1);border-radius:var(--fea-radius-overlay);background:color-mix(in srgb, var(--fea-panel) 82%, transparent);border:1px solid var(--fea-border);color:var(--fea-text);font:var(--fea-text-caption)/1.3 var(--fea-font);pointer-events:none;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.vp-legend[hidden]{display:none}.vp-legend .head{white-space:nowrap;text-overflow:ellipsis;text-align:center;margin-bottom:var(--fea-space-1);overflow:hidden}.vp-legend .title{font-weight:600}.vp-legend .unit,.vp-legend .subtitle{color:var(--fea-text-muted);font-weight:400}.vp-legend .bar{border:1px solid var(--fea-swatch-outline);pointer-events:auto;cursor:crosshair;height:12px;display:flex;position:relative}.vp-legend .bar>span{flex:1}.vp-legend .marker{background:var(--fea-text);width:2px;box-shadow:0 0 0 1px var(--fea-panel);margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.vp-legend .tip{padding:2px var(--fea-space-2);border-radius:var(--fea-radius-control);background:var(--fea-panel);border:1px solid var(--fea-border);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600;position:absolute;bottom:calc(100% + 6px);transform:translate(-50%)}.vp-legend .marker[hidden],.vp-legend .tip[hidden]{display:none}.vp-legend .ticks{margin-top:var(--fea-space-1);font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.vp-legend-cat{width:auto;min-width:min(360px,100% - 24px);max-width:calc(100% - 24px)}.vp-legend-cat .chips{gap:var(--fea-space-3);white-space:nowrap;pointer-events:auto;scrollbar-width:thin;justify-content:safe center;display:flex;overflow-x:auto}.vp-legend-cat .chip{align-items:center;gap:var(--fea-space-1);flex:none;display:inline-flex}.vp-legend-cat .chip>i{border:1px solid var(--fea-swatch-outline);border-radius:2px;width:12px;height:12px}.vp-snap-label{pointer-events:none;z-index:5;padding:1px var(--fea-space-2);border-radius:var(--fea-radius-control);background:color-mix(in srgb, Canvas 88%, transparent);color:canvastext;font:var(--fea-text-caption)/1.5 var(--fea-font);white-space:nowrap;border:1px solid;position:absolute}.vp-snap-label[hidden]{display:none}.vp-axes-labels{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.vp-axes-labels>span{white-space:nowrap;font:.6875rem/1 var(--fea-font);color:var(--fea-text);text-shadow:0 0 3px var(--fea-panel), 0 0 2px var(--fea-panel);font-variant-numeric:tabular-nums;position:absolute;top:0;left:0}.vp-axes-labels>span.title{font-weight:600;font-size:var(--fea-text-caption)}.vp-axes-labels>span[hidden]{display:none}.vp-labels{pointer-events:none;z-index:2;position:absolute;top:0;left:0}@media (forced-colors:active){.vp-hud,.vp-legend,.vp-legend .tip,.vp-snap-label{forced-color-adjust:none;color:canvastext;background:canvas;border:1px solid canvastext}.vp-hud-fps,.vp-hud [data-level],.vp-legend .unit,.vp-legend .subtitle{color:canvastext}.vp-hud.continuous{border-color:highlight}.vp-box,.vp-box.crossing{forced-color-adjust:none;background:0 0;border-color:highlight}.vp-legend .bar,.vp-legend-cat .chip>i{forced-color-adjust:none;border-color:canvastext}.vp-legend .marker{forced-color-adjust:none;background:canvastext;box-shadow:0 0 0 1px canvas}.vp-axes-labels>span{forced-color-adjust:none;color:canvastext;text-shadow:0 0 3px canvas,0 0 2px canvas}}.dw-root{outline:none;flex-direction:column;height:100%;min-height:0;display:flex}.dw-toolbar{flex-wrap:wrap}.dw-source{white-space:nowrap;margin-inline-end:var(--fea-space-2);font-weight:600}.dw-sep{width:1px;margin:2px var(--fea-space-1);background:var(--fea-border);align-self:stretch}.conn-tool.dw-drop>svg:last-child{opacity:.7;width:12px;height:12px}.dw-zoombar{align-items:center;gap:2px;margin-inline-start:auto;display:inline-flex}.dw-zoom{font-variant-numeric:tabular-nums;justify-content:space-between;min-width:64px}.dw-list{height:100%;padding:var(--fea-space-1) 0;outline:none;overflow:auto}.dw-list>.dw-source{padding:var(--fea-space-1) var(--fea-space-3);opacity:.8;display:block}.dw-group{font-size:var(--fea-text-caption);letter-spacing:.04em;opacity:.7;padding:var(--fea-space-2) var(--fea-space-3) 2px;font-weight:600}.dw-item{gap:var(--fea-space-2);padding:var(--fea-space-1) var(--fea-space-3);cursor:pointer;white-space:nowrap;display:flex;overflow:hidden}.dw-item:hover{background:var(--fea-hover)}.dw-item.active{background:var(--fea-selection)}.dw-no{font-variant-numeric:tabular-nums;flex:none;min-width:44px;font-weight:600}.dw-title{text-overflow:ellipsis;overflow:hidden}.dw-empty-actions{padding:0 var(--fea-space-4)}.dw-stage{background:var(--fea-paper-stage);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:1;min-height:0;position:relative;overflow:hidden}.dw-stage:active{cursor:grabbing}.dw-paper{transform-origin:0 0;background:var(--fea-paper);box-shadow:var(--fea-paper-shadow);position:absolute;top:0;left:0}.dw-paper[hidden]{display:none}.dw-art svg{display:block}.dw-overlay{pointer-events:none;position:absolute;inset:0}.dw-hover,.dw-sel{box-sizing:border-box;position:absolute}.dw-hover{border:calc(1px / var(--dw-zoom,1)) dashed var(--fea-accent)}.dw-sel{border:calc(2px / var(--dw-zoom,1)) solid var(--fea-accent);box-shadow:0 0 0 calc(2px / var(--dw-zoom,1)) var(--fea-paper)}.dw-handle{right:calc(-5px / var(--dw-zoom,1));bottom:calc(-5px / var(--dw-zoom,1));width:calc(10px / var(--dw-zoom,1));height:calc(10px / var(--dw-zoom,1));background:var(--fea-accent);border:calc(1.5px / var(--dw-zoom,1)) solid var(--fea-paper);box-sizing:border-box;position:absolute}.dw-sel-layer{position:absolute;inset:0}.dw-locked .dw-sel{box-shadow:none;border-color:#0000}.dw-sel-many{border-width:calc(1.5px / var(--dw-zoom,1))}.dw-marquee{box-sizing:border-box;border:calc(1px / var(--dw-zoom,1)) solid var(--fea-accent);background:color-mix(in srgb, var(--fea-accent) 12%, transparent);position:absolute}.dw-hover[hidden],.dw-sel[hidden],.dw-marquee[hidden]{display:none}.dw-stage-empty{background:var(--fea-panel);max-width:420px;color:var(--fea-text);border-radius:var(--fea-radius-overlay);box-shadow:var(--fea-shadow-flyout);opacity:1;position:absolute;top:30%;left:50%;transform:translate(-50%)}.dw-stage-empty[hidden]{display:none}.dw-status{font-size:var(--fea-text-caption);padding:var(--fea-space-1) var(--fea-space-3);border-top:1px solid var(--fea-border);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dw-empty,.dw-error{padding:var(--fea-space-4);opacity:.8;white-space:normal}@media (forced-colors:active){.dw-hover,.dw-sel,.dw-marquee{border-color:highlight}.dw-locked .dw-sel{border-color:#0000}.dw-marquee{background:0 0}.dw-handle{background:highlight;border-color:canvas}}.dwg,.fea-menu{--fea-text-caption:12px;--fea-text-body:13px;--fea-space-4:16px;--fea-space-8:32px;--fea-hover:var(--fill);--fea-hover-strong:var(--fill-hover);--fea-selection:#64d2ff2e;--fea-accent:var(--accent);--fea-accent-text:var(--accent);--fea-on-accent:var(--accent-ink);--fea-border-strong:#ffffff38;--fea-radius-control:8px;--fea-panel:#161c2af5;--fea-shadow-flyout:0 24px 64px #0009;--fea-paper-stage:#2b3242;--fea-paper:#fff;--fea-paper-shadow:0 2px 6px #00000059, 0 18px 48px #00000059;--fea-input-bg:#00000040}.dwg-body{flex:1;grid-template-columns:260px minmax(0,1fr);gap:12px;min-height:0;padding:12px 16px 16px;display:grid}.dwg-side{border-radius:18px;min-height:0;padding:4px 0;font-size:13px;overflow:hidden}.dwg-main{border:1px solid var(--edge);background:#161c2adb;border-radius:18px;flex-direction:column;min-width:0;min-height:0;font-size:13px;display:flex;overflow:hidden}.dwg-main>.dw-root{flex:1}.dwg .dw-item{border-radius:10px;margin:0 6px}.dwg .dw-no{font-family:var(--mono);font-size:12px}.dwg .dw-status{color:var(--muted)}.dwg[aria-busy=true] .dw-toolbar{opacity:.6;pointer-events:none}.dwg .conn-toolbar{align-items:center;gap:var(--fea-space-1);padding:var(--fea-space-1) var(--fea-space-2);border-bottom:1px solid var(--fea-border);flex-wrap:wrap;display:flex}.dwg .conn-tool{align-items:center;gap:var(--fea-space-1);min-height:32px;padding:var(--fea-space-1) var(--fea-space-2);border-radius:var(--fea-radius-control);color:var(--fea-text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;display:inline-flex}.dwg .conn-tool svg{width:16px;height:16px}.dwg .conn-tool svg .a{stroke:var(--accent)}.dwg .conn-tool:hover:not(:disabled){background:var(--fea-hover)}.dwg .conn-tool.active{background:var(--fea-selection);border-color:var(--fea-accent)}.dwg .conn-tool:disabled{opacity:.45;cursor:default}.fea-menu{z-index:2000;border:1px solid var(--fea-border-strong);background:var(--fea-panel);-webkit-backdrop-filter:blur(30px)saturate(180%);backdrop-filter:blur(30px)saturate(180%);min-width:200px;box-shadow:var(--fea-shadow-flyout);font-family:var(--font);color:var(--ink);cursor:default;-webkit-user-select:none;user-select:none;border-radius:14px;outline:none;max-height:calc(100vh - 8px);padding:4px;font-size:13px;position:fixed;overflow-y:auto}.fea-menu-item{min-height:30px;color:var(--ink);border-radius:10px;grid-template-columns:24px 1fr auto 16px;align-items:center;gap:8px;padding:0 12px 0 8px;display:grid}.fea-menu-item.active{background:var(--fill-hover)}.fea-menu-item.disabled{opacity:.45}.fea-menu-icon,.fea-menu-arrow{width:16px;height:16px;display:inline-flex}.fea-menu-icon svg,.fea-menu-arrow svg{width:100%;height:100%}.fea-menu-icon svg .a{stroke:var(--accent)}.fea-menu-shortcut{color:var(--muted);margin-inline-start:32px;font-size:12px}.fea-menu-label-row{align-items:center;gap:8px;min-width:0;display:flex}.fea-menu-label-row .fea-menu-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fea-menu-sep{background:var(--edge);height:1px;margin:4px 8px}.fea-menu-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding:6px 12px 2px;font-size:11px;font-weight:600}.dwg-form-host{z-index:2;background:#05080e80;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.dwg-form-host[hidden]{display:none}.dwg-form{border-radius:22px;width:min(760px,100%);max-height:calc(100vh - 32px);padding:20px 22px;overflow:auto}.dwg-form h3{margin:0 0 4px;font-size:18px;font-weight:600}.dwg-note{color:var(--muted);margin:0 0 14px;font-size:13px;line-height:1.45}.dwg-cols{grid-template-columns:1fr 1fr;gap:8px 28px;display:grid}.dwg-field{color:var(--muted);grid-template-columns:110px minmax(0,1fr);align-items:center;gap:10px;margin-bottom:8px;font-size:13px;display:grid}.dwg-field .select{min-height:36px;font-family:var(--font);border-radius:10px;width:100%;font-size:13px}.dwg-field .input{background:var(--fill);min-height:36px;color:var(--ink);border:1px solid #ffffff29;border-radius:10px;width:100%;padding:0 12px}.dwg-field .input:focus{border-color:var(--accent);outline:none}.dwg-sub{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:12px 0 6px;font-size:11px;font-weight:600}.dwg-check{cursor:pointer;align-items:center;gap:10px;min-height:30px;font-size:13px;display:flex}.dwg-check input{width:16px;height:16px;accent-color:var(--accent)}.dwg-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.dwg-notes{width:min(900px,100%)}.dwg-notes ul{color:var(--muted);max-height:55vh;margin:0;padding-left:18px;font-size:12px;line-height:1.5;overflow:auto}@media (max-width:760px){.dwg-body{grid-template-rows:140px minmax(0,1fr);grid-template-columns:minmax(0,1fr);gap:8px;padding:8px}.dwg-side{overflow:auto}.dwg-cols{grid-template-columns:minmax(0,1fr)}.dwg-field{grid-template-columns:96px minmax(0,1fr)}}
