/* app.css – Halex-Portál (TB-Web). Sachlich, hell, Akzent Dunkelblau. Keine externen Schriften (CSP). */

:root {
  --akzent: #003366;
  --akzent-tmavy: #00264d;
  --akzent-svetly: #e6edf5;
  --akzent-ram: #9fb4cc;
  --pozadi: #f3f5f8;
  --karta: #ffffff;
  --text: #1c2430;
  --text-2: #5a6575;
  --ram: #d5dbe3;
  --ram-silny: #b8c1cd;
  --radek-sudy: #f8f9fb;
  --hover: #eef3f9;

  --ok: #1d6b33;        --ok-plocha: #e5f3e9;     --ok-ram: #a8d5b5;
  --varovani: #8a5000;  --varovani-plocha: #fff3df; --varovani-ram: #f0c987;
  --chyba: #b02a1e;     --chyba-plocha: #fdecea;  --chyba-ram: #eeb1aa;
  --info: #0b4f8a;      --info-plocha: #e7f0fa;   --info-ram: #a9c6e6;
  --neutral: #4a5361;   --neutral-plocha: #eceff3; --neutral-ram: #c7cdd6;

  --radius: 6px;
  --stin: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);
  --pismo: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --pismo-mono: Consolas, "Cascadia Mono", "SFMono-Regular", Menlo, monospace;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--pismo);
  font-size: 15px;
  line-height: 1.45;
  color: var(--text);
  background: var(--pozadi);
}
body.bez-posunu { overflow: hidden; }
[hidden] { display: none !important; }
a { color: var(--akzent); }
a:hover { color: var(--akzent-tmavy); }
:focus-visible { outline: 2px solid var(--akzent); outline-offset: 2px; }
.skryte { position: absolute; left: -9999px; }

/* zweisprachig: Deutsch klein/grau */
.de { color: var(--text-2); font-size: .85em; font-weight: 400; }
.de-blok { display: block; line-height: 1.3; }
th .de, .tl .de { font-size: .8em; }

/* ------------------------------------------------------------ Kopfleiste */
.kopf { background: var(--akzent); color: #fff; }
.kopf-in {
  max-width: 1240px; margin: 0 auto; padding: 0 24px; min-height: 56px;
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
}
.kopf .de { color: rgba(255, 255, 255, .72); }
.znacka { color: #fff; text-decoration: none; font-weight: 600; font-size: 17px; white-space: nowrap; }
.znacka:hover { color: #fff; }
.nav { display: flex; gap: 4px; flex: 1; flex-wrap: wrap; }
.nav a {
  color: #fff; text-decoration: none; padding: 16px 12px 13px; border-bottom: 3px solid transparent; white-space: nowrap;
}
.nav a:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.nav a.aktivni { border-bottom-color: #fff; font-weight: 600; }
.uzivatel { display: flex; align-items: center; gap: 8px; margin-left: auto; flex-wrap: wrap; }
.uzivatel-jmeno { font-weight: 600; padding-right: 4px; }

/* ------------------------------------------------------------ Seite */
.obsah { max-width: 1240px; margin: 0 auto; padding: 24px 24px 40px; }
.nacitam { color: var(--text-2); padding: 32px 0; }
.stranka-hlava { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.titulek { font-size: 22px; font-weight: 600; margin: 0; line-height: 1.25; color: var(--akzent); }
.titulek .de { font-size: 14px; }
.nadpis { font-size: 17px; font-weight: 600; margin: 0 0 16px; color: var(--akzent); }
.akce { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.karta {
  background: var(--karta); border: 1px solid var(--ram); border-radius: var(--radius); box-shadow: var(--stin);
  padding: 20px 24px; margin-bottom: 16px;
}
.karta.bez-okraje { padding: 0; overflow: hidden; }
.karta.bez-okraje > .nadpis { padding: 16px 16px 0; }
.text { margin: 0 0 16px; }
.zpet { display: inline-block; margin-bottom: 12px; text-decoration: none; }
.zpet:hover { text-decoration: underline; }
.stavova-lista { color: var(--text-2); font-size: 12.5px; margin: 8px 0 0; }
.stavova-lista .de { font-size: 1em; }
.prazdne { padding: 32px 16px; text-align: center; color: var(--text-2); margin: 0; }
.stred { display: flex; justify-content: center; padding-top: 40px; }

/* ------------------------------------------------------------ Knöpfe */
.tl {
  font: inherit; font-size: 14px; line-height: 1.2;
  display: inline-flex; align-items: center; gap: 6px; justify-content: center;
  min-height: 36px; padding: 7px 14px; border-radius: var(--radius);
  border: 1px solid var(--ram-silny); background: #fff; color: var(--text); cursor: pointer; text-decoration: none;
}
.tl:hover:not(:disabled) { background: var(--hover); border-color: var(--akzent-ram); }
.tl:disabled { opacity: .55; cursor: default; }
.tl-primar { background: var(--akzent); border-color: var(--akzent); color: #fff; font-weight: 600; }
.tl-primar .de { color: rgba(255, 255, 255, .78); }
.tl-primar:hover:not(:disabled) { background: var(--akzent-tmavy); border-color: var(--akzent-tmavy); }
.tl-siroke { width: 100%; min-height: 42px; }
.tl-ikona { padding: 7px 9px; }
.tl-kopf { background: transparent; border-color: rgba(255, 255, 255, .55); color: #fff; }
.tl-kopf:hover:not(:disabled) { background: rgba(255, 255, 255, .12); border-color: #fff; }
.tl-kopf-text { background: transparent; border-color: transparent; color: #fff; font-size: 13px; }
.tl-kopf-text:hover:not(:disabled) { background: rgba(255, 255, 255, .1); border-color: transparent; }
.tl-kopf .de, .tl-kopf-text .de { color: rgba(255, 255, 255, .72); }
.tl-odebrat { font-size: 20px; line-height: 1; padding: 4px 10px; color: var(--text-2); }
.tl-odebrat:hover:not(:disabled) { color: var(--chyba); border-color: var(--chyba-ram); background: var(--chyba-plocha); }
.ikona { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }

/* ------------------------------------------------------------ Etiketten und Hinweise */
.etiketa {
  display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 12.5px; font-weight: 600; white-space: nowrap;
  border: 1px solid; line-height: 1.4;
}
.etiketa .de { font-weight: 400; color: inherit; opacity: .8; font-size: .92em; }
.etiketa.mala { font-size: 11px; padding: 0 6px; margin-left: 6px; vertical-align: 1px; }
.ton-ok { color: var(--ok); background: var(--ok-plocha); border-color: var(--ok-ram); }
.ton-varovani { color: var(--varovani); background: var(--varovani-plocha); border-color: var(--varovani-ram); }
.ton-chyba { color: var(--chyba); background: var(--chyba-plocha); border-color: var(--chyba-ram); }
.ton-info { color: var(--info); background: var(--info-plocha); border-color: var(--info-ram); }
.ton-neutral { color: var(--neutral); background: var(--neutral-plocha); border-color: var(--neutral-ram); }
.upozorneni { border: 1px solid; border-left-width: 4px; border-radius: var(--radius); padding: 10px 14px; margin: 0 0 16px; }
.upozorneni .de { color: inherit; opacity: .85; }
.upozorneni p { margin: 6px 0; }
.upozorneni .akce { margin-top: 8px; }

.hlaseni {
  position: fixed; right: 24px; bottom: 24px; z-index: 50; max-width: min(460px, calc(100vw - 32px));
  border: 1px solid; border-radius: var(--radius); padding: 12px 16px; box-shadow: 0 4px 16px rgba(0, 0, 0, .15); font-weight: 600;
}
.hlaseni .de { color: inherit; opacity: .85; font-weight: 400; }

/* ------------------------------------------------------------ Formulare */
.pole { margin-bottom: 16px; }
.pole > label, .m-popis { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; color: var(--text); }
.pole-uzke { max-width: 320px; }
input:not([type=checkbox]):not([type=date]), textarea, select {
  font: inherit; font-size: 15px; color: var(--text); background: #fff;
  border: 1px solid var(--ram-silny); border-radius: var(--radius); padding: 7px 10px; width: 100%; min-height: 38px;
}
textarea { resize: vertical; min-height: 72px; line-height: 1.4; }
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--akzent); box-shadow: 0 0 0 3px rgba(0, 51, 102, .18); }
input:disabled, textarea:disabled, select:disabled { background: var(--neutral-plocha); color: var(--text); opacity: 1; }
input.chybne, textarea.chybne { border-color: var(--chyba); background: #fffafa; }
input.chybne:focus { box-shadow: 0 0 0 3px rgba(176, 42, 30, .18); }
input[type=checkbox] { width: 18px; height: 18px; margin: 0; accent-color: var(--akzent); flex: none; }
input.cislo { text-align: right; font-variant-numeric: tabular-nums; }
.pole-chyba { color: var(--chyba); font-size: 12.5px; margin: 4px 0 0; line-height: 1.3; }
.pole-chyba .de { color: inherit; opacity: .85; }
.pole-chyba.blok { font-size: 13.5px; margin: 0 0 12px; }
.zaskrt, .pole > label.zaskrt { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; margin: 0 0 16px; font-weight: 600; }
.zaskrt input { margin-top: 2px; }
.zaskrt .de { font-weight: 400; }
.napoveda { color: var(--text-2); font-size: 13px; }
.vyber { width: auto; min-width: 240px; }
.popis-vyber { font-weight: 600; font-size: 13px; }

/* Anmeldung und Schlüssel */
.prihlaseni { width: 100%; max-width: 440px; padding: 28px 28px 24px; }
.prihlaseni .titulek { margin-bottom: 20px; }
.klic-pole { font-family: var(--pismo-mono); letter-spacing: .04em; text-transform: uppercase; }
.klic-pole::placeholder { text-transform: none; letter-spacing: 0; }
.pocitadlo { float: right; font-weight: 400; color: var(--text-2); font-variant-numeric: tabular-nums; }
.pocitadlo.hotovo { color: var(--ok); font-weight: 600; }

/* Datumsfeld mit Kalenderknopf */
.datum-obal { position: relative; display: flex; align-items: stretch; }
.datum-obal input.datum { border-top-right-radius: 0; border-bottom-right-radius: 0; min-width: 0; }
.datum-knopf {
  flex: none; width: 36px; border: 1px solid var(--ram-silny); border-left: 0; background: #fff; color: var(--text-2);
  border-radius: 0 var(--radius) var(--radius) 0; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0;
}
.datum-knopf:hover:not(:disabled) { background: var(--hover); color: var(--akzent); }
.datum-knopf:disabled { background: var(--neutral-plocha); cursor: default; }
.datum-nativ { position: absolute; right: 0; bottom: 0; width: 1px; height: 1px; opacity: 0; pointer-events: none; border: 0; padding: 0; }

/* ------------------------------------------------------------ Filter und Tabelle */
.filtr-radek { display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: 12px; }
.zalozky { display: flex; gap: 4px; flex-wrap: wrap; }
.zalozka {
  font: inherit; font-size: 14px; display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 14px; min-height: 36px; border: 1px solid var(--ram-silny); border-radius: 18px; background: #fff; color: var(--text); cursor: pointer;
}
.zalozka:hover { border-color: var(--akzent-ram); background: var(--hover); }
.zalozka.aktivni { background: var(--akzent); border-color: var(--akzent); color: #fff; font-weight: 600; }
.zalozka.aktivni .de { color: rgba(255, 255, 255, .78); }
.pocet { background: var(--neutral-plocha); color: var(--text); border-radius: 10px; padding: 0 7px; font-size: 12px; font-weight: 600; min-width: 22px; text-align: center; }
.zalozka.aktivni .pocet { background: rgba(255, 255, 255, .22); color: #fff; }
.hledat { max-width: 360px; }

.tabulka-obal { overflow-x: auto; }
.tabulka { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabulka th {
  text-align: left; font-size: 12.5px; font-weight: 600; color: var(--text); background: var(--akzent-svetly);
  padding: 8px 12px; border-bottom: 1px solid var(--ram-silny); vertical-align: bottom; white-space: nowrap;
}
.tabulka td { padding: 9px 12px; border-bottom: 1px solid var(--ram); vertical-align: top; }
.tabulka .cislo { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabulka tfoot td { font-weight: 600; background: var(--radek-sudy); border-top: 2px solid var(--ram-silny); border-bottom: 0; }
.tabulka tr.klik { cursor: pointer; }
.tabulka tr.klik:hover td { background: var(--hover); }
.odkaz-radek { font-weight: 600; text-decoration: none; white-space: nowrap; }
.odkaz-radek:hover { text-decoration: underline; }
.sirka-text { width: 40%; }
.zkraceno { display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ------------------------------------------------------------ Detail */
.detail-hlava { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 16px; }
.udaje { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px 24px; margin-bottom: 16px; }
.udaj-popis { font-size: 12.5px; font-weight: 600; color: var(--text-2); text-transform: none; margin-bottom: 2px; }
.udaj-popis .de { font-size: 1em; }
.udaj-hodnota { font-size: 15px; }
.zmena { border-top: 1px solid var(--ram); padding-top: 12px; margin-bottom: 12px; }
.zmena-cs { margin: 2px 0 4px; white-space: pre-wrap; font-size: 15px; }
.zmena-de { margin: 0; white-space: pre-wrap; color: var(--text-2); font-size: 13px; }
.soubory { border-top: 1px solid var(--ram); padding-top: 12px; }
.soubory-seznam { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.soubor-skupina { display: inline-flex; }
.soubor-skupina .soubor { border-top-right-radius: 0; border-bottom-right-radius: 0; max-width: 560px; justify-content: flex-start; text-align: left; }
.soubor-skupina .tl-ikona { border-left: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.soubor-jmeno { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--akzent); font-weight: 600; }

/* Eingabe: eine Zeile je Person */
.osoby { border: 1px solid var(--ram); border-radius: var(--radius); margin-bottom: 12px; }
.osoba-radek {
  display: grid; gap: 8px; align-items: start; padding: 8px 12px;
  grid-template-columns: minmax(170px, 1fr) 150px 150px 92px 108px 92px 40px;
  border-bottom: 1px solid var(--ram);
}
.osoby-radky .osoba-radek:nth-child(even) { background: var(--radek-sudy); }
.osoba-radek.hlavicka { background: var(--akzent-svetly); font-size: 12.5px; font-weight: 600; align-items: end; padding-top: 6px; padding-bottom: 6px; }
.osoba-radek.hlavicka .b-cislo { text-align: right; }
.osoba-radek.souhrn { border-bottom: 0; font-weight: 600; background: var(--radek-sudy); }
.osoba-radek.souhrn .b-cislo { text-align: right; padding-right: 11px; font-variant-numeric: tabular-nums; }
.osoba-radek.souhrn.neuplne .b-cislo { color: var(--varovani); }
.osoba-radek .m-popis { display: none; }
.pod-osobami { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin-bottom: 20px; }
.radek-hotovo { display: grid; grid-template-columns: auto 220px; gap: 8px 32px; align-items: start; justify-content: start; padding-top: 4px; }
.radek-hotovo .zaskrt { margin: 30px 0 0; font-size: 16px; align-items: center; }
.radek-hotovo .zaskrt input { margin-top: 0; width: 20px; height: 20px; }
.formular-pata { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; border-top: 1px solid var(--ram); padding-top: 16px; margin-top: 4px; }
.posledni { color: var(--text-2); font-size: 13px; }
.neulozeno { color: var(--varovani); font-size: 13px; font-weight: 600; }
.neulozeno .de { color: inherit; }
.formular .tl-primar { min-width: 160px; min-height: 40px; }

/* Datei-Ansicht */
.prohlizec { position: fixed; inset: 0; z-index: 40; background: rgba(10, 20, 35, .55); display: flex; padding: 24px; }
.prohlizec-okno { background: #fff; border-radius: var(--radius); flex: 1; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 8px 32px rgba(0, 0, 0, .3); }
.prohlizec-hlava { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--ram); flex-wrap: wrap; }
.prohlizec-nazev { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
.prohlizec-ram { flex: 1; border: 0; width: 100%; background: var(--neutral-plocha); }
.prohlizec-prazdne { flex: 1; display: flex; align-items: center; justify-content: center; padding: 32px; text-align: center; color: var(--text-2); }
.prohlizec-tip { margin: 0; padding: 6px 16px; font-size: 12.5px; color: var(--text-2); border-top: 1px solid var(--ram); }

/* Rechnungsübersicht */
.fakturace .lfz-radek td { background: var(--akzent-svetly); font-weight: 600; border-top: 1px solid var(--ram-silny); }
.fakturace .lfz-radek .nr { color: var(--akzent); white-space: nowrap; }
.fakturace .osoba td { border-bottom: 1px dotted var(--ram); padding-top: 5px; padding-bottom: 5px; }
.fakturace .soucet td { font-weight: 600; border-bottom: 1px solid var(--ram-silny); }
.fakturace .soucet td:nth-child(2) { color: var(--text-2); }
.fakturace thead .podhlavicka th { background: var(--radek-sudy); font-weight: 400; color: var(--text-2); padding-top: 4px; padding-bottom: 4px; }
.fakturace tbody.blok { break-inside: avoid; page-break-inside: avoid; }
.fakturace td:nth-child(1) { width: 64px; }
.odkaz-tisk { text-decoration: none; }
.odkaz-tisk:hover { text-decoration: underline; }
.tisk-hlava { display: none; }

/* ------------------------------------------------------------ Tablet */
@media (max-width: 1000px) {
  .osoba-radek { grid-template-columns: minmax(140px, 1fr) 140px 140px 80px 92px 80px 40px; gap: 6px; padding: 8px; }
  .obsah { padding: 16px 16px 32px; }
  .kopf-in { padding: 0 16px; gap: 12px; }
}

/* ------------------------------------------------------------ Handy */
@media (max-width: 760px) {
  body { font-size: 15px; }
  .kopf-in { padding: 8px 16px; gap: 4px 12px; }
  .kopf .de { display: none; }
  .znacka { font-size: 16px; }
  .nav { order: 3; flex-basis: 100%; flex-wrap: nowrap; overflow-x: auto; gap: 0; }
  .nav a { padding: 8px 10px 6px; font-size: 14.5px; }
  .uzivatel { margin-left: auto; gap: 4px; }
  .uzivatel-jmeno { font-size: 13px; }
  .tl-kopf-text, .tl-kopf { padding: 4px 8px; min-height: 32px; font-size: 13px; }
  .titulek { font-size: 19px; }
  .karta { padding: 16px; }
  .hledat { max-width: none; }
  .stred { padding-top: 8px; }
  .prihlaseni { padding: 20px 16px; }

  /* Übersicht als Karten */
  .tabulka.prehled thead { display: none; }
  .tabulka.prehled, .tabulka.prehled tbody, .tabulka.prehled tfoot { display: block; }
  .tabulka.prehled tr { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 4px 12px; padding: 12px 16px; border-bottom: 1px solid var(--ram); }
  .tabulka.prehled td { display: block; border: 0; padding: 0; width: auto; }
  .tabulka.prehled td:nth-child(1) { grid-column: 1 / 3; }
  .tabulka.prehled td:nth-child(2) { grid-column: 3; text-align: right; }
  .tabulka.prehled td:nth-child(3) { grid-column: 1 / -1; }
  .tabulka.prehled td:nth-child(4) { grid-column: 1 / -1; }
  .tabulka.prehled td.cislo { text-align: left; }
  .tabulka.prehled td[data-popis]::before { content: attr(data-popis); display: block; font-size: 11px; color: var(--text-2); font-weight: 600; }
  .tabulka.prehled td:nth-child(1)::before, .tabulka.prehled td:nth-child(3)::before, .tabulka.prehled td:nth-child(4)::before { display: none; }
  .tabulka.prehled td:nth-child(2)::before { content: "Č. protokolu"; }
  .tabulka.prehled tfoot tr { background: var(--radek-sudy); }
  .tabulka.prehled tfoot td:first-child { grid-column: 1 / -1; }

  /* Personen untereinander */
  .osoba-radek.hlavicka { display: none; }
  .osoba-radek { grid-template-columns: repeat(6, 1fr); gap: 8px; padding: 12px; }
  .osoba-radek .m-popis { display: block; font-size: 12px; margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .osoba-radek .b-jmeno { grid-column: 1 / 6; grid-row: 1; }
  .osoba-radek .b-akce { grid-column: 6 / 7; grid-row: 1; align-self: end; justify-self: end; }
  .osoba-radek .b-od { grid-column: 1 / 4; }
  .osoba-radek .b-do { grid-column: 4 / 7; }
  .osoba-radek .b-cislo { grid-column: span 2; }
  .osoba-radek.souhrn .b-jmeno { grid-column: 1 / -1; }
  .osoba-radek.souhrn .b-od, .osoba-radek.souhrn .b-do, .osoba-radek.souhrn .b-akce { display: none; }
  .osoba-radek.souhrn .b-cislo { text-align: left; }
  .osoba-radek.souhrn .m-popis { display: block; font-weight: 400; color: var(--text-2); }
  .radek-hotovo { grid-template-columns: 1fr; }
  .radek-hotovo .zaskrt { margin-top: 0; }
  .formular-pata .akce { width: 100%; justify-content: flex-end; }
  .detail-hlava { flex-direction: column; gap: 8px; }
  .udaje { grid-template-columns: 1fr 1fr; gap: 8px 16px; }
  .prohlizec { padding: 0; }
  .prohlizec-okno { border-radius: 0; }
  .stranka-hlava .akce { width: 100%; }
  .vyber { min-width: 0; flex: 1 1 100%; }
  .popis-vyber { flex-basis: 100%; }
  .hlaseni { left: 16px; right: 16px; bottom: 16px; }
}

/* ------------------------------------------------------------ Druck (A4) */
@page {
  size: A4;
  margin: 14mm 12mm 16mm;
  @bottom-right { content: counter(page) " / " counter(pages); font-size: 8pt; color: #555; }
}
@media print {
  body { background: #fff; font-size: 10pt; color: #000; }
  .kopf, .ovladani, .hlaseni, .prohlizec, .obrazovka, .zpet { display: none !important; }
  .obsah { max-width: none; padding: 0; }
  .karta { border: 0; box-shadow: none; padding: 0; margin: 0; }
  .karta.bez-okraje { overflow: visible; }
  .tabulka-obal { overflow: visible; }
  .tisk-hlava { display: block; margin-bottom: 6mm; border-bottom: 1.5pt solid #003366; padding-bottom: 3mm; }
  .tisk-titulek { font-size: 15pt; font-weight: 700; color: #003366; }
  .tisk-podtitulek { font-size: 10.5pt; color: #444; }
  .tisk-datum { font-size: 8.5pt; color: #666; margin-top: 1mm; }
  .tabulka { font-size: 9pt; }
  .tabulka th { background: #e6edf5 !important; font-size: 8.5pt; padding: 4px 6px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .tabulka td { padding: 3px 6px; }
  .fakturace .lfz-radek td { background: #f0f4f9 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .fakturace thead { display: table-header-group; }
  .tabulka tfoot td { background: none; border-top: 1.5pt solid #000; }
  a { color: #000; text-decoration: none; }
  .de { color: #555; }
}
