.xg-wrap{position:relative;min-width:0}.xg-wrap:focus,.xg-wrap:focus-visible{outline:none}.xg-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;line-height:1.25;background:var(--surface);border:1px solid var(--border);border-radius:6px}.xg-table th,.xg-table td{border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);padding:4px 8px;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}.xg-table th:last-child,.xg-table td:last-child{border-right:none}.xg-table tbody tr:last-child td{border-bottom:none}.xg-table thead th{position:sticky;top:0;z-index:2;background:var(--surface-sunken);border-bottom:1px solid var(--border);font-weight:600;color:var(--text-secondary);text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none}.xg-head.is-sorted{color:var(--accent-text)}.xg-sort{margin-left:4px;font-size:9px}.xg-rownum{width:34px;min-width:34px;text-align:center;color:var(--text-muted);background:var(--surface-sunken);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:11px}.xg-corner{cursor:default}.xg-num{text-align:right;font-variant-numeric:tabular-nums}.xg-center{text-align:center;font-variant-numeric:tabular-nums}.xg-table tbody tr:hover td:not(.xg-rownum){background:color-mix(in srgb,var(--surface-sunken) 55%,var(--surface))}.xg-cell{cursor:cell;-webkit-user-select:none;user-select:none}.xg-cell.is-selected{background:color-mix(in srgb,var(--accent-600) 12%,var(--surface))!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent-600) 45%,transparent)}.xg-cell.is-active{box-shadow:inset 0 0 0 2px var(--accent-600)!important}.xg-table tfoot td{position:sticky;bottom:0;background:var(--surface-sunken);border-top:1px solid var(--border);font-weight:600}.xg-total-label{font-size:12px}.xg-empty{padding:14px;text-align:center;color:var(--text-muted)}.xg-head.is-static{cursor:default}.xg-checkcol{width:30px;min-width:30px;text-align:center;background:var(--surface-sunken);cursor:default}.xg-check{width:14px;height:14px;margin:0;vertical-align:middle;accent-color:var(--accent-600);cursor:pointer}.xg-table tbody tr.is-row-checked td:not(.xg-rownum):not(.xg-checkcol){background:color-mix(in srgb,var(--accent-600) 6%,var(--surface))}.xg-bulkbar{display:flex;align-items:center;gap:10px;margin-bottom:6px;padding:6px 10px;background:color-mix(in srgb,var(--accent-600) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--accent-600) 35%,transparent);border-radius:6px}.xg-bulkbar-slot{flex:1;min-width:0}.xg-bulkbar-clear{flex-shrink:0;padding:4px 8px;font-size:12px;color:var(--text-secondary);background:transparent;border:none;cursor:pointer;text-decoration:underline}.xg-bulkbar-clear:hover{color:var(--text)}.xg-skeleton{display:block;height:12px;border-radius:4px;background:var(--surface-sunken);animation:xg-pulse 1.1s ease-in-out infinite}@keyframes xg-pulse{0%,to{opacity:.55}50%{opacity:1}}.xg-statusbar{position:sticky;bottom:0;z-index:3;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;margin-top:4px;padding:5px 10px;font-size:12px;color:var(--text-secondary);background:var(--surface-elev);border:1px solid var(--border);border-radius:6px;box-shadow:0 2px 8px #00000014;font-variant-numeric:tabular-nums}.xg-statusbar b{color:var(--text)}.xg-statusbar-hint{margin-left:auto;color:var(--text-muted);font-size:11px}.xg-more-row td.xg-more{text-align:center;padding:8px;background:var(--surface);border-top:1px solid var(--border-subtle)}.xg-more-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-md);padding:5px 16px;font-size:var(--text-sm);font-weight:var(--fw-medium);cursor:pointer}.xg-more-btn:hover:not(:disabled){background:var(--surface-sunken)}.xg-more-btn:disabled{opacity:.6;cursor:default}:root{--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono: ui-monospace, "JetBrains Mono", "SF Mono", Consolas, monospace;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 16px;--text-lg: 20px;--text-xl: 24px;--lh-xs: 16px;--lh-sm: 18px;--lh-base: 20px;--lh-lg: 28px;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--ease: cubic-bezier(.2, 0, 0, 1);--duration-fast: .12s;--duration-base: .16s;--duration-slow: .22s;--topbar-h: 56px;--accent-50: #f5edff;--accent-100: #e6d2ff;--accent-200: #cba6ff;--accent-300: #a570f5;--accent-400: #8642e5;--accent-500: #6c1cd1;--accent-600: #5a14b0;--accent-700: #460e8a;--bg: #f7f8fa;--surface: #ffffff;--surface-elev: #ffffff;--surface-sunken: #f0f1f4;--border-subtle: #e8eaef;--border: #dde0e6;--border-strong: #c4c8d0;--text: #0f1216;--text-secondary: #3d4350;--text-muted: #5b626e;--text-inverse: #ffffff;--accent-text: var(--accent-600);--text-link: var(--accent-text);--success: #197a4b;--success-bg: #e3f6ec;--warning: #9a6700;--warning-bg: #fdf1dd;--danger: #b3261e;--danger-bg: #fbeceb;--danger-hover: #8f1e18;--info: #0369a1;--info-bg: #e0f2fe;--shadow-sm: 0 1px 2px rgba(15, 18, 22, .06);--shadow-md: 0 4px 12px rgba(15, 18, 22, .08), 0 1px 2px rgba(15, 18, 22, .04);--shadow-lg: 0 12px 32px rgba(15, 18, 22, .14), 0 4px 8px rgba(15, 18, 22, .06);--ring: 0 0 0 3px color-mix(in srgb, var(--accent-500) 28%, transparent);--primary: var(--accent-500);--primary-hover: var(--accent-600);color-scheme:light;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;color:var(--text)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}h1,h2,h3{color:var(--text);font-weight:var(--fw-semibold);margin:0}a{color:var(--text-link);text-decoration:none}*:focus{outline:none}*:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}@keyframes spin{to{transform:rotate(360deg)}}.app{height:100vh;height:100dvh;display:flex;flex-direction:column}.topbar{flex:0 0 auto;height:var(--topbar-h);display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-5);background:var(--surface);border-bottom:1px solid var(--border)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-md);background:var(--accent-600);color:#fff;font-weight:var(--fw-bold);font-size:13px}.brand-title{font-weight:var(--fw-semibold);font-size:var(--text-md)}.brand-sub{color:var(--text-muted);font-size:var(--text-sm)}.topbar-spacer{margin-left:auto}.topbar-note{color:var(--text-muted);font-size:var(--text-sm);display:inline-flex;align-items:center;gap:6px}.dev-badge{font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.04em;padding:2px 8px;border-radius:var(--radius-full);background:var(--warning-bg);color:var(--warning)}.body{flex:1 1 auto;display:flex;min-height:0}.sidebar{flex:0 0 auto;width:240px;background:var(--surface);border-right:1px solid var(--border);padding:var(--space-4) var(--space-3);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-2)}.nav-section{font-size:var(--text-xs);font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);padding:var(--space-3) var(--space-2) var(--space-1)}.nav-link{display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--fw-medium);position:relative;transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.nav-link:hover{background:var(--surface-sunken);color:var(--text)}.nav-link.active{background:var(--accent-50);color:var(--accent-text)}.nav-link.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--accent-600)}.nav-link svg{flex:0 0 auto}.nav-cluster{display:flex;flex-direction:column}.nav-parent{display:flex;align-items:center}.nav-parent .nav-link{flex:1 1 auto;min-width:0}.nav-toggle,.nav-toggle-spacer{flex:0 0 auto;width:22px;height:30px}.nav-toggle{display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;color:var(--text-muted);padding:0}.nav-toggle svg{transition:transform var(--duration-fast) var(--ease)}.nav-toggle.open svg{transform:rotate(90deg)}.nav-head{font-weight:var(--fw-semibold);color:var(--text)}.nav-grouplabel{border:none;background:transparent;cursor:pointer;text-align:left;font:inherit;width:100%}.nav-children{display:flex;flex-direction:column;margin-left:22px;padding-left:8px;border-left:1px solid var(--border)}.nav-child{color:var(--text-muted)}.fx-table{border-collapse:collapse;width:100%;max-width:560px;font-size:var(--text-sm)}.fx-table th,.fx-table td{padding:6px 12px;border-bottom:1px solid var(--border)}.fx-table th{text-align:left;color:var(--text-muted);font-weight:var(--fw-semibold)}.fx-table tbody tr:hover{background:var(--surface-sunken)}.fx-calc{align-items:center;gap:var(--space-2)}.fx-result{margin-left:var(--space-3)}.fx-result b{color:var(--accent-text)}.topbar-search{position:relative;margin-left:var(--space-4);display:flex;align-items:center}.topbar-search-ico{position:absolute;left:10px;color:var(--text-muted);pointer-events:none}.topbar-search-input{width:320px;max-width:38vw;padding:7px 10px 7px 30px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:var(--text-sm)}.topbar-search-input:focus{outline:none;border-color:var(--accent-600)}.topbar-search-pop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000024;overflow:hidden auto;max-height:60vh}.topbar-search-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:8px 12px;cursor:pointer}.topbar-search-item.active,.topbar-search-item:hover{background:var(--accent-50)}.topbar-search-label{color:var(--text);font-size:var(--text-sm)}.topbar-search-group{color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap}.topbar-search-empty{padding:10px 12px;color:var(--text-muted);font-size:var(--text-sm)}.content{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column}.tab-bar{flex:0 0 auto;display:flex;gap:2px;align-items:flex-end;padding:var(--space-2) var(--space-3) 0;overflow-x:auto;border-bottom:1px solid var(--border);background:var(--bg)}.win-tab{display:inline-flex;align-items:center;gap:6px;max-width:230px;padding:6px 10px;border:1px solid var(--border);border-bottom:none;border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--surface-sunken);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;white-space:nowrap}.win-tab:hover{background:var(--surface);color:var(--text)}.win-tab.active{background:var(--surface);color:var(--text);font-weight:var(--fw-medium);margin-bottom:-1px;padding-bottom:7px}.win-tab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.win-tab-close{display:inline-flex;align-items:center;opacity:.5;border-radius:var(--radius-sm)}.win-tab-close:hover{opacity:1;background:var(--surface-sunken)}.tab-stage{flex:1 1 auto;min-height:0;min-width:0;display:flex}.tab-pane{flex:1 1 auto;min-width:0;min-height:0;flex-direction:column;padding:var(--space-5);overflow:hidden}.sidebar-resizer{flex:0 0 auto;width:5px;cursor:col-resize;background:transparent}.sidebar-resizer:hover,.sidebar-resizer:active{background:var(--accent-300)}.nav-dup{flex:0 0 auto;margin-left:6px;font-size:11px;line-height:16px;min-width:16px;height:16px;padding:0 5px;text-align:center;border-radius:999px;background:var(--danger-bg);color:var(--danger);font-weight:var(--fw-medium)}.search-select{position:relative;display:inline-block;min-width:200px}.search-select-btn{display:flex;align-items:center;gap:6px;width:100%;cursor:pointer;text-align:left}.search-select-val{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-select-pop{position:absolute;z-index:50;top:calc(100% + 2px);left:0;min-width:240px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:0 6px 24px #0000001f;overflow:hidden}.search-select-search{display:flex;align-items:center;gap:4px;padding:4px 8px;border-bottom:1px solid var(--border)}.search-select-list{max-height:300px;overflow-y:auto;padding:4px}.search-select-item{padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-select-item:hover{background:var(--surface-sunken)}.search-select-item.active{background:var(--accent-50);color:var(--accent-text)}.search-select-empty{padding:10px 8px;color:var(--text-muted);font-size:var(--text-sm)}.page{flex:1 1 auto;min-height:0;min-width:0;display:flex;flex-direction:column;gap:var(--space-4)}.page-head{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--space-3)}.page-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.page-title{font-size:var(--text-lg);line-height:var(--lh-lg);display:inline-flex;align-items:center;gap:var(--space-2)}.page-title svg{color:var(--accent-600)}.page-count{color:var(--text-muted);font-weight:var(--fw-regular);font-size:var(--text-base)}.page-sub{color:var(--text-muted);font-size:var(--text-sm);line-height:var(--lh-sm);max-width:860px;margin:0}.page-work{flex:1 1 auto;min-height:0;min-width:0;display:flex;flex-direction:column}.page-work .xg-wrap{height:100%;display:flex;flex-direction:column}.toolbar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.toolbar .spacer{margin-left:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;font:inherit;font-size:var(--text-base);font-weight:var(--fw-medium);line-height:1.2;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.btn:hover:not(:disabled){background:var(--surface-sunken)}.btn:disabled{opacity:.6;cursor:default}.btn svg{flex:0 0 auto}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn-danger{color:var(--danger);border-color:#e7c6c4}.btn-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger);color:var(--danger-hover)}.btn-ghost{background:transparent;border-color:var(--border);color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--surface-sunken);border-color:var(--border-strong);color:var(--text)}.btn-sm{padding:5px 10px;font-size:var(--text-sm);border-radius:var(--radius-md)}.btn-icon{padding:6px}.field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.field-label{font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-secondary)}.field-req{color:var(--danger);margin-left:2px}.toolbar .field,.drawer-toolbar .field{flex-direction:row;align-items:center;gap:var(--space-2);white-space:nowrap}.toolbar .field>.field-label,.drawer-toolbar .field>.field-label{flex:0 0 auto}.input,.select{height:36px;padding:0 10px;font:inherit;font-size:var(--text-base);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease);min-width:0;width:100%}.input:focus,.select:focus{border-color:var(--accent-400);box-shadow:var(--ring)}.input::placeholder{color:var(--text-muted)}select.select{cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}textarea.input{height:auto;min-height:72px;padding:8px 10px;resize:vertical}.input-inline{height:32px}.ref-picker{position:relative;min-width:220px}.ref-picker .input{width:100%}.ref-picker-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--text-muted);cursor:pointer;font-size:12px;line-height:1;padding:2px 4px}.ref-picker-clear:hover{color:var(--text)}.ref-picker-pop{position:absolute;z-index:30;top:calc(100% + 2px);left:0;right:0;max-height:240px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.ref-picker-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;cursor:pointer}.ref-picker-item:hover{background:var(--accent-50)}.ref-picker-code{font-size:var(--text-xs);color:var(--text-muted)}.ref-picker-empty{padding:8px 10px;color:var(--text-muted)}.ref-picker-hint{padding:4px 10px;font-size:var(--text-xs);color:var(--text-muted);border-top:1px solid var(--border);background:var(--surface-2, transparent)}.form-grid{display:grid;grid-template-columns:180px 1fr;gap:var(--space-3);align-items:center}.form-col{display:flex;flex-direction:column;gap:var(--space-3)}.badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:var(--fw-semibold);padding:3px 9px;border-radius:var(--radius-full);white-space:nowrap;line-height:1.4}.badge-neutral{background:var(--surface-sunken);color:#4b5160}.badge-primary{background:var(--accent-50);color:var(--primary)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-info{background:var(--info-bg);color:var(--info)}.spinner{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm)}.spinner-ring{width:22px;height:22px;border:3px solid var(--border-strong);border-top-color:var(--primary);border-radius:var(--radius-full);animation:spin .7s linear infinite}.spinner--sm .spinner-ring{width:16px;height:16px;border-width:2px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-7) var(--space-4);text-align:center;color:var(--text-muted)}.empty-state-icon{color:var(--text-muted)}.empty-state-title{font-weight:var(--fw-semibold);color:var(--text-secondary);margin:0}.empty-state-desc{margin:0;font-size:var(--text-sm)}.alert{display:flex;gap:var(--space-2);padding:10px 12px;border-radius:var(--radius-md);font-size:var(--text-sm);border:1px solid transparent}.alert-info{background:var(--info-bg);color:var(--info);border-color:color-mix(in srgb,var(--info) 25%,transparent)}.alert-warning{background:var(--warning-bg);color:var(--warning);border-color:color-mix(in srgb,var(--warning) 25%,transparent)}.alert-danger{background:var(--danger-bg);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 25%,transparent)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4);align-items:stretch}.tile{position:relative;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);padding-left:calc(var(--space-4) + 6px);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.tile:hover,.tile:focus-visible{border-color:var(--accent-400);box-shadow:var(--shadow-md);transform:translateY(-2px);outline:none}.tile-accent{position:absolute;inset:0 auto 0 0;width:6px;background:var(--accent-500)}.tile-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.tile-name{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text)}.tile-meta{display:flex;flex-wrap:wrap;gap:6px}.tile-desc{margin:0;color:var(--text-muted);font-size:var(--text-sm);line-height:var(--lh-sm)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-7) var(--space-4);background:color-mix(in srgb,var(--text) 55%,transparent);animation:fade-in var(--duration-base) var(--ease)}.modal-card{display:flex;flex-direction:column;width:100%;max-height:calc(100dvh - var(--space-7));background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;animation:pop-in var(--duration-base) var(--ease)}.modal-sm{max-width:360px}.modal-md{max-width:520px}.modal-lg{max-width:720px}.modal-xl{max-width:920px}.modal-head{flex:0 0 auto;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.modal-head h2{font-size:var(--text-md)}.modal-body{flex:1 1 auto;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.modal-foot{flex:0 0 auto;display:flex;gap:var(--space-2);justify-content:flex-end;align-items:center;padding:var(--space-3) var(--space-5);border-top:1px solid var(--border-subtle)}.modal-close{margin-left:auto}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:color-mix(in srgb,var(--text) 40%,transparent);animation:fade-in var(--duration-base) var(--ease)}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:901;width:min(820px,94vw);display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);animation:slide-in var(--duration-slow) var(--ease)}@keyframes slide-in{0%{transform:translate(24px);opacity:.6}to{transform:translate(0);opacity:1}}.drawer-head{flex:0 0 auto;display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.drawer-head h2{font-size:var(--text-md);display:inline-flex;align-items:center;gap:var(--space-2)}.drawer-body{flex:1 1 auto;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.drawer-toolbar{display:flex;gap:var(--space-3);align-items:flex-end;flex-wrap:wrap}.section-title{font-size:var(--text-xs);font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin:var(--space-2) 0 0}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--text-muted)}.hint{color:var(--text-muted);font-size:var(--text-sm)}.danger-text{color:var(--danger)}.strike{text-decoration:line-through;color:var(--text-muted)}.kv{width:100%;border-collapse:collapse}.kv th,.kv td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border-subtle);vertical-align:top;font-size:var(--text-sm)}.kv th{width:240px;color:var(--text-secondary);font-weight:var(--fw-medium)}.kv tr:last-child th,.kv tr:last-child td{border-bottom:none}.dev-actas{display:flex;align-items:center;gap:var(--space-2);padding:8px 12px;background:var(--warning-bg);border:1px solid color-mix(in srgb,var(--warning) 22%,transparent);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--warning)}.dev-actas .input{width:160px}.stepper{display:flex;flex-direction:column}.step{display:flex;gap:var(--space-2);padding:6px 0;position:relative}.step-dot{width:22px;height:22px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:var(--fw-bold);background:var(--surface-sunken);color:var(--text-muted);border:2px solid var(--border);z-index:1}.step.done .step-dot{background:var(--success);color:#fff;border-color:var(--success)}.step.current .step-dot{background:var(--accent-600);color:#fff;border-color:var(--accent-600)}.step:not(:last-child):after{content:"";position:absolute;left:10px;top:26px;bottom:-6px;width:2px;background:var(--border)}.step.done:not(:last-child):after{background:var(--success)}.step-name{font-weight:var(--fw-medium)}.step-meta{color:var(--text-muted);font-size:var(--text-xs)}.envelope{background:#0f1722;color:#cfe3f7;padding:12px 14px;border-radius:var(--radius-md);font:12px/1.5 var(--font-mono);overflow:auto;white-space:pre-wrap;word-break:break-word;max-height:60vh}.toast{position:fixed;bottom:18px;right:18px;z-index:1100;background:var(--text);color:var(--surface);padding:10px 16px;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-width:460px;font-size:var(--text-sm)}.cell-link{color:var(--text-link);cursor:pointer}.cell-link:hover{text-decoration:underline}.xg-table tbody tr.evicted td:not(.xg-rownum){color:var(--text-muted)}.onboard-page{overflow:auto;gap:var(--space-4)}.onb-source{display:flex;align-items:center;gap:var(--space-3);flex:0 0 auto}.onb-err{background:var(--danger-bg);color:var(--danger-hover);border:1px solid #e7c6c4;padding:8px 12px;border-radius:var(--radius-md);font-size:var(--text-sm)}.onb-info{font-size:var(--text-sm);color:var(--text-secondary)}.onb-cand{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 12px;font-size:var(--text-sm);display:flex;flex-direction:column;gap:3px}.onb-dict{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.onb-dict.onb-off{opacity:.5}.onb-dict-head{display:flex;align-items:center;gap:var(--space-3);padding:8px 12px;background:var(--surface-sunken);border-bottom:1px solid var(--border);flex-wrap:wrap}.onb-dict-head select,.onb-code{padding:4px 8px;font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.onb-code{font-family:var(--font-mono, monospace);min-width:160px}.onb-chk{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.onb-ent{font-weight:var(--fw-medium)}.onb-fields{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.onb-fields th{text-align:left;padding:5px 10px;color:var(--text-muted);font-weight:var(--fw-regular);border-bottom:1px solid var(--border)}.onb-fields td{padding:5px 10px;border-bottom:1px solid var(--border)}.onb-fields tr.onb-off td{opacity:.45}.onb-kind{display:inline-block;padding:1px 7px;border-radius:999px;font-size:11px;background:var(--surface-sunken);border:1px solid var(--border)}.onb-kind.k-ref{background:#ede7fb;border-color:#d6c8f5;color:#5b3da8}.onb-kind.k-option{background:#e6f3ea;border-color:#c3e2cd;color:#2f6b43}.onb-kind.k-number{color:#2563a8}.onb-actions{flex:0 0 auto}.onb-result{background:#e6f3ea;border:1px solid #c3e2cd;color:#2f6b43;padding:10px 14px;border-radius:var(--radius-md);font-size:var(--text-sm);display:flex;flex-direction:column;gap:4px}.record-form{gap:var(--space-3)}.form-head{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--space-3)}.form-head-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.form-title{font-size:var(--text-md);font-weight:var(--fw-semibold);margin:0}.form-code{color:var(--text-muted);font-size:var(--text-sm)}.form-permalink{display:flex;align-items:center;gap:var(--space-2);padding:5px 10px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-xs)}.form-toolbar{display:flex;gap:var(--space-2);align-items:flex-end;flex-wrap:wrap}.form-head-fields{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3)}.form-head-fields .kv th{width:200px}.form-head-fields .kv th,.form-head-fields .kv td{border-bottom-color:var(--border);padding:5px 10px}.form-tabs{flex:0 0 auto;display:flex;gap:2px;border-bottom:1px solid var(--border-strong);overflow-x:auto}.form-tab{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:none;background:transparent;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}.form-tab:hover{color:var(--text);background:var(--surface-sunken)}.form-tab.active{color:var(--text);font-weight:var(--fw-medium);border-bottom-color:var(--accent-500)}.form-tab svg{flex:0 0 auto;opacity:.8}.form-tab-count{font-size:11px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:999px;padding:0 6px;color:var(--text-secondary)}.form-tab.active .form-tab-count{background:var(--accent-50);border-color:var(--accent-200);color:var(--accent-text)}.form-pane{flex:1 1 auto;min-height:0;overflow-y:auto;padding-top:var(--space-3)}.form-group-title{font-size:var(--text-xs);font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 var(--space-1)}
