/* Písmo Manrope (Profil → Písmo) – súbory v projekte, public/fonts/manrope (licencia SIL OFL 1.1, OFL.txt). */
@font-face {
    font-family: 'Manrope Variable';
    font-style: normal;
    font-display: swap;
    font-weight: 200 800;
    src: url('/fonts/manrope/manrope-latin-ext-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Manrope Variable';
    font-style: normal;
    font-display: swap;
    font-weight: 200 800;
    src: url('/fonts/manrope/manrope-latin-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/*
 * aLogic – dizajnový systém v2 (docs/dizajn_system.md, 14. 10. 2026; pilot Metrológia).
 * Jediné miesto tokenov: blok :root nižšie. Komponenty používajú iba tokeny (premenné --av-*), nikdy priame hodnoty.
 * Všetky triedy majú predponu „av-“ – ostatné obrazovky (alogic.css) sa tým nemenia.
 * Poradie sekcií: Tokeny · Hustota · Základ · StatusChip · Tlačidlá · Stránka oblasti · Pás nástrojov · FilterChips ·
 * DensityToggle · Tabuľka a RichRow · Virtuálne posúvanie · EmptyState · SectionIntro · Panel · PanelHeader · StatusBlock ·
 * TabsCard · Bloky údajov · ActionMenu a DocumentsMenu · FileCard · Gallery · Formuláre v paneli · Ukážka komponentov · Mobil.
 */

/* ============================================================ Tokeny */
/* Farba klienta (paleta --primary-* podľa klienta, AdminPanelProvider) a odvodené odtiene. Prvok s [data-av-farba]
   (Ukážka komponentov) si ich prepočíta zo svojej palety – farby všetkých klientov sa dajú vyskúšať na jednej stránke. */
:root,
[data-av-farba] {
    --av-klient: var(--primary-600);
    --av-klient-hover: var(--primary-700);
    --av-klient-text: var(--primary-700);
    --av-klient-okraj: var(--primary-300);
    --av-klient-8: color-mix(in oklch, var(--primary-600) 8%, white);
    --av-klient-16: color-mix(in oklch, var(--primary-600) 16%, white);
    --av-klient-hover-pozadie: color-mix(in oklch, var(--primary-600) 5%, white);
    --av-klient-24: color-mix(in oklch, var(--primary-600) 24%, white);
    /* Nadpis karty (detail, formulár) = hlavička stĺpcov tabuľky – jedna definícia (korekcie 3. kolo): malé veľké písmená
       vo farbe klienta. Farba je tu (nie v :root nižšie), aby si ju prvok s [data-av-farba] prepočítal zo svojej palety. */
    --av-nadpis-farba: var(--av-klient-text);
}

:root {
    /* Stavové farby – vždy bledé pozadie + tmavší text (kontrast ≥ 4,5 : 1). */
    --av-cervena-pozadie: #fdecec;
    --av-cervena-text: #b42318;
    --av-cervena-okraj: #f7c9c5;
    --av-oranzova-pozadie: #fdf1e3;
    --av-oranzova-text: #b54708;
    --av-oranzova-okraj: #f5d3ad;
    --av-zelena-pozadie: #e8f5ec;
    --av-zelena-text: #1f7a3f;
    --av-zelena-okraj: #bfe3cb;
    --av-modra-pozadie: #e8f0fd;
    --av-modra-text: #1d5bc4;
    --av-modra-okraj: #c3d6f7;
    --av-siva-pozadie: #f0f1f3;
    --av-siva-text: #4b5563;
    --av-siva-okraj: #dcdfe4;

    /* Neutrálne farby. */
    --av-text: #18181b;
    --av-text-2: #52525b;
    --av-text-3: #6b6b74;
    --av-okraj: #e4e4e7;
    --av-okraj-jemny: #efeff1;
    --av-pozadie: #f7f7f8;
    --av-povrch: #ffffff;
    --av-hover: #f4f4f5;
    /* Tlačidlá bez okraja: ostatné = jemné sivé podfarbenie, hlavné = bledé podfarbenie farbou klienta + tmavší text. */
    --av-tlacidlo: #f1f1f4;
    --av-tlacidlo-hover: #e7e7eb;
    --av-oddelovac: #ececef;

    /* Písmo Inter (súbory v projekte) a odstupňované veľkosti. */
    /* Písmo podľa voľby používateľa (Profil → Písmo, App\Enums\Pismo): --font-family Filamentu, predvolené Inter. */
    --av-pismo: var(--font-family), ui-sans-serif, system-ui, sans-serif;
    --av-pismo-11: 11px;
    --av-pismo-12: 12px;
    --av-pismo-13: 13px;
    --av-pismo-14: 14px;
    --av-pismo-16: 16px;
    --av-pismo-20: 20px;
    --av-riadok-11: 16px;
    --av-riadok-12: 16px;
    --av-riadok-13: 20px;
    --av-riadok-14: 20px;
    --av-riadok-16: 24px;
    --av-riadok-20: 28px;

    /* Nadpis karty a hlavička stĺpcov hlavného zoznamu (korekcie 3. kolo) – rovnaké písmo všade: 11 px, tučné 600, veľké
       písmená s rozostupom 0,04 em, farba klienta (--av-nadpis-farba vyššie). Používa: .av-hlavicka-tabulky hlavného
       zoznamu, nadpis karty detailu (sekcia infolistu, DetailCard) a nadpis sekcie formulára. Názvy stĺpcov tabuľky v karte
       ich od 7. kola nepoužívajú – majú štýl názvu v riadku „názov – hodnota“ (pomocný text). */
    --av-nadpis-pismo: var(--av-pismo-11);
    --av-nadpis-riadok: var(--av-riadok-11);
    --av-nadpis-hrubka: 600;
    --av-nadpis-rozostup: 0.04em;
    --av-nadpis-pismena: uppercase;

    /* Písmo v kartách (korekcie 4. kolo) – v celom detaile aj v paneloch iba tri veľkosti, ako v Základných údajoch:
       nadpis karty (--av-nadpis-* vyššie), text karty (hodnoty, bunky tabuliek, odseky) a pomocný text (popis v riadku
       „názov – hodnota“, hlavička stĺpcov, popisy pod údajom, štítky, tlačidlá v karte). */
    --av-karta-text: var(--av-pismo-14);
    --av-karta-text-riadok: var(--av-riadok-14);
    --av-karta-pomocny: var(--av-pismo-13);
    --av-karta-pomocny-riadok: var(--av-riadok-13);
    --av-karta-pomocny-farba: var(--av-text-3);
    /* Riadok v karte (korekcie 5. kolo): riadok „názov – hodnota“ aj riadok tabuľky v karte (aj riadok názvov stĺpcov) majú
       rovnakú výšku – bez deliacej čiary (tá je 1 px navyše, ako medzi riadkami Základných údajov). */
    --av-karta-riadok: 38px;

    /* Medzery. */
    --av-m-1: 4px;
    --av-m-2: 8px;
    --av-m-3: 12px;
    --av-m-4: 16px;
    --av-m-6: 24px;

    /* Zaoblenie – jedna hodnota pre každý typ prvku (mierne, nie ako iOS). */
    --av-r-karta: 12px;   /* karty, panel, zoznam, okno */
    --av-r-ovladac: 8px;  /* tlačidlá, polia, ikony */
    --av-r-stitok: 6px;   /* štítky stavu a filtra */

    /* Tiene – minimálne. */
    --av-tien-1: 0 1px 2px rgb(16 24 40 / 0.05);
    --av-tien-panel: -8px 0 28px rgb(16 24 40 / 0.07);
    --av-tien-ponuka: 0 8px 24px rgb(16 24 40 / 0.12);

    /* Riadok zoznamu – jeden riadok s pevnou výškou (korekcie 14. 10. 2026: bez druhého riadku a prepínača hustoty). */
    --av-riadok: 40px;
    --av-riadok-odsadenie: 4px;
    --av-ikona-riadku: 28px;

    /* Tlačidlá – jedna definícia pre všetky (korekcie 2. kolo): Upraviť, Akcie ▾, Dokumenty ▾, Pridať …, Uložiť, Zrušiť,
       rýchle filtre, Filter aj tlačidlá Filamentu v obrazovkách v2 majú rovnakú výšku, odsadenie, písmo a veľkosť ikony. */
    --av-tlacidlo-vyska: 32px;
    --av-tlacidlo-odsadenie: 12px;
    --av-tlacidlo-pismo: 13px;
    --av-tlacidlo-hrubka: 500;
    --av-tlacidlo-medzera: 6px;
    --av-tlacidlo-ikona: 16px;
    --av-vyska-ovladaca: var(--av-tlacidlo-vyska);

    /* Lišta panela: ⤢ a × majú rovnako veľký znak (10 px); × je výraznejšie – tmavšie a s väčšou plochou na klik. */
    --av-ikona-listy: 10px;

    /* Panel nad zoznamom: šírka v % obsahu (40–80, zapamätaná pre používateľa). */
    --av-sirka-panela: 60;

    /* Vysunutie panela – detail aj formulár rovnako (korekcie 3. kolo): ako panel formulára Filamentu (zmerané v prehliadači)
       – posun zo 100 % šírky, 300 ms, priebeh „ease“, bez priehľadnosti. Jedna definícia pre panel detailu aj formulára. */
    --av-vysun-trvanie: 300ms;
    --av-vysun-krivka: ease;

    /* Stmavenie zoznamu pod panelom detailu = stmavenie pod panelom formulára (Filament: šedá 950 na 50 %, korekcie 4. kolo). */
    --av-stmavenie: color-mix(in oklab, var(--gray-950) 50%, transparent);
}

/* ============================================================ Základ */
.av-stranka,
.av-panely,
.av-ukazka,
.av-formular {
    font-family: var(--av-pismo);
    color: var(--av-text);
    -webkit-font-smoothing: antialiased;
}

.av-ikona {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.av-ikona-sm {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.av-ikona-lg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.av-skryte {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* Viditeľné zameranie klávesnicou – obrys farbou klienta. */
.av-stranka :focus-visible,
.av-panely :focus-visible,
.av-ukazka :focus-visible {
    outline: 2px solid var(--av-klient);
    outline-offset: 1px;
}

/* ============================================================ StatusChip */
.av-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--av-m-1);
    height: 22px;
    padding: 0 var(--av-m-2) 0 6px;
    border-radius: var(--av-r-stitok);
    border: 0;
    font-size: var(--av-pismo-12);
    line-height: var(--av-riadok-12);
    font-weight: 500;
    white-space: nowrap;
    max-width: 100%;
}

.av-chip > span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.av-chip svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.av-ton-cervena {
    background: var(--av-cervena-pozadie);
    color: var(--av-cervena-text);
}

.av-ton-oranzova {
    background: var(--av-oranzova-pozadie);
    color: var(--av-oranzova-text);
}

.av-ton-zelena {
    background: var(--av-zelena-pozadie);
    color: var(--av-zelena-text);
}

.av-ton-modra {
    background: var(--av-modra-pozadie);
    color: var(--av-modra-text);
}

.av-ton-siva {
    background: var(--av-siva-pozadie);
    color: var(--av-siva-text);
}

/* Text v stavovej farbe (termín v riadku). */
.av-text-cervena { color: var(--av-cervena-text); }
.av-text-oranzova { color: var(--av-oranzova-text); }
.av-text-zelena { color: var(--av-zelena-text); }
.av-text-modra { color: var(--av-modra-text); }
.av-text-siva { color: var(--av-text-3); }

/* ============================================================ Tlačidlá */
.av-tlacidlo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--av-tlacidlo-medzera);
    height: var(--av-tlacidlo-vyska);
    padding: 0 var(--av-tlacidlo-odsadenie);
    border-radius: var(--av-r-ovladac);
    border: 0;
    background: var(--av-tlacidlo);
    color: var(--av-text);
    font-family: var(--av-pismo);
    font-size: var(--av-tlacidlo-pismo);
    line-height: var(--av-riadok-13);
    font-weight: var(--av-tlacidlo-hrubka);
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.12s;
}

.av-tlacidlo:hover {
    background: var(--av-tlacidlo-hover);
}

.av-tlacidlo > svg:not(.av-sipka) {
    width: var(--av-tlacidlo-ikona);
    height: var(--av-tlacidlo-ikona);
}

.av-tlacidlo[disabled] {
    opacity: 0.5;
    cursor: default;
}

.av-tlacidlo-hlavne {
    background: var(--av-klient-16);
    color: var(--av-klient-text);
}

.av-tlacidlo-hlavne:hover {
    background: var(--av-klient-24);
}

.av-tlacidlo-ikona {
    width: var(--av-tlacidlo-vyska);
    padding: 0;
    color: var(--av-text-2);
}

.av-tlacidlo-bez-okraja {
    border-color: transparent;
    background: transparent;
    color: var(--av-text-2);
}

.av-tlacidlo-bez-okraja:hover {
    background: var(--av-hover);
    color: var(--av-text);
}

.av-tlacidlo-zmazat svg {
    color: var(--av-cervena-text);
}

/* Tlačidlá Filamentu v obrazovkách v2 (aj pás sekcií, formuláre a okná na stránke v2): rovnaké ako av-tlacidlo –
   bez okraja, hlavné bledé podfarbenie farbou klienta s tmavším textom, ostatné jemné sivé podfarbenie. */
:is(.av-stranka, .av-panely, .av-ukazka, .av-formular, .av-pas-sekcii) .fi-btn,
body:has(.av-stranka, .av-ukazka) .fi-modal .fi-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--av-tlacidlo-medzera) !important;
    height: var(--av-tlacidlo-vyska) !important;
    min-height: var(--av-tlacidlo-vyska);
    padding: 0 var(--av-tlacidlo-odsadenie) !important;
    font-family: var(--av-pismo);
    font-size: var(--av-tlacidlo-pismo) !important;
    line-height: var(--av-riadok-13) !important;
    font-weight: var(--av-tlacidlo-hrubka) !important;
    white-space: nowrap;
    border-radius: var(--av-r-ovladac);
    border: 0 !important;
    box-shadow: none !important;
    background: var(--av-tlacidlo) !important;
    color: var(--av-text) !important;
}

:is(.av-stranka, .av-panely, .av-ukazka, .av-formular, .av-pas-sekcii) .fi-btn:hover,
body:has(.av-stranka, .av-ukazka) .fi-modal .fi-btn:hover {
    background: var(--av-tlacidlo-hover) !important;
}

:is(.av-stranka, .av-panely, .av-ukazka, .av-formular, .av-pas-sekcii) .fi-btn.fi-color-primary:not(.fi-outlined),
body:has(.av-stranka, .av-ukazka) .fi-modal .fi-btn.fi-color-primary:not(.fi-outlined) {
    background: var(--av-klient-16) !important;
    color: var(--av-klient-text) !important;
}

:is(.av-stranka, .av-panely, .av-ukazka, .av-formular, .av-pas-sekcii) .fi-btn.fi-color-primary:not(.fi-outlined):hover,
body:has(.av-stranka, .av-ukazka) .fi-modal .fi-btn.fi-color-primary:not(.fi-outlined):hover {
    background: var(--av-klient-24) !important;
}

:is(.av-stranka, .av-panely, .av-ukazka, .av-formular, .av-pas-sekcii) .fi-btn .fi-icon,
body:has(.av-stranka, .av-ukazka) .fi-modal .fi-btn .fi-icon {
    width: var(--av-tlacidlo-ikona) !important;
    height: var(--av-tlacidlo-ikona) !important;
    color: currentColor !important;
}

:is(.av-stranka, .av-panely, .av-ukazka, .av-formular, .av-pas-sekcii) .fi-btn.alogic-tlacidlo-zmazat .fi-icon,
:is(.av-stranka, .av-panely, .av-ukazka, .av-formular, .av-pas-sekcii) .av-tlacidlo-zmazat svg {
    color: var(--av-cervena-text) !important;
}

/* ============================================================ Stránka oblasti v2 */
.av-stranka {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Jedna obrazovka (≥ 1024 px): zoznam v2 vyplní zvyšok okna, posúvajú sa iba riadky (virtuálne posúvanie potrebuje
   ohraničenú oblasť). Reťaz obalov Filamentu (schéma obsahu stránky) sa natiahne na výšku obsahu stránky. */
@media (min-width: 1024px) {
    .fi-page-content:has(> .fi-sc > .fi-grid-col > .fi-sc-component > .av-stranka),
    .fi-page-content:has(> .fi-sc > .fi-grid-col > .fi-sc-component > .av-stranka) > .fi-sc,
    .fi-page-content:has(> .fi-sc > .fi-grid-col > .fi-sc-component > .av-stranka) > .fi-sc > .fi-grid-col,
    .fi-page-content:has(> .fi-sc > .fi-grid-col > .fi-sc-component > .av-stranka) > .fi-sc > .fi-grid-col > .fi-sc-component {
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        min-height: 0;
    }

    .av-stranka {
        flex: 1 1 auto;
        min-height: 0;
    }
}

/* Úzka obrazovka: stránka sa posúva celá, zoznam má vlastnú ohraničenú oblasť (virtuálne posúvanie). */
@media (max-width: 1023.98px) {
    .av-stranka .av-zoznam-posuv {
        max-height: 75vh;
    }
}

/* Úvod sekcie (SectionIntro) pod pásom sekcií. */
.av-uvod {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    margin: 0 0 var(--av-m-3);
    font-size: var(--av-pismo-13);
    line-height: var(--av-riadok-13);
    color: var(--av-text-2);
}

.av-uvod svg {
    width: 16px;
    height: 16px;
    color: var(--av-text-3);
}

/* Pás sekcií: „Dokumenty ▾“ a hlavné tlačidlo vpravo (akcie-pasu z StrankaOblasti). */
.av-dokumenty-spustac .fi-btn,
.av-akcie-spustac .fi-btn {
    gap: 6px;
}

/* ============================================================ Pás nástrojov zoznamu */
/* Poloha prvkov sa pri kliknutí nemení (korekcie 2. kolo): vľavo Hľadať, rýchle filtre, Filter a za ním štítky zapnutých
   filtrov (zalomia sa v ľavej časti, nič neodsunú); vpravo záložky stavu a ikony – vždy v jednom riadku na svojom mieste. */
.av-nastroje {
    display: flex;
    align-items: flex-start;
    gap: var(--av-m-2);
    padding: var(--av-m-2) var(--av-m-3);
    border-bottom: 1px solid var(--av-okraj);
    background: var(--av-povrch);
}

.av-nastroje-vlavo {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--av-m-2);
    flex: 1 1 auto;
    min-width: 0;
}

@media (max-width: 1023.98px) {
    .av-nastroje {
        flex-wrap: wrap;
    }
}

.av-hladat {
    position: relative;
    display: flex;
    align-items: center;
    flex: 0 1 280px;
    min-width: 160px;
    max-width: 100%;
}

.av-hladat > svg {
    position: absolute;
    left: 10px;
    width: 16px;
    height: 16px;
    color: var(--av-text-3);
    pointer-events: none;
}

.av-hladat input {
    width: 100%;
    height: var(--av-vyska-ovladaca);
    padding: 0 28px 0 32px;
    border: 0;
    border-radius: var(--av-r-ovladac);
    background: var(--av-tlacidlo);
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
    color: var(--av-text);
    outline: none;
}

/* Jeden krížik na vymazanie (náš), natívny krížik prehliadača sa skryje. */
.av-hladat input::-webkit-search-cancel-button,
.av-hladat input::-webkit-search-decoration {
    -webkit-appearance: none;
    appearance: none;
    display: none;
}

.av-hladat input::placeholder {
    color: var(--av-text-3);
}

.av-hladat input:focus {
    background: var(--av-povrch);
    box-shadow: 0 0 0 2px var(--av-klient-okraj);
}

.av-hladat-zrusit {
    position: absolute;
    right: 4px;
    display: inline-flex;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    border-radius: var(--av-r-stitok);
    color: var(--av-text-3);
    background: transparent;
    border: 0;
    cursor: pointer;
}

.av-hladat-zrusit:hover {
    background: var(--av-hover);
    color: var(--av-text);
}

.av-nastroje-vpravo {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    margin-left: auto;
    flex: 0 0 auto;
    max-width: 100%;
}

/* Záložky stavu s počtom (Používa sa 412 · Pripravené 37 …). */
.av-stavy {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 2px;
    border: 0;
    border-radius: var(--av-r-ovladac);
    background: var(--av-tlacidlo);
}

.av-stav-zalozka {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: calc(var(--av-tlacidlo-vyska) - 4px);
    padding: 0 10px;
    border: 0;
    border-radius: var(--av-r-stitok);
    background: transparent;
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
    font-weight: 500;
    color: var(--av-text-2);
    cursor: pointer;
    white-space: nowrap;
}

.av-stav-zalozka:hover {
    color: var(--av-text);
}

.av-stav-zalozka[aria-pressed='true'] {
    background: var(--av-klient-16);
    color: var(--av-klient-text);
}

.av-pocet {
    font-size: var(--av-pismo-11);
    line-height: var(--av-riadok-11);
    font-weight: 500;
    color: var(--av-text-3);
    font-variant-numeric: tabular-nums;
}

.av-stav-zalozka[aria-pressed='true'] .av-pocet {
    color: var(--av-klient-text);
}


/* ============================================================ FilterChips */
.av-filtre {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.av-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 28px;
    padding: 0 4px 0 10px;
    border-radius: var(--av-r-stitok);
    background: var(--av-klient-16);
    color: var(--av-klient-text);
    font-size: var(--av-pismo-12);
    font-weight: 500;
    white-space: nowrap;
    max-width: 320px;
}

.av-filter-chip > span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.av-filter-chip button {
    display: inline-flex;
    width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.av-filter-chip button:hover {
    background: color-mix(in oklch, var(--primary-600) 18%, transparent);
}

.av-filter-pridat {
    display: inline-flex;
    align-items: center;
    gap: var(--av-tlacidlo-medzera);
    height: var(--av-tlacidlo-vyska);
    padding: 0 var(--av-tlacidlo-odsadenie);
    border: 0;
    border-radius: var(--av-r-ovladac);
    background: var(--av-tlacidlo);
    font-family: var(--av-pismo);
    font-size: var(--av-tlacidlo-pismo);
    font-weight: var(--av-tlacidlo-hrubka);
    color: var(--av-text-2);
    cursor: pointer;
}

.av-filter-pridat:hover {
    background: var(--av-tlacidlo-hover);
    color: var(--av-text);
}

.av-filter-pridat > svg {
    width: var(--av-tlacidlo-ikona);
    height: var(--av-tlacidlo-ikona);
}

/* Zapnutý rýchly filter: iba podfarbenie farbou klienta – bez krížika, rovnaká šírka a miesto; vypne sa ďalším klikom. */
.av-rychly-filter[aria-pressed='true'],
.av-rychly-filter[aria-pressed='true']:hover {
    background: var(--av-klient-16);
    color: var(--av-klient-text);
}

/* Karta „Filtre“ (korekcie 4. kolo, vzor: filter v záložke detailu): hore nadpis „Filtre“ (ako nadpis karty) a vpravo
   „Resetovať“, polia v dvoch stĺpcoch (Table::filtersFormColumns – AppServiceProvider), prepínače ako switch s textom
   na jednom riadku, dole „Použiť filtre“. Karta nie je .av-rozbalovacia-panel (štýly položiek ponuky by zmenili polia).
   Vyššia ako okno sa posúva vo vnútri – hlavička a tlačidlo stoja. */
.av-filter-karta {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 40;
    display: flex;
    flex-direction: column;
    width: 560px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 160px);
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
    box-shadow: var(--av-tien-ponuka), inset 0 0 0 1px var(--av-oddelovac);
    font-family: var(--av-pismo);
}

.av-filter-karta-hlavicka {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: var(--av-m-3);
    padding: var(--av-m-3) var(--av-m-4) var(--av-m-2);
}

.av-filter-karta-hlavicka > h3 {
    margin: 0;
    font-size: var(--av-nadpis-pismo);
    line-height: var(--av-nadpis-riadok);
    font-weight: var(--av-nadpis-hrubka);
    letter-spacing: var(--av-nadpis-rozostup);
    text-transform: var(--av-nadpis-pismena);
    color: var(--av-nadpis-farba);
}

/* „Resetovať“: nenápadný text vo farbe klienta (nie červený – nič sa nemaže). */
.av-filter-reset {
    padding: 2px 6px;
    border: 0;
    border-radius: var(--av-r-stitok);
    background: transparent;
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
    font-weight: 500;
    color: var(--av-klient-text);
    cursor: pointer;
}

.av-filter-reset:hover {
    background: var(--av-klient-8);
}

.av-filter-formular {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: var(--av-m-1) var(--av-m-4) var(--av-m-4);
}

.av-filter-formular .fi-fo-field-label-content {
    font-size: var(--av-pismo-13);
    font-weight: 500;
    color: var(--av-text-2);
}

.av-filter-formular :is(.fi-input, .fi-select-input-btn) {
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
}

.av-filter-formular .fi-input-wrp {
    border-radius: var(--av-r-ovladac);
}

/* Prepínač (filter áno / nie): switch vľavo a text vpravo na jednom riadku, výška ako pole (zarovnané v mriežke). */
.av-filter-formular .fi-fo-field:has(.fi-fo-toggle) {
    align-self: end;
}

.av-filter-formular .fi-fo-field:has(.fi-fo-toggle) .fi-fo-field-label {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    min-height: 36px;
    white-space: nowrap;
}

.av-filter-formular .fi-fo-toggle.fi-toggle-on,
.av-filter-formular .fi-toggle.fi-toggle-on {
    background-color: var(--av-klient);
}

.av-filter-karta-tlacidla {
    display: flex;
    flex: 0 0 auto;
    justify-content: flex-end;
    gap: var(--av-m-2);
    padding: var(--av-m-3) var(--av-m-4);
    border-top: 1px solid var(--av-okraj-jemny);
}

/* ============================================================ Tabuľka a RichRow */
.av-tabulka {
    --av-stlpce: minmax(220px, 2fr) repeat(var(--av-pocet-stlpcov, 0), minmax(80px, 1fr)) 150px 112px 40px;
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--av-povrch);
    font-size: var(--av-pismo-13);
    line-height: var(--av-riadok-13);
}

.av-hlavicka-tabulky,
.av-riadok {
    display: grid;
    grid-template-columns: var(--av-stlpce);
    align-items: center;
    column-gap: var(--av-m-3);
    padding: 0 var(--av-m-3) 0 var(--av-m-4);
}

.av-hlavicka-tabulky {
    position: sticky;
    top: 0;
    z-index: 2;
    height: 32px;
    background: var(--av-klient-8);
    border-bottom: 1px solid var(--av-okraj);
    font-size: var(--av-nadpis-pismo);
    line-height: var(--av-nadpis-riadok);
    font-weight: var(--av-nadpis-hrubka);
    letter-spacing: var(--av-nadpis-rozostup);
    text-transform: var(--av-nadpis-pismena);
    color: var(--av-nadpis-farba);
}

.av-hlavicka-tabulky > * {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.av-hlavicka-tabulky button {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    color: inherit;
    cursor: pointer;
}

.av-hlavicka-tabulky svg {
    width: 12px;
    height: 12px;
}

.av-riadok {
    position: relative;
    height: var(--av-riadok);
    border-bottom: 1px solid var(--av-okraj-jemny);
    background: var(--av-povrch);
    color: var(--av-text);
    cursor: pointer;
    outline: none;
}

.av-riadok:hover {
    background: var(--av-klient-hover-pozadie);
}

.av-riadok.av-vybrany {
    background: var(--av-klient-8);
    box-shadow: inset 3px 0 0 var(--av-klient);
}

.av-riadok:focus-visible {
    box-shadow: inset 0 0 0 2px var(--av-klient);
}

.av-bunka {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--av-text-2);
}

.av-bunka-vpravo {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.av-bunka-prazdna {
    color: var(--av-text-3);
}

/* Súbor v bunke: ikony Otvoriť a Stiahnuť (klik na ne riadok neotvorí). */
.av-bunka-subor {
    display: inline-flex;
    gap: 2px;
}

.av-bunka-subor a {
    display: inline-flex;
    width: 26px;
    height: 26px;
    align-items: center;
    justify-content: center;
    border-radius: var(--av-r-stitok);
    color: var(--av-text-3);
}

.av-bunka-subor a:hover {
    background: var(--av-okraj-jemny);
    color: var(--av-klient-text);
}

/* Prvý stĺpec riadku: názov (jeden riadok, bez ikony a druhého riadku). */
.av-riadok-nazov {
    display: flex;
    align-items: center;
    gap: var(--av-m-3);
    min-width: 0;
}

.av-nazov {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--av-pismo-14);
    line-height: var(--av-riadok-14);
    font-weight: 500;
    color: var(--av-text);
}

.av-riadok-stav {
    min-width: 0;
    display: flex;
    justify-content: flex-start;
}

.av-termin {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    color: var(--av-text-2);
}

.av-riadok-ponuka {
    display: flex;
    justify-content: flex-end;
}

.av-riadok-ponuka-tlacidlo {
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: var(--av-r-stitok);
    background: transparent;
    color: var(--av-text-3);
    cursor: pointer;
    opacity: 0.6;
}

.av-riadok:hover .av-riadok-ponuka-tlacidlo,
.av-riadok-ponuka-tlacidlo:focus-visible,
.av-riadok-ponuka-tlacidlo[aria-expanded='true'] {
    opacity: 1;
}

.av-riadok-ponuka-tlacidlo:hover {
    background: var(--av-okraj-jemny);
    color: var(--av-text);
}

/* Výber (hromadné akcie): zaškrtávacie políčko pred ikonou – iba v režime výberu. */
.av-riadok-vyber {
    display: none;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    accent-color: var(--av-klient);
    cursor: pointer;
}

.av-rezim-vyberu .av-riadok-vyber {
    display: inline-block;
}

.av-pas-vyberu {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    padding: 6px var(--av-m-3);
    border-bottom: 1px solid var(--av-okraj);
    background: var(--av-klient-8);
    font-size: var(--av-pismo-13);
    color: var(--av-klient-text);
}

/* Riadok, ktorý sa ešte načítava (virtuálne posúvanie). */
.av-riadok-kostra {
    cursor: default;
}

/* RowGroup – jemný medzinadpis skupiny v zozname (Dokumentácia, 16. 10. 2026: kategória dokumentu, typ záznamu). Položka
   virtuálneho zoznamu s výškou riadku cez celú šírku; text ako pomocný text karty (13 px, stredná hrúbka, sivý), bez
   veľkých písmen (tie má iba hlavička tabuľky a nadpis karty); jemné neutrálne podfarbenie, neotvára sa. */
.av-riadok.av-riadok-skupina {
    display: flex;
    align-items: flex-end;
    padding-bottom: 6px;
    background: var(--av-pozadie);
    border-bottom-color: var(--av-okraj);
    cursor: default;
}

.av-riadok.av-riadok-skupina:hover {
    background: var(--av-pozadie);
}

.av-riadok-skupina-nazov {
    display: flex;
    align-items: baseline;
    gap: var(--av-m-2);
    min-width: 0;
    font-size: var(--av-pismo-13);
    line-height: var(--av-riadok-13);
    font-weight: 500;
    color: var(--av-text-2);
}

.av-riadok-skupina-nazov > span:first-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.av-riadok-skupina-pocet {
    font-size: var(--av-pismo-12);
    font-weight: 400;
    font-variant-numeric: tabular-nums;
    color: var(--av-text-3);
}

.av-riadok-kostra .av-kostra {
    display: block;
    height: 10px;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--av-okraj-jemny), var(--av-hover), var(--av-okraj-jemny));
    background-size: 200% 100%;
    animation: av-kostra 1.2s linear infinite;
}

@keyframes av-kostra {
    from { background-position: 200% 0; }
    to { background-position: -200% 0; }
}

/* Úzky priestor (panel, polovica obrazovky): vedľajšie stĺpce sa skryjú, ostane bohatý riadok, stav a termín. */
.av-tabulka {
    container: av-tabulka / inline-size;
}

@container av-tabulka (max-width: 760px) {
    .av-riadok,
    .av-hlavicka-tabulky {
        grid-template-columns: minmax(0, 1fr) 132px 96px 32px;
    }

    .av-bunka-vedlajsia,
    .av-hlavicka-vedlajsia {
        display: none;
    }
}

@container av-tabulka (max-width: 480px) {
    .av-riadok,
    .av-hlavicka-tabulky {
        grid-template-columns: minmax(0, 1fr) auto 32px;
    }

    .av-riadok-termin,
    .av-hlavicka-termin {
        display: none;
    }
}

/* ============================================================ Virtuálne posúvanie */
.av-zoznam {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
    overflow: hidden;
}

.av-zoznam-posuv {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
}

.av-zoznam-vyska {
    position: relative;
}

.av-zoznam-okno {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    will-change: transform;
}

/* ============================================================ EmptyState */
.av-prazdny {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--av-m-2);
    padding: 48px var(--av-m-6);
    text-align: center;
    /* Vždy vodorovne v strede karty, aj v mriežke galérie a pri zmene šírky panela (pozorovanie Petra 28. 10. 2026). */
    box-sizing: border-box;
    width: 100%;
    grid-column: 1 / -1;
    align-self: stretch;
    margin-inline: auto;
}

/* Krátke prázdne stavy v kartách (graf, náhľad faktúry, zaškolenie, prehliadač, dielňa) – tiež v strede karty. */
.av-graf-prazdny,
.av-nahlad-faktury-prazdny,
.av-zaskolenie-prazdne,
.av-prehliadac-prazdne,
.av-dielna-prazdne {
    text-align: center;
}

.av-prazdny-ikona {
    display: inline-flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border-radius: var(--av-r-karta);
    background: var(--av-klient-8);
    color: var(--av-klient-text);
}

.av-prazdny-ikona svg {
    width: 24px;
    height: 24px;
}

.av-prazdny.av-ton-chyba .av-prazdny-ikona {
    background: var(--av-cervena-pozadie);
    color: var(--av-cervena-text);
}

.av-prazdny-nadpis {
    margin: var(--av-m-1) 0 0;
    font-size: var(--av-pismo-16);
    line-height: var(--av-riadok-16);
    font-weight: 600;
    color: var(--av-text);
}

.av-prazdny-text {
    max-width: 420px;
    margin: 0;
    font-size: var(--av-pismo-13);
    line-height: var(--av-riadok-13);
    color: var(--av-text-2);
}

.av-prazdny-akcie {
    display: flex;
    gap: var(--av-m-2);
    margin-top: var(--av-m-2);
}

/* ============================================================ Panel nad zoznamom */
.av-panely {
    position: fixed;
    inset: 0;
    z-index: 30;
    pointer-events: none;
}

.av-panel {
    /* Väčšia z uloženej šírky používateľa a najmenšej šírky, pri ktorej sú záložky detailu v jednom riadku (--av-sirka-min, 28. 10. 2026). */
    --av-sirka: calc(max(var(--av-sirka-panela), var(--av-sirka-min, 0)) * 1%);
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    width: var(--av-sirka);
    max-width: 100%;
    background: var(--av-povrch);
    border: 0;
    border-radius: var(--av-r-karta) 0 0 var(--av-r-karta);
    overflow: hidden;
    box-shadow: var(--av-tien-panel);
    pointer-events: auto;
    animation: av-panel-vysun var(--av-vysun-trvanie) var(--av-vysun-krivka);
    /* Každý panel je samostatná vrstva – lepiace prvky spodného panela (záložky, hlavička tabuľky) nevyčnievajú nad vrchný. */
    z-index: 1;
    isolation: isolate;
}

/* Panel v kontejneri obsahu (vedľa bočného menu) – šírka v % obsahu. Ľavý okraj = začiatok obsahu stránky (premenná na
   <html> z alogic-v2.js – Livewire ju pri doplnení obsahu panela nezmaže, panel neskočí). */
.av-panely-obsah {
    position: absolute;
    inset: 0;
    left: var(--av-obsah-vlavo, 0px);
}

.av-panel.av-na-celu-sirku {
    width: 100%;
}

/* Panely nad sebou (korekcie 6. kolo): podradený panel (napr. Detail kalibrácie nad Detailom meradla) má presne rovnakú
   šírku ako rodičovský a rodičovský sa pri jeho otvorení ani zatvorení nemení – nerozšíri sa, nezúži, nestlmí, nič sa
   nehýbe (zrušené vykúkanie spodných panelov o 24 px na úroveň a ich zosvetlenie). Že sú panely dva, naznačuje iba jemný
   tieň vrchného panela (--av-tien-panel, rovnaký ako pri každom paneli) a šípka späť v jeho hlavičke (.av-panel-nad). */

@keyframes av-panel-vysun {
    from { transform: translateX(100%); }
    to { transform: none; }
}

/* Zatvorenie (korekcie 4. kolo): panel sa zasunie doprava rovnako ako panel formulára (tokeny --av-vysun-*); server sa
   zavolá až po dobehnutí (avPanelyKomponent.zavri). */
.av-panel.av-panel-zatvara {
    animation: av-panel-zasun var(--av-vysun-trvanie) var(--av-vysun-krivka) forwards;
    pointer-events: none;
}

@keyframes av-panel-zasun {
    from { transform: none; }
    to { transform: translateX(100%); }
}

/* Stmavenie zoznamu pod panelmi (korekcie 4. kolo): ako pri formulári – celé okno pod panelom, objaví sa a zmizne plynulo
   (rovnaké trvanie ako vysunutie); klik naň zavrie panely. */
.av-panely-stmavenie {
    position: absolute;
    inset: 0;
    background: var(--av-stmavenie);
    pointer-events: auto;
    animation: av-stmavenie-zobraz var(--av-vysun-trvanie) var(--av-vysun-krivka);
    transition: opacity var(--av-vysun-trvanie) var(--av-vysun-krivka);
}

.av-panely-zatvara > .av-panely-stmavenie {
    opacity: 0;
}

@keyframes av-stmavenie-zobraz {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Znížený pohyb: panel detailu aj formulára bez vysúvania (jedna definícia – tokeny). */
@media (prefers-reduced-motion: reduce) {
    :root {
        --av-vysun-trvanie: 0ms;
    }

    .av-panel,
    .av-panel.av-panel-zatvara,
    .av-panely-stmavenie,
    .av-pdf-stmavenie {
        animation: none;
    }
}

.av-panel-tahadlo {
    position: absolute;
    top: 0;
    bottom: 0;
    left: -4px;
    width: 8px;
    cursor: col-resize;
    z-index: 3;
}

.av-panel-tahadlo::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 3px;
    width: 2px;
    height: 32px;
    margin-top: -16px;
    border-radius: 2px;
    background: var(--av-okraj);
    opacity: 0;
    transition: opacity 0.12s;
}

.av-panel-tahadlo:hover::after,
.av-panel-tahadlo.av-taha::after {
    opacity: 1;
    background: var(--av-klient);
}

/* Lišta panela sa nikdy nestlačí (korekcie 4. kolo): v stĺpci flexboxu by ju vysoký obsah záložky (napr. Etalón) stlačil
   zo 49 na 44 px a celý obsah panela by pri prepnutí záložky poskočil o 5 px. */
.av-panel-lista {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: var(--av-m-2);
    min-height: 44px;
    padding: 6px var(--av-m-2) 6px var(--av-m-4);
    border-bottom: 1px solid var(--av-okraj-jemny);
}

/* Hlavička panela (korekcie 5. kolo): iba nadpis podľa typu záznamu („Detail meradla“) – bez podnadpisu so záznamom
   (záznam je v hlavičke obsahu, PanelHeader); rovnaký štýl má hlavička panela formulára („Pridať meradlo“, „Externá
   kalibrácia“), tiež bez podnadpisu. Kostra panela má ten istý nadpis – hlavička po doplnení obsahu nezmení výšku. */
.av-panel-titul {
    flex: 1 1 auto;
    min-width: 0;
}

.av-panel-typ,
.fi-modal-slide-over .av-formular .fi-modal-heading,
body:has(.av-stranka, .av-ukazka) .fi-modal-slide-over .fi-modal-window .fi-modal-heading {
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-16) !important;
    line-height: var(--av-riadok-16) !important;
    font-weight: 600;
    color: var(--av-text);
}

/* Šípka späť na predošlý panel – iba pri paneloch nad sebou (na mobile vždy, panel je na celú obrazovku). */
.av-panel-spat {
    display: none;
}

.av-panel-nad .av-panel-spat {
    display: inline-flex;
}
/* ⤢ a ×: rovnako veľký znak (--av-ikona-listy); × je tmavšie a má väčšiu plochu na klik (36 px). Znak ikony × zaberá
   polovicu jej plochy, znak ⤢ dve tretiny – preto sú plochy ikon 2× a 1,5× veľkosti znaku. */
.av-panel-lista .av-panel-sirka .av-ikona-listy {
    width: calc(var(--av-ikona-listy) * 1.5);
    height: calc(var(--av-ikona-listy) * 1.5);
}

.av-panel-lista .av-panel-zavriet .av-ikona-listy {
    width: calc(var(--av-ikona-listy) * 2);
    height: calc(var(--av-ikona-listy) * 2);
}

.av-panel-lista .av-panel-zavriet {
    width: 36px;
    height: 36px;
    color: var(--av-text);
}

.av-panel-obsah {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
}

.av-panel-nacitava {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--av-klient), transparent);
    background-size: 50% 100%;
    animation: av-nacitava 0.9s linear infinite;
}

@keyframes av-nacitava {
    from { background-position: -50% 0; }
    to { background-position: 150% 0; }
}

/* ============================================================ PanelHeader */
.av-panel-hlavicka {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--av-m-3);
    padding: var(--av-m-4) var(--av-m-6) var(--av-m-3);
}

.av-panel-obrazok {
    display: inline-flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: var(--av-r-ovladac);
    background: var(--av-klient-8);
    color: var(--av-klient-text);
    overflow: hidden;
}

.av-panel-obrazok svg {
    width: 22px;
    height: 22px;
}

.av-panel-obrazok img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Iniciály (zamestnanec bez fotky – Ľudia, 15. 10. 2026): bledá farba klienta a tmavší text tej istej farby ako ikona. */
.av-panel-inicialy {
    font-size: var(--av-pismo-14);
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.av-panel-nadpis {
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--av-pismo-20);
    line-height: var(--av-riadok-20);
    font-weight: 600;
    color: var(--av-text);
}

.av-panel-podnadpis {
    margin: 2px 0 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--av-pismo-13);
    line-height: var(--av-riadok-13);
    color: var(--av-text-2);
}

.av-panel-akcie {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
}

/* Úzky panel (napr. 40 % na menšej obrazovke): akcie pod názvom, údaje v dvoch stĺpcoch. Kontajner šírky je na hlavičke
   a obsahu detailu, na kostre a na paneli v Ukážke – nie na celom paneli: kontajner je obsahujúci blok pre prvky
   s position: fixed, takže formulár (panel sprava alebo okno) otvorený z detailu by bol zovretý v paneli (2. kolo). */
.av-panel .fi-page-header-main-ctn,
.av-panel-kostra,
.av-ukazka .av-panel {
    container: av-panel / inline-size;
}

/* Ukážka, časť Kvalita: SIPOC, matica a graf majú kontajner šírky ako v paneli (päť kariet SIPOC vedľa seba). */
.av-ukazka .av-ukazka-kvalita {
    container: av-panel / inline-size;
}

@container av-panel (max-width: 680px) {
    .av-panel-hlavicka {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .av-panel-akcie {
        grid-column: 1 / -1;
        flex-wrap: wrap;
    }

    /* Akcie sú pod názvom vľavo (16. 10. 2026): ponuky Dokumenty ▾ a Akcie ▾ sa otvárajú doprava od tlačidla – zarovnané
       vpravo by presahovali ľavý okraj panela a panel by ich orezal. */
    .av-panel-akcie .av-rozbalovacia-panel {
        left: 0;
        right: auto;
    }

    .av-udaje {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ============================================================ StatusBlock */
.av-stavovy-blok {
    margin: 0 var(--av-m-6) var(--av-m-3);
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.av-stavovy-riadok {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    min-height: 32px;
    padding: 4px var(--av-m-2) 4px var(--av-m-3);
    border-radius: var(--av-r-ovladac);
    border: 1px solid transparent;
    font-size: var(--av-pismo-13);
    line-height: var(--av-riadok-13);
    font-weight: 500;
}

.av-stavovy-riadok > svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.av-stavovy-riadok > span {
    flex: 1 1 auto;
    min-width: 0;
}

.av-stavovy-dalsie {
    align-self: flex-start;
    padding: 2px 4px;
    border: 0;
    background: transparent;
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-12);
    font-weight: 500;
    color: var(--av-klient-text);
    cursor: pointer;
}

.av-stavovy-dalsie:hover {
    text-decoration: underline;
}

/* ============================================================ TabsCard */
.av-karta {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.av-zalozky {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: var(--av-m-1);
    padding: 0 var(--av-m-6);
    border-bottom: 1px solid var(--av-okraj);
    overflow-x: auto;
    scrollbar-width: none;
}

.av-zalozka {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 40px;
    padding: 0 var(--av-m-2);
    border: 0;
    background: transparent;
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-14);
    font-weight: 500;
    color: var(--av-text-2);
    white-space: nowrap;
    cursor: pointer;
}

.av-zalozka:hover {
    color: var(--av-text);
}

.av-zalozka[aria-selected='true'] {
    color: var(--av-klient-text);
}

.av-zalozka[aria-selected='true']::after {
    content: '';
    position: absolute;
    left: var(--av-m-2);
    right: var(--av-m-2);
    bottom: -1px;
    height: 2px;
    border-radius: 2px;
    background: var(--av-klient);
}

.av-zalozka .av-pocet {
    padding: 0 5px;
    border-radius: 4px;
    background: var(--av-okraj-jemny);
}


.av-karta-obsah {
    padding: var(--av-m-4) 0;
}

/* ============================================================ Bloky údajov v paneli */
.av-blok {
    padding: 0 var(--av-m-6) var(--av-m-4);
}

.av-blok + .av-blok {
    padding-top: var(--av-m-4);
    border-top: 1px solid var(--av-okraj-jemny);
}

.av-blok-nadpis {
    margin: 0 0 var(--av-m-3);
    font-size: var(--av-pismo-12);
    line-height: var(--av-riadok-12);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--av-text-3);
}

.av-udaje {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--av-m-3) var(--av-m-6);
    margin: 0;
}

.av-udaje dt {
    font-size: var(--av-pismo-12);
    line-height: var(--av-riadok-12);
    color: var(--av-text-3);
}

.av-udaje dd {
    margin: 2px 0 0;
    font-size: var(--av-pismo-14);
    line-height: var(--av-riadok-14);
    color: var(--av-text);
}

/* Odkaz na iný záznam: otvorí ďalší panel nad aktuálnym (nikdy neodvedie z miesta). */
.av-odkaz {
    color: var(--av-klient-text);
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
}

.av-odkaz:hover {
    text-decoration: underline;
}

/* Tabuľka v paneli – na celú šírku (od okraja po okraj). */
.av-panel .av-zoznam,
.av-karta-obsah .av-zoznam {
    border-left: 0;
    border-right: 0;
    border-radius: 0;
}

/* ============================================================ Detail v paneli (stránka Filamentu v Paneli) */
/* Detail záznamu (ViewRecord s DetailV2) je stránka Filamentu – v paneli bez vlastného odsadenia, obsah v blokoch v2,
   záložky vo vzhľade TabsCard, sekcie infolistu ako ploché bloky s malým nadpisom, tabuľky záložiek na celú šírku. */
.av-panel .fi-page,
.av-panel .fi-page-header-main-ctn,
.av-panel .fi-page-main,
.av-panel .fi-page-content {
    padding: 0 !important;
    margin: 0;
    row-gap: 0 !important;
    gap: 0 !important;
    min-height: 0;
    height: auto !important;
    overflow: visible !important;
}

.av-panel .fi-page-content > .fi-sc {
    row-gap: 0;
}

.av-panel .av-karta-filament {
    margin-top: var(--av-m-2);
}

.av-panel .av-karta-filament > .fi-tabs {
    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    /* Rad záložiek má vždy rovnakú výšku a nikdy sa nezmenší pod obsah (chyba 2. kola: záložka Etalón – obsah
       prekrýval rad záložiek, lebo rad v stĺpci flexboxu s overflow sa scvrkol na 13 px). */
    flex: 0 0 auto;
    height: 41px;
    min-height: 41px;
    align-items: stretch;
    justify-content: flex-start;
    gap: var(--av-m-1);
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 var(--av-m-6);
    border: 0;
    border-bottom: 1px solid var(--av-okraj);
    border-radius: 0;
    background: var(--av-povrch);
    box-shadow: none;
    overflow-x: auto;
    scrollbar-width: none;
}

.av-panel .av-karta-filament > .fi-tabs > .fi-tabs-item {
    position: relative;
    height: 40px;
    padding: 0 var(--av-m-2);
    border-radius: 0;
    background: transparent !important;
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-14);
    font-weight: 500;
    color: var(--av-text-2);
    white-space: nowrap;
}

.av-panel .av-karta-filament > .fi-tabs > .fi-tabs-item:hover {
    color: var(--av-text);
}

.av-panel .av-karta-filament > .fi-tabs > .fi-tabs-item.fi-active {
    color: var(--av-klient-text);
}

.av-panel .av-karta-filament > .fi-tabs > .fi-tabs-item.fi-active::after {
    content: '';
    position: absolute;
    left: var(--av-m-2);
    right: var(--av-m-2);
    bottom: -1px;
    height: 2px;
    border-radius: 2px;
    background: var(--av-klient);
}

.av-panel .av-karta-filament > .fi-tabs > .fi-tabs-item .fi-icon {
    display: none;
}

.av-panel .av-karta-filament > .fi-tabs > .fi-tabs-item .fi-badge {
    min-width: 0;
    padding: 0 5px;
    border-radius: 4px;
    background: var(--av-okraj-jemny);
    font-size: var(--av-pismo-11);
    color: var(--av-text-3);
    box-shadow: none;
}

.av-panel .av-karta-filament > .fi-sc-tabs-tab {
    padding: var(--av-m-2) 0 var(--av-m-6);
    min-height: 0 !important;
}

/* Detail ako karty (korekcie 14. 10. 2026, DetailCard): každá sekcia infolistu je zaoblená karta s jemným nadpisom,
   riadky „popis vľavo (sivý) – hodnota vpravo“ oddelené tenkou čiarou. Jednotná šírka kariet (korekcie 2. kolo): na úzkom
   paneli jeden stĺpec, od šírky panela 760 px najviac DVA rovnako široké stĺpce (nikdy tri) – všetky karty sú rovnako
   široké a žiadna nie je užšia ako susedná; karta s tabuľkou, galériou alebo históriou je na celú šírku.
   Rovnaký vzhľad má komponent x-v2.detail-card (Ukážka komponentov). */
/* display: grid aj tam, kde staré pravidlo „Jedna obrazovka“ zoznamu (alogic.css) prepne blok s tabuľkou na stĺpec
   flexboxu – karty by mali šírku podľa obsahu (chyba 2. kola, záložka Certifikát). */
.av-panel .fi-sc-tabs-tab .fi-grid:not(.fi-modal *):has(> .fi-grid-col > .fi-sc-component > .fi-sc-section),
.av-karty-detailu {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: var(--av-m-3) !important;
    padding: var(--av-m-2) var(--av-m-6) 0;
    /* Karty v jednom riadku sú rovnako vysoké – kratšia sa natiahne po spodok dlhšej (Kvalita, zadanie 2, 20. 10. 2026). */
    align-items: stretch;
}

/* Rovnaká výška kariet v riadku: karta (sekcia infolistu aj DetailCard) vyplní celú výšku svojej bunky mriežky. */
.av-panel .fi-sc-tabs-tab .fi-grid:not(.fi-modal *) > .fi-grid-col:has(> .fi-sc-component > .fi-sc-section) > .fi-sc-component,
.av-panel .fi-sc-tabs-tab .fi-grid:not(.fi-modal *) > .fi-grid-col > .fi-sc-component > .fi-sc-section,
.av-karty-detailu > .av-karta-detailu {
    height: 100%;
}

@container av-panel (min-width: 760px) {
    .av-panel .fi-sc-tabs-tab .fi-grid:not(.fi-modal *):has(> .fi-grid-col > .fi-sc-component > .fi-sc-section),
    .av-karty-detailu {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

.av-panel .fi-sc-tabs-tab .fi-grid:not(.fi-modal *) > .fi-grid-col:has(> .fi-sc-component > .fi-sc-section) {
    grid-column: auto !important;
    min-width: 0;
}

/* Rozloženie kariet (korekcie 4. kolo): karta s tabuľkou alebo zoznamom (aj malá tabuľka hodnôt etalónu, galéria,
   história) je vždy na celú šírku – v riadku sama; karty s riadkami „názov – hodnota“ sú v dvoch stĺpcoch. Dvojstĺpcová
   karta (av-karta-dva-stlpce – napr. Neistoty z certifikátu v záložke Etalón, ktorá stojí medzi tabuľkami) je na celú šírku
   a jej riadky sú v dvoch stĺpcoch. */
.av-panel .fi-sc-tabs-tab .fi-grid:not(.fi-modal *) > .fi-grid-col:has(> .fi-sc-component > .fi-sc-section :is(.fi-in-repeatable, .av-galeria, .fi-ta, table)),
.av-panel .fi-sc-tabs-tab .fi-grid:not(.fi-modal *) > .fi-grid-col:has(> .fi-sc-component > .av-karta-dva-stlpce),
/* Karta deklarovaná na celú šírku (RozlozenieZalozky::TRIEDA_CELA – oprava po teste Petra 16. 10. 2026): história,
   galéria, tabuľka vo vlastnom pohľade – vždy na celú šírku, aj keď je práve prázdna; náhľad má tú istú šírku. */
.av-panel .fi-sc-tabs-tab .fi-grid:not(.fi-modal *) > .fi-grid-col:has(> .fi-sc-component > .av-karta-cela),
.av-karty-detailu > .av-karta-cela,
.av-panel .fi-sc-tabs-tab .fi-grid:not(.fi-modal *) > .fi-grid-col:not(:has(> .fi-sc-component > .fi-sc-section)),
.av-karty-detailu > :is(.av-karta-dva-stlpce, .av-karta-detailu:has(table, .av-zoznam, .av-galeria)),
/* Karta s tabuľkou ostáva na celú šírku aj prázdna – s prázdnym stavom (korekcie 5. kolo). */
.av-panel .fi-sc-tabs-tab .fi-grid:not(.fi-modal *) > .fi-grid-col:has(> .fi-sc-component > .fi-sc-section .av-prazdny),
.av-karty-detailu > .av-karta-detailu:has(.av-prazdny) {
    grid-column: 1 / -1 !important;
}

.av-panel .fi-section,
.av-karta-detailu {
    border: 0 !important;
    border-radius: var(--av-r-karta) !important;
    background: var(--av-povrch) !important;
    box-shadow: inset 0 0 0 1px var(--av-oddelovac) !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    overflow: hidden;
}

.av-panel .fi-section-header,
.av-karta-detailu > h3 {
    margin: 0;
    padding: var(--av-m-3) var(--av-m-4) var(--av-m-1) !important;
}

/* Nadpis karty = hlavička stĺpcov tabuľky (korekcie 3. kolo, tokeny --av-nadpis-*). */
.av-panel .fi-section-header-heading,
.av-karta-detailu > h3 {
    font-family: var(--av-pismo);
    font-size: var(--av-nadpis-pismo) !important;
    line-height: var(--av-nadpis-riadok) !important;
    font-weight: var(--av-nadpis-hrubka) !important;
    letter-spacing: var(--av-nadpis-rozostup);
    text-transform: var(--av-nadpis-pismena);
    color: var(--av-nadpis-farba) !important;
}

.av-panel .fi-section-header .fi-icon {
    display: none;
}

.av-panel .fi-section-content-ctn {
    border: 0 !important;
}

.av-panel .fi-section-content {
    padding: var(--av-m-1) var(--av-m-4) var(--av-m-3) !important;
}

/* Riadky karty: popis vľavo, hodnota vpravo, tenká čiara medzi riadkami (iba sekcie s údajmi, nie galéria či história). */
.av-panel .fi-page-header-main-ctn .fi-sc-section:not(:has(.fi-in-repeatable, .av-galeria, .alogic-qr, .fi-ta)):not(.fi-modal *) .fi-section-content {
    display: block !important;
    padding-top: 0 !important;
    padding-bottom: var(--av-m-1) !important;
}

.av-panel .fi-page-header-main-ctn .fi-sc-section:not(:has(.fi-in-repeatable, .av-galeria, .alogic-qr, .fi-ta)):not(.fi-modal *) .fi-section-content > .fi-grid-col + .fi-grid-col,
.av-karta-riadok + .av-karta-riadok {
    border-top: 1px solid var(--av-oddelovac);
}

/* Riadok „názov – hodnota“ = mriežka .av-kv (pravidlo Petra 21. 10. 2026, zmena zarovnania hodnôt 22. 10. 2026 – presne podľa
   zadania; platí pre všetky riadky v kartách detailov v2 – DetailCard má triedy av-kv / av-kv-nazov / av-kv-hodnota / av-text
   priamo v HTML, riadky infolistu Filamentu v paneli dostávajú tie isté pravidlá cez selektory .fi-in-entry /
   .fi-in-entry-label-col / .fi-in-entry-content-col a obal údaja v2.udaj-obal vloží hodnotu do .av-text).
   Každá hodnota (text, odkaz, štítok, zoznam) je vo vnútornom prvku .av-text (v šablóne orezaný od prázdnych znakov; vlastné
   zalomenia riadkov ostávajú – pre-line). Výsledok: jednoriadková hodnota končí na pravej hrane stĺpca; hodnota, ktorá sa
   nezmestí, začína na ľavej hranici stĺpca hodnoty, plné riadky sú do bloku a posledný riadok je vľavo; prvý riadok je vo výške
   názvu; text nikdy nie je pod názvom; delenie slov podľa jazyka stránky (lang="sk"). Bez rozlišovania „dlhý údaj“. */
.av-kv,
.av-panel .fi-page-header-main-ctn .fi-sc-section:not(:has(.fi-in-repeatable, .av-galeria, .alogic-qr, .fi-ta)):not(.fi-modal *) .fi-in-entry {
    display: grid;
    grid-template-columns: minmax(140px, 35%) 1fr;
    column-gap: 12px;
    align-items: start;
}

.av-kv .av-kv-nazov,
.av-panel .fi-page-header-main-ctn .fi-sc-section:not(:has(.fi-in-repeatable, .av-galeria, .alogic-qr, .fi-ta)):not(.fi-modal *) .fi-in-entry-label-col {
    text-align: left;
}

.av-kv .av-kv-hodnota,
.av-panel .fi-page-header-main-ctn .fi-sc-section:not(:has(.fi-in-repeatable, .av-galeria, .alogic-qr, .fi-ta)):not(.fi-modal *) .fi-in-entry-content-col {
    text-align: right;
    margin: 0;
    padding: 0;
    min-height: 0;
}

.av-kv .av-kv-hodnota > .av-text,
.av-panel .fi-page-header-main-ctn .fi-sc-section:not(:has(.fi-in-repeatable, .av-galeria, .alogic-qr, .fi-ta)):not(.fi-modal *) .fi-in-entry-content-col .av-text {
    display: inline-block;
    max-width: 100%;
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
    white-space: pre-line;
    overflow-wrap: anywhere;
    vertical-align: top;
}

/* Výška riadku = --av-karta-riadok (korekcie 5. kolo – rovnaká ako riadok tabuľky v karte); odsadenie je na riadku, nie na hodnote. */
.av-panel .fi-page-header-main-ctn .fi-sc-section:not(:has(.fi-in-repeatable, .av-galeria, .alogic-qr, .fi-ta)):not(.fi-modal *) .fi-in-entry,
.av-karta-riadok {
    margin: 0;
    padding: calc((var(--av-karta-riadok) - var(--av-karta-text-riadok)) / 2) 0;
}

/* Vnútorné obaly údaja Filamentu sú obyčajné bloky bez odsadenia a minimálnej výšky, zarovnané vpravo ako stĺpec hodnoty
   (Filament dáva .fi-in-text-item text-align: start – to by posunulo .av-text doľava). */
.av-panel .fi-page-header-main-ctn .fi-sc-section:not(:has(.fi-in-repeatable, .av-galeria, .alogic-qr, .fi-ta)):not(.fi-modal *) :is(.fi-in-entry-content-ctn, .fi-in-entry-content, .fi-in-text-item) {
    display: block;
    margin: 0;
    padding: 0;
    min-height: 0;
    text-align: right;
}

/* Prázdne znaky okolo hodnoty v HTML Filamentu (zalomenie riadku pred textom) by s pre-line robili prázdny prvý riadok – preto
   pre-line platí iba pre vnútorný prvok .av-text, do ktorého obal údaja (v2.udaj-obal) vloží hodnotu orezanú. */

/* Dvojstĺpcová karta (korekcie 4. kolo): na širokom paneli riadky „názov – hodnota“ v dvoch stĺpcoch vedľa seba (po dvojiciach,
   čiara medzi dvojicami); na úzkom v jednom stĺpci ako ostatné karty. */
@container av-panel (min-width: 760px) {
    .av-panel .fi-page-header-main-ctn .fi-sc-section.av-karta-dva-stlpce:not(.fi-modal *) .fi-section-content,
    .av-karta-dva-stlpce > dl {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: var(--av-m-6);
        /* Bez medzery medzi riadkami – riadok má výšku riadku karty (korekcie 5. kolo; Filament dáva mriežke 24 px). */
        row-gap: 0 !important;
    }

    /* Každý údaj v jednom stĺpci (Filament mu dáva šírku celej mriežky – údaje boli pod sebou s medzerou). */
    .av-panel .fi-page-header-main-ctn .fi-sc-section.av-karta-dva-stlpce:not(.fi-modal *) .fi-section-content > .fi-grid-col {
        grid-column: auto !important;
    }

    .av-panel .fi-page-header-main-ctn .fi-sc-section.av-karta-dva-stlpce:not(.fi-modal *) .fi-section-content > .fi-grid-col:nth-child(2),
    .av-karta-dva-stlpce > dl > .av-karta-riadok:nth-child(2) {
        border-top: 0;
    }
}

/* Údaj bez popisu (napr. text snímky etalónov) – cez oba stĺpce mriežky, zarovnaný vľavo (korekcie 3. kolo). */
.av-panel .fi-page-header-main-ctn .fi-sc-section:not(.fi-modal *) .fi-in-entry:not(:has(.fi-in-entry-label-col)) .fi-in-entry-content-col {
    grid-column: 1 / -1;
    text-align: left;
    text-align-last: left;
}

/* Rozlišovanie „dlhý údaj“ (av-udaj-dlhy, av-karta-riadok-dlhy, DetailCard $dlhe) je zrušené 21. 10. 2026 – všetky riadky majú
   rovnakú mriežku .av-kv vyššie. */

.av-karta-detailu > dl {
    margin: 0;
    padding: 0 var(--av-m-4) var(--av-m-1);
}

/* Obsah karty DetailCard okrem riadkov (tabuľka, text) – rovnaké bočné odsadenie ako riadky. */
.av-karta-detailu > :not(h3, dl) {
    margin: var(--av-m-1) var(--av-m-4) var(--av-m-3);
}

/* Karta s tlačidlom v hlavičke (Zariadenia, 16. 10. 2026 – DetailCard s $tlacidla / $popis, napr. Technické parametre stroja):
   riadok nadpisu karty ako pri karte zoznamu – vľavo nadpis a pomocný popis (ikona a „{Druh} · vyhl. 508/2009 Z. z.“), vpravo
   nenápadné tlačidlo („Upraviť parametre“ – .av-pas-pridat). Blok karty (av-karta-blok) má malý nadpis pomocným textom
   (bloky číselníka technických parametrov: Nádoba / Kotol, Zariadenie / Žeriavová dráha…). */
.av-karta-detailu > .av-karta-hlavicka {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    min-height: 40px;
    margin: 0;
    padding: var(--av-m-1) var(--av-m-2) var(--av-m-1) var(--av-m-4);
}

.av-karta-hlavicka > h3 {
    margin: 0;
    font-family: var(--av-pismo);
    line-height: var(--av-nadpis-riadok) !important;
    font-weight: var(--av-nadpis-hrubka) !important;
    letter-spacing: var(--av-nadpis-rozostup);
    text-transform: var(--av-nadpis-pismena);
    color: var(--av-nadpis-farba) !important;
    white-space: nowrap;
}

.av-karta-popis {
    display: inline-flex;
    align-items: center;
    gap: var(--av-m-1);
    min-width: 0;
    color: var(--av-karta-pomocny-farba);
}

.av-karta-popis > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.av-karta-detailu > .av-karta-blok {
    margin: var(--av-m-3) var(--av-m-4) 0;
    font-weight: 500;
    color: var(--av-text-2);
}

/* Vlastná tabuľka v karte so širším obsahom (Požadované revízie stroja, 16. 10. 2026): posúva sa do strany vo vnútri karty;
   prvý a posledný stĺpec pri okraji zoznamu – zarovnané s nadpisom karty ako tabuľka Filamentu v karte. */
.av-tabulka-karty {
    overflow-x: auto;
}

.av-tabulka-karty > table > :is(thead, tbody) > tr > :first-child {
    padding-left: 0;
}

.av-tabulka-karty > table > :is(thead, tbody) > tr > :last-child {
    padding-right: 0;
}

/* Prvý stĺpec (názov) zaberie zvyšok šírky a dlhý text skráti „…“ (celý v bubline) – ostatné stĺpce sa zmestia bez posúvania. */
.av-tabulka-karty > table > :is(thead, tbody) > tr > :first-child {
    width: 100%;
    max-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Veta v karte (napr. nahradená skúška – odkaz na opakovanú úradnú skúšku): text karty s odstupom ako riadok karty. */
.av-karta-veta {
    margin: var(--av-m-2) 0;
}

/* Pomocný text za hodnotou v tom istom riadku (napr. lehota „· 12 mes.“ pri požadovanej revízii). */
.av-pomocny-text {
    margin-left: var(--av-m-1);
    color: var(--av-karta-pomocny-farba);
}

.av-panel .fi-in-entry-label,
.av-karta-riadok > dt {
    font-size: var(--av-karta-pomocny) !important;
    font-weight: 400 !important;
    color: var(--av-karta-pomocny-farba) !important;
}

.av-karta-riadok > dd {
    font-size: var(--av-karta-text);
    color: var(--av-text);
}

.av-karty-detailu {
    display: grid;
    align-items: stretch;
}

/* Matica rizík (pozorovanie Petra 28. 10. 2026): vľavo matica, vpravo zoznam rizík zvoleného poľa; zvolené pole s okrajom. */
.av-matica-rozlozenie {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--av-m-3);
    align-items: start;
}

@media (min-width: 1100px) {
    .av-matica-rozlozenie {
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    }
}

button.av-matica-pole {
    border: 0;
    font: inherit;
    cursor: pointer;
}

.av-matica-pole-zvolene {
    outline: 2px solid var(--av-klient);
    outline-offset: -2px;
}

.av-matica-tabulka {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--av-karta-text);
}

.av-matica-tabulka th {
    padding: 6px var(--av-m-4);
    text-align: left;
    font-weight: 400;
    color: var(--av-text-2);
    font-size: var(--av-karta-pomocny);
}

.av-matica-tabulka td {
    padding: 6px var(--av-m-4);
    border-top: 1px solid var(--av-okraj-jemny);
    vertical-align: middle;
}

.av-matica-tabulka .av-vpravo {
    text-align: right;
}

/* Skartácia a výmaz (28. 10. 2026): karty pod sebou, tabuľka ako pri matici rizík, prvý stĺpec výber. */
.av-skartacia {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--av-m-3);
    align-content: start;
}

.av-skartacia-tabulka {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--av-karta-text);
}

.av-skartacia-tabulka th {
    padding: 6px var(--av-m-4);
    text-align: left;
    font-weight: 400;
    color: var(--av-text-2);
    font-size: var(--av-karta-pomocny);
}

.av-skartacia-tabulka td {
    padding: 6px var(--av-m-4);
    border-top: 1px solid var(--av-okraj-jemny);
    vertical-align: middle;
}

.av-skartacia-tabulka .av-vpravo {
    text-align: right;
}

.av-skartacia-tabulka .av-skartacia-vyber {
    width: 36px;
    padding-right: 0;
}

/* Výber v2 (x-v2.vyber, 28. 10. 2026 – namiesto natívneho <select>): tlačidlo ako pole formulára v2 so šípkou vpravo; ponuka
   v <body> (nad všetkým) ako ponuka výberu Filamentu v2 – zaoblenie ovládača, tieň, hľadanie, vybraná podfarbená farbou klienta.
   Vzhľad tlačidla môže prevziať trieda miesta (tablet .av-dielna-*, čiarka tlačiva .av-tl-ciara, filtre). */
.av-vyber {
    display: inline-flex;
    min-width: 0;
}

.av-vyber-tlacidlo {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    min-width: 0;
    height: var(--av-tlacidlo-vyska);
    padding: 0 8px 0 var(--av-m-3);
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    color: var(--av-text);
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
    text-align: left;
    cursor: pointer;
}

.av-vyber-tlacidlo:focus-visible {
    outline: 2px solid var(--av-klient);
    outline-offset: 1px;
}

.av-vyber-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.av-vyber-sipka {
    flex: none;
    width: 16px;
    height: 16px;
    color: var(--av-text-3);
}

.av-vyber-ponuka {
    position: fixed;
    z-index: 2000;
    display: flex;
    flex-direction: column;
    max-width: min(420px, calc(100vw - 16px));
    padding: 4px;
    overflow: hidden;
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    box-shadow: var(--av-tien-ponuka), inset 0 0 0 1px var(--av-oddelovac);
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
}

.av-vyber-hladat {
    flex: none;
    margin: 0 0 4px;
    padding: 6px 12px;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    font: inherit;
}

.av-vyber-zoznam {
    margin: 0;
    padding: 0;
    overflow-y: auto;
    list-style: none;
}

.av-vyber-moznost,
.av-vyber-prazdne {
    padding: 6px 8px;
    border-radius: var(--av-r-stitok);
    color: var(--av-text);
    cursor: pointer;
}

.av-vyber-prazdne {
    color: var(--av-text-3);
    cursor: default;
}

.av-vyber-moznost:hover {
    background: var(--av-klient-hover-pozadie);
}

.av-vyber-moznost.av-vyber-vybrana {
    background: var(--av-klient-8);
    color: var(--av-klient-text);
    font-weight: 500;
}

/* Tablet (Dielňa, Výdaj OOPP): väčšie písmo a výška ako polia pracoviska, aj položky ponuky. */
.av-vyber-tlacidlo:is(.av-dielna-pole, .av-dielna-stav) {
    height: auto;
    min-height: 56px;
    font-size: 20px;
}

/* Tlačivo: výber na čiarke (text na čiare, bez rámčeka) – vzhľad tlačiva, ponuka v2. */
.av-vyber-tlacidlo.av-tl-ciara {
    height: 18px;
    padding: 0 2px;
    border: 0;
    border-bottom: 1px solid #000;
    border-radius: 0;
    background: transparent;
    font-family: inherit;
    font-size: inherit;
}

.av-tl-pole .av-vyber {
    flex: 1 1 auto;
    min-width: 14em;
}

/* Filtre Mapy haly: sivé tlačidlo ako ostatné filtre pásu. */
.av-mapa-filter .av-vyber-tlacidlo {
    border: 0;
    background: var(--av-tlacidlo);
    font-size: var(--av-tlacidlo-pismo);
    font-weight: var(--av-tlacidlo-hrubka);
}

.av-mapa-filter .av-vyber-tlacidlo:hover {
    background: var(--av-tlacidlo-hover);
}

.av-stav-materialov-filtre .av-vyber {
    min-width: 12em;
}

/* Vnorený panel (V2::vnorenyPanel, 28. 10. 2026): šípka späť pred nadpisom ako pri paneli nad paneloch v2. */
.av-vnoreny-panel .fi-modal-heading {
    display: flex;
    align-items: center;
    gap: 8px;
}

.av-vnoreny-spat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: var(--av-r-ovladac);
    background: transparent;
    color: var(--av-text-2);
    cursor: pointer;
}

.av-vnoreny-spat:hover {
    background: var(--av-tlacidlo-hover);
}

.av-vnoreny-spat svg {
    width: 18px;
    height: 18px;
}

/* Formuláre aplikácie (28. 10. 2026): v úzkej karte sa tabuľka posúva vodorovne (nič sa neoreže). */
.av-formulare-posun {
    overflow-x: auto;
}

/* Druh a oblasť pomocným textom pod názvom formulára. */
.av-formular-druh {
    display: block;
    font-size: var(--av-karta-pomocny);
    color: var(--av-text-3);
}

/* Pätička (28. 10. 2026) a súhlas pri prihlásení. */
/* Okraje ako .fi-main Filamentu (4 / 6 / 8 × --spacing od md a lg) – © presne pod ľavým okrajom obsahu, kontakt pod pravým
   (28. 10. 2026, Peter; aj pri zúženom menu a na mobile). Pri zalomení ostávajú odkazy vpravo. */
.av-paticka {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 4px 16px;
    padding: 10px calc(var(--spacing) * 4);
    font-size: var(--av-pismo-12);
    color: var(--av-text-3);
}

@media (min-width: 48rem) {
    .av-paticka {
        padding-inline: calc(var(--spacing) * 6);
    }
}

@media (min-width: 64rem) {
    .av-paticka {
        padding-inline: calc(var(--spacing) * 8);
    }
}

.av-paticka nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 4px 14px;
    margin-left: auto;
}

.av-paticka a {
    color: inherit;
    text-decoration: underline;
}

.av-suhlas {
    display: flex;
    justify-content: center;
    padding: 48px 16px;
}

.av-suhlas-karta {
    width: 100%;
    max-width: 640px;
}

.av-suhlas-obsah {
    padding: var(--av-m-3) var(--av-m-4) var(--av-m-4);
    font-size: var(--av-karta-text);
}

.av-suhlas-volba {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: var(--av-m-3) 0;
}

.av-suhlas-akcie {
    display: flex;
    justify-content: space-between;
    gap: var(--av-m-2);
}

/* Prehľad (28. 10. 2026): malý riadok „Dnes má meniny / narodeniny“ pod pozdravom. */
.av-prehlad-den {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 18px;
    margin: 0 0 var(--av-m-2);
    font-size: var(--av-pismo-13);
    color: var(--av-text-2);
}

.av-prehlad-den b {
    font-weight: 500;
    color: var(--av-text);
}

/* Pracoviská (28. 10. 2026): zvolená dlaždica (OOPP) a nadpis skupiny dlaždíc; tlačivo zaškolenia na celú šírku karty. */
.av-dielna-volba-zvolena {
    border-color: var(--av-klient);
    background: var(--av-klient-8);
    font-weight: 600;
}

.av-dielna-skupina {
    margin: 12px 0 6px;
    font-size: 15px;
    color: var(--av-text-2);
}

/* Výber klienta (pozorovanie Petra 28. 10. 2026): v rozbalenom zozname iba celý názov firmy, bez skratky v štvorčeku. */
.fi-tenant-menu .fi-dropdown-list-item-image {
    display: none;
}

/* Nastavenia klienta (pozorovanie Petra 28. 10. 2026): karty na celú šírku pod sebou, zarovnané s pásom záložiek hore. */
.av-nastavenia .av-karty-detailu {
    grid-template-columns: minmax(0, 1fr) !important;
    padding: 0 !important;
}

.av-panel .fi-in-text-item,
.av-panel .fi-in-text {
    font-size: var(--av-karta-text);
    color: var(--av-text);
}

/* Písmo v kartách (korekcie 4. kolo, tokeny --av-karta-*): v každej karte detailu aj v paneloch (infolist, tabuľka v záložke,
   DetailCard, ListCard) má každý text jednu z troch veľkostí – nadpis karty, text karty alebo pomocný text – presne ako
   v Základných údajoch. Panel kalibrácie má preto rovnaké písmo ako panel meradla. Všetko v karte dedí text karty;
   vymenované prvky majú pomocný text alebo nadpis karty. Formuláre (okná a panely formulárov) sa netýka. */
:is(.av-panel .fi-section, .av-panel .fi-ta-ctn, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) {
    font-size: var(--av-karta-text);
    line-height: var(--av-karta-text-riadok);
}

:is(.av-panel .fi-section, .av-panel .fi-ta-ctn, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) * {
    font-size: inherit !important;
}

/* Nadpis karty (veľkými písmenami vo farbe klienta iba on – korekcie 7. kolo). */
:is(.av-panel .fi-section, .av-panel .fi-ta-ctn, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) :is(.fi-section-header-heading, .fi-ta-header-heading, .av-karta-zoznamu-hlavicka > h3, .av-karta-detailu > h3, .av-karta-hlavicka > h3) {
    font-size: var(--av-nadpis-pismo) !important;
}

/* Pomocný text – aj názvy stĺpcov tabuľky v karte (korekcie 7. kolo: ako názov v riadku „názov – hodnota“). */
:is(.av-panel .fi-section, .av-panel .fi-ta-ctn, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) :is(.fi-in-entry-label, .av-karta-riadok > dt, thead th, .fi-ta-header-cell, .av-hlavicka-tabulky, .fi-ta-text-description, .fi-in-entry-wrp-helper-text, .fi-section-header-description, .fi-ta-empty-state-description, .av-prazdny-text, .alogic-subor-meta, .alogic-prazdne, .alogic-hodnoty-menovite, .fi-badge, .av-chip, .fi-btn, .av-tlacidlo, .av-subor-meta, .av-zobrazit-vsetky-tlacidlo, .av-karta-popis, .av-karta-blok, .av-pomocny-text, .av-sipoc-ciel, .av-stav-zalozka, .av-pocet, .av-karta-zoznamu-suhrn, .av-matica-cislo, .av-matica-os, .av-matica-legenda, .alogic-graf-popis, .alogic-graf-ciel-popis, .alogic-graf-prazdny, .av-graf-legenda) {
    font-size: var(--av-karta-pomocny) !important;
    line-height: var(--av-karta-pomocny-riadok);
}

.av-panel .fi-in-entry-content a,
.av-panel .fi-ta-cell a.fi-link,
.av-panel [data-av-panel] a {
    color: var(--av-klient-text);
    font-weight: 500;
}

/* Tabuľky v paneli: bez vlastného tieňa a rámika Filamentu, hlavička ako v zozname v2. V záložke je tabuľka karta
   (sekcia „Zoznam v záložke ako karta“ nižšie). */
.av-panel .fi-ta-ctn {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    --tw-ring-shadow: 0 0 #0000 !important;
}

/* ============================================================ Zoznam v záložke ako karta */
/* Korekcie 4. kolo (vzor: záložka „Základné údaje a história“): zoznam v záložke detailu (tabuľka relation managera so
   ZalozkaV2) je jedna zaoblená karta na celú šírku, ktorá začína na rovnakej výške ako karty Základných údajov (8 px pod
   začiatkom obsahu záložky, 24 px od okrajov panela – ako mriežka kariet). Zoznamy v záložkách sú krátke – karta nemá pás
   Hľadať / Filter / stĺpce. Hore je riadok nadpisu karty (v2.hlavicka-karty-zoznamu): vľavo nadpis (iba zoznam pod kartami
   s údajmi, napr. „Použitie v postupoch“ – inak je názov v rade záložiek) a vpravo nenápadné „+ Pridať …“; bez nadpisu
   a tlačidla sa riadok nezobrazí. Názvy stĺpcov a riadky sú podľa „Tabuľky v karte“ nižšie (korekcie 5. kolo). Počet
   záznamov je na záložke. */
/* Karta bez overflow: hidden – ponuka „+ Pridať …“ (napr. Interná / Externá) sa otvára nadol aj pod kratší zoznam a nesmie
   sa orezať; riadok nadpisu má preto zaoblené horné rohy a zoznam je od okrajov karty odsadený (Tabuľka v karte). */
.av-panel .fi-sc-tabs-tab .fi-ta-ctn {
    margin: var(--av-m-2) var(--av-m-6) 0;
    border: 1px solid var(--av-oddelovac) !important;
    border-radius: var(--av-r-karta) !important;
    background: var(--av-povrch);
    overflow: visible;
}

.av-panel .fi-sc-tabs-tab .fi-ta-ctn > .fi-ta-main {
    border-radius: inherit;
}

/* Zoznam je od bočných okrajov karty odsadený ako riadky Základných údajov (16 px ≥ zaoblenie 12 px) a pod posledným
   riadkom je 4 px – prvý aj posledný riadok sú vnútri zaoblenia, rohy karty nič neprekryje ani neoreže (korekcie 5. kolo).
   Široká tabuľka (napr. Merania) sa posúva do strany vo vnútri tohto odsadenia. */
.av-panel .fi-sc-tabs-tab .fi-ta-ctn .fi-ta-content-ctn {
    margin: 0 var(--av-m-4);
    padding-bottom: var(--av-m-1);
    border-radius: 0;
    overflow-x: auto;
}

/* Prázdny zoznam: namiesto názvov stĺpcov bez riadkov iba prázdny stav (ikona, veta, čo urobiť). */
.av-panel .fi-sc-tabs-tab .fi-ta-ctn:has(.fi-ta-empty-state) .fi-ta-content-ctn {
    display: none;
}

/* Karta zoznamu má výšku podľa obsahu ako karty Základných údajov (posúva sa obsah záložky) – staré pravidlo „Jedna
   obrazovka“ zoznamu v1 (alogic.css) by ju natiahlo po spodok panela aj pri jednom riadku. (.fi-ta-main ostáva pružný –
   v riadku .fi-ta-ctn sa zužuje na šírku karty, široká tabuľka sa posúva vodorovne.) */
.av-panel .fi-sc-tabs-tab :is(div, section):has(.fi-ta-ctn),
.av-panel .fi-sc-tabs-tab .fi-ta-ctn,
.av-panel .fi-sc-tabs-tab .fi-ta-ctn > .fi-ta-main > .fi-ta-content-ctn {
    flex: none !important;
}

/* Zoznam pod kartami s údajmi (zmiešaná záložka – Etalón, Certifikát, Etalóny kalibrácie): mriežka kariet už má bočné
   odsadenie, karta zoznamu je v nej na celú šírku pod ostatnými kartami. */
.av-panel .fi-sc-tabs-tab .fi-grid:not(.fi-modal *):has(> .fi-grid-col > .fi-sc-component > .fi-sc-section) .fi-ta-ctn {
    margin: 0;
}

/* Karty a pod nimi karta zoznamu v samostatnej skupine (záložka Etalón): medzi nimi rovnaká medzera ako medzi kartami. */
.av-panel .fi-sc-tabs-tab .fi-resource-relation-manager > .fi-grid {
    row-gap: var(--av-m-3) !important;
}

.av-panel .fi-sc-tabs-tab .fi-grid-col:has(.fi-sc-section) ~ .fi-grid-col .fi-ta-ctn {
    margin-top: 0;
}

/* Riadok nadpisu karty je vrstva nad zoznamom – ponuka „+ Pridať …“ je nad hlavičkou stĺpcov a riadkami. Pás nástrojov
   Filamentu (hľadanie, filter, stĺpce, počet záznamov) sa v karte nezobrazuje. Hlavička stĺpcov nie je „lepiaca“ (staré
   pravidlo „Jedna obrazovka“ v1 jej dáva sticky a vyššiu vrstvu – v karte sa posúva celý obsah záložky). */
.av-panel .fi-sc-tabs-tab .fi-ta-header-ctn {
    position: relative;
    z-index: 3;
    padding: 0;
    border: 0;
    border-radius: calc(var(--av-r-karta) - 1px) calc(var(--av-r-karta) - 1px) 0 0;
    background: var(--av-povrch);
}

.av-panel .fi-sc-tabs-tab .fi-ta-header-toolbar {
    display: none !important;
}

.av-panel .fi-sc-tabs-tab .fi-ta-table > thead > tr > th {
    position: static !important;
    z-index: auto !important;
}

.av-karta-zoznamu-hlavicka {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    min-height: 40px;
    padding: var(--av-m-1) var(--av-m-2) var(--av-m-1) var(--av-m-4);
}

/* Nadpis zoznamu (napr. „Použitie v postupoch“) – ako nadpis karty (tokeny --av-nadpis-*). */
.av-karta-zoznamu-hlavicka > h3 {
    margin: 0;
    font-family: var(--av-pismo);
    font-size: var(--av-nadpis-pismo) !important;
    line-height: var(--av-nadpis-riadok) !important;
    font-weight: var(--av-nadpis-hrubka) !important;
    letter-spacing: var(--av-nadpis-rozostup);
    text-transform: var(--av-nadpis-pismena);
    color: var(--av-nadpis-farba) !important;
}

/* Záložky karty zoznamu (Aktuálne / História kvalifikácií zamestnanca – Ľudia, 15. 10. 2026): skupina záložiek stavu
   vľavo v riadku nadpisu, písmo ako tlačidlo v karte (pomocný text). */
.av-karta-zoznamu-hlavicka > .av-zalozky-karty :is(.av-stav-zalozka, .av-pocet) {
    font-size: var(--av-karta-pomocny) !important;
}

/* „+ Pridať …“ vpravo v riadku nadpisu (aj bez nadpisu). */
.av-karta-zoznamu-tlacidla {
    display: flex;
    align-items: center;
    gap: var(--av-m-1);
    margin-left: auto;
}

/* ============================================================ Stránka s kartami (Ľudia, 15. 10. 2026) */
/* Stránka sekcie, ktorá nie je zoznam (Plán školení, Skill matrix – StrankaV2): obsah sú karty pod sebou s rovnakou
   medzerou ako karty v detaile; tabuľky Filamentu (TableWidget s KartaTabulkyV2) majú rovnaký vzhľad ako „Zoznam v záložke
   ako karta“ a „Tabuľka v karte“ v paneli (tie isté tokeny) – riadok nadpisu karty (v2.hlavicka-karty-zoznamu) s nadpisom,
   záložkami karty a „+ Pridať …“, bez pásu Hľadať / Filter / stĺpce; názvy stĺpcov ako pomocný text, riadky výšky
   --av-karta-riadok s tenkou čiarou, prázdny stav s ikonou. Formuláre (okná na stránke) sa netýka. */
.av-stranka-karty {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-3);
}

/* Karty sa nezmenšujú (oprava po teste 16. 10. 2026): obal stránky v2 má na širokej obrazovke výšku okna (.av-stranka – flex)
   a pri dlhej karte (Obnovy kvalifikácií – 86 riadkov v roku 2027) sa posledná karta Súčet ceny stlačila na výšku 0. Každá
   karta má výšku podľa obsahu, posúva sa obsah stránky. */
.av-stranka-karty > * {
    flex: none !important;
}

/* Súčet v riadku nadpisu karty (Plán školení – Nové plánované, Obnovy): pomocný text vpravo pred „+ …“. */
.av-karta-zoznamu-suhrn {
    margin-left: auto;
    color: var(--av-text-2);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.av-karta-zoznamu-suhrn + .av-karta-zoznamu-tlacidla {
    margin-left: var(--av-m-3);
}

/* ============================================================ ReportCard – karta reportov (Dokumentácia, 16. 10. 2026) */
/* Dokumentácia → Reporty: karta oblasti (DetailCard s nadpisom a počtom v riadku nadpisu), v nej riadky reportov – vľavo názov
   (text karty) a popis (pomocný text, jeden riadok so skrátením), vpravo pevné stĺpce: výber roka | Náhľad (oko) | Stiahnuť |
   Excel; chýbajúce tlačidlo nechá prázdne miesto (rovnaké stĺpce pod sebou – rozhodnutie 6. 10. 2026). Riadky oddelené tenkou
   čiarou ako riadky „názov – hodnota“. Na úzkej obrazovke sa tlačidlá zalomia pod názov. */
.av-reporty {
    list-style: none;
    margin: 0;
    padding: 0;
}

.av-report {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 128px var(--av-tlacidlo-vyska) 104px 84px;
    align-items: center;
    column-gap: var(--av-m-3);
    min-height: calc(var(--av-karta-riadok) + 12px);
    padding: 6px 0;
}

.av-report + .av-report {
    border-top: 1px solid var(--av-oddelovac);
}

.av-report-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.av-report-nazov {
    font-size: var(--av-karta-text);
    line-height: var(--av-karta-text-riadok);
    color: var(--av-text);
}

.av-report-popis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--av-karta-pomocny);
    line-height: var(--av-karta-pomocny-riadok);
    color: var(--av-karta-pomocny-farba);
}

.av-report-bunka {
    display: flex;
    justify-content: flex-start;
    min-width: 0;
}

.av-report-bunka .av-tlacidlo {
    text-decoration: none;
}

.av-report-rok {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}

.av-report-rok-hodnota {
    min-width: 48px;
    height: var(--av-tlacidlo-vyska);
    padding: 0 var(--av-m-1);
    border: 0;
    border-radius: var(--av-r-ovladac);
    background: transparent;
    font: inherit;
    font-size: var(--av-tlacidlo-pismo);
    font-weight: var(--av-tlacidlo-hrubka);
    font-variant-numeric: tabular-nums;
    color: var(--av-text);
    cursor: pointer;
}

.av-report-rok-hodnota:hover {
    background: var(--av-tlacidlo);
}

@media (max-width: 767.98px) {
    .av-report {
        grid-template-columns: repeat(4, auto) 1fr;
        row-gap: var(--av-m-1);
    }

    .av-report-text {
        grid-column: 1 / -1;
    }

    .av-report-bunka:empty {
        display: none;
    }
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) {
    margin: 0;
    border: 1px solid var(--av-oddelovac) !important;
    border-radius: var(--av-r-karta) !important;
    background: var(--av-povrch);
    box-shadow: none !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    overflow: visible;
    font-size: var(--av-karta-text);
    line-height: var(--av-karta-text-riadok);
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) * {
    font-size: inherit !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .av-karta-zoznamu-hlavicka > h3 {
    font-size: var(--av-nadpis-pismo) !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) :is(thead th, .fi-ta-header-cell, .fi-ta-text-description, .fi-ta-empty-state-description, .fi-badge, .av-chip, .fi-btn, .av-tlacidlo, .av-stav-zalozka, .av-pocet, .av-karta-zoznamu-suhrn) {
    font-size: var(--av-karta-pomocny) !important;
    line-height: var(--av-karta-pomocny-riadok);
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) > .fi-ta-main {
    border-radius: inherit;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-header-ctn {
    position: relative;
    z-index: 3;
    padding: 0;
    border: 0;
    border-radius: calc(var(--av-r-karta) - 1px) calc(var(--av-r-karta) - 1px) 0 0;
    background: var(--av-povrch);
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-header-toolbar {
    display: none !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-content-ctn {
    margin: 0 var(--av-m-4);
    padding-bottom: var(--av-m-1);
    border: 0;
    border-radius: 0;
    overflow-x: auto;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *):has(.fi-ta-empty-state) .fi-ta-content-ctn {
    display: none;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > :is(thead > tr, tfoot, tfoot > tr) {
    background: transparent !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > thead > tr > th {
    position: static !important;
    z-index: auto !important;
    box-sizing: content-box;
    height: var(--av-karta-riadok);
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: 1px solid var(--av-oddelovac);
    background: transparent !important;
    box-shadow: none !important;
    vertical-align: middle;
    white-space: nowrap;
    font-weight: 400 !important;
    letter-spacing: normal;
    text-transform: none;
    color: var(--av-karta-pomocny-farba) !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > thead > tr > th * {
    font-weight: inherit !important;
    line-height: inherit !important;
    white-space: nowrap !important;
    color: inherit !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > tbody > tr > td {
    box-sizing: content-box;
    height: var(--av-karta-riadok);
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    vertical-align: middle;
    white-space: nowrap;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-cell :is(.fi-ta-text-item, .fi-ta-placeholder):not(.fi-ta-col-has-column-url, .fi-ta-col-has-column-url *) {
    font-weight: 400 !important;
    color: var(--av-text) !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > :is(thead, tbody) > tr > :is(th, td) {
    padding-left: var(--av-m-3) !important;
    padding-right: var(--av-m-3) !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > :is(thead, tbody) > tr > :is(th, td):first-child {
    padding-left: 0 !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > :is(thead, tbody) > tr > :is(th, td):last-child {
    padding-right: 0 !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > tbody > tr > td:last-child :is(.fi-icon-btn, .alogic-bez-akcie) {
    margin-inline-end: 0;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-cell :is(.fi-ta-col > *, .fi-ta-text, .fi-ta-icon, .fi-ta-image) {
    padding: 0 !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-cell :is(.fi-ta-text, .fi-ta-text-item, .fi-ta-placeholder, .fi-wrapped) {
    line-height: var(--av-karta-text-riadok) !important;
    white-space: nowrap !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-cell .fi-ta-text-has-descriptions {
    display: flex !important;
    flex-direction: row !important;
    align-items: baseline;
    gap: var(--av-m-2);
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > *,
.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > tbody > tr {
    border-color: var(--av-oddelovac) !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > tbody {
    border-bottom-width: 0 !important;
}

/* Odkaz v bunke (zamestnanec, kvalifikácia – otvorí panel) vo farbe klienta ako odkaz v riadku. */
.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) [data-av-panel] :is(a, .fi-ta-text-item) {
    color: var(--av-klient-text) !important;
}

/* Prázdny stav v karte: ikona (zaoblený štvorec vo farbe klienta), veta a čo urobiť – ako v paneli. */
.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-empty-state {
    padding: var(--av-m-6) var(--av-m-4);
    border: 0 !important;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-empty-state-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--av-m-2);
    max-width: none;
    margin: 0 auto;
    text-align: center;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-empty-state-icon-bg {
    display: inline-flex;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
    border-radius: var(--av-r-ovladac);
    background: var(--av-klient-8);
    color: var(--av-klient-text);
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-empty-state-icon-bg svg {
    width: 20px;
    height: 20px;
}

.av-stranka-karty .fi-ta-ctn:not(.fi-modal *) .fi-ta-empty-state-heading {
    font-weight: 500;
    color: var(--av-text);
}

/* Karta „Súčet ceny“ (DetailCard) na celú šírku. */
.av-stranka-karty > .av-karta-detailu {
    width: 100%;
}

/* ============================================================ Skill matrix (Ľudia, 15. 10. 2026) */
/* Tri prepojené zoznamy ako karty v2 (rozloženie a „Jedna obrazovka“ ostávajú z alogic.css – .sm-zoznamy): nadpis karty
   (veľkými písmenami vo farbe klienta) s počtom, riadky výšky --av-karta-riadok s písmom karty a tenkou čiarou, pomocný
   text sivý, vybraný riadok podfarbený farbou klienta s pásikom vľavo; stav dokladov, platnosť a úroveň obsluhy sú
   štítky StatusChip vpravo. Filtre nad zoznamami majú vzhľad v2 (obal .av-stranka). */
.av-sm-filtre {
    margin-bottom: var(--av-m-3);
}

/* Polia filtrov Skill matrix (oprava po teste 16. 10. 2026 – dvojité a nejednotné ohraničenie): vzhľad poľa v2 – jeden
   jemný okraj (--av-okraj) namiesto rámika Filamentu, zaoblenie ovládača ako ostatné polia, pri zameraní okraj farbou klienta;
   pole Hľadať bez deliacej čiary za lupou. */
.av-sm-filtre .fi-input-wrp {
    border: 0 !important;
    border-radius: var(--av-r-ovladac) !important;
    background: var(--av-povrch) !important;
    box-shadow: inset 0 0 0 1px var(--av-okraj) !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    --tw-ring-offset-shadow: 0 0 #0000 !important;
}

.av-sm-filtre .fi-input-wrp:focus-within {
    box-shadow: inset 0 0 0 1px var(--av-klient-okraj) !important;
}

.av-sm-filtre .fi-input-wrp-prefix {
    border: 0 !important;
    padding-inline-end: 0 !important;
    color: var(--av-text-3);
}

.av-sm-filtre :is(.fi-input, .fi-select-input, .fi-select-input-btn) {
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
}

.av-sm .sm-zoznam {
    border: 1px solid var(--av-oddelovac);
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
}

.av-sm .sm-zoznam-hlavicka {
    min-height: 40px;
    padding: var(--av-m-1) var(--av-m-2) var(--av-m-1) var(--av-m-4);
    border-bottom: 1px solid var(--av-oddelovac);
}

.av-sm .sm-zoznam-nadpis {
    margin: 0;
    font-family: var(--av-pismo);
    font-size: var(--av-nadpis-pismo);
    line-height: var(--av-nadpis-riadok);
    font-weight: var(--av-nadpis-hrubka);
    letter-spacing: var(--av-nadpis-rozostup);
    text-transform: var(--av-nadpis-pismena);
    color: var(--av-nadpis-farba);
}

.av-sm .sm-zoznam-pocet {
    font-size: var(--av-karta-pomocny);
}

.av-sm :is(.sm-otvorit, .sm-zrusit-vyber) {
    padding: 0;
    border-radius: var(--av-r-ovladac);
    background: transparent;
    color: var(--av-text-2);
}

.av-sm :is(.sm-otvorit, .sm-zrusit-vyber):hover {
    background: var(--av-tlacidlo-hover);
    color: var(--av-text);
}

.av-sm .sm-filtre-strojov {
    padding: var(--av-m-2) var(--av-m-4);
    border-bottom: 1px solid var(--av-oddelovac);
    font-size: var(--av-karta-pomocny);
    color: var(--av-text-2);
}

.av-sm .sm-polozka {
    box-sizing: content-box;
    min-height: var(--av-karta-riadok);
    padding: var(--av-m-1) var(--av-m-2) var(--av-m-1) var(--av-m-4);
    border-bottom: 1px solid var(--av-oddelovac);
    font-family: var(--av-pismo);
    font-size: var(--av-karta-text);
    line-height: var(--av-karta-text-riadok);
}

.av-sm .sm-polozka:last-child {
    border-bottom: 0;
}

.av-sm .sm-polozka:hover {
    background: var(--av-klient-hover-pozadie);
}

.av-sm .sm-polozka:focus-visible {
    outline: 2px solid var(--av-klient);
}

.av-sm .sm-polozka.sm-vybrana {
    background: var(--av-klient-8);
    box-shadow: inset 3px 0 0 var(--av-klient);
}

/* Názov ako hodnota v riadku karty (bežná hrúbka, farba textu – nikdy tučné). */
.av-sm .sm-polozka-nazov {
    font-weight: 400;
    color: var(--av-text);
}

.av-sm :is(.sm-polozka-popis, .sm-polozka-rozsah, .sm-pocet) {
    font-size: var(--av-karta-pomocny);
    line-height: var(--av-karta-pomocny-riadok);
    color: var(--av-karta-pomocny-farba);
}

.av-sm .sm-bez-samostatnej {
    font-size: var(--av-pismo-11);
    color: var(--av-cervena-text);
}

.av-sm .sm-polozka-hodnota {
    gap: var(--av-m-1);
}

/* Úzky zoznam Zamestnanci (~25 % šírky): stav dokladov iba ako ikona štítku (text v bublinke – title), meno má miesto. */
.av-sm [data-zoznam='zamestnanec'] .sm-polozka-hodnota .av-chip > span {
    display: none;
}

.av-sm [data-zoznam='zamestnanec'] .sm-polozka-hodnota .av-chip {
    padding-inline: 4px;
}

.av-sm .sm-prazdne {
    list-style: none;
}

/* Detail stroja v malom okne: karty Stroj a Obsluha pod sebou. */
.av-sm-stroj {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-3);
}

/* ============================================================ Podpis v paneli (Ľudia, 15. 10. 2026) */
/* Podpisové pole (PodpisPole – záznam o zaškolení, výdaj OOPP) vo formulári v2: biele plátno s tenkým plným okrajom
   (v2 nemá čiarkované okraje) a zaoblením karty, pomocný text ako pomocný text formulára; podpis prstom na tablete ostáva
   (touch-action: none). */
.av-formular .alogic-podpis-platno {
    height: 12rem !important;
    border: 1px solid color-mix(in oklab, var(--av-text-3) 45%, transparent) !important;
    border-radius: var(--av-r-karta) !important;
    background: #fff !important;
}

.av-formular .alogic-podpis-ulozeny {
    border: 1px solid var(--av-oddelovac) !important;
    border-radius: var(--av-r-karta) !important;
}

.av-formular .alogic-podpis-pomoc {
    font-size: var(--av-pismo-13) !important;
    color: var(--av-text-2);
    opacity: 1 !important;
}

/* Vysvetlenie karty (ikona „i“ za nadpisom, text v bubline). */
.av-karta-zoznamu-popis {
    display: inline-flex;
    color: var(--av-text-3);
    cursor: help;
}

/* Ovládače stránky v páse sekcií v2 (výber roka ‹ 2026 ›): ikonové tlačidlá Filamentu ako ikonové av-tlacidlo. */
.av-pas-sekcii .fi-icon-btn {
    width: var(--av-tlacidlo-vyska);
    height: var(--av-tlacidlo-vyska);
    border-radius: var(--av-r-ovladac);
    background: var(--av-tlacidlo);
    color: var(--av-text);
}

.av-pas-sekcii .fi-icon-btn:hover {
    background: var(--av-tlacidlo-hover);
}

/* ============================================================ Dlhé tabuľky v kartách */
/* Korekcie 4. kolo: tabuľka v karte s viac ako 10 riadkami (V2::RIADKY_KARTY) ukáže prvých 10 a dole v strede
   „Zobraziť všetkých N“ so šípkou nadol; klik kartu rozbalí, „Zobraziť menej“ (šípka nahor) ju zbalí. Tabuľky Filamentu
   v záložkách načítajú na serveri iba 10 riadkov (ZalozkaV2 – päta tabuľky), vlastné tabuľky skryje CSS (ZbaliťTabuľku –
   skryté hneď od načítania stránky, nič neposkočí). */
.av-zbalitelne[data-av-zbalene]:not(.av-rozbalene) tbody > tr:nth-child(n+11) {
    display: none;
}

.av-zobrazit-vsetky {
    display: flex;
    justify-content: center;
    padding: var(--av-m-1) 0 var(--av-m-2);
}

/* Päta tabuľky v záložke: tlačidlo v strede viditeľnej šírky karty aj pri širokej tabuľke (posúva sa vodorovne). */
.av-panel .fi-sc-tabs-tab .fi-ta-content-ctn {
    container-type: inline-size;
}

.av-panel .fi-ta-table tfoot td.av-zobrazit-vsetky-bunka {
    padding: 0;
    border: 0;
    background: transparent;
}

.av-zobrazit-vsetky-bunka > .av-zobrazit-vsetky {
    position: sticky;
    left: 0;
    width: 100cqw;
}

.av-zobrazit-vsetky-tlacidlo {
    display: inline-flex;
    align-items: center;
    gap: var(--av-m-1);
    height: 28px;
    padding: 0 var(--av-m-3);
    border: 0;
    border-radius: var(--av-r-ovladac);
    background: transparent;
    font-family: var(--av-pismo);
    font-size: var(--av-karta-pomocny);
    font-weight: 500;
    color: var(--av-klient-text);
    cursor: pointer;
}

.av-zobrazit-vsetky-tlacidlo:hover {
    background: var(--av-klient-8);
}

.av-zobrazit-vsetky-sipka {
    display: inline-flex;
    transition: transform 0.15s ease;
}

.av-rozbalene > .av-zobrazit-vsetky .av-zobrazit-vsetky-sipka {
    transform: rotate(180deg);
}

.av-zbalitelne:not(.av-rozbalene) .av-text-menej,
.av-zbalitelne.av-rozbalene .av-text-vsetky {
    display: none;
}

/* ============================================================ ListCard */
/* Komponent x-v2.list-card (Ukážka komponentov a vlastné obrazovky): ten istý vzhľad ako karta zoznamu v záložke detailu –
   riadok nadpisu karty (nadpis, „+ Pridať …“), jednoduchá hlavička stĺpcov, zoznam. */
.av-karta-zoznamu {
    margin: var(--av-m-2) var(--av-m-6) 0;
    border: 1px solid var(--av-oddelovac);
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
}

/* Zoznam odsadený od okrajov karty ako riadky Základných údajov – rohy karty ostávajú celé (korekcie 5. kolo). */
.av-karta-zoznamu > .av-zoznam {
    margin: 0 var(--av-m-4) var(--av-m-1);
    border: 0;
    border-radius: 0;
}

/* „+ Pridať …“: nenápadné – bez podkladu, text a ikona vo farbe klienta; pri prejdení myšou jemné podfarbenie. */
.av-pas-pridat.av-tlacidlo,
.av-pas-pridat > .av-tlacidlo {
    background: transparent;
    color: var(--av-klient-text);
}

.av-pas-pridat.av-tlacidlo:hover,
.av-pas-pridat > .av-tlacidlo:hover,
.av-pas-pridat > .av-tlacidlo[aria-expanded='true'] {
    background: var(--av-klient-8);
}

/* ============================================================ Tabuľka v karte */
/* Korekcie 5. kolo (vzor: karta s riadkami „názov – hodnota“ v Základných údajoch) – platí pre každú tabuľku v karte:
   tabuľky Filamentu v záložkách detailu (Kalibrácie, Pridelenia, Merania, Meracie body, Postupy, Verzie, Meradlá protokolu…),
   vlastné tabuľky v kartách (hodnoty etalónu, skutočný rozmer, posúdenie) aj ListCard a DetailCard v Ukážke:
   - názvy stĺpcov majú štýl názvu v riadku „názov – hodnota“ (korekcie 7. kolo: pomocný text – sivé bežné písmo 13 px,
     bez veľkých písmen; veľkými písmenami vo farbe klienta je iba nadpis karty) a riadok názvov je bez podfarbenia
     (Filament dáva podfarbenie celému riadku <tr>, nielen bunke); hodnoty v bunkách majú štýl hodnoty v riadku (text
     karty 14 px, bežná hrúbka, farba textu – aj prvý stĺpec; odkaz ostáva vo farbe klienta ako odkaz v riadku);
   - každý riadok (aj riadok názvov stĺpcov) má výšku --av-karta-riadok ako riadok „názov – hodnota“ a pod ním tenkú čiaru
     --av-oddelovac; pod posledným riadkom čiara nie je;
   - text bunky je v jednom riadku – popis stĺpca (napr. charakteristika bodu) je v tom istom riadku za textom, sivý;
   - zaoblenie karty je úplné: tabuľka je od okrajov karty odsadená (Zoznam v záložke ako karta, ListCard, obsah karty). */
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > thead > tr,
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > tfoot,
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > tfoot > tr {
    background: transparent !important;
}

.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > thead > tr > th,
:is(.av-panel .fi-section, .av-karta-detailu):not(.fi-modal *) table:not(.fi-ta-table) > thead > tr > th,
.av-karta-zoznamu .av-hlavicka-tabulky {
    position: static !important;
    /* Výška bez čiary (content-box): riadok 38 px + čiara 1 px ako riadky „názov – hodnota“. */
    box-sizing: content-box;
    height: var(--av-karta-riadok);
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: 1px solid var(--av-oddelovac);
    background: transparent !important;
    box-shadow: none !important;
    vertical-align: middle;
    white-space: nowrap;
    font-family: var(--av-pismo);
    /* Ako názov v riadku „názov – hodnota“ (korekcie 7. kolo). */
    font-size: var(--av-karta-pomocny) !important;
    line-height: var(--av-karta-pomocny-riadok) !important;
    font-weight: 400 !important;
    letter-spacing: normal;
    text-transform: none;
    color: var(--av-karta-pomocny-farba) !important;
}

/* Text v názve stĺpca (tlačidlo zoradenia Filamentu, bunky hlavičky ListCard) preberá štýl názvu stĺpca. */
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > thead > tr > th *,
.av-karta-zoznamu .av-hlavicka-tabulky * {
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit;
    text-transform: inherit;
    white-space: nowrap !important;
    color: inherit !important;
}

/* Značka veličiny a jednotka v názve stĺpca (V2::znacka) ostávajú, ako sú – „[µm]“ nie „[ΜM]“, „uA“ nie „UA“. */
.av-znacka {
    text-transform: none !important;
    letter-spacing: normal !important;
}

.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > tbody > tr > td,
:is(.av-panel .fi-section, .av-karta-detailu):not(.fi-modal *) table:not(.fi-ta-table) > tbody > tr > td {
    box-sizing: content-box;
    height: var(--av-karta-riadok);
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    vertical-align: middle;
    white-space: nowrap;
}

/* Hodnota v bunke = hodnota v riadku „názov – hodnota“ (korekcie 7. kolo): text karty, bežná hrúbka, farba textu – aj prvý
   stĺpec (Filament mu dáva strednú hrúbku, fi-font-medium) a prázdna bunka; odkaz v bunke (stĺpec s adresou) ostáva vo
   farbe klienta ako odkaz v riadku. */
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-cell :is(.fi-ta-text-item, .fi-ta-placeholder):not(.fi-ta-col-has-column-url, .fi-ta-col-has-column-url *),
:is(.av-panel .fi-section, .av-karta-detailu):not(.fi-modal *) table:not(.fi-ta-table) > tbody > tr > td,
.av-karta-zoznamu .av-riadok :is(.av-nazov, .av-bunka:not([class*='av-text-'])) {
    font-size: var(--av-karta-text) !important;
    line-height: var(--av-karta-text-riadok) !important;
    font-weight: 400 !important;
    color: var(--av-text) !important;
}

/* Termín a bunka s farbou stavu v ListCard: veľkosť a hrúbka hodnoty, farba podľa naliehavosti ostáva. */
.av-karta-zoznamu .av-riadok :is(.av-termin, .av-bunka[class*='av-text-']) {
    font-size: var(--av-karta-text) !important;
    font-weight: 400 !important;
}

/* Tabuľka Filamentu: 12 px medzi stĺpcami, prvý a posledný stĺpec pri okraji zoznamu (zarovnané s nadpisom karty). */
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > :is(thead, tbody) > tr > :is(th, td) {
    padding-left: var(--av-m-3) !important;
    padding-right: var(--av-m-3) !important;
}

.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > :is(thead, tbody) > tr > :is(th, td):first-child {
    padding-left: 0 !important;
}

.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > :is(thead, tbody) > tr > :is(th, td):last-child {
    padding-right: 0 !important;
}

/* Ponuka „⋯“ (aj prázdne miesto po nej – PonukaRiadku) v poslednom stĺpci nevyčnieva za okraj zoznamu (korekcie 6. kolo):
   Filament jej dáva záporný okraj 8 px, ktorý vyrovnáva odsadenie bunky – posledný stĺpec karty odsadenie nemá, takže
   tabuľka, ktorá sa zmestí, mala 8 px na posúvanie do strany a v karte sa ukázal zvislý pás tieňa vpravo. */
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > tbody > tr > td:last-child :is(.fi-icon-btn, .alogic-bez-akcie) {
    margin-inline-end: 0;
}

/* Obsah bunky bez vlastného odsadenia Filamentu (16 px hore a dole) – výšku riadku určuje --av-karta-riadok. */
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-cell .fi-ta-col > *,
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-cell :is(.fi-ta-text, .fi-ta-icon, .fi-ta-image) {
    padding: 0 !important;
}

.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-cell :is(.fi-ta-text, .fi-ta-text-item, .fi-ta-placeholder, .fi-wrapped) {
    line-height: var(--av-karta-text-riadok) !important;
    white-space: nowrap !important;
}

/* Popis stĺpca (charakteristika bodu, názov etalónu, „táto verzia“) v tom istom riadku za textom – riadok ostáva jeden. */
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-cell .fi-ta-text-has-descriptions {
    display: flex !important;
    flex-direction: row !important;
    align-items: baseline;
    gap: var(--av-m-2);
}

.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-cell .fi-ta-text-description {
    line-height: var(--av-karta-pomocny-riadok) !important;
}

/* Čiary medzi riadkami ako v Základných údajoch (--av-oddelovac); pod posledným riadkom čiara nie je. */
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > *,
.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > tbody > tr {
    border-color: var(--av-oddelovac) !important;
}

.av-panel .fi-ta-ctn:not(.fi-modal *) .fi-ta-table > tbody {
    border-bottom-width: 0 !important;
}

:is(.av-panel .fi-section, .av-karta-detailu):not(.fi-modal *) table:not(.fi-ta-table) > tbody > tr > td {
    border-bottom: 1px solid var(--av-oddelovac);
}

:is(.av-panel .fi-section, .av-karta-detailu):not(.fi-modal *) table:not(.fi-ta-table) > tbody > tr:last-child > td {
    border-bottom: 0;
}

/* ListCard (Ukážka): riadky v karte majú výšku riadku karty, bez bočného odsadenia (odsadený je celý zoznam). */
.av-karta-zoznamu :is(.av-hlavicka-tabulky, .av-riadok) {
    padding-left: 0;
    padding-right: 0;
}

.av-karta-zoznamu .av-riadok {
    box-sizing: content-box;
    height: var(--av-karta-riadok);
    border-bottom-color: var(--av-oddelovac);
}

.av-karta-zoznamu .av-riadok:last-child {
    border-bottom: 0;
}

/* Prázdny stav v karte (korekcie 5. kolo): ikona (zaoblený štvorec vo farbe klienta), veta, čo tu je, a čo urobiť – písmo
   karty (text karty a pomocný text), bez veľkých okrajov. Tabuľka Filamentu (fi-ta-empty-state) aj EmptyState (av-prazdny). */
:is(.av-panel .fi-ta-ctn, .av-panel .fi-section, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) :is(.fi-ta-empty-state, .av-prazdny) {
    padding: var(--av-m-6) var(--av-m-4);
    /* Filament dáva prázdnemu stavu čiaru hore cez celú šírku – pretínala by zaoblené rohy karty. */
    border: 0 !important;
}

:is(.av-panel .fi-ta-ctn, .av-panel .fi-section, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) .fi-ta-empty-state-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--av-m-2);
    max-width: none;
    margin: 0 auto;
    text-align: center;
}

:is(.av-panel .fi-ta-ctn, .av-panel .fi-section, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) .av-prazdny {
    gap: var(--av-m-2);
}

:is(.av-panel .fi-ta-ctn, .av-panel .fi-section, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) :is(.fi-ta-empty-state-icon-bg, .av-prazdny-ikona) {
    display: inline-flex;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
    border-radius: var(--av-r-ovladac);
    background: var(--av-klient-8);
    color: var(--av-klient-text);
}

:is(.av-panel .fi-ta-ctn, .av-panel .fi-section, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) :is(.fi-ta-empty-state-icon-bg, .av-prazdny-ikona) svg {
    width: 20px;
    height: 20px;
    color: inherit;
}

:is(.av-panel .fi-ta-ctn, .av-panel .fi-section, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) .av-ton-chyba .av-prazdny-ikona {
    background: var(--av-cervena-pozadie);
    color: var(--av-cervena-text);
}

:is(.av-panel .fi-ta-ctn, .av-panel .fi-section, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) :is(.fi-ta-empty-state-heading, .av-prazdny-nadpis) {
    margin: 0;
    font-size: var(--av-karta-text) !important;
    line-height: var(--av-karta-text-riadok);
    font-weight: 500;
    color: var(--av-text);
}

:is(.av-panel .fi-ta-ctn, .av-panel .fi-section, .av-karta-detailu, .av-karta-zoznamu):not(.fi-modal *) :is(.fi-ta-empty-state-description, .av-prazdny-text) {
    max-width: 420px;
    margin: 0;
    font-size: var(--av-karta-pomocny) !important;
    line-height: var(--av-karta-pomocny-riadok);
    color: var(--av-karta-pomocny-farba);
}

.av-panel .fi-ta-row:hover {
    background: var(--av-klient-hover-pozadie);
}

/* Prvý stĺpec tabuľky v karte má bežnú hrúbku ako hodnota v riadku (korekcie 7. kolo – „Tabuľka v karte“; predtým stredná). */

/* Kostra panela (bod 6, korekcie 2. kolo): hneď po kliknutí nadpis a jemný náznak obsahu namiesto obsahu panela; server
   obsah doplní na mieste (rovnaký panel, rovnaké pozadie – kostru odstráni Livewire). Panel s kostrou skryje starý obsah. */
.av-panel:has(> [data-av-kostra]) > .av-panel-obsah {
    display: none !important;
}

.av-panel-kostra {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    background: var(--av-povrch);
}

.av-panel-kostra .av-kostra,
.av-ponuka-kostra .av-kostra,
.av-pdf-nacitava .av-kostra {
    display: block;
    height: 10px;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--av-okraj-jemny), var(--av-hover), var(--av-okraj-jemny));
    background-size: 200% 100%;
    animation: av-kostra 1.2s linear infinite;
}

.av-panel-kostra .av-panel-podnadpis {
    padding-top: 6px;
}

.av-kostra-stav {
    display: flex;
    align-items: center;
    height: 32px;
    margin: 0 var(--av-m-6) var(--av-m-3);
    padding: 0 var(--av-m-3);
    border-radius: var(--av-r-ovladac);
    background: var(--av-hover);
}

.av-kostra-stav .av-kostra {
    flex: 0 0 auto;
}

.av-kostra-zalozky {
    display: flex;
    align-items: center;
    gap: var(--av-m-4);
    height: 41px;
    padding: 0 var(--av-m-6);
    border-bottom: 1px solid var(--av-okraj);
}

/* Kostra obsahu záložky pri prepnutí (korekcie 4. kolo, avVypocet.kostraZalozky): karty začínajú na rovnakom mieste ako
   karty záložky, výška ako naposledy zobrazený obsah – obsah zo servera sa vloží naraz bez posunu. */
.av-zalozka-kostra {
    flex: none !important;
    overflow: hidden;
}

.av-zalozka-kostra .av-kostra {
    display: block;
    height: 10px;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--av-okraj-jemny), var(--av-hover), var(--av-okraj-jemny));
    background-size: 200% 100%;
    animation: av-kostra 1.2s linear infinite;
}

/* Náhľad z deklarovaného rozloženia (oprava po teste Petra 16. 10. 2026, RozlozenieZalozky): rovnaká mriežka ako karty
   výsledku (.av-karty-detailu – 8 px zhora, 24 px po stranách, medzera 12 px; na úzkom paneli jeden stĺpec, od 760 px dva);
   blok „cela“, „tabulka“ a „mapa“ je na celú šírku – počet a šírka kariet náhľadu = výsledok. */
.av-kostra-karty {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: var(--av-m-3);
    padding: var(--av-m-2) var(--av-m-6) 0;
}

@container av-panel (min-width: 760px) {
    .av-kostra-karty {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.av-kostra-karty > .av-kostra-cela {
    grid-column: 1 / -1;
}

.av-kostra-zoznam {
    gap: var(--av-m-4);
}

.av-kostra-mapa {
    height: 320px;
}

.av-kostra-karta {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-3);
    padding: var(--av-m-4);
    border-radius: var(--av-r-karta);
    box-shadow: inset 0 0 0 1px var(--av-oddelovac);
}

/* Náhľad bloku „sipoc“ (Kvalita – karta procesu): päť kariet vedľa seba ako výsledok (.av-sipoc, sekcia „Kvalita – SIPOC“). */
.av-kostra-sipoc {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--av-m-3);
}

@container av-panel (min-width: 600px) {
    .av-kostra-sipoc {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

/* ============================================================ Kvalita – SIPOC a položky v karte (16. 10. 2026) */
/* SIPOC (x-v2.sipoc – záložka Karta v detaile procesu): päť kariet v2 vedľa seba na celú šírku mriežky kariet (Dodávatelia,
   Vstupy, Proces, Výstupy, Zákazníci), rovnako vysoké; na úzkom paneli (< 600 px) pod sebou. Karta Proces má jemné podfarbenie
   farbou klienta (8 %), názov procesu textom karty a cieľ pomocným textom. Náhľad (.av-kostra-sipoc) má tú istú mriežku. */
.av-sipoc {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--av-m-3);
    align-items: stretch;
    min-width: 0;
}

@container av-panel (min-width: 600px) {
    .av-sipoc {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

.av-karty-detailu > .av-sipoc {
    grid-column: 1 / -1;
}

.av-sipoc > .av-sipoc-karta {
    min-width: 0;
}

.av-sipoc > .av-sipoc-proces {
    background: var(--av-klient-8) !important;
}

.av-sipoc-nazov {
    font-weight: 500;
    overflow-wrap: anywhere;
}

.av-karta-detailu > .av-sipoc-ciel {
    margin-top: 0;
    color: var(--av-karta-pomocny-farba);
    overflow-wrap: anywhere;
}

/* Položky v karte (SIPOC, Personálne zdroje, Infraštruktúra, Súvisiace procesy): riadky karty vysoké ako riadok „názov –
   hodnota“ (--av-karta-riadok) s tenkou čiarou medzi nimi, text karty zarovnaný vľavo; dlhý text sa zalomí (úzke stĺpce
   SIPOC). Prázdna karta „—“ pomocným textom. */
.av-karta-detailu > .av-karta-polozky {
    margin: 0;
    padding: 0 var(--av-m-4) var(--av-m-1);
    list-style: none;
}

.av-karta-polozky > li {
    padding: calc((var(--av-karta-riadok) - var(--av-karta-text-riadok)) / 2) 0;
    overflow-wrap: anywhere;
}

.av-karta-polozky > li + li {
    border-top: 1px solid var(--av-oddelovac);
}

.av-karta-polozky > .av-karta-polozky-prazdne {
    color: var(--av-karta-pomocny-farba);
}

/* Štítok za hodnotou v riadku karty (nasledujúci rok auditu so štítkom stavu plánovania). */
.av-chip-za-hodnotou {
    margin-left: var(--av-m-2);
    vertical-align: middle;
}

/* ============================================================ MatrixCard – matica rizík (Kvalita, 16. 10. 2026) */
/* x-v2.matica-rizik: karta v2, v riadku nadpisu karty prepínač Pôvodné / Zvyškové skóre ako záložky karty a súhrn vpravo;
   mriežka 10 × 10 (pravdepodobnosť 10 → 1 zhora nadol, závažnosť 1 → 10 zľava doprava) – polia sú zaoblené štvorčeky
   v bledých stavových tónoch (červená ≥ 60, oranžová 32–59, zelená inak), číslo = počet položiek; pole s položkami je odkaz
   (pri prejdení obrys farbou klienta). Popisy osí a čísla pomocným textom; legenda pod maticou. */
.av-karta-hlavicka > .av-zalozky-karty {
    margin-left: var(--av-m-2);
}

.av-karta-detailu > .av-matica-obal {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: var(--av-m-2);
    row-gap: var(--av-m-1);
    margin: var(--av-m-2) var(--av-m-4) var(--av-m-2);
    overflow-x: auto;
}

.av-matica-mriezka {
    display: grid;
    grid-template-columns: 24px repeat(10, minmax(32px, 52px));
    gap: 4px;
}

.av-matica-pole {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    border-radius: var(--av-r-stitok);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    text-decoration: none;
}

a.av-matica-pole:hover,
a.av-matica-pole:focus-visible {
    outline: 2px solid var(--av-klient-okraj);
    outline-offset: 1px;
}

.av-matica-cislo {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--av-karta-pomocny-farba);
    font-variant-numeric: tabular-nums;
}

.av-matica-os {
    color: var(--av-karta-pomocny-farba);
}

.av-matica-os-y {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    text-align: center;
}

.av-matica-os-x {
    grid-column: 2;
    padding-left: 28px;
    text-align: center;
    max-width: calc(24px + 10 * 56px);
}

.av-karta-detailu > .av-matica-legenda {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--av-m-2) var(--av-m-4);
    margin: 0 var(--av-m-4) var(--av-m-3);
    color: var(--av-karta-pomocny-farba);
}

.av-matica-legenda > span {
    display: inline-flex;
    align-items: center;
    gap: var(--av-m-1);
}

.av-matica-znacka {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 3px;
}

.av-matica-pomoc {
    margin-left: auto;
}

/* ============================================================ GraphCard – graf v karte (Kvalita, 16. 10. 2026) */
/* x-v2.graf-karta: karta na celú šírku s grafom KPI kresleným v aplikácii (App\Support\GrafKpi – SVG, bez cudzej služby).
   Farby z tokenov v2: čiara meraní farba klienta, body zelená (splnené) / červená (nesplnené) / sivá (bez vyhodnotenia), čiara
   cieľa plná tmavosivá ako schod, mriežka jemná; popisy osí pomocným textom. Pod grafom legenda so zaoblenými štvorčekmi. */
.av-karta-detailu > .av-graf {
    margin: var(--av-m-2) var(--av-m-4) var(--av-m-1);
}

.av-graf .alogic-graf-kpi {
    display: block;
    width: 100%;
    max-width: 760px;
    height: auto;
}

.av-graf .alogic-graf-mriezka {
    stroke: var(--av-okraj-jemny);
    stroke-width: 1;
}

.av-graf :is(.alogic-graf-popis, .alogic-graf-ciel-popis) {
    fill: var(--av-karta-pomocny-farba);
}

.av-graf .alogic-graf-ciel {
    fill: none;
    stroke: var(--av-text-2);
    stroke-width: 1.5;
    stroke-dasharray: none;
}

.av-graf .alogic-graf-ciara {
    fill: none;
    stroke: var(--av-klient);
    stroke-width: 2;
}

.av-graf :is(.alogic-graf-bod, .alogic-graf-bod-splnene, .alogic-graf-bod-nesplnene) {
    stroke: var(--av-povrch);
    stroke-width: 1.5;
}

.av-graf .alogic-graf-bod {
    fill: var(--av-text-3);
}

.av-graf .alogic-graf-bod-splnene {
    fill: var(--av-zelena-text);
}

.av-graf .alogic-graf-bod-nesplnene {
    fill: var(--av-cervena-text);
}

.av-graf .alogic-graf-prazdny {
    margin: var(--av-m-2) 0;
    color: var(--av-karta-pomocny-farba);
}

.av-karta-detailu > .av-graf-legenda {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--av-m-1) var(--av-m-4);
    margin: 0 var(--av-m-4) var(--av-m-3);
    color: var(--av-karta-pomocny-farba);
}

.av-graf-legenda > span {
    display: inline-flex;
    align-items: center;
    gap: var(--av-m-1);
}

.av-graf-znacka {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 3px;
}

.av-graf-znacka-splnene {
    background: var(--av-zelena-text);
}

.av-graf-znacka-nesplnene {
    background: var(--av-cervena-text);
}

/* Cieľ = krátka plná čiara (ako čiara cieľa v grafe). */
.av-graf-znacka-ciel {
    width: 14px;
    height: 2px;
    border-radius: 1px;
    background: var(--av-text-2);
}

/* ============================================================ ActionMenu a DocumentsMenu */
.av-ponuka .fi-dropdown-panel,
.fi-dropdown-panel.av-ponuka {
    min-width: 220px;
    border-radius: var(--av-r-ovladac);
    box-shadow: var(--av-tien-ponuka);
    font-family: var(--av-pismo);
}

.av-ponuka .fi-dropdown-list-item,
.fi-dropdown-panel.av-ponuka .fi-dropdown-list-item {
    font-size: var(--av-pismo-13);
    border-radius: var(--av-r-stitok);
}

.av-ponuka-hlavicka {
    padding: 8px 12px 4px;
    font-size: var(--av-pismo-11);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--av-text-3);
}

/* Jednoduchá ponuka (Alpine) – ukážka a odkazy bez akcií Filamentu. */
.av-rozbalovacia {
    position: relative;
    display: inline-flex;
}

.av-rozbalovacia-panel {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 40;
    min-width: 240px;
    padding: 4px;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    box-shadow: var(--av-tien-ponuka);
}

.av-rozbalovacia-panel a,
.av-rozbalovacia-panel button {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    width: 100%;
    padding: 6px var(--av-m-2);
    border: 0;
    border-radius: var(--av-r-stitok);
    background: transparent;
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
    color: var(--av-text);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.av-rozbalovacia-panel a:hover,
.av-rozbalovacia-panel button:hover {
    background: var(--av-hover);
}

.av-rozbalovacia-panel svg {
    width: 16px;
    height: 16px;
    color: var(--av-text-3);
}

.av-rozbalovacia-panel .av-polozka-zmazat,
.av-rozbalovacia-panel .av-polozka-zmazat svg {
    color: var(--av-cervena-text);
}

/* Ponuka „⋯“ riadku tabuľky v paneli (oprava po teste Petra 16. 10. 2026, avPonuka v alogic-v2.js): jedna pre celú stránku
   priamo v <body> – nad panelom aj kartou (panel, karta ani okraj okna ju neorežú), poloha pri tlačidle počítaná
   v prehliadači (vždy celá viditeľná); vyššia ponuka ako okno sa posúva. */
.av-rozbalovacia-panel.av-ponuka-vrstva {
    position: fixed;
    top: 0;
    left: 0;
    right: auto;
    z-index: 50;
    overflow-y: auto;
    font-family: var(--av-pismo);
}

.av-ponuka-vrstva .av-ponuka-info {
    text-transform: none;
    font-weight: 400;
}

.av-ponuka-kostra {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-3);
    padding: var(--av-m-3);
}

/* Tlačidlo „⋯“ v riadku tabuľky záložky (PonukaRiadku::tlacidloV2) – ako v riadku hlavného zoznamu: viditeľné pri prejdení. */
.fi-ta-row:hover .av-riadok-ponuka-tlacidlo {
    opacity: 1;
}

.av-rozbalovacia-panel hr {
    margin: 4px 0;
    border: 0;
    border-top: 1px solid var(--av-okraj-jemny);
}

.av-polozka-popis {
    margin-left: auto;
    padding-left: var(--av-m-3);
    font-size: var(--av-pismo-11);
    color: var(--av-text-3);
}

/* Ponuky (Dokumenty ▾, Akcie ▾): každá položka na jednom riadku s ikonou vľavo, bez zalamovania; ponuka je taká
   široká ako najdlhšia položka (najmenej 300 px pri Dokumentoch), najviac šírka okna (korekcie 2. kolo). */
.av-rozbalovacia-panel a,
.av-rozbalovacia-panel button {
    white-space: nowrap;
}

.av-rozbalovacia-panel a > span:not(.av-polozka-popis),
.av-rozbalovacia-panel button > span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.av-action-menu > .av-rozbalovacia-panel {
    width: max-content;
    max-width: min(560px, calc(100vw - 32px));
}

.av-documents-menu > .av-rozbalovacia-panel {
    min-width: 300px;
}

/* PDF v ponuke (korekcie 4. kolo): klik otvorí okno s náhľadom, vpravo v riadku druhá možnosť „Otvoriť v novej karte“. */
.av-polozka-pdf {
    display: flex;
    align-items: center;
    gap: 2px;
}

.av-polozka-pdf > a:first-child {
    flex: 1 1 auto;
    min-width: 0;
}

.av-rozbalovacia-panel .av-polozka-pdf > .av-polozka-nova-karta {
    flex: 0 0 auto;
    width: 32px;
    justify-content: center;
    padding: 6px 0;
    color: var(--av-text-3);
}

.av-rozbalovacia-panel .av-polozka-pdf > .av-polozka-nova-karta:hover {
    color: var(--av-klient-text);
}

/* ============================================================ PDF v okne */
/* Korekcie 4. kolo (avPdf v alogic-v2.js): PDF sa otvára v okne v strede obrazovky – náhľad (prehliadač PDF v rámci),
   hore názov, Tlačiť (aj Ctrl+P), Stiahnuť a ×; pod oknom stmavenie ako pri formulári (klik naň okno zavrie, aj Esc).
   Okno je nad všetkým (aj nad panelmi a oknami formulárov). */
.av-pdf {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--av-m-6);
    font-family: var(--av-pismo);
}

.av-pdf-stmavenie {
    position: absolute;
    inset: 0;
    background: var(--av-stmavenie);
    animation: av-stmavenie-zobraz var(--av-vysun-trvanie) var(--av-vysun-krivka);
}

.av-pdf-okno {
    position: relative;
    display: flex;
    flex-direction: column;
    width: min(1100px, 100%);
    height: 100%;
    max-height: 1200px;
    overflow: hidden;
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
    box-shadow: var(--av-tien-ponuka);
}

.av-pdf-hlavicka {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: var(--av-m-2);
    padding: var(--av-m-3) var(--av-m-3) var(--av-m-3) var(--av-m-4);
    border-bottom: 1px solid var(--av-okraj-jemny);
}

.av-pdf-ikona {
    display: inline-flex;
    color: var(--av-cervena-text);
}

.av-pdf-nadpis {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--av-pismo-16);
    line-height: var(--av-riadok-16);
    font-weight: 600;
    color: var(--av-text);
}

.av-pdf-hlavicka .av-tlacidlo {
    text-decoration: none;
}

.av-pdf-zavriet {
    width: 36px;
    height: 36px;
    color: var(--av-text);
}

.av-pdf-telo {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
}

.av-pdf-nahlad {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    border: 0;
    background: var(--av-pozadie);
}

/* Rýchlosť (22. 10. 2026): okno sa otvorí hneď a kým server PDF pripraví, je nad náhľadom náznak strany (kostra ako pri
   paneli) s textom „Pripravuje sa PDF…“; po načítaní PDF zmizne. */
.av-pdf-nacitava {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--av-m-3);
    background: var(--av-pozadie);
    font-size: var(--av-pismo-13);
    line-height: var(--av-riadok-13);
    color: var(--av-text-2);
}

.av-pdf-nacitava-strana {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-3);
    width: min(360px, 70%);
    aspect-ratio: 210 / 297;
    max-height: 70%;
    padding: var(--av-m-6);
    border: 1px solid var(--av-okraj-jemny);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
}

/* Jemné upozornenie nad náhľadom (Dokumentácia v2, 16. 10. 2026): zastaraná revízia riadeného dokumentu – PDF má vodoznak.
   Pás v bledej oranžovej (upozornenie, nie chyba), malé písmo, ikona „stop“ ako štítok Zastaraný. */
.av-pdf-upozornenie {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: var(--av-m-2);
    margin: 0;
    padding: 6px var(--av-m-4);
    border-bottom: 1px solid var(--av-oranzova-okraj);
    background: var(--av-oranzova-pozadie);
    font-size: var(--av-pismo-13);
    line-height: var(--av-riadok-13);
    font-weight: 500;
    color: var(--av-oranzova-text);
}

.av-pdf-upozornenie .av-ikona {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.av-pdf-upozornenie-popis {
    font-weight: 400;
}

/* Okno s PDF je otvorené: stránka pod ním sa neposúva. */
html.av-pdf-otvorene {
    overflow: hidden;
}

@media (max-width: 767.98px) {
    .av-pdf {
        padding: 0;
    }

    .av-pdf-okno {
        border-radius: 0;
    }

    .av-pdf-hlavicka .av-tlacidlo > span {
        display: none;
    }
}

/* ============================================================ FileCard */
.av-subor {
    display: flex;
    align-items: center;
    gap: var(--av-m-3);
    padding: var(--av-m-2) var(--av-m-3);
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    min-width: 0;
    /* Karta súboru v detaile v2 (KartaSuboru – korekcie 8. kolo) je v údaji infolistu, ktorý hodnotu zarovnáva doprava. */
    text-align: left;
}

.av-subor-ikona {
    display: inline-flex;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border-radius: var(--av-r-ovladac);
    background: var(--av-siva-pozadie);
    color: var(--av-siva-text);
}

/* Typ súboru PDF: trieda av-subor-pdf (korekcie 6. kolo – pôvodná av-pdf je okno PDF s position: fixed, ikona PDF
   v karte súboru a v galérii sa preto pripla do ľavého horného rohu obrazovky nad všetko). */
.av-subor-ikona.av-subor-pdf {
    background: var(--av-cervena-pozadie);
    color: var(--av-cervena-text);
}

.av-subor-ikona.av-obrazok {
    background: var(--av-modra-pozadie);
    color: var(--av-modra-text);
}

.av-subor-ikona.av-tabulka-suboru {
    background: var(--av-zelena-pozadie);
    color: var(--av-zelena-text);
}

.av-subor-ikona svg {
    width: 20px;
    height: 20px;
}

.av-subor-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
}

.av-subor-nazov {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--av-pismo-13);
    font-weight: 500;
    color: var(--av-text);
    text-decoration: none;
}

.av-subor-nazov:hover {
    color: var(--av-klient-text);
    text-decoration: underline;
}

.av-subor-meta {
    font-size: var(--av-pismo-12);
    color: var(--av-text-3);
}

.av-subor-akcie {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

.av-subor-chyba {
    border-color: var(--av-cervena-okraj);
    background: var(--av-cervena-pozadie);
}

.av-subor-chyba .av-subor-meta {
    color: var(--av-cervena-text);
}

/* ============================================================ Gallery */
.av-galeria {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: var(--av-m-3);
}

.av-galeria-polozka {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    overflow: hidden;
    text-align: left;
}

.av-galeria-nahlad {
    position: relative;
    display: flex;
    aspect-ratio: 4 / 3;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: var(--av-pozadie);
    color: var(--av-text-3);
    cursor: zoom-in;
    overflow: hidden;
}

.av-galeria-nahlad img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.av-galeria-nahlad svg {
    width: 36px;
    height: 36px;
}

a.av-galeria-nahlad {
    cursor: pointer;
}

.av-galeria-popis {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px var(--av-m-2);
    font-size: var(--av-pismo-12);
}

.av-galeria-popis span {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--av-text);
}

.av-galeria-popis a {
    display: inline-flex;
    color: var(--av-text-3);
}

.av-galeria-popis a:hover {
    color: var(--av-klient-text);
}

.av-zvacsenie {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 72px;
    background: rgb(9 9 11 / 0.82);
}

.av-zvacsenie img {
    max-width: 100%;
    max-height: 100%;
    border-radius: var(--av-r-ovladac);
    box-shadow: 0 16px 48px rgb(0 0 0 / 0.4);
}

.av-zvacsenie-tlacidlo {
    position: absolute;
    display: inline-flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: var(--av-r-ovladac);
    background: rgb(255 255 255 / 0.12);
    color: #fff;
    cursor: pointer;
}

.av-zvacsenie-tlacidlo:hover {
    background: rgb(255 255 255 / 0.22);
}

.av-zvacsenie-tlacidlo svg {
    width: 22px;
    height: 22px;
}

.av-zvacsenie-zavriet { top: 16px; right: 16px; }
.av-zvacsenie-predosly { left: 16px; top: 50%; margin-top: -20px; }
.av-zvacsenie-dalsi { right: 16px; top: 50%; margin-top: -20px; }

.av-zvacsenie-popis {
    position: absolute;
    bottom: 16px;
    left: 0;
    right: 0;
    text-align: center;
    font-size: var(--av-pismo-13);
    color: #e4e4e7;
}

/* ============================================================ Formuláre v paneli (slide-over Filamentu) a okná */
/* Formuláre v2 (bod 6, korekcie 2. kolo): pridanie a úprava záznamu sú panel sprava (V2::vPaneli), malé veci okno
   (V2::vOkne) – oba s triedou av-formular. Všetky okná na stránkach v2 (aj potvrdenia) majú rovnaké písmo, zaoblenia,
   sekcie ako karty s jemným nadpisom a tlačidlá ako detail v paneli. */
.av-formular.fi-modal-window,
body:has(.av-stranka, .av-ukazka) .fi-modal-window {
    font-family: var(--av-pismo);
    color: var(--av-text);
    border-radius: var(--av-r-karta);
    box-shadow: var(--av-tien-ponuka);
    --tw-ring-shadow: 0 0 #0000;
}

/* Vysunutie panela formulára = vysunutie panela detailu (tokeny --av-vysun-*, korekcie 3. kolo). */
.fi-modal-slide-over > .fi-modal-window-ctn > .av-formular.fi-modal-window:is(.fi-transition-enter, .fi-transition-leave),
body:has(.av-stranka, .av-ukazka) .fi-modal-slide-over > .fi-modal-window-ctn > .fi-modal-window:is(.fi-transition-enter, .fi-transition-leave) {
    transition-duration: var(--av-vysun-trvanie);
    transition-timing-function: var(--av-vysun-krivka);
}

/* Panel sprava: ako panel detailu – zaoblené ľavé rohy, pravá strana na okraji okna, jemný tieň. */
.fi-modal-slide-over .av-formular.fi-modal-window,
body:has(.av-stranka, .av-ukazka) .fi-modal-slide-over .fi-modal-window {
    border-radius: var(--av-r-karta) 0 0 var(--av-r-karta);
    box-shadow: var(--av-tien-panel);
}

.av-formular .fi-modal-header,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-modal-header {
    padding: var(--av-m-4) var(--av-m-6);
    border-bottom: 1px solid var(--av-okraj-jemny);
}

/* Nadpis okna a panela formulára 16 px (korekcie 4. kolo – panel formulára ako hlavička panela detailu, vyššie). */
.av-formular .fi-modal-heading,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-modal-heading {
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-16);
    line-height: var(--av-riadok-16);
    font-weight: 600;
    color: var(--av-text);
}

/* Malé okno (av-okno, potvrdenia): nadpis ako nadpis bloku. */
.av-okno .fi-modal-heading,
body:has(.av-stranka, .av-ukazka) .fi-modal:not(.fi-modal-slide-over) .fi-modal-window .fi-modal-heading {
    font-size: var(--av-pismo-16);
    line-height: var(--av-riadok-16);
}

.av-formular .fi-modal-description,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-modal-description {
    font-size: var(--av-pismo-13);
    color: var(--av-text-2);
}

.av-formular .fi-modal-close-btn,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-modal-close-btn {
    width: 36px;
    height: 36px;
    border-radius: var(--av-r-ovladac);
    color: var(--av-text);
}

.av-formular .fi-modal-content,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-modal-content {
    padding: var(--av-m-4) var(--av-m-6);
    row-gap: var(--av-m-3);
}

.av-formular .fi-modal-footer,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-modal-footer {
    padding: var(--av-m-3) var(--av-m-6);
    border-top: 1px solid var(--av-okraj-jemny);
}

/* Sekcie formulára = karty ako v detaile (DetailCard): zaoblenie karty, jemný obrys, jemný nadpis 13 px. */
.av-formular .fi-section,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-section {
    border: 0 !important;
    border-radius: var(--av-r-karta) !important;
    background: var(--av-povrch) !important;
    box-shadow: inset 0 0 0 1px var(--av-oddelovac) !important;
    --tw-ring-shadow: 0 0 #0000 !important;
}

.av-formular .fi-section-header,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-section-header {
    padding: var(--av-m-3) var(--av-m-4) var(--av-m-1) !important;
    border: 0 !important;
}

/* Nadpis sekcie formulára = nadpis karty detailu = hlavička stĺpcov tabuľky (korekcie 3. kolo, tokeny --av-nadpis-*). */
.av-formular .fi-section-header-heading,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-section-header-heading {
    font-family: var(--av-pismo);
    font-size: var(--av-nadpis-pismo) !important;
    line-height: var(--av-nadpis-riadok) !important;
    font-weight: var(--av-nadpis-hrubka) !important;
    letter-spacing: var(--av-nadpis-rozostup);
    text-transform: var(--av-nadpis-pismena);
    color: var(--av-nadpis-farba) !important;
}

.av-formular .fi-section-header-description,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-section-header-description {
    font-size: var(--av-pismo-12);
    color: var(--av-text-3);
}

.av-formular .fi-section-content-ctn,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-section-content-ctn {
    border: 0 !important;
}

.av-formular .fi-section-content,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-section-content {
    padding: var(--av-m-2) var(--av-m-4) var(--av-m-4) !important;
}

/* Polia: popis 13 px stredne sivý, pole so zaoblením ovládača, zameranie farbou klienta. */
.av-formular .fi-fo-field-label-content,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-fo-field-label-content {
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
    font-weight: 500;
    color: var(--av-text-2);
}

.av-formular .fi-input-wrp,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-input-wrp {
    border-radius: var(--av-r-ovladac);
}

.av-formular .fi-input,
.av-formular .fi-select-input,
body:has(.av-stranka, .av-ukazka) .fi-modal-window :is(.fi-input, .fi-select-input) {
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
}

.av-formular .fi-input-wrp:focus-within,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-input-wrp:focus-within {
    --tw-ring-color: var(--av-klient-okraj) !important;
}

.av-formular .fi-fo-field-label-required-mark,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-fo-field-label-required-mark {
    color: var(--av-cervena-text);
}

.av-formular .fi-sc-text,
.av-formular .fi-fo-field-wrp-helper-text,
body:has(.av-stranka, .av-ukazka) .fi-modal-window :is(.fi-sc-text, .fi-fo-field-wrp-helper-text) {
    font-size: var(--av-pismo-12);
    color: var(--av-text-3);
}

/* Sekcia bez nadpisu (napr. prvá sekcia externej kalibrácie, merací bod, protokol): názov prvého poľa má od hornej hrany
   karty rovnaký odstup ako od bočnej (16 px) – nelepí na hornú hranu (korekcie 3. kolo). */
.av-formular .fi-section:not(.fi-section-has-header) > .fi-section-content-ctn > .fi-section-content,
body:has(.av-stranka, .av-ukazka) .fi-modal-window .fi-section:not(.fi-section-has-header) > .fi-section-content-ctn > .fi-section-content {
    padding-top: var(--av-m-4) !important;
}

/* Nápoveda (korekcie 3. kolo): krátka ako bledý text v poli (placeholder), dlhé vysvetlenie za ikonou „i“ hneď za názvom
   poľa (makro ->napoveda(), bublina po prejdení myšou alebo klepnutí). Text pod poľom sa nepoužíva. */
:is(.av-formular, .av-ukazka-formular) :is(.fi-fo-field-label-ctn, .fi-in-entry-label-ctn),
body:has(.av-stranka, .av-ukazka) .fi-modal-window :is(.fi-fo-field-label-ctn, .fi-in-entry-label-ctn) {
    align-items: center;
    justify-content: flex-start;
    column-gap: 6px;
}

:is(.av-formular, .av-ukazka-formular) :is(.fi-fo-field-label-ctn, .fi-in-entry-label-ctn) > .fi-sc,
body:has(.av-stranka, .av-ukazka) .fi-modal-window :is(.fi-fo-field-label-ctn, .fi-in-entry-label-ctn) > .fi-sc {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
}

:is(.av-formular, .av-ukazka-formular) :is(.fi-fo-field-label-ctn, .fi-in-entry-label-ctn) .fi-icon,
body:has(.av-stranka, .av-ukazka) .fi-modal-window :is(.fi-fo-field-label-ctn, .fi-in-entry-label-ctn) .fi-icon {
    width: 15px;
    height: 15px;
    cursor: help;
}

/* Ikona je jemne sivá, pri prejdení myšou farba klienta; oranžová iba pri upozornení (->hintColor('warning'), napr. MPE). */
:is(.av-formular, .av-ukazka-formular) :is(.fi-fo-field-label-ctn, .fi-in-entry-label-ctn) .fi-icon:not(.fi-color-warning, .fi-color-danger),
body:has(.av-stranka, .av-ukazka) .fi-modal-window :is(.fi-fo-field-label-ctn, .fi-in-entry-label-ctn) .fi-icon:not(.fi-color-warning, .fi-color-danger) {
    color: var(--av-text-3) !important;
}

:is(.av-formular, .av-ukazka-formular) :is(.fi-fo-field-label-ctn, .fi-in-entry-label-ctn) .fi-icon:not(.fi-color-warning, .fi-color-danger):hover,
body:has(.av-stranka, .av-ukazka) .fi-modal-window :is(.fi-fo-field-label-ctn, .fi-in-entry-label-ctn) .fi-icon:not(.fi-color-warning, .fi-color-danger):hover {
    color: var(--av-klient-text) !important;
}

:is(.av-formular, .av-ukazka-formular) :is(.fi-input, .fi-select-input-btn, textarea)::placeholder,
:is(.av-formular, .av-ukazka-formular) .fi-select-input-placeholder,
body:has(.av-stranka, .av-ukazka) .fi-modal-window :is(.fi-input, textarea)::placeholder {
    color: var(--av-text-3);
    opacity: 1;
}

/* Výber (select) v2 (korekcie 3. kolo): vlastná ponuka Filamentu (V2::jeV2 – nie natívna ponuka prehliadača s tmavosivým
   zvýraznením) s rovnakým zaoblením a písmom ako polia; ponuka ako „Akcie ▾“ – zaoblenie ovládača, tieň ponuky, položka
   pri prejdení a vybraná podfarbená farbou klienta. Platí vo formulároch aj vo filtroch zoznamov v2. */
:is(.av-formular, .av-ukazka-formular, .av-stranka, .av-panel) .fi-select-input .fi-select-input-btn {
    border-radius: var(--av-r-ovladac);
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
    color: var(--av-text);
}

:is(.av-formular, .av-ukazka-formular, .av-stranka, .av-panel) .fi-select-input .fi-dropdown-panel {
    padding: 4px;
    border: 0;
    border-radius: var(--av-r-ovladac);
    box-shadow: var(--av-tien-ponuka);
    --tw-ring-shadow: 0 0 #0000;
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-13);
}

:is(.av-formular, .av-ukazka-formular, .av-stranka, .av-panel) .fi-select-input :is(.fi-select-input-options-ctn, .fi-select-input-option-group) {
    border: 0;
    --tw-divide-y-reverse: 0;
}

:is(.av-formular, .av-ukazka-formular, .av-stranka, .av-panel) .fi-select-input :is(.fi-select-input-options-ctn, .fi-select-input-option-group) > * {
    border: 0 !important;
}

:is(.av-formular, .av-ukazka-formular, .av-stranka, .av-panel) .fi-select-input .fi-select-input-option {
    border-radius: var(--av-r-stitok);
    color: var(--av-text);
}

:is(.av-formular, .av-ukazka-formular, .av-stranka, .av-panel) .fi-select-input .fi-select-input-option:is(:hover, .fi-focused, [aria-selected='true']) {
    background: var(--av-klient-hover-pozadie);
}

/* Zameraná položka (klávesnica) je podfarbená ako pri prejdení myšou – bez obrysu okolo položky. */
:is(.av-formular, .av-ukazka-formular, .av-stranka, .av-panel) .fi-select-input .fi-select-input-option:focus-visible {
    outline: none;
    box-shadow: inset 0 0 0 1px var(--av-klient-okraj);
}

:is(.av-formular, .av-ukazka-formular, .av-stranka, .av-panel) .fi-select-input .fi-select-input-option.fi-selected {
    background: var(--av-klient-8);
    color: var(--av-klient-text);
    font-weight: 500;
}

/* Viackrokový formulár: pás krokov s priebehom. */
.av-formular .fi-sc-wizard-header {
    position: relative;
    border-radius: 0;
}

.av-priebeh {
    height: 3px;
    margin: 0;
    background: var(--av-okraj-jemny);
    overflow: hidden;
}

.av-priebeh > span {
    display: block;
    height: 100%;
    background: var(--av-klient);
    transition: width 0.2s;
}

/* ============================================================ Ukážka komponentov */
.av-ukazka {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-6);
    padding-bottom: 48px;
}

.av-ukazka-ovladanie {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--av-m-3);
    padding: var(--av-m-3) var(--av-m-4);
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
    box-shadow: var(--av-tien-1);
}

.av-ukazka-farby {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.av-ukazka-farba {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 28px;
    padding: 0 10px 0 6px;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-stitok);
    background: var(--av-povrch);
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-12);
    font-weight: 500;
    color: var(--av-text-2);
    cursor: pointer;
}

.av-ukazka-farba i {
    display: inline-block;
    width: 16px;
    height: 16px;
    border-radius: 4px;
}

.av-ukazka-farba[aria-pressed='true'] {
    border-color: var(--av-klient);
    color: var(--av-klient-text);
    box-shadow: 0 0 0 2px var(--av-klient-8);
}

.av-ukazka-sekcia {
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
    overflow: hidden;
}

.av-ukazka-sekcia > header {
    display: flex;
    align-items: baseline;
    gap: var(--av-m-3);
    padding: var(--av-m-3) var(--av-m-4);
    border-bottom: 1px solid var(--av-okraj);
    background: var(--av-pozadie);
}

.av-ukazka-sekcia > header h2 {
    margin: 0;
    font-size: var(--av-pismo-16);
    font-weight: 600;
}

.av-ukazka-sekcia > header p {
    margin: 0;
    font-size: var(--av-pismo-12);
    color: var(--av-text-3);
}

.av-ukazka-mriezka {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.av-ukazka-mriezka > div {
    min-width: 0;
    padding: var(--av-m-4);
}

.av-ukazka-mriezka > div + div {
    border-left: 1px solid var(--av-okraj);
}

.av-ukazka-stav {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-2);
    padding: var(--av-m-4);
    border-top: 1px solid var(--av-okraj-jemny);
}

.av-ukazka-stav:first-child {
    border-top: 0;
}

.av-ukazka-popis {
    font-size: var(--av-pismo-11);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--av-text-3);
}

.av-ukazka-riadok {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--av-m-2);
}

.av-ukazka-tokeny {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: var(--av-m-2);
}

.av-ukazka-token {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: var(--av-pismo-12);
    color: var(--av-text-2);
}

.av-ukazka-token i {
    display: block;
    height: 40px;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
}

.av-ukazka-token code {
    font-size: var(--av-pismo-11);
    color: var(--av-text-3);
}

/* Panel v ukážke: v toku stránky, nie nad ňou. */
.av-ukazka .av-panel {
    position: relative;
    width: 100%;
    height: 520px;
    animation: none;
}

/* Panely nad sebou v ukážke (korekcie 6. kolo): ako nad zoznamom – oba vpravo s rovnakou šírkou, za nimi stmavený zoznam. */
.av-ukazka-panely-nad-sebou {
    position: relative;
    height: 200px;
    margin-top: var(--av-m-2);
    border-radius: var(--av-r-karta);
    background: var(--av-stmavenie);
    overflow: hidden;
}

.av-ukazka .av-ukazka-panely-nad-sebou > .av-panel {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 70%;
    height: auto;
}

/* Mapa haly v ukážke (Zariadenia, 16. 10. 2026): plocha bez pôdorysu – jemná mriežka; jedna bublina je zobrazená stále. */
.av-ukazka-mapa {
    margin-top: var(--av-m-2);
}

.av-ukazka .av-ukazka-mapa-plocha {
    height: 280px;
    cursor: default;
    background-image: linear-gradient(var(--av-oddelovac) 1px, transparent 1px), linear-gradient(90deg, var(--av-oddelovac) 1px, transparent 1px);
    background-size: 32px 32px;
}

.av-ukazka-mapa .av-ukazka-bublina {
    z-index: 3;
}

.av-ukazka-mapa .av-ukazka-bublina .av-mapa-bublina {
    display: flex;
}

.av-ukazka-mapa .av-mapa-neumiestnene {
    max-height: none;
}

/* ============================================================ Mobil */
@media (max-width: 767.98px) {
    .av-tabulka {
        --av-stlpce: minmax(0, 1fr) auto 32px !important;
    }

    .av-tabulka .av-bunka-vedlajsia,
    .av-tabulka .av-hlavicka-vedlajsia,
    .av-tabulka .av-riadok-termin,
    .av-tabulka .av-hlavicka-termin {
        display: none;
    }

    .av-hladat {
        flex-basis: 100%;
    }

    .av-nastroje-vpravo {
        margin-left: 0;
        flex-wrap: wrap;
    }

    .av-panel {
        width: 100% !important;
        border-left: 0;
    }

    .av-panel-tahadlo,
    .av-panel-sirka {
        display: none;
    }

    .av-panel-spat {
        display: inline-flex;
    }

    .av-panel-hlavicka {
        grid-template-columns: auto minmax(0, 1fr);
        padding: var(--av-m-3) var(--av-m-4);
    }

    .av-panel-akcie {
        grid-column: 1 / -1;
        flex-wrap: wrap;
    }

    .av-udaje {
        grid-template-columns: minmax(0, 1fr);
    }

    .av-blok,
    .av-stavovy-blok {
        padding-left: var(--av-m-4);
        padding-right: var(--av-m-4);
    }

    .av-stavovy-blok {
        margin-left: var(--av-m-4);
        margin-right: var(--av-m-4);
        padding: 0;
    }

    .av-zalozky {
        padding: 0 var(--av-m-4);
    }

    .av-ukazka-mriezka {
        grid-template-columns: minmax(0, 1fr);
    }

    .av-ukazka-mriezka > div + div {
        border-left: 0;
        border-top: 1px solid var(--av-okraj);
    }

    .av-zvacsenie {
        padding: 56px 8px;
    }
}

@media (min-width: 768px) and (max-width: 1023.98px) {
    .av-udaje {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ============================================================ Mapa haly (Zariadenia, 16. 10. 2026) */
/* Stránka v2 (MapaHalyStranka, StrankaV2): mapa je karta v2 – v riadku nadpisu karty záložky máp, filtre (výbery v štýle
   poľa Hľadať, „Iba problémy“ ako rýchly filter) a ovládače priblíženia; pod mapou legenda. V režime úprav je vpravo karta
   „Neumiestnené stroje“. Panel stroja nad mapou (PanelyV2 v režime „mapa“): bez stmavenia – mapa ostáva použiteľná (klik
   mimo panel ho nezavrie, klik na iný stroj prepne panel), užší panel 25–60 % (V2::SIRKA_PANELA_MAPY). */
.av-panely-mapa > .av-panely-stmavenie {
    display: none;
}

.av-mapa-stranka {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-3);
}

.av-mapa {
    display: flex;
    align-items: stretch;
    gap: var(--av-m-3);
    min-width: 0;
}

.av-mapa-stranka .av-karta-zoznamu {
    margin: 0;
}

.av-mapa-karta {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.av-mapa-hlavicka {
    flex-wrap: wrap;
    row-gap: var(--av-m-2);
    padding-top: var(--av-m-2);
    padding-bottom: var(--av-m-2);
}

.av-mapa-filtre {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--av-m-2);
}

.av-mapa-filter select {
    height: var(--av-tlacidlo-vyska);
    padding: 0 28px 0 var(--av-tlacidlo-odsadenie);
    border: 0;
    border-radius: var(--av-r-ovladac);
    background-color: var(--av-tlacidlo);
    font-family: var(--av-pismo);
    font-size: var(--av-tlacidlo-pismo);
    font-weight: var(--av-tlacidlo-hrubka);
    color: var(--av-text);
    cursor: pointer;
}

.av-mapa-filter select:hover {
    background-color: var(--av-tlacidlo-hover);
}

.av-mapa-filter select:focus-visible {
    outline: 2px solid var(--av-klient);
    outline-offset: 1px;
}

.av-mapa-upravy-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    font-size: var(--av-pismo-12);
    line-height: var(--av-riadok-12);
    color: var(--av-text-2);
}

.av-mapa-upravy-text strong {
    font-size: var(--av-pismo-13);
    font-weight: 600;
    color: var(--av-text);
}

.av-mapa-ovladace,
.av-mapa-ulozit {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
}

.av-mapa-ovladace {
    margin-left: auto;
}

.av-mapa-telo {
    position: relative;
    min-height: 0;
    border-top: 1px solid var(--av-oddelovac);
    border-bottom: 1px solid var(--av-oddelovac);
}

.av-mapa-telo > .av-prazdny {
    padding: var(--av-m-6) var(--av-m-4);
}

.av-mapa-plocha {
    position: relative;
    height: max(22rem, calc(100vh - 24rem));
    overflow: hidden;
    touch-action: none;
    cursor: grab;
    background: var(--av-pozadie);
}

.av-mapa-obsah {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    transform-origin: 0 0;
}

.av-mapa-obsah img {
    display: block;
    width: 100%;
    height: auto;
    user-select: none;
    -webkit-user-drag: none;
}

/* Stroj na mape: ikona kategórie v zaoblenom štvorčeku (žiadne kruhy) v tóne stavu revízií – bledé pozadie, tmavší text,
   tenký okraj tónu a biely lem (viditeľný na každom pôdoryse); pri priblížení sa nezväčšuje. */
.av-mapa-znacka {
    position: absolute;
    z-index: 1;
    cursor: pointer;
    outline: none;
}

.av-mapa-znacka:hover,
.av-mapa-znacka:focus-visible {
    z-index: 3;
}

.av-mapa-ikona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--av-r-ovladac);
    background: var(--av-siva-pozadie);
    color: var(--av-siva-text);
    box-shadow: inset 0 0 0 1px var(--av-siva-okraj), 0 0 0 2px var(--av-povrch), var(--av-tien-1);
}

.av-mapa-ikona svg {
    width: 16px;
    height: 16px;
}

.av-ton-cervena > .av-mapa-ikona,
.av-mapa-ikona.av-ton-cervena {
    background: var(--av-cervena-pozadie);
    color: var(--av-cervena-text);
    box-shadow: inset 0 0 0 1px var(--av-cervena-okraj), 0 0 0 2px var(--av-povrch), var(--av-tien-1);
}

.av-ton-oranzova > .av-mapa-ikona,
.av-mapa-ikona.av-ton-oranzova {
    background: var(--av-oranzova-pozadie);
    color: var(--av-oranzova-text);
    box-shadow: inset 0 0 0 1px var(--av-oranzova-okraj), 0 0 0 2px var(--av-povrch), var(--av-tien-1);
}

.av-ton-zelena > .av-mapa-ikona,
.av-mapa-ikona.av-ton-zelena {
    background: var(--av-zelena-pozadie);
    color: var(--av-zelena-text);
    box-shadow: inset 0 0 0 1px var(--av-zelena-okraj), 0 0 0 2px var(--av-povrch), var(--av-tien-1);
}

/* Vybraný stroj (otvorený panel): okraj vo farbe klienta. */
.av-mapa-vybrana > .av-mapa-ikona,
.av-mapa-znacka:focus-visible > .av-mapa-ikona {
    box-shadow: 0 0 0 2px var(--av-povrch), 0 0 0 4px var(--av-klient), var(--av-tien-1);
}

.av-mapa-ikona-mala {
    width: 20px;
    height: 20px;
    box-shadow: inset 0 0 0 1px var(--av-siva-okraj);
}

.av-mapa-ikona-mala svg {
    width: 12px;
    height: 12px;
}

/* Bublina pri prejdení myšou (alebo zameraní klávesnicou): názov, inv. č. a najbližší termín, štítok stavu s ikonou. */
.av-mapa-bublina {
    display: none;
    position: absolute;
    left: 50%;
    bottom: calc(100% + 8px);
    transform: translateX(-50%);
    flex-direction: column;
    align-items: flex-start;
    gap: var(--av-m-1);
    min-width: 200px;
    max-width: 280px;
    padding: var(--av-m-2) var(--av-m-3);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    box-shadow: var(--av-tien-ponuka);
    pointer-events: none;
    white-space: normal;
}

.av-mapa-znacka:hover .av-mapa-bublina,
.av-mapa-znacka:focus-visible .av-mapa-bublina {
    display: flex;
}

.av-mapa-upravy .av-mapa-bublina {
    display: none !important;
}

.av-mapa-bublina-nazov {
    font-size: var(--av-pismo-13);
    line-height: var(--av-riadok-13);
    font-weight: 500;
    color: var(--av-text);
}

.av-mapa-bublina-popis {
    font-size: var(--av-pismo-12);
    line-height: var(--av-riadok-12);
    color: var(--av-text-3);
}

.av-mapa-odobrat {
    position: absolute;
    right: -8px;
    top: -8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: var(--av-r-stitok);
    background: var(--av-cervena-text);
    color: #fff;
    cursor: pointer;
}

.av-mapa-odobrat svg {
    width: 12px;
    height: 12px;
}

.av-mapa-upravy .av-mapa-znacka {
    cursor: move;
}

/* Legenda: farby stavu (zaoblený štvorček v tóne) a ikony kategórií. */
.av-mapa-legenda {
    display: flex;
    flex-wrap: wrap;
    gap: var(--av-m-2) var(--av-m-4);
    padding: var(--av-m-3) var(--av-m-4);
    font-size: var(--av-pismo-12);
    line-height: var(--av-riadok-12);
    color: var(--av-text-2);
}

.av-mapa-legenda-polozka {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.av-mapa-bod {
    width: 12px;
    height: 12px;
    border-radius: 4px;
    background: var(--av-siva-text);
}

.av-mapa-bod.av-ton-cervena {
    background: var(--av-cervena-text);
}

.av-mapa-bod.av-ton-oranzova {
    background: var(--av-oranzova-text);
}

.av-mapa-bod.av-ton-zelena {
    background: var(--av-zelena-text);
}

/* Karta „Neumiestnené stroje“ vedľa mapy (režim úprav): nadpis s počtom, hľadanie, zoznam na potiahnutie. */
.av-mapa-neumiestnene {
    flex: 0 0 300px;
    display: flex;
    flex-direction: column;
    min-width: 0;
    max-height: calc(max(22rem, calc(100vh - 24rem)) + 120px);
    overflow: hidden;
}

.av-mapa-neumiestnene .av-karta-zoznamu-hlavicka > h3 {
    margin: 0;
    font-family: var(--av-pismo);
    font-size: var(--av-nadpis-pismo);
    line-height: var(--av-nadpis-riadok);
    font-weight: var(--av-nadpis-hrubka);
    letter-spacing: var(--av-nadpis-rozostup);
    text-transform: var(--av-nadpis-pismena);
    color: var(--av-nadpis-farba);
}

.av-mapa-hladat {
    flex: none;
    margin: 0 var(--av-m-4) var(--av-m-2);
}

.av-mapa-zoznam {
    flex: 1 1 auto;
    min-height: 0;
    margin: 0;
    padding: 0 var(--av-m-4) var(--av-m-2);
    overflow-y: auto;
    list-style: none;
}

.av-mapa-zoznam li {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    min-height: var(--av-karta-riadok);
    border-bottom: 1px solid var(--av-oddelovac);
    cursor: grab;
}

.av-mapa-zoznam li:last-child {
    border-bottom: 0;
}

.av-mapa-zoznam li > svg {
    margin-left: auto;
    width: 16px;
    height: 16px;
    color: var(--av-text-3);
}

.av-mapa-zoznam-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.av-mapa-zoznam-nazov {
    font-size: var(--av-pismo-13);
    line-height: var(--av-riadok-13);
    font-weight: 500;
    color: var(--av-text);
}

.av-mapa-zoznam-popis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--av-pismo-12);
    line-height: var(--av-riadok-12);
    color: var(--av-text-3);
}

@media (max-width: 1023.98px) {
    .av-mapa {
        flex-direction: column;
    }

    .av-mapa-neumiestnene {
        flex-basis: auto;
    }
}

/* ============================================================ Posuvníky v2 */
/* Posuvníky sú skryté a nezaberajú miesto (obsah neposkočí); pri posúvaní ich nad obsahom ukáže alogic.js
   (alogicPosuvniky, oblasti v OBLASTI_POSUVNIKOV) a 1 s po poslednom pohybe skryje. V oblastiach v2 sa neukazujú pri
   priblížení myšou k okraju – iba pri posúvaní. S predponou html.fi (korekcie 6. kolo): pravidlo tenkých posuvníkov
   v alogic.css (html.fi *) má vyššiu váhu ako jedna trieda – rad záložiek TabsCard (.av-zalozky) mal preto viditeľný
   posuvník 10 px. */
html.fi :is(.av-zoznam-posuv, .av-panel-obsah, .av-rozbalovacia-panel, .av-stavy, .av-zalozky, .av-panel .av-karta-filament > .fi-tabs) {
    scrollbar-width: none;
}

.av-zoznam-posuv::-webkit-scrollbar,
.av-panel-obsah::-webkit-scrollbar,
.av-rozbalovacia-panel::-webkit-scrollbar,
.av-stavy::-webkit-scrollbar,
.av-zalozky::-webkit-scrollbar {
    display: none;
}

/* Korekcie 6. kolo – všetky panely vrátane formulárov: aj panel formulára (Pridať meradlo, Upraviť, kalibrácie… – okno
   Filamentu s triedou av-formular; vysúvací panel posúva okno, malé okno jeho obal) a každé okno na stránke v2 (aj
   potvrdenie), pás krokov formulára v krokoch, ponuka výberu vo formulári, karta Filtre a ponuky v paneli majú posuvník
   skrytý bez vyhradeného miesta (alogic.css dáva oknám scrollbar-gutter: stable –
   tenký posuvník prehliadača bol vo formulári stále vidieť). Pri posúvaní ho nad obsahom ukáže alogic.js (oblasti
   v OBLASTI_V2, iba pri posúvaní – IBA_PRI_POSUVANI); obsah pri tom neposkočí. Rovnaký zoznam ako OBLASTI_V2 v alogic.js. */
@media (pointer: fine) {
    html.fi :is(.fi-modal-window.av-formular, .fi-modal-window-ctn:has(> .av-formular), body:has(.av-stranka, .av-ukazka) :is(.fi-modal-window, .fi-modal-window-ctn), .av-formular .fi-sc-wizard-header, .av-filter-formular, .av-formular .fi-dropdown-panel.fi-scrollable, .av-filter-formular .fi-dropdown-panel.fi-scrollable, .av-panel .fi-dropdown-panel.fi-scrollable, .av-panel .av-tabulka-karty, .av-mapa-zoznam, .av-prehlad-karta > .av-prehlad-obsah) {
        scrollbar-width: none;
        scrollbar-gutter: auto;
    }

    html.fi :is(.fi-modal-window.av-formular, .fi-modal-window-ctn:has(> .av-formular), body:has(.av-stranka, .av-ukazka) :is(.fi-modal-window, .fi-modal-window-ctn), .av-formular .fi-sc-wizard-header, .av-filter-formular, .av-formular .fi-dropdown-panel.fi-scrollable, .av-filter-formular .fi-dropdown-panel.fi-scrollable, .av-panel .fi-dropdown-panel.fi-scrollable, .av-panel .av-tabulka-karty, .av-mapa-zoznam, .av-prehlad-karta > .av-prehlad-obsah)::-webkit-scrollbar {
        display: none;
    }
}

/* Posuvník oblasti v otvorenom okne (formulár v paneli, ponuka výberu v ňom) je nad oknom – okná Filamentu majú z-index
   40 – 50, posuvníky stránky 35 (alogic.css). */
.alogic-posuvnik.alogic-posuvnik-v-okne {
    z-index: 60;
}

/* ---------------------------------------------------------------- Náhľad farby klienta (karta klienta) */
.av-nahlad-farby {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--av-m-2);
    padding: var(--av-m-3);
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
    box-shadow: inset 0 0 0 1px var(--av-oddelovac);
    --av-klient: var(--primary-600);
    --av-klient-text: var(--primary-700);
    --av-klient-16: color-mix(in oklch, var(--primary-600) 16%, white);
    --av-klient-24: color-mix(in oklch, var(--primary-600) 24%, white);
}

.av-nahlad-farby-popis {
    width: 100%;
    font-size: var(--av-pismo-12);
    color: var(--av-text-3);
}

.av-nahlad-farby-odkaz {
    color: var(--av-klient-text);
    font-size: var(--av-pismo-13);
    text-decoration: underline;
}

/* ---------------------------------------------------------------- Výber písma (Profil → Písmo) */
.av-volba-pisma {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--av-m-3);
}

.av-volba-pisma-karta {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-2);
    padding: var(--av-m-4);
    border: 0;
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
    box-shadow: inset 0 0 0 1px var(--av-oddelovac);
    text-align: left;
    cursor: pointer;
    color: var(--av-text);
}

.av-volba-pisma-karta:hover {
    background: var(--av-klient-hover-pozadie);
}

.av-volba-pisma-zvolene {
    background: var(--av-klient-8);
    box-shadow: inset 0 0 0 2px var(--av-klient-okraj);
}

.av-volba-pisma-nazov {
    display: inline-flex;
    align-items: center;
    gap: var(--av-m-1);
    font-size: var(--av-pismo-14);
    font-weight: 600;
    color: var(--av-klient-text);
}

.av-volba-pisma-ukazka {
    font-size: var(--av-pismo-16);
    font-weight: 600;
}

.av-volba-pisma-ukazka-mala {
    font-size: var(--av-pismo-13);
}

.av-volba-pisma-popis {
    font-size: var(--av-pismo-12);
    color: var(--av-text-3);
}

/* ---------------------------------------------------------------- Pás nástrojov: skupina ikon (Stĺpce, Vybrať) */
.av-skupina-ikon {
    display: inline-flex;
    gap: 2px;
    padding: 2px;
    border-radius: var(--av-r-ovladac);
    background: var(--av-tlacidlo);
}

.av-skupina-ikon .av-tlacidlo {
    width: calc(var(--av-tlacidlo-vyska) - 4px);
    height: calc(var(--av-tlacidlo-vyska) - 4px);
    background: transparent;
}

.av-skupina-ikon .av-tlacidlo:hover,
.av-skupina-ikon .av-tlacidlo[aria-pressed='true'] {
    background: var(--av-povrch);
}

.av-skupina-ikon .av-tlacidlo[aria-pressed='true'] {
    color: var(--av-klient-text);
}

/* Hľadanie vo všetkých záložkách: žiadna záložka nie je aktívna. */
.av-stavy-vsetky {
    opacity: 0.75;
}

/* Ukážka: mriežka s jedinou ukážkou na celú šírku. */
.av-ukazka-mriezka > :only-child {
    grid-column: 1 / -1;
}

/* ---------------------------------------------------------------- Stĺpce: poradie potiahnutím a šírka potiahnutím okraja */
.av-hlavicka-tabulky [data-av-stlpec] {
    position: relative;
}

.av-hlavicka-tabulky [draggable='true'] {
    cursor: grab;
}

.av-stlpec-ciel {
    box-shadow: inset 2px 0 0 var(--av-klient);
}

.av-stlpec-okraj {
    position: absolute;
    top: 4px;
    right: calc(-1 * var(--av-m-3) / 2 - 3px);
    bottom: 4px;
    width: 6px;
    border-radius: 3px;
    cursor: col-resize;
    z-index: 1;
}

.av-stlpec-okraj:hover {
    background: var(--av-klient-okraj);
}

.av-stlpec-polozka {
    display: flex;
    align-items: center;
    gap: 2px;
    border-radius: var(--av-r-ovladac);
}

.av-stlpec-polozka > button,
.av-stlpec-pevny {
    flex: 1 1 auto;
}

.av-stlpec-pevny {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    padding: 6px var(--av-m-2);
    color: var(--av-text-2);
}

.av-stlpec-uchop {
    display: inline-flex;
    padding: 4px 2px;
    color: var(--av-text-3);
    cursor: grab;
}

/* ============================================================ Program a plán auditov (Audity v2, 20. 10. 2026) */
/* Stránky Program auditov (procesy × roky cyklu) a Plán na rok (procesy × mesiace) sú karty v2 s tabuľkou v karte (av-tabulka-karty);
   audit v bunke je odkaz na panel; zrealizovaný zelený, po termíne červený; červená bunka = chýba audit podľa frekvencie,
   červený prvý stĺpec = proces bez auditu v cykle. Štítok stavu plánu a plnenie sú v karte plánu. */
.av-audity .av-audity-tabulka th.av-audity-rok {
    text-align: center;
    white-space: nowrap;
}

.av-audity .av-audity-tabulka td {
    vertical-align: top;
}

.av-audity .av-audity-tabulka td:first-child {
    min-width: 180px;
}

.av-audity-mesiace td:not(:first-child) {
    min-width: 96px;
}

.av-audity-frekvencia {
    white-space: nowrap;
    color: var(--av-karta-pomocny-farba);
}

.av-audity-certifikacia > td {
    background: var(--av-klient-8);
}

.av-audity-audit {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 2px 0;
    line-height: var(--av-karta-pomocny-riadok);
}

.av-audity-audit .av-odkaz {
    white-space: nowrap;
}

.av-audity-zrealizovany > .av-odkaz {
    color: var(--av-zelena-text);
}

.av-audity-po-termine > .av-odkaz {
    color: var(--av-cervena-text);
}

.av-audity-chyba {
    background: var(--av-cervena-pozadie);
    color: var(--av-cervena-text);
}

.av-audity-chyba-text {
    display: block;
    font-size: var(--av-pismo-12);
    line-height: var(--av-riadok-12);
}

.av-audity-bez-auditu > td:first-child {
    background: var(--av-cervena-pozadie);
}

.av-audity-bez-auditu .av-audity-poznamka {
    display: block;
    margin: 0;
    color: var(--av-cervena-text);
}

.av-audity-legenda {
    display: flex;
    flex-wrap: wrap;
    gap: var(--av-m-2) var(--av-m-4);
    margin: var(--av-m-1) var(--av-m-4) var(--av-m-3);
    color: var(--av-karta-pomocny-farba);
}

.av-audity-znacka {
    display: inline-block;
    width: 14px;
    height: 14px;
    margin-right: var(--av-m-1);
    border-radius: 4px;
    vertical-align: -2px;
}

.av-audity-znacka.av-ton-zelena { background: var(--av-zelena-pozadie); border: 1px solid var(--av-zelena-okraj); }
.av-audity-znacka.av-ton-modra { background: var(--av-modra-pozadie); border: 1px solid var(--av-modra-okraj); }
.av-audity-znacka.av-ton-cervena { background: var(--av-cervena-pozadie); border: 1px solid var(--av-cervena-okraj); }

.av-audity-stav-planu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--av-m-2) var(--av-m-3);
    margin: var(--av-m-1) var(--av-m-4) var(--av-m-2);
}

/* ============================================================ Priebeh auditu v2 (Audity, 20. 10. 2026) */
/* Celá stránka vhodná na tablet: karta s priebehom (čísla, ukazovateľ, čo bráni uzavretiu) a karta pre každú oblasť s otázkami.
   Veľké tlačidlá hodnotenia (aspoň 48 px na dotyk) v stavových tónoch; otázka má vľavo pásik podľa hodnotenia. Červená iba pri nezhode.
   Trieda stránky je av-priebeh-auditu (av-priebeh je tenký ukazovateľ priebehu, 3 px). */
.av-priebeh-auditu .av-karta-detailu {
    max-width: 1024px;
}

.av-priebeh-cisla {
    display: flex;
    flex-wrap: wrap;
    gap: var(--av-m-3) var(--av-m-6);
    margin: var(--av-m-2) var(--av-m-4) 0;
}

.av-priebeh-cislo {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.av-priebeh-hodnota {
    font-size: var(--av-pismo-20);
    line-height: var(--av-riadok-20);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.av-priebeh-ukazovatel {
    height: 6px;
    margin: var(--av-m-3) var(--av-m-4) 0;
    border-radius: 3px;
    background: var(--av-okraj-jemny);
    overflow: hidden;
}

.av-priebeh-ukazovatel > span {
    display: block;
    height: 100%;
    border-radius: 3px;
    background: var(--av-klient);
    transition: width 0.2s;
}

.av-karta-detailu > .av-stavovy-blok.av-priebeh-uzavretie {
    margin: var(--av-m-3) var(--av-m-4) var(--av-m-3);
    padding: 0;
    border: 0;
}

.av-karta-detailu > .av-priebeh-otazka {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-3);
    margin: var(--av-m-2) var(--av-m-4) var(--av-m-3);
    padding: var(--av-m-3) var(--av-m-4);
    border-left: 4px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-pozadie);
}

.av-priebeh-otazka.av-priebeh-vyhovuje { border-left-color: var(--av-zelena-text); }
.av-priebeh-otazka.av-priebeh-ciastocne { border-left-color: var(--av-oranzova-text); }
.av-priebeh-otazka.av-priebeh-nezhoda { border-left-color: var(--av-cervena-text); }
.av-priebeh-otazka.av-priebeh-na { border-left-color: var(--av-siva-text); }

.av-priebeh-otazka-text {
    display: flex;
    gap: var(--av-m-3);
}

.av-priebeh-poradie {
    flex: none;
    min-width: 28px;
    font-variant-numeric: tabular-nums;
}

.av-priebeh-znenie {
    margin: 0;
    font-size: var(--av-pismo-16);
    line-height: var(--av-riadok-16);
    font-weight: 500;
}

.av-priebeh-pomocka {
    margin-top: var(--av-m-1);
}

.av-priebeh-pomocka summary {
    display: inline-flex;
    align-items: center;
    gap: var(--av-m-1);
    min-height: 32px;
    cursor: pointer;
    color: var(--av-klient-text);
    list-style: none;
}

.av-priebeh-pomocka p {
    margin: var(--av-m-1) 0 0;
    padding: var(--av-m-2) var(--av-m-3);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    white-space: pre-line;
}

.av-priebeh-tlacidla {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--av-m-2);
}

.av-priebeh-tlacidlo {
    min-height: 48px;
    padding: var(--av-m-2);
    border: 0;
    border-radius: var(--av-r-ovladac);
    background: var(--av-tlacidlo);
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-14);
    font-weight: 500;
    color: var(--av-text);
    touch-action: manipulation;
}

.av-priebeh-tlacidlo:hover:not(:disabled) {
    background: var(--av-tlacidlo-hover);
}

.av-priebeh-tlacidlo:disabled {
    cursor: default;
    opacity: 0.6;
}

.av-priebeh-tlacidlo[aria-pressed="true"] {
    opacity: 1;
}

.av-priebeh-tlacidlo-vyhovuje[aria-pressed="true"] { background: var(--av-zelena-pozadie); color: var(--av-zelena-text); }
.av-priebeh-tlacidlo-ciastocne[aria-pressed="true"] { background: var(--av-oranzova-pozadie); color: var(--av-oranzova-text); }
.av-priebeh-tlacidlo-nezhoda[aria-pressed="true"] { background: var(--av-cervena-pozadie); color: var(--av-cervena-text); }
.av-priebeh-tlacidlo-na[aria-pressed="true"] { background: var(--av-siva-pozadie); color: var(--av-siva-text); }

.av-priebeh-stav {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-1);
}

.av-priebeh-stav textarea {
    width: 100%;
    padding: var(--av-m-2) var(--av-m-3);
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-14);
}

.av-priebeh-stav textarea:focus {
    outline: none;
    border-color: var(--av-klient-okraj);
}

.av-priebeh-stav textarea.av-priebeh-chyba {
    border-color: var(--av-oranzova-okraj);
}

.av-priebeh-dokazy {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--av-m-2);
}

.av-priebeh-dokaz {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.av-priebeh-dokaz img {
    width: 64px;
    height: 48px;
    object-fit: cover;
    border-radius: var(--av-r-ovladac);
}

.av-priebeh-dokaz-zmazat {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 22px;
    height: 22px;
    border: 1px solid var(--av-okraj);
    border-radius: 6px;
    background: var(--av-povrch);
    color: var(--av-cervena-text);
    line-height: 1;
}

.av-priebeh-pridat {
    cursor: pointer;
}

.av-priebeh-zistenie {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--av-m-2) var(--av-m-3);
}

@media (max-width: 640px) {
    .av-priebeh-tlacidla {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ============================================================ Náklady na reklamácie (Reklamácie v2, 20. 10. 2026) */
/* Stránka v2 s kartou tabuľky 12 mesiacov (čísla vpravo, obrat ako pole v2 priamo v riadku, budúce mesiace bledé, súčty
   s čiarou) a kartou grafu TQC (App\Support\GrafTqc – stĺpce vo farbe klienta, čiara minulého roka sivá); legenda ako pri grafe KPI. */
.av-naklady .av-naklady-tabulka th.av-naklady-cislo,
.av-naklady .av-naklady-tabulka td.av-naklady-cislo {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.av-naklady .av-naklady-tabulka th[scope="row"] {
    text-align: left;
    font-weight: 400;
    white-space: nowrap;
}

.av-naklady .av-naklady-tabulka tfoot th,
.av-naklady .av-naklady-tabulka tfoot td {
    border-top: 1px solid var(--av-okraj);
    border-bottom: 0;
    font-weight: 500;
}

.av-naklady .av-naklady-tqc {
    color: var(--av-text);
}

.av-naklady .av-naklady-buduci td,
.av-naklady .av-naklady-buduci th {
    color: var(--av-text-3);
}

.av-naklady .av-naklady-pole {
    width: 9.5rem;
    height: 30px;
    padding: 0 var(--av-m-2);
    text-align: right;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    font: inherit;
    font-size: var(--av-karta-text);
    color: var(--av-text);
}

.av-naklady .av-naklady-pole:focus {
    outline: none;
    border-color: var(--av-klient);
}

.av-naklady .av-naklady-poznamka {
    margin: var(--av-m-2) var(--av-m-4) var(--av-m-3);
}

.av-graf-tqc .alogic-graf-tqc {
    display: block;
    width: 100%;
    max-width: 760px;
    height: auto;
}

.av-graf-tqc .alogic-graf-tqc-zakaznicke { fill: var(--av-klient); }
.av-graf-tqc .alogic-graf-tqc-interne { fill: var(--av-klient-24); }
.av-graf-tqc .alogic-graf-tqc-dodavatelske { fill: var(--av-text-3); }

.av-graf-tqc .alogic-graf-tqc-minuly {
    fill: none;
    stroke: var(--av-text-2);
    stroke-width: 2;
    stroke-dasharray: 5 4;
}

.av-graf-tqc .alogic-graf-tqc-minuly-bod { fill: var(--av-text-2); }

.av-naklady-znacka-zakaznicke { background: var(--av-klient); }
.av-naklady-znacka-interne { background: var(--av-klient-24); }
.av-naklady-znacka-dodavatelske { background: var(--av-text-3); }

.av-naklady-znacka-minuly {
    width: 14px;
    height: 2px;
    border-radius: 1px;
    background: var(--av-text-2);
}

/* ============================================================ PFMEA a Výrobky v2 (Kvalita – zadanie 2, krok 6, 21. 10. 2026) */
/* Položka PFMEA, ktorá vyžaduje opatrenie (RPN ≥ hranica alebo S ≥ 9): oranžový pásik vľavo a jemné podfarbenie riadku
   tabuľky v karte (tón upozornenia, nie červený – nie je to chyba, iba výzva na opatrenie). */
.av-panel .fi-ta-row.av-pfmea-vyzaduje > td,
.av-ukazka tr.av-pfmea-vyzaduje > td {
    background: var(--av-oranzova-pozadie) !important;
}

.av-panel .fi-ta-row.av-pfmea-vyzaduje > td:first-child,
.av-ukazka tr.av-pfmea-vyzaduje > td:first-child {
    box-shadow: inset 3px 0 0 var(--av-oranzova-text);
}

/* Riadok skupiny (operácia) v ukážke položiek PFMEA – ako hlavička skupiny Filamentu: pomocný text na jemnom podfarbení. */
.av-pfmea-skupina > td {
    font-size: var(--av-pismo-13);
    color: var(--av-text-2);
    background: var(--av-pozadie);
}

/* Pomôcka kritérií S, O, D vedľa poľa v paneli položky PFMEA: tabuľka v tóne v2 (pomocné písmo 13 px, bez tučného písma,
   zvolená hodnota podfarbená farbou klienta). */
body:has(.av-stranka, .av-ukazka) .fi-modal .alogic-kriteria-sod .alogic-tabulka {
    width: 100%;
    font-size: var(--av-pismo-13);
    line-height: var(--av-riadok-13);
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--av-okraj);
    border-radius: 8px;
    overflow: hidden;
}

body:has(.av-stranka, .av-ukazka) .fi-modal .alogic-kriteria-sod .alogic-tabulka th {
    font-weight: 400;
    color: var(--av-text-2);
    background: var(--av-pozadie);
    text-align: left;
}

body:has(.av-stranka, .av-ukazka) .fi-modal .alogic-kriteria-sod .alogic-tabulka td {
    border-top: 1px solid var(--av-oddelovac);
    color: var(--av-text);
}

body:has(.av-stranka, .av-ukazka) .fi-modal .alogic-kriteria-sod .alogic-kriterium-vybrane td {
    background: var(--av-klient-16);
    color: var(--av-text);
}

/* ---------------------------------------------------------------- Firma a Administrácia v2 (22. 10. 2026) */

/* Práva po moduloch (detail používateľa): tabuľka v karte modul × úroveň, v bunke prepínač – zaoblený štvorec (žiadne kruhy),
   zvolená úroveň podfarbená tónom (nevidí sivá, čítanie modrá, úpravy zelená) s fajkou; ostatné jemne sivé. */
.av-prava .av-prava-uroven {
    width: 88px;
    text-align: center;
}

.av-pravo-volba {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 24px;
    border: 0;
    border-radius: var(--av-r-stitok);
    background: var(--av-tlacidlo);
    color: var(--av-text-3);
    cursor: pointer;
}

.av-pravo-volba:not(:disabled):hover {
    background: var(--av-klient-16);
}

/* Zvolená úroveň v tóne (pravidlo tlačidla vyššie by tón prebilo). */
/* „nevidí“: sivá o odtieň tmavšia ako nezvolený prepínač (jemná sivá tlačidla), aby bola zvolená úroveň vidieť aj bez fajky. */
.av-pravo-volba.av-ton-siva { background: var(--av-siva-okraj); color: var(--av-siva-text); }
.av-pravo-volba.av-ton-modra { background: var(--av-modra-pozadie); color: var(--av-modra-text); }
.av-pravo-volba.av-ton-zelena { background: var(--av-zelena-pozadie); color: var(--av-zelena-text); }

.av-pravo-volba:disabled {
    cursor: default;
}

.av-pravo-volba:focus-visible {
    outline: 2px solid var(--av-klient-okraj);
    outline-offset: 1px;
}

/* Karta Vzhľad klienta: logo a pôdorys ako karty súboru pod riadkom Hlavná farba, náhľad farby v karte s odstupom ako riadky. */
.av-klient-subory {
    display: grid;
    gap: var(--av-m-2);
    padding: 0 var(--av-m-4) var(--av-m-3);
}

.av-klient-subory > .av-karta-blok {
    margin: var(--av-m-2) 0 0;
    font-weight: 500;
    color: var(--av-text-2);
}

.av-klient-nahlad {
    padding: var(--av-m-3) var(--av-m-4);
}

/* Upozornenia: história odoslaní a veta v karte s odsadením ako riadky karty; náhľad e-mailu v okne – rámec na celú šírku. */
.av-upozornenia .av-karta-detailu > :is(.av-zbalitelne, .av-upozornenia-veta) {
    margin: 0 var(--av-m-4) var(--av-m-2);
}

/* Môj podpis (ponuka používateľa): náhľad podpisu a veta v karte s odsadením ako riadky karty. */
.av-moj-podpis .av-karta-detailu > :is(.av-moj-podpis-obrazok, .av-moj-podpis-veta) {
    margin: var(--av-m-3) var(--av-m-4);
}

.av-upozornenia-ramec {
    width: 100%;
    min-height: 32rem;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
}

/* ============================================================ Prehľad v2 (22. 10. 2026) */
/* Pod pozdravom rýchle úkony (tlačidlá v2 s ikonou), pod nimi karty v2 „Na riešenie“ a „Najbližšie termíny“. Široká obrazovka:
   karty vedľa seba po spodok okna (v línii s koncom bočného menu), nadpis karty stojí, obsah sa posúva vo vnútri karty
   (prekrývajúci posuvník – alogic.js OBLASTI_V2). Úzka obrazovka: karty pod sebou, posúva sa stránka. */
.av-prehlad {
    gap: var(--av-m-4);
}

.av-prehlad-ukony {
    display: flex;
    flex-wrap: wrap;
    gap: var(--av-m-2);
    flex: none;
}

.av-prehlad-ukon .av-ikona {
    width: var(--av-tlacidlo-ikona);
    height: var(--av-tlacidlo-ikona);
    color: var(--av-klient-text);
}

.av-prehlad-stlpce {
    display: grid;
    gap: var(--av-m-3);
    grid-template-columns: minmax(0, 1fr);
}

.av-prehlad-karta {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.av-prehlad-karta > .av-karta-hlavicka {
    flex: none;
}

.av-prehlad-obsah {
    padding: 0 var(--av-m-4) var(--av-m-1);
}

/* Riadok skupiny a termínu = riadok karty (výška --av-karta-riadok, tenká čiara medzi riadkami, pod posledným nie). */
.av-prehlad-skupina + .av-prehlad-skupina,
.av-prehlad-termin + .av-prehlad-termin,
.av-prehlad-polozka + .av-prehlad-polozka {
    border-top: 1px solid var(--av-oddelovac);
}

.av-prehlad-skupina-hlavicka,
.av-prehlad-termin,
.av-prehlad-polozka {
    display: flex;
    align-items: center;
    gap: var(--av-m-3);
    min-height: var(--av-karta-riadok);
    padding: var(--av-m-1) 0;
    font-size: var(--av-karta-text);
    line-height: var(--av-karta-text-riadok);
    color: var(--av-text);
}

.av-prehlad-skupina-nazov {
    flex: none;
    font-weight: 500;
}

.av-prehlad-oblast {
    color: var(--av-karta-pomocny-farba);
    font-weight: 400;
}

.av-prehlad-pocty {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--av-m-1);
    margin-left: auto;
    min-width: 0;
}

.av-prehlad-datum {
    flex: none;
    width: 6.5rem;
}

/* Dátum termínu farebne podľa naliehavosti (ako termín v riadku zoznamu): po termíne červený, do 30 dní oranžový. */
.av-prehlad-datum.av-text-cervena { color: var(--av-cervena-text); }
.av-prehlad-datum.av-text-oranzova { color: var(--av-oranzova-text); }

.av-prehlad-text {
    display: flex;
    align-items: baseline;
    gap: var(--av-m-2);
    min-width: 0;
    flex: 1 1 auto;
}

.av-prehlad-nazov {
    flex: none;
    max-width: 50%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.av-prehlad-popis {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--av-karta-pomocny);
    color: var(--av-karta-pomocny-farba);
}

.av-prehlad-obsah > .av-prazdny {
    padding: var(--av-m-6) 0;
}

/* Krok 2 – skupina „Na riešenie“ sa rozbalí na položky (hlavička je tlačidlo celej šírky so šípkou). */
button.av-prehlad-skupina-hlavicka {
    width: 100%;
    border: 0;
    background: transparent;
    font-family: var(--av-pismo);
    text-align: left;
    cursor: pointer;
}

button.av-prehlad-skupina-hlavicka:hover {
    background: var(--av-klient-hover-pozadie);
}

.av-prehlad-sipka {
    display: inline-flex;
    flex: none;
    color: var(--av-text-3);
    transition: transform 150ms ease;
}

.av-prehlad-sipka.av-otvorene {
    transform: rotate(90deg);
}

.av-prehlad-polozky {
    padding: 0 0 var(--av-m-2) var(--av-m-6);
}

.av-prehlad-polozka .av-chip,
.av-prehlad-termin .av-chip {
    flex: none;
}

/* Tlačidlo úkonu položky: nenápadné ako „+ Pridať …“ v karte (farba klienta, bez podkladu – pri prejdení 8 %). */
.av-prehlad-ukon-polozky {
    flex: none;
    margin-left: auto;
    height: 28px;
    padding: 0 var(--av-m-2);
    background: transparent;
    color: var(--av-klient-text);
    text-decoration: none;
}

.av-prehlad-ukon-polozky:hover {
    background: var(--av-klient-8);
}

/* Druhý úkon hneď vedľa prvého (Pridať prehliadku · Lekársky posudok – 24. 10. 2026). */
.av-prehlad-ukon-polozky + .av-prehlad-ukon-polozky {
    margin-left: calc(-1 * var(--av-m-2));
}

.av-prehlad-vsetky {
    margin: var(--av-m-1) auto 0;
    border: 0;
    background: transparent;
    color: var(--av-klient-text);
    font-family: var(--av-pismo);
    font-size: var(--av-karta-pomocny);
    cursor: pointer;
}

/* Uložené pohľady (Prehľad v2, krok 4): ďalšie záložky za stavovými v rovnakej skupine záložiek; pri každom šípka s ponukou
   (Premenovať, Nastaviť ako predvolený, Zmazať). Predvolený má hviezdičku, zdieľaný (pre všetkých) ikonu ľudí. */
/* Ponuka pohľadu presahuje skupinu – skupina pohľadov sa neposúva do strany (inak by ponuku orezala). */
.av-stavy.av-pohlady {
    overflow: visible;
}

.av-pohlad {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.av-pohlad > .av-stav-zalozka {
    padding-right: var(--av-m-1);
}

.av-pohlad-ponuka {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 24px;
    border: 0;
    border-radius: var(--av-r-stitok);
    background: transparent;
    color: var(--av-text-3);
    cursor: pointer;
}

.av-pohlad-ponuka:hover {
    background: var(--av-tlacidlo-hover);
    color: var(--av-text);
}

.av-pohlad > .av-rozbalovacia-panel {
    top: calc(100% + var(--av-m-1));
    right: 0;
}

/* Ctrl+K v2 (Prehľad v2, krok 3 – App\Livewire\HladanieV2): výsledky so zaoblenou ikonou v2, názov a pomocný popis. */
.av-hladanie-vysledky {
    max-height: min(70vh, 36rem);
    overflow-y: auto;
}

.av-hladanie-vysledok {
    display: flex !important;
    align-items: center;
    gap: var(--av-m-3);
}

.av-hladanie-ikona {
    display: inline-flex;
    flex: none;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: var(--av-r-ovladac);
    background: var(--av-klient-8);
    color: var(--av-klient-text);
}

.av-hladanie-texty {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.av-hladanie-texty > * {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.av-hladanie-popis {
    font-size: var(--av-pismo-12);
    color: var(--av-text-3);
}

.av-hladanie-skratka {
    font-size: var(--av-pismo-11);
    color: var(--av-text-3);
}

.av-hladanie-pole .av-ikona-sm {
    color: var(--av-text-3);
}

/* Pole Hľadať (Ctrl+K) v hlavičke (24. 10. 2026): šírka najmenej 320 px; zástupný text sa strieda prelínaním (alogic-v2.js),
   pri prefers-reduced-motion bez animácie; na úzkej obrazovke iba ikona – po zameraní sa pole roztiahne. */
.av-hladanie .fi-global-search-field {
    min-width: 320px;
}

#av-hladanie-pole::placeholder {
    transition: opacity 0.25s ease;
}

#av-hladanie-pole.av-hladat-prelinanie::placeholder {
    opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
    #av-hladanie-pole::placeholder {
        transition: none;
    }
}

@media (max-width: 639px) {
    .av-hladanie .fi-global-search-field {
        min-width: 0;
        width: 2.5rem;
        transition: width 0.2s ease;
    }

    .av-hladanie .fi-global-search-field:focus-within {
        width: min(320px, calc(100vw - 6rem));
    }

    .av-hladanie .fi-global-search-field:not(:focus-within) :is(#av-hladanie-pole, .av-hladanie-skratka) {
        opacity: 0;
    }
}

/* Ponuka výberu (24. 10. 2026): kreslí sa nad všetkým (pevné pozicionovanie – alogic-v2.js), až do 50 % výšky okna, najmenej
   12 riadkov (24rem), ak je miesto; hľadanie hore, zoznam sa posúva. */
.fi-select-input .fi-dropdown-panel {
    max-height: min(max(50vh, 24rem), calc(100vh - 2rem)) !important;
    z-index: 60;
}

/* Nič na riešenie: zelená fajka. */
.av-prehlad-nic .av-prazdny-ikona {
    background: var(--av-zelena-pozadie);
    color: var(--av-zelena-text);
}

@media (min-width: 1024px) {
    .fi-main > .fi-page:has(.av-prehlad) > .fi-page-header-main-ctn > .fi-page-main > .fi-page-content {
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .fi-page-content:has(> .av-prehlad) > :not(.av-prehlad) {
        flex: none;
    }

    .av-prehlad-stlpce {
        flex: 1 1 auto;
        min-height: 0;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        grid-template-rows: minmax(0, 1fr);
    }

    .av-prehlad-stlpce > .av-prehlad-karta {
        align-self: stretch;
        min-height: 0;
        overflow: hidden;
    }

    .av-prehlad-karta > .av-prehlad-obsah {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
    }
}

/* ============================================================ Obchod v2 (23. 10. 2026) */
/* Hodnotenie hviezdičkami (ako šablóny AppSheetu ★★★★☆): plné vo farbe klienta, prázdne sivé; veľkosť ako text okolo. */
.av-hviezdicky {
    white-space: nowrap;
    letter-spacing: 0.04em;
}

.av-hviezdy-plne {
    color: var(--av-klient);
}

.av-hviezdy-prazdne {
    color: var(--av-okraj);
}

.av-hviezdicky-prazdne {
    color: var(--av-text-3);
}

/* Pole hodnotenia (formulár, hodnotenie za rok priamo v riadku): päť tlačidiel bez podkladu, zvolené a pri prejdení myšou
   vo farbe klienta, zameranie obrysom farby klienta; za nimi „4 z 5“ pomocným textom. */
.av-hviezdicky-pole {
    display: inline-flex;
    align-items: center;
    gap: var(--av-m-1);
}

.av-hviezdicky-pole .av-hviezda {
    border: 0;
    background: transparent;
    padding: 0 2px;
    line-height: 1;
    font-size: 1.25em;
    color: var(--av-okraj);
    cursor: pointer;
    border-radius: var(--av-r-stitok);
}

.av-hviezdicky-pole .av-hviezda.av-hviezda-plna {
    color: var(--av-klient);
}

.av-hviezdicky-pole .av-hviezda:focus-visible {
    outline: 2px solid var(--av-klient-okraj);
    outline-offset: 1px;
}

.av-hviezdicky-pole .av-hviezda:disabled {
    cursor: default;
}

.av-hviezdicky-text {
    margin-left: var(--av-m-1);
    color: var(--av-text-3);
}

/* Potreba materiálu zákazky: čísla vpravo; čo sa nedá rozvinúť, je nad tabuľkou oranžovým pomocným textom s ikonou
   (odsadenie ako riadky karty). */
.av-tabulka-potreby .av-cislo {
    text-align: right;
}

.av-potreba-neuplne {
    margin: 0;
    padding: var(--av-m-2) var(--av-m-4) 0;
    list-style: none;
    color: var(--av-oranzova-text);
}

.av-potreba-neuplne li {
    display: flex;
    align-items: flex-start;
    gap: var(--av-m-2);
    padding: var(--av-m-1) 0;
}

/* Strom kusovníka (záložka Kusovník výrobku): riadok vysoký ako riadok karty, tenká čiara medzi riadkami, úrovne odsadené
   o 24 px (--av-uroven z riadku), šípka rozbalenia sa pri otvorení otočí; štítok typu, názov, vpravo množstvo a „⋯“. */
.av-strom,
.av-strom-deti {
    margin: 0;
    padding: 0;
    list-style: none;
}

.av-strom {
    padding: 0 var(--av-m-4) var(--av-m-1);
}

.av-strom-riadok {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    min-height: var(--av-karta-riadok);
    padding-left: calc(var(--av-uroven, 0) * var(--av-m-6));
    border-top: 1px solid var(--av-okraj-jemny);
}

.av-strom > .av-strom-uzol:first-child > .av-strom-riadok {
    border-top: 0;
}

.av-strom-sipka {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--av-text-3);
    border-radius: var(--av-r-stitok);
    cursor: pointer;
    transition: transform 0.15s ease;
}

.av-strom-sipka.av-otvorene {
    transform: rotate(90deg);
}

.av-strom-sipka:hover {
    background: var(--av-hover);
}

.av-strom-bez-sipky {
    cursor: default;
}

.av-strom-nazov {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.av-strom-upozornenie {
    color: var(--av-oranzova-text);
}

.av-strom-mnozstvo {
    flex: 0 0 auto;
    color: var(--av-text-2);
    white-space: nowrap;
}

/* Hodnotenie za rok priamo v riadku (Dodávatelia ▾ Hodnotenie za rok, Zákazníci ▾ Spokojnosť za rok): súhrn pásiem ako štítky
   s počtom; v riadku SMK ako dve malé voľby (zvolená vo farbe klienta), hviezdičky, poznámka, Uložiť (neaktívne bez zmeny);
   partner, od ktorého sa hodnotenie nevyžaduje, je bledší. */
.av-hodnotenie-suhrn {
    display: flex;
    flex-wrap: wrap;
    gap: var(--av-m-3);
    padding: var(--av-m-2) var(--av-m-4) var(--av-m-3);
}

.av-hodnotenie-suhrn-polozka {
    display: inline-flex;
    align-items: center;
    gap: var(--av-m-1);
}

.av-tabulka-hodnotenia td {
    white-space: nowrap;
    vertical-align: middle;
}

.av-tabulka-hodnotenia td .av-pomocny-text {
    display: block;
}

.av-tabulka-hodnotenia tr.av-hodnotenie-nevyzaduje td {
    color: var(--av-text-3);
}

.av-smk {
    display: inline-flex;
    gap: 2px;
    padding: 2px;
    background: var(--av-tlacidlo);
    border-radius: var(--av-r-ovladac);
}

.av-smk-volba {
    border: 0;
    background: transparent;
    padding: 2px var(--av-m-2);
    border-radius: var(--av-r-stitok);
    color: var(--av-text-2);
    cursor: pointer;
}

.av-smk-volba.av-zvolene {
    background: var(--av-klient-16);
    color: var(--av-klient-text);
}

.av-hodnotenie-poznamka {
    width: 14rem;
    height: 30px;
    padding: 0 var(--av-m-2);
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    font: inherit;
    font-size: var(--av-karta-text);
    color: var(--av-text);
}

.av-hodnotenie-poznamka:focus {
    outline: none;
    border-color: var(--av-klient);
}

.av-hodnotenie-ulozit:disabled {
    opacity: 0.45;
    cursor: default;
}

.av-strom-ponuka {
    flex: 0 0 auto;
    width: 32px;
    display: inline-flex;
    justify-content: flex-end;
}

/* ============================================================ Deklarácie v2 (23. 10. 2026) */

/* Matica tém (Stav materiálov, záložka Deklarácie položky katalógu, Ukážka): tabuľka v karte, prvý stĺpec (položka / dodávateľ)
   stojí pri posúvaní do strany, štítky v bunkách v jednom riadku, riadky dodávateľov odsadené o úroveň (--av-uroven) na jemnom
   sivom podklade; riadok s problémom požadovanej témy má pás farby problému vľavo. */
.av-matica-tem {
    overflow-x: auto;
}

.av-matica {
    min-width: 100%;
}

.av-matica th,
.av-matica td {
    white-space: nowrap;
}

.av-matica .av-matica-polozka {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--av-povrch);
    min-width: 240px;
    max-width: 360px;
}

.av-matica-nazov {
    display: inline-flex;
    align-items: center;
    gap: var(--av-m-2);
    padding-left: calc(var(--av-uroven, 0) * var(--av-m-6));
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.av-matica-dodavatel td {
    background: var(--av-pozadie);
}

.av-matica-problem > tr:first-child > .av-matica-polozka {
    box-shadow: inset 3px 0 0 var(--av-cervena-okraj);
}

.av-matica-vyber {
    width: 16px;
    height: 16px;
    accent-color: var(--av-klient);
}

/* Pás filtrov a výberu na stránke Stav materiálov – ovládače v2 v jednom riadku (zalomia sa na úzkej obrazovke). */
.av-stav-materialov-filtre {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--av-m-2);
    padding: var(--av-m-3) var(--av-m-4);
}

.av-stav-materialov-filtre select {
    height: var(--av-tlacidlo-vyska);
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    font-size: var(--av-tlacidlo-pismo);
    padding: 0 var(--av-m-6) 0 var(--av-m-3);
}

.av-stav-materialov-vyber {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    padding: var(--av-m-2) var(--av-m-4);
    background: var(--av-klient-8);
    border-radius: var(--av-r-ovladac);
    margin: 0 var(--av-m-4) var(--av-m-2);
}

.av-bunka-textu {
    display: inline-flex;
    align-items: center;
    gap: var(--av-m-2);
    white-space: normal;
}

/* ============================================================ Deklarácie – zákaznícka strana v2 (zadanie 3, 23. 10. 2026) */

/* Strom pokrytia (StromPokrytia – rovnaká tabuľka ako MaticaTem): vyrábaná podzostava / diel iba zoskupuje (sivý text), riadok
   s chýbajúcim podkladom blokujúcej témy má vľavo pás farby problému. */
.av-strom-pokrytia-skupina td {
    color: var(--av-text-2);
    background: var(--av-pozadie);
}

.av-strom-pokrytia-problem > .av-matica-polozka {
    box-shadow: inset 3px 0 0 var(--av-cervena-okraj);
}

/* Výsledky tém (záložka Výsledky deklarácie pre zákazníka): téma = nadpis časti so štítkom vpravo, pod ním text ako v PDF
   a zoznam (látky, výnimky, materiály); témy oddelené tenkou čiarou. */
.av-vysledky-tem {
    padding: 0 var(--av-m-4) var(--av-m-2);
}

.av-vysledok-temy {
    padding: var(--av-m-3) 0;
    border-top: 1px solid var(--av-okraj-jemny);
}

.av-vysledok-temy:first-child {
    border-top: 0;
}

.av-vysledok-hlavicka {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--av-m-3);
    margin-bottom: var(--av-m-1);
}

.av-vysledok-nadpis {
    font-weight: 500;
}

.av-vysledok-text {
    margin: var(--av-m-1) 0 0;
    color: var(--av-text-2);
    max-width: 72rem;
}

.av-vysledok-zoznam {
    margin: var(--av-m-1) 0 0;
    padding-left: var(--av-m-6);
    list-style: disc;
}

/* Porovnanie pri znovuvydaní (PorovnanieVydani): dôvody oranžovo, tabuľka tém pred → teraz (teraz oranžovo), zoznamy položiek
   a podkladov; bez zmeny zelená veta. Odpoveď na požiadavku má rovnaký vzhľad. */
.av-porovnanie {
    padding-bottom: var(--av-m-2);
}

.av-porovnanie-po {
    color: var(--av-oranzova-text);
}

.av-porovnanie-pred {
    color: var(--av-text-2);
}

.av-porovnanie-bez-zmeny {
    display: flex;
    align-items: center;
    gap: var(--av-m-2);
    margin: 0;
    padding: var(--av-m-3) var(--av-m-4);
    color: var(--av-zelena-text);
}

.av-porovnanie-zoznam {
    padding: var(--av-m-2) var(--av-m-4) 0;
}

/* Odpoveď na požiadavku zákazníka (OdpovedPoziadavky): tabuľka tém so štítkom odpovede, pod ňou text e-mailu na jemnom podklade. */
.av-odpoved-email {
    margin: var(--av-m-3) var(--av-m-4) var(--av-m-3);
    padding: var(--av-m-3);
    background: var(--av-pozadie);
    border-radius: var(--av-r-ovladac);
    font: inherit;
    font-size: var(--av-karta-text);
    color: var(--av-text-2);
    white-space: pre-wrap;
}

/* ============================================================ Financie v2 (23. 10. 2026) */

/* Graf prognózy zostatku (App\Support\GrafPrognozy): SVG na celú šírku karty, pásik dňa pri prechode myšou jemne podfarbený. */
.av-graf .av-graf-prognozy {
    display: block;
    width: 100%;
    height: auto;
}

.av-graf-prognozy .av-graf-den:hover {
    fill: var(--av-klient-8);
}

.av-graf-legenda i {
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-right: var(--av-m-1);
    border-radius: 3px;
    vertical-align: -1px;
}

.av-graf-prazdny {
    margin: var(--av-m-3) var(--av-m-4);
    color: var(--av-text-3);
    font-size: var(--av-karta-pomocny);
}

/* Prehľad financií: karty účtov vedľa seba (najviac dve), odkaz pod riadkami karty, záporné saldo červenou, aktuálny mesiac zvýraznený. */
/* Karty účtov na Prehľade financií (Peter 28. 10. 2026): rovnaké okraje ako karty nad a pod nimi (bez bočného odsadenia mriežky
   detailu); jediný účet na celú šírku, viac účtov po dvoch vedľa seba. */
.av-financie-prehlad .av-financie-ucty {
    padding: 0 !important;
}

.av-financie-prehlad .av-financie-ucty > :only-child {
    grid-column: 1 / -1;
}

.av-financie-odkaz {
    padding: var(--av-m-2) var(--av-m-4) var(--av-m-3);
    font-size: var(--av-karta-pomocny);
}

.av-financie-zaporne {
    color: var(--av-cervena-text);
}

.av-financie-aktualny > td {
    background: var(--av-klient-8);
}

/* Pohyby: súčet príjmov, výdavkov a salda za zoznam – riadok nad pásom nástrojov. */
.av-financie-suhrn {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--av-m-2) var(--av-m-6);
    padding: 0 0 var(--av-m-3);
    font-size: var(--av-karta-text);
    color: var(--av-text-2);
}

.av-financie-suhrn-polozka {
    display: inline-flex;
    gap: var(--av-m-2);
    align-items: baseline;
}

.av-financie-suhrn-polozka strong {
    font-weight: 500;
    color: var(--av-text);
}

.av-financie-suhrn-pocet {
    color: var(--av-text-3);
    font-size: var(--av-karta-pomocny);
}

/* Prijaté faktúry: veľká plocha na pretiahnutie PDF nad zoznamom – jemne podfarbená farbou klienta, bez čiarkovaného okraja (dizajn v2). */
.av-plocha-faktur {
    display: flex;
    align-items: center;
    gap: var(--av-m-4);
    margin: 0 0 var(--av-m-3);
    padding: var(--av-m-6);
    background: var(--av-klient-8);
    border: 1px solid var(--av-klient-16);
    border-radius: var(--av-r-karta);
    cursor: pointer;
    transition: background-color 120ms ease, border-color 120ms ease;
}

.av-plocha-faktur:hover,
.av-plocha-faktur:focus-visible,
.av-plocha-faktur.av-plocha-nad {
    background: var(--av-klient-16);
    border-color: var(--av-klient-okraj);
    outline: none;
}

.av-plocha-ikona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch, #fff);
    color: var(--av-klient-text);
}

.av-plocha-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: var(--av-karta-text);
}

.av-plocha-text strong {
    font-weight: 500;
    color: var(--av-text);
}

.av-plocha-text > span {
    color: var(--av-text-3);
    font-size: var(--av-karta-pomocny);
}

/* Náhľad faktúry (PDF / obrázok) vo formulári vedľa polí a v karte detailu. */
.av-nahlad-faktury {
    display: block;
    width: 100%;
    min-height: 640px;
    border: 1px solid var(--av-oddelovac);
    border-radius: var(--av-r-karta);
    background: var(--av-pozadie);
}

.av-nahlad-faktury-obrazok {
    min-height: 0;
    height: auto;
    object-fit: contain;
}

.av-karta-detailu .av-nahlad-faktury {
    width: auto;
    margin: var(--av-m-2) var(--av-m-4) var(--av-m-4);
}

.av-nahlad-faktury-formular {
    position: sticky;
    top: 0;
}

.av-nahlad-faktury-prazdny {
    margin: var(--av-m-3) var(--av-m-4);
    color: var(--av-text-3);
    font-size: var(--av-karta-pomocny);
}

/* ============================================================ Tlačivo (24. 10. 2026 – vzor pre ďalšie tlačivá)
   Interaktívne tlačivo v paneli (x-v2.tlacivo, x-v2.tlacivo-cast, x-v2.tlacivo-stvorcek, x-v2.tlacivo-ciara): biely hárok
   s rozložením ako PDF – čierne tenké rámčeky častí, písmo tlačiva (Arial ako PDF), štvorček s X, text priamo na čiarke.
   Neaktívna časť (vyplní lekár / zamestnanec) je sivá. Hárok má pomer strán A4 so širšou šírkou (880 px – názvy faktorov sa
   nezalamujú), na užšom paneli sa posúva do strany. */
.av-tlacivo-obal {
    overflow-x: auto;
    padding: var(--av-m-2) 0;
}

.av-tlacivo {
    position: relative;
    width: 880px;
    margin: 0 auto;
    padding: 28px 24px 24px;
    background: #fff;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-karta);
    box-shadow: var(--av-tien-1);
    font-family: Arial, 'Liberation Sans', var(--av-pismo);
    font-size: 11px;
    line-height: 1.35;
    color: #000;
}

.av-tl-vpravo-hore {
    text-align: right;
    font-size: 12px;
}

.av-tl-nadpis {
    margin: 6px 0 8px;
    text-align: center;
    font-size: 16px;
    font-weight: 700;
}

.av-tl-cast {
    border: 1px solid #000;
    padding: 4px 8px 6px;
}

.av-tl-cast + .av-tl-cast {
    border-top: 0;
}

.av-tl-hlavicka-casti {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    min-height: 16px;
    margin-bottom: 4px;
}

.av-tl-titul-casti {
    font-weight: 700;
    font-size: 12px;
}

.av-tl-stitok {
    border: 1px solid #000;
    background: #e6e6e6;
    padding: 1px 10px;
    font-size: 10px;
    font-weight: 700;
}

/* Údaje zamestnanca a zamestnávateľa: popis vpravo zarovnaný, hodnota na čiarke. */
.av-tl-udaje {
    display: grid;
    grid-template-columns: 250px 1fr;
    column-gap: 6px;
    row-gap: 4px;
    align-items: end;
}

.av-tl-popis {
    font-weight: 700;
    font-size: 10px;
    text-align: right;
    white-space: nowrap;
}

.av-tl-dvojica {
    display: flex;
    align-items: flex-end;
    gap: 6px;
}

.av-tl-dvojica > .av-tl-ciara {
    flex: 1 1 0;
}

/* Čiarka: text priamo na čiare, bez rámčeka. */
.av-tl-ciara {
    display: inline-block;
    min-width: 2em;
    height: 18px;
    padding: 0 2px;
    border: 0;
    border-bottom: 1px solid #000;
    border-radius: 0;
    background: transparent;
    font: inherit;
    font-size: 12px;
    color: #000;
    vertical-align: bottom;
}

.av-tl-udaje > .av-tl-ciara {
    width: 100%;
}

input.av-tl-ciara {
    outline: none;
}

input.av-tl-ciara:focus-visible {
    background: var(--av-klient-8);
    border-bottom-color: var(--av-klient);
}

.av-tl-ciara-citanie {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.av-tl-ciara-stred {
    text-align: center;
}

.av-tl-ciara-dlha {
    width: 14em;
}

/* Riziková / neriziková: prepínač klikom, nehodiaca sa prečiarknutá. */
.av-tl-rizikovost {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    font-size: 10px;
    line-height: 1.2;
}

.av-tl-prepinac {
    padding: 0 3px;
    border: 0;
    border-radius: 3px;
    background: transparent;
    font: inherit;
    color: #000;
    cursor: pointer;
}

.av-tl-prepinac:hover,
.av-tl-prepinac:focus-visible {
    background: var(--av-klient-8);
    outline: none;
}

.av-tl-preciarknute {
    text-decoration: line-through;
    color: var(--av-text-3);
}

.av-tl-zvolene {
    font-weight: 700;
}

/* Štvorček: natívne políčko (Tab, medzerník) vo vzhľade štvorčeka tlačiva, zaškrtnuté = zreteľné X. */
.av-tl-box {
    appearance: none;
    -webkit-appearance: none;
    display: inline-grid;
    place-content: center;
    flex: none;
    width: 16px;
    height: 16px;
    margin: 0;
    border: 1px solid #000;
    border-radius: 0;
    background: #fff;
    cursor: pointer;
}

.av-tl-box::after {
    content: '';
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    color: #000;
}

.av-tl-box:checked::after {
    content: 'X';
}

.av-tl-box:hover,
.av-tl-box:focus-visible {
    outline: 2px solid var(--av-klient-okraj);
    outline-offset: 1px;
}

.av-tl-box-prazdny {
    cursor: default;
}

.av-tl-zoznam {
    display: grid;
}

.av-tl-riadok {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 18px;
    cursor: pointer;
}

/* Mriežky faktorov (4 stĺpce: štvorček, názov, čiarka s kategóriou) a druhov prác (3 stĺpce) – po stĺpcoch ako v PDF. */
.av-tl-mriezka {
    display: grid;
    column-gap: 10px;
    row-gap: 2px;
}

.av-tl-mriezka-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.av-tl-mriezka-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.av-tl-bunka {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 6px;
    min-height: 18px;
}

.av-tl-mriezka-3 .av-tl-bunka {
    grid-template-columns: 16px minmax(0, 1fr);
}

.av-tl-siroka {
    grid-column: span 2;
}

.av-tl-bunka label {
    cursor: pointer;
}

.av-tl-kat {
    width: 2.2em;
    min-width: 0;
}

.av-tl-druh {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    min-width: 0;
}

.av-tl-druh > input.av-tl-ciara:not([style]) {
    flex: 1 1 0;
}

/* Neaktívne časti (vyplní lekár, zamestnanec): sivé, bez ovládačov. */
.av-tl-neaktivna {
    background: var(--av-pozadie);
    color: var(--av-text-3);
}

.av-tl-neaktivna .av-tl-stitok {
    color: var(--av-text-3);
}

.av-tl-neaktivna .av-tl-ciara {
    border-bottom-color: var(--av-text-3);
}

.av-tl-zaver {
    display: grid;
    row-gap: 4px;
    font-style: italic;
}

.av-tl-datum-lp {
    margin-top: 6px;
    font-style: normal;
}

.av-tl-male {
    margin: 0 0 4px;
    font-size: 10px;
    font-style: normal;
}

.av-tl-vpravo {
    text-align: right;
}

/* Tlačivo záznamu o zaškolení (24. 10. 2026): údaje zamestnanca, školiteľ (výber na čiarke), dátum, rozsah a výsledok
   štvorčekmi vedľa seba, stroje po typoch (konkrétne kusy 1a) a v dvoch stĺpcoch (typy 1b, OOPP), pri stroji malý štvorček
   „oboznámený s návodom na obsluhu“ a odkaz na návod. */
.av-tl-podnadpis {
    margin: -4px 0 8px;
    text-align: center;
    font-size: 12px;
}

.av-tl-vyber,
.av-tl-datum {
    max-width: 22em;
    cursor: pointer;
}

.av-tl-vodorovne {
    display: flex;
    flex-wrap: wrap;
    column-gap: 18px;
    row-gap: 2px;
}

.av-tl-vysledok {
    justify-content: center;
    margin: 6px 0 2px;
}

.av-tl-odsek {
    margin: 4px 0;
    text-align: justify;
}

/* Kompaktné tlačivo pre tablet (úpravy po teste Petra 24. 10. 2026): hárok na šírku panela, údaje v pásikoch, položky ako
   dlaždice (3 stĺpce, 2 pod 1024 px, 1 na mobile), už zaškolené sivé s dátumom; text povinností zbalený. */
/* Pružné tlačivo (panel, pracovisko) má rovnakú šírku ako časť Podpisy pod ním (Peter 28. 10. 2026) – bez obmedzenia 1000 px. */
.av-tlacivo-pruzne .av-tlacivo {
    width: 100%;
    max-width: none;
    padding: 14px 16px 12px;
}

.av-tl-pasik {
    display: flex;
    flex-wrap: wrap;
    column-gap: 20px;
    row-gap: 4px;
    align-items: center;
}

.av-tl-pasik .av-tl-popis {
    font-weight: 400;
    color: var(--av-text-2);
}

/* Pole s menom (Zaškolenie vykonal) a pole so zaškrtávaním (Rozsah) rovnako široké (pozorovanie Petra 28. 10. 2026). */
.av-tl-pasik-polia {
    margin-top: 6px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.av-tl-pasik-polia .av-tl-pole .av-tl-vyber {
    flex: 1 1 auto;
    max-width: none;
}

@media (max-width: 767px) {
    .av-tl-pasik-polia {
        grid-template-columns: minmax(0, 1fr);
    }
}

.av-tl-pole {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.av-tl-pole .av-tl-vyber {
    min-width: 14em;
}

.av-tl-dlazdice {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px 8px;
}

@media (max-width: 1023px) {
    .av-tl-dlazdice {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 639px) {
    .av-tl-dlazdice {
        grid-template-columns: minmax(0, 1fr);
    }
}

.av-tl-dlazdica {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 3px 6px;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-stitok);
    min-width: 0;
}

.av-tl-dlazdica-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
    line-height: 1.2;
    cursor: pointer;
}

.av-tl-dlazdica-text small {
    font-size: 9px;
    color: var(--av-text-2);
}

.av-tl-zaskolene {
    background: var(--av-pozadie);
    color: var(--av-text-3);
}

.av-tl-zaskolene .av-tl-dlazdica-text {
    cursor: default;
}

.av-tl-box-zaskolene {
    border-color: var(--av-text-3);
    background: transparent;
    cursor: default;
}

.av-tl-text > summary {
    cursor: pointer;
    color: var(--av-text-2);
}

.av-tl-vyhlasenie {
    margin-top: 6px;
}

/* Karta „Zaškolenie“ v detaile zamestnanca (24. 10. 2026): požadované vs. zaškolený; chýbajúce oranžové (upozornenie). */
.av-zaskolenie-tabulka {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--av-pismo-13);
}

.av-zaskolenie-tabulka th {
    text-align: left;
    font-weight: 400;
    color: var(--av-text-2);
    padding: 4px 6px;
    border-bottom: 1px solid var(--av-okraj);
}

.av-zaskolenie-tabulka td {
    padding: 4px 6px;
    border-bottom: 1px solid var(--av-okraj);
}

.av-zaskolenie-chyba td {
    background: var(--av-oranzova-pozadie);
    color: var(--av-oranzova-text);
}

.av-zaskolenie-suhrn {
    margin: 0 0 6px;
    color: var(--av-oranzova-text);
}

.av-zaskolenie-prazdne {
    margin: 0;
    color: var(--av-text-2);
}

.av-tl-navod {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: auto;
    font-size: 9px;
    color: var(--av-text-2);
    white-space: nowrap;
}

.av-tl-navod .av-tl-box {
    width: 12px;
    height: 12px;
}

.av-tl-navod .av-tl-box::after {
    font-size: 10px;
}

.av-tl-odkaz {
    font-size: 9px;
    color: var(--av-klient);
    text-decoration: underline;
}


/* ------------------------------------------------------------------ Dielňa (Náradie, 24. 10. 2026)
   Celoobrazovková stránka pre tablet: veľké písmo a tlačidlá (cieľ dotyku aspoň 48 px), jedna karta na kroky, pole Sken hore.
   Iba tokeny dizajnového systému; zaoblené štvorce, žiadne kruhy; červená iba pre chyby. */
.av-dielna {
    min-height: 100vh;
    padding: 16px;
    background: var(--av-pozadie);
    font-family: var(--av-pismo);
    color: var(--av-text);
    display: grid;
    gap: 16px;
    align-content: start;
    max-width: 1100px;
    margin: 0 auto;
}

.av-dielna-hlavicka,
.av-dielna-riadok {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.av-dielna-nazov {
    font-size: 28px;
    font-weight: 600;
    display: block;
}

.av-dielna-podnazov {
    font-size: var(--av-pismo-14);
    color: var(--av-text-2);
}

.av-dielna-sken {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.av-dielna-pole,
.av-dielna-stav,
.av-dielna-cislo,
.av-dielna-datum {
    font-size: 20px;
    min-height: 56px;
    padding: 8px 14px;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    color: var(--av-text);
}

.av-dielna-sken .av-dielna-pole {
    flex: 1 1 320px;
}

.av-dielna-pole:focus,
.av-dielna-stav:focus,
.av-dielna-cislo:focus,
.av-dielna-datum:focus {
    outline: none;
    border-color: var(--av-klient);
    box-shadow: 0 0 0 3px var(--av-klient-16);
}

.av-dielna-cislo {
    width: 96px;
}

.av-dielna-tlacidlo,
.av-dielna-spat,
.av-dielna-odobrat {
    min-height: 56px;
    padding: 8px 18px;
    font-size: 18px;
}

.av-dielna-video {
    width: 100%;
    max-height: 320px;
    border-radius: var(--av-r-karta);
    background: #000;
}

.av-dielna-chyba,
.av-dielna-hlaska {
    font-size: 18px;
    padding: 12px 16px;
    border-radius: var(--av-r-karta);
    border: 1px solid;
}

.av-dielna-chyba {
    background: var(--av-cervena-pozadie);
    color: var(--av-cervena-text);
    border-color: var(--av-cervena-okraj);
}

.av-dielna-hlaska {
    background: var(--av-zelena-pozadie);
    color: var(--av-zelena-text);
    border-color: var(--av-zelena-okraj);
}

.av-dielna-karta {
    background: var(--av-povrch);
    border: 1px solid var(--av-oddelovac);
    border-radius: var(--av-r-karta);
    padding: 20px;
    display: grid;
    gap: 14px;
}

.av-dielna-krok {
    font-size: 24px;
    font-weight: 600;
}

.av-dielna-podnadpis {
    font-size: 18px;
    font-weight: 600;
    color: var(--av-nadpis-farba);
    margin-top: 6px;
}

.av-dielna-odisiel {
    font-size: var(--av-pismo-14);
    font-weight: 400;
    color: var(--av-cervena-text);
    margin-left: 8px;
}

.av-dielna-mriezka {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px;
}

.av-dielna-volba {
    min-height: 64px;
    padding: 10px 14px;
    font-size: 18px;
    text-align: left;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
    color: var(--av-text);
}

.av-dielna-volba:hover,
.av-dielna-volba:focus-visible {
    border-color: var(--av-klient);
    background: var(--av-klient-8);
    outline: none;
}

.av-dielna-prepinac {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

.av-dielna-prepinac-maly {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.av-dielna-rezim {
    min-height: 64px;
    font-size: 22px;
    font-weight: 600;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
    color: var(--av-text-2);
}

.av-dielna-prepinac-maly .av-dielna-rezim {
    min-height: 52px;
    font-size: 18px;
}

.av-dielna-rezim[aria-selected="true"] {
    background: var(--av-klient-16);
    border-color: var(--av-klient);
    color: var(--av-klient-text);
}

.av-dielna-rezim[disabled] {
    opacity: .45;
}

.av-dielna-polozka {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px 0;
    border-bottom: 1px solid var(--av-oddelovac);
    font-size: 18px;
}

.av-dielna-polozka-nazov,
.av-dielna-odskrtnut {
    flex: 1 1 260px;
}

.av-dielna-odskrtnut input,
.av-dielna-maly input[type="checkbox"] {
    width: 28px;
    height: 28px;
    vertical-align: middle;
    margin-right: 8px;
    accent-color: var(--av-klient);
}

.av-dielna-maly {
    font-size: 16px;
    color: var(--av-text-2);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.av-dielna-prazdne {
    font-size: 16px;
    color: var(--av-text-3);
}

.av-dielna-vyber {
    display: grid;
    gap: 10px;
}

.av-dielna-podpis {
    display: grid;
    gap: 8px;
}

.av-dielna-platno {
    width: 100%;
    height: 220px;
    touch-action: none;
    background: #fff;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-karta);
}

.av-dielna-hotovo {
    min-height: 72px;
    font-size: 24px;
    font-weight: 600;
    width: 100%;
}

.av-dielna-uspech .av-dielna-krok {
    color: var(--av-zelena-text);
}

.av-dielna-zoznam {
    font-size: 18px;
    display: grid;
    gap: 6px;
}

/* Polia Hľadať v celej aplikácii (24. 10. 2026, schválil Peter): text nelepí na okraj ani na ikonu – s ikonou ikona + medzera 8 px,
   bez ikony najmenej 12 px (aj pole Hľadať v hlavičke s prelínaným zástupným textom). Test OdsadenieHladaniaTest. */
:where(input[type="search"]:not(.fi-input)) {
    padding-inline-start: 12px;
}

.av-hladat input {
    padding-left: 34px;
}

/* Filament pole s ikonou na začiatku: medzeru 8 px dáva ikona (pe-2); keď ikona nie je zobrazená, text aspoň 12 px od okraja. */
.fi-input-wrp-prefix.fi-inline:not(.fi-input-wrp-prefix-has-content) ~ .fi-input-wrp-content-ctn .fi-input.fi-input-has-inline-prefix {
    padding-inline-start: 12px;
}

/* „+ Pridať ďalšie“ – prehliadač po úrovniach (24. 10. 2026): záložky, dlaždice typov s počtom kusov, rozbalenie na kusy; dotykové
   plochy najmenej 44 px. */
.av-prehliadac {
    display: flex;
    flex-direction: column;
    gap: var(--av-m-2);
}

.av-prehliadac-hladat {
    width: 100%;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    font-family: var(--av-pismo);
    font-size: var(--av-pismo-14);
    color: var(--av-text);
    outline: none;
}

.av-prehliadac-hladat:focus {
    box-shadow: 0 0 0 2px var(--av-klient-okraj);
}

.av-prehliadac-zalozky {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--av-okraj);
}

.av-prehliadac-zalozka {
    min-height: 44px;
    padding: 0 16px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: none;
    font-size: var(--av-pismo-14);
    color: var(--av-text-2);
    cursor: pointer;
}

.av-prehliadac-zalozka.av-aktivna {
    border-bottom-color: var(--av-klient);
    color: var(--av-klient-text);
}

.av-prehliadac-pocet {
    margin-left: 4px;
    font-size: var(--av-pismo-12);
    color: var(--av-text-3);
}

.av-prehliadac-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--av-m-2);
    align-items: start;
    max-height: min(60vh, 520px);
    overflow-y: auto;
    padding: 2px;
}

.av-prehliadac-zoznam {
    grid-template-columns: minmax(0, 1fr);
}

@media (max-width: 639px) {
    .av-prehliadac-panel {
        grid-template-columns: minmax(0, 1fr);
    }
}

.av-prehliadac-typ {
    border: 1px solid var(--av-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-povrch);
    min-width: 0;
}

.av-prehliadac-typ.av-otvoreny {
    grid-column: 1 / -1;
    border-color: var(--av-klient-okraj);
}

.av-prehliadac-dlazdica {
    display: flex;
    align-items: stretch;
    min-height: 56px;
}

.av-prehliadac-stvorec {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 48px;
    cursor: pointer;
}

.av-prehliadac-stvorec input,
.av-prehliadac-riadok input {
    width: 22px;
    height: 22px;
    flex: none;
    accent-color: var(--av-klient);
    cursor: pointer;
}

.av-prehliadac-otvor {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 44px;
    padding: 6px 40px 6px 4px;
    position: relative;
    border: 0;
    background: none;
    text-align: left;
    cursor: pointer;
}

.av-prehliadac-otvor-cely {
    padding-left: 14px;
}

.av-prehliadac-nazov {
    font-size: var(--av-pismo-14);
    color: var(--av-text);
    overflow-wrap: anywhere;
}

.av-prehliadac-otvor small,
.av-prehliadac-text small {
    font-size: var(--av-pismo-12);
    color: var(--av-text-3);
}

.av-prehliadac-sipka {
    position: absolute;
    right: 12px;
    top: 50%;
    width: 18px;
    height: 18px;
    margin-top: -9px;
    color: var(--av-text-3);
    transition: transform 0.15s ease;
}

.av-otvoreny .av-prehliadac-sipka {
    transform: rotate(180deg);
}

.av-prehliadac-kusy {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    padding: 4px 8px 8px;
    border-top: 1px solid var(--av-okraj-jemny);
}

@media (max-width: 639px) {
    .av-prehliadac-kusy {
        grid-template-columns: minmax(0, 1fr);
    }
}

.av-prehliadac-riadok {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    padding: 4px 10px;
    border-radius: var(--av-r-ovladac);
    cursor: pointer;
}

.av-prehliadac-riadok:hover {
    background: var(--av-hover);
}

.av-prehliadac-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    font-size: var(--av-pismo-14);
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.av-prehliadac .av-na-tlacive {
    color: var(--av-text-3);
    cursor: default;
}

.av-prehliadac .av-na-tlacive input {
    cursor: default;
}

.av-prehliadac-tip,
.av-prehliadac-prazdne {
    grid-column: 1 / -1;
    margin: 4px 10px 0;
    font-size: var(--av-pismo-12);
    color: var(--av-text-3);
}

/* Vyplniť z dokladu (24. 10. 2026): polia predvyplnené z dokladu majú pri názve štítok „z dokladu“; upozornenia (zamestnanec / stroj
   sa nenašiel, rozdiel platnosti, údaje o zdraví) oranžovo. */
.av-z-dokladu .fi-fo-field-label-content::after {
    content: "z dokladu";
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: var(--av-r-stitok);
    border: 1px solid var(--av-klient-okraj);
    background: var(--av-klient-hover-pozadie);
    color: var(--av-klient-text);
    font-size: var(--av-pismo-11);
    font-weight: 400;
}

.av-doklad-upozornenie {
    display: block;
    padding: 8px 12px;
    border: 1px solid var(--av-oranzova-okraj);
    border-radius: var(--av-r-ovladac);
    background: var(--av-oranzova-pozadie);
    color: var(--av-oranzova-text);
    font-size: var(--av-pismo-13);
}

/* Panel z bývalého malého okna (Úpravy 4, 28. 10. 2026 – V2::jePanel): polia bez sekcií sú v jednej karte ako sekcia formulára
   (malé okno bolo samo kartou; v paneli by polia ležali na pozadí panela). Formulár so sekciami ostáva bez zmeny. */
.av-okno-panel .fi-modal-content:not(:has(.fi-section)) > * {
    border-radius: var(--av-r-karta);
    background: var(--av-povrch);
    box-shadow: inset 0 0 0 1px var(--av-oddelovac);
    padding: var(--av-m-4);
}

/* Môj profil ako panel sprava (Úpravy 4, 28. 10. 2026 – App\Livewire\MojProfil): záložky pod nadpisom panela, karty pod sebou. */
.av-moj-profil {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.av-moj-profil .av-stranka-karty {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.av-zmena-hesla {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 4px 0 4px;
}

.av-zmena-hesla-tlacidla {
    display: flex;
    justify-content: flex-end;
}

.av-zoznam-zariadeni {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    list-style: none;
}

.av-zariadenie {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 10px;
    padding: 10px 0;
    border-top: 1px solid var(--av-okraj-jemny);
    font-size: var(--av-pismo-13);
    color: var(--av-text);
}

.av-zariadenie:first-child {
    border-top: 0;
}

.av-zariadenie > .av-ikona-sm {
    grid-row: span 2;
    margin-top: 2px;
    color: var(--av-text-2);
}

.av-zariadenie-popis {
    color: var(--av-text-2);
    font-size: var(--av-pismo-12);
}

.av-qr-kod {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

.av-qr-kod img {
    border-radius: var(--av-r-ovladac);
    background: #fff;
    padding: 8px;
}

.av-zalozne-kody {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.av-zalozne-kody-zoznam {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, max-content));
    gap: 6px 24px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--av-pismo-14);
}
