/* Barevnost podle adjustart.cz: tmavě hnědá "ink", krémová, jantarová, červená.
   Světlý / tmavý režim: výchozí podle systému, přepínač v záhlaví nastaví html[data-theme]. */
:root {
  color-scheme: light;
  --pozadi: #fff6e2;
  --karta: #fffdf8;
  --text: #3a1f0f;
  --tlumeny: #7a5a40;
  --okraj: #ecd3a0;
  --akcent: #e21b1f;
  --akcent-tmavy: #c0161a;
  --akcent-svetly: #ffe9b8;
  --odkaz: #b3141a;
  --nadpis-akcent: #c0161a;
  --chyba: #a8201a;
  --chyba-svetla: #fde8e4;
  --ok: #1b6e3a;
  --ok-svetla: #e6f2dc;
  --hlavicka-bg: #e78e26;
  --hlavicka-text: #3a1f0f;
  --hlavicka-hover: rgba(255, 246, 226, .45);
  --hlavicka-aktivni-bg: #3a1f0f;
  --hlavicka-aktivni-text: #fdecc0;
  --stin: rgba(58, 31, 15, .18);
  --radius: 8px;
  --font-nadpis: "Bodoni 72", "Bodoni MT", Didot, Georgia, "Times New Roman", serif;
  --font-text: Montserrat, "Trebuchet MS", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --pozadi: #1e1008;
  --karta: #2b180d;
  --text: #fff1d6;
  --tlumeny: #cfae84;
  --okraj: #5a3517;
  --akcent: #e21b1f;
  --akcent-tmavy: #f03a3e;
  --akcent-svetly: #46280f;
  --odkaz: #ffc667;
  --nadpis-akcent: #ffc667;
  --chyba: #ff9a8f;
  --chyba-svetla: #44201b;
  --ok: #8fd6a4;
  --ok-svetla: #1f3a26;
  --hlavicka-bg: #3a1f0f;
  --hlavicka-text: #fdecc0;
  --hlavicka-hover: rgba(245, 166, 35, .22);
  --hlavicka-aktivni-bg: #f5a623;
  --hlavicka-aktivni-text: #3a1f0f;
  --stin: rgba(0, 0, 0, .45);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --pozadi: #1e1008;
    --karta: #2b180d;
    --text: #fff1d6;
    --tlumeny: #cfae84;
    --okraj: #5a3517;
    --akcent: #e21b1f;
    --akcent-tmavy: #f03a3e;
    --akcent-svetly: #46280f;
    --odkaz: #ffc667;
    --nadpis-akcent: #ffc667;
    --chyba: #ff9a8f;
    --chyba-svetla: #44201b;
    --ok: #8fd6a4;
    --ok-svetla: #1f3a26;
    --hlavicka-bg: #3a1f0f;
    --hlavicka-text: #fdecc0;
    --hlavicka-hover: rgba(245, 166, 35, .22);
    --hlavicka-aktivni-bg: #f5a623;
    --hlavicka-aktivni-text: #3a1f0f;
    --stin: rgba(0, 0, 0, .45);
  }
}
* { box-sizing: border-box; }
html { font-size: 16px; }
body {
  margin: 0; background: var(--pozadi); color: var(--text);
  font-family: var(--font-text);
  line-height: 1.45;
}
a { color: var(--odkaz); }
a:hover { color: var(--akcent-tmavy); }
h1, h2, h3 { font-family: var(--font-nadpis); font-weight: 400; letter-spacing: .005em; }
h1 { font-size: 2rem; margin: .2rem 0 1rem; line-height: 1.15; }
h2 { font-size: 1.4rem; margin: 0 0 .7rem; }
h3 { font-size: 1.1rem; margin: 1rem 0 .4rem; }

/* horní lišta: nahoře logo, hledání a uživatel, pod tím nabídka rozdělená do bloků s popisky */
.horni {
  background: var(--hlavicka-bg); color: var(--hlavicka-text);
  position: sticky; top: 0; z-index: 10; box-shadow: 0 2px 10px var(--stin);
}
.horni-radek { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; padding: .55rem 1.2rem .35rem; }
.horni-radek .hledani-pole { flex: 1; display: flex; justify-content: center; }
.logo { text-decoration: none; color: var(--hlavicka-text); display: flex; align-items: center; gap: .65rem; line-height: 1.05; }
.logo img { display: block; height: 32px; width: auto; }
.logo-text { display: flex; flex-direction: column; }
.logo:hover { color: var(--hlavicka-text); }
.logo b { font-family: var(--font-nadpis); font-weight: 400; font-size: 1.35rem; letter-spacing: .03em; text-transform: uppercase; }
.logo b i { font-style: normal; color: var(--akcent); }
.logo small { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; opacity: .8; }
.hlavni {
  display: grid; grid-template-columns: auto 1fr; align-items: end; gap: .3rem .8rem; padding: .3rem 1.2rem .6rem;
  border-top: 1px solid rgba(58, 31, 15, .22);
}
:root[data-theme="dark"] .hlavni { border-top-color: rgba(253, 236, 192, .18); }
.nav-domu { grid-column: 1; justify-self: start; }
.nav-domu > a {
  display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .7rem; border-radius: 10px; text-decoration: none;
  color: var(--hlavicka-text); font-weight: 600; font-size: .93rem; border: 1px solid rgba(58, 31, 15, .35); white-space: nowrap;
}
:root[data-theme="dark"] .nav-domu > a { border-color: rgba(253, 236, 192, .35); }
.nav-domu > a:hover { background: var(--hlavicka-hover); }
.nav-domu > a.aktivni { background: var(--hlavicka-aktivni-bg); color: var(--hlavicka-aktivni-text); border-color: transparent; box-shadow: 0 1px 4px rgba(0, 0, 0, .25); }
.hlavni.symetricka { grid-template-columns: 1fr auto 1fr; }   /* méně položek (např. nosič): nabídka přesně na střed */
.nav-stred { grid-column: 2; display: flex; gap: .3rem .6rem; justify-content: center; flex-wrap: wrap; align-items: stretch; }
.nav-skupina { display: flex; flex-direction: column; gap: .1rem; padding-right: .6rem; border-right: 1px solid rgba(58, 31, 15, .22); }
:root[data-theme="dark"] .nav-skupina { border-right-color: rgba(253, 236, 192, .18); }
.nav-skupina:last-child { border-right: 0; padding-right: 0; }
.nav-popisek { font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; opacity: .75; padding-left: .6rem; }
.nav-odkazy { display: flex; gap: .2rem; flex-wrap: wrap; }
.nav-odkazy > a, .menu > summary {
  padding: .38rem .5rem; border-radius: 10px; text-decoration: none; color: var(--hlavicka-text); cursor: pointer; list-style: none;
  font-weight: 500; font-size: .93rem; display: inline-flex; align-items: center; gap: .3rem; white-space: nowrap;
}
.ikona { font-size: 1.05rem; line-height: 1; }
.nav-odkazy > a:hover, .menu > summary:hover, .menu[open] > summary { background: var(--hlavicka-hover); color: var(--hlavicka-text); }
.nav-odkazy > a.aktivni { background: var(--hlavicka-aktivni-bg); color: var(--hlavicka-aktivni-text); font-weight: 700; box-shadow: 0 1px 4px rgba(0, 0, 0, .25); }
.menu { position: relative; }
.menu > summary::-webkit-details-marker { display: none; }
.menu > summary::after { content: " ▾"; font-size: .8em; }
.menu-box {
  position: absolute; top: 100%; left: 0; min-width: 12rem; background: var(--karta);
  border: 1px solid var(--okraj); border-radius: var(--radius); padding: .3rem; z-index: 20;
  box-shadow: 0 8px 24px var(--stin); display: flex; flex-direction: column;
}
.menu-box a { padding: .45rem .7rem; text-decoration: none; color: var(--text); border-radius: 6px; }
.menu-box a:hover { background: var(--akcent-svetly); }
.uzivatel { display: flex; align-items: center; gap: .8rem; }
.uzivatel form { margin: 0; }
.uzivatel a, .uzivatel button.odkaz { color: var(--hlavicka-text); }
.horni button.odkaz { text-decoration: underline; }
.tema-prepinac {
  background: transparent; color: inherit; border: 1px solid currentColor; border-radius: 999px;
  font: inherit; font-size: .82rem; padding: .25rem .7rem; cursor: pointer; white-space: nowrap; opacity: .9;
}
.tema-prepinac:hover { opacity: 1; background: var(--hlavicka-hover); }
.tema-prepinac.volny { position: fixed; top: .8rem; right: .8rem; color: var(--text); background: var(--karta); }

main { max-width: 1200px; margin: 0 auto; padding: 1.2rem 1.2rem 28rem; }   /* dole rezerva, aby se vešel rozbalený kalendář */
main.uzke { max-width: 440px; padding-top: 4rem; padding-bottom: 1.2rem; }

/* karty a rozvržení */
.karta { background: var(--karta); border: 1px solid var(--okraj); border-radius: var(--radius); padding: 1.1rem 1.2rem; margin: 0 0 1.2rem; }
.karta.uzka, .uzka { max-width: 560px; }
.hlavicka-stranky { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.akce { display: flex; gap: .5rem; flex-wrap: wrap; }
.zpet { font-size: .9rem; text-decoration: none; color: var(--tlumeny); }
.dlazdice { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; margin-bottom: 1.2rem; }
.dlazdice-polozka {
  display: flex; flex-direction: column; background: var(--karta); border: 1px solid var(--okraj);
  border-radius: var(--radius); padding: 1rem 1.1rem; text-decoration: none; color: var(--text);
}
.dlazdice-polozka:hover { border-color: #f5a623; box-shadow: 0 2px 10px var(--stin); }
.dlazdice-polozka strong { font-family: var(--font-nadpis); font-weight: 400; font-size: 2.3rem; line-height: 1.1; color: var(--nadpis-akcent); }
.dlazdice-polozka small { color: var(--tlumeny); margin-top: .2rem; }
.seznam-odkazu { list-style: none; margin: 0; padding: 0; }
.seznam-odkazu li { padding: .35rem 0; border-bottom: 1px solid var(--okraj); }
.seznam-odkazu li:last-child { border-bottom: 0; }

/* tlačítka */
.tlacitko, button.tlacitko {
  display: inline-block; background: var(--akcent); color: #fff; border: 1px solid var(--akcent);
  padding: .5rem 1.1rem; border-radius: 6px; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none;
}
.tlacitko:hover { background: var(--akcent-tmavy); border-color: var(--akcent-tmavy); color: #fff; }
.tlacitko.sekundarni { background: transparent; color: var(--text); border-color: var(--tlumeny); font-weight: 500; }
.tlacitko.sekundarni:hover { background: var(--akcent-svetly); color: var(--text); border-color: var(--text); }
.tlacitko:disabled { opacity: .45; cursor: not-allowed; }
.tlacitko.nebezpecne { background: transparent; color: var(--chyba); border-color: var(--chyba); }
.tlacitko.nebezpecne:hover { background: var(--chyba-svetla); color: var(--chyba); }
button.odkaz, .odkaz { background: none; border: 0; padding: 0; font: inherit; color: var(--odkaz); cursor: pointer; text-decoration: underline; }

/* formuláře */
label.pole, .pole { display: flex; flex-direction: column; gap: .25rem; margin-bottom: .9rem; }
.popisek { font-weight: 600; font-size: .92rem; }
input[type=text], input[type=email], input[type=password], input[type=number], input[type=date],
input[type=search], select, textarea {
  width: 100%; padding: .5rem .6rem; font: inherit; color: var(--text); background: var(--karta);
  border: 1px solid var(--okraj); border-radius: 6px;
}
input:focus, select:focus, textarea:focus { outline: 2px solid #f5a623; outline-offset: 0; border-color: #f5a623; }
:focus-visible { outline: 2px solid #f5a623; outline-offset: 2px; }
input[type=checkbox], input[type=radio] { accent-color: var(--akcent); }
input:disabled, select:disabled, textarea:disabled { background: var(--pozadi); color: var(--text); opacity: .85; }
input[type=file] { font: inherit; }
.zaskrtnuti { display: inline-flex; align-items: center; gap: .45rem; font-weight: 400; }
.zaskrtavatka { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; }
.napoveda { color: var(--tlumeny); font-size: .86rem; margin: .1rem 0 0; }
.tlumene { color: var(--tlumeny); font-size: .9rem; }
.chyba-pole { color: var(--chyba); font-size: .88rem; }
.pole.ma-chybu input, .pole.ma-chybu select, .pole.ma-chybu textarea { border-color: var(--chyba); }
.skupina { border: 1px solid var(--okraj); border-radius: var(--radius); margin: 0 0 1rem; padding: .9rem 1.1rem .3rem; background: var(--karta); }
.skupina legend { font-family: var(--font-nadpis); font-size: 1.15rem; padding: 0 .4rem; }
.mrizka { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 1.2rem; }
.pole.siroke { grid-column: 1 / -1; }
.akce-formulare { display: flex; gap: .6rem; flex-wrap: wrap; margin: 1rem 0 1.4rem; }
.radek-formulare { display: flex; gap: 1rem; align-items: flex-end; flex-wrap: wrap; }
.radek-formulare label { display: flex; flex-direction: column; gap: .25rem; }
.nebezpecna-zona { margin: 2rem 0 1rem; padding-top: 1rem; border-top: 1px dashed var(--okraj); display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.soubor-ted { margin-bottom: .4rem; }
.foto-nahled { display: block; margin-top: .5rem; max-width: 100%; max-height: 260px; border: 1px solid var(--okraj); border-radius: 6px; }
.prihlaseni { padding: 1.6rem; }

/* filtry a tabulky */
.filtry { display: flex; gap: .7rem; align-items: flex-end; flex-wrap: wrap; margin-bottom: .8rem; }
.filtry input[type=search] { width: 260px; }
.filtry label { display: flex; flex-direction: column; font-size: .8rem; color: var(--tlumeny); gap: .15rem; }
.filtry select { width: auto; min-width: 9rem; color: var(--text); }
.filtry select, .filtry input[type=date], .filtry input[type=search] { box-sizing: border-box; height: 2.4rem; padding-top: 0; padding-bottom: 0; }
.filtry input[type=date] { width: auto; }
.pocet { color: var(--tlumeny); margin: .2rem 0 .6rem; }
.tabulka-obal { overflow-x: auto; background: var(--karta); border: 1px solid var(--okraj); border-radius: var(--radius); margin-bottom: 1rem; }
.tabulka { width: 100%; border-collapse: collapse; font-size: .94rem; }
.tabulka th { text-align: left; background: var(--akcent-svetly); padding: .55rem .75rem; border-bottom: 1px solid var(--okraj); white-space: nowrap; font-weight: 600; }
.tabulka td { padding: .5rem .75rem; border-bottom: 1px solid var(--okraj); vertical-align: top; }
.tabulka tr:last-child td { border-bottom: 0; }
.tabulka tbody tr:hover { background: var(--akcent-svetly); }
.tabulka .cislo { text-align: right; font-variant-numeric: tabular-nums; }
.tabulka tr.neaktivni td { color: var(--tlumeny); }
.nezalamovat { white-space: nowrap; }
.prazdno { padding: 2rem; text-align: center; color: var(--tlumeny); background: var(--karta); border: 1px dashed var(--okraj); border-radius: var(--radius); }
.stranky { display: flex; gap: 1rem; align-items: center; justify-content: center; margin: 1rem 0; }
.tabulka .vyber { width: 2.2rem; text-align: center; padding-right: .2rem; }
.hromadne-lista { display: flex; gap: .8rem; align-items: center; flex-wrap: wrap; margin-bottom: .5rem; }
.hromadne-vsechny { background: var(--akcent-svetly); border-radius: 6px; padding: .45rem .8rem; margin-bottom: .6rem; }
.stitek { display: inline-block; font-size: .75rem; background: var(--akcent-svetly); color: var(--text); border: 1px solid var(--okraj); padding: .1rem .5rem; border-radius: 99px; }
.zmena .stara { text-decoration: line-through; color: var(--tlumeny); }
.zmena .nova { font-weight: 600; }

/* zprávy */
.zprava { padding: .7rem 1rem; border-radius: 6px; margin: 0 0 1rem; border: 1px solid var(--okraj); background: var(--karta); }
.zprava.ok { background: var(--ok-svetla); border-color: var(--ok); color: var(--ok); }
.zprava.chyba { background: var(--chyba-svetla); border-color: var(--chyba); color: var(--chyba); }
.souhrn { display: flex; gap: 1.6rem; flex-wrap: wrap; list-style: none; padding: 0; margin: 0 0 .8rem; }
.chyba-text { color: var(--chyba); }
.nahled img { max-width: 100%; max-height: 420px; border: 1px solid var(--okraj); border-radius: 6px; }
details summary { cursor: pointer; font-weight: 600; padding: .3rem 0; }

@media (max-width: 720px) {
  .horni-radek { padding: .5rem .8rem .3rem; }
  .hlavni { padding: .3rem .8rem .5rem; }
  main { padding: .8rem; }
  .filtry input[type=search] { width: 100%; }
}
@media print {
  .horni, .akce, .filtry, .stranky, .nevytisknout { display: none; }
  body { background: #fff; color: #000; }
  .tema-prepinac { display: none; }
}

/* rezervace a plánovač */
.faze-radek { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: .5rem 0; }
.faze-uprava { margin: 0 0 .8rem; padding-left: .2rem; }
input.uzke-cislo[type=number], .uzke-cislo { width: 5.5rem; }
.stitek-varovani { background: var(--chyba-svetla); color: var(--chyba); border-color: var(--chyba); }
.mista-obal { max-height: 70vh; overflow: auto; }
.mista-obal thead th { position: sticky; top: 0; z-index: 1; user-select: none; }
.tabulka tr[hidden] { display: none; }

/* řazení kliknutím na záhlaví seznamu */
.tabulka th a.razeni { color: inherit; text-decoration: none; display: inline-block; }
.tabulka th a.razeni:hover { text-decoration: underline; }
.tabulka th a.razeni.aktivni { color: var(--akcent); }
.tabulka th .sipka { font-size: .7em; margin-left: .35em; }

/* rozpis plnění a převzetí letáků */
.tisk-obal { width: 100%; border-collapse: collapse; }
.tisk-obal > thead > tr > td, .tisk-obal > tbody > tr > td { padding: 0; border: 0; }
.vypis-hlavicka { display: flex; align-items: baseline; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap;
  border-bottom: 2px solid var(--text); padding-bottom: .4rem; margin-bottom: .8rem; }
.vypis-trasa { font-family: var(--font-nadpis); font-size: 2.2rem; line-height: 1.1; }
.vypis-den { font-size: 1.05rem; }
.vypis-souhrn { flex-basis: 100%; color: var(--tlumeny); font-size: .85rem; }
.rozpis-mrizka { width: 100%; table-layout: fixed; border-collapse: collapse; }
.rozpis-mrizka > thead > tr > td { padding: 0; border: 0; }
.rozpis-mrizka > tbody > tr { break-inside: avoid; page-break-inside: avoid; }
.stojan-bunka { vertical-align: top; border: 1px solid var(--okraj); background: var(--karta); padding: .4rem .6rem .6rem;
  overflow-wrap: anywhere; }
.stojan-bunka.prazdna { background: transparent; }
.stojan-bunka h3 { font-family: inherit; margin: 0 0 .1rem; text-align: center; font-size: 1rem; text-decoration: underline; font-weight: 700; }
.pokracovani { font-weight: 400; font-style: italic; }
/* na obrazovce je rozpis souvislý; záhlaví dalších stránek a mezera mezi nimi se ukazují až v tisku */
.rozpis-mrizka.dalsi-strana > thead { display: none; }
.rozpis-mrizka.dalsi-strana { margin-top: .6rem; }
.stojan-adresa { text-align: center; font-size: .75rem; color: var(--tlumeny); margin-bottom: .25rem; }
.stojan-bunka .letaky-vypis li { padding: .05rem 0; line-height: 1.3; }
.kusy { color: var(--tlumeny); font-size: .85em; }
.letaky-vypis { list-style: none; margin: 0; padding: 0; }
.varovani-text { color: var(--chyba); }
.vyber-vypisu { margin: .6rem 0 1rem; }
.karta .vyber-vypisu { margin: .4rem 0; }
.orientace { width: auto; }
.prevzeti-vypis { font-family: Arial, Helvetica, sans-serif; }
.prevzeti-nadpis { text-align: center; font-weight: 700; font-size: 1.15rem; margin-bottom: .3rem; }
.prevzeti-hlavicka { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem;
  border-bottom: 1.2mm solid #999; padding-bottom: .5rem; margin-bottom: .6rem; }
.prevzeti-hlavicka .vypis-trasa { font-family: Arial, Helvetica, sans-serif; font-size: 2.4rem; font-weight: 400; }
.prevzeti-souhrn { text-align: center; font-size: .95rem; line-height: 1.35; }
.prevzeti-nosic { color: var(--tlumeny); font-size: .85em; }
.prevzeti-tabulka { width: 100%; border-collapse: collapse; border: 2px solid #777; table-layout: auto; }
.prevzeti-tabulka th, .prevzeti-tabulka td { border: 2px solid #999; padding: .15rem .45rem; text-align: left; vertical-align: top; }
.prevzeti-tabulka th { font-weight: 700; border-bottom: 5px solid #aaa; }
.prevzeti-tabulka .stred { text-align: center; width: 9.5rem; }
.prevzeti-tabulka tbody tr { break-inside: avoid; page-break-inside: avoid; }
@media print {
  @page { margin: 10mm; }
  html, body { background: #fff !important; color: #000 !important; }
  .vypis, .vypis * { font-family: Arial, Helvetica, sans-serif !important; }
  main { max-width: none; padding: 0; margin: 0; }
  /* záhlaví jako ve staré aplikaci: velký název trasy vlevo, vedle „pro den", pod tím silná šedá čára */
  .vypis-hlavicka { justify-content: flex-start; gap: 22mm; border-bottom: 1.2mm solid #888; padding-bottom: 2mm; margin-bottom: 3mm; }
  .vypis-trasa { font-size: 26pt; font-weight: 400; letter-spacing: 0; }
  .vypis-den { font-size: 10pt; }
  .vypis-souhrn { display: none; }
  .rozpis-mrizka { font-size: 8pt; }
  .rozpis-mrizka.dalsi-strana { margin-top: 0; break-before: page; page-break-before: always; }
  .rozpis-mrizka.dalsi-strana > thead { display: table-header-group; }
  .stojan-bunka { break-inside: avoid; page-break-inside: avoid; }
  .rozpis-mrizka.orientace-sirka { font-size: 9.5pt; }
  .stojan-bunka { background: #fff; border: .4mm solid #000; padding: 1mm 1.5mm 1.6mm; }
  .stojan-bunka h3 { font-size: 8.5pt; margin: 0 0 .6mm; }
  .orientace-sirka .stojan-bunka h3 { font-size: 10pt; }
  .stojan-bunka .stojan-adresa { display: none; }
  .stojan-bunka .stojan-adresa.bez-letaku { display: block; color: #000; font-size: 7.5pt; }
  .stojan-bunka .stojan-adresa.varovani-text { display: block; color: #000; font-size: 7.5pt; }
  .stojan-bunka .letaky-vypis li { padding: 0; line-height: 1.28; }
  .kusy { color: #000; }
  .prevzeti-vypis { font-size: 11pt; }
  .prevzeti-nadpis { font-size: 13pt; }
  .prevzeti-hlavicka .vypis-trasa { font-size: 28pt; }
  .prevzeti-souhrn { font-size: 10pt; }
  .prevzeti-nosic { color: #000; }
  .prevzeti-tabulka, .prevzeti-tabulka th, .prevzeti-tabulka td { border-color: #777; }
  .prevzeti-tabulka th { background: #fff; border-bottom: 1.4mm solid #aaa; }
  .prevzeti-tabulka td { padding: .6mm 1.6mm; }
  .prevzeti-tabulka tbody tr:hover { background: none; }
}

/* nabídky: leták, který nosiči fyzicky nemají */
.nabidka-znacka { display: inline-block; font-weight: 700; font-size: .8em; color: var(--chyba); border: 1px solid currentColor;
  border-radius: 3px; padding: 0 .3em; line-height: 1.3; white-space: nowrap; }
.je-nabidka { font-style: italic; background: rgba(245, 197, 66, .28); }
.nabidka-banner { background: rgba(245, 197, 66, .28); border-color: #d9a400; color: var(--text); }
.nabidka-legenda { font-size: .85rem; padding: .3rem 0 .5rem !important; }
@media print { .je-nabidka { background: none; } .nabidka-znacka { color: #000; border: .35mm solid #000; } .nabidka-legenda { font-size: 8.5pt; } }

/* plánovač nové rezervace */
.vse-sloupec { font-weight: 400; font-size: .8rem; margin-left: .3rem; white-space: nowrap; }
[hidden] { display: none !important; }
.nabidka-blok { margin: .4rem 0 .8rem; }
.rychle-volby { display: inline-flex; gap: .4rem; flex-wrap: wrap; }
.vyber-vice-mrizka { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .8rem; margin-bottom: .8rem; }
.vyber-vice { display: flex; flex-direction: column; font-size: .8rem; color: var(--tlumeny); gap: .15rem; }
.vyber-vice select { width: 100%; color: var(--text); }
#planovaci-formular .radek-formulare { display: flex; gap: .8rem; flex-wrap: wrap; align-items: flex-end; margin-bottom: .8rem; }
#planovaci-formular .radek-formulare label { display: flex; flex-direction: column; font-size: .8rem; color: var(--tlumeny); gap: .15rem; }

@media print { main { padding-bottom: 0; } }

/* ===== Přehled: kalendář a nástěnka ===== */
.prehled-mrizka { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1.2rem; align-items: start; margin-bottom: 1.2rem; }
.prehled-mrizka > .karta { margin-bottom: 0; }
@media (max-width: 1000px) { .prehled-mrizka { grid-template-columns: minmax(0, 1fr); } }

.kalendar-hlava { display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap; margin-bottom: .6rem; }
.kalendar-hlava h2 { margin: 0; }
.kalendar-navigace { display: flex; align-items: center; gap: .5rem; }
.kalendar-navigace .tlacitko { padding: .3rem .8rem; }
.kalendar-mesic { min-width: 9.5rem; text-align: center; font-family: var(--font-nadpis); font-size: 1.2rem; font-weight: 400; text-transform: capitalize; }

.kalendar-mrizka { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--okraj); border-left: 1px solid var(--okraj); }
.kal-hlavicka { padding: .35rem .4rem; font-weight: 600; font-size: .85rem; text-align: center; background: var(--akcent-svetly);
  border-right: 1px solid var(--okraj); border-bottom: 1px solid var(--okraj); }
.kal-hlavicka.vikend { color: var(--chyba); }
.kal-den { min-height: 7.4rem; padding: .25rem .3rem .35rem; border-right: 1px solid var(--okraj); border-bottom: 1px solid var(--okraj);
  display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.kal-den.vikend { background: color-mix(in srgb, var(--akcent-svetly) 45%, transparent); }
.kal-den.svatek { background: var(--chyba-svetla); }
.kal-den.mimo { opacity: .5; }
.kal-den.dnes { outline: 2px solid #f5a623; outline-offset: -2px; }
.kal-cislo { display: flex; justify-content: space-between; align-items: center; font-size: .82rem; font-weight: 600; }
.kal-den.svatek .kal-cislo span, .kal-den.vikend .kal-cislo span { color: var(--chyba); }
.kal-den.dnes .kal-cislo span { background: var(--akcent); color: #fff; border-radius: 10px; padding: 0 .4rem; }
.kal-plus { visibility: hidden; border: 1px solid var(--okraj); background: var(--karta); color: var(--text); border-radius: 50%;
  width: 1.3rem; height: 1.3rem; line-height: 1; padding: 0; cursor: pointer; font-size: .95rem; }
.kal-den:hover .kal-plus, .kal-plus:focus-visible { visibility: visible; }
@media (hover: none) { .kal-plus { visibility: visible; opacity: .55; } }
.kal-svatek { font-size: .7rem; line-height: 1.15; color: var(--chyba); overflow-wrap: anywhere; }
.kal-udalost { display: block; color: #fff; text-decoration: none; font-size: .74rem; line-height: 1.25; padding: .12rem .35rem;
  border-radius: 4px; overflow-wrap: anywhere; }
.kal-udalost b { font-weight: 700; }
a.kal-udalost:hover { filter: brightness(1.2); color: #fff; }
.kalendar-legenda { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: .7rem 0; padding: 0; font-size: .85rem; }
.kalendar-legenda li { display: inline-flex; align-items: center; gap: .35rem; }
.kalendar-legenda i { display: inline-block; width: .85rem; height: .85rem; border-radius: 3px; }
.kalendar-legenda i.svatek-znacka { background: var(--chyba-svetla); border: 1px solid var(--chyba); }
.kalendar-formular { margin-top: .4rem; }
.kalendar-formular > summary { list-style: none; display: inline-block; cursor: pointer; }
.kalendar-formular > summary::-webkit-details-marker { display: none; }
.kalendar-formular[open] > summary { margin-bottom: .8rem; }
.kal-form .kal-text { flex: 1 1 14rem; }
.kalendar-agenda { display: none; margin: .4rem 0 .8rem; }
.kalendar-agenda h3 { font-size: 1rem; margin: 0 0 .4rem; }
.kalendar-agenda ul { list-style: none; margin: 0; padding: 0; }
.kalendar-agenda li { display: flex; gap: .5rem; align-items: baseline; padding: .25rem 0; border-bottom: 1px solid var(--okraj); font-size: .88rem; }
.kalendar-agenda li i { flex: none; width: .8rem; height: .8rem; border-radius: 3px; }
@media (max-width: 700px) {
  .kal-den { min-height: 3.6rem; padding: .2rem; }
  .kal-udalost { height: .45rem; font-size: 0; padding: 0; margin: 0; }
  .kal-udalost b { display: none; }
  .kal-svatek { display: none; }
  .kalendar-agenda { display: block; }
}

.nastenka .odznak { display: inline-block; min-width: 1.4rem; padding: 0 .4rem; border-radius: 10px; background: var(--akcent); color: #fff;
  font-family: var(--font-text); font-size: .8rem; font-weight: 600; text-align: center; vertical-align: middle; }
.nastenka-zprava { margin-bottom: 1rem; padding-bottom: .8rem; border-bottom: 1px dashed var(--okraj); }
.nastenka-zprava textarea { resize: vertical; }
.nastenka-seznam { list-style: none; margin: 0; padding: 0; max-height: 44rem; overflow-y: auto; }
.oznameni { padding: .55rem .7rem; margin-bottom: .5rem; border: 1px solid var(--okraj); border-left: 4px solid var(--tlumeny); border-radius: 6px; }
.oznameni p { margin: .2rem 0 .3rem; overflow-wrap: anywhere; }
.oznameni.typ-zprava { border-left-color: var(--akcent); background: var(--akcent-svetly); }
.oznameni.typ-start { border-left-color: var(--ok); }
.oznameni.typ-konec, .oznameni.typ-nabidka_konci { border-left-color: var(--chyba); }
.oznameni.typ-nabidka { border-left-color: #f5a623; }
.oznameni.typ-zverejneni { border-left-color: var(--akcent); }
.oznameni.osobni { border-left-color: #2f6fb3; }
.oznameni-hlava, .oznameni-paticka { display: flex; align-items: center; gap: .6rem; font-size: .8rem; }
.oznameni-hlava { justify-content: space-between; }
.oznameni-stitek { font-weight: 700; text-transform: uppercase; letter-spacing: .03em; font-size: .72rem; }
.oznameni-paticka .vypln { flex: 1; }
.oznameni-paticka form { margin: 0; }
.oznameni-paticka button.odkaz { font-size: .8rem; color: var(--tlumeny); }
@media print { .prehled-mrizka, .prehled-sloupec, .kalendar-formular { display: none; } }

/* Rozpis plnění a převzetí na Přehledu: dlaždice přes celou šířku, vzhledem shodná s ostatními dlaždicemi */
.rozpis-dlazdice { gap: .8rem; margin-bottom: 1.2rem; }
.rozpis-dlazdice:hover { border-color: var(--okraj); box-shadow: none; }
.rozpis-text { display: flex; flex-direction: column; gap: .25rem; }
.rozpis-dlazdice .rozpis-text strong { font-size: 1.6rem; }
.rozpis-dlazdice .rozpis-text small { margin: 0; font-size: .88rem; }
.rozpis-dlazdice .vyber-vypisu { margin: 0; align-items: flex-end; }
.rozpis-dlazdice .vyber-vypisu label { font-size: .85rem; }
.rozpis-dlazdice .vyber-vypisu label:first-of-type { flex: 2 1 16rem; }
.rozpis-dlazdice .vyber-vypisu label:nth-of-type(2) { flex: 1 1 10rem; }
.rozpis-dlazdice .vyber-vypisu select, .rozpis-dlazdice .vyber-vypisu input[type=date] { font-size: 1rem; padding: .6rem .7rem; }
.rozpis-dlazdice .vyber-vypisu .tlacitko { padding: .65rem 1.2rem; }

/* ---- sklad ---- */
.podmenu { display: flex; gap: .4rem; flex-wrap: wrap; margin: 0 0 1rem; border-bottom: 1px solid var(--okraj); }
.podmenu a { padding: .45rem .9rem; text-decoration: none; color: var(--text); border: 1px solid transparent; border-bottom: 0; border-radius: 6px 6px 0 0; }
.podmenu a:hover { background: var(--akcent-svetly); }
.podmenu a.aktivni { background: var(--karta); border-color: var(--okraj); font-weight: 600; margin-bottom: -1px; }
.stav-sklad { display: inline-block; font-size: .8rem; padding: .1rem .55rem; border-radius: 99px; border: 1px solid var(--okraj); white-space: nowrap; }
.stav-sklad.ok { background: var(--ok-svetla); border-color: var(--ok); color: var(--ok); }
.stav-sklad.pozor { background: var(--akcent-svetly); border-color: var(--akcent); font-weight: 600; }
.stav-sklad.chyba { background: var(--chyba-svetla); border-color: var(--chyba); color: var(--chyba); font-weight: 600; }
.stav-sklad.tlumene { color: var(--tlumeny); }
.sklad-mrizka tfoot th { border-top: 2px solid var(--okraj); border-bottom: 0; }
.sklad-mrizka a.nula { color: var(--tlumeny); }
.sklad-formular { margin-bottom: .4rem; }
.s-barva { white-space: nowrap; }
.s-foto { width: 44px; height: 44px; object-fit: cover; border-radius: 6px; border: 1px solid var(--okraj); vertical-align: middle; margin-right: .6rem; display: inline-block; }
.s-foto-prazdna { background: var(--akcent-svetly); }
.nastenka-zalozky { display: flex; gap: .4rem; margin: 0 0 .8rem; border-bottom: 1px solid var(--okraj); }
.nastenka-zalozky a { padding: .35rem .8rem; text-decoration: none; color: var(--text); border: 1px solid transparent; border-bottom: 0; border-radius: 6px 6px 0 0; }
.nastenka-zalozky a:hover { background: var(--akcent-svetly); }
.nastenka-zalozky a.aktivni { background: var(--karta); border-color: var(--okraj); font-weight: 600; margin-bottom: -1px; }
.oznameni.precteno { opacity: .8; }
.tabulka th.trideny { cursor: pointer; user-select: none; }
.tabulka th.trideny:hover { background: var(--okraj); }
.tabulka th.trideny::after { content: " ⇅"; color: var(--tlumeny); font-size: .8em; }
.tabulka th.trideny[data-smer="vzestupne"]::after { content: " ▲"; color: var(--text); }
.tabulka th.trideny[data-smer="sestupne"]::after { content: " ▼"; color: var(--text); }

/* mapa stojanu */
.mapa { height: 380px; border: 1px solid var(--okraj); border-radius: 6px; margin: .6rem 0; z-index: 0; }
.mapa-polomer { font-size: .9rem; display: inline-flex; flex-direction: row; align-items: center; gap: .4rem; white-space: nowrap; }
.mapa-polomer select { width: auto; }
.mapa-okoli ol { margin: .4rem 0 .8rem; padding-left: 1.2rem; }
.mapa-formular { margin-top: .4rem; }
.mapa-formular input[type=text] { width: 9rem; }
.mapa-hledani { margin: .6rem 0; padding: .6rem; border: 1px solid var(--okraj); border-radius: 6px; }
.mapa-hledani-pole { flex: 1 1 18rem; }
.mapa-hledani-pole input { width: 100%; }
.mapa-vysledky { list-style: none; margin: .4rem 0 0; padding: 0; display: grid; gap: .4rem; }
.mapa-vysledky li { display: flex; gap: .6rem; align-items: center; justify-content: space-between; padding: .4rem .5rem;
  border: 1px solid var(--okraj); border-radius: 6px; }
.mapa-vysledek-popis { min-width: 0; overflow-wrap: anywhere; font-size: .92rem; }
.mapa-adresa { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: .5rem .8rem; align-items: flex-end;
  padding: .5rem; border: 1px dashed var(--okraj); border-radius: 6px; }
.mapa-adresa .napoveda { flex: 1 1 100%; margin: 0; }
.mapa-adresa-pole { display: inline-flex; flex-direction: row; align-items: center; gap: .4rem; }
.mapa-formular .mapa-adresa input[type=text] { width: 12rem; }
.mapa-bod.mapa-bod-hledani span { background: #7c3aed; color: #fff; box-shadow: 0 0 0 1.5px #fff, 0 2px 6px rgba(0, 0, 0, .55); }
@media (max-width: 700px) { .mapa-vysledky li { flex-direction: column; align-items: stretch; } }
.okruh-pole { flex: 1 1 16rem; }
.okruh-pole input { width: 100%; }
.okruh-vyber-hlavicka { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .8rem 0 .4rem; }
.okruh-vyber { max-height: 16rem; overflow: auto; border: 1px solid var(--okraj); border-radius: 6px; padding: .3rem .5rem; margin-bottom: .6rem; }
.okruh-misto { display: flex; flex-direction: row; align-items: flex-start; gap: .5rem; padding: .3rem 0; }
.okruh-misto input { margin-top: .25rem; }
.okruh-odkazy { display: flex; flex-wrap: wrap; gap: .5rem; margin: .6rem 0; }
.okruh-poradi { margin: .4rem 0; padding-left: 1.6rem; }
.okruh-poradi li { padding: .15rem 0; }
.okruh-waze { display: inline-block; margin-left: .3rem; padding: .05rem .5rem; border: 1px solid var(--okraj); border-radius: 999px; font-size: .85rem; text-decoration: none; }
.okruh-pole select { width: 100%; }
.okruh-formular .radek-formulare { align-items: flex-start; }
.okruh-pole input { margin-top: .35rem; }
.okruh-najit { margin-top: .4rem; }
.okruh-najit .mapa-vysledky { margin-top: .4rem; }
.okruh-konce { margin: .3rem 0; }
.okruh-formular label.zaskrtnuti { display: inline-flex; flex-direction: row; align-items: center; gap: .4rem; }
.mapa-bod.mapa-bod-okruh span { background: #2563eb; color: #fff; box-shadow: 0 0 0 1.5px #fff, 0 2px 6px rgba(0, 0, 0, .55); }
.mapa-bod.mapa-bod-start span { background: #16a34a; color: #fff; font-size: .62rem; box-shadow: 0 0 0 1.5px #fff, 0 2px 6px rgba(0, 0, 0, .55); }
@media print { #okruh-formular, .okruh-odkazy { display: none; } }
.mapa-bod { background: none; border: 0; }
.mapa-bod span { display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; box-sizing: border-box;
  border-radius: 50%; background: #d4141a; color: #fff; font: 700 12px/1 Arial, sans-serif; border: 3px solid #fff;
  box-shadow: 0 0 0 1.5px #7a0b0e, 0 2px 6px rgba(0, 0, 0, .55); }
.mapa-bod-bez span { background: #f59e0b; color: #3a1f0f; box-shadow: 0 0 0 1.5px #92400e, 0 2px 6px rgba(0, 0, 0, .55); }

/* přehledová mapa rezervace */
.mapa-velka { height: 560px; }
.mapa-rez-ovladani { align-items: center; }
.mapa-legenda { display: flex; flex-wrap: wrap; gap: .35rem .5rem; margin: .4rem 0; }
.mapa-legenda-polozka { display: inline-flex; align-items: center; gap: .4rem; background: var(--karta); color: inherit;
  border: 1px solid var(--okraj); border-radius: 999px; padding: .15rem .65rem; font: inherit; font-size: .88rem; cursor: pointer; }
.mapa-legenda-polozka.vypnuta { opacity: .45; text-decoration: line-through; }
.mapa-legenda-barva { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid #fff; box-shadow: 0 0 0 1px #555; display: inline-block; }
.mapa-bod-rez { background: none; border: 0; }
.mapa-bod-rez span { display: block; width: 18px; height: 18px; box-sizing: border-box; border-radius: 50%; border: 2.5px solid #fff;
  box-shadow: 0 0 0 1.5px #222, 0 2px 5px rgba(0, 0, 0, .5); }
.mapa-bod-rez span.bez { border-radius: 3px; }
@media print { .mapa-velka { height: 170mm; } .mapa-rez-ovladani { display: none; } }

/* upozornění v kartě kopie rezervace */
.upozorneni { background: var(--akcent-svetly); border: 1px solid var(--okraj); border-radius: var(--radius); padding: .6rem .9rem; margin: .6rem 0; }
.upozorneni ul { margin: .3rem 0; padding-left: 1.2rem; }

/* zaškrtávátko v řádkovém formuláři */
.radek-formulare label.volba { flex-direction: row; align-items: center; gap: .4rem; white-space: nowrap; }
.radek-formulare label.volba input { width: auto; }

/* návrh zařazení stojanů do tras: nezařazený stojan má čárkovaný okraj, ať se liší od zařazených míst */
.mapa-bod-navrh span { width: 20px; height: 20px; border: 3px dashed #222; box-shadow: 0 0 0 2px #fff, 0 2px 6px rgba(0, 0, 0, .5); }

/* výdejka na trasu: řádek s podpisy */
.vydejka-podpisy { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-top: 2.2rem; font-size: .95rem; }

/* poznámka pro nosiče u stojanu (tiskne se) a odkaz na hlášení z terénu (jen na obrazovce) */
.stojan-poznamka { text-align: center; font-size: .8rem; font-weight: 600; margin-bottom: .25rem; }
.stojan-hlaseni { text-align: center; font-size: .72rem; margin-bottom: .2rem; }
@media print {
  .stojan-bunka .stojan-poznamka { display: block; color: #000; font-size: 7.5pt; font-weight: 700; }
}

/* důležité zprávy na nástěnce a přehled přečtení */
.oznameni-dulezite { color: var(--chyba); text-transform: uppercase; letter-spacing: .03em; }
.neprecetli { color: var(--chyba); }

.ukoly-seznam { list-style: none; margin: 0 0 1rem; padding: 0; }
.ukoly-seznam li { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-bottom: 1px solid var(--ramecek, #ddd); }
.ukoly-seznam li.hotovo .ukol-text { text-decoration: line-through; color: #777; }
.ukoly-seznam .akce { display: flex; gap: .75rem; align-items: flex-start; }
.poznamka-radek { display: flex; justify-content: space-between; gap: 1rem; padding: .4rem 0; border-bottom: 1px solid var(--ramecek, #ddd); }

.prepnout-tlacitka { display: flex; flex-wrap: wrap; gap: .5rem; }
.prepnout-dlazdice { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.5rem; margin-bottom: 1rem; }
.prepnout-menu .menu-box form { margin: 0; }
.prepnout-menu .menu-box button { width: 100%; text-align: left; padding: .45rem .7rem; }
.nove-heslo { font-size: 1.4rem; letter-spacing: .08em; padding: .2rem .6rem; background: var(--akcent-svetly); border-radius: 6px; user-select: all; }

/* Obsazenost kapacit */
.mesicni-pruhy { display: flex; gap: .6rem; align-items: flex-end; overflow-x: auto; padding-bottom: .3rem; }
.mesicni-pruh { display: flex; flex-direction: column; align-items: center; min-width: 4.2rem; gap: .1rem; }
.pruh-sloupec { width: 2.4rem; height: 7rem; background: var(--akcent-svetly); border-radius: 6px; display: flex; align-items: flex-end; overflow: hidden; }
.pruh-vypln { width: 100%; background: var(--akcent); }
.pruh-vypln.vysoka { background: #c0392b; }
.mini-pruh { display: inline-block; width: 6rem; height: .6rem; background: var(--akcent-svetly); border-radius: 4px; vertical-align: middle; overflow: hidden; }
.mini-pruh > span { display: block; height: 100%; background: var(--akcent); }
.bunka-kap { font-size: .85rem; white-space: nowrap; }
.bunka-kap.zavreno { color: var(--tlumena, #888); }
.bunka-kap.plno { background: rgba(192, 57, 43, .18); }
.bunka-kap.preplneno { background: rgba(192, 57, 43, .38); font-weight: 600; }
.bunka-kap.volno { background: rgba(46, 125, 50, .14); }
.kapacity-tabulka th.mesic { font-size: .8rem; }

/* Tiskové reporty (report distribuce, podklady fakturace) */
.report { background: var(--karta); border: 1px solid var(--okraj); border-radius: 10px; padding: 1.4rem 1.6rem; max-width: 210mm; margin: 0 auto 2rem; }
.report-hlavicka { display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid var(--text); padding-bottom: .5rem; margin-bottom: 1rem; }
.report-logo { display: flex; align-items: center; gap: .5rem; font-size: 1.2rem; }
.report-nadpis { margin: .2rem 0 1rem; font-size: 1.5rem; }
.report h3 { margin: 1.2rem 0 .4rem; font-size: 1rem; text-transform: uppercase; letter-spacing: .03em; color: var(--tlumeny); }
.report p { margin: .2rem 0; }
.report-sloupce { display: flex; gap: 2rem; flex-wrap: wrap; align-items: flex-start; }
.report-sloupce > div { flex: 1 1 14rem; }
.report-nahled img { max-width: 7rem; max-height: 10rem; border: 1px solid var(--okraj); }
.report-souhrn { display: flex; gap: 1rem; flex-wrap: wrap; margin: 1rem 0; }
.report-souhrn > div { flex: 1 1 8rem; border: 1px solid var(--okraj); border-radius: 8px; padding: .6rem .8rem; display: flex; flex-direction: column; }
.report-souhrn strong { font-size: 1.6rem; }
.report-souhrn span { color: var(--tlumeny); font-size: .85rem; }
.report-tabulka { width: 100%; border-collapse: collapse; font-size: .9rem; }
.report-tabulka th, .report-tabulka td { border-bottom: 1px solid var(--okraj); padding: .3rem .5rem; text-align: left; vertical-align: top; }
.report-tabulka th.cislo, .report-tabulka td.cislo { text-align: right; }
.report-tabulka thead th { border-bottom: 2px solid var(--text); }
.report-uzka { width: auto; min-width: 16rem; }
.report-patka { margin-top: 1.5rem; font-size: .8rem; color: var(--tlumeny); }
.report-mista { font-size: .8rem; }
.fakt-radek-soucet td { font-weight: 700; border-top: 2px solid var(--text); }
@media print {
  .report { border: 0; padding: 0; max-width: none; margin: 0; background: #fff; }
  .report-tabulka { font-size: 8.5pt; }
  .report-mista { font-size: 7.5pt; }
  .report-mista thead { display: table-header-group; }
  .report-tabulka tr { break-inside: avoid; page-break-inside: avoid; }
  .report-nova-strana { break-before: page; page-break-before: always; }
  .report h3 { color: #000; }
  .report-souhrn > div, .report-tabulka th, .report-tabulka td { border-color: #888; }
}

/* globální vyhledávání */
.hledani-pole { margin: 0; }
.hledani-pole input { width: 12rem; padding: .3rem .7rem; border-radius: 999px; border: 1px solid transparent; background: var(--hlavicka-hover); color: var(--hlavicka-text); font: inherit; font-size: .88rem; }
.hledani-pole input::placeholder { color: var(--hlavicka-text); opacity: .65; }
.hledani-pole input:focus { width: 17rem; outline: 2px solid var(--akcent); background: var(--karta); color: var(--text); }
.vysledky-skupina { margin-bottom: 1.2rem; }
.vysledky-skupina ul { list-style: none; margin: 0; padding: 0; }
.vysledky-skupina li { padding: .4rem 0; border-bottom: 1px solid var(--okraj); display: flex; flex-direction: column; }

/* filtry po sloupcích v záhlaví tabulky */
.radek-filtru th { padding: .2rem .3rem; background: var(--karta); font-weight: 400; }
.filtr-sloupce { width: 100%; min-width: 4.5rem; box-sizing: border-box; font-size: .8rem; padding: .2rem .35rem; }
@media print { .radek-filtru { display: none; } }

/* fakturace */
.podmenu-menu { margin-left: auto; align-self: center; }
.dlazdice-varovani { border-color: var(--chyba); }
.dlazdice-varovani strong { color: var(--chyba); }
.fakt-dva-sloupce { display: grid; grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr)); gap: 1rem; align-items: start; }
.fakt-graf { display: grid; grid-template-columns: repeat(12, 1fr); gap: .4rem; height: 11rem; align-items: end; margin: .8rem 0 .3rem; }
.fakt-sloupec { display: flex; flex-direction: column; height: 100%; text-align: center; }
.fakt-sloupec.aktualni small { font-weight: 700; color: var(--text); }
.fakt-pruhy { flex: 1; display: flex; align-items: flex-end; justify-content: center; gap: 2px; border-bottom: 1px solid var(--okraj); }
.fakt-pruh { width: 42%; min-height: 1px; border-radius: 3px 3px 0 0; }
.fakt-pruh.plan, .znacka.plan { background: var(--hlavicka-bg); }
.fakt-pruh.vyst, .znacka.vyst { background: var(--ok); }
.fakt-legenda { font-size: .85rem; color: var(--tlumeny); }
.znacka { display: inline-block; width: .8rem; height: .8rem; border-radius: 2px; margin: 0 .2rem 0 .8rem; vertical-align: middle; }
.fakt-kontroly { margin: 0; padding-left: 1.2rem; }
.fakt-kontroly li { margin: .3rem 0; }
.fakt-kontroly a { margin-left: .5rem; }
.fakt-rychle { display: flex; gap: .5rem; flex-wrap: wrap; }
.fakt-akce { display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; margin-top: .6rem; }
.fakt-akce-prvni { display: flex; gap: .8rem; flex-wrap: wrap; align-items: center; }
.fakt-zapis-pole { display: flex; gap: .6rem; flex-wrap: wrap; align-items: flex-end; margin-top: .6rem; }
.fakt-zapis-pole label { display: flex; flex-direction: column; font-size: .85rem; gap: .15rem; }
.fakt-inline { display: inline-flex; gap: .3rem; margin: 0 .2rem .2rem 0; align-items: center; }
.fakt-akce-bunka { min-width: 13rem; }
.fakt-uprava summary { cursor: pointer; font-size: .85rem; color: var(--odkaz); }
.fakt-po-splatnosti td { background: var(--chyba-svetla); }
.fakt-storno td { color: var(--tlumeny); text-decoration: line-through; }
.fakt-storno td.fakt-akce-bunka { text-decoration: none; }
.stitek.fakt-k_fakturaci, .stitek.fakt-po_splatnosti { background: var(--chyba-svetla); color: var(--chyba); border-color: var(--chyba); }
.stitek.fakt-zaplaceno, .stitek.fakt-vyfakturovano { background: var(--ok-svetla); color: var(--ok); border-color: var(--ok); }
.stitek.fakt-kampan { background: var(--info-svetla, #e8f0fe); color: var(--info, #1a4fa0); border-color: var(--info, #1a4fa0); }
.stitek.chyba { background: var(--chyba-svetla); color: var(--chyba); border-color: var(--chyba); }
.tlacitko.maly { padding: .2rem .6rem; font-size: .85rem; }
.report-poznamka { font-size: .8rem; color: var(--tlumeny); }
.report-siroky { max-width: 297mm; }
@media print {
  .fakt-radek-soucet td { border-top: .4mm solid #000; }
  .report-poznamka { color: #000; }
}
.prepinac { display: flex; gap: .3rem; flex-wrap: wrap; align-items: center; margin: 0 0 1rem; }
.prepinac-popisek { color: var(--tlumeny); font-size: .9rem; margin-right: .2rem; }
.prepinac a { padding: .3rem .8rem; border: 1px solid var(--okraj); border-radius: 99px; text-decoration: none; color: var(--text); font-size: .9rem; }
.prepinac a:hover { background: var(--akcent-svetly); }
.prepinac a.aktivni { background: var(--hlavicka-bg); border-color: var(--hlavicka-bg); color: var(--hlavicka-text); font-weight: 600; }
@media print { .prepinac { display: none; } }

/* Kapacity – dashboard */
.dlazdice-nadpis { font-weight: 600; margin-bottom: .4rem; }
.dlazdice-nadpis small { font-weight: 400; color: var(--tlumeny); }
.dlazdice-polozka.dvojita:hover { border-color: var(--okraj); box-shadow: none; }
.dvojita-casti { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.dvojita-casti a { display: flex; flex-direction: column; text-decoration: none; color: var(--text); padding: .4rem .5rem; border-radius: 8px; }
.dvojita-casti a:hover { background: var(--akcent-svetly); }
.dvojita-casti strong { font-family: var(--font-nadpis); font-weight: 400; font-size: 2.1rem; line-height: 1.1; color: var(--nadpis-akcent); }
.dvojita-casti strong.neprecetli { color: var(--chyba); }
.dvojita-casti small { color: var(--tlumeny); }
.trendy-dlazdice { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.zebricek { margin: 0; padding-left: 1.2rem; }
.zebricek li { padding: .2rem 0; }
.zebricek li > span, .zebricek li > a { margin-right: .4rem; }
.zebricek li small { display: block; color: var(--tlumeny); }
.sestava-sity { border: 1px solid var(--okraj); border-radius: 8px; margin: .6rem 0; padding: .4rem .8rem; display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; }
.sestava-sity legend { color: var(--tlumeny); font-size: .85rem; padding: 0 .3rem; }
.dvojita-casti { grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); }
.obdobi-formular { align-items: flex-end; }
.tabulka th.skupina-hlavicka { text-align: center; border-left: 1px solid var(--okraj); }
.trendy-dlazdice { align-items: start; }
.uzivatel .menu-box { left: auto; right: 0; }
.uzivatel-jmeno { font-weight: 600; text-decoration: none; }
.uzivatel-jmeno::before { content: "👤 "; }
@media (max-width: 1000px) {
  .hlavni { grid-template-columns: 1fr; }
  .nav-stred { grid-column: 1; justify-content: flex-start; }
}
@media (max-width: 760px) {
  .nav-skupina { padding-right: 0; border-right: 0; }
  .horni-radek .hledani-pole { flex-basis: 100%; order: 3; }
  .horni-radek .hledani-pole input, .horni-radek .hledani-pole input:focus { width: 100%; }
}

/* Malé okno „Letáky ve stojanu“ v plánovači (po zavření zůstane plánovač beze změny) */
.stitek-tlacitko { white-space: nowrap; cursor: pointer; font: inherit; font-size: .8em; }
.stitek-tlacitko:hover { filter: brightness(.95); text-decoration: underline; }
.okno-letaku { width: min(1000px, 94vw); height: min(86vh, 800px); padding: 0; border: 1px solid var(--okraj); border-radius: 12px;
  background: var(--pozadi); color: var(--text); overflow: hidden; }
.okno-letaku[open] { display: flex; flex-direction: column; }
.okno-letaku::backdrop { background: rgba(0, 0, 0, .45); }
.okno-letaku-hlava { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .6rem 1rem; border-bottom: 1px solid var(--okraj); background: var(--karta); }
.okno-letaku iframe { flex: 1; width: 100%; border: 0; background: transparent; }
.okno-stojanu main { padding-bottom: 1.2rem; max-width: none; }
.tato-rezervace td { background: var(--akcent-svetly); }
/* kotvy (např. #letaky) se po skoku nesmí schovat pod pevnou horní lištu */
html { scroll-padding-top: calc(var(--vyska-hlavicky, 8rem) + .8rem); }

/* Hlášky zůstanou po odeslání vidět pod horní lištou, i když zůstane stránka odscrollovaná */
.zpravy { position: sticky; top: calc(var(--vyska-hlavicky, 0px) + .5rem); z-index: 15; margin-bottom: 1rem; }
.zpravy .zprava { position: relative; margin-bottom: .4rem; padding-right: 2.4rem; box-shadow: 0 3px 12px var(--stin); }
.zprava-zavrit { position: absolute; top: .45rem; right: .6rem; border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 1rem; line-height: 1; padding: .2rem .35rem; border-radius: 4px; }
.zprava-zavrit:hover { background: rgba(0, 0, 0, .08); }
/* Plovoucí tlačítko nahoru */
.nahoru { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 30; width: 2.8rem; height: 2.8rem; border-radius: 50%;
  border: 1px solid var(--akcent-tmavy); background: var(--akcent); color: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer;
  box-shadow: 0 4px 14px var(--stin); opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .2s, transform .2s; }
.nahoru.viditelne { opacity: .92; transform: none; pointer-events: auto; }
.nahoru:hover, .nahoru:focus-visible { opacity: 1; background: var(--akcent-tmavy); }
/* Tlačítko Zpět na předchozí stránku */
.zpet-historie { display: inline-block; margin: 0 0 .8rem; padding: .3rem .8rem; border: 1px solid var(--okraj); border-radius: 999px;
  background: var(--karta); color: var(--text); font-size: .9rem; text-decoration: none; }
.zpet-historie:hover { background: var(--akcent-svetly); }
@media print { .nahoru, .zpet-historie, .zprava-zavrit { display: none !important; } }

/* Podklady k fakturaci: balík = jeden řádek za měsíc s rozbalovacím rozpisem rezervací */
.fakt-balik > td { background: var(--povrch-2, rgba(0, 0, 0, .03)); vertical-align: top; }
.fakt-rozpis { margin-top: .35rem; }
.fakt-rozpis > summary { cursor: pointer; font-size: .85em; color: var(--odkaz, inherit); }
.fakt-rozpis-tabulka { margin-top: .4rem; width: 100%; font-size: .9em; }
.fakt-rozpis-tabulka td { background: transparent; }

/* poznámka k fakturaci a ruční úprava částky v Podkladech */
.fakt-poznamka { display: inline-block; margin-top: .15rem; padding: .05rem .4rem; border-radius: .3rem; background: rgba(214, 160, 40, .16); }
.fakt-uprava { color: var(--akcent, #8a5a00); font-weight: 600; }


/* záhlaví dlouhých tabulek se přichytí pod horní lištu (lepici-hlavicka.js posouvá buňky přes transform) */
.tabulka .lepici-bunka { position: relative; z-index: 2; }
.tabulka .lepici-bunka.lepici-aktivni { box-shadow: 0 1px 0 var(--okraj), 0 3px 6px -3px var(--stin); }
.tabulka thead td.lepici-bunka { background: var(--karta); }

/* Nástěnka: brzy končící rezervace */
.nastenka-konci { margin: 0 0 1rem; padding: .6rem .8rem; border: 1px solid var(--okraj); border-radius: 8px; background: var(--karta); }
.nastenka-konci-hlava { display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; margin-bottom: .4rem; }
.nastenka-konci-hlava a { padding: 0 .4rem; border-radius: 6px; text-decoration: none; }
.nastenka-konci-hlava a.aktivni { background: var(--akcent); color: #fff; }
.nastenka-konci ul { list-style: none; margin: 0; padding: 0; max-height: 16rem; overflow-y: auto; }
.nastenka-konci li { display: flex; flex-wrap: wrap; gap: .2rem .7rem; align-items: baseline; padding: .3rem 0; border-top: 1px dashed var(--okraj); }
.nastenka-konci li:first-child { border-top: 0; }
.nastenka-konci .konec-datum { font-weight: 600; margin-left: auto; white-space: nowrap; }
.nastenka-konci .konec-datum.brzy { color: var(--akcent); }

/* Přehled: nástěnka nad kalendářem, obojí přes celou šířku jako dlaždice Rozpis plnění */
.prehled-sloupec { display: flex; flex-direction: column; gap: 1.2rem; margin-bottom: 1.2rem; }
.prehled-sloupec > .karta { margin-bottom: 0; }
.nastenka-seznam { max-height: 36rem; }


/* ===== Telefon (nosiči): kompaktní horní lišta, navigace dole, karty místo širokých tabulek ===== */
button.filtry-prepinac { display: none; }
.jen-telefon { display: none; }
@media (max-width: 760px) {
  .jen-pocitac { display: none !important; }
  .jen-telefon { display: initial; }

  /* horní lišta: nepřilepená, nízká; navigace je dole */
  .horni { position: static; }
  .horni-radek { gap: .4rem .7rem; padding: .45rem .8rem .5rem; }
  .logo small { display: none; }
  .logo b { font-size: 1.15rem; }
  .logo img { height: 26px; }
  .uzivatel { margin-left: auto; gap: .6rem; font-size: .9rem; flex-wrap: wrap; justify-content: flex-end; }
  .uzivatel-jmeno { max-width: 8.5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .tema-prepinac { font-size: 0; padding: .25rem .55rem; }
  .tema-prepinac::before { content: "🌓"; font-size: 1rem; }
  .tema-prepinac.volny::before { content: none; }
  .tema-prepinac.volny { font-size: .82rem; }
  .horni-radek .hledani-pole { flex-basis: 100%; order: 3; }
  .menu-box { left: auto; right: 0; max-width: 85vw; }

  .hlavni, .hlavni.symetricka {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; padding: 0 0 env(safe-area-inset-bottom);
    background: var(--hlavicka-bg); border-top: 1px solid rgba(58, 31, 15, .3); box-shadow: 0 -2px 10px var(--stin);
    overflow-x: auto; gap: 0;
  }
  .nav-domu, .nav-stred, .nav-skupina, .nav-odkazy { display: contents; }
  .nav-popisek { display: none; }
  .nav-domu > a, .nav-odkazy > a {
    flex: 1 0 4.6rem; flex-direction: column; justify-content: center; gap: .1rem; padding: .4rem .25rem; min-height: 3.5rem;
    font-size: .7rem; line-height: 1.15; text-align: center; white-space: normal; border: 0; border-radius: 0; box-shadow: none;
  }
  .nav-domu > a .ikona, .nav-odkazy > a .ikona { font-size: 1.35rem; }
  .nav-domu > a.aktivni, .nav-odkazy > a.aktivni { box-shadow: inset 0 3px 0 var(--akcent); }
  main { padding: .8rem .8rem 6rem; }
  .nahoru { bottom: 4.8rem; right: .8rem; }
  .zpravy { top: .5rem; }

  h1 { font-size: 1.7rem; }
  .hlavicka-stranky { flex-direction: column; align-items: stretch; gap: .5rem; }
  .hlavicka-stranky .akce { display: flex; flex-wrap: wrap; gap: .4rem; }
  .hlavicka-stranky .akce .tlacitko { flex: 1 1 auto; text-align: center; }

  /* větší cíle pro prsty */
  .tlacitko, button.tlacitko { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  select, input[type=text], input[type=search], input[type=date], input[type=number], input[type=email], input[type=password] { min-height: 44px; font-size: 16px; }
  textarea { font-size: 16px; }
  .oznameni-paticka button.odkaz, .oznameni-paticka a { padding: .55rem .5rem; }
  .seznam-odkazu li { padding: .55rem 0; }
  .seznam-odkazu li a { display: inline-block; padding: .25rem 0; }
  .nastenka-zalozky a { padding: .6rem .9rem; }

  /* filtry sbalené pod tlačítkem */
  button.filtry-prepinac { display: inline-flex; justify-content: center; width: 100%; }
  .filtry.sbalitelne:not(.otevrene) > :not(.filtry-prepinac):not(input[type=search]):not(button[type=submit]) { display: none; }
  .filtry.sbalitelne:not(.otevrene) > button[type=submit] { display: none; }
  .filtry.sbalitelne > label { flex: 1 1 45%; }

  /* rozpis plnění: jeden stojan = jedna karta přes celou šířku */
  .rozpis-mrizka, .rozpis-mrizka > tbody, .rozpis-mrizka > thead, .rozpis-mrizka > thead > tr, .rozpis-mrizka > thead > tr > td,
  .rozpis-mrizka > tbody > tr, .rozpis-mrizka > tbody > tr > td { display: block; width: auto; }
  .rozpis-mrizka > tbody > tr > td.prazdna { display: none; }
  .rozpis-mrizka > tbody > tr > td[colspan] { border: 0; background: transparent; padding: 0; }
  .stojan-bunka { margin-bottom: .6rem; padding: .7rem .85rem .8rem; border-radius: 10px; }
  .stojan-bunka h3 { text-align: left; text-decoration: none; font-size: 1.12rem; }
  .stojan-adresa { text-align: left; font-size: .88rem; }
  .stojan-bunka .letaky-vypis { margin: .35rem 0 0; padding-left: 1.1rem; }
  .stojan-bunka .letaky-vypis li { padding: .2rem 0; font-size: 1rem; }
  .stojan-hlaseni { margin: .35rem 0; }
  .stojan-hlaseni a { display: inline-block; padding: .45rem .8rem; border: 1px solid var(--okraj); border-radius: 8px; text-decoration: none; font-size: .9rem; }
  .vypis-trasa { font-size: 1.6rem; }
  .vypis-hlavicka { gap: .4rem; }

  /* převzetí letáků: tabulka se může posouvat do strany */
  .tisk-obal { display: block; overflow-x: auto; }

  /* seznamy jako karty (třída „karty“ + popisky doplní mobil.js) */
  .tabulka-obal:has(> table.karty) { overflow: visible; background: none; border: 0; border-radius: 0; }      /* karty nemají vlastní rámeček; ostatní tabulky se posouvají v obalu */
  html, body { overflow-x: clip; max-width: 100%; }           /* pojistka: nic nesmí roztáhnout stránku do šířky */
  select { max-width: 100%; }
  .filtry label, .vyber-vypisu label { min-width: 0; max-width: 100%; }
  .vyber-vypisu select { width: 100%; text-overflow: ellipsis; }
  .tabulka.karty, .tabulka.karty tbody { display: block; }
  .tabulka.karty thead { display: none; }
  .tabulka.karty tr { display: block; margin-bottom: .6rem; padding: .55rem .8rem; border: 1px solid var(--okraj); border-radius: 10px; background: var(--karta); }
  .tabulka.karty td { display: flex; gap: .6rem; justify-content: space-between; align-items: baseline; padding: .15rem 0; border: 0; text-align: right; }
  .tabulka.karty td::before { content: attr(data-label); color: var(--tlumeny); font-size: .8rem; text-align: left; flex: 0 0 auto; }
  .tabulka.karty td.prazdna-bunka, .tabulka.karty td[data-label="Id"], .tabulka.karty td[data-label="Č."] { display: none; }
  .tabulka.karty td.nazev-bunka { display: block; order: -1; text-align: left; font-size: 1.05rem; font-weight: 600; padding-bottom: .25rem; }
  .tabulka.karty td.nazev-bunka::before { content: none; }
  .tabulka.karty td.vyber { display: block; text-align: left; }
  .tabulka.karty td.vyber::before { content: none; }
  .tabulka.karty tr { display: flex; flex-direction: column; }
}

/* větší plochy pro klepnutí na mobilu */
@media (max-width: 760px) {
  .uzivatel-jmeno, .uzivatel form button { display: inline-block; padding: .55rem .35rem; }
  .tabulka.karty td a, .nazev-bunka a { display: inline-block; padding: .3rem 0; }
  .zpet { display: inline-block; padding: .55rem .2rem; }
  button.odkaz { padding: .5rem 0; }
  input[type=checkbox] { width: 1.25rem; height: 1.25rem; }
}
/* výběr řazení karet na mobilu; na počítači se nezobrazuje */
.razeni-mobil { display: none; }
@media (max-width: 760px) { .razeni-mobil { display: flex; align-items: center; gap: .5rem; margin: .4rem 0 .7rem; font-size: .9rem; color: var(--tlumeny); } .razeni-mobil select { flex: 1; } }
@media print { button.filtry-prepinac { display: none !important; } }

/* obrat stojanů */
.trend-nahoru { color: var(--ok); font-weight: 600; }
.trend-dolu { color: var(--chyba); font-weight: 600; }

/* fotka u hlášení: na telefonu tlačítka „Vyfotit“ a „Vybrat“ */
.foto-pole { display: block; }
.foto-tlacitka { display: none; gap: .5rem; flex-wrap: wrap; margin: .3rem 0; }
.foto-pole.dotyk .foto-tlacitka { display: flex; }
.foto-pole.dotyk input[name=foto] { display: none; }
.foto-tlacitka .tlacitko { flex: 1 1 10rem; }
.foto-nahled-box { display: none; align-items: center; gap: .7rem; margin: .4rem 0; }
.foto-nahled-box.viditelny { display: flex; }
.foto-nahled-box img { width: 5.5rem; height: 5.5rem; object-fit: cover; border-radius: 8px; border: 1px solid var(--okraj); }
.foto-nahled-box small { color: var(--tlumeny); display: block; }

/* obrat stojanů: graf po měsících (vlastní barvy, aby byl čitelný ve světlém i tmavém vzhledu) */
:root { --graf-sloupec: #2f6f9f; --graf-plan: #a9c9e3; --graf-vyber: #e08a00; --graf-mrizka: #e6d3ae; --graf-text: #3a1f0f; }
:root[data-theme="dark"] { --graf-sloupec: #5aa7e0; --graf-plan: #3b5870; --graf-vyber: #ffb43b; --graf-mrizka: #4a2d16; --graf-text: #fdecc0; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --graf-sloupec: #5aa7e0; --graf-plan: #3b5870; --graf-vyber: #ffb43b; --graf-mrizka: #4a2d16; --graf-text: #fdecc0; }
}
.obrat-graf { display: grid; grid-template-columns: repeat(12, 1fr); gap: .45rem; margin: 1rem 0 .4rem; }
.og-sloupec { display: flex; flex-direction: column; min-width: 0; text-align: center; }
.og-pruhy {
  height: 13rem; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch;
  border-bottom: 2px solid var(--graf-text);
  background: repeating-linear-gradient(to top, transparent 0, transparent calc(25% - 1px), var(--graf-mrizka) calc(25% - 1px), var(--graf-mrizka) 25%);
}
.og-hodnota { font-size: .72rem; font-weight: 600; color: var(--graf-text); white-space: nowrap; line-height: 1.5; }
.og-pruh { background: var(--graf-sloupec); border-radius: 4px 4px 0 0; min-height: 2px; }
.og-pruh.prazdny { min-height: 0; }
.og-sloupec.budouci .og-pruh {
  background: repeating-linear-gradient(135deg, var(--graf-plan) 0, var(--graf-plan) 5px, transparent 5px, transparent 9px);
  outline: 1px solid var(--graf-sloupec); outline-offset: -1px;
}
.og-sloupec.vybrany .og-pruh { background: var(--graf-vyber); }
.og-sloupec.vybrany .og-hodnota, .og-sloupec.vybrany .og-mesic { font-weight: 800; color: var(--graf-vyber); }
.og-mesic { margin-top: .25rem; font-size: .8rem; color: var(--tlumeny); }
.og-legenda { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; font-size: .85rem; color: var(--tlumeny); margin: .6rem 0 .2rem; }
.og-vzorek { display: inline-block; width: .9rem; height: .9rem; border-radius: 3px; vertical-align: -.1rem; background: var(--graf-sloupec); }
.og-vzorek.budouci { background: repeating-linear-gradient(135deg, var(--graf-plan) 0, var(--graf-plan) 3px, transparent 3px, transparent 6px); outline: 1px solid var(--graf-sloupec); outline-offset: -1px; }
.og-vzorek.vybrany { background: var(--graf-vyber); }
@media (max-width: 760px) {
  .obrat-graf { gap: .25rem; }
  .og-pruhy { height: 10rem; }
  .og-hodnota:not(:empty) { font-size: .6rem; }
  .og-sloupec:not(.vybrany) .og-hodnota { visibility: hidden; }
  .og-mesic { font-size: .65rem; }
}

/* obrat stojanů: rozbalitelný rozpad po letácích */
.obrat-rozpad summary { cursor: pointer; padding: .2rem 0; }
.obrat-rozpad[open] summary { margin-bottom: .3rem; }
.obrat-letaky { list-style: none; margin: 0; padding: 0; min-width: 16rem; }
.obrat-letaky li { display: grid; grid-template-columns: 1fr auto; gap: 0 .8rem; padding: .35rem 0; border-top: 1px solid var(--okraj); }
.obrat-letaky .ol-castka { font-weight: 600; text-align: right; white-space: nowrap; }
.obrat-letaky small { grid-column: 1 / -1; }

.okruh-potvrzeno { margin: .4rem 0 0; color: var(--ok); font-weight: 600; }
.okruh-pozn { margin: .6rem 0 0; padding: .5rem .7rem; background: var(--akcent-svetly); color: var(--text); border-left: 3px solid var(--akcent); border-radius: 4px; font-size: .9rem; }

.zalozni-kody { columns: 2; list-style: none; padding: 0; font-size: 1.15rem; }
.zalozni-kody li { margin: .25rem 0; }
.qr-kod { max-width: 220px; margin: .6rem 0; background: #fff; padding: 4px; border-radius: 6px; }
.qr-kod svg { width: 100%; height: auto; display: block; }
.dvoufaz-odkaz { font-size: .85rem; opacity: .8; margin-left: .4rem; }

.obdobi-prepinac { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: .4rem 0 .6rem; }
.stitek-volba { padding: .25rem .75rem; border: 1px solid var(--okraj); border-radius: 999px; text-decoration: none; color: var(--text); background: var(--karta); }
.stitek-volba:hover { border-color: var(--akcent); }
.stitek-volba.aktivni { background: var(--akcent); border-color: var(--akcent); color: #fff; font-weight: 600; }

/* tlačítko „Seznam míst“ s rozbalovací nabídkou v záhlaví rezervace */
.menu-akce > summary.tlacitko { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: .3rem; }
.menu-akce > summary.tlacitko::-webkit-details-marker { display: none; }
.menu-akce > summary.tlacitko::after { content: " ▾"; font-size: .8em; }
.menu-akce .menu-box { left: 0; right: auto; min-width: 15rem; }
.menu-akce .menu-box a { white-space: nowrap; }
.menu-akce > summary.tlacitko { background: transparent; color: var(--text); border-color: var(--tlumeny); font-weight: 500; padding: .55rem 1rem; border-radius: var(--radius); }
.menu-akce > summary.tlacitko:hover, .menu-akce[open] > summary.tlacitko { background: var(--akcent-svetly); color: var(--text); border-color: var(--text); }

/* Nástěnka – záložka Historie */
.nastenka-historie-mesic { border: 1px solid var(--okraj); border-radius: 8px; padding: .6rem .8rem; margin: .6rem 0 1rem; }
.nastenka-historie-tabulky { border: 0; padding: 0; margin: 0; max-width: none; background: transparent; }
.nastenka-historie-tabulky h3 { margin: .8rem 0 .3rem; }
.nastenka-historie-nadpis { margin: 1rem 0 .4rem; font-size: 1rem; text-transform: uppercase; letter-spacing: .03em; color: var(--tlumeny); }
.mesicni-prepinac { align-items: flex-end; }

/* Doplnění údajů zákazníka z ARES */
.ares { margin-bottom: 1rem; }
.ares-hlava { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.ares-hlava .vypln { flex: 1; }
.ares-tabulka { margin: .6rem 0; }
.ares-nalezeno { list-style: none; padding: 0; margin: .4rem 0 0; }
.ares-nalezeno li { padding: .25rem 0; border-bottom: 1px solid var(--okraj); }
.ares-nalezeno .odkaz { text-align: left; }

/* Detail události v kalendáři (vrstva nad kalendářem) */
.kal-okno { width: min(46rem, calc(100vw - 2rem)); max-height: calc(100vh - 3rem); overflow: auto; padding: 1.2rem 1.4rem;
  background: var(--karta); color: var(--text); border: 1px solid var(--okraj); border-radius: var(--radius); box-shadow: 0 12px 40px rgba(0,0,0,.45); }
.kal-okno::backdrop { background: rgba(0, 0, 0, .55); }
.kal-detail-hlava { border-left: 6px solid var(--akcent); padding-left: .7rem; margin-bottom: .6rem; }
.kal-detail-hlava h2 { margin: 0 0 .15rem; }
.kal-detail h3 { margin: 1rem 0 .3rem; font-size: 1rem; }
.kal-pokyny { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; }
.kal-prilohy { list-style: none; padding: 0; margin: 0 0 .6rem; }
.kal-prilohy li { padding: .3rem 0; border-bottom: 1px solid var(--okraj); overflow-wrap: anywhere; }
.kal-inline { display: inline; margin-left: .5rem; }
.kal-nahrat { margin-top: .6rem; }
.kal-pokyny-pole { flex: 1 1 100%; }
.kal-pokyny-pole textarea { width: 100%; }
@media (max-width: 700px) { .kal-okno { width: calc(100vw - 1rem); padding: .9rem; } }

/* Dodací list u pohybu ve skladu */
.dodaci-list-pole { flex: 1 1 100%; border: 1px dashed var(--okraj); border-radius: var(--radius); padding: .6rem .8rem; }
.dl-nadpis { font-weight: 600; display: block; margin-bottom: .4rem; }
.dl-tlacitka { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.dl-seznam { list-style: none; padding: 0; margin: .4rem 0 0; font-size: .9rem; }

/* Dnešní a zítřejší události nahoře na Přehledu */
.kal-dnes { display: grid; grid-template-columns: 2fr 1fr; gap: 1.2rem; border-left: 6px solid var(--akcent); }
.kal-dnes h2, .kal-dnes h3 { margin: 0 0 .4rem; }
.kal-dnes-seznam { list-style: none; padding: 0; margin: 0; }
.kal-dnes-seznam li { display: flex; gap: .5rem; align-items: baseline; padding: .2rem 0; }
.kal-dnes-seznam li.muj { font-weight: 600; }
.kal-dnes-seznam i { width: .7rem; height: .7rem; border-radius: 50%; flex: none; align-self: center; }
.kal-dnes-cas { min-width: 5.4rem; font-variant-numeric: tabular-nums; color: var(--text-tlumeny, inherit); opacity: .85; flex: none; }
.kal-dnes .zitra { opacity: .9; }
@media (max-width: 800px) { .kal-dnes { grid-template-columns: 1fr; } }
.dodaci-list-pole label.dl-volba { display: flex; flex-direction: row; align-items: center; gap: .5rem; margin-top: .35rem; font-size: .92rem; font-weight: normal; }
.dodaci-list-pole label.dl-volba input { width: auto; margin: 0; flex: none; }


/* ===== Mobilní doladění (iPhone): reporty, klepací plochy, čitelnost ===== */
@media (max-width: 760px) {
  /* reporty (A4 náhled): široké tabulky se posouvají do strany místo ořezu */
  .report { overflow-x: auto; padding: 1rem .9rem; -webkit-overflow-scrolling: touch; }
  .report-tabulka { min-width: 30rem; }
  .report .report-souhrn { min-width: 0; }
  /* spodní navigace: čitelnější popisky */
  .nav-domu > a, .nav-odkazy > a { font-size: .75rem; }
  /* odkazy a ovládací prvky v tabulkách a seznamech: dost velká plocha pro prst */
  .tabulka td a, .report-tabulka td a { display: inline-block; padding: .35rem 0; }
  .dvoufaz-odkaz { display: inline-block; padding: .55rem .35rem; }
  .logo { display: inline-flex; align-items: center; min-height: 36px; }
  input[type=checkbox], input[type=radio] { width: 1.5rem; height: 1.5rem; }
  .nastenka-konci-hlava a { display: inline-block; padding: .55rem .6rem; }
  .stitek-volba { padding: .5rem .9rem; }
  .odkaz.proklik { display: inline-block; padding: .5rem 0; }
  /* karty seznamů: příznaky s hodnotou „ne“ nezabírají řádky */
  .tabulka.karty td.ne-bunka { display: none; }
  /* hromadné akce: dokud nic není označeno, tlačítka se neukazují */
  .hromadne-lista button:disabled { display: none; }
  /* záložky (Úkoly, Nástěnka): při nedostatku místa se zalomí, nic se neořízne */
  .nastenka-zalozky { flex-wrap: wrap; }
  .nastenka-zalozky a { flex: 1 1 auto; text-align: center; padding: .55rem .6rem; }
  .kal-plus { display: none; }          /* v buňce kalendáře by na telefonu překrývalo čísla dnů; událost se přidá tlačítkem „Přidat událost“ pod kalendářem */
  .obrat-letaky { min-width: 0; }
  .tabulka.karty td .obrat-rozpad { min-width: 0; max-width: 100%; text-align: left; }
}

/* skupina voleb (radio) v jednoduchých formulářích: stejný vzhled jako ostatní rámečky */
fieldset.pole { border: 1px solid var(--okraj); border-radius: var(--radius); padding: .6rem .9rem .5rem; background: var(--karta); min-width: 0; }
fieldset.pole legend { padding: 0 .4rem; font-weight: 600; }
fieldset.pole .volba { display: flex; align-items: center; gap: .6rem; padding: .4rem 0; }
@media (max-width: 760px) {
  /* řádky formuláře (plánovač, filtry): pole na celou šířku, data a čísla se smí dělit o řádek */
  .radek-formulare > label, .radek-formulare > .pole { flex: 1 1 100%; min-width: 0; }
  .radek-formulare > label:has(input[type=date], input[type=number]) { flex: 1 1 8rem; }
  .radek-formulare > label input:not([type=checkbox]):not([type=radio]), .radek-formulare > label select { width: 100%; box-sizing: border-box; }
}

/* pole času: stejný vzhled jako ostatní vstupy (dřív zůstávalo se základním rámečkem prohlížeče) */
input[type=time] { width: 100%; box-sizing: border-box; padding: .5rem .6rem; font: inherit; color: var(--text); background: var(--karta); border: 1px solid var(--okraj); border-radius: 6px; }
input[type=time]:focus { outline: 2px solid #f5a623; outline-offset: 0; border-color: #f5a623; }
@media (max-width: 760px) { input[type=time] { min-height: 44px; font-size: 16px; } }
@media (max-width: 760px) {
  .kal-form { align-items: flex-end; }
  .kal-form > label { flex: 1 1 100%; min-width: 0; }
  .kal-form > label:has(input[type=date], input[type=time]) { flex: 1 1 8rem; }
}
@media (max-width: 760px) {
  /* odkazy v seznamech (mapy, kapacity, agenda, „Dnes“): větší plocha pro prst */
  main li > a, .kal-dnes a, .kalendar-agenda a { display: inline-block; padding: .3rem .15rem; }
}

/* Přehled: „Obnovit“ je v jedné rovině s nadpisem, vpravo a menší (i na telefonu) */
.hlavicka-stranky:has(> .obnoveni-prehledu) { flex-direction: row; align-items: center; justify-content: space-between; gap: .6rem; }
.obnoveni-prehledu { display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: .5rem; margin-left: auto; }
.obnoveni-prehledu small { font-size: .75rem; white-space: nowrap; }
.hlavicka-stranky .obnoveni-prehledu .tlacitko { flex: none; min-height: 32px; padding: .25rem .65rem; font-size: .85rem; }

/* Hlášení: výběr stojanu podle polohy */
#stojan-poloha { gap: .5rem; }
.chyba-text { color: var(--chyba); }
.poloha-seznam { list-style: none; margin: .2rem 0 0; padding: 0; display: grid; gap: .45rem; }
.poloha-radek { display: flex; align-items: center; gap: .7rem; padding: .65rem .8rem; border: 1px solid var(--okraj); border-radius: 10px; background: var(--karta); cursor: pointer; min-height: 48px; }
.poloha-radek:has(input:checked) { border-color: var(--akcent); background: var(--akcent-svetly); box-shadow: inset 0 0 0 1px var(--akcent); }
.poloha-radek input { flex: none; width: 1.4rem; height: 1.4rem; }
.poloha-text { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.poloha-text small { color: var(--tlumeny); }
.poloha-vzdalenost { flex: none; font-weight: 700; white-space: nowrap; }

/* Rozbalovací nabídka tlačítka v záhlaví stránky („Seznam míst“): na telefonu se rozbalí pod tlačítkem na celou šířku, neutíká mimo displej */
@media (max-width: 760px) {
  .hlavicka-stranky .akce .menu-akce[open] { flex: 1 1 100%; }
  .menu-akce[open] > summary.tlacitko { width: 100%; }
  .menu-akce .menu-box { position: static; width: 100%; min-width: 0; max-width: none; margin-top: .4rem; box-sizing: border-box; }
  .menu-akce .menu-box a { white-space: normal; padding: .75rem .8rem; }
}
