@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--cx-ink-0: #08080B;--cx-ink-1: #0C0C10;--cx-ink-2: #141418;--cx-ink-3: #1A1A20;--cx-ink-4: #222229;--cx-ink-5: #2E2E37;--cx-ink-6: #8A8A96;--cx-ink-7: #B4B4BE;--cx-ink-8: #D6D6DD;--cx-ink-9: #F4F4F7;--cx-indigo-50: #14132E;--cx-indigo-100: #1C1B4A;--cx-indigo-200: #2A2780;--cx-indigo-300: #4A47C8;--cx-indigo-400: #6E68FF;--cx-indigo-500: #5E58FF;--cx-indigo-600: #4D46F0;--cx-indigo-700: #8F8DFF;--cx-indigo-800: #BEBFFF;--cx-magenta-50: #2A0E22;--cx-magenta-100: #3F1130;--cx-magenta-300: #F79ACB;--cx-magenta-500: #F23BA2;--cx-magenta-600: #E5118C;--cx-magenta-700: #F79ACB;--cx-teal-50: #07221A;--cx-teal-100: #0C3326;--cx-teal-300: #5EECA0;--cx-teal-500: #34D399;--cx-teal-600: #10B981;--cx-teal-700: #6EE7B0;--cx-amber-50: #2A1E06;--cx-amber-100: #3C2B08;--cx-amber-500: #F5B544;--cx-amber-600: #FBC55E;--cx-crimson-50: #2C0E0E;--cx-crimson-100: #431414;--cx-crimson-500: #F2585B;--cx-crimson-600: #EF4444;--cx-crimson-700: #FB8A8C;--cx-data-1: #6E68FF;--cx-data-2: #F23BA2;--cx-data-3: #34D399;--cx-data-4: #F5B544;--cx-data-5: #A78BFA;--cx-data-6: #22D3EE;--cx-data-7: #F2585B;--cx-data-8: #A3E635;--cx-bg: var(--cx-ink-0);--cx-bg-subtle: var(--cx-ink-1);--cx-bg-hover: var(--cx-ink-3);--cx-surface: var(--cx-ink-2);--cx-surface-sunken: var(--cx-ink-1);--cx-border: var(--cx-ink-4);--cx-border-warm: var(--cx-ink-4);--cx-border-strong: var(--cx-ink-5);--cx-fg: var(--cx-ink-9);--cx-fg-body: var(--cx-ink-8);--cx-fg-muted: var(--cx-ink-6);--cx-fg-subtle: #5A5A64;--cx-fg-on-primary: #FFFFFF;--cx-primary: var(--cx-indigo-500);--cx-primary-hover: var(--cx-indigo-400);--cx-primary-press: var(--cx-indigo-600);--cx-primary-subtle: var(--cx-indigo-50);--cx-accent: var(--cx-magenta-500);--cx-accent-subtle: var(--cx-magenta-50);--cx-success: var(--cx-teal-500);--cx-success-subtle: var(--cx-teal-50);--cx-warning: var(--cx-amber-500);--cx-warning-subtle: var(--cx-amber-50);--cx-danger: var(--cx-crimson-500);--cx-danger-subtle: var(--cx-crimson-50);--cx-focus-ring: 0 0 0 3px color-mix(in oklab, var(--cx-indigo-500) 40%, transparent);--cx-font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica, Arial, sans-serif;--cx-font-serif: "Instrument Serif", ui-serif, Georgia, Cambria, "Times New Roman", serif;--cx-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--cx-text-2xs: 11px;--cx-text-xs: 12px;--cx-text-sm: 13px;--cx-text-md: 15px;--cx-text-lg: 18px;--cx-text-xl: 22px;--cx-text-2xl: 28px;--cx-text-3xl: 38px;--cx-text-4xl: 52px;--cx-w-regular: 400;--cx-w-medium: 500;--cx-w-semi: 600;--cx-w-bold: 700;--cx-lh-tight: 1.1;--cx-lh-snug: 1.25;--cx-lh-normal: 1.45;--cx-lh-prose: 1.6;--cx-track-tight: -.02em;--cx-track-snug: -.01em;--cx-track-normal: 0;--cx-track-wide: .06em;--cx-space-0: 0;--cx-space-1: 2px;--cx-space-2: 4px;--cx-space-3: 8px;--cx-space-4: 12px;--cx-space-5: 16px;--cx-space-6: 20px;--cx-space-7: 24px;--cx-space-8: 32px;--cx-space-9: 40px;--cx-space-10: 56px;--cx-space-11: 72px;--cx-space-12: 96px;--cx-radius-xs: 3px;--cx-radius-sm: 6px;--cx-radius-md: 8px;--cx-radius-lg: 10px;--cx-radius-xl: 14px;--cx-radius-2xl: 20px;--cx-radius-pill: 999px;--cx-shadow-xs: 0 1px 0 0 rgba(0,0,0,.4);--cx-shadow-sm: 0 1px 2px rgba(0,0,0,.5), 0 1px 1px rgba(0,0,0,.4);--cx-shadow-md: 0 6px 16px -4px rgba(0,0,0,.6), 0 2px 6px -1px rgba(0,0,0,.5);--cx-shadow-lg: 0 16px 36px -10px rgba(0,0,0,.7), 0 6px 14px -4px rgba(0,0,0,.5);--cx-shadow-xl: 0 28px 60px -16px rgba(0,0,0,.8), 0 10px 22px -6px rgba(0,0,0,.6);--cx-shadow-primary: 0 1px 0 rgba(255,255,255,.16) inset, 0 6px 20px -4px rgba(94, 88, 255, .5);--cx-ease: cubic-bezier(.2, .8, .2, 1);--cx-ease-in: cubic-bezier(.4, 0, 1, 1);--cx-ease-out: cubic-bezier(0, 0, .2, 1);--cx-dur-instant: 80ms;--cx-dur-fast: .12s;--cx-dur-base: .18s;--cx-dur-slow: .28s;--cx-sidebar-w: 248px;--cx-topbar-h: 52px}html,body{font-family:var(--cx-font-sans);font-size:var(--cx-text-md);line-height:var(--cx-lh-normal);color:var(--cx-fg-body);background:var(--cx-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01","ss03"}::selection{background:var(--cx-indigo-200);color:var(--cx-fg)}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0}.app{display:grid;grid-template-columns:var(--cx-sidebar-w) 1fr;height:100vh;overflow:hidden}.main{display:flex;flex-direction:column;overflow:hidden;min-width:0}.content{flex:1;overflow-y:auto;padding:28px 36px 64px}.content-narrow{max-width:1080px;margin:0 auto}.sidebar{background:var(--cx-bg-subtle);border-right:1px solid var(--cx-border);display:flex;flex-direction:column;padding:14px 12px;gap:6px;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 12px}.brand .mark{width:28px;height:28px;flex-shrink:0}.brand .name{font-weight:600;font-size:15px;letter-spacing:-.015em;color:var(--cx-fg)}.brand .name small{display:block;font-weight:500;font-size:10.5px;letter-spacing:.04em;color:var(--cx-fg-muted);text-transform:uppercase}.proj-switch{display:flex;align-items:center;gap:10px;padding:8px 10px;margin-bottom:6px;border:1px solid var(--cx-border);border-radius:var(--cx-radius-md);background:var(--cx-surface);cursor:pointer;transition:border-color var(--cx-dur-fast) var(--cx-ease),background var(--cx-dur-fast) var(--cx-ease)}.proj-switch:hover{border-color:var(--cx-border-strong);background:var(--cx-bg-hover)}.proj-switch .pico{width:26px;height:26px;border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:600;background:linear-gradient(135deg,var(--cx-indigo-500),var(--cx-magenta-500))}.proj-switch .ptxt{min-width:0;flex:1}.proj-switch .ptxt .pname{font-size:13px;font-weight:600;color:var(--cx-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-switch .ptxt .psub{font-size:11px;color:var(--cx-fg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-switch .chev{color:var(--cx-fg-muted);flex-shrink:0}.nav-section{display:flex;flex-direction:column;gap:1px}.nav-section h5{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--cx-fg-muted);padding:12px 10px 5px;margin:0}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:6px;font-size:13px;color:var(--cx-fg-body);cursor:pointer;-webkit-user-select:none;user-select:none;line-height:1.3;transition:background var(--cx-dur-fast) var(--cx-ease),color var(--cx-dur-fast) var(--cx-ease)}.nav-item:hover{background:var(--cx-bg-hover);color:var(--cx-fg)}.nav-item.active{background:var(--cx-surface);color:var(--cx-fg);font-weight:500;box-shadow:var(--cx-shadow-xs)}.nav-item .icon{width:16px;height:16px;color:var(--cx-fg-muted);flex-shrink:0}.nav-item.active .icon{color:var(--cx-primary)}.nav-item .count{margin-left:auto;font-family:var(--cx-font-mono);font-size:11px;color:var(--cx-fg-muted);font-variant-numeric:tabular-nums}.nav-item.danger:hover,.nav-item.danger:hover .icon{color:var(--cx-danger)}.nav-item.disabled{opacity:.4;pointer-events:none}.topbar{height:var(--cx-topbar-h);border-bottom:1px solid var(--cx-border);background:color-mix(in oklab,var(--cx-bg) 72%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;padding:0 20px;gap:14px;position:relative;z-index:10;flex-shrink:0}.topbar .crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--cx-fg-muted)}.topbar .crumbs .sep{color:var(--cx-fg-subtle)}.topbar .crumbs .current{color:var(--cx-fg);font-weight:500}.topbar .crumbs .clickable{cursor:pointer}.topbar .crumbs .clickable:hover{color:var(--cx-fg-body)}.topbar .spacer{flex:1}.demo-toggle{display:inline-flex;align-items:center;background:var(--cx-surface);border:1px solid var(--cx-border);border-radius:var(--cx-radius-sm);padding:2px;gap:2px}.demo-toggle button{font:inherit;font-size:11.5px;font-weight:500;padding:3px 9px;border:0;background:transparent;color:var(--cx-fg-muted);border-radius:4px;cursor:pointer;white-space:nowrap;transition:all var(--cx-dur-fast) var(--cx-ease)}.demo-toggle button.on{background:var(--cx-bg-hover);color:var(--cx-fg);box-shadow:var(--cx-shadow-xs)}.demo-toggle .lbl{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--cx-fg-subtle);padding:0 6px 0 4px}.avatar{width:27px;height:27px;border-radius:7px;background:linear-gradient(135deg,var(--cx-indigo-500),var(--cx-magenta-500));color:#fff;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid var(--cx-border)}.page-head h1{margin:0 0 5px;font-size:23px;font-weight:600;letter-spacing:-.02em;color:var(--cx-fg)}.page-head p{margin:0;font-size:13px;color:var(--cx-fg-muted);max-width:560px}.page-head .actions{display:flex;gap:8px;flex-shrink:0}.btn{font-family:inherit;font-weight:500;font-size:13px;border-radius:6px;cursor:pointer;transition:all var(--cx-dur-fast) var(--cx-ease);border:1px solid transparent;padding:7px 14px;display:inline-flex;align-items:center;gap:6px;line-height:1.2;white-space:nowrap}.btn svg{width:14px;height:14px}.btn:active{transform:scale(.98)}.btn:disabled,.btn.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--cx-primary);color:var(--cx-fg-on-primary);box-shadow:var(--cx-shadow-primary)}.btn-primary:hover{background:var(--cx-primary-hover)}.btn-secondary{background:var(--cx-surface);color:var(--cx-fg);border-color:var(--cx-border-strong);box-shadow:var(--cx-shadow-xs)}.btn-secondary:hover{background:var(--cx-bg-hover);border-color:var(--cx-ink-6)}.btn-ghost{background:transparent;color:var(--cx-fg-body)}.btn-ghost:hover{background:var(--cx-bg-hover);color:var(--cx-fg)}.btn-danger{background:var(--cx-crimson-600);color:#fff;box-shadow:0 6px 18px -6px #ef444480}.btn-danger:hover{background:var(--cx-crimson-500)}.btn-danger-soft{background:var(--cx-crimson-50);color:var(--cx-crimson-700);border-color:var(--cx-crimson-100)}.btn-danger-soft:hover{background:var(--cx-crimson-100)}.btn-icon{padding:7px;width:30px;height:30px;justify-content:center}.btn-sm{padding:4px 10px;font-size:12px}.btn-lg{padding:9px 18px;font-size:14px}.btn .spinner{animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:12.5px;font-weight:500;color:var(--cx-fg-body);display:flex;align-items:center;gap:6px}.field .req{color:var(--cx-accent)}.field .help{font-size:11.5px;color:var(--cx-fg-muted);line-height:1.4}.field .err{font-size:11.5px;color:var(--cx-danger);display:flex;align-items:center;gap:5px}.input,.select,textarea.input{font-family:inherit;font-size:13px;padding:8px 11px;border:1px solid var(--cx-border-strong);border-radius:6px;background:var(--cx-ink-1);color:var(--cx-fg);outline:none;width:100%;transition:border-color var(--cx-dur-fast) var(--cx-ease),box-shadow var(--cx-dur-fast) var(--cx-ease)}.input::placeholder{color:var(--cx-fg-subtle)}.input:focus,.select:focus,textarea.input:focus{border-color:var(--cx-primary);box-shadow:var(--cx-focus-ring)}.input.has-error{border-color:var(--cx-danger)}.input.mono{font-family:var(--cx-font-mono);font-size:12.5px}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238A8A96' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;padding-right:30px}.input-prefix{position:relative}.input-prefix .pf{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--cx-fg-subtle);font-size:13px;font-family:var(--cx-font-mono);pointer-events:none}.input-prefix .input{padding-left:0}.seg{display:inline-flex;border:1px solid var(--cx-border-strong);border-radius:var(--cx-radius-sm);padding:3px;gap:3px;background:var(--cx-ink-1)}.seg button{font:inherit;font-size:12.5px;font-weight:500;padding:5px 12px;border:0;background:transparent;color:var(--cx-fg-muted);border-radius:4px;cursor:pointer;transition:all var(--cx-dur-fast) var(--cx-ease);display:inline-flex;align-items:center;gap:6px}.seg button.on{background:var(--cx-surface);color:var(--cx-fg);box-shadow:var(--cx-shadow-sm)}.seg.full{display:flex}.seg.full button{flex:1;justify-content:center}.radio-card{display:flex;gap:11px;padding:12px 14px;border:1px solid var(--cx-border-strong);border-radius:var(--cx-radius-md);cursor:pointer;background:var(--cx-ink-1);transition:all var(--cx-dur-fast) var(--cx-ease)}.radio-card:hover{border-color:var(--cx-ink-6)}.radio-card.on{border-color:var(--cx-primary);background:var(--cx-primary-subtle);box-shadow:var(--cx-focus-ring)}.radio-card .rdot{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--cx-border-strong);flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center}.radio-card.on .rdot{border-color:var(--cx-primary)}.radio-card.on .rdot:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--cx-primary)}.radio-card .rtitle{font-size:13px;font-weight:500;color:var(--cx-fg);display:flex;align-items:center;gap:8px}.radio-card .rdesc{font-size:11.5px;color:var(--cx-fg-muted);margin-top:3px;line-height:1.45}.toggle{position:relative;width:36px;height:20px;border-radius:999px;background:var(--cx-ink-5);cursor:pointer;transition:background var(--cx-dur-fast) var(--cx-ease);flex-shrink:0}.toggle.on{background:var(--cx-primary)}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform var(--cx-dur-fast) var(--cx-ease);box-shadow:0 1px 2px #0006}.toggle.on:after{transform:translate(16px)}.panel{background:var(--cx-surface);border:1px solid var(--cx-border);border-radius:10px;box-shadow:var(--cx-shadow-sm);overflow:hidden}.panel-head{padding:13px 16px;border-bottom:1px solid var(--cx-border);display:flex;align-items:center;gap:12px}.panel-head h3{margin:0;font-size:14px;font-weight:600;color:var(--cx-fg)}.panel-head .count{font-size:12px;color:var(--cx-fg-muted);font-family:var(--cx-font-mono)}.panel-head .spacer{flex:1}.panel-pad{padding:16px}table.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table thead th{text-align:left;font-weight:600;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--cx-fg-muted);padding:9px 16px;border-bottom:1px solid var(--cx-border);background:var(--cx-bg-subtle);white-space:nowrap}.data-table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table thead th.sortable:hover{color:var(--cx-fg-body)}.data-table tbody td{padding:11px 16px;border-bottom:1px solid var(--cx-border);color:var(--cx-fg-body);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr.clickable:hover td{background:var(--cx-bg-hover)}.data-table .num{font-family:var(--cx-font-mono);font-variant-numeric:tabular-nums;font-size:12.5px}.data-table .mono{font-family:var(--cx-font-mono);font-size:12px}.row-actions{display:flex;gap:4px;justify-content:flex-end;opacity:0;transition:opacity var(--cx-dur-fast) var(--cx-ease)}.data-table tbody tr:hover .row-actions{opacity:1}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:500;line-height:1.5;white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.badge.pulsing .dot{animation:dotpulse 1.4s var(--cx-ease) infinite}@keyframes dotpulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.badge-success{background:var(--cx-success-subtle);color:var(--cx-teal-300)}.badge-success .dot{background:var(--cx-teal-500)}.badge-warn{background:var(--cx-warning-subtle);color:var(--cx-amber-500)}.badge-warn .dot{background:var(--cx-amber-500)}.badge-danger{background:var(--cx-danger-subtle);color:var(--cx-crimson-700)}.badge-danger .dot{background:var(--cx-crimson-500)}.badge-primary{background:var(--cx-primary-subtle);color:var(--cx-indigo-700)}.badge-primary .dot{background:var(--cx-primary)}.badge-neutral{background:var(--cx-ink-3);color:var(--cx-fg-muted)}.badge-neutral .dot{background:var(--cx-fg-muted)}.badge-accent{background:var(--cx-accent-subtle);color:var(--cx-magenta-300)}.badge-accent .dot{background:var(--cx-accent)}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:5px;font-size:12px;background:var(--cx-bg-subtle);border:1px solid var(--cx-border);color:var(--cx-fg-body);cursor:pointer;transition:border-color var(--cx-dur-fast) var(--cx-ease)}.chip b{font-weight:600;color:var(--cx-fg)}.chip:hover{border-color:var(--cx-border-strong)}.chip-x{color:var(--cx-fg-subtle);margin-left:2px;font-size:14px;line-height:1;cursor:pointer}.chip-x:hover{color:var(--cx-fg)}.chip.static{cursor:default}.tokenbox{position:relative}.tokenbox .tokens{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:38px;padding:6px 8px;border:1px solid var(--cx-border-strong);border-radius:6px;background:var(--cx-ink-1);transition:border-color var(--cx-dur-fast) var(--cx-ease),box-shadow var(--cx-dur-fast) var(--cx-ease)}.tokenbox.focused .tokens{border-color:var(--cx-primary);box-shadow:var(--cx-focus-ring)}.tokenbox.disabled .tokens{opacity:.5;pointer-events:none}.token{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 9px;border-radius:var(--cx-radius-pill);font-size:12px;background:var(--cx-primary-subtle);color:var(--cx-indigo-700);border:1px solid var(--cx-indigo-100);white-space:nowrap}.token .tk-x{display:inline-flex;cursor:pointer;opacity:.7;border-radius:50%;padding:1px}.token .tk-x:hover{opacity:1;background:color-mix(in oklab,var(--cx-primary) 25%,transparent)}.tokenbox .tk-input{flex:1;min-width:90px;border:0;outline:none;background:transparent;color:var(--cx-fg);font:inherit;font-size:13px;padding:3px 2px}.tokenbox .tk-input::placeholder{color:var(--cx-fg-subtle)}.tk-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;max-height:240px;overflow-y:auto;background:var(--cx-surface);border:1px solid var(--cx-border-strong);border-radius:var(--cx-radius-md);box-shadow:var(--cx-shadow-lg);padding:4px}.tk-opt{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:var(--cx-radius-sm);cursor:pointer;font-size:13px;color:var(--cx-fg-body)}.tk-opt:hover,.tk-opt.active{background:var(--cx-bg-hover);color:var(--cx-fg)}.tk-opt .tk-count{margin-left:auto;font-family:var(--cx-font-mono);font-size:11px;color:var(--cx-fg-muted)}.tk-empty{padding:9px;font-size:12px;color:var(--cx-fg-muted);text-align:center}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--cx-border);margin-bottom:20px}.tab{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;font:inherit;font-size:13px;font-weight:500;color:var(--cx-fg-muted);background:transparent;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:color var(--cx-dur-fast) var(--cx-ease),border-color var(--cx-dur-fast) var(--cx-ease)}.tab:hover{color:var(--cx-fg-body)}.tab.active{color:var(--cx-fg);border-bottom-color:var(--cx-primary)}.tab .count{padding:1px 6px;border-radius:var(--cx-radius-xs);background:var(--cx-bg-subtle);color:var(--cx-fg-muted);font-size:11px;font-variant-numeric:tabular-nums}.tab.active .count{background:var(--cx-primary-subtle);color:var(--cx-indigo-700)}.empty-state{padding:52px 24px;text-align:center;border:1px dashed var(--cx-border-strong);border-radius:var(--cx-radius-lg);background:var(--cx-bg-subtle)}.empty-state .empty-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--cx-surface);border:1px solid var(--cx-border);color:var(--cx-fg-muted);margin-bottom:14px}.empty-state h4{font-size:16px;font-weight:600;color:var(--cx-fg);margin:0 0 6px}.empty-state p{font-size:13px;color:var(--cx-fg-muted);margin:0 auto 18px;max-width:380px;line-height:1.55}.hflex{display:flex;align-items:center;gap:10px}.vflex{display:flex;flex-direction:column;gap:10px}.muted{color:var(--cx-fg-muted)}.num{font-family:var(--cx-font-mono);font-variant-numeric:tabular-nums}.mono{font-family:var(--cx-font-mono)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.spacer{flex:1}.divider{height:1px;background:var(--cx-border);margin:0}a.link{color:var(--cx-indigo-700);text-decoration:none;cursor:pointer}a.link:hover{text-decoration:underline}.wordmark{display:flex;align-items:center;gap:9px}.wordmark .glyph{width:26px;height:26px;flex-shrink:0}.wordmark .wm-text{font-weight:600;font-size:14.5px;letter-spacing:-.01em;color:var(--cx-fg);display:flex;align-items:baseline;gap:3px}.wordmark .wm-text .wp{color:var(--cx-primary);font-weight:700}.conn-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.conn-card{background:var(--cx-surface);border:1px solid var(--cx-border);border-radius:var(--cx-radius-lg);box-shadow:var(--cx-shadow-sm);padding:18px;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden}.conn-card .role-row{display:flex;align-items:center;gap:10px}.conn-card .role-eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--cx-fg-muted)}.conn-card .wp-mark{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--cx-ink-3);border:1px solid var(--cx-border)}.conn-card.connected .wp-mark{background:var(--cx-success-subtle);border-color:transparent}.conn-card .host{font-size:15px;font-weight:600;color:var(--cx-fg);font-family:var(--cx-font-mono);letter-spacing:-.01em}.conn-card .meta{font-size:12.5px;color:var(--cx-fg-muted)}.conn-card .meta b{color:var(--cx-fg-body);font-weight:500}.conn-card .cc-foot{display:flex;align-items:center;gap:10px;margin-top:auto}.conn-card.disconnected{border-style:dashed}.tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.tiles.tiles-4{grid-template-columns:repeat(4,1fr)}.tile{background:var(--cx-surface);border:1px solid var(--cx-border);border-radius:var(--cx-radius-lg);padding:15px 16px;box-shadow:var(--cx-shadow-sm);position:relative;overflow:hidden}.tile .tlabel{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--cx-fg-muted);display:flex;align-items:center;gap:6px}.tile .tval{font-family:var(--cx-font-mono);font-size:28px;font-weight:500;letter-spacing:-.02em;color:var(--cx-fg);font-variant-numeric:tabular-nums;line-height:1.1;margin-top:8px}.tile .tbar{position:absolute;left:0;top:0;bottom:0;width:3px}.tile.t-created .tbar{background:var(--cx-success)}.tile.t-created .tval{color:var(--cx-teal-300)}.tile.t-updated .tbar{background:var(--cx-primary)}.tile.t-updated .tval{color:var(--cx-indigo-700)}.tile.t-skipped .tbar{background:var(--cx-warning)}.tile.t-failed .tbar{background:var(--cx-danger)}.tile.t-failed.has .tval{color:var(--cx-crimson-700)}.tile.t-pending .tbar{background:var(--cx-fg-muted)}.tile .tdelta{font-size:11px;color:var(--cx-fg-subtle);margin-top:4px;font-variant-numeric:tabular-nums}.tile.compact{display:flex;align-items:center;gap:12px;padding:12px 14px}.tile.compact .tval{font-size:22px;margin:0}.tile.compact .tlabel{margin-left:auto}.stepper{display:flex;align-items:center;gap:0;margin-bottom:24px}.step{display:flex;align-items:center;gap:10px;flex:1}.step .snum{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--cx-border-strong);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--cx-fg-muted);flex-shrink:0;background:var(--cx-surface);transition:all var(--cx-dur-base) var(--cx-ease)}.step .slabel{font-size:12.5px;font-weight:500;color:var(--cx-fg-muted);white-space:nowrap;transition:color var(--cx-dur-base) var(--cx-ease)}.step.active .snum{border-color:var(--cx-primary);color:var(--cx-fg-on-primary);background:var(--cx-primary);box-shadow:var(--cx-focus-ring)}.step.active .slabel{color:var(--cx-fg)}.step.done .snum{border-color:var(--cx-primary);color:var(--cx-primary);background:var(--cx-primary-subtle)}.step.done .slabel{color:var(--cx-fg-body)}.step .sline{flex:1;height:1.5px;background:var(--cx-border-strong);margin:0 12px;transition:background var(--cx-dur-base) var(--cx-ease)}.step.done .sline{background:var(--cx-primary)}.step.clickable{cursor:pointer}.maprow{display:grid;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--cx-radius-sm);transition:background var(--cx-dur-fast) var(--cx-ease)}.maprow:hover{background:var(--cx-bg-subtle)}.maprow .arrow{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--cx-bg-subtle);color:var(--cx-fg-muted);flex-shrink:0}.maprow-head{display:grid;gap:10px;padding:0 10px 4px;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--cx-fg-muted)}.xbtn{width:26px;height:26px;border-radius:var(--cx-radius-sm);border:0;background:transparent;color:var(--cx-fg-subtle);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all var(--cx-dur-fast) var(--cx-ease)}.xbtn:hover{background:var(--cx-danger-subtle);color:var(--cx-danger)}.tf-pills{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.tf-pill{display:inline-flex;align-items:center;gap:5px;font-family:var(--cx-font-mono);font-size:11px;padding:3px 7px;border-radius:var(--cx-radius-xs);background:var(--cx-indigo-50);color:var(--cx-indigo-700);border:1px solid var(--cx-indigo-100)}.tf-pill .x{cursor:pointer;opacity:.6}.tf-pill .x:hover{opacity:1}.tf-add{font-size:11.5px;color:var(--cx-fg-muted);border:1px dashed var(--cx-border-strong);background:transparent;border-radius:var(--cx-radius-xs);padding:3px 8px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.tf-add:hover{border-color:var(--cx-primary);color:var(--cx-primary)}.review-block{border:1px solid var(--cx-border);border-radius:var(--cx-radius-md);overflow:hidden}.review-block+.review-block{margin-top:12px}.review-head{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--cx-bg-subtle);border-bottom:1px solid var(--cx-border)}.review-head .rh-title{font-size:13px;font-weight:600;color:var(--cx-fg)}.review-head .rh-edit{margin-left:auto}.review-body{padding:12px 14px}.kv{display:grid;grid-template-columns:160px 1fr;gap:8px 16px;font-size:13px}.kv dt{color:var(--cx-fg-muted)}.kv dd{margin:0;color:var(--cx-fg)}.danger-zone{border:1px solid var(--cx-crimson-100);border-radius:var(--cx-radius-lg);background:linear-gradient(180deg,var(--cx-crimson-50),var(--cx-surface) 60%);overflow:hidden}.danger-zone .dz-head{padding:16px 20px;border-bottom:1px solid var(--cx-crimson-100);display:flex;align-items:center;gap:12px}.danger-zone .dz-icon{width:36px;height:36px;border-radius:9px;background:var(--cx-crimson-100);color:var(--cx-crimson-700);display:flex;align-items:center;justify-content:center;flex-shrink:0}.danger-zone .dz-body{padding:20px}.confirm-input{border-color:var(--cx-crimson-100)!important}.confirm-input:focus{border-color:var(--cx-danger)!important;box-shadow:0 0 0 3px color-mix(in oklab,var(--cx-danger) 30%,transparent)!important}.toast-wrap{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;flex-direction:column;gap:10px}.toast{display:flex;align-items:flex-start;gap:11px;min-width:300px;max-width:420px;padding:13px 15px;background:var(--cx-ink-3);border:1px solid var(--cx-border-strong);border-radius:var(--cx-radius-md);box-shadow:var(--cx-shadow-lg)}.toast .ticon{width:20px;height:20px;flex-shrink:0;margin-top:1px}.toast.success .ticon{color:var(--cx-teal-300)}.toast.error .ticon{color:var(--cx-crimson-700)}.toast.info .ticon{color:var(--cx-indigo-700)}.toast .ttitle{font-size:13px;font-weight:600;color:var(--cx-fg)}.toast .tbody{font-size:12px;color:var(--cx-fg-muted);margin-top:2px;line-height:1.45}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:150;display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:var(--cx-surface);border:1px solid var(--cx-border-strong);border-radius:var(--cx-radius-xl);box-shadow:var(--cx-shadow-xl);width:100%;max-width:480px}.modal-head{padding:18px 20px 0}.modal-head h3{margin:0;font-size:17px;font-weight:600;color:var(--cx-fg)}.modal-head p{margin:6px 0 0;font-size:13px;color:var(--cx-fg-muted);line-height:1.5}.modal-body{padding:18px 20px}.modal-foot{padding:14px 20px;border-top:1px solid var(--cx-border);display:flex;gap:8px;justify-content:flex-end}.progress{height:6px;border-radius:999px;background:var(--cx-ink-3);overflow:hidden}.progress .fill{height:100%;border-radius:999px;background:var(--cx-primary);transition:width var(--cx-dur-slow) var(--cx-ease)}.progress .fill.success{background:var(--cx-success)}.progress.seg{display:flex;gap:2px;background:transparent}.progress.seg .s{height:100%}.progress.seg .s.c{background:var(--cx-success)}.progress.seg .s.u{background:var(--cx-primary)}.progress.seg .s.s{background:var(--cx-warning)}.progress.seg .s.f{background:var(--cx-danger)}.progress.seg .s.p{background:var(--cx-ink-4)}.dryrun-banner{display:flex;align-items:center;gap:12px;padding:11px 16px;border-radius:var(--cx-radius-md);background:var(--cx-warning-subtle);border:1px solid color-mix(in oklab,var(--cx-warning) 30%,transparent);color:var(--cx-amber-500);font-size:13px}.dryrun-banner b{color:var(--cx-amber-600)}.dryrun-banner svg{flex-shrink:0}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:radial-gradient(900px 500px at 50% -10%,color-mix(in oklab,var(--cx-primary) 14%,transparent),transparent 70%),var(--cx-bg)}.auth-card{width:100%;max-width:380px;background:var(--cx-surface);border:1px solid var(--cx-border-strong);border-radius:var(--cx-radius-xl);box-shadow:var(--cx-shadow-xl);padding:32px}.dotgrid{background-image:radial-gradient(var(--cx-ink-4) 1px,transparent 1px);background-size:22px 22px}@media (prefers-reduced-motion: reduce){*{animation-duration:0ms!important;transition-duration:0ms!important}}
