/* Würth UI — generated from tokens.json */
:root, [data-theme="light"] {
    --red: #e3000f;
    --red-hover: #c5000d;
    --red-press: #a3000b;
    --on-red: #ffffff;
    --red-text: #e3000f;
    --red-line: #fa9ba1;
    --surface: #ffffff;
    --control: #ffffff;
    --raised: #ffffff;
    --band: #f8f9fa;
    --hover: #f1f3f5;
    --press: #e9ecef;
    --press-deep: #dee2e6;
    --disabled: #e9ecef;
    --line: #dee2e6;
    --edge: #ced4da;
    --edge-hover: #adb5bd;
    --ink: #212529;
    --ink-soft: #495057;
    --muted: #6c757d;
    --unit: #949ba2;
    --on-ink: #ffffff;
    --thumb: #ffffff;
    --scrim: rgba(33, 37, 41, 0.45);
    --spec: #6b4fd8;
    --focus-ring: 0 0 0 4px #e9ecef;
    --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.06), 0 4px 14px rgba(0, 0, 0, 0.07);
    --shadow-card-hover: 0 2px 4px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
    --shadow-menu: 0 8px 24px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.06);
    --shadow-dialog: 0 16px 48px rgba(0, 0, 0, 0.2);
    --shadow-thumb: 0 0 0 1px #adb5bd, 0 1px 3px rgba(0, 0, 0, 0.2);
}
[data-theme="dark"] {
    --red: #d32f3a;
    --red-hover: #b8222d;
    --red-press: #9e1c26;
    --on-red: #ffffff;
    --red-text: #ff6670;
    --red-line: #8f2a31;
    --surface: #16181b;
    --control: #1b1e22;
    --raised: #25292e;
    --band: #202328;
    --hover: #2c3036;
    --press: #353a41;
    --press-deep: #3f454c;
    --disabled: #22252a;
    --line: #30353a;
    --edge: #4a5057;
    --edge-hover: #626a72;
    --ink: #e6e8eb;
    --ink-soft: #c1c7cd;
    --muted: #969ea6;
    --unit: #7b838c;
    --on-ink: #16181b;
    --thumb: #e6e8eb;
    --scrim: rgba(0, 0, 0, 0.6);
    --spec: #b3a4ff;
    --focus-ring: 0 0 0 4px #3a4047;
    --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.5), 0 4px 14px rgba(0, 0, 0, 0.35);
    --shadow-card-hover: 0 2px 4px rgba(0, 0, 0, 0.55), 0 8px 24px rgba(0, 0, 0, 0.5);
    --shadow-menu: 0 8px 24px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.4);
    --shadow-dialog: 0 16px 48px rgba(0, 0, 0, 0.6);
    --shadow-thumb: 0 0 0 1px #5d646c, 0 1px 3px rgba(0, 0, 0, 0.6);
    color-scheme: dark;
}
:root {
    --space: 16px;
    --space-tight: 8px;
    --space-revit: 10px;
    --space-revit-tight: 5px;
    --space-hair: 4px;
    --space-indent: 24px;
    --radius-sm: 4px;
    --radius-md: 6px;
    --radius-lg: 8px;
    --radius-pill: 999px;
    --control-40: 40px;
    --control-32: 32px;
    --control-28: 28px;
    --control-24: 24px;
    --icon: 16px;
    --icon-sm: 14px;
    --button-min: 128px;
    --button-min-revit: 112px;
    --header: 56px;
    --upper-bar: 44px;
    --steps-band: 48px;
    --steps-band-revit: 36px;
    --dialog: 32rem;
    --dialog-wide: 64rem;
    --tooltip-max: 320px;
    --duration-fast: 150ms;
    --duration-open: 200ms;
    --ease: cubic-bezier(0.2, 0, 0, 1);
    --font-mono: ui-monospace, "Cascadia Mono", Consolas, "SF Mono", Menlo, monospace;
    --font-sans: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif;
}
.text-title { font-family: var(--font-sans); font-size: 24px; line-height: 32px; font-weight: 600; }
.text-figure { font-family: var(--font-sans); font-size: 24px; line-height: 30px; font-weight: 700; }
.text-section { font-family: var(--font-sans); font-size: 16px; line-height: 24px; font-weight: 600; }
.text-body { font-family: var(--font-sans); font-size: 16px; line-height: 24px; font-weight: 400; }
.text-small { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 400; }
.text-label { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 600; }
.text-caption { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 400; }
.text-pill { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 600; }
.revit-heading { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 600; }
.revit-body { font-family: var(--font-sans); font-size: 13px; line-height: 18px; font-weight: 400; }
.revit-label { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 600; }
.revit-small { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 400; }
.text-code { font-family: var(--font-mono); font-size: 12px; line-height: 16px; font-weight: 400; }
