@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&family=JetBrains+Mono:wght@400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--gray-0:#fff;--gray-50:#f7f8fa;--gray-100:#eef0f4;--gray-150:#e3e6ec;--gray-200:#d6dae2;--gray-300:#bcc2cd;--gray-400:#9aa1ae;--gray-500:#737a87;--gray-600:#535a67;--gray-700:#3a414c;--gray-800:#252a33;--gray-900:#15181e;--gray-950:#0b0d12;--brand-50:#eef2fb;--brand-100:#dbe3f7;--brand-200:#b3c2ee;--brand-300:#8198de;--brand-400:#4f6dc9;--brand-500:#2f4cb0;--brand-600:#1f3a96;--brand-700:#1a2f7a;--brand-800:#182a66;--brand-900:#131f4a;--success-50:#e9f6ec;--success-100:#cdebd2;--success-500:#2f8a47;--success-600:#246d38;--success-700:#1d562d;--warning-50:#fdf2db;--warning-100:#fae3b1;--warning-500:#b97a0a;--warning-600:#905f07;--warning-700:#6f4a06;--danger-50:#fbebe7;--danger-100:#f5cec5;--danger-500:#b23a2a;--danger-600:#8e2c1f;--danger-700:#6d2117;--critical-50:#fdeede;--critical-100:#f9d6ad;--critical-500:#c46a17;--critical-600:#9b5210;--info-50:#e6f1fa;--info-100:#c5deef;--info-500:#2c6db0;--info-600:#21568b;--neutral-50:var(--gray-100);--neutral-100:var(--gray-150);--neutral-500:var(--gray-500);--neutral-600:var(--gray-600);--neutral-700:var(--gray-700);--bg-app:var(--gray-50);--bg-surface:var(--gray-0);--bg-sunken:var(--gray-100);--bg-hover:#15181e0a;--bg-pressed:#15181e14;--bg-selected:var(--brand-50);--bg-overlay:#0b0d127a;--fg-primary:var(--gray-900);--fg-secondary:var(--gray-600);--fg-muted:var(--gray-500);--fg-disabled:var(--gray-400);--fg-inverse:var(--gray-0);--fg-link:var(--brand-600);--fg-link-hover:var(--brand-700);--fg-on-brand:var(--gray-0);--border-subtle:var(--gray-150);--border-default:var(--gray-200);--border-strong:var(--gray-300);--border-focus:var(--brand-500);--border-danger:var(--danger-500);--focus-ring:0 0 0 3px #2f4cb052;--danger-ring:0 0 0 3px #b23a2a52;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-pill:999px;--shadow-xs:0 1px 1px #0b0d120a;--shadow-sm:0 1px 2px #0b0d120f, 0 1px 1px #0b0d120a;--shadow-md:0 4px 10px -2px #0b0d1214, 0 2px 4px -2px #0b0d120d;--shadow-lg:0 12px 24px -6px #0b0d121f, 0 4px 8px -4px #0b0d120f;--shadow-overlay:0 24px 48px -12px #0b0d123d;--space-0:0;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;--space-9:40px;--space-10:48px;--space-11:64px;--space-12:80px;--space-13:96px;--shell-sidenav-w:248px;--shell-sidenav-w-collapsed:56px;--shell-header-h:56px;--content-max-w:1200px;--content-reading-w:720px;--bp-mobile:360px;--bp-tablet:768px;--bp-desktop:1280px;--bp-wide:1600px;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-emphasis:cubic-bezier(.2, 0, .1, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1);--dur-instant:80ms;--dur-fast:.12s;--dur-base:.18s;--dur-slow:.26s;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-serif:"Source Serif 4", "PT Serif", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--fs-display:36px;--lh-display:44px;--fs-h1:28px;--lh-h1:36px;--fs-h2:22px;--lh-h2:30px;--fs-h3:18px;--lh-h3:26px;--fs-h4:16px;--lh-h4:24px;--fs-body:14px;--lh-body:22px;--fs-body-lg:16px;--lh-body-lg:24px;--fs-reading:17px;--lh-reading:28px;--fs-small:13px;--lh-small:20px;--fs-meta:12px;--lh-meta:16px;--fs-mono:13px;--lh-mono:20px;--letter-tight:-.01em;--letter-normal:0;--letter-wide:.02em;--letter-caps:.06em}.text-display{font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--letter-tight);color:var(--fg-primary)}.text-h1{font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--letter-tight);color:var(--fg-primary)}.text-h2{font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--fs-h2);line-height:var(--lh-h2);color:var(--fg-primary)}.text-h3{font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--fs-h3);line-height:var(--lh-h3);color:var(--fg-primary)}.text-h4{font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--fs-h4);line-height:var(--lh-h4);color:var(--fg-primary)}.text-body{font-family:var(--font-sans);font-weight:var(--weight-regular);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--fg-primary)}.text-body-strong{font-family:var(--font-sans);font-weight:var(--weight-medium);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--fg-primary)}.text-body-lg{font-family:var(--font-sans);font-weight:var(--weight-regular);font-size:var(--fs-body-lg);line-height:var(--lh-body-lg);color:var(--fg-primary)}.text-reading{font-family:var(--font-serif);font-weight:var(--weight-regular);font-size:var(--fs-reading);line-height:var(--lh-reading);color:var(--gray-800)}.text-reading h2,.text-reading h3{font-family:var(--font-sans)}.text-small{font-family:var(--font-sans);font-weight:var(--weight-regular);font-size:var(--fs-small);line-height:var(--lh-small);color:var(--fg-secondary)}.text-meta{font-family:var(--font-sans);font-weight:var(--weight-medium);font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--fg-secondary);letter-spacing:var(--letter-wide)}.text-overline{font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--fg-secondary);letter-spacing:var(--letter-caps);text-transform:uppercase}.text-mono{font-family:var(--font-mono);font-weight:var(--weight-regular);font-size:var(--fs-mono);line-height:var(--lh-mono);color:var(--fg-secondary)}.text-link{color:var(--fg-link);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}.text-link:hover{color:var(--fg-link-hover);text-decoration-thickness:2px}html{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--fg-primary);background:var(--bg-app);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body{margin:0}[data-theme=dark]{--bg-app:#0f1116;--bg-surface:#161922;--bg-sunken:#1c2030;--fg-primary:#e6e8ec;--fg-secondary:#9ea4b1;--fg-muted:#7e8493;--border-subtle:#232838;--border-default:#2c3245}.btn{appearance:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);height:32px;color:var(--fg-primary);font-family:var(--font-sans);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);-webkit-user-select:none;user-select:none;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:500;display:inline-flex}.btn:hover{background:var(--bg-hover)}.btn:active{background:var(--bg-pressed)}.btn:focus-visible{box-shadow:var(--focus-ring);border-color:var(--border-focus);outline:none}.btn[disabled],.btn:disabled{color:var(--fg-disabled);background:var(--gray-100);cursor:not-allowed}.btn .icon{stroke-width:1.75px;width:14px;height:14px}.btn--primary{background:var(--brand-600);border-color:var(--brand-600);color:var(--fg-inverse)}.btn--primary:hover{background:var(--brand-700);border-color:var(--brand-700)}.btn--primary:active{background:var(--brand-800);border-color:var(--brand-800)}.btn--primary[disabled]{background:var(--gray-200);border-color:var(--gray-200);color:var(--fg-disabled)}.btn--ghost{color:var(--fg-primary);background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--bg-hover)}.btn--danger{background:var(--danger-500);border-color:var(--danger-500);color:var(--fg-inverse)}.btn--danger:hover{background:var(--danger-600);border-color:var(--danger-600)}.btn--sm{height:24px;padding:0 8px;font-size:13px}.btn--lg{height:40px;padding:0 16px;font-size:14px}.btn--icon{width:32px;padding:0}.btn--icon.btn--sm{width:24px}.field{flex-direction:column;gap:4px;display:flex}.field__label{color:var(--fg-primary);font-size:13px;font-weight:500}.field__hint{color:var(--fg-muted);font-size:12px}.field__error{color:var(--danger-600);font-size:12px}.input,.select,.textarea{border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);height:32px;color:var(--fg-primary);font-family:var(--font-sans);width:100%;transition:border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);padding:0 10px;font-size:14px}.textarea{resize:vertical;height:auto;min-height:80px;padding:8px 10px;line-height:22px}.input::placeholder,.textarea::placeholder{color:var(--fg-muted)}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--border-focus);box-shadow:var(--focus-ring);outline:none}.input[disabled]{background:var(--gray-100);color:var(--fg-disabled);cursor:not-allowed}.input--error{border-color:var(--border-danger)}.input--error:focus{box-shadow:var(--danger-ring)}.input--search{background-image:none;padding-left:30px}.input-wrap{position:relative}.input-wrap .input-icon{color:var(--fg-muted);pointer-events:none;width:14px;height:14px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.checkbox,.radio{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:14px;display:inline-flex}.checkbox input,.radio input{appearance:none;border:1px solid var(--border-default);background:var(--bg-surface);cursor:pointer;width:16px;height:16px;transition:all var(--dur-fast) var(--ease-standard);margin:0}.checkbox input{border-radius:3px}.radio input{border-radius:50%}.checkbox input:checked,.radio input:checked{background:var(--brand-600);border-color:var(--brand-600)}.checkbox input:checked:after{content:"";background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") 50%/10px no-repeat;width:10px;height:10px;margin:2px;display:block}.radio input:checked:after{content:"";background:#fff;border-radius:50%;width:6px;height:6px;margin:4px;display:block}.checkbox input:focus-visible,.radio input:focus-visible{box-shadow:var(--focus-ring);outline:none}.toggle{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.toggle__track{background:var(--gray-300);width:32px;height:18px;transition:background var(--dur-fast);border-radius:999px;position:relative}.toggle__thumb{width:14px;height:14px;box-shadow:var(--shadow-xs);transition:left var(--dur-fast) var(--ease-standard);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.toggle input{display:none}.toggle input:checked+.toggle__track{background:var(--brand-600)}.toggle input:checked+.toggle__track .toggle__thumb{left:16px}.badge{border-radius:var(--radius-xs);background:var(--neutral-50);height:22px;color:var(--neutral-700);white-space:nowrap;border:1px solid #0000;align-items:center;gap:4px;padding:0 8px;font-size:12px;font-weight:500;line-height:1;display:inline-flex}.badge .icon{stroke-width:1.75px;flex-shrink:0;width:12px;height:12px}.badge--dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge--success{background:var(--success-50);color:var(--success-700)}.badge--warning{background:var(--warning-50);color:var(--warning-700)}.badge--danger{background:var(--danger-50);color:var(--danger-700)}.badge--critical{background:var(--critical-50);color:var(--critical-600)}.badge--info{background:var(--info-50);color:var(--info-600)}.badge--neutral{background:var(--neutral-50);color:var(--neutral-700)}.badge--outline{border-color:var(--border-default);color:var(--fg-secondary);background:0 0}.tag{border-radius:var(--radius-pill);background:var(--gray-100);height:22px;color:var(--fg-secondary);border:1px solid var(--border-subtle);align-items:center;gap:4px;padding:0 8px;font-size:12px;font-weight:500;display:inline-flex}.tag:hover{background:var(--gray-150)}.tag .close{cursor:pointer;opacity:.6;width:12px;height:12px}.avatar{background:var(--gray-500);color:#fff;letter-spacing:.02em;width:32px;height:32px;font-size:12px;font-weight:600;font-family:var(--font-sans);-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.avatar--sm{width:24px;height:24px;font-size:10px}.avatar--xs{width:20px;height:20px;font-size:9px}.avatar--lg{width:48px;height:48px;font-size:16px}.avatar--c0{background:#5b6e85}.avatar--c1{background:#7a8568}.avatar--c2{background:#8e6e63}.avatar--c3{background:#58647a}.avatar--c4{background:#6b7548}.avatar--c5{background:#745c7a}.avatar--c6{background:#a08b5f}.avatar--c7{background:#3d4a66}.tabs{border-bottom:1px solid var(--border-subtle);gap:4px;display:flex}.tab{height:36px;color:var(--fg-secondary);font-family:var(--font-sans);cursor:pointer;transition:color var(--dur-fast), border-color var(--dur-fast);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:0 12px;font-size:14px;font-weight:500;display:inline-flex}.tab:hover{color:var(--fg-primary)}.tab--active{color:var(--fg-primary);border-bottom-color:var(--brand-600)}.tab .count{border-radius:var(--radius-xs);background:var(--gray-100);height:16px;color:var(--fg-secondary);align-items:center;padding:0 6px;font-size:11px;display:inline-flex}.tab--active .count{background:var(--brand-50);color:var(--brand-700)}.segmented{background:var(--gray-100);border-radius:var(--radius-sm);gap:2px;padding:2px;display:inline-flex}.segmented button{height:24px;font-family:var(--font-sans);color:var(--fg-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:0 10px;font-size:13px;font-weight:500}.segmented button.active{background:var(--bg-surface);color:var(--fg-primary);box-shadow:var(--shadow-xs)}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:20px}.card--link{cursor:pointer;transition:box-shadow var(--dur-fast)}.card--link:hover{box-shadow:var(--shadow-md)}.card__title{color:var(--fg-primary);margin:0 0 4px;font-size:16px;font-weight:600}.card__meta{color:var(--fg-secondary);font-size:12px}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--fg-secondary);border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:8px 12px;font-size:12px;font-weight:500}.table td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;color:var(--fg-primary);padding:10px 12px}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--bg-hover)}.table--compact td,.table--compact th{padding:6px 12px}.table--zebra tbody tr:nth-child(2n) td{background:var(--gray-50)}.progress{background:var(--gray-150);border-radius:999px;width:100%;height:6px;overflow:hidden}.progress__fill{background:var(--brand-600);height:100%;transition:width var(--dur-base);border-radius:999px}.progress--success .progress__fill{background:var(--success-500)}.progress--danger .progress__fill{background:var(--danger-500)}.banner{border-radius:var(--radius-md);border:1px solid;gap:10px;padding:10px 14px;font-size:14px;display:flex}.banner__icon{flex-shrink:0;width:16px;height:16px;margin-top:3px}.banner--info{background:var(--info-50);border-color:var(--info-100);color:var(--info-600)}.banner--success{background:var(--success-50);border-color:var(--success-100);color:var(--success-700)}.banner--warning{background:var(--warning-50);border-color:var(--warning-100);color:var(--warning-700)}.banner--danger{background:var(--danger-50);border-color:var(--danger-100);color:var(--danger-700)}.empty{text-align:center;padding:40px 24px}.empty__icon{width:40px;height:40px;color:var(--fg-muted);stroke-width:1.25px;margin:0 auto 12px}.empty__title{color:var(--fg-primary);margin:0 0 4px;font-size:16px;font-weight:600}.empty__hint{color:var(--fg-muted);margin:0 0 16px;font-size:14px}.kbd{border:1px solid var(--border-default);background:var(--bg-surface);height:18px;color:var(--fg-secondary);font-family:var(--font-mono);border-bottom-width:2px;border-radius:4px;align-items:center;padding:1px 6px;font-size:11px;display:inline-flex}html,body,#app{height:100%}#app{flex-direction:column;display:flex}.numbers{font-variant-numeric:tabular-nums}a{color:inherit;text-decoration:none}
