/* Vizuální styl aplikace Sklad & inventář Únětického pivovaru.
   Barvy, typografie a komponenty podle návrhu „Sklad a lokace“.
   Zelená #4A7729 odpovídá Pantone 575 C z firemní identity pivovaru. */
:root {
  /* plochy a pozadí */
  --pozadi: #EBE5D3;
  --pozadi-tmavsi: #E9E3D1;
  --plocha: #FFFDF4;
  --plocha-tlumena: #FAF7EE;
  --plocha-zahlavi: #F3EFE1;
  --plocha-vybrana: #F6F2E6;

  /* linky */
  --linka: #DED7C3;
  --linka-svetla: #E9E3D1;
  --linka-vyrazna: #CBC4AF;

  /* text */
  --text: #211E12;
  --text-tlumeny: #63604F;
  --text-slaby: #948D7C;
  --text-velmi-slaby: #A8A192;

  /* firemní zelená — Pantone 575 C */
  --akcent: #4A7729;
  --akcent-tmavy: #3A5D20;
  --akcent-nejtmavsi: #2F4C1B;
  --akcent-svetly: #A9C48F;
  --akcent-pozadi: #F0F4EA;

  /* tmavý boční panel */
  --tmava: #24301A;
  --tmava-text: #FFFFFF;
  --tmava-tlumena: #D8DED4;

  /* stavové barvy */
  --uspech: #4A7729;
  --uspech-pozadi: #F0F4EA;
  --uspech-linka: #D3E0C4;
  --chyba: #A72B2A;
  --chyba-pozadi: #F9E6E1;
  --chyba-linka: #E5BDB4;
  --varovani: #8A6A16;
  --varovani-pozadi: #FBF0D2;
  --varovani-linka: #DCC489;
  --info: #00778B;
  --info-pozadi: #E0EFF1;
  --info-linka: #B6CDD2;
  --doplnkova: #444D7A;
  --doplnkova-pozadi: #E8EAF2;

  --r: 8px;
  --r-mala: 6px;
  --r-drobna: 5px;
  --mono: 'IBM Plex Mono', 'SF Mono', Menlo, Consolas, monospace;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--pozadi);
  font-family: 'Open Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  font-size: 14px;
  line-height: 1.5;
}

a { color: var(--akcent); text-decoration: none; }
a:hover { color: var(--akcent-nejtmavsi); text-decoration: underline; }
h1, h2, h3 { margin: 0; letter-spacing: -0.015em; }
::placeholder { color: var(--text-slaby); }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb {
  background: var(--linka-vyrazna); border-radius: 5px;
  border: 3px solid transparent; background-clip: content-box;
}

/* ---------- rozvržení ---------- */
.rozvrzeni { display: flex; min-height: 100vh; align-items: stretch; }

.bocni-panel {
  width: 236px; flex: 0 0 236px; background: var(--tmava); color: var(--tmava-tlumena);
  display: flex; flex-direction: column; padding: 22px 0;
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.znacka {
  padding: 0 22px 22px; display: flex; flex-direction: column; gap: 11px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}
.znacka .logo {
  background: #fff; border-radius: var(--r-drobna); padding: 11px 13px; display: flex;
}
.znacka .logo img { width: 100%; height: auto; display: block; }
.znacka .kicker {
  font-family: 'Open Sans', sans-serif; font-size: 11px; letter-spacing: 0.06em;
  text-transform: uppercase; color: rgba(255, 255, 255, 0.5);
}

.sekce-menu {
  font-size: 10px; letter-spacing: 0.11em; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.35); padding: 20px 22px 8px;
}
.sekce-menu:first-of-type { padding-top: 16px; }
.polozka-menu {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  width: calc(100% - 24px); margin: 0 12px 2px; border: 0; cursor: pointer;
  padding: 9px 10px; border-radius: var(--r-drobna); text-align: left;
  font-family: inherit; font-size: 13.5px; font-weight: 500;
  background: transparent; color: var(--tmava-tlumena); text-decoration: none;
}
.polozka-menu:hover {
  background: rgba(255, 255, 255, 0.09); color: #fff; text-decoration: none;
}
.polozka-menu.aktivni { background: rgba(255, 255, 255, 0.13); color: #fff; }
/* Počet vpravo v menu — číslo, nikoli barevný odznak. */
.polozka-menu .odznak {
  margin-left: auto; font-family: var(--mono); font-size: 11px; font-weight: 400;
  background: transparent; color: inherit; opacity: 0.55; padding: 0;
}
.polozka-menu .odznak.upozorneni {
  background: var(--akcent); color: #fff; opacity: 1;
  border-radius: 3px; padding: 1px 6px; font-weight: 500;
}
.polozka-menu.neaktivni { color: rgba(255, 255, 255, 0.3); cursor: default; }

.uzivatel-panel {
  margin-top: auto; padding: 14px 22px 0; border-top: 1px solid rgba(255, 255, 255, 0.09);
  display: flex; align-items: center; gap: 10px;
}
.avatar {
  width: 30px; height: 30px; border-radius: 50%; background: var(--akcent);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-weight: 600; font-size: 12px; flex: 0 0 30px;
}
.uzivatel-panel .jmeno { font-size: 12.5px; color: #fff; }
.uzivatel-panel .role { font-size: 11px; color: rgba(255, 255, 255, 0.5); }

.hlavni { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.zahlavi-stranky {
  min-height: 64px; display: flex; align-items: center; justify-content: space-between;
  gap: 20px; padding: 12px 28px; border-bottom: 1px solid var(--linka);
  background: var(--plocha); flex-wrap: wrap;
}
.zahlavi-stranky .nadpis-rada {
  display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; min-width: 0;
}
.zahlavi-stranky h1 { font-size: 19px; font-weight: 600; }
.zahlavi-stranky .podnadpis { font-size: 13px; color: var(--text-tlumeny); }
.zahlavi-akce { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.hledani-zahlavi {
  display: flex; align-items: center; gap: 8px; background: var(--plocha-zahlavi);
  border: 1px solid var(--linka); border-radius: var(--r-mala); padding: 6px 11px;
  width: 260px; max-width: 100%;
}
.hledani-zahlavi input {
  border: 0; background: transparent; outline: none; font-family: inherit;
  font-size: 13px; width: 100%; color: var(--text);
}
.hledani-zahlavi .ikona { color: var(--text-slaby); font-size: 13px; }
.obsah { padding: 26px 28px 40px; display: flex; flex-direction: column; gap: 22px; }

/* ---------- prvky ---------- */
.karta {
  background: var(--plocha); border: 1px solid var(--linka); border-radius: var(--r);
  overflow: hidden;
}
.karta-hlavicka {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 18px; border-bottom: 1px solid var(--linka); flex-wrap: wrap;
}
.karta-hlavicka h2 { font-size: 14.5px; font-weight: 600; }
.karta-telo { padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.karta-pata {
  padding: 12px 18px; border-top: 1px solid var(--linka);
  background: var(--plocha-zahlavi); font-size: 12.5px; color: var(--text-tlumeny);
  display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap;
}

.mrizka { display: grid; gap: 18px; align-items: start; }
.mrizka.dva { grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); }
.mrizka.dlazdice { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; }
.mrizka.formular { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 14px; }

.dlazdice-statistika {
  background: var(--plocha); border: 1px solid var(--linka); border-radius: var(--r);
  padding: 16px 18px; display: flex; flex-direction: column; gap: 6px;
}
.dlazdice-statistika .popisek {
  font-size: 11.5px; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--text-tlumeny);
}
.dlazdice-statistika .hodnota {
  font-family: var(--mono); font-size: 28px; font-weight: 500; letter-spacing: -0.02em;
}
/* Zvýrazněná dlaždice zůstává světlá jako v návrhu, odliší ji zelený rám a hodnota. */
.dlazdice-statistika.zvyraznena {
  border-color: var(--akcent-svetly); background: var(--akcent-pozadi);
}
.dlazdice-statistika.zvyraznena .popisek { color: var(--akcent-tmavy); }
.dlazdice-statistika.zvyraznena .hodnota { color: var(--akcent-tmavy); }

/* ---------- tabulky ---------- */
.tabulka-obal { overflow-x: auto; }
table.tabulka { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 560px; }
table.tabulka thead tr { background: var(--plocha-zahlavi); text-align: left; }
table.tabulka th {
  padding: 11px 12px; font-weight: 600; font-size: 10.5px; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--text-tlumeny); white-space: nowrap;
  border-bottom: 1px solid var(--linka);
}
table.tabulka th a { color: inherit; }
table.tabulka th:first-child, table.tabulka td:first-child { padding-left: 18px; }
table.tabulka th:last-child, table.tabulka td:last-child { padding-right: 18px; }
table.tabulka td {
  padding: 11px 12px; border-top: 1px solid var(--linka-svetla); vertical-align: top;
}
table.tabulka tbody tr:hover { background: var(--plocha-vybrana); }
table.tabulka .cislo, .mono { font-family: var(--mono); font-size: 12px; }
table.tabulka .vpravo, th.vpravo, td.vpravo { text-align: right; }
table.tabulka .tlumene { color: var(--text-tlumeny); font-size: 12px; }
tr.klikaci { cursor: pointer; }
.prazdno { padding: 28px 18px; text-align: center; color: var(--text-tlumeny); font-size: 13px; }

/* ---------- tlačítka ---------- */
.tl {
  border: 1px solid var(--linka); background: #fff; color: var(--text-tlumeny);
  border-radius: var(--r-mala); padding: 9px 15px; font-size: 13px; font-weight: 600;
  cursor: pointer; text-decoration: none; display: inline-block; font-family: inherit;
  line-height: 1.3; white-space: nowrap;
}
.tl:hover { color: var(--text); text-decoration: none; border-color: var(--linka-vyrazna); }
.tl.hlavni { background: var(--akcent); border-color: var(--akcent); color: #fff; }
.tl.hlavni:hover { background: var(--akcent-tmavy); border-color: var(--akcent-tmavy); color: #fff; }
.tl.nebezpecna { border-color: var(--chyba-linka); color: var(--chyba); }
.tl.nebezpecna:hover { background: var(--chyba); border-color: var(--chyba); color: #fff; }
.tl.male { padding: 6px 11px; font-size: 12px; }
.tl.velke { padding: 12px 22px; font-size: 14px; }
.tl:disabled, .tl.zakazana {
  background: var(--plocha-zahlavi); border-color: var(--linka); color: var(--text-slaby);
  cursor: not-allowed;
}
/* Textové tlačítko v barvě značky. */
.tl-odkaz {
  border: 0; background: transparent; color: var(--akcent); font-size: 13px;
  font-weight: 600; cursor: pointer; padding: 0; font-family: inherit;
}
.tl-odkaz:hover { color: var(--akcent-nejtmavsi); }
.tl-zpet { align-self: flex-start; }

/* ---------- formuláře ---------- */
.pole {
  width: 100%; border: 1px solid var(--linka); border-radius: var(--r-mala);
  padding: 9px 11px; font-size: 13px; background: #fff; color: var(--text);
  font-family: inherit;
}
.pole:focus {
  outline: 2px solid var(--akcent); outline-offset: -1px; border-color: var(--akcent);
}
textarea.pole { resize: vertical; }
.skupina-pole { display: flex; flex-direction: column; gap: 5px; }
.skupina-pole > label {
  font-size: 11.5px; letter-spacing: 0.03em; text-transform: uppercase;
  color: var(--text-tlumeny); font-weight: 600;
}
.napoveda { font-size: 12px; color: var(--text-tlumeny); line-height: 1.5; }
.chyba-pole { font-size: 12px; color: var(--chyba); font-weight: 500; }
.povinne { color: var(--akcent); }
/* Vadné pole po neúspěšné kontrole — obsah zůstává vyplněný. */
.skupina-pole.ma-chybu > label { color: var(--chyba); }
.skupina-pole.ma-chybu .pole {
  border-color: var(--chyba); background: var(--chyba-pozadi);
  box-shadow: inset 2px 0 0 var(--chyba);
}
.skupina-pole.ma-chybu .pole:focus { outline-color: var(--chyba); }
.souhrn-chyb { flex-direction: column; align-items: stretch; }
.souhrn-chyb ul { margin: 6px 0 0; padding-left: 20px; }
.souhrn-chyb li { margin-bottom: 2px; }
.souhrn-chyb a { color: var(--chyba); font-weight: 500; }
.zaskrtavaci { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; }
.zaskrtavaci input { margin-top: 3px; accent-color: var(--akcent); }
.panel-filtru {
  display: flex; align-items: center; gap: 10px; padding: 14px 18px;
  border-bottom: 1px solid var(--linka); flex-wrap: wrap; background: var(--plocha-tlumena);
}
.panel-filtru .pole { width: auto; min-width: 140px; }
.panel-filtru .roztahnout { flex: 1; min-width: 220px; }
fieldset {
  border: 1px solid var(--linka); border-radius: var(--r); padding: 16px 18px; margin: 0;
  background: var(--plocha-tlumena);
}
legend {
  font-size: 11.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--text-tlumeny); padding: 0 6px;
}

/* ---------- odznaky a stavy ---------- */
.odznak {
  font-size: 11.5px; font-weight: 600; border-radius: var(--r-drobna); padding: 3px 9px;
  white-space: nowrap; display: inline-block;
  background: var(--plocha-zahlavi); color: var(--text-tlumeny);
}
.odznak.uspech { background: var(--uspech-pozadi); color: var(--uspech); }
.odznak.chyba { background: var(--chyba-pozadi); color: var(--chyba); }
.odznak.varovani { background: var(--varovani-pozadi); color: var(--varovani); }
.odznak.info { background: var(--info-pozadi); color: var(--info); }
.odznak.akcent { background: var(--akcent-pozadi); color: var(--akcent); }
.odznak.doplnkova { background: var(--doplnkova-pozadi); color: var(--doplnkova); }
.odznak.tmavy { background: var(--tmava); color: #fff; }

.zprava {
  border-radius: var(--r-mala); padding: 12px 16px; font-size: 13px;
  border: 1px solid transparent; display: flex; gap: 10px; align-items: flex-start;
}
.zprava.success { background: var(--uspech-pozadi); border-color: var(--uspech-linka); color: var(--akcent-tmavy); }
.zprava.error { background: var(--chyba-pozadi); border-color: var(--chyba-linka); color: var(--chyba); }
.zprava.warning { background: var(--varovani-pozadi); border-color: var(--varovani-linka); color: var(--varovani); }
.zprava.info, .zprava.debug { background: var(--info-pozadi); border-color: var(--info-linka); color: var(--info); }

/* ---------- průběh procesu ---------- */
.kroky { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; }
.krok { display: flex; flex-direction: column; gap: 7px; }
.krok .pruh { height: 4px; border-radius: 2px; background: var(--linka); }
.krok.hotovo .pruh { background: var(--akcent); }
.krok.aktualni .pruh { background: var(--varovani-linka); }
.krok .popisek { font-size: 12.5px; color: var(--text-tlumeny); }
.krok.aktualni .popisek { color: var(--text); font-weight: 600; }

/* ---------- záložky ---------- */
.zalozky {
  display: flex; gap: 6px; flex-wrap: wrap; padding: 14px 18px 0;
  border-bottom: 1px solid var(--linka); background: var(--plocha-tlumena);
}
.zalozka {
  border: 1px solid var(--linka); border-bottom: 0; border-radius: var(--r-mala) var(--r-mala) 0 0;
  padding: 8px 14px; font-size: 12.5px; font-weight: 600; background: var(--plocha-zahlavi);
  color: var(--text-tlumeny); text-decoration: none; margin-bottom: -1px;
}
.zalozka:hover { color: var(--text); text-decoration: none; background: #fff; }
.zalozka.aktivni {
  background: var(--plocha); color: var(--akcent);
  border-bottom: 1px solid var(--plocha);
}

/* ---------- finanční sestava ---------- */
table.sestava { width: 100%; border-collapse: collapse; font-size: 13px; }
table.sestava th {
  text-align: left; padding: 9px 12px; font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-tlumeny);
  border-bottom: 1px solid var(--linka);
}
table.sestava td { padding: 8px 12px; border-top: 1px solid var(--linka-svetla); }
table.sestava td.castka, table.sestava th.castka { text-align: right; font-family: var(--mono); }
table.sestava tr.soucet td {
  border-top: 1px solid var(--text); font-weight: 600; background: var(--plocha-zahlavi);
}
table.sestava tr.mezisoucet td { background: var(--plocha-zahlavi); font-weight: 600; }
.pohled-vysledku {
  border: 1px solid var(--linka); border-radius: var(--r); padding: 15px 17px;
  background: var(--plocha); display: flex; flex-direction: column; gap: 5px;
}
.pohled-vysledku .nazev { font-size: 13px; font-weight: 600; }
.pohled-vysledku .hodnota { font-family: var(--mono); font-size: 22px; letter-spacing: -0.02em; }
.pohled-vysledku .obsahuje { font-size: 12px; color: var(--text-tlumeny); }
.pohled-vysledku.zisk { border-color: var(--uspech-linka); background: var(--uspech-pozadi); }
.pohled-vysledku.zisk .hodnota { color: var(--akcent-tmavy); }
.pohled-vysledku.ztrata { border-color: var(--chyba-linka); background: var(--chyba-pozadi); }
.pohled-vysledku.ztrata .hodnota { color: var(--chyba); }

/* ---------- kalendář akcí ---------- */
.mesic {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px;
  background: var(--linka); border: 1px solid var(--linka); border-radius: var(--r);
  overflow: hidden;
}
.mesic .den {
  background: var(--plocha); min-height: 92px; padding: 7px 8px;
  display: flex; flex-direction: column; gap: 4px;
}
.mesic .den.dnes { background: var(--varovani-pozadi); }
.mesic .den .cislo-dne {
  font-family: var(--mono); font-size: 11px; color: var(--text-slaby);
}
.mesic .den .akce-blok {
  font-size: 11px; font-weight: 600; background: var(--akcent); color: #fff;
  border-radius: 4px; padding: 3px 6px; text-decoration: none; display: block;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mesic .den .akce-blok:hover { background: var(--akcent-tmavy); color: #fff; text-decoration: none; }
.mesic .den .akce-blok.riziko { background: var(--chyba); }
.mesic .den .akce-blok.plan { background: var(--text-tlumeny); }
.hlavicka-mesice {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px;
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.08em;
  color: var(--text-slaby); text-align: center; padding-bottom: 6px;
}

/* ---------- kalendář inventáře ---------- */
.kalendar-radek {
  display: grid; grid-template-columns: 200px 1fr; gap: 12px; align-items: center;
  padding: 8px 0; border-top: 1px solid var(--linka-svetla);
}
.kalendar-osa {
  position: relative; height: 30px; background: var(--plocha-zahlavi); border-radius: 4px;
}
.kalendar-blok {
  position: absolute; top: 4px; height: 22px; border-radius: 4px; font-size: 11px;
  color: #fff; padding: 2px 6px; overflow: hidden; white-space: nowrap;
  background: var(--akcent); border: 1px solid var(--akcent-tmavy);
}
.kalendar-blok.rezervace { background: var(--akcent); }
.kalendar-blok.vydano { background: var(--tmava); border-color: #12190D; }
.kalendar-blok.docasna {
  background: repeating-linear-gradient(45deg, #DCC489, #DCC489 5px, #EDDCAE 5px, #EDDCAE 10px);
  border-color: #C2A65E; color: var(--varovani);
}
.kalendar-blok.mimo-provoz {
  background: repeating-linear-gradient(45deg, #A8A192, #A8A192 5px, #C0BAAC 5px, #C0BAAC 10px);
  border-color: #8A8474;
}
.kalendar-rezerva { opacity: 0.55; border-style: dashed; }
.kalendar-hlavicka-dnu {
  display: grid; gap: 1px; font-size: 10.5px; color: var(--text-slaby);
  font-family: var(--mono); text-align: center;
}
.den-kapacita {
  border: 1px solid var(--linka); border-radius: var(--r-mala); padding: 7px 9px;
  background: var(--plocha); font-size: 12px; display: flex; flex-direction: column; gap: 2px;
}
.den-kapacita.plne { border-color: var(--chyba-linka); background: var(--chyba-pozadi); }
.den-kapacita.tesne { border-color: var(--varovani-linka); background: var(--varovani-pozadi); }
.den-kapacita .datum { font-family: var(--mono); color: var(--text-slaby); }
.den-kapacita .volne { font-weight: 700; font-size: 15px; }

/* ---------- ostatní ---------- */
.definice {
  display: grid; grid-template-columns: minmax(150px, auto) 1fr; gap: 8px 16px; font-size: 13px;
}
.definice dt {
  color: var(--text-tlumeny); font-size: 11.5px; letter-spacing: 0.03em;
  text-transform: uppercase; font-weight: 600;
}
.definice dd { margin: 0; }
.casova-osa { display: flex; flex-direction: column; gap: 9px; }
.casova-osa .zaznam { display: flex; gap: 12px; font-size: 12.5px; }
.casova-osa .kdy {
  font-family: var(--mono); font-size: 11.5px; color: var(--text-slaby); white-space: nowrap;
}
.strankovani {
  display: flex; gap: 8px; align-items: center; justify-content: center;
  padding: 14px; font-size: 12.5px; color: var(--text-tlumeny);
}
.upoutavka {
  border: 1px dashed var(--linka-vyrazna); border-radius: var(--r-mala); padding: 22px;
  text-align: center; color: var(--text-tlumeny); font-size: 13px;
  background: var(--plocha-tlumena);
}
.text-chyba { color: var(--chyba); }
.text-uspech { color: var(--uspech); }
.text-varovani { color: var(--varovani); }
.text-slaby { color: var(--text-tlumeny); }
.text-akcent { color: var(--akcent); }
.kicker {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--text-slaby);
}
.rada { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.rada.mezera { justify-content: space-between; }
.sloupec { display: flex; flex-direction: column; gap: 14px; }
.oddelovac { border: 0; border-top: 1px solid var(--linka); margin: 4px 0; }

/* ---------- responzivita ---------- */
@media (max-width: 900px) {
  .rozvrzeni { flex-direction: column; }
  .bocni-panel {
    width: 100%; flex: none; height: auto; position: static;
    flex-direction: row; flex-wrap: wrap; padding: 12px; gap: 4px; align-items: center;
  }
  .znacka {
    padding: 0 12px 0 4px; border-bottom: 0; flex-direction: row; align-items: center; gap: 8px;
  }
  .znacka .logo { width: 132px; padding: 7px 9px; }
  .znacka .kicker { display: none; }
  .sekce-menu { display: none; }
  .polozka-menu {
    width: auto; margin: 0; padding: 7px 11px; border-radius: var(--r-drobna); font-size: 13px;
  }
  .uzivatel-panel {
    margin-top: 0; border-top: 0; padding: 0 8px; margin-left: auto;
  }
  .zahlavi-stranky, .obsah { padding-left: 16px; padding-right: 16px; }
  .zahlavi-stranky h1 { font-size: 17px; }
  .hledani-zahlavi { width: 100%; }
  .kalendar-radek { grid-template-columns: 1fr; }
  .definice { grid-template-columns: 1fr; }
  .zalozky { padding: 10px 12px 0; }
  .zalozka { padding: 7px 10px; font-size: 12px; }
  .mesic { grid-template-columns: 1fr; }
  .mesic .den { min-height: auto; }
  .hlavicka-mesice { display: none; }
  .tl { padding: 10px 14px; }
}

@media print {
  .bocni-panel, .zahlavi-akce, .panel-filtru, .strankovani, .tl, .zalozky { display: none !important; }
  body { background: #fff; }
  .karta { border-color: #ccc; }
}

/* --- Ostatní oddíly: oddíly mimo roli uživatele, schované pod rozbalením --- */
.ostatni-oddily { margin-top: 4px; }
.ostatni-oddily > summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
}
.ostatni-oddily > summary::-webkit-details-marker { display: none; }
.ostatni-oddily > summary::after {
  content: "▾";
  font-size: 10px;
  opacity: .6;
  transition: transform .15s ease;
}
.ostatni-oddily[open] > summary::after { transform: rotate(180deg); }
.ostatni-oddily .polozka-menu { opacity: .62; }
.ostatni-oddily .polozka-menu:hover,
.ostatni-oddily .polozka-menu.aktivni { opacity: 1; }
