@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");@font-face{font-family:Inter var;font-style:normal;font-weight:100 900;font-display:swap;src:url(https://rsms.me/inter/font-files/InterVariable.woff2?v=4.1) format("woff2")}@font-face{font-family:Cascadia Code;font-style:normal;font-weight:200 700;font-display:swap;src:url(https://cdn.jsdelivr.net/npm/@fontsource-variable/cascadia-code@5.1.0/files/cascadia-code-latin-wght-normal.woff2) format("woff2-variations")}:root{--font-sans:"Inter var",Inter,ui-sans-serif,system-ui,sans-serif;--font-mono:ui-monospace,"Cascadia Code","Source Code Pro",Menlo,Consolas,"DejaVu Sans Mono",monospace;--color-nightshade-50:#f7f8f9;--color-nightshade-100:#eff1f3;--color-nightshade-200:#e6e8ec;--color-nightshade-300:#d6d9df;--color-nightshade-400:#bfc4cd;--color-nightshade-500:#979da9;--color-nightshade-600:#717989;--color-nightshade-700:#525a69;--color-nightshade-800:#3c414d;--color-nightshade-900:#282c35;--color-nightshade-950:#16181f;--color-matcha-50:#eefff1;--color-matcha-100:#dbffe0;--color-matcha-200:#bcf4ca;--color-matcha-300:#84e7a5;--color-matcha-400:#3ece82;--color-matcha-500:#0dac65;--color-matcha-600:#078a52;--color-matcha-700:#02693e;--color-matcha-800:#02492a;--color-matcha-900:#03331d;--color-matcha-950:#002414;--color-blueberry-50:#ecf6ff;--color-blueberry-100:#d7ebfe;--color-blueberry-200:#b8ddff;--color-blueberry-300:#81c2ff;--color-blueberry-400:#3ea2fd;--color-blueberry-500:#0382f7;--color-blueberry-600:#0667d9;--color-blueberry-700:#0053b5;--color-blueberry-800:#01418d;--color-blueberry-900:#002f67;--color-blueberry-950:#001e4b;--color-ube-50:#f5f3ff;--color-ube-100:#e9e4ff;--color-ube-200:#d8d0ff;--color-ube-300:#c1b0ff;--color-ube-400:#a789fe;--color-ube-500:#8b5cf6;--color-ube-600:#7934f0;--color-ube-700:#5c15cc;--color-ube-800:#43089f;--color-ube-900:#32037d;--color-ube-950:#230059;--color-dragonfruit-50:#fff5fc;--color-dragonfruit-100:#ffe5f7;--color-dragonfruit-200:#ffd1f1;--color-dragonfruit-300:#ffb8e8;--color-dragonfruit-400:#ff99df;--color-dragonfruit-500:#ff7ad5;--color-dragonfruit-600:#ff52c2;--color-dragonfruit-700:#f90ba6;--color-dragonfruit-800:#cc0687;--color-dragonfruit-900:#8b045c;--color-dragonfruit-950:#4a0232;--color-pomegranate-50:#fff1f2;--color-pomegranate-100:#ffe4e6;--color-pomegranate-200:#fecdd3;--color-pomegranate-300:#fda4af;--color-pomegranate-400:#ff7d90;--color-pomegranate-500:#e94d68;--color-pomegranate-600:#dd2c53;--color-pomegranate-700:#b21a3f;--color-pomegranate-800:#8e1230;--color-pomegranate-900:#630d21;--color-pomegranate-950:#450417;--color-tangerine-50:#fff3ed;--color-tangerine-100:#ffe9d5;--color-tangerine-200:#fdd4b7;--color-tangerine-300:#ffbe90;--color-tangerine-400:#ffa775;--color-tangerine-500:#f58c50;--color-tangerine-600:#e56e2c;--color-tangerine-700:#c34e1b;--color-tangerine-800:#9f3e15;--color-tangerine-900:#752b12;--color-tangerine-950:#431407;--color-lemon-50:#fefae8;--color-lemon-100:#fff8d2;--color-lemon-200:#fef0a4;--color-lemon-300:#fadf7c;--color-lemon-400:#f8cf65;--color-lemon-500:#f6c23d;--color-lemon-600:#e6ad1a;--color-lemon-700:#d49110;--color-lemon-800:#b37601;--color-lemon-900:#8a570b;--color-lemon-950:#5b3305;--color-slushie-50:#f5fdff;--color-slushie-100:#e0f8ff;--color-slushie-200:#c7f3ff;--color-slushie-300:#a3ebff;--color-slushie-400:#7ae3ff;--color-slushie-500:#3bd3fd;--color-slushie-600:#2abeea;--color-slushie-700:#02a8d4;--color-slushie-800:#0089ad;--color-slushie-900:#005870;--color-slushie-950:#00303d;--color-oat-50:#fffcfa;--color-oat-100:#f9f8f6;--color-oat-200:#f3f2ed;--color-oat-300:#eee9df;--color-oat-400:#dad4c8;--color-oat-500:#c0bbaf;--color-oat-600:#9f9b93;--color-oat-700:#85817a;--color-oat-800:#55534e;--color-oat-900:#363430;--color-oat-950:#1b1a18;--color-alpha-black-50:#16181f0d;--color-alpha-black-100:#16181f1a;--color-alpha-black-200:#16181f26;--color-alpha-black-300:#16181f33;--color-alpha-black-400:#16181f4d;--color-alpha-black-500:#16181f66;--color-alpha-black-600:#16181f80;--color-alpha-black-700:#16181f9e;--color-alpha-black-800:#16181fb3;--color-white:#fff;--color-black:#000;--color-content-primary:var(--color-black);--color-content-secondary:var(--color-nightshade-800);--color-content-tertiary:var(--color-nightshade-700);--color-content-placeholder:var(--color-nightshade-500);--color-content-disabled:var(--color-alpha-black-500);--color-content-inverse:var(--color-white);--color-content-action:var(--color-blueberry-600);--color-content-link:var(--color-blueberry-600);--color-content-selected:var(--color-blueberry-700);--color-content-success:var(--color-matcha-700);--color-content-warning:var(--color-tangerine-700);--color-content-danger:var(--color-pomegranate-600);--color-bg-primary:var(--color-white);--color-bg-secondary:var(--color-nightshade-50);--color-bg-sunken:var(--color-nightshade-50);--color-bg-tertiary:var(--color-nightshade-200);--color-bg-emphasis:var(--color-alpha-black-50);--color-bg-emphasis-hover:var(--color-alpha-black-100);--color-bg-selected:var(--color-blueberry-100);--color-bg-selected-hover:var(--color-blueberry-200);--color-bg-action-inverse:var(--color-blueberry-500);--color-bg-action-inverse-hover:var(--color-blueberry-600);--color-bg-success:var(--color-matcha-50);--color-bg-success-inverse:var(--color-matcha-600);--color-bg-warning:var(--color-tangerine-50);--color-bg-warning-inverse:var(--color-tangerine-600);--color-bg-danger:var(--color-pomegranate-50);--color-bg-danger-inverse:var(--color-pomegranate-600);--color-border-primary:var(--color-nightshade-300);--color-border-secondary:var(--color-nightshade-200);--color-border-tertiary:var(--color-nightshade-100);--color-border-strong:var(--color-alpha-black-600);--color-border-selected:var(--color-blueberry-600);--color-border-action:var(--color-blueberry-400);--color-border-danger:var(--color-pomegranate-700);--color-border-success:var(--color-matcha-700);--color-border-warning:var(--color-tangerine-700);--color-icon-action:var(--color-blueberry-500);--color-icon-success:var(--color-matcha-500);--color-icon-danger:var(--color-pomegranate-500);--color-icon-warning:var(--color-tangerine-500);--color-outline-focus-ring:var(--color-blueberry-200);--color-chart-0:var(--color-ube-500);--color-chart-1:var(--color-blueberry-500);--color-chart-2:var(--color-slushie-500);--color-chart-3:var(--color-matcha-500);--color-chart-4:var(--color-lemon-500);--color-chart-5:var(--color-tangerine-500);--color-chart-6:var(--color-dragonfruit-500);--color-chart-7:var(--color-pomegranate-500);--radius-1:2px;--radius-2:4px;--radius-3:6px;--radius-4:8px;--radius-full:9999px;--shadow-1:0px 5px 2px 0px #1c202403,0px 3px 2px 0px #1c202408,0px 1px 1px 0px #1c20240d,0px 0px 1px 0px #1c20240f;--shadow-2:0px 16px 7px 0px #1c202403,0px 9px 6px 0px #1c202408,0px 4px 4px 0px #1c20240d,0px 1px 2px 0px #1c20240f;--shadow-3:0px 29px 12px 0px #1c202403,0px 16px 10px 0px #1c202408,0px 7px 7px 0px #1c20240d,0px 2px 4px 0px #1c20240f;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--btn-height:32px;--chip-height:28px;--row-height:34px;--header-height:36px;--panel-width:360px;--text-cell:14px;--text-ui:12px;--text-header:14px}body{background:var(--color-bg-secondary);padding:24px}.spec{max-width:1200px;margin:0 auto}.spec-title{font-size:18px;font-weight:700;margin:0 0 2px}.spec-sub{font-size:13px;color:var(--color-content-tertiary);margin:0 0 20px}.spec-section{margin:24px 0}.spec-h{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-content-tertiary);margin:0 0 10px}.spec-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}.spec-note{font-size:12px;color:var(--color-content-tertiary)}.spec-card{background:var(--color-bg-primary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-3);padding:16px}.spec-label{font-size:11px;color:var(--color-content-tertiary);font-family:var(--font-mono)}.spec-grid{display:grid;grid-gap:12px;gap:12px}*{box-sizing:border-box}body{margin:0;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11"}.btn{display:inline-flex;align-items:center;gap:6px;height:var(--btn-height);padding:0 10px;border-radius:var(--radius-2);font-size:14px;font-weight:500;font-family:var(--font-sans);border:1px solid transparent;cursor:pointer;background:transparent;color:var(--color-content-primary);white-space:nowrap}.btn-primary{background:var(--color-bg-action-inverse);color:var(--color-content-inverse)}.btn-primary:hover{background:var(--color-bg-action-inverse-hover)}.btn-secondary{background:var(--color-bg-primary);border-color:var(--color-border-primary)}.btn-secondary:hover{background:var(--color-bg-secondary)}.btn-ghost{background:transparent}.btn-sm{height:var(--chip-height);font-size:12px;padding:0 8px}.btn-danger-text{color:var(--color-content-danger)}.btn-split-caret{border-left:1px solid #ffffff40;margin-left:4px;padding-left:6px}.btn:disabled{color:var(--color-content-disabled);background:var(--color-bg-emphasis);cursor:default}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-2);border:none;background:transparent;color:var(--color-content-tertiary);cursor:pointer}.icon-btn:hover{background:var(--color-bg-emphasis)}.toolbar{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px;background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-secondary)}.toolbar .spacer{flex:1 1}.chip{display:inline-flex;align-items:center;gap:6px;height:var(--chip-height);padding:0 8px;border-radius:var(--radius-2);font-size:12px;font-weight:500;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);color:var(--color-content-primary);cursor:pointer;white-space:nowrap}.chip:hover{background:var(--color-bg-secondary)}.chip.borderless{border-color:transparent}.chip.borderless:hover{background:var(--color-bg-emphasis)}.chip .count{color:var(--color-content-tertiary)}.input,.select,.textarea{font-family:var(--font-sans);font-size:14px;color:var(--color-content-primary);background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-2);padding:0 10px;height:32px;width:100%}.textarea{height:auto;padding:8px 10px;line-height:1.5;resize:vertical}.input::placeholder,.textarea::placeholder{color:var(--color-content-placeholder)}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--color-outline-focus-ring);border-color:var(--color-border-selected)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23525a69' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px}.search,.select{align-items:center}.search{display:flex;gap:6px;height:32px;padding:0 10px;border:1px solid var(--color-border-primary);border-radius:var(--radius-2);color:var(--color-content-placeholder);background:var(--color-bg-primary)}.search input{border:none;outline:none;font-size:14px;flex:1 1;background:transparent;font-family:var(--font-sans)}.toggle{position:relative;width:32px;height:18px;border-radius:var(--radius-full);background:var(--color-nightshade-300);transition:background .15s;cursor:pointer;border:none;flex:none}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:var(--shadow-1)}.toggle.on{background:var(--color-bg-action-inverse)}.toggle.on:after{left:16px}.checkbox{width:16px;height:16px;border-radius:3px;border:1px solid var(--color-border-primary);display:inline-flex;align-items:center;justify-content:center;background:var(--color-bg-primary);flex:none}.checkbox.checked{background:var(--color-bg-action-inverse);border-color:var(--color-bg-action-inverse)}.checkbox.checked:after{content:"✓";color:#fff;font-size:11px;font-weight:700}.radio{width:16px;height:16px;border-radius:50%;border:1px solid var(--color-border-primary);background:var(--color-bg-primary);flex:none}.radio.checked{border:5px solid var(--color-bg-action-inverse)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}.dot-success{background:var(--color-content-success)}.dot-warning{background:var(--color-icon-warning)}.dot-danger,.err-square{background:var(--color-content-danger)}.err-square{display:inline-block;width:8px;height:8px;border-radius:2px;flex:none}.badge{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:var(--radius-2);font-size:11px;font-weight:500;white-space:nowrap}.badge-upgrade{background:var(--color-bg-warning);color:var(--color-content-warning)}.badge-beta{background:var(--color-bg-tertiary);color:var(--color-content-secondary)}.badge-new{background:var(--color-bg-success);color:var(--color-content-success)}.badge-cost{background:var(--color-bg-secondary);color:var(--color-content-tertiary);border:1px solid var(--color-border-secondary)}.badge-count{background:var(--color-bg-selected);color:var(--color-content-selected)}.ref-chip{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 6px;background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-2);font-size:12px;font-weight:500;vertical-align:middle}.ref-chip .x{cursor:pointer}.ref-chip .type,.ref-chip .x{color:var(--color-content-tertiary);font-size:11px}.mini-toggle{width:22px;height:12px;border-radius:var(--radius-full);background:var(--color-bg-action-inverse);position:relative;flex:none}.mini-toggle:after{content:"";position:absolute;top:2px;right:2px;width:8px;height:8px;border-radius:50%;background:#fff}.entity-chip{gap:6px;font-size:14px}.entity-chip,.entity-chip .logo{display:inline-flex;align-items:center}.entity-chip .logo{width:16px;height:16px;border-radius:3px;background:var(--color-bg-tertiary);justify-content:center;font-size:9px;font-weight:700;color:var(--color-content-secondary);flex:none}.action-chip{display:inline-flex;align-items:center;gap:6px;font-size:14px}.action-chip .glyph{border-radius:3px;font-size:9px;font-weight:700;background:var(--color-bg-warning);color:var(--color-content-warning)}.action-chip .glyph,.ticon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex:none}.ticon{font-size:11px;font-weight:600;color:var(--color-content-tertiary);font-family:var(--font-sans)}.ticon.fx{font-style:italic;font-family:Georgia,serif}.menu{min-width:220px;border-radius:var(--radius-3)}.menu-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-2);font-size:13px;color:var(--color-content-primary);cursor:pointer}.menu-item:hover{background:var(--color-bg-emphasis)}.menu-item .mi{width:16px;text-align:center;flex:none}.menu-item .mi,.menu-item .sub{color:var(--color-content-tertiary)}.menu-item .sub{margin-left:auto}.menu-item.danger,.menu-item.danger .mi{color:var(--color-content-danger)}.menu-item.is-disabled{color:var(--color-content-disabled);pointer-events:none}.menu-divider{height:1px;background:var(--color-border-secondary);margin:4px 0}.menu-header{padding:6px 8px;font-size:12px;color:var(--color-content-tertiary)}.popover{border-radius:var(--radius-3);box-shadow:var(--shadow-2);padding:12px}.modal-backdrop-demo{background:var(--color-alpha-black-300);padding:40px;border-radius:var(--radius-3)}.modal{background:var(--color-bg-primary);border-radius:var(--radius-4);box-shadow:var(--shadow-3);width:460px;max-width:100%}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px}.modal-title{font-size:15px;font-weight:600}.modal-body{padding:8px 16px 16px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--color-border-secondary)}.grid-wrap{border:1px solid var(--color-border-secondary);border-radius:var(--radius-3);overflow:hidden;background:var(--color-bg-primary)}.grid{display:grid;font-size:var(--text-cell)}.g-head{display:flex;align-items:center;gap:6px;height:var(--header-height);padding:0 8px;background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-primary);border-right:1px solid var(--color-border-secondary);font-weight:500;font-size:var(--text-header)}.g-head .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-head .play{margin-left:auto}.g-head.selected{background:var(--color-bg-action-inverse);color:#fff}.g-head.selected .play-btn,.g-head.selected .ticon{color:#fff}.g-status{height:24px;font-size:11px;color:var(--color-content-tertiary)}.g-cell,.g-status{display:flex;align-items:center;padding:0 8px;gap:6px;border-bottom:1px solid var(--color-border-secondary);border-right:1px solid var(--color-border-secondary);background:var(--color-bg-primary)}.g-cell{height:35px;overflow:hidden;white-space:nowrap}.g-cell .txt{overflow:hidden;text-overflow:ellipsis}.g-cell.skip{color:var(--color-content-tertiary)}.g-cell.selected{outline:2px solid var(--color-border-selected);outline-offset:-2px;position:relative}.g-cell.selected:after{content:"";position:absolute;right:-3px;bottom:-3px;width:6px;height:6px;background:var(--color-border-selected);border:1px solid #fff}.g-cell.col-tint{background:var(--color-blueberry-50)}.g-cell .link,.g-cell a{color:var(--color-content-tertiary);text-decoration:underline}.g-num{display:flex;height:35px;font-size:12px;color:var(--color-content-tertiary);border-bottom:1px solid var(--color-border-secondary);border-right:1px solid var(--color-border-secondary)}.g-num,.play-btn{align-items:center;justify-content:center}.play-btn{display:inline-flex;width:20px;height:20px;border-radius:var(--radius-2);border:1px solid var(--color-border-primary);background:var(--color-bg-primary);color:var(--color-content-secondary);font-size:9px;cursor:pointer;flex:none}.play-btn:hover{background:var(--color-bg-secondary)}.progress-track{display:inline-flex;width:64px;height:7px;border-radius:var(--radius-full);overflow:hidden;background:var(--color-bg-tertiary)}.progress-track .seg-err{background:var(--color-pomegranate-600);height:100%}.progress-track .seg-ok{background:var(--color-matcha-600);height:100%}.tab-strip{display:flex;height:44px;background:var(--color-bg-primary);border-top:1px solid var(--color-border-secondary);padding:0 8px;gap:2px}.tab,.tab-strip{align-items:center}.tab{display:inline-flex;gap:6px;height:100%;padding:0 12px;font-size:13px;font-weight:500;color:var(--color-content-tertiary);cursor:pointer;border-top:2px solid transparent}.tab.active,.tab:hover{background:var(--color-bg-secondary)}.tab.active{color:var(--color-content-selected);border-top-color:var(--color-border-selected)}.tab .caret{font-size:10px;color:var(--color-content-tertiary)}.panel{width:var(--panel-width);background:var(--color-bg-primary);border-left:1px solid var(--color-border-secondary);box-shadow:var(--shadow-2);display:flex;flex-direction:column;border-radius:var(--radius-3);overflow:hidden}.panel-head{padding:12px;border-bottom:1px solid var(--color-border-secondary)}.panel-head,.panel-title{display:flex;align-items:center;gap:8px}.panel-title{font-size:14px;font-weight:600;flex:1 1}.panel-tabs{display:flex;margin:12px 12px 0;border:1px solid var(--color-border-secondary);border-radius:var(--radius-2);overflow:hidden}.panel-tab{flex:1 1;text-align:center;padding:6px 0;font-size:13px;font-weight:500;color:var(--color-content-tertiary);background:var(--color-bg-secondary);cursor:pointer}.panel-tab.active{background:var(--color-bg-primary);color:var(--color-content-primary)}.panel-body{flex-direction:column;gap:12px;overflow-y:auto}.panel-body,.panel-foot{padding:12px;display:flex}.panel-foot{border-top:1px solid var(--color-border-secondary);justify-content:flex-end}.field-label{font-size:12px;font-weight:500;color:var(--color-content-secondary);margin-bottom:4px;gap:4px}.field-label,.section-head{display:flex;align-items:center}.section-head{justify-content:space-between;font-size:13px;font-weight:600}.kv-row{display:flex;align-items:flex-start;gap:6px;font-size:13px;padding:4px 0}.kv-row .k{font-weight:600}.kv-row .v{color:var(--color-content-secondary)}.prompt-editor{border:1px solid var(--color-border-primary);border-radius:var(--radius-2)}.prompt-body{padding:10px;font-size:13px;line-height:1.9}.prompt-foot{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-top:1px solid var(--color-border-secondary);font-size:12px;color:var(--color-content-placeholder)}.kbd{display:inline-block;padding:0 4px;border:solid var(--color-border-primary);border-width:1px 1px 2px;border-radius:3px;font-size:11px}.code,.kbd{font-family:var(--font-mono);background:var(--color-bg-secondary)}.code{font-size:12px;color:var(--color-content-success);border:1px solid var(--color-border-secondary);border-radius:var(--radius-2);padding:6px 8px}.canvas{background-color:var(--color-bg-secondary);background-image:radial-gradient(var(--color-nightshade-300) 1px,transparent 1px);background-size:16px 16px;border-radius:var(--radius-3);position:relative}.node{position:absolute;width:200px;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-3);box-shadow:var(--shadow-1)}.node-head{gap:8px;padding:10px}.node-head,.node-icon{display:flex;align-items:center}.node-icon{width:24px;height:24px;border-radius:var(--radius-2);justify-content:center;font-size:12px;flex:none}.node-title{font-size:13px;font-weight:600;line-height:1.2}.node-sub{font-size:11px;color:var(--color-content-tertiary)}.node-foot{display:flex;align-items:center;gap:6px;padding:6px 10px;border-top:1px solid var(--color-border-secondary);background:var(--color-bg-secondary);font-size:11px;color:var(--color-content-secondary);white-space:nowrap;border-radius:0 0 var(--radius-3) var(--radius-3)}.node-foot .badge{height:16px;padding:0 4px;font-size:10px}.edge{position:absolute;background:var(--color-nightshade-400)}.edge.h{height:1.5px}.edge.v{width:1.5px}.crumbs{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500}.crumbs .sep{color:var(--color-content-placeholder)}.crumb{display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border-radius:var(--radius-2);cursor:pointer}.crumb:hover{background:var(--color-bg-emphasis)}.crumb .caret{font-size:9px;color:var(--color-content-tertiary)}.file-table{width:100%;border-collapse:collapse;font-size:13px}.file-table th{text-align:left;font-weight:400;color:var(--color-content-tertiary);font-size:12px;padding:8px;border-bottom:1px solid var(--color-border-secondary)}.file-table td{padding:10px 8px;border-bottom:1px solid var(--color-border-tertiary)}.file-table tr:hover td{background:var(--color-bg-secondary)}.file-name{display:flex;align-items:center;gap:8px;font-weight:500}.star{color:var(--color-content-placeholder)}.star.on{color:var(--color-lemon-600)}.avatar{width:18px;height:18px;border-radius:50%;background:var(--color-dragonfruit-800);color:#fff;font-size:9px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}body,html{margin:0;padding:0;height:100%;overflow:hidden}a{color:var(--color-content-link);text-decoration:none}a:hover{color:var(--color-blueberry-700)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-nightshade-300);border-radius:5px;border:2px solid #fff}::-webkit-scrollbar-corner{background:transparent}@keyframes spin{to{transform:rotate(1turn)}}button,input,select,textarea{font-family:inherit;color:inherit}:root{--app-zoom:1.1}body{font-family:var(--font-sans);font-size:14px;zoom:var(--app-zoom)}.shell,body{background:var(--color-bg-primary);color:var(--color-content-primary)}.shell{height:calc(100vh / var(--app-zoom));width:calc(100vw / var(--app-zoom));display:flex;flex-direction:column;overflow:hidden}.shell-row{flex:1 1;display:flex;min-height:0}.crumbbar{height:44px;flex:0 0 44px;background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-secondary);display:flex;align-items:center;padding:0 12px;gap:2px}.crumbbar .crumb{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-content-secondary);cursor:pointer;padding:4px 6px;border-radius:4px}.crumbbar .crumb:hover{background:var(--color-bg-emphasis);color:var(--color-content-primary)}.crumbbar .crumb.strong{font-weight:500;color:var(--color-content-primary)}.crumb-caret{border:none;background:transparent;color:var(--color-content-tertiary);cursor:pointer;font-size:9px;padding:0 2px}.crumb-sep{color:var(--color-content-placeholder);font-size:13px}.avatar-round{width:24px;height:24px;border-radius:50%;background:var(--color-dragonfruit-800);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}.rail{width:40px;flex:0 0 40px;background:var(--color-bg-primary);border-right:1px solid var(--color-border-secondary);padding:8px 0}.rail,.rail .rail-foot{display:flex;flex-direction:column;align-items:center;gap:2px}.rail .rail-foot{margin-top:auto}.rail-logo{font-size:14px;font-weight:700;margin-bottom:6px}.rail-mark{width:20px;height:20px;border-radius:5px;background:var(--color-bg-tertiary);color:var(--color-content-tertiary);font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;margin-bottom:2px}.sidenav{width:208px;flex:0 0 208px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border-secondary);display:flex;flex-direction:column;padding:12px 8px}.sidenav .nav-item{display:flex;align-items:center;gap:8px;height:30px;padding:0 8px;border-radius:4px;color:var(--color-content-secondary);font-size:13px;font-weight:500;cursor:pointer;border:none;background:transparent;width:100%;text-align:left}.sidenav .nav-item.on,.sidenav .nav-item:hover{background:var(--color-bg-emphasis)}.sidenav .nav-item.on{color:var(--color-content-primary)}.sidenav .nav-item.dim,.sidenav .nav-section{color:var(--color-content-tertiary)}.sidenav .nav-section{font-size:12px;padding:14px 8px 4px}.gridwrap{flex:1 1;min-height:0;overflow:auto;position:relative;background:var(--color-bg-primary)}.ghead-row{top:0;z-index:30;height:36px;border-bottom:1px solid var(--color-border-primary)}.ghead-row,.ghead-row .gutter,.gstatus-row .gutter{display:flex;position:-webkit-sticky;position:sticky;background:var(--color-bg-primary)}.ghead-row .gutter,.gstatus-row .gutter{flex:0 0 68px;width:68px;left:0;z-index:31}.ghead-row .gutter,.gstatus-row .gutter,.hcell{border-right:1px solid var(--color-border-secondary);align-items:center;padding:0 8px}.hcell{display:flex;gap:6px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:var(--color-bg-primary);color:var(--color-content-primary)}.hcell.sel{background:var(--color-blueberry-500);color:#fff}.hcell .hname{flex:1 1;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hcell .htile{width:16px;height:16px;flex:0 0 16px;border-radius:3px;background:var(--color-bg-tertiary);display:inline-flex;align-items:center;justify-content:center;font-size:7px;font-weight:700;color:var(--color-content-secondary)}.hcell.sel .htile{background:hsla(0,0%,100%,.25);color:#fff}.hcell .hty{font-size:11px;font-weight:600;opacity:.7}.hcell .hcaret{display:inline-flex;justify-content:center;font-size:10px;opacity:.65;padding:2px;background:none;color:inherit}.addcol,.hcell .hcaret{align-items:center;cursor:pointer;border:none}.addcol{flex:0 0 150px;width:150px;display:flex;gap:6px;padding:0 10px;color:var(--color-content-tertiary);font-size:12px;font-weight:500;background:var(--color-bg-primary)}.addcol:hover{color:var(--color-content-primary)}.gstatus-row{display:flex;position:-webkit-sticky;position:sticky;top:36px;z-index:28;height:24px;background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-secondary)}.gstatus-row .gutter{z-index:29}.scell{align-items:center;gap:6px;padding:0 8px;border-right:1px solid var(--color-border-secondary);font-size:11px;color:var(--color-content-tertiary);white-space:nowrap}.grow,.scell{display:flex;background:var(--color-bg-primary)}.grow{height:35px;border-bottom:1px solid var(--color-border-tertiary)}.grow .rgutter{flex:0 0 68px;width:68px;position:-webkit-sticky;position:sticky;left:0;z-index:3;display:flex;align-items:center;gap:5px;padding:0 6px;border-right:1px solid var(--color-border-secondary);background:var(--color-bg-primary)}.grow:hover .rgutter{background:var(--color-bg-secondary)}.gcell{display:flex;align-items:center;gap:6px;padding:0 8px;height:100%;border-right:1px solid var(--color-border-secondary);overflow:hidden;white-space:nowrap;position:relative;background:transparent;font-size:14px}.grow:hover .gcell{background:var(--color-bg-secondary)}.gcell.pin{position:-webkit-sticky;position:sticky;z-index:2;background:var(--color-bg-primary)}.grow:hover .gcell.pin{background:var(--color-bg-secondary)}.gcell.colsel{background:var(--color-blueberry-50)}.gcell.sel{box-shadow:inset 0 0 0 2px var(--color-blueberry-600)}.gcell.sel:after{content:"";position:absolute;right:-1px;bottom:-1px;width:6px;height:6px;background:var(--color-blueberry-600);border:1px solid #fff}.gcell .celledit{position:absolute;inset:0;border:none;outline:2px solid var(--color-blueberry-600);outline-offset:-2px;background:var(--color-bg-primary);color:var(--color-content-primary);padding:0 8px;font-size:14px;font-family:var(--font-sans)}.dot8{width:8px;height:8px;flex:0 0 8px;border-radius:50%}.spinner{width:10px;height:10px;flex:0 0 10px;border:2px solid var(--color-border-secondary);border-top-color:var(--color-blueberry-500);border-radius:50%;animation:spin .7s linear infinite}.spinner.lg{width:14px;height:14px}.cellplay{position:absolute;right:4px;top:50%;margin-top:-10px;color:var(--color-content-action);background:var(--color-bg-primary)}.gutterbtn{border:none;background:none;padding:0;cursor:pointer;font-size:11px;color:var(--color-content-tertiary)}.gutterbtn:hover{color:var(--color-content-primary)}.col-resizer{position:absolute;right:-4px;top:0;width:8px;height:100%;cursor:col-resize;z-index:3}.col-resizer:hover{background:var(--color-blueberry-200)}.grow.rowsel .gcell,.grow.rowsel .rgutter{background:var(--color-blueberry-50)}@keyframes cell-landed{0%{background-color:var(--color-matcha-100,#dcf3e3)}to{background-color:transparent}}.gcell.landed{animation:cell-landed .9s ease-out}.gcell.inrange{background:var(--color-blueberry-50)}.gcell{-webkit-user-select:none;-moz-user-select:none;user-select:none}.cell-expand{position:fixed;z-index:75;background:var(--color-bg-primary);border:2px solid var(--color-blueberry-500);border-radius:6px;box-shadow:var(--shadow-3);padding:6px 8px 8px;animation:menu-in .1s ease-out}.cell-expand-text{width:100%;min-height:96px;max-height:220px;overflow-y:auto;border:none;outline:none;resize:none;background:transparent;font-family:var(--font-sans);font-size:13px;line-height:1.55;color:var(--color-content-primary)}.cell-expand-enlarge{position:absolute;right:4px;bottom:4px;width:22px;height:22px;border:1px solid var(--color-border-secondary);border-radius:4px;background:var(--color-bg-primary);color:var(--color-content-secondary);font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.cell-expand-enlarge:hover{background:var(--color-bg-emphasis)}@keyframes skel-pulse{0%,to{opacity:.45}50%{opacity:.9}}.skel-bar{display:inline-block;height:10px;border-radius:4px;background:var(--color-nightshade-100);animation:skel-pulse 1.2s ease-in-out infinite}.bulkbar{position:absolute;left:50%;bottom:52px;transform:translateX(-50%);gap:10px;z-index:60;border:1px solid var(--color-border-secondary);border-radius:10px;box-shadow:var(--shadow-3);padding:8px 14px;animation:toast-in .14s ease-out}.bulkbar,.tabstrip{display:flex;align-items:center;background:var(--color-bg-primary)}.tabstrip{height:36px;flex:0 0 36px;border-top:1px solid var(--color-border-secondary);padding:0 8px 0 0;gap:2px}.tabstrip .tab{display:flex;align-items:center;gap:6px;height:100%;padding:0 12px;cursor:pointer;background:transparent;border:none;border-top:2px solid transparent;color:var(--color-content-tertiary);font-size:13px;font-weight:500;white-space:nowrap}.tabstrip .tab.on{border-top-color:var(--color-border-selected);color:var(--color-content-selected);background:var(--color-bg-secondary)}.rpanel{width:360px;flex:0 0 360px;background:var(--color-bg-primary);border-left:1px solid var(--color-border-secondary);display:flex;flex-direction:column;min-height:0;position:relative}.rpanel-x{position:absolute;top:11px;right:10px;z-index:3;font-size:14px;line-height:1}.rpanel-head{height:44px;flex:0 0 44px;display:flex;align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid var(--color-border-secondary)}.rpanel-head .t{font-size:13.5px;font-weight:600;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xbtn{border:none;background:transparent;color:var(--color-content-tertiary);font-size:13px;cursor:pointer;border-radius:4px;padding:2px 6px}.xbtn:hover{background:var(--color-bg-emphasis);color:var(--color-content-primary)}.rpanel-body{flex:1 1;overflow-y:auto;min-height:0}.rpanel-foot{flex:0 0 auto;border-top:1px solid var(--color-border-secondary);padding:10px 12px;display:flex;gap:8px}.ptab{flex:1 1;height:36px;background:transparent;cursor:pointer;font-size:13px;font-weight:500;color:var(--color-content-tertiary);border:none;border-bottom:2px solid transparent}.ptab.on{color:var(--color-content-selected);border-bottom-color:var(--color-border-selected)}.sechead{padding:8px 0 6px;border-top:1px solid var(--color-border-secondary);margin-top:14px;font-weight:600}.sechead,.selbtn{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:13px}.selbtn{width:100%;height:30px;margin-top:4px;padding:0 8px;border:1px solid var(--color-border-primary);border-radius:4px;background:var(--color-bg-primary);color:var(--color-content-primary)}.selbtn:hover{border-color:var(--color-nightshade-400)}.kvrow{padding:8px 12px;border-bottom:1px solid var(--color-border-tertiary)}.kvrow .krow{display:flex;align-items:center;gap:6px}.kvrow .kty{width:16px;font-size:10px;font-weight:600;color:var(--color-content-tertiary)}.kvrow .klabel{font-size:12px;font-weight:500;color:var(--color-content-secondary)}.kvrow .kval-short{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kvrow .kval-big,.kvrow .kval-short{font-size:13px;color:var(--color-content-primary)}.kvrow .kval-big{margin-top:6px;padding-left:22px;white-space:pre-wrap;line-height:1.5;word-break:break-word}.kvrow .kval-big.mono{font-family:var(--font-mono);font-size:11.5px}.tk{width:28px;height:16px;flex:0 0 28px;position:relative;cursor:pointer;border-radius:999px;border:1px solid var(--color-border-primary);background:var(--color-bg-tertiary)}.tk.on{border-color:var(--color-blueberry-500);background:var(--color-blueberry-500)}.tk .kn{position:absolute;top:1.5px;left:2px;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:var(--shadow-1)}.tk.on .kn{left:auto;right:2px}.ckbox{width:14px;height:14px;flex:0 0 14px;border:1px solid var(--color-border-primary);border-radius:3px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:#fff;padding:0}.ckbox.on{background:var(--color-blueberry-500);border-color:var(--color-blueberry-500)}.ckbox.on:after{content:"✓";font-size:10px;color:#fff}.rdo{width:14px;height:14px;flex:0 0 14px;border-radius:50%;border:1px solid var(--color-border-primary);display:inline-flex;align-items:center;justify-content:center;background:#fff;padding:0;cursor:pointer}.rdo.on{border-color:var(--color-blueberry-500)}.rdo.on:after{content:"";width:7px;height:7px;border-radius:50%;background:var(--color-blueberry-500)}.overlay{position:fixed;inset:0;z-index:900}.menu{position:absolute;background:var(--color-bg-primary);border:1px solid var(--color-border-secondary);border-radius:6px;box-shadow:var(--shadow-2);padding:4px;max-height:70vh;overflow-y:auto}.menu .mi{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;border-radius:4px;font-size:13px;cursor:pointer;color:var(--color-content-primary);width:100%;border:none;background:none;text-align:left;white-space:nowrap}.menu .mi:hover{background:var(--color-bg-emphasis)}html[data-v2="1"] .menu{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}html[data-v2="1"] .menu .mi{font-size:calc(13px / var(--app-zoom))}html[data-v2="1"] .menu .mhdr{font-size:calc(11px / var(--app-zoom))}.menu .mi.danger{color:var(--color-content-danger)}.menu .mi.dim{color:var(--color-content-tertiary)}.menu .mi .mtxt{flex:1 1;overflow:hidden;text-overflow:ellipsis}.menu .mdiv{height:1px;background:var(--color-border-secondary);margin:4px 0}.menu .mhdr{padding:8px 10px 3px;font-size:11px;font-weight:600;color:var(--color-content-tertiary);text-transform:uppercase;letter-spacing:.03em}.modal-veil{position:fixed;inset:0;z-index:950;background:rgba(22,24,31,.32);display:flex;align-items:flex-start;justify-content:center;padding-top:14vh}.smodal{background:var(--color-bg-primary);border:1px solid var(--color-border-secondary);border-radius:10px;box-shadow:var(--shadow-3);overflow:hidden}.smodal-head{display:flex;align-items:center;height:44px;padding:0 14px;border-bottom:1px solid var(--color-border-secondary);font-size:14px;font-weight:600}.smodal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 14px;border-top:1px solid var(--color-border-secondary)}.home-main{flex:1 1;min-width:0;overflow-y:auto;background:var(--color-bg-primary)}.hero-ask{display:flex;align-items:center;gap:10px;height:48px;border:1px solid var(--color-border-primary);border-radius:8px;background:#fff;box-shadow:var(--shadow-1);margin-top:14px;padding:0 8px 0 14px}.qcard{flex:1 1;border:1px solid var(--color-border-secondary);border-radius:6px;background:#fff;padding:12px;cursor:pointer}.qcard:hover{border-color:var(--color-border-primary);box-shadow:var(--shadow-1)}.htab{height:30px;padding:0 12px;border:none;border-radius:6px;background:transparent;color:var(--color-content-tertiary);font-size:13px;font-weight:500;cursor:pointer}.htab.on{background:var(--color-bg-emphasis);color:var(--color-content-primary)}.frow{display:flex;align-items:center;height:40px;border-bottom:1px solid var(--color-border-tertiary);cursor:pointer}.frow:hover{background:var(--color-bg-secondary)}.err-note{border:1px solid var(--color-pomegranate-300);border-radius:6px;background:var(--color-bg-danger);color:var(--color-content-danger)}.err-note,.warn-note{padding:8px 10px;font-size:12.5px}.warn-note{border:1px solid var(--color-lemon-300);border-radius:6px;background:var(--color-bg-warning);color:var(--color-content-warning)}.est-block{border:1px solid var(--color-border-secondary);border-radius:6px;background:var(--color-bg-secondary);padding:10px 12px;font-size:13px;color:var(--color-content-secondary)}.est-block b{color:var(--color-content-primary)}.center-page{display:flex;align-items:center;justify-content:center;height:calc(100vh / var(--app-zoom));background:var(--color-bg-secondary)}.progbar-lg{width:130px;height:7px;border-radius:4px;background:var(--color-nightshade-100);display:inline-flex;overflow:hidden}.progbar-lg .ok{background:var(--color-matcha-500);height:100%}.progbar-lg .err{background:var(--color-pomegranate-500);height:100%}.label{font-size:12px;font-weight:500;color:var(--color-content-tertiary);text-transform:none;letter-spacing:0}.tile{background:var(--color-bg-tertiary);border:none;border-radius:3px;color:var(--color-content-secondary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.mono-badge,.tile{font-family:var(--font-sans)}.mono-badge{font-size:11px;font-weight:500;letter-spacing:0;border:1px solid var(--color-border-secondary);border-radius:9999px;color:var(--color-content-tertiary);background:var(--color-bg-secondary);padding:1px 8px;white-space:nowrap}.mono-badge.warn{color:var(--color-content-warning);border-color:var(--color-lemon-300);background:var(--color-bg-warning)}.mono-badge.accent{color:var(--color-content-selected);border-color:var(--color-blueberry-200);background:var(--color-blueberry-50)}.btn-ghost{height:28px;padding:0 10px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-border-primary);border-radius:4px;background:var(--color-bg-primary);color:var(--color-content-primary);font-size:12.5px;font-weight:500;letter-spacing:0;cursor:pointer;white-space:nowrap;flex-shrink:0}.btn-ghost:hover{background:var(--color-bg-emphasis)}.btn-ghost:disabled{color:var(--color-content-disabled);cursor:default;background:var(--color-bg-primary)}.btn-ghost.danger{color:var(--color-content-danger);border-color:var(--color-pomegranate-300)}.btn-accent{height:28px;padding:0 12px;border:none;border-radius:4px;background:var(--color-blueberry-500);color:#fff;font-size:12.5px;font-weight:500;letter-spacing:0;cursor:pointer;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn-accent:hover{background:var(--color-blueberry-600)}.btn-accent:disabled{opacity:.5;cursor:default}.in{height:30px;border:1px solid var(--color-border-primary);border-radius:4px;background:var(--color-bg-primary);padding:0 8px;font-size:13px;color:var(--color-content-primary);width:100%}.in:focus{outline:2px solid var(--color-blueberry-200);border-color:var(--color-blueberry-400)}textarea.in{height:auto;min-height:80px;padding:8px;resize:vertical}.link-accent{font-size:12px;font-weight:500;letter-spacing:0;color:var(--color-content-link);cursor:pointer;background:none;border:none;padding:0}.link-accent:hover{color:var(--color-blueberry-700)}.chip-toggle{height:28px;padding:0 8px;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;border-radius:4px;cursor:pointer;flex-shrink:0;border:1px solid var(--color-border-primary);color:var(--color-content-primary);background:var(--color-bg-primary)}.chip-toggle.on{border-color:var(--color-border-action);color:var(--color-content-selected);background:var(--color-bg-selected)}.statxt{font-size:11px;color:var(--color-content-tertiary);white-space:nowrap}.token-input{border:1px solid var(--color-border-primary);border-radius:4px;background:var(--color-bg-primary);padding:5px 8px;font-size:13px;color:var(--color-content-primary);line-height:1.7;cursor:text}.token-input.mono-font{font-family:var(--font-mono);font-size:11.5px}.token-input:focus{outline:2px solid var(--color-blueberry-200);border-color:var(--color-blueberry-400)}.token-input:empty:before{content:attr(data-placeholder);color:var(--color-content-placeholder)}.token-chip{display:inline-flex;align-items:center;gap:4px;margin:0 1px;border:1px solid var(--color-border-secondary);border-radius:4px;background:var(--color-bg-secondary);padding:0 6px;font-size:12px;font-family:var(--font-sans);color:var(--color-content-primary);white-space:nowrap;vertical-align:baseline;-webkit-user-select:none;-moz-user-select:none;user-select:none}.token-chip i{font-style:normal;font-size:10px;font-weight:600;opacity:.6}.tchip-req{width:20px;height:12px;border-radius:999px;flex:none;cursor:pointer;background:var(--color-content-placeholder);position:relative;margin-left:4px;display:inline-block;vertical-align:middle;transition:background .12s ease}.tchip-req:after{content:"";position:absolute;top:2px;left:2px;width:8px;height:8px;border-radius:50%;background:#fff;transition:transform .12s ease}.tchip-req.on{background:var(--color-blueberry-500)}.tchip-req.on:after{transform:translateX(8px)}.popover{position:fixed;z-index:850;background:var(--color-bg-primary);border:1px solid var(--color-border-secondary);border-radius:10px;box-shadow:var(--shadow-3);padding:2px 0}.active-tool{border-color:var(--color-border-action);color:var(--color-content-selected);background:var(--color-bg-selected)}@keyframes menu-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}@keyframes panel-in{0%{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}@keyframes veil-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.menu,.popover{animation:menu-in .1s ease-out}.rpanel{animation:panel-in .14s ease-out}.modal-veil{animation:veil-in .1s ease-out}.smodal{animation:modal-in .12s ease-out}.addcol,.btn-accent,.btn-ghost,.chip-toggle,.htab,.icon-btn,.in,.mi,.qcard,.selbtn,.tabstrip .tab,.token-input,.xbtn{transition:background-color .1s ease,border-color .1s ease,color .1s ease}.tk{transition:background-color .12s ease,border-color .12s ease}.tk .kn{transition:left .12s ease,right .12s ease}.frow,.gcell,.grow .rgutter,.hcell{transition:background-color .08s ease}.progbar-lg .err,.progbar-lg .ok,.progress-track span{transition:width .3s ease}@media (prefers-reduced-motion:reduce){.menu,.modal-veil,.popover,.rpanel,.smodal{animation:none}*{transition-duration:0s!important}}.job-toasts{position:fixed;right:14px;bottom:14px;z-index:990;display:flex;flex-direction:column;gap:8px}.job-toast{width:264px;background:var(--color-bg-primary);border:1px solid var(--color-border-secondary);border-radius:8px;box-shadow:var(--shadow-3);padding:10px 12px;animation:toast-in .14s ease-out}.job-toast .jt-row{display:flex;align-items:center;gap:8px}.job-toast .jt-label{flex:1 1;font-size:12.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-toast .jt-count{font-family:var(--font-mono);font-size:10.5px;color:var(--color-content-tertiary);white-space:nowrap}.job-toast .jt-bar{margin-top:7px;height:4px;border-radius:2px;background:var(--color-nightshade-100);overflow:hidden}.job-toast .jt-bar span{display:block;height:100%;background:var(--color-blueberry-500);transition:width .25s ease}.job-toast.done .jt-bar span{background:var(--color-matcha-500)}.job-toast.error{border-color:var(--color-pomegranate-300)}.job-toast.error .jt-label{color:var(--color-content-danger)}.v2{--tb-bg:#fff;--tb-fg:#030712;--tb-fg-2:#111827;--tb-muted:#9ca3af;--tb-muted-2:#4b5563;--tb-border:rgba(0,0,0,.08);--tb-border-strong:rgba(0,0,0,.13);--tb-border-soft:#eef0f2;--tb-hover:#f3f4f6;--tb-hover-soft:#f9fafb;--tb-primary:#111827;--tb-primary-fg:#f9fafb}html[data-v2dark="1"] .v2{--tb-bg:#131415;--tb-fg:#d7dbe0;--tb-fg-2:#d7dbe0;--tb-muted:#898c90;--tb-muted-2:#a8acb1;--tb-border:hsla(0,0%,100%,.09);--tb-border-strong:hsla(0,0%,100%,.16);--tb-border-soft:hsla(0,0%,100%,.06);--tb-hover:hsla(0,0%,100%,.07);--tb-hover-soft:hsla(0,0%,100%,.04);--tb-primary:#e0e3e6;--tb-primary-fg:#18181b;--color-bg-primary:#131415;--color-bg-secondary:hsla(0,0%,100%,.05);--color-bg-tertiary:hsla(0,0%,100%,.09);--color-bg-emphasis:hsla(0,0%,100%,.09);--color-content-primary:#d7dbe0;--color-content-secondary:#b3b7bc;--color-content-tertiary:#898c90;--color-content-placeholder:#64686c;--color-border-primary:hsla(0,0%,100%,.16);--color-border-secondary:hsla(0,0%,100%,.09);--color-border-tertiary:hsla(0,0%,100%,.06);--grid-line:hsla(0,0%,100%,.05)}html[data-v2dark="1"] .menu{background:#1c1d1f;border-color:hsla(0,0%,100%,.12);color:#d7dbe0;--color-bg-secondary:hsla(0,0%,100%,.07);--color-bg-emphasis:hsla(0,0%,100%,.09);--color-content-primary:#d7dbe0;--color-content-secondary:#b3b7bc;--color-content-tertiary:#898c90;--color-border-tertiary:hsla(0,0%,100%,.08)}html[data-v2dark="1"] .mtree-add{background:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.16);color:#d7dbe0}html[data-v2dark="1"] .mtree-add:hover{background:hsla(0,0%,100%,.12)}.v2{zoom:calc(1 / var(--app-zoom));height:100vh;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--tb-fg)}.v2,.v2-side{display:flex;background:var(--tb-bg)}.v2-side{flex:0 0 258px;min-width:0;border-right:1px solid var(--tb-border);flex-direction:column}.v2-side-top{display:flex;align-items:center;gap:7px;padding:12px 10px 8px 12px}.v2-base-ic{width:24px;height:24px;border-radius:6px;background:var(--tb-primary);color:var(--tb-primary-fg);justify-content:center;font-weight:700;flex-shrink:0}.v2-base-ic,.v2-base-name{display:inline-flex;align-items:center;font-size:13px}.v2-base-name{flex:1 1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;gap:4px;color:var(--tb-fg)}.v2-base-name,.v2-iconbtn{background:none;border:none;cursor:pointer}.v2-iconbtn{width:26px;height:26px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:var(--tb-muted-2);flex-shrink:0}.v2-iconbtn:hover{background:var(--tb-hover)}.v2-nav{padding:2px 8px 8px;border-bottom:1px solid var(--tb-border)}.v2-nav-item{display:flex;align-items:center;gap:8px;height:30px;padding:0 8px;border-radius:6px;font-size:12.5px;color:var(--tb-fg-2);cursor:pointer;background:none;border:none;width:100%;text-align:left}.v2-nav-item:hover{background:var(--tb-hover)}.v2-create{margin:10px 8px 6px;height:28px;border:1px solid var(--tb-border);border-radius:6px;background:var(--tb-bg);font-size:12px;font-weight:500;color:var(--tb-fg);display:flex;align-items:center;justify-content:center;gap:5px;cursor:pointer}.v2-create:hover{background:var(--tb-hover-soft)}.v2-tables{flex:1 1;overflow-y:auto;padding:2px 8px}.v2-titem{display:flex;align-items:center;gap:8px;height:30px;padding:0 8px;border-radius:6px;font-size:12.5px;cursor:pointer;border:none;background:none;width:100%;color:var(--tb-fg-2);text-align:left}.v2-titem.on,.v2-titem:hover{background:var(--tb-hover)}.v2-titem.on{font-weight:500}.v2-titem .tstar{margin-left:auto;color:#eab308;font-size:11px}.v2-pinhead{display:flex;align-items:center;gap:7px;padding:2px 8px 6px;font-size:11.5px;color:var(--tb-muted)}.v2-side.v2-rail{flex-basis:52px;align-items:center}.v2-side.v2-rail .v2-side-top{padding:12px 0 8px;justify-content:center}.v2-side.v2-rail .v2-nav{padding:2px 6px 8px;width:100%}.v2-side.v2-rail .v2-nav-item{justify-content:center;gap:0;padding:0;width:40px;margin:0 auto 2px;height:34px}.v2-side.v2-rail .v2-tables{padding:0;width:100%}.v2-side.v2-rail .v2-user{justify-content:center;flex-direction:column;gap:6px;padding:8px 0}.v2-user{display:flex;align-items:center;gap:8px;padding:11px 12px;border-top:1px solid var(--tb-border);font-size:13px}.v2-avatar{width:22px;height:22px;border-radius:50%;background:var(--tb-hover);border:1px solid var(--tb-border);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0}.v2-main{flex:1 1;min-width:0;display:flex;flex-direction:column;position:relative}.v2-topbar{display:flex;align-items:center;gap:10px;flex:0 0 44px;padding:0 12px;border-bottom:1px solid var(--tb-border)}.v2-tname{font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:7px}.v2-adddesc{font-size:11.5px;color:var(--tb-muted)}.v2-crumb{display:inline-flex;align-items:center;gap:7px;max-width:320px;height:28px;padding:0 8px;border:none;border-radius:6px;background:none;font-size:13.5px;font-weight:600;color:var(--tb-fg);cursor:pointer}.v2-crumb:hover{background:var(--tb-hover)}.v2-crumb-sep{color:var(--tb-muted);font-size:13px}.v2-viewchip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:4px;background:var(--tb-hover);font-size:12px;font-weight:500;border:none;color:var(--tb-fg)}.v2-dark-btn{height:30px;padding:0 12px;background:var(--tb-primary);color:var(--tb-primary-fg);font-size:12.5px;border:none;border-radius:6px;cursor:pointer}.v2-records{position:absolute;left:10px;bottom:46px;z-index:30;background:var(--tb-hover);border:1px solid var(--tb-border);border-radius:6px;padding:3px 10px;font-size:11.5px;color:var(--tb-fg-2);pointer-events:none}.v2 .tabstrip{flex:0 0 38px;align-items:center;gap:2px;padding:0 8px;background:var(--tb-bg);border-top:1px solid var(--tb-border)}.v2 .tabstrip .tab{height:30px;padding:0 12px;border:none;border-radius:6px;background:none;font-size:12.5px;color:var(--tb-muted-2);display:inline-flex;align-items:center;gap:6px}.v2 .tabstrip .tab.on,.v2 .tabstrip .tab:hover{background:var(--tb-hover)}.v2 .tabstrip .tab.on{color:var(--tb-fg);font-weight:600}.v2 .toolbar{background:var(--tb-bg);border-bottom:1px solid var(--tb-border)}.v2 .toolbar .btn-ghost,.v2 .toolbar .chip-toggle{font-family:inherit!important;font-size:12px;color:var(--tb-fg);border:1px solid var(--tb-border);border-radius:6px;background:var(--tb-bg);height:28px}.v2 .toolbar .btn-ghost:hover,.v2 .toolbar .chip-toggle:hover{background:var(--tb-hover)}.v2 .toolbar .chip-toggle.on{color:var(--tb-primary-fg)}.v2 .toolbar .btn-accent,.v2 .toolbar .chip-toggle.on{background:var(--tb-primary);border-color:var(--tb-fg-2)}.v2 .toolbar .btn-accent{border-radius:6px;font-size:12px}.v2 .ghead-row .gutter,.v2 .gstatus-row .gutter,.v2 .hcell{background:var(--tb-bg);border-color:var(--tb-border)}.v2 .hcell .hname{font-size:13px;font-weight:500;color:var(--tb-fg)}.v2 .hcell.sel{background:var(--tb-primary)}.v2 .hcell.sel,.v2 .hcell.sel .hcaret,.v2 .hcell.sel .hname,.v2 .hcell.sel .hty{color:var(--tb-primary-fg)}.v2 .gstatus-row{background:var(--tb-bg);border-color:var(--tb-border)}.v2 .gcell{font-size:13px;border-right-color:var(--tb-border-soft)}.v2 .grow{border-bottom-color:var(--tb-border-soft)}.v2 .grow .rgutter{border-color:var(--tb-border-soft);color:var(--tb-muted);font-size:11px;background:var(--tb-bg)}.v2 .gcell.colsel{background:var(--tb-hover-soft)}.v2 .gcell.sel{box-shadow:inset 0 0 0 2px #111827;border-radius:2px}.v2 .gcell.sel:after{background:var(--tb-bg);border:1.5px solid #111827;width:7px;height:7px}.v2 .grow.rowsel .gcell,.v2 .grow.rowsel .rgutter{background:var(--tb-hover)}.v2 .gcell .celledit{outline-color:var(--tb-fg-2)}.v2 .col-resizer:hover{background:var(--tb-border-strong)}.v2 .rpanel{border-left:1px solid var(--tb-border)}.v2 .rpanel .btn-accent{background:var(--tb-primary);border-color:var(--tb-fg-2)}.v2 .addcol{background:var(--tb-bg);border-color:var(--tb-border);color:var(--tb-fg);font-size:12px}.v2 .bulkbar{background:var(--tb-primary)}.mtree-row{display:flex;align-items:center;gap:6px;padding:3px 12px 3px 0;font-size:12px;min-height:24px}.mtree-row:hover{background:var(--color-bg-secondary)}.mtree-row .mtree-caret{display:inline-flex;align-items:center;justify-content:center;width:10px}.mtree-row .mtree-caret,.mtree-row .mtree-ty{font-size:9px;color:var(--color-content-tertiary);flex-shrink:0}.mtree-row .mtree-ty{font-family:var(--font-mono);width:14px;text-align:center}.mtree-row.leaf{cursor:default}.mtree-add{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--tb-border-strong);background:var(--tb-bg);border-radius:5px;font-size:10.5px;padding:2px 7px;cursor:pointer;color:var(--tb-fg);opacity:0;flex-shrink:0}.mtree-row.leaf:hover .mtree-add{opacity:1}.mtree-add:hover{background:var(--tb-hover)}.gstatus-row .scell.pin,.hcell.pin{position:-webkit-sticky;position:sticky;z-index:2}.gstatus-row .scell.pin{background:var(--color-bg-primary)}.gcell.pin{box-shadow:1px 0 0 var(--color-border-secondary)}.gcell.pin.pin-last,.gstatus-row .scell.pin.pin-last,.hcell.pin.pin-last{box-shadow:2px 0 4px rgba(0,0,0,.07)}.v2h-row{display:flex;align-items:center;gap:8px;padding:0 6px;min-height:42px;border-bottom:1px solid var(--tb-border-soft)}.v2h-head{min-height:34px;font-size:11.5px;color:var(--tb-muted);border-bottom:1px solid var(--tb-border);margin-top:14px}.v2h-item{cursor:pointer}.v2h-item:hover{background:var(--tb-hover-soft)}.v2h-child{padding-left:40px;min-height:34px;border-bottom:1px solid var(--tb-border-soft)}.trash-section{margin-top:26px}.trash-sec-title{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--tb-muted);text-transform:uppercase;letter-spacing:.04em}.trash-list{margin-top:8px;border:1px solid var(--tb-border);border-radius:8px;background:var(--tb-bg);overflow:hidden}.trash-row{display:flex;align-items:center;gap:12px;padding:10px 14px}.trash-row+.trash-row{border-top:1px solid var(--tb-border-soft)}.trash-row:hover{background:var(--tb-hover-soft)}.trash-tile{width:28px;height:28px;border-radius:6px;flex-shrink:0;background:var(--tb-hover);color:var(--tb-muted-2);display:inline-flex;align-items:center;justify-content:center}.trash-name{font-size:13px;font-weight:600;color:var(--tb-fg)}.trash-meta,.trash-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash-meta{margin-top:1px;font-size:11.5px;color:var(--tb-muted)}.trash-badge{font-size:11px;font-weight:500;white-space:nowrap;flex-shrink:0;border:1px solid var(--tb-border);border-radius:9999px;padding:2px 9px;color:var(--tb-muted-2);background:var(--tb-hover-soft)}.trash-badge.warn{color:#d97706;border-color:rgba(217,119,6,.4);background:rgba(245,158,11,.08)}.trash-btn{height:28px;padding:0 12px;flex-shrink:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--tb-border);border-radius:6px;background:var(--tb-bg);font-size:12px;font-weight:500;color:var(--tb-fg);transition:background-color .1s ease,border-color .1s ease,color .1s ease}.trash-btn:hover{background:var(--tb-hover)}.trash-btn:disabled{opacity:.5;cursor:default;background:var(--tb-bg)}.trash-btn.danger{color:#dc2626}.trash-btn.danger:hover{border-color:rgba(220,38,38,.35);background:rgba(220,38,38,.06)}html[data-v2dark="1"] .trash-btn.danger{color:#f87171}html[data-v2dark="1"] .trash-btn.danger:hover{border-color:hsla(0,91%,71%,.4);background:hsla(0,91%,71%,.08)}.trash-empty{margin-top:28px;padding:44px 20px;border:1px dashed var(--tb-border-strong);border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--tb-muted)}.v2-login{align-items:center;justify-content:center;position:relative;background:var(--tb-hover-soft)}html[data-v2dark="1"] .v2-login{background:var(--tb-bg)}.v2-login-theme{position:absolute;top:14px;right:16px;width:30px;height:30px;color:var(--tb-muted-2)}.v2-login-card{width:340px;padding:26px 26px 24px;box-sizing:content-box;border:1px solid var(--tb-border);border-radius:12px;background:var(--tb-bg);box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.06);display:flex;flex-direction:column}html[data-v2dark="1"] .v2-login-card{border-color:var(--tb-border-strong);box-shadow:none}.v2-login-brand{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700;letter-spacing:-.01em}.v2-login-sub{font-size:11.5px;color:var(--tb-muted);line-height:1.5;margin:8px 0 18px}.v2-login-card .in{height:32px;border-radius:6px;margin-bottom:12px;font-size:13px}.v2-btn-primary{height:32px;width:100%;margin-top:2px;border:none;border-radius:6px;background:var(--tb-primary);color:var(--tb-primary-fg);font-size:12.5px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:opacity .1s ease}.v2-btn-primary:hover{opacity:.92}.v2-btn-primary:disabled{opacity:.55;cursor:default}.v2-note-err{border:1px solid var(--color-pomegranate-300);border-radius:6px;background:var(--color-bg-danger);color:var(--color-content-danger);padding:8px 10px;font-size:12px;line-height:1.45;margin-bottom:12px}html[data-v2dark="1"] .v2-note-err{background:rgba(233,77,104,.12);border-color:rgba(233,77,104,.4);color:#f2a2b0}.v2-note-warn{border:1px solid var(--color-lemon-300);border-radius:8px;background:var(--color-bg-warning);color:var(--color-content-warning);padding:9px 12px;font-size:12px;margin:0 0 14px}html[data-v2dark="1"] .v2-note-warn{background:rgba(246,194,61,.1);border-color:rgba(246,194,61,.35);color:#e8c56d}.v2set-wrap{width:100%;max-width:880px;margin:0 auto;padding:22px 32px 48px;box-sizing:border-box}.v2set-head{display:flex;align-items:center;gap:10px}.v2set-title{margin:0;font-size:24px;font-weight:700;letter-spacing:-.01em}.v2set-me{font-size:12px;color:var(--tb-muted)}.v2set-sec{margin:28px 0 0;font-size:15px;font-weight:600;letter-spacing:-.01em}.v2set-desc{margin:6px 0 14px;font-size:12px;color:var(--tb-muted-2);line-height:1.55;max-width:62ch}.v2set-desc b{font-weight:600;color:var(--tb-fg)}.v2set-label{display:block;font-size:11.5px;font-weight:500;color:var(--tb-muted-2);margin:0 0 4px}.v2set-help{font-size:10px;color:var(--tb-muted);line-height:1.5}.v2set-help code{font-family:inherit;background:var(--tb-hover);border-radius:4px;padding:0 4px}.v2set-providers{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.v2set-provider{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px 0 9px;border:1px solid var(--tb-border);border-radius:8px;background:var(--tb-bg);font-size:12px;font-weight:500;color:var(--tb-fg);cursor:pointer;transition:background-color .1s ease,border-color .1s ease}.v2set-provider:hover:not(:disabled){background:var(--tb-hover-soft);border-color:var(--tb-border-strong)}.v2set-provider:disabled{opacity:.55;cursor:default}.v2set-provider-add{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--tb-muted)}.v2set-card{border:1px solid var(--tb-border);border-radius:10px;background:var(--tb-bg);overflow:hidden}.v2set-empty{padding:34px 16px;text-align:center;font-size:12.5px;color:var(--tb-muted)}.v2set-row{display:flex;align-items:center;gap:10px;min-height:46px;padding:6px 14px;box-sizing:border-box}.v2set-row+.v2set-row{border-top:1px solid var(--tb-border-soft)}.v2set-row-name{font-size:13px;font-weight:600}.v2set-row-name,.v2set-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2set-sub{font-size:11.5px;color:var(--tb-muted);max-width:200px}.v2set-badge{font-size:11px;font-weight:500;border:1px solid var(--tb-border);border-radius:999px;padding:1px 8px;color:var(--tb-muted-2);background:var(--tb-hover-soft);white-space:nowrap}.v2set-badge.on{color:var(--tb-primary-fg);background:var(--tb-primary);border-color:var(--tb-primary)}.v2set-badge.warn{color:var(--color-content-warning);border-color:var(--color-lemon-300);background:var(--color-bg-warning)}html[data-v2dark="1"] .v2set-badge.warn{background:rgba(246,194,61,.1);border-color:rgba(246,194,61,.35);color:#e8c56d}.v2set-hint{font-size:11.5px;letter-spacing:.02em}.v2set-by,.v2set-hint{color:var(--tb-muted);white-space:nowrap}.v2set-by{font-size:11px;max-width:150px;overflow:hidden;text-overflow:ellipsis}.v2set-act{height:24px;padding:0 9px;border:1px solid var(--tb-border);border-radius:6px;background:var(--tb-bg);font-size:11px;font-weight:500;color:var(--tb-fg);cursor:pointer;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;transition:background-color .1s ease,border-color .1s ease}.v2set-act:hover{background:var(--tb-hover)}.v2set-act.danger{color:var(--color-content-danger)}.v2set-act.danger:hover{background:rgba(233,77,104,.08);border-color:var(--color-pomegranate-300)}html[data-v2dark="1"] .v2set-act.danger{color:#f2a2b0}html[data-v2dark="1"] .v2set-act.danger:hover{border-color:rgba(233,77,104,.4)}.v2set-modal{border-radius:12px}.v2set-modal .ptab{font-size:12.5px}.v2set-modal .ptab.on{color:var(--tb-fg);border-bottom-color:var(--tb-fg)}.v2set-modal .ckbox:not(.on){background:var(--color-bg-primary)}.v2set-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px}.v2set-dot.ok{background:var(--color-matcha-500)}.v2set-dot.err{background:var(--color-pomegranate-500)}.v2set-dot.info{background:var(--tb-muted)}.v2set-sysname{width:110px;flex-shrink:0;font-size:12.5px;font-weight:600}.v2set-sysval{font-size:12px;color:var(--tb-muted-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vw-row{display:flex;align-items:center;gap:6px;height:30px;padding:0 8px;border-radius:4px;cursor:pointer;font-size:12.5px;color:var(--color-content-primary)}.vw-row:hover{background:var(--color-bg-emphasis)}.vw-check{width:14px;flex:0 0 14px;display:inline-flex;align-items:center;justify-content:center}.vw-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vw-act{border:none;background:none;padding:2px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--color-content-tertiary);opacity:0;flex-shrink:0;transition:background-color .1s ease,color .1s ease,opacity .1s ease}.vw-act.on,.vw-row:hover .vw-act{opacity:1}.vw-act:hover{background:var(--color-bg-tertiary);color:var(--color-content-primary)}.vw-div{height:1px;background:var(--color-border-secondary);margin:4px 6px}.vw-foot{border-top:1px solid var(--color-border-secondary);margin-top:4px;padding:8px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.vw-dot{width:5px;height:5px;border-radius:50%;background:var(--color-blueberry-500);flex-shrink:0}.vw-empty{padding:2px 8px 6px;font-size:12px;color:var(--color-content-tertiary)}.v2h-folder{background:var(--tb-hover-soft)}.v2h-foldcount,.v2h-folder:hover{background:var(--tb-hover)}.v2h-foldcount{flex-shrink:0;font-size:11.5px;font-weight:400;color:var(--tb-muted);border-radius:10px;padding:1px 8px}.v2h-grp .v2h-item:not(.v2h-folder):not(.v2h-child){padding-left:30px}.v2h-grp .v2h-child{padding-left:64px}.v2h-foldempty{color:var(--tb-muted);font-size:12px;font-style:italic}.v2h-dots{width:30px;text-align:center;color:var(--tb-muted);cursor:pointer;background:none;border:none;font-size:inherit;font-family:inherit;padding:0;line-height:1}.col-drop-line{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--color-blueberry-500);z-index:40;pointer-events:none}.hcell.drag-src{opacity:.45}.undo-toast{position:absolute;left:50%;bottom:96px;transform:translateX(-50%);display:flex;gap:12px;z-index:62;background:var(--color-bg-primary);border:1px solid var(--color-border-secondary);border-radius:10px;box-shadow:var(--shadow-3);padding:9px 14px;color:var(--color-content-primary);white-space:nowrap;animation:toast-in .14s ease-out}.undo-toast,.undo-toast .undo-btn{align-items:center;font-size:12.5px}.undo-toast .undo-btn{display:inline-flex;gap:5px;border:none;cursor:pointer;background:none;padding:2px 6px;border-radius:5px;color:var(--color-content-action);font-weight:600}.undo-toast .undo-btn:hover{background:var(--color-bg-secondary)}.play-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--color-border-tertiary);border-radius:8px;margin-bottom:8px;cursor:pointer}.play-row:hover{background:var(--color-bg-secondary);border-color:var(--color-border-secondary)}.play-row .play-name{font-size:13px;font-weight:600;color:var(--color-content-primary)}.play-row .play-desc{font-size:12px;color:var(--color-content-secondary);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-row .play-meta{font-size:11.5px;color:var(--color-content-tertiary);margin-top:2px}.play-row .play-del{opacity:0;flex-shrink:0}.play-row:hover .play-del{opacity:1}.play-row .play-del:hover{color:var(--color-content-danger)}.play-map-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.play-map-src{flex:1 1;min-width:0;font-size:12.5px;font-weight:500;color:var(--color-content-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-map-arrow{color:var(--color-content-tertiary);font-size:12px;flex-shrink:0}.play-map-row select{max-width:55%}.play-internal{margin-top:10px;padding:7px 10px;border-radius:6px;background:var(--color-bg-secondary);font-size:11.5px;color:var(--color-content-tertiary)}.token-chip.unresolved{border-style:dashed;border-color:var(--color-border-primary);background:transparent;color:var(--color-content-tertiary)}.token-chip.unresolved i{opacity:.8}.ptpl-wrap{position:relative;display:inline-flex}.ptpl-pop{position:absolute;top:calc(100% + 4px);right:0;z-index:891;width:264px;background:var(--color-bg-primary);border:1px solid var(--color-border-secondary);border-radius:6px;box-shadow:var(--shadow-2);padding:4px;animation:menu-in .1s ease-out}.ptpl-item{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border:none;background:none;border-radius:4px;cursor:pointer;text-align:left;color:var(--color-content-primary)}.ptpl-item:hover{background:var(--color-bg-emphasis)}.ptpl-item.dim{color:var(--color-content-tertiary);cursor:default}.ptpl-item.dim:hover{background:none}.ptpl-item .ptpl-txt{flex:1 1;min-width:0}.ptpl-item .ptpl-name{font-size:12.5px;font-weight:500}.ptpl-item .ptpl-name,.ptpl-item .ptpl-prev{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ptpl-del,.ptpl-item .ptpl-prev{font-size:11px;color:var(--color-content-tertiary)}.ptpl-del{border:none;background:none;padding:2px 4px;border-radius:3px;cursor:pointer;opacity:0;flex-shrink:0}.ptpl-item:hover .ptpl-del{opacity:1}.ptpl-del:hover{color:var(--color-content-danger);background:var(--color-bg-emphasis)}.ptpl-div{height:1px;background:var(--color-border-secondary);margin:4px 0}.ptpl-note{padding:6px 8px;font-size:11px;line-height:1.45;color:var(--color-content-tertiary)}.blast-warn{margin:8px 12px 10px;border:1px solid var(--color-content-warning);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-content-warning);padding:9px 10px;font-size:12px;line-height:1.5}.blast-warn b{font-weight:600}.blast-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}