/* PrintLab — переменные токенов для артбордов (из tokens.json дизайн-системы) */
:root, [data-theme="light"] {
  --bg: #f7f7f5;
  --surface: #ffffff;
  --surface-sunken: #f0efec;
  --surface-hover: #f3f2ef;
  --surface-inverse: #1b1f23;
  --border: #e4e2dd;
  --border-strong: #8f8c86;
  --ink: #1b1f23;
  --ink-muted: #55595d;
  --ink-subtle: #6c6f72;
  --ink-inverse: #f7f7f5;
  --ink-disabled: #a3a19c;
  --fill-disabled: #ecebe8;
  --scrim: rgba(27, 31, 35, 0.48);
  --primary: #1f5e7a;
  --primary-hover: #184b62;
  --primary-active: #123a4c;
  --primary-soft: #e3eef2;
  --on-primary: #ffffff;
  --focus: #1f5e7a;
  --accent: #e8893a;
  --accent-hover: #d9772a;
  --accent-active: #c1661f;
  --accent-soft: #fcebdc;
  --on-accent: #1b1f23;
  --accent-ink: #9a4e14;
  --success: #2a6e46;
  --success-soft: #e3f1e8;
  --warning: #7d5800;
  --warning-soft: #fbf0d2;
  --warning-solid: #d9a21b;
  --error: #b3392f;
  --error-soft: #f8e4e1;
  --error-solid: #c8443a;
  --on-error-solid: #ffffff;
  --info: #2d5a94;
  --info-soft: #e3ecf7;
  --status-new-bg: #e3ecf7;
  --status-new-fg: #2d5a94;
  --status-accepted-bg: #dcecf2;
  --status-accepted-fg: #1f5e7a;
  --status-queued-bg: #ece9f3;
  --status-queued-fg: #584a85;
  --status-printing-bg: #fcebdc;
  --status-printing-fg: #9a4e14;
  --status-post-bg: #f5e8ef;
  --status-post-fg: #873c63;
  --status-ready-bg: #e3f1e8;
  --status-ready-fg: #2a6e46;
  --status-shipping-bg: #e0f0ee;
  --status-shipping-fg: #22675f;
  --status-pickup-bg: #ebf1da;
  --status-pickup-fg: #4b6514;
  --status-received-bg: #ecebe8;
  --status-received-fg: #4d5054;
  --status-claim-bg: #fbf0d2;
  --status-claim-fg: #7d5800;
  --status-refund-bg: #f4e6df;
  --status-refund-fg: #87472d;
  --status-cancelled-bg: #f8e4e1;
  --status-cancelled-fg: #a3352b;
  --coin: #e8893a;
  --coin-rim: #9a4e14;
  --loyalty-bronze-bg: #f3e7dc;
  --loyalty-bronze-fg: #7f4f2a;
  --loyalty-bronze: #b07a4f;
  --loyalty-silver-bg: #eceef0;
  --loyalty-silver-fg: #4f565c;
  --loyalty-silver: #9aa1a7;
  --loyalty-gold-bg: #f6eed4;
  --loyalty-gold-fg: #6e5510;
  --loyalty-gold: #c9a43a;
  --printer-idle-bg: #e3f1e8;
  --printer-idle-fg: #2a6e46;
  --printer-busy-bg: #dcecf2;
  --printer-busy-fg: #1f5e7a;
  --printer-service-bg: #fbf0d2;
  --printer-service-fg: #7d5800;
  --printer-fault-bg: #f8e4e1;
  --printer-fault-fg: #a3352b;
  --printer-offline-bg: #ecebe8;
  --printer-offline-fg: #4d5054;
  --viewer-bed: #e9e8e4;
  --viewer-grid: #cfcdc7;
  --viewer-model: #9fb7c2;
  --axis-x: #c8443a;
  --axis-y: #2f8a55;
  --axis-z: #2d62a8;
  --shadow-popover: 0 4px 16px rgba(27, 31, 35, 0.10), 0 1px 3px rgba(27, 31, 35, 0.08);
  --shadow-modal: 0 24px 48px rgba(27, 31, 35, 0.16), 0 4px 12px rgba(27, 31, 35, 0.08);
  --shadow-sticky: 0 -4px 16px rgba(27, 31, 35, 0.08);
  --shadow-toast: 0 8px 24px rgba(27, 31, 35, 0.18);
}
[data-theme="dark"] {
  --bg: #141617;
  --surface: #1c1f21;
  --surface-sunken: #111314;
  --surface-hover: #24282b;
  --surface-inverse: #ecebe7;
  --border: #2e3337;
  --border-strong: #6b7177;
  --ink: #ecebe7;
  --ink-muted: #a9adb0;
  --ink-subtle: #8f9498;
  --ink-inverse: #1b1f23;
  --ink-disabled: #5a5f63;
  --fill-disabled: #25292c;
  --scrim: rgba(0, 0, 0, 0.64);
  --primary: #6fb3cf;
  --primary-hover: #8ac3da;
  --primary-active: #a5d2e4;
  --primary-soft: #16313d;
  --on-primary: #0d1a20;
  --focus: #8ac3da;
  --accent: #f0a15e;
  --accent-hover: #f5b47c;
  --accent-active: #f8c597;
  --accent-soft: #3a2615;
  --on-accent: #1b1f23;
  --accent-ink: #f5b47c;
  --success: #7fcc9c;
  --success-soft: #173324;
  --warning: #e7c063;
  --warning-soft: #33290f;
  --warning-solid: #d9a21b;
  --error: #f08a80;
  --error-soft: #3a1c19;
  --error-solid: #e5675c;
  --on-error-solid: #1b1f23;
  --info: #86b0e6;
  --info-soft: #172a42;
  --status-new-bg: #172a42;
  --status-new-fg: #9cc0ee;
  --status-accepted-bg: #14303c;
  --status-accepted-fg: #8ccbe3;
  --status-queued-bg: #262035;
  --status-queued-fg: #bdb2e3;
  --status-printing-bg: #3a2615;
  --status-printing-fg: #f5b47c;
  --status-post-bg: #341a28;
  --status-post-fg: #e3a8c6;
  --status-ready-bg: #173324;
  --status-ready-fg: #8fd6aa;
  --status-shipping-bg: #132f2c;
  --status-shipping-fg: #86d0c5;
  --status-pickup-bg: #252e12;
  --status-pickup-fg: #bcd77d;
  --status-received-bg: #26292c;
  --status-received-fg: #c2c4c6;
  --status-claim-bg: #33290f;
  --status-claim-fg: #e7c063;
  --status-refund-bg: #33201a;
  --status-refund-fg: #eba98d;
  --status-cancelled-bg: #3a1c19;
  --status-cancelled-fg: #f08a80;
  --coin: #f0a15e;
  --coin-rim: #f8c597;
  --loyalty-bronze-bg: #33241a;
  --loyalty-bronze-fg: #e3b48e;
  --loyalty-bronze: #b07a4f;
  --loyalty-silver-bg: #25292d;
  --loyalty-silver-fg: #c9d0d6;
  --loyalty-silver: #9aa1a7;
  --loyalty-gold-bg: #332a10;
  --loyalty-gold-fg: #e9cd78;
  --loyalty-gold: #c9a43a;
  --printer-idle-bg: #173324;
  --printer-idle-fg: #8fd6aa;
  --printer-busy-bg: #14303c;
  --printer-busy-fg: #8ccbe3;
  --printer-service-bg: #33290f;
  --printer-service-fg: #e7c063;
  --printer-fault-bg: #3a1c19;
  --printer-fault-fg: #f08a80;
  --printer-offline-bg: #26292c;
  --printer-offline-fg: #c2c4c6;
  --viewer-bed: #1a1d1f;
  --viewer-grid: #33393d;
  --viewer-model: #5f8597;
  --axis-x: #e5675c;
  --axis-y: #7fcc9c;
  --axis-z: #86b0e6;
  --shadow-popover: 0 4px 16px rgba(0, 0, 0, 0.45), 0 1px 3px rgba(0, 0, 0, 0.4);
  --shadow-modal: 0 24px 48px rgba(0, 0, 0, 0.6), 0 4px 12px rgba(0, 0, 0, 0.4);
  --shadow-sticky: 0 -4px 16px rgba(0, 0, 0, 0.5);
  --shadow-toast: 0 8px 24px rgba(0, 0, 0, 0.6);
}
:root {
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-48: 48px;
  --space-64: 64px;
  --space-96: 96px;
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-full: 999px;
  --z-base: 0;
  --z-sticky: 100;
  --z-header: 200;
  --z-dropdown: 1000;
  --z-drawer: 1100;
  --z-modal: 1200;
  --z-toast: 1300;
  --z-tooltip: 1400;
  --bp-mobile: 390px;
  --bp-tablet: 768px;
  --bp-laptop: 1024px;
  --bp-desktop: 1440px;
  --container-max: 1200px;
  --columns-desktop: 12;
  --columns-mobile: 4;
  --sidebar-admin: 248px;
  --panel-config: 400px;
  --touch-target: 44px;
  --control-height: 44px;
  --border-width: 1px;
  --focus-width: 2px;
  --font-sans: Manrope, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
}
.t-display { font-family: var(--font-sans); font-size: 56px; line-height: 64px; font-weight: 700; letter-spacing: -0.02em; }
.t-h1 { font-family: var(--font-sans); font-size: 40px; line-height: 48px; font-weight: 700; letter-spacing: -0.015em; }
.t-h2 { font-family: var(--font-sans); font-size: 32px; line-height: 40px; font-weight: 700; letter-spacing: -0.01em; }
.t-h3 { font-family: var(--font-sans); font-size: 24px; line-height: 32px; font-weight: 600; }
.t-h4 { font-family: var(--font-sans); font-size: 20px; line-height: 28px; font-weight: 600; }
.t-display-m { font-family: var(--font-sans); font-size: 36px; line-height: 44px; font-weight: 700; letter-spacing: -0.02em; }
.t-body-l { font-family: var(--font-sans); font-size: 18px; line-height: 28px; font-weight: 400; }
.t-body { font-family: var(--font-sans); font-size: 16px; line-height: 24px; font-weight: 400; }
.t-body-s { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 400; }
.t-label { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 600; }
.t-button { font-family: var(--font-sans); font-size: 16px; line-height: 24px; font-weight: 600; }
.t-caption { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 500; }
.t-overline { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.t-price-l { font-family: var(--font-sans); font-size: 32px; line-height: 40px; font-weight: 700; letter-spacing: -0.01em; }
.t-price { font-family: var(--font-sans); font-size: 20px; line-height: 28px; font-weight: 700; }
.t-kpi { font-family: var(--font-sans); font-size: 28px; line-height: 36px; font-weight: 700; }
.t-mono { font-family: var(--font-mono); font-size: 14px; line-height: 20px; font-weight: 400; }
.t-mono-s { font-family: var(--font-mono); font-size: 12px; line-height: 16px; font-weight: 500; }
[data-theme] { background: var(--bg); color: var(--ink); font-family: var(--font-sans); }
