/* /Components/Admin/AdminShell.razor.rz.scp.css */
/* Admin shell — rozcestník: hlava sekce. Drobečky drží sdílená komponenta Drobecky.
   Kompaktní (vzhled mockupu back-office). */

.admin-shell[b-0z7q0zli54] { padding-block: 0.2rem; }

.admin-hlava[b-0z7q0zli54] { margin-bottom: 1rem; }

.admin-podtitulek[b-0z7q0zli54] { margin-top: 0.3rem; max-width: 68ch; line-height: 1.55; font-size: 12.5px; color: var(--text-dim); }
/* /Components/Admin/Kos.razor.rz.scp.css */
/* Karta „Koš" — samostatná komponenta, proto padding + roztažení přes celou mřížku zopakujeme. */
.admin-karta[b-sf3biujm01] {
    grid-column: 1 / -1;
    padding: 1.5rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.admin-karta-hlava h2[b-sf3biujm01] {
    font-size: 1.15rem;
    margin: 0;
}

.kos-uvod[b-sf3biujm01] {
    margin: 0;
    line-height: 1.5;
}

.kos-nadpis[b-sf3biujm01] {
    font-size: 1rem;
    margin: 0.75rem 0 0.25rem;
}
/* /Components/Admin/PrehledPrihlaseni.razor.rz.scp.css */
/* Karta „Přihlášení" — samostatná komponenta, proto padding + roztažení přes celou mřížku zopakujeme. */
.admin-karta[b-dcmkma5w9w] {
    grid-column: 1 / -1;
    padding: 1.5rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.admin-karta-hlava h2[b-dcmkma5w9w] {
    font-size: 1.15rem;
    margin: 0;
}

.prihl-souhrn[b-dcmkma5w9w] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.prihl-metrika[b-dcmkma5w9w] {
    flex: 1 1 8rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--barva-linka, #E3D9C6);
    border-radius: var(--radius, 12px);
    background-color: var(--c-krem, #F4EFE7);
}

.prihl-cislo[b-dcmkma5w9w] {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--c-hneda-tmava, #3F2F24);
    font-variant-numeric: tabular-nums;
}

.prihl-popis[b-dcmkma5w9w] {
    font-size: 0.82rem;
}

.prihl-nadpis[b-dcmkma5w9w] {
    font-size: 1rem;
    margin: 0.75rem 0 0;
}

.prihl-tabulka-obal[b-dcmkma5w9w] {
    overflow-x: auto;
}

.prihl-tabulka[b-dcmkma5w9w] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.prihl-tabulka th[b-dcmkma5w9w],
.prihl-tabulka td[b-dcmkma5w9w] {
    text-align: left;
    padding: 0.5rem 0.6rem;
    border-bottom: 1px solid var(--barva-linka, #E3D9C6);
    vertical-align: top;
    white-space: nowrap;
}

.prihl-tabulka th[b-dcmkma5w9w] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny, #736A62);
}

.prihl-email[b-dcmkma5w9w] {
    font-size: 0.8rem;
}

/* Poslední přihlášení — kompaktní jednořádkový seznam (místo široké tabulky). */
.prihl-posledni[b-dcmkma5w9w] {
    list-style: none;
    margin: 0.3rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.prihl-posledni li[b-dcmkma5w9w] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.88rem;
    flex-wrap: wrap;
}
.prihl-kdy[b-dcmkma5w9w] {
    min-width: 6.5rem;
    font-variant-numeric: tabular-nums;
}
.prihl-odkud[b-dcmkma5w9w] {
    font-size: 0.82rem;
}
/* Pevná výška se scrollem — stabilní výška karty bez ohledu na počet záznamů. */
.prihl-posledni-box[b-dcmkma5w9w] {
    max-height: 15rem;
    overflow-y: auto;
    border: 1px solid var(--barva-linka, #E3D9C6);
    border-radius: var(--radius, 12px);
    padding: 0.5rem 0.75rem;
}
.prihl-druh[b-dcmkma5w9w] {
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
    min-width: 6.2rem;
}
.prihl-druh.je-prihlaseni[b-dcmkma5w9w] { color: #2e7d32; }
.prihl-druh.je-odhlaseni[b-dcmkma5w9w] { color: var(--barva-text-tlumeny, #736A62); }

/* Změna režimu (ADR-0050) — třetí druh události vedle přihlášení a odhlášení. */
.prihl-druh.je-rezim[b-dcmkma5w9w] { color: var(--c-varovani); }

.prihl-detail[b-dcmkma5w9w] {
    font-size: 11.5px;
    padding: 0 6px;
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
}
/* /Components/Admin/PrehledRelace.razor.rz.scp.css */
.admin-karta[b-k46q9k1ls4] {
    grid-column: 1 / -1;
    padding: 1.5rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.relace-blok[b-k46q9k1ls4] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.relace-nadpis[b-k46q9k1ls4] {
    font-size: 0.95rem;
    margin: 0;
    color: var(--c-hneda-tmava, #3f2f24);
}

.relace-seznam[b-k46q9k1ls4] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.relace-seznam li[b-k46q9k1ls4] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.9rem;
}

.relace-tecka[b-k46q9k1ls4] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #2e7d32;
    box-shadow: 0 0 0 3px rgba(46, 125, 50, 0.16);
}

.relace-druh[b-k46q9k1ls4] {
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
    min-width: 6.5rem;
}

.relace-druh.je-prihlaseni[b-k46q9k1ls4] { color: #2e7d32; }
.relace-druh.je-odhlaseni[b-k46q9k1ls4] { color: var(--barva-akcent-text, #6b5a48); }
/* /Components/Admin/ProhlizecAktivity.razor.rz.scp.css */
.admin-karta[b-ezj81860kt] {
    grid-column: 1 / -1;
    padding: 1.5rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.prohlizec-ovladace[b-ezj81860kt] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.prohlizec-blok[b-ezj81860kt] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.prohlizec-nadpis[b-ezj81860kt] {
    font-size: 0.95rem;
    margin: 0;
    color: var(--c-hneda-tmava, #3f2f24);
}

.prohlizec-seznam[b-ezj81860kt] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.prohlizec-seznam li[b-ezj81860kt] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.9rem;
}

.prohlizec-cas[b-ezj81860kt] {
    font-variant-numeric: tabular-nums;
    min-width: 3rem;
}
/* /Components/Admin/SpravaPristupu.razor.rz.scp.css */
/* Karta „Přístupy" je samostatná komponenta — scoped .admin-karta z Administrace na ni nedopadá,
   proto tu padding zopakujeme. Roztáhne se přes celou šířku admin mřížky (jako 2–3 dlaždice), ať
   se tabulka uživatelů + přidělení rodin pohodlně vejde. */
.admin-karta[b-4tj7getece] {
    grid-column: 1 / -1;
    padding: 1.5rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.admin-karta-hlava[b-4tj7getece] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.admin-karta-hlava h2[b-4tj7getece] {
    font-size: 1.15rem;
    margin: 0;
}

/* Formulář „přidat uživatele" — flex řádek. Třída .spis-radek je scoped v RodinnySpis
   (přes hranici komponenty se nepřenáší), tady žije její dvojče; pole jsou globální .pole. */
form.spis-radek[b-4tj7getece] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}

form.spis-radek .pole[b-4tj7getece] {
    flex: 1 1 10rem;
}

/* Indikátor „čeká na schválení" (UX audit C12a): jantarový odznak v hlavičce vpravo,
   zvýraznění čekajících řádků a inline štítek u jména. Jantar = pozor/čeká (stejný tón
   jako oranžová stavová tečka #E0A500); text tmavší kvůli čitelnosti. */
.pristupy-ceka-odznak[b-4tj7getece] {
    margin-left: auto;
    font-size: 0.8rem;
    font-weight: 600;
    color: #8a6500;
    background: rgba(224, 165, 0, 0.14);
    border: 1px solid rgba(224, 165, 0, 0.45);
    border-radius: 999px;
    padding: 0.15rem 0.65rem;
    white-space: nowrap;
}

.pristupy-ceka-stitek[b-4tj7getece] {
    display: inline-block;
    margin-left: 0.4rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: #8a6500;
    background: rgba(224, 165, 0, 0.16);
    border-radius: 999px;
    padding: 0.05rem 0.5rem;
    vertical-align: middle;
}

/* Toolbar: hledání + výchozí sledování per role */
.pristupy-toolbar[b-4tj7getece] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
}
.pristupy-hledani[b-4tj7getece] { flex: 1 1 16rem; }

/* Sdílená lišta seznamu (hledání + počet nalezených) si nese vlastní vodorovné
   uspořádání — v tomhle toolbaru tedy roste do šířky a zbytek se srovná za ní.
   `::deep` proto, že značka patří té komponentě, ne téhle (ADR-0063 §8). */
.pristupy-toolbar[b-4tj7getece]  .tabulka-listva {
    flex: 1 1 22rem;
    margin: 0;
}
.pristupy-role-def[b-4tj7getece] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    font-size: 0.85rem;
}
.pristupy-role-def-polozka[b-4tj7getece] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    white-space: nowrap;
}

/* Kompaktní rozbalovací řádky uživatelů (nahradily tabulku) */
.pristupy-seznam[b-4tj7getece] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.pristup-radek[b-4tj7getece] {
    border: 1px solid var(--barva-linka, rgba(63, 47, 36, 0.15));
    border-radius: 0.5rem;
    background: var(--barva-povrch, #fff);
}
.pristup-radek.je-ceka[b-4tj7getece] {
    box-shadow: inset 3px 0 0 #E0A500;
    background: rgba(224, 165, 0, 0.06);
}
.pristup-shrnuti[b-4tj7getece] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.55rem 0.85rem;
    cursor: pointer;
    list-style: none;
}
.pristup-shrnuti[b-4tj7getece]::-webkit-details-marker { display: none; }
.pristup-shrnuti[b-4tj7getece]::before {
    content: "▸";
    color: var(--barva-akcent-text, #6b5a48);
    transition: transform 0.15s;
}
details[open] > .pristup-shrnuti[b-4tj7getece]::before { transform: rotate(90deg); }
.pristup-jmeno[b-4tj7getece] { font-weight: 600; }
.pristup-role-stitek[b-4tj7getece] {
    font-size: 0.8rem;
    color: var(--barva-akcent-text, #6b5a48);
}
.pristup-online[b-4tj7getece] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #2e7d32;
    margin-left: auto;
    white-space: nowrap;
}
.pristup-detail[b-4tj7getece] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    padding: 0.5rem 0.85rem 0.85rem 1.7rem;
    border-top: 1px solid var(--barva-linka, rgba(63, 47, 36, 0.12));
}
.pristup-detail-pole[b-4tj7getece] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.88rem;
}
.pristup-detail-pole > label:first-child[b-4tj7getece] { font-size: 0.78rem; }
.pristup-sledovani-stav[b-4tj7getece] { font-size: 0.78rem; }
.pristup-aktivita span[b-4tj7getece] { font-variant-numeric: tabular-nums; }

/* ===== Scrollovací „excel-like" tabulka uživatelů (škáluje na stovky) ===== */
.pu-obal[b-4tj7getece] {
    max-height: 62vh;
    overflow: auto;
    border: 1px solid var(--border, var(--barva-linka));
    border-radius: 8px;
}
.pu-tab[b-4tj7getece] { min-width: 900px; margin: 0; }
/* sticky hlavička při scrollu (th má neprůhledné pozadí z globální .pristupy-tabulka) */
.pu-tab thead th[b-4tj7getece] { position: sticky; top: 0; z-index: 2; }
/* checkboxy/selecty vertikálně na střed (globální .pristupy-tabulka td má vertical-align:top) */
.pu-tab td[b-4tj7getece] { vertical-align: middle; }
.pu-stred[b-4tj7getece] { text-align: center; }

.pu-jmeno[b-4tj7getece] { font-weight: 600; display: flex; align-items: center; gap: 6px; }
.pu-online[b-4tj7getece] { color: var(--good, #2f9257); font-size: 9px; line-height: 1; }
.pu-email[b-4tj7getece] { font-size: 11px; margin-top: 1px; }
.pu-select[b-4tj7getece] { padding: 3px 6px; font-size: 12px; width: 100%; min-width: 6.5rem; }
.pu-cas[b-4tj7getece] { font-size: 11.5px; white-space: nowrap; }

.pu-rodiny-btn[b-4tj7getece] {
    border: 1px solid var(--border-strong, var(--barva-linka));
    background: var(--surface, #fff); border-radius: 6px;
    padding: 2px 9px; font-size: 11.5px; cursor: pointer; white-space: nowrap;
    color: var(--text, inherit); font-family: inherit;
}
.pu-rodiny-btn:hover[b-4tj7getece] { border-color: var(--accent, #5F6E00); }
.pu-rodiny-btn.je-otevreno[b-4tj7getece] { background: var(--accent-weak, #eef1dc); border-color: var(--accent, #5F6E00); color: var(--accent-strong, #4b5600); }

.pu-rodiny-radek td[b-4tj7getece] { background: var(--surface-2, #f5f6f8); }
.pu-rodiny-nadpis[b-4tj7getece] { display: block; font-size: 11px; margin-bottom: 5px; }
.pu-rodiny-mrizka[b-4tj7getece] { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 16px; }
.pu-rodina[b-4tj7getece] { display: flex; align-items: center; gap: 6px; font-size: 12px; }
/* Vývojářský účet má u každé rodiny DVA vztahy (poradce × člen) — každý zvlášť zaškrtnutelný,
   protože poradcovský a klientský režim se řídí jiným vztahem. */
.pu-rodina-vztahy[b-4tj7getece] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pu-rodina-vztahy strong[b-4tj7getece] { font-weight: 600; }
.pu-rodina-vztahy label[b-4tj7getece] { display: inline-flex; align-items: center; gap: 4px; }

/* čekající (bez role) jemně zvýraznit */
.pu-tab tr.je-ceka td[b-4tj7getece] { background: rgba(224, 165, 0, 0.07); }

.pu-pocet[b-4tj7getece] { margin: 8px 0 0; font-size: 11.5px; }

/* Věta v pod-řádku rodin: kde se nastavují práva člena (ADR-0088, E3). Bez odkazu — správce
   by za ním narazil na odepření (ADR-0023). */
.pu-rodiny-pozn[b-4tj7getece] {
    margin: 0 0 6px;
    font-size: 11.5px;
}
/* /Components/Admin/SpravaRoliVRodine.razor.rz.scp.css */
/* Karta „Role v rodině" je samostatná komponenta — scoped .admin-karta z Administrace na ni
   nedopadá, proto tu padding + roztažení přes celou šířku mřížky zopakujeme (jako u Přístupů). */
.admin-karta[b-pd7307py5t] {
    grid-column: 1 / -1;
    padding: 1.5rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.admin-karta-hlava h2[b-pd7307py5t] {
    font-size: 1.15rem;
    margin: 0;
}

.admin-role-uvod[b-pd7307py5t] {
    margin: 0;
    line-height: 1.5;
}

.admin-role-pridat[b-pd7307py5t] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.admin-role-vstup[b-pd7307py5t] {
    flex: 1 1 16rem;
    min-width: 0;
    padding: 0.6rem 0.9rem;
    border: 1px solid var(--barva-linka, #E3D9C6);
    border-radius: var(--radius, 12px);
    background-color: var(--c-bila, #FFFFFF);
    font-family: var(--font-text);
    font-size: 0.95rem;
    color: var(--barva-text);
}

.admin-role-vstup:focus[b-pd7307py5t] {
    outline: none;
    border-color: var(--c-zelena-tmava, #90A800);
}

.admin-role-hlaska[b-pd7307py5t] {
    margin: 0;
    padding: 0.6rem 0.85rem;
    background-color: var(--c-zelena-svetla, #E0EFB8);
    border-radius: var(--radius, 12px);
}
/* /Components/Admin/SpravaUdeleni.razor.rz.scp.css */
/* Karta „Udělení" je samostatná komponenta — scoped `.admin-karta` z Administrace na ni
   nedopadá, proto se tu padding i roztažení přes celou mřížku zopakuje (týž důvod a týž vzor
   jako u karty Přístupy). Bez `grid-column: 1 / -1` dostane sekce jednu 260px dlaždici a šest
   sloupců tabulky se do ní nevejde — vypadá to jako ořezaná tabulka, ne jako úzká karta. */
.admin-karta[b-0vwk1n7cop] {
    grid-column: 1 / -1;
    padding: 1.5rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.udel-uvod[b-0vwk1n7cop] { margin: 0; max-width: 70ch; }
/* /Components/Admin/SpravaWorkflow.razor.rz.scp.css */
/* Editor workflow ticketingu (F6) — kompaktní, v duchu mockupu back-office. */

/* Editor je širší než ostatní dlaždice (tabulky stavů/přechodů) → přes celou mřížku.
   Padding zopakován (CSS izolace: .admin-karta ze stránky na child komponentu nedosáhne) —
   stejná hodnota jako SpravaPristupu/Kos (plnošířkové admin karty). */
.wf-karta[b-sgoa48r4wn] {
    grid-column: 1 / -1;
    padding: 1.5rem 1.75rem;
}

.wf-taby[b-sgoa48r4wn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-bottom: 0.9rem;
}

.wf-tab[b-sgoa48r4wn] {
    padding: 0.3rem 0.75rem;
    font-size: 12.5px;
    border: 1px solid var(--border, #d5d8dd);
    border-radius: 6px;
    background: var(--surface, #fff);
    color: var(--text, #1c1e22);
    cursor: pointer;
}

.wf-tab:hover[b-sgoa48r4wn] { border-color: var(--accent, #5F6E00); }

.wf-tab.je-aktivni[b-sgoa48r4wn] {
    background: var(--accent, #5F6E00);
    border-color: var(--accent, #5F6E00);
    color: #fff;
}

.wf-nazev[b-sgoa48r4wn] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    max-width: 22rem;
    margin-bottom: 0.6rem;
    font-size: 12.5px;
}

.wf-podnadpis[b-sgoa48r4wn] {
    margin: 1rem 0 0.4rem;
    font-size: 0.95rem;
}

.wf-tabulka-obal[b-sgoa48r4wn] { overflow-x: auto; }

.wf-tabulka[b-sgoa48r4wn] {
    width: 100%;
    min-width: 640px;
    font-size: 12.5px;
}

.wf-tabulka th[b-sgoa48r4wn] {
    text-align: left;
    font-weight: 600;
    white-space: nowrap;
}

.wf-tabulka td[b-sgoa48r4wn] { padding: 0.2rem 0.3rem 0.2rem 0; vertical-align: middle; }

.wf-tabulka .pole[b-sgoa48r4wn] { padding: 0.25rem 0.4rem; font-size: 12.5px; width: 100%; min-width: 6rem; }
.wf-tabulka select.pole[b-sgoa48r4wn] { min-width: 8.5rem; }

.wf-stred[b-sgoa48r4wn] { text-align: center; }

.wf-uzke[b-sgoa48r4wn] { width: 4.5rem; min-width: 4rem; }
.wf-barva[b-sgoa48r4wn] { width: 7rem; min-width: 6rem; }

.wf-smazat[b-sgoa48r4wn] {
    border: none;
    background: none;
    color: var(--text-dim, #6b7280);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.3rem;
}

.wf-smazat:hover[b-sgoa48r4wn] { color: var(--crit, #c0392b); }

.wf-pridat[b-sgoa48r4wn] {
    margin-top: 0.45rem;
    font-size: 12px;
    padding: 0.25rem 0.7rem;
}

.wf-akce[b-sgoa48r4wn] {
    display: flex;
    gap: 0.5rem;
    margin-top: 1.1rem;
}

.wf-hlaska[b-sgoa48r4wn] {
    margin-top: 0.6rem;
    font-size: 12.5px;
}

.wf-hlaska.je-ok[b-sgoa48r4wn] { color: var(--good, #2e7d32); }
.wf-hlaska.je-chyba[b-sgoa48r4wn] { color: var(--crit, #c0392b); }
/* /Components/Assistant/AlfredAssistant.razor.rz.scp.css */
/* Alfréd asistent — komorník-rozcestník v pravém dolním rohu. Klik/ťuk otevře menu;
   hover přidá jen jemný náznak (NIKDY není podmínkou — dotyk hover nemá). */

.alfred[b-ifm6dggp2j] {
    position: fixed;
    right: clamp(1rem, 3vw, 2.25rem);
    bottom: clamp(1rem, 3vw, 2.25rem);
    z-index: 60;
    display: flex;
    flex-direction: column;          /* bublina/menu NAD avatarem → drží se v pravém sloupci */
    align-items: flex-end;           /* zarovnané k pravému okraji u Alfréda */
    gap: 0.4rem;
    max-width: min(320px, calc(100vw - 2rem));
    /* Jen opacity — transform v keyframes (i s koncem „none") nechává v Chromiu
       po fill:both identity matici → containing block → fixed odpovědní list by
       zůstal uvězněný uvnitř. Slide dělají děti (bublina/menu), ne tento kořen. */
    animation: alfred-fade-in-b-ifm6dggp2j 480ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
    pointer-events: none;            /* prázdné místo nechytá kliky; děti si je zapnou */
}

.alfred-bublina[b-ifm6dggp2j],
.alfred-menu[b-ifm6dggp2j],
.alfred-popover[b-ifm6dggp2j],
.alfred-avatar[b-ifm6dggp2j] {
    pointer-events: auto;
}

@keyframes alfred-fade-in-b-ifm6dggp2j {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ---------- Vyzývací cedulka (stálá, klikací, čte se jako „klikni na mě") ---------- */
.alfred-bublina[b-ifm6dggp2j] {
    position: relative;
    max-width: 240px;
    margin-right: 0.35rem;
    background-color: rgba(255, 255, 255, 0.92);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    color: var(--c-hneda);
    border: 1px solid var(--barva-linka);
    border-radius: 18px 18px 18px 4px;   /* ostrý roh vpravo dole = směr k Alfrédovi */
    box-shadow: var(--stin-zvednuty);
    transform-origin: bottom right;
}

/* Při první návštěvě jemně naběhne (pozdrav); pak zůstává stálá vyzývací cedulka. */
.alfred-bublina.je-uvitani[b-ifm6dggp2j] {
    animation: alfred-bublina-nabeh-b-ifm6dggp2j 420ms ease both;
}

@keyframes alfred-bublina-nabeh-b-ifm6dggp2j {
    from { opacity: 0; transform: translateY(6px) scale(0.98); }
    /* Konec = transform:none (viz pozn. u alfred-fade-in). */
    to   { opacity: 1; transform: none; }
}

/* Ocásek dolů k Alfrédově hlavě */
.alfred-bublina[b-ifm6dggp2j]::after {
    content: "";
    position: absolute;
    right: 26px;
    bottom: -6px;
    width: 13px;
    height: 13px;
    background-color: rgba(255, 255, 255, 0.92);
    border-right: 1px solid var(--barva-linka);
    border-bottom: 1px solid var(--barva-linka);
    transform: rotate(45deg);
}

/* Celá cedulka je tlačítko — klik otevře menu (i na dotyku). */
.alfred-bublina-spust[b-ifm6dggp2j] {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0.8rem 2.75rem 0.8rem 0.95rem;   /* místo vpravo pro (zvětšený) křížek */
    border: none;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 0.88rem;
    line-height: 1.5;
    text-align: left;
    cursor: pointer;
    border-radius: inherit;
}

.alfred-bublina-spust:hover[b-ifm6dggp2j] {
    color: var(--barva-akcent-text);
}

.alfred-bublina-spust:focus-visible[b-ifm6dggp2j] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

/* Druhé tlačítko uvítací cedulky: nabídka souvislé prohlídky („Provedu vás vším", D4).
   Jemný zelený obrys — pozvání, ne povel; celá cedulka zůstává klidná. */
.alfred-bublina-prohlidka[b-ifm6dggp2j] {
    display: block;
    width: calc(100% - 1.9rem);
    margin: 0 0.95rem 0.8rem;
    padding: 0.45rem 0.8rem;
    border: 1px solid var(--c-zelena-tmava);
    border-radius: 999px;
    background: transparent;
    color: var(--c-zelena-tmava);
    font: inherit;
    font-size: 0.85rem;
    line-height: 1.4;
    text-align: center;
    cursor: pointer;
    transition: background-color var(--prechod), color var(--prechod);
}

.alfred-bublina-prohlidka:hover[b-ifm6dggp2j] {
    background-color: var(--c-zelena-tmava);
    color: var(--c-bila);
}

.alfred-bublina-prohlidka:focus-visible[b-ifm6dggp2j] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

/* Zavírací křížek cedulky — dotykový terč ≥ 40 px (UX audit C15); glyf zůstává drobný. */
.alfred-zavrit[b-ifm6dggp2j] {
    position: absolute;
    top: 0.25rem;
    right: 0.3rem;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--barva-tlumeny-text);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--prechod), color var(--prechod);
}

.alfred-zavrit:hover[b-ifm6dggp2j] {
    background-color: var(--c-krem);
    color: var(--c-hneda);
}

.alfred-zavrit:focus-visible[b-ifm6dggp2j] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 1px;
}

/* ---------- Klidné menu (rozcestník) ---------- */
.alfred-menu[b-ifm6dggp2j] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    width: 250px;
    max-width: calc(100vw - 2rem);
    margin-right: 0.35rem;
    padding: 0.7rem;
    background-color: var(--c-bila);
    border: 1px solid var(--barva-linka);
    border-radius: 16px;
    box-shadow: var(--stin-zvednuty);
    transform-origin: bottom right;
    animation: alfred-bublina-nabeh-b-ifm6dggp2j 200ms ease both;
}

.alfred-menu-uvod[b-ifm6dggp2j] {
    margin: 0.1rem 0.25rem 0.35rem;
    font-size: 0.82rem;
    color: var(--barva-tlumeny-text);
}

.alfred-menu-polozka[b-ifm6dggp2j] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    width: 100%;
    padding: 0.6rem 0.7rem;
    border: 1px solid transparent;
    border-radius: 12px;
    background: transparent;
    color: var(--barva-text);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background-color var(--prechod), border-color var(--prechod);
}

.alfred-menu-polozka:hover[b-ifm6dggp2j] {
    background-color: var(--c-krem);
    border-color: var(--barva-linka);
}

.alfred-menu-polozka:focus-visible[b-ifm6dggp2j] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 1px;
}

.alfred-menu-titulek[b-ifm6dggp2j] {
    font-size: 0.92rem;
    font-weight: 500;
    color: var(--c-hneda);
}

.alfred-menu-popis[b-ifm6dggp2j] {
    font-size: 0.78rem;
    color: var(--barva-tlumeny-text);
    line-height: 1.4;
}

/* ---------- Promluva (Alfréd sám mluví) + potvrzení (Ano/Ne místo modálu) ---------- */
.alfred-promluva[b-ifm6dggp2j] {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    max-width: 300px;
    margin-right: 0.35rem;
    padding: 0.85rem 0.95rem;
    background-color: var(--c-bila);
    color: var(--barva-text);
    border: 1px solid var(--barva-linka);
    border-radius: 18px 18px 18px 4px;   /* ostrý roh vpravo dole = směr k Alfrédovi */
    box-shadow: var(--stin-zvednuty);
    transform-origin: bottom right;
    animation: alfred-bublina-nabeh-b-ifm6dggp2j 200ms ease both;
}

/* Potvrzení = důraznější rámeček (jde o rozhodnutí, ne jen sdělení). Bublina promluvy je uvnitř
   .alfred (pointer-events:none), takže interaktivní potvrzení si musí kliky ZAPNOUT — jinak tlačítka
   Ano/Ne propadnou na obsah stránky za nimi. (Prostá hláška zůstává „průchozí".) */
.alfred-promluva.je-potvrzeni[b-ifm6dggp2j] {
    border-color: var(--c-zelena-tmava);
    flex-direction: column;
    align-items: stretch;
    pointer-events: auto;
}

/* Zastávka prohlídky aplikace (D4): bublina nese tlačítka Další / Ukončit — kliky si musí
   zapnout ze stejného důvodu jako potvrzení (rodič .alfred je pointer-events:none). */
.alfred-promluva.je-prohlidka[b-ifm6dggp2j] {
    flex-direction: column;
    align-items: stretch;
    pointer-events: auto;
}

.alfred-promluva[b-ifm6dggp2j]::after {
    content: "";
    position: absolute;
    right: 26px;
    bottom: -6px;
    width: 13px;
    height: 13px;
    background-color: var(--c-bila);
    border-right: 1px solid var(--barva-linka);
    border-bottom: 1px solid var(--barva-linka);
    transform: rotate(45deg);
}

/* Malá „mluvící" tvář v bublině je REDUNDANTNÍ s velkou bustou Alfréda (ta u bubliny mluví/mrká),
   takže ji v bublině nezobrazujeme — text (a případně tlačítka) stačí. Prvky zůstávají v DOM kvůli
   engine crossfade, jen jsou skryté. */
.alfred-promluva-mimika[b-ifm6dggp2j] {
    display: none;
    position: relative;
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    background-color: var(--c-krem);
}

.alfred-promluva.je-potvrzeni .alfred-promluva-mimika[b-ifm6dggp2j] {
    align-self: flex-start;
}

.alfred-promluva-face[b-ifm6dggp2j] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.alfred-promluva-face-b[b-ifm6dggp2j] {
    opacity: 0;
    transition: opacity 140ms linear;   /* shodné s FADE_MS v enginu */
    pointer-events: none;
}

.alfred-promluva-text[b-ifm6dggp2j] {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--c-hneda);
    min-height: 1.5em;                  /* místo drží layout, ať se bublina „nenafukuje" po znaku */
}

.alfred-promluva-akce[b-ifm6dggp2j] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.6rem;
    justify-content: flex-end;
}

.alfred-promluva-akce .tlacitko[b-ifm6dggp2j] {
    padding: 0.4rem 0.9rem;
    font-size: 0.85rem;
}

/* ---------- Inline popover dotazování ---------- */
.alfred-popover-dotaz[b-ifm6dggp2j] {
    width: min(420px, calc(100vw - 2rem));
    margin-right: 0.35rem;
    /* Jen opacity — viz pozn. u .alfred (fixed odpovědní list uvnitř). */
    animation: alfred-fade-in-b-ifm6dggp2j 200ms ease both;
    /* Pojistka: popover nikdy nepřeroste obrazovku — vnitřek se posouvá. */
    max-height: calc(100vh - 15rem);
    overflow-y: auto;
}

/* ---------- Postava = spouštěč (regulérní tlačítko) ---------- */
.alfred-avatar[b-ifm6dggp2j] {
    flex: 0 0 auto;
    align-self: flex-end;
    position: relative;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;        /* hover náznak: kurzor „dá se kliknout" */
    line-height: 0;
    transition: transform 180ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* Tělo postavy: nese dýchání; button nad ním drží hover/aktivní transform.
   (Animace a transition na TÉMŽE elementu by se praly o transform.) */
.alfred-telo[b-ifm6dggp2j] {
    position: relative;
    display: block;
    line-height: 0;
    animation: alfred-dech-b-ifm6dggp2j 4.5s ease-in-out infinite alternate;
    transform-origin: bottom center;
}

@keyframes alfred-dech-b-ifm6dggp2j {
    from { transform: scale(1); }
    to   { transform: scale(1.008); }
}

.alfred-avatar img[b-ifm6dggp2j] {
    display: block;
    /* Plátno póz je od 15. 7. vyšší (626×819 — vidět i ruce/spis); výška škálovaná ×1,41,
       aby hlava zůstala na obrazovce stejně velká jako dřív. */
    height: clamp(225px, 34vh, 296px);
    width: auto;
    filter: drop-shadow(0 8px 16px rgba(63, 47, 36, 0.28));
}

/* Hover náznak na desktopu: jemné nadzvednutí (NIKDY podmínka interakce). */
.alfred-avatar:hover[b-ifm6dggp2j] {
    transform: translateY(-4px) scale(1.02);
}

.alfred-avatar.je-aktivni[b-ifm6dggp2j] {
    transform: translateY(-2px);
}

.alfred-avatar:focus-visible[b-ifm6dggp2j] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 4px;
    border-radius: 12px;
}

/* jemné mrknutí — překryvný snímek se na okamžik objeví */
.alfred-avatar .alfred-mrk[b-ifm6dggp2j] {
    position: absolute;
    top: 0;
    left: 0;
    filter: none;
    opacity: 0;
    animation: alfred-mrk-b-ifm6dggp2j 6s steps(1, end) infinite;
}

@keyframes alfred-mrk-b-ifm6dggp2j {
    0%, 95.5%, 100% { opacity: 0; }
    96.5%, 98% { opacity: 1; }
}

/* „Mluví" — jemné prolnutí na JEDEN snímek s pootevřenými ústy (sdílí sevřené ruce s idle,
   mění se jen tvář). Žádné cukání rukou ani posun barvy pleti. */
.alfred-avatar .alfred-rec[b-ifm6dggp2j] {
    position: absolute;
    top: 0;
    left: 0;
    filter: none;
    opacity: 0;
}

.alfred-avatar.je-mluvi .alfred-rec[b-ifm6dggp2j] {
    animation: alfred-rec-b-ifm6dggp2j 620ms ease-in-out infinite alternate;
}

@keyframes alfred-rec-b-ifm6dggp2j {
    from { opacity: 0; }
    to   { opacity: 0.9; }
}

/* „Přemýšlí" — krátký cross-fade na zamyšlenou pózu, dokud se čeká na AI. */
.alfred-avatar .alfred-premysli[b-ifm6dggp2j] {
    position: absolute;
    top: 0;
    left: 0;
    filter: none;
    opacity: 0;
    transition: opacity 200ms ease;
}

/* Idle vrstva se při overlay póze MUSÍ schovat — jinak její obrys prosvítá vedle nové pózy
   jako dvojitá kontura („duch"). Cross-fade drží stejné tempo jako nájezd pózy. */
.alfred-avatar .alfred-idle[b-ifm6dggp2j] {
    transition: opacity 200ms ease;
}

/* Přemýšlí (= hledá odpověď na dotaz): Alfréd LISTUJE VE SPISU. Ukáže čtecí pózu a v klidné
   smyčce otáčí stránky — „šel se podívat do spisu". Zamyšlená póza (ruka u brady) se tím
   nahrazuje; idle i mrkání se schovají. Čistě CSS (žádný JS timer). */
.alfred-avatar.je-premysli .alfred-idle[b-ifm6dggp2j],
.alfred-avatar.je-premysli .alfred-premysli[b-ifm6dggp2j] {
    opacity: 0;
}

.alfred-avatar.je-premysli .alfred-cte[b-ifm6dggp2j] {
    opacity: 1;
}

.alfred-avatar.je-premysli .alfred-mrk[b-ifm6dggp2j] {
    animation: none;
    opacity: 0;
}

/* Otočení stránky = 3 mezifáze (roh → vzduch → dokládá vlevo), každá vrstva má okno
   ve společné časové ose. steps(1) drží snímek celé okno (sprite styl, žádné prolnutí
   dvou listů přes sebe). Při přemýšlení běží cyklus ~2,8 s: většinu času čte, pak otočí. */
.alfred-avatar.je-premysli .alfred-cte-l1[b-ifm6dggp2j] {
    animation: alfred-list-f1-b-ifm6dggp2j 2.8s steps(1, end) infinite;
}

.alfred-avatar.je-premysli .alfred-cte-l2[b-ifm6dggp2j] {
    animation: alfred-list-f2-b-ifm6dggp2j 2.8s steps(1, end) infinite;
}

.alfred-avatar.je-premysli .alfred-cte-l3[b-ifm6dggp2j] {
    animation: alfred-list-f3-b-ifm6dggp2j 2.8s steps(1, end) infinite;
}

/* Okna fází v cyklu: 62–70 % roh, 70–78 % vzduch, 78–86 % dokládá; zbytek = čte. */
@keyframes alfred-list-f1-b-ifm6dggp2j {
    0%, 62%, 70%, 100% { opacity: 0; }
    63%, 69% { opacity: 1; }
}

@keyframes alfred-list-f2-b-ifm6dggp2j {
    0%, 70%, 78%, 100% { opacity: 0; }
    71%, 77% { opacity: 1; }
}

@keyframes alfred-list-f3-b-ifm6dggp2j {
    0%, 78%, 86%, 100% { opacity: 0; }
    79%, 85% { opacity: 1; }
}

/* „Čte ze spisu" — idle mikrosmyčka: cross-fade na čtecí pózu; listování = 3fázová
   sekvence otočení stránky. Oči má sklopené → mrkání idle se vypne. */
.alfred-avatar .alfred-cte[b-ifm6dggp2j],
.alfred-avatar .alfred-cte-l1[b-ifm6dggp2j],
.alfred-avatar .alfred-cte-l2[b-ifm6dggp2j],
.alfred-avatar .alfred-cte-l3[b-ifm6dggp2j] {
    position: absolute;
    top: 0;
    left: 0;
    filter: none;
    opacity: 0;
    transition: opacity 300ms ease;
}

.alfred-avatar.je-cte .alfred-cte[b-ifm6dggp2j] {
    opacity: 1;
}

.alfred-avatar.je-cte .alfred-idle[b-ifm6dggp2j] {
    opacity: 0;
}

.alfred-avatar.je-cte .alfred-mrk[b-ifm6dggp2j] {
    animation: none;
    opacity: 0;
}

/* Otočení stránky v klidovém čtení: jednorázová sekvence ~750 ms (fáze po ~250 ms),
   spouští ji C# smyčka třídou .je-listuje. steps(1) = sprite přepnutí bez prolnutí. */
.alfred-avatar.je-cte.je-listuje .alfred-cte-l1[b-ifm6dggp2j] {
    animation: alfred-list-jedna-f1-b-ifm6dggp2j 750ms steps(1, end) both;
}

.alfred-avatar.je-cte.je-listuje .alfred-cte-l2[b-ifm6dggp2j] {
    animation: alfred-list-jedna-f2-b-ifm6dggp2j 750ms steps(1, end) both;
}

.alfred-avatar.je-cte.je-listuje .alfred-cte-l3[b-ifm6dggp2j] {
    animation: alfred-list-jedna-f3-b-ifm6dggp2j 750ms steps(1, end) both;
}

@keyframes alfred-list-jedna-f1-b-ifm6dggp2j {
    0%, 33%, 100% { opacity: 0; }
    1%, 32% { opacity: 1; }
}

@keyframes alfred-list-jedna-f2-b-ifm6dggp2j {
    0%, 33%, 66%, 100% { opacity: 0; }
    34%, 65% { opacity: 1; }
}

@keyframes alfred-list-jedna-f3-b-ifm6dggp2j {
    0%, 66%, 100% { opacity: 0; }
    67%, 97% { opacity: 1; }
}

/* ---------- Menší okna (≤ 1200 px): busta se zmenší, ať nezakrývá tlačítka a řazení;
   bublina se zúží, ať neleží přes obsah. ---------- */
@media (max-width: 1200px) {
    .alfred-avatar img[b-ifm6dggp2j] {
        height: 166px;   /* 118 × 1,41 — vyšší plátno, stejná hlava */
    }

    .alfred-bublina[b-ifm6dggp2j],
    .alfred-promluva[b-ifm6dggp2j] {
        max-width: min(220px, calc(100vw - 2rem));
    }
}

/* ---------- Mobil (≤ 700 px): z busty zbude malý kulatý avatar (jen hlava v kroužku),
   klikací plocha je JEN těch ~60 px — velká postava kradla tapy přes půl obrazovky.
   Bubliny kompaktní (≤ 85vw). Funkčnost beze změny: ťuknutí na avatar otevře menu. ---------- */
@media (max-width: 700px) {
    .alfred[b-ifm6dggp2j] {
        right: 0.75rem;
        bottom: 0.75rem;
        gap: 0.3rem;
        max-width: min(85vw, calc(100vw - 1.5rem));
    }

    /* Trvalá vyzývací cedulka na malém displeji překrývá akce obsahu (a nikdy sama
       nezmizí) — skryj ji; avatar zůstává klikací a promluvy/potvrzení se ukážou dál. */
    .alfred-bublina[b-ifm6dggp2j] {
        display: none;
    }

    .alfred-avatar[b-ifm6dggp2j] {
        width: 60px;
        height: 60px;
        border-radius: 50%;
        overflow: hidden;
        background-color: var(--c-krem);
        border: 1px solid var(--barva-linka);
        box-shadow: var(--stin-zvednuty);
    }

    .alfred-avatar:focus-visible[b-ifm6dggp2j] {
        border-radius: 50%;
    }

    /* Výřez hlavy: plátno póz je 626×581, střed hlavy ±(305, 110) px zdroje. Výška
       obrázku 110 px → měřítko 0,189 → střed hlavy na (58, 21) px; margin (ne transform —
       ten patří dýchání) ho srovná do středu kroužku (30, 30), celá hlava vč. brady se
       vejde. Překryvy póz (mrknutí…) jedou s tělem — jsou absolute uvnitř. */
    .alfred-avatar img[b-ifm6dggp2j] {
        height: 110px;
        filter: none;   /* stín kroužku dělá box-shadow, ořezaný drop-shadow by rušil */
    }

    .alfred-telo[b-ifm6dggp2j] {
        margin-left: -28px;
        margin-top: 8px;
        animation: none;   /* dýchání (scale) by v těsném ořezu „plavalo" */
    }

    .alfred-avatar:hover[b-ifm6dggp2j] {
        transform: none;   /* nadzvednutí by vyjelo hlavu z kroužku */
    }

    .alfred-avatar.je-aktivni[b-ifm6dggp2j] {
        transform: none;
    }

    .alfred-bublina[b-ifm6dggp2j],
    .alfred-promluva[b-ifm6dggp2j],
    .alfred-menu[b-ifm6dggp2j] {
        max-width: min(85vw, 320px);
    }

    /* Ocásek bubliny míří na malý avatar (ten je teď u kraje). */
    .alfred-bublina[b-ifm6dggp2j]::after,
    .alfred-promluva[b-ifm6dggp2j]::after {
        right: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .alfred[b-ifm6dggp2j] { animation: none; }
    .alfred-bublina.je-uvitani[b-ifm6dggp2j],
    .alfred-menu[b-ifm6dggp2j],
    .alfred-promluva[b-ifm6dggp2j],
    .alfred-popover-dotaz[b-ifm6dggp2j] { animation: none; }
    /* Promluva: engine sám vypíše text rovnou; tvář se nehýbe (překryv skrytý). */
    .alfred-promluva-face-b[b-ifm6dggp2j] { transition: none; }
    .alfred-avatar[b-ifm6dggp2j] { transition: none; }
    .alfred-avatar:hover[b-ifm6dggp2j],
    .alfred-avatar.je-aktivni[b-ifm6dggp2j] { transform: none; }
    .alfred-avatar .alfred-mrk[b-ifm6dggp2j] { animation: none; }
    .alfred-telo[b-ifm6dggp2j] { animation: none; }
    .alfred-avatar.je-mluvi .alfred-rec[b-ifm6dggp2j] { animation: none; opacity: 0; }
    /* Přemýšlí: bez prolnutí, ale pózu ukázat staticky (uživatel ví, že se pracuje). */
    .alfred-avatar .alfred-idle[b-ifm6dggp2j],
    .alfred-avatar .alfred-premysli[b-ifm6dggp2j] { transition: none; }
    .alfred-avatar.je-premysli .alfred-premysli[b-ifm6dggp2j] { animation: none; opacity: 1; }
    .alfred-avatar.je-premysli .alfred-idle[b-ifm6dggp2j] { opacity: 0; }
}
/* /Components/Assistant/AlfredBriefing.razor.rz.scp.css */
/* Briefingy — seznam uložených karet, formátovaný obsah, akce. Klidný tón Alfréda,
   sladěno s chat panelem (mirror .chat-* stylů z AlfredChat). */

.brief-panel[b-u8iusz5ju9] {
    padding: 1.5rem;
    max-width: 760px;
}

.brief-seznam[b-u8iusz5ju9] {
    margin-top: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.brief-karta[b-u8iusz5ju9] {
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: var(--c-zelena-svetla);
}

.brief-karta.je-archiv[b-u8iusz5ju9] {
    border-left-color: var(--barva-linka);
    background-color: transparent;
    opacity: 0.9;
}

.brief-karta-hlava[b-u8iusz5ju9] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.brief-karta-nazev[b-u8iusz5ju9] {
    font-size: 1.05rem;
    margin: 0;
}

.brief-karta-datum[b-u8iusz5ju9] {
    font-size: 0.85rem;
    white-space: nowrap;
}

/* Formátovaný obsah briefingu (Markdown → HTML). */
.brief-karta-obsah[b-u8iusz5ju9] {
    line-height: 1.7;
}

.brief-karta-obsah h3[b-u8iusz5ju9] {
    font-size: 1rem;
    margin: 1rem 0 0.4rem;
    color: var(--c-hneda-tmava);
}

.brief-karta-obsah h4[b-u8iusz5ju9] {
    font-size: 0.95rem;
    margin: 0.85rem 0 0.35rem;
    color: var(--c-hneda-tmava);
}

.brief-karta-obsah h3:first-child[b-u8iusz5ju9],
.brief-karta-obsah h4:first-child[b-u8iusz5ju9] {
    margin-top: 0;
}

.brief-karta-obsah ul[b-u8iusz5ju9] {
    margin: 0.35rem 0 0.75rem;
    padding-left: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.brief-karta-obsah p[b-u8iusz5ju9] {
    margin: 0 0 0.6rem;
}

.brief-karta-akce[b-u8iusz5ju9] {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--barva-linka);
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.brief-akce[b-u8iusz5ju9] {
    font-size: 0.85rem;
    padding: 0.45rem 0.8rem;
}

/* Vzhled řeší globální .tlacitko-tichy / .tlacitko-nebezpeci-tichy (cimpel.css);
   tady jen umístění „Smazat" doprava. */
.brief-akce-smazat[b-u8iusz5ju9] {
    margin-left: auto;
}

.brief-uprava[b-u8iusz5ju9] {
    margin-top: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Dvojčata .chat-label / .chat-radek z AlfredChat.razor.css — scoped CSS se přes
   hranici komponenty nepřenáší, proto je formulář úpravy potřebuje tady znovu. */
.chat-label[b-u8iusz5ju9] {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}

.chat-radek[b-u8iusz5ju9] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

/* Pole pokynu pruží na šířku řádku (ať se placeholder s příkladem vejde celý). */
.chat-radek .pole[b-u8iusz5ju9] {
    flex: 1 1 16rem;
}

/* Archiv — sbalený, decentní přepínač. */
.brief-archiv[b-u8iusz5ju9] {
    margin-top: 1.75rem;
}

.brief-archiv-prepinac[b-u8iusz5ju9] {
    border: none;
    background: transparent;
    color: var(--barva-akcent-text);
    font-family: var(--font-text);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0.25rem 0;
}

.brief-archiv-prepinac:hover[b-u8iusz5ju9] {
    text-decoration: underline;
}

.brief-archiv-prepinac:focus-visible[b-u8iusz5ju9] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}
/* /Components/Assistant/AlfredChat.razor.rz.scp.css */
/* Chat panel asistenta — klidný, vzdušný, v tónu Alfréda. Mirror stylu RodinnySpis. */

.chat-panel[b-mwmyedpgsb] {
    padding: 1.5rem;
    max-width: 720px;
}

.chat-hlava[b-mwmyedpgsb] {
    position: relative;
}

.chat-hlava h2[b-mwmyedpgsb] {
    font-size: 1.25rem;
    margin-bottom: 0.5rem;
}

/* Zavírací křížek — jen když je chat v popoveru Alfréda (OnZavrit předán). */
.chat-zavrit[b-mwmyedpgsb] {
    position: absolute;
    top: -0.3rem;
    right: -0.3rem;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--barva-tlumeny-text);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--prechod), color var(--prechod);
}

.chat-zavrit:hover[b-mwmyedpgsb] {
    background-color: var(--c-krem);
    color: var(--c-hneda);
}

.chat-zavrit:focus-visible[b-mwmyedpgsb] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 1px;
}

.chat-podtitulek[b-mwmyedpgsb] {
    line-height: 1.6;
    margin-bottom: 1.25rem;
}

/* Výběr rodiny (dřív .chat-vyber tady) žije ve VyberRodiny.razor.css — scoped CSS se
   přes hranici komponenty nepřenáší, tady byla pravidla mrtvá. */

.chat-label[b-mwmyedpgsb] {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}

.chat-select[b-mwmyedpgsb],
.chat-vstup[b-mwmyedpgsb] {
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: var(--c-bila);
    font-family: var(--font-text);
    font-size: 0.95rem;
    color: var(--barva-text);
    transition: border-color var(--prechod);
}

.chat-select:focus[b-mwmyedpgsb],
.chat-vstup:focus[b-mwmyedpgsb] {
    outline: none;
    border-color: var(--c-zelena-tmava);
}

.chat-vstup:disabled[b-mwmyedpgsb] {
    background-color: transparent;
    cursor: not-allowed;
}

/* --- Odpověď + zdroje --- */
/* Odpověď Alfréda = neutrální BÍLÁ karta (odliší se od zelené bubliny dotazu uživatele). */
.chat-odpoved[b-mwmyedpgsb] {
    margin-bottom: 1.25rem;
    padding: 0.7rem 0.95rem;
    background-color: var(--c-bila);
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
}

/* Štítek „Alfréd" nad odpovědí (protějšek „Vy" u dotazu). */
.chat-kdo-alfred[b-mwmyedpgsb] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--c-hneda);
    margin-bottom: 0.25rem;
}

.chat-odpoved-text[b-mwmyedpgsb] {
    line-height: 1.7;
    white-space: pre-wrap;
}

/* Zdroje pod odpovědí vykresluje (a styluje) komponenta ChatZdroje — styly žijí
   v ChatZdroje.razor.css (scoped CSS se přes hranici komponenty nepřenáší). */

/* --- Formulář --- */
.chat-formular[b-mwmyedpgsb] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.chat-radek[b-mwmyedpgsb] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.chat-vstup[b-mwmyedpgsb] {
    flex: 1 1 12rem;
    min-width: 0;
}

.chat-vstup[b-mwmyedpgsb]::placeholder {
    color: var(--barva-text-tlumeny);
}

/* Inline nápověda u neaktivního tlačítka („Nejdřív vyberte rodinu.") — říká PROČ je
   tlačítko zašedlé, místo tichého nefungování (UX audit B10). */
.chat-napoveda[b-mwmyedpgsb] {
    align-self: center;
    font-size: 0.85rem;
    line-height: 1.4;
}

/* Ukázkové dotazy pod polem (UX audit D1) — pilulky v brand tónu; klik rovnou odešle.
   Ukazují se jen v prázdné konverzaci, pak ustoupí vláknu. */
.chat-chipy[b-mwmyedpgsb] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.chat-chip[b-mwmyedpgsb] {
    padding: 0.35rem 0.85rem;
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
    background-color: var(--c-krem);
    color: var(--c-hneda);
    font-family: var(--font-text);
    font-size: 0.85rem;
    line-height: 1.4;
    cursor: pointer;
    transition: background-color var(--prechod), border-color var(--prechod), color var(--prechod);
}

.chat-chip:hover[b-mwmyedpgsb] {
    background-color: var(--c-zelena-svetla);
    border-color: var(--c-zelena-tmava);
    color: var(--c-hneda-tmava);
}

.chat-chip:focus-visible[b-mwmyedpgsb] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 1px;
}

.chat-hlaska[b-mwmyedpgsb] {
    margin-top: 1.25rem;
    padding: 0.75rem 1rem;
    background-color: var(--c-zelena-svetla);
    border-radius: var(--radius);
}

/* Bublina „píšu odpověď" — drží místo odpovědi, dokud AI přemýšlí (UX audit B9).
   Jemné dýchání textu naznačuje činnost; bez pohybu při omezení animací. */
.chat-odpoved-ceka .chat-odpoved-text[b-mwmyedpgsb] {
    color: var(--barva-text-tlumeny);
    animation: chat-ceka-dych-b-mwmyedpgsb 1.8s ease-in-out infinite;
}

@keyframes chat-ceka-dych-b-mwmyedpgsb {
    0%, 100% { opacity: 0.55; }
    50%      { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .chat-odpoved-ceka .chat-odpoved-text[b-mwmyedpgsb] { animation: none; }
}

/* ---------- Odpovědní list: poloprůhledně přes celou aplikaci (popover režim) ---------- */
/* Bublina rohového Alfréda dlouhou odpověď neunese (rostla mimo obrazovku) — odpověď
   se proto podává na „listu": skleněné pozadí ztlumí aplikaci, list se dá číst,
   kopírovat, uložit a zavřít (Esc / klik mimo). */
.chat-list-pozadi[b-mwmyedpgsb] {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1rem, 4vw, 3rem);
    background-color: rgba(244, 239, 231, 0.62);
    -webkit-backdrop-filter: blur(9px);
    backdrop-filter: blur(9px);
    animation: chat-list-fade-b-mwmyedpgsb 180ms ease both;
}

@keyframes chat-list-fade-b-mwmyedpgsb {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.chat-list[b-mwmyedpgsb] {
    display: flex;
    flex-direction: column;
    width: min(760px, 100%);
    max-height: min(84vh, 56rem);
    background-color: rgba(253, 252, 249, 0.97);
    border: 1px solid rgba(89, 67, 52, 0.14);
    border-radius: 20px;
    box-shadow:
        0 6px 18px rgba(63, 47, 36, 0.10),
        0 24px 70px rgba(63, 47, 36, 0.18);
    animation: chat-list-nabeh-b-mwmyedpgsb 220ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

@keyframes chat-list-nabeh-b-mwmyedpgsb {
    from { opacity: 0; transform: translateY(10px) scale(0.985); }
    to   { opacity: 1; transform: none; }
}

.chat-list-hlava[b-mwmyedpgsb] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.4rem 0.65rem;
    border-bottom: 1px solid rgba(89, 67, 52, 0.10);
}

.chat-list-titulek[b-mwmyedpgsb] {
    margin: 0;
    font-family: var(--font-nadpis);
    font-size: 1.25rem;
    color: var(--c-hneda-tmava);
}

.chat-list-dotaz[b-mwmyedpgsb] {
    margin: 0.25rem 0 0;
    font-size: 0.88rem;
    line-height: 1.4;
}

.chat-list-zavrit[b-mwmyedpgsb] {
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--barva-tlumeny-text);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--prechod), color var(--prechod);
}

.chat-list-zavrit:hover[b-mwmyedpgsb] {
    background-color: var(--c-krem);
    color: var(--c-hneda);
}

.chat-list-zavrit:focus-visible[b-mwmyedpgsb] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 1px;
}

.chat-list-telo[b-mwmyedpgsb] {
    overflow-y: auto;
    padding: 0.9rem 1.4rem 0.6rem;
}

.chat-list-text[b-mwmyedpgsb] {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--barva-text);
}

.chat-list-akce[b-mwmyedpgsb] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.8rem 1.4rem 1.1rem;
    border-top: 1px solid rgba(89, 67, 52, 0.10);
}

.chat-list-akce .chat-akce-hlaska[b-mwmyedpgsb] {
    margin-right: auto;
}

/* Znovuotevření zavřeného listu (v bublině) + akce pod inline odpovědí (/asistent). */
.chat-znovu-otevrit[b-mwmyedpgsb] {
    align-self: flex-start;
    margin: 0.15rem 0;
}

.chat-odpoved-akce[b-mwmyedpgsb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.7rem;
    margin-bottom: 1.75rem;   /* mezera pod tlačítky (Kopírovat/Stáhnout) před dalším dotazem */
}

.chat-akce-hlaska[b-mwmyedpgsb] {
    font-size: 0.8rem;
}

@media (prefers-reduced-motion: reduce) {
    .chat-list-pozadi[b-mwmyedpgsb],
    .chat-list[b-mwmyedpgsb] { animation: none; }
}

/* ---------- Vlákno konverzace (historie otázka → odpověď) ---------- */
.chat-vlakno[b-mwmyedpgsb] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    margin: 0.75rem 0 0;
}

.chat-vymena[b-mwmyedpgsb] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding-bottom: 0.9rem;
    border-bottom: 1px dashed var(--barva-linka);
}

.chat-vymena:last-child[b-mwmyedpgsb] {
    border-bottom: none;
    padding-bottom: 0;
}

.chat-otazka[b-mwmyedpgsb] {
    margin: 0;
    align-self: flex-end;
    max-width: 85%;
    background-color: var(--c-zelena-svetla);
    border: 1px solid var(--barva-linka);
    border-radius: 14px 14px 4px 14px;
    padding: 0.5rem 0.8rem;
    font-size: 0.92rem;
    color: var(--c-hneda-tmava);
    line-height: 1.45;
}

.chat-otazka-vy[b-mwmyedpgsb] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--barva-akcent-text);
    margin-right: 0.4rem;
}

/* V listu je výměna oddělena jemněji (bez pravého zarovnání otázky do bubliny). */
.chat-list-telo .chat-vymena[b-mwmyedpgsb] {
    padding-bottom: 1.1rem;
    margin-bottom: 0.3rem;
}
/* /Components/Assistant/AlfredPotvrzeniVrstva.razor.rz.scp.css */
/* Potvrzovací vrstva bez Alfrédovy postavy — střídmá, jako zbytek back-office (ADR-0033). */

.potvrzeni-zaclona[b-kigurqdc7u] {
    position: fixed;
    inset: 0;
    z-index: 1200;              /* nad sidebarem i MDI záložkami */
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(63, 47, 36, 0.28);
    backdrop-filter: blur(2px);
}

.potvrzeni-panel[b-kigurqdc7u] {
    max-width: 34rem;
    padding: 20px 22px 16px;
    border-radius: var(--radius);
    background: var(--barva-povrch);
    box-shadow: var(--stin-zvednuty);
    /* Žádný barevný pruh vlevo — to je klišé, které v aplikaci nechceme. */
}

.potvrzeni-dotaz[b-kigurqdc7u] {
    margin: 0 0 16px;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--barva-text);
}

.potvrzeni-akce[b-kigurqdc7u] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

@media (prefers-reduced-motion: reduce) {
    .potvrzeni-zaclona[b-kigurqdc7u] { backdrop-filter: none; }
}
/* /Components/Assistant/ChatZdroje.razor.rz.scp.css */
/* Zdroje odpovědi — styly patří KOMPONENTĚ ChatZdroje (ne AlfredChatu), aby se přenesly ke
   KAŽDÉMU použití (živý chat i výpis uložené konverzace). Blazor scoped CSS se přes hranici
   komponenty nepřenáší — kdyby tyto styly zůstaly v AlfredChat.razor.css, ChatZdroje by se
   vykreslily neostylované. Kompaktní řádky menším písmem (zdroje jsou doplňkové, ne hlavní
   obsah); náhled zdroje je brandovaný overlay (viz UX audit A2). */

.chat-zdroje[b-0awucp14fx] {
    margin-top: 0.55rem;
    padding-top: 0.45rem;
    border-top: 1px solid var(--barva-linka);
}

.chat-zdroje-nadpis[b-0awucp14fx] {
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}

.chat-zdroje-seznam[b-0awucp14fx] {
    list-style: none;
    margin: 0.25rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;   /* kompaktní řádky pod sebou — ne velké chipy vedle sebe */
    gap: 0.05rem;
}

.chat-zdroj[b-0awucp14fx] {
    display: flex;
}

/* Řádek zdroje = tlačítko (klik otevře náhled úryvku v chatu, ne navigaci pryč). */
.chat-zdroj-radek[b-0awucp14fx] {
    display: flex;
    gap: 0.5rem;
    align-items: baseline;
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
    font-family: var(--font-text);
    color: inherit;
    cursor: pointer;
    padding: 0.18rem 0.4rem;
    margin: 0 -0.4rem;
    border-radius: 8px;
    transition: background-color var(--prechod);
}

.chat-zdroj-radek:hover[b-0awucp14fx] {
    background-color: var(--c-zelena-svetla);
}

.chat-zdroj-radek:hover .chat-zdroj-popis[b-0awucp14fx] {
    text-decoration: underline;
}

.chat-zdroj-radek:focus-visible[b-0awucp14fx] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 1px;
}

.chat-zdroj-typ[b-0awucp14fx] {
    font-size: 0.7rem;
    min-width: 4.6rem;
    flex: 0 0 auto;
}

.chat-zdroj-popis[b-0awucp14fx] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--c-hneda-tmava);
}

/* Sbalený zbytek: „Zobrazit všechny podklady (N)" / „Skrýt ostatní podklady". */
.chat-zdroje-prepinac[b-0awucp14fx] {
    margin-top: 0.35rem;
    border: none;
    background: transparent;
    padding: 0.15rem 0.1rem;
    font-family: var(--font-text);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--barva-akcent-text);
    cursor: pointer;
}

.chat-zdroje-prepinac:hover[b-0awucp14fx] {
    text-decoration: underline;
}

.chat-zdroje-prepinac:focus-visible[b-0awucp14fx] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 1px;
    border-radius: 6px;
}

.chat-zdroje-prazdno[b-0awucp14fx] {
    margin-top: 1rem;
    line-height: 1.6;
}

/* ---------- Náhled zdroje: brandovaný overlay v rámci chatu ---------- */
/* Stejná „skleněná" metafora jako list konverzace (AlfredChat) — klidné krémové ztlumení,
   karta s obsahem úryvku. z-index nad listem konverzace (ten má 100), náhled se otevírá
   i z něj. Zavře Esc, křížek i klik mimo. */
.zdroj-pozadi[b-0awucp14fx] {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1rem, 4vw, 3rem);
    background-color: rgba(244, 239, 231, 0.62);
    -webkit-backdrop-filter: blur(9px);
    backdrop-filter: blur(9px);
    animation: zdroj-fade-b-0awucp14fx 180ms ease both;
}

@keyframes zdroj-fade-b-0awucp14fx {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.zdroj-okno[b-0awucp14fx] {
    display: flex;
    flex-direction: column;
    width: min(560px, 100%);
    max-height: min(76vh, 42rem);
    background-color: rgba(253, 252, 249, 0.97);
    border: 1px solid rgba(89, 67, 52, 0.14);
    border-radius: var(--radius-velky);
    box-shadow:
        0 6px 18px rgba(63, 47, 36, 0.10),
        0 24px 70px rgba(63, 47, 36, 0.18);
    animation: zdroj-nabeh-b-0awucp14fx 220ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

@keyframes zdroj-nabeh-b-0awucp14fx {
    from { opacity: 0; transform: translateY(10px) scale(0.985); }
    to   { opacity: 1; transform: none; }
}

.zdroj-hlava[b-0awucp14fx] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.05rem 1.3rem 0.6rem;
    border-bottom: 1px solid rgba(89, 67, 52, 0.10);
}

.zdroj-hlava-texty[b-0awucp14fx] {
    min-width: 0;
}

.zdroj-typ[b-0awucp14fx] {
    display: block;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.zdroj-titulek[b-0awucp14fx] {
    margin: 0.15rem 0 0;
    font-family: var(--font-nadpis);
    font-size: 1.15rem;
    color: var(--c-hneda-tmava);
    overflow-wrap: anywhere;
}

.zdroj-zavrit[b-0awucp14fx] {
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--barva-tlumeny-text);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--prechod), color var(--prechod);
}

.zdroj-zavrit:hover[b-0awucp14fx] {
    background-color: var(--c-krem);
    color: var(--c-hneda);
}

.zdroj-zavrit:focus-visible[b-0awucp14fx] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 1px;
}

.zdroj-obsah[b-0awucp14fx] {
    overflow-y: auto;
    padding: 0.85rem 1.3rem 0.4rem;
}

.zdroj-text[b-0awucp14fx] {
    margin: 0 0 0.6rem;
    font-size: 0.92rem;
    line-height: 1.65;
    color: var(--barva-text);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.zdroj-akce[b-0awucp14fx] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.3rem 1rem;
    border-top: 1px solid rgba(89, 67, 52, 0.10);
}

@media (prefers-reduced-motion: reduce) {
    .zdroj-pozadi[b-0awucp14fx],
    .zdroj-okno[b-0awucp14fx] { animation: none; }
}
/* /Components/Assistant/UlozeneKonverzace.razor.rz.scp.css */
/* Uložené konverzace — seznam karet + rozbalený výpis dialogu. Klidný tón Alfréda, sladěno
   s panelem briefingů (mirror .brief-* / .chat-*). Self-contained: nespoléhá na scoped třídy
   jiných komponent (ty se přes hranici komponenty nepřenášejí). */

.kon-panel[b-tlcgz4l7if] {
    padding: 1.5rem;
    max-width: 760px;
}

.kon-hlava h2[b-tlcgz4l7if] {
    font-size: 1.25rem;
    margin-bottom: 0.5rem;
}

.kon-podtitulek[b-tlcgz4l7if] {
    line-height: 1.6;
    margin-bottom: 1.25rem;
}

.kon-seznam[b-tlcgz4l7if] {
    margin-top: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.kon-karta[b-tlcgz4l7if] {
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: var(--c-zelena-svetla);
}

.kon-karta.je-archiv[b-tlcgz4l7if] {
    border-left-color: var(--barva-linka);
    background-color: transparent;
    opacity: 0.9;
}

.kon-karta-hlava[b-tlcgz4l7if] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.kon-karta-nazev[b-tlcgz4l7if] {
    font-size: 1.05rem;
    margin: 0;
}

.kon-karta-datum[b-tlcgz4l7if] {
    font-size: 0.85rem;
    white-space: nowrap;
}

.kon-karta-akce[b-tlcgz4l7if] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.kon-akce[b-tlcgz4l7if] {
    font-size: 0.85rem;
    padding: 0.45rem 0.8rem;
}

/* Vzhled řeší globální .tlacitko-tichy / .tlacitko-nebezpeci-tichy (cimpel.css);
   tady jen umístění „Smazat" doprava. */
.kon-akce-smazat[b-tlcgz4l7if] {
    margin-left: auto;
}

/* --- Detail konverzace: brandovaný overlay (vzor náhledu zdroje ChatZdroje / list AlfredChat).
   Dřív se výpis vykresloval inline a stránka narostla přes celou obrazovku bez možnosti
   zavřít (UX audit C5). Self-contained — scoped CSS se přes hranici komponenty nepřenáší. */
.kon-detail-pozadi[b-tlcgz4l7if] {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1rem, 4vw, 3rem);
    background-color: rgba(244, 239, 231, 0.62);
    -webkit-backdrop-filter: blur(9px);
    backdrop-filter: blur(9px);
    animation: kon-detail-fade-b-tlcgz4l7if 180ms ease both;
}

@keyframes kon-detail-fade-b-tlcgz4l7if {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.kon-detail-okno[b-tlcgz4l7if] {
    display: flex;
    flex-direction: column;
    width: min(760px, 100%);
    max-height: min(84vh, 56rem);
    background-color: rgba(253, 252, 249, 0.97);
    border: 1px solid rgba(89, 67, 52, 0.14);
    border-radius: 20px;
    box-shadow:
        0 6px 18px rgba(63, 47, 36, 0.10),
        0 24px 70px rgba(63, 47, 36, 0.18);
    animation: kon-detail-nabeh-b-tlcgz4l7if 220ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

@keyframes kon-detail-nabeh-b-tlcgz4l7if {
    from { opacity: 0; transform: translateY(10px) scale(0.985); }
    to   { opacity: 1; transform: none; }
}

.kon-detail-hlava[b-tlcgz4l7if] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.4rem 0.65rem;
    border-bottom: 1px solid rgba(89, 67, 52, 0.10);
}

.kon-detail-hlava-texty[b-tlcgz4l7if] {
    min-width: 0;
}

.kon-detail-typ[b-tlcgz4l7if] {
    display: block;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.kon-detail-titulek[b-tlcgz4l7if] {
    margin: 0.15rem 0 0;
    font-family: var(--font-nadpis);
    font-size: 1.25rem;
    color: var(--c-hneda-tmava);
    overflow-wrap: anywhere;
}

.kon-detail-zavrit[b-tlcgz4l7if] {
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--barva-tlumeny-text);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--prechod), color var(--prechod);
}

.kon-detail-zavrit:hover[b-tlcgz4l7if] {
    background-color: var(--c-krem);
    color: var(--c-hneda);
}

.kon-detail-zavrit:focus-visible[b-tlcgz4l7if] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 1px;
}

.kon-detail-telo[b-tlcgz4l7if] {
    overflow-y: auto;
    padding: 0.9rem 1.4rem 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.kon-detail-akce[b-tlcgz4l7if] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.8rem 1.4rem 1.1rem;
    border-top: 1px solid rgba(89, 67, 52, 0.10);
}

@media (prefers-reduced-motion: reduce) {
    .kon-detail-pozadi[b-tlcgz4l7if],
    .kon-detail-okno[b-tlcgz4l7if] { animation: none; }
}

/* --- Výpis dialogu (výměny uvnitř detailu) --- */
.kon-vymena[b-tlcgz4l7if] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding-bottom: 0.9rem;
    border-bottom: 1px dashed var(--barva-linka);
}

.kon-vymena:last-child[b-tlcgz4l7if] {
    border-bottom: none;
    padding-bottom: 0;
}

/* Otázka uživatele = zelená bublina vpravo (mirror .chat-otazka). */
.kon-otazka[b-tlcgz4l7if] {
    margin: 0;
    align-self: flex-end;
    max-width: 85%;
    background-color: var(--c-bila);
    border: 1px solid var(--barva-linka);
    border-radius: 14px 14px 4px 14px;
    padding: 0.5rem 0.8rem;
    font-size: 0.92rem;
    color: var(--c-hneda-tmava);
    line-height: 1.45;
}

.kon-otazka-vy[b-tlcgz4l7if] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--barva-akcent-text);
    margin-right: 0.4rem;
}

/* Štítek „Alfréd" nad odpovědí (protějšek „Vy" u dotazu). */
.kon-kdo-alfred[b-tlcgz4l7if] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--c-hneda);
    margin-bottom: 0.15rem;
}

.kon-odpoved-text[b-tlcgz4l7if] {
    line-height: 1.7;
}

.kon-odpoved-text p[b-tlcgz4l7if] {
    margin: 0 0 0.6rem;
}

.kon-odpoved-text ul[b-tlcgz4l7if] {
    margin: 0.35rem 0 0.75rem;
    padding-left: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

/* Archiv — sbalený, decentní přepínač (mirror .brief-archiv). */
.kon-archiv[b-tlcgz4l7if] {
    margin-top: 1.75rem;
}

.kon-archiv-prepinac[b-tlcgz4l7if] {
    border: none;
    background: transparent;
    color: var(--barva-akcent-text);
    font-family: var(--font-text);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0.25rem 0;
}

.kon-archiv-prepinac:hover[b-tlcgz4l7if] {
    text-decoration: underline;
}

.kon-archiv-prepinac:focus-visible[b-tlcgz4l7if] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}
/* /Components/Assistant/VyberRodiny.razor.rz.scp.css */
/* Výběr rodiny — vlastní scoped styly. Dřív ležela tato pravidla v AlfredChat.razor.css,
   ale scoped CSS se přes hranici komponenty nepřenáší (byla mrtvá) — tady platí všude,
   kde se výběr používá (chat v popoveru, společný výběr na /asistent). */

.chat-vyber[b-saxgojymjz] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 1.25rem;
}

.chat-label[b-saxgojymjz] {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}
/* /Components/Layout/BackOfficeAlfred.razor.rz.scp.css */
/* Alfrédovy PANELY v rohu — bublina „něco pro vás mám", panel dotazu a promluva.
   Postavu tenhle soubor od 10. 8. 2026 nekreslí: kolečko i hrdinská postava patří sdílené
   komponentě AlfredRoh (css/alfred-roh.css), protože je má klientská tvář i back office
   stejné (ADR-0079). Zbyly panely — a ty se všechny kotví do TÉŽE zóny (tokeny
   --alfred-zona-*), takže se s Alfrédem nemůžou rozejít. Hlídá AlfredovaZonaTests. */

/* ---------- Bublina „něco pro vás mám" ----------
   FIXNÍ V ROHU NAD KOLEČKEM (10. 8. 2026). Do té doby visela absolutně nad maskotem
   v sidebaru; maskot tam není a bublina patří k Alfrédovi, ne k navigaci. Odsazení počítá
   z výšky zóny — táž čísla jako panel dotazu, takže se panely nemůžou rozejít. */
.boa-bublina[b-v5ln9igtde] {
    position: fixed;
    left: auto;
    right: var(--alfred-zona-x, 20px);
    bottom: calc(var(--alfred-zona-h, 150px) + 8px);
    z-index: 90;
    width: min(300px, calc(100vw - 40px));
    box-sizing: border-box;
    padding: 10px 12px 10px;
    background: #3a372c;                       /* o stupeň světlejší než sidebar */
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 10px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
    line-height: 1.45;
    animation: boa-bublina-nabeh-b-v5ln9igtde 220ms ease both;
}

/* Ocásek míří dolů na kolečko v rohu (to je vpravo, průměr 56 px od kraje zóny). */
.boa-bublina[b-v5ln9igtde]::after {
    content: "";
    position: absolute;
    bottom: -6px;
    left: auto;
    right: 22px;
    width: 10px;
    height: 10px;
    background: #3a372c;
    border-right: 1px solid rgba(255, 255, 255, 0.16);
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    transform: rotate(45deg);
}

@keyframes boa-bublina-nabeh-b-v5ln9igtde {
    from { opacity: 0; transform: translateY(5px); }
    to   { opacity: 1; transform: translateY(0); }
}

.boa-zavrit[b-v5ln9igtde] {
    position: absolute;
    top: 4px;
    right: 6px;
    width: 20px;
    height: 20px;
    border: none;
    background: transparent;
    color: var(--sidebar-fg-dim, #b9b2a2);
    font-size: 13px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
}

.boa-zavrit:hover[b-v5ln9igtde] { background: rgba(255, 255, 255, 0.1); color: #e9e3d6; }

/* Úvodní věta komorníka. */
.boa-uvod[b-v5ln9igtde] {
    margin: 0 16px 7px 0;
    font-size: 12px;
    font-weight: 600;
    color: #e9e3d6;
}

.boa-podnety[b-v5ln9igtde] {
    list-style: none;
    margin: 2px 0 4px;
    padding: 0 0 0 8px;
    display: grid;
    gap: 2px;
}

.boa-podnety a[b-v5ln9igtde] {
    display: block;
    padding: 4px 6px;
    margin: 0 -6px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    color: #e9e3d6;
    text-decoration: none;
}

.boa-podnety a:hover[b-v5ln9igtde] { background: rgba(255, 255, 255, 0.08); color: #fff; }

/* Odkaz „vše u mě na jednom místě" — bublina zmizí, obrazovka zůstává. */
.boa-vic[b-v5ln9igtde] {
    display: inline-block;
    margin-top: 4px;
    font-size: 11px;
    color: var(--sidebar-fg-dim, #b9b2a2);
}

.boa-vic:hover[b-v5ln9igtde] { color: #e9e3d6; }

/* ---------- Panel dotazu a promluva (jen klientská tvář) ----------
   Alfréd stojí v PRAVÉM DOLNÍM ROHU (AlfredRoh, tokeny --alfred-zona-*) a panel se otvírá
   NAD ním — zůstává vidět pod svým listem. Tytéž tokeny jako postava a rezerva obsahu: čísla se nemůžou rozjet (hlídá
   AlfredovaZonaTests); fallbacky jen pro jistotu, panel se kreslí výhradně pod .mjt.
   Fixní schválně: drží roh při rolování dlouhých tabulek. Žádný transform/filter na
   kontejneru — odpovědní list uvnitř chatu je `position: fixed` a transform by mu udělal
   containing block a uvěznil ho (viz .alfred). */
.boa-popover[b-v5ln9igtde] {
    position: fixed;
    left: auto;
    right: var(--alfred-zona-x, 20px);
    bottom: calc(var(--alfred-zona-h, 150px) + 8px);
    z-index: 90;
    width: min(430px, calc(100vw - 40px));
    max-height: calc(100vh - var(--alfred-zona-h, 150px) - 24px);
    overflow-y: auto;
    animation: boa-nabeh-opacity-b-v5ln9igtde 200ms ease both;
}

/* Chat je cizí komponenta — scoped CSS na ni bez ::deep nedosáhne. Krémová karta na tmavém
   podkladu je záměr: je to Alfrédův list, ne další panel sidebaru. */
.boa-popover[b-v5ln9igtde]  .chat-panel {
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);
}

.boa-promluva[b-v5ln9igtde] {
    position: fixed;
    left: auto;
    right: var(--alfred-zona-x, 20px);
    bottom: calc(var(--alfred-zona-h, 150px) + 8px);
    z-index: 90;
    width: min(340px, calc(100vw - 40px));
    box-sizing: border-box;
    padding: 12px 30px 12px 14px;
    background: #3a372c;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 12px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.4);
    animation: boa-nabeh-opacity-b-v5ln9igtde 200ms ease both;
}

.boa-promluva-text[b-v5ln9igtde] {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.5;
    color: #e9e3d6;
}

@keyframes boa-nabeh-opacity-b-v5ln9igtde {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Na úzkém displeji se z panelů stane spodní list přes celou šířku: klientská část je
   mobile-first (ADR-0033) a odpověď na dotaz se schovat nesmí. Bublina jde s nimi — Alfrédovo
   sdělení se na telefonu do karty u kraje netrefí. */
@media (max-width: 900px) {
    .boa-bublina[b-v5ln9igtde],
    .boa-popover[b-v5ln9igtde],
    .boa-promluva[b-v5ln9igtde] {
        left: 12px;
        right: 12px;
        bottom: 12px;
        width: auto;
        max-height: calc(100vh - 24px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .boa-bublina[b-v5ln9igtde], .boa-popover[b-v5ln9igtde], .boa-promluva[b-v5ln9igtde] { animation: none; }
}
/* /Components/Layout/BackOfficeSidebar.razor.rz.scp.css */
/* Sidebar back-office (ADR-0033) — tmavá sépie, krémový text, zelené akcenty.
   Vzor Raynet (hustý IS), ale v brand jazyce Cimpelu. Desktop-first. */

.bo-sidebar[b-5zm9uu9f5y] {
    display: flex;
    flex-direction: column;
    width: 232px;
    flex: 0 0 232px;
    min-height: 100%;
    background-color: var(--c-hneda-tmava);
    color: var(--c-krem);
    padding: 1.1rem 0.8rem 0.9rem;
    box-sizing: border-box;
}

/* --- Lockup (strom + Alfréd / Cimpel & partneři) ------------------------- */
.bo-lockup[b-5zm9uu9f5y] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.25rem 0.55rem 1rem;
    text-decoration: none;
    border-bottom: 1px solid rgba(244, 239, 231, 0.14);
    margin-bottom: 0.9rem;
    transition: opacity var(--prechod);
}

.bo-lockup:hover[b-5zm9uu9f5y] { opacity: 0.85; }

.bo-lockup-kolo[b-5zm9uu9f5y] {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--c-bila);
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
}

.bo-lockup-strom[b-5zm9uu9f5y] {
    width: 30px;
    height: 30px;
    display: block;
}

.bo-lockup-texty[b-5zm9uu9f5y] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
    min-width: 0;
}

/* „back office" je stejně velké jako „Alfréd" (jeden nápis; zalomí se za jménem). */
.bo-lockup-produkt[b-5zm9uu9f5y] {
    font-family: var(--font-nadpis);
    font-size: 1.25rem;
    line-height: 1.12;
    color: var(--c-krem);
    letter-spacing: 0.01em;
}

.bo-lockup-firma[b-5zm9uu9f5y] {
    font-size: 0.6rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(244, 239, 231, 0.62);
    line-height: 1.35;
}

/* --- Navigace ------------------------------------------------------------ */
.bo-nav[b-5zm9uu9f5y] { flex: 1; }

.bo-nav-seznam[b-5zm9uu9f5y] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.15rem;
}

/* Nadpis sekce v navigaci (jako v mockupu: tichý štítek nad skupinou). */
.bo-nav-sekce[b-5zm9uu9f5y] {
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
    color: rgba(244, 239, 231, 0.42);
    padding: 0.95rem 0.7rem 0.3rem;
}

.bo-nav-odkaz[b-5zm9uu9f5y] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.55rem 0.7rem;
    border-radius: 10px;
    color: rgba(244, 239, 231, 0.82);
    text-decoration: none;
    font-size: 0.92rem;
    font-weight: 500;
    transition: background-color var(--prechod), color var(--prechod);
}

.bo-nav-odkaz:hover[b-5zm9uu9f5y] {
    background-color: rgba(244, 239, 231, 0.08);
    color: var(--c-krem);
}

.bo-nav-odkaz.je-aktivni[b-5zm9uu9f5y] {
    background-color: rgba(175, 202, 11, 0.14);
    color: var(--c-krem);
    font-weight: 600;
    box-shadow: inset 3px 0 0 var(--c-zelena);
}

/* Fokus na tmavém podkladu: globální tmavý prstenec by nebyl vidět — světlý/zelený. */
.bo-nav-odkaz:focus-visible[b-5zm9uu9f5y] {
    outline: 3px solid var(--c-zelena);
    outline-offset: 2px;
}

.bo-nav-ikona[b-5zm9uu9f5y] {
    width: 20px;
    height: 20px;
    flex: none;
    color: var(--c-zelena);
}

.bo-nav-nazev[b-5zm9uu9f5y] { flex: 1; }

.bo-nav-pocet[b-5zm9uu9f5y] {
    background-color: var(--c-zelena);
    color: var(--c-hneda-tmava);
    font-size: 0.72rem;
    font-weight: 700;
    border-radius: 999px;
    padding: 0.1rem 0.5rem;
    line-height: 1.3;
}

/* --- Pata ----------------------------------------------------------------- */
.bo-sidebar-pata[b-5zm9uu9f5y] {
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(244, 239, 231, 0.38);
    padding: 0.6rem 0.7rem 0;
    border-top: 1px solid rgba(244, 239, 231, 0.1);
}

/* Užší okna (back-office je desktop-first, ale nesmí se rozpadnout): sidebar
   se stáhne na ikonovou lištu — názvy se schovají, ikony a badge zůstanou. */
@media (max-width: 1080px) {
    .bo-sidebar[b-5zm9uu9f5y] {
        width: 64px;
        flex-basis: 64px;
        padding-inline: 0.45rem;
    }

    .bo-lockup[b-5zm9uu9f5y] { justify-content: center; padding-inline: 0; gap: 0; }
    .bo-lockup-texty[b-5zm9uu9f5y] { display: none; }
    .bo-nav-nazev[b-5zm9uu9f5y] { display: none; }
    .bo-nav-sekce[b-5zm9uu9f5y] { display: none; }
    .bo-nav-odkaz[b-5zm9uu9f5y] { justify-content: center; padding: 0.55rem 0.4rem; position: relative; }
    .bo-nav-pocet[b-5zm9uu9f5y] { position: absolute; top: 0.1rem; right: 0.1rem; padding: 0.02rem 0.35rem; }
    .bo-sidebar-pata[b-5zm9uu9f5y] { display: none; }
}
/* /Components/Layout/Drobecky.razor.rz.scp.css */
/* Drobečková navigace (breadcrumbs) — tlumená, malá, oddělovač ›. Vizuál převzat
   z původních admin drobečků, teď sdílený napříč stránkami. */

.drobecky[b-33k7j4l749] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    margin: 0 0 1.75rem;
}

.drobecky a[b-33k7j4l749] {
    color: var(--barva-tlumeny-text);
    text-decoration: none;
}

.drobecky a:hover[b-33k7j4l749] {
    color: var(--c-hneda);
}

/* Aktuální stránka — jemně zvýrazněná (plná hnědá místo tlumené), neinteraktivní. */
.drobecky [aria-current="page"][b-33k7j4l749] {
    color: var(--barva-text);
}
/* /Components/Layout/GlobalniHledaniOverlay.razor.rz.scp.css */
/* Globální hledání (D9) — lupa v hlavičce + brandovaný overlay (nativní <dialog> v top-layer).
   Vzhled navazuje na náhled zdroje v chatu (ChatZdroje): krémový overlay, jemné stíny, značková
   zelená pro fokus/výběr. */

/* --- Spouštěč (lupa v horní navigaci) ---------------------------------- */
.hledani-spoustec[b-bo8zjjl3h4] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.6rem;
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
    background-color: rgba(255, 255, 255, 0.6);
    color: var(--barva-text-tlumeny);
    font-family: var(--font-text);
    font-size: 0.85rem;
    cursor: pointer;
    transition: background-color var(--prechod), border-color var(--prechod), color var(--prechod);
}

.hledani-spoustec:hover[b-bo8zjjl3h4] {
    background-color: var(--c-zelena-svetla);
    border-color: rgba(89, 67, 52, 0.2);
    color: var(--c-hneda);
}

.hledani-spoustec:focus-visible[b-bo8zjjl3h4] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

.hledani-spoustec-ikona[b-bo8zjjl3h4] {
    flex: 0 0 auto;
}

.hledani-spoustec-kbd[b-bo8zjjl3h4] {
    font-family: var(--font-text);
    font-size: 0.68rem;
    line-height: 1;
    padding: 0.15rem 0.35rem;
    border: 1px solid var(--barva-linka);
    border-radius: 6px;
    background-color: rgba(255, 255, 255, 0.7);
    color: var(--barva-text-tlumeny);
}

/* Na úzkých displejích zůstává jen lupa (text i zkratka zmizí). */
@media (max-width: 640px) {
    .hledani-spoustec-text[b-bo8zjjl3h4],
    .hledani-spoustec-kbd[b-bo8zjjl3h4] { display: none; }
    .hledani-spoustec[b-bo8zjjl3h4] { padding: 0.35rem; }
}

/* --- Overlay (nativní modální dialog v top-layer) ---------------------- */
.hledani-dialog[b-bo8zjjl3h4] {
    position: fixed;
    inset: 0;
    margin: 8vh auto auto auto;   /* odsazené shora, vodorovně na střed */
    width: min(640px, 92vw);
    max-height: 82vh;
    padding: 0;
    border: none;
    background: transparent;
    overflow: visible;
}

.hledani-dialog[b-bo8zjjl3h4]::backdrop {
    background-color: rgba(63, 47, 36, 0.34);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
}

.hledani-okno[b-bo8zjjl3h4] {
    display: flex;
    flex-direction: column;
    max-height: 82vh;
    background-color: rgba(253, 252, 249, 0.98);
    border: 1px solid rgba(89, 67, 52, 0.14);
    border-radius: var(--radius-velky);
    box-shadow:
        0 6px 18px rgba(63, 47, 36, 0.10),
        0 24px 70px rgba(63, 47, 36, 0.18);
    overflow: hidden;
}

/* --- Hlava s polem ----------------------------------------------------- */
.hledani-hlava[b-bo8zjjl3h4] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--barva-linka);
}

.hledani-hlava-ikona[b-bo8zjjl3h4] {
    flex: 0 0 auto;
    color: var(--barva-text-tlumeny);
}

.hledani-vstup[b-bo8zjjl3h4] {
    flex: 1 1 auto;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font-family: var(--font-text);
    font-size: 1.05rem;
    color: var(--barva-text);
}

.hledani-vstup[b-bo8zjjl3h4]::placeholder {
    color: var(--barva-text-tlumeny);
}

/* skryj nativní křížek prohlížeče u type=search — máme vlastní tlačítko */
.hledani-vstup[b-bo8zjjl3h4]::-webkit-search-cancel-button { -webkit-appearance: none; }

.hledani-zavrit[b-bo8zjjl3h4] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--barva-text-tlumeny);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--prechod), color var(--prechod);
}

.hledani-zavrit:hover[b-bo8zjjl3h4] {
    background-color: rgba(89, 67, 52, 0.08);
    color: var(--c-hneda);
}

.hledani-zavrit:focus-visible[b-bo8zjjl3h4] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 1px;
}

/* --- Výsledky ---------------------------------------------------------- */
.hledani-vysledky[b-bo8zjjl3h4] {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 0.5rem;
}

.hledani-napoveda[b-bo8zjjl3h4] {
    margin: 0;
    padding: 1rem 0.75rem;
    font-size: 0.92rem;
    line-height: 1.5;
}

.hledani-skupina[b-bo8zjjl3h4] {
    padding: 0.35rem 0 0.5rem;
}

.hledani-skupina + .hledani-skupina[b-bo8zjjl3h4] {
    border-top: 1px solid var(--barva-linka);
}

.hledani-skupina-hlava[b-bo8zjjl3h4] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.3rem 0.6rem 0.2rem;
}

.hledani-skupina-nadpis[b-bo8zjjl3h4] {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}

.hledani-skupina-vic[b-bo8zjjl3h4] {
    font-size: 0.72rem;
}

.hledani-polozka[b-bo8zjjl3h4] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    width: 100%;
    text-align: left;
    border: none;
    background: transparent;
    font-family: var(--font-text);
    color: var(--barva-text);
    cursor: pointer;
    padding: 0.45rem 0.6rem;
    border-radius: 10px;
    transition: background-color var(--prechod);
}

.hledani-polozka:hover[b-bo8zjjl3h4],
.hledani-polozka.je-vybrana[b-bo8zjjl3h4] {
    background-color: var(--c-zelena-svetla);
}

.hledani-polozka:focus-visible[b-bo8zjjl3h4] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 1px;
}

.hledani-polozka-nazev[b-bo8zjjl3h4] {
    flex: 0 1 auto;
    font-size: 0.95rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hledani-polozka-podnazev[b-bo8zjjl3h4] {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.82rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hledani-polozka-znacka[b-bo8zjjl3h4] {
    flex: 0 0 auto;
    font-size: 0.72rem;
}

/* --- Pata s nápovědou kláves ------------------------------------------ */
.hledani-pata[b-bo8zjjl3h4] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.55rem 1rem;
    border-top: 1px solid var(--barva-linka);
    font-size: 0.72rem;
}

.hledani-pata kbd[b-bo8zjjl3h4] {
    font-family: var(--font-text);
    font-size: 0.68rem;
    padding: 0.1rem 0.3rem;
    margin-right: 0.2rem;
    border: 1px solid var(--barva-linka);
    border-radius: 5px;
    background-color: rgba(255, 255, 255, 0.7);
}

@media (max-width: 640px) {
    .hledani-pata[b-bo8zjjl3h4] { display: none; }
}
/* /Components/Layout/HorniNavigace.razor.rz.scp.css */
/* Hlavní menu v hlavičce shellu — mezi logem a uživatelem. Sépiový brand, klid.
   Nav je flex dítě hlavičky (žádná vlastní lišta/sticky — to drží .shell-hlavicka). */

.horni-nav[b-yfxslxcjv4] {
    display: flex;
    align-items: center;
    min-width: 0;                /* ať se seznam umí zmenšit a rolovat */
    margin-left: clamp(0.75rem, 2.5vw, 2rem);
    margin-right: auto;          /* uživatelský blok se drží vpravo */
}

.horni-nav-seznam[b-yfxslxcjv4] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    list-style: none;
    margin: 0;
    padding: 0;
    /* Na užších šířkách se menu vodorovně roluje, ať se nezalamuje. */
    overflow-x: auto;
    scrollbar-width: none; /* Firefox */
}

.horni-nav-seznam[b-yfxslxcjv4]::-webkit-scrollbar {
    display: none; /* WebKit — bez viditelného scrollbaru */
}

.horni-nav-polozka[b-yfxslxcjv4] {
    display: flex;
}

.horni-nav-odkaz[b-yfxslxcjv4] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.8rem;
    min-height: 44px;          /* dotykový terč ≥ 44 px (UX audit C11) */
    box-sizing: border-box;
    color: var(--c-hneda);
    text-decoration: none;
    font-size: 0.92rem;
    font-weight: 600;
    white-space: nowrap;
    border-radius: 999px;
    transition: color var(--prechod), background-color var(--prechod);
}

.horni-nav-odkaz:hover[b-yfxslxcjv4] {
    color: var(--c-hneda-tmava);
    background-color: var(--c-zelena-svetla);
}

.horni-nav-odkaz:focus-visible[b-yfxslxcjv4] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

/* Aktivní položka (aria-current="page"): jemná krémová výplň + plná barva. */
.horni-nav-odkaz.je-aktivni[b-yfxslxcjv4] {
    color: var(--c-hneda-tmava);
    background-color: var(--c-krem);
}

.horni-nav-ikona[b-yfxslxcjv4] {
    display: inline-flex;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
}

.horni-nav-ikona img[b-yfxslxcjv4] {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.horni-nav-ikona svg[b-yfxslxcjv4] {
    width: 100%;
    height: 100%;
}

/* Užší obrazovky: názvy se schovají, zůstanou ikony (title nese odkaz). */
@media (max-width: 860px) {
    .horni-nav-nazev[b-yfxslxcjv4] { display: none; }
    /* Bez názvu zůstává jen ikona — terč musí být čtvercový a dost velký na prst (≥44 px). */
    .horni-nav-odkaz[b-yfxslxcjv4] { padding: 0.45rem 0.55rem; min-width: 44px; justify-content: center; }
    .horni-nav-ikona[b-yfxslxcjv4] { width: 24px; height: 24px; }
}

/* Badge změn podpory (D8) — pilulka s počtem změn od posledního zobrazení podpory
   (vzor .podpora-zalozka-pocet; tmavší zelená, ať je na světlé hlavičce vidět).
   Zůstává viditelná i na úzkých obrazovkách (kde se schovává název) — právě tam
   je jediným vodítkem, že se v podpoře něco stalo. */
.horni-nav-pocet[b-yfxslxcjv4] {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--c-bila);
    background-color: var(--c-zelena-tmava);
    border-radius: 999px;
    padding: 0.08rem 0.45rem;
    min-width: 1.5em;
    text-align: center;
    line-height: 1.35;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* App shell — luxusní, vzdušná kostra. Krém/bílá, vodoznak stromu, jen jemný pohyb. */


.dev-uzivatel strong[b-hqddf0ibnd] {
    color: #f0f0ff;
}

.dev-prepinac[b-hqddf0ibnd] {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.dev-prepinac-odkaz[b-hqddf0ibnd] {
    color: #a0a8c8;
    text-decoration: none;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    border: 1px solid #3a3a5a;
    font-size: 0.8rem;
    font-weight: 500;
    transition: background-color 0.15s, color 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.dev-prepinac-odkaz:hover[b-hqddf0ibnd] {
    background-color: #2e2e50;
    color: #e0e0ff;
    border-color: #6060a0;
}

.dev-prepinac-aktivni[b-hqddf0ibnd],
.dev-prepinac-aktivni:hover[b-hqddf0ibnd] {
    background-color: #f7c948;
    color: #1a1a2e;
    border-color: #f7c948;
    font-weight: 700;
    cursor: default;
}

/* Fokus na tmavém dev pruhu: globální tmavý prstenec (cimpel.css) by tu byl neviditelný —
   přebijeme ho světlým (dev amber). */
.dev-prepinac-odkaz:focus-visible[b-hqddf0ibnd] {
    outline: 3px solid #f7c948;
    outline-offset: 2px;
}

.shell[b-hqddf0ibnd] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: var(--c-krem);
}

/* --- Pruh „náhled klienta" (ADR-0037) ---------------------------------- */
/* Trvale nad hlavičkou: poradce prohlíží klientskou tvář rodiny jen ke čtení.
   Sepiově-jantarový, odlišný od brandu i od DEV pruhu — ať je pořád jasné, že
   „tohle je náhled, nejsem klient". */

/* Když je nahoře pruh náhledu, hlavička se lepí AŽ pod ním, ať se nepřekrývají.
   Přes :has, protože pruh je vlastní komponenta — sourozenecký selektor mezi dvěma
   komponentami by scoped CSS nepřepsalo (2. 8. 2026). */
.shell:has(.nahled-pruh) .shell-hlavicka[b-hqddf0ibnd],
.shell:has(.rezim-pruh) .shell-hlavicka[b-hqddf0ibnd] {
    top: 2.5rem;
}

/* --- Hlavička ----------------------------------------------------------- */
.shell-hlavicka[b-hqddf0ibnd] {
    position: sticky;
    top: 0;
    z-index: 40;
    background-color: rgba(255, 255, 255, 0.82);
    backdrop-filter: saturate(160%) blur(10px);
    -webkit-backdrop-filter: saturate(160%) blur(10px);
    border-bottom: 1px solid var(--barva-linka);
}

.shell-hlavicka-vnitrek[b-hqddf0ibnd] {
    display: flex;
    align-items: center;
    height: 76px;
}

.shell-logo[b-hqddf0ibnd] {
    display: inline-flex;
    align-items: center;
    transition: opacity var(--prechod);
}

.shell-logo:hover[b-hqddf0ibnd] { opacity: 0.78; }

/* Lockup klientské části (ADR-0033): strom + „Alfréd" a pod ním „Cimpel & partneři". */
.shell-logo[b-hqddf0ibnd] { gap: 0.6rem; }

.shell-logo-strom[b-hqddf0ibnd] {
    height: 40px;
    width: 40px;
    display: block;
}

.shell-logo-texty[b-hqddf0ibnd] {
    display: flex;
    flex-direction: column;
    line-height: 1.12;
}

.shell-logo-produkt[b-hqddf0ibnd] {
    font-family: var(--font-nadpis);
    font-size: 1.35rem;
    color: var(--c-hneda-tmava);
}

.shell-logo-firma[b-hqddf0ibnd] {
    font-size: 0.64rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--barva-tlumeny-text);
    white-space: nowrap;
}

@media (max-width: 560px) {
    .shell-logo-texty[b-hqddf0ibnd] { display: none; }
}

/* --- Uživatelský blok vpravo: jméno · Administrace (admin) · Odhlásit ----- */
.shell-uzivatel[b-hqddf0ibnd] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-left: 1rem;
    flex: 0 0 auto;
}

/* Akční tlačítka hlavičky (Administrace) — ikona + text. */
.shell-akce-tlacitko[b-hqddf0ibnd] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--c-hneda);
    text-decoration: none;
    padding: 0.35rem 0.8rem;
    border-radius: 999px;
    border: 1px solid var(--barva-linka);
    white-space: nowrap;
    transition: background-color var(--prechod), border-color var(--prechod), color var(--prechod);
}

.shell-akce-tlacitko:hover[b-hqddf0ibnd] {
    background-color: var(--c-zelena-svetla);
    border-color: var(--c-zelena-tmava);
    color: var(--c-hneda-tmava);
}

.shell-akce-tlacitko:focus-visible[b-hqddf0ibnd] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

.shell-akce-ikona[b-hqddf0ibnd] {
    width: 20px;
    height: 20px;
    object-fit: contain;
    display: block;
}

/* Užší obrazovky: texty tlačítek se schovají, zůstanou ikony. */
@media (max-width: 720px) {
    .shell-akce-tlacitko span[b-hqddf0ibnd] { display: none; }
    .shell-akce-tlacitko[b-hqddf0ibnd] { padding: 0.35rem 0.5rem; }
}

/* --- Obsah + vodoznak --------------------------------------------------- */
.shell-obsah[b-hqddf0ibnd] {
    position: relative;
    /* basis auto (ne 0) + overflow-x:clip: hlavní oblast ROSTE s obsahem (dlouhý rodokmen/seznam
       se neořízne) a svisle roluje celá stránka; sticky hlavička zůstává nahoře. overflow-x:clip
       (ne hidden) NEzakládá scroll kontejner ani nenutí svislou osu na auto → strom se vejde do
       šířky (fit) a nevznikne vodorovný scrollbar z přetékajícího vodoznaku. */
    flex: 1 0 auto;
    overflow-x: clip;
}

.shell-vodoznak[b-hqddf0ibnd] {
    /* fixed (ne absolute): vodoznak je čistě dekorativní a viewport-ukotvený, takže jeho záporný
       přesah (right/bottom) NErozšiřuje výšku stránky (jinak by přidal prázdné místo ke scrollu). */
    position: fixed;
    right: -6%;
    bottom: -8%;
    width: min(620px, 62vw);
    height: min(620px, 62vw);
    background-image: url("/brand/Cimpel_ikona_strom_RGB.svg");
    background-repeat: no-repeat;
    background-position: bottom right;
    background-size: contain;
    opacity: 0.05;
    pointer-events: none;
    z-index: 0;
}

.shell-clanek[b-hqddf0ibnd] {
    position: relative;
    z-index: 1;
    padding-block: clamp(2.5rem, 5vw, 5rem);
}

/* --- Back-office shell (ADR-0033) ---------------------------------------
   Interní IS pro tým Cimpel: levý sidebar (BackOfficeSidebar) + horní lišta +
   hustý obsah. Desktop-first; hustota nad dekorací (vzor Raynet). */
.bo-shell[b-hqddf0ibnd] {
    display: flex;
    align-items: stretch;
    min-height: 100vh;
    /* Střídmá, chladně neutrální pracovní plocha (IS, ne krémový klientský portál; vzor
       mockup 19. 7.): světle šedomodré pozadí, panely čistě bílé s tenkou linkou — bílé
       karty tak víc vyniknou. Akcent zůstává brand zelený (ne tyrkys z mockupu). */
    background-color: #E9EBEF;
    /* Hustý IS = menší základní písmo než klientská část (mockup je kompaktní). Text dědící
       velikost se zmenší; klientský shell si drží 16px (jiná tvář, ADR-0033). */
    font-size: 13.5px;
    line-height: 1.5;
}

.bo-hlavni[b-hqddf0ibnd] {
    flex: 1;
    min-width: 0;               /* tabulky/boardy uvnitř smí scrollovat, ne roztahovat layout */
    display: flex;
    flex-direction: column;
}

.bo-horni[b-hqddf0ibnd] {
    position: sticky;
    top: 0;
    z-index: 40;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    height: 52px;
    padding: 0 1.2rem;
    background-color: var(--c-bila);
    border-bottom: 1px solid var(--barva-linka);
}

.bo-horni-sekce[b-hqddf0ibnd] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--c-hneda-tmava);
}

.bo-horni-akce[b-hqddf0ibnd] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.bo-obsah[b-hqddf0ibnd] {
    flex: 1 0 auto;
    overflow-x: clip;
}

/* Relativní kontext se z-index 1 (konzistence se shell-clanek; v back-office sice
   rohový Alfréd není, ale pravidlo drží stejné chování pro overlaye hostu). */
.bo-clanek[b-hqddf0ibnd] {
    position: relative;
    z-index: 1;
    padding: 0.85rem 1rem 2rem;
}

/* --- Diskrétní chybový proužek (rebrand defaultu) ----------------------- */
#blazor-error-ui[b-hqddf0ibnd] {
    color-scheme: light only;
    background: var(--c-bila);
    color: var(--c-hneda);
    border-top: 2px solid var(--c-zelena-tmava);
    bottom: 0;
    box-shadow: 0 -2px 18px rgba(63, 47, 36, 0.12);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.85rem 1.5rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    font-size: 0.95rem;
}

#blazor-error-ui .reload[b-hqddf0ibnd] {
    margin-left: 0.75rem;
    font-weight: 600;
}

#blazor-error-ui .dismiss[b-hqddf0ibnd] {
    cursor: pointer;
    position: absolute;
    right: 1rem;
    top: 0.65rem;
    color: var(--barva-tlumeny-text);
    font-size: 1.2rem;
    line-height: 1;
}
/* /Components/Layout/MajetekLayout.razor.rz.scp.css */
/* Shell klientského portálu — tokeny i rozměry 1:1 ze srpnového mockupu produktového vlastníka
   (podklady/mockup-portal-2026-08, _ds/…/tokens/*.css + sidebar v šabloně).
   CSS proměnné se dědí do stránek (scoped styly izolují selektory, ne custom properties). */

.mjt[b-lt6ygvtlt5] {
    /* — paleta mockupu (brand Cimpel), PLNÁ škála v2 — každý neutrál je teplá hnědá,
       nikdy šedá. Ověřeno hodnotu po hodnotě proti tokens/colors.css: shoda je úplná. — */
    --mjt-brown-900: #2e231a;   /* espresso — nejtmavší plochy (sidebar, tooltip) */
    --mjt-brown-800: #3c2e22;
    --mjt-brown-700: #493729;   /* nadpisy, silný text, čísla */
    --mjt-brown-600: #594334;   /* CORE brand hnědá — běžný text */
    --mjt-brown-500: #6b5442;
    /* POZOR, TENHLE ODSTÍN NA TEXT NESPLŇUJE AA: 3,81:1 na krému, 4,37:1 na bílé (měřeno
       9. 8. 2026), potřeba je 4,5:1 — a publikum portálu je 45+. Je to VĚDOMĚ mockupová
       hodnota, dokud produktový vlastník nerozhodne; návrh z rozboru je nechat paletu být
       a namapovat jen TEXTOVÉ role na AA dvojčata z cimpel.css (--barva-tlumeny-text
       #736A62 = 4,62:1). Dekorativní použití (linky, tečky, chevrony) je v pořádku. */
    --mjt-brown-400: #8a7563;   /* tlumený text, popisky */
    --mjt-brown-300: #b3a291;   /* silnější linky, chevrony */
    --mjt-brown-200: #d8ccbc;
    --mjt-brown-100: #e9e0d2;

    /* Totéž a ještě ostřeji: 3,01:1 na krému, 3,45:1 na bílé. Komentář tu do 9. 8. 2026
       tvrdil „(AA)" — neplatilo to. AA dvojče je --barva-akcent-text #5F6E00 (4,93:1). */
    --mjt-green-700: #7f930a;   /* zelený TEXT na světlém + „dnešní" */
    --mjt-green-600: #93a909;   /* křivky grafů */
    --mjt-green-500: #afca0b;   /* CORE brand zelená — akcenty na tmavém, prapor */
    --mjt-green-400: #c1de0c;
    --mjt-green-300: #d6ec5a;
    --mjt-green-200: #e8f2ad;   /* cílové pásmo IPS */
    --mjt-green-100: #f2f6d8;   /* bledá zelená podložka (pilulky, vybraný chip) */

    --mjt-cream-50:  #faf7f0;   /* hover řádku */
    --mjt-cream-100: #f4efe4;   /* plátno stránky */
    --mjt-cream-200: #ebe3d5;   /* zapuštěné plochy (tracky, segmenty) */
    --mjt-cream-300: #e0d5c3;
    --mjt-white: #ffffff;

    --mjt-success: #7f930a;
    --mjt-warning: #c8871f;
    --mjt-danger: #a8412c;
    --mjt-hairline: #e2d8c8;
    --mjt-border-ondark: rgba(244, 239, 228, .18);
    --mjt-text-ondark-muted: #c3b4a3;

    /* — svěžest ocenění (5 stupňů dle mockupu; „neaktuální" nese navíc prstenec) — */
    --sv-dnesni: #7f930a;
    --sv-aktualni: #afca0b;
    --sv-blizi: #e0b93a;
    --sv-starsi: #c8871f;
    --sv-neaktualni: #c0472e;
    --sv-chybi: #b3a291;

    /* — TYPOGRAFIE (srpen 2026, oprava proti D1 z 7. 8.) —
       Mockup se k Plus Jakarta Sans NEVRACÍ: jeho .h1 i .c-h jsou Inter 700, Jakarta v něm není
       ani jednou. Nadpisy proto jedou v Interu a slovní mezera se vrací na normální (kompenzace
       .07em existovala jen kvůli úzké mezeře Jakarty).
       UTILE DISPLAY MÁ ŠIRŠÍ ROLI, než připouštěla poznámka „jen wordmark v sidebaru": mockup ji
       sází i v hero Alfréda, ve jméně Alfréda v tmavé kartě, v názvu měsíce kalendáře, v kartách
       hodnot rodiny, v číslech kapitol a v celém dokumentu reportu. Čte se to jako záměr — Inter
       nese strukturu, Utile Display obřadní momenty (Alfrédův hlas, ústava, report). — */
    --mjt-font-display: "Utile Display", Georgia, serif;
    --mjt-font-text: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;
    --mjt-font-nadpis: var(--mjt-font-text);
    --mjt-ws-nadpis: normal;
    --mjt-font-cisla: "Inter Tight", "Inter", -apple-system, "Segoe UI", sans-serif;

    /* — typografická škála (tokens/typography.css) — hodnoty se v CSS už fakticky používaly,
       jen bez tokenu; od teď se na ně dá odkázat. — */
    --mjt-text-3xs: 11px;
    --mjt-text-2xs: 12px;
    --mjt-text-xs: 13px;
    --mjt-text-sm: 14px;
    --mjt-text-md: 16px;
    --mjt-text-lg: 19px;
    --mjt-text-xl: 23px;
    --mjt-text-2xl: 28px;
    --mjt-text-3xl: 34px;
    --mjt-text-4xl: 44px;
    --mjt-text-5xl: 58px;
    --mjt-text-6xl: 76px;

    --mjt-fw-regular: 400;
    --mjt-fw-medium: 500;
    --mjt-fw-semibold: 600;
    --mjt-fw-bold: 700;

    --mjt-lh-tight: 1.06;
    --mjt-lh-snug: 1.22;
    --mjt-lh-normal: 1.55;
    --mjt-lh-relaxed: 1.7;

    --mjt-tracking-tight: -.02em;
    --mjt-tracking-normal: 0;
    --mjt-tracking-wide: .04em;
    --mjt-tracking-label: .14em;

    /* — rozestupová škála na základu 4 px (tokens/spacing.css) — */
    --mjt-space-0: 0;
    --mjt-space-1: 4px;
    --mjt-space-2: 8px;
    --mjt-space-3: 12px;
    --mjt-space-4: 16px;
    --mjt-space-5: 20px;
    --mjt-space-6: 24px;
    --mjt-space-8: 32px;
    --mjt-space-10: 40px;
    --mjt-space-12: 48px;
    --mjt-space-16: 64px;
    --mjt-space-20: 80px;
    --mjt-space-24: 96px;

    /* — tvar a stín (hnědě tónované, „světlo listím", nikdy neutrální šeď) — */
    --mjt-radius-xs: 4px;
    --mjt-radius-sm: 8px;
    --mjt-radius-md: 12px;
    --mjt-radius-lg: 18px;
    --mjt-radius-xl: 26px;
    --mjt-radius-pill: 999px;
    --mjt-shadow-xs: 0 1px 2px rgba(46, 35, 26, .06);
    --mjt-shadow-sm: 0 2px 6px rgba(46, 35, 26, .08);
    --mjt-shadow-md: 0 6px 20px rgba(46, 35, 26, .10);
    --mjt-shadow-lg: 0 18px 48px rgba(46, 35, 26, .14);
    --mjt-focus: 0 0 0 3px rgba(175, 202, 11, .55);

    /* — šířky obsahu (mockup je používá: 880 pro Alfréda, 1120 pro úzké stránky) — */
    --mjt-container-sm: 640px;
    --mjt-container-md: 880px;
    --mjt-container-lg: 1120px;
    --mjt-container-xl: 1320px;

    /* — pohyb: klidný, bez odrazu. Peníze jsou trpělivé. — */
    --mjt-ease-standard: cubic-bezier(.4, 0, .2, 1);
    --mjt-ease-out: cubic-bezier(.16, 1, .3, 1);
    --mjt-dur-fast: 120ms;
    --mjt-dur-base: 200ms;
    --mjt-dur-slow: 360ms;

    /* ALFRÉDŮV ROH (kolečko, hrdinská postava, tokeny zóny) BYDLÍ V css/alfred-roh.css —
       od 10. 8. 2026 má týž roh i back office (ADR-0079) a scoped CSS klientského rozvržení
       je pro obě tváře jen jedno ze dvou míst. Odsud se čte už jen rezerva obsahu
       (--alfred-zona-h u .mjt-obsah). */

    /* MŘÍŽKA SHELLU dle mockupu: pevných 236 px menu, zbytek obsah — na celou šířku okna,
       bez postranních okrajů. */
    display: grid;
    grid-template-columns: 236px 1fr;
    min-height: 100vh;
    background: var(--mjt-cream-100);
    color: var(--mjt-brown-600);
    font-family: var(--mjt-font-text);
}

/* ── Boční menu ──────────────────────────────────────────────────────────── */

.mjt-sidebar[b-lt6ygvtlt5] {
    position: sticky;
    top: 0;
    /* Sticky VŽDY zakládá vlastní vrstvu (stacking context) — bez z-index by celý sidebar
       ležel POD sloupcem obsahu, protože je v DOM první. Sloupce se sice nepřekrývají, ale
       Alfrédův panel s dotazem ze sidebaru vystupuje doprava a karty přehledu ho překreslily
       (8. 8. 2026). Pod pruhy náhledu/režimu (50/51) to zůstává. */
    z-index: 20;
    align-self: start;
    height: 100vh;
    /* Mockup posílá do rolování CELÝ sloupec (`.side{overflow-y:auto}`). Šestnáct položek se
       ale na notebook nevejde: při výšce okna kolem 900 px vyjede ven přepínač rodin i patička
       s mandátem — tedy zrovna to, co říká, ČÍ spis je na obrazovce. Roluje proto jen SEZNAM
       položek (viz .mjt-nav) a značka, přepínač a patička drží své místo. */
    overflow: hidden;
    display: flex;
    flex-direction: column;
    /* Gap 14 a svislý padding 16 (mockup má 24/24): šestnáct položek se musí vejít bez
       posuvníku i na notebook s oknem ~800 px — viz rozpočet u .mjt-nav-polozka. */
    gap: 14px;
    background: var(--mjt-brown-900);
    color: var(--mjt-cream-100);
    padding: 16px 18px;
    box-sizing: border-box;
}

.mjt-znacka[b-lt6ygvtlt5] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding-left: 2px;
    text-decoration: none;
    color: inherit;
}

.mjt-znacka img[b-lt6ygvtlt5] { height: 42px; width: auto; display: block; flex: 0 0 auto; }

.mjt-znacka-texty[b-lt6ygvtlt5] { display: flex; flex-direction: column; gap: 3px; min-width: 0; }

.mjt-znacka-produkt[b-lt6ygvtlt5] {
    font-family: var(--mjt-font-display);
    font-size: 26px;
    font-weight: 600;
    letter-spacing: -.01em;
    color: var(--mjt-cream-100);
    line-height: 1;
}

.mjt-znacka-firma[b-lt6ygvtlt5] {
    font-size: 10.5px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--mjt-text-ondark-muted);
}

/* `margin-bottom: auto` odtlačí VŠECHNO pod navigací ke dnu — přepínač rodin i patičku,
   bez ohledu na to, kolik bloků mezi nimi zrovna je (poradcův odkaz do spisu, Alfréd).
   `min-height: 0` je to, co ve flexu vůbec dovolí seznamu se zmenšit a rolovat uvnitř sebe
   (bez něj má flex položka minimální výšku svého obsahu a přeteče ven ze sloupce). */
.mjt-nav[b-lt6ygvtlt5] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin-bottom: auto;
    min-height: 0;
    overflow-y: auto;
    /* ŽÁDNÁ SYSTÉMOVÁ LIŠTA (rozhodnutí uživatele 9. 8. 2026): menu se má VEJÍT — hustota
       řádků je spočítaná na okno ~800 px. Rolování je jen pojistka pro extrémně nízká okna
       a i tam ho naznačuje zastínění okraje (::after níž), ne scrollbar. Kolečko, klávesnice
       i dotyk rolují dál. */
    scrollbar-width: none;
}

.mjt-nav[b-lt6ygvtlt5]::-webkit-scrollbar { display: none; }

/* Zastínění dolního okraje = „je tu ještě něco": gradient přilepený ke dnu VÝŘEZU (sticky),
   výšku si nebere (záporný margin). Ukazuje se jen v nízkých oknech, kde navigace opravdu
   může přetéct; v prohlížečích se scroll-state (Chromium 133+) přesně — jen dokud je kam
   dolů rolovat, jinde podle výšky okna. */
.mjt-nav[b-lt6ygvtlt5]::after {
    content: "";
    position: sticky;
    bottom: 0;
    display: block;
    flex: 0 0 auto;
    height: 28px;
    margin-top: -28px;
    background: linear-gradient(180deg, transparent, var(--mjt-brown-900));
    pointer-events: none;
    opacity: 0;
}

@media (max-height: 870px) {
    .mjt-nav[b-lt6ygvtlt5]::after { opacity: 1; }
}

@supports (container-type: scroll-state) {
    .mjt-nav[b-lt6ygvtlt5] { container-type: scroll-state; }
    .mjt-nav[b-lt6ygvtlt5]::after { opacity: 0; transition: opacity var(--mjt-dur-base) var(--mjt-ease-standard); }

    @container scroll-state(scrollable: bottom) {
        .mjt-nav[b-lt6ygvtlt5]::after { opacity: 1; }
    }
}

.mjt-nav-polozka[b-lt6ygvtlt5] {
    display: flex;
    align-items: center;
    gap: 11px;
    /* 5px svisle (mockup 9): řádek 32 px místo 40 — jinak se 16 položek nevejde na notebook
       (měřeno: okno 900 px ořezávalo poslední tři a přidávalo systémový posuvník). Text
       i ikona drží velikost, stahují se jen mezery. */
    padding: 5px 11px;
    border-radius: var(--mjt-radius-md);
    color: var(--mjt-text-ondark-muted);
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none;
    transition: background var(--mjt-dur-fast) var(--mjt-ease-standard), color var(--mjt-dur-fast) var(--mjt-ease-standard);
}

a.mjt-nav-polozka:hover[b-lt6ygvtlt5] { background: rgba(244, 239, 228, .06); color: var(--mjt-cream-100); }

.mjt-nav-aktivni[b-lt6ygvtlt5],
a.mjt-nav-aktivni:hover[b-lt6ygvtlt5] {
    background: rgba(175, 202, 11, .14);
    color: var(--mjt-green-400);
    font-weight: 600;
}

/* `::deep`, ne `:global()`. Blazor izolace zná JEN `::deep` — `:global()` je zvyk z jiných
   nástrojů a překladač ho nechá být, jen na konec přilepí značku scope (`:global(svg)[b-x]`).
   Takový selektor prohlížeč nezná, celé pravidlo zahodí A NIKDE TO NENÍ VIDĚT: ikony si držely
   velikost od svého flex rámečku, takže vypadaly správně, a šipka u skupiny MAJETEK se prostě
   neotáčela (nalezeno 9. 8. 2026 měřením v prohlížeči, ne pohledem). Navíc je `::deep` tady
   jediné, co může fungovat — kresba ikony přichází jako hotová značka (MarkupString), takže
   sama žádnou značku scope nenese a musí ji nést rodič. */
.mjt-nav-ikona[b-lt6ygvtlt5] { display: inline-flex; width: 17px; height: 17px; flex: 0 0 auto; }
.mjt-nav-ikona[b-lt6ygvtlt5]  svg { width: 17px; height: 17px; }

/* Plný název drží širokou lištu, krátký úzkou. Oba jsou v DOM, aby přepnutí lišty nepotřebovalo
   server ani Blazor — lišta je statický SSR shell a volba se pamatuje v prohlížeči. */
.mjt-nav-txt[b-lt6ygvtlt5] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mjt-nav-txt-kratky[b-lt6ygvtlt5] { display: none; }

/* ── Skupina MAJETEK ─────────────────────────────────────────────────────────
   <details>/<summary> místo přepínače se stavem: rozbalení je věc prohlížeče, ne serveru
   (ADR-0067). Výchozí stav rozbaleno, jako v mockupu. */

.mjt-nav-skupina[b-lt6ygvtlt5] { margin: 0; }

/* FLEX, NE GRID (25. 8. 2026). Grid měl tři pevné sloupce (ikona / název / šipka) a od chvíle,
   kdy má položka DVA popisky (plný do široké lišty, krátký do úzké), by čtvrtý prvek přepsal
   sloupec se šipkou — i když je zrovna schovaný, grid mu místo drží. Šipku drží vpravo
   `margin-left: auto`, stejně jako chevron v back office. */
.mjt-nav-nadpis[b-lt6ygvtlt5] {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 5px 11px;
    border-radius: var(--mjt-radius-md);
    color: var(--mjt-cream-100);
    /* BEZ VERZÁLEK (rozhodnutí 9. 8. 2026) — mockup má „MAJETEK", uživatel je nechce.
       S verzálkami zmizelo i prostrkání a menší stupeň: obojí je tam kvůli nim (verzálky
       potřebují vzduch a působí větší, než jsou). Bez nich by prostrkaný bold vypadal jako
       nedopatření, takže nadpis dostává týž stupeň jako položky a odlišuje se jen tučností. */
    font-size: 13.5px;
    font-weight: 700;
    letter-spacing: 0;
    cursor: pointer;
    list-style: none;      /* pryč s výchozím trojúhelníkem prohlížeče */
}

.mjt-nav-nadpis[b-lt6ygvtlt5]::-webkit-details-marker { display: none; }
.mjt-nav-nadpis[b-lt6ygvtlt5]::marker { content: ""; }
.mjt-nav-nadpis:hover[b-lt6ygvtlt5] { background: rgba(244, 239, 228, .06); }
.mjt-nav-nadpis:focus-visible[b-lt6ygvtlt5] { outline: 2px solid var(--mjt-green-500); outline-offset: -2px; }

.mjt-nav-sipka[b-lt6ygvtlt5] { display: inline-flex; width: 15px; height: 15px; flex: 0 0 15px; margin-left: auto; opacity: .6; }

.mjt-nav-sipka[b-lt6ygvtlt5]  svg {
    width: 15px;
    height: 15px;
    transition: transform .18s var(--mjt-ease-standard);
}

.mjt-nav-skupina[open] .mjt-nav-sipka[b-lt6ygvtlt5]  svg { transform: rotate(-180deg); }

.mjt-nav-podmenu[b-lt6ygvtlt5] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin: 2px 0 4px;
    padding-left: 11px;
    border-left: 1px solid rgba(244, 239, 228, .13);
}

/* ── Odkaz zpět do krémové části (jen poradce; v mockupu není) ───────────── */

.mjt-zpet[b-lt6ygvtlt5] {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 11px;
    border-radius: var(--mjt-radius-md);
    font-size: 12.5px;
    color: var(--mjt-brown-300);
    text-decoration: none;
    transition: background-color var(--mjt-dur-fast) var(--mjt-ease-standard), color var(--mjt-dur-fast) var(--mjt-ease-standard);
}

.mjt-zpet:hover[b-lt6ygvtlt5] { background: var(--mjt-brown-800); color: var(--mjt-cream-100); }
.mjt-zpet:focus-visible[b-lt6ygvtlt5] { outline: 3px solid rgba(175, 202, 11, .55); outline-offset: 2px; }
.mjt-zpet-sipka[b-lt6ygvtlt5] { font-size: 14px; line-height: 1; }
.mjt-zpet-pozn[b-lt6ygvtlt5] { display: block; font-size: 10.5px; opacity: .7; }

/* Spouštěcí pole overlaye se v klientské tváři neukazuje — hledání se otevírá klikem na
   Alfréda („Alfréde, najdi…" v bublině pošle syntetický Ctrl+K); Ctrl+K z klávesnice funguje
   dál. Selektor přes .mjt (ne .mjt-sidebar): overlay stojí od 9. 8. 2026 mimo <aside>
   a nechráněná pilulka se jako grid item .mjt roztáhla na celoobrazovkovou elipsu. */
.mjt[b-lt6ygvtlt5]  .hledani-spoustec { display: none; }

/* ── Alfrédův roh ────────────────────────────────────────────────────────────
   Kolečko i hrdinská postava se od 10. 8. 2026 kreslí sdílenou komponentou <AlfredRoh>
   a stylují z css/alfred-roh.css — týž roh má i back office (ADR-0079). Zdejšího zbylo
   jen tolik, kolik je opravdu klientské: panely maskota, které se ke koutu kotví.

   Postava stojí MIMO sloupec menu (od 9. 8. 2026). Ve sloupci byla sourozenec navigace
   a soupeřila s ní o výšku: pravidlo flex-shrink:1000 ji při zavolání scvrklo na 8 px —
   Alfréd byl fakticky neviditelný. V rohu je vidět vždycky, drží se při rolování (fixed)
   a NEKOLIDUJE s obsahem: .mjt-obsah si o výšku zóny drží spodní rezervu. */

/* Panely maskota (dotaz, promluva) se objeví o chvíli později než postava, ať se
   nepřekřikují: nejdřív přijde Alfréd, pak se ozve. */
.mjt[b-lt6ygvtlt5]  .boa-popover,
.mjt[b-lt6ygvtlt5]  .boa-promluva { animation-delay: 160ms; }

@media (prefers-reduced-motion: reduce) {
    .mjt[b-lt6ygvtlt5]  .boa-popover,
    .mjt[b-lt6ygvtlt5]  .boa-promluva { animation-delay: 0s; }
}

/* ── Přepínač rodin (KLIENTSKÁ DATA) ─────────────────────────────────────── */

.mjt-rodiny[b-lt6ygvtlt5] { display: flex; flex-direction: column; gap: 7px; }

.mjt-rodiny-nadpis[b-lt6ygvtlt5] {
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(244, 239, 228, .4);
    padding-left: 3px;
}

/* VLASTNÍ STROP A ROLOVÁNÍ (9. 8. 2026). Přepínač rodin roste s počtem rodin v rozsahu
   a bez stropu vytlačil ze sloupce celé menu — na dev účtu, který je členem patnácti rodin,
   zbyly z navigace dvě položky. Menu je to hlavní, přepínač je nástroj; když se nevejde,
   roluje přepínač, ne navigace. */
.mjt-rodiny-chipy[b-lt6ygvtlt5] { display: flex; gap: 6px; flex-wrap: wrap; max-height: 152px; overflow-y: auto; }

.mjt-rodina-chip[b-lt6ygvtlt5] {
    flex: 1;
    padding: 7px 8px;
    border-radius: var(--mjt-radius-pill);
    border: 1px solid rgba(244, 239, 228, .16);
    background: transparent;
    color: rgba(244, 239, 228, .6);
    font-family: var(--mjt-font-text);
    font-size: 11.5px;
    font-weight: 600;
    text-align: center;
    cursor: pointer;
    transition: background var(--mjt-dur-fast) var(--mjt-ease-standard), color var(--mjt-dur-fast) var(--mjt-ease-standard);
}

button.mjt-rodina-chip:hover[b-lt6ygvtlt5] { background: rgba(244, 239, 228, .09); color: var(--mjt-cream-100); }
button.mjt-rodina-chip:focus-visible[b-lt6ygvtlt5] { outline: 2px solid var(--mjt-green-500); outline-offset: 2px; }

.mjt-rodina-chip.on[b-lt6ygvtlt5] {
    background: rgba(175, 202, 11, .18);
    border-color: rgba(175, 202, 11, .45);
    color: var(--mjt-cream-100);
    cursor: default;
}

/* Jedna rodina = štítek, ne tlačítko (nemá kam přepnout). */
span.mjt-rodina-chip[b-lt6ygvtlt5] { display: block; }

/* ── Patička: čí spis vidím + mandát ──────────────────────────────────────
   Od 9. 8. 2026 <details> (klientova jediná cesta k odhlášení — pilulka účtu nahoře je
   jen pro poradce/správce). Summary vypadá jako dřívější karta, rozbalení jde NAHORU. */

.mjt-kdo-obal[b-lt6ygvtlt5] { position: relative; }

.mjt-kdo[b-lt6ygvtlt5] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 11px;
    border-radius: var(--mjt-radius-md);
    background: rgba(244, 239, 228, .06);
    text-decoration: none;
    color: inherit;
    min-width: 0;
    cursor: pointer;
    list-style: none;      /* pryč s výchozím trojúhelníkem prohlížeče */
    transition: background var(--mjt-dur-fast) var(--mjt-ease-standard);
}

.mjt-kdo[b-lt6ygvtlt5]::-webkit-details-marker { display: none; }
.mjt-kdo[b-lt6ygvtlt5]::marker { content: ""; }

.mjt-kdo:hover[b-lt6ygvtlt5] { background: rgba(244, 239, 228, .12); }
.mjt-kdo:focus-visible[b-lt6ygvtlt5] { outline: 3px solid rgba(175, 202, 11, .55); outline-offset: 2px; }

/* Chevron ukazoval doprava (proklik na tým); teď ohlašuje rozbalení nahoru. */
.mjt-kdo-sipka[b-lt6ygvtlt5]  svg { transition: transform .18s var(--mjt-ease-standard); }
.mjt-kdo-obal[open] .mjt-kdo-sipka[b-lt6ygvtlt5]  svg { transform: rotate(-90deg); }

.mjt-kdo-menu[b-lt6ygvtlt5] {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 30;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px;
    background: var(--mjt-brown-800);
    border: 1px solid var(--mjt-border-ondark);
    border-radius: var(--mjt-radius-md);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .35);
}

.mjt-kdo-polozka[b-lt6ygvtlt5] {
    display: block;
    padding: 7px 9px;
    border-radius: var(--mjt-radius-sm);
    color: var(--mjt-text-ondark-muted);
    font-size: 12.5px;
    font-weight: 500;
    text-decoration: none;
    transition: background var(--mjt-dur-fast) var(--mjt-ease-standard), color var(--mjt-dur-fast) var(--mjt-ease-standard);
}

.mjt-kdo-polozka:hover[b-lt6ygvtlt5] { background: rgba(244, 239, 228, .09); color: var(--mjt-cream-100); }
.mjt-kdo-polozka:focus-visible[b-lt6ygvtlt5] { outline: 2px solid var(--mjt-green-500); outline-offset: -2px; }

.mjt-kdo-monogram[b-lt6ygvtlt5] {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--mjt-green-500);
    color: var(--mjt-brown-700);
    font-weight: 700;
    font-size: 14px;
}

.mjt-kdo-texty[b-lt6ygvtlt5] { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.mjt-kdo-nazev[b-lt6ygvtlt5] { font-size: 12.5px; font-weight: 600; color: var(--mjt-cream-100); }
.mjt-kdo-popis[b-lt6ygvtlt5] { font-size: 11px; color: var(--mjt-text-ondark-muted); }

.mjt-kdo-sipka[b-lt6ygvtlt5] {
    margin-left: auto;
    display: inline-flex;
    width: 15px;
    height: 15px;
    color: var(--mjt-text-ondark-muted);
    flex: 0 0 15px;
}

.mjt-kdo-sipka[b-lt6ygvtlt5]  svg { width: 15px; height: 15px; }

/* ── Přepínač šířky lišty ─────────────────────────────────────────────────
   Týž mechanismus jako v back office (js/lista.js, značka html.lista-uzka na <html>) — jen
   podoba je zdejší, protože klientská tvář má vlastní paletu. Obyčejné tlačítko bez obsluhy
   v Blazoru: klientská tvář je statické SSR (ADR-0067). */

.mjt-lista-prepinac[b-lt6ygvtlt5] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 11px;
    border: 0;
    border-radius: var(--mjt-radius-md);
    background: rgba(244, 239, 228, .05);
    color: var(--mjt-text-ondark-muted);
    font: inherit;
    font-size: 11.5px;
    text-align: left;
    cursor: pointer;
    transition: background var(--mjt-dur-fast) var(--mjt-ease-standard), color var(--mjt-dur-fast) var(--mjt-ease-standard);
}

.mjt-lista-prepinac:hover[b-lt6ygvtlt5] { background: rgba(244, 239, 228, .1); color: var(--mjt-cream-100); }
.mjt-lista-prepinac:focus-visible[b-lt6ygvtlt5] { outline: 2px solid var(--mjt-green-500); outline-offset: 2px; }

.mjt-lista-prepinac svg[b-lt6ygvtlt5] {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    transition: transform var(--mjt-dur-base) var(--mjt-ease-standard);
}

/* ── ÚZKÁ LIŠTA (kolejnice) ───────────────────────────────────────────────
   Klientská tvář dostává TUTÉŽ nabídku jako back office (pokyn uživatele 25. 8. 2026):
   sbalená kolejnice 98 px, ikona 24 px a pod ní KRÁTKÝ popisek, klikem se rozbalí na plné
   názvy. Rozměry i chování jsou z back-officové kolejnice (backoffice-mock.css) — je to
   vědomě táž nabídka, ne druhý vzor; liší se jen paleta, protože klientský sidebar je
   espresso a ne sépie.

   PROČ POPISEK, A NE JEN IKONA: šestnáct ikon si nikdo nezapamatuje. Bez popisku je z nabídky
   hádanka — totéž ponaučení, kvůli kterému ho 17. 8. 2026 dostala kolejnice back office.

   CELÝ BLOK PLATÍ AŽ OD 901 px. Pod 900 px se sidebar překlápí na vodorovný pruh nad obsahem
   (viz media query dole) a kolejnice by ho přebila — pravidla se značkou na <html> mají vyšší
   specificitu než pravidla v media query, takže by mobilní podobu potichu vyhrála. */

@media (min-width: 901px) {
    html.lista-uzka .mjt[b-lt6ygvtlt5] { grid-template-columns: 98px 1fr; }

    html.lista-uzka .mjt-sidebar[b-lt6ygvtlt5] {
        padding: 12px 0 8px;
        gap: 8px;
        /* Karta rodiny se rozbaluje NAHORU a v kolejnici se do 98 px nevejde — vysouvá se
           proto doprava přes obsah. Sidebar ji ale ořezával (`overflow: hidden`), takže z
           nabídky zbyl pruh a odhlášení nešlo přečíst. Rolování si hlídá sám seznam položek
           (.mjt-nav), takže tady se hidden ničeho nedrží. */
        overflow: visible;
    }

    /* Značka: zbyde strom, wordmark ani firma se do kolejnice nevejdou. */
    html.lista-uzka .mjt-znacka[b-lt6ygvtlt5] { justify-content: center; gap: 0; padding-left: 0; }
    html.lista-uzka .mjt-znacka img[b-lt6ygvtlt5] { height: 34px; }
    html.lista-uzka .mjt-znacka-texty[b-lt6ygvtlt5] { display: none; }

    html.lista-uzka .mjt-nav[b-lt6ygvtlt5] { gap: 0; }

    /* Položka i hlavička skupiny jdou přes CELOU šířku kolejnice: ikona a POD NÍ popisek.
       Zvýraznění nese levý okraj (3 px), ne zaoblený podklad — ten se v úzkém sloupci ztrácí. */
    /* ŘÁDEK 56 px, ne 66 jako v back office — a je to týž kompromis, kvůli kterému má široká
       podoba řádek 32 px místo mockupových 40. Klientské menu má ŠESTNÁCT položek a pod nimi
       ještě přepínač rodin, kartu rodiny a přepínač lišty; při 66 px zmizí pod okrajem pět
       položek už na okně 950 px. Ikona zůstává 24 px (to je ta „větší ikona"), stahují se
       jen mezery. */
    html.lista-uzka .mjt-nav-polozka[b-lt6ygvtlt5],
    html.lista-uzka .mjt-nav-nadpis[b-lt6ygvtlt5] {
        flex-direction: column;
        justify-content: center;
        gap: 4px;
        padding: 7px 6px;
        min-height: 56px;
        border-radius: 0;
        border-left: 3px solid transparent;
        text-align: center;
        font-size: 12.5px;
    }

    /* IKONA 24 px. Sedmnáctka je z široké lišty, kde ikona stojí VEDLE názvu; v kolejnici je
       nad ním a nese celou tíhu rozpoznání. */
    html.lista-uzka .mjt-nav-ikona[b-lt6ygvtlt5] { width: 24px; height: 24px; }
    html.lista-uzka .mjt-nav-ikona[b-lt6ygvtlt5]  svg { width: 24px; height: 24px; }

    html.lista-uzka .mjt-nav-txt[b-lt6ygvtlt5] { display: none; }

    html.lista-uzka .mjt-nav-txt-kratky[b-lt6ygvtlt5] {
        display: block;
        max-width: 100%;
        font-size: 12.5px;
        line-height: 15px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    html.lista-uzka .mjt-nav-polozka.mjt-nav-aktivni[b-lt6ygvtlt5],
    html.lista-uzka a.mjt-nav-polozka.mjt-nav-aktivni:hover[b-lt6ygvtlt5] {
        background: rgba(175, 202, 11, .16);
        border-left-color: var(--mjt-green-500);
        color: var(--mjt-green-400);
    }

    /* Šipka skupiny je pryč: v kolejnici by stála pod popiskem a nemá kam ukázat — skupina se
       rozbaluje dál, jen to neohlašuje grafikou, na kterou není místo. */
    html.lista-uzka .mjt-nav-sipka[b-lt6ygvtlt5] { display: none; }

    /* Pod-položka je v kolejnici obyčejná položka. Svislá linka i odsazení zleva by ji vysunuly
       z osy a odstupňování „patří pod Majetek" nese zavřená/otevřená skupina. */
    html.lista-uzka .mjt-nav-podmenu[b-lt6ygvtlt5] {
        margin: 0;
        padding-left: 0;
        border-left: 0;
        gap: 0;
    }

    /* Odkaz poradce zpět do spisu — šipka a krátký popisek; vysvětlivka jde do title. */
    html.lista-uzka .mjt-zpet[b-lt6ygvtlt5] {
        flex-direction: column;
        gap: 3px;
        padding: 9px 4px;
        font-size: 11px;
        text-align: center;
    }

    html.lista-uzka .mjt-zpet-pozn[b-lt6ygvtlt5] { display: none; }

    /* Nadpis „KLIENTSKÁ DATA" se do 98 px nevejde → vlasová linka, stejně jako nadpisy sekcí
       v kolejnici back office. Skupiny by jinak splynuly v jeden sloupec. */
    html.lista-uzka .mjt-rodiny[b-lt6ygvtlt5] { gap: 5px; padding-inline: 6px; }

    html.lista-uzka .mjt-rodiny-nadpis[b-lt6ygvtlt5] {
        height: 1px;
        margin: 4px 8px 2px;
        padding: 0;
        overflow: hidden;
        background: rgba(244, 239, 228, .16);
        font-size: 0;
        letter-spacing: 0;
    }

    html.lista-uzka .mjt-rodina-chip[b-lt6ygvtlt5] {
        padding: 6px 6px;
        font-size: 10.5px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* Karta rodiny: zbyde monogram. Rozbalení se vysouvá doprava přes obsah — v 98 px by se
       „Váš rodinný tým" lámalo na tři řádky. */
    html.lista-uzka .mjt-kdo[b-lt6ygvtlt5] { justify-content: center; gap: 0; padding: 8px 4px; margin-inline: 6px; }
    html.lista-uzka .mjt-kdo-texty[b-lt6ygvtlt5],
    html.lista-uzka .mjt-kdo-sipka[b-lt6ygvtlt5] { display: none; }
    html.lista-uzka .mjt-kdo-menu[b-lt6ygvtlt5] { left: 6px; right: auto; width: 208px; }

    /* Přepínač: zbyde šipka a otočí se, protože teď rozbaluje. */
    html.lista-uzka .mjt-lista-prepinac[b-lt6ygvtlt5] { justify-content: center; margin-inline: 6px; padding-inline: 4px; }
    html.lista-uzka .mjt-lista-prepinac-txt[b-lt6ygvtlt5] { display: none; }
    html.lista-uzka .mjt-lista-prepinac svg[b-lt6ygvtlt5] { transform: rotate(180deg); }
}

/* ── Obsah ───────────────────────────────────────────────────────────────── */

.mjt-obsah[b-lt6ygvtlt5] {
    min-width: 0;
    padding: 24px 40px;
    /* SPODNÍ REZERVA = Alfrédova zóna: obsah v toku (tabulka, součty, stránkovač, karty)
       končí po dorolování NAD postavou v rohu — pod Alfrédem z principu nic není. Průjezd
       řádků pod postavou BĚHEM rolování je vlastnost fixed prvku a nevadí; kolize, o kterou
       jde, je trvalé zakrytí v koncovém stavu. Hlídá AlfredovaZonaTests. */
    padding-bottom: var(--alfred-zona-h);
    box-sizing: border-box;
    position: relative;   /* kotva pro identitu uživatele vpravo nahoře (.mjt-topbar) */
}

/* KDO JSEM (a odhlášení) visí vpravo nahoře MIMO tok, aby nebral vlastní řádek — hlavička
   stránky si vpravo drží rezervu (.mjt-hlava-radek v majetek.css). Na užším okně se vrací
   do toku, tam je místa málo a překryv by byl horší než řádek navíc. */
.mjt-topbar[b-lt6ygvtlt5] {
    position: absolute;
    top: 20px;
    right: 40px;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 10px;
    /* PRUH SÁM KLIKY NECHYTÁ, jen jeho prvky. Je absolutní a leží NAD hlavičkou stránky,
       takže jeho prázdná plocha překrývala tlačítka „Export" a „Nahlásit chybu" — vizuálně
       nic, ale klik na ně nedošel (změřeno `elementFromPoint` 26. 8. 2026, po přidání
       stavových odznaků se ta plocha roztáhla přes celou pravou půlku hlavičky). */
    pointer-events: none;
}

/* Vrácení kliků prvkům uvnitř řeší GLOBÁLNÍ list (majetek.css) — odznaky stavu patří cizím
   komponentám (NahledPruh, RezimPruh) a scoped pravidlo na ně nedosáhne. Napoprvé jsem to
   napsal sem a odznak přestal jít kliknout: `pointer-events: none` zdědil a `auto` mu nikdo
   nevrátil (26. 8. 2026). */

.mjt-ucet[b-lt6ygvtlt5] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 5px 12px 5px 6px;
    border-radius: var(--mjt-radius-pill);
    background: var(--mjt-white);
    border: 1px solid var(--mjt-hairline);
    min-width: 0;
}

.mjt-ucet-texty[b-lt6ygvtlt5] { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.mjt-ucet-jmeno[b-lt6ygvtlt5] { font-size: 12.5px; font-weight: 600; color: var(--mjt-brown-700); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mjt-ucet-role[b-lt6ygvtlt5] { font-size: 10.5px; color: var(--mjt-brown-400); }

/* ── Menší displeje: menu nahoru, obsah pod něj ──────────────────────────── */

@media (max-width: 1180px) {
    .mjt-topbar[b-lt6ygvtlt5] { position: static; display: flex; justify-content: flex-end; margin-bottom: 6px; }
}

@media (max-width: 900px) {
    .mjt[b-lt6ygvtlt5] { grid-template-columns: 1fr; }

    .mjt-sidebar[b-lt6ygvtlt5] {
        height: auto;
        position: static;
        padding: 12px 14px;
        gap: 12px;
    }

    .mjt-nav[b-lt6ygvtlt5] { flex-direction: row; flex-wrap: wrap; margin-bottom: 0; }
    .mjt-nav[b-lt6ygvtlt5]::after { content: none; }
    .mjt-nav-skupina[b-lt6ygvtlt5] { flex-basis: 100%; }
    .mjt-nav-podmenu[b-lt6ygvtlt5] { flex-direction: row; flex-wrap: wrap; border-left: 0; padding-left: 0; }
    .mjt-zpet[b-lt6ygvtlt5] { padding: 6px 8px; }
    .mjt-obsah[b-lt6ygvtlt5] { padding: 18px 16px var(--alfred-zona-h); }

    /* Přepínač šířky tu nemá co dělat: sidebar je vodorovný pruh nad obsahem, ne sloupec. */
    .mjt-lista-prepinac[b-lt6ygvtlt5] { display: none; }
}
/* /Components/Layout/NahledPruh.razor.rz.scp.css */
/* Pruh náhledu klienta (ADR-0037). Styly patří KE KOMPONENTĚ, ne k rozvržení: po vytažení
   pruhu do vlastní komponenty (2. 8. 2026) přestaly platit, protože scoped CSS rozvržení
   na cizí komponentu nedosáhne — pruh pak vypadal jako holý řádek textu. */
.nahled-pruh[b-zf679kzajp] {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.5rem 1.25rem;
    background-color: #6b4a2b;
    color: #fdf6ec;
    font-size: 0.9rem;
}

.nahled-pruh-text[b-zf679kzajp] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.nahled-pruh-text strong[b-zf679kzajp] {
    color: #ffe7c2;
}

.nahled-pruh-jen[b-zf679kzajp] {
    font-size: 0.8rem;
    opacity: 0.8;
}

.nahled-pruh-zpet[b-zf679kzajp] {
    flex: none;
    padding: 0.3rem 0.8rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    background-color: rgba(255, 255, 255, 0.1);
    color: #fdf6ec;
    text-decoration: none;
    font-weight: 600;
    white-space: nowrap;
    transition: background-color 0.15s, border-color 0.15s;
}

.nahled-pruh-zpet:hover[b-zf679kzajp],
.nahled-pruh-zpet:focus-visible[b-zf679kzajp] {
    background-color: rgba(255, 255, 255, 0.22);
    border-color: #fff;
}

.nahled-pruh-zpet:focus-visible[b-zf679kzajp] {
    outline: 2px solid #ffe7c2;
    outline-offset: 2px;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
/* Dialog výpadku spojení — brandový vzhled (krém, sépie, zelený spinner).
   Třídy components-reconnect-* jsou kontrakt s Blazor JS: řídí, který stav je vidět.
   Logika viditelnosti (display) je převzatá z výchozí šablony — neměnit. */

.components-reconnect-first-attempt-visible[b-j41et3hgqf],
.components-reconnect-repeated-attempt-visible[b-j41et3hgqf],
.components-reconnect-failed-visible[b-j41et3hgqf],
.components-pause-visible[b-j41et3hgqf],
.components-resume-failed-visible[b-j41et3hgqf],
.components-rejoining-animation[b-j41et3hgqf] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-j41et3hgqf],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-j41et3hgqf],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-j41et3hgqf],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-j41et3hgqf],
#components-reconnect-modal.components-reconnect-retrying[b-j41et3hgqf],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-j41et3hgqf],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-j41et3hgqf],
#components-reconnect-modal.components-reconnect-failed[b-j41et3hgqf],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-j41et3hgqf] {
    display: block;
}

/* Tlačítka (globální .tlacitko je inline-flex) — pravidla výše by je přepnula na block
   a rozbila zarovnání obsahu; vyšší specificita (button.třída) vrací inline-flex. */
#components-reconnect-modal.components-reconnect-failed button.components-reconnect-failed-visible[b-j41et3hgqf],
#components-reconnect-modal.components-reconnect-paused button.components-pause-visible[b-j41et3hgqf],
#components-reconnect-modal.components-reconnect-resume-failed button.components-resume-failed-visible[b-j41et3hgqf] {
    display: inline-flex;
}

#components-reconnect-modal[b-j41et3hgqf] {
    background-color: var(--barva-povrch, #FFFFFF);
    color: var(--barva-text, #594334);
    font-family: var(--font-text, sans-serif);
    width: min(22rem, calc(100vw - 2rem));
    margin: 20vh auto;
    padding: 2rem;
    border: 1px solid var(--barva-linka, rgba(89, 67, 52, 0.12));
    border-radius: var(--radius-velky, 20px);
    box-shadow: var(--stin-zvednuty, 0 4px 10px rgba(63, 47, 36, 0.07), 0 18px 44px rgba(63, 47, 36, 0.10));
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-j41et3hgqf 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-j41et3hgqf 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-j41et3hgqf 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-j41et3hgqf]::backdrop {
    background-color: rgba(63, 47, 36, 0.4);   /* sépiové ztmavení místo černé */
    animation: components-reconnect-modal-fadeInOpacity-b-j41et3hgqf 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-j41et3hgqf {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-j41et3hgqf {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-j41et3hgqf {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-j41et3hgqf] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

/* Alfrédova tvář — klidná, v krémovém kroužku (stejný motiv jako bublina promluvy). */
.reconnect-alfred[b-j41et3hgqf] {
    display: inline-flex;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    overflow: hidden;
    background-color: var(--c-krem, #F4EFE7);
    border: 1px solid var(--barva-linka, rgba(89, 67, 52, 0.12));
}

.reconnect-alfred img[b-j41et3hgqf] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

#components-reconnect-modal p[b-j41et3hgqf] {
    margin: 0;
    text-align: center;
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--c-hneda, #594334);
}

/* Zelený „radar" místo modrého — čekání na obnovu spojení. */
.components-rejoining-animation[b-j41et3hgqf] {
    position: relative;
    width: 64px;
    height: 64px;
}

    .components-rejoining-animation div[b-j41et3hgqf] {
        position: absolute;
        border: 3px solid var(--c-zelena-tmava, #90A800);
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-j41et3hgqf 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-j41et3hgqf] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-j41et3hgqf {
    0% {
        top: 32px;
        left: 32px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 32px;
        left: 32px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 32px;
        left: 32px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 64px;
        height: 64px;
        opacity: 0;
    }
}
/* /Components/Layout/RezimPruh.razor.rz.scp.css */
/* Pruh přepnutého režimu (ADR-0050). ZÁMĚRNĚ jiná barva než náhled klienta: náhled je
   „dívám se na cizí rodinu", režim je „pracuji v jiné roli na své" — dvě různé věci, které
   nesmí splývat. Zelenou značkovou nepoužívat, ta čte se jako „vše v pořádku". */
.rezim-pruh[b-neuxvrrao8] {
    position: sticky;
    top: 0;
    z-index: 51;                 /* nad náhledovým pruhem, když by shodou okolností běžely oba */
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.5rem 1.25rem;
    background-color: #3f2f24;
    color: #f4efe7;
    font-size: 0.9rem;
}

.rezim-pruh-text strong[b-neuxvrrao8] { color: #d9e88a; }

.rezim-pruh-zpet[b-neuxvrrao8] {
    flex: none;
    padding: 0.3rem 0.8rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    background-color: rgba(255, 255, 255, 0.08);
    color: #f4efe7;
    text-decoration: none;
    font-weight: 600;
    white-space: nowrap;
    transition: background-color 0.15s, border-color 0.15s;
}

.rezim-pruh-zpet:hover[b-neuxvrrao8],
.rezim-pruh-zpet:focus-visible[b-neuxvrrao8] {
    background-color: rgba(255, 255, 255, 0.2);
    border-color: #fff;
}

.rezim-pruh-zpet:focus-visible[b-neuxvrrao8] {
    outline: 2px solid #d9e88a;
    outline-offset: 2px;
}
/* /Components/Layout/StrankaHlava.razor.rz.scp.css */
/* Hlavička back-office stránky — viz komentář v .razor. Čísla jsou z tokenů (tokeny.css),
   ne volená na místě: velikost titulku 32 px je --text-3xl zmenšené o krok, protože 34 px
   nad hustou tabulkou už přebíjí data pod sebou. */

.bo-hlava[b-xkxppf4b1g] {
    position: relative;
    padding-top: var(--space-3);
    margin-bottom: var(--space-4);
}

/* Zelená čárka nad hlavičkou tu BYLA a je pryč (15. 8. 2026): v Pavlově obrazovce ticketingu
   žádná není a proti předloze to byl jediný prvek navíc. Vzala jsem ji z `.hd::before`
   v prototypové knihovně stylů — jenže ta třída se na téhle obrazovce nepoužívá. Poučení:
   předlohu obtahuj podle TOHO, CO JE VIDĚT, ne podle toho, co je v jejím CSS. */

/* Řádek drobečky + poznámka: mezera pod ním je táž, jakou nesou drobečky samy (1.75rem
   v Drobecky.razor.css) — vnitřní se vynuluje, aby poznámka stála na účaří drobečků. */
.bo-drobky-radek[b-xkxppf4b1g] { display: flex; align-items: baseline; gap: 0.5rem; margin-bottom: 1.75rem; }
.bo-drobky-radek[b-xkxppf4b1g]  .drobecky { margin-bottom: 0; }
.bo-drobky-poznamka[b-xkxppf4b1g] { font-size: 0.85rem; color: var(--brown-400); white-space: nowrap; }

.bo-hlava-radek[b-xkxppf4b1g] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    margin-top: var(--space-2);
}

.bo-titulek[b-xkxppf4b1g] {
    margin: 0;
    font-family: var(--font-display);
    font-weight: var(--fw-semibold);
    font-size: 32px;
    line-height: 1;
    letter-spacing: var(--tracking-tight);
    color: var(--brown-700);
}

/* Nástroje patří k obsahu, proto sedí u titulku a ne u akcí. `min-width: 0` je nutná:
   bez ní se pole hledání odmítne zúžit a řádek se zalomí dřív, než musí. */
.bo-hlava-nastroje[b-xkxppf4b1g] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

/* Akce jsou vždy vpravo — `margin-left: auto` je drží u okraje i po zalomení řádku. */
.bo-hlava-akce[b-xkxppf4b1g] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-left: auto;
    flex: 0 0 auto;
}

.bo-podtitulek[b-xkxppf4b1g] {
    margin: var(--space-2) 0 0;
    max-width: 68ch;
    font-size: var(--text-sm);
    line-height: var(--lh-normal);
    color: var(--barva-text-tlumeny);
}

/* Na úzké obrazovce jde titulek na svůj řádek a akce pod něj — jinak se tlačítka
   slisují do nečitelných útržků. */
@media (max-width: 720px) {
    .bo-titulek[b-xkxppf4b1g] { font-size: var(--text-xl); }

    .bo-hlava-akce[b-xkxppf4b1g] {
        margin-left: 0;
        width: 100%;
    }
}
/* /Components/Layout/UzivatelMenu.razor.rz.scp.css */
/* Kulatý štítek s iniciálami + drobné menu uživatele v hlavičce (D13).
   Brand: tmavě zelený kruh, krémové iniciály; menu = bílá karta s jemným stínem. */

.uziv[b-rl35tpqqo3] {
    position: relative;
    flex: 0 0 auto;
    display: inline-flex;
}

/* --- Kulatý avatar (spouštěč) --- */
.uziv-avatar[b-rl35tpqqo3] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: none;
    padding: 0;
    background-color: var(--c-zelena-tmava);
    color: var(--c-bila);
    font-family: var(--font-text);
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: background-color var(--prechod), transform var(--prechod), box-shadow var(--prechod);
}

/* <summary> má výchozí trojúhelníček a display: list-item — obojí pryč, ať štítek vypadá
   pořád jako kulaté tlačítko (WebKit potřebuje vlastní pseudoprvek). */
.uziv-avatar[b-rl35tpqqo3] { list-style: none; }
.uziv-avatar[b-rl35tpqqo3]::-webkit-details-marker { display: none; }

.uziv-avatar:hover[b-rl35tpqqo3],
.uziv[open] > .uziv-avatar[b-rl35tpqqo3] {
    background-color: var(--c-hneda-tmava);
    transform: translateY(-1px);
    box-shadow: var(--stin-jemny);
}

.uziv-avatar:focus-visible[b-rl35tpqqo3] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

/* --- Rozbalené menu --- */
.uziv-menu[b-rl35tpqqo3] {
    position: absolute;
    top: calc(100% + 0.5rem);
    right: 0;
    z-index: 61;
    min-width: 12rem;
    background-color: var(--c-bila);
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    box-shadow: var(--stin-zvednuty);
    padding: 0.4rem;
    outline: none;
}

.uziv-menu-hlava[b-rl35tpqqo3] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.5rem 0.7rem;
}

.uziv-menu-jmeno[b-rl35tpqqo3] {
    font-weight: 600;
    color: var(--c-hneda-tmava);
    font-size: 0.95rem;
    line-height: 1.3;
}

.uziv-menu-role[b-rl35tpqqo3] {
    font-size: 0.82rem;
    color: var(--barva-text-tlumeny);
}

.uziv-menu-oddelovac[b-rl35tpqqo3] {
    height: 1px;
    margin: 0.35rem 0.4rem;
    background-color: var(--barva-linka);
}

/* MEZI PODBARVENÍMI MUSÍ BÝT VZDUCH (7. 8. 2026). Podbarvení JE padding box, takže dvě
   sousední položky se dotýkaly bez ohledu na velikost odsazení — zmenšit padding by nepomohlo,
   jen by zdrobnilo cíl kliku. Odstup dělá margin: zaoblené plochy se rozdělí a řádek si
   zachová pohodlnou výšku. Svislé odsazení je o chlup nižší, aby položky nevyrostly. */
.uziv-menu-polozka[b-rl35tpqqo3] {
    display: block;
    width: 100%;
    padding: 0.48rem 0.7rem;
    margin-block: 2px;
    border-radius: 10px;
    color: var(--c-hneda);
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
    transition: background-color var(--prechod), color var(--prechod);
}

/* HOVER JE NEUTRÁLNÍ, ZELENÁ ZNAMENÁ „TADY JSI" (oprava 7. 8. 2026). Do té doby měly
   oba stavy TÉHOŽ světle zeleného podbarvení, takže při najetí svítily dvě položky zároveň
   a nešlo poznat, ve kterém režimu člověk vlastně je. Jedna barva = jeden význam. */
.uziv-menu-polozka:hover[b-rl35tpqqo3] {
    background-color: var(--c-krem);
    color: var(--c-hneda-tmava);
}

.uziv-menu-polozka:focus-visible[b-rl35tpqqo3] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: -2px;
}

/* Dev přepínač osoby v menu: nadpis skupiny + zvýraznění aktuální osoby. */
.uziv-menu-nadpis[b-rl35tpqqo3] {
    display: block;
    padding: 0.35rem 0.7rem 0.1rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}

/* Aktivní režim/osoba. Nese fajfku, ne jen barvu — samotné podbarvení je pro barvoslepé
   (a na horším displeji pro kohokoli) nečitelné, a je to i jediný stav, který si člověk
   potřebuje ověřit dřív, než něco přepne. */
.uziv-menu-polozka.je-aktivni[b-rl35tpqqo3] {
    background-color: var(--c-zelena-svetla);
    color: var(--c-hneda-tmava);
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.uziv-menu-polozka.je-aktivni[b-rl35tpqqo3]::after {
    content: "✓";
    font-size: 0.85em;
    color: var(--c-zelena-tmava);
    line-height: 1;
}

/* I na aktivní položku se dá najet — musí odpovědět, jinak působí zaseknutě. Zelená
   se jen prohloubí, nepřepne se na neutrál. */
.uziv-menu-polozka.je-aktivni:hover[b-rl35tpqqo3] {
    background-color: #d3e79c;
}
/* /Components/Layout/VerzePaticka.razor.rz.scp.css */
/* Verzová patička — záměrně nenápadná: malá, tlumená, dole na stránce. Jen tečka kanálu
   nese barvu, text je šedý, ať to neruší luxusní, vzdušný dojem shellu. */
.verze-paticka[b-yfsptp9nqi] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.6rem 1rem 0.9rem;
    font-size: 0.72rem;
    line-height: 1;
    color: var(--barva-text-tlumeny, #8a7f74);
    opacity: 0.7;
    user-select: none;
}

.verze-paticka-text[b-yfsptp9nqi] {
    font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

/* Tečka kanálu — jediný barevný akcent. */
.verze-paticka-kanal[b-yfsptp9nqi] {
    width: 7px;
    height: 7px;
    border-radius: 999px;
    flex: 0 0 auto;
    background-color: #b9b0a6;   /* neurčeno / fallback = šedá */
}

.verze-kanal-vyvoj[b-yfsptp9nqi] {
    background-color: #9aa0a6;   /* vývoj = šedá */
}

.verze-kanal-staging[b-yfsptp9nqi] {
    background-color: #e0a800;   /* staging = jantar */
}

.verze-kanal-produkce[b-yfsptp9nqi] {
    background-color: #3f7a3f;   /* produkce = klidná zelená */
}
/* /Components/Majetek/AlokaceIps.razor.rz.scp.css */
/* Panel „Alokace vs. investiční strategie (IPS)" — rozměry a barvy 1:1 z návrhu klientského
   portálu (`.ips/.ir/.in/.trh/.track/.band/.tgt/.cur/.trtip/.idrift`). Tokeny se čtou
   z `--mjt-*` (MajetekLayout.razor.css) — do klientské tváře se dědí. */

.ips[b-fplseo1fav] { display: flex; flex-direction: column; }

.ir[b-fplseo1fav] {
    display: grid;
    grid-template-columns: minmax(64px, 88px) minmax(0, 1fr) minmax(56px, 72px);
    gap: 10px;
    align-items: center;
    padding: 11px 0;
    border-bottom: 1px solid var(--mjt-cream-200);
}

/* Poslední řádek bez linky — jinak visí čára nad prázdnem (návrh má panel delší, u nás
   může skončit už po dvou třídách). */
.ir:last-of-type[b-fplseo1fav] { border-bottom: 0; }

.in[b-fplseo1fav] { font-size: 12.5px; color: var(--mjt-brown-700); font-weight: 600; }

.trh[b-fplseo1fav] { position: relative; width: 100%; min-width: 0; }

.track[b-fplseo1fav] {
    position: relative;
    height: 22px;
    border-radius: var(--mjt-radius-sm);
    background: var(--mjt-cream-200);
    cursor: default;
    /* BEZ `overflow: hidden` (odchylka od návrhu): značka „aktuálně" přesahuje pruh o 2 px
       nahoru a dolů, aby byla vidět i na okraji pásma — návrh ji tím ořezával a při 0 %
       nebo 100 % z ní zbývala polovina. */
}

.track .band[b-fplseo1fav] { position: absolute; top: 0; bottom: 0; background: var(--mjt-green-200); }
.track .tgt[b-fplseo1fav] { position: absolute; top: 0; bottom: 0; width: 0; border-left: 2px dashed var(--mjt-green-700); }
.track .cur[b-fplseo1fav] { position: absolute; top: -2px; bottom: -2px; width: 3px; background: var(--mjt-brown-700); border-radius: 2px; }

/* Krajní hodnoty se nesmí vysunout z pruhu: při 100 % by značka stála celou šířkou vedle. */
.track .cur[b-fplseo1fav] { transform: translateX(-1.5px); }
.track .band:first-child[b-fplseo1fav] { border-radius: var(--mjt-radius-sm) 0 0 var(--mjt-radius-sm); }

/* Bublina s detailem — `:hover`, žádný JavaScript (ADR-0067). */
.trtip[b-fplseo1fav] {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 9px);
    transform: translateX(-50%);
    background: var(--mjt-brown-900);
    color: var(--mjt-cream-100);
    border-radius: 10px;
    padding: 9px 12px;
    font-size: 11.5px;
    line-height: 1.55;
    white-space: nowrap;
    box-shadow: var(--mjt-shadow-md);
    opacity: 0;
    pointer-events: none;
    transition: opacity .14s var(--mjt-ease-standard);
    z-index: 6;
}

.trh:hover .trtip[b-fplseo1fav] { opacity: 1; }

.trtip .tl1[b-fplseo1fav] { font-family: var(--mjt-font-cisla); font-weight: 700; font-size: 13px; color: var(--mjt-cream-100); }
.trtip .tl2[b-fplseo1fav] { color: var(--mjt-text-ondark-muted); }
.trtip .tl3[b-fplseo1fav] { color: var(--mjt-green-400); font-weight: 600; }
.trtip .tl3.warn[b-fplseo1fav] { color: #e0b93a; }

.idrift[b-fplseo1fav] { text-align: right; line-height: 1.2; }
.idrift b[b-fplseo1fav] { font-size: 13px; font-weight: 700; }

/* Barva odchylky NESE STAV, ne znaménko: „+3 p. b." uvnitř pásma není špatná zpráva a červená
   by k němu volala po jednání, které se dělat nemá. Návrh to má stejně (driftColor jde ze
   stavu), jen se to z markupu nepozná. */
.idrift b.je-v-pasmu[b-fplseo1fav] { color: var(--mjt-brown-700); }
.idrift b.je-mimo[b-fplseo1fav] { color: var(--mjt-warning); }

.idrift .ist[b-fplseo1fav] { display: block; font-size: 10.5px; color: var(--mjt-brown-400); margin-top: 2px; }

/* Legenda tří značek nad pruhy. */
.ips-legenda[b-fplseo1fav] {
    display: flex;
    gap: 16px;
    align-items: center;
    margin: 0 0 6px;
    font-size: 11px;
    color: var(--mjt-brown-400);
    flex-wrap: wrap;
}

.ips-legenda > span[b-fplseo1fav] { display: inline-flex; align-items: center; gap: 6px; }

.ips-vz-pasmo[b-fplseo1fav] { width: 14px; height: 10px; background: var(--mjt-green-200); border-radius: 2px; display: inline-block; }
.ips-vz-cil[b-fplseo1fav] { width: 0; height: 12px; border-left: 2px dashed var(--mjt-green-700); display: inline-block; }
.ips-vz-ted[b-fplseo1fav] { width: 3px; height: 12px; background: var(--mjt-brown-700); border-radius: 2px; display: inline-block; }

.ips-bez-pasma[b-fplseo1fav] {
    margin: 12px 0 0;
    padding-top: 10px;
    border-top: 1px solid var(--mjt-hairline);
    font-size: 11.5px;
    line-height: 1.55;
    color: var(--mjt-brown-400);
}
/* /Components/Majetek/IkonaVyber.razor.rz.scp.css */
/* Výběr ikony položky (ADR-0044) — mřížka obrázků, ne rozbalovací seznam:
   uživatel vybírá podle toho, co vidí. */

.maj-ikvyb[b-flxgbpnsgi] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 6px 0 2px;
    flex-wrap: wrap;
}

.maj-ikvyb-l[b-flxgbpnsgi] {
    flex: 0 0 auto;
    padding-top: 8px;
    font-size: .78rem;
    color: var(--barva-text-tlumeny);
}

.maj-ikvyb-mriz[b-flxgbpnsgi] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    flex: 1 1 320px;
}

.maj-ikvyb-d[b-flxgbpnsgi] {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    padding: 4px;
    background: #fff;
    border: 1.5px solid var(--barva-linka);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color var(--prechod), box-shadow var(--prechod), transform var(--prechod);
}

.maj-ikvyb-d:hover[b-flxgbpnsgi] {
    border-color: var(--c-zelena-tmava);
    transform: translateY(-1px);
}

.maj-ikvyb-d:focus-visible[b-flxgbpnsgi] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

/* Vybraná ikona musí být poznat i bez barvy (tisk, barvoslepost) — proto silnější rám
   i podklad, ne jen odstín. */
.maj-ikvyb-d.je-vybrana[b-flxgbpnsgi] {
    border-color: var(--c-zelena-tmava);
    border-width: 2.5px;
    background: var(--c-zelena-svetla);
    box-shadow: 0 2px 6px rgb(0 0 0 / .08);
}

.maj-ikvyb-d img[b-flxgbpnsgi] {
    width: 34px;
    height: 34px;
    object-fit: contain;
}

/* „Podle názvu" = žádný výběr; je to volba jako každá jiná, jen textová. */
.maj-ikvyb-auto[b-flxgbpnsgi] {
    font-size: .62rem;
    line-height: 1.15;
    text-align: center;
    color: var(--barva-text-tlumeny);
}

.maj-ikvyb-d.je-vybrana .maj-ikvyb-auto[b-flxgbpnsgi] {
    color: var(--c-hneda-tmava);
    font-weight: 600;
}
/* /Components/Majetek/KlientskaSprava.razor.rz.scp.css */
/* KLIENTSKÁ SPRÁVA MAJETKU (ADR-0076) — jediný interaktivní ostrov klientské tváře.

   Vlastní třídy, nic vypůjčeného: scoped CSS na cizí komponentu nedosáhne (ADR-0063 §8), takže
   opsaná třída z rodinného spisu by se tu prostě nevykreslila a build by o tom mlčel. */

.ksp-nahrat[b-48nflv5ec8] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ksp-nahrat-radek[b-48nflv5ec8] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.ksp-mez[b-48nflv5ec8] {
    margin: 0;
    font-size: 0.85rem;
}

.ksp-hlaska[b-48nflv5ec8] {
    margin: 0;
    padding: 0.55rem 0.8rem;
    border-left: 3px solid var(--mjt-akcent, #7aa87f);
    background: rgba(122, 168, 127, 0.1);
    border-radius: 0 8px 8px 0;
}

.ksp-nadpis[b-48nflv5ec8] {
    margin: 0 0 0.8rem;
    font-size: 1.05rem;
}

/* ── výběr souboru ───────────────────────────────────────────────────────────────────── */

.ksp-soubor-tlac[b-48nflv5ec8] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 0.95rem;
    border: 1px solid var(--mjt-linka, rgba(255, 255, 255, 0.18));
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    white-space: nowrap;
}

.ksp-soubor-tlac:focus-within[b-48nflv5ec8] {
    outline: 2px solid var(--mjt-akcent, #7aa87f);
    outline-offset: 1px;
}

/* ::deep NUTNÉ: <InputFile> je komponenta a její <input> scope atribut nedostane — bez toho
   by zůstal viditelný syrový anglický „Choose File / No file chosen". */
.ksp-soubor-tlac[b-48nflv5ec8]  .ksp-soubor-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    overflow: hidden;
}

/* ── stavy dávky ─────────────────────────────────────────────────────────────────────── */

.ksp-stav[b-48nflv5ec8] {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.8rem;
    white-space: nowrap;
}

.ksp-stav.je-rozpracovano[b-48nflv5ec8] { background: rgba(255, 255, 255, 0.08); }
.ksp-stav.je-ceka[b-48nflv5ec8] { background: rgba(192, 138, 18, 0.2); }
.ksp-stav.je-vraceno[b-48nflv5ec8] { background: rgba(177, 68, 47, 0.2); }
.ksp-stav.je-hotovo[b-48nflv5ec8] { background: rgba(47, 125, 79, 0.2); }

/* ── rozbalený detail ────────────────────────────────────────────────────────────────── */

.ksp-detail[b-48nflv5ec8] {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    padding: 0.9rem 0.2rem;
}

.ksp-shrnuti[b-48nflv5ec8] {
    margin: 0;
    font-size: 1rem;
}

/* VRÁCENO, nikdy „zamítnuto" (SPEC §5.4) — a vždycky s tím, co se po klientovi chce. */
.ksp-vraceno[b-48nflv5ec8] {
    margin: 0;
    padding: 0.6rem 0.85rem;
    border-left: 3px solid #c08a12;
    background: rgba(192, 138, 18, 0.12);
    border-radius: 0 8px 8px 0;
}

.ksp-karantena[b-48nflv5ec8] {
    margin: 0;
    padding: 0.6rem 0.85rem;
    border-left: 3px solid rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.06);
    border-radius: 0 8px 8px 0;
}

.ksp-hlavicka[b-48nflv5ec8] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: 0.5rem 1.2rem;
    margin: 0;
}

.ksp-hlavicka dt[b-48nflv5ec8] {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.7;
}

.ksp-hlavicka dd[b-48nflv5ec8] {
    margin: 0;
    font-variant-numeric: tabular-nums;
}

.ksp-nejiste h3[b-48nflv5ec8] {
    margin: 0 0 0.4rem;
    font-size: 0.95rem;
}

.ksp-nejiste ul[b-48nflv5ec8] {
    margin: 0;
    padding-left: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.ksp-duvod[b-48nflv5ec8] {
    display: block;
    font-size: 0.8rem;
    opacity: 0.75;
}

.ksp-akce[b-48nflv5ec8] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

/* Potvrzení je INLINE u tlačítka, kterého se týká — modální okna jsou zakázaná a Alfrédova
   potvrzovací vrstva se v klientském rozvržení bez zavolaného Alfréda nevykresluje. */
.ksp-potvrzeni[b-48nflv5ec8] {
    flex: 1 1 100%;
    margin: 0;
    padding: 0.6rem 0.85rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.08);
}

.ksp-detail-radek td[b-48nflv5ec8] {
    background: rgba(255, 255, 255, 0.04);
}

/* Co čeká na kontrolu kanceláře. Vlastní blok schválně: dokument v karanténě žádnou dávku nemá,
   takže do tabulky níž nepatří — a splynout s ní nesmí, protože se s ním nedá nic dělat. */
.ksp-ceka-seznam[b-48nflv5ec8] {
    margin: 0.5rem 0 0;
    padding-left: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

/* Akce v řádku tabulky. Vlastní třída, ne back-officová `.tabulka-akce`: ta je scoped v jiné
   komponentě a v tmavé tváři by beztak měla špatné barvy. */
.ksp-radek-akce[b-48nflv5ec8] {
    padding: 0.25rem 0.6rem;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 6px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 0.82rem;
    cursor: pointer;
    white-space: nowrap;
}

.ksp-radek-akce:hover[b-48nflv5ec8] { border-color: var(--mjt-akcent, #afca0b); }
.ksp-radek-akce:disabled[b-48nflv5ec8] { opacity: 0.5; cursor: default; }

.ksp-ceka-stav[b-48nflv5ec8],
.ksp-ceka-akce[b-48nflv5ec8] {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.82rem;
    opacity: 0.8;
}
/* /Components/Majetek/NemovitostPole.razor.rz.scp.css */
/* Detail nemovitosti ve formuláři majetku (story A2). Drží se back-officového zhuštění
   (ADR-0033/0049): hustá mřížka, drobné popisky nad poli. Vstupy stylují globální .pole. */

.maj-nem-mriz[b-yr3kan9fjy] {
    display: grid;
    /* minmax(0, …) drží mřížku uvnitř řádku tabulky — bez nuly ji dlouhá adresa roztáhne. */
    grid-template-columns: repeat(auto-fit, minmax(min(10rem, 100%), 1fr));
    gap: 0.5rem 0.6rem;
}

.maj-nem-pole[b-yr3kan9fjy] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

/* Adresa je nejdelší údaj — ať se needituje v pahýlu. */
.maj-nem-pole-siroke[b-yr3kan9fjy] { grid-column: span 2; }

/* PAST `.zpole` (CLAUDE.md / ADR-0063 §8): obal CisloPole/DatumPole má `flex: 1` a ve svislém
   sloupci roste do VÝŠKY. Změřeno 17. 8. 2026 na kartě položky: čtyři pole s číslem (výměra,
   jednotek, nájem, obsazenost) měřila 128 px místo 28 px, takže každý řádek mřížky byl 148 px
   a mezi „Adresou" a „Jednotkami" zela stovka prázdných pixelů. `::deep` MUSÍ být — značku
   kreslí CisloPole, tedy CIZÍ komponenta. Týž předpis má `ZarazeniPole`; sem se zapomněl. */
.maj-nem-pole[b-yr3kan9fjy]  .zpole { flex: none; }

.maj-nem-l[b-yr3kan9fjy] {
    font-size: 0.74rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}
/* /Components/Majetek/OceneniHistorie.razor.rz.scp.css */
/* Historie ocenění — čtecí tabulka nad formulářem zápisu. Čísla tabulky bydlí v globálním
   listu (`.mck .pol-tab`); tady je jen to, co je vlastní téhle komponentě. */

.oc-hist[b-u6s4apno3j] { margin-bottom: 6px; }

.oc-hist-prazdno[b-u6s4apno3j] {
    margin: 0 0 0.4rem;
    font-size: var(--pol-text, 0.82rem);
    color: var(--barva-text-tlumeny);
}

/* Hodnota, kterou položka právě NESE. Tlustě, ne barevně: barva v téhle tabulce znamená
   svěžest ocenění a dva významy jedné barvy se pletou. */
.oc-hist tr.je-platne td[b-u6s4apno3j] { font-weight: 600; }

.oc-hist-vice[b-u6s4apno3j] { margin-bottom: 6px; }
/* /Components/Majetek/PoziceFormularRadek.razor.rz.scp.css */
/* Řádkový formulář titulu v panelu složení (SPEC §3.2). Hustý jazyk back office (ADR-0049):
   malé popisky nad poli, mřížka přes celou šířku, žádné modální okno.

   POZOR: samotný slovník polí (.poz-form-mriz, .poz-pole, .poz-popisek, .poz-cislo,
   .poz-form-chyby, .poz-form-akce) je ZÁMĚRNĚ v globálním css/tabulka.css — mluví jím i rychlé
   přecenění a scoped styl jedné komponenty by na druhou nedosáhl. Tady zůstává jen to,
   co patří opravdu jen tomuhle formuláři. */

.poz-form[b-d6aiozk6i4] {
    border: 1px solid var(--barva-linka);
    border-radius: 10px;
    background: var(--barva-pozadi);
    padding: 10px 12px 12px;
    margin: 0;
}

.poz-form-hlava[b-d6aiozk6i4] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.poz-form-h[b-d6aiozk6i4] {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--barva-text);
}

.poz-form-napoveda[b-d6aiozk6i4] {
    font-size: 0.74rem;
    line-height: 1.45;
    color: var(--barva-text-tlumeny);
    flex: 1 1 18rem;
    min-width: 0;
}

.poz-form-pozn[b-d6aiozk6i4] {
    margin: 8px 0 0;
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--barva-text-tlumeny);
}
/* /Components/Majetek/PoziceOdebraniRadek.razor.rz.scp.css */
/* Odebrání titulu — JEDEN ŘÁDEK (14. 8. 2026). Dvousloupcová verze se dvěma nadpisy a dvěma
   odstavci roztlačila tabulku o ~200 px; volba mezi „prodáno" a „chybný zápis" ale zůstala,
   protože to jsou opačné věci (viz komentář v .razor). */
.poz-odeb[b-ti51q5sz67] {
    border: 1px solid var(--barva-linka);
    border-radius: 10px;
    background: var(--barva-pozadi);
    padding: 8px 12px;
    margin: 0;
}

/* Obě cesty NARÁZ na jedné lince — jinak se z volby stane posloupnost („co bylo výš" vyhrává)
   a rozlišení prodeje od překlepu je celý smysl toho řádku. Na úzké obrazovce se zalomí. */
.poz-odeb-radek[b-ti51q5sz67] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 10px;
}

.poz-odeb-h[b-ti51q5sz67] {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--barva-text);
}

.poz-odeb-stav[b-ti51q5sz67],
.poz-odeb-popisek[b-ti51q5sz67],
.poz-odeb-nebo[b-ti51q5sz67] {
    font-size: 0.74rem;
    color: var(--barva-text-tlumeny);
}

/* Datum patří k „Zapsat pozbytí", ne k „Smazat" — držet je pohromadě je jediné, co na řádku
   říká, ke které z obou cest to pole vlastně je. */
/* Skupina zůstává HNED U TITULU, ne odsazená doprava: na široké tabulce (1 785 px) mezi ně
   `margin-left: auto` postavil půl metru prázdna a oko muselo cestovat od „Odebrat X" k poli
   s datem. Doprava se odsouvá jen „Zrušit" — to je odchod, ne volba. */
.poz-odeb-skupina[b-ti51q5sz67] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* `.zpole` vykresluje DatumPole, takže scoped pravidlo na něj dosáhne jen přes ::deep
   (ADR-0063 §8). Bez toho platí jeho `flex: 1` a pole se v řádku roztáhne přes půl šířky. */
.poz-odeb-skupina[b-ti51q5sz67]  .zpole { flex: 0 0 auto; }
.poz-odeb-datum[b-ti51q5sz67] { width: 8.5rem; }

.poz-odeb-zrusit[b-ti51q5sz67] { margin-left: auto; }

.poz-odeb-vysvetl[b-ti51q5sz67] {
    margin: 6px 0 0;
    font-size: 0.74rem;
    line-height: 1.45;
    color: var(--barva-text-tlumeny);
}

.poz-form-chyby[b-ti51q5sz67] {
    margin: 6px 0 0;
    padding-left: 1.1rem;
    font-size: 0.76rem;
    color: var(--barva-chyba, #a3341f);
}
/* /Components/Majetek/PozicePanel.razor.rz.scp.css */
/* Složení portfolia v back office (ADR-0055). Hustá tabulka, nic vzdušného — tohle je
   pracovní pohled poradce, ne klientská výkladní skříň (ADR-0049). */

.maj-poz-hlava[b-vr96zqlw4e] {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    flex-wrap: wrap;
    margin-bottom: 0.45rem;
}

.maj-poz-h[b-vr96zqlw4e] {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--barva-text);
}

.maj-poz-sub[b-vr96zqlw4e] {
    font-size: 0.76rem;
    color: var(--barva-text-tlumeny);
}

/* Stav složení proti zapsané hodnotě — tři stavy, ne dva: „sedí", „liší se"
   a „porovnat to neumíme". Splynutí posledních dvou by z chybějícího kurzu
   udělalo nalezenou vadu. */
.maj-poz-stav[b-vr96zqlw4e] {
    margin-left: auto;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    white-space: nowrap;
}

.maj-poz-stav.je-ok[b-vr96zqlw4e] { background: var(--c-zelena-svetla); color: var(--barva-akcent-text); }
.maj-poz-stav.je-pozor[b-vr96zqlw4e] { background: rgba(200, 135, 31, 0.14); color: #8a6015; }
.maj-poz-stav.je-info[b-vr96zqlw4e] { background: var(--barva-pozadi); color: var(--barva-text-tlumeny); }

.maj-poz-prazdno[b-vr96zqlw4e] {
    margin: 0;
    font-size: 0.82rem;
    color: var(--barva-text-tlumeny);
}

/* Hustá tabulka panelu — týž jazyk jako sdílená `.tabulka` (nízký řádek, 13 px, tabulkové
   číslice, čísla vpravo), ale vlastní třídy: sdílený vzor tady koliduje s pravidly pro
   rozšiřující řádek nadřazené tabulky (viz komentář v komponentě). */
.maj-poz-obal[b-vr96zqlw4e] {
    overflow-x: auto;
    border: 1px solid var(--barva-linka);
    border-radius: 10px;
    background: var(--barva-povrch);
    /* Měrná soustava pro formulářový řádek: `100cqw` = šířka VÝŘEZU (850 px), ne tabulky
       (1 785 px). Bez toho se formulář natáhne přes celou tabulku a jeho tlačítka skončí
       mimo obrazovku — viz pravidlo u `.maj-poz-formradek`. */
    container-type: inline-size;
}

/* POZOR NA SPECIFICITU: panel visí uvnitř `tr.tabulka-rozsireni` nadřazené tabulky a její
   pravidlo `.tabulka tbody tr.tabulka-rozsireni td` (0,2,3) přebíjí prostý `.maj-poz-tab td`
   i se scope atributem (0,2,1) — vnořeným buňkám by sebralo odsazení a čísla by se slepila
   se sousedním sloupcem. Proto je selektor vedený od obalu: (0,3,1) už vyhraje. */
/* Šířku řídí `colgroup` v procentech nad `table-layout: fixed` (viz tabulka.css) — proto tady
   `width: 100%` a NE `max-content`: nad neurčitou šířkou se procenta neuplatní a sloupce spadnou
   zpátky na velikost obsahu. Prázdný pruh za posledním sloupcem měl jinou příčinu (uložená váha
   sloupce akcí, viz PozicePanel.VahaSloupce). */
.maj-poz-obal .maj-poz-tab[b-vr96zqlw4e] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.maj-poz-obal .maj-poz-tab th[b-vr96zqlw4e] {
    text-align: left;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
    padding: 0 12px;
    height: 30px;
    white-space: nowrap;
    border-bottom: 1px solid var(--barva-linka);
    background: var(--barva-pozadi);
}

/* OŘEZ PATŘÍ ZPÁTKY (14. 8. 2026). Tohle pravidlo mělo `overflow: visible`, čímž rušilo
   globální ořez z `.tabulka td` — dlouhá POZNÁMKA nebo ZDROJ CENY pak s `nowrap` vytekly přes
   sousední sloupec a text „ETF (akciový) · Globální · UBS Switzerland" se kreslil přes „ruční
   evidence". Vypadá to jako slité sloupce, ale je to obyčejné přetečení; na ukázkových datech se
   to neprojeví (poznámka je „—"), takže to vylezlo až na stagingu s daty z mockupu. Celý text
   zůstává čitelný v `title` (a v přepisu buňky). */
.maj-poz-obal .maj-poz-tab td[b-vr96zqlw4e] {
    padding: 0 12px;
    height: 28px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background: var(--barva-povrch);
    border-bottom: 1px solid var(--barva-linka);
}

/* Buňka V PŘEPISU přetékat MUSÍ: `CisloPole`/`DatumPole` se u dvojznačného zápisu doptávají
   INLINE (ADR-0063 §6) a ta otázka je vyšší i širší než řádek tabulky — ořez by ji uřízl
   a člověk by neměl na co odpovědět.

   Váže se na `.je-editovana`, což je značka PŘEPISOVANÉ BUŇKY. Napoprvé tu stálo
   `tr.je-otevrena td` — to je ale jiný stav (rozbalený řádek), takže výjimka při přepisu
   neplatila; `:focus-within` ji tehdy zachraňoval, jenže ten mizí, jakmile fokus z buňky
   odejde (a inline otázka na obrazovce zůstává). Změřeno klikem do buňky: `je-otevrena` 0. */
.maj-poz-obal .maj-poz-tab td.je-editovana[b-vr96zqlw4e],
.maj-poz-obal .maj-poz-tab td:focus-within[b-vr96zqlw4e] { overflow: visible; }

.maj-poz-obal .maj-poz-tab tbody tr:nth-child(even) td[b-vr96zqlw4e] { background: rgba(89, 67, 52, 0.03); }
.maj-poz-obal .maj-poz-tab tr:last-child td[b-vr96zqlw4e] { border-bottom: 0; }

.maj-poz-obal .maj-poz-tab .sl-cislo[b-vr96zqlw4e] { text-align: right; font-family: var(--font-cisla); }

.maj-poz-obal .maj-poz-tab .sl-nazev[b-vr96zqlw4e] {
    font-weight: 500;
    max-width: 30ch;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ISIN je kód — čte se po znacích, proto neproporcionální řez. */
.maj-poz-kod[b-vr96zqlw4e] {
    font-family: var(--font-cisla);
    letter-spacing: 0.02em;
}

.maj-poz-obal .maj-poz-tab .maj-poz-suma td[b-vr96zqlw4e] {
    font-weight: 600;
    border-top: 1px solid var(--barva-linka);
    background: var(--barva-pozadi);
}

.maj-poz-pozn[b-vr96zqlw4e] {
    margin: 0.55rem 0 0;
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--barva-text-tlumeny);
}

/* Stáří cen v hlavičce — nejstarší datum z výběru, slovem a ne barvou (SPEC §2.3).
   Starý NAV fondu není chyba, takže tady žádný semafor nesvítí. */
.maj-poz-kdy[b-vr96zqlw4e] {
    font-size: 0.72rem;
    color: var(--barva-text-tlumeny);
    white-space: nowrap;
}

/* Pilulka stavu se dřív odsazovala `margin-left: auto`; teď je vpravo tlačítko, takže
   odsazení drží ono a pilulka jen sedí vedle. */
.maj-poz-stav[b-vr96zqlw4e] { margin-left: 0; }
.maj-poz-pridat[b-vr96zqlw4e] { margin-left: auto; }

/* Řádek s formulářem: rozšiřující řádek vlastní tabulky panelu. Musí přebít hustou buňku
   (padding 0 12px, height 28px, nowrap), jinak by se formulář slepil s okraji a nezalomil. */
.maj-poz-obal .maj-poz-tab .maj-poz-formradek td[b-vr96zqlw4e] {
    padding: 8px;
    height: auto;
    white-space: normal;
    background: var(--barva-pozadi);
    /* Ořez z `.maj-poz-tab td` by uřízl připnutý formulář (níž) — a formulář se ořezávat nemá,
       je to obsah, ne buňka tabulky. */
    overflow: visible;
}

/* FORMULÁŘ SE DRŽÍ VIDITELNÉ ČÁSTI. Řádek s formulářem je široký jako celá tabulka (1 785 px),
   takže na ploše široké 850 px končila tlačítka „Zapsat pozbytí" i „Smazat" mimo obrazovku
   a člověk musel odrolovat doprava, aby dokončil to, co začal vlevo. `sticky` je přišpendlí
   k levému okraji výřezu při jakémkoli posunu a `100cqw` jim dá šířku VÝŘEZU (`container-type`
   výš), takže se řádek zalomí podle toho, co je vidět. Samotné `fit-content` nestačilo: obsah
   je na jednu řádku širší než 850 px, takže se sice připnul, ale konec zůstal za okrajem. */
/* `::deep`, protože kořen formuláře patří CIZÍ komponentě (PoziceOdebraniRadek / …Preceneni /
   …Formular) — bez něj se scoped pravidlo na tu značku nechytí a nic se nestane (ADR-0063 §8;
   napoprvé jsem na to zapomněl a měření ukázalo, že tlačítka zůstala za okrajem). */
.maj-poz-obal .maj-poz-tab .maj-poz-formradek td[b-vr96zqlw4e]  .poz-odeb,
.maj-poz-obal .maj-poz-tab .maj-poz-formradek td[b-vr96zqlw4e]  .poz-prec,
.maj-poz-obal .maj-poz-tab .maj-poz-formradek td[b-vr96zqlw4e]  .poz-form {
    position: sticky;
    left: 0;
    width: 100cqw;
    max-width: 100cqw;
    box-sizing: border-box;
}

/* Řádek, pod kterým je otevřený formulář — ať je vidět, ke které pozici patří. */
.maj-poz-obal .maj-poz-tab tr.je-otevrena td[b-vr96zqlw4e] {
    background: var(--barva-pozadi);
    font-weight: 500;
}

.maj-poz-obal .maj-poz-tab .sl-akce[b-vr96zqlw4e] {
    text-align: right;
    white-space: nowrap;
}

/* AKCE PATŘÍ JEN ŘÁDKU POD KURZOREM.
   Tlačítka `.tabulka-akce` jsou tichá (opacity 0) a odkrývá je globální pravidlo
   `.tabulka tbody tr:hover .tabulka-akce`. Jenže tenhle panel visí uvnitř rozšiřujícího
   řádku NADŘAZENÉ `.tabulka` — kurzor kdekoli v panelu tedy „hoveruje" ten jeden vnější
   řádek a pravidlo odkryje akce u VŠECH titulů naráz (nález při ověření řezu 1a, 8. 8. 2026).
   Panel si proto řídí odkrývání sám: vlastní tabulka je specifičtější než globální pravidlo
   (0,4,0 × 0,3,2), takže tiché zůstane tiché, dokud kurzor nestojí na řádku titulu. */
.maj-poz-obal .maj-poz-tab .tabulka-akce[b-vr96zqlw4e] { opacity: 0; }

.maj-poz-obal .maj-poz-tab tbody tr:hover .tabulka-akce[b-vr96zqlw4e],
.maj-poz-obal .maj-poz-tab tbody tr:focus-within .tabulka-akce[b-vr96zqlw4e] { opacity: 1; }

/* Dotyk hover nemá — tam ať jsou akce vidět rovnou (týž ústupek jako v tabulka.css). */
@media (hover: none) {
    .maj-poz-obal .maj-poz-tab .tabulka-akce[b-vr96zqlw4e] { opacity: 1; }
}

/* PRUH SMÍŘENÍ: součet titulů × zapsaná hodnota × rozdíl, a odsud se dá obojí srovnat. */
.maj-poz-pruh[b-vr96zqlw4e] {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    flex-wrap: wrap;
    margin-top: 0.55rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--barva-linka);
    border-radius: 10px;
    background: var(--barva-pozadi);
    font-size: 0.8rem;
}

.maj-poz-pruh-cast[b-vr96zqlw4e] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.maj-poz-pruh-p[b-vr96zqlw4e] {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
    white-space: nowrap;
}

.maj-poz-pruh-cast strong[b-vr96zqlw4e] {
    font-family: var(--font-cisla);
    font-variant-numeric: tabular-nums;
}

/* Nenulový rozdíl se pojmenuje, ne schová — je to informace, ne vada (ADR-0055 §4). */
.maj-poz-pruh-cast strong.je-pozor[b-vr96zqlw4e] { color: #8a6015; }

.maj-poz-pruh .tlacitko[b-vr96zqlw4e] { margin-left: auto; }

/* ── KONEC ŽIVOTNÍHO CYKLU POZICE (řez 1b, SPEC §3.4) ─────────────────────────────────── */

/* Štítek u titulu, který má zapsané pozbytí, ale poslední den držení ještě neuplynul.
   Interval [pořízeno, pozbyto] je oboustranně uzavřený, takže titul pozbytý dnes ve složení
   dnes ještě stojí — bez štítku by to vypadalo, že zápis pozbytí nezabral. */
.maj-poz-znacka[b-vr96zqlw4e] {
    margin-left: 0.4rem;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.3px;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: var(--barva-pozadi);
    color: var(--barva-text-tlumeny);
    white-space: nowrap;
}

/* Pozbyté tituly — sbalené pod pruhem smíření. Otázka „co držím" je běžná, „co jsem prodal"
   ne; ale cesta k nim musí z obrazovky vést, jinak je „zůstane dohledatelný" prázdný slib. */
.maj-poz-pozbyte[b-vr96zqlw4e] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.55rem;
}

/* Přepínač je tichý jen v tabulce (tam patří řádku pod kurzorem) — tady stojí samostatně
   a musí být vidět pořád, jinak se pozbyté tituly nedají najít. */
.maj-poz-pozbyte > .tabulka-akce[b-vr96zqlw4e] { opacity: 1; }

.maj-poz-pozbyte-veta[b-vr96zqlw4e] {
    font-size: 0.78rem;
    color: var(--barva-text-tlumeny);
}

/* Tabulka pozbytých je na vlastním řádku pod přepínačem, ne vedle něj. */
.maj-poz-obal-pozbyte[b-vr96zqlw4e] {
    flex-basis: 100%;
    margin-top: 0.35rem;
}

/* VLOŽENÍ Z TABULKY (ADR-0080) — panel přes celou šířku pod hlavičkou, týž vzor jako formulář
   nového titulu. Dvacet titulů se nezadává po jednom, a proto tahle cesta stojí vedle
   „Přidat titul", ne místo něj. */
.maj-poz-vlozeni[b-vr96zqlw4e] {
    margin: 0.5rem 0 0.75rem;
    padding: 0.6rem 0.7rem;
    border: 1px solid var(--barva-ram);
    border-radius: 6px;
    background: var(--barva-plocha-tlumena, transparent);
}

.maj-poz-vlozeni-hlava[b-vr96zqlw4e] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.maj-poz-vlozeni-hlava h5[b-vr96zqlw4e] {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 600;
}

.maj-poz-vlozeni-hlava > .tabulka-akce[b-vr96zqlw4e] { opacity: 1; }
/* /Components/Majetek/PozicePreceneniRadek.razor.rz.scp.css */
/* Rychlé přecenění titulu — tři pole v řádku panelu složení (SPEC §3.3). */

.poz-prec[b-28mdvvhkqk] {
    border: 1px solid var(--barva-linka);
    border-radius: 10px;
    background: var(--barva-pozadi);
    padding: 10px 12px 12px;
    margin: 0;
}

.poz-prec-hlava[b-28mdvvhkqk] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.poz-prec-h[b-28mdvvhkqk] {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--barva-text);
}

.poz-prec-stav[b-28mdvvhkqk] {
    font-size: 0.74rem;
    color: var(--barva-text-tlumeny);
}

/* Věta u tlačítek, ne pod nimi: je to ujištění, co se NEZMĚNÍ, a patří k rozhodnutí kliknout. */
.poz-prec-pozn[b-28mdvvhkqk] {
    align-self: center;
    font-size: 0.74rem;
    line-height: 1.45;
    color: var(--barva-text-tlumeny);
}
/* /Components/Majetek/VlozeniZTabulkyPanel.razor.rz.scp.css */
/* VLOŽENÍ TABULKY ZE SCHRÁNKY (ADR-0080).

   Scoped CSS: týž panel visí v back office (hustá tabulka) i v klientské tváři (vzdušný
   slovník), takže si nese vlastní rozměry a nesahá na okolí. */

.vlt[b-4pk4rjjc10] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.vlt-uvod[b-4pk4rjjc10] {
    margin: 0;
    font-size: .8125rem;
    line-height: 1.5;
}

.vlt-pole[b-4pk4rjjc10] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .75rem;
}

.vlt-popisek[b-4pk4rjjc10] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    font-size: .75rem;
    color: var(--text-tlumeny, #6b7280);
}

/* `.zpole` (obal DatumPole) má `flex: 1` — ve svislém sloupci by narostl do VÝŠKY.
   Dosáhne se na něj jedině přes ::deep, protože značka patří té druhé komponentě. */
.vlt-popisek[b-4pk4rjjc10]  .zpole {
    flex: 0 0 auto;
}

.vlt-mena[b-4pk4rjjc10] {
    width: 5rem;
    text-transform: uppercase;
}

.vlt-vstup[b-4pk4rjjc10] {
    width: 100%;
    box-sizing: border-box;
    padding: .5rem .6rem;
    font-family: ui-monospace, "SFMono-Regular", "Cascadia Mono", Menlo, Consolas, monospace;
    font-size: .75rem;
    line-height: 1.5;
    tab-size: 12;
    white-space: pre;
    overflow-x: auto;
    border: 1px solid var(--ram, #d4d4d8);
    border-radius: 6px;
    background: var(--plocha, #fff);
    color: inherit;
    resize: vertical;
}

.vlt-vstup:focus-visible[b-4pk4rjjc10] {
    outline: 2px solid var(--akcent, #0f766e);
    outline-offset: 1px;
}

.vlt-akce[b-4pk4rjjc10] {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.vlt-hlaska[b-4pk4rjjc10] {
    margin: 0;
    padding: .5rem .6rem;
    border-radius: 6px;
    background: rgba(180, 83, 9, .08);
    font-size: .8125rem;
    line-height: 1.5;
}

.vlt-poznamky[b-4pk4rjjc10] {
    margin: 0;
    padding-left: 1.1rem;
    font-size: .75rem;
    line-height: 1.6;
    color: var(--text-tlumeny, #6b7280);
}
/* /Components/Majetek/ZarazeniPole.razor.rz.scp.css */
/* Zařazení položky — sbalitelný blok doplňkových polí ve formuláři majetku (story A1).
   Vzhled se drží back-officového zhuštění (ADR-0033/0049): hustá mřížka, drobné popisky
   nad poli, žádná dekorace. Samotné vstupy stylují globální .pole / .zpole. */

.maj-zar[b-otdany609z] {
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: var(--c-bila);
}

.maj-zar-hlava[b-otdany609z] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.45rem 0.7rem;
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--barva-text);
    cursor: pointer;
    list-style: none;                   /* vlastní šipka místo výchozího trojúhelníku */
}

.maj-zar-hlava[b-otdany609z]::-webkit-details-marker { display: none; }

/* Šipka vlevo, otočí se při rozbalení — stejné gesto jako u skupin dokumentů. */
.maj-zar-hlava[b-otdany609z]::before {
    content: "";
    width: 0.42rem;
    height: 0.42rem;
    border-right: 1.6px solid var(--barva-text-tlumeny);
    border-bottom: 1.6px solid var(--barva-text-tlumeny);
    transform: rotate(-45deg);
    transition: transform var(--prechod);
    flex: none;
}

.maj-zar[open] > .maj-zar-hlava[b-otdany609z]::before { transform: rotate(45deg); }

.maj-zar-hlava:focus-visible[b-otdany609z] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: -2px;
}

.maj-zar-vysvetl[b-otdany609z] {
    font-weight: 400;
    font-size: 0.78rem;
    color: var(--barva-text-tlumeny);
}

.maj-zar-mriz[b-otdany609z] {
    display: grid;
    /* minmax(0, …) drží mřížku uvnitř řádku tabulky — bez nuly ji široký <select> roztáhne. */
    grid-template-columns: repeat(auto-fit, minmax(min(11rem, 100%), 1fr));
    gap: 0.5rem 0.6rem;
    padding: 0.1rem 0.7rem 0.7rem;
}

.maj-zar-pole[b-otdany609z] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.maj-zar-pole-uzke[b-otdany609z] { max-width: 11rem; }

/* PAST `.zpole` (CLAUDE.md / ADR-0063 §8): obal CisloPole/DatumPole má `flex: 1` a ve
   SLOUPCOVÉM flexu roste do VÝŠKY. „Pořizovací cena" a „V evidenci od" tak měřily 148 px
   místo 48 a v mřížce po nich zůstávala prázdná díra přes dva řádky — vypadala jako chybějící
   obsah, ne jako přerostlé pole. `::deep`, protože značka patří cizí komponentě; poznat to
   jde jedině změřením na obrazovce. */
.maj-zar-pole[b-otdany609z]  .zpole { flex: none; }

.maj-zar-l[b-otdany609z] {
    font-size: 0.74rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}

.maj-zar-bilance[b-otdany609z] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    align-self: end;
    padding-bottom: 0.45rem;
    font-size: 0.86rem;
    color: var(--barva-text);
    cursor: pointer;
}
/* /Components/Majetek/ZavazekPodminkyPole.razor.rz.scp.css */
/* Úvěrové podmínky ve formuláři závazku (story A3). Stejná hustá mřížka jako u zařazení
   položky a detailu nemovitosti — back office jede na efektivitu (ADR-0033/0049). */

.maj-uver-mriz[b-7fughleyq5] {
    display: grid;
    /* minmax(0, …) drží mřížku uvnitř řádku tabulky; bez nuly ji <select> roztáhne. */
    grid-template-columns: repeat(auto-fit, minmax(min(10rem, 100%), 1fr));
    gap: 0.5rem 0.6rem;
}

.maj-uver-pole[b-7fughleyq5] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.maj-uver-l[b-7fughleyq5] {
    font-size: 0.74rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}
/* /Components/Pages/Administrace.razor.rz.scp.css */
/* Administrace — dlaždice „nad vším" ve vzhledu mockupu (19. 7. 2026): kompaktní bílé karty
   modulů se stavovými tečkami, husté metriky. Mockup tokeny (--surface/--border/--good…);
   markup beze změny. */

.admin-dlazdice[b-pijh5518al] { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }

.admin-karta[b-pijh5518al] { padding: 13px 15px; display: flex; flex-direction: column; gap: 0.7rem; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); box-shadow: var(--shadow); }
.admin-karta-hlava[b-pijh5518al] { display: flex; align-items: center; gap: 0.55rem; }
.admin-karta-hlava h2[b-pijh5518al] { font-size: 1rem; margin: 0; }

/* --- Stavová tečka (zelená / oranžová / červená) ------------------------ */
.admin-tecka[b-pijh5518al] { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; display: inline-block; }
.admin-tecka.je-ok[b-pijh5518al] { background-color: var(--good); box-shadow: 0 0 0 3px var(--good-bg); }
.admin-tecka.je-varovani[b-pijh5518al] { background-color: var(--warn); box-shadow: 0 0 0 3px var(--warn-bg); }
.admin-tecka.je-chyba[b-pijh5518al] { background-color: var(--crit); box-shadow: 0 0 0 3px var(--crit-bg); }

/* --- Stav & bezpečnost -------------------------------------------------- */
.admin-stav[b-pijh5518al] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.admin-stav-radek[b-pijh5518al] { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.55rem; font-size: 12.5px; }

/* Dlaždice Architektura — široká přes celou šířku. */
.admin-arch-karta[b-pijh5518al] { grid-column: 1 / -1; }
.admin-arch-pozn[b-pijh5518al] { margin: 0 0 0.8rem; font-size: 12.5px; color: var(--text-dim); }
.admin-arch-mrizka[b-pijh5518al] { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0.8rem 1.4rem; }
.admin-arch-polozka[b-pijh5518al] { display: flex; flex-direction: column; gap: 0.1rem; }
.admin-arch-popisek[b-pijh5518al] { font-size: 10.5px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-mute); }
.admin-arch-hodnota[b-pijh5518al] { font-weight: 600; font-size: 13px; }
.admin-arch-proc[b-pijh5518al] { font-size: 11.5px; line-height: 1.45; margin-top: 0.1rem; color: var(--text-dim); }

.admin-stav-hodnota[b-pijh5518al] { justify-self: end; font-variant-numeric: tabular-nums; color: var(--text-dim); }
.admin-stav-popisek-napoveda[b-pijh5518al] { cursor: help; text-decoration: underline dotted; text-decoration-color: var(--text-mute); text-underline-offset: 0.2em; }

/* --- Modulové metriky --------------------------------------------------- */
.admin-metriky[b-pijh5518al] { margin: 0; display: grid; grid-template-columns: 1fr auto; row-gap: 0.5rem; column-gap: 1rem; }
.admin-metrika[b-pijh5518al] { display: contents; }
.admin-metrika dt[b-pijh5518al] { font-size: 12.5px; color: var(--text-dim); }
.admin-metrika dd[b-pijh5518al] { margin: 0; justify-self: end; font-weight: 700; font-variant-numeric: tabular-nums; }

.admin-spravovat[b-pijh5518al] { align-self: flex-start; margin-top: auto; font-size: 12px; font-weight: 600; color: var(--accent-strong); text-decoration: none; }
.admin-spravovat:hover[b-pijh5518al] { text-decoration: underline; }

/* --- Uživatelé & přístupy ----------------------------------------------- */
.admin-uzivatele[b-pijh5518al] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.45rem; }
.admin-uzivatel-radek[b-pijh5518al] { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; font-size: 12.5px; }
.admin-uzivatel-typ[b-pijh5518al] { font-size: 11.5px; text-align: right; color: var(--text-dim); }
.admin-poznamka[b-pijh5518al] { font-size: 11.5px; font-style: italic; margin: 0; line-height: 1.5; color: var(--text-mute); }

/* --- Přepínač modelu AI ------------------------------------------------- */
.admin-model-select[b-pijh5518al] { display: block; width: 100%; max-width: min(100%, 24rem); }

/* --- Klíč k rozhraní Anthropicu (ADR-0057, jen ve vývoji) ---------------- */
.admin-klic-pole[b-pijh5518al] { display: block; width: 100%; max-width: min(100%, 24rem); }
/* Poslední čtyři znaky se nesmí zalomit uprostřed — „(…" na konci řádku a „1234)" na dalším
   vypadá jako překlep, ne jako údaj. */
.admin-klic-konec[b-pijh5518al] { white-space: nowrap; }
/* /Components/Pages/Backlog.razor.rz.scp.css */
/* Backlog / Ticketing (E1) — vzhled 1:1 s mockupem back-office (19. 7. 2026): hustý kanban
   (bílé karty ve sloupcích), barevné pilulky, husté tabulky, kompaktní rozestupy. Používá mockup
   tokeny (--surface/--border/--accent/--good…) z backoffice-mock.css (globální :root); markup beze
   změny → interaktivita (filtry, board, detail, sprinty) zůstává. Barvy zatím dle mockupu.

   Board a seznam mají OD TASKU 10 (ALF-16) vlastní komponenty (BacklogBoard.razor,
   BacklogSeznam.razor) a vlastní scoped CSS (Podpora/BacklogBoard.razor.css,
   Podpora/BacklogSeznam.razor.css) — pravidla pro jejich markup se přesunula tam beze změny.
   Co zůstává tady, je hlavička, filtry, sprinty, zakládací dialog a lupa. */

.backlog-gate[b-r8vrvaeyij] { max-width: 560px; padding: 1.2rem 1.5rem; }

/* --- Toolbar (scr-head) --------------------------------------------------- */
.backlog-toolbar[b-r8vrvaeyij] { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 0.55rem; }

.backlog-pohledy[b-r8vrvaeyij] { display: inline-flex; background: var(--surface-2); border: 1px solid var(--border); border-radius: 7px; padding: 2px; gap: 2px; }
.backlog-pohled[b-r8vrvaeyij] { border: 0; background: transparent; font-weight: 600; font-size: 11.5px; color: var(--text-dim); border-radius: 5px; padding: 4px 11px; cursor: pointer; transition: background-color .15s, color .15s; }
.backlog-pohled.je-aktivni[b-r8vrvaeyij] { background: var(--surface); color: var(--text); box-shadow: var(--shadow); }

.backlog-filtr[b-r8vrvaeyij] { max-width: 160px; font-size: 12px; padding: 5px 26px 5px 9px; border: 1px solid var(--border); border-radius: 6px; background-color: var(--surface); color: var(--text); }
.backlog-toolbar-mezera[b-r8vrvaeyij] { flex: 1; }
.backlog-mini-tlac[b-r8vrvaeyij] { padding: 4px 10px; font-size: 11.5px; }

/* Pruh aktivního sprintu (`.backlog-aktivni-sprint` a `.bas-*`) odešel 25. 8. 2026 s ALF-18:
   návrh ho nemá a board se má designu držet. Sprint zůstává ve filtrech a v pohledu Sprinty. */

/* --- Sprinty ------------------------------------------------------------- */
.backlog-sprinty[b-r8vrvaeyij] { padding: 0.8rem 1rem; margin-bottom: 0.7rem; display: grid; gap: 0.3rem; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); box-shadow: none; }
.backlog-sprinty-prazdno[b-r8vrvaeyij] { margin: 0; font-size: 12.5px; color: var(--text-mute); }
.backlog-sprint-radek[b-r8vrvaeyij] { display: flex; align-items: center; gap: 0.6rem; font-size: 12.5px; padding: 0.2rem 0; }
.backlog-sprint-stav[b-r8vrvaeyij] { width: 9px; height: 9px; border-radius: 50%; background: var(--text-mute); flex: none; }
.backlog-sprint-stav.je-aktivni[b-r8vrvaeyij] { background: var(--good); }
.backlog-sprint-stav.je-planovany[b-r8vrvaeyij] { background: var(--warn); }
.backlog-sprint-nazev[b-r8vrvaeyij] { font-weight: 600; color: var(--text); }
.backlog-sprint-cil[b-r8vrvaeyij] { font-size: 11.5px; color: var(--text-dim); }
.backlog-sprint-obdobi[b-r8vrvaeyij] { margin-left: auto; font-size: 11px; color: var(--text-mute); font-variant-numeric: tabular-nums; }
.backlog-sprint-novy[b-r8vrvaeyij] { display: flex; gap: 0.5rem; margin-top: 0.4rem; padding-top: 0.6rem; border-top: 1px solid var(--border); }
.backlog-sprint-novy .pole[b-r8vrvaeyij] { max-width: 320px; }

.backlog-hlaska[b-r8vrvaeyij] { background: var(--crit-bg); border: 1px solid color-mix(in srgb, var(--crit) 30%, transparent); color: var(--crit); border-radius: var(--r); padding: 0.55rem 0.9rem; font-size: 12.5px; margin-bottom: 0.7rem; }


/* --- Modál detailu / nové položky (Jira-style nad boardem) ---------------- */
.backlog-overlay[b-r8vrvaeyij] {
    position: fixed; inset: 0; z-index: 200;
    background: rgba(20, 16, 10, 0.42);
    display: flex; align-items: flex-start; justify-content: center;
    padding: 4vh 16px; overflow-y: auto;
    animation: backlog-overlay-in-b-r8vrvaeyij 120ms ease both;
}
@keyframes backlog-overlay-in-b-r8vrvaeyij { from { opacity: 0; } to { opacity: 1; } }

.backlog-modal[b-r8vrvaeyij] {
    position: relative; width: 100%; max-width: 880px; margin: auto 0;
    background: var(--surface); border: 1px solid var(--border); border-radius: 12px;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
    padding: 22px 24px;
    animation: backlog-modal-in-b-r8vrvaeyij 140ms cubic-bezier(.22, .61, .36, 1) both;
}
@keyframes backlog-modal-in-b-r8vrvaeyij { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.backlog-modal-uzky[b-r8vrvaeyij] { max-width: 520px; }

.backlog-modal-zavrit[b-r8vrvaeyij] {
    position: absolute; top: 12px; right: 14px; width: 30px; height: 30px; z-index: 1;
    border: 0; background: var(--surface-2); color: var(--text-mute);
    font-size: 18px; line-height: 1; border-radius: 50%; cursor: pointer;
    transition: background-color .15s, color .15s;
}
.backlog-modal-zavrit:hover[b-r8vrvaeyij] { background: var(--surface-3); color: var(--text); }

.backlog-modal .backlog-form[b-r8vrvaeyij] { display: grid; gap: 0.7rem; }
.backlog-modal .backlog-form label[b-r8vrvaeyij] { display: grid; gap: 0.2rem; font-size: 10.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--text-mute); }
.backlog-modal .backlog-form textarea[b-r8vrvaeyij] { resize: vertical; font-family: inherit; }
.backlog-modal h2[b-r8vrvaeyij] { font-size: 1.1rem; margin: 0 0 0.7rem; }

/* --- Postranní panel (detail / nová položka) ------------------------------ */
.backlog-rozlozeni[b-r8vrvaeyij] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; align-items: start; }
.backlog-rozlozeni.ma-panel[b-r8vrvaeyij] { grid-template-columns: minmax(0, 1fr) 380px; }
.backlog-obsah[b-r8vrvaeyij] { min-width: 0; }

.backlog-panel[b-r8vrvaeyij] { position: sticky; top: 8px; max-height: calc(100vh - 96px); overflow-y: auto; padding: 1rem 1.1rem; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); box-shadow: var(--shadow); }
.backlog-panel-zavrit[b-r8vrvaeyij] { float: right; width: 1.8rem; height: 1.8rem; border: 0; background: none; font-size: 1.2rem; color: var(--text-mute); cursor: pointer; border-radius: 50%; margin: -0.3rem -0.4rem 0 0.5rem; }
.backlog-panel-zavrit:hover[b-r8vrvaeyij] { background: var(--surface-2); color: var(--text); }
.backlog-panel h2[b-r8vrvaeyij] { font-size: 1.05rem; margin: 0 0 0.6rem; }
.backlog-detail-hlava[b-r8vrvaeyij] { display: flex; gap: 0.5rem; align-items: flex-start; margin-bottom: 0.5rem; }
.backlog-detail-hlava h2[b-r8vrvaeyij] { margin: 0; font-size: 1rem; line-height: 1.3; }
.backlog-detail-popis[b-r8vrvaeyij] { font-size: 12.5px; line-height: 1.6; color: var(--text); white-space: pre-line; margin: 0 0 1rem; }
.backlog-detail-meta[b-r8vrvaeyij] { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; margin-bottom: 1rem; }
.backlog-detail-meta label[b-r8vrvaeyij], .backlog-form label[b-r8vrvaeyij] { display: grid; gap: 0.2rem; font-size: 10.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-mute); }
.backlog-detail-resitel[b-r8vrvaeyij] { grid-column: 1 / -1; display: flex; align-items: center; gap: 0.5rem; font-size: 12.5px; }
.backlog-form[b-r8vrvaeyij] { display: grid; gap: 0.7rem; }
.backlog-form textarea[b-r8vrvaeyij] { resize: vertical; font-family: inherit; }

/* --- Aktivita ------------------------------------------------------------- */
.backlog-aktivita-nadpis[b-r8vrvaeyij] { font-size: 0.9rem; margin: 0 0 0.5rem; padding-top: 0.8rem; border-top: 1px solid var(--border); }
.backlog-aktivita[b-r8vrvaeyij] { list-style: none; margin: 0 0 0.9rem; padding: 0; display: grid; gap: 0.4rem; }
.backlog-udalost[b-r8vrvaeyij] { display: flex; gap: 0.45rem; align-items: baseline; font-size: 12px; line-height: 1.5; }
.backlog-udalost-kdo[b-r8vrvaeyij] { font-weight: 600; color: var(--text); white-space: nowrap; }
.backlog-udalost-text[b-r8vrvaeyij] { flex: 1; color: var(--text-dim); }
.backlog-udalost.je-komentar .backlog-udalost-text[b-r8vrvaeyij] { background: var(--surface-2); border-radius: 8px; padding: 0.3rem 0.6rem; color: var(--text); }
.backlog-udalost-kdy[b-r8vrvaeyij] { white-space: nowrap; font-size: 10.5px; color: var(--text-mute); }
.backlog-komentar[b-r8vrvaeyij] { display: flex; gap: 0.5rem; }

/* --- Responsivita --------------------------------------------------------- */
@media (max-width: 1100px) {
    .backlog-rozlozeni.ma-panel[b-r8vrvaeyij] { grid-template-columns: 1fr; }
    .backlog-panel[b-r8vrvaeyij] { position: static; max-height: none; order: -1; }
}
@media (max-width: 640px) {
    .backlog-detail-meta[b-r8vrvaeyij] { grid-template-columns: 1fr; }
    .backlog-filtr[b-r8vrvaeyij] { max-width: none; flex: 1 1 40%; }
}

/* Legenda „co je co" — nenápadná, defaultně sbalená (<details>). */
/* Legenda sedí v hlavičkovém řádku a NErozšiřuje ho: otevřené tělo je karta VYSUNUTÁ
   pod řádek (absolute), takže vysvětlivka nic neodtlačí — jako našeptávače v ERP. */
.backlog-legenda[b-r8vrvaeyij] { position: relative; margin: 0; font-size: 12.5px; flex: none; }
.backlog-legenda > summary[b-r8vrvaeyij] { cursor: pointer; color: var(--accent-strong); font-weight: 600; width: fit-content; white-space: nowrap; }
.backlog-legenda > summary:hover[b-r8vrvaeyij] { text-decoration: underline; }
.backlog-legenda-telo[b-r8vrvaeyij] {
    position: absolute; top: calc(100% + 8px); right: 0; z-index: 60;
    width: min(680px, 82vw);
    display: grid; grid-template-columns: 1fr 1fr; gap: 18px;
    padding: 14px 16px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px;
    box-shadow: var(--shadow-pop);
}
@media (max-width: 820px) { .backlog-legenda-telo[b-r8vrvaeyij] { grid-template-columns: 1fr; } }
.backlog-legenda-blok b[b-r8vrvaeyij] { display: block; margin-bottom: 6px; }
.backlog-legenda-blok ul[b-r8vrvaeyij] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.backlog-legenda-blok ol[b-r8vrvaeyij] { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; }
.backlog-legenda-pozn[b-r8vrvaeyij] { margin: 9px 0 0; line-height: 1.55; }

/* Barevné pilulky druhů položek (i pro legendu; base .pilulka je globální v cimpel.css). */
.pilulka-user_story[b-r8vrvaeyij] { background: var(--accent-weak); color: var(--accent-strong); }
.pilulka-chyba[b-r8vrvaeyij] { background: #fbe3e3; color: #b23b3b; }
.pilulka-feature_request[b-r8vrvaeyij] { background: #e3eefb; color: #3a63a8; }

/* ---------- Nová položka INLINE (ne modál — zásada projektu: žádné popupy) ----------
   Mřížka: druh · název (široký) · priorita · epika · sprint na prvním řádku, popis přes celou
   šířku na druhém. Zadání tiketu je tu nejčastější činnost a nemá kvůli ní přeskakovat okno. */
.backlog-nova[b-r8vrvaeyij] {
    margin: 10px 0 14px;
    padding: 14px 16px;
    background: var(--surface-2, #fff);
    border: 1px solid var(--hairline, #e2d8c8);
    border-radius: 10px;
}

.backlog-nova-form[b-r8vrvaeyij] {
    display: grid;
    grid-template-columns: minmax(0, 150px) minmax(0, 2fr) minmax(0, 140px) minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px 12px;
    align-items: end;
}

.backlog-nova-form label[b-r8vrvaeyij] { display: flex; flex-direction: column; gap: 4px; font-size: 12px; min-width: 0; }
.backlog-nova-popis[b-r8vrvaeyij] { grid-column: 1 / -1; }
.backlog-nova-akce[b-r8vrvaeyij] { grid-column: 1 / -1; display: flex; gap: 8px; }

@media (max-width: 900px) {
    .backlog-nova-form[b-r8vrvaeyij] { grid-template-columns: 1fr 1fr; }
    .backlog-nova-nazev[b-r8vrvaeyij] { grid-column: 1 / -1; }
}

/* Přejmenování sprintu přímo v řádku. */
.backlog-sprint-nazev-uprava[b-r8vrvaeyij] { max-width: 260px; font-size: 13px; }

/* Formulář v pravém panelu — jeden sloupec, panel je úzký. */
.backlog-nova-form[b-r8vrvaeyij] { display: flex; flex-direction: column; gap: 9px; }
.backlog-nova-form label[b-r8vrvaeyij] { display: flex; flex-direction: column; gap: 4px; font-size: 12px; }
.backlog-nova-form .pole[b-r8vrvaeyij] { width: 100%; box-sizing: border-box; }
.backlog-nova-akce[b-r8vrvaeyij] { margin-top: 2px; }
.backlog-nova-chyba[b-r8vrvaeyij] { margin: 0; font-size: 12px; color: var(--danger, #a8412c); }

/* Popis je od 13. 8. 2026 dvanáctiřádkový (výšku dělá `rows`, viz past s `height: 28px`
   v backoffice-mock.css) — a dá se dotáhnout dál, když je zadání ještě delší. */
.backlog-nova-form textarea[b-r8vrvaeyij] { resize: vertical; }

/* PANEL SE TADY NEPŘILEPUJE — ROSTE A ROLUJE SE STRÁNKOU (13. 8. 2026, žádost uživatele).
   S dvanáctiřádkovým popisem a dlaždicemi příloh je formulář vyšší než obrazovka, a přilepený
   panel se v tu chvíli nedá dorolovat do konce: buď se konec (tlačítko „Založit tiket") ořízne,
   nebo panel dostane VLASTNÍ posuvník a vedle plochy stojí dva vedle sebe. Statický panel má
   výšku obsahu, takže roluje jeden posuvník — ten stránky (roluje `.stage`, ne dokument).
   Specificita musí přebít `.mck .bo-s-panelem > .bo-panel` (tři třídy), proto vlastní značka
   `.backlog-panel` na tom <aside>. (Ne `.backlog-stranka` — tu nese i BacklogPolozka a scoped
   CSS by na ni nedosáhlo; hlídá `ScopedCssDosahTests`, chytil to napoprvé.) */
.bo-s-panelem > .bo-panel.backlog-panel[b-r8vrvaeyij] { position: static; max-height: none; overflow: visible; }

/* --- Přílohy nového tiketu: dlaždice s náhledem ---------------------------- */
/* `.backlog-nova-soubor-pozn` odešla 25. 8. 2026 s větou o limitech (ALF-5). */

.backlog-nova-nahledy[b-r8vrvaeyij] {
    list-style: none; margin: 2px 0 0; padding: 0;
    display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 9px;
}
.backlog-nahled[b-r8vrvaeyij] { position: relative; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.backlog-nahled-plocha[b-r8vrvaeyij] {
    display: flex; align-items: center; justify-content: center;
    width: 100%; aspect-ratio: 1; padding: 0; overflow: hidden;
    border: 1px solid var(--border); border-radius: 6px; background: #fff;
    cursor: zoom-in; transition: border-color .15s;
}
.backlog-nahled-plocha img[b-r8vrvaeyij] { width: 100%; height: 100%; object-fit: cover; display: block; }
.backlog-nahled-plocha:hover[b-r8vrvaeyij] { border-color: var(--text-mute); }
.backlog-nahled-plocha.je-soubor[b-r8vrvaeyij] { background: var(--surface-2); cursor: default; }
.backlog-nahled-pripona[b-r8vrvaeyij] { font-size: 11px; font-weight: 700; letter-spacing: .04em; color: var(--text-dim); }
.backlog-nahled-nazev[b-r8vrvaeyij] {
    font-size: 10.5px; line-height: 1.25; color: var(--text-dim);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.backlog-nahled-velikost[b-r8vrvaeyij] { font-size: 10px; color: var(--text-mute); font-variant-numeric: tabular-nums; }
.backlog-nahled-odebrat[b-r8vrvaeyij] {
    position: absolute; top: -6px; right: -6px; width: 20px; height: 20px; padding: 0;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--border); border-radius: 50%; background: var(--surface);
    color: var(--text-dim); font-size: 13px; line-height: 1; cursor: pointer;
}
.backlog-nahled-odebrat:hover[b-r8vrvaeyij] { color: var(--crit); border-color: var(--crit); }

/* FOKUS NEUTRÁLNĚ, ne brandovou zelenou (stálé pravidlo uživatele: žádné zelené orámování
   prvků). Plošné `.mck :focus-visible` kreslí obrys z `--accent`, a ten je v back office
   #5F6E00 — bez tohohle by nové dlaždice, křížky i lupa přidaly další zelené prstence
   k těm, kterých se zbavujeme. */
.backlog-nahled-plocha:focus-visible[b-r8vrvaeyij],
.backlog-nahled-odebrat:focus-visible[b-r8vrvaeyij] { outline: 2px solid var(--text-dim); outline-offset: 1px; }




/* Hledání a přepínač pohledu vedle titulku (mockup). Šířka hledání je pevná — pružné pole
   by při každém překreslení skákalo podle délky názvu stránky. */
/* `min-height` místo pevné výšky: `.pole` má svoje odsazení a s `height: 30px` se text
   v <select>u oříznul zespoda (vidět na snímku — „Pohled: Board" mělo useknuté dolní dotahy). */
.backlog-hledani[b-r8vrvaeyij] { width: 15rem; min-height: 32px; }
.backlog-pohled-vyber[b-r8vrvaeyij] { min-height: 32px; }

/* Odznak u „Filtrování": kolik filtrů je zapnutých. Bez něj se dá zapomenout, že seznam
   něco skrývá — a prázdný board pak vypadá jako hotová práce. */
.backlog-filtr-odznak[b-r8vrvaeyij] {
    display: inline-grid;
    place-items: center;
    min-width: 16px;
    height: 16px;
    margin-left: 6px;
    padding: 0 4px;
    border-radius: var(--radius-pill);
    background: var(--color-accent);
    color: var(--brown-900);
    font-size: 10px;
    font-weight: var(--fw-bold);
}

/* Zavřený panel filtrů se NEVYKRESLUJE (ne jen schová) — jinak by pod hlavičkou zůstala
   prázdná mezera po řádku, který tam není. */
.backlog-toolbar.je-skryty[b-r8vrvaeyij] { display: none; }


/* Řádek filtrů = bílá karta s kapslemi (prototyp). Dřív to byl holý pruh polí na krémovém
   podkladu, takže splýval s obsahem pod sebou. */
.backlog-toolbar[b-r8vrvaeyij] {
    background: var(--surface-card);
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-md);
    padding: 10px 12px;
    gap: 8px;
}

.backlog-toolbar .backlog-filtr[b-r8vrvaeyij] {
    height: 28px;
    padding: 0 12px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--border-hairline);
    background: var(--white);
    font: var(--fw-medium) 12.5px var(--font-body);
    color: var(--brown-600);
}



/* „Zrušit filtry" je v předloze zelený TEXT vpravo, ne tlačítko — je to odchod z filtrování,
   ne akce nad daty. */
.backlog-zrusit-filtry[b-r8vrvaeyij] {
    margin-left: auto;
    border: 0;
    background: transparent;
    color: var(--green-700);
    font: var(--fw-semibold) 12.5px var(--font-body);
    cursor: pointer;
    padding: 0 4px;
}

.backlog-zrusit-filtry:hover[b-r8vrvaeyij] { text-decoration: underline; }

/* Pojmenování pohledu — inline, ne vyskakovací okno prohlížeče (ADR-0067). */
.backlog-uloz-pohled[b-r8vrvaeyij] { display: inline-flex; align-items: center; gap: 6px; }
.backlog-uloz-pohled .pole[b-r8vrvaeyij] { height: 28px; width: 11rem; }



/* Plocha pro přílohy je DROP ZÓNA (mockup), ne tlačítko „Vybrat soubory". Vstup leží přes ni
   průhledně, takže funguje klik i přetažení — týž vzor jako u příloh v detailu tiketu. */
/* Dropzóna příloh — čísla z návrhu (`.dz`): odsazení 17, text 14 px, obrys vlasovou čárkou
   (ne `--border-strong`, ta byla o tón tmavší a rámeček přetahoval pozornost od pole zadání). */
.backlog-nova-soubor[b-r8vrvaeyij] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 17px;
    border: 1px dashed var(--border-hairline);
    border-radius: var(--radius-md);
    background: var(--cream-50);
    text-align: center;
    font-size: var(--text-sm);
    line-height: 1.55;
    color: var(--brown-400);
    cursor: pointer;
}

.backlog-nova-soubor:hover[b-r8vrvaeyij] { border-color: var(--color-accent); background: var(--color-accent-soft); }

/* „nebo vyberte z počítače" je v návrhu tučné se světlým podtržením (`.dz b`) — je to jediné
   místo v boxu, na které se kliká, a musí to být poznat bez nájezdu myší. */
.backlog-nova-soubor-tlac[b-r8vrvaeyij] {
    font-weight: var(--fw-semibold);
    color: var(--green-700);
    text-decoration: underline;
    text-decoration-color: var(--cream-300);
}

.mck .backlog-nova-soubor-input[b-r8vrvaeyij] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

/* ── Pohled Epiky — hlavička se segmentem a souhrnem (ALF-16) ──────────────────────────────
   Segment Fáze/Seznam dle mockupu (.seg.sm): kapsle s vnořenými tlačítky, AKTIVNÍ VOLBA
   VÝPLNÍ (bílé tlačítko se stínem), žádný zelený obrys (pokyn uživatele). */
.epiky-hlava[b-r8vrvaeyij] { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; }
/* Zakládání odsazené k pravé hraně (návrh `.ehead` + `.fsep`) — vlevo se čte, co
   na obrazovce je, vpravo se s tím něco dělá. */
.epiky-hlava-mezera[b-r8vrvaeyij] { flex: 1; }

.epiky-prepinac[b-r8vrvaeyij] {
    display: inline-flex;
    background: var(--surface-sunken);
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-pill);
    padding: 2.5px;
}

.epiky-prepinac button[b-r8vrvaeyij] {
    border: 0;
    background: transparent;
    font: var(--fw-semibold) 12.5px var(--font-body);
    color: var(--brown-400);
    padding: 4px 11px;
    border-radius: var(--radius-pill);
    cursor: pointer;
    white-space: nowrap;
}

.epiky-prepinac button.je-aktivni[b-r8vrvaeyij] {
    background: var(--white);
    color: var(--brown-700);
    box-shadow: var(--shadow-xs);
}

.epiky-souhrn[b-r8vrvaeyij] { font-size: 12.5px; }
/* /Components/Pages/BacklogDetail.razor.rz.scp.css */
/* Detail ticketu — široký pohled (reakce na Pavla). Používá back-office tokeny z backoffice-mock.css.
   Pilulky/časovou osu/ikony má komponenta vlastní (CSS izolace je scopuje per-komponentu; sdílené
   s Backlog.razor jsou zatím duplikované — kandidát na sjednocení do globální ticketing.css). */

.bd[b-18kso9djr7] { display: block; }

/* ODSAZENÍ NESE HLAVA, NE KARTA (návrh `.dnav` + `.dtop`, 20. 8. 2026): karta má odsazení
   nulové, jinak by pravý krémový pruh nedosáhl na její hranu. Mezera drobečky → název je 9,5
   (v návrhu ji dělá spodní 0 u `.dnav` a horní 9,5 u `.dtop`). */
.bd-hlava[b-18kso9djr7] {
    display: flex;
    flex-direction: column;
    gap: 9.5px;
    padding: 15px 21px 0;
}
/* (`.bd-zpet` je pryč — tlačítko „zpět" v hlavě detailu není od té doby, co je detail vlastní
   stránkou se drobečky a záložkou. A první, přebitá definice `.bd-titul` / `.bd-titul h2`
   taky: dvě pravidla pro týž selektor v jednom listu znamenají, že rozhoduje pořadí, a to
   dřívější je mrtvé — jen vypadá jako záměr. Platné definice jsou v sekci „Hlavička detailu".) */

/* ROZVRŽENÍ 1:1 S MOCKUPEM (15. 8. 2026). Odměřeno v prototypu: levý sloupec 1fr, panel 366 px,
   mezi nimi ŽÁDNÁ mezera v mřížce — oddělení dělá barva. Panel má vlastní krémové pozadí a
   16px odsazení, takže bílé karty v něm plavou; do té doby byl panel průhledný a splýval
   s bílým levým sloupcem v jeden blok (přesně to uživatel vytkl). */
.bd-telo[b-18kso9djr7] {
    display: grid;
    /* Návrh `.djira`: levý sloupec nejméně 464, pravý PEVNÝCH 425 (do 20. 8. 2026 366).
       Bez `gap` — sloupce se stýkají a dělí je barva s vlasovou čárou pravého. */
    grid-template-columns: minmax(464px, 1fr) 425px;
    gap: 0;
    align-items: start;
    /* ČÁRA POD HLAVIČKOU (mockup `.dtop`). Odděluje „co je to za tiket a co s ním jde udělat"
       od jeho obsahu — bez ní se titulek, pásmo stavů a popis slily do jedné plochy. Kreslí ji
       tělo shora, ne hlavička zdola: hlavička má pod sebou odsazení a čára by visela v prázdnu. */
    border-top: 1px solid var(--border-hairline);
}

/* Levý sloupec má vlastní odsazení (návrh `.djl`: 19/21/26) — bez něj text lepí na hranu
   panelu.

   ŽÁDNÝ `max-width` NA SLOUPCI (24. 8. 2026, vytkl Pavel na ALF-4: „komentáře a popis mají být
   na celou šířku"). Do té doby tu stálo `max-width: 1040px` a byl to poctivý přepis návrhu
   z 19. 8. — jenže návrh to 21. 8. změnil: strop se přesunul z celého sloupce na SAMOTNÉ
   ODSTAVCE (`.djl .dbody p, .djl .abod { max-width: 86ch }`).

   Rozdíl není kosmetika: na 1920 px měl sloupec 1040 px z možných 1350, takže mezi popisem
   a pravým panelem zbývalo 310 px prázdna (změřeno). A strop na sloupci škrtil i to, co se
   krátit nemá — tabulky, karty příloh, řádky vlákna, psací pole. Čitelnou délku řádku drží
   `86ch` u textu, ne šířka celého sloupce. */
.bd-main[b-18kso9djr7] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 23px;                     /* rozestup sekcí = `.jsec { margin-bottom: 23px }` */
    padding: 19px 21px 26px;
}

/* NADPIS SEKCE (návrh `.jlab`). Není to verzálkový drobek, ale řádek s ikonou: 14px/700, hnědá
   `--brown-400`, prostrkání 0.02em, ikona 15 px, odstup 8. Do 15. 8. 2026 to u nás bylo 11px
   VERZÁLKAMI (vypadalo to jako popisek tabulky) a do 20. 8. 2026 jen 12 px — o dva stupně méně
   než návrh, takže nadpis části obrazovky byl drobnější než text pod ním. */
.bd-nadpis[b-18kso9djr7] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px;
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    letter-spacing: .02em;
    text-transform: none;
    color: var(--brown-400);
}

.bd-nadpis svg[b-18kso9djr7] {
    width: 15px;
    height: 15px;
    stroke: var(--brown-300);
    fill: none;
    stroke-width: 1.7;
    flex: 0 0 auto;
}

/* ČÁRA NAD „AKTIVITOU" (mockup). Popis a přílohy patří k tiketu, kdežto komentáře a historie
   jsou rozhovor kolem něj — čára je ta hranice. Ostatní sekce ji nemají schválně: tři linky
   pod sebou by z obrazovky udělaly formulář. */
.bd-historie[b-18kso9djr7] {
    border-top: 1px solid var(--border-hairline);
    padding-top: 16px;
}

/* NADPIS A ZÁLOŽKY NA JEDNOM ŘÁDKU (návrh): záložky vpravo (`margin-left: auto`), mezera 14,
   odstup pod hlavičkou 15. Do 20. 8. 2026 stály nad sebou a přepínač vypadal jako další část
   obsahu, ne jako ovládání sekce. */
.bd-aktivita-hlava[b-18kso9djr7] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 15px;
}

.bd-aktivita-hlava .bd-nadpis[b-18kso9djr7] { margin: 0; }

/* POPIS. `white-space: pre-line` zůstává kvůli STARŠÍM popisům (prostý text se zalomeními);
   u formátovaného popisu si zalomení nese značka sama a pravidlo nevadí. */
.bd-popis[b-18kso9djr7] {
    margin: 0;
    font-size: 15px;
    line-height: 1.62;
    color: var(--brown-600);
    white-space: pre-line;
}

/* Formátovaný popis vykresluje MarkupString → značky uvnitř NEMAJÍ scope atribut Blazoru
   (vyrobil je uživatel, ne komponenta), takže bez `::deep` by se odrážky vykreslily bez
   odsazení a citace bez linky. Táž past jako v `FormatovanyText.razor.css`. */
.bd-popis[b-18kso9djr7]  p { margin: 0 0 13px; text-wrap: pretty; max-width: 86ch; }
.bd-popis[b-18kso9djr7]  p:last-child { margin-bottom: 0; }
.bd-popis[b-18kso9djr7]  ul,
.bd-popis[b-18kso9djr7]  ol { margin: 0 0 13px; padding-left: 22px; }
.bd-popis[b-18kso9djr7]  li { margin-bottom: 3px; }
.bd-popis[b-18kso9djr7]  blockquote {
    margin: 0 0 13px;
    padding-left: 12px;
    border-left: 3px solid var(--cream-300, #e8e2da);
    color: var(--barva-tlumeny-text, #736a62);
}
.bd-popis[b-18kso9djr7]  pre {
    margin: 0 0 13px;
    padding: 8px 12px;
    border-radius: 6px;
    background: var(--cream-100, #f5f1ea);
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 12px;
    white-space: pre-wrap;
}
.bd-popis[b-18kso9djr7]  code {
    padding: 1px 4px;
    border-radius: 3px;
    background: var(--cream-100, #f5f1ea);
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.92em;
}
.bd-popis[b-18kso9djr7]  a { color: var(--green-700, #4a6b42); }

/* Obrázek vložený ze schránky (ALF-15) — bez tohohle by široký screenshot přetekl přes
   kartu tiketu (žádný strop na šířku, obrázek jde z prohlížeče uživatele, ne z naší výroby). */
.bd-popis[b-18kso9djr7]  img { max-width: 100%; height: auto; display: block; }

/* Tlačítka pod editorem — vpravo, aby „Uložit" bylo tam, kde končí čtení textu. */
/* PATIČKA EDITORU (návrh `.rtefoot`): tlačítka VLEVO, nápověda odsazená doprava. Do 20. 8.
   2026 byla tlačítka vpravo — v návrhu je „Uložit" první prvek patičky, tedy tam, kde oko
   po dopsání textu skončí. */
.bd-popis-akce[b-18kso9djr7] {
    display: flex;
    align-items: center;
    gap: 10.5px;
    margin-top: 10.5px;
}

.bd-popis-akce .bd-popis-napoveda[b-18kso9djr7] { margin-left: auto; }


/* Meta sloupec */
/* `.bd-meta` byl PRAVÝ PANEL, než se z něj staly karty „Podrobnosti" a „Vazby"
   (`.bd-panel`, 15. 8. 2026). Pravidlo zmizelo, protože jinak dědil jeho rámeček řádek
   „ve stavu od …" — vypadal jako karta uprostřed hlavičky. */

/* Řádek „Sledující" v Podrobnostech. Pravidla starého META SLOUPCE (`.bd-resitel`,
   `.bd-sledujici-lide`, `.bd-monogram` a svislá podoba `.bd-sledujici` s čárou nahoře) jsou
   pryč — ten sloupec zmizel 15. 8. 2026 a zbylá pravidla se chytala nového řádku: přidávala
   mu čáru nad sebou a stavěla lidi pod sebe místo vedle sebe. Mrtvý styl po odstraněné části
   obrazovky je horší než žádný, protože vypadá jako záměr. */
.bd-sledujici[b-18kso9djr7] { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }

/* ── PŘÍLOHY JAKO DLAŽDICE (13. 8. 2026, rozměry z návrhu `.att` 20. 8. 2026) ────────────
   Řádky s názvy („snimek1.png, snimek2.png") o obsahu nic neřekly; u chyby jsou přílohy skoro
   vždy snímky obrazovky. Miniatura se ukládá při nahrání (vyrábí ji prohlížeč), u souborů bez
   náhledu drží dlaždice tvar prázdnou krémovou plochou s odznakem přípony.

   DLAŽDICE MÁ PEVNOU ŠÍŘKU 112 px a řada se ZALAMUJE. Do 20. 8. 2026 to byla mřížka
   `auto-fill` s `minmax(104px, 1fr)`: počet sloupců se měnil se šířkou okna a dlaždice se
   roztahovaly (naměřeno 8 × 117,4 px), takže tentýž náhled měl na každé šířce jiný rozměr. */
.bd-prilohy-dlazdice[b-18kso9djr7] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10.5px;
}

.bd-priloha-dlazdice[b-18kso9djr7] { position: relative; display: flex; flex-direction: column; width: 112px; flex: 0 0 112px; }

/* NÁHLED MÁ PEVNOU VÝŠKU 70 px (návrh), ne poměr stran: při pevné šířce dlaždice je to totéž
   číslo pro všechny a řada náhledů stojí na jedné linii. */
.bd-priloha-plocha[b-18kso9djr7] {
    position: relative;
    display: flex; align-items: center; justify-content: center;
    width: 100%; height: 70px; padding: 0; overflow: hidden;
    border: 1px solid var(--border-hairline); border-radius: var(--radius-md);
    background: var(--cream-100);
    box-shadow: var(--shadow-xs);
    cursor: zoom-in; transition: border-color .15s;
}

.bd-priloha-plocha img[b-18kso9djr7] { width: 100%; height: 100%; object-fit: cover; display: block; }
.bd-priloha-plocha:hover[b-18kso9djr7] { border-color: var(--brown-300); }
.bd-priloha-plocha.je-soubor[b-18kso9djr7] { cursor: pointer; }

/* PŘÍPONA JE ODZNAK V LEVÉM DOLNÍM ROHU NÁHLEDU (návrh `.ext`), ne text na jeho středu.
   Nad obrázkem potřebuje vlastní podklad — bez něj se na světlém snímku ztratí. */
.bd-priloha-pripona[b-18kso9djr7] {
    position: absolute;
    left: 5px;
    bottom: 5px;
    padding: 3px 5px;
    border-radius: 5px;
    background: rgba(46, 35, 26, .72);
    color: var(--cream-100);
    font-family: var(--font-cisla);
    font-size: 9.5px;
    font-weight: var(--fw-semibold);
    line-height: 1;
    letter-spacing: .07em;
}

.bd-priloha-jmeno[b-18kso9djr7] {
    margin-top: 6px;
    font-size: var(--text-2xs); line-height: 1.25; color: var(--brown-400);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.bd-priloha-meta[b-18kso9djr7] { font-size: var(--text-3xs); font-variant-numeric: tabular-nums; }

/* Stáhnout a smazat jako drobná tlačítka v rohu dlaždice — na obrázek se klepe kvůli zvětšení.
   Návrh je nemá (z dlaždice nabízí jen zvětšení), ale bez „×" nejde přílohu odebrat vůbec. */
.bd-priloha-stahnout[b-18kso9djr7],
.bd-priloha-smazat[b-18kso9djr7] {
    position: absolute; top: -6px; width: 20px; height: 20px; padding: 0;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--border-hairline); border-radius: 50%;
    background: var(--white); color: var(--brown-500);
    font-size: 12px; line-height: 1; cursor: pointer;
}
.bd-priloha-stahnout[b-18kso9djr7] { right: 18px; }
.bd-priloha-smazat[b-18kso9djr7] { right: -6px; font-size: 13px; }
.bd-priloha-stahnout:hover[b-18kso9djr7] { color: var(--brown-700); border-color: var(--brown-300); }
.bd-priloha-smazat:hover[b-18kso9djr7] { color: var(--crit, #b23b3b); border-color: var(--crit, #b23b3b); }
.bd-priloha-plocha:focus-visible[b-18kso9djr7],
.bd-priloha-stahnout:focus-visible[b-18kso9djr7],
.bd-priloha-smazat:focus-visible[b-18kso9djr7] { outline: 2px solid var(--focus-ring); outline-offset: 1px; }

/* PŘIDÁVACÍ DLAŽDICE JE POSLEDNÍ V ŘADĚ (návrh `.att .ab`), ne samostatný řádek pod mřížkou —
   jinak nevypadá jako „další, ještě prázdná dlaždice", což je celý smysl toho, aby se do ní
   dalo trefit souborem. Přerušovaný rámeček je jediné, co v Alfrédovi říká „sem to pusť". */
.bd-priloha-zona[b-18kso9djr7] {
    border-style: dashed;
    color: var(--brown-300);
    font-size: var(--text-2xs);
    font-weight: var(--fw-bold);
    letter-spacing: .08em;
    box-shadow: none;
    cursor: pointer;
    text-align: center;
}

.bd-priloha-zona:hover[b-18kso9djr7] { border-color: var(--color-accent); color: var(--green-700); }

/* Vstup leží PŘES celou dlaždici a je průhledný — tím funguje klik i přetažení bez jediného
   řádku JavaScriptu. Vizuálně skrytý (1×1 px) by přetažení neuměl: prohlížeč pouští `drop`
   jen na skutečné ploše vstupu. `::deep`, protože značku kreslí InputFile (cizí komponenta) →
   nenese náš atribut scope. */
.bd-priloha-zona[b-18kso9djr7]  .bd-priloha-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

/* Mez se vyslovuje (ADR-0081) — drobně pod řadou dlaždic, ne v ní. */
.bd-priloha-mez[b-18kso9djr7] { margin: 8px 0 0; font-size: var(--text-3xs); }

.bd-priloha-chyba[b-18kso9djr7] { display: block; margin-top: 4px; font-size: 11.5px; color: var(--crit, #b23b3b); }

/* (Ploché řádky vlákna `.backlog-udalost*` a `.bd-aktivita` jsou od 20. 8. 2026 pryč —
   proud aktivity kreslí karty v `BacklogProud.razor.css` podle návrhu `.aitem`.) */

/* Pilulky priorita/stav (sdílené s boardem) */
.backlog-priorita[b-18kso9djr7], .backlog-stav[b-18kso9djr7] { display: inline-block; font-size: 10.5px; font-weight: 600; border-radius: 20px; padding: 1px 8px; white-space: nowrap; }
.backlog-priorita.je-kriticka[b-18kso9djr7] { background: var(--crit-bg); color: var(--crit); }
.backlog-priorita.je-vysoka[b-18kso9djr7] { background: var(--warn-bg); color: var(--warn); }
.backlog-priorita.je-stredni[b-18kso9djr7] { background: var(--accent-weak); color: var(--accent-strong); }
.backlog-priorita.je-nizka[b-18kso9djr7] { background: var(--surface-3); color: var(--text-mute); }
.backlog-stav[b-18kso9djr7] { background: var(--surface-3); color: var(--text-dim); }
.backlog-stav.je-dela_se[b-18kso9djr7] { background: var(--accent-weak); color: var(--accent-strong); }
.backlog-stav.je-review[b-18kso9djr7] { background: var(--warn-bg); color: var(--warn); }
.backlog-stav.je-hotovo[b-18kso9djr7] { background: var(--good-bg); color: var(--good); }
.backlog-stav.je-zamitnuto[b-18kso9djr7] { background: var(--surface-3); color: var(--text-mute); text-decoration: line-through; }

/* Typová ikona (SVG jde přes AddMarkupContent → nemá scope atribut → ::deep) */
[b-18kso9djr7] .backlog-typ-ikona { width: 1.05rem; height: 1.05rem; vertical-align: -0.18rem; flex: none; }
[b-18kso9djr7] .backlog-typ-ikona.je-user_story { color: var(--good); }
[b-18kso9djr7] .backlog-typ-ikona.je-chyba { color: var(--crit); }
[b-18kso9djr7] .backlog-typ-ikona.je-feature_request { color: var(--accent); }

/* ŽÁDNÉ SKLÁDÁNÍ SLOUPCŮ NA ÚZKÉM OKNĚ (20. 8. 2026). Do té doby tu byl
   `@media (max-width: 900px) { grid-template-columns: 1fr }` — a od chvíle, kdy karta dostala
   `min-width: 966px` a obal vodorovný posuv (návrh `.dtlwrap` × `.c`), byly to DVĚ strategie
   naráz: pod 966 px se objevil posuv A pod 900 px se navíc sloupce složily pod sebe. Návrh má
   jednu: posuv. Dvě zároveň znamenají, že se obrazovka na dvou různých šířkách chová jinak,
   a ani jedno chování si nikdo nevybral. */



/* ── PÁSMO STAVŮ ─────────────────────────────────────────────────────────────────────────
   Kroky do sebe zapadají jako šipky — pruh se čte jako cesta zleva doprava. Zub kreslí
   `clip-path`; překryv (`margin-left: -8px`) je to, co z jednotlivých tlačítek dělá jeden pruh.
   Čísla odměřená z návrhu (`.pipe button`): výška 32, odsazení 0/19/0/24, zub 10.5, písmo 14.

   PILULKA A VĚTA STOJÍ NA TÉMŽE ŘÁDKU jako chevrony (návrh) — proto obalový `.bd-pasmo-radek`.
   Kdyby věta zůstala samostatným odstavcem pod pásmem, čte se jako popisek další sekce.

   Klikatelné jsou JEN povolené přechody, zbytek je vypnutý a řekne proč (title). */
.bd-pasmo-radek[b-18kso9djr7] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    /* Pásmo je v návrhu součást `.dtop`, takže bere jeho odsazení do stran (21) a spodní (16);
       shora 15 od názvu. */
    margin: 15px 21px 16px;
}

.bd-pasmo[b-18kso9djr7] { display: flex; align-items: center; }

.bd-krok[b-18kso9djr7] {
    display: inline-flex;
    align-items: center;
    height: 32px;
    padding: 0 19px 0 24px;
    margin-left: -8px;
    border: 0;
    font: var(--fw-semibold) var(--text-sm) / 1 var(--font-body);
    background: var(--cream-200);
    color: var(--brown-500);
    clip-path: polygon(0 0, calc(100% - 10.5px) 0, 100% 50%, calc(100% - 10.5px) 100%, 0 100%, 10.5px 50%);
    cursor: default;
}

.bd-krok:first-child[b-18kso9djr7] {
    margin-left: 0;
    padding-left: 16px;
    clip-path: polygon(0 0, calc(100% - 10.5px) 0, 100% 50%, calc(100% - 10.5px) 100%, 0 100%);
}

/* KUDY TIKET PROŠEL — klidová pilulka toho stavu (`--stav-bg` / `--stav-ink`). Do 20. 8. 2026
   měly minulé i budoucí kroky tutéž barvu, takže z pásma nešlo poznat, kudy tiket šel. */
.bd-krok.je-minuly[b-18kso9djr7] {
    background: var(--stav-bg);
    color: var(--stav-ink);
}

/* KDE TIKET JE — zvýrazněná pilulka toho stavu (`--stav-hb` / `--stav-hi`), ne vždycky zeleň.
   Zeleň má JEDINĚ „Hotovo"; do 20. 8. 2026 svítil aktuální krok vždycky `--green-500`, takže
   tiket v Backlogu vypadal na první pohled jako hotový. */
.bd-krok.je-tento[b-18kso9djr7] {
    background: var(--stav-hb);
    color: var(--stav-hi);
    font-weight: var(--fw-bold);
    cursor: default;
}

/* CO JE JEŠTĚ PŘED SEBOU — bledé, ale čitelné: cesta má být vidět celá. */
.bd-krok.je-budouci[b-18kso9djr7] {
    background: var(--cream-50);
    color: var(--brown-300);
}

.bd-krok.je-mozny[b-18kso9djr7] { cursor: pointer; }

.bd-krok.je-budouci.je-mozny:hover[b-18kso9djr7] { background: var(--cream-200); color: var(--brown-500); }
.bd-krok.je-minuly.je-mozny:hover[b-18kso9djr7] { color: var(--brown-700); }

/* Vypnutý krok NEBLEDNE do neviditelna: cesta má být čitelná celá, i tam, kam se teď nesmí. */
.bd-krok:disabled[b-18kso9djr7] { opacity: 1; cursor: default; }

/* Pilulka se stavem vedle pásma — jen u zamítnutého tiketu (podobu nese globální
   `.backlog-bal`, tady je jen odstup). */
.bd-pasmo-bal[b-18kso9djr7] { margin-left: 14px; }

/* Věta „ve stavu od …" na řádku pásma. `nowrap`: je to jedna informace, ne odstavec. */
.bd-pasmo-veta[b-18kso9djr7] {
    font-size: var(--text-sm);
    color: var(--brown-400);
    margin-left: 19px;
    white-space: nowrap;
}


/* Číslo tiketu v hlavičce detailu — stejný jazyk jako na kartě, jen o stupeň větší. */
.bd-cislo[b-18kso9djr7] {
    font-family: var(--font-cisla);
    font-size: var(--text-2xs);
    font-weight: var(--fw-semibold);
    color: var(--barva-text-tlumeny);
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto;
}


/* ── Záložky aktivity (návrh `.seg.sm`) ─────────────────────────────────────────────────
   PILULKOVÝ OBAL, ne čtyři samostatná tlačítka. Do 20. 8. 2026 to byla čtveřice tlačítek
   s mezerou 4 px a bez obalu — nečetlo se to jako JEDEN přepínač, ale jako čtyři nabídky
   vedle sebe. Obal je zapuštěná plocha (`--surface-sunken`), aktivní záložka je bílá
   a „vystupuje" z ní stínem. Vpravo od nadpisu, tedy `margin-left: auto`. */
.bd-zalozky[b-18kso9djr7] {
    display: inline-flex;
    margin-left: auto;
    padding: 2.5px;
    background: var(--surface-sunken);
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-pill);
    flex: 0 0 auto;
}

.bd-zalozka[b-18kso9djr7] {
    display: inline-flex;
    align-items: center;
    padding: 4px 11px;
    border: 0;
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--brown-400);
    font: var(--fw-semibold) var(--text-xs) / 1.2 var(--font-body);
    white-space: nowrap;
    cursor: pointer;
}

.bd-zalozka:hover[b-18kso9djr7] { color: var(--brown-600); }

.bd-zalozka.je-aktivni[b-18kso9djr7] {
    background: var(--white);
    color: var(--brown-700);
    box-shadow: var(--shadow-xs);
}

/* POČET JE PŘÍVĚSEK ČÍSLA, ne druhá pilulka (návrh `.seg .n`): vlastní pozadí by ze záložky
   udělalo dva odznaky vedle sebe. Tlumí ho `opacity`, ne barva — v aktivní i neaktivní
   záložce má pak tentýž vztah k textu. */
.bd-zalozka-pocet[b-18kso9djr7] {
    font-family: var(--font-cisla);
    font-variant-numeric: tabular-nums;
    font-size: var(--text-3xs);
    opacity: .55;
    margin-left: 5px;
}

/* (Komentář v proudu se od 20. 8. 2026 kreslí jako karta v `BacklogProud.razor.css`;
   bublina `.bd-komentar-*` tady zůstala jen pro PSANÍ komentáře, viz `.bd-komentar-psani` níž.) */





/* ── Hlavička detailu 1:1 s mockupem (15. 8. 2026) ──────────────────────────────────────── */
.bd-drobky[b-18kso9djr7] {
    display: flex;
    align-items: center;
    gap: 9.5px;
    font-size: var(--text-sm);
    color: var(--brown-400);
    margin-bottom: var(--space-2);
    min-width: 0;
    flex-wrap: wrap;
}

.bd-drobky a[b-18kso9djr7] { color: var(--green-700); font-weight: var(--fw-semibold); text-decoration: none; }
.bd-drobky a:hover[b-18kso9djr7] { text-decoration: underline; }
.bd-drobky-sep[b-18kso9djr7] { color: var(--brown-300); }

/* ČTVEREČEK DRUHU (návrh `.sq`) — jediné místo na obrazovce, kde je druh vidět BARVOU.
   Barvy jsou v tokenech (`--druh-*`), ne tady: kreslí je i tabulka backlogu a dvě sady čísel
   by znamenaly, že „chyba" má v drobečku jinou barvu než v seznamu. */
.bd-sq[b-18kso9djr7] {
    width: 14px;
    height: 14px;
    border-radius: 3.5px;
    flex: 0 0 auto;
    background: var(--druh-neurcen);
}

.bd-sq.je-user_story[b-18kso9djr7] { background: var(--druh-user_story); }
.bd-sq.je-chyba[b-18kso9djr7] { background: var(--druh-chyba); }
.bd-sq.je-feature_request[b-18kso9djr7] { background: var(--druh-feature_request); }

/* Epika je dlouhá věta — ořízne se, celý název nese detail epiky, kam se dá prokliknout. */
.bd-drobky-epika[b-18kso9djr7] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 28ch; }
.bd-drobky-druh[b-18kso9djr7] { color: var(--brown-500); font-weight: var(--fw-medium); }

/* Titulek a akce na jedné lince: akce vpravo, kde je oko po přečtení názvu.
   Odstup 21 px je z návrhu (`.dtoph { gap: 21px }`) — `--space-4` (16 px) tu bylo o 5 px míň
   (změřeno 24. 8. 2026 při dorovnávání názvu). */
.bd-titul[b-18kso9djr7] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 21px;
    flex-wrap: wrap;
}

/* NÁZEV TIKETU (návrh `.dt`): 24 px / 700 / 1,28 / prostrkání −0,015em, PÍSMO TĚLA (ne
   displejové). Do 20. 8. 2026 to bylo 23 px / 600 / 1,2 v `--font-display` — o stupeň
   drobnější a lehčí, takže název nedržel obrazovku. */
.bd-titul h2[b-18kso9djr7] {
    margin: 0;
    font-family: var(--font-body);
    font-size: 24px;
    font-weight: var(--fw-bold);
    line-height: 1.28;
    letter-spacing: -.015em;
    color: var(--brown-700);
    text-wrap: pretty;
    min-width: 0;
    flex: 1 1 20rem;
}

/* Akce vpravo v hlavě (návrh `.hd-r`): mezera 10,5 a odsazení 4,5 shora, aby první tlačítko
   stálo na účaří názvu, ne na jeho horní hraně. */
.bd-akce[b-18kso9djr7] {
    display: flex;
    align-items: center;
    gap: 10.5px;
    padding-top: 4.5px;
    flex: 0 0 auto;
    flex-wrap: wrap;
}



/* ── Panel „Podrobnosti" a „Vazby" 1:1 s mockupem (15. 8. 2026) ─────────────────────────── */
/* Panel je SLOUPEC S POZADÍM, ne jen sloupec: krémová plocha odděluje podrobnosti od textu
   vlevo a bílé karty v ní jsou vidět jako karty. Odměřeno z mockupu (bg cream-50, pad 16, gap 12). */
.bd-panel[b-18kso9djr7] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
    padding: 19px;
    background: var(--cream-50);
    align-self: stretch;           /* pozadí drží celou výšku detailu, ne jen obsahu karet */

    /* Vlasová čára vlevo (mockup). Samotná změna pozadí je při krémové obrazovce slabý signál —
       čára dělá z panelu vlastní sloupec, ne jen jinak podbarvené místo. */
    border-left: 1px solid var(--border-hairline);
}

.bd-karta[b-18kso9djr7] {
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-md);
    background: var(--surface-card);
    overflow: hidden;
}

/* Hlavička karty dle návrhu (`.jch`): odsazení 10,5/15, 14px/700, ikona 16, čára pod sebou.
   Do 20. 8. 2026 bylo 9/13 a 12,5 px — a ikona chyběla, i když ji návrh má u obou karet. */
.bd-karta-hlava[b-18kso9djr7] {
    display: flex;
    align-items: center;
    gap: 9.5px;
    padding: 10.5px 15px;
    border-bottom: 1px solid var(--border-hairline);
    font-size: var(--text-sm);
    font-weight: var(--fw-bold);
    color: var(--brown-700);
}

.bd-karta-hlava svg[b-18kso9djr7] {
    width: 16px;
    height: 16px;
    stroke: var(--brown-300);
    fill: none;
    stroke-width: 1.7;
    flex: 0 0 auto;
}

/* Řádek = popisek | hodnota. Mřížka, ne flex: popisky pak stojí na jedné svislici
   a hodnoty se čtou pod sebou jako sloupec. */
/* Mřížka z návrhu (`.jkv`): sloupec popisků 125, svislá mezera 1 (odstupy nesou samy řádky
   svým odsazením), odsazení 8/8/12. Do 20. 8. 2026 bylo 104 / 7 / 12-14, takže popisky měly
   užší sloupec a řádky se od sebe odstrkávaly mezerou v mřížce. */
.bd-podrobnosti[b-18kso9djr7] {
    display: grid;
    grid-template-columns: 125px minmax(0, 1fr);
    gap: 1px 7px;
    margin: 0;
    padding: 8px 8px 12px;
    align-items: center;
}

/* Popisek řádku nese ikonu (mockup) — pomáhá očím skákat po sloupci, aniž by se četlo.
   Sloupec popisků se tím rozšiřuje, proto je mřížka níž nastavená na 104 px. */
/* POPISEK JE TLUMENÝ, HODNOTA NESE ŘEZ (návrh `.jkv .k` × `.jkv .v`). Do 20. 8. 2026 to bylo
   OBRÁCENĚ — popisky měly 700 a hodnoty 400, takže z panelu křičelo „Stav / Druh / Priorita"
   a to, co v těch řádcích stojí, se čtlo jako doplněk. */
.bd-podrobnosti dt[b-18kso9djr7] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 0 6px 7px;
    font-size: var(--text-xs);
    font-weight: var(--fw-regular);
    color: var(--brown-400);
}

.bd-podrobnosti dt svg[b-18kso9djr7] {
    width: 15px;
    height: 15px;
    stroke: var(--brown-300);
    fill: none;
    flex: 0 0 auto;
}

.bd-podrobnosti dd[b-18kso9djr7] {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    font-size: var(--text-sm);
    font-weight: var(--fw-semibold);
    color: var(--brown-700);
}

/* Hodnota JEN KE ČTENÍ nese odsazení sama (návrh `.jkv .v` 4,5/8) — u upravitelných si ho nese
   `.uh-spust` z globálního listu, takže obojí stojí na téže svislici.

   Rozlišuje to VLASTNÍ TŘÍDA, ne `:not(:has(.uh))`: `uh-*` je podoba upravitelné hodnoty a ta
   smí být jen v jednom listu (hlídá PodobaUpravitelneHodnotyTests) — i selektor, který se o ni
   jen opře, je druhé místo, kde na tu značku někdo staví. */
.bd-podrobnosti dd.bd-hodnota[b-18kso9djr7] { padding: 4.5px 8px; }

/* SROVNÁNÍ TEXTU NA SVISLICI ŘEŠÍ SÁM PRVEK, ne tahle obrazovka: `.uh-spust` má v globálním
   `upravitelna-hodnota.css` záporný okraj proti svému vnitřnímu odsazení, takže hodnota
   v klidu stojí na téže svislici jako prostý text v sousedním řádku. Do 20. 8. 2026 to
   dorovnávala tahle obrazovka u `select` a `input` (−7 a −11 px odměřených z pixelů snímku);
   s upravitelnou hodnotou je to zbytečné — a napsat to sem znovu ani nejde, protože `uh-*`
   patří do jednoho listu (hlídá PodobaUpravitelneHodnotyTests) a scoped pravidlo by na cizí
   komponentu nedosáhlo. */

/* Měnitelná hodnota vypadá jako TEXT, ne jako formulář — rámeček se ukáže až pod kurzorem.
   Panel se čte desetkrát na jednu změnu, takže se nemá tvářit jako formulář k vyplnění. */
.bd-vyber[b-18kso9djr7],
.bd-pole[b-18kso9djr7] {
    border: 1px solid transparent;
    background: transparent;
    border-radius: var(--radius-sm);
    padding: 2px 6px;
    font: var(--fw-medium) var(--text-2xs) var(--font-body);
    color: var(--brown-700);
    min-width: 0;
    max-width: 100%;
    cursor: pointer;
}

.bd-vyber:hover[b-18kso9djr7], .bd-pole:hover[b-18kso9djr7] { border-color: var(--border-hairline); background: var(--cream-50); }
.bd-vyber:focus[b-18kso9djr7], .bd-pole:focus[b-18kso9djr7] { border-color: var(--color-accent); background: var(--white); outline: 0; }
.bd-pole[b-18kso9djr7] { cursor: text; }
.bd-pole[b-18kso9djr7]::placeholder { color: var(--brown-300); }

/* Barvy stavů (`--stav-*`) a pilulka `.backlog-bal` jsou v GLOBÁLNÍM `backoffice-mock.css`:
   pilulka se vykresluje UVNITŘ `UpravitelnaHodnota` (třída jde dovnitř parametrem), takže na ni
   scoped list téhle komponenty nedosáhne — hodnota by zůstala holým textem. Chevron pásma
   `.bd-krok` je naše značka, takže si barvy z těch proměnných čte tady. */

/* ── ODZNAKY V PANELU ────────────────────────────────────────────────────────────────────
   Barevná značka, která říká totéž co text, ale bez čtení. Kreslí se ve slotu `Odznak`, a ta
   značka vzniká TADY (v našem markupu), takže na ni scoped list dosáhne. */

/* Čtvereček epiky (návrh `.sqdot`) — táž barva jako v tabulce backlogu. Není to kolečko:
   kolečko už znamená prioritu a dvě stejné značky s jiným významem se nedají odlišit. */
.bd-sqdot[b-18kso9djr7] {
    width: 9.5px;
    height: 9.5px;
    border-radius: 2.5px;
    flex: 0 0 auto;
}

.bd-stitky[b-18kso9djr7], .bd-sledujici[b-18kso9djr7] { flex-wrap: wrap; gap: 6px; padding: 4.5px 8px; }

/* ŠTÍTEK JE PILULKA (návrh `.tag`): 22 px vysoká, krémová s vlasovým rámečkem, 12 px/600.
   Do 20. 8. 2026 se půjčoval `.dlg-stitek` ze zakládacího dialogu — zelenavý (`--green-100`),
   bez rámečku a o stupeň drobnější (11,5/500). Vlastní jméno proto, že podoba dialogu smí být
   JEN v `css/dialog.css` (hlídá PodobaDialoguTests) a tohle není dialog. */
.bd-stitek[b-18kso9djr7] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 22px;
    /* SMÍ SE SMRSKNOUT A OŘÍZNOUT. Štítek má ve schématu 40 znaků a nemusí v nich být mezera —
       341 px pilulka pak přetekla 84 px PŘES hranu karty a křížek „odebrat" skončil za jejím
       ořezem, takže se štítek nedal odebrat vůbec (nález ze zátěže skutečnou délkou, ne
       obrázkem 4 × 4 px). Bez `min-width: 0` se flexový prvek pod obsah nezmenší. */
    max-width: 100%;
    min-width: 0;
    padding: 0 4px 0 9.5px;
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-pill);
    background: var(--cream-100);
    font-size: var(--text-2xs);
    font-weight: var(--fw-semibold);
    color: var(--brown-500);
    white-space: nowrap;
}

/* Tři tečky patří ÚDAJI (pravidlo ze 17. 8. 2026) — celý štítek nese `title`. Vlastní značka
   proto, že `text-overflow` na flexovém obalu nefunguje.

   USTUPUJE JEN TEXT: `flex: 1 1 auto` + `min-width: 0` znamená, že se zkracuje on, ne křížek
   vedle něj — a cesta, jak štítek odebrat, tím zůstane. Křížku se nic nepředepisuje schválně:
   `.dlg-x` je podoba dialogu a ta smí být JEN v `css/dialog.css` (hlídá PodobaDialoguTests),
   takže i selektor, který se o tu značku jen opře, patří jinam. Výchozí `flex: 0 1 auto` mu
   stačí — jednoznakový obsah je jeho nejmenší šířka a pod ni se nezmenší. */
.bd-stitek-text[b-18kso9djr7] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* PŘIDÁVACÍ VÝZVA MÁ TVAR TOHO, CO PŘIDÁVÁ (návrh): u štítků přerušovaná PILULKA, u lidí
   přerušované KOLEČKO (`.mini.none`). Do 20. 8. 2026 bylo obojí kolečko 20 px, takže „+"
   u štítků slibovalo kolečko a přišla pilulka. */
.bd-plus-stitek[b-18kso9djr7] {
    height: 22px;
    padding: 0 9.5px;
    border: 1px dashed var(--border-hairline);
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--brown-300);
    font-size: var(--text-2xs);
    font-weight: var(--fw-semibold);
    line-height: 1;
    cursor: pointer;
}

.bd-plus[b-18kso9djr7] {
    width: 26px; height: 26px;
    border: 1px dashed var(--border-hairline);
    border-radius: 50%;
    background: transparent;
    color: var(--brown-300);
    cursor: pointer;
    display: grid; place-items: center;
    font-size: 12px; line-height: 1; padding: 0;
}

.bd-plus:hover[b-18kso9djr7], .bd-plus-stitek:hover[b-18kso9djr7] { border-color: var(--color-accent); color: var(--green-700); }
.bd-stitek-vstup[b-18kso9djr7] { width: 8rem; border-color: var(--border-hairline); }

/* ── VAZBY (návrh `.lk`) ────────────────────────────────────────────────────────────────
   ŘÁDEK JE DVOUŘÁDKOVÝ: nahoře druh vazby · číslo · pilulka STAVU cílového tiketu, pod tím
   název. Do 20. 8. 2026 stálo všechno na jednom řádku s ellipsis — v 187px sloupci se uřízl
   právě název a stav nebyl vidět vůbec. Řádky dělí vlasová čára (`--cream-200`), poslední ji
   nemá; do té doby je oddělovala jen mezera a dvouřádkové vazby by se bez čáry slily. */
.bd-vazby[b-18kso9djr7] { list-style: none; margin: 0; padding: 10.5px 15px 0; display: flex; flex-direction: column; }

.bd-vazba[b-18kso9djr7] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 8px 0;
    border-bottom: 1px solid var(--cream-200);
}

.bd-vazba:last-child[b-18kso9djr7] { border-bottom: 0; }

.bd-vazba-r1[b-18kso9djr7] { display: flex; align-items: center; gap: 8px; min-width: 0; }

/* Druh vazby má PEVNOU MINIMÁLNÍ ŠÍŘKU (návrh 60 px): „blokuje" a „souvisí s" pak začínají
   na téže svislici a čísla stojí pod sebou. */
.bd-vazba-popisek[b-18kso9djr7] {
    font-size: var(--text-xs);
    color: var(--brown-400);
    white-space: nowrap;
    min-width: 60px;
    flex: 0 0 auto;
}

/* Číslo je čísla-font (návrh `.cid`) — tlumené v klidu, zelené pod kurzorem. */
.bd-vazba-cislo[b-18kso9djr7] {
    font-family: var(--font-cisla);
    font-size: var(--text-xs);
    font-weight: var(--fw-bold);
    color: var(--brown-300);
    text-decoration: none;
    white-space: nowrap;
    flex: 0 0 auto;
}

.bd-vazba:hover .bd-vazba-cislo[b-18kso9djr7] { color: var(--green-700); }

/* Pilulka stavu je v řádku vazby DROBNĚJŠÍ než v panelu (návrh: 12 px / 2,5-9,5) — vedle
   čísla a druhu by v plné velikosti řádek rozhodila. Podobu i barvy nese globální
   `.backlog-bal` (číselník `STAVY`), tady jen velikost. */
.bd-vazba-bal[b-18kso9djr7] { font-size: var(--text-2xs); padding: 2.5px 9.5px; }

.bd-vazba-x[b-18kso9djr7] { flex: 0 0 auto; margin-left: auto; }

/* Název na druhém řádku — tlumený a ZALAMUJE SE (pravidlo ze 17. 8.: tři tečky patří údaji,
   ne větě; z oříznutého názvu tiketu zbyde přesně to, kvůli čemu tam je). */
.bd-vazba-nazev[b-18kso9djr7] {
    display: block;
    margin-top: 2.5px;
    font-size: var(--text-xs);
    line-height: 1.35;
    color: var(--brown-400);
    text-decoration: none;
}

.bd-vazba-nazev:hover[b-18kso9djr7] { text-decoration: underline; }

.bd-vazba-nova[b-18kso9djr7] { display: flex; flex-direction: column; gap: 6px; padding: 12px 15px; }

/* „+ Vazba" (návrh `.addrow`): přerušovaná výzva přes celou šířku, rádius --radius-md,
   odsazení 9,5 a písmo 600/14. */
.bd-vazba-tlac[b-18kso9djr7] {
    display: block;
    width: calc(100% - 30px);
    margin: 10.5px 15px 14px;
    padding: 9.5px;
    border: 1px dashed var(--border-hairline);
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--brown-400);
    font: var(--fw-semibold) var(--text-sm) var(--font-body);
    cursor: pointer;
}

.bd-vazba-tlac:hover[b-18kso9djr7] { border-color: var(--color-accent); color: var(--green-700); }

/* PRÁZDNÝ FILTR AKTIVITY (návrh `.aempty`): 14 px, tlumené, odsazení 13/0/4. Do 20. 8. 2026
   tu byla TŘI pravidla `.bd-prazdno` s různým odsazením a rozhodovalo pořadí v souboru —
   vyhrávalo to poslední, takže dvě z nich byla mrtvá. Prázdno u vazeb má vlastní jméno,
   protože sedí v KARTĚ a odsazení si nese ta (`.bd-vazby-prazdno`). */
.bd-prazdno[b-18kso9djr7] {
    margin: 0;
    padding: 13px 0 4px;
    font-size: var(--text-sm);
    color: var(--brown-400);
}

.bd-vazby-prazdno[b-18kso9djr7] {
    margin: 0;
    padding: 10.5px 15px 0;
    font-size: var(--text-sm);
    color: var(--brown-400);
}
/* Patička (návrh: 13 px, proklad 1,7, tlumeně, VLEVO). Doprava zarovnaná byla jediná věc
   v panelu, která se čte od pravého okraje — vypadalo to jako popisek jiného sloupce. */
.bd-pata-info[b-18kso9djr7] {
    margin: 0;
    font-size: var(--text-xs);
    line-height: 1.7;
    color: var(--brown-400);
}

/* Nadpis s odkazem „Upravit" vpravo. */
.bd-nadpis-radek[b-18kso9djr7] { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); }


/* ===== E3 (20. 8. 2026): popis v orámovaném poli s tužkou; komentář nahoře; sloučený proud ===== */

/* Orámované pole popisu (návrh `dbody`): rámeček říká „pole", tužka „dá se přepsat".
   Tužka je vidět až na hover — v klidu je popis text ke čtení, ne formulář. */
/* RÁMEČEK JE PRŮHLEDNÝ V KLIDU (návrh `.dbody.clk`), hairline se ukáže až pod kurzorem.
   Do 20. 8. 2026 byl hairline vidět VŽDYCKY, takže pole „křičelo" i když se nic nedělo —
   a popis je při běžném čtení tiketu text, ne formulář. */
.bd-popis-pole[b-18kso9djr7] {
    position: relative; cursor: text;
    border: 1px solid transparent; border-radius: var(--radius-md);
    padding: 9.5px 40px 9.5px 12px; background: var(--white);
}
.bd-popis-pole:hover[b-18kso9djr7] { border-color: var(--border-hairline); }
.bd-popis-tuzka[b-18kso9djr7] {
    position: absolute; top: 11px; right: 13px; width: 16px; height: 16px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 0; padding: 0; background: transparent;
    color: var(--brown-300); cursor: pointer; opacity: 0;
}
.bd-popis-pole:hover .bd-popis-tuzka[b-18kso9djr7], .bd-popis-tuzka:focus-visible[b-18kso9djr7] { opacity: 1; }
.bd-popis-tuzka:hover[b-18kso9djr7] { color: var(--brown-600); }
/* Velikost tužky se řídí `font-size` (sdílená `IkonaTuzka` je 1em × 1em). Dřív tu stálo
   `.bd-popis-tuzka svg { width: 16px }`, ale od 28. 8. 2026 kreslí tužku cizí komponenta
   a na její značku scoped pravidlo nesedne (ADR-0063 §8, `ScopedCssDosahTests`). */
.bd-popis-tuzka[b-18kso9djr7] { font-size: 16px; }

/* NÁPOVĚDA KE ZKRATKÁM (návrh `.rtefoot .cts`) — vpravo za tlačítky, tlumeně. Zkratka,
   o které se nikdo nedozví, je jako by nebyla. */
.bd-popis-napoveda[b-18kso9djr7] { font-size: var(--text-xs); color: var(--brown-300); }

/* Psaní komentáře NAD výpisem (návrh `.acomp` + `.arow`): avatar autora 34 px, mezera 13,
   pole 58 px vysoké s 15px textem, akce vpravo s odstupem 9, celý blok 19 pod sebou.
   Mřížka `34px 1fr` (ne flex) — avatar tak stojí na téže svislici jako avatary ve vlákně pod
   ním; s `flex` se posouval podle šířky pole. */
.bd-komentar-psani[b-18kso9djr7] {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    margin: 0 0 19px;
}

.bd-komentar-psani-telo[b-18kso9djr7] { min-width: 0; }

.bd-komentar-vstup[b-18kso9djr7] {
    width: 100%;
    resize: vertical;
    min-height: 58px;
    padding: 10px 13px;
    font-family: inherit;
    font-size: 15px;
    font-weight: var(--fw-medium);
    line-height: 1.55;
}

.bd-komentar-psani-akce[b-18kso9djr7] { display: flex; justify-content: flex-end; margin-top: 9px; }


/* Prostředí je VĚTA, ne hodnota — zalamuje se (pravidlo ze 17. 8.: tři tečky patří údaji,
   ne větě; z oříznutého prostředí by zbylo přesně to, kvůli čemu tam je). */
.bd-prostredi[b-18kso9djr7] { white-space: normal; word-break: break-word; font-size: var(--text-2xs); color: var(--brown-500); }

/* Jméno rodiny je ÚDAJ, ne věta — ořezává se třemi tečkami a celé je v `title` (pravidlo
   ze 17. 8. 2026). */
.bd-rodina[b-18kso9djr7] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Smazat tiket — tichý odkaz pod patičkou panelu: v klidu tlumený, barvou mluví až na
   hover (destruktivní akce nemá křičet z každého otevření detailu). */
.bd-smazat-tiket[b-18kso9djr7] {
    margin-top: 6px; padding: 0; border: 0; background: transparent;
    font-size: 11.5px; color: var(--text-mute); cursor: pointer; text-decoration: underline;
    text-decoration-color: transparent; transition: color 120ms ease;
}
.bd-smazat-tiket:hover[b-18kso9djr7] { color: var(--crit); text-decoration-color: var(--crit); }

/* Název tiketu upravitelný v místě (ALF-14) — samotná velikost pole a textu je v GLOBÁLNÍM
   `upravitelna-hodnota.css` (podoba prvku smí být jen v jednom listu, hlídá
   PodobaUpravitelneHodnotyTests); tady zůstává jen to, co patří nadpisu. */
.bd-titul-nazev[b-18kso9djr7] { margin: 0; }

/* ── CITACE NAD POLEM PSANÍ (24. 8. 2026) ─────────────────────────────────────────────────
   Odpověď na konkrétní komentář: citace stojí NAD polem jako samostatný blok, ne v poli.
   Důvod je tvrdý — v `<textarea>` se část textu obarvit nedá, takže citace v poli nemohla být
   nikdy vizuálně odlišená a dvouřádkové pole s dvouřádkovou citací nemělo kam psát odpověď. */
.bd-citace[b-18kso9djr7] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: start;
    margin-bottom: 8px;
    padding: 8px 10px;
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-md);
    background: var(--cream-50);
}

/* Svislý pruh tu BYL a je pryč (24. 8. 2026): 2 px v cream-300 na pozadí cream-50 se
   nevykreslily viditelně (změřeno) — a neviditelná ozdoba je horší než žádná. Že jde o citaci,
   říká rám bloku a věta „Odpovídáte na komentář"; třetí značka nic nepřidá (ADR-0095). */

.bd-citace-texty[b-18kso9djr7] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

.bd-citace-kdo[b-18kso9djr7] {
    font-size: var(--text-2xs);
    font-weight: var(--fw-semibold);
    letter-spacing: .04em;
    color: var(--brown-300);
}

/* Dva řádky a dost: v bloku jde o to, na co se odpovídá, ne o přečtení celého komentáře. */
.bd-citace-text[b-18kso9djr7] {
    font-size: var(--text-xs);
    line-height: 1.5;
    color: var(--brown-500);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.bd-citace-zrus[b-18kso9djr7] {
    border: 0; background: transparent; cursor: pointer;
    padding: 0 2px; font-size: 16px; line-height: 1; color: var(--brown-300);
}

.bd-citace-zrus:hover[b-18kso9djr7] { color: var(--brown-700); }

/* Výtka „napište nejdřív komentář" stojí VEDLE tlačítka, ne nad polem — tam se dívá ten,
   kdo právě klikl a nic se nestalo. */
.bd-komentar-vytka[b-18kso9djr7] { margin-right: auto; font-size: var(--text-xs); color: var(--crit); }
/* /Components/Pages/BacklogPolozka.razor.rz.scp.css */
/* Detail tiketu (/backlog/{id}) — vlastní scoped CSS: pravidla Backlogu sem nedosáhnou
   (scoped CSS nedosáhne na cizí komponentu — hlídá ScopedCssDosahTests). */

.backlog-gate[b-f44anibbqq] { max-width: 560px; padding: 1.2rem 1.5rem; }

.backlog-hlaska[b-f44anibbqq] { background: var(--crit-bg); border: 1px solid color-mix(in srgb, var(--crit) 30%, transparent); color: var(--crit); border-radius: var(--r); padding: 0.55rem 0.9rem; font-size: 12.5px; margin-bottom: 0.7rem; }

/* ── OBAL A KARTA DETAILU (návrh `.dtlwrap` × `.c`, 20. 8. 2026) ─────────────────────────
   Dvě vrstvy: POSUV patří obalu, karta zůstává `overflow: hidden` (past z ADR-0095 —
   `overflow-x: auto` dopočítá `overflow-y: auto`, takže kdo dá posuv kartě, udělá z ní svislý
   posuvný kontejner a přilepené záhlaví uvnitř se přilepí k němu, tedy nikam).

   KARTA NEMÁ VNITŘNÍ ODSAZENÍ. Nesou ho bloky v ní (hlava, sloupce) — jinak pravý krémový
   pruh nedosáhne na hranu karty a plave uprostřed bílé plochy, což je přesně to, co bylo
   vidět do 20. 8. 2026 (22 px bílého okraje kolem panelu).

   `min-width: 966px` je nejmenší šířka, ve které se dvousloupcové tělo ještě čte; pod ní se
   objeví vodorovný posuv, místo aby se sloupce stlačily. */
.backlog-detail-obal[b-f44anibbqq] {
    overflow-x: auto;
    padding-bottom: 7px;
}

.backlog-detail-karta[b-f44anibbqq] {
    padding: 0;
    overflow: hidden;
    min-width: 966px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}
.backlog-detail-nacitani[b-f44anibbqq] { font-size: 12.5px; margin: 8px 2px; }
/* /Components/Pages/BacklogProud.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════════════════════════
   PROUD AKTIVITY TIKETU (`bdp-*`) — 1:1 s návrhem (`.arow` / `.aava` / `.aitem` / `.atyp` /
   `.adif` / `.afile`), naměřeno z `podklady/claude-design/2026-08-19/Alfred - Backoffice.dc.html`.

   Do 20. 8. 2026 to byl plochý řádek 1009 × 18 px bez pozadí, rámečku i odsazení — a nesl
   jen jméno, slepenou větu a čas. Karta unese čtyři údaje, které řádek neunesl: KDO (avatar),
   CO za záznam (pilulka druhu), Z ČEHO NA CO (rozpad) a čím to je doloženo (miniatura).

   Pravidlo z CLAUDE.md: karta NESMÍ mít `overflow` — udělal by z ní scroll container.
   ══════════════════════════════════════════════════════════════════════════════════════════ */

.bdp[b-h3w7i1kpkq] { list-style: none; margin: 0; padding: 0; }

/* Mřížka 34 px (avatar) + zbytek. Návrh: gap 13, margin-bottom 11. */
.bdp-radek[b-h3w7i1kpkq] {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 13px;
    margin-bottom: 11px;
    align-items: start;
}

.bdp-radek:last-child[b-h3w7i1kpkq] { margin-bottom: 0; }

/* --- avatar s tečkou druhu (návrh `.aava` + `.adotb`) ------------------------------------- */
.bdp-ava[b-h3w7i1kpkq] { position: relative; width: 34px; height: 34px; margin-top: 3px; }

/* `content-box`: obruba je NAVÍC k 12 px, ne uvnitř — jinak z tečky zbyde 8px kolečko.
   Barva obruby je barva plochy pod kartou, takže tečka „vykusuje" místo z avatara. */
.bdp-tecka[b-h3w7i1kpkq] {
    position: absolute;
    right: -2px;
    bottom: -2px;
    width: 12px;
    height: 12px;
    border-radius: var(--radius-pill);
    border: 2px solid var(--cream-100);
    box-sizing: content-box;
}

.bdp-tecka.je-komentar[b-h3w7i1kpkq] { background: var(--green-500); }
.bdp-tecka.je-zmena[b-h3w7i1kpkq] { background: #c8b9a0; }
.bdp-tecka.je-priloha[b-h3w7i1kpkq] { background: #8a7a5e; }

/* --- karta záznamu (návrh `.aitem`) ------------------------------------------------------- */
.bdp-karta[b-h3w7i1kpkq] {
    min-width: 0;
    background: var(--white);
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-md);
    padding: 11px 15px 13px;
    box-shadow: var(--shadow-sm);
}

.bdp-hlava[b-h3w7i1kpkq] { display: flex; align-items: center; gap: 10px; min-width: 0; }

.bdp-kdo[b-h3w7i1kpkq] {
    font-weight: var(--fw-semibold);
    font-size: 14.5px;
    color: var(--brown-700);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bdp-vpravo[b-h3w7i1kpkq] { margin-left: auto; display: flex; align-items: center; gap: 10px; white-space: nowrap; }

/* Pilulka druhu záznamu — kapitálky, tři barevné varianty (návrh `.atyp`). */
.bdp-druh[b-h3w7i1kpkq] {
    font: var(--fw-semibold) 10.5px/1 var(--font-cisla);
    letter-spacing: .09em;
    text-transform: uppercase;
    padding: 5px 9px;
    border-radius: var(--radius-pill);
}

.bdp-druh.je-komentar[b-h3w7i1kpkq] { background: var(--green-100); color: #5f6d05; }
.bdp-druh.je-zmena[b-h3w7i1kpkq] { background: var(--cream-200); color: var(--brown-500); }
.bdp-druh.je-priloha[b-h3w7i1kpkq] { background: #f0ead9; color: var(--brown-500); border: 1px solid var(--border-hairline); }

.bdp-kdy[b-h3w7i1kpkq] {
    font-size: var(--text-xs);
    color: var(--brown-300);
    font-family: var(--font-cisla);
    white-space: nowrap;
}

/* --- komentář a věta (návrh `.abod`) ------------------------------------------------------ */
/* `pre-wrap`: komentář psaný na víc řádků se má na víc řádků i číst. */
/* `max-width: 86ch` je protějšek návrhového `.djl .abod`: řádek zůstane čitelný, i když
   sloupec je široký (od 24. 8. 2026 sloupec strop nemá — viz `.bd-main`). */
.bdp-text[b-h3w7i1kpkq] {
    max-width: 86ch;
    margin: 8px 0 0;
    font-size: 15px;
    line-height: 1.58;
    color: var(--brown-600);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    text-wrap: pretty;
}

/* --- „z čeho na co" (návrh `.adifs` / `.adif`) -------------------------------------------- */
.bdp-rozpady[b-h3w7i1kpkq] { display: flex; flex-direction: column; gap: 5px; margin-top: 9px; }

/* `wrap`: v úzkém sloupci se „dříve {stará}" zalomí pod novou hodnotu; bez toho by ellipsis
   sežral právě tu starou hodnotu, kvůli které tam řádek je. */
.bdp-rozpad[b-h3w7i1kpkq] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 14.5px;
    color: var(--brown-600);
}

.bdp-pole[b-h3w7i1kpkq] { font-weight: var(--fw-semibold); color: var(--brown-700); min-width: 92px; }
.bdp-nova[b-h3w7i1kpkq] { font-weight: var(--fw-semibold); color: var(--brown-700); }
.bdp-drive[b-h3w7i1kpkq] { font-style: italic; color: var(--brown-300); font-size: 13.5px; }
.bdp-stara[b-h3w7i1kpkq] { color: var(--brown-400); }

/* --- příloha ve vlákně (návrh `.afile` + `.fthb`) ----------------------------------------- */
.bdp-soubor[b-h3w7i1kpkq] { margin-top: 9px; display: flex; align-items: center; gap: 12px; min-width: 0; }

.bdp-mini[b-h3w7i1kpkq] {
    width: 84px;
    height: 53px;
    flex: 0 0 auto;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-hairline);
    background: var(--cream-100);
    object-fit: cover;
    cursor: zoom-in;
}

/* Soubor bez náhledu (PDF, log) nese příponu — dlaždice nesmí zůstat prázdná. */
.bdp-mini-bez[b-h3w7i1kpkq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font: var(--fw-bold) var(--text-3xs)/1 var(--font-cisla);
    letter-spacing: .07em;
    color: var(--brown-400);
    cursor: default;
}

.bdp-soubor-texty[b-h3w7i1kpkq] { display: flex; flex-direction: column; gap: 3px; min-width: 0; }

.bdp-nazev[b-h3w7i1kpkq] {
    border: 0;
    background: transparent;
    padding: 0;
    text-align: left;
    font: var(--fw-semibold) 14.5px var(--font-body);
    color: var(--green-700);
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bdp-nazev:hover[b-h3w7i1kpkq] { color: var(--brown-700); }

.bdp-velikost[b-h3w7i1kpkq] { font: var(--fw-medium) var(--text-xs) var(--font-cisla); color: var(--brown-300); }

/* ── CITACE V KOMENTÁŘI (22. 8. 2026) ─────────────────────────────────────────────────────
   Odpověď na konkrétní komentář se ukládá jako JEDEN komentář s konvencí „> " (viz
   `CitaceKomentare`); tady se ta část jen odliší. Svislý pruh vlevo je u CITACE v pořádku —
   je to citace, ne ozdoba karty (ADR-0095 míří na barevné pruhy u karet položek). */
.bdp-citace[b-h3w7i1kpkq] {
    margin: 0 0 8px;
    padding: 7px 0 7px 11px;
    border-left: 2px solid var(--cream-300);
    color: var(--brown-400);
    font-size: 14px;
    line-height: 1.55;
}

.bdp-citace-kdo[b-h3w7i1kpkq] {
    display: block;
    font-size: 12.5px;
    font-weight: var(--fw-semibold);
    color: var(--brown-300);
    margin-bottom: 2px;
}

.bdp-citace-text[b-h3w7i1kpkq] { display: block; white-space: pre-wrap; }

/* Akce karty se ukazuje až na NÁJEZD — ve vlákně s dvaceti komentáři by dvacet tlačítek
   „Odpovědět" přebilo samotný rozhovor. Na klávesnici zůstává dostupná (`:focus-within`). */
/* DVĚ AKCE OD 24. 8. 2026 (Odpovědět · Upravit), takže řádek potřebuje mezeru — s jedním
   tlačítkem to nebylo vidět a obě se slepila k sobě (vytkl uživatel). Tlačítka jsou odkazy
   bez vnitřního odsazení, takže je nedrží od sebe ani vlastní plocha. */
.bdp-akce[b-h3w7i1kpkq] { display: flex; align-items: center; gap: 14px; margin-top: 6px; opacity: 0; transition: opacity var(--dur-fast) ease; }
.bdp-karta:hover .bdp-akce[b-h3w7i1kpkq],
.bdp-karta:focus-within .bdp-akce[b-h3w7i1kpkq] { opacity: 1; }

.bdp-odpovedet[b-h3w7i1kpkq] {
    border: 0;
    background: transparent;
    padding: 0;
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: var(--fw-semibold);
    color: var(--green-700);
    cursor: pointer;
}

.bdp-odpovedet:hover[b-h3w7i1kpkq] { text-decoration: underline; }

/* ZNAČKA „UPRAVENO" (24. 8. 2026) — tlumená, vedle času. Nekřičí, ale je vidět: komentář jde
   přepsat a čtenář to musí poznat. Celý čas úpravy nese `title`, aby řádek nenabobtnal. */
.bdp-upraveno[b-h3w7i1kpkq] {
    font-size: var(--text-2xs);
    color: var(--text-mute);
    font-style: italic;
}

/* Komentář psaný editorem je HTML — odstavce a odrážky si nesou vlastní rozestupy. */
.bdp-html[b-h3w7i1kpkq]  p { margin: 0 0 8px; }
.bdp-html[b-h3w7i1kpkq]  p:last-child { margin-bottom: 0; }
.bdp-html[b-h3w7i1kpkq]  ul,
.bdp-html[b-h3w7i1kpkq]  ol { margin: 0 0 8px; padding-left: 22px; }
.bdp-html[b-h3w7i1kpkq]  li { margin-bottom: 3px; }
.bdp-html[b-h3w7i1kpkq]  img { max-width: 100%; height: auto; display: block; border-radius: 6px; }
.bdp-html[b-h3w7i1kpkq]  code { font-family: var(--font-mono); font-size: 12.5px; background: var(--cream-100); padding: 1px 5px; border-radius: 4px; }
.bdp-html[b-h3w7i1kpkq]  blockquote {
    margin: 0 0 8px;
    padding-left: 11px;
    border-left: 2.5px solid var(--cream-300);
    color: var(--text-mute);
}

/* Úprava v místě: výtka u tlačítek a nápověda ke zkratkám. */
.bdp-chyba[b-h3w7i1kpkq] { margin: 6px 0 0; font-size: var(--text-xs); color: var(--crit); }
.bdp-napoveda[b-h3w7i1kpkq] { font-size: var(--text-2xs); color: var(--text-mute); }
/* /Components/Pages/DenikZmen.razor.rz.scp.css */
/* Deník změn (ADR-0075) — čtecí obrazovka auditní stopy.
   Tabulka sama jede na sdíleném hustém vzoru (wwwroot/css/tabulka.css); tady je jen to,
   co má navíc: výběr rozsahu, odznak akce a sloupec se změnami. */

.denik-uvod[b-pkuczghyvg] {
    max-width: 62ch;
    margin-bottom: 1rem;
}

/* Výběr rodiny a hledání na jedné liště — rozsah je součást filtru, ne nastavení stránky. */
.denik-listva[b-pkuczghyvg] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.denik-listva .tabulka-listva[b-pkuczghyvg] {
    flex: 1 1 340px;
}

.denik-vyber[b-pkuczghyvg] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 13px;
}

.denik-vyber .pole[b-pkuczghyvg] {
    max-width: 22rem;
}

.denik-export[b-pkuczghyvg] {
    white-space: nowrap;
}

/* Odepřený rozsah není chyba aplikace — vypadá jako klidné sdělení, ne jako varování. */
.denik-odepreno[b-pkuczghyvg] {
    max-width: 62ch;
    margin-top: 1.5rem;
    padding: 0.9rem 1.1rem;
    border: 1px solid var(--barva-linka);
    border-radius: 10px;
    background: var(--barva-povrch);
    color: var(--barva-text-tlumeny);
}

.denik-obal[b-pkuczghyvg] {
    margin-top: 0.75rem;
}

.denik-cas[b-pkuczghyvg] {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* Akce jako tichý štítek. ZÁMĚRNĚ bez barevného kódování „dobré × špatné": v auditu není
   smazání horší událost než vznik a obarvit ho červeně by čtenáře navádělo dřív, než si
   řádek přečte. Odliší se jen rozhodnutí člověka (schválení, vrácení) — ta jsou v deníku
   nová a hledá je ten, kdo se ptá „kdo to pustil dál". */
.denik-akce[b-pkuczghyvg] {
    display: inline-block;
    padding: 1px 7px;
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
    font-size: 11px;
    white-space: nowrap;
}

.denik-akce-schvaleni[b-pkuczghyvg],
.denik-akce-vraceni[b-pkuczghyvg] {
    border-color: var(--barva-akcent);
    font-weight: 600;
}

/* Změny jsou nejdelší sloupec — dostane zbytek místa, ale nesmí rozbít hustotu řádku. */
.denik-zmeny[b-pkuczghyvg] {
    max-width: 46ch;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--barva-text-tlumeny);
}
/* /Components/Pages/Dokumentace.razor.rz.scp.css */
/* Vývojářská sekce Dokumentace — seznam dokumentů vlevo, text vpravo. Žádný vlastní vizuál:
   barvy, poloměry i stíny jsou tokeny back-office mockupu (backoffice-mock.css), seznam
   rozhodnutí je sdílená hustá tabulka .tabulka (ADR-0049). Scoped CSS (Blazor isolation). */

.dok-perex[b-5er3fr605k] { max-width: 640px; margin: 0 0 0.9rem; font-size: 12.5px; color: var(--text-dim); }

/* --- Rozvrh: seznam × obsah ------------------------------------------------ */

.dok-rozvrh[b-5er3fr605k] {
    display: grid;
    grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

/* Na úzkém okně se seznam přesune nad text (jinak by se text zmáčkl na pár slov na řádek). */
@media (max-width: 900px) {
    .dok-rozvrh[b-5er3fr605k] { grid-template-columns: 1fr; }
}

/* --- Levý seznam ----------------------------------------------------------- */

.dok-seznam[b-5er3fr605k] {
    /* Seznam zůstává na očích při rolování textu; rolovací plocha back-office (.stage) začíná
       pod pruhem prostředí, horní lištou a záložkami — odtud těch ~150 px. Padesát rozhodnutí
       se pak roluje UVNITŘ seznamu, ne přes celou stránku. */
    position: sticky;
    top: 8px;
    max-height: calc(100vh - 150px);
    overflow-y: auto;
    padding: 6px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--r);
    box-shadow: var(--shadow);
}

.dok-skupina + .dok-skupina[b-5er3fr605k] { margin-top: 4px; border-top: 1px solid var(--border); padding-top: 4px; }

.dok-skupina-hl[b-5er3fr605k] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 7px;
    border-radius: var(--r-sm);
    cursor: pointer;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--text);
    list-style: none;
}
.dok-skupina-hl[b-5er3fr605k]::-webkit-details-marker { display: none; }
.dok-skupina-hl:hover[b-5er3fr605k] { background: var(--surface-2); }
.dok-skupina-hl:focus-visible[b-5er3fr605k] { outline: 2px solid var(--accent); outline-offset: -2px; }

.dok-skupina-nazev[b-5er3fr605k] { flex: 1; }

.dok-skupina-pocet[b-5er3fr605k] {
    font-size: 10px;
    font-weight: 600;
    color: var(--text-mute);
    background: var(--surface-3);
    border-radius: 999px;
    padding: 1px 6px;
    font-variant-numeric: tabular-nums;
}

.dok-skupina-popis[b-5er3fr605k] {
    margin: 0 7px 5px;
    font-size: 11px;
    line-height: 1.45;
    color: var(--text-mute);
}

.dok-odkazy[b-5er3fr605k] { list-style: none; margin: 0; padding: 0; }

.dok-odkaz[b-5er3fr605k] {
    display: block;
    padding: 4px 8px;
    border-radius: var(--r-sm);
    font-size: 12px;
    line-height: 1.35;
    color: var(--text-dim);
    text-decoration: none;
}
.dok-odkaz:hover[b-5er3fr605k] { background: var(--surface-2); color: var(--text); }
.dok-odkaz.je-aktivni[b-5er3fr605k] { background: var(--accent-weak); color: var(--accent-strong); font-weight: 600; }

.dok-odkaz-prehled[b-5er3fr605k] { font-weight: 600; color: var(--accent-strong); }

/* --- Pravý obsah ------------------------------------------------------------ */

.dok-karta[b-5er3fr605k] { padding: 1.1rem 1.4rem; }

.dok-vysvetleni[b-5er3fr605k] { margin: 0 0 0.8rem; font-size: 12.5px; color: var(--text-dim); max-width: 70ch; }
.dok-pozn[b-5er3fr605k] { margin: 0.7rem 0 0; font-size: 11.5px; }
.dok-zdroj[b-5er3fr605k] { margin: 0.4rem 0 0; font-size: 11px; }
.dok-zdroj code[b-5er3fr605k] { font-family: var(--mono); font-size: 10.5px; }

.dok-rozcestnik[b-5er3fr605k] { margin: 0; padding-left: 1.1rem; font-size: 12.5px; line-height: 1.6; color: var(--text-dim); }
.dok-rozcestnik b[b-5er3fr605k] { color: var(--text); }

/* Sloupce tabulky rozhodnutí — čísla úzká a tabulková, ať sloupec nekmitá. */
.dok-sl-cislo[b-5er3fr605k] { width: 62px; font-variant-numeric: tabular-nums; color: var(--text-mute); }
.dok-sl-datum[b-5er3fr605k] { width: 96px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.dok-sl-stav[b-5er3fr605k] { width: 104px; }

.dok-stav[b-5er3fr605k] {
    display: inline-block;
    font-size: 10.5px;
    font-weight: 600;
    border-radius: 999px;
    padding: 1px 8px;
    background: var(--surface-3);
    color: var(--text-dim);
}
.dok-stav-prijato[b-5er3fr605k] { background: var(--good-bg); color: var(--good); }
.dok-stav-navrzeno[b-5er3fr605k] { background: var(--warn-bg); color: var(--warn); }
.dok-stav-nahrazeno[b-5er3fr605k] { background: var(--surface-3); color: var(--text-mute); }
.dok-stav-zavrzeno[b-5er3fr605k] { background: var(--crit-bg); color: var(--crit); }

/* --- Vykreslený dokument ---------------------------------------------------- */

/* ::deep — obsah vzniká z Markdownu za běhu, takže nenese scope atribut komponenty. */
.dok-clanek[b-5er3fr605k] { max-width: 90ch; font-size: 13.5px; line-height: 1.65; color: var(--text); }

.dok-clanek[b-5er3fr605k]  h1,
.dok-clanek[b-5er3fr605k]  h2 { font-size: 17px; margin: 1.5rem 0 0.5rem; padding-bottom: 0.3rem; border-bottom: 1px solid var(--border); }
.dok-clanek[b-5er3fr605k]  h3 { font-size: 14.5px; margin: 1.2rem 0 0.35rem; }
.dok-clanek[b-5er3fr605k]  h4 { font-size: 13px; margin: 1rem 0 0.3rem; color: var(--text-dim); }
.dok-clanek[b-5er3fr605k]  :first-child { margin-top: 0; }

.dok-clanek[b-5er3fr605k]  p { margin: 0 0 0.7rem; }
.dok-clanek[b-5er3fr605k]  ul,
.dok-clanek[b-5er3fr605k]  ol { margin: 0 0 0.7rem; padding-left: 1.3rem; }
.dok-clanek[b-5er3fr605k]  li { margin-bottom: 0.2rem; }

.dok-clanek[b-5er3fr605k]  a { color: var(--accent-strong); }

.dok-clanek[b-5er3fr605k]  blockquote {
    margin: 0 0 0.8rem;
    padding: 0.5rem 0.9rem;
    background: var(--surface-2);
    border-radius: var(--r-sm);
    color: var(--text-dim);
}

.dok-clanek[b-5er3fr605k]  code {
    font-family: var(--mono);
    font-size: 11.5px;
    background: var(--surface-3);
    border-radius: 4px;
    padding: 1px 4px;
}

.dok-clanek[b-5er3fr605k]  pre {
    margin: 0 0 0.8rem;
    padding: 0.7rem 0.9rem;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    overflow-x: auto;      /* dlouhý řádek roluje uvnitř bloku, ne celou stránkou */
}
.dok-clanek[b-5er3fr605k]  pre code { background: none; padding: 0; font-size: 11.5px; line-height: 1.5; }

/* Tabulky v dokumentech (příručka testování jich má stovky řádků) — hustý, čitelný vzor.
   Obal roluje vodorovně, ať široká tabulka nerozjede stránku. */
.dok-clanek[b-5er3fr605k]  table {
    width: 100%;
    margin: 0 0 0.9rem;
    border-collapse: collapse;
    font-size: 12px;
    display: block;
    overflow-x: auto;
}
.dok-clanek[b-5er3fr605k]  th,
.dok-clanek[b-5er3fr605k]  td {
    border: 1px solid var(--border);
    padding: 4px 8px;
    text-align: left;
    vertical-align: top;
}
.dok-clanek[b-5er3fr605k]  th { background: var(--surface-2); font-size: 11px; font-weight: 600; color: var(--text-dim); }

.dok-clanek[b-5er3fr605k]  img {
    max-width: 100%;
    height: auto;
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    margin: 0.3rem 0 0.8rem;
}

.dok-clanek[b-5er3fr605k]  hr { border: 0; border-top: 1px solid var(--border); margin: 1.2rem 0; }
/* /Components/Pages/EpikaDetailStranka.razor.rz.scp.css */
/* Detail epiky (/epika/{id}) — vlastní scoped CSS (scoped CSS nedosáhne na cizí komponentu,
   proto se tabulkové a pilulkové vzory z BacklogSeznam/BacklogDetail opakují tady).
   Rozvržení a míry dle mockupu „Detail epiky" (dnav / pipe / djira ep / jcard). */

.ed-gate[b-knwoucdqsf] { max-width: 560px; padding: 1.2rem 1.5rem; }
.ed-nacitani[b-knwoucdqsf] { font-size: 12.5px; margin: 8px 2px; }

.ed-karta[b-knwoucdqsf] { padding: 0; overflow: visible; }

/* Drobeček uvnitř karty (mockup .dnav): čtvereček barvy · Epiky · EP-n · Epika. */
.ed-dnav[b-knwoucdqsf] { display: flex; align-items: center; gap: 9px; font-size: 12.5px; color: var(--brown-400); padding: 14px 20px 0; white-space: nowrap; overflow: hidden; }
.ed-ctverecek[b-knwoucdqsf] { width: 13px; height: 13px; border-radius: 3.5px; flex: 0 0 auto; }
.ed-dnav a[b-knwoucdqsf] { color: var(--green-700); font-weight: 600; text-decoration: none; }
.ed-dnav a:hover[b-knwoucdqsf] { text-decoration: underline; }
.ed-dnav-sep[b-knwoucdqsf] { color: var(--brown-300); }
.ed-cislo[b-knwoucdqsf] { color: var(--brown-700); font-weight: 600; font-variant-numeric: tabular-nums; }

/* Hlavička: velký název s úpravou v místě + akce vpravo. */
.ed-hlava[b-knwoucdqsf] { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; padding: 4px 20px 0; }
.ed-nazev[b-knwoucdqsf] { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 21px; font-weight: 700; line-height: 1.3; letter-spacing: -0.015em; color: var(--brown-700); }
.ed-akce[b-knwoucdqsf] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding-top: 5px; }

/* Věta odmítnutí — u prvku, kterého se týká (pravidlo projektu). */
.ed-chyba[b-knwoucdqsf] { margin: 6px 0 0; padding: 0 20px; font-size: 12.5px; color: var(--crit); }
.ed-sekce .ed-chyba[b-knwoucdqsf], .ed-komentar .ed-chyba[b-knwoucdqsf] { padding: 0; }
.ed-chyba-panel[b-knwoucdqsf] { padding: 8px 15px 0; }

/* ── Pipeline fází (mockup .pipe): kroky do sebe zapadají jako šipky. Barvy on/past dodává
   EpikaText inline (tabulka EFAZE); budoucí krok je neutrální. Aktivní stav je VÝPLNÍ,
   žádné orámování (pravidlo projektu). */
.ed-pipe-radek[b-knwoucdqsf] { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 12px 20px 14px; }
.ed-pipe[b-knwoucdqsf] { display: flex; align-items: center; flex-wrap: wrap; }
.ed-krok[b-knwoucdqsf] {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 17px 0 22px;
    margin-left: -8px;
    border: 0;
    font: 600 12.5px/1 var(--font-body);
    cursor: pointer;
    background: var(--cream-50);
    color: var(--brown-300);
    clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%, 10px 50%);
}
.ed-krok:first-child[b-knwoucdqsf] { margin-left: 0; padding-left: 15px; clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%); }
.ed-krok.je-tato[b-knwoucdqsf] { font-weight: 700; cursor: default; }
.ed-krok.je-pred:hover[b-knwoucdqsf] { background: var(--cream-200); color: var(--brown-500); }

/* Odznak „Odloženo" vedle pipeline (mockup .bal) — odložená epika nestojí v žádném kroku. */
.ed-odznak[b-knwoucdqsf] { display: inline-flex; align-items: center; padding: 3px 11px; border-radius: 999px; font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.ed-pipenote[b-knwoucdqsf] { font-size: 12.5px; white-space: nowrap; }

/* ── Tělo: levý sloupec + pravý panel (mockup .djira ep; míry sladěné s detailem tiketu). */
/* Pravý panel je 425 px jako u tiketu (návrh `.djira`: `minmax(464px,1fr) 425px`). Do 24. 8. 2026
   tu bylo 366 — o 59 px užší, takže se kapsle v panelu tiskly k sobě a epika vypadala jinak než
   detail tiketu, i když je to týž šuplík. */
.ed-telo[b-knwoucdqsf] { display: grid; grid-template-columns: minmax(464px, 1fr) 425px; gap: 0; align-items: stretch; border-top: 1px solid var(--border-hairline); }
.ed-main[b-knwoucdqsf] { min-width: 0; display: flex; flex-direction: column; gap: 20px; padding: 16px 20px 22px; }
.ed-panel[b-knwoucdqsf] { padding: 19px; background: var(--cream-50); border-left: 1px solid var(--border-hairline); display: flex; flex-direction: column; gap: 14px; }
@media (max-width: 900px) { .ed-telo[b-knwoucdqsf] { grid-template-columns: 1fr; } .ed-panel[b-knwoucdqsf] { border-left: 0; border-top: 1px solid var(--border-hairline); } }

/* Kontrolní hlášení (mockup .warnbox) — výtka, ne katastrofa: teplá žlutá, věta se zalamuje. */
.ed-warnbox[b-knwoucdqsf] { padding: 11px 14px; border-radius: var(--r); background: #f8edd8; color: #7d5512; font-size: 12.5px; line-height: 1.55; text-wrap: pretty; }

/* Nadpis sekce — týž jazyk jako detail tiketu (řádek s ikonou, ne verzálkový drobek). */
.ed-nadpis[b-knwoucdqsf] { display: flex; align-items: center; gap: 7px; margin: 0 0 7px; font-size: 14px; font-weight: var(--fw-bold); letter-spacing: .02em; color: var(--brown-400); }
.ed-nadpis svg[b-knwoucdqsf] { width: 14px; height: 14px; stroke: var(--brown-300); fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.ed-nadpis-pocet[b-knwoucdqsf] { font-weight: 400; }
.ed-prazdno[b-knwoucdqsf] { margin: 0; font-size: 12.5px; }

/* Cíl a rozsah — dlouhý text čitelně (mockup omezuje šířku odstavce). */
.ed-cil[b-knwoucdqsf] { display: block; max-width: 86ch; font-size: 13px; line-height: 1.65; }

/* ── Tabulka tiketů — hustá, vzor BacklogSeznam (scoped kopie pravidel). */
/* TABULKA TIKETŮ V EPICE — vzdušná `.tb` z návrhu, ne hustá `.tabulka` (ADR-0049).
   Dorovnáno 24. 8. 2026 (ALF-16, „vizuál neodpovídá designu"). Do té doby to byla hustá
   tabulka: 12,5px text, 27px řádek, verzálkové záhlaví na béžovém pruhu. Hustota se hodí tam,
   kde se v seznamu pracuje (backlog); tady je to VÝČET pěti tiketů uvnitř karty a návrh mu dává
   týž řez jako ostatnímu textu sekce. Bez vnějšího rámečku — sekce sama je karta. */
.ed-tabulka-obal[b-knwoucdqsf] { overflow-x: auto; }
.ed-tabulka[b-knwoucdqsf] { width: 100%; border-collapse: collapse; font-size: 14px; }

.ed-tabulka th[b-knwoucdqsf] {
    text-align: left;
    font-size: 13px;
    font-weight: var(--fw-semibold);
    color: var(--brown-400);
    padding: 7px 10.5px;
    border-bottom: 1px solid var(--border-hairline);
    white-space: nowrap;
}

.ed-tabulka td[b-knwoucdqsf] {
    padding: 7px 10.5px;
    border-bottom: 1px solid var(--cream-200);
    color: var(--brown-600);
    white-space: nowrap;
    vertical-align: middle;
}

.ed-tabulka tbody tr:last-child td[b-knwoucdqsf] { border-bottom: 0; }

/* Řádek se otevírá kliknutím (návrh `tr.clk`) — podbarvení pod kurzorem je to jediné, co to
   napovídá. Ikona druhu tu byla do 24. 8. 2026; nahradil ji barevný štítek, takže její pravidla
   odešla s ní. */
.ed-radek[b-knwoucdqsf] { cursor: pointer; }
.ed-radek:hover td[b-knwoucdqsf] { background: var(--cream-50); }

/* Název se jako jediný ZALAMUJE (návrh `td.w`) — je to ta buňka, kvůli které se řádek čte. */
.td-nazev[b-knwoucdqsf] { white-space: normal; font-weight: var(--fw-semibold); color: var(--brown-700); }
.td-typ[b-knwoucdqsf] { width: 44px; }
.td-id[b-knwoucdqsf] { width: 90px; }
.td-resitel[b-knwoucdqsf] { width: 64px; }

/* Štítek druhu (návrh `.kchip`) — VĚTŠÍ než v husté tabulce backlogu (21 px proti 17),
   protože tady je řádek vzdušný a drobný štítek by v něm plaval. */
.ed-druh[b-knwoucdqsf] {
    display: inline-flex;
    align-items: center;
    height: 21px;
    padding: 0 7px;
    border-radius: var(--radius-sm);
    font-size: 12px;
    font-weight: var(--fw-bold);
    letter-spacing: .04em;
    color: var(--white);
    background: var(--druh, var(--brown-500));
}

.ed-druh.je-user_story[b-knwoucdqsf] { --druh: var(--druh-user_story); }
.ed-druh.je-chyba[b-knwoucdqsf] { --druh: var(--druh-chyba); }
.ed-druh.je-feature_request[b-knwoucdqsf] { --druh: var(--druh-feature_request); }

/* Priorita = tečka a text (návrh `.lp` + `.pdot`). */
.ed-priorita[b-knwoucdqsf] { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; color: var(--brown-500); }
.ed-priorita-tecka[b-knwoucdqsf] { width: 9.5px; height: 9.5px; border-radius: 50%; flex: 0 0 auto; background: var(--prio, var(--brown-300)); }
.ed-priorita-tecka.je-kriticka[b-knwoucdqsf] { --prio: var(--crit); }
.ed-priorita-tecka.je-vysoka[b-knwoucdqsf] { --prio: var(--warn); }
.ed-priorita-tecka.je-stredni[b-knwoucdqsf] { --prio: var(--brown-400); }
.ed-priorita-tecka.je-nizka[b-knwoucdqsf] { --prio: var(--brown-300); }

/* Stav zůstává pilulkou — je to táž značka jako všude jinde (návrh `.bal`). */
.ed-stav[b-knwoucdqsf] {
    display: inline-flex;
    align-items: center;
    padding: 4.5px 13px;
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-weight: var(--fw-semibold);
    line-height: normal;
    white-space: nowrap;
    background: var(--stav-bg, var(--cream-200));
    color: var(--stav-ink, var(--brown-500));
}
.ed-stav.je-stav-zamitnuto[b-knwoucdqsf] { text-decoration: line-through; }

/* „+ Nový tiket v epice" pod tabulkou (mockup .addrow) — přerušovaná pobídka přes šířku. */
.ed-pridat-radek[b-knwoucdqsf] { width: 100%; margin-top: 10px; border: 1px dashed var(--border-hairline); background: transparent; border-radius: var(--r); color: var(--brown-400); font: 600 12.5px var(--font-body); padding: 8px; cursor: pointer; }
/* Najetí myší = VÝPLŇ a akcentové tokeny, jako u sourozenců (`.backlog-nova-soubor:hover`,
   `.bd-plus:hover`). Zelený OBRYS jako signál „aktivní" se v projektu nedělá (pokyn uživatele);
   `--green-500` napřímo tu byl přehlédnutý detail mockupu (.addrow), ne vědomá výjimka. */
.ed-pridat-radek:hover[b-knwoucdqsf] { border-color: var(--color-accent); background: var(--color-accent-soft); color: var(--color-accent-press); }

/* ── Aktivita: pole na komentář + proud událostí (mockup .alog/.arow/.aitem). */
.ed-aktivita[b-knwoucdqsf] { border-top: 1px solid var(--border-hairline); padding-top: 14px; }
.ed-komentar-radek[b-knwoucdqsf] { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; margin-bottom: 16px; }
.ed-komentar[b-knwoucdqsf] { min-width: 0; }
.ed-komentar-pole[b-knwoucdqsf] { width: 100%; min-height: 54px; resize: vertical; border-radius: var(--r); border: 1px solid var(--border-hairline); background: var(--surface); padding: 9px 12px; font: 500 13px var(--font-body); color: var(--brown-700); line-height: 1.55; outline: none; box-sizing: border-box; }
.ed-komentar-pole:focus[b-knwoucdqsf] { border-color: var(--brown-300); }
.ed-komentar-akce[b-knwoucdqsf] { display: flex; justify-content: flex-end; margin-top: 8px; }

.ed-proud[b-knwoucdqsf] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ed-udalost[b-knwoucdqsf] { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; }
.ed-udalost-obsah[b-knwoucdqsf] { min-width: 0; background: var(--surface); border: 1px solid var(--border-hairline); border-radius: var(--r); padding: 9px 13px 11px; }
.ed-udalost-hlava[b-knwoucdqsf] { display: flex; align-items: center; gap: 10px; }
.ed-udalost-kdo[b-knwoucdqsf] { font-weight: 600; color: var(--brown-700); font-size: 12.5px; white-space: nowrap; }
.ed-udalost-typ[b-knwoucdqsf] { font: 600 9.5px/1 var(--font-cisla, var(--font-body)); letter-spacing: .09em; text-transform: uppercase; padding: 4px 8px; border-radius: 999px; }
.ed-udalost-typ.je-kom[b-knwoucdqsf] { background: var(--green-100); color: #5f6d05; }
.ed-udalost-typ.je-zaznam[b-knwoucdqsf] { background: var(--cream-200); color: var(--brown-500); }
.ed-udalost-kdy[b-knwoucdqsf] { margin-left: auto; font-size: 11px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ed-udalost-text[b-knwoucdqsf] { margin: 6px 0 0; color: var(--brown-600); font-size: 12.5px; line-height: 1.55; text-wrap: pretty; white-space: pre-line; overflow-wrap: anywhere; }

/* ── Pravý panel: karty Postup a Podrobnosti (mockup .jcard/.jch/.ekpi). */
.ed-jcard[b-knwoucdqsf] { background: var(--surface); border: 1px solid var(--border-hairline); border-radius: var(--r); }
.ed-jch[b-knwoucdqsf] { display: flex; align-items: center; gap: 9px; padding: 10px 15px; border-bottom: 1px solid var(--border-hairline); font-size: 12.5px; font-weight: 700; color: var(--brown-700); }

.ed-postup[b-knwoucdqsf] { padding: 13px 15px 0; }
.ed-postup-radek[b-knwoucdqsf] { display: flex; align-items: center; gap: 9px; }
.ed-pruh[b-knwoucdqsf] { flex: 1; height: 7px; border-radius: 2.5px; background: var(--cream-200); overflow: hidden; display: inline-block; }
.ed-pruh i[b-knwoucdqsf] { display: block; height: 100%; background: var(--green-500); }
.ed-procenta[b-knwoucdqsf] { font-family: var(--font-cisla); font-size: 12px; font-weight: var(--fw-bold); color: var(--brown-500); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ed-postup-veta[b-knwoucdqsf] { margin: 9px 0 13px; font-size: 12px; line-height: 1.6; }

.ed-kpi[b-knwoucdqsf] { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; padding: 12px 15px 15px; border-top: 1px solid var(--border-hairline); margin: 0; }
.ed-kpi dt[b-knwoucdqsf] { font-size: 12.5px; color: var(--brown-500); }
.ed-kpi dd[b-knwoucdqsf] { margin: 0; font-size: 12.5px; font-weight: var(--fw-bold); color: var(--brown-700); text-align: right; font-variant-numeric: tabular-nums; }

.ed-podrobnosti[b-knwoucdqsf] { padding: 13px 15px 15px; display: flex; flex-direction: column; gap: 12px; }
.ed-pole[b-knwoucdqsf] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
/* Popisek pole (návrh `.fld label`): 13px, prostrkání .1em, verzálky. Do 24. 8. 2026 to bylo
   10,5px/.04em — o dva stupně drobnější, takže popisky panelu mizely. */
.ed-popisek[b-knwoucdqsf] { display: block; font-size: 13px; font-weight: var(--fw-semibold); letter-spacing: .1em; text-transform: uppercase; color: var(--brown-400); margin-bottom: 2px; }

/* KAPSLE (návrh `.mpick .mv` u voliče, `.fld input` u pole). Volič si kreslíme sami — nativní
   prvek ve výchozí podobě je zakázaný (pravidlo ze 14. 8. 2026) a prohlížeč u něj navíc bere
   text šipky ze SVÉHO jazyka. Šipka je pozadím pole, ne `::after` na obalu: obal má i pole bez
   šipky (verze) a dvě pravidla pro jeden tvar by se rozešla. */
.ed-kapsle[b-knwoucdqsf] { min-width: 0; }

.ed-vyber[b-knwoucdqsf],
.ed-vstup[b-knwoucdqsf] {
    width: 100%;
    height: 37px;
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-md);
    background-color: var(--white);
    color: var(--brown-700);
    font: var(--fw-semibold) 14px var(--font-body);
    padding: 0 14px;
    outline: 0;
}

.ed-vyber[b-knwoucdqsf] {
    appearance: none;
    padding-right: 32px;
    cursor: pointer;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23b3a291' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
}

.ed-vyber:hover[b-knwoucdqsf] { border-color: var(--brown-300); }
.ed-vyber:focus-visible[b-knwoucdqsf],
.ed-vstup:focus[b-knwoucdqsf] { border-color: var(--green-500); }

/* Vzorky barvy (mockup .csw) — VYBRANÁ SE POZNÁ HNĚDÝM PRSTENCEM, žádná zelená (pravidlo). */
.ed-vzorky[b-knwoucdqsf] { display: flex; gap: 7px; flex-wrap: wrap; }
.ed-vzorek[b-knwoucdqsf] { width: 24px; height: 24px; border-radius: 8px; border: 1px solid rgba(46, 35, 26, .16); cursor: pointer; padding: 0; }
.ed-vzorek.je-vybrana[b-knwoucdqsf] { box-shadow: 0 0 0 2px var(--surface), 0 0 0 3.5px var(--brown-500); cursor: default; }

.ed-stitky[b-knwoucdqsf] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ed-stitek-vstup[b-knwoucdqsf] { width: 9rem; height: 24px; border: 1px solid var(--border); border-radius: var(--r); background: var(--surface); padding: 0 8px; font: 500 12px var(--font-body); color: var(--brown-700); outline: none; }
.ed-stitek-vstup:focus[b-knwoucdqsf] { border-color: var(--brown-300); }
.ed-plus[b-knwoucdqsf] { width: 24px; height: 24px; border: 1px dashed var(--border-hairline); border-radius: 999px; background: transparent; color: var(--brown-400); font-size: 14px; line-height: 1; cursor: pointer; }
.ed-plus:hover[b-knwoucdqsf] { border-color: var(--brown-300); color: var(--brown-600); }

.ed-pata[b-knwoucdqsf] { margin: 0; font-size: 11.5px; line-height: 1.7; }
/* /Components/Pages/Home.razor.rz.scp.css */
/* Dashboard — vzdušná mřížka dlaždic modulů. Luxusní, klidné. */

.dashboard-uvod[b-nbfaupdful] {
    max-width: 640px;
    margin-bottom: clamp(2rem, 4vw, 3.25rem);
}

.dashboard-podtitulek[b-nbfaupdful] {
    font-size: 1.1rem;
    line-height: 1.65;
    margin-bottom: 0;
}

.dlazdice[b-nbfaupdful] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

/* --- Dlaždice ----------------------------------------------------------- */
.dlazdice-karta[b-nbfaupdful] {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    transition: transform var(--prechod), box-shadow var(--prechod),
                border-color var(--prechod);
}

a.dlazdice-karta:hover[b-nbfaupdful] {
    transform: translateY(-3px);
    box-shadow: var(--stin-zvednuty);
    border-color: rgba(144, 168, 0, 0.4);
}

/* Obrázkové místo — brand ilustrace dlaždice (background-image nastaví Home.razor per modul) */
.dlazdice-obrazek[b-nbfaupdful] {
    aspect-ratio: 16 / 9;
    background-color: var(--c-krem);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.dlazdice-telo[b-nbfaupdful] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1.4rem 1.5rem 1.6rem;
    flex: 1;
}

.dlazdice-nazev[b-nbfaupdful] {
    margin: 0;
    font-size: 1.3rem;
}

.dlazdice-popis[b-nbfaupdful] {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.55;
    flex: 1;
}

.dlazdice-akce[b-nbfaupdful] {
    margin-top: 0.9rem;
    font-weight: 600;
    font-size: 0.92rem;
    color: var(--barva-akcent-text);
}

.dlazdice-akce[b-nbfaupdful]::after {
    content: " \2192"; /* šipka → */
    transition: margin-left var(--prechod);
}

a.dlazdice-karta:hover .dlazdice-akce[b-nbfaupdful]::after {
    margin-left: 0.2rem;
}

/* --- Mini-údaj (živá čísla na dlaždici) ---------------------------------- */
.dlazdice-mini[b-nbfaupdful] {
    margin-top: 0.55rem;
    font-size: 0.85rem;
    letter-spacing: 0.01em;
}

/* --- Stav „Připravujeme" ------------------------------------------------ */
.dlazdice-pripravujeme[b-nbfaupdful] {
    opacity: 0.82;
    cursor: default;
}

.dlazdice-pripravujeme .dlazdice-obrazek[b-nbfaupdful] {
    background-color: var(--c-krem);
    filter: grayscale(0.4);
}

.dlazdice-stitek[b-nbfaupdful] {
    align-self: flex-start;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    /* Hnědá (ne tlumená šedá): dlaždice „Připravujeme" má opacity 0.82, štítek musí
       zůstat čitelný i po ztlumení (efektivně ~5:1). */
    color: var(--c-hneda);
    background-color: var(--c-krem);
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
    padding: 0.25rem 0.7rem;
    margin-bottom: 0.35rem;
}

/* --- Poslední dění -------------------------------------------------------- */
.deni[b-nbfaupdful] {
    margin-top: clamp(2rem, 4vw, 3rem);
    max-width: 720px;
}

.deni-nadpis[b-nbfaupdful] {
    font-size: 1.15rem;
    margin: 0 0 0.9rem;
}

.deni-seznam[b-nbfaupdful] {
    list-style: none;
    margin: 0;
    padding: 0.35rem 0;
}

.deni-polozka[b-nbfaupdful] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    padding: 0.7rem 1.25rem;
}

.deni-polozka + .deni-polozka[b-nbfaupdful] {
    border-top: 1px solid var(--barva-linka);
}

.deni-ikona[b-nbfaupdful] {
    width: 1.15rem;
    height: 1.15rem;
    flex: none;
    align-self: center;
    color: var(--c-hneda);
}

.deni-text[b-nbfaupdful] {
    flex: 1;
    font-size: 0.95rem;
    line-height: 1.5;
}

.deni-stari[b-nbfaupdful] {
    flex: none;
    font-size: 0.82rem;
    white-space: nowrap;
}

/* --- Karta „Váš poradce" (D11 — jen klient) ------------------------------ */
.poradce-sekce[b-nbfaupdful] {
    margin-top: clamp(2rem, 4vw, 3rem);
    max-width: 480px;
}

.poradce-karta[b-nbfaupdful] {
    display: flex;
    align-items: flex-start;
    gap: 1.1rem;
    padding: 1.4rem 1.6rem;
}

/* Kulatý monogram (iniciály) místo fotky — klidný brand odznáček. */
.poradce-monogram[b-nbfaupdful] {
    flex: none;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background-color: var(--c-zelena-svetla);
    color: var(--c-hneda-tmava);
    font-family: var(--font-nadpis);
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.poradce-telo[b-nbfaupdful] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.poradce-role[b-nbfaupdful] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.poradce-jmeno[b-nbfaupdful] {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--barva-text);
}

.poradce-vyzva[b-nbfaupdful] {
    margin: 0.25rem 0 0.7rem;
    font-size: 0.92rem;
    line-height: 1.5;
}

.poradce-kontakt[b-nbfaupdful] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.poradce-radek[b-nbfaupdful] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.92rem;
    min-width: 0;
}

.poradce-ikona[b-nbfaupdful] {
    width: 1.05rem;
    height: 1.05rem;
    flex: none;
    color: var(--c-hneda);
}

.poradce-radek a[b-nbfaupdful] {
    color: var(--barva-akcent-text);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.poradce-radek a:hover[b-nbfaupdful] {
    text-decoration: underline;
}

/* --- Alfrédova poznámka dne (D12 — decentní tip pod dlaždicemi) ---------- */
.poznamka-dne[b-nbfaupdful] {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin-top: clamp(2rem, 4vw, 3rem);
    max-width: 640px;
    color: var(--barva-text-tlumeny);
}

.poznamka-ikona[b-nbfaupdful] {
    width: 1.2rem;
    height: 1.2rem;
    flex: none;
    margin-top: 0.15rem;
    color: var(--barva-akcent-text);
}

.poznamka-text[b-nbfaupdful] {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.55;
}

.poznamka-stitek[b-nbfaupdful] {
    font-weight: 600;
    color: var(--c-hneda);
}

.poznamka-stitek[b-nbfaupdful]::after {
    content: " · ";
    font-weight: 400;
    color: var(--barva-text-tlumeny);
}

/* ==========================================================================
   Klientský portál (E2, varianta 3+): domovská stránka = majetkový dashboard.
   Vzor: nahledy/dashboard-mockupy/v3b-komornik-plus.html. Admin větev výše
   používá původní .dashboard styly; tohle je nový .portal svět.
   ========================================================================== */

/* --- Hero: Alfréd čte ze spisu + bublina se shrnutím ---------------------- */
.portal-hero[b-nbfaupdful] {
    display: grid;
    /* minmax(0,1fr), ne implicitní auto: auto sloupec roste podle min-content dětí
       (vstup dotazu s dlouhým placeholderem) a na mobilu přetekl viewport (~11 px). */
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.portal-bublina[b-nbfaupdful] {
    position: relative;
    padding: 1.6rem 2.1rem;
}

.portal-bublina h1[b-nbfaupdful] {
    font-size: 1.45rem;
    margin-bottom: 0.55rem;
}

.portal-bublina p[b-nbfaupdful] {
    margin: 0;
}

/* Dotaz + chipy: přesunuto do PortalDotaz.razor.css (interaktivní ostrůvek — scoped CSS
   rodiče se na dětskou komponentu nepřenáší). */

/* --- Rozložení majetku (donut + legenda s ikonami) ------------------------ */
.portal-prehled[b-nbfaupdful] {
    display: grid;
    grid-template-columns: 1.45fr 1fr;
    gap: 1rem;
    align-items: stretch;
    margin-bottom: clamp(1.75rem, 3vw, 2.25rem);
}

/* Karta vývoje hodnoty v čase (ADR-0031): čárový graf (inline SVG, CSP-safe). */
.portal-vyvoj[b-nbfaupdful] {
    padding: 1.6rem 1.9rem;
    display: flex;
    flex-direction: column;
}

.portal-vyvoj h2[b-nbfaupdful] {
    font-size: 1.1rem;
    margin: 0 0 1rem;
}

.portal-vyvoj-graf[b-nbfaupdful] {
    position: relative;
    margin: 0;
    flex: 1;
}

.portal-vyvoj-graf svg[b-nbfaupdful] {
    display: block;
    width: 100%;
    height: 200px;
    overflow: visible;
}

.portal-vyvoj-mrizka[b-nbfaupdful] {
    stroke: rgba(89, 67, 52, 0.10);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.portal-vyvoj-plocha[b-nbfaupdful] {
    fill: rgba(119, 146, 30, 0.14);   /* oliva, jako křivka */
    stroke: none;
}

.portal-vyvoj-cara[b-nbfaupdful] {
    fill: none;
    stroke: var(--c-zelena-tmava);
    stroke-width: 2;
    stroke-linejoin: round;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
}

/* Popisky osy X — HTML overlay (SVG je roztažený preserveAspectRatio=none, text by se deformoval). */
.portal-vyvoj-osy[b-nbfaupdful] {
    position: relative;
    height: 1.1rem;
    margin-top: 0.2rem;
}

.portal-vyvoj-x[b-nbfaupdful] {
    position: absolute;
    transform: translateX(-50%);
    font-size: 0.62rem;
    color: var(--barva-text-tlumeny);
    white-space: nowrap;
}

.portal-vyvoj-pozn[b-nbfaupdful] {
    margin: 0.9rem 0 0;
    font-size: 0.8rem;
    line-height: 1.5;
}

/* .karta v appce záměrně NEMÁ padding (přidávají si ho jednotlivé bloky) — portál karty
   proto vlastní padding potřebují. */
.portal-rozlozeni[b-nbfaupdful] {
    padding: 1.6rem 1.9rem;
}

.portal-rozlozeni h2[b-nbfaupdful] {
    font-size: 1.1rem;
    margin-bottom: 1rem;
}

.portal-graf[b-nbfaupdful] {
    display: grid;
    grid-template-columns: 190px 1fr;
    gap: 2rem;
    align-items: center;
    margin: 0;
}

.portal-graf-obal[b-nbfaupdful] {
    position: relative;
}

.portal-graf-kolo[b-nbfaupdful] {
    display: block;
    width: 100%;
}

.portal-graf-vysek[b-nbfaupdful] {
    fill: none;
    stroke-width: 15;
}

.portal-graf-stred[b-nbfaupdful] {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    text-align: center;
    gap: 0.1rem;
}

.portal-graf-castka[b-nbfaupdful] {
    font-family: var(--font-nadpis);
    font-size: 1.02rem;
    color: var(--c-hneda-tmava);
}

.portal-graf-popis[b-nbfaupdful] {
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-legenda[b-nbfaupdful] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0;
}

.portal-legenda-radek[b-nbfaupdful] {
    display: grid;
    grid-template-columns: 30px 1fr auto auto;
    align-items: center;
    gap: 0.65rem;
    font-size: 0.92rem;
}

.portal-legenda-nazev[b-nbfaupdful] {
    font-weight: 500;
}

.portal-legenda-castka[b-nbfaupdful] {
    font-weight: 600;
    color: var(--c-hneda-tmava);
    white-space: nowrap;
}

.portal-legenda-podil[b-nbfaupdful] {
    font-size: 0.84rem;
    min-width: 3em;
    text-align: right;
}

.portal-kurz-pozn[b-nbfaupdful] {
    margin: 1rem 0 0;
    font-size: 0.8rem;
    line-height: 1.5;
}

/* --- Podrobný rozpis (kompaktní karty tříd) -------------------------------- */
.portal-sekce-nadpis[b-nbfaupdful] {
    font-size: 1.2rem;
    margin: 0 0 0.9rem;
}

.portal-stitek[b-nbfaupdful] {
    display: inline-block;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--barva-akcent-text);
    background: var(--c-zelena-svetla);
    border-radius: 999px;
    padding: 0.14rem 0.6rem;
    margin-left: 0.5rem;
    vertical-align: 2px;
}

.portal-rozpis[b-nbfaupdful] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.9rem;
    margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.portal-trida[b-nbfaupdful] {
    padding: 1rem 1.25rem 0.8rem;
    display: flex;
    flex-direction: column;
    border-radius: var(--radius);
}

.portal-trida-hlava[b-nbfaupdful] {
    display: grid;
    grid-template-columns: 34px 1fr auto;
    gap: 0.7rem;
    align-items: center;
    padding-bottom: 0.55rem;
    border-bottom: 2px solid var(--trida-barva, var(--barva-linka));
    margin-bottom: 0.2rem;
}

.portal-trida-hlava h3[b-nbfaupdful] {
    font-size: 0.98rem;
    margin: 0;
    line-height: 1.2;
}

.portal-trida-meta[b-nbfaupdful] {
    font-size: 0.73rem;
}

.portal-trida-suma[b-nbfaupdful] {
    font-family: var(--font-nadpis);
    font-size: 1.02rem;
    color: var(--c-hneda-tmava);
    white-space: nowrap;
}

.portal-polozka[b-nbfaupdful] {
    display: grid;
    grid-template-columns: 22px 1fr auto;
    align-items: center;
    gap: 0.55rem;
    padding: 0.3rem 0;
    border-bottom: 1px dashed var(--barva-linka);
    font-size: 0.85rem;
}

.portal-polozka:last-of-type[b-nbfaupdful] {
    border-bottom: 0;
}

.portal-polozka-castka[b-nbfaupdful] {
    font-weight: 600;
    color: var(--c-hneda-tmava);
    white-space: nowrap;
}

.portal-trida-odkaz[b-nbfaupdful] {
    margin-top: auto;
    padding-top: 0.45rem;
    font-size: 0.78rem;
    font-weight: 600;
}

/* --- Prázdný stav ----------------------------------------------------------- */
.portal-prazdno[b-nbfaupdful] {
    max-width: 640px;
    margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
    padding: 1.6rem 1.9rem;
    display: grid;
    gap: 1rem;
    justify-items: start;
}

.portal-prazdno p[b-nbfaupdful] {
    margin: 0;
}

/* --- Rodinný trezor (výhled — připravujeme) --------------------------------- */
.portal-trezor-uvod[b-nbfaupdful] {
    max-width: 720px;
    font-size: 0.95rem;
    margin: 0 0 1.1rem;
}

.portal-trezor[b-nbfaupdful] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.portal-trezor-kachle[b-nbfaupdful] {
    background: var(--barva-povrch);
    border: 1px dashed rgba(89, 67, 52, 0.28);
    border-radius: var(--radius);
    padding: 1.1rem 1.25rem;
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 0.85rem;
    align-items: start;
}

.portal-trezor-kachle img[b-nbfaupdful] {
    opacity: 0.85;
}

.portal-trezor-kachle h3[b-nbfaupdful] {
    font-family: var(--font-text);
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0 0 0.2rem;
    color: var(--c-hneda);
}

.portal-trezor-kachle p[b-nbfaupdful] {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.45;
}

/* Portálové dlaždice sdílejí .dlazdice styly; jen menší odstup dole. */
.portal-dlazdice[b-nbfaupdful] {
    margin-bottom: 0.5rem;
}

/* --- Responsivita ------------------------------------------------------------ */
@media (max-width: 940px) {
    .portal-prehled[b-nbfaupdful] {
        grid-template-columns: 1fr;
    }

    .portal-graf[b-nbfaupdful] {
        grid-template-columns: 150px 1fr;
        gap: 1.25rem;
    }

    .portal-rozpis[b-nbfaupdful],
    .portal-trezor[b-nbfaupdful] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .portal-graf[b-nbfaupdful] {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .portal-graf-obal[b-nbfaupdful] {
        width: min(210px, 70vw);
    }
}
/* /Components/Pages/ImportRevize.razor.rz.scp.css */
/*
    Obrazovka revize importu (SPEC §4.1–4.2).

    DVĚ VĚCI, KTERÉ SE TU NESMÍ UDĚLAT:
      • BAREVNÝ PRUH VLEVO U KARET — zakázaný vzor. Pásmo se proto nese ZNAČKOU v buňce
        „Jistota", ne obarvením okraje řádku; barva je v tabulce jen jako slabé podbarvení,
        které nekřičí.
      • Zelený rámeček ≠ „stroj si je jistý". Zelený rámeček dostane výhradně řádek, který
        OPRAVIL ČLOVĚK (třída `je-opraveno`) — to je jeho jediný význam na téhle obrazovce.
*/

.revize[b-ohoh5n54nb] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 0;
}

/* Hlavička stránky je JEDEN řádek (zakázaný vzor: hlavička přes víc řádků). */
.revize-hlava[b-ohoh5n54nb] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.revize-hlava h1[b-ohoh5n54nb] {
    margin: 0;
    font-size: 1.35rem;
}

.revize-hlava-doplnek[b-ohoh5n54nb] {
    font-size: 0.9rem;
}

.revize-hlaska[b-ohoh5n54nb] {
    margin: 0;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    background: var(--barva-plocha-2, #f4f6f8);
    font-size: 0.9rem;
}

/* Vlevo papír, vpravo návrhy. Pod 1100 px se to složí pod sebe — papír zůstane nahoře,
   protože bez něj nemá revize co ověřovat. */
.revize-plocha[b-ohoh5n54nb] {
    display: grid;
    grid-template-columns: minmax(300px, 1fr) minmax(0, 2fr);
    gap: 0.75rem;
    align-items: start;
}

@media (max-width: 1100px) {
    .revize-plocha[b-ohoh5n54nb] {
        grid-template-columns: 1fr;
    }

    /* Pod 1100 px jde TABULKA NÁVRHŮ NAHORU. Ve složeném rozvržení je podklad pořád dostupný
       (je hned pod ní), ale to, co se potvrzuje, musí být na první obrazovce — jinak poradce
       otevře revizi a vidí jen vložený text a lištu s tlačítky, pod kterou nic není. */
    .revize-papir[b-ohoh5n54nb] {
        order: 2;
        position: static;
    }

    .revize-navrhy[b-ohoh5n54nb] {
        order: 1;
    }
}

/* ── vlevo: papír ─────────────────────────────────────────────────────────────────────── */

.revize-papir[b-ohoh5n54nb] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    position: sticky;
    top: 0.5rem;
}

.revize-papir-ram[b-ohoh5n54nb] {
    width: 100%;
    height: 60vh;
    min-height: 420px;
    border: 1px solid var(--barva-linka, #d7dde3);
    border-radius: 8px;
    background: #fff;
}

/* ── vlevo místo papíru: VLOŽENÁ TABULKA (ADR-0080) ─────────────────────────────────────
   Táž role jako rám s PDF: podklad, proti kterému se návrh ověřuje. Proto neproporcionální
   písmo a zachované mezery — sloupce musí být pod sebou, jinak se porovnávat nedá. Široká
   tabulka se posouvá VODOROVNĚ UVNITŘ bloku, nikdy stránkou. */

.revize-papir-veta[b-ohoh5n54nb] {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.45;
}

/* VÝŠKA PODLE OBSAHU, ne pevných 60 vh: tabulka o třech řádcích zabírala 650 px prázdna
   a ve složeném rozvržení tím vytlačila návrhy pod okraj obrazovky. Strop zůstává, ať se
   dlouhá tabulka pořád posouvá uvnitř bloku. */
.revize-vlozeno[b-ohoh5n54nb] {
    margin: 0;
    max-height: 60vh;
    min-height: 8rem;
    padding: 0.5rem 0.6rem;
    box-sizing: border-box;
    border: 1px solid var(--barva-linka, #d7dde3);
    border-radius: 8px;
    background: var(--barva-plocha, #fff);
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: 0.78rem;
    line-height: 1.5;
    tab-size: 12;
    white-space: pre;
    overflow: auto;
}

/* Řádek, na kterém stojí vybraný návrh. Kotva JE ten řádek, takže zvýraznění nic nehádá. */
.revize-vlozeno-radek[b-ohoh5n54nb] {
    display: block;
    padding: 0 0.25rem;
    border-radius: 3px;
}

.revize-vlozeno-radek.je-vybrany[b-ohoh5n54nb] {
    background: var(--barva-zvyrazneni, #fff3bf);
    box-shadow: inset 2px 0 0 var(--barva-akcent, #0f766e);
}

.revize-kotva[b-ohoh5n54nb] {
    border: 1px solid var(--barva-linka, #d7dde3);
    border-radius: 8px;
    padding: 0.6rem 0.75rem;
    background: var(--barva-plocha, #fff);
    font-size: 0.88rem;
}

.revize-kotva-popis[b-ohoh5n54nb] {
    margin: 0 0 0.35rem;
}

/* Kotva je DOSLOVNÝ řádek z papíru — musí jít porovnat znak po znaku, proto neproporcionální
   písmo a zachované mezery. Dlouhý řádek tabulky se posouvá vodorovně uvnitř bloku, ne stránkou. */
.revize-kotva-text[b-ohoh5n54nb] {
    margin: 0;
    padding: 0.5rem;
    border-radius: 6px;
    background: var(--barva-plocha-2, #f4f6f8);
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: 0.78rem;
    line-height: 1.45;
    white-space: pre;
    overflow-x: auto;
}

.revize-kotva-chybi[b-ohoh5n54nb] {
    margin: 0;
    color: var(--barva-vystraha-text, #8a2f2f);
}

/* ── vpravo: hlavička dokumentu ───────────────────────────────────────────────────────── */

.revize-navrhy[b-ohoh5n54nb] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
}

.revize-navrh-veta[b-ohoh5n54nb] {
    margin: 0 0 0.6rem;
    font-size: 0.95rem;
}

.revize-zahlavi-mrizka[b-ohoh5n54nb] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.4rem 0.9rem;
    margin: 0;
}

.revize-zahlavi-polozka[b-ohoh5n54nb] {
    min-width: 0;
}

.revize-zahlavi-polozka dt[b-ohoh5n54nb] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--barva-text-tlumeny, #6b7684);
}

.revize-zahlavi-polozka dd[b-ohoh5n54nb] {
    margin: 0;
    font-size: 0.92rem;
    overflow-wrap: anywhere;
}

/* Pásmo v hlavičce = TEČKA před popiskem, ne pruh. */
.revize-zahlavi-polozka dt[b-ohoh5n54nb]::before {
    content: "";
    display: inline-block;
    width: 0.5em;
    height: 0.5em;
    margin-right: 0.35em;
    border-radius: 50%;
    background: var(--barva-linka, #d7dde3);
    vertical-align: 0.05em;
}

.revize-zahlavi-polozka.je-zelena dt[b-ohoh5n54nb]::before { background: #2f7d4f; }
.revize-zahlavi-polozka.je-zluta dt[b-ohoh5n54nb]::before { background: #c08a12; }
.revize-zahlavi-polozka.je-cervena dt[b-ohoh5n54nb]::before { background: #b1442f; }

/* ── tabulka návrhů ───────────────────────────────────────────────────────────────────── */

.revize-prepinac[b-ohoh5n54nb] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    white-space: nowrap;
}

.revize-pasma[b-ohoh5n54nb] {
    display: inline-flex;
    gap: 0.35rem;
}

.revize-pasmo[b-ohoh5n54nb] {
    border: 1px solid var(--barva-linka, #d7dde3);
    border-radius: 999px;
    padding: 0.15rem 0.6rem;
    font-size: 0.8rem;
    background: transparent;
    cursor: pointer;
    white-space: nowrap;
}

.revize-pasmo-cervena[b-ohoh5n54nb] { border-color: #d8b0a6; color: #8a3423; }
.revize-pasmo-zluta[b-ohoh5n54nb] { border-color: #ddc68b; color: #7a5806; }

.revize-tabulka-karta[b-ohoh5n54nb] {
    min-width: 0;
}

/* Široká tabulka se posouvá UVNITŘ svého obalu — stránka se vodorovně nikdy neposouvá. */
.revize-tabulka[b-ohoh5n54nb] {
    font-size: 0.85rem;
}

.revize-tabulka tbody tr[b-ohoh5n54nb] {
    cursor: pointer;
}

.revize-tabulka tbody tr.je-cervena[b-ohoh5n54nb] { background: rgba(177, 68, 47, 0.06); }
.revize-tabulka tbody tr.je-zluta[b-ohoh5n54nb] { background: rgba(192, 138, 18, 0.06); }
.revize-tabulka tbody tr.je-vybrany[b-ohoh5n54nb] { outline: 2px solid var(--barva-akcent, #2f5d8a); outline-offset: -2px; }
.revize-tabulka tbody tr.je-zapsano[b-ohoh5n54nb] { opacity: 0.55; }

/* ZELENÝ RÁMEČEK = POTVRDIL ČLOVĚK. Váže se na opravu, ne na pásmo (SPEC §4.2 krok 5). */
.revize-tabulka tbody tr.je-opraveno td.revize-hodnota :is(input, .zpole)[b-ohoh5n54nb] {
    border-color: #2f7d4f;
    box-shadow: 0 0 0 1px #2f7d4f inset;
}

.revize-hodnota[b-ohoh5n54nb] {
    min-width: 11rem;
}

/* `.zpole` patří CisloPole/DatumPole — scoped CSS na ni nedosáhne bez ::deep, a její
   `flex: 1` by ve svislé buňce rostlo do VÝŠKY (ADR-0063 §8). */
.revize-hodnota[b-ohoh5n54nb]  .zpole {
    flex: 0 1 auto;
}

.revize-vstup[b-ohoh5n54nb] {
    width: 100%;
    box-sizing: border-box;
    padding: 0.2rem 0.35rem;
    border: 1px solid var(--barva-linka, #d7dde3);
    border-radius: 4px;
    font: inherit;
}

.revize-doslova[b-ohoh5n54nb] {
    display: block;
    font-size: 0.74rem;
    margin-top: 0.15rem;
}

.revize-pasmo-bunka[b-ohoh5n54nb] {
    max-width: 20rem;
}

.revize-znacka[b-ohoh5n54nb] {
    display: inline-block;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    font-size: 0.74rem;
    white-space: nowrap;
}

.revize-znacka.je-zelena[b-ohoh5n54nb] { background: rgba(47, 125, 79, 0.14); color: #245f3d; }
.revize-znacka.je-zluta[b-ohoh5n54nb] { background: rgba(192, 138, 18, 0.16); color: #7a5806; }
.revize-znacka.je-cervena[b-ohoh5n54nb] { background: rgba(177, 68, 47, 0.14); color: #8a3423; }

/* Důvod je VĚTA, ne procento (ADR-0038 platí dál) — a je to to hlavní, co se v buňce čte. */
.revize-duvod[b-ohoh5n54nb] {
    display: block;
    font-size: 0.76rem;
    line-height: 1.35;
    margin-top: 0.2rem;
    color: var(--barva-text-tlumeny, #6b7684);
}

.revize-odkud[b-ohoh5n54nb] {
    font-size: 0.78rem;
    color: var(--barva-text-tlumeny, #6b7684);
    white-space: nowrap;
}

/* ── patička s potvrzením ─────────────────────────────────────────────────────────────── */

.revize-patka[b-ohoh5n54nb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--barva-linka, #d7dde3);
    border-radius: 8px;
    background: var(--barva-plocha, #fff);
    position: sticky;
    bottom: 0;
}

.revize-patka-mezera[b-ohoh5n54nb] {
    flex: 1 1 auto;
}

/* Prázdný výchozí pohled je DOBRÁ zpráva, ne chybějící data — tak taky musí vypadat: věta
   a rovnou tlačítko, ne pokyn, co má člověk udělat. */
.revize-prazdno[b-ohoh5n54nb] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin: 0.75rem 0;
    color: var(--barva-text-tlumeny, #6b7684);
}
/* /Components/Pages/KeSchvaleni.razor.rz.scp.css */
/* FRONTA KE SCHVÁLENÍ (ADR-0076). Back office, tedy hustá tabulka (ADR-0049) — vzdušný
   klientský jazyk sem nepatří. */

.fronta-uvod[b-qbrw5jz1o7] {
    max-width: 62ch;
    margin: 0 0 1.1rem;
}

.fronta-odepreno[b-qbrw5jz1o7],
.fronta-prazdno[b-qbrw5jz1o7] {
    padding: 1rem 1.1rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background: var(--c-krem, #faf7f1);
    color: var(--barva-text-tlumeny, #6b6257);
}

.fronta-hlaska[b-qbrw5jz1o7] {
    margin: 0.6rem 0;
    padding: 0.55rem 0.8rem;
    border-left: 3px solid var(--c-zelena-tmava, #2f5d3a);
    background: rgba(47, 93, 58, 0.06);
    border-radius: 0 var(--radius) var(--radius) 0;
}

/* ── záložky pohledů ─────────────────────────────────────────────────────────────────── */

.fronta-listva[b-qbrw5jz1o7] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 0.7rem;
}

.fronta-zalozky[b-qbrw5jz1o7] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.fronta-zalozka[b-qbrw5jz1o7] {
    padding: 0.35rem 0.7rem;
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
    background: transparent;
    font: inherit;
    font-size: 0.85rem;
    color: inherit;
    cursor: pointer;
}

.fronta-zalozka:hover[b-qbrw5jz1o7] {
    border-color: var(--c-zelena-tmava, #2f5d3a);
}

.fronta-zalozka.je-aktivni[b-qbrw5jz1o7] {
    background: var(--c-zelena-tmava, #2f5d3a);
    border-color: var(--c-zelena-tmava, #2f5d3a);
    color: #fff;
}

/* ── tabulka ─────────────────────────────────────────────────────────────────────────── */

.fronta-stari[b-qbrw5jz1o7] {
    display: block;
    font-size: 0.76rem;
}

/* TŘI POČTY, ŽÁDNÉ ČÁSTKY. Fronta je obálka, ne obsah (ADR-0076 §3c) — barva tu nese
   pásmo jistoty, ne hodnotu. Vlastní třídy schválně: scoped CSS jiné komponenty na tuhle
   značku nedosáhne (ADR-0063 §8) a sdílet přes wwwroot by znamenalo, že se změna barvy
   v revizi tiše propíše i sem. */
.fronta-pasma[b-qbrw5jz1o7] {
    display: flex;
    gap: 0.3rem;
    white-space: nowrap;
}

.fronta-pasmo[b-qbrw5jz1o7] {
    display: inline-flex;
    min-width: 2ch;
    justify-content: center;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-variant-numeric: tabular-nums;
    font-size: 0.82rem;
}

.fronta-pasmo.je-zelena[b-qbrw5jz1o7] { background: rgba(47, 125, 79, 0.14); color: #245f3d; }
.fronta-pasmo.je-zluta[b-qbrw5jz1o7] { background: rgba(192, 138, 18, 0.16); color: #7a5806; }
.fronta-pasmo.je-cervena[b-qbrw5jz1o7] { background: rgba(177, 68, 47, 0.14); color: #8a3423; }

.fronta-akce[b-qbrw5jz1o7] {
    display: flex;
    gap: 0.35rem;
    white-space: nowrap;
}

/* ── vrácení klientovi ───────────────────────────────────────────────────────────────── */

/* Důvod se píše INLINE u řádku, kterého se týká — modální okna jsou zakázaná a text, který
   půjde klientovi před oči, se má psát tam, kde je vidět, čeho se týká. */
.fronta-vraceni[b-qbrw5jz1o7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0.2rem;
}

.fronta-vraceni label[b-qbrw5jz1o7] {
    font-size: 0.85rem;
    color: var(--barva-text-tlumeny, #6b6257);
}

.fronta-vraceni .pole[b-qbrw5jz1o7] {
    flex: 1 1 24rem;
    min-width: 16rem;
}

.fronta-vraceni-radek td[b-qbrw5jz1o7] {
    background: rgba(192, 138, 18, 0.06);
}
/* /Components/Pages/Majetek.razor.rz.scp.css */
/* Přehled majetku — JEN stránková specifika. Sdílené tvarosloví (hlavička, KPI,
   karty, tabulky, grafy, tečky svěžesti, položková buňka) žije v wwwroot/css/majetek.css.

   PRÁZDNÝ AŽ NA JEDNO PRAVIDLO (9. 8. 2026). Uvítání s Alfrédem, poslední dění, karta poradce
   i semafor doložitelnosti se přestěhovaly na Domů nebo zmizely podle srpnového mockupu —
   a jejich styly odešly s nimi. Ponechat je „pro jistotu" znamená CSS, které nikdo nečte
   a nikdo netroufne smazat. */

/* Rozestup pod řádkem dlaždic je jinde v majetek.css; tady zbývá jen odsazení karty grafu,
   kterou tahle stránka staví po svém (má vlastní rozsahy a filtr osoby). */
.mjt-graf-blok[b-dpgs97uiaj] { margin-top: 2px; }

/* Alfrédova jedna věta pod dlaždicemi (ADR-0040 ji vede jako „co se nesmí ztratit").
   Není to karta — je to řádek Alfrédovým hlasem mezi čísly a výhradou ke kurzu. */
.mjt-alfred-veta[b-dpgs97uiaj] {
    margin: 14px 0 4px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--mjt-brown-600);
    max-width: 96ch;
}

.mjt-alfred-veta strong[b-dpgs97uiaj] { color: var(--mjt-brown-700); }
/* /Components/Pages/MajetekDomu.razor.rz.scp.css */
/* DOMŮ — tvarosloví srpnového mockupu (snímek 01). Rozměry, rozestupy i barvy jsou z jeho
   tokenů; společné kusy (karta, KPI, dvojice, tabulka) žijí v majetek.css a tady se jen
   doplňuje to, co má jen tahle obrazovka. */

/* Pole na dotaz: v mockupu je to široká karta s kulatým odesílacím tlačítkem a návrhy pod ním.
   Rozměry z `.comp`/`.sendb` v šabloně: pole 14,5px bez rámečku, tlačítko 38×38 kulaté,
   pod polem linka oddělující návrhy (mockupová varianta `.comp.flat`). */
.dm-alf[b-2rv3btcoe8] { margin-bottom: 20px; }

.dm-dotaz[b-2rv3btcoe8] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--mjt-cream-200);
}

.dm-dotaz-vstup[b-2rv3btcoe8] {
    border: 0;
    outline: 0;
    background: transparent;
    width: 100%;
    min-width: 0;
    font: 400 14.5px var(--mjt-font-text);
    color: var(--mjt-brown-700);
    /* Prohlížeč kreslí `type=search` vlastní křížek a vnitřní odsazení — v mockupu tam není. */
    appearance: none;
}

.dm-dotaz-vstup[b-2rv3btcoe8]::placeholder { color: var(--mjt-brown-300); }
.dm-dotaz-vstup[b-2rv3btcoe8]::-webkit-search-cancel-button { appearance: none; }

.dm-dotaz-odeslat[b-2rv3btcoe8] {
    width: 38px;
    height: 38px;
    flex: none;
    border: 0;
    border-radius: 50%;
    background: var(--mjt-green-500);
    color: var(--mjt-brown-700);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color .15s var(--mjt-ease-out);
}

.dm-dotaz-odeslat:hover[b-2rv3btcoe8] { background: var(--mjt-green-600); }
.dm-dotaz-odeslat:focus-visible[b-2rv3btcoe8] { outline: 3px solid var(--mjt-green-700); outline-offset: 2px; }
.dm-dotaz-odeslat svg[b-2rv3btcoe8] { width: 17px; height: 17px; }

.dm-navrhy[b-2rv3btcoe8] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

.dm-navrh[b-2rv3btcoe8] {
    height: 30px;
    padding: 0 13px;
    border-radius: 999px;
    border: 1px solid var(--mjt-hairline);
    background: var(--mjt-white);
    color: var(--mjt-brown-500);
    font-size: 12.5px;
    font-family: inherit;
    cursor: pointer;
    transition: background .15s var(--mjt-ease-out), color .15s var(--mjt-ease-out);
}

.dm-navrh:hover[b-2rv3btcoe8] { background: var(--mjt-cream-100); color: var(--mjt-brown-700); }

/* Čtyři dlaždice: v mockupu jsou klikací a vedou do oblasti, o které mluví. */
.dm-dlazdice[b-2rv3btcoe8] { margin-bottom: 20px; }

.dm-dlazdice a.mjt-kpi[b-2rv3btcoe8] { text-decoration: none; transition: border-color .15s var(--mjt-ease-out); }
.dm-dlazdice a.mjt-kpi:hover[b-2rv3btcoe8] { border-color: var(--mjt-green-400); }

/* Dlaždice bez čísla (výkonnost) — nesmí vypadat jako klikací, nikam nevede. */
.dm-kpi-nic .mjt-kpi-v[b-2rv3btcoe8] { color: var(--mjt-brown-300); }

/* ── Vyžaduje vaši pozornost ──────────────────────────────────────────────── */

.dm-att[b-2rv3btcoe8] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }

.dm-att li[b-2rv3btcoe8] {
    display: grid;
    grid-template-columns: 30px 1fr auto;
    align-items: center;
    gap: 13px;
    padding: 11px 0;
    border-bottom: 1px solid var(--mjt-hairline);
}

.dm-att li:last-child[b-2rv3btcoe8] { border-bottom: 0; }

.dm-att-i[b-2rv3btcoe8] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--mjt-cream-200);
    display: block;
    position: relative;
}

.dm-att-i[b-2rv3btcoe8]::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--mjt-brown-300);
}

.dm-att-i.je-alarm[b-2rv3btcoe8] { background: rgba(168, 65, 44, .12); }
.dm-att-i.je-alarm[b-2rv3btcoe8]::after { background: var(--mjt-danger); }
.dm-att-i.je-vyzva[b-2rv3btcoe8] { background: rgba(200, 135, 31, .14); }
.dm-att-i.je-vyzva[b-2rv3btcoe8]::after { background: var(--mjt-warning); }
.dm-att-i.je-info[b-2rv3btcoe8] { background: var(--mjt-green-100); }
.dm-att-i.je-info[b-2rv3btcoe8]::after { background: var(--mjt-green-600); }

.dm-att-t[b-2rv3btcoe8] { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.dm-att-h[b-2rv3btcoe8] { font-size: 13.5px; font-weight: 600; color: var(--mjt-brown-700); }
.dm-att-s[b-2rv3btcoe8] { font-size: 12px; color: var(--mjt-brown-400); }

/* ── Nadcházející termíny ─────────────────────────────────────────────────── */

.dm-crow[b-2rv3btcoe8] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }

.dm-crow li[b-2rv3btcoe8] {
    display: grid;
    grid-template-columns: 38px 1fr auto;
    align-items: center;
    gap: 13px;
    padding: 10px 0;
    border-bottom: 1px solid var(--mjt-hairline);
}

.dm-crow li:last-child[b-2rv3btcoe8] { border-bottom: 0; }

.dm-crow-d[b-2rv3btcoe8] { display: flex; flex-direction: column; align-items: center; line-height: 1.1; }
.dm-crow-d b[b-2rv3btcoe8] { font-family: var(--mjt-font-cisla); font-size: 17px; color: var(--mjt-brown-700); }
.dm-crow-d i[b-2rv3btcoe8] {
    font-style: normal;
    font-size: 10px;
    letter-spacing: .08em;
    color: var(--mjt-brown-400);
}

.dm-crow-t[b-2rv3btcoe8] { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.dm-crow-t .mjt-hn[b-2rv3btcoe8] { text-decoration: none; }
.dm-crow-m[b-2rv3btcoe8] { font-size: 11.5px; color: var(--mjt-brown-400); }
.dm-crow-m em[b-2rv3btcoe8] { font-style: normal; letter-spacing: .08em; font-size: 10.5px; }

.dm-crow-p[b-2rv3btcoe8] {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--mjt-brown-500);
    background: var(--mjt-cream-200);
    border-radius: 999px;
    padding: 4px 10px;
    white-space: nowrap;
}

.dm-crow-p.je-po[b-2rv3btcoe8] { background: rgba(168, 65, 44, .12); color: var(--mjt-danger); }

.dm-pozn[b-2rv3btcoe8] { display: block; margin-top: 14px; line-height: 1.55; }

/* ── Co je nového ─────────────────────────────────────────────────────────── */

.dm-actv[b-2rv3btcoe8] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }

.dm-actv li[b-2rv3btcoe8] {
    display: grid;
    grid-template-columns: 16px 1fr auto;
    align-items: center;
    gap: 11px;
    padding: 9px 0;
    border-bottom: 1px solid var(--mjt-hairline);
    font-size: 13px;
}

.dm-actv li:last-child[b-2rv3btcoe8] { border-bottom: 0; }
.dm-actv-i[b-2rv3btcoe8] { width: 16px; height: 16px; color: var(--mjt-brown-300); }
.dm-actv-t[b-2rv3btcoe8] { color: var(--mjt-brown-600); }
.dm-actv-s[b-2rv3btcoe8] { color: var(--mjt-brown-400); font-size: 11.5px; white-space: nowrap; }

/* ── Váš poradce ──────────────────────────────────────────────────────────── */

.dm-adv[b-2rv3btcoe8] {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: var(--mjt-cream-50);
    border: 1px solid var(--mjt-green-300);
    border-radius: var(--mjt-radius-md);
    padding: 15px;
}

.dm-adv-mono[b-2rv3btcoe8] {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--mjt-green-500);
    color: var(--mjt-brown-800);
    display: grid;
    place-items: center;
    font-weight: 700;
    font-size: 14px;
}

.dm-adv-t[b-2rv3btcoe8] { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.dm-adv-jmeno[b-2rv3btcoe8] { font-size: 14.5px; font-weight: 600; color: var(--mjt-brown-700); }
.dm-adv-role[b-2rv3btcoe8] { font-size: 12.5px; color: var(--mjt-brown-400); }
.dm-adv-akce[b-2rv3btcoe8] { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }

/* ── Rychlé akce ──────────────────────────────────────────────────────────── */

.dm-qat[b-2rv3btcoe8] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.dm-qa[b-2rv3btcoe8] {
    display: flex;
    flex-direction: column;
    gap: 11px;
    padding: 15px;
    border: 1px solid var(--mjt-hairline);
    border-radius: var(--mjt-radius-md);
    background: var(--mjt-white);
    color: var(--mjt-brown-700);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: border-color .15s var(--mjt-ease-out), background .15s var(--mjt-ease-out);
}

.dm-qa:hover[b-2rv3btcoe8] { border-color: var(--mjt-green-400); background: var(--mjt-cream-50); }

/* Ikona přichází z MajetekIkony (24×24, kreslená tahem) — velikost řídí tenhle obal.
   POZOR: `::deep`, ne `:global()`. Blazor zná jen ::deep; :global(svg) nechá být a přilepí
   za něj značku scope, takže prohlížeč pravidlo beze slova zahodí (nález 9. 8. 2026). */
.dm-qa-i[b-2rv3btcoe8]  svg { width: 19px; height: 19px; color: var(--mjt-green-700); }

/* Návrhové otázky jsou odkazy (ne tlačítka formuláře) — musí proto vypadat jako chipy. */
a.dm-navrh[b-2rv3btcoe8] { display: inline-flex; align-items: center; text-decoration: none; }
/* /Components/Pages/MajetekLide.razor.rz.scp.css */
/* Lidé a vazby — JEN stránková specifika; tvarosloví kryje wwwroot/css/majetek.css (.mjt).

   RODOKMEN SE ODSTĚHOVAL DO GLOBÁLNÍHO majetek.css (9. 8. 2026). Scéna se stala sdílenou
   komponentou (visí i na „Rodina a ústava") a scoped CSS na cizí komponentu NEDOSÁHNE —
   pravidla tu zůstala, ale platit přestala: legenda se vykreslila jako odrážkový seznam
   a strom ztratil svoji šířku. Pozná se to jedině screenshotem. */

/* Mezinadpis generace uvnitř tabulky — pruh, který dělí rodinu po patrech. */
.lid-radek-generace th[b-zgigmhhg02] {
    text-align: left;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--mjt-brown-400);
    background: var(--mjt-cream-50);
    padding: 8px 10px;
    border-bottom: 1px solid var(--mjt-hairline);
}
/* /Components/Pages/MajetekLikvidita.razor.rz.scp.css */
/* Rozpad majetku podle zpeněžitelnosti — jednoduché pruhy, ne koláč: je to ŽEBŘÍČEK
   (od nejlikvidnějšího po nelikvidní), a pořadí je tu důležitější než podíl na celku. */

.lk-rozpad[b-h436dlusws] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }

.lk-rozpad li[b-h436dlusws] {
    display: grid;
    grid-template-columns: 160px 1fr auto 52px;
    align-items: center;
    gap: 14px;
    padding: 10px 0;
    border-bottom: 1px solid var(--mjt-hairline);
    font-size: 13px;
}

.lk-rozpad li:last-child[b-h436dlusws] { border-bottom: 0; }

.lk-nazev[b-h436dlusws] { color: var(--mjt-brown-700); font-weight: 500; }

.lk-pruh[b-h436dlusws] {
    height: 9px;
    border-radius: 999px;
    background: var(--mjt-cream-200);
    overflow: hidden;
}

.lk-pruh i[b-h436dlusws] { display: block; height: 100%; background: var(--mjt-green-500); }

.lk-castka[b-h436dlusws] { color: var(--mjt-brown-600); text-align: right; white-space: nowrap; }
.lk-pct[b-h436dlusws] { color: var(--mjt-brown-400); text-align: right; }

@media (max-width: 900px) {
    .lk-rozpad li[b-h436dlusws] { grid-template-columns: 1fr auto; }
    .lk-pruh[b-h436dlusws] { grid-column: 1 / -1; }
}
/* /Components/Pages/MajetekNahlaseni.razor.rz.scp.css */
/* Nahlášení — JEN stránková specifika (formulář). Sdílené tvarosloví (drobečky,
   hlavička, karta, odkaz, fokus prsten tlačítek) žije v wwwroot/css/majetek.css (.mjt). */

/* Jediný zápisový bod klientské tváře — karta zůstává úzká, ať se čte jako dopis. */
.nhl-karta[b-jpcbvpl40l] { max-width: 640px; }

.nhl-popisek[b-jpcbvpl40l] {
    display: block;
    font-size: 10.5px;
    letter-spacing: .13em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--mjt-brown-400);
    margin: 16px 0 6px;
}

.nhl-popisek:first-child[b-jpcbvpl40l] { margin-top: 0; }

/* Vstupy renderují Input* KOMPONENTY (InputText/InputSelect/InputTextArea) — jejich
   elementy nedostanou scoped atribut stránky, proto ::deep od karty dolů. */
.nhl-karta[b-jpcbvpl40l]  .nhl-vstup {
    width: 100%;
    box-sizing: border-box;
    padding: 9px 12px;
    font: inherit;
    font-size: 14px;
    color: var(--mjt-brown-900);
    background: var(--mjt-cream-100);
    border: 1px solid var(--mjt-hairline);
    border-radius: var(--mjt-radius-sm);
}

/* Sdílený fokus prsten kryje jen a/button/[tabindex] — vstupy si ho nesou samy. */
.nhl-karta[b-jpcbvpl40l]  .nhl-vstup:focus-visible {
    outline: none;
    box-shadow: var(--mjt-focus);
    border-color: var(--mjt-green-700);
}

.nhl-karta[b-jpcbvpl40l]  select.nhl-vstup { width: auto; min-width: 260px; }

.nhl-karta[b-jpcbvpl40l]  .nhl-popis { resize: vertical; min-height: 110px; }

.nhl-hlaska[b-jpcbvpl40l] { margin: 14px 0 0; font-size: 13px; color: var(--mjt-danger); }

.nhl-akce[b-jpcbvpl40l] {
    margin-top: 20px;
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

/* Primární (zelené) tlačítko sdílený slovník nemá — mjt-akce-btn je tichá sekundární
   akce v hlavičce; odeslání hlášení si zaslouží plný brand akcent, proto stránkové. */
.nhl-tlacitko[b-jpcbvpl40l] {
    display: inline-block;
    padding: 9px 18px;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    color: var(--mjt-brown-900);
    background: var(--mjt-green-500);
    border: none;
    border-radius: var(--mjt-radius-sm);
    text-decoration: none;
    cursor: pointer;
    transition: filter var(--mjt-dur-fast) var(--mjt-ease-out);
}

.nhl-tlacitko:hover[b-jpcbvpl40l] { filter: brightness(1.05); }

.nhl-pozn[b-jpcbvpl40l] { font-size: 12px; color: var(--mjt-brown-400); }

/* Text brány i poděkování — delší věta v kartě, klidné řádkování. */
.nhl-text[b-jpcbvpl40l] { margin: 0; font-size: 15px; color: var(--mjt-brown-600); line-height: 1.55; }
/* /Components/Pages/MajetekNemovitosti.razor.rz.scp.css */
/* Nemovitosti — vše kryje sdílený slovník wwwroot/css/majetek.css (.mjt);
   dřívější 339řádková kopie tvarosloví zrušena (ADR-0041). */
/* /Components/Pages/MajetekOsoba.razor.rz.scp.css */
/* Karta osoby — JEN stránková specifika; tvarosloví kryje wwwroot/css/majetek.css (.mjt). */

/* Nedílná společenství — seznam s názvem a členy pod sebou. */
.osb-spolecenstvi[b-3cmyn8qqjl] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.osb-spolecenstvi li[b-3cmyn8qqjl] { display: flex; flex-direction: column; gap: 2px; }
.osb-spolecenstvi-nazev[b-3cmyn8qqjl] { font-weight: 600; color: var(--mjt-brown-700); font-size: 13.5px; }
/* /Components/Pages/MajetekPolozka.razor.rz.scp.css */
/* Karta položky — JEN stránková specifika; tvarosloví kryje wwwroot/css/majetek.css (.mjt). */

/* Hlavička s ilustrovaným portrétem položky. */
.mjt-hlava-s-ikonou[b-zc0k904wau] { align-items: center; }

.mjt-portret[b-zc0k904wau] {
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    border-radius: 14px;
    border: 1px solid var(--mjt-hairline);
    background: var(--mjt-white);
    align-self: flex-start;
    margin-top: 14px;
}

/* Menší hodnota KPI (jméno vlastníka, datum) — ať se vejde na řádek. */
/* `.mjt-kpi-v.mensi` se odstěhovalo do wwwroot/css/majetek.css (9. 8. 2026): používají
   ho tři obrazovky a scoped CSS na ně nedosáhne — na Reportech se dlouhý název reportu
   vysypal přes sousední dlaždice, protože pravidlo tam neplatilo. */

/* Doklad hodnoty — klíč/hodnota dvojice. */
.mjt-doklad-radky[b-zc0k904wau] { margin: 0; display: flex; flex-direction: column; gap: 9px; }

.mjt-doklad-radky > div[b-zc0k904wau] {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 12px;
    font-size: 13px;
}

.mjt-doklad-radky dt[b-zc0k904wau] { color: var(--mjt-brown-400); }
.mjt-doklad-radky dd[b-zc0k904wau] { margin: 0; color: var(--mjt-brown-700); font-weight: 500; }

/* Kódové hodnoty identifikátorů. */
.mjt-td-kod[b-zc0k904wau] { font-family: ui-monospace, "Cascadia Mono", Menlo, monospace; font-size: 12px; }
/* /Components/Pages/MajetekZavazky.razor.rz.scp.css */
/* Závazky — vše kryje sdílený slovník wwwroot/css/majetek.css (.mjt);
   dřívější kopie tvarosloví zrušena (ADR-0041). */
/* /Components/Pages/NahledKlienta.razor.rz.scp.css */
/* Náhled klienta — výběr rodiny (ADR-0037). Renderuje se v back-office shellu (.bo-clanek),
   proto přebírá jeho tokeny (--text, --surface, --border, --accent…) s fallbacky. */

.nk-karta[b-25wnd7gkua] {
    max-width: 640px;
    background: var(--surface, #fff);
    border: 1px solid var(--border, #e3ddd0);
    border-radius: var(--r, 7px);
    padding: 1.5rem 1.75rem;
}

.nk-karta h1[b-25wnd7gkua] {
    margin: 0 0 0.5rem;
    font-size: 1.35rem;
    color: var(--text, #211d17);
}

.nk-hint[b-25wnd7gkua] {
    margin: 0 0 1.25rem;
    color: var(--text-dim, #615a4e);
    line-height: 1.55;
    font-size: 0.92rem;
}

.nk-prazdno[b-25wnd7gkua] {
    margin: 0;
    color: var(--text-mute, #948c7e);
    font-style: italic;
}

.nk-seznam[b-25wnd7gkua] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.nk-radek[b-25wnd7gkua] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--border, #e3ddd0);
    border-radius: var(--r-sm, 5px);
    background: var(--surface-2, #faf8f2);
    text-decoration: none;
    color: var(--text, #211d17);
    transition: border-color 0.15s, background-color 0.15s;
}

.nk-radek:hover[b-25wnd7gkua],
.nk-radek:focus-visible[b-25wnd7gkua] {
    border-color: var(--accent, #5F6E00);
    background: var(--accent-weak, #eef1dc);
}

.nk-nazev[b-25wnd7gkua] {
    font-weight: 600;
}

.nk-akce[b-25wnd7gkua] {
    flex: none;
    font-size: 0.82rem;
    color: var(--accent-strong, #4b5600);
    white-space: nowrap;
}
/* /Components/Pages/Nastenka.razor.rz.scp.css */
/* Nástěnka poradce — 1:1 s návrhem (mockup `isDash`, 20. 8. 2026). Míry opsané z návrhu,
   ne odhadnuté: dlaždice `.mst`, mřížka `g2` 1.35fr/1fr, karty `.c .c-pad` (bílá, radius-lg,
   stín), řádky proudu `.hrow` s časem vpravo v číslicovém řezu (`.cts`). */

.ns[b-lmvu1hj3ld] { display: block; }

/* ===== dlaždice metrik (návrh `.mrow`/`.mst`) ===== */
.ns-metriky[b-lmvu1hj3ld] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 14px; }
.ns-metrika[b-lmvu1hj3ld] {
    display: block; background: var(--white); border: 1px solid var(--border-hairline);
    border-radius: var(--radius-md); padding: 14px 16px; text-align: left;
    box-shadow: var(--shadow-xs); text-decoration: none;
}
a.ns-metrika:hover[b-lmvu1hj3ld] { border-color: var(--brown-300); text-decoration: none; }
.ns-metrika-l[b-lmvu1hj3ld] { font-size: var(--text-sm); color: var(--brown-400); }
.ns-metrika-v[b-lmvu1hj3ld] { font-weight: 700; font-size: 27px; color: var(--brown-700); margin-top: 7px; line-height: 1; letter-spacing: -.01em; }
.ns-metrika-s[b-lmvu1hj3ld] { font-size: var(--text-sm); margin-top: 7px; color: var(--brown-400); }
@media (max-width: 1100px) { .ns-metriky[b-lmvu1hj3ld] { grid-template-columns: repeat(2, 1fr); } }

/* ===== mřížka karet (návrh `.g2`) =====
   Řada „Čeká na mě | Aktivita" drží návrhový poměr 1.35:1. */
.ns-g2[b-lmvu1hj3ld] { display: grid; gap: 14px; align-items: start; margin-bottom: 14px; }
.ns-g2.je-hlavni[b-lmvu1hj3ld] { grid-template-columns: 1.35fr 1fr; }
@media (max-width: 1100px) { .ns-g2.je-hlavni[b-lmvu1hj3ld] { grid-template-columns: 1fr; } }

/* Spisové karty: DVA NEZÁVISLÉ SLOUPCE, ne řádková mřížka — řádek mřížky je vysoký jako
   vyšší z dvojice, takže pod krátkou kartou zela díra až po konec vysoké karty vedle
   (nález uživatele 20. 8. 2026). Ve sloupci začíná karta hned pod svou předchozí. */
.ns-sloupce[b-lmvu1hj3ld] { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; margin-bottom: 14px; }
.ns-sloupec[b-lmvu1hj3ld] { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
@media (max-width: 1100px) { .ns-sloupce[b-lmvu1hj3ld] { grid-template-columns: 1fr; } }

/* ===== karta (návrh `.c .c-pad`) ===== */
.ns-karta[b-lmvu1hj3ld] {
    background: var(--white); border: 1px solid var(--border-hairline);
    border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
    padding: 15px 17px;
}
.ns-karta-hh[b-lmvu1hj3ld] { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.ns-karta-h[b-lmvu1hj3ld] { margin: 0; font-family: var(--font-body); font-weight: 700; font-size: 17px; letter-spacing: -.01em; color: var(--brown-700); }
.ns-karta-pozn[b-lmvu1hj3ld] { font-size: var(--text-sm); }
.ns-karta-pata[b-lmvu1hj3ld] { margin: 10px 0 0; font-size: var(--text-2xs); }
.ns-prazdno[b-lmvu1hj3ld] { margin: 0; font-size: var(--text-sm); color: var(--brown-400); }

/* ===== řádek proudu (návrh `.hrow` + `.cts`) ===== */
.ns-hrow[b-lmvu1hj3ld] {
    display: grid; grid-template-columns: 1fr auto; gap: 14px;
    font-size: var(--text-sm); padding: 9.5px 0;
    border-bottom: 1px solid var(--cream-200); color: var(--brown-500);
    text-decoration: none;
}
.ns-hrow:last-of-type[b-lmvu1hj3ld] { border-bottom: 0; }
a.ns-hrow:hover[b-lmvu1hj3ld] { background: var(--cream-50); text-decoration: none; }
.ns-hrow b[b-lmvu1hj3ld] { color: var(--brown-700); }
.ns-hrow.je-nove b[b-lmvu1hj3ld]::before { content: "●"; color: var(--green-600); font-size: 8px; margin-right: 6px; vertical-align: 2px; }
.ns-cts[b-lmvu1hj3ld] { font-size: var(--text-xs); color: var(--brown-300); white-space: nowrap; }

/* Datum termínu — barvou nese závažnost (crit/warn z tokenů stavů). */
.ns-termin[b-lmvu1hj3ld] { font-weight: 600; margin-right: 4px; }
.ns-termin.je-crit[b-lmvu1hj3ld] { color: var(--danger); }
.ns-termin.je-warn[b-lmvu1hj3ld] { color: var(--warning); }
.ns-termin.je-mute[b-lmvu1hj3ld] { color: var(--brown-400); }

/* ===== tabulka „Čeká na mě" (návrh `.tb`, tytéž míry jako backlog) ===== */
.ns-tb-posuv[b-lmvu1hj3ld] { overflow-x: auto; }
.ns-tb[b-lmvu1hj3ld] { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.ns-tb th[b-lmvu1hj3ld] { text-align: left; font-size: var(--text-xs); font-weight: 600; color: var(--brown-400); padding: 7px 10.5px; border-bottom: 1px solid var(--border-hairline); white-space: nowrap; }
.ns-tb td[b-lmvu1hj3ld] { padding: 7px 10.5px; border-bottom: 1px solid var(--cream-200); color: var(--brown-600); white-space: nowrap; vertical-align: middle; }
.ns-tb tbody tr:last-child td[b-lmvu1hj3ld] { border-bottom: 0; }
.ns-radek-tiketu[b-lmvu1hj3ld] { cursor: pointer; }
.ns-radek-tiketu:hover td[b-lmvu1hj3ld] { background: var(--cream-50); }
.ns-tb .th-druh[b-lmvu1hj3ld] { width: 44px; }
.ns-tb .th-id[b-lmvu1hj3ld] { width: 90px; }
.ns-tb .th-stav[b-lmvu1hj3ld] { width: 123px; }
.ns-tb .th-prio[b-lmvu1hj3ld] { width: 102px; }
.ns-tb .td-nazev[b-lmvu1hj3ld] { white-space: normal; }
.ns-tt[b-lmvu1hj3ld] { font-weight: 600; color: var(--brown-700); }

.ns-kchip[b-lmvu1hj3ld] { display: inline-flex; align-items: center; height: 21px; padding: 0 7px; border-radius: var(--radius-sm); font-size: var(--text-2xs); font-weight: 700; letter-spacing: .04em; color: var(--white); }
.ns-kchip.je-user_story[b-lmvu1hj3ld] { background: var(--green-700); }
.ns-kchip.je-chyba[b-lmvu1hj3ld] { background: var(--danger); }
.ns-kchip.je-feature_request[b-lmvu1hj3ld] { background: var(--brown-500); }

.ns-cid[b-lmvu1hj3ld] { font-size: var(--text-xs); font-weight: 700; color: var(--brown-300); white-space: nowrap; }

.ns-bal[b-lmvu1hj3ld] { display: inline-flex; align-items: center; padding: 4.5px 13px; border-radius: var(--radius-pill); font-size: var(--text-xs); font-weight: 600; white-space: nowrap; background: var(--cream-200); color: var(--brown-500); }
/* BARVY ZE ČÍSELNÍKU `STAVY` — jeden zdroj (`--stav-bg`/`--stav-ink` v backoffice-mock.css,
   značka `je-stav-*`). Do 20. 8. 2026 tu byla vlastní kopie týchž hexů; kopie se nerozešly
   jen náhodou. */
.ns-bal[class*="je-stav-"][b-lmvu1hj3ld] { background: var(--stav-bg); color: var(--stav-ink); }

.ns-lp[b-lmvu1hj3ld] { display: inline-flex; align-items: center; gap: 7px; color: var(--brown-500); }
.ns-pdot[b-lmvu1hj3ld] { width: 9.5px; height: 9.5px; border-radius: 50%; flex: 0 0 auto; }
.ns-pdot.je-kriticka[b-lmvu1hj3ld] { background: var(--danger); }
.ns-pdot.je-vysoka[b-lmvu1hj3ld] { background: var(--warning); }
.ns-pdot.je-stredni[b-lmvu1hj3ld] { background: var(--brown-400); }
.ns-pdot.je-nizka[b-lmvu1hj3ld] { background: var(--brown-300); }
/* /Components/Pages/Odhlaseni.razor.rz.scp.css */
/* ==========================================================================
   Odhlašovací (rozlučková) stránka — Alfréd
   Symetrie s Prihlaseni.razor.css vč. scény, mimiky a typewriteru (Alfréd rozlučku říká).
   Scoped CSS — platí jen pro Odhlaseni.razor, proto se sdílené vizuální třídy
   (pl-*) redeklarují zde (Blazor scoped CSS je izolované per komponenta).
   ========================================================================== */

/* --- Základní shell stránky -------------------------------------------- */
.pl-stranka[b-4uwnagswy5] {
    position: relative;
    min-height: 100svh;
    background-color: var(--c-bila);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1.5rem, 4vw, 3rem) clamp(1rem, 4vw, 2.5rem);
    box-sizing: border-box;
    overflow: hidden;
}

/* --- Scéna „pozorný komorník": paralaxní vrstvy ------------------------- */
/* Přesah -3 % kryje okraje při posunu vrstvy za kurzorem (alfred-scena.js). */
.pl-vrstva[b-4uwnagswy5] {
    position: absolute;
    inset: -3%;
    pointer-events: none;
    will-change: transform;
}

/* Zadní rovina: krémový gradientový závoj + dva světelné paprsky mířící na Alfréda. */
.pl-vrstva-zadni[b-4uwnagswy5] {
    z-index: 1;
    background:
        radial-gradient(90rem 60rem at 72% -12%, #FBF8F1 0%, transparent 60%),
        radial-gradient(70rem 50rem at 8% 112%, #EDE5D6 0%, transparent 55%),
        linear-gradient(160deg, #F8F4EB 0%, #F4EFE7 55%, #EFE8DA 100%);
}

.pl-vrstva-zadni[b-4uwnagswy5]::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(115deg, transparent 40%, rgba(255, 252, 240, 0.55) 46%, transparent 53%),
        linear-gradient(115deg, transparent 60%, rgba(255, 252, 240, 0.35) 65%, transparent 71%);
    animation: pl-paprsky-b-4uwnagswy5 12s ease-in-out infinite alternate;
}

@keyframes pl-paprsky-b-4uwnagswy5 {
    from { opacity: 0.35; }
    to   { opacity: 0.65; }
}

/* Přední rovina: viněta + prach ve světle — jede rychleji než pozadí (hloubka). */
.pl-vrstva-predni[b-4uwnagswy5] {
    z-index: 15;
}

.pl-vineta[b-4uwnagswy5] {
    position: absolute;
    inset: 0;
    background: radial-gradient(120% 90% at 50% 42%, transparent 58%, rgba(63, 47, 36, 0.09) 100%);
}

.pl-prach[b-4uwnagswy5] {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

/* Zrnka plní alfred-scena.js (náhodná pozice/tempo přes inline styl; JS-vytvořené
   elementy nemají scope atribut Blazoru → nutné ::deep). */
.pl-prach[b-4uwnagswy5]  .pl-prach-zrno {
    position: absolute;
    bottom: -2%;
    border-radius: 50%;
    background: rgba(255, 250, 235, 0.85);
    box-shadow: 0 0 6px rgba(255, 248, 225, 0.8);
    opacity: 0;
    animation-name: pl-zrno-stoupa-b-4uwnagswy5;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

@keyframes pl-zrno-stoupa-b-4uwnagswy5 {
    0%   { transform: translateY(0); opacity: 0; }
    8%   { opacity: 0.55; }
    85%  { opacity: 0.25; }
    100% { transform: translateY(-105vh); opacity: 0; }
}

/* Filmové zrno přes celou scénu — tlumí banding gradientů (na projektoru znát). */
.pl-zrno[b-4uwnagswy5] {
    position: absolute;
    inset: 0;
    z-index: 16;
    pointer-events: none;
    opacity: 0.05;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}

@media (prefers-reduced-motion: reduce) {
    .pl-vrstva-zadni[b-4uwnagswy5]::before { animation: none; opacity: 0.45; }
    .pl-prach[b-4uwnagswy5] { display: none; }
}

/* --- Logo v levém horním rohu ------------------------------------------ */
.pl-logo[b-4uwnagswy5] {
    position: absolute;
    top: clamp(1.25rem, 3vw, 2rem);
    left: clamp(1.25rem, 4vw, 3rem);
    z-index: 30;
    display: inline-flex;
    align-items: center;
    transition: opacity 220ms ease;
}

.pl-logo:hover[b-4uwnagswy5] { opacity: 0.75; }

.pl-logo img[b-4uwnagswy5] {
    height: 48px;
    width: auto;
    display: block;
}

/* --- Vodoznak stromu (vlevo dole, jemný) -------------------------------- */
.pl-vodoznak[b-4uwnagswy5] {
    position: fixed;
    left: -4%;
    bottom: -6%;
    width: min(480px, 50vw);
    height: min(480px, 50vw);
    background-image: url("/brand/Cimpel_ikona_strom_RGB.svg");
    background-repeat: no-repeat;
    background-position: bottom left;
    background-size: contain;
    opacity: 0.07;   /* zesílen do světla scény */
    pointer-events: none;
    z-index: 2;      /* nad zadní gradientovou vrstvou (1), pod obsahem (10) */
}

/* --- Skupina: Alfréd + karta -------------------------------------------- */
.pl-skupina[b-4uwnagswy5] {
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: clamp(2rem, 5vw, 4rem);
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
}

/* --- Pravý sloupec: identita NAD kartou --------------------------------- */
.pl-pravy-sloupec[b-4uwnagswy5] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: clamp(0.85rem, 1.6vw, 1.25rem);
    width: clamp(300px, 33vw, 420px);
}

/* --- Hero kontejner ----------------------------------------------------- */
.pl-hero[b-4uwnagswy5] {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    flex: 0 1 auto;
}

.pl-hero-wrap[b-4uwnagswy5] {
    position: relative;
    display: inline-flex;
    align-items: flex-end;
    justify-content: center;
    line-height: 0;
    --pl-img-w: min(45vw, 49.12vh);
    animation: pl-dech-b-4uwnagswy5 4.5s ease-in-out infinite alternate;
    transform-origin: bottom center;
}

@keyframes pl-dech-b-4uwnagswy5 {
    from { transform: scale(1) translateY(0); }
    to   { transform: scale(1.006) translateY(-1.5px); }
}

@media (prefers-reduced-motion: reduce) {
    .pl-hero-wrap[b-4uwnagswy5] { animation: none; }
}

/* --- Vizitka na táci ----------------------------------------------------- */
.pl-tac-stitek[b-4uwnagswy5] {
    position: absolute;
    left: 66.8%;
    width: 23%;
    top: 30%;
    height: 6%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    text-align: center;
    pointer-events: none;
    z-index: 5;
}

.pl-tac-strom[b-4uwnagswy5] {
    width: calc(var(--pl-img-w) * 0.028);
    height: auto;
    display: block;
    margin-bottom: 0.12em;
    opacity: 0.9;
}

.pl-tac-radek[b-4uwnagswy5] {
    font-family: var(--font-nadpis);
    font-size: calc(var(--pl-img-w) * 0.04);
    line-height: 1.05;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--barva-akcent);
    white-space: nowrap;
}

/* --- Alfréd (obrázek) --------------------------------------------------- */
.pl-alfred[b-4uwnagswy5] {
    display: block;
    width: auto;
    max-height: 88vh;
    max-width: 45vw;
    object-fit: contain;
    object-position: bottom center;

    animation: alfred-appear-b-4uwnagswy5 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) both;
    transform-origin: bottom center;
    will-change: opacity;
}

@keyframes alfred-appear-b-4uwnagswy5 {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .pl-alfred[b-4uwnagswy5] { animation: none; }
}

/* Vrstva A drží rozměr (in-flow); vrstva B je překryv pro plynulé prolnutí (crossfade). */
.pl-alfred-b[b-4uwnagswy5] {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    animation: none;
    transition: opacity 140ms linear;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .pl-alfred-b[b-4uwnagswy5] { transition: none; }
}

/* --- Rozlučková karta --------------------------------------------------- */
.pl-karta[b-4uwnagswy5] {
    width: 100%;
    box-sizing: border-box;

    background-color: rgba(244, 239, 231, 0.97);
    border: 1px solid rgba(89, 67, 52, 0.10);
    border-radius: 20px;
    box-shadow:
        0 2px 4px rgba(63, 47, 36, 0.04),
        0 12px 40px rgba(63, 47, 36, 0.10),
        0 2px 0 rgba(255,255,255,0.9) inset;
    padding: clamp(1.5rem, 3vw, 2.25rem);

    animation: pl-karta-in-b-4uwnagswy5 1.1s cubic-bezier(0.22, 0.61, 0.36, 1) 0.2s both;
    z-index: 20;

    position: relative;
    transform: perspective(1100px)
        rotateX(var(--pl-tilt-x, 0deg))
        rotateY(var(--pl-tilt-y, 0deg));
    transition: transform 180ms ease;
}

.pl-karta[b-4uwnagswy5]::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(105deg,
        transparent calc(var(--pl-lesk-x, 50%) - 12%),
        rgba(255, 255, 255, 0.16) var(--pl-lesk-x, 50%),
        transparent calc(var(--pl-lesk-x, 50%) + 12%));
    opacity: 0;
    transition: opacity 240ms ease;
    pointer-events: none;
}

.pl-karta:hover[b-4uwnagswy5]::after { opacity: 1; }

@keyframes pl-karta-in-b-4uwnagswy5 {
    from { opacity: 0; transform: translateY(12px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0)    scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .pl-karta[b-4uwnagswy5] { animation: none; }
}

/* --- Hlavička: nadpis „Alfréd" + podtitulek ----------------------------- */
.pl-hlavicka[b-4uwnagswy5] {
    margin: 0;
    padding: 0 0.15rem;
    animation: pl-hlavicka-in-b-4uwnagswy5 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) 0.35s both;
}

@keyframes pl-hlavicka-in-b-4uwnagswy5 {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .pl-hlavicka[b-4uwnagswy5] { animation: none; }
}

.pl-nazev[b-4uwnagswy5] {
    font-family: var(--font-nadpis);
    font-size: clamp(2.15rem, 3.6vw, 2.8rem);
    font-weight: 700;
    line-height: 1.0;
    letter-spacing: -0.015em;
    color: var(--c-hneda-tmava);
    margin: 0 0 0.35rem;
}

.pl-podtitulek[b-4uwnagswy5] {
    font-family: var(--font-text);
    font-size: clamp(1rem, 1.7vw, 1.18rem);
    font-weight: 500;
    line-height: 1.4;
    color: var(--barva-text-tlumeny);
    margin: 0;
}

/* --- Kicker (Family Office) --------------------------------------------- */
.pl-kicker[b-4uwnagswy5] {
    display: inline-block;
    font-family: var(--font-text);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--barva-akcent-text);
    margin: 0 0 0.85rem;
}

.pl-kicker-mobil[b-4uwnagswy5] {
    display: none;
}

/* --- Rozlučková fráze --------------------------------------------------- */
.pl-rozlucka[b-4uwnagswy5] {
    font-family: var(--font-nadpis);
    font-size: clamp(1.05rem, 1.8vw, 1.25rem);
    font-weight: 600;
    color: var(--c-hneda-tmava);
    line-height: 1.35;
    margin: 0 0 1.5rem;
    letter-spacing: -0.01em;
    /* Stabilní výška, ať se karta při vypisování textu „nenadechuje". */
    min-height: 2.7em;
}

/* Blikající kurzor během vypisování; JS přidává/odebírá .je-pise. */
.pl-rozlucka-text.je-pise[b-4uwnagswy5]::after {
    content: "";
    display: inline-block;
    width: 0.07em;
    height: 1.05em;
    margin-left: 0.06em;
    vertical-align: -0.12em;
    background-color: currentColor;
    opacity: 0.7;
    animation: pl-caret-b-4uwnagswy5 1s step-end infinite;
}

@keyframes pl-caret-b-4uwnagswy5 {
    50% { opacity: 0; }
}

/* Text jen pro čtečku obrazovky (plná fráze; vizuální verze se vypisuje). */
.pl-rozlucka-sr[b-4uwnagswy5] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

@media (prefers-reduced-motion: reduce) {
    .pl-rozlucka-text.je-pise[b-4uwnagswy5]::after { animation: none; opacity: 0; }
}

/* --- Tlačítko „Přihlásit se znovu" -------------------------------------- */
.pl-tlacitko[b-4uwnagswy5] {
    display: block;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    font-family: var(--font-text);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1;
    padding: 0.9rem 1.2rem;
    border-radius: 999px;
    border: none;
    text-decoration: none;
    background-color: var(--c-zelena-tmava);
    color: var(--c-bila);
    cursor: pointer;
    transition: background-color 220ms ease, transform 220ms ease, box-shadow 220ms ease;
    margin-bottom: 1rem;
}

.pl-tlacitko[b-4uwnagswy5] {
    position: relative;
    overflow: hidden;
    transform: translate(var(--pl-mag-x, 0px), calc(var(--pl-mag-y, 0px) + var(--pl-zvednuti, 0px)));
}

.pl-tlacitko[b-4uwnagswy5]::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -45%;
    width: 35%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.35), transparent);
    transform: skewX(-18deg);
    transition: left 700ms ease;
    pointer-events: none;
}

.pl-tlacitko:hover[b-4uwnagswy5] {
    background-color: var(--c-zelena);
    color: var(--c-hneda-tmava);
    --pl-zvednuti: -1px;
    box-shadow: 0 4px 14px rgba(144, 168, 0, 0.28);
}

.pl-tlacitko:hover[b-4uwnagswy5]::before { left: 110%; }

.pl-tlacitko:active[b-4uwnagswy5] {
    --pl-zvednuti: 0px;
}

@media (prefers-reduced-motion: reduce) {
    .pl-tlacitko[b-4uwnagswy5] { transform: none; }
    .pl-tlacitko[b-4uwnagswy5]::before { display: none; }
    .pl-karta[b-4uwnagswy5] { transform: none; transition: none; }
    .pl-karta[b-4uwnagswy5]::after { display: none; }
}

/* --- Poznámka pod tlačítkem --------------------------------------------- */
.pl-poznamka[b-4uwnagswy5] {
    font-size: 0.78rem;
    color: var(--barva-text-tlumeny);
    line-height: 1.5;
    text-align: center;
    margin: 0;
}

/* =========================================================================
   Responsivní přizpůsobení — mobil: Alfréd nahoře, karta pod ním
   ========================================================================= */
@media (max-width: 900px) {
    .pl-stranka[b-4uwnagswy5] {
        align-items: center;
        justify-content: center;
        padding-top: clamp(3rem, 6vw, 4rem);
        padding-bottom: 1rem;
        min-height: 100svh;
    }

    .pl-skupina[b-4uwnagswy5] {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 1.25rem;
        flex: 0 0 auto;
    }

    .pl-alfred[b-4uwnagswy5] {
        max-height: 42vh;
        max-width: 70vw;
    }

    .pl-pravy-sloupec[b-4uwnagswy5] {
        width: 100%;
        max-width: 420px;
    }

    .pl-karta[b-4uwnagswy5] {
        width: 100%;
    }

    .pl-tac-stitek[b-4uwnagswy5] {
        display: none;
    }

    .pl-kicker-mobil[b-4uwnagswy5] {
        display: inline-block;
    }
}

@media (max-width: 480px) {
    .pl-alfred[b-4uwnagswy5] {
        max-height: 38vh;
        max-width: 85vw;
    }

    .pl-pravy-sloupec[b-4uwnagswy5] {
        max-width: 100%;
    }
}
/* /Components/Pages/Podpora.razor.rz.scp.css */
/* Podpora — přehled hlášení a požadavků. Klidný, vzdušný, v tónu Alfréda
   (konzistentní s rodinný-spis). */

.podpora-stranka[b-tu3kvx7jsr] {
    /* Šířku neomezovat — back office jede na plnou šířku plochy jako Ticketing
       (zadání 2. 8. 2026). Strop 1100 px zahazoval na 1920px displeji 300 px
       z každé strany, tedy třetinu plochy pro obsah. */
}

.podpora-text[b-tu3kvx7jsr] {
    font-size: 1.05rem;
    line-height: 1.7;
    max-width: 70ch;
}

/* Inline monochromatická ikona (nahradila emoji — ta byla na Windows barevná a mimo sépiový
   brand; C16). Dědí barvu z okolí (stroke: currentColor), takže ladí s daným kontextem. */
.podpora-ikona[b-tu3kvx7jsr] {
    width: 1.05em;
    height: 1.05em;
    flex: none;
    vertical-align: -0.15em;
}

/* --- DEV přepínač rolí --- */
.podpora-role[b-tu3kvx7jsr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
    font-size: 0.9rem;
}

.podpora-role-odkaz[b-tu3kvx7jsr] {
    padding: 0.3rem 0.7rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    font-weight: 600;
    transition: border-color var(--prechod), background-color var(--prechod);
}

.podpora-role-odkaz:hover[b-tu3kvx7jsr] {
    border-color: var(--c-zelena-tmava);
}

.podpora-role-odkaz.je-aktivni[b-tu3kvx7jsr] {
    border-color: var(--c-zelena-tmava);
    background-color: var(--c-zelena-svetla);
}

/* --- Dvousloupcová mřížka: seznam | detail --- */
.podpora-mrizka[b-tu3kvx7jsr] {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 1.5rem;
    margin-top: 1.5rem;
}

@media (max-width: 760px) {
    .podpora-mrizka[b-tu3kvx7jsr] {
        grid-template-columns: 1fr;
    }
}

.podpora-panel[b-tu3kvx7jsr] {
    padding: 1.5rem;
}

.podpora-panel-hlava h2[b-tu3kvx7jsr] {
    font-size: 1.25rem;
    margin-bottom: 1rem;
}

.podpora-prazdno[b-tu3kvx7jsr] {
    line-height: 1.6;
}

/* --- Filtr (záložky: otevřené / vyřešené / vše) --- */
/* Filtr Aktivní/Vyřešené/Vše jako složková „ouška" (kartotéka) — aktivní vytažené,
   se zeleným jazýčkem, sedí na spodní lince nad seznamem. */
.podpora-zalozky[b-tu3kvx7jsr] {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
    align-items: flex-end;
    margin: 0.25rem 0 0;
    padding: 0 0.4rem;
    border-bottom: 1px solid var(--barva-linka);
}

.podpora-zalozka[b-tu3kvx7jsr] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.9rem 0.5rem;
    border: 1px solid var(--barva-linka);
    border-bottom: none;
    border-radius: 11px 11px 0 0;
    background-color: var(--c-krem);
    font-family: var(--font-text);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--barva-text-tlumeny);
    cursor: pointer;
    position: relative;
    top: 1px;
    margin-bottom: -1px;
    transition: background-color var(--prechod), color var(--prechod);
}

.podpora-zalozka:hover[b-tu3kvx7jsr] {
    color: var(--c-hneda-tmava);
    background-color: #F6F1E8;
}

.podpora-zalozka.je-aktivni[b-tu3kvx7jsr] {
    color: var(--c-hneda-tmava);
    background-color: var(--c-bila);
    box-shadow: 0 -3px 8px -3px rgba(63, 47, 36, 0.14);
}

.podpora-zalozka.je-aktivni[b-tu3kvx7jsr]::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    border-radius: 11px 11px 0 0;
    background-color: var(--c-zelena-tmava);
}

/* Prázdný stav pod oušky = stejný odstup jako seznam (mezeru seznamu řídí margin
   na .podpora-seznam níže — musí být tam, jinak ji pozdější pravidlo přebije). */
.podpora-prazdno[b-tu3kvx7jsr] {
    margin-top: 1.5rem;
}

.podpora-zalozka-pocet[b-tu3kvx7jsr] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--c-hneda-tmava);
    background-color: var(--c-zelena-svetla);
    border-radius: 999px;
    padding: 0.05rem 0.45rem;
    min-width: 1.4em;
    text-align: center;
}

.podpora-zalozka.je-aktivni .podpora-zalozka-pocet[b-tu3kvx7jsr] {
    background-color: var(--c-bila);
}

/* Viditelný indikátor klávesové fokusace (WCAG 2.4.7) — :hover sám klávesnici nestačí.
   Konzistentní s focus ringem v AlfredAssistant. */
.podpora-zalozka:focus-visible[b-tu3kvx7jsr],
.podpora-polozka:focus-visible[b-tu3kvx7jsr],
.podpora-role-odkaz:focus-visible[b-tu3kvx7jsr] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

/* Úzký displej (C11): filtr se místo zalamování roluje do stran — „ouška" kartotéky
   drží jednu řadu (zalomená ztrácela metaforu i zarovnání na spodní linku). */
@media (max-width: 480px) {
    .podpora-zalozky[b-tu3kvx7jsr] {
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .podpora-zalozky[b-tu3kvx7jsr]::-webkit-scrollbar { display: none; }
    .podpora-zalozka[b-tu3kvx7jsr] { flex: 0 0 auto; }
}

/* --- Klientský filtr fronty (D17): druh / stav / (admin) zadavatel --- */
/* Řádek pod oušky záložek; každé pole = drobný popisek nad kompaktním výběrem. Zužuje jen
   zobrazení, počty v záložkách zůstávají z celého seznamu. */
.podpora-filtr[b-tu3kvx7jsr] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.6rem 0.75rem;
    margin-top: 1.1rem;
}

.podpora-filtr-pole[b-tu3kvx7jsr] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.podpora-filtr-popisek[b-tu3kvx7jsr] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--barva-text-tlumeny);
}

/* Kompaktnější než formulářový select (jde o zúžení, ne o zadávání). Vodorovný padding
   (i místo pro chevron) dědí ze select.podpora-vstup — měníme jen výšku a velikost písma. */
.podpora-filtr-vyber[b-tu3kvx7jsr] {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    font-size: 0.85rem;
}

/* „Zrušit filtr" = tichý textový přepínač, zarovnaný ke spodní lince polí. */
.podpora-filtr-zrusit[b-tu3kvx7jsr] {
    align-self: flex-end;
    margin-bottom: 0.1rem;
    padding: 0.35rem 0.2rem;
    border: none;
    background: transparent;
    color: var(--c-zelena-tmava);
    font-family: var(--font-text);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.podpora-filtr-zrusit:hover[b-tu3kvx7jsr] {
    color: var(--c-hneda-tmava);
}

.podpora-filtr-vyber:focus-visible[b-tu3kvx7jsr],
.podpora-filtr-zrusit:focus-visible[b-tu3kvx7jsr] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

/* Odkaz „Zrušit filtr" v prázdném stavu (filtr nic nenašel). */
.podpora-prazdno-odkaz[b-tu3kvx7jsr] {
    padding: 0 0.15rem;
    border: none;
    background: transparent;
    color: var(--c-zelena-tmava);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.podpora-prazdno-odkaz:hover[b-tu3kvx7jsr] {
    color: var(--c-hneda-tmava);
}

.podpora-prazdno-odkaz:focus-visible[b-tu3kvx7jsr] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

/* --- Seznam hlášení --- */
/* margin-top = jasná mezera pod oušky záložek, ať zelený rámeček prvního požadavku
   (hover/výběr) neleze do jejich spodní hrany. MUSÍ být tady (shorthand margin), ne
   ve zvláštním pravidle výš — to by tenhle shorthand se stejnou specificitou přebil. */
.podpora-seznam[b-tu3kvx7jsr] {
    list-style: none;
    margin: 1.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.podpora-polozka[b-tu3kvx7jsr] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    width: 100%;
    text-align: left;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: transparent;
    font-family: var(--font-text);
    cursor: pointer;
    transition: border-color var(--prechod), background-color var(--prechod);
}

.podpora-polozka:hover[b-tu3kvx7jsr] {
    border-color: var(--c-zelena-tmava);
}

.podpora-polozka.je-vybrana[b-tu3kvx7jsr] {
    border-color: var(--c-zelena-tmava);
    background-color: var(--c-zelena-svetla);
}

.podpora-polozka-nazev[b-tu3kvx7jsr] {
    font-weight: 600;
    color: var(--c-hneda-tmava);
}

.podpora-polozka-detail[b-tu3kvx7jsr] {
    font-size: 0.85rem;
}

.podpora-polozka-cas[b-tu3kvx7jsr] {
    font-size: 0.8rem;
}

/* --- Detail --- */
.podpora-detail-typ[b-tu3kvx7jsr] {
    font-size: 0.9rem;
    margin: 0 0 0.75rem;
}

.podpora-detail-meta[b-tu3kvx7jsr] {
    font-size: 0.85rem;
    margin: 0 0 0.75rem;
}

.podpora-detail-popis[b-tu3kvx7jsr] {
    line-height: 1.6;
    margin: 0 0 1rem;
    white-space: pre-wrap;
}

.podpora-detail-snimek[b-tu3kvx7jsr] {
    display: inline-block;
    margin-bottom: 1rem;
    font-size: 0.9rem;
    font-weight: 600;
}

/* Snímek zadavatele skrytý správci (soukromí, C8 b) — klidná poznámka, ne odkaz. */
.podpora-detail-snimek-skryty[b-tu3kvx7jsr] {
    margin: 0 0 1rem;
    padding: 0.6rem 0.8rem;
    font-size: 0.88rem;
    line-height: 1.5;
    border: 1px dashed var(--barva-linka);
    border-radius: var(--radius);
    background-color: var(--c-krem);
}

/* --- Změna stavu --- */
.podpora-zmena[b-tu3kvx7jsr] {
    border-top: 1px solid var(--barva-linka);
    padding-top: 1rem;
    margin-top: 0.5rem;
}

.podpora-label[b-tu3kvx7jsr] {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
    margin-bottom: 0.4rem;
}

.podpora-zmena-radek[b-tu3kvx7jsr] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.podpora-vstup[b-tu3kvx7jsr] {
    min-width: 0;
    padding: 0.6rem 0.9rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: var(--c-bila);
    font-family: var(--font-text);
    font-size: 0.95rem;
    color: var(--barva-text);
    transition: border-color var(--prechod);
}

/* Pružná šířka JEN ve flex-ŘÁDKU (změna stavu). Ve sloupcovém formuláři (nahlásit/úprava)
   by flex-basis 8rem znamenalo 128 px VYSOKÁ pole — proto nesmí být na základní třídě. */
.podpora-zmena-radek .podpora-vstup[b-tu3kvx7jsr] {
    flex: 1 1 8rem;
}

.podpora-vstup:focus[b-tu3kvx7jsr] {
    outline: none;
    border-color: var(--c-zelena-tmava);
}

/* Brand chevron nativního <select> — dvojče globálního select.pole (cimpel.css);
   tady zopakovaný, protože scoped padding-shorthand by globální padding-right přebil. */
select.podpora-vstup[b-tu3kvx7jsr] {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 2rem;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23594334' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.7rem center;
}

/* --- Úpravy zadavatele (editace / smazání vlastního hlášení) --- */
/* Řádek tlačítek „Upravit / Smazat" pod popisem — nenápadný, akce zadavatele nad vlastním hlášením. */
.podpora-zadavatel-akce[b-tu3kvx7jsr] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin: 0.25rem 0 1rem;
}

.podpora-zadavatel-akce .tlacitko[b-tu3kvx7jsr] {
    padding: 0.55rem 1.1rem;
    font-size: 0.9rem;
}

/* „Smazat" má jednotný tichý terakotový vzhled — globální .tlacitko-nebezpeci-tichy (cimpel.css). */

/* Inline formulář úpravy — pole pod sebou, vzdušně, oddělený linkou od zbytku detailu. */
.podpora-uprava[b-tu3kvx7jsr] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin: 0.25rem 0 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--barva-linka);
}

/* V úpravě jsou pole na celou šířku (ne flex-řádek jako u změny stavu). */
.podpora-uprava-vstup[b-tu3kvx7jsr] {
    flex: 1 1 auto;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 0.5rem;
}

.podpora-uprava-popis[b-tu3kvx7jsr] {
    resize: vertical;
    min-height: 5rem;
    line-height: 1.5;
}

.podpora-uprava-akce[b-tu3kvx7jsr] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    margin-top: 0.25rem;
}

/* Potvrzení smazání — klidná výzva, žádná panika; brick akcent jen na potvrzovacím tlačítku. */
.podpora-smazani[b-tu3kvx7jsr] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin: 0.25rem 0 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid var(--c-cihlova, #A6462E);
    border-radius: var(--radius);
    background-color: rgba(166, 70, 46, 0.06);
}

.podpora-smazani-otazka[b-tu3kvx7jsr] {
    line-height: 1.5;
    color: var(--c-hneda-tmava);
}

/* --- Historie (průběh) --- */
.podpora-historie-nadpis[b-tu3kvx7jsr] {
    font-size: 1rem;
    margin: 1.5rem 0 0.6rem;
}

.podpora-historie[b-tu3kvx7jsr] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.podpora-historie-radek[b-tu3kvx7jsr] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding-left: 0.9rem;
    border-left: 2px solid var(--barva-linka);
}

.podpora-historie-stav[b-tu3kvx7jsr] {
    font-weight: 600;
    color: var(--c-hneda-tmava);
}

.podpora-historie-cas[b-tu3kvx7jsr],
.podpora-historie-kdo[b-tu3kvx7jsr],
.podpora-historie-pozn[b-tu3kvx7jsr] {
    font-size: 0.85rem;
}

/* --- Hláška (potvrzení / klidná chyba) --- */
.podpora-hlaska[b-tu3kvx7jsr] {
    margin-top: 1.5rem;
    padding: 0.75rem 1rem;
    background-color: var(--c-zelena-svetla);
    border-radius: var(--radius);
}

/* --- Stavový odznak (reporterova větev seznamu) --- */
/* Základní odznak — drobný, oblý, čitelný v sépiové paletě */
.podpora-stav-odznak[b-tu3kvx7jsr] {
    display: inline-block;
    margin-left: 0.45rem;
    padding: 0.1rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.5;
    vertical-align: middle;
    white-space: nowrap;
}

/* Nový — neutrální, krémový */
.podpora-stav-novy[b-tu3kvx7jsr] {
    background-color: var(--c-krem);
    color: var(--c-hneda);
    border: 1px solid var(--barva-linka);
}

/* Třídění — akcentní (zelená světlá), signalizuje pozornost */
.podpora-stav-triaz[b-tu3kvx7jsr] {
    background-color: var(--c-zelena-svetla);
    color: var(--barva-akcent-text);
    border: 1px solid rgba(144, 168, 0, 0.3);
}

/* Řeší se — výraznější zelená, práce probíhá */
.podpora-stav-resi[b-tu3kvx7jsr] {
    background-color: var(--c-zelena-svetla);
    color: var(--barva-akcent-text);
    border: 1px solid var(--c-zelena-tmava);
}

/* Hotovo — úspěch, hnědozelená (textová varianta akcentu — bílé písmo na ní má 5,7:1) */
.podpora-stav-hotovo[b-tu3kvx7jsr] {
    background-color: var(--barva-akcent-text);
    color: var(--c-bila);
    border: 1px solid transparent;
}

/* Zamítnuto — tlumené, šedivé */
.podpora-stav-zamitnuto[b-tu3kvx7jsr] {
    background-color: rgba(165, 156, 151, 0.15);
    color: var(--barva-tlumeny-text);
    border: 1px solid rgba(165, 156, 151, 0.3);
}

/* --- Vyřešená položka — vizuální ztlumení (reporterova větev) --- */
.podpora-polozka.je-vyresena[b-tu3kvx7jsr] {
    opacity: 0.65;
}

.podpora-polozka.je-vyresena:hover[b-tu3kvx7jsr],
.podpora-polozka.je-vyresena.je-vybrana[b-tu3kvx7jsr] {
    opacity: 1;
}

/* Shrnutí řešení pod názvem vyřešené položky */
.podpora-polozka-reseni[b-tu3kvx7jsr] {
    font-size: 0.82rem;
    line-height: 1.4;
}

/* ---- Shrnutí řešení (u vyřešeného hlášení, nahoře v detailu) ---- */
.podpora-reseni[b-tu3kvx7jsr] {
    margin: 0.75rem 0 1rem;
    padding: 0.75rem 0.9rem;
    background-color: var(--c-zelena-svetla);
    border-radius: var(--radius);
}

.podpora-reseni-znacka[b-tu3kvx7jsr] {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--barva-akcent-text);
    margin-bottom: 0.25rem;
}

.podpora-reseni-text[b-tu3kvx7jsr] {
    margin: 0;
    line-height: 1.5;
    color: var(--c-hneda-tmava);
}

/* ---- Poznámka ke změně stavu (admin) ---- */
.podpora-zmena-pozn[b-tu3kvx7jsr] {
    margin-top: 0.5rem;
    width: 100%;
    box-sizing: border-box;
}

/* ---- Komentář / doplnění (autor i admin) ---- */
.podpora-komentar[b-tu3kvx7jsr] {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--barva-linka);
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.podpora-komentar-radek[b-tu3kvx7jsr] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.podpora-komentar-radek .podpora-vstup[b-tu3kvx7jsr] {
    flex: 1 1 12rem;
    min-width: 0;
}

/* ---- Timeline: komentář vs. změna stavu ---- */
.podpora-historie-akce[b-tu3kvx7jsr] {
    flex: 0 0 auto;
}

.podpora-historie-komentar-znacka[b-tu3kvx7jsr] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--barva-akcent-text);
}

.podpora-historie-pozn[b-tu3kvx7jsr] {
    flex-basis: 100%;
    line-height: 1.5;
    color: var(--c-hneda-tmava);
    background-color: var(--c-krem);
    border-radius: var(--radius);
    padding: 0.4rem 0.6rem;
    margin-top: 0.2rem;
}

.podpora-historie-radek.je-komentar[b-tu3kvx7jsr] {
    border-left: 2px solid var(--barva-linka);
    padding-left: 0.5rem;
}

/* Timeline řádek: odznak + kdo + čas na jednom řádku, poznámka/komentář pod ním. */
.podpora-historie-radek[b-tu3kvx7jsr] {
    flex-flow: row wrap;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.5rem 0.6rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
}
.podpora-historie-radek .podpora-stav-odznak[b-tu3kvx7jsr] { margin-left: 0; }

/* --- Nahlásit přímo v sekci Podpora (formulář + příloha drag-and-drop) --- */
.podpora-nahlasit[b-tu3kvx7jsr] {
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
}

.podpora-nahlasit-prepinac[b-tu3kvx7jsr] {
    border: 0;
    background: transparent;
    color: var(--barva-akcent-text, #5F6E00);
    font-family: var(--font-text);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
}

/* Potvrzení po odeslání (C7 b): krátká zelená hláška + odkaz na nově založené hlášení. */
.podpora-odeslano[b-tu3kvx7jsr] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 1rem;
    padding: 0.6rem 0.9rem;
    background-color: var(--c-zelena-svetla);
    border-radius: var(--radius);
}

.podpora-odeslano-text[b-tu3kvx7jsr] {
    color: var(--c-hneda-tmava);
    font-size: 0.92rem;
}

.podpora-odeslano-odkaz[b-tu3kvx7jsr] {
    border: 0;
    background: transparent;
    color: var(--barva-akcent-text, #5F6E00);
    font-family: var(--font-text);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.podpora-odeslano-odkaz:hover[b-tu3kvx7jsr] {
    color: var(--c-hneda-tmava);
}

.podpora-odeslano-odkaz:focus-visible[b-tu3kvx7jsr] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

.podpora-nahlasit-form[b-tu3kvx7jsr] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-top: 1rem;
}

.podpora-nahlasit-popis[b-tu3kvx7jsr] {
    resize: vertical;
    min-height: 5rem;
    line-height: 1.5;
    width: 100%;
    box-sizing: border-box;
}

.podpora-nahlasit-akce[b-tu3kvx7jsr] {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.75rem;
}

/* Drop zóna: InputFile leží přes ni průhledně → klik i přetažení souboru fungují bez JS. */
.podpora-drop[b-tu3kvx7jsr] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 3.5rem;
    padding: 0.75rem 1rem;
    margin-bottom: 0.5rem;
    border: 1.5px dashed var(--barva-linka, #E3D9C6);
    border-radius: var(--radius, 12px);
    background-color: var(--c-krem, #F4EFE7);
    text-align: center;
    transition: border-color var(--prechod, .2s), background-color var(--prechod, .2s);
}

.podpora-drop:hover[b-tu3kvx7jsr],
.podpora-drop:focus-within[b-tu3kvx7jsr] {
    border-color: var(--c-zelena-tmava, #90A800);
    background-color: #F6F1E8;
}

.podpora-drop.ma-prilohu[b-tu3kvx7jsr] {
    border-style: solid;
    border-color: var(--c-zelena-tmava, #90A800);
    background-color: var(--c-zelena-svetla, #E0EFB8);
}

/* Vlastní input přes celou zónu, neviditelný — zachytí klik i drop.
   ::deep NUTNÉ: <InputFile> je komponenta, její <input> nedostane scope atribut —
   bez ::deep by zůstal viditelný syrový anglický „Choose File". */
.podpora-drop[b-tu3kvx7jsr]  .podpora-drop-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.podpora-drop-popis[b-tu3kvx7jsr] {
    font-size: 0.9rem;
    color: var(--barva-text-tlumeny, #736A62);
    pointer-events: none;
}

.podpora-priloha-zrusit[b-tu3kvx7jsr] {
    align-self: flex-start;
    border: 0;
    background: transparent;
    color: var(--barva-tlumeny-text, #736A62);
    font-size: 0.82rem;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.podpora-priloha-zrusit:hover[b-tu3kvx7jsr] { color: var(--c-cihlova, #A6462E); }
/* /Components/Pages/PortalDotaz.razor.rz.scp.css */
/* Dotaz na Alfréda z dashboardu (interaktivní ostrůvek). Styl přenesen z původního
   statického bloku v Home.razor.css — scoped CSS rodiče se na dětskou komponentu nepřenáší. */

.portal-dotaz-blok[b-7p0xa3umyp] {
    display: grid;
    gap: 0.85rem;
}

.portal-dotaz[b-7p0xa3umyp] {
    display: flex;
    gap: 0.9rem;
    align-items: center;
    background: var(--barva-povrch);
    border: 2px solid var(--c-zelena-tmava);
    border-radius: 999px;
    padding: 0.5rem 0.55rem 0.5rem 1.4rem;
    box-shadow: var(--stin-jemny);
    transition: box-shadow var(--prechod);
    margin: 0;
}

.portal-dotaz:focus-within[b-7p0xa3umyp] {
    box-shadow: var(--stin-zvednuty);
}

.portal-dotaz-vstup[b-7p0xa3umyp] {
    /* Explicitní nulová báze (width:0): min-content vstupu (placeholder) jinak
       roztahuje flex/grid rodiče přes okraj mobilního viewportu. */
    flex: 1 1 0;
    width: 0;
    min-width: 0;
    border: 0;
    outline: 0;
    background: none;
    font: 400 1rem var(--font-text);
    color: var(--barva-text);
}

.portal-dotaz-vstup[b-7p0xa3umyp]::placeholder {
    color: var(--barva-text-tlumeny);
}

.portal-dotaz-tlacitko[b-7p0xa3umyp] {
    flex: none;
    border: 0;
    border-radius: 999px;
    padding: 0.7rem 1.5rem;
    background: var(--c-zelena-tmava);
    color: var(--c-bila);
    font: 600 0.9rem var(--font-text);
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--prechod);
}

.portal-dotaz-tlacitko:hover[b-7p0xa3umyp] {
    background: var(--c-zelena);
    color: var(--c-hneda-tmava);
}

/* Návrhy otázek jako rozbalovací nabídka — sbalené zabírají jeden řádek místo dvou
   a nepřebíjejí vlastní dotaz klienta. */
.portal-navrhy[b-7p0xa3umyp] { position: relative; }

.portal-navrhy-spoustec[b-7p0xa3umyp] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font: 500 0.84rem var(--font-text);
    color: var(--barva-akcent-text);
    background: none;
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
    padding: 0.38rem 0.85rem 0.38rem 0.95rem;
    cursor: pointer;
    transition: border-color var(--prechod), color var(--prechod);
}

.portal-navrhy-spoustec:hover[b-7p0xa3umyp] { border-color: var(--c-zelena-tmava); color: var(--c-hneda-tmava); }
.portal-navrhy-spoustec svg[b-7p0xa3umyp] { width: 13px; height: 13px; transition: transform var(--prechod); }
.portal-navrhy.je-otevreno .portal-navrhy-spoustec svg[b-7p0xa3umyp] { transform: rotate(180deg); }

.portal-navrhy-panel[b-7p0xa3umyp] {
    position: absolute;
    z-index: 30;
    top: calc(100% + 6px);
    left: 0;
    min-width: 15rem;
    display: flex;
    flex-direction: column;
    padding: 4px;
    background: var(--c-bila);
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    box-shadow: 0 10px 28px rgb(46 35 26 / .14);
}

.portal-navrhy-polozka[b-7p0xa3umyp] {
    text-align: left;
    font: 500 0.84rem var(--font-text);
    color: var(--barva-text);
    background: none;
    border: 0;
    border-radius: 8px;
    padding: 0.45rem 0.6rem;
    cursor: pointer;
}

.portal-navrhy-polozka:hover[b-7p0xa3umyp] { background: var(--c-krem); color: var(--c-hneda-tmava); }

.portal-chipy[b-7p0xa3umyp] {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.portal-chip[b-7p0xa3umyp] {
    font: 500 0.84rem var(--font-text);
    color: var(--barva-akcent-text);
    background: none;
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
    padding: 0.38rem 0.95rem;
    cursor: pointer;
    transition: border-color var(--prechod), color var(--prechod);
}

.portal-chip:hover[b-7p0xa3umyp] {
    border-color: var(--c-zelena-tmava);
    color: var(--c-hneda-tmava);
}
/* /Components/Pages/Prihlaseni.razor.rz.scp.css */
/* ==========================================================================
   Přihlašovací stránka — Alfréd
   Flexbox layout: skupina [hero | karta] vycentrovaná ve viewportu.
   Desktop (≥900px): řada. Mobil (<900px): sloupec. Žádné absolute pozicování.
   Scoped CSS — platí jen pro Prihlaseni.razor.
   ========================================================================== */

/* --- Základní shell stránky -------------------------------------------- */
.pl-stranka[b-mdndz6nywh] {
    position: relative;
    min-height: 100svh;
    background-color: var(--c-bila);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1.5rem, 4vw, 3rem) clamp(1rem, 4vw, 2.5rem);
    box-sizing: border-box;
    overflow: hidden;
}

/* --- Scéna „pozorný komorník": paralaxní vrstvy ------------------------- */
/* Přesah -3 % kryje okraje při posunu vrstvy za kurzorem (alfred-scena.js). */
.pl-vrstva[b-mdndz6nywh] {
    position: absolute;
    inset: -3%;
    pointer-events: none;
    will-change: transform;
}

/* Zadní rovina: krémový gradientový závoj + dva světelné paprsky mířící na Alfréda. */
.pl-vrstva-zadni[b-mdndz6nywh] {
    z-index: 1;
    background:
        radial-gradient(90rem 60rem at 72% -12%, #FBF8F1 0%, transparent 60%),
        radial-gradient(70rem 50rem at 8% 112%, #EDE5D6 0%, transparent 55%),
        linear-gradient(160deg, #F8F4EB 0%, #F4EFE7 55%, #EFE8DA 100%);
}

.pl-vrstva-zadni[b-mdndz6nywh]::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(115deg, transparent 40%, rgba(255, 252, 240, 0.55) 46%, transparent 53%),
        linear-gradient(115deg, transparent 60%, rgba(255, 252, 240, 0.35) 65%, transparent 71%);
    animation: pl-paprsky-b-mdndz6nywh 12s ease-in-out infinite alternate;
}

@keyframes pl-paprsky-b-mdndz6nywh {
    from { opacity: 0.35; }
    to   { opacity: 0.65; }
}

/* Přední rovina: viněta + prach ve světle — jede rychleji než pozadí (hloubka). */
.pl-vrstva-predni[b-mdndz6nywh] {
    z-index: 15;
}

.pl-vineta[b-mdndz6nywh] {
    position: absolute;
    inset: 0;
    background: radial-gradient(120% 90% at 50% 42%, transparent 58%, rgba(63, 47, 36, 0.09) 100%);
}

.pl-prach[b-mdndz6nywh] {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

/* Zrnka plní alfred-scena.js (náhodná pozice/tempo přes inline styl; JS-vytvořené
   elementy nemají scope atribut Blazoru → nutné ::deep). */
.pl-prach[b-mdndz6nywh]  .pl-prach-zrno {
    position: absolute;
    bottom: -2%;
    border-radius: 50%;
    background: rgba(255, 250, 235, 0.85);
    box-shadow: 0 0 6px rgba(255, 248, 225, 0.8);
    opacity: 0;
    animation-name: pl-zrno-stoupa-b-mdndz6nywh;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

@keyframes pl-zrno-stoupa-b-mdndz6nywh {
    0%   { transform: translateY(0); opacity: 0; }
    8%   { opacity: 0.55; }
    85%  { opacity: 0.25; }
    100% { transform: translateY(-105vh); opacity: 0; }
}

/* Filmové zrno přes celou scénu — tlumí banding gradientů (na projektoru znát). */
.pl-zrno[b-mdndz6nywh] {
    position: absolute;
    inset: 0;
    z-index: 16;
    pointer-events: none;
    opacity: 0.05;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}

@media (prefers-reduced-motion: reduce) {
    .pl-vrstva-zadni[b-mdndz6nywh]::before { animation: none; opacity: 0.45; }
    .pl-prach[b-mdndz6nywh] { display: none; }
}

/* --- Logo v levém horním rohu ------------------------------------------ */
.pl-logo[b-mdndz6nywh] {
    position: absolute;
    top: clamp(1.25rem, 3vw, 2rem);
    left: clamp(1.25rem, 4vw, 3rem);
    z-index: 30;
    display: inline-flex;
    align-items: center;
    transition: opacity 220ms ease;
}

.pl-logo:hover[b-mdndz6nywh] { opacity: 0.75; }

.pl-logo img[b-mdndz6nywh] {
    height: 48px;
    width: auto;
    display: block;
}

/* --- Vodoznak stromu (vlevo dole, jemný) -------------------------------- */
.pl-vodoznak[b-mdndz6nywh] {
    position: fixed;
    left: -4%;
    bottom: -6%;
    width: min(480px, 50vw);
    height: min(480px, 50vw);
    background-image: url("/brand/Cimpel_ikona_strom_RGB.svg");
    background-repeat: no-repeat;
    background-position: bottom left;
    background-size: contain;
    opacity: 0.07;   /* zesílen do světla scény (dřív 0.04 na bílé — neviditelný) */
    pointer-events: none;
    z-index: 2;      /* nad zadní gradientovou vrstvou (z-index 1), pod obsahem (10) */
}

/* --- Skupina: Alfréd + karta -------------------------------------------- */
/* Desktop: řada; mobil: sloupec. Vždy vycentrovaná ve stránce. */
.pl-skupina[b-mdndz6nywh] {
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: clamp(2rem, 5vw, 4rem);
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
}

/* --- Pravý sloupec: identita (nadpis+podtitulek) NAD kartou -------------- */
.pl-pravy-sloupec[b-mdndz6nywh] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: clamp(0.85rem, 1.6vw, 1.25rem);
    width: clamp(300px, 33vw, 420px);
}

/* --- Hero kontejner ----------------------------------------------------- */
.pl-hero[b-mdndz6nywh] {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    flex: 0 1 auto;
}

/* --- Wrapper pro obrázek + překryvný štítek (position: relative parent) -- */
.pl-hero-wrap[b-mdndz6nywh] {
    position: relative;
    display: inline-flex;
    align-items: flex-end;
    justify-content: center;
    line-height: 0; /* bez mezery pod img */
    /* Renderovaná šířka obrázku (poměr 1536/2752 = 0.5581):
       width:auto + max-height:88vh + max-width:45vw ⇒ šířka = min(45vw, 88vh×0.5581).
       Štítek na ni navážeme přes calc() → font škáluje SE ŠÍŘKOU obrázku, ne s výškou
       okna, takže se vždy vejde do vizitky. (Container-query jednotky tu nejdou: wrap se
       sizuje obsahem a inline-size containment by ho složil na nulu.)
       Pozn.: na mobilu (<900px) je štítek skrytý, takže jiné max-* tam neřešíme. */
    --pl-img-w: min(45vw, 49.12vh);
    /* Dýchání: nepatrné, origin u nohou — postava přestane být „plakát".
       Paralaxa jede na rodiči (.pl-hero), crossfade na vrstvách A/B — bez konfliktu. */
    animation: pl-dech-b-mdndz6nywh 4.5s ease-in-out infinite alternate;
    transform-origin: bottom center;
}

@keyframes pl-dech-b-mdndz6nywh {
    from { transform: scale(1) translateY(0); }
    to   { transform: scale(1.006) translateY(-1.5px); }
}

@media (prefers-reduced-motion: reduce) {
    .pl-hero-wrap[b-mdndz6nywh] { animation: none; }
}

/* --- Vizitka na táci (dva řádky „Family / Office" + stromeček) ---------- */
/* Poloha = % rozměrů wrapperu (= rozměrů obrázku 1536×2752); kalibrováno na
   krémovou vizitku: levý okraj ≈ 66 %, šířka ≈ 24 %, svislý střed ≈ 32 %.
   Velikost písma v cqw (% šířky obrázku) → drží se uvnitř rámečku na každé
   obrazovce. */
.pl-tac-stitek[b-mdndz6nywh] {
    position: absolute;
    /* Vycentrováno na ČISTOU vizitku (ubrousek odstraněn z tácu). Vnitřek tištěného
       rámečku ≈ 29,4–36,5 % výšky, svislý střed ≈ 33 %; vodorovný střed vizitky ≈ 78,3 %. */
    left: 66.8%;
    width: 23%;
    top: 30%;
    height: 6%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    text-align: center;
    pointer-events: none;
    z-index: 5;
    /* Decentní fade-in (jen opacita — ať nekoliduje s pozicováním) */
    animation: pl-stitek-in-b-mdndz6nywh 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) 0.2s both;
}

.pl-tac-strom[b-mdndz6nywh] {
    width: calc(var(--pl-img-w) * 0.028);
    height: auto;
    display: block;
    margin-bottom: 0.12em;
    opacity: 0.9;
}

.pl-tac-radek[b-mdndz6nywh] {
    font-family: var(--font-nadpis);
    font-size: calc(var(--pl-img-w) * 0.04);
    line-height: 1.05;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--barva-akcent);  /* zelený akcent, stejný jako kicker + stromek na klopě */
    white-space: nowrap;
}

@keyframes pl-stitek-in-b-mdndz6nywh {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* --- Alfréd (obrázek) --------------------------------------------------- */
.pl-alfred[b-mdndz6nywh] {
    display: block;
    width: auto;
    max-height: 88vh;
    max-width: 45vw;
    object-fit: contain;
    object-position: bottom center;

    /* Jen jemný nástupní fade-in. ŽÁDNÉ trvalé pohupování (bylo rušivé). */
    animation: alfred-appear-b-mdndz6nywh 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) both;
    transform-origin: bottom center;
    will-change: opacity;
}

@keyframes alfred-appear-b-mdndz6nywh {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .pl-alfred[b-mdndz6nywh] {
        animation: none;
    }
}

/* Vrstva A drží rozměr (in-flow); vrstva B je překryv pro plynulé prolnutí (crossfade)
   mezi mimickými snímky — díky tomu přechody netrhají jako flip-book. */
.pl-alfred-b[b-mdndz6nywh] {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    animation: none;              /* nepřebírat appear (měnil by opacitu překryvu) */
    transition: opacity 140ms linear;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .pl-alfred-b[b-mdndz6nywh] { transition: none; }
}

/* --- Přihlašovací karta ------------------------------------------------- */
.pl-karta[b-mdndz6nywh] {
    width: 100%;   /* vyplní pravý sloupec (šířku drží .pl-pravy-sloupec) */
    box-sizing: border-box;

    background-color: rgba(244, 239, 231, 0.97);
    border: 1px solid rgba(89, 67, 52, 0.10);
    border-radius: 20px;
    box-shadow:
        0 2px 4px rgba(63, 47, 36, 0.04),
        0 12px 40px rgba(63, 47, 36, 0.10),
        0 2px 0 rgba(255,255,255,0.9) inset;
    padding: clamp(1.5rem, 3vw, 2.25rem);

    animation: pl-karta-in-b-mdndz6nywh 1.1s cubic-bezier(0.22, 0.61, 0.36, 1) 0.2s both;
    z-index: 20;

    /* 3D tilt za kurzorem (proměnné plní alfred-scena.js až po vstupní animaci —
       fill "both" by jinak transform držel). */
    position: relative;
    transform: perspective(1100px)
        rotateX(var(--pl-tilt-x, 0deg))
        rotateY(var(--pl-tilt-y, 0deg));
    transition: transform 180ms ease;
}

/* Putující odlesk po povrchu karty (poloha za kurzorem přes --pl-lesk-x). */
.pl-karta[b-mdndz6nywh]::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(105deg,
        transparent calc(var(--pl-lesk-x, 50%) - 12%),
        rgba(255, 255, 255, 0.16) var(--pl-lesk-x, 50%),
        transparent calc(var(--pl-lesk-x, 50%) + 12%));
    opacity: 0;
    transition: opacity 240ms ease;
    pointer-events: none;
}

.pl-karta:hover[b-mdndz6nywh]::after { opacity: 1; }

@keyframes pl-karta-in-b-mdndz6nywh {
    from { opacity: 0; transform: translateY(12px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0)    scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .pl-karta[b-mdndz6nywh] { animation: none; }
}

/* --- Hlavička: nadpis „Alfréd" + podtitulek — NAD přihlašovacím boxem ---- */
.pl-hlavicka[b-mdndz6nywh] {
    margin: 0;
    padding: 0 0.15rem;   /* jemné odsazení od hrany, ať nadpis nelícuje úplně natvrdo */
    animation: pl-hlavicka-in-b-mdndz6nywh 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) 0.35s both;
}

@keyframes pl-hlavicka-in-b-mdndz6nywh {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .pl-hlavicka[b-mdndz6nywh] { animation: none; }
}

.pl-nazev[b-mdndz6nywh] {
    font-family: var(--font-nadpis);
    font-size: clamp(2.15rem, 3.6vw, 2.8rem);
    font-weight: 700;
    line-height: 1.0;
    letter-spacing: -0.015em;
    color: var(--c-hneda-tmava);
    margin: 0 0 0.35rem;
}

.pl-podtitulek[b-mdndz6nywh] {
    font-family: var(--font-text);
    font-size: clamp(1rem, 1.7vw, 1.18rem);
    font-weight: 500;
    line-height: 1.4;
    color: var(--barva-text-tlumeny);
    margin: 0;
}

/* --- Kicker (Family Office) --------------------------------------------- */
.pl-kicker[b-mdndz6nywh] {
    display: inline-block;
    font-family: var(--font-text);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--barva-akcent-text);
    margin: 0 0 0.85rem;
}

/* Na desktopu je kicker skrytý (nahrazen štítkem na táci) */
.pl-kicker-mobil[b-mdndz6nywh] {
    display: none;
}

/* --- Uvítací fráze ------------------------------------------------------- */
.pl-uvitani[b-mdndz6nywh] {
    font-family: var(--font-nadpis);
    font-size: clamp(1.05rem, 1.8vw, 1.25rem);
    font-weight: 600;
    color: var(--c-hneda-tmava);
    line-height: 1.35;
    margin: 0 0 1.5rem;
    letter-spacing: -0.01em;
    /* Stabilní výška, ať se karta při vypisování textu „nenadechuje“. */
    min-height: 2.7em;
}

/* Blikající kurzor během vypisování (typewriter); JS přidává/odebírá .je-pise. */
.pl-uvitani-text.je-pise[b-mdndz6nywh]::after {
    content: "";
    display: inline-block;
    width: 0.07em;
    height: 1.05em;
    margin-left: 0.06em;
    vertical-align: -0.12em;
    background-color: currentColor;
    opacity: 0.7;
    animation: pl-caret-b-mdndz6nywh 1s step-end infinite;
}

@keyframes pl-caret-b-mdndz6nywh {
    50% { opacity: 0; }
}

/* Text jen pro čtečku obrazovky (plná fráze; vizuální verze se vypisuje). */
.pl-uvitani-sr[b-mdndz6nywh] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

@media (prefers-reduced-motion: reduce) {
    .pl-uvitani-text.je-pise[b-mdndz6nywh]::after { animation: none; opacity: 0; }
}

/* --- Tlačítko přihlásit ------------------------------------------------- */
.pl-tlacitko[b-mdndz6nywh] {
    display: block;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    font-family: var(--font-text);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1;
    padding: 0.9rem 1.2rem;
    border-radius: 999px;
    border: none;
    text-decoration: none;
    background-color: var(--c-zelena-tmava);
    color: var(--c-bila);
    cursor: pointer;
    transition: background-color 220ms ease, transform 220ms ease, box-shadow 220ms ease;
    margin-bottom: 1rem;
}

.pl-tlacitko[b-mdndz6nywh] {
    /* Magnetické přitažení ke kurzoru (--pl-mag-* plní alfred-scena.js) + prostor
       pro přeběh lesku. Základní deklarace výš zůstává; tady jen skládání transformu. */
    position: relative;
    overflow: hidden;
    transform: translate(var(--pl-mag-x, 0px), calc(var(--pl-mag-y, 0px) + var(--pl-zvednuti, 0px)));
}

.pl-tlacitko[b-mdndz6nywh]::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -45%;
    width: 35%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.35), transparent);
    transform: skewX(-18deg);
    transition: left 700ms ease;
    pointer-events: none;
}

.pl-tlacitko:hover[b-mdndz6nywh] {
    background-color: var(--c-zelena);
    color: var(--c-hneda-tmava);
    --pl-zvednuti: -1px;
    box-shadow: 0 4px 14px rgba(144, 168, 0, 0.28);
}

.pl-tlacitko:hover[b-mdndz6nywh]::before { left: 110%; }

.pl-tlacitko:active[b-mdndz6nywh] {
    --pl-zvednuti: 0px;
}

@media (prefers-reduced-motion: reduce) {
    .pl-tlacitko[b-mdndz6nywh] { transform: none; }
    .pl-tlacitko[b-mdndz6nywh]::before { display: none; }
    .pl-karta[b-mdndz6nywh] { transform: none; transition: none; }
    .pl-karta[b-mdndz6nywh]::after { display: none; }
}

/* --- Poznámka pod tlačítkem --------------------------------------------- */
.pl-poznamka[b-mdndz6nywh] {
    font-size: 0.78rem;
    color: var(--barva-text-tlumeny);
    line-height: 1.5;
    text-align: center;
    margin: 0;
}

/* =========================================================================
   Responsivní přizpůsobení
   ========================================================================= */

/* Mobil a tablety: Alfréd nahoře, karta pod ním, vše ve sloupci */
@media (max-width: 900px) {
    .pl-stranka[b-mdndz6nywh] {
        /* Vycentrování bloku ve viewportu; logo je absolutní a nepotřebuje padding.
           Přidáme jen minimální top-padding aby Alfred nesplynul s logem. */
        align-items: center;
        justify-content: center;
        padding-top: clamp(3rem, 6vw, 4rem); /* min 48px — logo zabere ~44px + gap */
        padding-bottom: 1rem;
        min-height: 100svh;
    }

    .pl-skupina[b-mdndz6nywh] {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 1.25rem;
        flex: 0 0 auto; /* nepřetahovat výšku skupiny */
    }

    .pl-alfred[b-mdndz6nywh] {
        max-height: 42vh;
        max-width: 70vw;
    }

    /* Sloupec (hlavička + karta) drží šířku; karta ho vyplní. */
    .pl-pravy-sloupec[b-mdndz6nywh] {
        width: 100%;
        max-width: 420px;
    }

    .pl-karta[b-mdndz6nywh] {
        width: 100%;
    }

    /* Na mobilu štítek na táci schovat, kicker v kartě zobrazit */
    .pl-tac-stitek[b-mdndz6nywh] {
        display: none;
    }

    .pl-kicker-mobil[b-mdndz6nywh] {
        display: inline-block;
    }
}

/* Malý mobil: ještě kompaktnější */
@media (max-width: 480px) {
    .pl-alfred[b-mdndz6nywh] {
        max-height: 38vh;
        max-width: 85vw;
    }

    .pl-pravy-sloupec[b-mdndz6nywh] {
        max-width: 100%;
    }
}
/* /Components/Pages/PristupyRodiny.razor.rz.scp.css */
/* PŘÍSTUPY K JEDNÉ RODINĚ (ADR-0088, E3).

   Tabulka jede na globální `.tabulka` + `.pristupy-tabulka` (svislé linky mezi sloupci) —
   ty se tady schválně NEPŘEBÍJEJÍ: `.pristupy-tabulka` patří i mřížce v Administraci a scoped
   CSS na cizí komponentu nedosáhne (hlídá ScopedCssDosahTests). Tady jsou jen vlastní prvky
   téhle obrazovky. */

.pristupy-stranka h1[b-plb7jio63w] {
    margin-bottom: 10px;
}

/* --- PRUH O MANDÁTU. Nejdůležitější věta obrazovky, proto nese barvu a stojí nad tabulkou. --- */
.pristupy-pruh[b-plb7jio63w] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 12px;
    margin: 14px 0 10px;
    padding: 9px 12px;
    border: 1px solid rgba(89, 67, 52, 0.16);
    border-left: 3px solid var(--accent);
    border-radius: 4px;
    background: rgba(95, 110, 0, 0.05);
    font-size: 12.5px;
    line-height: 1.45;
}

/* OSOBNÍ RODINA MÁ JINOU BARVU, ne jen jiný text: „mandát tu neplatí" je stav, který si člověk
   musí všimnout dřív, než začne čtení. */
.pristupy-pruh.je-osobni[b-plb7jio63w] {
    border-left-color: #8a6d3b;
    background: rgba(138, 109, 59, 0.07);
}

.pristupy-stitek[b-plb7jio63w] {
    flex: none;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--accent);
    color: #fff;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.pristupy-pruh.je-osobni .pristupy-stitek[b-plb7jio63w] {
    background: #8a6d3b;
}

.pristupy-zapadka[b-plb7jio63w] {
    flex: 1 1 100%;
    color: var(--text-mute);
    font-size: 11.5px;
}

.pristupy-souhrn[b-plb7jio63w] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 18px;
    margin-bottom: 12px;
    color: var(--text-dim);
    font-size: 12px;
}

.pristupy-hlaska[b-plb7jio63w] {
    margin: 0 0 10px;
    padding: 7px 10px;
    border-radius: 4px;
    background: rgba(89, 67, 52, 0.06);
    font-size: 12.5px;
}

.pristupy-odepreno[b-plb7jio63w] {
    margin: 16px 0;
    padding: 12px 14px;
    border: 1px solid rgba(89, 67, 52, 0.16);
    border-radius: 4px;
    background: rgba(89, 67, 52, 0.04);
    font-size: 13px;
}

/* --- řádky ------------------------------------------------------------------------------ */
.pristupy-jmeno[b-plb7jio63w] {
    display: block;
    font-weight: 600;
}

.pristupy-rodrole[b-plb7jio63w],
.pristupy-mail[b-plb7jio63w] {
    display: block;
    color: var(--text-mute);
    font-size: 11px;
}

/* Pilulka `.pristupy-pil` je v GLOBÁLNÍM css/tabulka.css, ne tady: používají ji DVĚ obrazovky
   (přístupy k rodině i auditní seznam udělení) a scoped CSS na cizí komponentu nedosáhne —
   hlídá to ScopedCssDosahTests, který na to při psaní E3c upozornil. */

/* Řádek bez práv: věta, ne pomlčka. Pomlčka by u pěti různých situací znamenala pětkrát
   něco jiného (viz VetaBezPrav v komponentě). */
.pristupy-bezprav[b-plb7jio63w] {
    color: var(--text-mute);
    font-size: 11.5px;
    font-style: italic;
}

.pristupy-stred[b-plb7jio63w] { text-align: center; }
.pristupy-uzky[b-plb7jio63w] { width: 1%; white-space: nowrap; }

/* Osoba bez účtu je vybledlá — je v rodokmenu, ale do spisu nevidí. */
tr.je-bezuctu .pristupy-jmeno[b-plb7jio63w] { font-weight: 500; color: var(--text-dim); }

/* Nespárované udělení naopak VYNIKÁ: přístup má a nevíme, komu ze spisu patří. */
tr.je-nesparovane[b-plb7jio63w] { background: rgba(180, 120, 20, 0.05); }

tr.je-souhrn[b-plb7jio63w] { background: rgba(89, 67, 52, 0.03); }
tr.je-souhrn .pristupy-jmeno[b-plb7jio63w] { font-weight: 500; }

.pristupy-x[b-plb7jio63w] {
    padding: 0 5px;
    border: 0;
    border-radius: 3px;
    background: none;
    color: var(--text-mute);
    cursor: pointer;
    font-size: 15px;
    line-height: 1;
}

.pristupy-x:hover:not(:disabled)[b-plb7jio63w] { background: rgba(89, 67, 52, 0.09); color: var(--text-dim); }
.pristupy-x:disabled[b-plb7jio63w] { opacity: 0.4; cursor: default; }

/* --- inline formulář místo popupu (CLAUDE.md) ------------------------------------------- */
.pristupy-formular > td[b-plb7jio63w] {
    padding: 10px 12px;
    background: rgba(95, 110, 0, 0.045);
}

.pristupy-formular label[b-plb7jio63w] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-right: 10px;
    font-size: 12.5px;
}

.pristupy-formular .pole[b-plb7jio63w] { min-width: 240px; }

.pristupy-napoveda[b-plb7jio63w] {
    margin-left: 10px;
    color: var(--text-mute);
    font-size: 11.5px;
}

.pristupy-legenda[b-plb7jio63w] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    margin-top: 10px;
    color: var(--text-mute);
    font-size: 11px;
}

/* Párovací rozbalovátko stojí POD jménem účtu — je to oprava dat, ne hlavní obsah řádku. */
.pristupy-parovani[b-plb7jio63w] {
    margin-top: 3px;
    max-width: 220px;
    font-size: 11.5px;
}

/* --- HROMADNÉ PŘERAZÍTKOVÁNÍ (E4) --------------------------------------------------------
   Pruh se ukáže teprve když je něco vybráno — jinak by nad tabulkou trvale visela akce, která
   nic neudělá. */
.pristupy-hromadne[b-plb7jio63w] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    margin: 0 0 8px;
    padding: 8px 12px;
    border: 1px solid rgba(89, 67, 52, 0.16);
    border-radius: 4px;
    background: rgba(95, 110, 0, 0.06);
    font-size: 12.5px;
}

.pristupy-hromadne label[b-plb7jio63w] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* NÁHLED ROZDÍLU. Řádky, které něco UBÍRAJÍ, musí být vidět jinak než ty, co přidávají:
   přidané právo se dá odebrat, ale odebrané znamená, že člověku přestane fungovat něco,
   co dřív šlo — a to nikdo nenahlásí. */
.pristupy-nahled[b-plb7jio63w] {
    margin: 0 0 10px;
    padding: 8px 12px 8px 28px;
    border-left: 3px solid var(--text-mute);
    background: rgba(89, 67, 52, 0.04);
    font-size: 12px;
    line-height: 1.6;
}

.pristupy-nahled li.je-bez[b-plb7jio63w] { color: var(--text-mute); }
.pristupy-nahled li.je-ubira[b-plb7jio63w] { color: #7a2d10; }

.pristupy-ubira[b-plb7jio63w] {
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    background: rgba(180, 60, 20, 0.14);
    color: #7a2d10;
    font-size: 10.5px;
    line-height: 16px;
}

/* Místo rozbalovátka, které by nešlo splnit: „jen své" bez spárované osoby nemá čím počítat. */
.pristupy-nelze[b-plb7jio63w] {
    color: var(--text-mute);
    font-size: 11.5px;
    border-bottom: 1px dotted var(--text-mute);
    cursor: help;
}
/* /Components/Pages/RodinnySpis.razor.rz.scp.css */
/* Rodinný spis — řez Family Office. Fáze 2: záložky (tabs) + kompaktní + roky sbalené.
   Klidný, sépiový tón Alfréda; menší vertikální rozestupy, ať se vejde víc a je to přehledné
   i při mnoha záznamech. */

.spis[b-kpwnn229nm] {
    /* Šířku neomezovat — back office jede na plnou šířku plochy jako Ticketing
       (zadání 2. 8. 2026). Strop 1100 px zahazoval na 1920px displeji 300 px
       z každé strany, tedy třetinu plochy pro obsah. */
}

.spis-text[b-kpwnn229nm] {
    font-size: 1rem;
    line-height: 1.6;
    max-width: 70ch;
}

/* --- Přístupnost: vizuálně skrytý, čitelný pro čtečku --- */
/* `.vizualne-skryto` se přestěhovalo do wwwroot/css/cimpel.css — používá ho pět komponent
   a scoped CSS na cizí komponentu nedosáhne (9. 8. 2026). */

/* --- Výběr rodiny: kompaktní pás čipů nad spisem --- */
.spis-vyber[b-kpwnn229nm] {
    /* ŽÁDNÝ HORNÍ ODSTUP: panel vpravo začíná na horní hraně plochy, takže obsah odsazený
       o 1,5 rem vypadal, že se propadl. Vrchy obou sloupců mají sedět na jedné lince. */
    margin-top: 0;
    padding: 1rem 1.25rem;
}

.spis-vyber-hlava h2[b-kpwnn229nm] {
    font-size: 1.05rem;
    margin: 0 0 0.75rem;
}

.spis-rodiny[b-kpwnn229nm] {
    list-style: none;
    margin: 0 0 0.9rem;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.spis-cip[b-kpwnn229nm] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.4rem 0.8rem;
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
    background-color: transparent;
    font-family: var(--font-text);
    cursor: pointer;
    transition: border-color var(--prechod), background-color var(--prechod);
}

.spis-cip:hover[b-kpwnn229nm] {
    border-color: var(--c-zelena-tmava);
}

.spis-cip.je-vybrana[b-kpwnn229nm] {
    border-color: var(--c-zelena-tmava);
    background-color: var(--c-zelena-svetla);
}

.spis-cip-nazev[b-kpwnn229nm] {
    font-weight: 600;
    color: var(--c-hneda-tmava);
}

.spis-cip-detail[b-kpwnn229nm] {
    font-size: 0.8rem;
}

.spis-vyber-formular[b-kpwnn229nm] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding-top: 0.75rem;
    border-top: 1px solid var(--barva-linka);
}

.spis-vyber-formular .spis-vstup[b-kpwnn229nm] {
    flex: 1 1 12rem;
}

.spis-vyzva[b-kpwnn229nm] {
    margin-top: 1.25rem;
}

/* --- Lišta sekcí spisu -----------------------------------------------------
   PLOCHÁ, ne kartotéková ouška (11. 8. 2026). Ouška vznikla, když byl spis samostatná
   stránka s papírovým jazykem; dnešní back office je hutný nástroj po vzoru Business
   Central a vystouplé složkové jazýčky v něm působí jako ozdoba. Aktivní sekci nese
   VÝPLŇ a spodní linka — žádné orámování a žádný zelený obrys (trvalé přání). */
.spis-taby[b-kpwnn229nm] {
    display: flex;
    /* OUŠKA KARET POLOŽEK SE OD 14. 8. 2026 ZALAMUJÍ NA DVA ŘÁDKY (přání uživatele) — pravidlo
       „zužují se, nezalamují" z 12. 8. platí dál pro LIŠTU (nezalomí se do druhého řádku ouška),
       ale jméno položky uvnitř ouška se smí zalomit. Uřezávání třemi tečkami znamenalo, že se
       dvě karty s dlouhými názvy nedaly rozeznat.
       Otevřených karet položek
       může být kolik chce; při zalamování by se stálé sekce (Členové, Dokumenty) posunuly do
       druhého řádku a lišta by při každém otevření poskočila. Místo toho ustupují šířkou karty
       položek — stálé sekce si svou drží (`flex: none`). Když už není co ubrat, lišta se
       posouvá do strany. */
    flex-wrap: nowrap;
    overflow-x: auto;
    /* SVISLE NIKDY. `overflow-x: auto` zapne rolování v OBOU směrech (druhá osa spadne na
       `auto`), takže lišta vysoká 38 px dostala vedle sebe svislý posuvník, jakmile jí obsah
       o pixel přerostl. Vypadalo to jako posuvník obsahu, a přitom patřil oušek. */
    overflow-y: hidden;
    scrollbar-width: thin;
    align-items: stretch;
    gap: 2px;
    /* ŽÁDNÁ MEZERA POD LIŠTOU: spodní linka lišty MÁ BÝT horní hranou obsahu. S mezerou
       (12 px) linka visela nad kartou a ouška vypadala, že levitují nad ničím. */
    margin: 0;
    padding: 4px 4px 0;
    /* CELÁ LIŠTA JE PLOCHA (12. 8. 2026, přání uživatele). Do té doby byla průhledná a šedou
       dostávalo jen ouško pod myší — lišta tak vypadala jako řada samostatných tlačítek nad
       prázdnem. S podkladem se čte jako jeden pruh, ze kterého aktivní karta VYSTUPUJE bílou;
       je to týž vztah jako mezi záložkami a kartou pod nimi. */
    background-color: var(--c-krem);
    border: 1px solid var(--barva-linka);
    border-bottom: 0;
    /* Horní rohy zakulacené, spodní ne — dole lišta navazuje na kartu obsahu. */
    border-radius: 10px 10px 0 0;
}

.spis-tab[b-kpwnn229nm] {
    appearance: none;
    /* Stálé sekce se nezužují — jejich jména jsou krátká a musí zůstat čitelná. */
    flex: none;
    white-space: nowrap;
    background: none;
    color: var(--barva-text-tlumeny);
    border: 0;
    /* Spodní linka drží místo i u neaktivní sekce — jinak by lišta při přepnutí poskočila. */
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    border-radius: 6px 6px 0 0;
    padding: 7px 13px;
    font-family: var(--font-text);
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color var(--prechod), color var(--prechod);
}

/* Hover musí mít VLASTNÍ odstín, ne krém: ten je teď barvou celé lišty, takže by najetí
   myší nebylo poznat. Poloprůhledný nádech drží tón podkladu, ať už pod ním leží cokoli
   (back office má jinou paletu než klientská tvář). Aktivní karta se nepřebarvuje —
   je bílá a bělejší být nemůže. */
.spis-tab:hover:not(.je-aktivni)[b-kpwnn229nm] {
    color: var(--c-hneda-tmava);
    background-color: rgba(89, 67, 52, 0.07);
}

.spis-tab.je-aktivni[b-kpwnn229nm] {
    background-color: var(--c-bila);
    color: var(--c-hneda-tmava);
    font-weight: 600;
    border-bottom-color: var(--c-zelena-tmava);
}

/* PRACOVNÍ ZÁLOŽKA (složení portfolia) — dočasná karta se jménem věci, kterou drží.
   Odlišená kurzívou a jemnou levou linkou: v liště stálých sekcí musí být poznat, že tahle
   jedna přišla a zase odejde, jinak by ji člověk hledal i příště. */
/* KARTA POLOŽKY — dočasné ouško se jménem věci, kterou drží. Odlišené kurzívou a jemnou
   levou linkou: v liště stálých sekcí musí být poznat, že tahle přišla a zase odejde.
   `flex: 0 1 auto` + `min-width` = ustupuje šířkou, ale nikdy neztratí křížek. */
.spis-tab.je-pracovni[b-kpwnn229nm] {
    font-style: italic;
    padding-right: 7px;
    border-left: 1px solid var(--barva-linka);
    margin-left: 4px;
    border-radius: 0 6px 0 0;
    /* NEUHÝBÁ ŠÍŘKOU pod čitelnou míru (14. 8. 2026, přání uživatele — mění pravidlo z 12. 8.,
       kdy se ouška zužovala a název uřezával třemi tečkami). Zúžené ouško ukázalo „Sbírka
       umění …" a nešlo poznat, která karta je která. Teď drží šířku danou obsahem se STROPEM
       a přebytek řeší DRUHÝM ŘÁDKEM; když se lišta nevejde, posouvá se do strany — to už platilo. */
    flex: 0 0 auto;
    min-width: 74px;
    max-width: 26ch;
}

/* JMÉNO POLOŽKY SE ZALAMUJE, NEUŘEZÁVÁ (14. 8. 2026). Tři tečky znamenaly, že se u dlouhých
   názvů („Accolade Industrial Fund", „Portfolio amerických akcií USD") nedalo poznat, která karta
   je která — a `title` se čte jedině omakem, po zastavení myši. Dva řádky se do lišty vejdou
   a ouško zůstane užší, než kdyby se týž text tlačil do jednoho řádku.

   Zalomení jen po SLOVECH: `word-break: break-word` by uprostřed názvu rozsekl slovo a z ouška
   by byl rébus. Přes dva řádky se text přece jen uřízne — to je strop, ne obvyklý stav. */
.spis-tab.je-pracovni .spis-tab-popis[b-kpwnn229nm] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    white-space: normal;
    overflow-wrap: break-word;
    text-align: left;
    line-height: 1.25;
    min-width: 0;
}

.spis-tab.je-pracovni[b-kpwnn229nm] {
    display: inline-flex;
    /* Křížek na středu VŮČI DVĚMA ŘÁDKŮM — `align-items: center` na jednořádkovém oušku dělalo
       totéž, u dvou řádků by ho `baseline` posadilo k prvnímu řádku a viselo by nahoře. */
    align-items: center;
    gap: 0;
}

/* Křížek drží místo vždycky (žádné objevování se pod myší) — u zavírání platí totéž co
   u diskety: ovládání, které se musí najít omakem, není ovládání. */
.spis-tab-zavrit[b-kpwnn229nm] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    margin-left: 6px;
    border-radius: 4px;
    font-size: 13px;
    font-style: normal;
    line-height: 1;
    color: var(--barva-text-tlumeny);
    cursor: pointer;
}

.spis-tab-zavrit:hover[b-kpwnn229nm] { background-color: rgba(89, 67, 52, 0.12); color: var(--c-hneda-tmava); }
.spis-tab-zavrit:focus-visible[b-kpwnn229nm] { outline: 2px solid var(--c-hneda-tmava); outline-offset: 1px; }

/* Fokus neutrálně, ne v brand zelené — zelený prstenec se čte jako ozdoba, ne jako kurzor. */
.spis-tab:focus-visible[b-kpwnn229nm] {
    outline: 2px solid var(--c-hneda-tmava);
    outline-offset: -2px;
}


/* --- Panel sekce (karta „spisu" pod oušky) --- */
.spis-panel[b-kpwnn229nm] {
    padding: 1.4rem 1.25rem 1.25rem;
    margin-top: 0;
    border: 1px solid var(--barva-linka);
    border-top-left-radius: 0;         /* horní rohy hranaté — ouška navazují shora */
    border-top-right-radius: 0;
    position: relative;
    z-index: 1;
}

.spis-podnadpis[b-kpwnn229nm] {
    font-size: 1rem;
    margin: 1.5rem 0 0.6rem;
    color: var(--c-hneda-tmava);
}

.spis-prazdno[b-kpwnn229nm] {
    line-height: 1.55;
    margin: 0 0 0.5rem;
}

.spis-majetek-uvod[b-kpwnn229nm] {
    margin-bottom: 1rem;
}

/* --- Seznamy (kompaktní) --- */
.spis-seznam[b-kpwnn229nm] {
    list-style: none;
    margin: 0 0 0.75rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.spis-seznam-kompakt[b-kpwnn229nm] {
    gap: 0.3rem;
}

/* Řádková (statická) položka — člen rodiny apod. */
.spis-polozka-radek[b-kpwnn229nm] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
}

.spis-polozka-nazev[b-kpwnn229nm] {
    font-weight: 600;
    color: var(--c-hneda-tmava);
}

.spis-polozka-detail[b-kpwnn229nm] {
    font-size: 0.82rem;
}

/* --- Formuláře (nahoře nad seznamem) --- */
.spis-formular[b-kpwnn229nm] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.spis-formular-nahore[b-kpwnn229nm] {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--barva-linka);
}

.spis-label[b-kpwnn229nm] {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}

.spis-radek[b-kpwnn229nm] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* ::deep MUSÍ BÝT U KAŽDÉHO PRAVIDLA: vstupy, které vykresluje vlastní komponenta
   (DatumPole, CisloPole), dostanou scope atribut TÉ komponenty, ne téhle stránky —
   prostý scoped `.spis-vstup` na ně nedosáhne a zůstal by syrový vstup prohlížeče
   uprostřed formuláře. Obal komponenty i tak stojí uvnitř .spis-radek, takže se
   `::deep` chytne.

   POZOR: tenhle předpis nese jen VZHLED, ne pružnost. Pružnost patří prvku, který
   v řádku stojí přímo (viz níž) — vstup uvnitř sloupcového obalu .zpole by si
   z `flex: 1 1 8rem` udělal osm centimetrů VÝŠKY, protože ve sloupci míří základ
   flexu na výšku. */
.spis-vstup[b-kpwnn229nm],
[b-kpwnn229nm] .spis-vstup {
    min-width: 0;
    padding: 0.55rem 0.8rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: var(--c-bila);
    font-family: var(--font-text);
    font-size: 0.92rem;
    color: var(--barva-text);
    transition: border-color var(--prechod);
}

.spis-vstup[b-kpwnn229nm] { flex: 1 1 8rem; }

.spis-vstup:focus[b-kpwnn229nm],
[b-kpwnn229nm] .spis-vstup:focus {
    outline: none;
    border-color: var(--c-zelena-tmava);
}

.spis-vstup[b-kpwnn229nm]::placeholder,
[b-kpwnn229nm] .spis-vstup::placeholder {
    color: var(--barva-text-tlumeny);
}

/* U vlastního pole je pružným prvkem řádku OBAL (.zpole) — pod vstupem visí ještě
   hláška nebo doptání, takže šířku musí držet obal a vstup ji jen vyplnit. */
[b-kpwnn229nm] .zpole { flex: 1 1 8rem; }

[b-kpwnn229nm] .zpole .spis-vstup {
    width: 100%;
    box-sizing: border-box;
}

/* Brand chevron nativního <select> — dvojče globálního select.pole (cimpel.css);
   tady zopakovaný, protože scoped padding-shorthand by globální padding-right přebil. */
select.spis-vstup[b-kpwnn229nm] {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 2rem;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23594334' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.7rem center;
}

.spis-vstup-uzky[b-kpwnn229nm],
[b-kpwnn229nm] .zpole:has(.spis-vstup-uzky) {
    flex: 0 1 7rem;
}

/* Souborové tlačítko (`spis-soubor-*`) se PŘESTĚHOVALO do wwwroot/css/backoffice-mock.css
   (14. 8. 2026): používá ho i ImportNahratPanel — CIZÍ komponenta, na kterou tenhle scoped
   soubor nedosáhne ani přes ::deep (::deep pomáhá jen potomkům elementu se scope atributem
   TÉHLE komponenty). V sekci „Nahrát papír" na kartě položky proto zůstával viditelný syrový
   anglický „Choose File / No file chosen" — a nikdo si nevšiml, protože tady na stránce
   (formulář dokumentů) fungoval správně. */

/* --- Rok (accordion sbalených roků) --- */
.spis-rok[b-kpwnn229nm] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    width: 100%;
    text-align: left;
    padding: 0.45rem 0.7rem;
    margin-bottom: 0.35rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: transparent;
    font-family: var(--font-text);
    cursor: pointer;
    transition: border-color var(--prechod), background-color var(--prechod);
}

.spis-rok:hover[b-kpwnn229nm] {
    border-color: var(--c-zelena-tmava);
}

.spis-rok-otevreny[b-kpwnn229nm] {
    background-color: var(--c-zelena-svetla);
    border-color: var(--c-zelena-tmava);
}

.spis-rok:focus-visible[b-kpwnn229nm] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

.spis-rok-sipka[b-kpwnn229nm] {
    color: var(--barva-akcent-text);
    font-size: 0.8rem;
}

.spis-rok-titulek[b-kpwnn229nm] {
    font-weight: 700;
    color: var(--c-hneda-tmava);
}

.spis-rok-pocet[b-kpwnn229nm] {
    font-size: 0.85rem;
}

.spis-rozhodnuti-telo[b-kpwnn229nm] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
    flex: 1 1 auto;
}

.spis-rozhodnuti-hlava[b-kpwnn229nm] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
}

.spis-rozhodnuti-co[b-kpwnn229nm] {
    margin: 0.1rem 0 0;
    line-height: 1.45;
    color: var(--barva-text);
}

.spis-rozhodnuti-proc[b-kpwnn229nm] {
    margin: 0.1rem 0 0;
    font-size: 0.9rem;
    line-height: 1.45;
}

/* --- Dokumenty (rejstřík dokumentů — ADR-0005/0015) — kompaktní karta --- */
.spis-dokumenty-seznam[b-kpwnn229nm] {
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.spis-dokument-polozka[b-kpwnn229nm] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
}

.spis-dokument-hlava[b-kpwnn229nm] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
}

.spis-dokument-paticka[b-kpwnn229nm] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
}

.spis-dokument-odkaz[b-kpwnn229nm] {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--barva-akcent-text);
    text-decoration: none;
    white-space: nowrap;
}

.spis-dokument-odkaz:hover[b-kpwnn229nm] {
    text-decoration: underline;
}

/* --- Majetek (aktiva, závazky, rozvaha — SCHEMA.md §3) --- */
.spis-rozvaha[b-kpwnn229nm] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-bottom: 0.5rem;
}

.spis-rozvaha-mena[b-kpwnn229nm] {
    flex: 1 1 14rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: var(--c-zelena-svetla);
}

.spis-rozvaha-titulek[b-kpwnn229nm] {
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--barva-akcent-text);
}

.spis-rozvaha-radky[b-kpwnn229nm] {
    margin-top: 0.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.spis-rozvaha-radek[b-kpwnn229nm] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: 0.92rem;
}

.spis-rozvaha-cisteJmeni[b-kpwnn229nm] {
    margin-top: 0.25rem;
    padding-top: 0.35rem;
    border-top: 1px solid var(--barva-linka);
    font-weight: 700;
    color: var(--c-hneda-tmava);
}

.spis-majetek-seznam[b-kpwnn229nm] {
    gap: 0.4rem;
}

.spis-majetek-polozka[b-kpwnn229nm] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
}

.spis-majetek-hlava[b-kpwnn229nm] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
}

.spis-polozka-castka[b-kpwnn229nm] {
    font-weight: 700;
    color: var(--c-hneda-tmava);
    white-space: nowrap;
}

/* --- Hláška (potvrzení / klidná chyba) --- */
.spis-hlaska[b-kpwnn229nm] {
    margin-top: 1.25rem;
    padding: 0.7rem 1rem;
    background-color: var(--c-zelena-svetla);
    border-radius: var(--radius);
}

@media (max-width: 620px) {
    .spis-taby[b-kpwnn229nm] {
        gap: 0;
    }

    .spis-tab[b-kpwnn229nm] {
        flex: 1 1 auto;
        padding: 0.55rem 0.6rem;
        text-align: center;
    }
}

/* ================= Majetek — kontejnery po kategoriích + ilustrované ikony ============= */
.maj-skupiny[b-kpwnn229nm] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 0.5rem;
}

.maj-skupina[b-kpwnn229nm] {
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: rgba(255, 255, 255, 0.55);
    overflow: hidden;
}

.maj-skupina-hlava[b-kpwnn229nm] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.7rem 0.95rem;
    background-color: var(--c-krem);
    border-bottom: 1px solid var(--barva-linka);
}

.maj-skupina-nadpis[b-kpwnn229nm] {
    display: flex;
    align-items: baseline;
    gap: 0.55rem;
}

.maj-skupina-nazev[b-kpwnn229nm] {
    font-family: var(--font-nadpis);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--c-hneda-tmava);
}

.maj-skupina-pocet[b-kpwnn229nm] {
    font-size: 0.82rem;
}

.maj-skupina-soucty[b-kpwnn229nm] {
    display: flex;
    gap: 0.85rem;
    flex-wrap: wrap;
}

.maj-skupina-soucet[b-kpwnn229nm] {
    font-weight: 700;
    color: var(--c-hneda-tmava);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.maj-ikona[b-kpwnn229nm] {
    flex: 0 0 auto;
    width: 54px;
    height: 54px;
    object-fit: contain;
}

/* --- Přehled × Správa (SPEC §7.6) -----------------------------------------
   Přepínač PODOBY téže záložky, ne další záložka: ouška nahoře přepínají sekci
   spisu, tenhle proužek jen to, jestli se majetek prohlíží nebo spravuje.
   Proto jiný tvar (segment, ne ouško) a jinde — sedí uvnitř panelu nad obsahem. */
.spis-rezim[b-kpwnn229nm] {
    display: inline-flex;
    gap: 2px;
    padding: 2px;
    margin: 0 0 1rem;
    background: var(--c-krem);
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
}

.spis-rezim-tlac[b-kpwnn229nm] {
    appearance: none;
    background: transparent;
    border: none;
    border-radius: 999px;
    padding: 0.3rem 0.95rem;
    font-family: var(--font-text);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--barva-text-tlumeny);
    cursor: pointer;
    transition: background-color var(--prechod), color var(--prechod);
}

.spis-rezim-tlac:hover[b-kpwnn229nm] { color: var(--c-hneda-tmava); }

.spis-rezim-tlac.je-aktivni[b-kpwnn229nm] {
    background: var(--c-bila);
    color: var(--c-hneda-tmava);
    box-shadow: 0 1px 3px rgba(63, 47, 36, 0.12);
}

/* „Ukazuji 5 největších z 87" — věta MUSÍ říct, kde je zbytek, jinak přehled
   vypadá jako úplný seznam a poradce ostatní položky hledá jako ztracené. */
.maj-skupina-vic[b-kpwnn229nm] {
    margin: 0.4rem 0 0;
    font-size: 0.82rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Tlačítko v té větě je akce tabulky, ale stojí mimo řádek — musí být vidět
   rovnou (globální `.tabulka-akce` je tiché, dokud kurzor nestojí na řádku). */
.maj-skupina-vic .tabulka-akce[b-kpwnn229nm] {
    opacity: 1;
}

/* Hlava sekce (Aktiva / Závazky): nadpis vlevo, tlačítko „+ Přidat" vpravo (nahoře). */
.maj-sekce-hlava-vpravo[b-kpwnn229nm] { justify-content: flex-end; }
.maj-sekce-hlava[b-kpwnn229nm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
}

.maj-sekce-hlava .spis-podnadpis[b-kpwnn229nm] {
    margin: 0;
}

.maj-pridat-tlac[b-kpwnn229nm] {
    flex: 0 0 auto;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--barva-akcent-text);
    background: transparent;
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
    padding: 0.35rem 0.85rem;
    cursor: pointer;
    transition: background-color var(--prechod), border-color var(--prechod), color var(--prechod);
}

.maj-pridat-tlac:hover[b-kpwnn229nm] {
    background-color: var(--c-zelena-svetla);
    border-color: var(--c-zelena-tmava);
    color: var(--c-hneda-tmava);
}

.maj-pridat-tlac:focus-visible[b-kpwnn229nm] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

/* Formulář rozbalený hned pod hlavou sekce (nahoře). */
.maj-pridat-form[b-kpwnn229nm] {
    margin: 0.6rem 0 0.4rem;
    padding: 0.85rem;
    border: 1px dashed var(--barva-linka);
    border-radius: var(--radius);
    background-color: rgba(255, 255, 255, 0.5);
}

/* Inline editační panel aktiva/závazku (spis-nahled = plná šířka mřížky). */
.maj-uprava-inline[b-kpwnn229nm] {
    padding: 0.9rem 1rem;
}

/* Nápověda ve formuláři přidání člena (vazby v rodokmenu). */
.spis-napoveda[b-kpwnn229nm] {
    margin: 0.15rem 0 0.35rem;
    font-size: 0.82rem;
    line-height: 1.4;
}

/* Řádek rodiny ve výběru: chip + drobná akce (archivovat / obnovit). */
.spis-rodina-radek[b-kpwnn229nm] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}
.spis-rodina-radek.je-archivovana .spis-cip[b-kpwnn229nm] {
    opacity: 0.7;
}
.spis-cip-akce[b-kpwnn229nm] {
    flex: none;
    border: 1px solid var(--c-seda, #A59C97);
    background: transparent;
    color: var(--c-hneda, #594334);
    border-radius: 999px;
    padding: 0.25rem 0.6rem;
    font-size: 0.74rem;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.spis-cip-akce:hover[b-kpwnn229nm] {
    border-color: var(--c-zelena-tmava, #90A800);
    color: var(--barva-akcent-text, #5F6E00);
}
/* Trvalé smazání rodinu — nebezpečná akce, cihlový akcent (odliší od archivace). */
.spis-cip-smazat:hover[b-kpwnn229nm] {
    border-color: var(--c-cihlova, #A6462E);
    color: var(--c-cihlova, #A6462E);
}
.spis-archiv-prepinac[b-kpwnn229nm] {
    border: 0;
    background: transparent;
    color: var(--barva-akcent-text, #5F6E00);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.spis-vyber-hlava[b-kpwnn229nm] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}
.spis-vyber-pocet[b-kpwnn229nm] { font-size: 0.85rem; white-space: nowrap; }
.spis-hledani-pole[b-kpwnn229nm] { flex: 1 1 12rem; }
.spis-nastroj-tlac[b-kpwnn229nm] {
    flex: 0 0 auto;
    padding: 0.5rem 0.9rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: var(--c-bila);
    color: var(--barva-text);
    font-family: var(--font-text);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color var(--prechod), background-color var(--prechod);
}
.spis-nastroj-tlac:hover[b-kpwnn229nm] { border-color: var(--c-zelena-tmava); }
.spis-nastroj-tlac.je-aktivni[b-kpwnn229nm] {
    border-color: var(--c-zelena-tmava);
    background-color: var(--c-zelena-svetla);
    color: var(--c-hneda-tmava);
}

/* Cíle doscrollování (alfredSpis.prejdiNa) nesmí skončit pod sticky hlavičkou —
   rezerva na hlavičku (~4rem) + dev lištu + nádech. */
.maj-pridat-form[b-kpwnn229nm],
.maj-uprava-form[b-kpwnn229nm] {
    scroll-margin-top: 9rem;
}

/* ===== UX audit — koš B (B11, B13, B14): nové bloky ===== */

/* B11: po přepnutí záložky se najíždí na lištu záložek (alfredSpis.prejdiNa) —
   stejná rezerva na sticky hlavičku jako u formulářů výše. */
.spis-taby[b-kpwnn229nm] {
    scroll-margin-top: 9rem;
}

/* B13: víceřádková pole rozhodnutí — dlouhé „Proč" je hlavní hodnota záznamu.
   field-sizing: content = pole roste s obsahem (kde to prohlížeč umí); jinde drží
   výšku dle rows + ruční zvětšení (resize). */
.spis-textarea[b-kpwnn229nm] {
    field-sizing: content;
    min-height: 3.6rem;
    max-height: 16rem;
    resize: vertical;
    line-height: 1.45;
}

.spis-textarea-proc[b-kpwnn229nm] {
    min-height: 4.8rem;
}

/* B13: datum rozhodnutí s viditelným popiskem a rozumnou šířkou (samotné úzké pole
   nebylo poznat, k čemu patří). */
.spis-pole-datum[b-kpwnn229nm] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex: 0 1 auto;
}

.spis-pole-datum .spis-vstup-datum[b-kpwnn229nm] {
    flex: 0 0 auto;
    min-width: 11rem;
}

/* B14: panel náhledu — plná šířka mřížky, hned pod otevřeným dokumentem. */
.spis-nahled[b-kpwnn229nm] {
    grid-column: 1 / -1;
    list-style: none;
    padding: 0.85rem 1rem;
    border: 1px solid var(--c-zelena-tmava);
    border-radius: var(--radius);
    background-color: var(--c-bila);
}

.spis-nahled-hlava[b-kpwnn229nm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.spis-nahled-nazev[b-kpwnn229nm] {
    color: var(--c-hneda-tmava);
}

.spis-nahled-zavrit[b-kpwnn229nm] {
    flex: 0 0 auto;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--barva-text-tlumeny);
    background: transparent;
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
    padding: 0.3rem 0.7rem;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color var(--prechod), color var(--prechod);
}

.spis-nahled-zavrit:hover[b-kpwnn229nm] {
    border-color: var(--c-zelena-tmava);
    color: var(--c-hneda-tmava);
}

.spis-nahled-meta[b-kpwnn229nm] {
    margin: 0.25rem 0 0.6rem;
    font-size: 0.82rem;
}

.spis-nahled-text[b-kpwnn229nm] {
    margin: 0;
    padding: 0.75rem 0.9rem;
    max-height: 24rem;
    overflow: auto;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: var(--c-krem);
    font-family: var(--font-text);
    font-size: 0.9rem;
    line-height: 1.55;
    color: var(--barva-text);
    white-space: pre-wrap;
    word-break: break-word;
}

.spis-nahled-pozn[b-kpwnn229nm] {
    margin: 0.5rem 0 0;
    font-size: 0.84rem;
}

.spis-nahled-stahnout[b-kpwnn229nm] {
    display: inline-block;
    margin-top: 0.4rem;
}

/* ===== Nápady D5 + D14 + D19: graf aktiv, počty v záložkách, orientační součet ===== */

/* D14: počet položek v oušku záložky — stejný vizuální vzor jako počty v záložkách
   Podpory (.podpora-zalozka-pocet): drobná zelená pilulka vedle popisku. */
.spis-tab-pocet[b-kpwnn229nm] {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--c-hneda-tmava);
    background-color: var(--c-zelena-svetla);
    border-radius: 999px;
    padding: 0.05rem 0.45rem;
    min-width: 1.4em;
    text-align: center;
}

/* D19: orientační celkový součet v korunách (fixní kurz) — decentní karta pod rozvahou;
   čárkovaný rámeček naznačuje „přibližně", ať se neplete s přesnou rozvahou po měnách. */
.maj-orientacne[b-kpwnn229nm] {
    margin: 0.35rem 0 0.85rem;
    padding: 0.85rem 1rem;
    border: 1px dashed var(--barva-linka);
    border-radius: var(--radius);
    background-color: rgba(255, 255, 255, 0.55);
}

.maj-orientacne-titulek[b-kpwnn229nm] {
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--c-hneda-tmava);
}

.maj-orientacne-radky[b-kpwnn229nm] {
    margin-top: 0.4rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.75rem;
}

.maj-orientacne-radek[b-kpwnn229nm] {
    display: flex;
    gap: 0.5rem;
    font-size: 0.92rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.maj-orientacne-jmeni[b-kpwnn229nm] {
    font-weight: 700;
    color: var(--c-hneda-tmava);
}

.maj-orientacne-pozn[b-kpwnn229nm] {
    margin: 0.5rem 0 0;
    font-size: 0.82rem;
}

/* D5: donut graf rozložení aktiv — inline SVG, vedle něj legenda (zalamuje se na mobilu). */
.maj-graf[b-kpwnn229nm] {
    display: flex;
    align-items: center;
    gap: 1.25rem 1.75rem;
    flex-wrap: wrap;
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: rgba(255, 255, 255, 0.55);
}

.maj-graf-kolo-obal[b-kpwnn229nm] {
    position: relative;
    flex: 0 0 auto;
    width: 11.5rem;
    height: 11.5rem;
}

.maj-graf-kolo[b-kpwnn229nm] {
    display: block;
    width: 100%;
    height: 100%;
}

.maj-graf-vysek[b-kpwnn229nm] {
    fill: none;
    stroke: var(--graf-b, var(--c-seda));
    stroke-width: 15;
}

/* Souhrn uprostřed prstence — HTML overlay (spolehlivější typografie než SVG text). */
.maj-graf-stred[b-kpwnn229nm] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.1rem;
    text-align: center;
    pointer-events: none;
}

.maj-graf-stred-popis[b-kpwnn229nm] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}

.maj-graf-stred-castka[b-kpwnn229nm] {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--c-hneda-tmava);
    font-variant-numeric: tabular-nums;
}

.maj-graf-legenda[b-kpwnn229nm] {
    flex: 1 1 16rem;
    min-width: 0;
    margin: 0;
}

.maj-graf-legenda-seznam[b-kpwnn229nm] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.maj-graf-legenda-radek[b-kpwnn229nm] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.92rem;
}

.maj-graf-tecka[b-kpwnn229nm] {
    flex: 0 0 auto;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 3px;
    background-color: var(--graf-b, var(--c-seda));
}

.maj-graf-legenda-nazev[b-kpwnn229nm] {
    flex: 1 1 auto;
    min-width: 0;
}

.maj-graf-legenda-castka[b-kpwnn229nm] {
    font-weight: 600;
    color: var(--c-hneda-tmava);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.maj-graf-legenda-podil[b-kpwnn229nm] {
    flex: 0 0 3.2rem;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* Sépiová/brandová paleta grafu (odstíny zelené a hnědé z tokenů; pořadí sleduje pevné
   pořadí kategorií MajetekSkupiny: nemovitosti, podíly, portfolio, alternativy, ostatní).
   Jde o dekorativní plochy s legendou vedle — kontrastní pravidlo pro nosný text se jich netýká. */
.graf-barva-0[b-kpwnn229nm] { --graf-b: var(--c-hneda); }
.graf-barva-1[b-kpwnn229nm] { --graf-b: var(--c-zelena-tmava); }
.graf-barva-2[b-kpwnn229nm] { --graf-b: var(--c-zelena); }
.graf-barva-3[b-kpwnn229nm] { --graf-b: var(--c-cihlova); }
.graf-barva-4[b-kpwnn229nm] { --graf-b: var(--c-seda); }
.graf-barva-5[b-kpwnn229nm] { --graf-b: var(--c-hneda-tmava); }
.graf-barva-6[b-kpwnn229nm] { --graf-b: var(--c-zelena-svetla); }

/* ================= D7: Poslední dění rodiny (pás nad záložkami) =================
   Kompaktní, sbalitelný — jen připomene, co ve spisu nedávno přibylo; prostor
   patří záložkám pod ním. Vzhled řádků ladí s „Posledním děním" rozcestníku. */
.spis-deni[b-kpwnn229nm] {
    margin-top: 1.25rem;
    border: 1px solid var(--barva-linka);
    border-radius: var(--radius);
    background-color: rgba(255, 255, 255, 0.55);
    padding: 0.2rem 0.4rem;
}

.spis-deni-prepinac[b-kpwnn229nm] {
    appearance: none;
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    width: 100%;
    background: transparent;
    border: none;
    border-radius: 8px;
    padding: 0.35rem 0.55rem;
    font-family: var(--font-text);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
    cursor: pointer;
    text-align: left;
    transition: color var(--prechod);
}

.spis-deni-prepinac:hover[b-kpwnn229nm] {
    color: var(--c-hneda-tmava);
}

.spis-deni-prepinac:focus-visible[b-kpwnn229nm] {
    outline: 2px solid var(--c-zelena-tmava);
    outline-offset: 2px;
}

.spis-deni-sipka[b-kpwnn229nm] {
    flex: none;
    font-size: 0.7rem;
}

.spis-deni-pocet[b-kpwnn229nm] {
    font-weight: 400;
    text-transform: none;
    letter-spacing: normal;
}

.spis-deni-seznam[b-kpwnn229nm] {
    list-style: none;
    margin: 0;
    padding: 0 0.55rem 0.4rem;
}

.spis-deni-polozka[b-kpwnn229nm] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    padding: 0.32rem 0;
    font-size: 0.9rem;
}

.spis-deni-polozka + .spis-deni-polozka[b-kpwnn229nm] {
    border-top: 1px dashed var(--barva-linka);
}

.spis-deni-ikona[b-kpwnn229nm] {
    width: 1rem;
    height: 1rem;
    flex: none;
    align-self: center;
    color: var(--c-hneda);
}

.spis-deni-text[b-kpwnn229nm] {
    flex: 1;
    min-width: 0;
    line-height: 1.45;
}

.spis-deni-stari[b-kpwnn229nm] {
    flex: none;
    font-size: 0.8rem;
    white-space: nowrap;
}

/* ================= D6: Tisk výpisu majetku ======================================
   Na papíře má výpis vypadat jako dokument poradenské firmy: hlavička s logem,
   rodinou a datem tisku; rozvaha, orientační souhrn a položky. Obrazovkové
   ovládání (výběr rodin, záložky, formuláře, akce, graf) se skryje; chrome
   aplikace (navigace, Alfréd, patička) skrývá globální cimpel.css. */

/* Tisková hlavička na obrazovce neexistuje — jen pro papír. */
.spis-tisk-hlavicka[b-kpwnn229nm] {
    display: none;
}

/* Úvodní řádek Majetku: text vlevo, tlačítko tisku vpravo. */
.spis-majetek-uvodni-radek[b-kpwnn229nm] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.spis-majetek-uvodni-radek .spis-majetek-uvod[b-kpwnn229nm] {
    flex: 1 1 auto;
}

.spis-tisk-tlac[b-kpwnn229nm] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
}

.spis-tisk-tlac-ikona[b-kpwnn229nm] {
    width: 1rem;
    height: 1rem;
    flex: none;
}

@media print {
    /* Pryč vše, co na papír nepatří. */
    .odkaz-zpet[b-kpwnn229nm],
    .kicker[b-kpwnn229nm],
    h1[b-kpwnn229nm],
    .spis-text[b-kpwnn229nm],
    .spis-vyber[b-kpwnn229nm],
    .spis-vyzva[b-kpwnn229nm],
    .spis-deni[b-kpwnn229nm],
    .spis-taby[b-kpwnn229nm],
    .spis-hlaska[b-kpwnn229nm],
    .spis-majetek-uvod[b-kpwnn229nm],
    .maj-pridat-tlac[b-kpwnn229nm],
    .maj-pridat-form[b-kpwnn229nm],
    .maj-uprava-form[b-kpwnn229nm],
    .spis-tisk-tlac[b-kpwnn229nm],
    .maj-graf[b-kpwnn229nm] {
        display: none !important;
    }

    /* Hlavička dokumentu: logo vlevo, titul a datum vpravo, linka pod tím. */
    .spis-tisk-hlavicka[b-kpwnn229nm] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1.5rem;
        padding-bottom: 0.9rem;
        margin-bottom: 1.1rem;
        border-bottom: 2px solid var(--c-hneda);
    }

    .spis-tisk-logo[b-kpwnn229nm] {
        height: 44px;
        width: auto;
    }

    .spis-tisk-udaje[b-kpwnn229nm] {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 0.15rem;
    }

    .spis-tisk-titul[b-kpwnn229nm] {
        font-family: var(--font-nadpis);
        font-size: 1.2rem;
        font-weight: 600;
        color: var(--c-hneda-tmava);
    }

    .spis-tisk-datum[b-kpwnn229nm] {
        font-size: 0.85rem;
        color: var(--barva-text-tlumeny);
    }

    /* Panel bez obrazovkového rámu karty — papír je dokument sám o sobě. */
    .spis-panel[b-kpwnn229nm] {
        border: none;
        box-shadow: none;
        padding: 0;
        overflow: visible;
    }

    .maj-skupina-hlava[b-kpwnn229nm] {
        break-after: avoid;
    }
}

/* ============================================================================
   C18 — sbalený výběr rodiny (proužek „Změnit rodinu") + „Načítám…"
   ============================================================================ */
.spis-vyber-prouzek[b-kpwnn229nm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.6rem 0.9rem;
    flex-wrap: wrap;
}
.spis-vyber-prouzek-text[b-kpwnn229nm] {
    color: var(--c-hneda-tmava);
    font-size: 0.95rem;
}

.spis-nacitam[b-kpwnn229nm] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0.75rem 0;
    font-size: 0.92rem;
}
.spis-nacitam-tecky[b-kpwnn229nm] {
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    border: 2px solid var(--barva-linka);
    border-top-color: var(--c-zelena-tmava);
    animation: spis-nacitam-rot-b-kpwnn229nm 0.8s linear infinite;
}
@keyframes spis-nacitam-rot-b-kpwnn229nm { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .spis-nacitam-tecky[b-kpwnn229nm] { animation: none; }
}

/* ============================================================================
   C10 — hlavička rodokmenu + přepínač zobrazení (strom / seznam)
   ============================================================================ */
.spis-rodokmen-hlava[b-kpwnn229nm] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    position: relative;
}
.spis-rodokmen-prepinac[b-kpwnn229nm] {
    display: inline-flex;
    border: 1px solid var(--barva-linka);
    border-radius: 999px;
    overflow: hidden;
}
.spis-rk-tlac[b-kpwnn229nm] {
    background: var(--c-bila);
    border: none;
    padding: 0.3rem 0.85rem;
    font: inherit;
    font-size: 0.82rem;
    color: var(--c-hneda-tmava);
    cursor: pointer;
}
.spis-rk-tlac + .spis-rk-tlac[b-kpwnn229nm] { border-left: 1px solid var(--barva-linka); }
.spis-rk-tlac.je-aktivni[b-kpwnn229nm] {
    background: var(--c-zelena-tmava);
    color: var(--c-bila);
}
.spis-rk-tlac:focus-visible[b-kpwnn229nm] { outline: 2px solid var(--c-zelena-tmava); outline-offset: 2px; }

/* ============================================================================
   C10 — mini legenda (4 generace barvou + 2 typy vazeb)
   ============================================================================ */
.spis-rk-legenda[b-kpwnn229nm] {
    list-style: none;
    margin: 0.5rem 0 0.25rem;
    padding: 0.6rem 0.4rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.4rem 1.1rem;
    border-top: 1px solid var(--barva-linka);
    border-bottom: 1px solid var(--barva-linka);
}
.spis-rk-leg-i[b-kpwnn229nm] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.78rem;
    color: var(--c-hneda);
}
.spis-rk-leg-tecka[b-kpwnn229nm] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--leg, var(--c-hneda));
    box-shadow: 0 0 0 1px rgba(63, 47, 36, 0.12) inset;
    flex: none;
}
.spis-rk-leg-cara[b-kpwnn229nm] {
    width: 24px;
    height: 0;
    border-top: 3px solid #241a12;
    flex: none;
}
.leg-cara-krev[b-kpwnn229nm] { border-top: 3px solid #241a12; }
.leg-cara-partner[b-kpwnn229nm] { border-top: 3px dashed var(--c-cihlova); }

/* Barvy generací — musí ladit s .rodokmen-uzel.gen-N v cimpel.css. */
.leg-gen-0[b-kpwnn229nm] { --leg: #8A5A2B; }
.leg-gen-1[b-kpwnn229nm] { --leg: #A6462E; }
.leg-gen-2[b-kpwnn229nm] { --leg: #AF7A1C; }
.leg-gen-3[b-kpwnn229nm] { --leg: #6E8B2A; }

/* ============================================================================
   C10 — karta člena JEN PRO ČTENÍ (první klepnutí; „Upravit" jen personál)
   ============================================================================ */
.spis-clen-detail[b-kpwnn229nm] {
    border: 1px solid var(--barva-linka);
    border-radius: 14px;
    background: var(--c-bila);
    padding: 0.9rem 1rem;
    margin: 0.75rem auto;
    max-width: 460px;
    box-shadow: 0 6px 18px rgba(63, 47, 36, 0.10);
    scroll-margin-top: 5rem;
}
.spis-clen-detail-hlava[b-kpwnn229nm] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}
.spis-clen-detail-jmeno[b-kpwnn229nm] {
    font-family: var(--font-nadpis);
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--c-hneda-tmava);
}
.spis-clen-detail-zavrit[b-kpwnn229nm] {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.3rem;
    line-height: 1;
    color: var(--barva-text-tlumeny);
    padding: 0 0.25rem;
}
.spis-clen-detail-zavrit:focus-visible[b-kpwnn229nm] { outline: 2px solid var(--c-zelena-tmava); }
.spis-clen-detail-role[b-kpwnn229nm] {
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--barva-akcent-text, var(--c-zelena-tmava));
    margin-top: 0.15rem;
}
.spis-clen-detail-vazby[b-kpwnn229nm] {
    margin: 0.6rem 0 0;
    display: grid;
    gap: 0.35rem;
}
.spis-clen-detail-vazby > div[b-kpwnn229nm] {
    display: flex;
    gap: 0.5rem;
    font-size: 0.9rem;
}
.spis-clen-detail-vazby dt[b-kpwnn229nm] {
    flex: none;
    width: 6.5rem;
    color: var(--barva-text-tlumeny);
}
.spis-clen-detail-vazby dd[b-kpwnn229nm] {
    margin: 0;
    color: var(--c-hneda-tmava);
}
.spis-clen-detail-pozn[b-kpwnn229nm] {
    margin: 0.6rem 0 0;
    font-size: 0.88rem;
    line-height: 1.45;
}
.spis-clen-detail-akce[b-kpwnn229nm] {
    margin-top: 0.85rem;
    display: flex;
    justify-content: flex-end;
}

/* ============================================================================
   C10 — strom rodiny a tabulka členů (táž data, dvě podoby)
   ============================================================================ */
/* Přepínač Strom/Tabulka zanikl 2. 8. 2026 — nutil volit mezi dvěma pohledy na totéž.
   O tom, která podoba je vidět, rozhoduje JEDNO místo na konci souboru
   (`.spis-rodokmen-seznam { display: none }` + médium). Nerozděluj to zpátky sem:
   médium nezvyšuje specificitu, takže pravidlo o pár set řádků níž ho přebije
   a mobilní náhrada stromu by se nikdy neukázala. */

.spis-rodokmen-seznam[b-kpwnn229nm] {
    /* Dřív tu byl úzký sloupec jmen (max-width 560 px). Od převodu na tabulku (ADR-0049)
       potřebuje plnou šířku panelu — jinak se pět sloupců mačká do třetiny obrazovky. */
    margin: 0.5rem 0 0;
}

/* ============================================================================
   C18 — sbalitelná hlavička skupiny dokumentů (z <header> se stalo tlačítko)
   ============================================================================ */
.maj-skupina-prepinac[b-kpwnn229nm] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    background: none;
    border: none;
    padding: 0.5rem 0;
    margin: 0;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: inherit;
}
.maj-skupina-prepinac:focus-visible[b-kpwnn229nm] { outline: 2px solid var(--c-zelena-tmava); outline-offset: 2px; }
.maj-skupina-sipka[b-kpwnn229nm] {
    flex: none;
    color: var(--barva-text-tlumeny);
    font-size: 0.8rem;
    width: 1rem;
    text-align: center;
}
.maj-skupina-sbalitelna:not(.je-rozbaleno) .maj-skupina-prepinac:hover .maj-skupina-nazev[b-kpwnn229nm] {
    text-decoration: underline;
}

/* Seznam vlastníků (`maj-vlast-*`) zanikl 14. 8. 2026 — vlastníky kreslí tabulka `.pol-tab`
   (přání uživatele: „cestou přehledných tabulek"). Zásada z ADR-0048 platí dál: ukončené vazby
   zůstávají viditelné, jen ztlumené (`.pol-tab tr.je-ukoncena`). */

/* Volba „vlastní rodina mimo mandát" u zakládání (ADR-0050) — nenápadná, je to výjimka. */
.spis-zaskrtavatko[b-kpwnn229nm] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: var(--barva-text-tlumeny);
    white-space: nowrap;
    cursor: pointer;
}

.spis-zaskrtavatko input[b-kpwnn229nm] { accent-color: var(--barva-akcent); }

/* --- Nedílná společenství (story A5) ------------------------------------
   Hustý seznam v duchu back office: druh, název, členové, platnost, akce. */
.spis-spol-seznam[b-kpwnn229nm] {
    list-style: none;
    margin: 0 0 0.75rem;
    padding: 0;
}

.spis-spol-radek[b-kpwnn229nm] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.32rem 0;
    border-bottom: 1px solid var(--barva-linka);
    font-size: 0.88rem;
}

/* Zaniklé společenství zůstává vidět, ale zešedne — bez něj by historický majetek
   zůstal bez vlastníka, takže se nemaže. */
.spis-spol-radek.je-ukoncene[b-kpwnn229nm] { color: var(--barva-text-tlumeny); }

.spis-spol-druh[b-kpwnn229nm] {
    flex: 0 0 11rem;
    color: var(--barva-text-tlumeny);
}

.spis-spol-nazev[b-kpwnn229nm] {
    flex: 1 1 12rem;
    min-width: 0;
    font-weight: 600;
}

.spis-spol-clenove[b-kpwnn229nm] { flex: 1 1 10rem; min-width: 0; }

.spis-spol-platnost[b-kpwnn229nm] {
    flex: 0 0 auto;
    font-size: 0.8rem;
    color: var(--barva-text-tlumeny);
}

/* Zamčená hodnota položky (story A6) — místo vstupu se ukáže číslo s vysvětlením,
   protože po prvním dokladu se hodnota mění jen zaznamenáním ocenění. */
.spis-hodnota-zamcena[b-kpwnn229nm] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    flex: 1 1 auto;
    padding: 0.55rem 0;
    font-variant-numeric: tabular-nums;
    font-size: 0.92rem;
    color: var(--barva-text);
}

/* ---------- Pravý panel: zakládání nové rodiny (11. 8. 2026) ---------------
   Rozvržení tří sloupců je sdílené (.bo-s-panelem v backoffice-mock.css); tady jsou jen
   vnitřnosti panelu. Řádek je TLAČÍTKO, ne odkaz: otevření rodiny je akce nad stavem
   stránky (načte spis do prostředka), ne přechod na jinou adresu. */
/* POZOR na `flex: 1` u .spis-vstup: ve VODOROVNÉM formuláři roste do šířky, ve svislém
   panelu do VÝŠKY — pole pak vypadá jako textarea (týž jev jako u .zpole, ADR-0063 §8).
   Proto tu `flex: none` a šířka natvrdo. */
.spis-panel-formular[b-kpwnn229nm] { display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
.spis-panel-formular .spis-vstup[b-kpwnn229nm] { flex: none; width: 100%; }
.spis-panel-formular .spis-label[b-kpwnn229nm] { font-size: 10.5px; }
/* Zaškrtávátko je řádek „box + text" zleva; bez tohohle ho zarovnání formulářů v .mck
   odsune doprava a text se odtrhne od svého políčka. */
.spis-panel-formular .spis-zaskrtavatko[b-kpwnn229nm] {
    display: flex; align-items: flex-start; gap: 6px;
    font-size: 11.5px; line-height: 1.35; text-align: left;
}
/* Políčko má PEVNOU velikost a text se smí zalomit. Bez obojího roste checkbox do celé
   šířky formuláře (dědí `flex: 1` z vodorovné varianty) a popisek s `nowrap` pak přeteče
   za okraj panelu — přesně to bylo na první podobě panelu vidět. */
.spis-panel-formular .spis-zaskrtavatko input[type="checkbox"][b-kpwnn229nm] {
    flex: 0 0 auto; width: 14px; height: 14px; margin: 2px 0 0;
}
.spis-panel-formular .spis-zaskrtavatko span[b-kpwnn229nm] { flex: 1 1 auto; min-width: 0; white-space: normal; }
.spis-panel-formular .tlacitko[b-kpwnn229nm] { align-self: stretch; }

    width: 100%; text-align: left; display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
    padding: 6px 8px; border: 1px solid transparent; border-radius: 6px;
    background: transparent; color: var(--text); font: inherit; font-size: 12.5px; cursor: pointer;[b-kpwnn229nm]
}
/* Otevřená rodina nese TÝŽ olivový proužek jako aktivní položka menu a aktivní záložka —
   „kde právě jsem" má v celém back office jednu barvu a jeden tvar. */
    background: var(--brand-soft); border-color: color-mix(in srgb, var(--brand) 35%, transparent);
    font-weight: 600;
    box-shadow: inset 3px 0 0 var(--brand);[b-kpwnn229nm]
}
/* Akce se vysunou POD otevřený řádek — v úzkém panelu se vedle názvu nevejdou a schovat
   je za najetí myší nejde (dotyk ani klávesnice na to nedosáhnou). */
/* Globální `.tabulka-akce` je PRŮHLEDNÉ, dokud kurzor nestojí na řádku tabulky (tabulka.css)
   — v panelu žádný řádek tabulky není, takže by tlačítka zabírala místo a nešla vidět.
   Týž důvod jako u `.maj-skupina-vic .tabulka-akce` výš. */
/* ---------- Seznam rodin uprostřed: VZDUŠNÁ tabulka podle návrhu (25. 8. 2026) -------
   Do 25. 8. 2026 tu byla „excel like" mřížka po vzoru Business Centralu: hustý řádek
   a SVISLÉ linky mezi sloupci. Návrh (`.tb`) mřížku nemá a vede oko jen vodorovně —
   svislice se proto zrušily a podobu řádku řídí `.tabulka.je-vzdusna` v tabulka.css.
   Ukotvená hlavička a rolování uvnitř zůstávají: rodin můžou být stovky. */
/* HLAVIČKA MÁ JEDEN ODSTÍN A ŘÍDÍ HO GLOBÁLNÍ `tabulka.css`. Tady BYLO
   `.spis-vyber .tabulka thead th { background: var(--surface-2) }` — jenže scoped CSS
   nedosáhne na cizí komponentu, takže obarvilo jen buňky psané v RodinnySpis.razor
   a hlavičky z komponenty SeznamHlavicka zůstaly jiné. V jedné hlavičce byly dva odstíny. */
/* Jméno rodiny nese váhu řádku: v seznamu o stovkách položek se oko chytá jednoho sloupce. */
.spis-vyber .tabulka td.sl-hlavni[b-kpwnn229nm] { font-weight: 600; }
/* Karta kolem tabulky už nemusí odsazovat — mřížka si okraje kreslí sama. */
.spis-vyber[b-kpwnn229nm] { padding: 0; }
.spis-vyber-hlava[b-kpwnn229nm] { padding: 10px 14px 0; }
/* Tabulka využije šířku prostředního sloupce; Poznámka je pružný sloupec, ostatní úzké —
   jinak se seznam roztáhne za okraj karty a vodorovně scrolluje i tam, kde nemusí. */
/* Poznámka je PRUŽNÝ sloupec, ostatní se smrští na obsah. Cílí se TŘÍDOU, ne pořadím:
   `nth-child(3)` ukazovalo po přidání sloupce Druh na Stav a tabulka se rozjela. */
.spis-vyber .tabulka[b-kpwnn229nm] { width: 100%; table-layout: auto; }
.spis-vyber .tabulka td.sl-text[b-kpwnn229nm], .spis-vyber .tabulka th.sl-poznamka[b-kpwnn229nm] { width: 100%; }
.spis-vyber .tabulka th.sl-uzky[b-kpwnn229nm], .spis-vyber .tabulka td.sl-uzky[b-kpwnn229nm],
.spis-vyber .tabulka th.sl-hlavni[b-kpwnn229nm] { white-space: nowrap; width: 1%; }

/* ---------- Podoba seznamu (11. 8. 2026) -----------------------------------
   Bez stínu (velké ERP kreslí seznam jako mřížku dat, ne jako widget), ale ZAOBLENÝ
   STEJNĚ JAKO PRAVÝ PANEL: hranatý rám vedle zaobleného panelu vypadal, že tam každý
   patří z jiné aplikace. Poloměr je týž jako u `.bo-panel-karta`. */
.spis-vyber[b-kpwnn229nm] { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; box-shadow: none; }
.spis-vyber-hlava h2[b-kpwnn229nm] { font-size: 13px; margin: 0; }
/* Ikonová akce: čtvercová, tichá, význam nese title/aria-label (viz markup). */
.tabulka-akce.je-ikona[b-kpwnn229nm] {
    width: 24px; padding: 2px 0; text-align: center; font-size: 13px; line-height: 1.2;
}
.sl-akce[b-kpwnn229nm] { white-space: nowrap; width: 1%; }

/* Svislá podoba lišty (`.je-svisle`) tu BYLA, dokud navigace sekcí bydlela v pravém panelu.
   Od 11. 8. 2026 je lišta zase nad obsahem a panel nese akce ke kartě, takže pravidla zmizela
   i s třídou v markupu. */
/* Poslední dění v panelu: úzký sloupec, takže se řádky zalamují a nekrátí se do prázdna. */
.bo-panel .spis-deni[b-kpwnn229nm] { margin: 0; }
.bo-panel .spis-deni-polozka[b-kpwnn229nm] { white-space: normal; }

/* Obal tabulky ztrácí vlastní rám — kreslí ho už `.spis-vyber`. Zaoblení dědí od karty,
   ať se roh tabulky nevykousne z rohu rámu. */
.spis-vyber .tabulka-obal[b-kpwnn229nm] { border-radius: 0 0 10px 10px; }
.spis-vyber .tabulka-obal[b-kpwnn229nm] { border: 0; }

/* Odsazení buněk řídí `.tabulka.je-vzdusna` (7 × 10,5 px z návrhu). Tohle pravidlo
   je specifičtější než globální varianta, takže musí nést tutéž hodnotu — jinak by
   tabulku potichu vrátilo na hustých 10 px. */
.spis-vyber .tabulka th[b-kpwnn229nm], .spis-vyber .tabulka td[b-kpwnn229nm] { padding-inline: 10.5px; }
.spis-vyber .tabulka-obal[b-kpwnn229nm] { padding: 0; }

/* Svislice mezi sloupci tu byly do 25. 8. 2026 (viz výš) — návrh je nemá. */

/* Druh je slovo, ne odznak. */
.spis-vyber .tabulka td.sl-druh[b-kpwnn229nm] { color: var(--text-dim); }

/* AKCE JSOU VIDĚT VŽDY. Globální `.tabulka-akce` je průhledné, dokud kurzor nestojí na
   řádku — u seznamu rodin to znamenalo „kde jsou sloupce archivovat a mazat?". */
.spis-vyber .tabulka-akce[b-kpwnn229nm] { opacity: 1; }
.spis-vyber .tabulka .sl-akce[b-kpwnn229nm] { text-align: right; }

/* ---------- Členové v pravém panelu (11. 8. 2026) --------------------------
   Kompaktní řádek: jméno + generace/rok pod ním. Scrolluje uvnitř sebe, aby početná
   rodina nepřerostla obrazovku a panel zůstal celý na dosah. */
.spis-panel-pocet[b-kpwnn229nm] { margin-left: 6px; font-weight: 600; color: var(--text-mute); }
.spis-panel-pridat[b-kpwnn229nm] { width: 100%; margin-bottom: 8px; }
.spis-clenove-seznam[b-kpwnn229nm] {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-direction: column; gap: 1px;
    max-height: 46vh; overflow-y: auto;
}
.spis-clen-radek[b-kpwnn229nm] {
    width: 100%; text-align: left; display: flex; flex-direction: column; gap: 1px;
    padding: 5px 8px; border: 1px solid transparent; border-radius: 6px;
    background: transparent; font: inherit; font-size: 12.5px; color: var(--text); cursor: pointer;
}
.spis-clen-radek:hover[b-kpwnn229nm] { background: var(--surface-2); }
/* Vybraný člen se pozná VÝPLNÍ, ne rámečkem (žádné zelené orámování). */
.spis-clen-radek.je-vybrany[b-kpwnn229nm] { background: var(--brand-soft); font-weight: 600; }
.spis-clen-jmeno[b-kpwnn229nm] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spis-clen-meta[b-kpwnn229nm] { font-size: 11px; }

/* ---------- Členové v pravém panelu (11. 8. 2026) --------------------------
   Kompaktní řádek: jméno a pod ním generace/rok. Scrolluje uvnitř sebe, aby početná
   rodina nepřerostla obrazovku a zbytek panelu zůstal na dosah. */
.spis-panel-pocet[b-kpwnn229nm] { margin-left: 6px; font-weight: 600; color: var(--text-mute); }
.spis-panel-pridat[b-kpwnn229nm] { width: 100%; margin-bottom: 8px; }
.spis-clenove-seznam[b-kpwnn229nm] {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-direction: column; gap: 1px;
    max-height: 46vh; overflow-y: auto;
}
.spis-clen-radek[b-kpwnn229nm] {
    width: 100%; text-align: left; display: flex; flex-direction: column; gap: 1px;
    padding: 5px 8px; border: 1px solid transparent; border-radius: 6px;
    background: transparent; font: inherit; font-size: 12.5px; color: var(--text); cursor: pointer;
}
.spis-clen-radek:hover[b-kpwnn229nm] { background: var(--surface-2); }
/* Vybraný člen se pozná VÝPLNÍ, ne rámečkem (žádné zelené orámování — trvalé přání). */
.spis-clen-radek.je-vybrany[b-kpwnn229nm] { background: var(--brand-soft); font-weight: 600; }
.spis-clen-jmeno[b-kpwnn229nm] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spis-clen-meta[b-kpwnn229nm] { font-size: 11px; }

/* Prostřední tabulka členů se SKRÝVÁ — členy ukazuje pravý panel a uprostřed má být po otevření
   rodiny vidět celý strom (tabulka nad ním ho odsouvala pod fold). Skrývá se CSS, ne vyříznutím
   z markupu: na úzkém displeji, kde se strom nedá přečíst, je tabulka jeho jediná čitelná
   náhrada (ADR-0049) — proto ji níž média zase zapíná.
   POZOR na historii: `display: none` tady jednou BYLO a strom po něm zmizel taky. Nebylo to
   skládáním výšek (`.spis-rodokmen` žádné pravidlo nemá), ale VNOŘENÍM — strom seděl uvnitř
   `.spis-rodokmen-seznam`. Opraveno v markupu 11. 8. 2026, viz komentář v RodinnySpis.razor. */
.spis-rodokmen-strom[b-kpwnn229nm] { display: block; }
.spis-rodokmen-seznam[b-kpwnn229nm] { display: none; }

/* Na úzkém displeji se strom nevejde a stejně se z něj nedá nic přečíst → prohodit podoby.
   Pravý panel se pod 1250 px zalomí pod obsah, takže členy jsou dosažitelné i tady. */
@media (max-width: 600px) {
    .spis-rodokmen-strom[b-kpwnn229nm] { display: none; }
    .spis-rodokmen-seznam[b-kpwnn229nm] { display: block; }
}


/* ============================================================================
   KARTA POLOŽKY — oblasti pod sebou, hustě a bez rámečků
   ----------------------------------------------------------------------------
   Oblasti se sem přestěhovaly z pravého panelu, kde každá byla samostatná
   vyzvednutá krabice se ZELENÝM okrajem — v panelu se totiž ukazovala vždycky
   jen jedna a rámeček říkal „tohle je to otevřené". V kartě jsou vidět všechny
   naráz, takže šest zelených krabic pod sebou nic neodlišuje, jen křičí; zelená
   navíc patří aktivnímu stavu, ne ohraničení (pravidlo „žádné zelené orámování").

   Místo krabic je VLASOVÁ LINKA mezi oblastmi. Odděluje stejně dobře a nebere
   výšku — a karty se otevírají kvůli práci, ne kvůli dívání.
   ============================================================================ */

/* JEDNA TYPOGRAFICKÁ STUPNICE PRO CELOU KARTU (14. 8. 2026, přání uživatele: „střídají se různé
   velikosti písma… je to neprehledné a nesystematické").

   Změřeno na živé kartě: DVANÁCT různých velikostí a tři rodiny písma. Vznikalo to tím, že karta
   recykluje formuláře napsané pro ÚZKÝ PRAVÝ PANEL a každý blok si nesl vlastní velikost, kterou
   karta na několika místech lokálně opravovala. Nejvíc bilo do očí, že NÁPOVĚDNÉ VĚTY byly 16 px
   v kartě, kde je obsah 13 px — vysvětlivka tedy byla větší než údaj, o kterém mluví.

   Stupnice má TŘI kroky a víc jich být nemá: nadpis sekce · obsah (včetně polí) · drobné
   (nápovědy, štítky). Čtvrtá velikost by musela mít vlastní význam, a ten tu není. */
.pol-karta[b-kpwnn229nm] {
    --pol-nadpis: 0.72rem;      /* kapitálky nadpisu sekce */
    --pol-text: 0.82rem;        /* obsah, pole, věty */
    --pol-drobne: 0.74rem;      /* nápovědy, štítky, vysvětlivky */
    --pol-radek: 28px;          /* JEDNA výška řádku: pole i buňky tabulky */

    padding: 0.6rem 0.9rem 0.9rem;
    font-size: var(--pol-text);
}

/* VĚTY MAJÍ VELIKOST OBSAHU, ne o čtvrtinu větší. `.spis-text` je psaný pro plnou šířku stránky
   (1rem, 70ch) — v kartě je to vysvětlivka mezi poli, ne hlavní text obrazovky. */
.pol-karta .spis-text[b-kpwnn229nm] {
    font-size: var(--pol-text);
    line-height: 1.5;
    max-width: 62ch;
}

.pol-karta .pol-oblast-hlava[b-kpwnn229nm] { font-size: var(--pol-nadpis); }

/* Pole a buňky mají JEDNU výšku (`--pol-radek`) — jinak formulář vedle tabulky drží jinou
   mřížku než tabulka a karta „skáče" (pokyn uživatele 14. 8. 2026: sjednotit výšku buněk). */
.pol-karta .pol-form-pole[b-kpwnn229nm]  input,
.pol-karta .pol-form-pole[b-kpwnn229nm]  select,
.pol-karta .pol-form-pole input[b-kpwnn229nm],
.pol-karta .pol-form-pole select[b-kpwnn229nm] { height: var(--pol-radek); }

.pol-karta .pol-oblast-popis[b-kpwnn229nm],
.pol-karta .spis-popisek[b-kpwnn229nm],
.pol-karta label[b-kpwnn229nm],
.pol-karta[b-kpwnn229nm]  label,
.pol-karta[b-kpwnn229nm]  .zpole-popisek { font-size: var(--pol-drobne); }

/* --- MŘÍŽKA ŠTÍTEK | POLE (14. 8. 2026, přání uživatele: „cestou přehledných tabulek"). ---
   Do té doby byl jediným popiskem pole PLACEHOLDER — a ten zmizí, jakmile se začne psát,
   takže vyplněný formulář („4 200 000" / „CZK" / volný text) nešel přečíst: nebylo poznat,
   co je ocenění, co měna a co poznámka. Štítek vlevo v pevném sloupci navíc srovná všechny
   sekce karty na jednu svislici — to je ta „systematičnost", která chyběla. */
.pol-form[b-kpwnn229nm] {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 7px 12px;
    align-items: center;
}

.pol-form-stitek[b-kpwnn229nm] {
    font-size: var(--pol-drobne);
    color: var(--barva-text-tlumeny);
    line-height: 1.3;
}

/* Víc polí v jednom řádku mřížky (hodnota + datum, metoda + zdroj). */
.pol-form-pole[b-kpwnn229nm] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    min-width: 0;
}

/* Věty a tlačítka jdou přes celou šířku — mřížka je pro pole, ne pro prózu. */
.pol-form-cele[b-kpwnn229nm] { grid-column: 1 / -1; }

/* --- TABULKA UVNITŘ SEKCE KARTY (`.pol-tab`) SE PŘESTĚHOVALA DO GLOBÁLNÍHO LISTU ------------
   17. 8. 2026: karta položky mluví tabulkami i v komponentách, které si kreslí sama
   (`KartaCisla`, `KartaProtistrany`, `OceneniHistorie`). Scoped CSS stránky k nim nedosáhne, a druhá
   sada čísel s `::deep` by znamenala dvě různé výšky řádku pro jednu tabulku. Pravidla jsou
   proto v `css/backoffice-mock.css` jako `.mck .pol-tab…` — proměnné `--pol-*` si dědí
   z `.pol-karta`, takže hustota zůstává vlastností karty. --- */

.pol-karta .spis-nahled[b-kpwnn229nm],
.pol-karta .maj-uprava-inline[b-kpwnn229nm] {
    padding: 0.45rem 0;
    border: 0;
    border-top: 1px solid var(--barva-linka);
    border-radius: 0;
    background: none;
}

/* První oblast linku nahoře nepotřebuje — nad ní je hrana karty. */
.pol-karta > .spis-nahled:first-of-type[b-kpwnn229nm],
.pol-karta > .maj-uprava-inline:first-of-type[b-kpwnn229nm] {
    border-top: 0;
    padding-top: 0;
}

/* HUSTĚJI. Formuláře jsou stavěné pro úzký panel, kde se pole skládala pod sebe;
   na šířku karty se jich do řádku vejde víc a mezery můžou být menší. */
.pol-karta .spis-radek[b-kpwnn229nm] {
    gap: 6px;
    margin-bottom: 6px;
}

.pol-karta .spis-formular[b-kpwnn229nm] { gap: 6px; }

/* `::deep` MUSÍ BÝT (past z CLAUDE.md): pole kreslí CIZÍ komponenty (CisloPole, DatumPole,
   ZarazeniPole), takže scoped CSS stránky na ně bez `::deep` nedosáhne. Bez toho si pole držela
   svých 0.92rem (14,7 px) z obecného pravidla, zatímco obsah karty byl 13,1 px — a právě tenhle
   rozdíl vypadal jako „střídají se velikosti písma". Změřeno v prohlížeči, ne odhadnuto. */
.pol-karta .spis-vstup[b-kpwnn229nm],
.pol-karta[b-kpwnn229nm]  .spis-vstup,
.pol-karta select.spis-vstup[b-kpwnn229nm],
.pol-karta[b-kpwnn229nm]  select.spis-vstup,
.pol-karta[b-kpwnn229nm]  .pole {
    height: 28px;
    padding-block: 0;
    padding-inline: 9px;
    font-size: var(--pol-text);
}

/* POLE VEDLE SEBE, ne pod sebou. Formuláře jsou psané pro úzký panel, kde se každé
   roztáhlo na celou šířku — na kartě z toho byl sloupec dlouhý přes obrazovku (blok
   úpravy sám měřil 504 px). Tady se řádek zalamuje a pole si berou jen tolik, kolik
   potřebují; strop je proto, aby jedno pole nezabralo celou šířku karty. */
.pol-karta .spis-radek[b-kpwnn229nm] {
    flex-wrap: wrap;
    align-items: center;
}

.pol-karta .spis-radek > .spis-vstup[b-kpwnn229nm],
.pol-karta .spis-radek > select.spis-vstup[b-kpwnn229nm] {
    flex: 1 1 170px;
    min-width: 0;
    max-width: 320px;
}

.pol-karta .zpole[b-kpwnn229nm] { flex: none; }

.pol-karta .tlacitko[b-kpwnn229nm] {
    padding: 4px 11px;
    font-size: var(--pol-text);
}

/* Vysvětlivky pod poli jsou v kartě na obtíž: čtou se jednou a pak už jen zabírají
   řádek nad tlačítkem. Zůstávají, ale drobně a tlumeně. */
.pol-karta .spis-napoveda[b-kpwnn229nm],
.pol-karta .spis-prazdno[b-kpwnn229nm] {
    margin: 0 0 4px;
    font-size: var(--pol-drobne);
    line-height: 1.4;
}


/* DVA SLOUPCE NA ŠIROKÉ KARTĚ. Oblasti stály pod sebou, takže karta měřila přes 1700 px
   a k úpravě základních údajů se muselo rolovat — přitom vpravo zbývala prázdná půlka.
   Složení jde přes obě: nese tabulku titulů, které by se ve sloupci uřízly.

   SLOUPCE JSOU MULTICOL, NE MŘÍŽKA (17. 8. 2026). V mřížce leží dvě sousední oblasti ve
   společném ŘÁDKU, takže vyšší z nich určí výšku obou — a pod tou nižší zbude díra. Změřeno
   u portfolia: „Vlastnictví" (172 px) vedle „Ocenění" (540 px) nechalo v levém sloupci
   368 px prázdna a karta měřila 1607 px. Vícesloupcový tok řádky nezná: oblasti se do
   sloupců rozlijí za sebou a výška se vyrovná sama (portfolio 1607 → 1197 px, nemovitost
   1181 → 924 px). `break-inside: avoid` drží oblast vcelku, ať se formulář neroztrhne
   mezi sloupce.

   Mez 1100 px, ne „vždycky": pod ní je sloupec užší než formulář a pole by se zalomila
   do sloupečku pod sebou, tedy přesně to, čemu se karta vyhýbá. */
@media (min-width: 1100px) {
    .pol-karta[b-kpwnn229nm] {
        columns: 2;
        column-gap: 26px;
    }

    /* V mřížce dělal odstup `column-gap`; linka odděluje oblasti pod sebou ve sloupci. */
    .pol-karta > .spis-nahled[b-kpwnn229nm],
    .pol-karta > .maj-uprava-inline[b-kpwnn229nm] {
        break-inside: avoid;
        padding-top: 0.5rem;
    }

    /* Přes celou šířku jde JEN oblast, která si o to řekne třídou — dřív to bylo
       `:first-of-type`, jenže první oblastí je složení pouze u portfolia. U nemovitosti,
       podílu i alternativy se tak přes 1800 px roztáhlo „Vlastnictví" a mezi formou
       vlastnictví a podílem zely tři sta pixelů prázdné tabulky. */
    .pol-karta > .pol-oblast-siroka[b-kpwnn229nm] {
        column-span: all;
    }
}


/* Nadpis oblasti v kartě položky. Drobný a tlumený: je to orientační bod, ne nadpis kapitoly —
   obsah pod ním musí zůstat to hlavní, co je vidět. */
.pol-karta .pol-oblast-hlava[b-kpwnn229nm] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0 0 6px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}

/* Vysvětlení vedle nadpisu — malým a bez verzálek, ať se nepere o pozornost s ním. */
.pol-karta .pol-oblast-popis[b-kpwnn229nm] {
    font-size: 0.74rem;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}

/* POZNÁMKA U KLIENTA — úprava kliknutím do buňky (17. 8. 2026), týž vzor jako u majetku.
   Dokud se do ní neklepne, vypadá jako text; pod kurzorem se ukáže rámeček, aby bylo poznat,
   že se do ní dá psát. Prázdná buňka nese pomlčku — bez ní není do čeho kliknout. */
.sl-poznamka-text[b-kpwnn229nm] {
    display: block;
    min-height: 18px;
    padding: 2px 6px;
    margin: -2px -6px;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    cursor: text;
    /* OŘEZ MUSÍ BÝT TADY, ne jen na buňce. Záporný okraj dělá ze spanu prvek ŠIRŠÍ než obsah
       buňky, takže ho `td { overflow: hidden }` usekne uprostřed slova a bez tří teček — a to
       se čte jako ztracený text, ne jako zkrácený. Vylezlo to, když tabulka dostala další tři
       sloupce (17. 8. 2026) a na poznámku zbylo míň místa. Celý zápis nese `title` buňky. */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sl-poznamka-text:hover[b-kpwnn229nm] { border-color: var(--border-hairline); background: var(--cream-50); }

.sl-poznamka-vstup[b-kpwnn229nm] {
    width: 100%;
    padding: 2px 6px;
    margin: -2px -6px;
    border: 1px solid var(--green-600);
    border-radius: var(--radius-sm);
    background: var(--white);
    font: inherit;
    color: var(--brown-900);
}

.sl-poznamka-vstup:focus[b-kpwnn229nm] { outline: none; }

/* Buňka v přepisu musí přetéct přes sousedy (výjimka z ořezu, ADR-0063 §6) — jinak by se
   do ní psalo „do škvíry". Váže se na `je-editovana`, ne na otevřený řádek. */
.tabulka td.sl-poznamka.je-editovana[b-kpwnn229nm] { overflow: visible; }
/* /Components/Pages/ZkusebnaKartaPolozky.razor.rz.scp.css */
/* Zkušebna karty položky — JEN rozvržení stránky a věrná náhrada složení portfolia.
   Podoba samotné karty (`ks-*`) bydlí v globálním listu wwwroot/css/karta-sekce.css. */

.zkp-stranka[b-46wgzz9exl] { padding-bottom: 40px; }

/* --- přepínač ukázkové položky ------------------------------------------------------------ */

.zkp-prepinac[b-46wgzz9exl] {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border-radius: var(--radius-pill);
    background: var(--cream-200);
}

.zkp-prep[b-46wgzz9exl] {
    border: 0;
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--barva-text-tlumeny);
    font-family: var(--font-text);
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    padding: 6px 12px;
    cursor: pointer;
}

.zkp-prep:hover[b-46wgzz9exl] { color: var(--barva-text); }
.zkp-prep.je-vybrany[b-46wgzz9exl] { background: var(--barva-povrch); color: var(--barva-text); }
.zkp-prep:focus-visible[b-46wgzz9exl] { outline: 2px solid var(--barva-text); outline-offset: 1px; }

/* --- široká tabulka uvnitř sekce ----------------------------------------------------------- */

/* VĚRNÁ NÁHRADA `.maj-poz-obal` z PozicePanel. Obal s posuvem si nese OBSAH, ne sekce: patnáct
   sloupců (1 870 px vah = pixelů) se do karty nevejde, tabulka si řekne o svoje a obal ji
   posune do strany. Tady jde o to ověřit, že tělo sekce takový blok unese — že se rám nerozbije
   a že posuv zůstane uvnitř, ne přes celou stránku. */
.zkp-siroky-obal[b-46wgzz9exl] {
    overflow-x: auto;
    border: 1px solid var(--barva-linka);
    border-radius: 10px;
    background: var(--barva-povrch);
    /* Jako v panelu: měrná soustava pro vnořené formuláře je šířka VÝŘEZU, ne tabulky. */
    container-type: inline-size;
}

.zkp-siroky-obal .zkp-tab[b-46wgzz9exl] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.zkp-siroky-obal .zkp-tab th[b-46wgzz9exl] {
    text-align: left;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
    padding: 0 12px;
    height: 30px;
    white-space: nowrap;
    border-bottom: 1px solid var(--barva-linka);
    background: var(--barva-pozadi);
}

.zkp-siroky-obal .zkp-tab td[b-46wgzz9exl] {
    padding: 0 12px;
    height: 28px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background: var(--barva-povrch);
    border-bottom: 1px solid var(--barva-linka);
}

/* Součet po měnách — nesčítá se napříč měnami, proto dva řádky a měna v popisku. */
.zkp-siroky-obal .zkp-tab tr.zkp-suma td[b-46wgzz9exl] {
    background: var(--barva-pozadi);
    font-weight: 700;
    border-bottom: 0;
    border-top: 1px solid var(--barva-linka);
}

/* --- úzké tabulky sekcí -------------------------------------------------------------------- */

.zkp-tab-uzka[b-46wgzz9exl] { width: 100%; }
.zkp-tab-uzka td[b-46wgzz9exl] { vertical-align: middle; }

/* --- deník --------------------------------------------------------------------------------- */

.zkp-denik[b-46wgzz9exl] {
    display: block;
    margin-top: 16px;
    background: var(--barva-povrch);
    border: 1px solid var(--barva-linka);
    border-radius: 10px;
    padding: 12px 14px 14px;
}

.zkp-nadpis[b-46wgzz9exl] {
    margin: 0 0 4px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}

.zkp-veta[b-46wgzz9exl] {
    margin: 0 0 10px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--barva-text-tlumeny);
}

.zkp-prazdno[b-46wgzz9exl] {
    margin: 0;
    font-size: 12.5px;
    font-style: italic;
    color: var(--barva-text-tlumeny);
}

.zkp-zaznamy[b-46wgzz9exl] {
    list-style: none;
    margin: 0 0 10px;
    padding: 0;
    max-height: 240px;
    overflow-y: auto;
}

.zkp-zaznamy li[b-46wgzz9exl] {
    display: flex;
    gap: 10px;
    padding: 4px 0;
    border-bottom: 1px solid var(--barva-linka);
    font-size: 12px;
}

.zkp-zaznamy li:last-child[b-46wgzz9exl] { border-bottom: 0; }

.zkp-cas[b-46wgzz9exl] {
    flex: none;
    font-variant-numeric: tabular-nums;
    color: var(--barva-text-tlumeny);
}
/* /Components/Pages/ZkusebnaUpravitelnaHodnota.razor.rz.scp.css */
/* Zkušebna upravitelné hodnoty — rozvržení stránky. Podoba samotného prvku (`uh-*`) bydlí
   v globálním listu wwwroot/css/upravitelna-hodnota.css; sem patří JEN to, co drží ukázky
   vedle sebe. */

.zk-stranka[b-e7535ytvko] { padding-bottom: 40px; }

.zk-rozvrh[b-e7535ytvko] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 16px;
    align-items: start;
}

@media (max-width: 1200px) {
    .zk-rozvrh[b-e7535ytvko] { grid-template-columns: minmax(0, 1fr); }
}

.zk-sloupce[b-e7535ytvko] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 14px;
    align-items: start;
}

.zk-karta[b-e7535ytvko] {
    background: var(--barva-povrch);
    border: 1px solid var(--barva-linka);
    border-radius: 10px;
    padding: 12px 14px 14px;
    min-width: 0;
}

/* Ukázky, které potřebují šířku (doptání, tabulka) — přes celý řádek mřížky. */
.zk-karta-siroka[b-e7535ytvko] { grid-column: 1 / -1; }

.zk-nadpis[b-e7535ytvko] {
    margin: 0 0 4px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
}

.zk-veta[b-e7535ytvko] {
    margin: 0 0 10px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--barva-text-tlumeny);
}

/* Mřížka POPISEK | HODNOTA. Řádek má MINIMÁLNÍ výšku, ne pevnou — jinak by se doptání
   („1,234, nebo 1 234?") uřízlo do škvíry. */
.zk-kv[b-e7535ytvko] {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);
    align-items: center;
    column-gap: 12px;
    margin: 0;
}

.zk-kv dt[b-e7535ytvko] {
    display: flex;
    align-items: center;
    min-height: 28px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--barva-text-tlumeny);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.zk-kv dd[b-e7535ytvko] {
    display: flex;
    align-items: center;
    min-height: 28px;
    margin: 0;
    min-width: 0;
    font-variant-numeric: tabular-nums;
}

.zk-tab[b-e7535ytvko] { width: 100%; }
.zk-tab td[b-e7535ytvko] { vertical-align: middle; }

/* --- deník zápisů --------------------------------------------------------------------- */

.zk-denik[b-e7535ytvko] {
    position: sticky;
    top: 12px;
    background: var(--barva-povrch);
    border: 1px solid var(--barva-linka);
    border-radius: 10px;
    padding: 12px 14px 14px;
}

.zk-prazdno[b-e7535ytvko] {
    margin: 0;
    font-size: 12.5px;
    font-style: italic;
    color: var(--barva-text-tlumeny);
}

.zk-zaznamy[b-e7535ytvko] {
    list-style: none;
    margin: 0 0 10px;
    padding: 0;
    max-height: 460px;
    overflow-y: auto;
}

.zk-zaznamy li[b-e7535ytvko] {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 2px 8px;
    padding: 5px 0;
    border-bottom: 1px solid var(--barva-linka);
    font-size: 12px;
}

.zk-zaznamy li:last-child[b-e7535ytvko] { border-bottom: 0; }

.zk-cas[b-e7535ytvko] {
    font-variant-numeric: tabular-nums;
    color: var(--barva-text-tlumeny);
}

.zk-pole[b-e7535ytvko] { font-weight: 600; }

.zk-zmena[b-e7535ytvko] {
    grid-column: 2;
    color: var(--barva-text-tlumeny);
    overflow-wrap: anywhere;
}
/* /Components/Podpora/BacklogBoard.razor.rz.scp.css */
/* Backlog — BOARD (kanban), přesunuto z Backlog.razor.css beze změny (ALF-16).
   Scoped CSS jde s markupem (BacklogBoard.razor) — jinak by pravidla přestala platit
   (scoped CSS nedosáhne na cizí komponentu). */

/* --- Board (kanban) — bílé karty ve sloupcích ------------------------------ */
/* Sloupce SDÍLEJÍ šířku (flex: 1 1 0; min-width: 0) → 6 stavů se vejde bez horizontálního
   scrollu; při zúžení se smrsknou, nescrolluje se. Až na úzkých oknech (< 900px) přejde na
   scrollovací pás s rozumnou minimální šířkou sloupce. */
/* ── BOARD PODLE PROTOTYPU (14. 8. 2026) ─────────────────────────────────────────────────
   Hlavičky sloupců jsou ŠIPKY: stavy jdou po sobě a šipka to říká beze slov. Zub se kreslí
   `clip-path`em, ne obrázkem — musí sedět na libovolnou šířku sloupce a nést barvu stavu.
   Sloupce jsou mřížka s pevným minimem: pod 216 px se karta nedá přečíst a raději se roluje
   do strany, než aby se šest sloupců zmáčklo do nečitelných proužků. */
.backlog-board[b-xa696mqpxe] {
    display: grid;
    grid-auto-flow: column;
    /* 251 px je šířka sloupce v návrhu (25. 8. 2026, ALF-18). Pod ní se karta nedá přečíst
       a raději se roluje do strany — návrh se chová stejně: šest sloupců po 251 se do 1383 px
       plochy nevejde a board scrolluje. */
    grid-auto-columns: minmax(251px, 1fr);
    /* Mezera 16 px (dřív 10): hrot zajíždí do výřezu souseda o 6 px místo 12, takže je mezi
       šipkami vidět zub. Přesah hlavičky zůstává 22 px — kdyby se zvětšil s mezerou, spoj by
       se zase zavřel a šipky by splynuly v jeden pás. */
    gap: 0 16px;
    /* STRETCH, ne start (oprava 16. 8. 2026, vytkl uživatel). Se `start` byl sloupec jen tak
       vysoký, jak sahaly karty — a protože cílem odložení je TĚLO sloupce, dalo se přetažením
       trefit jen do horní části. Pod poslední kartou už karta „nešla pustit" a vypadalo to,
       že přetahování funguje jen občas. Se `stretch` mají sloupce stejnou výšku a odložit
       jde kdekoli v nich. */
    align-items: stretch;
    padding-bottom: 4px;
    overflow-x: auto;
}
/* `grid-template-rows: auto 1fr` = hlavička nahoře, TĚLO VYPLNÍ ZBYTEK. Bez druhého řádku by
   tělo skončilo pod poslední kartou i u roztaženého sloupce a odložení by dál šlo jen nahoře. */
.backlog-sloupec[b-xa696mqpxe] { flex: 1 1 0; min-width: 0; background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r); display: grid; grid-template-rows: auto 1fr; gap: 6px; padding: 0 6px 6px; min-height: 80px; }
.backlog-sloupec.je-ztlumeny[b-xa696mqpxe] { opacity: 0.7; }
/* Nahrazeno pravidlem níž (podle návrhu) — tohle byla verze z přesunu. */
/* PRAVIDLA Z PŘESUNU (ALF-16) ODEŠLA 25. 8. 2026 (ALF-18): `.backlog-sloupec-nazev`,
   `.backlog-sloupec-pocet`, `.backlog-karta` a `.backlog-karta-pata` tu byly DVAKRÁT — jednou
   ve staré (husté) podobě a podruhé níž podle návrhu. Vyhrávala ta níž, takže se nic nekreslilo
   špatně, ale dvě definice téhož v jednom listu jsou přesně to, čím se board rozešel: kdo pak
   sáhne na tu první, mění něco jiného, než si myslí. Platí jediná — ta níž. */

/* Barevné kódování boardu (vzor NetSuite) — každá barva má JEDNU práci: horní proužek
   sloupce = STAV (týž jazyk jako pilulky stavů v seznamu), levá hrana karty = URGENCE
   (jen kritická/vysoká; hrana na všem by přestala být signál), DRUH říká barevná ikona.
   Nic dalšího se nebarví, ať signály nesplývají. */
/* ══ STARÝ DLAŽDICOVÝ VZHLED SLOUPCŮ JE PRYČ (15. 8. 2026) ═════════════════════════════════
   Zbylo tu rozvržení z NetSuite verze: pastelová dlaždice hlavičky, tyrkysové „děláme",
   barevná horní linka sloupce a `overflow: hidden`, který ty pastely zarovnával do kulatých
   rohů.

   TEN OŘEZ BYL DŮVOD, PROČ ŠIPKY NEBYLY VIDĚT. Hlavička přečnívá do dalšího sloupce o 22 px
   (tak se hrot zaklesne do výřezu souseda) — jenže `overflow: hidden` na sloupci ho uřízl
   přesně na jeho hranici, takže z každé šipky zbyl obdélník. Změřeno: hlavička končí na 355,
   sloupec na 333, a viditelné bylo 333. Geometrie i barvy přitom seděly na prototyp, takže
   „proč to není šipka" nešlo poznat jinak než zvětšeným snímkem toho styku.

   Barvy stavů i tvar teď drží pravidla níž (odměřená z prototypu); tenhle blok neměl co
   přebíjet a hlavně nesměl ořezávat. */

.backlog-monogram[b-xa696mqpxe] { width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; background: var(--brand-soft); color: var(--brand); font-size: 8.5px; font-weight: 700; flex: none; }

/* Úzká okna: kanban nemá smysl mačkat pod čitelnost → scrollovací pás s min. šířkou sloupce. */
@media (max-width: 900px) {
    .backlog-board[b-xa696mqpxe] { overflow-x: auto; }
    .backlog-sloupec[b-xa696mqpxe] { flex: 0 0 190px; }
}

/* ── Hlavička sloupce jako šipka (přesně dle prototypu, 15. 8. 2026) ─────────────────────
   Dva řádky: nahoře pořadí + název + „+", dole počet a doplňkový údaj. Zub kreslí `clip-path`;
   překryv (`width: calc(100% + 22px)` + záporný pravý margin) je to, co z jednotlivých hlaviček
   udělá jeden souvislý pruh — mezera mezi nimi by z cesty udělala šest oddělených krabic.

   TŘI TVARY, PŘESNĚ JAKO V NÁVRHU (`phzCls`): první sloupec nemá zub vlevo (tam cesta
   začíná), HOTOVO má rovný pravý okraj (tam končí) a ZAMÍTNUTO je plochý obdélník bez šipek —
   není to krok cesty, ale odbočka z ní. Šipka za „Hotovo" by tvrdila, že tiket zamítnutím
   na konci projde. Tvar se proto neváže na POŘADÍ ve výčtu, ale na STAV; u epik to tak
   (`EpikyFaze`) bylo od začátku, board zůstal pozadu. */
/* Čísla jsou z návrhu (`.phz`, 25. 8. 2026 — ALF-18): výška 65 (bylo 56), odsazení 0/28/0/16,
   mezera 6, přesah 26 px a zub 17. Board byl proti návrhu celý o stupeň drobnější. */
.backlog-sloupec-hlava[b-xa696mqpxe] {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    height: 65px;
    width: calc(100% + 26px);
    margin: 0 -26px 10px 0;
    padding: 0 28px 0 33px;
    clip-path: polygon(0 0, calc(100% - 17px) 0, 100% 50%, calc(100% - 17px) 100%, 0 100%, 17px 50%);
    border: 0;
}

.backlog-sloupec-hlava.je-prvni[b-xa696mqpxe] {
    padding-left: 16px;
    clip-path: polygon(0 0, calc(100% - 17px) 0, 100% 50%, calc(100% - 17px) 100%, 0 100%);
}

.backlog-sloupec-hlava.je-konec[b-xa696mqpxe] {
    width: 100%;
    margin-right: 0;
    padding-right: 14px;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 17px 50%);
}

/* HRANATÉ, ne zaoblené: návrh (`phz flat`) je obyčejný obdélník. Zaoblení bylo moje
   přidání „ať to nekouká" — vedle ostrých šipek vypadá jako jiný druh prvku. */
.backlog-sloupec-hlava.je-stranou[b-xa696mqpxe] {
    width: 100%;
    margin-right: 0;
    padding: 0 16px;
    clip-path: none;
}

/* BARVY ODMĚŘENÉ Z PROTOTYPU (15. 8. 2026), ne odhadnuté ze škály. Rozdíl mezi sousedy dělá
   ŠIPKY VIDITELNÉ — s odstíny ze škály byly kroky tak jemné, že se zub sousedů ztratil a pruh
   vypadal jako jeden pás (uživatel: „pořád nejsou šipky"). Postup: papír → hlína → jantar →
   zlatá → zelená.

   ZAMÍTNUTO MUSÍ MÍT VLASTNÍ ODSTÍN. Měl `--cream-100`, což je PŘESNĚ barva pozadí stránky —
   sloupec tím zmizel a vypadal jako prázdné místo (uživatel si toho všiml dřív než já; změřeno:
   rgb(244,239,228) hlavička × rgb(244,239,228) plocha). Teď je šedobéžový: patří k cestě, ale
   není její krok. */
.backlog-sloupec .backlog-sloupec-hlava[b-xa696mqpxe] { background: #e6dcca; color: var(--brown-500); }
.backlog-sloupec.je-stav-sprint .backlog-sloupec-hlava[b-xa696mqpxe] { background: #dbcfb8; }
.backlog-sloupec.je-stav-dela_se .backlog-sloupec-hlava[b-xa696mqpxe] { background: #f6e3bb; }
.backlog-sloupec.je-stav-review .backlog-sloupec-hlava[b-xa696mqpxe] { background: #eed9a4; }
.backlog-sloupec.je-stav-hotovo .backlog-sloupec-hlava[b-xa696mqpxe] { background: #d7e88f; }
.backlog-sloupec.je-stav-zamitnuto .backlog-sloupec-hlava[b-xa696mqpxe] { background: #e8e2da; color: var(--brown-400); }

/* `align-items: stretch` na hlavičce: bez toho se oba řádky smrskly na svůj obsah a stály
   uprostřed šipky místo u jejího levého okraje (vidět na snímku — text plaval na střed). */
.backlog-sloupec-hlava[b-xa696mqpxe] { align-items: stretch; }

.backlog-sloupec-radek[b-xa696mqpxe] { display: flex; align-items: center; gap: 7px; min-width: 0; width: 100%; }
.backlog-sloupec-mezera[b-xa696mqpxe] { flex: 1 1 auto; }

.backlog-sloupec-poradi[b-xa696mqpxe] {
    font-family: var(--font-cisla);
    font-size: 11px;
    font-weight: var(--fw-bold);
    opacity: .5;
    flex: 0 0 auto;
}

.backlog-sloupec-nazev[b-xa696mqpxe] {
    font-size: 11px;
    font-weight: var(--fw-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* „+" zakládá tiket rovnou v téhle fázi. Tiché kolečko — je to nabídka, ne výzva. */
.backlog-sloupec-plus[b-xa696mqpxe] {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    border: 0;
    border-radius: 50%;
    background: rgba(46, 35, 26, .1);
    color: inherit;
    font: var(--fw-bold) 14px / 1 var(--font-body);
    cursor: pointer;
    display: grid;
    place-items: center;
    padding: 0;
}

.backlog-sloupec-plus:hover[b-xa696mqpxe] { background: rgba(46, 35, 26, .2); }

.backlog-sloupec-pocet[b-xa696mqpxe] {
    font-family: var(--font-cisla);
    font-size: 11px;
    font-weight: var(--fw-bold);
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto;
}

.backlog-sloupec-podrobnost[b-xa696mqpxe] {
    font-size: 11px;
    font-weight: var(--fw-semibold);
    opacity: .72;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.backlog-sloupec[b-xa696mqpxe] { background: none; border: 0; border-top: 0; padding: 0; }
/* Odsazení a mezera z návrhu (`.bcolb`: padding 12/0/16, gap 8). */
.backlog-sloupec-telo[b-xa696mqpxe] { display: flex; flex-direction: column; gap: 8px; padding: 12px 0 16px; min-height: 128px; border-radius: var(--radius-md); }

/* ── Karta ───────────────────────────────────────────────────────────────────────────── */
/* STEJNĚ VYSOKÉ KARTY (přání uživatele 15. 8. 2026). V prototypu kolísají 117–136 px podle
   délky názvu; sjednocené působí board klidněji — oko čte sloupce jako řádky tabulky a ne
   jako hromádku různě velkých lístků.

   Výška je PEVNÁ, ne minimální: `min-height` by dlouhý název zase nechal kartu přerůst
   a rozdíl by se vrátil u těch nejdelších, tedy přesně tam, kde nejvíc ruší. Cena je useknutý
   třetí řádek názvu — nese ho `title` a hlavně detail tiketu, kam se stejně kliká. */
.backlog-karta[b-xa696mqpxe] {
    /* 136 px = výška karty v návrhu (25. 8. 2026, ALF-18). Pevná zůstává podle přání uživatele
       z 15. 8.: v návrhu kolísá 117–136 podle délky názvu, sjednocená působí board klidněji. */
    height: 136px;
    display: flex;
    flex-direction: column;
    background: var(--surface-card);
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-xs);
    padding: 10.5px 13px;
    /* ŘÁDKOVÁNÍ JAKO POMĚR, ne zděděné pixely (25. 8. 2026, ALF-18). Board dědil hotových
       18,85 px z okolí, takže číslo tiketu, datum i štítek modulu měly řádek o 1,3 px nižší
       než v návrhu. Poměr 1,55 se přepočítá podle velikosti písma každého prvku — návrh dědí
       přesně tohle a jeho 13px prvky mají 20,15. */
    line-height: 1.55;
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease-standard);
    box-sizing: border-box;
}

.backlog-karta:hover[b-xa696mqpxe] { border-color: var(--green-300); }

/* Mezera 9,5 px z návrhu (`.tkr`). */
.backlog-karta-hlava[b-xa696mqpxe] { display: flex; align-items: center; gap: 9.5px; }





/* Název na DVA ŘÁDKY. Bez ořezu by rozhodoval o výšce karty on, a to je nejrozkolísanější
   údaj ze všech — ostatní řádky mají pevný obsah. */
.backlog-karta-nazev[b-xa696mqpxe] {
    /* `min-width` a `overflow-wrap` sem přišly ze zrušené druhé definice (25. 8. 2026) —
       jedna třída, jedno pravidlo. `flex: 1` z ní NEPŘEŠLO schválně: dělalo z názvu rostoucí
       flexovou položku a ořez na dva řádky pak nesedl. */
    min-width: 0;
    overflow-wrap: anywhere;
    margin: 7px 0 0;
    /* 15 px jako v návrhu (`.tt`), ne `--text-xs` (13). Board byl proti návrhu celý o stupeň
       drobnější — to byla podstata vytky „vzhled boardu neodpovídá designu" (ALF-18). */
    font-size: 15px;
    font-weight: var(--fw-semibold);
    line-height: 1.35;
    color: var(--brown-700);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Patička sedí u SPODNÍHO okraje (`margin-top: auto`), ať jsou řešitel, epika a datum
   na všech kartách v jedné lince — jinak by u kratších názvů plavaly nahoře.

   ODDĚLENÁ LINKOU (dle mockupu): nahoře je to, o čem tiket JE, dole kdo a kdy — dvě různé
   věci. Linka jde od kraje ke kraji (záporné odsazení proti vnitřnímu okraji karty), jinak
   by visela uprostřed a vypadala jako nedotažená. */
.backlog-karta-pata[b-xa696mqpxe] {
    display: flex;
    align-items: center;
    gap: 6px;
    /* LINKA JDE JEN PŘES OBSAH, ne od kraje ke kraji (oprava 25. 8. 2026, ALF-18). Do té doby
       tu stálo „dle mockupu" a záporné odsazení — jenže návrh (`.tkf`) žádné nemá: měřeno
       223 px proti šířce karty 251. Druhý případ komentáře, který se na návrh odvolává a měření
       mu odporuje; rozhoduje vykreslení, ne vzpomínka.

       `margin-top: auto` zůstává (na rozdíl od návrhových 10,5 px): karty mají u nás pevnou
       výšku (přání uživatele 15. 8.), takže patička se musí přitisknout dolů, jinak by u
       krátkých názvů plavala uprostřed. */
    margin-top: auto;
    padding-top: 8px;
    border-top: 1px solid var(--cream-200);
    /* Návrh (`.tkf`): mezera 8, datum 13 px / 600 v tlumené hnědé. */
    gap: 8px;
    font-size: 13px;
    color: var(--brown-300);
}

/* Štítek MODULU (návrh `.mchip`) — do 25. 8. 2026 tu byla epika, viz ALF-18. Krémová pilulka
   bez rámečku, 13 px; ořez, protože názvy modulů jsou volný text. */
.backlog-karta-modul[b-xa696mqpxe] {
    display: inline-flex;
    align-items: center;
    padding: 2.5px 8px;
    border-radius: var(--radius-sm);
    background: var(--cream-100);
    color: var(--brown-400);
    font-size: 13px;
    min-width: 0;
    max-width: 60%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Datum: 13 px / 600 v tlumené hnědé (návrh `.tkd`); velikost dědí z patičky. */
.backlog-karta-datum[b-xa696mqpxe] { margin-left: auto; flex: 0 0 auto; font-weight: var(--fw-semibold); font-variant-numeric: tabular-nums; }


/* Číslo tiketu na kartě — kód, ne text: neproporcionální číslice drží pod sebou a oko
   je čte po znacích. Tlumené, aby nepřebilo název; nese ho hlavně rozpoznání a hledání. */
.backlog-cislo[b-xa696mqpxe] {
    font-family: var(--font-cisla);
    /* Návrh (`.cid`): 13 px / 700 v brown-300. Bylo 10,5 / 600 — na kartě se ztrácelo. */
    font-size: 13px;
    font-weight: var(--fw-bold);
    letter-spacing: .02em;
    color: var(--brown-300);
    font-variant-numeric: tabular-nums;
}

/* Počet ve sloupci je ODZNAK, ne holé číslo (prototyp): kolečko drží číslo pohromadě
   s popiskem vedle a je čitelné i na tmavších pruzích. */
.backlog-sloupec-pocet[b-xa696mqpxe] {
    min-width: 20px;
    height: 19px;
    padding: 0 6px;
    border-radius: var(--radius-pill);
    background: rgba(46, 35, 26, .15);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ── PŘETAHOVÁNÍ KARET MEZI SLOUPCI (16. 8. 2026) ──────────────────────────────────────────
   Dvě zpětné vazby, obě nutné: co se táhne (karta zesvětlá) a kam to spadne (sloupec se
   podbarví). Bez druhé z nich člověk pouští kartu naslepo — u šesti úzkých sloupců se to
   netrefí a tiket skončí jinde, než měl. */

.backlog-karta[draggable="true"][b-xa696mqpxe] { cursor: grab; }
.backlog-karta[draggable="true"]:active[b-xa696mqpxe] { cursor: grabbing; }

/* Tažená karta zůstává na místě zeslabená — je z ní vidět, odkud se bere. */
.backlog-karta.je-tazena[b-xa696mqpxe] {
    opacity: .4;
    border-style: dashed;
}

/* Cílový sloupec. `outline` místo `border`, aby se rozvržení nehnulo o pixel — jinak by
   sloupce při tažení poskakovaly a mířilo by se do pohyblivého cíle. */
.backlog-sloupec-telo.je-cil[b-xa696mqpxe] {
    background: color-mix(in srgb, var(--green-500) 12%, transparent);
    outline: 2px dashed var(--green-600);
    outline-offset: -3px;
    border-radius: var(--radius-md);
}

/* Tělo je cíl odložení, takže musí vyplnit celý sloupec — jinak se dá trefit jen tam, kde
   jsou karty. `min-height` drží zónu i u sloupce, který je prázdný a nemá co roztáhnout. */
.backlog-sloupec-telo[b-xa696mqpxe] {
    /* Tělo je svislý flex (viz pravidlo výš), takže karty drží u horního okraje samy —
       stačí, aby se protáhlo přes celý sloupec. Jako položka mřížky se roztáhne samo;
       `min-height` je tu kvůli PRÁZDNÉMU sloupci, který nemá co roztahovat. */
    min-height: 72px;
}

/* ŠTÍTEK DRUHU NA KARTĚ (návrh `.kchip`) — větší než v husté tabulce: 21 px, 12 px / 700,
   BÍLÝ text na barvě druhu. `backlog-druh` (17 px, 9,5 px, světlé pozadí) je varianta pro
   řádek tabulky a na kartě boardu plavala; barva je táž, jen se čte na dálku. */
.backlog-karta-druh[b-xa696mqpxe] {
    display: inline-flex;
    align-items: center;
    height: 21px;
    padding: 0 7px;
    border-radius: var(--radius-sm);
    font-size: 12px;
    font-weight: var(--fw-bold);
    letter-spacing: .04em;
    color: var(--white);
    background: var(--druh, var(--brown-500));
    flex: 0 0 auto;
}

.backlog-karta-druh.je-user_story[b-xa696mqpxe] { --druh: var(--druh-user_story); }
.backlog-karta-druh.je-chyba[b-xa696mqpxe] { --druh: var(--druh-chyba); }
.backlog-karta-druh.je-feature_request[b-xa696mqpxe] { --druh: var(--druh-feature_request); }
/* /Components/Podpora/BacklogHromadneAkce.razor.rz.scp.css */
/* Hromadná změna nad výběrem — 1:1 s návrhem Pavla Müllera (`.bulk`, spec
   docs/superpowers/specs/2026-08-20-tabulka-backlogu-1-1.md): tmavý pruh PŘILEPENÝ DOLE,
   ne světlá lišta nad tabulkou. Dole schválně — objeví se, až když člověk něco vybere,
   a u ruky tam, kam se právě dívá (zaškrtával řádky v tabulce nad ním); nahoře by u
   dlouhého seznamu byl mimo obrazovku.

   Pravidla bydlí TADY, ne u tabulky: lišta je SOUROZENEC `BacklogSeznam`, ne jeho potomek,
   takže scoped CSS seznamu na ni nedosáhne ani přes `::deep` (ten platí na potomky). */
.backlog-hromadne[b-k61vy35npi] {
    position: sticky; bottom: 16px; z-index: 5;
    margin-top: 14px;
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    padding: 13px 19px;
    background: var(--brown-700); color: var(--cream-100);
    border-radius: var(--radius-lg);
    box-shadow: 0 7px 23px rgba(46, 35, 26, .22);
}
.backlog-hromadne-pocet[b-k61vy35npi] { font-size: var(--text-sm); font-weight: 700; }
/* Selecty jako pilulky na tmavém podkladu (návrh `.bulk select`) — průhledný krém,
   světlý rámek. `appearance: none` schválně: nativní šipka by na tmavé přišla v barvě
   systému (pokyn 14. 8. 2026 — nativní prvek se nenechává ve výchozí podobě). */
.backlog-hromadne-volba[b-k61vy35npi] {
    appearance: none; height: 35px; max-width: 220px;
    border-radius: var(--radius-pill);
    border: 1px solid rgba(244, 239, 228, .22);
    background: rgba(244, 239, 228, .08); color: var(--cream-100);
    font: 600 var(--text-sm) var(--font-body);
    padding: 0 16px; cursor: pointer; outline: 0;
}
/* Roletka po rozbalení je nativní a SVĚTLÁ — text v ní nesmí zůstat krémový. */
.backlog-hromadne-volba option[b-k61vy35npi] { background: var(--white); color: var(--brown-600); }
.backlog-hromadne-volba:disabled[b-k61vy35npi] { opacity: .5; cursor: default; }
.backlog-hromadne-mezera[b-k61vy35npi] { flex: 1; }
/* „Zrušit výběr" = odkaz v akcentní zelené (návrh `.lnk` v `.bulk`), ne tlačítko. */
.backlog-hromadne-zrusit[b-k61vy35npi] {
    font-size: var(--text-sm); font-weight: 600; color: var(--green-400);
    background: transparent; border: 0; padding: 0; cursor: pointer;
    font-family: var(--font-body);
}
.backlog-hromadne-zrusit:hover:not(:disabled)[b-k61vy35npi] { color: var(--green-300); }
.backlog-hromadne-zrusit:disabled[b-k61vy35npi] { opacity: .5; cursor: default; }
/* /Components/Podpora/BacklogSeznam.razor.rz.scp.css */
/* Backlog — SEZNAM (tabulka tiketů). Míry a podoba buněk 1:1 s návrhem Pavla Müllera
   (spec docs/superpowers/specs/2026-08-20-tabulka-backlogu-1-1.md): pevné šířky sloupců
   v pixelech a min-width tabulky jsou z návrhu OPSANÉ, ne odhadnuté — bez min-width se
   sloupce na úzkém okně stlačí místo toho, aby se objevil vodorovný posuv. */

/* --- Karta a posuv (dvě vrstvy, návrhový vzor `.c > div[overflow-x]`) ------ */
.backlog-tabulka-obal[b-5ofx6pic3n] { padding: 0; overflow: hidden; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.backlog-tabulka-posuv[b-5ofx6pic3n] { overflow-x: auto; }

/* --- Tabulka (návrh `.tb`) ------------------------------------------------- */
.backlog-tabulka[b-5ofx6pic3n] { width: 100%; min-width: 1176px; border-collapse: collapse; font-size: var(--text-sm); }
.backlog-tabulka th[b-5ofx6pic3n] { text-align: left; font-size: var(--text-xs); font-weight: 600; color: var(--brown-400); padding: 7px 10.5px; border-bottom: 1px solid var(--border-hairline); white-space: nowrap; }
.backlog-tabulka td[b-5ofx6pic3n] { padding: 7px 10.5px; border-bottom: 1px solid var(--cream-200); color: var(--brown-600); white-space: nowrap; vertical-align: middle; }
.backlog-tabulka tbody tr:last-child td[b-5ofx6pic3n] { border-bottom: 0; }
.backlog-radek[b-5ofx6pic3n] { cursor: pointer; }
.backlog-radek:hover td[b-5ofx6pic3n] { background: var(--cream-50); }

/* Šířky sloupců z návrhu (px, měřeno 20. 8. 2026). Název jediný nemá šířku — bere zbytek. */
.th-vyber[b-5ofx6pic3n], .td-vyber[b-5ofx6pic3n] { width: 35px; text-align: center; }
.th-typ[b-5ofx6pic3n] { width: 44px; }
.th-id[b-5ofx6pic3n], .td-id[b-5ofx6pic3n] { width: 93px; }
.th-epika[b-5ofx6pic3n], .td-epika[b-5ofx6pic3n] { width: 174px; max-width: 174px; }
.th-modul[b-5ofx6pic3n] { width: 148px; }
.th-stav[b-5ofx6pic3n] { width: 123px; }
.th-priorita[b-5ofx6pic3n] { width: 102px; }
.th-verze[b-5ofx6pic3n] { width: 88px; }
.th-resitel[b-5ofx6pic3n], .td-resitel[b-5ofx6pic3n] { width: 70px; }
.th-zmeneno[b-5ofx6pic3n], .td-zmeneno[b-5ofx6pic3n] { width: 111px; }

/* Název je jediná buňka, která se láme (návrh `td.w`). */
.td-nazev[b-5ofx6pic3n] { white-space: normal; }
.backlog-nazev-text[b-5ofx6pic3n] { font-weight: 600; color: var(--brown-700); }

/* Dlouhý název epiky nesmí sloupec roztáhnout — tečka drží, text se ořízne. */
.td-epika .backlog-lp[b-5ofx6pic3n] { max-width: 100%; }
.backlog-lp-text[b-5ofx6pic3n] { overflow: hidden; text-overflow: ellipsis; }

.td-vyber input[b-5ofx6pic3n], .th-vyber input[b-5ofx6pic3n] { width: 16px; height: 16px; margin: 0; accent-color: var(--green-700); cursor: pointer; vertical-align: middle; }

/* Vybraný řádek musí být poznat i bez zaškrtávátka — hromadná akce se dělá nad tím, co je
   zvýrazněné, a „kolik jich mám vybraných" se počítá očima. */
.backlog-radek.je-vybrany td[b-5ofx6pic3n] { background: var(--green-100); }
.backlog-radek.je-vybrany:hover td[b-5ofx6pic3n] { background: var(--green-100); }

.backlog-prazdno[b-5ofx6pic3n] { text-align: center; padding: 2rem 1rem !important; color: var(--text-mute); }

/* --- Druh: barevný štítek s kódem (návrh `kchip`) --------------------------- */
.backlog-kchip[b-5ofx6pic3n] { display: inline-flex; align-items: center; height: 21px; padding: 0 7px; border-radius: var(--radius-sm); font-size: var(--text-2xs); font-weight: 700; letter-spacing: .04em; color: var(--white); }
/* Barvy druhů = číselník návrhu (story #7f930a · bug #a8412c · požadavek #6b5442) — všechny
   tři už jsou v tokenech, hex se sem neopisuje. */
.backlog-kchip.je-user_story[b-5ofx6pic3n] { background: var(--green-700); }
.backlog-kchip.je-chyba[b-5ofx6pic3n] { background: var(--danger); }
.backlog-kchip.je-feature_request[b-5ofx6pic3n] { background: var(--brown-500); }

/* --- ID (návrh `cid`) ------------------------------------------------------- */
.backlog-cid[b-5ofx6pic3n] { font-size: var(--text-xs); font-weight: 700; color: var(--brown-300); white-space: nowrap; }

/* --- Chip štítku za názvem (návrh `tag`) ------------------------------------ */
.backlog-tag[b-5ofx6pic3n] { display: inline-flex; align-items: center; height: 22px; padding: 0 9.5px; border-radius: var(--radius-pill); background: var(--cream-100); border: 1px solid var(--border-hairline); font-size: var(--text-2xs); font-weight: 600; color: var(--brown-500); white-space: nowrap; margin-left: 6px; vertical-align: middle; }

/* --- Tečka + text (návrh `lp` + `pdot`): epika čtverec, priorita kolečko ---- */
.backlog-lp[b-5ofx6pic3n] { display: inline-flex; align-items: center; gap: 7px; color: var(--brown-500); }
.backlog-pdot[b-5ofx6pic3n] { width: 9.5px; height: 9.5px; border-radius: 50%; flex: 0 0 auto; }
.backlog-pdot.je-ctverec[b-5ofx6pic3n] { border-radius: 2.5px; }
/* Barvy priorit = číselník návrhu PRIO (krit #a8412c · vys #c8871f · str #8a7563 · niz #b3a291). */
.backlog-pdot.je-kriticka[b-5ofx6pic3n] { background: var(--prio-kriticka); }
.backlog-pdot.je-vysoka[b-5ofx6pic3n] { background: var(--prio-vysoka); }
.backlog-pdot.je-stredni[b-5ofx6pic3n] { background: var(--prio-stredni); }
.backlog-pdot.je-nizka[b-5ofx6pic3n] { background: var(--prio-nizka); }

/* --- Stav: pilulka (návrh `bal` + číselník STAVY) ---------------------------
   Pilulku nese JEN stav — priorita má tečku, druh štítek; tři různé věci, tři tvary.
   Barvy mezistavů jsou z návrhu (tam v oklch) PŘEVEDENÉ do hexu: html2canvas 1.4.1, který
   fotí snímky k hlášením a tiketům, na `oklch` padá — a spadlý snímek se pozná až tím,
   že chybí (20. 8. 2026). */
.backlog-stav[b-5ofx6pic3n] { display: inline-flex; align-items: center; padding: 4.5px 13px; border-radius: var(--radius-pill); font-size: var(--text-xs); font-weight: 600; white-space: nowrap; background: var(--cream-200); color: var(--brown-500); }
/* BARVY ZE ČÍSELNÍKU `STAVY` — jeden zdroj (`--stav-bg`/`--stav-ink` v backoffice-mock.css,
   značka `je-stav-*`). Do 20. 8. 2026 tu byla vlastní kopie týchž hexů; kopie se nerozešly
   jen náhodou. */
.backlog-stav[class*="je-stav-"][b-5ofx6pic3n] { background: var(--stav-bg); color: var(--stav-ink); }
/* /Components/Podpora/EpikyFaze.razor.rz.scp.css */
/* Board epik podle fází (ALF-16) — geometrie šipek PŘEVZATÁ z BacklogBoard.razor.css
   (překryv 22 px, zub 15 px, výška hlavičky 56 px), aby oba boardy vedle sebe v jedné stránce
   mluvily stejným tvarem. BARVY hlaviček jdou z EpikaText.FazeHlavicka inline (šest různých
   dvojic z mockupu EFAZE — po třídách by se opisovaly dvakrát). */

.epiky-board[b-c24ldqu5ra] {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(216px, 1fr);
    gap: 0 16px;
    /* STRETCH, ne start (poučení z boardu tiketů 16. 8. 2026): cílem odložení je TĚLO
       sloupce — se `start` končí pod poslední kartou a níž „nejde pustit". */
    align-items: stretch;
    padding-bottom: 4px;
    overflow-x: auto;
}

.epiky-sloupec[b-c24ldqu5ra] {
    min-width: 0;
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 6px;
    min-height: 80px;
}

/* Odložené epiky jsou ztlumené — patří k boardu, ale ne k cestě (mockup: sloupec stojí stranou). */
.epiky-sloupec.je-ztlumeny[b-c24ldqu5ra] { opacity: 0.8; }

/* ── Hlavička sloupce jako šipka (geometrie z boardu tiketů) ─────────────────────────────
   Dva řádky: nahoře číslo + název + „+", dole počet a otevřené tikety. Zub kreslí `clip-path`;
   překryv (`width: calc(100% + 22px)` + záporný pravý margin) spojí hlavičky do jednoho pruhu. */
.epiky-sloupec-hlava[b-c24ldqu5ra] {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    gap: 5px;
    height: 56px;
    width: calc(100% + 22px);
    margin: 0 -12px 10px 0;
    padding: 0 24px 0 27px;
    clip-path: polygon(0 0, calc(100% - 15px) 0, 100% 50%, calc(100% - 15px) 100%, 0 100%, 15px 50%);
    border: 0;
}

/* Nápad cestu ZAČÍNÁ — bez zubu vlevo. */
.epiky-sloupec-hlava.je-prvni[b-c24ldqu5ra] {
    padding-left: 14px;
    clip-path: polygon(0 0, calc(100% - 15px) 0, 100% 50%, calc(100% - 15px) 100%, 0 100%);
}

/* Vydáno cestu KONČÍ — rovný pravý okraj, zub jen vlevo. */
.epiky-sloupec-hlava.je-konec[b-c24ldqu5ra] {
    width: 100%;
    margin-right: 0;
    padding-right: 14px;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 15px 50%);
}

/* Odloženo stojí STRANOU — plochý obdélník bez šipky (mockup `phz flat`): není to krok cesty. */
/* HRANATÉ, ne zaoblené: návrh (`phz flat`) je obyčejný obdélník. Zaoblení bylo moje
   přidání „ať to nekouká" — vedle ostrých šipek vypadá jako jiný druh prvku. */
.epiky-sloupec-hlava.je-stranou[b-c24ldqu5ra] {
    width: 100%;
    margin-right: 0;
    padding: 0 14px;
    clip-path: none;
}

.epiky-sloupec-radek[b-c24ldqu5ra] { display: flex; align-items: center; gap: 7px; min-width: 0; width: 100%; }
.epiky-sloupec-mezera[b-c24ldqu5ra] { flex: 1 1 auto; }

.epiky-sloupec-poradi[b-c24ldqu5ra] {
    font-family: var(--font-cisla);
    font-size: 11px;
    font-weight: var(--fw-bold);
    opacity: .5;
    flex: 0 0 auto;
}

.epiky-sloupec-nazev[b-c24ldqu5ra] {
    font-size: 11px;
    font-weight: var(--fw-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* „+" zakládá epiku rovnou v téhle fázi. Tiché kolečko — nabídka, ne výzva. */
.epiky-sloupec-plus[b-c24ldqu5ra] {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    border: 0;
    border-radius: 50%;
    background: rgba(46, 35, 26, .1);
    color: inherit;
    font: var(--fw-bold) 14px / 1 var(--font-body);
    cursor: pointer;
    display: grid;
    place-items: center;
    padding: 0;
}

.epiky-sloupec-plus:hover[b-c24ldqu5ra] { background: rgba(46, 35, 26, .2); }

/* Počet ve sloupci je ODZNAK (mockup .pcnt) — drží pohromadě s popiskem vedle. */
.epiky-sloupec-pocet[b-c24ldqu5ra] {
    min-width: 20px;
    height: 19px;
    padding: 0 6px;
    border-radius: var(--radius-pill);
    background: rgba(46, 35, 26, .15);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-cisla);
    font-size: 11px;
    font-weight: var(--fw-bold);
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto;
}

.epiky-sloupec-podrobnost[b-c24ldqu5ra] {
    font-size: 11px;
    font-weight: var(--fw-semibold);
    opacity: .72;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

/* Tělo je cíl odložení — vyplní celý sloupec, `min-height` drží zónu i u prázdného. */
.epiky-sloupec-telo[b-c24ldqu5ra] { display: flex; flex-direction: column; gap: 7px; min-height: 90px; }

/* ── Karta epiky ─────────────────────────────────────────────────────────────────────────
   STEJNĚ VYSOKÉ KARTY jako na boardu tiketů (přání uživatele 15. 8. 2026): oko čte sloupce
   jako řádky tabulky. O výšku navíc proti tiketu se stará řádek postupu. */
.epiky-karta[b-c24ldqu5ra] {
    height: 128px;
    display: flex;
    flex-direction: column;
    background: var(--surface-card);
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-xs);
    padding: 9px 11px;
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease-standard);
    box-sizing: border-box;
}

.epiky-karta:hover[b-c24ldqu5ra] { border-color: var(--border-strong); }

.epiky-karta-hlava[b-c24ldqu5ra] { display: flex; align-items: center; gap: 7px; }

/* Čtvereček barvy epiky (mockup .sq) — hranatý schválně: tečka značí prioritu/epiku u tiketů,
   čtvereček je poznávací znamení epiky samotné. */
.epiky-ctverecek[b-c24ldqu5ra] { width: 12px; height: 12px; border-radius: 3px; flex: 0 0 auto; }

.epiky-cislo[b-c24ldqu5ra] {
    font-family: var(--font-cisla);
    font-size: 10.5px;
    font-weight: var(--fw-semibold);
    letter-spacing: .02em;
    color: var(--barva-text-tlumeny);
    font-variant-numeric: tabular-nums;
}

.epiky-verze[b-c24ldqu5ra] {
    font-family: var(--font-cisla);
    font-size: 10.5px;
    font-weight: var(--fw-semibold);
    color: var(--barva-text-tlumeny);
    white-space: nowrap;
}

/* Název na DVA ŘÁDKY — je to nejrozkolísanější údaj a nesmí rozhodovat o výšce karty. */
.epiky-karta-nazev[b-c24ldqu5ra] {
    margin: 6px 0 0;
    font-size: var(--text-xs);
    font-weight: var(--fw-semibold);
    line-height: 1.35;
    color: var(--brown-700);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Postup: tenký pruh + procenta (mockup .eprg/.prog/.epn). */
.epiky-postup[b-c24ldqu5ra] { display: flex; align-items: center; gap: 9px; margin-top: 8px; }

.epiky-pruh[b-c24ldqu5ra] {
    flex: 1 1 auto;
    height: 4.5px;
    border-radius: 2.5px;
    background: var(--cream-200);
    overflow: hidden;
    display: inline-block;
}

.epiky-pruh i[b-c24ldqu5ra] { display: block; height: 100%; background: var(--green-500); }

.epiky-procenta[b-c24ldqu5ra] {
    font-family: var(--font-cisla);
    font-size: 11px;
    font-weight: var(--fw-bold);
    color: var(--brown-500);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* Patička u SPODNÍHO okraje a oddělená linkou — nahoře je, o čem epika JE; dole kdo a kdy. */
.epiky-karta-pata[b-c24ldqu5ra] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    margin-inline: -11px;
    padding: 8px 11px 0;
    border-top: 1px solid var(--border-hairline);
    font-size: var(--text-3xs);
    color: var(--barva-text-tlumeny);
}

/* Počet tiketů jako tichý štítek (mockup .mchip). */
.epiky-tikety[b-c24ldqu5ra] {
    display: inline-flex;
    align-items: center;
    height: 19px;
    padding: 0 8px;
    border-radius: var(--radius-sm);
    background: var(--cream-100);
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.epiky-karta-datum[b-c24ldqu5ra] { flex: 0 0 auto; font-variant-numeric: tabular-nums; }

/* ── Přetahování (zrcadlo boardu tiketů) ────────────────────────────────────────────────── */
.epiky-karta[draggable="true"][b-c24ldqu5ra] { cursor: grab; }
.epiky-karta[draggable="true"]:active[b-c24ldqu5ra] { cursor: grabbing; }

.epiky-karta.je-tazena[b-c24ldqu5ra] { opacity: .4; border-style: dashed; }

/* Cílový sloupec — `outline`, ne `border`, ať rozvržení neposkočí o pixel. */
.epiky-sloupec-telo.je-cil[b-c24ldqu5ra] {
    background: color-mix(in srgb, var(--green-500) 12%, transparent);
    outline: 2px dashed var(--green-600);
    outline-offset: -3px;
    border-radius: var(--radius-md);
}

/* Úzká okna: board se nemačká pod čitelnost — roluje do strany. */
@media (max-width: 900px) {
    .epiky-board[b-c24ldqu5ra] { grid-auto-columns: 190px; }
}
/* /Components/Podpora/EpikySeznam.razor.rz.scp.css */
/* Seznam epik (ALF-16) — hustá tabulka, tvar převzatý z BacklogSeznam.razor.css
   (scoped CSS na cizí komponentu nedosáhne, proto vlastní kopie pravidel tabulky). */

.epiky-tabulka-obal[b-2ofcdaavrb] { padding: 0; overflow-x: auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); box-shadow: none; }
/* VZDUŠNÁ TABULKA `.tb` Z NÁVRHU, ne hustá (24. 8. 2026, ALF-16). Hustota patří tam, kde se
   v seznamu pracuje — backlog má stovky řádků a klávesnici. Epik je osm a čtou se jako přehled:
   návrh jim dává 14px text, 7px odsazení a záhlaví bez verzálek a bez béžového pruhu. */
.epiky-tabulka[b-2ofcdaavrb] { width: 100%; border-collapse: collapse; font-size: 14px; }
.epiky-tabulka th[b-2ofcdaavrb] { text-align: left; font-size: 13px; font-weight: var(--fw-semibold); color: var(--brown-400); padding: 7px 10.5px; border-bottom: 1px solid var(--border-hairline); white-space: nowrap; }
.epiky-tabulka td[b-2ofcdaavrb] { padding: 7px 10.5px; border-bottom: 1px solid var(--cream-200); vertical-align: middle; white-space: nowrap; color: var(--brown-600); }
.epiky-tabulka tbody tr:last-child td[b-2ofcdaavrb] { border-bottom: 0; }

.epiky-radek[b-2ofcdaavrb] { cursor: pointer; }
.epiky-radek:hover td[b-2ofcdaavrb] { background: var(--surface-2); }

.th-id[b-2ofcdaavrb], .td-id[b-2ofcdaavrb] { width: 5rem; }

/* Název je jediný sloupec, který smí růst — ostatní drží obsah. */
.td-nazev[b-2ofcdaavrb] { color: var(--text); font-weight: var(--fw-semibold); white-space: normal; min-width: 14rem; }

/* Tečka barvy epiky (mockup .pdot s border-radius 2.5px — u epiky je hranatá schválně,
   stejné poznávací znamení jako čtvereček na kartě boardu). */
.epiky-tecka[b-2ofcdaavrb] { display: inline-block; width: 9.5px; height: 9.5px; border-radius: 2.5px; margin-right: 7px; vertical-align: -1px; }

/* Pásek fáze (mockup .bal) — barvy bg/ink dodává EpikaText.FazePasek inline. */
.epiky-faze-pasek[b-2ofcdaavrb] {
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    border-radius: var(--radius-pill);
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

/* Postup: pruh + procenta (mockup .etr/.prog/.epn). Pevná šířka pruhu, ať se řádky
   dají porovnávat okem pod sebou. */
.epiky-radek-postup[b-2ofcdaavrb] { display: inline-flex; align-items: center; gap: 9px; }
.epiky-pruh[b-2ofcdaavrb] { width: 70px; height: 4.5px; border-radius: 2.5px; background: var(--cream-200); overflow: hidden; display: inline-block; flex: 0 0 auto; }
.epiky-pruh i[b-2ofcdaavrb] { display: block; height: 100%; background: var(--green-500); }
.epiky-procenta[b-2ofcdaavrb] { font-family: var(--font-cisla); font-size: 11px; font-weight: var(--fw-bold); color: var(--brown-500); font-variant-numeric: tabular-nums; }

.epiky-vlastnik[b-2ofcdaavrb] { display: inline-flex; align-items: center; gap: 7px; }

.epiky-prazdno[b-2ofcdaavrb] { text-align: center; padding: 2rem 1rem !important; color: var(--text-mute); white-space: normal; }
/* /Components/Podpora/NovaEpikaDialog.razor.rz.scp.css */
/* Zakládací dialog epiky (ALF-16) — kostru (dlg-*) nese globální wwwroot/css/dialog.css;
   tady jen to, co je epikám vlastní: vzorky barev a vysvětlivka. */

/* Vzorky barev (mockup .csw): vybraný značí NEUTRÁLNÍ hnědý prstenec s bílou mezerou
   + fajfka uvnitř — žádný zelený obrys (pokyn uživatele: aktivní stav výplní/neutrálně). */
.epiky-dlg-barvy[b-2nywflndo5] { display: flex; gap: 7px; flex-wrap: wrap; }

.epiky-dlg-barva[b-2nywflndo5] {
    width: 25px;
    height: 25px;
    border-radius: 8px;
    border: 1px solid rgba(46, 35, 26, .16);
    cursor: pointer;
    padding: 0;
    display: grid;
    place-items: center;
    color: var(--white);
    font-size: 13px;
    line-height: 1;
}

.epiky-dlg-barva.je-vybrana[b-2nywflndo5] {
    box-shadow: 0 0 0 2px var(--white), 0 0 0 3.5px var(--brown-500);
}

/* Fokus NEUTRÁLNĚ — týž prstenec jako výběr, jen slabší (žádný zelený outline). */
.epiky-dlg-barva:focus-visible[b-2nywflndo5] {
    outline: 0;
    box-shadow: 0 0 0 2px var(--white), 0 0 0 3.5px var(--brown-300);
}

.epiky-dlg-vysvetlivka[b-2nywflndo5] { margin: 10px 0 0; font-size: 12px; line-height: 1.6; max-width: 52ch; }
/* /Components/Podpora/NovyTiketRozbor.razor.rz.scp.css */
/* Kroky 1 a 2 zakládání s Alfrédem (ALF-9). Vzhled dle návrhu Pavla Müllera. */

/* Odsazení z návrhu: krok 1 je `.mcol` (21/26/26), krok 2 `.aiwrap` (23/26/26). */
.ntr[b-wv5u1aemcb] { padding: 21px 26px 26px; }
.ntr.je-doptani[b-wv5u1aemcb] { padding-top: 23px; }

/* Pole na zadání je VELKÉ schválně: má vyzývat k psaní vlastními slovy, ne k vyplnění
   kolonky. Malé pole svádí k „nesedí součet" bez souvislostí. */
/* Vstup jako v návrhu (`aiin`): pole vlevo, diktovací box vpravo (172 px). */
.ntr-vstup[b-wv5u1aemcb] { display: grid; grid-template-columns: 1fr 172px; gap: 18px; align-items: stretch; margin-top: 14px; }
@media (max-width: 860px) { .ntr-vstup[b-wv5u1aemcb] { grid-template-columns: 1fr; } }

/* Text 15 px, ne 13 (návrh `.aita`): do tohohle pole se píše celý odstavec vlastními slovy
   a drobné písmo z něj dělá kolonku. Zelený obrys v klidu je taky z návrhu — je to jediné
   místo na obrazovce, kam se má psát, takže se hlásí samo. */
.ntr-zadani[b-wv5u1aemcb] {
    width: 100%;
    min-height: 260px;
    padding: 14px 16px;
    border: 1px solid var(--green-500);
    border-radius: var(--radius-md);
    background: var(--white);
    font: var(--fw-regular) 15px / 1.65 var(--font-body);
    color: var(--brown-700);
    resize: vertical;
}

.ntr-zadani[b-wv5u1aemcb]::placeholder { color: var(--brown-300); }
.ntr-zadani:focus[b-wv5u1aemcb] { outline: none; border-color: var(--green-500); box-shadow: 0 0 0 2px color-mix(in srgb, var(--green-500) 20%, transparent); }

.ntr-chyba[b-wv5u1aemcb] {
    margin: var(--space-3) 0 0;
    padding: 8px 12px;
    border: 1px solid var(--danger);
    border-left-width: 3px;
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--danger) 8%, var(--white));
    font-size: 12.5px;
}

/* Zadání zůstává v kroku 2 vidět — člověk se na ně při odpovídání dívá. Čísla z návrhu
   (`.tline`): obrys navíc proti dřívějšímu holému krému, aby byl pruh ohraničený. */
.ntr-zadani-pruh[b-wv5u1aemcb] {
    display: flex;
    gap: 13px;
    align-items: flex-start;
    padding: 12px 15px;
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-md);
    background: var(--cream-50);
    font-size: 14px;
    line-height: 1.6;
    color: var(--brown-500);
}

.ntr-zadani-zdroj[b-wv5u1aemcb] {
    flex: 0 0 auto;
    padding-top: 2px;
    font-size: 11.5px;
    font-weight: var(--fw-bold);
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--brown-300);
}

.ntr-zadani-text[b-wv5u1aemcb] { white-space: pre-wrap; }

.ntr-rozpoznano[b-wv5u1aemcb] { display: flex; flex-wrap: wrap; gap: 8px; margin: 15px 0 2px; }

/* Pilulka „co Alfréd zařadil" (návrh `.sug`) — se zelenou tečkou, ať se nepletou s volbami
   odpovědí, které vypadají podobně, ale kliká se na ně. */
.ntr-pilulka[b-wv5u1aemcb] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 30px;
    padding: 0 12px;
    border: 1px solid var(--border-hairline);
    border-radius: 999px;
    background: var(--cream-100);
    font-size: 13px;
    font-weight: var(--fw-semibold);
    color: var(--brown-500);
}

.ntr-pilulka i[b-wv5u1aemcb] { flex: 0 0 auto; width: 6px; height: 6px; border-radius: 999px; background: var(--green-500); }

/* Věta „Alfréd rozpoznal … doplňte …" (návrh `.think`). Tečka tepe: rozbor doběhl, ale
   obrazovka teď čeká na ČLOVĚKA — bez pohybu vypadá řádek jako popisek, ne jako výzva. */
.ntr-veta[b-wv5u1aemcb] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 10px 0 2px;
    font-size: 14px;
    color: var(--brown-400);
}

.ntr-veta i[b-wv5u1aemcb] {
    flex: 0 0 auto;
    width: 7px; height: 7px;
    border-radius: 999px;
    background: var(--green-500);
    animation: ntr-bliknuti-b-wv5u1aemcb 1.1s infinite;
}

@keyframes ntr-bliknuti-b-wv5u1aemcb { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }

@media (prefers-reduced-motion: reduce) { .ntr-veta i[b-wv5u1aemcb] { animation: none; } }

.ntr-otazky[b-wv5u1aemcb] { list-style: none; margin: 0; padding: 0; }

.ntr-otazka[b-wv5u1aemcb] {
    margin-top: 11px;
    padding: 13px 16px 15px;
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-md);
    background: var(--white);
}

/* Zodpovězená otázka zesvětlá — je vidět, kolik jich zbývá, bez počítání. */
.ntr-otazka.je-zodpovezena[b-wv5u1aemcb] { background: var(--cream-50); }

/* Řádek s číslem a otázkou (návrh `.qq`) — zarovnání na účaří, ať drobné číslo sedí
   k prvnímu řádku otázky, a odstup 10 px k volbám pod ním. */
.ntr-otazka-radek[b-wv5u1aemcb] {
    display: flex;
    align-items: baseline;
    gap: 9px;
    margin-bottom: 10px;
    /* Velikost nese ŘÁDEK, ne vnitřní text (návrh `.qq`) — výška řádku se počítá z jeho
       vlastního písma, takže na obalu se 16px/400 byl o 4 px vyšší, i když text vypadal
       správně. */
    font-size: 15px;
    font-weight: var(--fw-semibold);
    /* Návrh tu píše `font:` zkratkou, takže si řádkování srazí na `normal` (19 px u 15px
       písma). S dědeným 1,55 byl řádek o 4 px vyšší — a přes čtyři otázky z toho je 17 px. */
    line-height: normal;
    color: var(--brown-700);
}
.ntr-otazka-cislo[b-wv5u1aemcb] { flex: 0 0 auto; font: var(--fw-bold) 12px var(--font-cisla); color: var(--brown-300); }

.ntr-volby[b-wv5u1aemcb] { display: flex; flex-wrap: wrap; gap: 8px; }

.ntr-volba[b-wv5u1aemcb] {
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--border-hairline);
    border-radius: 999px;
    background: var(--white);
    color: var(--brown-500);
    font-family: var(--font-body);
    font-size: 13.5px;
    font-weight: var(--fw-semibold);
    cursor: pointer;
    transition: background-color var(--dur-fast) ease, border-color var(--dur-fast) ease;
}

.ntr-volba:hover[b-wv5u1aemcb] { border-color: var(--green-500); color: var(--brown-700); }
.ntr-volba.je-zvolena[b-wv5u1aemcb] { background: var(--green-500); border-color: var(--green-500); color: var(--brown-700); }

/* „Nevím" je plnohodnotná odpověď, ale ne ta první, po které se sahá — přerušovaný rám
   ji odliší od věcných voleb, aniž by ji schoval. */
.ntr-volba.je-nevim[b-wv5u1aemcb] { border-style: dashed; color: var(--brown-300); }
.ntr-volba.je-nevim.je-zvolena[b-wv5u1aemcb] { border-style: solid; color: var(--brown-700); }

/* Diktovací box VEDLE pole (návrh `micbox`): čárkovaný rámeček na krému, kulatý mikrofon,
   časovač a popisek pod sebou. Mikrofon pod polem se ztrácel a časovač neměl kde stát. */
.ntr-mikrofon-box[b-wv5u1aemcb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 16px 12px;
    border: 1px dashed var(--border-hairline);
    border-radius: var(--radius-md);
    background: var(--cream-50);
    text-align: center;
}

.ntr-mikrofon[b-wv5u1aemcb] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--green-500);
    color: var(--brown-700);
    cursor: pointer;
    transition: background-color var(--dur-fast) ease;
}

.ntr-mikrofon[b-wv5u1aemcb] { box-shadow: var(--shadow-sm); }
.ntr-mikrofon svg[b-wv5u1aemcb] { width: 25px; height: 25px; }
.ntr-mikrofon:hover[b-wv5u1aemcb] { background: var(--green-700); color: var(--cream-50); }
.ntr-mikrofon:disabled[b-wv5u1aemcb] { opacity: .5; cursor: wait; }

/* Za běhu nahrávání tepe — bez toho není poznat, že mikrofon poslouchá. */
.ntr-mikrofon.je-nahrava[b-wv5u1aemcb] { background: var(--danger); color: var(--white); animation: ntr-tep-b-wv5u1aemcb 1.4s ease-in-out infinite; }

@keyframes ntr-tep-b-wv5u1aemcb {
    0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--danger) 45%, transparent); }
    50% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--danger) 0%, transparent); }
}

.ntr-mikrofon-cas[b-wv5u1aemcb] { font-size: 15px; font-weight: 600; color: var(--brown-700); }
.ntr-mikrofon-stav[b-wv5u1aemcb] { font-size: 12.5px; font-weight: 600; color: var(--brown-400); line-height: 1.45; }
.ntr-mikrofon-box.je-nedostupny .ntr-mikrofon-stav[b-wv5u1aemcb] { font-weight: 400; }

/* Když diktování není: řekne se PROČ. Chybějící tlačítko bez vysvětlení vypadá jako nedodělek. */
.ntr-bez-diktovani[b-wv5u1aemcb] {
    margin: var(--space-3) 0 0;
    padding: 10px 14px;
    border-left: 3px solid var(--cream-300);
    font-size: 12.5px;
    line-height: var(--lh-relaxed);
    color: var(--barva-text-tlumeny);
}

/* Otevřená odpověď (otázka bez voleb) — pole přes zbytek řádku vedle „Nevím". */
.ntr-odpoved[b-wv5u1aemcb] { flex: 1 1 260px; min-width: 200px; }

/* ── Alfréd čte zadání (20. 8. 2026) ─────────────────────────────────────────
   Týž vzor jako roh při hledání odpovědi (alfred-roh.css): čtyři snímky vrstvené přes
   sebe, střídané `steps(1, end)` — prolnutí by z otočené stránky udělalo duchy dvou
   stránek přes sebe. Box je BAREVNÝ ostrov: zbytek dialogu po dobu čtení šedne
   (dialog.css, `.dlg-tiket.je-cteni`). */
.ntr-cteni-box[b-wv5u1aemcb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 12px;
    border: 1px dashed var(--border-hairline);
    border-radius: var(--radius-md);
    background: var(--cream-50);
}
.ntr-cteni-postava[b-wv5u1aemcb] { position: relative; width: 132px; height: 172px; }
.ntr-cteni-postava img[b-wv5u1aemcb] {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: contain; opacity: 0;
}
.ntr-cteni-postava .ntr-kniha-k0[b-wv5u1aemcb] { animation: ntr-kniha-f0-b-wv5u1aemcb 1200ms steps(1, end) infinite; }
.ntr-cteni-postava .ntr-kniha-k1[b-wv5u1aemcb] { animation: ntr-kniha-f1-b-wv5u1aemcb 1200ms steps(1, end) infinite; }
.ntr-cteni-postava .ntr-kniha-k2[b-wv5u1aemcb] { animation: ntr-kniha-f2-b-wv5u1aemcb 1200ms steps(1, end) infinite; }
.ntr-cteni-postava .ntr-kniha-k3[b-wv5u1aemcb] { animation: ntr-kniha-f3-b-wv5u1aemcb 1200ms steps(1, end) infinite; }

@keyframes ntr-kniha-f0-b-wv5u1aemcb { 0% { opacity: 1; } 25%, 100% { opacity: 0; } }
@keyframes ntr-kniha-f1-b-wv5u1aemcb { 0% { opacity: 0; } 25% { opacity: 1; } 50%, 100% { opacity: 0; } }
@keyframes ntr-kniha-f2-b-wv5u1aemcb { 0% { opacity: 0; } 50% { opacity: 1; } 75%, 100% { opacity: 0; } }
@keyframes ntr-kniha-f3-b-wv5u1aemcb { 0% { opacity: 0; } 75% { opacity: 1; } 100% { opacity: 0; } }

/* Bez pohybu se nelistuje — Alfréd ale drží knihu, ať je i tak poznat, že pracuje. */
@media (prefers-reduced-motion: reduce) {
    .ntr-cteni-postava img[b-wv5u1aemcb] { animation: none; }
    .ntr-cteni-postava .ntr-kniha-k0[b-wv5u1aemcb] { opacity: 1; }
}

.ntr-cteni-text[b-wv5u1aemcb] { font-size: 13px; font-weight: 600; color: var(--green-700); }
/* /Components/Podpora/PodporaWidget.razor.rz.scp.css */
/* Podpora widget — formulář hlášení jako Alfrédova bublina / popover (D18), NE systémový modál.
   Vstup je přes rozcestník Alfréda. Drží brand tokeny z cimpel.css. */

/* Průhledná celoobrazovková vrstva: NEZTMAVUJE (žádné ztlumení pozadí → není to systémový
   modál), slouží jen k zachycení „kliku mimo" (klik zavře formulář). Bublinu ukotví do pravého
   dolního rohu NAD bustu Alfréda — stejné umístění jako popover „Zeptat se". Třída
   `.podpora-overlay` je zároveň značka pro snímek obrazovky (JS ji ze snímku vynechá, viz
   podpora-capture.js) — proto se NESMÍ přejmenovat. */
.podpora-overlay[b-2dkkhhyu9f] {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    padding: 1rem clamp(1rem, 3vw, 2.25rem);
    /* Dole necháme místo pro bustu Alfréda, ať bublina sedí NAD ním a busta zůstane vidět
       (jako popover „Zeptat se"). Hodnoty kopírují geometrii Alfréda z AlfredAssistant.razor.css
       (offset .alfred + výška .alfred-avatar img); breakpointy níž je drží v souladu. */
    padding-bottom: calc(clamp(1rem, 3vw, 2.25rem) + clamp(160px, 24vh, 210px) + 0.7rem);
    background: transparent;
    animation: podpora-fade-b-2dkkhhyu9f 200ms ease both;
}

/* Bublina formuláře: brandová karta ukotvená k pravému dolnímu rohu, roste vzhůru; vysoký
   obsah se posouvá uvnitř. Ostrý roh vpravo dole = jemné navázání na ostatní Alfrédovy bubliny
   (.alfred-promluva). Ocásek nemá — shodně s popoverem „Zeptat se" (a .karta má overflow:hidden,
   který by ho stejně ořízl). */
.podpora-panel[b-2dkkhhyu9f] {
    position: relative;
    width: min(420px, calc(100vw - 2rem));
    max-height: 100%;
    overflow-y: auto;
    padding: 1.4rem 1.5rem;
    border-radius: 18px 18px 18px 4px;
    box-shadow: var(--stin-zvednuty);
    transform-origin: bottom right;
    animation: podpora-bublina-nabeh-b-2dkkhhyu9f 200ms ease both;
}

.podpora-panel-hlava[b-2dkkhhyu9f] {
    position: relative;
    margin-bottom: 0.6rem;
}

.podpora-panel-hlava h2[b-2dkkhhyu9f] {
    margin: 0.15rem 0 0;
}

.podpora-zavrit[b-2dkkhhyu9f] {
    position: absolute;
    top: -0.2rem;
    right: -0.3rem;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--barva-tlumeny-text);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--prechod), color var(--prechod);
}

.podpora-zavrit:hover[b-2dkkhhyu9f] {
    background-color: var(--c-krem);
    color: var(--c-hneda);
}

.podpora-uvod[b-2dkkhhyu9f],
.podpora-dik[b-2dkkhhyu9f] {
    margin: 0 0 1.1rem;
    line-height: 1.55;
}

.podpora-formular[b-2dkkhhyu9f] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.podpora-label[b-2dkkhhyu9f] {
    margin-top: 0.6rem;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--c-hneda);
}

.podpora-vstup[b-2dkkhhyu9f] {
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--barva-linka);
    border-radius: 8px;
    background-color: var(--c-bila);
    color: var(--barva-text);
    font: inherit;
    transition: border-color var(--prechod);
}

.podpora-vstup:focus[b-2dkkhhyu9f] {
    outline: none;
    border-color: var(--c-zelena-tmava);
}

/* Select má třídu .pole → brand chevron dodá globální select.pole (cimpel.css);
   scoped padding-shorthand výš by ale přebil jeho padding-right — vrátíme místo pro šipku. */
select.podpora-vstup[b-2dkkhhyu9f] {
    padding-right: 2rem;
}

.podpora-popis[b-2dkkhhyu9f] {
    resize: vertical;
    min-height: 5rem;
}

.podpora-hlaska[b-2dkkhhyu9f] {
    margin: 0.6rem 0 0;
}

/* --- Snímek obrazovky: souhlas + náhled (C8 a) --- */
.podpora-snimek[b-2dkkhhyu9f] {
    margin-top: 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.podpora-snimek-volba[b-2dkkhhyu9f] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.88rem;
    color: var(--c-hneda);
    cursor: pointer;
}

.podpora-snimek-volba input[b-2dkkhhyu9f] {
    width: 1rem;
    height: 1rem;
    accent-color: var(--c-zelena-tmava);
    cursor: pointer;
}

.podpora-snimek-nahled[b-2dkkhhyu9f] {
    max-width: 100%;
    max-height: 200px;
    align-self: flex-start;
    border: 1px solid var(--barva-linka);
    border-radius: 8px;
    background-color: var(--c-bila);
}

.podpora-snimek-stav[b-2dkkhhyu9f] {
    margin: 0;
    font-size: 0.85rem;
}

.podpora-akce[b-2dkkhhyu9f] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    margin-top: 1.2rem;
}

@keyframes podpora-fade-b-2dkkhhyu9f {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Jemný nájezd bubliny z pravého dolního rohu (jako .alfred-menu / .alfred-promluva). */
@keyframes podpora-bublina-nabeh-b-2dkkhhyu9f {
    from { opacity: 0; transform: translateY(6px) scale(0.98); }
    to   { opacity: 1; transform: none; }
}

/* Menší okna: busta Alfréda je nižší (.alfred-avatar img = 118 px) — sraz dolní rezervu, ať
   bublina nesedí zbytečně vysoko. Kopíruje breakpoint z AlfredAssistant.razor.css. */
@media (max-width: 1200px) {
    .podpora-overlay[b-2dkkhhyu9f] {
        padding-bottom: calc(clamp(1rem, 3vw, 2.25rem) + 118px + 0.7rem);
    }
}

/* Mobil: z busty zbývá malý kroužek (~60 px) v rohu; bublina na střed dolní části a přes
   skoro celou šířku (jako ostatní Alfrédovy bubliny na mobilu). */
@media (max-width: 700px) {
    .podpora-overlay[b-2dkkhhyu9f] {
        align-items: flex-end;
        justify-content: center;
        padding: 0.75rem;
        padding-bottom: calc(0.75rem + 60px + 0.5rem);
    }

    .podpora-panel[b-2dkkhhyu9f] {
        width: min(92vw, 420px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .podpora-overlay[b-2dkkhhyu9f] { animation: none; }
    .podpora-panel[b-2dkkhhyu9f] { animation: none; }
}
/* /Components/Podpora/SprintySeznam.razor.rz.scp.css */
/* Seznam sprintů — hustá tabulka, tvar převzatý z EpikySeznam.razor.css
   (scoped CSS na cizí komponentu nedosáhne, proto vlastní kopie pravidel tabulky). */

.sprinty-tabulka-obal[b-yosvy0rje9] { padding: 0; overflow-x: auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); box-shadow: none; }
.sprinty-tabulka[b-yosvy0rje9] { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.sprinty-tabulka th[b-yosvy0rje9] { text-align: left; font-size: 10.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-mute); padding: 8px 11px; border-bottom: 1px solid var(--border); white-space: nowrap; background: var(--surface-2); }
.sprinty-tabulka td[b-yosvy0rje9] { padding: 4px 11px; height: 28px; border-bottom: 1px solid var(--border); vertical-align: middle; white-space: nowrap; }
.sprinty-tabulka tbody tr:last-child td[b-yosvy0rje9] { border-bottom: 0; }

.th-stav[b-yosvy0rje9] { width: 7rem; }
.th-tikety[b-yosvy0rje9], .td-tikety[b-yosvy0rje9] { width: 5rem; }
.th-akce[b-yosvy0rje9] { width: 16rem; }

/* Název smí růst; cíl se ořezává (celý nese title). */
.td-nazev[b-yosvy0rje9] { color: var(--text); font-weight: var(--fw-semibold); }
.td-cil[b-yosvy0rje9] { max-width: 24rem; overflow: hidden; text-overflow: ellipsis; }

.sprinty-nazev-uprava[b-yosvy0rje9] { width: 14rem; margin-right: 6px; }

/* Stav jako pilulka — plánovaný krém, aktivní zeleně, uzavřený tlumeně (tytéž barvy jako
   tečka ve staré sekci „Sprinty ▾", jen s popiskem: barva sama nic neřekla). */
.sprinty-stav[b-yosvy0rje9] { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: var(--radius-pill); font-size: 11px; font-weight: 600; white-space: nowrap; background: var(--surface-3); color: var(--text-dim); }
.sprinty-stav.je-aktivni[b-yosvy0rje9] { background: var(--green-100); color: var(--green-700); }
.sprinty-stav.je-uzavreny[b-yosvy0rje9] { background: var(--surface-3); color: var(--text-mute); }

.sprinty-akce[b-yosvy0rje9] { text-align: right; }
.sprinty-akce .tabulka-akce[b-yosvy0rje9] { margin-left: 6px; }
/* `.tabulka-akce` je v klidu neviditelná (opacity 0) a odkrývá ji `.tabulka tr:hover` —
   tahle tabulka je `.sprinty-tabulka`, takže odkrytí musí mít vlastní: bez něj byl sloupec
   AKCE trvale prázdný (nalezeno průchodem 20. 8.). Focus-within drží viditelnost při
   přejmenování (fokus je v poli). */
.sprinty-radek:hover .tabulka-akce[b-yosvy0rje9],
.sprinty-radek:focus-within .tabulka-akce[b-yosvy0rje9] { opacity: 1; }
/* Destruktivní akce mluví barvou až na hover — v klidu nekřičí z každého řádku. */
.sprinty-akce .je-smazat:hover[b-yosvy0rje9] { color: var(--crit); border-color: var(--crit); }

.sprinty-prazdno[b-yosvy0rje9] { text-align: center; padding: 2rem 1rem !important; }
/* /Components/Sdilene/ChybaNacteni.razor.rz.scp.css */
/* Přiznaný neúspěch načtení. Jantarová, ne červená: data nejsou ztracená, jen se je teď
   nepodařilo přečíst. Bez barevného pruhu vlevo (zakázaný vzor). */
.chyba-nacteni[b-gxe9vlbjr0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin: 0.75rem 0;
    padding: 0.7rem 0.9rem;
    border: 1px solid rgba(224, 165, 0, 0.45);
    border-radius: 8px;
    background: rgba(224, 165, 0, 0.08);
}

.chyba-nacteni-text[b-gxe9vlbjr0] {
    margin: 0;
    flex: 1 1 18rem;
    min-width: 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #8A6300;
}
/* /Components/Sdilene/FormatovanyText.razor.rz.scp.css */
/* FORMÁTOVACÍ PLOCHA — vzhled (15. 8. 2026).

   POZOR NA `::deep`: obsah plochy vyrábí PROHLÍŽEČ (uživatel píše, `execCommand` vkládá
   značky), ne Blazor. Scoped CSS přitom stojí na atributu, který Blazor sází při vykreslení —
   a odrážka vzniklá pod rukama uživatele ho nemá. Bez `::deep` by pravidla pro `ul`, `li`,
   `blockquote` a `a` NIKDY nesedla a plocha by vypadala neformátovaně přesně v tu chvíli,
   kdy formátování funguje. (Týž důvod jako u `.zpole` v ADR-0063 §8.) */

.fmt[b-ffibl5p4j9] {
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-md);
    background: var(--white);
    overflow: hidden;
}

.fmt-lista[b-ffibl5p4j9] {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: var(--space-1) var(--space-2);
    background: var(--cream-50);
    border-bottom: 1px solid var(--border-hairline);
}

.fmt-tl[b-ffibl5p4j9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--brown-700);
    cursor: pointer;
    transition: background var(--dur-fast) ease, color var(--dur-fast) ease;
}

.fmt-tl:hover[b-ffibl5p4j9] { background: var(--cream-200); color: var(--brown-900); }
.fmt-tl:active[b-ffibl5p4j9] { background: var(--cream-300); }

.fmt-tl:focus-visible[b-ffibl5p4j9] {
    outline: 2px solid var(--green-600);
    outline-offset: -2px;
}

.fmt-oddel[b-ffibl5p4j9] {
    width: 1px;
    height: 18px;
    margin: 0 var(--space-1);
    background: var(--border-hairline);
}

/* Plocha k psaní. Výchozí minimum jsou ČTYŘI řádky: popis tiketu je „co, proč a jak se to
   projeví" a v jednořádkovém okénku se takový text nepíše (viz past s `.pole` v pravém
   panelu — tam se to už jednou stalo).

   VÝŠKA SE ZADÁVÁ V ŘÁDCÍCH, ne v pixelech (17. 8. 2026). Kdo chce vyšší pole, napíše na
   komponentu `Radky` / `RadkyStrop` a ta sem pošle `--fmt-radky` / `--fmt-radky-strop`.
   Přepočet na pixely dělá CSS, protože jen ono zná zdejší písmo: `1em` je tu `--text-sm`,
   `--lh-relaxed` je výška jednoho řádku a odsazení se přičte dvakrát (nahoře a dole). Kdyby
   se počítalo v C#, byla by tam čísla 14 a 1.7 opsaná z tokenů — a rozešla by se s nimi.

   Proč `max()` a ne prostá hodnota: bez zadaných řádků je proměnná `0`, výpočet vyjde na
   samotné odsazení a zůstane dosavadních 120 / 420 px. Zadané řádky tedy výšku jen ZVEDAJÍ —
   obrazovka, která si o nic neřekla, vypadá přesně jako dosud.

   Pole ROSTE S TEXTEM: mezi minimem a stropem si drží výšku obsahu, nad stropem roluje. */
.fmt-plocha[b-ffibl5p4j9] {
    min-height: max(120px, calc(var(--fmt-radky, 0) * var(--lh-relaxed) * 1em + 2 * var(--space-3)));
    max-height: max(420px, calc(var(--fmt-radky-strop, 0) * var(--lh-relaxed) * 1em + 2 * var(--space-3)));
    overflow-y: auto;
    padding: var(--space-3);
    font-size: var(--text-sm);
    line-height: var(--lh-relaxed);
    color: var(--brown-900);
    outline: none;
}

.fmt-plocha:focus[b-ffibl5p4j9] { box-shadow: inset 0 0 0 2px var(--green-600); }

/* ——— obsah psaný uživatelem (proto `::deep`) ——————————————————————— */

.fmt-plocha[b-ffibl5p4j9]  p { margin: 0 0 var(--space-2); }
.fmt-plocha[b-ffibl5p4j9]  p:last-child { margin-bottom: 0; }

.fmt-plocha[b-ffibl5p4j9]  ul,
.fmt-plocha[b-ffibl5p4j9]  ol {
    margin: 0 0 var(--space-2);
    padding-left: var(--space-5);
}

.fmt-plocha[b-ffibl5p4j9]  li { margin-bottom: var(--space-1); }

.fmt-plocha[b-ffibl5p4j9]  blockquote {
    margin: 0 0 var(--space-2);
    padding-left: var(--space-3);
    border-left: 3px solid var(--cream-300);
    color: var(--barva-tlumeny-text);
}

.fmt-plocha[b-ffibl5p4j9]  pre {
    margin: 0 0 var(--space-2);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-sm);
    background: var(--cream-100);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    white-space: pre-wrap;      /* dlouhý řádek se zalomí, ať plocha nedostane vodorovný posuvník */
}

.fmt-plocha[b-ffibl5p4j9]  code {
    padding: 1px 4px;
    border-radius: var(--radius-xs);
    background: var(--cream-100);
    font-family: var(--font-mono);
    font-size: 0.92em;
}

.fmt-plocha[b-ffibl5p4j9]  a { color: var(--green-700); }

/* Obrázek vložený ze schránky (ALF-15) — psaný přímo do textu, proto stejná pravidla jako
   u `img` v zobrazeném popisu (BacklogDetail.razor.css): široký screenshot nesmí přetéct kartu. */
.fmt-plocha[b-ffibl5p4j9]  img { max-width: 100%; height: auto; display: block; }

/* Zástupný prvek „nahrávám obrázek…" (ALF-15) — TICHÝ stav, ne aktivní/vybraný, proto krémové
   pozadí a kurzíva, ŽÁDNÝ zelený obrys (pokyn uživatele — aktivní stav se dělá výplní). */
.fmt-plocha[b-ffibl5p4j9]  .fmt-zastupce {
    display: inline-block;
    padding: 1px 6px;
    border-radius: var(--radius-xs);
    background: var(--cream-100);
    color: var(--barva-tlumeny-text);
    font-style: italic;
    font-size: var(--text-xs);
}

/* SKRYTÝ přenosový kanál pro obrázek ze schránky — nikdo ho nevidí a nikdo na něj neklikne,
   takže se pravidlo o nativních prvcích prohlížeče (Choose File…) netýká: prostě zmizí.

   `::deep` TADY MUSÍ BÝT (A1, fix round 1) — <InputFile> je CIZÍ komponenta (vestavěná,
   bez vlastní scoped CSS) a její vykreslený <input> nenese scope atribut FormatovanyText.
   Bez `::deep` se `.fmt-vstup-obrazku` zkompiluje jako `.fmt-vstup-obrazku[b-xxx]` (atribut
   NA cíli) a nikdy nesedne; s `::deep` je to `[b-xxx] .fmt-vstup-obrazku` (atribut na PŘEDKOVI,
   `_koren` ho má) — obyčejný potomkový selektor, který na vnořený cizí prvek dosáhne. Bez týhle
   opravy byl pod editorem popisu vidět nativní „Choose File / No file chosen". Stejný vzor jako
   `::deep .bd-priloha-input` v BacklogDetail.razor.css. */
[b-ffibl5p4j9] .fmt-vstup-obrazku { display: none; }

/* Věta k neúspěšnému vložení obrázku. `role="status"` v markupu, `alert()` je v projektu
   zakázaný — proto barva chyby jako u ostatních inline hlášek (`--danger`). */
.fmt-obrazek-chyba[b-ffibl5p4j9] {
    margin: var(--space-2) 0 0;
    padding: 0 var(--space-3) var(--space-2);
    font-size: var(--text-xs);
    color: var(--danger);
}

/* Řádek s adresou odkazu. Odkrývá ho modul (atribut `hidden`), proto tu není žádný stav —
   je to inline doptání v stránce, ne okno prohlížeče (ADR-0067 zakazuje `prompt()`). */
.fmt-odkaz[b-ffibl5p4j9] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-2);
    background: var(--cream-100);
    border-bottom: 1px solid var(--border-hairline);
}

.fmt-odkaz[hidden][b-ffibl5p4j9] { display: none; }

.fmt-odkaz-popis[b-ffibl5p4j9] {
    font-size: var(--text-xs);
    color: var(--barva-tlumeny-text);
    white-space: nowrap;
}

.fmt-odkaz-pole[b-ffibl5p4j9] {
    flex: 1;
    min-width: 0;
    height: 28px;
    padding: 0 var(--space-2);
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-sm);
    background: var(--white);
    font-size: var(--text-sm);
    color: var(--brown-900);
}

.fmt-odkaz-pole:focus[b-ffibl5p4j9] {
    outline: none;
    border-color: var(--green-600);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--green-600) 20%, transparent);
}

/* VYBRANÝ OBRÁZEK V PLOŠE (20. 8. 2026) — výběr se pozná VÝPLNÍ za obrázkem a tlumeným
   prstencem, ne zeleným obrysem (pokyn uživatele: zelený obrys jen na výslovné přání). */
.fmt-plocha[b-ffibl5p4j9]  img.je-vybrany {
    outline: 2px solid var(--cream-200);
    outline-offset: 2px;
    background: var(--cream-100);
}

/* Tlačítko „Odebrat obrázek" se v liště odkrývá jen s vybraným obrázkem (atribut `hidden`
   z JS). `display` se nepředepisuje — `hidden` musí zabrat, jinak by tlačítko svítilo pořád. */
.fmt-lista[b-ffibl5p4j9]  .fmt-tl-obrazek[hidden] {
    display: none;
}
/* /Components/Sdilene/VolbaSloupcu.razor.rz.scp.css */
/* VÝBĚR A POŘADÍ SLOUPCŮ — pás nad tabulkou (17. 8. 2026).

   Scoped CSS je tu SPRÁVNĚ: všechny značky `vs-*` kreslí tahle komponenta a nikdo jiný na ně
   nesahá (na rozdíl od podoby dialogu, která musela do globálního listu — ScopedCssDosahTests).

   Rozbalený pás roste V TOKU a odtlačí tabulku dolů; není to plovoucí nabídka. Důvod je
   v komentáři u značky, ale krátce: kartu pod tabulkou ořezává `overflow: hidden`, takže
   z absolutně umístěného panelu by u krátkého seznamu byla vidět půlka. */

.vs[b-xkws1m5zv8] {
    /* Zarovnané se buňkami tabulky (ta má odsazení 10 px) a s lištou nad ní. */
    margin: 0 10px 8px;
}

/* Přepínač vypadá jako ostatní drobná tlačítka lišty (`.tabulka-zrusit-filtry`) — je to týž
   druh ovladače, jen otevírá pás místo rušení filtrů. */
.vs-tl[b-xkws1m5zv8] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    padding: 2px 8px;
    border: 1px solid var(--barva-linka);
    border-radius: 6px;
    background: var(--barva-povrch);
    color: var(--barva-text-tlumeny);
    font-size: 11.5px;
    cursor: pointer;
    /* Nativní trojúhelníček zmizí a nahradí ho vlastní — ten se totiž v Safari kreslí jinak
       než v Chromu a vedle textu „Sloupce" pak seděl o pixel jinde. */
    list-style: none;
}

.vs-tl[b-xkws1m5zv8]::-webkit-details-marker { display: none; }
.vs-tl[b-xkws1m5zv8]::after { content: "▾"; font-size: 9px; line-height: 1; }
.vs[open] > .vs-tl[b-xkws1m5zv8]::after { content: "▴"; }

.vs-tl:hover[b-xkws1m5zv8] { color: var(--barva-text); border-color: var(--c-seda); }
.vs-tl:focus-visible[b-xkws1m5zv8] { outline: 2px solid var(--barva-akcent); outline-offset: 1px; }

.vs-pocet[b-xkws1m5zv8] { font-variant-numeric: tabular-nums; }

.vs-panel[b-xkws1m5zv8] {
    margin-top: 6px;
    padding: 10px 12px;
    border: 1px solid var(--barva-linka);
    border-radius: 8px;
    background: var(--barva-povrch);
}

/* Sloupce leží v pásu VEDLE SEBE ve stejném pořadí jako v tabulce — pod sebou by šipky
   „doleva/doprava" ukazovaly jinou osu, než na které se pohybují. */
.vs-seznam[b-xkws1m5zv8] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 6px;
}

.vs-polozka[b-xkws1m5zv8] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 2px 4px 2px 6px;
    border: 1px solid var(--barva-linka);
    border-radius: 6px;
    background: var(--barva-pozadi);
}

.vs-volba[b-xkws1m5zv8] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: 12px;
    white-space: nowrap;
    cursor: pointer;
}

/* Povinný sloupec: zaškrtávátko zůstává VIDĚT (jen nejde vypnout) — schované by vypadalo,
   že se sloupec dá vypnout někde jinde. */
.vs-polozka.je-povinny .vs-volba[b-xkws1m5zv8] { cursor: default; color: var(--barva-text-tlumeny); }

.vs-posun[b-xkws1m5zv8] { display: flex; gap: 1px; flex: none; }

.vs-posun button[b-xkws1m5zv8] {
    width: 18px;
    height: 18px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 4px;
    background: none;
    color: var(--barva-text-tlumeny);
    font-size: 8px;
    line-height: 1;
    cursor: pointer;
}

.vs-posun button:hover[b-xkws1m5zv8] { color: var(--barva-text); border-color: var(--barva-linka); }
.vs-posun button:focus-visible[b-xkws1m5zv8] { outline: 2px solid var(--barva-text); outline-offset: 1px; }

.vs-napoveda[b-xkws1m5zv8] { margin: 8px 0 0; font-size: 11.5px; line-height: 1.45; }
