:root {
  --pico-font-size: 95%;
  --td-zlta: #fff4c2;
  --td-zlta-okraj: #e0b400;
  --td-cervena: #fde2e1;
  --td-cervena-okraj: #c62828;
  --td-zelena: #e3f4e5;
  --td-zelena-okraj: #2e7d32;
  --td-akcent: #2b6cb0;
  --td-akcent-tmavy: #1e3a6e;
  --td-akcent-svetly: #e8f0fa;
  --td-pozadie: #f4f6fa;
  --td-okraj: #e3e8ef;
  --td-text-tlmeny: #64748b;
  --td-sirka-panela: 15.5rem;
}

/* farby a tvary – prekrytie Pico (svetlá téma) */
:root[data-theme=light] {
  --pico-font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", Roboto, sans-serif;
  --pico-background-color: var(--td-pozadie);
  --pico-color: #1f2937;
  --pico-h1-color: #111827; --pico-h2-color: #111827; --pico-h3-color: #1f2937;
  --pico-muted-color: var(--td-text-tlmeny);
  --pico-muted-border-color: var(--td-okraj);
  --pico-border-radius: .6rem;
  --pico-primary: var(--td-akcent);
  --pico-primary-background: var(--td-akcent);
  --pico-primary-border: var(--td-akcent);
  --pico-primary-underline: rgba(43, 108, 176, .4);
  --pico-primary-hover: var(--td-akcent-tmavy);
  --pico-primary-hover-background: var(--td-akcent-tmavy);
  --pico-primary-hover-border: var(--td-akcent-tmavy);
  --pico-primary-hover-underline: var(--td-akcent-tmavy);
  --pico-primary-focus: rgba(43, 108, 176, .25);
  --pico-primary-inverse: #fff;
  --pico-card-background-color: #fff;
  --pico-card-sectioning-background-color: #f8fafc;
  --pico-card-box-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 8px rgba(15, 23, 42, .04);
  --pico-form-element-background-color: #fff;
  --pico-form-element-border-color: #d5dce6;
  --pico-table-border-color: var(--td-okraj);
}
body { background: var(--td-pozadie); }
h2 { font-weight: 700; letter-spacing: -.01em; }
article { border: 1px solid var(--td-okraj); }
button, [role=button], input, select, textarea { transition: border-color .15s, background-color .15s; }

.pas-test { background: #c2410c; color: #fff; text-align: center; font-weight: 700; font-size: .85rem;
  letter-spacing: .05em; padding: .3rem 1rem; position: sticky; top: 0; z-index: 10; }

/* rozloženie: bočný panel + obsah */
.aplikacia { display: grid; grid-template-columns: var(--td-sirka-panela) minmax(0, 1fr); min-height: 100vh; }
.bocny-panel { position: sticky; top: 0; height: 100vh; overflow-y: auto; display: flex; flex-direction: column;
  background: #fff; border-right: 1px solid var(--td-okraj); padding: 1.2rem .9rem 1rem; }
.znacka { padding: 0 .4rem 1rem; margin-bottom: .8rem; border-bottom: 1px solid var(--td-okraj); position: relative; }
.znacka .logo-aplikacie { display: inline-block; margin-bottom: .7rem; line-height: 0; }
.znacka .logo-aplikacie img { width: 68px; height: auto; }
.znacka .organizacia { display: block; font-size: 1.3rem; font-weight: 800; line-height: 1.2; letter-spacing: -.02em;
  color: var(--td-akcent-tmavy); text-decoration: none; margin-bottom: .35rem; padding-right: 2rem; }
.znacka .zariadenie { display: block; font-size: .85rem; color: var(--td-text-tlmeny); }
.prepinac select { margin: 0; padding: .3rem 2rem .3rem .6rem; font-size: .85rem; height: auto; width: 100%; }
.menu-tlacidlo { display: none; }
.menu ul { margin: 0 0 .4rem; padding: 0; }
.menu li { list-style: none; margin: 0; padding: 0; }
.menu li a { display: block; padding: .42rem .7rem; border-radius: .5rem; color: #334155; text-decoration: none; font-size: .93rem; }
.menu li a:hover { background: #f1f5f9; color: var(--td-akcent-tmavy); }
.menu li a[aria-current] { background: var(--td-akcent-svetly); color: var(--td-akcent); font-weight: 600; }
.menu .skupina-menu { margin: .9rem .7rem .3rem; font-size: .7rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: #94a3b8; }
.menu .nova-ponuka { display: block; text-align: center; padding: .55rem .7rem; margin: 0 0 .8rem; border-radius: .5rem;
  background: var(--td-akcent); color: #fff; font-weight: 600; text-decoration: none; font-size: .93rem; }
.menu .nova-ponuka:hover, .menu .nova-ponuka[aria-current] { background: var(--td-akcent-tmavy); }
.dodavatel { display: block; margin-top: auto; padding: 1.2rem .4rem 0; opacity: .75; transition: opacity .15s; }
.dodavatel:hover { opacity: 1; }
.dodavatel img { display: block; width: 110px; height: auto; }

.horna-lista { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; padding: .6rem 1.5rem;
  font-size: .88rem; color: var(--td-text-tlmeny); }
.horna-lista .pomocnik { display: inline-flex; align-items: center; gap: .35rem; color: var(--td-text-tlmeny); text-decoration: none; }
.horna-lista .pomocnik:hover, .horna-lista .pomocnik[aria-current] { color: var(--td-akcent); }
.otaznik { display: inline-flex; align-items: center; justify-content: center; width: 1.3rem; height: 1.3rem;
  border-radius: 50%; border: 1.5px solid currentColor; font-size: .75rem; font-weight: 700; }
.obsah main.container { padding-top: .3rem; padding-bottom: 2rem; }
.karta-prihlasenia { max-width: 440px; margin: 3rem auto; }
.uvod-aplikacie { text-align: center; margin-bottom: 1.6rem; }
.uvod-aplikacie img { width: 220px; max-width: 70%; height: auto; }
.uvod-aplikacie p { margin: .3rem 0 0; color: var(--td-text-tlmeny); font-size: 1.05rem; letter-spacing: .01em; }
.karta-prihlasenia h2 { font-size: 1.25rem; }
.pata-prihlasenia .dodavatel { width: 110px; margin: 2rem auto; padding: 0; }

@media (max-width: 900px) {
  .aplikacia { display: block; }
  .bocny-panel { position: static; height: auto; border-right: 0; border-bottom: 1px solid var(--td-okraj); padding: .8rem 1rem; }
  .znacka { border-bottom: 0; margin: 0; padding-bottom: 0; }
  .znacka .logo-aplikacie { display: none; }
  .menu-tlacidlo { display: block; position: absolute; top: 0; right: 0; font-size: 1.4rem; line-height: 1; cursor: pointer;
    color: var(--td-akcent-tmavy); }
  .menu { display: none; padding-top: .8rem; }
  #menu-prepinac:checked + .menu { display: block; }
  .dodavatel { display: none; }
  .horna-lista { padding: .5rem 1rem; }
}

.neskor { color: var(--pico-muted-color); opacity: .55; cursor: default; }
form.inline { margin: 0; }
button.maly, a.maly[role=button] { padding: .25rem .7rem; font-size: .85rem; margin: 0; width: auto; }

.sprava { padding: .6rem 1rem; border-radius: var(--pico-border-radius); border-left: 4px solid; }
.sprava.success { background: var(--td-zelena); border-color: var(--td-zelena-okraj); }
.sprava.error { background: var(--td-cervena); border-color: var(--td-cervena-okraj); }
.sprava.info { background: var(--td-akcent-svetly); border-color: var(--td-akcent); }
.sprava.warning, .upozornenie { background: var(--td-zlta); border-left: 4px solid var(--td-zlta-okraj);
  padding: .6rem 1rem; border-radius: var(--pico-border-radius); margin-bottom: .6rem; }
.chyba { background: var(--td-cervena); border-left: 4px solid var(--td-cervena-okraj);
  padding: .6rem 1rem; border-radius: var(--pico-border-radius); margin-bottom: .6rem; }
.neiste input, .neiste select, .neiste textarea { background: var(--td-zlta); border-color: var(--td-zlta-okraj); }

table.zlavy td { padding: .2rem; }
table.zlavy input, table.zlavy select { margin: 0; padding: .3rem .5rem; height: auto; }
table.ciselnik td, table.ciselnik th { font-size: .9rem; vertical-align: top; }
tr.neaktivne td { color: var(--pico-muted-color); text-decoration: line-through; }
.akcie { white-space: nowrap; }
.akcie a { margin-right: .6rem; }

.rozpis td.suma, .rozpis th.suma { text-align: right; white-space: nowrap; }
.rozpis tr.spolu td { font-weight: 700; border-top: 2px solid var(--pico-color); }
.rozpis tr.uprava td { color: #1d6b2f; }
.rozpis tr.info td { color: var(--pico-muted-color); font-style: italic; }
.mriezka-2 { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(320px, 1.2fr); gap: 2rem; }
@media (max-width: 900px) { .mriezka-2 { grid-template-columns: 1fr; } }
.karty { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.karty article { margin: 0; }
small.pomoc { display: block; color: var(--pico-muted-color); margin-top: -.6rem; margin-bottom: .8rem; }

.hlavicka-stranky { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.hlavicka-stranky h2 { margin: 0; }
.riadok-tlacidiel { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; margin: .6rem 0; }
.riadok-tlacidiel button, .riadok-tlacidiel [role=button] { width: auto; margin: 0; }
section.krok { border: 1px solid var(--pico-muted-border-color); border-radius: var(--pico-border-radius);
  padding: 1rem 1.2rem; margin-bottom: 1.2rem; background: var(--pico-card-background-color); }
.cislo-kroku { display: inline-block; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--td-akcent);
  color: #fff; text-align: center; line-height: 1.7rem; font-size: 1rem; margin-right: .4rem; }
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { display: inline-block; }
.pole { margin-bottom: .2rem; }
.vyber-jednotiek div > div { display: inline-block; margin-right: 1rem; }
.neiste-poznamka { color: #8a6d00; font-weight: 600; }
.chyba-pole { display: block; color: var(--td-cervena-okraj); margin-top: -.6rem; margin-bottom: .6rem; }
fieldset legend { font-weight: 700; }
.nahlad { white-space: pre-wrap; border: 1px dashed var(--pico-muted-border-color); padding: .8rem;
  border-radius: var(--pico-border-radius); font-size: .9rem; max-height: 22rem; overflow: auto; margin-bottom: 1rem; }
.nahlad mark, .upozornenie mark { background: #ffd54f; }
.prepracovat { grid-template-columns: 1fr auto; }
pre.text-odpovede { white-space: pre-wrap; font-size: .85rem; }
.stav { font-size: .75rem; padding: .1rem .5rem; border-radius: 1rem; vertical-align: middle; white-space: nowrap; }
.stav-ponuknuta { background: #e3ecf9; color: #1d4f91; }
.stav-schvalena { background: var(--td-zelena); color: var(--td-zelena-okraj); }
.stav-neschvalena { background: #eee; color: #666; }
.stav-dopyt { background: #eef0f4; color: #4a5568; }
.zmena-stavu .len-storno, .zmena-stavu .len-odmietnute { display: none; }
.zmena-stavu .len-rezervacia { display: none; }
.zmena-stavu[data-stav=stornovana] .len-storno, .zmena-stavu[data-stav=neschvalena] .len-odmietnute,
.zmena-stavu[data-stav=schvalena] .len-rezervacia { display: block; }
.wellness-potvrdenie { margin: .4rem 0 .6rem; }
.wellness-potvrdenie label { display: inline-block; margin-right: 1.2rem; }
.stav-zrealizovana { background: #d7e6d8; color: #1b4d1f; }
.stav-interny { background: #ece4f5; color: #4b2a6b; }
.stav-stornovana { background: var(--td-cervena); color: var(--td-cervena-okraj); }
.nezaplatene { color: var(--td-cervena-okraj); font-weight: 600; }
.ok { color: var(--td-zelena-okraj); }
.zoznam-ponuk td.suma, .zoznam-ponuk th.suma { text-align: right; white-space: nowrap; }
form.filter { margin-bottom: 1rem; }
table.historia td { font-size: .85rem; }
.riadok-upratovania { display: grid; grid-template-columns: 2fr 1.5fr .6fr .8fr auto; gap: .4rem; align-items: center; margin: 0 0 .3rem; }
.riadok-upratovania input, .riadok-upratovania select { margin: 0; padding: .3rem .5rem; height: auto; }

.legenda .bunka { display: inline-block; width: 1.4rem; margin: 0 .3rem 0 .8rem; vertical-align: middle; }
table.kalendar-jednotky { border-collapse: collapse; font-size: .8rem; width: auto; }
.kalendar-jednotky th, .kalendar-jednotky td { padding: 0; border: 1px solid var(--pico-muted-border-color); text-align: center; }
.kalendar-jednotky thead th { min-width: 1.9rem; padding: .2rem 0; font-weight: 600; }
.kalendar-jednotky th.jednotka { text-align: left; padding: .3rem .5rem; white-space: nowrap; min-width: 9rem; }
.kalendar-jednotky .vikend { background: #f1f4f9; }
.kalendar-jednotky .dnes { outline: 2px solid var(--td-akcent); outline-offset: -2px; }
.bunka { height: 2.1rem; position: relative; }
.bunka .pol { position: absolute; top: 3px; bottom: 3px; width: 50%; }
.bunka .pol.l { left: 0; }
.bunka .pol.pr { right: 0; }
.bunka .pol.r { background: #2e7d32; }
.bunka .pol.p { background: repeating-linear-gradient(45deg, #b7cdee, #b7cdee 3px, #e8f0fb 3px, #e8f0fb 6px); }
.bunka .pol.zaciatok { left: 55%; width: 45%; border-radius: 6px 0 0 6px; }  /* príchod – od poobedia */
.bunka .pol.koniec { width: 45%; border-radius: 0 6px 6px 0; }  /* odchod – do rána */
.bunka a { position: absolute; inset: 0; z-index: 1; line-height: 2.1rem; color: #fff; text-decoration: none;
  overflow: visible; white-space: nowrap; font-size: .72rem; padding-left: 60%; text-shadow: 0 0 2px #1b4d1f; }
.legenda .ukazka { display: inline-block; width: 1.4rem; height: .9rem; margin: 0 .3rem 0 .8rem; vertical-align: middle; border-radius: 3px; }
.legenda .ukazka.r { background: #2e7d32; }
.bunka.osirela { background: repeating-linear-gradient(-45deg, #fff3cd, #fff3cd 4px, #ffe08a 4px, #ffe08a 8px); }
.legenda .ukazka.o { background: repeating-linear-gradient(-45deg, #fff3cd, #fff3cd 4px, #ffe08a 4px, #ffe08a 8px); }
.legenda .ukazka.p { background: repeating-linear-gradient(45deg, #b7cdee, #b7cdee 3px, #e8f0fb 3px, #e8f0fb 6px); }
.vyber-kalendara select, .vyber-kalendara input { width: auto; margin: 0; padding: .3rem .6rem; height: auto; }
.vyber-kalendara input { width: 6rem; }
.nazov-mesiaca { margin: 1rem 0 .3rem; }

/* ekonomika */
.viz-root { --series-1: #2a78d6; --series-2: #eb6834; --series-3: #a9c6ee; --grid: #ece9e3; --text-secondary: #52514e; }
.graf { position: relative; height: 18rem; }
.graf-nizky { height: 12rem; }
.dlazdice { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; margin: 1rem 0 .4rem; }
.dlazdica { margin: 0; display: flex; flex-direction: column; gap: .2rem; }
.dlazdica strong { font-size: 1.6rem; line-height: 1.2; }
.dlazdica small { color: var(--pico-muted-color); }
.rozpis td.minule { color: var(--pico-muted-color); font-size: .85rem; }
.vyber-obdobia { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; margin: 0; }
.vyber-obdobia select, .vyber-obdobia input { margin: 0; width: auto; padding: .3rem .6rem; height: auto; }
.vyber-obdobia .len-mesiac, .vyber-obdobia .len-rok, .vyber-obdobia .len-obdobie { display: none; }
.vyber-obdobia[data-typ=mesiac] .len-mesiac, .vyber-obdobia[data-typ=mesiac] .len-rok,
.vyber-obdobia[data-typ=rok] .len-rok, .vyber-obdobia[data-typ=obdobie] .len-obdobie { display: inline-block; }
.prepinac-rozsahu a { margin-right: .8rem; font-size: .9rem; }
.prepinac-rozsahu a[aria-current] { font-weight: 700; text-decoration: none; }

.obsah-pomocnika { margin-bottom: 1rem; line-height: 1.9; }
.zlta { background: var(--td-zlta); padding: 0 .3rem; }

@media print {
  .bocny-panel, .horna-lista, .netlacit { display: none !important; }
  .aplikacia { display: block; }
  main.container { max-width: none; padding: 0; }
}

/* vyťaženosť */
.suhlas { display: flex; flex-wrap: wrap; gap: .4rem .8rem; align-items: center; margin: .6rem 0 0; }
.suhlas label { margin: 0; }
.suhlas input[type=text] { flex: 1 1 14rem; margin: 0; padding: .3rem .6rem; height: auto; }
.navrh-akcie textarea { font-size: .9rem; }
.qr-zalohy { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; margin: .6rem 0 1rem; padding: .8rem 1rem;
  border: 1px solid var(--td-okraj); border-radius: var(--pico-border-radius); background: #fff; }
.qr-zalohy img { image-rendering: pixelated; border-radius: 4px; }
.qr-zalohy small { display: block; color: var(--pico-muted-color); }
.qr-zalohy .riadok-tlacidiel { margin-bottom: 0; }

/* sviatky, prázdniny, podujatia */
.udalost-typ { font-size: .75rem; padding: .1rem .5rem; border-radius: 1rem; white-space: nowrap; }
.typ-prazdniny { background: #e1f5ee; color: #085041; }
.typ-sviatok, .typ-predlzeny_vikend { background: #faece7; color: #712b13; }
.typ-podujatie { background: #eeedfe; color: #3c3489; }
.zoznam-udalosti td.termin { white-space: nowrap; }
.sledovanie div > div { display: inline-block; margin-right: 1rem; }
.navrhy-udalosti { border-color: var(--td-zlta-okraj); }
.upozornenie-terminu { border: 1px solid var(--td-zlta-okraj); background: #fffbea; border-radius: var(--pico-border-radius);
  padding: .6rem 1rem; margin-bottom: .8rem; font-size: .9rem; }
.upozornenie-terminu ul { margin: .3rem 0 0; padding-left: 1.1rem; }
.upozornenie-terminu li { margin-bottom: .3rem; list-style: disc; }
.navrh-terminu { color: #7a5600; font-weight: 600; }

/* kalendár – prehľadnejší vzhľad, pásy sviatkov a prázdnin */
.kalendar-jednotky { border-collapse: separate; border-spacing: 0; font-size: .8rem; width: auto; background: #fff;
  border: 1px solid var(--td-okraj); border-radius: var(--pico-border-radius); }
.kalendar-jednotky th, .kalendar-jednotky td { border: 0; border-right: 1px solid #eef1f5; border-bottom: 1px solid #eef1f5; }
.kalendar-jednotky thead th { min-width: 2.3rem; padding: .35rem 0 .25rem; font-weight: 600; color: #334155;
  background: #f8fafc; position: relative; }
.kalendar-jednotky thead th small { font-weight: 400; color: var(--td-text-tlmeny); }
.kalendar-jednotky th.jednotka { position: sticky; left: 0; z-index: 2; background: #fff; text-align: left;
  padding: .3rem .7rem; min-width: 10rem; font-weight: 600; color: #1f2937; border-right: 1px solid var(--td-okraj); }
.kalendar-jednotky thead th.jednotka { background: #f8fafc; }
.kalendar-jednotky th.krajina { font-weight: 500; color: var(--td-text-tlmeny); font-size: .75rem; }
.kalendar-jednotky .vikend { background: #f4f7fb; }
.kalendar-jednotky thead th.vikend { background: #edf2f8; }
.kalendar-jednotky thead th.dnes { color: #fff; }
.kalendar-jednotky thead th.dnes::before { content: ""; position: absolute; inset: .2rem .25rem; border-radius: .4rem;
  background: var(--td-akcent); z-index: -1; }
.kalendar-jednotky thead th.dnes small { color: #e8f0fa; }
.kalendar-jednotky thead { position: relative; z-index: 0; }
.kalendar-jednotky .dnes { outline: none; }
.kalendar-jednotky td.dnes { box-shadow: inset 2px 0 0 var(--td-akcent), inset -2px 0 0 var(--td-akcent); }
.znacka-sviatku { display: block; width: 6px; height: 6px; border-radius: 50%; background: #d85a30; margin: 2px auto 0; }
.bunka { height: 2.4rem; }
.bunka a { line-height: 2.4rem; font-size: .75rem; font-weight: 600; }
.bunka .pol.zaciatok { border-radius: 8px 0 0 8px; }
.bunka .pol.koniec { border-radius: 0 8px 8px 0; }
tr.pas td, tr.pas th { height: 1.55rem; padding: 0; }
tr.pas.posledny td, tr.pas.posledny th { border-bottom: 2px solid var(--td-okraj); }
td.udalost { padding: 2px 1px !important; }
.pruh { display: block; height: 1.25rem; line-height: 1.25rem; padding: 0 .45rem; border-radius: 5px; font-size: .7rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: default; }
.pruh.pred { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.pruh.po { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.pruh.typ-prazdniny, .ukazka.typ-prazdniny, .bodka.typ-prazdniny { background: #e1f5ee; color: #085041; box-shadow: inset 0 0 0 1px #5dcaa5; }
.pruh.typ-sviatok, .pruh.typ-predlzeny_vikend, .ukazka.typ-predlzeny_vikend,
.bodka.typ-sviatok, .bodka.typ-predlzeny_vikend { background: #faece7; color: #712b13; box-shadow: inset 0 0 0 1px #f0997b; }
.pruh.typ-podujatie, .ukazka.typ-podujatie, .bodka.typ-podujatie { background: #eeedfe; color: #3c3489; box-shadow: inset 0 0 0 1px #afa9ec; }
td.suhrn { text-align: center; line-height: 0; }
.bodka { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin: 0 1px; }
.prepinac-udalosti { display: flex; align-items: center; gap: .3rem; flex-wrap: wrap; font-size: .85rem; margin: 0 0 .5rem; }
.prepinac-udalosti > span { color: var(--td-text-tlmeny); margin-right: .2rem; }
.prepinac-udalosti button { width: auto; margin: 0; padding: .2rem .7rem; font-size: .8rem; border-radius: 1rem;
  background: #fff; color: #334155; border: 1px solid var(--td-okraj); }
.prepinac-udalosti button[aria-pressed=true] { background: var(--td-akcent-svetly); color: var(--td-akcent); border-color: #b5d4f4; font-weight: 600; }
.prepinac-udalosti .nastavit { margin-left: .4rem; font-size: .8rem; }
.kalendar[data-udalosti=krajiny] .pasy-suhrn, .kalendar[data-udalosti=suhrn] .pasy-krajiny,
.kalendar[data-udalosti=skryte] .pasy-krajiny, .kalendar[data-udalosti=skryte] .pasy-suhrn,
.kalendar[data-udalosti=skryte] .len-udalosti { display: none; }
.obal-kalendara { margin-bottom: 1rem; }

/* ročný prehľad */
.rocny-prehlad { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .8rem; }
.mesiac-roka { display: block; background: #fff; border: 1px solid var(--td-okraj); border-radius: var(--pico-border-radius);
  padding: .7rem .8rem; color: inherit; text-decoration: none; transition: border-color .15s; }
.mesiac-roka:hover { border-color: var(--td-akcent); }
.mesiac-roka.teraz { box-shadow: inset 0 0 0 2px var(--td-akcent); }
.mesiac-roka .hlava { display: flex; justify-content: space-between; align-items: center; text-transform: capitalize; }
.mesiac-roka ul { margin: .5rem 0 0; padding: 0; font-size: .78rem; color: #475569; }
.mesiac-roka li { list-style: none; margin: 0 0 .2rem; line-height: 1.3; }
.mesiac-roka li.ziadne { color: #94a3b8; }
.mesiac-roka .predbezne { display: block; color: var(--td-text-tlmeny); font-size: .72rem; }
.obsadenost { font-size: .8rem; font-weight: 600; padding: .05rem .5rem; border-radius: 1rem; }
.obsadenost.uroven-0 { background: #eef2f7; color: #475569; }
.obsadenost.uroven-1 { background: #e6f1fb; color: #0c447c; }
.obsadenost.uroven-2 { background: #85b7eb; color: #042c53; }
.obsadenost.uroven-3 { background: #185fa5; color: #fff; }
.kalendar-jednotky { table-layout: fixed; }
.kalendar-jednotky col.stlpec-jednotka { width: 12.5rem; }
.kalendar-jednotky col.stlpec-den { width: 2.4rem; }
.kalendar-jednotky th.jednotka { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kalendar-jednotky thead th { min-width: 0; }
.bodka.typ-prazdniny { background: #1d9e75; box-shadow: none; }
.bodka.typ-sviatok, .bodka.typ-predlzeny_vikend { background: #d85a30; box-shadow: none; }
.bodka.typ-podujatie { background: #7f77dd; box-shadow: none; }
.upozornenie-sezona { background: #faece7; border-left: 4px solid #d85a30; color: #4a1b0c; padding: .6rem 1rem;
  border-radius: 0; margin-bottom: .6rem; font-size: .9rem; }
.rola-pouzivatela { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; margin: 0; }
.rola-pouzivatela select, .rola-pouzivatela input { width: auto; margin: 0; padding: .3rem .6rem; height: auto; }
.horna-lista .pouzivatel small { color: var(--td-text-tlmeny); }

/* obsadenosť na portáloch */
.konflikt-portaly { background: var(--td-cervena); border-left: 4px solid var(--td-cervena-okraj); padding: .6rem 1rem;
  margin-bottom: .6rem; font-size: .9rem; }
.konflikt-portaly ul { margin: .3rem 0; padding-left: 1.1rem; }
.konflikt-portaly li { list-style: disc; }
.volne-portaly { margin: 0 0 .6rem; color: var(--td-zelena-okraj); }
.zablokovanie-portaly ul { margin: 0 0 .5rem; padding: 0; }
.zablokovanie-portaly li { list-style: none; margin: .2rem 0; }
.pruh.portal { background: #e2e8f0; color: #334155; box-shadow: inset 0 0 0 1px #94a3b8; }
.pruh.portal.nezname { background: #fde2e1; color: #791f1f; box-shadow: inset 0 0 0 1px #e24b4a; font-weight: 600; }
.ukazka.portal-ukazka { background: #e2e8f0; box-shadow: inset 0 0 0 1px #94a3b8; }
.ukazka.portal-nezname { background: #fde2e1; box-shadow: inset 0 0 0 1px #e24b4a; }
.stav-portalov { margin-left: .8rem; color: var(--td-text-tlmeny); font-size: .8rem; }
.prepinac-udalosti button.overit { border-radius: 1rem; }
.horna-lista a.pouzivatel { color: var(--td-text-tlmeny); text-decoration: none; }
.horna-lista a.pouzivatel:hover { color: var(--td-akcent); }
.pridat-spravcu input { width: auto; flex: 1 1 14rem; margin: 0; padding: .35rem .7rem; height: auto; }

/* kalendár: zopakované dni nad jednotkami, skrytie portálov, dnešný deň */
tbody.hlavicka-jednotiek td, tbody.hlavicka-jednotiek th { background: #f8fafc; font-size: .72rem; font-weight: 600;
  color: #334155; height: 1.6rem; padding: 0; border-top: 2px solid var(--td-okraj); }
tbody.hlavicka-jednotiek td small { font-weight: 400; color: var(--td-text-tlmeny); }
tbody.hlavicka-jednotiek td.vikend { background: #edf2f8; }
tbody.hlavicka-jednotiek th.jednotka { font-size: .72rem; color: var(--td-text-tlmeny); font-weight: 500; }
.kalendar[data-portaly=skryte] .pasy-portaly, .kalendar[data-portaly=skryte] .len-portaly { display: none; }
.kalendar[data-udalosti=skryte][data-portaly=skryte] .hlavicka-jednotiek,
.kalendar[data-udalosti=skryte] table:not(.ma-portaly) .hlavicka-jednotiek { display: none; }
.kalendar-jednotky thead th.dnes::before { display: none; }
.kalendar-jednotky thead th.dnes, tbody.hlavicka-jednotiek td.dnes { background: var(--td-akcent); color: #fff; }
.kalendar-jednotky thead th.dnes small, tbody.hlavicka-jednotiek td.dnes small { color: #e8f0fa; }
.kalendar-jednotky td.dnes { box-shadow: none; }
.kalendar-jednotky td.bunka.dnes { background: #eef5fd; }
.prepinac-udalosti + .prepinac-udalosti { margin-top: -.2rem; }

/* Import pobytov */
.import-stlpce { display: flex; flex-wrap: wrap; gap: .3rem .9rem; font-size: .85rem; margin-bottom: .8rem; }
.import-stlpce span b { display: inline-block; min-width: 1.4rem; }
.import-polia { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0 1rem; }
.import-polia input { margin-bottom: .5rem; font-family: var(--pico-font-family-monospace); }
.import-polia label { font-size: .85rem; margin-bottom: .15rem; }
tr.import-chyba td { background: #fbeaea; color: #6b2a2a; }
tr.import-upozornenie td { background: #fffbea; }
.import-tabulka td { font-size: .85rem; vertical-align: top; }
.import-tabulka .termin, .import-tabulka .suma { white-space: nowrap; }
.import-tabulka ul { margin: 0; padding-left: 1rem; }
.import-tabulka li { list-style: disc; margin: 0; }
.zoznam-ponuk .vytvorena { color: var(--pico-muted-color); font-size: .8rem; white-space: nowrap; }
.zoznam-ponuk .termin { white-space: nowrap; }
.podiel-riadok { display: grid; grid-template-columns: minmax(8rem, 1fr) 7rem 4.5rem; gap: .5rem; align-items: center; }
.podiel-riadok input, .podiel-riadok select { margin-bottom: .3rem; padding: .3rem .5rem; height: auto; }
.podiel-riadok label { margin: 0; }
.rozdelenie-upratovania { margin: -.3rem 0 .3rem; color: var(--pico-muted-color); }
.podiely-polozky summary { margin-bottom: .3rem; }

/* Formát dátumu zvolený v Môj účet (static/js/datum.js) – pole prehliadača je skryté, vedľa textové pole */
.datum-pole { position: relative; display: inline-flex; align-items: stretch; gap: .25rem; width: 100%; }
.datum-pole .datum-text { flex: 1; min-width: 8.5rem; }
.datum-pole .datum-tlacidlo { flex: 0 0 auto; width: auto; margin-bottom: var(--pico-spacing); padding: 0 .55rem;
  background: transparent; border: 1px solid var(--pico-form-element-border-color); color: inherit; }
.datum-pole input.datum-iso { position: absolute; right: 0; bottom: 0; width: 1px; height: 1px; opacity: 0;
  pointer-events: none; border: 0; padding: 0; margin: 0; }
.vyber-obdobia .datum-pole, .riadok-tlacidiel .datum-pole { width: auto; }
.vyber-obdobia .datum-pole .datum-tlacidlo, .vyber-obdobia .datum-pole input { margin-bottom: 0; }
.podiel-riadok .podiel-suma { grid-column: 1 / -1; margin: -.4rem 0 .3rem 1.9rem; color: var(--pico-muted-color); }
.podiely-spolu { font-size: .85rem; margin: .2rem 0 .5rem; }

/* Výber obdobia: prepínače Mesiac · Rok · Vlastné obdobie a rýchla voľba sezón / prázdnin */
.prepinac-obdobia { display: inline-flex; border: 1px solid var(--pico-form-element-border-color);
  border-radius: var(--pico-border-radius); overflow: hidden; }
.prepinac-obdobia label { margin: 0; padding: .3rem .7rem; cursor: pointer; font-size: .9rem; white-space: nowrap; }
.prepinac-obdobia label + label { border-left: 1px solid var(--pico-form-element-border-color); }
.prepinac-obdobia input { position: absolute; opacity: 0; width: 0; height: 0; }
.prepinac-obdobia label:has(input:checked) { background: var(--pico-primary-background); color: var(--pico-primary-inverse); }
.prepinac-obdobia label:has(input:focus-visible) { outline: 2px solid var(--pico-primary); }
.vyber-obdobia .rychle-obdobia { flex-basis: 100%; display: none; gap: .3rem; flex-wrap: wrap; align-items: center; }
.vyber-obdobia[data-typ=obdobie] .rychle-obdobia { display: flex; }
.rychle-obdobia button { width: auto; margin: 0; padding: .15rem .55rem; font-size: .8rem; }
.rychla-volba { display: inline-flex; align-items: center; }
.rychla-volba.vlastna > button:first-child { border-style: dashed; }
.rychla-volba .zmazat-volbu { width: auto; margin: 0 0 0 .1rem; padding: 0 .3rem; font-size: .8rem; background: transparent;
  border: none; color: var(--pico-muted-color); }
.ulozit-obdobie { margin: .3rem 0 0; }
.ulozit-obdobie form { align-items: center; }
.ulozit-obdobie input[type=text] { width: auto; min-width: 14rem; margin: 0; padding: .3rem .6rem; height: auto; }
.ulozit-obdobie label { margin: 0; }
