/* ══════════════════════════════════════════════════════════════════════════════════════════
   KNIHOVNA PODOB (ADR-0131) — jedno místo, kde bydlí vzhled sdílených prvků.

   PROČ GLOBÁLNÍ LIST A NE SCOPED CSS KOMPONENT: prvky knihovny dostávají obsah jako
   `RenderFragment` od volajícího (`<th>`, `<td>`, `<tr>`). Ten se kompiluje do KOMPONENTY
   VOLAJÍCÍHO, takže nese jeho scope — scoped pravidlo prvku by na něj nedopadlo a tabulka by
   se vykreslila bez linek a odsazení. Týž důvod a týž vzor jako `dialog.css`,
   `karta-sekce.css` a `upravitelna-hodnota.css`.

   CO SE TU NEOPAKUJE: hustota a linky samotné tabulky zůstávají v `tabulka.css` (`.tabulka`,
   `.tabulka.je-vzdusna`) — knihovna je jen POJMENOVÁVÁ jako podoby, nepíše je podruhé. Dvě
   sady čísel pro touž věc jsou přesně to, čemu se tady předchází.
   ══════════════════════════════════════════════════════════════════════════════════════════ */

/* ── TABULKA ──────────────────────────────────────────────────────────────────────────────
   Obal je podoba ze záložky Majetek na kartě klienta (pokyn uživatele 18. 9. 2026: „prozatím
   stejného designu jako ta, co je na kartě majetek u klienta") — bílá plocha, vlasový rámeček,
   velké zaoblení a jemný stín.

   ROLUJE SE JEN VODOROVNĚ. Svisle roluje STRÁNKA: `overflow-y` na obalu by z něj udělal
   rolovací kontejner a přilepené záhlaví (`position: sticky` v `tabulka.css`) by se přilepilo
   k němu, tedy nikam. Tabulka, která má mít vlastní svislé rolování a slepenou hlavičku, má
   dodnes vlastní obal `.tabulka-obal` (32 míst) — ten se knihovnou NENAHRAZUJE, je to jiný
   prvek s jiným chováním. */
.kn-tabulka {
    background: var(--white);
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    overflow-x: auto;
}

.kn-tabulka .tabulka { width: 100%; }

/* Tabulka uvnitř karty už rámeček má — druhý by z ní udělal krabici v krabici. */
.kn-tabulka.je-bez-obalu {
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

/* ČÍSLO VPRAVO, i v záhlaví. `tabulka.css` zarovnává buňku, ale hlavičku ne — a popisek nad
   číslem zarovnaný doleva vypadá jako jiný sloupec (nález ze záložky Majetek). */
.kn-tabulka th.sl-cislo { text-align: right; }

/* ── FORMULÁŘ ─────────────────────────────────────────────────────────────────────────────
   Svislý rytmus formuláře, a nic jiného. Tři míry pojmenované jednou; kdo je potřebuje jinak,
   mění knihovnu (a mluví s Pavlem), ne stránku.

   ČÍSLA JSOU PŘEVZATÁ, NE VYMYŠLENÁ: přesně ta, která má dnes PRAVÝ sloupec dialogu a která
   jsou proti návrhu změřená jako správná. Levý sloupec je nikdy nedostal (měl `gap: 0`
   a jedinou náhradu mířenou na třídu, kterou používá jediný dialog), takže v něm dvě pole za
   sebou seděla na nule — v pěti dialozích. Změřeno v prohlížeči, ne odhadnuto.

   MARGIN, NE GAP. Gap dá jednu mezeru všemu a nadpis skupiny potřebuje jiné odstupy nahoru
   a dolů; s gapem by se k nim přičítal a nadpisy by se rozjely (přesně tak vznikl posuvník
   v dialogu tiketu, kvůli kterému se gap vypnul plošně). */
/* MÍRY JSOU NA `:root` SCHVÁLNĚ. Dokud nejsou všechny formuláře na prvku, potřebuje je číst
   i `dialog.css` u sloupců, které převedené ještě nejsou — a smysl téhle práce je, aby se
   čísla měnila na JEDNOM místě, ne aby vedle sebe stály dvě sady. */
:root {
    --kn-formular-mezera: 13px;        /* prvek → prvek */
    --kn-formular-nad-skupinou: 21px;  /* prvek → nadpis skupiny */
    --kn-formular-pod-skupinou: 10px;  /* nadpis skupiny → prvek */
}

.mck .kn-formular {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* JEN HORNÍ OKRAJE. Svislé okraje se ve flexovém sloupci NESČÍTAJÍ do jednoho (nekolabují),
   takže „spodní 13 u pole + horní 21 u nadpisu" dá 34 — což se mi při první verzi tohohle
   prvku stalo a změřil jsem to (21 → 34 px nad „Rozsah průvodce"). Model proto nejdřív všechny
   okraje vynuluje — včetně těch, které si prvky nesou samy (`.dlg-sekce` má 21/10,5) — a pak
   nastaví JEDINÝ okraj: horní, podle toho, co po čem následuje. Odstup je tím vždy právě jedno
   číslo a nedá se sečíst. */
.mck .kn-formular > * { margin-top: 0; margin-bottom: 0; }

/* prvek → prvek */
.mck .kn-formular > * + * { margin-top: var(--kn-formular-mezera); }

/* nadpis skupiny → prvek (menší, nadpis k obsahu patří) */
.mck .kn-formular > .je-skupina + * { margin-top: var(--kn-formular-pod-skupinou); }

/* prvek → nadpis skupiny (větší, odděluje skupiny) */
.mck .kn-formular > * + .je-skupina { margin-top: var(--kn-formular-nad-skupinou); }

/* ── POZNÁMKY K VYDÁNÍM (Administrace → Vydání) ──────────────────────────────────────────
   Šířky sloupců a popis v rozbaleném řádku. Je to tu, a ne ve scoped CSS té komponenty,
   z téhož důvodu jako všechno ostatní v tomhle listu: buňky posílá volající a nesou jeho
   scope. (Šířky jsou vlastnost TÉHLE tabulky — podoba je výš a ta se nepřebíjí.) */
/* Sloupec šipky je úzký a beze jména — je to znak, ne údaj. */
.vyd-tabulka .sl-rozbal { width: 26px; padding-right: 0; }

.vyd-tabulka .sl-verze { width: 84px; font-family: var(--font-cisla); font-weight: 600; }
.vyd-tabulka .sl-datum { width: 104px; color: var(--brown-400); }
.vyd-tabulka .sl-druh { width: 116px; }
.vyd-tabulka .sl-tikety { width: 170px; }

/* Klíč tiketu v buňce — drobná pilulka, ať jde poznat od textu. */
.vyd-tiket {
    display: inline-block;
    font-family: var(--font-cisla);
    font-size: 11.5px;
    font-weight: 700;
    color: var(--brown-500);
    background: var(--cream-100);
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-pill);
    padding: 0 8px;
    margin-right: 4px;
    white-space: nowrap;
}

/* POPIS VYDÁNÍ JE V ROZBALENÉM ŘÁDKU (`tr.tabulka-rozsireni`), protože `.tabulka td` ořezává
   na jeden řádek — a to je u husté tabulky správně. Přebíjet ořez v buňce by znamenalo
   lokálně rozbít podobu, které se knihovnou právě předchází. */
.vyd-tabulka .vyd-telo {
    padding: 12px 14px 14px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--brown-600);
    max-width: 96ch;
}

.vyd-tabulka .vyd-telo :first-child { margin-top: 0; }
.vyd-tabulka .vyd-telo :last-child { margin-bottom: 0; }
.vyd-tabulka .vyd-telo p { margin: 0 0 8px; }
.vyd-tabulka .vyd-telo ul,
.vyd-tabulka .vyd-telo ol { margin: 0 0 8px; padding-left: 20px; }
.vyd-tabulka .vyd-telo li { margin: 2px 0; }
.vyd-tabulka .vyd-telo code {
    font-family: var(--font-mono);
    font-size: 12.5px;
    background: var(--cream-100);
    border-radius: var(--radius-xs);
    padding: 1px 5px;
}

/* ZNAK ROZBALITELNOSTI. U řádku tabulky žádný v aplikaci nebyl — tam se ale rozbaluje NÁHLED
   toho, co je v řádku vidět, takže stačil `cursor: pointer` a zelený hover. Tady je pod řádkem
   text, o kterém řádek sám nic neříká. Je to týž ▶ jako u skládací sekce karty (ADR-0095),
   ne nový slovník. */
.vyd-tabulka .vyd-sipka {
    display: inline-block;
    width: 11px;
    font-size: 10px;
    line-height: 1;
    color: var(--brown-300);
    transition: transform var(--dur-fast) var(--ease-standard);
}

.vyd-tabulka .vyd-sipka.je-otevrena { transform: rotate(90deg); }

@media (prefers-reduced-motion: reduce) {
    .vyd-tabulka .vyd-sipka { transition: none; }
}

/* ── ZKUŠEBNA (jen /zkusebna/knihovna) ───────────────────────────────────────────────────
   Podoba samotné zkušebny, ne prvků — patří k ní, protože stránka žádnou vlastní nemá. */
.zkn-sekce { margin: 0 0 34px; }
.zkn-nadpis { font-size: 15px; font-weight: 700; color: var(--brown-700); margin: 0 0 4px; }
.zkn-popis { font-size: 13.5px; color: var(--brown-400); line-height: 1.55; margin: 0 0 12px; max-width: 78ch; }
/* Obal, ve kterém se zkouší tabulka BEZ vlastního rámu. */
.zkn-karta {
    background: var(--white); border: 1px solid var(--border-hairline);
    border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 16px 18px;
}
