/* Generované z docs/dizajn/tokeny.json skriptom docs/dizajn/gen-tema.mjs – needitovať ručne.
   Kontrast overený 22. 9. 2026 (PRTL-301): text voči podkladu najmenej 4,5:1,
   najslabšia dvojica 4,54:1 (odkaz na podklade hlavičky) v bledom a 6,40:1 (tmavý text na chybe) v tmavom režime. */

:root {
  --p-podklad-stranky: #f4f6f9;
  --p-podklad-karty: #ffffff;
  --p-podklad-hlavicky: #eef2f7;
  --p-text: #2c3238;
  --p-text-tlmeny: #5c6670;
  --p-ohranicenie: #dde3ea;
  --p-tien: 0 10px 20px rgba(0,0,0,.08);
  --p-akcia: #1B7F2A;
  --p-akcia-text: #ffffff;
  --p-akcia-hover: #156B22;
  --p-akcia-aktivna: #11591C;
  --p-akcia-ton: #D5F0D1;
  --p-akcia-ton-text: #0B3D14;
  --p-akcia-na-svetlom: #1B7F2A;
  --p-odkaz: #1B7F2A;
  --p-odkaz-hover: #11591C;
  --p-prechod-od: #0B3D14;
  --p-prechod-do: #1B7F2A;
  --p-uspech: #1f7a53;
  --p-uspech-text: #ffffff;
  --p-upozornenie: #f0ad4e;
  --p-upozornenie-text: #3d2c00;
  --p-chyba: #c23b38;
  --p-chyba-text: #ffffff;
  --p-stav-text: #2c3238;
  --p-stav-podana: #cddafd;
  --p-stav-zadana: #eae4e9;
  --p-stav-prevzata: #fff1e6;
  --p-stav-uzavreta: #e2ece9;
  --p-stav-odoslana: #bee1e6;
  --p-stav-zamietnuta: #fad2e1;
  --p-stav-zrusena: #e7e2dd;
  --p-graf-1: #2f6fd0;
  --p-graf-2: #1f7a53;
  --p-graf-3: #b3701c;
  --p-graf-4: #8557b5;
  --p-graf-5: #2b7488;
  --p-graf-6: #b0453f;
  --p-graf-7: #02a67e;
  --p-graf-8: #55488d;
  --p-graf-9: #be7aaf;
  --p-graf-10: #3d6a07;
  --p-graf-11: #1695e0;
  --p-graf-12: #ce7b62;
  --p-graf-mriezka: #e6eaf0;
  --p-graf-os: #5c6670;
  --p-graf-podklad: #ffffff;
  --p-kalendar-mriezka: #dde3ea;
  --p-kalendar-dnes: #eef2f7;
  --p-kalendar-mimo-mesiaca: #f7f9fb;
  --p-kalendar-vikend: #fbfcfd;
  --p-krok-hotovy: #1f7a53;
  --p-krok-aktualny: #1B7F2A;
  --p-krok-cakajuci: #5c6670;

  --p-karta-padding: 1.5rem;
  --p-hlavicka-karty: .75rem 1.5rem;
  --p-sekcia-space-sm: 3rem;
  --p-polozka-zoznamu: .75rem 1.25rem;
  --p-sirka-citania: 68ch;
  --p-vyska-bunky-kalendara: 5.5rem;
  --p-zaoblenie: 7px;
  --p-zaoblenie-karta: 10px;
  --p-zaoblenie-hlasenie: 8px;
  --p-zaoblenie-odznak: 999px;
  --p-zaoblenie-drobne: 3px;
}

/* Tmavý režim sa zapína atribútom na <html>; hodnoty sú tie isté role, iné hodnoty. */
[data-rezim="tmavy"] {
  --p-podklad-stranky: #11151a;
  --p-podklad-karty: #1a2027;
  --p-podklad-hlavicky: #222a33;
  --p-text: #e7ecf2;
  --p-text-tlmeny: #a6b0bb;
  --p-ohranicenie: #2b333d;
  --p-tien: 0 10px 24px rgba(0,0,0,.45);
  --p-akcia: #7FD68F;
  --p-akcia-text: #062B0C;
  --p-akcia-hover: #9BE0A7;
  --p-akcia-aktivna: #B9ECB3;
  --p-akcia-ton: #1F3A24;
  --p-akcia-ton-text: #B9ECB3;
  --p-akcia-na-svetlom: #1B7F2A;
  --p-odkaz: #7FD68F;
  --p-odkaz-hover: #B9ECB3;
  --p-prechod-od: #0F1410;
  --p-prechod-do: #1F3A24;
  --p-uspech: #4cc38a;
  --p-uspech-text: #0e1620;
  --p-upozornenie: #e0a33a;
  --p-upozornenie-text: #0e1620;
  --p-chyba: #f0736e;
  --p-chyba-text: #0e1620;
  --p-stav-text: #e7ecf2;
  --p-stav-podana: #2a3a5c;
  --p-stav-zadana: #3a3436;
  --p-stav-prevzata: #4a3a2c;
  --p-stav-uzavreta: #2b4038;
  --p-stav-odoslana: #23414a;
  --p-stav-zamietnuta: #4d2c3a;
  --p-stav-zrusena: #3a332d;
  --p-graf-1: #79a8f7;
  --p-graf-2: #4cc38a;
  --p-graf-3: #e0a33a;
  --p-graf-4: #b48ae0;
  --p-graf-5: #5fb6cc;
  --p-graf-6: #f0736e;
  --p-graf-7: #37b19e;
  --p-graf-8: #826df0;
  --p-graf-9: #d15189;
  --p-graf-10: #74940e;
  --p-graf-11: #1f93b8;
  --p-graf-12: #f15f2e;
  --p-graf-mriezka: #2b333d;
  --p-graf-os: #a6b0bb;
  --p-graf-podklad: #1a2027;
  --p-kalendar-mriezka: #2b333d;
  --p-kalendar-dnes: #222a33;
  --p-kalendar-mimo-mesiaca: #161b21;
  --p-kalendar-vikend: #151a20;
  --p-krok-hotovy: #4cc38a;
  --p-krok-aktualny: #7FD68F;
  --p-krok-cakajuci: #a6b0bb;
}

/* --------------------------------------------------------------------------------------------
   Mapovanie tokenov na tému (PRTL-247, J2)

   Téma má farby napevno a pri troch z nich nespĺňa kontrast 4,5:1 – biely text na zelenej má
   2,59:1 a na oranžovej 1,95:1. Nasledujúce pravidlá ich prekrývajú hodnotami z tokenov.
   -------------------------------------------------------------------------------------------- */

.btn-success {
  background-color: var(--p-uspech);
  border-color: var(--p-uspech);
  color: var(--p-uspech-text);
}

.btn-success:hover,
.btn-success:focus,
.btn-success:not(:disabled):not(.disabled):active {
  background-color: color-mix(in srgb, var(--p-uspech) 88%, #000);
  border-color: color-mix(in srgb, var(--p-uspech) 88%, #000);
  color: var(--p-uspech-text);
}

.btn-outline-success {
  border-color: var(--p-uspech);
  color: var(--p-uspech);
}

.btn-outline-success:hover,
.btn-outline-success:not(:disabled):not(.disabled):active {
  background-color: var(--p-uspech);
  border-color: var(--p-uspech);
  color: var(--p-uspech-text);
}

.btn-warning {
  background-color: var(--p-upozornenie);
  border-color: var(--p-upozornenie);
  color: var(--p-upozornenie-text);
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:not(:disabled):not(.disabled):active {
  background-color: color-mix(in srgb, var(--p-upozornenie) 88%, #000);
  border-color: color-mix(in srgb, var(--p-upozornenie) 88%, #000);
  color: var(--p-upozornenie-text);
}

.btn-outline-warning {
  border-color: var(--p-upozornenie);
  color: var(--p-upozornenie);
}

.btn-outline-warning:hover,
.btn-outline-warning:not(:disabled):not(.disabled):active {
  background-color: var(--p-upozornenie);
  border-color: var(--p-upozornenie);
  color: var(--p-upozornenie-text);
}

.btn-danger {
  background-color: var(--p-chyba);
  border-color: var(--p-chyba);
  color: var(--p-chyba-text);
}

.btn-outline-danger {
  border-color: var(--p-chyba);
  color: var(--p-chyba);
}

.badge-success,
.bg-success {
  background-color: var(--p-uspech) !important;
  color: var(--p-uspech-text) !important;
}

.badge-warning,
.bg-warning {
  background-color: var(--p-upozornenie) !important;
  color: var(--p-upozornenie-text) !important;
}

.badge-danger,
.bg-danger {
  background-color: var(--p-chyba) !important;
  color: var(--p-chyba-text) !important;
}

/* Text v texte: zelená a oranžová témy sú na bielom podklade nečitateľné rovnako ako na tlačidle. */
.text-success {
  color: var(--p-uspech) !important;
}

.text-warning {
  color: var(--p-upozornenie) !important;
}

.text-danger,
.text-red {
  color: var(--p-chyba) !important;
}

/* Hlásenia balíka flash: farbu nesie ľavý pruh a text, nie celá plocha. */
.alert-success {
  border-color: var(--p-uspech);
  color: var(--p-uspech);
}

.alert-warning {
  border-color: var(--p-upozornenie);
  color: var(--p-upozornenie);
}

.alert-danger {
  border-color: var(--p-chyba);
  color: var(--p-chyba);
}

/* PRTL-335: hlásenie po akcii pláva nad stránkou vpravo pod navigáciou, obsah stránky neposúva.
   Presnú výšku navigácie dopĺňa layout, `top` je záloha. Pod navigáciou (1020) a modálnym oknom,
   nad rozbaľovacím menu obsahu (1000). Obal kliknutia prepúšťa, zachytáva ich len hlásenie. */
.flash-hlasenia {
  position: fixed;
  top: 5rem;
  right: 1rem;
  z-index: 1010;
  width: 26rem;
  max-width: calc(100% - 2rem);
  pointer-events: none;
}

.flash-hlasenia .alert {
  margin-bottom: .5rem;
  box-shadow: var(--p-tien);
  pointer-events: auto;
}

/* --------------------------------------------------------------------------------------------
   Zaoblenie (PRTL-269)

   Návrh fázy 3 mal mäkšie rohy než téma: karta 10 px, ovládač 7 px, hlásenie 8 px, odznak pilulku.
   Téma Wingman má všade 4 px, preto sa stupnica dopĺňa tu. Hodnoty sú v tokenoch, nie v pravidle.
   -------------------------------------------------------------------------------------------- */

.card,
.modal-content,
.dropdown-menu,
.list-group {
  border-radius: var(--p-zaoblenie-karta);
}

/* Hlavička a pätička kopírujú zaoblenie karty, inak by v rohu vykukol ostrý roh podkladu. */
.card > .card-header:first-child {
  border-radius: calc(var(--p-zaoblenie-karta) - 1px) calc(var(--p-zaoblenie-karta) - 1px) 0 0;
}

.card > .card-footer:last-child {
  border-radius: 0 0 calc(var(--p-zaoblenie-karta) - 1px) calc(var(--p-zaoblenie-karta) - 1px);
}

.card > .card-body:first-child,
.card > .list-group:first-child .list-group-item:first-child {
  border-top-left-radius: calc(var(--p-zaoblenie-karta) - 1px);
  border-top-right-radius: calc(var(--p-zaoblenie-karta) - 1px);
}

.card > .card-body:last-child,
.card > .list-group:last-child .list-group-item:last-child {
  border-bottom-left-radius: calc(var(--p-zaoblenie-karta) - 1px);
  border-bottom-right-radius: calc(var(--p-zaoblenie-karta) - 1px);
}

.btn,
.form-control,
.custom-select,
.custom-file-label,
.input-group-text,
.page-link,
.nav-pills .nav-link,
.card .nav.flex-md-column .nav-link {
  border-radius: var(--p-zaoblenie);
}

/* Skupiny tlačidiel a vstupov si vnútorné rohy zarovnávajú samy. */
.btn-group > .btn:not(:first-child):not(:last-child),
.input-group > .form-control:not(:first-child):not(:last-child) {
  border-radius: 0;
}

/* Stránkovanie: zaoblené sú len vonkajšie rohy celej skupiny, vnútorné sú rovné. Téma Wingman
   dáva prvému a poslednému tlačidlu vlastný (menší) polomer so špecifickosťou 0,3,0, a to pri
   plošnom `.page-link` vyššie vyšlo naopak: vonkajšie rohy menšie ako vnútorné. */
.page-item:not(:first-child) .page-link {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.page-item:not(:last-child) .page-link {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.page-item:first-child .page-link {
  border-top-left-radius: var(--p-zaoblenie);
  border-bottom-left-radius: var(--p-zaoblenie);
}

.page-item:last-child .page-link {
  border-top-right-radius: var(--p-zaoblenie);
  border-bottom-right-radius: var(--p-zaoblenie);
}

/* Neaktívne tlačidlo stránkovania (napr. „späť“ na prvej strane). Téma ho má napevno biele so
   špecifickosťou 0,3,0, preto ho tmavé prekrytie `[data-rezim] .page-link` neprebije. Tokeny
   sa menia podľa režimu, takže jedno pravidlo stačí pre svetlý aj tmavý. */
.page-item.disabled .page-link {
  background-color: var(--p-podklad-karty);
  border-color: var(--p-ohranicenie);
  color: var(--p-text-tlmeny);
}

.alert {
  border-radius: var(--p-zaoblenie-hlasenie);
}

.badge {
  border-radius: var(--p-zaoblenie-odznak);
}

/* Bodka stavu ostáva kruh; pilulka by na štvorci vyzerala rovnako, ale kruh je zámer.

   PRTL-288: stavové farby sú zámerne pastelové, aby na nich bol čitateľný tmavý text. Pri kruhu
   8 x 8 px ale taká plocha na bledom podklade takmer splýva, preto má bodka vlastný obrys. */
.badge-indicator {
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px var(--p-ohranicenie);
}

/* --------------------------------------------------------------------------------------------
   Podklad stránky a ozdobný oddeľovač (PRTL-287)

   Ozdobný oddeľovač pod farebným pásom je trojuholník, ktorý má splývať s podkladom stránky.
   Mal farbu napevno v šablóne, takže v tmavom režime svietil. Berie ju teraz z tokenu – a aby
   sedela presne, podklad tela stránky sa v oboch režimoch riadi tým istým tokenom. Téma má
   v bledom režime #f8f9fa, token #f4f6f9; bez zjednotenia by na oddeľovači ostal jemný šev.
   -------------------------------------------------------------------------------------------- */

body {
  background-color: var(--p-podklad-stranky);
}

.decorative-divider {
  color: var(--p-podklad-stranky);
}

/* Poistka pre oddeľovače, ktoré si výplň nesú v značke (staršie šablóny modulov). */
.decorative-divider polygon,
.decorative-divider path {
  fill: currentColor;
}

/* --------------------------------------------------------------------------------------------
   Navigácia, nadpisy a oddeľovače v tmavom režime (PRTL-281)

   Tokenová vrstva pôvodne riešila plochy, text tela a ohraničenia kariet. Téma má však farbu
   napevno aj v navigácii, v nadpisoch a v čiare medzi sekciami – v tmavom režime tak zmizlo
   menu, drobčeky ostali svetlomodré, nadpisy takmer čierne a oddeľovač sekcií svietil.
   -------------------------------------------------------------------------------------------- */

/* Nadpisy berú farbu tela, nie napevno zapísanú tmavosivú (PRTL-285). */
[data-rezim="tmavy"] h1,
[data-rezim="tmavy"] h2,
[data-rezim="tmavy"] h3,
[data-rezim="tmavy"] h4,
[data-rezim="tmavy"] h5,
[data-rezim="tmavy"] h6,
[data-rezim="tmavy"] .h1,
[data-rezim="tmavy"] .h2,
[data-rezim="tmavy"] .h3,
[data-rezim="tmavy"] .h4,
[data-rezim="tmavy"] .h5,
[data-rezim="tmavy"] .h6 {
  color: var(--p-text);
}

[data-rezim="tmavy"] .title-decorative,
[data-rezim="tmavy"] .bg-dark .title-decorative,
[data-rezim="tmavy"] .bg-gray .title-decorative {
  color: var(--p-text-tlmeny);
}

/* Karta na farebnom páse (PRTL-293): téma jej dáva tmavý text pravidlom, ktoré je
   špecifickejšie než prekrytie nadpisov vyššie - v tmavom režime tak text v karte zmizne. */
[data-rezim="tmavy"] .bg-gradient .card:not(.bg-dark),
[data-rezim="tmavy"] .bg-dark .card:not(.bg-dark) {
  color: var(--p-text);
}

[data-rezim="tmavy"] .bg-gradient .card:not(.bg-dark) h1,
[data-rezim="tmavy"] .bg-gradient .card:not(.bg-dark) h2,
[data-rezim="tmavy"] .bg-gradient .card:not(.bg-dark) h3,
[data-rezim="tmavy"] .bg-gradient .card:not(.bg-dark) h4,
[data-rezim="tmavy"] .bg-gradient .card:not(.bg-dark) h5,
[data-rezim="tmavy"] .bg-gradient .card:not(.bg-dark) h6,
[data-rezim="tmavy"] .bg-dark .card:not(.bg-dark) h1,
[data-rezim="tmavy"] .bg-dark .card:not(.bg-dark) h2,
[data-rezim="tmavy"] .bg-dark .card:not(.bg-dark) h3,
[data-rezim="tmavy"] .bg-dark .card:not(.bg-dark) h4,
[data-rezim="tmavy"] .bg-dark .card:not(.bg-dark) h5,
[data-rezim="tmavy"] .bg-dark .card:not(.bg-dark) h6 {
  color: var(--p-text);
}

/* Horné menu (PRTL-282): téma dáva položkám tmavosivú, na tmavej lište ich nevidno. */
[data-rezim="tmavy"] .navbar-light .navbar-brand,
[data-rezim="tmavy"] .navbar-light .navbar-brand:hover,
[data-rezim="tmavy"] .navbar-light .navbar-brand:focus {
  color: var(--p-text);
}

[data-rezim="tmavy"] .navbar-light .navbar-nav .nav-link {
  color: var(--p-text-tlmeny);
}

[data-rezim="tmavy"] .navbar-light .navbar-nav .nav-link:hover,
[data-rezim="tmavy"] .navbar-light .navbar-nav .nav-link:focus,
[data-rezim="tmavy"] .navbar-light .navbar-nav .show > .nav-link,
[data-rezim="tmavy"] .navbar-light .navbar-nav .active > .nav-link,
[data-rezim="tmavy"] .navbar-light .navbar-nav .nav-link.show,
[data-rezim="tmavy"] .navbar-light .navbar-nav .nav-link.active {
  color: var(--p-text);
}

[data-rezim="tmavy"] .navbar-light .navbar-nav .nav-link.disabled {
  color: var(--p-ohranicenie);
}

[data-rezim="tmavy"] .navbar-light .navbar-toggler {
  color: var(--p-text-tlmeny);
  border-color: var(--p-ohranicenie);
}

/* Lišta drobčekov (PRTL-283): layout ju kreslí ako bg-primary text-white, čo je pevná modrá. */
[data-rezim="tmavy"] nav.bg-primary {
  background-color: var(--p-podklad-hlavicky) !important;
}

[data-rezim="tmavy"] nav.bg-primary,
[data-rezim="tmavy"] nav.bg-primary .breadcrumb-item,
[data-rezim="tmavy"] nav.bg-primary .breadcrumb-item a,
[data-rezim="tmavy"] nav.bg-primary.text-white {
  color: var(--p-text);
}

[data-rezim="tmavy"] nav.bg-primary .breadcrumb-item + .breadcrumb-item::before {
  color: var(--p-text-tlmeny);
}

/* Oddeľovač sekcií (PRTL-284): svetlá čiara na tmavom podklade svieti. */
[data-rezim="tmavy"] section:not([class*='bg-']) + section:not([class*='bg-']) {
  border-top-color: var(--p-ohranicenie);
}

/* --------------------------------------------------------------------------------------------
   Kalendár (PRTL-259)

   Mriežka podľa návrhu fázy 3: zaoblená plocha s hlavičkou dní, nie bootstrapová tabuľka.
   Farby aj výška bunky sú tokeny; udalosť nesie farbu stavu cez triedu stav-*.
   -------------------------------------------------------------------------------------------- */

.kalendar-mriezka {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border: 1px solid var(--p-kalendar-mriezka);
  border-radius: var(--p-zaoblenie-hlasenie);
  overflow: hidden;
}

.kalendar-hlavicka {
  padding: .35rem;
  text-align: center;
  font-size: .6875rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--p-text-tlmeny);
  background: var(--p-podklad-hlavicky);
  border-bottom: 1px solid var(--p-kalendar-mriezka);
}

.kalendar-bunka {
  min-height: var(--p-vyska-bunky-kalendara);
  padding: .3rem;
  border-right: 1px solid var(--p-kalendar-mriezka);
  border-bottom: 1px solid var(--p-kalendar-mriezka);
}

/* Posledný stĺpec a posledný riadok nemajú vlastnú čiaru, tú už nesie rám mriežky. */
.kalendar-bunka:nth-child(7n) {
  border-right: 0;
}

.kalendar-vikend {
  background: var(--p-kalendar-vikend);
}

.kalendar-mimo-mesiaca {
  background: var(--p-kalendar-mimo-mesiaca);
}

.kalendar-dnes {
  background: var(--p-kalendar-dnes);
}

.kalendar-cislo-dna {
  font-size: .75rem;
  color: var(--p-text-tlmeny);
}

.kalendar-udalost {
  display: block;
  margin-top: .2rem;
  padding: .15rem .3rem;
  font-size: .6875rem;
  line-height: 1.3;
  border-radius: var(--p-zaoblenie-drobne);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-decoration: none;
}

.kalendar-udalost-pokracovanie {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.kalendar-udalost:hover {
  text-decoration: none;
  filter: brightness(.96);
}

/* --------------------------------------------------------------------------------------------
   Tmavý režim (PRTL-248, J3)

   Téma Wingman má farby napevno a tmavý režim nepozná. Nasledujúce pravidlá menia len plochy,
   text a ohraničenie – všetko z tokenov, takže tmavý režim nie je druhá téma, ale druhá sada
   hodnôt tých istých rolí.
   -------------------------------------------------------------------------------------------- */

[data-rezim="tmavy"] body {
  background-color: var(--p-podklad-stranky);
  color: var(--p-text);
}

[data-rezim="tmavy"] .bg-white,
[data-rezim="tmavy"] .card,
[data-rezim="tmavy"] .modal-content,
[data-rezim="tmavy"] .dropdown-menu,
[data-rezim="tmavy"] .list-group-item {
  background-color: var(--p-podklad-karty) !important;
  color: var(--p-text);
  border-color: var(--p-ohranicenie);
}

[data-rezim="tmavy"] .bg-light,
[data-rezim="tmavy"] .bg-secondary,
[data-rezim="tmavy"] .card-header,
[data-rezim="tmavy"] .card-footer,
[data-rezim="tmavy"] .navbar,
[data-rezim="tmavy"] .table thead th {
  background-color: var(--p-podklad-hlavicky) !important;
  color: var(--p-text);
  border-color: var(--p-ohranicenie);
}

/* PRTL-298: pás hlavičky je v layoute bg-white po celej šírke a samotná .navbar len v strede
   (.container). Bez tohto pravidla boli okraje vľavo a vpravo farbou karty a stred farbou
   hlavičky. Celý pás má farbu ako lišta drobčekov pod ním. */
[data-rezim="tmavy"] .navbar-container .bg-white {
  background-color: var(--p-podklad-hlavicky) !important;
}

/* PRTL-299: téma dáva popisom polí v karte pevnú tmavú farbu s !important
   (.card .form-group label), takže v tmavom režime neboli vidieť. */
[data-rezim="tmavy"] .card .form-group label,
[data-rezim="tmavy"] .form-group label {
  color: var(--p-text) !important;
}

[data-rezim="tmavy"] .table,
[data-rezim="tmavy"] .table td,
[data-rezim="tmavy"] .table th {
  color: var(--p-text);
  border-color: var(--p-ohranicenie);
}

[data-rezim="tmavy"] .table tbody tr.bg-white {
  background-color: var(--p-podklad-karty) !important;
}

[data-rezim="tmavy"] .form-control,
[data-rezim="tmavy"] .custom-select,
[data-rezim="tmavy"] textarea {
  background-color: var(--p-podklad-stranky);
  color: var(--p-text);
  border-color: var(--p-ohranicenie);
}

[data-rezim="tmavy"] .text-muted,
[data-rezim="tmavy"] .text-secondary,
[data-rezim="tmavy"] .text-black-50 {
  color: var(--p-text-tlmeny) !important;
}

[data-rezim="tmavy"] a:not(.btn):not(.nav-link):not(.list-group-item) {
  color: var(--p-odkaz);
}

/* PRTL-302: bočný filter (x-filter-nav) je nav.flex-md-column a téma jeho položkám dáva pevnú
   tmavosivú. Prekrytie odkazov vyššie .nav-link zámerne vynecháva, takže položky filtra ostali
   v tmavom režime tmavé. Vybraná položka nesie hlavnú farbu (blok PRTL-301 nižšie). */
[data-rezim="tmavy"] nav.flex-md-column .nav-link {
  color: var(--p-text);
}

[data-rezim="tmavy"] .page-link {
  background-color: var(--p-podklad-karty);
  border-color: var(--p-ohranicenie);
  color: var(--p-odkaz);
}

[data-rezim="tmavy"] .page-item.active .page-link {
  background-color: var(--p-akcia);
  border-color: var(--p-akcia);
  color: var(--p-akcia-text);
}

[data-rezim="tmavy"] .badge-light {
  background-color: var(--p-podklad-hlavicky);
  color: var(--p-text);
}

[data-rezim="tmavy"] .nav-tabs .nav-link.active {
  background-color: var(--p-podklad-karty);
  border-color: var(--p-ohranicenie) var(--p-ohranicenie) var(--p-podklad-karty);
  color: var(--p-text);
}

[data-rezim="tmavy"] hr,
[data-rezim="tmavy"] .border,
[data-rezim="tmavy"] .border-top,
[data-rezim="tmavy"] .border-bottom {
  border-color: var(--p-ohranicenie) !important;
}

[data-rezim="tmavy"] .shadow,
[data-rezim="tmavy"] .box-shadow {
  box-shadow: var(--p-tien) !important;
}

/* Prepínač režimu v navigácii: ukazuje, čo sa stane, nie v akom režime práve sme. */
.prepinac-rezimu {
  background: none;
  border: 0;
  padding: .25rem .5rem;
  color: inherit;
  cursor: pointer;
}

/* --------------------------------------------------------------------------------------------
   Farby stavov záznamov (PRTL-249, J4)

   Modul vracia meno stavu, nie hex. Trieda so stavom (stav-podana, stav-uzavreta…) je jediný spôsob, ako sa stavová farba
   dostane do značky; vložený „style“ sa nepoužíva.
   -------------------------------------------------------------------------------------------- */

.badge.stav-podana,
.stav-podana {
  background-color: var(--p-stav-podana);
  color: var(--p-stav-text);
}

.badge.stav-zadana,
.stav-zadana {
  background-color: var(--p-stav-zadana);
  color: var(--p-stav-text);
}

.badge.stav-prevzata,
.stav-prevzata {
  background-color: var(--p-stav-prevzata);
  color: var(--p-stav-text);
}

.badge.stav-uzavreta,
.stav-uzavreta {
  background-color: var(--p-stav-uzavreta);
  color: var(--p-stav-text);
}

.badge.stav-odoslana,
.stav-odoslana {
  background-color: var(--p-stav-odoslana);
  color: var(--p-stav-text);
}

.badge.stav-zamietnuta,
.stav-zamietnuta {
  background-color: var(--p-stav-zamietnuta);
  color: var(--p-stav-text);
}

.badge.stav-zrusena,
.stav-zrusena {
  background-color: var(--p-stav-zrusena);
  color: var(--p-stav-text);
}

.badge-indicator.stav-neurceny {
  background-color: var(--p-ohranicenie);
}
/* --------------------------------------------------------------------------------------------
   Hlavná farba (PRTL-301). Téma Wingman má modrú #4582EC napevno v každom pravidle, ktoré
   kreslí hlavnú akciu, odkaz alebo aktívny stav. Tieto pravidlá ju prekrývajú premennými
   --p-akcia*, --p-odkaz*, takže hlavná farba sa mení len v tokeny.json a platí v oboch
   režimoch. Blok je na konci súboru, aby vyhral nad prekrytiami tmavého režimu vyššie
   (napr. pozadie .list-group-item). */

:root {
  --blue: var(--p-akcia);
  --primary: var(--p-akcia);
}

a,
.btn-link {
  color: var(--p-odkaz);
}

a:hover,
.btn-link:hover {
  color: var(--p-odkaz-hover);
}

a.text-primary:hover,
a.text-primary:focus {
  color: var(--p-odkaz-hover) !important;
}

.btn-primary,
.btn-primary.disabled,
.btn-primary:disabled {
  background-color: var(--p-akcia);
  border-color: var(--p-akcia);
  color: var(--p-akcia-text);
}

.btn-primary:hover,
a.btn-primary:hover {
  background-color: var(--p-akcia-hover);
  border-color: var(--p-akcia-hover);
  color: var(--p-akcia-text) !important;
}

.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
  background-color: var(--p-akcia-aktivna);
  border-color: var(--p-akcia-aktivna);
  color: var(--p-akcia-text);
}

.btn-primary:focus,
.btn-primary.focus,
.btn-primary:not(:disabled):not(.disabled):active:focus,
.btn-outline-primary:focus,
.btn-outline-primary.focus,
.btn-outline-primary:not(:disabled):not(.disabled):active:focus,
.btn-outline-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-primary.dropdown-toggle:focus,
a.badge-primary:focus,
a.badge-primary.focus {
  box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--p-akcia) 45%, transparent);
}

.btn-outline-primary,
.btn-outline-primary.disabled,
.btn-outline-primary:disabled {
  color: var(--p-akcia);
  border-color: var(--p-akcia);
}

.btn-outline-primary:hover,
a.btn-outline-primary:hover,
.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-primary:not(:disabled):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
  background-color: var(--p-akcia);
  border-color: var(--p-akcia);
  color: var(--p-akcia-text) !important;
}

.btn-light,
.btn-light:hover,
.bg-gradient .btn-light:hover {
  color: var(--p-akcia-na-svetlom);
}

.dropdown-item.active,
.dropdown-item:active,
.dropdown-menu span.dropdown-item[aria-expanded="true"] {
  background: var(--p-akcia);
  color: var(--p-akcia-text);
}

.custom-control-input:checked ~ .custom-control-label::before,
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
  background-color: var(--p-akcia);
  border-color: var(--p-akcia);
}

.custom-control-input:focus ~ .custom-control-label::before,
.form-control:focus,
.custom-select:focus {
  border-color: var(--p-akcia);
  box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--p-akcia) 25%, transparent);
}

.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link,
nav.flex-md-column .nav-link.active {
  color: var(--p-akcia);
}

.nav-tabs .nav-item .nav-link.active {
  border-color: var(--p-akcia);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link,
.page-item.active .page-link,
.badge-primary,
.list-group-item.active,
[data-rezim="tmavy"] .page-item.active .page-link {
  background-color: var(--p-akcia) !important;
  border-color: var(--p-akcia);
  color: var(--p-akcia-text) !important;
}

a.badge-primary:hover,
a.badge-primary:focus,
a.bg-primary:hover,
a.bg-primary:focus,
button.bg-primary:hover,
button.bg-primary:focus {
  background-color: var(--p-akcia-hover) !important;
}

.progress-bar {
  background-color: var(--p-akcia);
}

.bg-primary {
  background-color: var(--p-akcia) !important;
}

.border-primary {
  border-color: var(--p-akcia) !important;
}

.text-primary {
  color: var(--p-akcia) !important;
}

/* Pás na titulnej strane bol fialovo-modrý prechod; teraz prechod hlavnej farby. */
.bg-gradient {
  background: linear-gradient(135deg, var(--p-prechod-od) 0%, var(--p-prechod-do) 100%);
}

.alert-primary,
.list-group-item-primary {
  background-color: var(--p-akcia-ton);
  border-color: var(--p-akcia-ton);
  color: var(--p-akcia-ton-text);
}

.alert-primary hr {
  border-top-color: color-mix(in srgb, var(--p-akcia-ton-text) 20%, transparent);
}

.alert-primary .alert-link,
.alert-primary a:not(.btn),
[data-rezim="tmavy"] .alert-primary a:not(.btn):not(.nav-link):not(.list-group-item) {
  color: var(--p-akcia-ton-text);
}

/* PRTL-303: ikona na dlaždici rozcestníka má vždy hlavnú farbu. Moduly vkladajú na plochu
   vlastné dlaždice (li v .feature-list) s farebnými triedami text-pink, text-indigo…, ktoré
   majú !important; toto pravidlo je špecifickejšie, takže ich zjednotí bez vydania modulov. */
.feature-list .card i[class*="icon-"] {
  color: var(--p-akcia) !important;
}

/* Výber dátumu (flatpickr). */
.flatpickr-months .flatpickr-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg,
.flatpickr-months .flatpickr-prev-month:hover svg {
  fill: var(--p-akcia);
}

.flatpickr-current-month span.cur-month:hover,
.numInputWrapper:hover {
  background: color-mix(in srgb, var(--p-akcia) 15%, transparent);
}

.flatpickr-day:hover {
  background: color-mix(in srgb, var(--p-akcia) 10%, transparent);
}

.flatpickr-day.today {
  border-color: var(--p-akcia);
}

.flatpickr-day.today:hover,
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover,
.flatpickr-day.selected.prevMonthDay,
.flatpickr-day.startRange.prevMonthDay,
.flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.startRange.nextMonthDay,
.flatpickr-day.endRange.nextMonthDay {
  background: var(--p-akcia);
  border-color: var(--p-akcia);
  color: var(--p-akcia-text);
}

.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
  box-shadow: -10px 0 0 var(--p-akcia);
}

/* Kroky sprievodcu v téme (wizard). */
.step-circle.active,
.active .step-circle,
.wizard .step-anchor > li.active .step-circle,
.wizard .step-anchor > li.done .step-circle {
  background-color: var(--p-akcia);
}

.wizard .step-anchor .step-circle:before {
  border-color: var(--p-akcia);
}

.wizard .step-anchor > li.active:after,
.wizard .step-anchor > li.active:before,
.wizard .step-anchor > li.done:after,
.wizard .step-anchor > li.done:before {
  background: var(--p-akcia);
}

