/*
  Společná paleta rozhraní — barvy webu Prague Relax (specifikace §3a).
  Komponenty používají tyhle významové tokeny v obou režimech, nikdy hex.

  Kontrast je SPOČÍTANÝ (WCAG 2.x, scratchpad/agent-tokeny/kontrast.py), ne
  odhadnutý. Poměry proti papíru / pozadí / ploše / ploše-hover:
    světlý:  text 8,62 - 7,46 - 6,76 - 6,22    tlumená 6,29 - 5,44 - 4,93 - 4,54
             nadpis 18,06 - 15,63 - 14,17 - 13,03   zlatá 6,31 - 5,46 - 4,95 - 4,55
    tmavý:   text 13,69 - 14,72 - 12,11 - 10,52  tlumená 7,09 - 7,62 - 6,27 - 5,44
             nadpis 15,92 - 17,12 - 14,08 - 12,23  zlatá 8,31 - 8,93 - 7,35 - 6,38
    na-akcentu proti akcentu: světlý 4,65, tmavý 7,10.

  Dvě hodnoty z webu neprošly a jsou posunuté o nejmenší nutný kus: tlumená
  #7b6d5b měla na ploše jen 3,94:1 → #6b5e4f, zlatá #946d3d 3,65:1 → #7a5a2c
  (to je „zlatá tmavší" z webu, ne vymyšlený odstín). Web tyhle dvojice sám
  nehlídá, protože tlumený text dává jen na bílou; recepce ho má i na krému.
*/
:root,
html[data-bs-theme='light'] {
  color-scheme: light;
  --ui-pozadi: #f3eee5;
  --ui-papir: #ffffff;
  --ui-plocha: #ece3d1;
  --ui-plocha-hover: #e5dac3;
  /* Výplň polí je plocha webu (`.pr-input`), ne papír — pole tak drží tvar
     i na bílé kartě, kde by bílé pole s podkladem splynulo. */
  --ui-vstup: #f3eee5;
  --ui-vstup-rgb: 243, 238, 229;
  --ui-linka: #e6ddd0;
  --ui-linka-silna: #d8ccb4;
  --ui-text: #564a3a;
  --ui-tlumena: #6b5e4f;
  --ui-nadpis: #1c150e;
  --ui-zlata: #7a5a2c;
  --ui-zlata-rgb: 122, 90, 44;
  /* Tři role zlaté (audit K12): --ui-zlata = malý text (odkazy, ceny pod 17 px,
     AA všude); --ui-akcent = výplň tlačítek, eyebrow (web má .sub-title přesně
     #946d3d), aktivní položka menu, ceny od 17 px/700; --ui-zlata-svetla = jen
     dekor (ikony faktů, tečky, podtržení, čára „teď"). Na text ji nepoužívat:
     na bílé má 3,3:1 a na ploše 2,6:1. */
  --ui-zlata-svetla: #b5854a;
  --ui-zlata-svetla-rgb: 181, 133, 74;
  --ui-akcent: #946d3d;
  --ui-akcent-rgb: 148, 109, 61;
  /* Shodné se --ui-zlata: web má jednu tmavou zlať pro hover tlačítka i pro
     zlatý text. Není to překlep, jsou to dvě role stejného inkoustu. */
  --ui-akcent-hover: #7a5a2c;
  --ui-na-akcentu: #fff;
  --ui-akcent-tlumena: #ecdfc4;
  --ui-salvej: #466653;
  --ui-salvej-plocha: #eaf0ec;
  --ui-salvej-linka: #bbcec0;
  /* Hlína ztmavená z #925b4b: na ploše měla jen 4,31:1. */
  --ui-cihla: #865345;
  --ui-cihla-plocha: #f6eae6;
  --ui-cihla-linka: #ddbbb0;
  /* Jantar posunutý z #7b5b2c blíž k oranžové: po přeladění zlaté na #7a5a2c
     by s ní byl k nerozeznání a „plánovaná" by vypadala jako odkaz. */
  --ui-planovana: #8a5a1c;
  --ui-planovana-plocha: #f4eddf;
  --ui-planovana-linka: #d9c5a4;

  /* Datové série grafů. Značkové tokeny --ui-akcent/--ui-salvej/--ui-cihla
     jsou pro data nepoužitelné — proměřeno validátorem: cihlová a šalvějová
     mají pro protanopii ΔE 1.4, dvě hnědé nerozliší ani zdravé oko (ΔE 6.0),
     a všechny čtou jako šedá. Tahle dvojice je proti podkladu proměřená
     a projde. Tmavé odstíny NEJSOU zesvětlené světlé — jsou zvolené zvlášť
     proti tmavému podkladu. Nepřepočítávat, jen znovu proměřit.
     Po přechodu na paletu Prague Relax znovu proměřeno proti novým papírům
     (#ffffff / #241c13): obojí ALL CHECKS PASS, hodnoty tedy zůstávají. */
  --graf-1: #b07d1f;
  --graf-2: #0d7d5c;
  --ui-stin: rgba(28, 21, 14, .10);
  /* Celý stín karty webu — široký a slabý, ne tvrdý rám. Podpis Prague Relax. */
  --ui-stin-karta: 0 24px 60px rgba(28, 21, 14, .07);
  --ui-fokus: rgba(181, 133, 74, .28);
  --ui-text-rgb: 86, 74, 58;
  --ui-pozadi-rgb: 243, 238, 229;
  --ui-papir-rgb: 255, 255, 255;
  --ui-salvej-rgb: 70, 102, 83;
  --ui-cihla-rgb: 134, 83, 69;
  --ui-planovana-rgb: 138, 90, 28;
  --ui-zaves: .45;
  --ui-zaves-barva: #1c150e;
  --ui-select-sipka: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' fill='none' viewBox='0 0 16 12'%3E%3Cpath stroke='%236b5e4f' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 3 6 6 6-6'/%3E%3C/svg%3E");
  --ui-zavrit-ikona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23564a3a' stroke-width='1.6' stroke-linecap='round' d='m3 3 10 10M13 3 3 13'/%3E%3C/svg%3E");

  /* Boční panel — espresso pruh administrace Prague Relax (AdminLayout.astro:
     --sidebar #231711, text #EDE6DC, zlatá #BE9667). Pruh je tmavý i ve dne;
     tlumený text je 72% krém (7,8:1 na espressu), zlatá 6,4:1 (podtitul
     11 px uppercase a ikony), slabý text 55 % = 5,1:1 (role 12 px v patě;
     na 50 % měl jen 4,4:1 a AA neprošel). Aktivní podklad je zlatá 16 %. */
  --ui-bocni-pozadi: #231711;
  --ui-bocni-nadpis: #ffffff;
  --ui-bocni-text: #ede6dc;
  --ui-bocni-tlumena: rgba(237, 230, 220, .72);
  --ui-bocni-slaba: rgba(237, 230, 220, .55);
  --ui-bocni-linka: rgba(255, 255, 255, .08);
  --ui-bocni-hover: rgba(255, 255, 255, .05);
  --ui-bocni-aktivni: rgba(190, 150, 103, .16);
  --ui-bocni-zlata: #be9667;
}

/* Espresso — tmavé panely webu (`.pr-resto`, `.tj-page-header`). Stejná
   geometrie jako den, mění se jen barvy a hloubka stínu. */
html[data-bs-theme='dark'] {
  color-scheme: dark;
  --ui-pozadi: #1c150e;
  --ui-papir: #241c13;
  --ui-plocha: #2f261b;
  --ui-plocha-hover: #3a3024;
  --ui-vstup: #2a2117;
  --ui-vstup-rgb: 42, 33, 23;
  --ui-linka: #423728;
  --ui-linka-silna: #5c4d3a;
  --ui-text: #efe7db;
  --ui-tlumena: #b4a78f;
  --ui-nadpis: #fff8ee;
  --ui-zlata: #d9b06f;
  --ui-zlata-rgb: 217, 176, 111;
  --ui-zlata-svetla: #b5854a;
  --ui-zlata-svetla-rgb: 181, 133, 74;
  /* Na tmavém je bílá na #b5854a jen 3,3:1, proto světlejší zlatá výplň
     a espresso písmo na ní (7,10:1) místo bílého. */
  --ui-akcent: #c99a5b;
  --ui-akcent-rgb: 201, 154, 91;
  --ui-akcent-hover: #d9b06f;
  --ui-na-akcentu: #1c150e;
  --ui-akcent-tlumena: #3d3021;
  --ui-salvej: #a7c6ae;
  /* Podklady stavů jsou espresso s nádechem, ne neutrální šeď — šedý panel
     by na hnědém papíru vypadal jako cizí prvek. */
  --ui-salvej-plocha: #2b352b;
  --ui-salvej-linka: #55705c;
  --ui-cihla: #d0aaa4;
  --ui-cihla-plocha: #3b2a25;
  --ui-cihla-linka: #735653;
  --ui-planovana: #d0bea0;
  --ui-planovana-plocha: #3a2f1d;
  --ui-planovana-linka: #6f5f45;
  --graf-1: #bf8722;
  --graf-2: #2fa87e;
  --ui-stin: rgba(0, 0, 0, .35);
  --ui-stin-karta: 0 24px 60px rgba(0, 0, 0, .28);
  --ui-fokus: rgba(217, 176, 111, .30);
  --ui-text-rgb: 239, 231, 219;
  --ui-pozadi-rgb: 28, 21, 14;
  --ui-papir-rgb: 36, 28, 19;
  --ui-salvej-rgb: 167, 198, 174;
  --ui-cihla-rgb: 208, 170, 164;
  --ui-planovana-rgb: 208, 190, 160;
  /* Závěs musí být tmavší než plátno (#1c150e), jinak modál nic neoddělí. */
  --ui-zaves: .66;
  --ui-zaves-barva: #120d08;
  --ui-select-sipka: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' fill='none' viewBox='0 0 16 12'%3E%3Cpath stroke='%23b4a78f' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 3 6 6 6-6'/%3E%3C/svg%3E");
  --ui-zavrit-ikona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23efe7db' stroke-width='1.6' stroke-linecap='round' d='m3 3 10 10M13 3 3 13'/%3E%3C/svg%3E");

  /* V noci je pruh papír (#241c13) s linkou (tantra.css) — espresso #231711
     by s plátnem #1c150e splynulo. Text a zlatá zůstávají stejné jako ve dne. */
  --ui-bocni-pozadi: #241c13;
  --ui-bocni-nadpis: #ffffff;
  --ui-bocni-text: #ede6dc;
  --ui-bocni-tlumena: rgba(237, 230, 220, .72);
  --ui-bocni-slaba: rgba(237, 230, 220, .55);
  --ui-bocni-linka: rgba(255, 255, 255, .08);
  --ui-bocni-hover: rgba(255, 255, 255, .05);
  --ui-bocni-aktivni: rgba(190, 150, 103, .16);
  --ui-bocni-zlata: #be9667;
}

/* Typografická škála a rytmus — nezávislé na režimu.
   Web má velikosti písma v celých číslech (13/14/15/16/17/18/26/30/48). CRM po
   prvním kole mělo 17 velikostí a 13 z nich zlomkových, protože se em násobilo
   na em (audit T1). Proto: font-size se píše JEN přes tyhle tokeny, nikdy em.
   Tělo zůstává 14 px (hustota recepce), nic nejde pod 11 px. Výjimky: ikony
   `.ti` (dědí z textu) a texty uvnitř SVG grafů (jednotky viewBoxu, ne px). */
:root {
  --ui-pismo-xs: .6875rem;  /* 11 px — hlavičky tabulek, štítky, drobné popisky */
  --ui-pismo-s: .75rem;     /* 12 px — popisky faktů, sekundární texty, .btn-sm, pole -sm */
  --ui-pismo-m: .8125rem;   /* 13 px — eyebrow, tělo tabulek, čipy, tagy */
  --ui-pismo-l: .875rem;    /* 14 px — tělo, tlačítka, pole, nabídky */
  --ui-pismo-xl: 1rem;      /* 16 px — nadpisy karet, hodnoty faktů */
  --ui-pismo-2xl: 1.125rem; /* 18 px — titulek dialogu, jméno v hlavičce vlákna */
  --ui-pismo-3xl: 1.5rem;   /* 24 px — nadpis stránky, velká čísla */
  --ui-pismo-4xl: 2rem;     /* 32 px — hlavní číslo přehledu */
  /* Jeden odstup mezi kartami (web má jeden: 50 px u studií; recepce hustší). */
  --ui-mezera-karet: 1.25rem;
}

/* Vysoká specificita vyrovnává kořenové barevné varianty Modernize. */
html[data-bs-theme][data-color-theme]:root,
.crm-ui {
  --bs-body-bg: var(--ui-pozadi);
  --bs-body-bg-rgb: var(--ui-pozadi-rgb);
  --bs-body-color: var(--ui-text);
  --bs-body-color-rgb: var(--ui-text-rgb);
  --bs-heading-color: var(--ui-nadpis);
  --bs-emphasis-color: var(--ui-nadpis);
  --bs-emphasis-color-rgb: var(--ui-text-rgb);
  --bs-secondary-color: var(--ui-tlumena);
  --bs-secondary-bg: var(--ui-plocha);
  --bs-tertiary-color: var(--ui-tlumena);
  --bs-tertiary-bg: var(--ui-plocha);
  --bs-border-color: var(--ui-linka);
  --bs-border-color-translucent: var(--ui-linka);
  --bs-primary: var(--ui-akcent);
  --bs-primary-rgb: var(--ui-akcent-rgb);
  --bs-primary-bg-subtle: var(--ui-akcent-tlumena);
  --bs-primary-border-subtle: var(--ui-linka-silna);
  --bs-primary-text-emphasis: var(--ui-zlata);
  --bs-link-color: var(--ui-zlata);
  --bs-link-color-rgb: var(--ui-zlata-rgb);
  --bs-link-hover-color: var(--ui-nadpis);
  --bs-link-hover-color-rgb: var(--ui-text-rgb);
  --bs-success: var(--ui-salvej);
  --bs-success-rgb: var(--ui-salvej-rgb);
  --bs-success-bg-subtle: var(--ui-salvej-plocha);
  --bs-success-border-subtle: var(--ui-salvej-linka);
  --bs-success-text-emphasis: var(--ui-salvej);
  --bs-danger: var(--ui-cihla);
  --bs-danger-rgb: var(--ui-cihla-rgb);
  --bs-danger-bg-subtle: var(--ui-cihla-plocha);
  --bs-danger-border-subtle: var(--ui-cihla-linka);
  --bs-danger-text-emphasis: var(--ui-cihla);
  --bs-warning: var(--ui-planovana);
  --bs-warning-rgb: var(--ui-planovana-rgb);
  --bs-warning-bg-subtle: var(--ui-planovana-plocha);
  --bs-warning-border-subtle: var(--ui-planovana-linka);
  --bs-warning-text-emphasis: var(--ui-planovana);
  --bs-info-bg-subtle: var(--ui-akcent-tlumena);
  --bs-info-border-subtle: var(--ui-linka-silna);
  --bs-info-text-emphasis: var(--ui-zlata);
  --bs-light: var(--ui-plocha);
  --bs-light-bg-subtle: var(--ui-plocha);
  --bs-dark: var(--ui-text);
  /* Stín karet je podpisový stín webu; malý je stín menu webu
     (0 0 15px) a velký jeho hlubší varianta pro překryvy. */
  --bs-box-shadow: var(--ui-stin-karta);
  --bs-box-shadow-sm: 0 0 15px var(--ui-stin);
  --bs-box-shadow-lg: 0 32px 80px var(--ui-stin);
}

html[data-bs-theme] body.crm-ui {
  color: var(--ui-text);
  background: var(--ui-pozadi);
}

/* Bootstrap/Modernize mají část utilit zapečenou mimo své barevné proměnné. */
.crm-ui :is(.text-primary, .text-info, .link-primary, .status-info) { color: var(--ui-zlata) !important; }
.crm-ui :is(.text-success, .status-success) { color: var(--ui-salvej) !important; }
.crm-ui :is(.text-danger, .status-danger, .invalid-feedback) { color: var(--ui-cihla) !important; }
.crm-ui :is(.text-warning, .status-warning) { color: var(--ui-planovana) !important; }
.crm-ui :is(.text-secondary, .text-body-secondary) { color: var(--ui-tlumena) !important; }
.crm-ui :is(.text-dark, .text-body) { color: var(--ui-text) !important; }
.crm-ui .text-body-emphasis { color: var(--ui-nadpis) !important; }
.crm-ui .bg-white { background-color: var(--ui-papir) !important; }
.crm-ui :is(.bg-light, .bg-body-tertiary, .bg-secondary-subtle) { background-color: var(--ui-plocha) !important; }
.crm-ui :is(.bg-primary-subtle, .bg-info-subtle) { background-color: var(--ui-akcent-tlumena) !important; }
.crm-ui .bg-success-subtle { background-color: var(--ui-salvej-plocha) !important; }
.crm-ui .bg-danger-subtle { background-color: var(--ui-cihla-plocha) !important; }
.crm-ui .bg-warning-subtle { background-color: var(--ui-planovana-plocha) !important; }
.crm-ui .bg-primary { background-color: var(--ui-akcent) !important; color: var(--ui-na-akcentu) !important; }
.crm-ui :is(.bg-primary, .btn-primary) .text-white { color: var(--ui-na-akcentu) !important; }
.crm-ui .border-primary { border-color: var(--ui-linka-silna) !important; }

.crm-ui :is(.btn-danger, .btn-outline-danger) {
  --bs-btn-color: var(--ui-cihla);
  --bs-btn-border-color: var(--ui-cihla-linka);
  --bs-btn-hover-color: var(--ui-na-akcentu);
  --bs-btn-hover-bg: var(--ui-cihla);
  --bs-btn-hover-border-color: var(--ui-cihla);
  --bs-btn-active-color: var(--ui-na-akcentu);
  --bs-btn-active-bg: var(--ui-cihla);
  --bs-btn-active-border-color: var(--ui-cihla);
  --bs-btn-disabled-color: var(--ui-cihla);
  --bs-btn-disabled-border-color: var(--ui-cihla-linka);
}

.crm-ui .btn-danger {
  --bs-btn-color: var(--ui-na-akcentu);
  --bs-btn-bg: var(--ui-cihla);
  --bs-btn-border-color: var(--ui-cihla);
  --bs-btn-disabled-color: var(--ui-na-akcentu);
  --bs-btn-disabled-bg: var(--ui-cihla);
}

.crm-ui .btn-outline-success {
  --bs-btn-color: var(--ui-salvej);
  --bs-btn-border-color: var(--ui-salvej-linka);
  --bs-btn-hover-color: var(--ui-na-akcentu);
  --bs-btn-hover-bg: var(--ui-salvej);
  --bs-btn-hover-border-color: var(--ui-salvej);
  --bs-btn-active-color: var(--ui-na-akcentu);
  --bs-btn-active-bg: var(--ui-salvej);
  --bs-btn-active-border-color: var(--ui-salvej);
}

.crm-ui .form-select { --bs-form-select-bg-img: var(--ui-select-sipka); }
.crm-ui .form-check-input { background-color: var(--ui-papir); }
/* Vendor noční formuláře mají barvu rámečku vynucenou přes !important. */
html[data-bs-theme='dark'] .crm-ui :is(.form-control, .form-select) {
  border-color: var(--ui-linka) !important;
}
html[data-bs-theme='dark'] .crm-ui :is(.form-control, .form-select):focus {
  border-color: var(--ui-zlata) !important;
}
html[data-bs-theme='dark'] .crm-ui :is(.form-control, .form-select).is-valid,
html[data-bs-theme='dark'] .crm-ui .was-validated :is(.form-control, .form-select):valid {
  border-color: var(--ui-salvej) !important;
}
html[data-bs-theme='dark'] .crm-ui :is(.form-control, .form-select).is-invalid,
html[data-bs-theme='dark'] .crm-ui .was-validated :is(.form-control, .form-select):invalid {
  border-color: var(--ui-cihla) !important;
}
.crm-ui input::selection,
.crm-ui textarea::selection { background: var(--ui-akcent-tlumena); color: var(--ui-text); }
.crm-ui input:autofill { box-shadow: 0 0 0 100px var(--ui-papir) inset; -webkit-text-fill-color: var(--ui-text); }

.crm-ui .btn-close {
  --bs-btn-close-bg: var(--ui-zavrit-ikona);
  background-image: var(--ui-zavrit-ikona);
  filter: none;
  opacity: .7;
}
.crm-ui .btn-close:hover { opacity: 1; }
.crm-ui .btn-close:focus-visible { box-shadow: 0 0 0 3px var(--ui-fokus); }
.crm-ui .modal-backdrop { --bs-backdrop-bg: var(--ui-zaves-barva); --bs-backdrop-opacity: var(--ui-zaves); }

.crm-ui .alert-warning { --bs-alert-color: var(--ui-planovana); --bs-alert-bg: var(--ui-planovana-plocha); --bs-alert-border-color: var(--ui-planovana-linka); }
.crm-ui .alert-danger { --bs-alert-color: var(--ui-cihla); --bs-alert-bg: var(--ui-cihla-plocha); --bs-alert-border-color: var(--ui-cihla-linka); }
.crm-ui .alert-success { --bs-alert-color: var(--ui-salvej); --bs-alert-bg: var(--ui-salvej-plocha); --bs-alert-border-color: var(--ui-salvej-linka); }
.crm-ui .alert-info { --bs-alert-color: var(--ui-zlata); --bs-alert-bg: var(--ui-akcent-tlumena); --bs-alert-border-color: var(--ui-linka-silna); }
.crm-ui :is(.alert-light, .alert-secondary) { --bs-alert-color: var(--ui-text); --bs-alert-bg: var(--ui-plocha); --bs-alert-border-color: var(--ui-linka); }

.vzhled-prepinac {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--ui-linka);
  border-radius: 999px;
  background: var(--ui-plocha);
}

.vzhled-tlacitko {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--ui-tlumena);
  font-size: var(--ui-pismo-xl);
  cursor: pointer;
}

.vzhled-tlacitko:hover {
  background: var(--ui-plocha-hover);
  color: var(--ui-text);
}

.vzhled-tlacitko[aria-pressed='true'] {
  background: var(--ui-papir);
  color: var(--ui-zlata);
  box-shadow: 0 1px 3px var(--ui-stin);
}

.vzhled-tlacitko:focus-visible {
  outline: 2px solid var(--ui-zlata);
  outline-offset: 2px;
}

@media (pointer: coarse) {
  .vzhled-tlacitko { width: 38px; height: 38px; }
}

/*
  Noc se od dne liší UŽ JEN BARVOU. Web Prague Relax má pro světlé i tmavé
  panely jednu geometrii — stejné rádiusy, stejné stíny — takže dřívější blok
  „noční režim je plochá pracovní plocha" (přepisy border-radius a
  box-shadow: none na kartách, tlačítkách, modálech i bublinách) tady zmizel.
  Dvojí geometrie navíc znamenala dvojí údržbu: každý nový tvar se musel
  doladit dvakrát a na jednom z režimů se na to pokaždé zapomnělo.
  Zůstávají jen opravy barev, které si Modernize v tmavé variantě zapéká
  natvrdo přes !important.
*/

/* Přepínač vzhledu: ve dne je zmáčknuté tlačítko papír, tedy světlejší než
   dráha. V noci je papír TMAVŠÍ než plocha, takže by zmáčknuté zapadlo.
   Mění se jen barva, tvar i stín zůstávají denní. */
html[data-bs-theme='dark'] .vzhled-tlacitko[aria-pressed='true'] {
  background: var(--ui-plocha-hover);
}

/* Modernize v noční variantě vynucuje starou hnědou barvu přímo na popiscích a buňkách. */
html[data-bs-theme='dark'] .crm-ui :is(.form-label, .col-form-label) {
  color: var(--ui-tlumena) !important;
}

html[data-bs-theme='dark'] .crm-ui .table > :not(caption) > * > * {
  color: var(--ui-text) !important;
}

html[data-bs-theme='dark'] .crm-ui .table > thead > tr > th {
  color: var(--ui-tlumena) !important;
}

html[data-bs-theme='dark'] .crm-ui .table > :not(caption) > * > :is(.text-primary, .text-info, .status-info) {
  color: var(--ui-zlata) !important;
}

html[data-bs-theme='dark'] .crm-ui .table > :not(caption) > * > :is(.text-success, .status-success) {
  color: var(--ui-salvej) !important;
}

html[data-bs-theme='dark'] .crm-ui .table > :not(caption) > * > :is(.text-danger, .status-danger) {
  color: var(--ui-cihla) !important;
}

html[data-bs-theme='dark'] .crm-ui .table > :not(caption) > * > :is(.text-warning, .status-warning) {
  color: var(--ui-planovana) !important;
}

html[data-bs-theme='dark'] .crm-ui .table > :not(caption) > * > :is(.text-secondary, .text-body-secondary, .text-muted) {
  color: var(--ui-tlumena) !important;
}

/* blocks.css má tečku časové osy zapečenou modře (#5d87ff) — jediný z jejích
   sedmi výskytů bez var(--bs-primary); zbylých šest fallbacků už token čte.
   AppBlocks.timeline() se dnes v CRM nevolá, ale blocks.js je v base.html na
   každé stránce, takže stačí jedna nová šablona a modrá by prosákla. */
.crm-ui .timeline-item::before {
  background: var(--ui-zlata-svetla);
}
