/* Internal ui — generated from tokens.json */
:root, [data-theme="light"] {
  --bg: #f5f6f8;
  --bg-subtle: #eceef2;
  --surface: #ffffff;
  --surface-hover: #f5f6f8;
  --border: #e3e6eb;
  --border-strong: #cfd4dc;
  --text: #1a1f2b;
  --text-muted: #5b6472;
  --text-faint: #6b7482;
  --text-inverse: #ffffff;
  --accent: #2f6fed;
  --accent-hover: #245cd1;
  --accent-soft: #e8effd;
  --accent-text: #1f4fb8;
  --accent-contrast: #ffffff;
  --success: #1f9d55;
  --success-soft: #e6f6ec;
  --success-text: #187a43;
  --warning: #d97706;
  --warning-soft: #fef3e2;
  --warning-text: #9a5a06;
  --danger: #d64545;
  --danger-soft: #fdecec;
  --danger-text: #b53030;
  --overlay: rgba(16, 24, 40, 0.5);
  --overlay-soft: rgba(245, 246, 248, 0.85);
  --accent-border: rgba(47, 111, 237, 0.25);
  --success-border: rgba(31, 157, 85, 0.3);
  --warning-border: rgba(217, 119, 6, 0.3);
  --danger-border: rgba(214, 69, 69, 0.3);
  --shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.06);
  --shadow-md: 0 4px 14px rgba(16, 24, 40, 0.1);
  --shadow-lg: 0 16px 48px rgba(16, 24, 40, 0.18);
  --focus-ring: 0 0 0 3px rgba(47, 111, 237, 0.25);
  --focus-ring-danger: 0 0 0 3px rgba(214, 69, 69, 0.2);
}
[data-theme="dark"] {
  --bg: #14171c;
  --bg-subtle: #1a1e25;
  --surface: #1e232b;
  --surface-hover: #262c36;
  --border: #2e3541;
  --border-strong: #3b4452;
  --text: #e6e9ee;
  --text-muted: #9aa3b0;
  --text-faint: #858e9c;
  --accent: #5b8dff;
  --accent-hover: #7aa2ff;
  --accent-soft: rgba(91, 141, 255, 0.16);
  --accent-text: #9dbcff;
  --accent-contrast: #0f1420;
  --success: #34c073;
  --success-soft: rgba(52, 192, 115, 0.16);
  --success-text: #7ad9a3;
  --warning: #f0a030;
  --warning-soft: rgba(240, 160, 48, 0.16);
  --warning-text: #f5bd6b;
  --danger: #f06868;
  --danger-soft: rgba(240, 104, 104, 0.16);
  --danger-text: #f59a9a;
  --overlay: rgba(0, 0, 0, 0.6);
  --overlay-soft: rgba(20, 23, 28, 0.85);
  --accent-border: rgba(91, 141, 255, 0.25);
  --success-border: rgba(52, 192, 115, 0.3);
  --warning-border: rgba(240, 160, 48, 0.3);
  --danger-border: rgba(240, 104, 104, 0.3);
  --shadow-md: 0 4px 14px rgba(0, 0, 0, 0.4);
  --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.6);
  --focus-ring: 0 0 0 3px rgba(91, 141, 255, 0.35);
  --focus-ring-danger: 0 0 0 3px rgba(240, 104, 104, 0.35);
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 10px;
  --radius-full: 999px;
  --text-xs: 11px;
  --text-sm: 12px;
  --text-base: 13px;
  --text-md: 14px;
  --text-lg: 16px;
  --text-xl: 18px;
  --text-2xl: 22px;
  --leading-tight: 1.25;
  --leading-normal: 1.5;
  --control-height-sm: 28px;
  --control-height-md: 34px;
  --header-height: 56px;
  --toolbar-height: 44px;
  --table-head-height: 36px;
  --table-row-height: 52px;
  --z-dropdown: 1000;
  --z-sticky: 1100;
  --z-modal: 2000;
  --z-toast: 3000;
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --font-ui: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.type-page { font-family: var(--font-ui); font-size: 22px; line-height: 1.25; font-weight: 700; letter-spacing: -0.01em; }
.type-heading { font-family: var(--font-ui); font-size: 18px; line-height: 1.25; font-weight: 700; letter-spacing: -0.01em; }
.type-dialog { font-family: var(--font-ui); font-size: 16px; line-height: 1.5; font-weight: 600; }
.type-control { font-family: var(--font-ui); font-size: 14px; line-height: 1.4; font-weight: 500; }
.type-body { font-family: var(--font-ui); font-size: 13px; line-height: 1.5; font-weight: 400; }
.type-caption { font-family: var(--font-ui); font-size: 12px; line-height: 1.5; font-weight: 400; }
.type-badge { font-family: var(--font-ui); font-size: 11px; line-height: 1.4; font-weight: 500; }
.type-code { font-family: var(--font-mono); font-size: 13px; line-height: 1.5; font-weight: 400; }
