/**
 * @author      Luděk Nezmar
 * @copyright   2018-2026 ACRESIA Consulting s.r.o.
 * @license     Proprietary – použití podléhá licenčnímu ujednání
 *
 * Tmavý režim Acresia Tools.
 *
 * Režim se zapíná atributem `data-bs-theme="dark"` na <html> (nastavuje ho šablona podle
 * volby uživatele). VŠECHNA pravidla tohoto souboru jsou pod tímto atributem — ve světlém
 * režimu se neuplatní nic a vzhled zůstává přesně takový, jaký byl.
 *
 * Tři vrstvy:
 *
 *   1. Tokeny `--at-*`. Pohledy komponent mají barvy zapsané jako `var(--at-surface, #fff)`.
 *      Tokeny existují JEN tady, takže ve světlém režimu platí záložní (původní) barva.
 *      Paleta je břidlicová, shodná s bočním menu (mod_acresia_menu, `--am-n*`).
 *
 *   2. Proměnné Bootstrapu. Cassiopeia má vlastní sestavení Bootstrapu 5.3 bez barevných
 *      režimů a s prázdnou předponou (`--body-bg`, ne `--bs-body-bg`) — samotný atribut
 *      `data-bs-theme` by na webu neudělal nic. Tmavé hodnoty proto dodáváme sami.
 *
 *   3. Třídy, které se ani v Bootstrapu do tmy nepřizpůsobí (`bg-light`, `text-dark`,
 *      `table-light`, `btn-light`), a prvky Joomly mimo Bootstrap (Choices, kalendář,
 *      přepínač).
 *
 * Exporty (PDF, Word, e-mail) se netýkají — mPDF dostává vlastní HTML. Tisk vrací světlý
 * režim (šablona přepne atribut při `beforeprint`, pojistka je na konci souboru).
 */

/* ==========================================================================
   1. Tokeny
   ========================================================================== */

:root[data-bs-theme="dark"] {
    color-scheme: dark;

    /* plochy */
    --at-bg: #0f172a;
    --at-surface: #16203a;
    --at-surface-2: #1e293b;
    --at-surface-3: #273449;
    /* poloprůhledná plocha (místo rgba(255,255,255,.5–1): překryvy, odznaky na kartách) */
    --at-surface-glass: rgba(22, 32, 58, .85);

    /* rámečky */
    --at-border: #2b3a52;
    --at-border-strong: #3e4f6b;

    /* text */
    --at-text: #e2e8f0;
    --at-text-2: #cbd5e1;
    --at-text-muted: #94a3b8;

    /* barevný text — světlejší varianty, čitelné na tmavé ploše (kontrast ≥ 4,5) */
    --at-text-red: #f19aa2;
    --at-text-orange: #fdab6d;
    --at-text-yellow: #f5d76e;
    --at-text-green: #7ccf9e;
    --at-text-teal: #6edff6;
    --at-text-blue: #8ab4f8;
    --at-text-purple: #c4a8f5;

    /* tónovaná pozadí (výstrahy, štítky stavů, zvýraznění řádků) */
    --at-tint-red: #3a1a20;
    --at-tint-orange: #3d2614;
    --at-tint-yellow: #3a3214;
    --at-tint-green: #173326;
    --at-tint-teal: #123540;
    --at-tint-blue: #1a2c4f;
    --at-tint-purple: #2d2147;

    /* rámečky tónovaných ploch */
    --at-tint-border-red: #6a2c36;
    --at-tint-border-orange: #6e4420;
    --at-tint-border-yellow: #6b5a1e;
    --at-tint-border-green: #2b5a40;
    --at-tint-border-teal: #1f5a66;
    --at-tint-border-blue: #2a4a80;
    --at-tint-border-purple: #4d3a78;

    /* ======================================================================
       2. Bootstrap Cassiopeie (bez předpony)
       ====================================================================== */

    --body-color: #cbd5e1;
    --body-color-rgb: 203, 213, 225;
    --body-bg: #0f172a;
    --body-bg-rgb: 15, 23, 42;
    --emphasis-color: #f1f5f9;
    --emphasis-color-rgb: 241, 245, 249;
    --secondary-color: rgba(203, 213, 225, .75);
    --secondary-color-rgb: 203, 213, 225;
    --secondary-bg: #1e293b;
    --secondary-bg-rgb: 30, 41, 59;
    --tertiary-color: rgba(203, 213, 225, .5);
    --tertiary-color-rgb: 203, 213, 225;
    --tertiary-bg: #16203a;
    --tertiary-bg-rgb: 22, 32, 58;
    --heading-color: inherit;
    --link-color: #8ab4f8;
    --link-color-rgb: 138, 180, 248;
    --link-hover-color: #b3cdfb;
    --link-hover-color-rgb: 179, 205, 251;
    --code-color: #f0a3c8;
    --highlight-color: #f1f5f9;
    --highlight-bg: #5c4a0b;
    --border-color: #2b3a52;
    --border-color-translucent: rgba(255, 255, 255, .15);
    --focus-ring-color: rgba(138, 180, 248, .35);

    /* Barvy motivu. Cassiopeia má velmi tmavé (primární #010156, chyba #a51f18), které
       na tmavé stránce zmizí — `.text-primary` i `.text-danger` by byly nečitelné.
       Tyto hodnoty fungují jako plocha s bílým textem i jako text na tmavém podkladu. */
    --primary: #4f7fe0;
    --primary-rgb: 79, 127, 224;
    --secondary: #64748b;
    --secondary-rgb: 100, 116, 139;
    --success: #3f9a5c;
    --success-rgb: 63, 154, 92;
    --info: #2f8fc0;
    --info-rgb: 47, 143, 192;
    /* varovná zůstává Cassiopeiina: odznaky bg-warning nesou bílý text */
    --warning: #ad6200;
    --warning-rgb: 173, 98, 0;
    --danger: #d9534f;
    --danger-rgb: 217, 83, 79;

    --primary-text-emphasis: #8ab4f8;
    --secondary-text-emphasis: #cbd5e1;
    --success-text-emphasis: #7ccf9e;
    --info-text-emphasis: #6edff6;
    --warning-text-emphasis: #f5d76e;
    --danger-text-emphasis: #f19aa2;
    --light-text-emphasis: #e2e8f0;
    --dark-text-emphasis: #cbd5e1;
    --primary-bg-subtle: #1a2c4f;
    --secondary-bg-subtle: #1e293b;
    --success-bg-subtle: #173326;
    --info-bg-subtle: #123540;
    --warning-bg-subtle: #3a3214;
    --danger-bg-subtle: #3a1a20;
    --light-bg-subtle: #1e293b;
    --dark-bg-subtle: #0b1220;
    --primary-border-subtle: #2a4a80;
    --secondary-border-subtle: #3e4f6b;
    --success-border-subtle: #2b5a40;
    --info-border-subtle: #1f5a66;
    --warning-border-subtle: #6b5a1e;
    --danger-border-subtle: #6a2c36;
    --light-border-subtle: #2b3a52;
    --dark-border-subtle: #2b3a52;

    --form-valid-color: #7ccf9e;
    --form-valid-border-color: #4c9a6e;
    --form-invalid-color: #f19aa2;
    --form-invalid-border-color: #c2545f;

    /* Proměnné Bootstrapu S předponou --bs-. Cassiopeia je nemá, ale styly některých
       pohledů s nimi počítají (`var(--bs-body-bg, #fff)`) — ve světlém režimu platí jejich
       záložní hodnota, ve tmavém tyto. */
    --bs-body-bg: #0f172a;
    --bs-body-color: #cbd5e1;
    --bs-border-color: #3e4f6b;
    --bs-secondary-color: rgba(203, 213, 225, .75);
    --bs-secondary-bg: #1e293b;
    --bs-tertiary-bg: #16203a;
    --bs-emphasis-color: #f1f5f9;

    /* proměnné šablony Cassiopeia. --cassiopeia-color-hover zůstává Cassiopeiina:
       slouží jen jako pozadí (tlačítko při najetí, gradient hlavičky), ne jako text. */
    --cassiopeia-color-link: #8ab4f8;
    --template-bg-light: #16203a;
    --template-text-dark: #cbd5e1;
    --template-link-color: #8ab4f8;
}

/* ==========================================================================
   3. Plochy a prvky Bootstrapu s barvou natvrdo
   ========================================================================== */

:root[data-bs-theme="dark"],
:root[data-bs-theme="dark"] body {
    background-color: var(--at-bg);
}

/* Karty a okna jsou o stupeň výš než stránka — stejně jako bílé panely pohledů. */
:root[data-bs-theme="dark"] .card {
    --card-bg: var(--at-surface);
    --card-border-color: var(--at-border);
}
:root[data-bs-theme="dark"] .modal {
    --modal-bg: var(--at-surface);
}
:root[data-bs-theme="dark"] .dropdown-menu {
    --dropdown-bg: var(--at-surface);
    --dropdown-link-hover-bg: var(--at-surface-3);
    background-color: var(--at-surface);
}
:root[data-bs-theme="dark"] .offcanvas {
    --offcanvas-bg: var(--at-surface);
}
:root[data-bs-theme="dark"] .popover {
    --popover-bg: var(--at-surface);
}
:root[data-bs-theme="dark"] .toast {
    --toast-bg: rgba(22, 32, 58, .92);
}
:root[data-bs-theme="dark"] .nav-tabs + .tab-content {
    background: var(--at-surface);
    border-color: var(--at-border);
}
/* Lišta záložek má v Cassiopeii pozadí #f5f5f5 natvrdo a odkazy v barvě
   --cassiopeia-color-primary (#112855), která je na tmavé ploše neviditelná. */
:root[data-bs-theme="dark"] .nav.nav-tabs {
    background-color: var(--at-surface-2);
    border-color: var(--at-border);
}
:root[data-bs-theme="dark"] .nav.nav-tabs .nav-link {
    color: var(--at-text-blue);
}
:root[data-bs-theme="dark"] .nav.nav-tabs .nav-link.active {
    color: var(--at-text);
}

/* Barevné řádky tabulek mají v Cassiopeii hodnoty natvrdo (table-danger #edd2d1 …). */
:root[data-bs-theme="dark"] .table-primary,
:root[data-bs-theme="dark"] .table-secondary,
:root[data-bs-theme="dark"] .table-success,
:root[data-bs-theme="dark"] .table-info,
:root[data-bs-theme="dark"] .table-warning,
:root[data-bs-theme="dark"] .table-danger {
    --table-color: var(--at-text);
    --table-striped-color: var(--at-text);
    --table-active-color: var(--at-text);
    --table-hover-color: var(--at-text);
    color: var(--table-color);
    border-color: var(--table-border-color);
}
:root[data-bs-theme="dark"] .table-primary {
    --table-bg: var(--at-tint-blue); --table-border-color: var(--at-tint-border-blue);
    --table-striped-bg: #20365f; --table-active-bg: #243c69; --table-hover-bg: #223964;
}
:root[data-bs-theme="dark"] .table-secondary {
    --table-bg: var(--at-surface-3); --table-border-color: var(--at-border-strong);
    --table-striped-bg: #2d3b52; --table-active-bg: #33425a; --table-hover-bg: #303f56;
}
:root[data-bs-theme="dark"] .table-success {
    --table-bg: var(--at-tint-green); --table-border-color: var(--at-tint-border-green);
    --table-striped-bg: #1c3d2d; --table-active-bg: #204533; --table-hover-bg: #1e4130;
}
:root[data-bs-theme="dark"] .table-info {
    --table-bg: var(--at-tint-teal); --table-border-color: var(--at-tint-border-teal);
    --table-striped-bg: #16404d; --table-active-bg: #194856; --table-hover-bg: #174451;
}
:root[data-bs-theme="dark"] .table-warning {
    --table-bg: var(--at-tint-yellow); --table-border-color: var(--at-tint-border-yellow);
    --table-striped-bg: #453b18; --table-active-bg: #4e431b; --table-hover-bg: #4a3f1a;
}
:root[data-bs-theme="dark"] .table-danger {
    --table-bg: var(--at-tint-red); --table-border-color: var(--at-tint-border-red);
    --table-striped-bg: #451f26; --table-active-bg: #4e232b; --table-hover-bg: #4a2129;
}
/* Drobečková navigace: aktivní položka je v Cassiopeii #484f56 natvrdo. */
:root[data-bs-theme="dark"] .breadcrumb {
    --breadcrumb-item-active-color: var(--at-text-muted);
    --breadcrumb-divider-color: #64748b;
}

/* Tabulka přebírá plochu, na které leží (karta, panel), místo stránky pod ní. */
:root[data-bs-theme="dark"] .table {
    --table-bg: transparent;
    --table-color: var(--body-color);
}
:root[data-bs-theme="dark"] .table-light {
    --table-color: var(--at-text);
    --table-bg: var(--at-surface-2);
    --table-border-color: var(--at-border);
    --table-striped-bg: #243049;
    --table-striped-color: var(--at-text);
    --table-active-bg: var(--at-surface-3);
    --table-active-color: var(--at-text);
    --table-hover-bg: var(--at-surface-3);
    --table-hover-color: var(--at-text);
    color: var(--table-color);
    border-color: var(--table-border-color);
}

/* Formuláře: pole jsou o stupeň níž než panel, rámeček zřetelný. Cassiopeia má
   kromě `background-color: var(--body-bg)` ještě druhé pravidlo s `#fff` natvrdo. */
:root[data-bs-theme="dark"] .form-control,
:root[data-bs-theme="dark"] .form-select,
:root[data-bs-theme="dark"] .custom-select,
:root[data-bs-theme="dark"] .input-group-text {
    border-color: var(--at-border-strong);
}
:root[data-bs-theme="dark"] .form-control {
    background-color: var(--at-bg);
    color: var(--at-text);
}
:root[data-bs-theme="dark"] .form-control:disabled,
:root[data-bs-theme="dark"] .form-control[readonly] {
    background-color: var(--at-surface-2);
}
:root[data-bs-theme="dark"] .form-control:focus,
:root[data-bs-theme="dark"] .form-select:focus {
    border-color: #6b8fd6;
}
:root[data-bs-theme="dark"] .form-control::placeholder {
    color: #64748b;
}
/* Šipku výběru kreslí Cassiopeia obrázkem s BÍLÝM obdélníkem přes celé pole —
   tmavá varianta téhož obrázku (obdélník = plocha pole, šipka světlá). Cassiopeia ho
   zapisuje dvakrát: přes --form-select-bg-img i přímo do `background`, proto se
   přepisuje i background-image. Vícenásobný výběr šipku nemá. */
:root[data-bs-theme="dark"] {
    --at-select-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1854.54 295' preserveAspectRatio='xMinYMid' width='1854.54' height='295'%3E%3Cpath d='M1825.1,145.7l6.9,6.9c0.1,0.1,0.2,0.1,0.3,0.1c0.1,0,0.2,0,0.3-0.1l6.9-6.9c0.1-0.1,0.1-0.2,0.1-0.3c0-0.1,0-0.2-0.1-0.3l-0.7-0.7c-0.1-0.1-0.2-0.1-0.3-0.1s-0.2,0-0.3,0.1l-5.8,5.8l-5.8-5.8c-0.1-0.1-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0.1l-0.7,0.7c-0.1,0.1-0.1,0.2-0.1,0.3C1824.9,145.5,1825,145.6,1825.1,145.7z' fill='%23cbd5e1'/%3E%3Crect width='1810' height='295' fill='%230f172a'/%3E%3C/svg%3E");
}
:root[data-bs-theme="dark"] .form-select,
:root[data-bs-theme="dark"] .custom-select {
    --form-select-bg-img: var(--at-select-img);
    background-color: var(--at-surface-2);
}
:root[data-bs-theme="dark"] .form-select:not([multiple]):not([size]),
:root[data-bs-theme="dark"] .custom-select:not([multiple]):not([size]) {
    background-image: var(--at-select-img);
}
:root[data-bs-theme="dark"] .form-select option,
:root[data-bs-theme="dark"] .form-select optgroup {
    background-color: var(--at-surface);
    color: var(--at-text);
}
:root[data-bs-theme="dark"] .form-check-input {
    background-color: var(--at-bg);
    border-color: var(--at-border-strong);
}
:root[data-bs-theme="dark"] .form-check-input:checked {
    background-color: var(--primary);
    border-color: var(--primary);
}

/* Tlačítka, jejichž barvy má Cassiopeia natvrdo. */
:root[data-bs-theme="dark"] .btn-primary {
    --btn-bg: #3b6fd8;
    --btn-border-color: #3b6fd8;
    --btn-hover-bg: #3361c2;
    --btn-hover-border-color: #3361c2;
    --btn-active-bg: #2c55aa;
    --btn-active-border-color: #2c55aa;
    --btn-disabled-bg: #3b6fd8;
    --btn-disabled-border-color: #3b6fd8;
}
:root[data-bs-theme="dark"] .btn-outline-primary {
    --btn-color: #8ab4f8;
    --btn-border-color: #4f7fe0;
    --btn-hover-color: #fff;
    --btn-hover-bg: #3b6fd8;
    --btn-hover-border-color: #3b6fd8;
    --btn-active-color: #fff;
    --btn-active-bg: #2c55aa;
    --btn-active-border-color: #2c55aa;
    --btn-disabled-color: #8ab4f8;
    --btn-disabled-border-color: #4f7fe0;
}
:root[data-bs-theme="dark"] .btn-outline-secondary {
    --btn-color: #94a3b8;
    --btn-border-color: #64748b;
    --btn-hover-color: #fff;
    --btn-hover-bg: #334155;
    --btn-hover-border-color: #64748b;
    --btn-active-color: #fff;
    --btn-active-bg: #334155;
    --btn-active-border-color: #64748b;
    --btn-disabled-color: #64748b;
    --btn-disabled-border-color: #3e4f6b;
}
:root[data-bs-theme="dark"] .btn-outline-success {
    --btn-color: #7ccf9e;
    --btn-border-color: #3f9a5c;
    --btn-hover-bg: #3f9a5c;
    --btn-hover-border-color: #3f9a5c;
    --btn-active-bg: #357f4d;
}
:root[data-bs-theme="dark"] .btn-outline-danger {
    --btn-color: #f19aa2;
    --btn-border-color: #d9534f;
    --btn-hover-bg: #d9534f;
    --btn-hover-border-color: #d9534f;
    --btn-active-bg: #b94541;
}
:root[data-bs-theme="dark"] .btn-outline-warning {
    --btn-color: #f5d76e;
    --btn-border-color: #c98a1a;
    --btn-hover-color: #0f172a;
    --btn-hover-bg: #c98a1a;
    --btn-hover-border-color: #c98a1a;
    --btn-active-bg: #a87414;
}
:root[data-bs-theme="dark"] .btn-outline-info {
    --btn-color: #6edff6;
    --btn-border-color: #2f8fc0;
    --btn-hover-bg: #2f8fc0;
    --btn-hover-border-color: #2f8fc0;
    --btn-active-bg: #2778a2;
}
:root[data-bs-theme="dark"] .btn-light {
    --btn-color: var(--at-text);
    --btn-bg: var(--at-surface-2);
    --btn-border-color: var(--at-border);
    --btn-hover-color: #fff;
    --btn-hover-bg: var(--at-surface-3);
    --btn-hover-border-color: var(--at-border-strong);
    --btn-active-color: #fff;
    --btn-active-bg: var(--at-surface-3);
    --btn-active-border-color: var(--at-border-strong);
}
:root[data-bs-theme="dark"] .btn-outline-dark {
    --btn-color: #cbd5e1;
    --btn-border-color: #64748b;
    --btn-hover-color: #fff;
    --btn-hover-bg: #334155;
    --btn-hover-border-color: #64748b;
    --btn-active-color: #fff;
    --btn-active-bg: #334155;
}
:root[data-bs-theme="dark"] .btn-outline-light {
    --btn-color: #e2e8f0;
    --btn-border-color: #64748b;
}
:root[data-bs-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}
:root[data-bs-theme="dark"] .pagination {
    --pagination-active-bg: #3b6fd8;
    --pagination-active-border-color: #3b6fd8;
}
:root[data-bs-theme="dark"] .accordion {
    --accordion-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23cbd5e1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5L8 11L14 5'/%3E%3C/svg%3E");
    --accordion-btn-active-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%238ab4f8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5L8 11L14 5'/%3E%3C/svg%3E");
    --accordion-active-bg: var(--at-tint-blue);
    --accordion-active-color: var(--at-text-blue);
}

/* Utility, které se do tmy nepřizpůsobí ani v Bootstrapu 5.3 (dokumentace na jejich místě
   doporučuje `bg-body-tertiary` / `text-body-emphasis`; pohledy je ale používají stovkykrát). */
:root[data-bs-theme="dark"] .bg-white {
    background-color: var(--at-surface) !important;
}
:root[data-bs-theme="dark"] .bg-light {
    background-color: var(--at-surface-2) !important;
}
/* Mimo odznaky: odznak si nese vlastní plochu (žlutý bg-warning, azurový bg-info s tmavým
   textem kvůli kontrastu — badges.css v BIA/BOZP/CPL/KRIT, ticket #210), text má zůstat. */
:root[data-bs-theme="dark"] .text-dark:not(.badge),
:root[data-bs-theme="dark"] .text-black:not(.badge) {
    color: var(--emphasis-color) !important;
}
/* text-bg-light je v Cassiopeii světlá plocha s černým textem — ve tmě tmavší plocha
   se světlým textem (karty i odznaky). Ostatní text-bg-* mají v Cassiopeii bílý text na
   tmavé barvě a fungují beze změny. */
:root[data-bs-theme="dark"] .text-bg-light {
    color: var(--at-text) !important;
    background-color: var(--at-surface-2) !important;
}
:root[data-bs-theme="dark"] .border-light {
    border-color: var(--at-border) !important;
}
/* Odznak bg-light má v pohledech tmavý text natvrdo (i s !important, např. badges.css
   v KRIT); plocha se přemapuje výše, text musí jít s ní. */
:root[data-bs-theme="dark"] .badge.bg-light {
    color: var(--at-text) !important;
}

/* at-lift: text, jehož barvu počítá kód (pásma rizik, stavy z číselníku) a nedá se
   převést na token. Ve tmě se zesvětlí, odstín zůstane. */
:root[data-bs-theme="dark"] .at-lift {
    filter: brightness(1.6) saturate(1.1);
}

/* ==========================================================================
   4. Prvky Joomly mimo Bootstrap
   ========================================================================== */

/* Choices.js (výběry s vyhledáváním a vícenásobné výběry) */
:root[data-bs-theme="dark"] .choices {
    --choices-bg-color: var(--at-bg);
    --choices-bg-color-dropdown: var(--at-surface);
    --choices-bg-color-disabled: var(--at-surface-2);
    --choices-keyline-color: var(--at-border-strong);
    --choices-text-color: var(--at-text-2);
    --choices-highlighted-color: var(--at-surface-3);
    --choices-item-disabled-color: var(--at-text-muted);
    border-color: var(--at-border-strong);
}
:root[data-bs-theme="dark"] .choices[data-type*="select-one"] .choices__inner,
:root[data-bs-theme="dark"] .choices[data-type*="select-multiple"] .choices__inner {
    background: var(--at-surface-2) var(--at-select-img) 100% / 116rem no-repeat;
}
:root[data-bs-theme="dark"] .choices__input {
    color: var(--at-text);
}
:root[data-bs-theme="dark"] .choices__input::placeholder {
    color: #64748b;
}
:root[data-bs-theme="dark"] .choices__list--dropdown,
:root[data-bs-theme="dark"] .choices__list[aria-expanded] {
    color: var(--at-text-2);
}
:root[data-bs-theme="dark"] .choices__heading {
    color: var(--at-text-muted);
}

/* Kalendář pole data */
:root[data-bs-theme="dark"] .calendar-container {
    --calendar-bg: var(--at-surface);
    --calendar-week-bg: var(--at-surface-2);
    --calendar-select-color: var(--at-text);
    --calendar-select-bg-color: var(--at-surface-2);
    color: var(--at-text-2);
}
:root[data-bs-theme="dark"] .calendar-container table thead td.headrow,
:root[data-bs-theme="dark"] .calendar-container table tbody td.wn {
    background: var(--at-surface);
    color: var(--at-text);
}
:root[data-bs-theme="dark"] .calendar-container table thead td.name {
    color: var(--at-text);
    border-bottom-color: var(--at-surface);
}
:root[data-bs-theme="dark"] .calendar-container table tbody td.hilite {
    background: var(--at-surface-3);
}

/* Přepínač Ano/Ne */
:root[data-bs-theme="dark"] .switcher .toggle-outside {
    background: #3e4f6b;
    border-color: rgba(255, 255, 255, .12);
}
:root[data-bs-theme="dark"] .switcher input ~ input:checked ~ .toggle-outside {
    background: #3f9a5c;
}
:root[data-bs-theme="dark"] .switcher .toggle-inside {
    background: #e2e8f0;
}

/* Zprávy systému a panely Cassiopeie s bílou natvrdo. Zprávy mají v Cassiopeii selektor
   s ID (#system-message-container joomla-alert[type=…]) — bez ID by je pravidlo nepřebilo.
   Barevný okraj zprávy (--alert-accent-color) zůstává. */
:root[data-bs-theme="dark"] #system-message-container joomla-alert,
:root[data-bs-theme="dark"] joomla-alert {
    --gray-dark: var(--at-text-2);
    color: var(--at-text-2);
    background-color: var(--at-surface);
}
:root[data-bs-theme="dark"] .options-form,
:root[data-bs-theme="dark"] .subhead {
    color: var(--at-text-2);
    background-color: var(--at-surface);
    border-color: var(--at-border);
}
:root[data-bs-theme="dark"] .options-form > legend {
    color: var(--at-text-2);
    background-color: var(--at-surface);
}

/* Posuvníky */
:root[data-bs-theme="dark"] {
    scrollbar-color: #3e4f6b var(--at-bg);
}

/* ==========================================================================
   Světlý ostrůvek: prvek s data-bs-theme="light" uvnitř tmavé stránky
   ==========================================================================
   Pro náhledy dokumentů, které mají vypadat jako papír (náhled tisku, veřejné prohlášení
   o cookies v designu klienta). Tokeny se zneplatní (var() použije původní barvu) a
   proměnné Bootstrapu dostanou světlé hodnoty Cassiopeie. Vhodné pro obsah dokumentu,
   ne pro formuláře — tmavá pravidla polí a tlačítek uvnitř ostrůvku dál platí. */
:root[data-bs-theme="dark"] [data-bs-theme="light"] {
    color-scheme: light;
    --at-surface: initial; --at-surface-2: initial; --at-surface-3: initial; --at-surface-glass: initial;
    --at-border: initial; --at-border-strong: initial;
    --at-text: initial; --at-text-2: initial; --at-text-muted: initial;
    --at-text-red: initial; --at-text-orange: initial; --at-text-yellow: initial;
    --at-text-green: initial; --at-text-teal: initial; --at-text-blue: initial; --at-text-purple: initial;
    --at-tint-red: initial; --at-tint-orange: initial; --at-tint-yellow: initial;
    --at-tint-green: initial; --at-tint-teal: initial; --at-tint-blue: initial; --at-tint-purple: initial;
    --at-tint-border-red: initial; --at-tint-border-orange: initial; --at-tint-border-yellow: initial;
    --at-tint-border-green: initial; --at-tint-border-teal: initial; --at-tint-border-blue: initial;
    --at-tint-border-purple: initial;
    --bs-body-bg: initial; --bs-body-color: initial; --bs-border-color: initial;
    --bs-secondary-color: initial; --bs-secondary-bg: initial; --bs-tertiary-bg: initial;
    --bs-emphasis-color: initial;
    --body-color: #22262a; --body-color-rgb: 34, 38, 42;
    --body-bg: #fff; --body-bg-rgb: 255, 255, 255;
    --emphasis-color: #000; --emphasis-color-rgb: 0, 0, 0;
    --secondary-color: #22262abf; --secondary-bg: #eaedf0;
    --tertiary-color: #22262a80; --tertiary-bg: #f9fafb;
    --heading-color: inherit;
    --link-color: #224faa; --link-color-rgb: 34, 79, 170;
    --link-hover-color: #424077; --link-hover-color-rgb: 66, 64, 119;
    --cassiopeia-color-link: #224faa; --cassiopeia-color-hover: #424077;
    --border-color: #dfe3e7; --border-color-translucent: #0000002d;
    --primary: #010156; --primary-rgb: 1, 1, 86;
    --success: #448344; --success-rgb: 68, 131, 68;
    --danger: #a51f18; --danger-rgb: 165, 31, 24;
    --warning: #ad6200; --warning-rgb: 173, 98, 0;
    --info: #30638d; --info-rgb: 48, 99, 141;
    color: var(--body-color);
    background-color: var(--body-bg);
}

/* ==========================================================================
   5. Tisk — vždy světle
   Šablona při `beforeprint` přepne atribut na světlý; tohle je pojistka pro tisk bez JS.
   Token nastavený na `initial` je neplatný, takže `var()` použije původní barvu.
   ========================================================================== */

@media print {
    :root[data-bs-theme="dark"] {
        color-scheme: light;
        --at-surface: initial; --at-surface-2: initial; --at-surface-3: initial; --at-surface-glass: initial;
        --at-border: initial; --at-border-strong: initial;
        --at-text: initial; --at-text-2: initial; --at-text-muted: initial;
        --at-text-red: initial; --at-text-orange: initial; --at-text-yellow: initial;
        --at-text-green: initial; --at-text-teal: initial; --at-text-blue: initial; --at-text-purple: initial;
        --at-tint-red: initial; --at-tint-orange: initial; --at-tint-yellow: initial;
        --at-tint-green: initial; --at-tint-teal: initial; --at-tint-blue: initial; --at-tint-purple: initial;
        --at-tint-border-red: initial; --at-tint-border-orange: initial; --at-tint-border-yellow: initial;
        --at-tint-border-green: initial; --at-tint-border-teal: initial; --at-tint-border-blue: initial;
        --at-tint-border-purple: initial;
        --bs-body-bg: initial; --bs-body-color: initial; --bs-border-color: initial;
        --bs-secondary-color: initial; --bs-secondary-bg: initial; --bs-tertiary-bg: initial;
        --bs-emphasis-color: initial;
        --body-color: #22262a; --body-bg: #fff; --emphasis-color: #000; --border-color: #dfe3e7;
    }
    :root[data-bs-theme="dark"],
    :root[data-bs-theme="dark"] body {
        background-color: #fff;
    }
}
