:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e0e12;--surface:#17171c;--surface-2:#1f1f26;--border:#2a2a33;--text:#e8e8ea;--text-dim:#9a9aa2;--accent:#5b7cfa;--accent-quiet:#2b3566;--ok:#37c871;--warn:#e3b341;--err:#f2555a;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--r-card:12px;--r-ctrl:8px;--f-display:1.5rem;--f-title:1.15rem;--f-body:.95rem;--f-caption:.8rem;--motion-micro:.12s;--motion-screen:.22s;--motion-sheet:.32s;--ease:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);font:var(--f-body) / 1.5 system-ui, sans-serif;-webkit-tap-highlight-color:transparent;margin:0}.tnum,.metric{font-variant-numeric:tabular-nums}a{color:var(--accent)}.k-btn{justify-content:center;align-items:center;gap:var(--sp-2);background:var(--accent);color:#fff;border-radius:var(--r-ctrl);font:inherit;cursor:pointer;transition:filter var(--motion-micro) var(--ease), transform var(--motion-micro) var(--ease);border:0;padding:.65rem 1.2rem;font-weight:600;display:inline-flex}.k-btn:active{transform:scale(.97)}.k-btn:disabled{background:var(--surface-2);color:#77777f;cursor:default;transform:none}.k-btn--quiet{background:var(--surface-2);color:var(--text)}.k-btn--danger{background:var(--err);color:#fff}.k-btn--block{width:100%}.k-iconbtn{width:40px;height:40px;color:var(--text);border-radius:var(--r-ctrl);cursor:pointer;transition:background var(--motion-micro) var(--ease);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.k-iconbtn:hover{background:var(--surface-2)}.k-iconbtn:disabled{color:#55555d;cursor:default}.k-iconbtn svg{width:24px;height:24px}.k-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-4)}.k-field{margin-bottom:var(--sp-3);display:block}.k-field>.k-field-label{color:var(--text-dim);margin-bottom:var(--sp-1);font-size:var(--f-caption);display:block}.k-field input,.k-field select,.k-field textarea{background:var(--surface-2);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--r-ctrl);font:inherit;padding:.55rem .7rem}.k-field input:focus,.k-field select:focus,.k-field textarea:focus{border-color:var(--accent);outline:none}.k-slider{margin-bottom:var(--sp-3);display:block}.k-slider .k-slider-head{color:var(--text-dim);font-size:var(--f-caption);margin-bottom:var(--sp-1);justify-content:space-between;display:flex}.k-slider .k-slider-val{color:var(--accent);font-variant-numeric:tabular-nums}.k-slider input[type=range]{width:100%;accent-color:var(--accent)}.k-chip{align-items:center;gap:var(--sp-1);background:var(--accent-quiet);color:var(--text);font-size:var(--f-caption);cursor:pointer;border:0;border-radius:999px;padding:.25rem .7rem;display:inline-flex}.k-chip.k-chip--on{background:var(--accent);color:#fff}.k-toast-host{left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 5rem);align-items:center;gap:var(--sp-2);z-index:200;pointer-events:none;flex-direction:column;display:flex;position:fixed}.k-toast{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--r-ctrl);font-size:var(--f-body);opacity:0;transition:opacity var(--motion-micro) var(--ease), transform var(--motion-micro) var(--ease);padding:.6rem 1rem;transform:translateY(8px);box-shadow:0 6px 24px #0006}.k-toast.k-toast--in{opacity:1;transform:none}.k-toast--err{border-color:var(--err)}.k-pill{align-items:center;gap:var(--sp-1);background:var(--surface-2);border:1px solid var(--border);font-size:var(--f-caption);color:var(--text);cursor:pointer;border-radius:999px;padding:.25rem .6rem;display:inline-flex}.k-pill .k-pill-dot{background:var(--text-dim);border-radius:50%;width:8px;height:8px}.k-pill[data-state=connected] .k-pill-dot{background:var(--ok)}.k-pill[data-state=connecting] .k-pill-dot{background:var(--warn)}.k-pill[data-state=error] .k-pill-dot{background:var(--err)}.k-pill[data-state=offline] .k-pill-dot{background:var(--text-dim)}.k-empty{text-align:center;justify-content:center;align-items:center;gap:var(--sp-3);color:var(--text-dim);padding:var(--sp-8) var(--sp-4);flex-direction:column;display:flex}.k-empty svg{opacity:.5;width:48px;height:48px}.k-sheet-scrim{opacity:0;transition:opacity var(--motion-sheet) var(--ease);z-index:300;background:#00000080;position:fixed;inset:0}.k-sheet-scrim.k-sheet--in{opacity:1}.k-sheet{background:var(--surface);border-top-left-radius:var(--r-card);border-top-right-radius:var(--r-card);border-top:1px solid var(--border);max-height:85vh;padding:var(--sp-4);padding-bottom:calc(env(safe-area-inset-bottom,0px) + var(--sp-4));transition:transform var(--motion-sheet) var(--ease);z-index:301;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.k-sheet.k-sheet--in{transform:none}.k-sheet-head{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.k-sheet-head h2{font-size:var(--f-title);margin:0}@media (prefers-reduced-motion:reduce){*{transition-duration:1ms!important}}#app{min-height:100vh}html.is-locked,body.is-locked{overscroll-behavior:none;height:100%;overflow:hidden}.shell{flex-direction:column;max-width:560px;min-height:100vh;margin:0 auto;display:flex}.shell--overlay{max-width:none}.shell--overlay .app-bar,.shell--overlay .tab-bar{display:none}.app-bar{z-index:50;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);padding-top:calc(env(safe-area-inset-top,0px) + var(--sp-2));background:var(--bg);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.app-bar-title{font-size:var(--f-title);margin:0;font-weight:600}.tab-bar{z-index:50;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:sticky;bottom:0}.tab{padding:var(--sp-2) 0;color:var(--text-dim);font:inherit;font-size:var(--f-caption);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.tab--active{color:var(--accent)}.tab-icon svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.shell-outlet{flex:1;position:relative;overflow-y:auto}.screen{padding:var(--sp-4);animation:screen-in var(--motion-screen) var(--ease);display:block}@keyframes screen-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.screen{animation:none}}.screen-headline{font-size:var(--f-display);margin:0 0 var(--sp-2)}.screen-sub{color:var(--text-dim);margin:0 0 var(--sp-4)}.onboard-form{gap:var(--sp-3);flex-direction:column;display:flex}.onboard-or{text-align:center;color:var(--text-dim);font-size:var(--f-caption)}.onboard-status{margin-top:var(--sp-3);color:var(--text-dim);min-height:1.4em}.maps-search{align-items:center;gap:var(--sp-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-ctrl);padding:0 var(--sp-2);margin-bottom:var(--sp-3);display:flex}.maps-search svg{fill:none;width:20px;height:20px;stroke:var(--text-dim);stroke-width:1.5px;flex-shrink:0}.maps-search input{color:var(--text);font:inherit;background:0 0;border:0;flex:1;padding:.55rem 0}.maps-search input:focus{outline:none}.maps-sort{color:var(--text-dim);font:inherit;background:0 0;border:0}.maps-tags{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.maps-list{gap:var(--sp-2);flex-direction:column;display:flex}.map-row{align-items:center;gap:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-3);cursor:pointer;display:flex}.map-row:active{background:var(--surface-2)}.map-thumb{border-radius:var(--r-ctrl);background:#000;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex;overflow:hidden}.map-thumb img{object-fit:cover;width:100%;height:100%}.map-thumb svg{fill:none;width:28px;height:28px;stroke:var(--text-dim);stroke-width:1.5px}.map-info{flex:1;min-width:0}.map-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.map-meta{color:var(--text-dim);font-size:var(--f-caption)}.map-rowtags{color:var(--accent);font-size:var(--f-caption)}.fab{right:var(--sp-4);bottom:calc(env(safe-area-inset-bottom,0px) + 4.5rem);background:var(--accent);color:#fff;cursor:pointer;z-index:40;width:3.5rem;height:3.5rem;transition:transform 80ms var(--ease);border:none;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed;box-shadow:0 6px 20px #0006}.fab:active{transform:scale(.93)}.fab svg{width:1.6rem;height:1.6rem}.detail-canvas{aspect-ratio:4/3;border-radius:var(--r-card);background:#000;width:100%}.detail-meta{color:var(--text-dim);font-size:var(--f-caption);margin:var(--sp-2) 0}.detail-viewtoggles,.detail-actions{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.detail-overflow{right:var(--sp-2);top:var(--sp-2);z-index:10;background:#0a0a0e80;position:absolute}.toggle-chip{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);font:inherit;font-size:var(--f-caption);cursor:pointer;border-radius:999px;padding:.3rem .8rem}.toggle-chip--on{background:var(--accent-quiet);color:var(--text);border-color:var(--accent)}.detail-topo{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-3)}.topo-head{margin-bottom:var(--sp-2);font-weight:600}.topo-summary{color:var(--accent);font-size:var(--f-caption);margin-bottom:var(--sp-3)}.topo-disclosure{color:var(--accent);font:inherit;cursor:pointer;padding:var(--sp-1) 0;background:0 0;border:0}.topo-progress{color:var(--warn);font-size:var(--f-caption);margin:var(--sp-2) 0}.topo-btns{gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.effects-canvas{aspect-ratio:4/3;border-radius:var(--r-card);width:100%;margin-bottom:var(--sp-3);background:#000}.effects-bar{gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.uniform-panel{gap:var(--sp-2);flex-direction:column;display:flex}.upanel-grid{column-gap:var(--sp-2);grid-template-columns:minmax(0,6.5rem) minmax(0,1fr) 3.6rem;align-items:center;row-gap:6px;width:100%;display:grid}.upanel-row{display:contents}.upanel-name{text-overflow:ellipsis;white-space:nowrap;font-size:var(--f-caption);color:var(--text-dim);overflow:hidden}.upanel-ctrl{align-items:center;min-width:0;display:flex}.upanel-ctrl input[type=range]{width:100%;margin:0}.upanel-ctrl input[type=color]{border:1px solid var(--border);background:0 0;width:100%;height:1.5rem;padding:0}.upanel-ctrl select{width:100%}.upanel-ctrl input[type=checkbox]{width:1.1rem;height:1.1rem}.upanel-val{font-size:var(--f-caption);font-variant-numeric:tabular-nums;color:var(--text-dim);text-align:right;min-width:0}.upanel-num{box-sizing:border-box;background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);font:inherit;font-size:var(--f-caption);text-align:right;padding:1px 2px}.upanel-num::-webkit-outer-spin-button{appearance:none;margin:0}.upanel-num::-webkit-inner-spin-button{appearance:none;margin:0}.uniform-row{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.uniform-row select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--r-ctrl);font:inherit;padding:.35rem .5rem}.fxlib-aikey{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.fxlib-aikey-title{font-weight:600}.fxlib-aikey-sub{color:var(--text-dim);font-size:var(--f-caption)}.screen--fxedit{overscroll-behavior:none;background:var(--bg);z-index:40;margin:0;padding:0;animation:none;position:fixed;inset:0;overflow:hidden}.screen--fxedit .fxlayout{min-height:0;position:absolute;inset:0}.fxedit-canvas{aspect-ratio:4/3;background:#000;width:100%;height:100%;min-height:6rem}.fxpane .fxedit-canvas{aspect-ratio:auto;flex:1}.fxedit-editor{background:var(--surface);border:0;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.fxedit-codewrap{flex:1;min-height:8rem;position:relative;overflow:hidden}.fxedit-code,.fxedit-backdrop{box-sizing:border-box;tab-size:2;white-space:pre;border:0;margin:0;padding:.6rem .8rem;font:13px/1.5 ui-monospace,monospace;overflow:auto}.fxedit-backdrop{background:var(--surface);color:var(--text);pointer-events:none;z-index:0;position:absolute;inset:0}.fxedit-backdrop code{font:inherit}.fxedit-code{resize:none;color:#0000;width:100%;height:100%;caret-color:var(--text);z-index:1;background:0 0;outline:none;position:absolute;inset:0}.fxhl-comment{color:var(--text-dim);font-style:italic}.fxhl-str{color:var(--ok)}.fxhl-num{color:var(--warn)}.fxhl-kw{color:var(--accent);font-weight:600}.fxhl-type{color:#7fd0ff}.fxhl-fn{color:#c9a3ff}.fxhl-ctx{color:#ff9d7a}.fxac-mirror{visibility:hidden;pointer-events:none;white-space:pre-wrap;word-wrap:break-word;z-index:-1;position:absolute;top:0;left:0;overflow:hidden}.fxac{z-index:5;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-ctrl);min-width:15rem;max-width:24rem;font:12px/1.4 ui-monospace,monospace;position:absolute;overflow:hidden;box-shadow:0 6px 20px #0006}.fxac-list{max-height:13rem;overflow-y:auto}.fxac-row{align-items:center;gap:var(--sp-2);cursor:pointer;color:var(--text);padding:.2rem .5rem;display:flex}.fxac-row--active{background:var(--accent-quiet)}.fxac-badge{text-align:center;text-transform:uppercase;letter-spacing:.03em;min-width:2.6em;color:var(--surface);background:var(--text-dim);border-radius:3px;flex:none;padding:0 .3em;font-size:10px}.fxac-badge--func{background:#c9a3ff}.fxac-badge--type{background:#7fd0ff}.fxac-badge--member,.fxac-badge--context{background:#ff9d7a}.fxac-badge--keyword{background:var(--accent)}.fxac-badge--swizzle{background:#7fd0ff}.fxac-badge--uniform{background:var(--ok,#9fe6a0)}.fxac-badge--state{background:var(--warn,#e6c56a)}.fxac-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.fxac-detail{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;max-width:55%;overflow:hidden}.fxac-doc{border-top:1px solid var(--border);background:var(--surface);color:var(--text-dim);white-space:normal;padding:.35rem .5rem}.fxac-doc:empty{display:none}.fxedit-status{align-items:center;gap:var(--sp-2);border-top:1px solid var(--border);background:var(--surface-2);min-height:1.8em;color:var(--text-dim);padding:.35rem .8rem;font:12px/1.4 ui-monospace,monospace;display:flex}.fxedit-status--ok{color:var(--ok,#9fe6a0)}.fxedit-status--err{color:var(--err,#ff9d9d)}.fxedit-status--busy{color:var(--text-dim)}.fxedit-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite fxedit-spin}@keyframes fxedit-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.fxedit-spinner{animation:none}}.fxedit-float{top:calc(env(safe-area-inset-top,0px) + 4px);z-index:60;pointer-events:none;align-items:center;gap:4px;display:flex;position:absolute}.fxedit-float>*{pointer-events:auto}.fxedit-float--l{left:4px}.fxedit-float--r{right:4px}.fxedit-floatbtn{border:1px solid var(--border);background:color-mix(in srgb, var(--surface-2) 78%, transparent);width:1.9rem;height:1.9rem;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.fxedit-floatbtn:hover{background:var(--surface-2)}.fxedit-floatbtn svg{width:16px;height:16px}.fxedit-namepill,.fxedit-nameinput{border:1px solid var(--border);background:color-mix(in srgb, var(--surface-2) 78%, transparent);max-width:40vw;height:1.9rem;color:var(--text);font:inherit;font-size:var(--f-caption);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:0;padding:0 .5rem}.fxedit-namepill{text-overflow:ellipsis;white-space:nowrap;cursor:text;text-align:left;overflow:hidden}.fxedit-namepill:hover{background:var(--surface-2)}.fxedit-nameinput{outline:none}.fxedit-nameinput:focus{border-color:var(--accent)}.fxedit-menu{z-index:61;background:var(--surface-2);border:1px solid var(--border);min-width:12rem;padding:var(--sp-1);border-radius:0;flex-direction:column;margin-top:4px;display:flex;position:absolute;top:100%;right:0;box-shadow:0 6px 24px #0006}.fxedit-menu-item{text-align:left;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;padding:.5rem .7rem}.fxedit-menu-item:hover{background:var(--surface)}.fxedit-disasm-card{padding:var(--sp-3)}.fxedit-disasm{max-height:20rem;color:var(--text-dim);white-space:pre;margin:0;font:11px/1.4 ui-monospace,monospace;overflow:auto}.fxedit-chatlog{gap:var(--sp-2);max-height:22rem;margin-bottom:var(--sp-2);flex-direction:column;display:flex;overflow-y:auto}.fxedit-msg{border-radius:var(--r-ctrl);font-size:var(--f-body);white-space:pre-wrap;word-break:break-word;padding:.45rem .7rem}.fxedit-msg--user{background:var(--accent-quiet);align-self:flex-end;max-width:85%}.fxedit-msg--assistant{background:var(--surface-2);align-self:flex-start;max-width:90%}.fxedit-msg--tool{color:var(--text-dim);font-size:var(--f-caption);align-self:flex-start;padding:.1rem .7rem;font-style:italic}.fxedit-legend{font-size:var(--f-caption);text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-bottom:var(--sp-2)}.fxedit-muted{color:var(--text-dim);font-size:var(--f-caption);margin:var(--sp-2) 0 0;min-height:1em}.fxedit-fieldrow{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.fxedit-mappick,.fxedit-ask{background:var(--surface-2);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--r-ctrl);font:inherit;box-sizing:border-box;padding:.45rem .5rem}.fxedit-ask{margin-bottom:var(--sp-2);resize:vertical}.fxedit-btnrow{gap:var(--sp-2);flex-wrap:wrap;display:flex}.fxedit-diags{margin:0;padding:0;font:12px/1.4 ui-monospace,monospace;list-style:none}.fxedit-diags li{color:var(--warn,#ff9d9d);margin:.15rem 0}.fxedit-aihint{color:var(--text-dim);font-size:var(--f-caption);margin-bottom:var(--sp-2)}.fxedit-link,.fxedit-aihint .fxedit-link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.fxlayout{--fxdiv:1px;min-height:0;display:block}.fxpane{background:var(--surface);border:0;border-radius:0;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.fxpane-head{align-items:center;gap:var(--sp-1);border-bottom:1px solid var(--border);background:var(--surface-2);flex:none;min-height:1.35rem;padding:0 0 0 .5rem;display:flex}.fxpane-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:10px;overflow:hidden}.fxpane-ctl{flex:none;gap:0;display:flex}.fxpane-btn{width:1.35rem;height:1.35rem;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.fxpane-btn:hover{background:var(--surface);color:var(--text)}.fxpane-btn svg{width:13px;height:13px}.fxpane-body{min-width:0;min-height:0;padding:var(--sp-2);flex-direction:column;flex:auto;display:flex;overflow:auto}.fxpane[data-pane=code] .fxpane-body{padding:0;overflow:hidden}.fxpane[data-pane=code] .fxedit-editor{border:0;border-radius:0}.fxpane[data-pane=preview] .fxpane-body{padding:var(--sp-2)}.fxlayout-dock{gap:0;display:grid;position:absolute;inset:0}.fxlayout-center{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.fxlayout-center>.fxpane{flex:1 1 0}.fxlayout-edge{background:var(--surface);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.fxlayout-edge>.fxpane{flex:1 1 0}.fxlayout-edgetabs{border-bottom:1px solid var(--border);background:var(--surface-2);flex:none;display:flex;overflow-x:auto}.fxlayout-edgetab{border:0;border-right:1px solid var(--border);color:var(--text-dim);font:inherit;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;white-space:nowrap;background:0 0;flex:none;padding:.2rem .5rem;font-size:10px}.fxlayout-edgetab--active{background:var(--surface);color:var(--text)}.fxlayout-edgetabs+.fxpane .fxpane-title{visibility:hidden;flex:auto}.fxlayout-divider{background:var(--border);z-index:2;touch-action:none;flex:none;position:relative}.fxlayout-divider--v{width:var(--fxdiv);cursor:col-resize}.fxlayout-divider--h{height:var(--fxdiv);cursor:row-resize}.fxlayout-divider:before{content:"";z-index:1;position:absolute}.fxlayout-divider--v:before{inset:0 -3px}.fxlayout-divider--h:before{inset:-3px 0}.fxlayout-divider:hover{background:var(--accent)}.fxlayout-relo{z-index:30;background:var(--surface-2);border:1px solid var(--border);min-width:9rem;padding:var(--sp-1);border-radius:0;flex-direction:column;margin-top:2px;display:flex;position:absolute;box-shadow:0 6px 24px #0006}.fxlayout-relo-title{font-size:var(--f-caption);color:var(--text-dim);padding:.2rem .5rem}.fxlayout-relo-item{text-align:left;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;padding:.4rem .6rem}.fxlayout-relo-item:hover{background:var(--surface)}.fxlayout-relo-item--cur{color:var(--accent)}.fxlayout-relo-hide{border-top:1px solid var(--border);color:var(--text-dim);margin-top:2px}.fxlayout--narrow{padding-top:calc(env(safe-area-inset-top,0px) + 2rem);flex-direction:column;display:flex;position:absolute;inset:0}.fxlayout-nsplit{flex:auto;min-height:0;display:grid}.fxlayout-ncell{flex-direction:column;min-height:0;display:flex;overflow:hidden}.fxlayout-ncell>.fxpane{flex:1}.fxlayout-tabs{gap:var(--sp-1);flex:none;padding-bottom:2px;display:flex;overflow-x:auto}.fxlayout-tab{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);font:inherit;font-size:var(--f-caption);cursor:pointer;white-space:nowrap;border-radius:0;flex:none;padding:.3rem .7rem}.fxlayout-tab--active{background:var(--accent-quiet);color:var(--text);border-color:var(--accent)}.fxlayout-nsheet{flex-direction:column;flex:none;min-height:8rem;max-height:45vh;display:flex;overflow:hidden}.fxlayout-nsheet>.fxpane{flex:1}.fxlayout--narrow .fxpane-ctl{display:none}.fxedit-previewbody,.fxedit-chatbody,.fxedit-diagbody,.fxedit-disasmbody{gap:var(--sp-2);flex-direction:column;flex:1;min-height:0;display:flex}.fxedit-previewctl{gap:var(--sp-2);flex-direction:column;flex:none;display:flex}.fxedit-viewtoggles{gap:var(--sp-2);display:flex}.fxedit-chatbody .fxedit-chatlog{flex:auto;min-height:6rem;max-height:none}.fxedit-disasmbody .fxedit-disasm{flex:1;max-height:none}.aikey-sheet{gap:var(--sp-2);flex-direction:column;display:flex}.aikey-status{color:var(--text-dim);font-size:var(--f-caption)}.aikey-note{color:var(--text-dim);font-size:var(--f-caption);margin:0 0 var(--sp-2)}.screen--capture{padding:0;animation:none}.capture-overlay{z-index:10;pointer-events:none;font-size:14px;position:fixed;inset:0}.capture-overlay>*{pointer-events:auto}.capture-labels{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.capture-topbar{top:env(safe-area-inset-top,0);align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);color:#fff;background:#0a0a0e99;display:flex;position:absolute;left:0;right:0}.capture-topbar .k-iconbtn{color:#fff}.capture-count{font-weight:600}.capture-timer{color:#ffd97a;margin-left:auto}.capture-live{right:var(--sp-3);bottom:calc(env(safe-area-inset-bottom,0px) + 5rem);aspect-ratio:4/3;border-radius:var(--r-ctrl);background:#0a0a0e8c;border:1px solid #ffffff2e;width:38vw;max-width:240px;position:absolute}.capture--livebig .capture-live{width:min(88vw,480px);max-width:none;bottom:6rem}.capture-guide{left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 8.5rem);text-align:center;color:#ffd97a;padding:0 var(--sp-4);position:absolute}.capture-advanced{left:var(--sp-3);bottom:calc(env(safe-area-inset-bottom,0px) + 5rem);border-radius:var(--r-card);width:min(70vw,340px);padding:var(--sp-2) var(--sp-3);color:#fff;background:#0a0a0eb8;border:1px solid #ffffff2e;position:absolute}.capture-adv-toggle{color:#9fd8ff;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.capture-adv-body .k-slider-head,.capture-adv-body .k-slider-val{color:#d5d5dd}.capture-hud{white-space:pre-line;color:#cfcfd6;margin-top:var(--sp-2);font-size:12px}.capture-stop{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 1.2rem);background:var(--err);position:absolute;transform:translate(-50%)}.capture-solveprog{left:var(--sp-4);right:var(--sp-4);bottom:calc(env(safe-area-inset-bottom,0px) + 5rem);border-radius:var(--r-ctrl);padding:var(--sp-3);color:#fff;background:#0a0a0eb8;position:absolute}.capture-solveprog-bar{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.capture-solveprog-fill{background:var(--accent);width:0%;height:100%;transition:width .3s var(--ease)}.capture-solveprog-text{color:var(--text-dim);font-size:var(--f-caption);margin-top:var(--sp-1)}.device-row{align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border);display:flex}.device-dot{background:var(--text-dim);border-radius:50%;flex-shrink:0;width:10px;height:10px}.device-dot[data-state=connected]{background:var(--ok)}.device-dot[data-state=connecting]{background:var(--warn)}.device-dot[data-state=error]{background:var(--err)}.device-info{flex:1;min-width:0}.device-name{font-weight:600}.device-url,.device-meta{color:var(--text-dim);font-size:var(--f-caption);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.device-btns{align-items:center;gap:var(--sp-1);display:flex}.device-empty{color:var(--text-dim);text-align:center;padding:var(--sp-4) 0}.device-actions{gap:var(--sp-2);margin-top:var(--sp-4);flex-direction:column;display:flex}.context-sheet{gap:var(--sp-2);flex-direction:column;display:flex}.sheet-input{background:var(--surface-2);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--r-ctrl);font:inherit;margin-bottom:var(--sp-3);padding:.6rem .7rem}@media (width>=720px){.shell:not(.shell--overlay){max-width:900px}.maps-list{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));align-content:start;display:grid}.k-sheet{border-top:0;border-left:1px solid var(--border);width:min(24rem,92vw);height:100%;max-height:none;padding-bottom:var(--sp-4);border-radius:0;inset:0 0 0 auto;transform:translate(100%)}.k-sheet.k-sheet--in{transform:none}.k-sheet .k-btn{padding:.5rem .9rem}.device-actions{align-items:flex-start}.device-actions .k-btn--block{width:auto;min-width:13rem}}@media (width>=1200px){.shell:not(.shell--overlay){max-width:1040px}}
