/* PUSK Design System — semantic tokens, 24 theme modes (one component layer). */

html {
  --font-sans:var(--font-tnr);
  --font-display:var(--font-tnr);
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 12px;
  --radius-full: 999px;
  --shadow-xs: 0 1px 1px rgba(25, 26, 28, 0.04);
  --shadow-sm: 0 1px 2px rgba(25, 26, 28, 0.06), 0 4px 12px rgba(25, 26, 28, 0.04);
  --shadow-md: 0 8px 24px rgba(25, 26, 28, 0.08);
  --space-4: 4px;
  --space-6: 6px;
  --space-8: 8px;
  --space-10: 10px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
}

html[data-pusk-theme="nebo"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #f8f6f2;
  --bg-muted: #f2efe9;
  --bg-accent: #168f89;
  --bg-accent-subtle: #e4f2f1;
  --bg-accent-pressed: #0f7772;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f4f3fe;
  --bg-emphasis-subtle: #f9eef1;
  --text-primary: #191a1c;
  --text-secondary: #5c5953;
  --text-tertiary: #6e6a62;
  --text-accent: #137f79;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #8e2a43;
  --text-disabled: #a8a49c;
  --border-default: #eae6de;
  --border-control: #8c877d;
  --border-accent: #7ecbc6;
  --border-danger: #efa79f;
  --focus-ring: #5eb8b2;
  --timeline-now: #e5484d;
}

html[data-pusk-theme="grafit"] {
  --bg-canvas: #111315;
  --bg-surface: #181b1e;
  --bg-warm: #1a1d21;
  --bg-muted: #22262b;
  --bg-accent: #2bb3a6;
  --bg-accent-subtle: #1e3432;
  --bg-accent-pressed: #239e93;
  --bg-danger-subtle: #3a2228;
  --bg-warning-subtle: #3a3220;
  --bg-success-subtle: #1f3329;
  --bg-court-subtle: #2a2840;
  --bg-emphasis-subtle: #3a2430;
  --text-primary: #eceef0;
  --text-secondary: #b8bcc2;
  --text-tertiary: #8f959c;
  --text-accent: #4fd1c3;
  --text-on-accent: #0d1413;
  --text-danger: #f4a5a0;
  --text-warning: #e8c27a;
  --text-court: #c4b5fd;
  --text-emphasis: #e88aa2;
  --text-disabled: #6d737a;
  --border-default: #2c3137;
  --border-control: #5c636b;
  --border-accent: #4fd1c3;
  --border-danger: #c96a62;
  --focus-ring: #4fd1c3;
  --timeline-now: #ff6b6b;
}

html[data-pusk-theme="indigo"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #f6f7fc;
  --bg-muted: #eef1fa;
  --bg-accent: #3b4bc8;
  --bg-accent-subtle: #eef1ff;
  --bg-accent-pressed: #3342b8;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f0f0ff;
  --bg-emphasis-subtle: #f9eef1;
  --text-primary: #141a2e;
  --text-secondary: #4f5670;
  --text-tertiary: #6a718a;
  --text-accent: #3342b8;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #8e2a43;
  --text-disabled: #a0a6ba;
  --border-default: #e3e7f4;
  --border-control: #8a90a8;
  --border-accent: #6b7ae8;
  --border-danger: #efa79f;
  --focus-ring: #6b7ae8;
  --timeline-now: #e5484d;
}

html[data-pusk-theme="shalfey"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #f5f8f6;
  --bg-muted: #eaf1ec;
  --bg-accent: #2f6b4f;
  --bg-accent-subtle: #e8f3ed;
  --bg-accent-pressed: #2a6348;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #e3f2e9;
  --bg-court-subtle: #f0f5f2;
  --bg-emphasis-subtle: #f9eef1;
  --text-primary: #17201a;
  --text-secondary: #4f5f55;
  --text-tertiary: #6a7a70;
  --text-accent: #2a6348;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #8e2a43;
  --text-disabled: #9aa89f;
  --border-default: #dfe8e2;
  --border-control: #7f9186;
  --border-accent: #4f8a6c;
  --border-danger: #efa79f;
  --focus-ring: #4f8a6c;
  --timeline-now: #e5484d;
}

html[data-pusk-theme="terrakota"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #faf6f3;
  --bg-muted: #f3ebe5;
  --bg-accent: #a94f2d;
  --bg-accent-subtle: #fbf0ea;
  --bg-accent-pressed: #9a4526;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f6f0ec;
  --bg-emphasis-subtle: #f9eef1;
  --text-primary: #231b16;
  --text-secondary: #6a5a50;
  --text-tertiary: #8a7a70;
  --text-accent: #9a4526;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #8e2a43;
  --text-disabled: #b0a49a;
  --border-default: #ebe2da;
  --border-control: #9a8f84;
  --border-accent: #c97852;
  --border-danger: #efa79f;
  --focus-ring: #c97852;
  --timeline-now: #e5484d;
}

/* бумага, чернила, бордо; важное — умбра */
html[data-pusk-theme="kabinet"] {
  --bg-canvas: #fffdf8;
  --bg-surface: #fffdf8;
  --bg-warm: #f7f3ea;
  --bg-muted: #efe9dc;
  --bg-accent: #7b2335;
  --bg-accent-subtle: #f6e9eb;
  --bg-accent-pressed: #661c2b;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf5ef;
  --bg-court-subtle: #f2f0fb;
  --bg-emphasis-subtle: #f7efe0;
  --text-primary: #1f2a3a;
  --text-secondary: #57524a;
  --text-tertiary: #6f685c;
  --text-accent: #7b2335;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #7a5410;
  --text-disabled: #aba396;
  --border-default: #e8e1d3;
  --border-control: #8f8676;
  --border-accent: #c48a95;
  --border-danger: #efa79f;
  --focus-ring: #a8566a;
  --timeline-now: #e5484d;
}

/* тёмно-синий, сталь; важное — оранжевый */
html[data-pusk-theme="byuro"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #f3f5f8;
  --bg-muted: #e8ecf2;
  --bg-accent: #1d3f6e;
  --bg-accent-subtle: #e7eef8;
  --bg-accent-pressed: #16325a;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f2f0fe;
  --bg-emphasis-subtle: #fdf1e6;
  --text-primary: #131b27;
  --text-secondary: #4b5566;
  --text-tertiary: #667085;
  --text-accent: #1d3f6e;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #a34a0c;
  --text-disabled: #a2aab8;
  --border-default: #e1e6ee;
  --border-control: #8791a1;
  --border-accent: #7b9ccc;
  --border-danger: #efa79f;
  --focus-ring: #4f7fc0;
  --timeline-now: #e5484d;
}

/* олива, лён; важное — терракота */
html[data-pusk-theme="len"] {
  --bg-canvas: #fdfcf8;
  --bg-surface: #fdfcf8;
  --bg-warm: #f4f1e8;
  --bg-muted: #ebe6d8;
  --bg-accent: #56652f;
  --bg-accent-subtle: #eef0e0;
  --bg-accent-pressed: #475427;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf5ea;
  --bg-court-subtle: #f1effa;
  --bg-emphasis-subtle: #f9ece4;
  --text-primary: #26251f;
  --text-secondary: #5a5749;
  --text-tertiary: #716d5e;
  --text-accent: #4b5829;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #a3441f;
  --text-disabled: #aaa594;
  --border-default: #e5dfcf;
  --border-control: #8e8a78;
  --border-accent: #9aa86b;
  --border-danger: #efa79f;
  --focus-ring: #7d8c4c;
  --timeline-now: #e5484d;
}

/* сливовый; суд — индиго, чтобы не сливался с акцентом */
html[data-pusk-theme="sliva"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #f8f5f8;
  --bg-muted: #efe8ef;
  --bg-accent: #6b2f63;
  --bg-accent-subtle: #f5eaf3;
  --bg-accent-pressed: #5a2753;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #eef1ff;
  --bg-emphasis-subtle: #fbeeee;
  --text-primary: #1f1520;
  --text-secondary: #5b4d5a;
  --text-tertiary: #736572;
  --text-accent: #6b2f63;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #3342b8;
  --text-emphasis: #9b1c3a;
  --text-disabled: #ab9fab;
  --border-default: #ebe2ea;
  --border-control: #8f8290;
  --border-accent: #b27aa9;
  --border-danger: #efa79f;
  --focus-ring: #9a5a91;
  --timeline-now: #e5484d;
}

/* Чёткая: чёрный текст, заметные границы — для солнца и слабого зрения */
html[data-pusk-theme="chetkaya"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #f4f4f4;
  --bg-muted: #e6e6e6;
  --bg-accent: #0040c1;
  --bg-accent-subtle: #e3eaff;
  --bg-accent-pressed: #00329a;
  --bg-danger-subtle: #fdeaea;
  --bg-warning-subtle: #fbf0dc;
  --bg-success-subtle: #e3f3e8;
  --bg-court-subtle: #ecebff;
  --bg-emphasis-subtle: #f8e6ec;
  --text-primary: #000000;
  --text-secondary: #262626;
  --text-tertiary: #3d3d3d;
  --text-accent: #0036a8;
  --text-on-accent: #ffffff;
  --text-danger: #a10f0f;
  --text-warning: #6b4300;
  --text-court: #3a2a99;
  --text-emphasis: #7a1030;
  --text-disabled: #6b6b6b;
  --border-default: #b5b9bf;
  --border-control: #4d4d4d;
  --border-accent: #0040c1;
  --border-danger: #a10f0f;
  --focus-ring: #0040c1;
  --timeline-now: #d11a1a;
}

/* тёмная: тёплый графит, янтарь */
html[data-pusk-theme="noch"] {
  --bg-canvas: #131210;
  --bg-surface: #1e1c19;
  --bg-warm: #151412;
  --bg-muted: #282520;
  --bg-accent: #e5a93a;
  --bg-accent-subtle: #3a2f1a;
  --bg-accent-pressed: #cf962b;
  --bg-danger-subtle: #3a2226;
  --bg-warning-subtle: #3a2c20;
  --bg-success-subtle: #1f3329;
  --bg-court-subtle: #2a2840;
  --bg-emphasis-subtle: #3a2430;
  --text-primary: #efebe4;
  --text-secondary: #c0b8ab;
  --text-tertiary: #968e80;
  --text-accent: #f0bd5c;
  --text-on-accent: #1a1306;
  --text-danger: #f4a5a0;
  --text-warning: #f2a36b;
  --text-court: #c4b5fd;
  --text-emphasis: #e88aa2;
  --text-disabled: #6d665c;
  --border-default: #2e2a25;
  --border-control: #6a6258;
  --border-accent: #c99536;
  --border-danger: #c96a62;
  --focus-ring: #f0bd5c;
  --timeline-now: #ff6b6b;
}

/* тёмная: ночной синий, голубой акцент */
html[data-pusk-theme="sumerki"] {
  --bg-canvas: #0d121c;
  --bg-surface: #161d2c;
  --bg-warm: #0f1522;
  --bg-muted: #1f2839;
  --bg-accent: #5aa9f0;
  --bg-accent-subtle: #1a2d45;
  --bg-accent-pressed: #4796dd;
  --bg-danger-subtle: #3a2228;
  --bg-warning-subtle: #3a3220;
  --bg-success-subtle: #1f3329;
  --bg-court-subtle: #2a2840;
  --bg-emphasis-subtle: #3a2430;
  --text-primary: #e6ebf3;
  --text-secondary: #b3bdcc;
  --text-tertiary: #8793a6;
  --text-accent: #7dbcf5;
  --text-on-accent: #07111d;
  --text-danger: #f4a5a0;
  --text-warning: #e8c27a;
  --text-court: #c4b5fd;
  --text-emphasis: #e88aa2;
  --text-disabled: #5e6878;
  --border-default: #263146;
  --border-control: #56627a;
  --border-accent: #5aa9f0;
  --border-danger: #c96a62;
  --focus-ring: #7dbcf5;
  --timeline-now: #ff6b6b;
}

/* Бали: песок, тик, гибискус — для важного */
html[data-pusk-theme="bali"] {
  --bg-canvas: #fffaf2;
  --bg-surface: #fffaf2;
  --bg-warm: #f6efe3;
  --bg-muted: #ede3d2;
  --bg-accent: #86562a;
  --bg-accent-subtle: #f5ebdf;
  --bg-accent-pressed: #724823;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf5ea;
  --bg-court-subtle: #f2f0fb;
  --bg-emphasis-subtle: #fbecf1;
  --text-primary: #2a2119;
  --text-secondary: #5e5245;
  --text-tertiary: #75695a;
  --text-accent: #7a4e26;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #b0284f;
  --text-disabled: #b0a595;
  --border-default: #eadfcd;
  --border-control: #948a79;
  --border-accent: #c79a6c;
  --border-danger: #efa79f;
  --focus-ring: #a97a4a;
  --timeline-now: #e5484d;
}

/* Убуд: зелень рисовых террас, бамбук, коралл — для важного */
html[data-pusk-theme="ubud"] {
  --bg-canvas: #fcfdf8;
  --bg-surface: #fcfdf8;
  --bg-warm: #f1f4e7;
  --bg-muted: #e5ebd6;
  --bg-accent: #3b7a35;
  --bg-accent-subtle: #e8f2e2;
  --bg-accent-pressed: #32682d;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #e6f3e1;
  --bg-court-subtle: #f1effa;
  --bg-emphasis-subtle: #fcede8;
  --text-primary: #1c2418;
  --text-secondary: #505b48;
  --text-tertiary: #636e5a;
  --text-accent: #336b2e;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #b23a22;
  --text-disabled: #a3ac98;
  --border-default: #dee6cf;
  --border-control: #87927b;
  --border-accent: #86b47e;
  --border-danger: #efa79f;
  --focus-ring: #5f9a58;
  --timeline-now: #e5484d;
}

/* Улувату: океанская бирюза, белый песок, коралл — для важного */
html[data-pusk-theme="uluvatu"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #eef6f6;
  --bg-muted: #dfeeee;
  --bg-accent: #0a6f7d;
  --bg-accent-subtle: #e2f2f4;
  --bg-accent-pressed: #085d69;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f1f0fd;
  --bg-emphasis-subtle: #fcede9;
  --text-primary: #102226;
  --text-secondary: #45595d;
  --text-tertiary: #5e7377;
  --text-accent: #09636f;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #b33b25;
  --text-disabled: #9fb2b5;
  --border-default: #d9e8e9;
  --border-control: #7f9599;
  --border-accent: #6bb5bf;
  --border-danger: #efa79f;
  --focus-ring: #2f94a2;
  --timeline-now: #e5484d;
}

/* Закат в Семиньяке: персик, гибискус; важное — фиолетовое */
html[data-pusk-theme="zakat"] {
  --bg-canvas: #fffbf8;
  --bg-surface: #fffbf8;
  --bg-warm: #fbf0ea;
  --bg-muted: #f5e2d8;
  --bg-accent: #a8325a;
  --bg-accent-subtle: #f9e6ec;
  --bg-accent-pressed: #922a4d;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #eef1ff;
  --bg-emphasis-subtle: #f2eaf7;
  --text-primary: #2a1a1c;
  --text-secondary: #62494b;
  --text-tertiary: #7a6163;
  --text-accent: #9c2e54;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #3342b8;
  --text-emphasis: #6a2c86;
  --text-disabled: #b8a2a0;
  --border-default: #f0ddd3;
  --border-control: #9a8583;
  --border-accent: #d38aa3;
  --border-danger: #efa79f;
  --focus-ring: #c25a7c;
  --timeline-now: #e5484d;
}

/* Тёмная · Батур: вулканический песок, цветок франжипани */
html[data-pusk-theme="vulkan"] {
  --bg-canvas: #121110;
  --bg-surface: #1c1a19;
  --bg-warm: #141312;
  --bg-muted: #272422;
  --bg-accent: #f0839f;
  --bg-accent-subtle: #3d2229;
  --bg-accent-pressed: #e06f8c;
  --bg-danger-subtle: #3a2226;
  --bg-warning-subtle: #3a3220;
  --bg-success-subtle: #1f3329;
  --bg-court-subtle: #2a2840;
  --bg-emphasis-subtle: #3a3320;
  --text-primary: #eeeae6;
  --text-secondary: #bdb6b0;
  --text-tertiary: #938b85;
  --text-accent: #f59cb3;
  --text-on-accent: #1c0a10;
  --text-danger: #f4a5a0;
  --text-warning: #e8c27a;
  --text-court: #c4b5fd;
  --text-emphasis: #f2c56b;
  --text-disabled: #6b6560;
  --border-default: #2f2b28;
  --border-control: #69625d;
  --border-accent: #d87a93;
  --border-danger: #c96a62;
  --focus-ring: #f59cb3;
  --timeline-now: #ff6b6b;
}

/* Розовый закат: орхидея, лиловое небо; важное — коралл */
html[data-pusk-theme="rozovyi"] {
  --bg-canvas: #fffafc;
  --bg-surface: #fffafc;
  --bg-warm: #fbf1f6;
  --bg-muted: #f3e2ec;
  --bg-accent: #a8437e;
  --bg-accent-subtle: #f8e8f1;
  --bg-accent-pressed: #93396d;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #eef1ff;
  --bg-emphasis-subtle: #fcede8;
  --text-primary: #2a1a24;
  --text-secondary: #614a58;
  --text-tertiary: #785f6e;
  --text-accent: #9a3c73;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #3342b8;
  --text-emphasis: #b23a22;
  --text-disabled: #b9a4b1;
  --border-default: #f0dde8;
  --border-control: #9a8593;
  --border-accent: #d392b8;
  --border-danger: #efa79f;
  --focus-ring: #c26a9c;
  --timeline-now: #e5484d;
}

/* Море: глубокий синий, пена, коралл — для важного */
html[data-pusk-theme="more"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #eff4f9;
  --bg-muted: #e0eaf4;
  --bg-accent: #1f5f99;
  --bg-accent-subtle: #e4eef8;
  --bg-accent-pressed: #1a5186;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f1f0fd;
  --bg-emphasis-subtle: #fcede9;
  --text-primary: #0f1c2a;
  --text-secondary: #465668;
  --text-tertiary: #5f6f82;
  --text-accent: #1b5689;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #b33b25;
  --text-disabled: #a0adbc;
  --border-default: #dae4ee;
  --border-control: #8090a2;
  --border-accent: #7aa5d1;
  --border-danger: #efa79f;
  --focus-ring: #3f7fbf;
  --timeline-now: #e5484d;
}

/* Солнце: тёплый жёлтый, апельсин; важное — малиновое */
html[data-pusk-theme="solnce"] {
  --bg-canvas: #fffdf6;
  --bg-surface: #fffdf6;
  --bg-warm: #fff6e2;
  --bg-muted: #fcebc4;
  --bg-accent: #a85400;
  --bg-accent-subtle: #fdf0dc;
  --bg-accent-pressed: #8f4700;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #f6f1e2;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f2f0fb;
  --bg-emphasis-subtle: #fbecf1;
  --text-primary: #2a2110;
  --text-secondary: #5f5236;
  --text-tertiary: #76694b;
  --text-accent: #974c00;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #6f5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #b0284f;
  --text-disabled: #b3a684;
  --border-default: #f3e4bf;
  --border-control: #968866;
  --border-accent: #e0a14f;
  --border-danger: #efa79f;
  --focus-ring: #d48a2a;
  --timeline-now: #e5484d;
}

/* Строгая: чёрное и белое, без цветного акцента; важное — тёмно-красное */
html[data-pusk-theme="strogaya"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #f5f5f5;
  --bg-muted: #ebebeb;
  --bg-accent: #111111;
  --bg-accent-subtle: #ededed;
  --bg-accent-pressed: #000000;
  --bg-danger-subtle: #fbeeee;
  --bg-warning-subtle: #f7f3ea;
  --bg-success-subtle: #eef4ef;
  --bg-court-subtle: #f0f0f3;
  --bg-emphasis-subtle: #f8ecec;
  --text-primary: #111111;
  --text-secondary: #444444;
  --text-tertiary: #5f5f5f;
  --text-accent: #111111;
  --text-on-accent: #ffffff;
  --text-danger: #a3171a;
  --text-warning: #7a5a10;
  --text-court: #3f3f7a;
  --text-emphasis: #8c1c1c;
  --text-disabled: #a6a6a6;
  --border-default: #e2e2e2;
  --border-control: #8a8a8a;
  --border-accent: #111111;
  --border-danger: #e3a3a3;
  --focus-ring: #444444;
  --timeline-now: #d11a1a;
}

/* Деловая синяя: корпоративный синий, холодный серый */
html[data-pusk-theme="delovaya"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #f4f6f9;
  --bg-muted: #e8edf3;
  --bg-accent: #0b5cad;
  --bg-accent-subtle: #e6f0fa;
  --bg-accent-pressed: #094e94;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f1f0fd;
  --bg-emphasis-subtle: #f9eef1;
  --text-primary: #101828;
  --text-secondary: #475467;
  --text-tertiary: #5d6b7e;
  --text-accent: #0a549e;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #8e2a43;
  --text-disabled: #a4afbd;
  --border-default: #dde3ea;
  --border-control: #8592a3;
  --border-accent: #6c9fd6;
  --border-danger: #efa79f;
  --focus-ring: #2f7ad0;
  --timeline-now: #e5484d;
}

/* Лимон: бледно-лимонный фон, жёлтые кнопки с тёмным текстом */
html[data-pusk-theme="limon"] {
  --bg-canvas: #fffef6;
  --bg-surface: #fffef8;
  --bg-warm: #fffbe3;
  --bg-muted: #f9f4da;
  --bg-accent: #f2d22e;
  --bg-accent-subtle: #fdf5c4;
  --bg-accent-pressed: #e3c01a;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #fbf0e0;
  --bg-success-subtle: #edf7ec;
  --bg-court-subtle: #f2f0fb;
  --bg-emphasis-subtle: #fbecf1;
  --text-primary: #25220f;
  --text-secondary: #5a5537;
  --text-tertiary: #6f694a;
  --text-accent: #6e5a00;
  --text-on-accent: #2a2300;
  --text-danger: #b42318;
  --text-warning: #9a4f00;
  --text-court: #4a3ca6;
  --text-emphasis: #b0284f;
  --text-disabled: #b3ad8a;
  --border-default: #efe6b0;
  --border-control: #958d65;
  --border-accent: #d9bb1c;
  --border-danger: #efa79f;
  --focus-ring: #c9a800;
  --timeline-now: #e5484d;
}

/* Контраст: white canvas · black sidebar/plaques · grey plaques · teal important */
html[data-pusk-theme="kontrast"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #fafafa;
  --bg-muted: #f0f0f0;
  --bg-accent: #2a9d8f;
  --bg-accent-subtle: #1a1a1a;
  --bg-accent-pressed: #1f7a70;
  --bg-danger-subtle: #e3f5f2;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f4f3fe;
  --bg-emphasis-subtle: #e3f5f2;
  --bg-plaque-dark: #1a1a1a;
  --bg-plaque-grey: #e5e5e5;
  --bg-sidebar: #0a0a0a;
  --text-primary: #0a0a0a;
  --text-secondary: #525252;
  --text-tertiary: #737373;
  --text-accent: #2a9d8f;
  --text-on-accent: #ffffff;
  --text-on-sidebar: #f5f5f5;
  --text-danger: #2a9d8f;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #2a9d8f;
  --text-disabled: #a3a3a3;
  --border-default: #e5e5e5;
  --border-control: #737373;
  --border-accent: #2a9d8f;
  --border-danger: #7ecbc6;
  --focus-ring: #30b0c7;
  --timeline-now: #2a9d8f;
}

/* Bridge legacy approved chrome to PUSK tokens */
html[data-pusk-theme] {
  --approved-bg: var(--bg-warm);
  --approved-side: var(--bg-muted);
  --approved-line: var(--border-default);
  --approved-ink: var(--text-primary);
  --approved-muted: var(--text-secondary);
  --approved-teal: var(--bg-accent);
  --approved-teal-dark: var(--bg-accent-pressed);
  --approved-teal-soft: var(--bg-accent-subtle);
  --approved-burg: var(--text-emphasis);
  --approved-burg-soft: var(--bg-emphasis-subtle);
  --bg: var(--bg-warm);
  --ink: var(--text-primary);
  --graphite: var(--text-secondary);
  --muted: var(--text-tertiary);
  --line: var(--border-default);
  --card: var(--bg-surface);
  --accent: var(--bg-accent);
  --accent-s: var(--bg-accent-subtle);
}

html[data-pusk-theme] body {
  background: var(--bg-warm);
  color: var(--text-primary);
  font-family: var(--font-sans);
}

html[data-pusk-theme] :where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

/* Контраст: black sidebar + light nav text (surface stays white for main plaques) */
html[data-pusk-theme="kontrast"] body.pusk-today-shell .today-side,
html[data-pusk-theme="kontrast"] body.pusk-generic .today-side {
  background: var(--bg-sidebar, #0a0a0a);
  border-right-color: #1a1a1a;
  color: var(--text-on-sidebar, #f5f5f5);
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-side-brand strong,
html[data-pusk-theme="kontrast"] body.pusk-generic .pusk-side-brand strong {
  color: #ffffff;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-side-brand span,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .today-side-group,
html[data-pusk-theme="kontrast"] body.pusk-generic .pusk-side-brand span,
html[data-pusk-theme="kontrast"] body.pusk-generic .today-side-group {
  color: #a3a3a3;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .today-side nav a,
html[data-pusk-theme="kontrast"] body.pusk-generic .today-side nav a,
html[data-pusk-theme="kontrast"] body.pusk-generic .today-side .pusk-side-marks a {
  color: #d4d4d4;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .today-side nav a:hover,
html[data-pusk-theme="kontrast"] body.pusk-generic .today-side nav a:hover,
html[data-pusk-theme="kontrast"] body.pusk-generic .today-side .pusk-side-marks a:hover {
  background: #1a1a1a;
  color: #ffffff;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .today-side nav a.on,
html[data-pusk-theme="kontrast"] body.pusk-generic .today-side nav a.on,
html[data-pusk-theme="kontrast"] body.pusk-generic .today-side .pusk-side-marks a.on {
  background: #1a1a1a;
  color: #ffffff;
  box-shadow: inset 3px 0 0 var(--bg-accent);
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .today-side nav a em {
  background: var(--bg-accent);
  color: #ffffff;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .today-side-foot {
  border-top-color: #262626;
  color: #a3a3a3;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .today-side-foot .pusk-side-user i {
  background: #1a1a1a;
  color: #f5f5f5;
}

/* Grey plaques (muted) + black plaques (accent-subtle) on white canvas */
html[data-pusk-theme="kontrast"] body.pusk-today-shell .today-global-search {
  background: var(--bg-plaque-grey, #e5e5e5);
}

html[data-pusk-theme="kontrast"] .fchip,
html[data-pusk-theme="kontrast"] .pusk-chip,
html[data-pusk-theme="kontrast"] .tag:not(.src) {
  background: var(--bg-plaque-grey, #e5e5e5);
  color: var(--text-primary);
}

html[data-pusk-theme="kontrast"] .fchip.on,
html[data-pusk-theme="kontrast"] .pusk-chip.on,
html[data-pusk-theme="kontrast"] .fchip.is-active {
  background: var(--bg-plaque-dark, #1a1a1a);
  color: #ffffff;
  border-color: #1a1a1a;
}

html[data-pusk-theme="kontrast"] .box,
html[data-pusk-theme="kontrast"] .stat-box,
html[data-pusk-theme="kontrast"] .pusk-stat {
  background: var(--bg-plaque-grey, #e5e5e5);
}

html[data-pusk-theme="kontrast"] .box.red,
html[data-pusk-theme="kontrast"] .box.critical,
html[data-pusk-theme="kontrast"] .badge.critical,
html[data-pusk-theme="kontrast"] .badge.late,
html[data-pusk-theme="kontrast"] .is-late,
html[data-pusk-theme="kontrast"] .pusk-tasks-late-badge {
  background: var(--bg-emphasis-subtle) !important;
  color: var(--text-emphasis) !important;
}

/* Overdue / critical → teal (overrides bright-red hardcodes on tasks) */
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-tasks-due.is-late,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .is-late,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-kanban-card-due.is-late,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-kanban-late,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue td,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-title,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-sub,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-sub a,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-ctx-link,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-ctx-case,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-who,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-who-name,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-due,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-pri,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-status,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-status-text,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .muted,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .small,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue a {
  color: var(--text-danger, #2a9d8f) !important;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-title:hover {
  color: var(--bg-accent-pressed, #1f7a70) !important;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-pri-dot,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-task-row.is-overdue .pusk-tasks-status-dot {
  background: var(--text-danger, #2a9d8f) !important;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-tasks-late-badge {
  background: var(--bg-emphasis-subtle) !important;
  color: var(--text-emphasis) !important;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-tasks-postpone-btn {
  border-color: color-mix(in srgb, var(--bg-accent) 35%, #e5e5e5) !important;
  color: var(--bg-accent) !important;
  background: #fff !important;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-page .pusk-tasks-postpone-btn:hover {
  background: var(--bg-emphasis-subtle) !important;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .today-create,
html[data-pusk-theme="kontrast"] .btn-primary,
html[data-pusk-theme="kontrast"] button.primary,
html[data-pusk-theme="kontrast"] .pusk-theme-save {
  background: var(--bg-accent);
  color: var(--text-on-accent);
  border-color: var(--bg-accent);
}

/* Cases page: map Figma accents → turquoise for Контраст */
html[data-pusk-theme="kontrast"] body.pusk-today-shell.pusk-case-page {
  --cases-page-bg: #fafafa;
  --cases-surface: #ffffff;
  --cases-surface-muted: #f0f0f0;
  --cases-border: #e5e5e5;
  --cases-text: #0a0a0a;
  --cases-text-secondary: #525252;
  --cases-text-muted: #737373;
  --cases-accent: #2a9d8f;
  --cases-accent-soft: #e3f5f2;
  --cases-accent-border: #7ecbc6;
  --cases-hearing-bg: #e3f5f2;
  --cases-hearing-border: #b8e0db;
  --cases-danger: #2a9d8f;
  --cases-danger-row: #f0faf8;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-cases-add-case summary.pusk-cases-add-btn,
html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-cases-list-figma .pusk-main-pane .pusk-cases-add-case summary.pusk-cases-add-btn {
  background: var(--bg-accent) !important;
  color: var(--text-on-accent) !important;
  border-color: var(--bg-accent) !important;
}

html[data-pusk-theme="kontrast"] body.pusk-today-shell .pusk-tasks-today-banner {
  border-color: #e5e5e5;
  background: linear-gradient(180deg, #f0f0f0 0%, #fafafa 100%);
  box-shadow: none;
}
