@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter/inter-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter/inter-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter/inter-greek-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter/inter-greek-wght-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter/inter-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter/inter-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter/inter-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono/jetbrains-mono-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono/jetbrains-mono-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono/jetbrains-mono-greek-wght-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono/jetbrains-mono-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono/jetbrains-mono-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono/jetbrains-mono-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/roboto-condensed/roboto-condensed-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/roboto-condensed/roboto-condensed-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/roboto-condensed/roboto-condensed-greek-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/roboto-condensed/roboto-condensed-greek-wght-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/roboto-condensed/roboto-condensed-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/roboto-condensed/roboto-condensed-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/roboto-condensed/roboto-condensed-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/noto-sans-thai/noto-sans-thai-thai-wght-normal.woff2)format("woff2-variations");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}:root{--bg:#f1f0ee;--surface:#fff;--surface-2:#f7f6f4;--surface-3:#eceae7;--field:#f8f7f5;--line:#e4e1dd;--line-2:#d3cfca;--ink:#1b1a18;--ink-2:#55514c;--ink-3:#8c8782;--accent:#e35a12;--accent-hover:#c84a0a;--accent-soft:#fdeadf;--accent-ink:#fff;--glow:236, 128, 82;--ok:#1c9a68;--ok-soft:#e2f4eb;--warn:#a86300;--warn-soft:#fdf0da;--bad:#c4351e;--bad-soft:#fbe5e0;--info:#2f6ed8;--info-soft:#e5eefc;--sel-row:#fff4d6;--hl-row:#ffe4a3;--console:#1b1a18;--console-ink:#ede9e4;--console-line:#34312d;--backdrop:#1b1a1861;--plot-paper:#fff;--draw-ink:#3a3733;--draw-ink-2:#55514c;--draw-frame:#6e6a65;--scene-bg:#fff;--scene-box:#6e6a65;--scene-label:#3a3733;--scene-halo:#fff;--f-ui:"Inter Variable", "Inter", "Noto Sans Thai Variable", "Noto Sans Thai", "Leelawadee UI", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--f-num:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--f-draw:"Roboto Condensed Variable", "Roboto Condensed", "Noto Sans Thai Variable", "Arial Narrow", Arial, sans-serif;--r-card:20px;--r-panel:16px;--r-ctl:10px;--r-chip:8px;--shadow:0 1px 2px #281e140a, 0 8px 28px #281e140f;--shadow-lift:0 2px 6px #281e1414, 0 16px 40px #281e141a;--bar-h:60px;--gap:12px;--rail-w:360px;--insp-w:380px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--panel:var(--surface);--panel2:var(--surface-2);--text:var(--ink);--muted:var(--ink-3);--err:var(--bad);--accent2:var(--accent-soft)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121110;--surface:#1b1a18;--surface-2:#222120;--surface-3:#2c2a27;--field:#242220;--line:#322f2c;--line-2:#45413c;--ink:#f3f0ec;--ink-2:#beb8b1;--ink-3:#8e8882;--accent:#ff7a36;--accent-hover:#ff9257;--accent-soft:#3a2215;--accent-ink:#1a0d05;--glow:255, 110, 50;--ok:#4cc58e;--ok-soft:#143426;--warn:#f0b455;--warn-soft:#362710;--bad:#ff7d69;--bad-soft:#3a1914;--info:#7da9f5;--info-soft:#18263d;--sel-row:#3a2f14;--hl-row:#54401a;--console:#0d0c0b;--console-ink:#e4dfd8;--console-line:#2c2a27;--backdrop:#0000008c;--plot-paper:#fff;--draw-ink:#d9d4ce;--draw-ink-2:#beb8b1;--draw-frame:#8e8882;--scene-bg:#1b1a18;--scene-box:#8e8882;--scene-label:#e4dfd8;--scene-halo:#1b1a18;--shadow:0 1px 2px #0000004d, 0 8px 28px #00000059;--shadow-lift:0 2px 6px #0006, 0 16px 40px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121110;--surface:#1b1a18;--surface-2:#222120;--surface-3:#2c2a27;--field:#242220;--line:#322f2c;--line-2:#45413c;--ink:#f3f0ec;--ink-2:#beb8b1;--ink-3:#8e8882;--accent:#ff7a36;--accent-hover:#ff9257;--accent-soft:#3a2215;--accent-ink:#1a0d05;--glow:255, 110, 50;--ok:#4cc58e;--ok-soft:#143426;--warn:#f0b455;--warn-soft:#362710;--bad:#ff7d69;--bad-soft:#3a1914;--info:#7da9f5;--info-soft:#18263d;--sel-row:#3a2f14;--hl-row:#54401a;--console:#0d0c0b;--console-ink:#e4dfd8;--console-line:#2c2a27;--backdrop:#0000008c;--plot-paper:#fff;--draw-ink:#d9d4ce;--draw-ink-2:#beb8b1;--draw-frame:#8e8882;--scene-bg:#1b1a18;--scene-box:#8e8882;--scene-label:#e4dfd8;--scene-halo:#1b1a18;--shadow:0 1px 2px #0000004d, 0 8px 28px #00000059;--shadow-lift:0 2px 6px #0006, 0 16px 40px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--f-ui);font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,h4{text-wrap:balance}[hidden]{display:none!important}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:2px;text-decoration:underline}code,kbd,pre,.mono{font-family:var(--f-num);font-size:.92em}.num,td.n,th.n{font-family:var(--f-num);font-variant-numeric:tabular-nums}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}::selection{background:color-mix(in srgb, var(--accent) 28%, transparent)}*{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}button{cursor:pointer;white-space:nowrap;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:28px;padding:3px 10px;font-size:13px;font-weight:550;line-height:1.3;display:inline-flex}button:hover:not(:disabled){border-color:var(--ink-3)}button:disabled{opacity:.45;cursor:not-allowed}button svg{flex:none;width:16px;height:16px}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.primary:hover:not(:disabled),.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.quiet,.btn.quiet{background:var(--surface-3);border-color:#0000}button.quiet:hover:not(:disabled),.btn.quiet:hover:not(:disabled){background:var(--line);border-color:#0000}button.danger{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 45%, var(--line-2))}button.danger:hover:not(:disabled){border-color:var(--bad);background:var(--bad-soft)}button.icon{min-height:24px;color:var(--ink-2);background:0 0;border-color:#0000;border-radius:6px;padding:2px 6px}button.icon:hover:not(:disabled){color:var(--ink);background:var(--surface-3);border-color:#0000}button.active,button.on{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 55%, transparent);color:var(--accent);font-weight:650}.btn{border:1px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:var(--r-ctl);justify-content:center;align-items:center;gap:8px;min-height:36px;padding:7px 14px;font-size:14px;font-weight:600;line-height:1.3;display:inline-flex}.btn svg{flex:none;width:16px;height:16px}.btn.sm{border-radius:8px;min-height:30px;padding:4px 10px;font-size:13px}.btn.dirty{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 50%, transparent);color:var(--accent)}.btn.dirty:hover:not(:disabled){border-color:var(--accent)}.icon-btn{border:1px solid var(--line);background:var(--surface);width:36px;height:36px;min-height:0;color:var(--ink-2);border-radius:50%;place-items:center;padding:0;display:inline-grid}.icon-btn:hover:not(:disabled){color:var(--ink);border-color:var(--line-2)}.icon-btn svg{width:18px;height:18px}.icon-btn.sq{border-radius:var(--r-ctl)}.icon-btn.sm{width:28px;height:28px}.icon-btn.sm svg{width:15px;height:15px}.icon-btn[aria-pressed=true]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, var(--line));background:var(--accent-soft)}.linkbtn{min-height:0;color:var(--accent);background:0 0;border:0;padding:0;font-weight:500}.linkbtn:hover:not(:disabled){text-underline-offset:2px;border:0;text-decoration:underline}.xbtn{color:var(--ink-3);background:0 0;border:0;border-radius:6px;min-height:0;padding:2px 6px;font-size:16px;line-height:1}.xbtn:hover:not(:disabled){color:var(--ink);background:var(--surface-3)}@media (prefers-reduced-motion:no-preference){button,.seg button,.mods a,.icon-btn,.node{transition:background-color .15s,color .15s,border-color .15s,box-shadow .15s}}.seg{border-radius:var(--r-ctl);background:var(--surface-3);flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.seg button{min-height:0;color:var(--ink-2);background:0 0;border:0;border-radius:8px;padding:5px 11px;font-size:13px;font-weight:500}.seg button:hover:not(:disabled){color:var(--ink);border:0}.seg button[aria-pressed=true],.seg button.active{background:var(--surface);color:var(--ink);font-weight:650;box-shadow:0 1px 2px #00000014,0 1px 6px #0000000d}.seg.sm button{padding:3px 9px;font-size:12.5px}input.num,input.txt,select.sel,input[type=text],input[type=search],input[type=number],textarea,select{background:var(--field);border:1px solid var(--line);min-width:0;height:28px;color:var(--ink);border-radius:8px;padding:3px 8px}textarea{height:auto;font-family:var(--f-num);resize:vertical;padding:6px 8px;font-size:12.5px;line-height:1.45}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--line-2)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 70%, transparent);outline-offset:0;border-color:var(--accent);background-color:var(--surface)}input:disabled,select:disabled{opacity:.55;cursor:not-allowed}input.num{text-align:right;font-family:var(--f-num);font-variant-numeric:tabular-nums;font-size:12.5px}input.invalid,input[aria-invalid=true]{border-color:var(--bad);background-color:var(--bad-soft)}select,select.sel{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);background-position:calc(100% - 12px),calc(100% - 8px);background-repeat:no-repeat;background-size:4px 4px,4px 4px;padding-right:24px}select option{background:var(--surface);color:var(--ink)}input.color{border:1px solid var(--line-2);background:var(--surface);vertical-align:middle;cursor:pointer;border-radius:6px;width:30px;height:24px;padding:1px 2px}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--accent)}input[type=checkbox],input[type=radio]{cursor:pointer;width:15px;height:15px;margin:0}input[type=range]{cursor:pointer;vertical-align:middle;height:18px}input::placeholder,textarea::placeholder{color:var(--ink-3)}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink-2);align-items:center;gap:6px;display:inline-flex}.toggle:has(input:checked){color:var(--ink)}.hint{color:var(--ink-3);margin-top:2px;font-size:12px;line-height:1.45}.muted{color:var(--ink-3)}.spacer{flex:1}.swatch{vertical-align:middle;border:1px solid #00000038;border-radius:3px;flex:none;display:inline-block}.badge{white-space:nowrap;border-radius:999px;align-items:center;margin-right:4px;padding:1px 8px;font-size:11.5px;font-weight:600;line-height:18px;display:inline-flex}.badge.info{background:var(--info-soft);color:var(--info)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.err{background:var(--bad-soft);color:var(--bad)}.badge.muted{background:var(--surface-3);color:var(--ink-2)}.note{background:var(--warn-soft);color:var(--ink);border:1px solid color-mix(in srgb, var(--warn) 22%, transparent);border-radius:12px;margin-bottom:8px;padding:8px 12px;font-size:12.5px;line-height:1.5}.note.info{background:var(--info-soft);border-color:color-mix(in srgb, var(--info) 20%, transparent)}.note.warn{background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 25%, transparent)}.note.err{background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 25%, transparent)}.note.ok{background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 25%, transparent)}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;display:inline-flex}.chip button.icon{min-width:0;min-height:0;padding:0 3px}.empty{color:var(--ink-3);text-align:center;flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.app{flex-direction:column;min-height:100%;display:flex;position:relative}.app.is-workspace{height:100%;overflow:hidden}.ws-shell{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.glow{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.glow:before,.glow:after{content:"";filter:blur(60px);border-radius:50%;position:absolute}.glow:before{background:radial-gradient(circle, rgba(var(--glow), .3), rgba(var(--glow), 0) 70%);width:520px;height:520px;top:70px;right:8%}.glow:after{background:radial-gradient(circle, rgba(var(--glow), .14), rgba(var(--glow), 0) 70%);width:380px;height:380px;top:48%;right:-120px}.is-workspace .glow:before{opacity:.55}@media print{.glow{display:none}}.bar{z-index:30;background:var(--surface);border-bottom:1px solid var(--line);padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));flex:none;position:sticky;top:0}.bar-in{min-height:var(--bar-h);align-items:center;gap:8px 18px;margin:0 auto;display:flex;position:relative}.is-home .bar-in{max-width:1520px}.brand{color:var(--ink);white-space:nowrap;flex:none;align-items:center;gap:10px;text-decoration:none;display:flex}.brand:hover{text-decoration:none}.brand svg{flex:none;width:30px;height:30px}.brand b{letter-spacing:-.01em;font-size:18px;font-weight:700}.brand-mark .bm-bg{fill:var(--accent)}.brand-mark .bm-ln{fill:none;stroke:var(--accent-ink);stroke-width:2.2px;stroke-linecap:round}.brand-mark .bm-fill{fill:var(--accent-ink)}.bar-left{flex:0 auto;align-items:center;gap:10px;min-width:0;display:flex}.mods{flex:auto;justify-content:center;align-self:stretch;gap:6px 26px;min-width:0;display:flex}.mods a,.mods button{min-height:0;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:0;align-items:center;padding:0 2px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex;box-shadow:inset 0 -2px #0000}.mods a:hover,.mods button:hover:not(:disabled){color:var(--ink);border:0;text-decoration:none}.mods a[aria-current=page],.mods button[aria-pressed=true]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);font-weight:650}.bar-fill{flex:auto}.bar-ctl{flex:none;align-items:center;gap:8px;display:flex}.bar-sep{background:var(--line);flex:none;width:1px;height:24px;margin:0 2px}.health{color:var(--ink-3);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.health:before{content:"";background:var(--ink-3);border-radius:50%;width:8px;height:8px}.health.ok:before{background:var(--ok)}.health.bad{color:var(--bad)}.health.bad:before{background:var(--bad)}.proj{align-items:baseline;gap:10px;min-width:0;display:flex}.pname{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:360px;font-size:15px;font-weight:650;overflow:hidden}.state{white-space:nowrap;border-radius:999px;flex:none;padding:2px 9px;font-size:12px;font-weight:600}.state.dirty{background:var(--warn-soft);color:var(--warn)}.state.saved{background:var(--ok-soft);color:var(--ok)}.engine-chip{white-space:nowrap;text-overflow:ellipsis;background:var(--surface-2);max-width:300px;color:var(--ink-2);border:1px solid var(--line);border-radius:999px;flex:none;padding:2px 9px;font-size:12px;font-weight:600;overflow:hidden}.engine-chip.s-starting{background:var(--info-soft);color:var(--info);border-color:#0000}.engine-chip.s-ready{background:var(--ok-soft);color:var(--ok);border-color:#0000}.engine-chip.s-failed{background:var(--bad-soft);color:var(--bad);border-color:#0000}@media (width<=1180px){.engine-chip{max-width:190px}.engine-chip .phase{display:none}}.demo-badge{background:var(--accent-soft);height:22px;color:var(--accent);letter-spacing:.08em;cursor:help;border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:999px;flex:none;align-items:center;padding:0 9px;font-size:11.5px;font-weight:700;display:inline-flex;position:relative}.demo-badge:after{content:attr(data-hint);z-index:60;background:var(--surface);width:max-content;max-width:320px;color:var(--ink);box-shadow:var(--shadow-lift);border:1px solid var(--line);letter-spacing:0;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;border-radius:10px;padding:8px 12px;font-size:12.5px;font-weight:500;line-height:1.5;position:absolute;top:calc(100% + 8px);left:0}.demo-badge:hover:after,.demo-badge:focus:after{opacity:1;visibility:visible}details.menu{position:relative}details.menu>summary{cursor:pointer;align-items:center;gap:6px;list-style:none;display:inline-flex}details.menu>summary::-webkit-details-marker{display:none}details.menu>summary:after{content:"";border-bottom:1.6px solid;border-right:1.6px solid;width:6px;height:6px;margin-left:2px;transform:translateY(-2px)rotate(45deg)}.menu-pop{z-index:50;background:var(--surface);border:1px solid var(--line);min-width:260px;box-shadow:var(--shadow-lift);border-radius:14px;gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.menu-pop button{white-space:normal;text-align:left;background:0 0;border:0;border-radius:9px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:0;padding:7px 10px}.menu-pop button:hover:not(:disabled),.menu-pop button:focus-visible{background:var(--surface-2);border:0}.menu-pop button b{font-size:13px;font-weight:600}.menu-pop button small{color:var(--ink-3);font-size:11.5px;font-weight:400}.jobchip{background:var(--surface-2);border:1px solid var(--line);min-height:30px;color:var(--ink-2);border-radius:999px;align-items:center;gap:8px;padding:2px 11px;font-size:12px;font-weight:550;display:inline-flex}.jobchip:hover:not(:disabled){border-color:var(--line-2)}.jobchip .dot{background:var(--ink-3);border-radius:50%;flex:none;width:8px;height:8px}.jobchip.s-running .dot,.jobchip.s-queued .dot{background:var(--accent);animation:1.2s ease-in-out infinite gw-pulse}.jobchip.s-done .dot{background:var(--ok)}.jobchip.s-failed .dot{background:var(--bad)}.jobchip .tag{font-family:var(--f-num);color:var(--ink-3);font-size:11px}@keyframes gw-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.jobchip .dot{animation:none!important}}.progress{background:var(--surface-3);border-radius:3px;flex:none;width:80px;height:6px;display:inline-block;overflow:hidden}.progress>span,.progress>div{background:var(--accent);border-radius:3px;height:100%;transition:width .3s;display:block}.jobchip.s-done .progress>span{background:var(--ok)}.jobchip.s-failed .progress>span{background:var(--bad)}.drawer{z-index:45;background:var(--console);width:min(620px,100vw - 32px);max-height:60vh;color:var(--console-ink);box-shadow:var(--shadow-lift);border-radius:16px;flex-direction:column;display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.drawer header{border-bottom:1px solid var(--console-line);align-items:center;gap:10px;padding:8px 10px 8px 16px;font-size:12.5px;display:flex}.drawer header .mono{opacity:.7}.drawer header button{color:var(--console-ink);border-color:var(--console-line);background:0 0}.drawer pre{font-size:12px;font-family:var(--f-num);white-space:pre-wrap;margin:0;padding:10px 16px 14px;line-height:1.5;overflow:auto}.workspace{z-index:1;grid-template-columns:var(--rail-w) minmax(0, 1fr);gap:var(--gap);min-height:0;padding:var(--gap);padding-left:max(var(--gap), env(safe-area-inset-left,0px));padding-right:max(var(--gap), env(safe-area-inset-right,0px));flex:1;grid-template-rows:minmax(0,1fr);font-size:13px;display:grid;position:relative}.ws-shell[data-insp=open] .workspace{grid-template-columns:var(--rail-w) minmax(0, 1fr) var(--insp-w)}.ws-shell[data-rail=closed] .workspace{grid-template-columns:minmax(0,1fr)}.ws-shell[data-rail=closed][data-insp=open] .workspace{grid-template-columns:minmax(0, 1fr) var(--insp-w)}.ws-shell[data-rail=closed] .rail{display:none}.rail{gap:var(--gap);flex-direction:column;min-width:0;min-height:0;display:flex}.card-panel{background:var(--surface);border-radius:var(--r-panel);box-shadow:var(--shadow);min-width:0}.panel-head{align-items:center;gap:8px;padding:10px 10px 8px 16px;display:flex}.panel-head h2{letter-spacing:-.005em;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:14px;font-weight:650;overflow:hidden}.panel-head .sub{color:var(--ink-3);margin-left:auto;font-size:12px}.explorer{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.explorer>.panel-head{border-bottom:1px solid var(--line);flex:none;margin-bottom:6px;padding-bottom:9px}.explorer>.tree{overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;min-height:0;padding:0 8px 12px;overflow:auto}.tree{margin:0;padding:0;list-style:none}.tree .tree{padding-left:14px}.tree li>.node{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;width:100%;min-height:30px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;justify-content:flex-start;align-items:center;gap:7px;padding:4px 8px;font-size:13px;font-weight:450;display:flex;overflow:hidden}.tree li>.node>.lbl,.tree li>.node>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.tree .count{text-overflow:ellipsis;flex:none;max-width:45%;overflow:hidden}.tree li>.node:hover:not(:disabled){background:var(--surface-2);border:0}.tree li>.node.sel{background:var(--accent-soft);color:var(--accent);font-weight:650}.tree .count{color:var(--ink-3);font-size:11.5px;font-family:var(--f-num);margin-left:auto;padding-left:8px;font-weight:400}.tree .node.sel .count{color:color-mix(in srgb, var(--accent) 70%, var(--ink-3))}.tree .ic{text-align:center;width:18px;color:var(--ink-3);flex:none;font-size:12px}.tree .node.sel .ic{color:var(--accent)}.insp-panel{flex-direction:column;gap:10px;min-width:0;min-height:0;display:flex;position:relative}.insp-head{flex:none}.insp-head .panel-head{padding:8px 8px 8px 16px}.insp-resizer{z-index:2;top:0;bottom:0;left:calc(-1 * var(--gap));width:var(--gap);cursor:col-resize;touch-action:none;border-radius:6px;position:absolute}.insp-resizer:after{content:"";background:var(--line-2);border-radius:2px;width:4px;height:46px;margin:-23px 0 0 -2px;position:absolute;top:50%;left:50%}.insp-resizer:hover:after,.insp-resizer:focus-visible:after{background:var(--accent)}.inspector{border-radius:var(--r-panel);overflow-wrap:anywhere;overscroll-behavior:contain;flex-direction:column;flex:auto;gap:10px;min-height:120px;padding:2px 2px 8px;display:flex;overflow:auto}.inspector>:not(.box):not(.note):not(.muted){flex:none}.inspector>.muted,.inspector>.note{background:var(--surface);border-radius:var(--r-panel);box-shadow:var(--shadow);margin:0;padding:14px 16px}.inspector>.note.info{background:var(--info-soft);box-shadow:none}.inspector>h3{color:var(--accent);letter-spacing:.02em;margin:6px 6px -4px;font-size:12.5px;font-weight:650}.inspector h3{font-size:14px}.center{flex-direction:column;min-width:0;min-height:0;display:flex}.splitter{height:var(--gap);cursor:row-resize;touch-action:none;background:0 0;border-radius:6px;flex:none;position:relative}.splitter:after{content:"";background:var(--line-2);border-radius:2px;width:46px;height:4px;margin:-2px 0 0 -23px;position:absolute;top:50%;left:50%}.splitter:hover:after,.splitter:focus-visible:after{background:var(--accent)}.center>.dock-gap{height:var(--gap);flex:none}.dock{flex-direction:column;flex:none;min-height:0;display:flex;overflow:hidden}.dock-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:stretch;gap:2px 18px;min-height:42px;padding:0 8px 0 16px;display:flex}.dock-tabs>button:not(.icon-btn){min-height:40px;color:var(--ink-2);background:0 0;border:0;border-radius:0;padding:0 1px;font-size:13px;font-weight:500;box-shadow:inset 0 -2px #0000}.dock-tabs>button:not(.icon-btn):hover:not(:disabled){color:var(--ink);border:0}.dock-tabs>button[aria-pressed=true]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);font-weight:650}.dock-tabs>button.has-err{color:var(--bad)}.dock-tabs>.icon-btn{align-self:center}.dock:not(.open) .dock-tabs{border-bottom:0}.dock-body{flex:1;min-height:0;padding:10px 14px 14px;overflow:auto}.ws-switch{display:none}@media (width<=1180px){:root{--rail-w:310px}.pname{max-width:220px}.bar-in{flex-wrap:wrap;gap:6px 12px;padding:4px 0}.jobchip .tag{display:none}.progress{width:56px}.lbl-mid{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=1100px){.lbl-wide{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ws-shell[data-insp=open] .workspace{grid-template-columns:var(--rail-w) minmax(0, 1fr)}.ws-shell[data-rail=closed][data-insp=open] .workspace{grid-template-columns:minmax(0,1fr)}.insp-panel{z-index:25;top:var(--gap);bottom:var(--gap);right:max(var(--gap), env(safe-area-inset-right,0px));width:min(var(--insp-w), calc(100% - 2 * var(--gap)));border-radius:calc(var(--r-panel) + 4px);background:var(--bg);border:1px solid var(--line);box-shadow:var(--shadow-lift);gap:8px;padding:8px;position:absolute}.insp-resizer{width:8px;left:0}}@media (width<=900px){.workspace,.ws-shell[data-rail=closed] .workspace,.ws-shell[data-insp=open] .workspace,.ws-shell[data-rail=closed][data-insp=open] .workspace{grid-template-columns:minmax(0,1fr)}.ws-shell[data-rail=open] .center,.ws-shell[data-rail=closed] .rail{display:none}.ws-shell[data-rail=open] .rail{display:flex}.bar-in{flex-wrap:wrap;padding:6px 0}.bar-ctl{flex-wrap:wrap}.pname{max-width:46vw}}@media (width<=640px){.brand b{font-size:16px}}@media (width<=480px){.brand b{display:none}}.home{z-index:1;padding:22px max(16px, env(safe-area-inset-right,0px)) 48px max(16px, env(safe-area-inset-left,0px));flex:1;position:relative}.home-in{grid-template-columns:minmax(0,1fr);gap:18px;max-width:1520px;margin:0 auto;display:grid}.page-head{background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow);gap:10px;padding:22px 26px;display:grid}.eyebrow{letter-spacing:.02em;color:var(--accent);font-size:13px;font-weight:600}.page-head h1{letter-spacing:-.02em;margin:0;font-size:30px;font-weight:700;line-height:1.15}.page-head h1 .count{color:var(--ink-3);font-size:18px;font-weight:550;font-family:var(--f-num);margin-left:8px}.page-head .lede{color:var(--ink-2);max-width:90ch;margin:0}.page-head .toolbar{margin:4px 0 0}.page-head input[type=search],.page-head input.txt{border-radius:var(--r-ctl);height:34px;padding:4px 12px}.panel{padding:18px 22px}.panel>h2,.panel-title{letter-spacing:-.005em;margin:0 0 12px;font-size:17px;font-weight:650}.grp{gap:12px;display:grid}.grp>h2{letter-spacing:-.01em;align-items:baseline;gap:10px;margin:10px 0 0;font-size:20px;font-weight:700;display:flex}.grp>h2 .muted{font-size:13px;font-weight:500}.tut{padding:16px 18px 18px}.tut>h3{flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 12px;font-size:15.5px;font-weight:650;display:flex}.tut>h3 code{color:var(--ink-3);font-size:12px;font-weight:400}.cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.card{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:6px;min-width:0;padding:12px 14px;display:flex}.card:hover{border-color:var(--line-2)}.card .title{overflow-wrap:anywhere;font-size:13.5px;font-weight:650}.card .meta{color:var(--ink-3);overflow-wrap:anywhere;font-size:12px}.card .meta code{font-size:11.5px}.card .badges{flex-wrap:wrap;gap:4px 0;display:flex}.card .actions{gap:6px;margin-top:auto;padding-top:6px;display:flex}.new-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.new-grid>.full{grid-column:1/-1}.import-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 14px;padding:10px 0;display:grid}.import-row:first-of-type{border-top:0;padding-top:0}.import-row p{color:var(--ink-2);margin:0;font-size:13px}.extent-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;width:100%;display:grid}.extent-grid label{color:var(--ink-3);font-size:12px;font-family:var(--f-num);grid-template-columns:44px minmax(0,1fr);align-items:center;gap:6px;display:grid}.extent-grid input.num{width:100%!important}@media (width<=1000px){.new-grid{grid-template-columns:minmax(0,1fr)}.home .page-head h1{font-size:26px}}@media (width<=900px){.mods{scrollbar-width:none;flex-basis:100%;order:3;justify-content:flex-start;gap:22px;min-height:42px;overflow-x:auto}}@media (pointer:coarse){button,.btn.sm,details.menu>summary{min-height:36px}.icon-btn.sm{width:36px;height:36px}.tree li>.node{min-height:38px}.viewbar .toggle,.viewbar button,.viewbar select,.viewbar input.num{height:auto;min-height:32px}.seg button,.seg.sm button{padding:7px 12px}.splitter{height:20px}input[type=checkbox]{width:18px;height:18px}}.box{background:var(--surface);border-radius:var(--r-panel);box-shadow:var(--shadow);min-width:0;margin-bottom:10px}.inspector>.box,.new-grid .box,.new-grid>.full>.box{margin-bottom:0}.box>header{align-items:center;gap:8px;min-height:44px;padding:11px 12px 11px 16px;font-size:14px;font-weight:650;display:flex}.box>header .box-title{overflow-wrap:anywhere;min-width:0}.box-toggle{min-width:0;min-height:0;color:var(--ink);text-align:left;white-space:normal;background:0 0;border:0;border-radius:8px;flex:auto;justify-content:space-between;gap:10px;padding:0;font-size:14px;font-weight:650}.box-toggle:hover:not(:disabled){border:0}.box-toggle:after{content:"";border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);flex:none;width:8px;height:8px;margin-right:4px;transform:rotate(45deg)translate(-2px,-2px)}.box-toggle[aria-expanded=true]:after{transform:rotate(-135deg)translate(-2px,-2px)}@media (prefers-reduced-motion:no-preference){.box-toggle:after{transition:transform .15s}}.box-body{min-width:0;padding:0 16px 14px}.box-body>p{color:var(--ink-2);margin:4px 0 8px;font-size:13px}.box .box{box-shadow:none;border:1px solid var(--line)}.caret{color:var(--ink-3);width:10px}.row{align-items:flex-start;gap:10px;padding:4px 0;display:flex}.row-label{width:116px;color:var(--ink-2);overflow-wrap:anywhere;flex:none;padding-top:4px;font-size:12.5px;line-height:1.4}.row-body{flex-wrap:wrap;flex:1;align-items:center;gap:5px;min-width:0;display:flex}.row-body .hint{flex-basis:100%}.row-body>input.txt,.row-body>input.num,.row-body>select.sel,.long-text{min-width:0;max-width:100%}.long-text.wrap{overflow-wrap:anywhere;word-break:normal;white-space:normal}.long-text.clip{vertical-align:bottom;text-overflow:ellipsis;white-space:nowrap;display:inline-block;overflow:hidden}.row-body>.long-text{flex:100%;padding-top:3px;line-height:1.45}.long-text.src-path{font-size:11.5px}.toolbar{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}table.grid{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px;line-height:1.4}table.grid th,table.grid td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:2px 6px}table.grid th{z-index:1;background:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink-3);box-shadow:inset 0 -1px 0 var(--line-2);padding-top:6px;padding-bottom:6px;font-size:12px;font-weight:550;position:sticky;top:0}table.grid th:hover{color:var(--ink)}table.grid td.n{text-align:right;font-family:var(--f-num);font-variant-numeric:tabular-nums;font-size:12px}table.grid tbody tr:hover td{background:var(--surface-2)}table.grid tr.sel td{background:var(--sel-row)}table.grid tr.hl td{background:var(--hl-row)}table.grid input.num,table.grid input.txt,table.grid select.sel{background-color:#0000;border-color:#0000;border-radius:6px;height:24px}table.grid input.num:hover,table.grid select.sel:hover{border-color:var(--line)}table.grid input.num:focus,table.grid input.num.invalid,table.grid input.txt:focus{border-color:var(--accent);background-color:var(--surface)}table.grid input.num.invalid{border-color:var(--bad);background-color:var(--bad-soft)}.plist,table.t{border-collapse:collapse;width:100%;font-size:13px}.plist th,.plist td,table.t th,table.t td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:9px 10px}.plist th,table.t th{color:var(--ink-3);font-size:12px;font-weight:500}.plist tbody tr:hover td{background:var(--surface-2)}.plist tbody tr:last-child td{border-bottom:0}.plist a b{font-weight:650}.plist .pid{font-family:var(--f-num);color:var(--ink-3);font-size:11px}.tbl{overflow-x:auto}.stack-layout{grid-template-columns:minmax(0,1fr) minmax(260px,420px);align-items:start;gap:14px;display:grid}@media (width<=1240px){.stack-layout{grid-template-columns:minmax(0,1fr)}}.stack{flex-direction:column;gap:8px;display:flex}.stack-end{color:var(--ink-3);letter-spacing:.02em;font-size:11.5px;font-weight:550}.group{border:1px solid var(--line);background:var(--surface);border-radius:12px;overflow:hidden}.group.fault{border-left:4px solid var(--ink-2)}.group>.ghead{background:var(--surface-2);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.group.dragover,.surf.dragover{outline:2px dashed var(--accent);outline-offset:-2px}.handle{cursor:grab;color:var(--ink-3);-webkit-user-select:none;user-select:none;padding:0 3px}.surf{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;padding:3px 8px 3px 20px;display:flex}.group>.ghead+.surf{border-top:0}.surf.inactive{opacity:.55}.basement{border:1px dashed var(--line-2);background:var(--surface-2);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;display:flex}table.matrix{border-collapse:separate;border-spacing:0;font-size:12.5px}.matrix td,.matrix th{text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:3px 8px}.matrix tr>:first-child{border-left:1px solid var(--line)}.matrix tr:first-child>*{border-top:1px solid var(--line)}.matrix th{color:var(--ink-3);background:var(--surface-2);font-size:12px;font-weight:550}.matrix th.rowh{text-align:left}.matrix td.diag{background:var(--surface-3)}.issues{gap:4px;margin:0;padding:0;list-style:none;display:grid}.issues li{cursor:pointer;background:var(--surface-2);border-radius:10px;padding:5px 10px;font-size:12.5px}.issues li:hover{background:var(--surface-3);text-underline-offset:2px;text-decoration:underline}.modal-bg{background:var(--backdrop);z-index:70;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);color:var(--ink);border-radius:var(--r-card);box-shadow:var(--shadow-lift);flex-direction:column;max-width:100%;max-height:90vh;font-size:13px;display:flex}.modal>header{align-items:center;gap:8px;padding:16px 14px 10px 22px;font-size:16px;font-weight:650;display:flex}.modal-body{padding:6px 22px 14px;overflow:auto}.modal>footer{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 22px 18px;display:flex}.modal>footer button{border-radius:var(--r-ctl);min-height:34px;padding:5px 14px}.toasts{z-index:80;flex-direction:column;gap:8px;max-width:min(460px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{cursor:pointer;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lift);border:1px solid var(--line);text-align:left;white-space:normal;border-radius:14px;grid-template-columns:10px minmax(0,1fr);justify-content:stretch;align-items:baseline;gap:10px;min-height:0;padding:10px 14px;font-size:13px;font-weight:450;line-height:1.45;display:grid}.toast:hover:not(:disabled){border-color:var(--line-2)}.toast:before{content:"";background:var(--info);border-radius:50%;width:10px;height:10px;transform:translateY(1px)}.toast.ok:before{background:var(--ok)}.toast.warn:before{background:var(--warn)}.toast.error:before{background:var(--bad)}.toast.error{background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 30%, transparent)}.toast.warn{background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 30%, transparent)}.ref-panel{padding:2px 0}.ref-panel h4{margin:12px 0 8px;font-size:13.5px;font-weight:650}.ref-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.ref-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-direction:column;margin:0;display:flex;overflow:hidden}.ref-thumb{cursor:zoom-in;border-bottom:1px solid var(--line);background:#fff;justify-content:center;align-items:center;height:150px;display:flex;overflow:hidden}.ref-thumb img{object-fit:contain;max-width:100%;max-height:100%}.ref-card figcaption{flex-direction:column;gap:4px;padding:8px 10px;font-size:12px;display:flex}.ref-card .badge{background:var(--surface-3);color:var(--ink-2)}.ref-kw{font-family:var(--f-num);color:var(--ink-2);white-space:pre-wrap;word-break:break-word;max-height:4.6em;font-size:10.5px;display:block;overflow:auto}.views>.view.ref-pane{flex:.8}.ref-pane-body{background:#fff;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.ref-pane-body img{object-fit:contain;max-width:100%;max-height:100%}.modal .ref-big,.modal-body img{background:#fff;border-radius:8px;max-width:100%;height:auto}.pe-panel{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.pe-col{flex:320px;min-width:300px;max-width:520px}.pe-col.pe-wide{flex:2 460px;max-width:900px}.pe-cfg{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;margin:8px 0;padding:8px 10px}.pe-cfg-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.pe-grid{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.pe-grid label,.pe-grid .pe-f{color:var(--ink-3);flex-direction:column;gap:2px;font-size:11.5px;display:inline-flex}.pe-result{border-top:1px solid var(--line);padding:6px 0}.pe-result:first-child{border-top:none}.heat rect:hover{stroke:var(--ink)}.viewport{flex-direction:column;flex:1;min-height:160px;display:flex;position:relative;overflow:hidden}.views{flex:1;min-height:0;display:flex}.views>.view{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.views>.view:last-child{border-right:none}.viewbar{border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;align-items:center;gap:6px 8px;min-height:40px;padding:6px 10px;font-size:12.5px;display:flex}.viewbar+.viewbar{background:var(--surface-2);min-height:38px}.viewbar>b{font-family:var(--f-draw);letter-spacing:.04em;color:var(--ink);background:var(--surface-3);border-radius:6px;padding:2px 8px;font-size:13px;font-weight:700}.viewbar button{border-radius:7px;min-height:26px;padding:2px 9px;font-size:12.5px}.viewbar select,.viewbar input.num,.viewbar input.txt{height:26px;font-size:12.5px}.viewbar .toggle{border:1px solid var(--line);background:var(--surface);border-radius:999px;min-height:26px;padding:2px 9px 2px 7px;font-size:12.5px}.viewbar .toggle:hover{border-color:var(--line-2)}.viewbar .toggle:has(input:checked){background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--ink)}.viewbar .toggle input{width:13px;height:13px}.viewbar .muted{font-size:12px}.vp-head{gap:10px;padding:7px 10px 7px 14px}.vp-head+.views>.view>.viewbar:first-child{background:var(--surface-2)}.vb-lab{color:var(--ink-3);font-size:12px;font-weight:550}.tutorial-bar,.viewbar.tutorial-bar{background:var(--info-soft);border-bottom-color:color-mix(in srgb, var(--info) 22%, transparent)}.v2d-wrap{background:var(--surface);flex:1;min-height:0;position:relative;overflow:hidden}.v2d-wrap canvas,.v2d-wrap svg{position:absolute;top:0;left:0}.v2d-wrap.adding{cursor:crosshair}.v2d-wrap svg text{font-family:var(--f-draw);fill:var(--draw-ink-2);font-variant-numeric:tabular-nums;font-size:11.5px}.v2d-wrap svg .ax-frame{stroke:var(--draw-frame);stroke-width:1px;fill:none}.v2d-wrap svg .ax-tick{stroke:var(--draw-ink-2);stroke-width:1px}.v2d-wrap svg text.ax-lab{fill:var(--draw-ink);letter-spacing:.02em;font-size:12.5px;font-weight:600}.v2d-wrap svg text.sec-lab{fill:#c0392b;paint-order:stroke;stroke:#fff;stroke-width:2.4px;stroke-linejoin:round;font-weight:600}.legend{background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid var(--line);max-height:70%;box-shadow:var(--shadow);color:var(--ink);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:12px;padding:7px 10px;font-size:12px;position:absolute;top:10px;right:10px;overflow:auto}.legend div{align-items:center;gap:6px;display:flex}.legend .muted{font-size:11.5px}.legend>div+div{margin-top:2px}.legend.elements-legend{font-family:var(--f-draw);font-size:12.5px;inset:auto auto 34px 10px}.coord{background:color-mix(in srgb, var(--surface) 90%, transparent);color:var(--ink-2);font-size:11.5px;font-family:var(--f-num);font-variant-numeric:tabular-nums;pointer-events:none;border:1px solid var(--line);border-radius:8px;padding:2px 9px;position:absolute;bottom:8px;left:10px}.v3d-wrap{background:var(--scene-bg);flex:1;min-height:0;position:relative}.v3d-wrap canvas{display:block}.v3d-label{font-family:var(--f-draw);color:var(--scene-label);pointer-events:none;white-space:nowrap;text-shadow:0 0 3px var(--scene-halo), 0 0 3px var(--scene-halo);font-variant-numeric:tabular-nums;font-size:11.5px;position:absolute;transform:translate(-50%,-50%)}svg.draw{background:var(--surface-2);border:1px solid var(--line);border-radius:12px}svg.draw text{font-family:var(--f-draw);fill:var(--draw-ink)}svg.draw .d-edge{stroke:var(--draw-ink-2)}svg.draw .d-node{stroke:var(--draw-ink)}svg.draw text.d-id{fill:#fff;font-weight:700}svg.draw .d-frame,svg .d-frame{stroke:var(--draw-frame);fill:none}svg .d-text{font-family:var(--f-draw);fill:var(--draw-ink-2)}
