/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* ── Root layout ───────────────────────────────────────────── */
.dally-root[b-varv31qld5] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* ── Header ────────────────────────────────────────────────── */
.dally-header[b-varv31qld5] {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: var(--dally-header-h);
    background: var(--dally-surface);
    border-bottom: 1px solid var(--dally-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px 0 12px;
    z-index: 1000;
    box-shadow: 0 1px 3px rgba(0,0,0,.07);
}

.dally-header-start[b-varv31qld5] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.dally-header-end[b-varv31qld5] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

/* ── Menu button ───────────────────────────────────────────── */
.dally-menu-btn[b-varv31qld5] {
    flex-shrink: 0;
    width: 40px; height: 40px;
    border-radius: 8px;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--dally-fg);
    display: flex; align-items: center; justify-content: center;
    transition: background .15s;
}
.dally-menu-btn:hover[b-varv31qld5] { background: var(--dally-hover); }

/* ── Brand ─────────────────────────────────────────────────── */
.dally-brand[b-varv31qld5] {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: var(--dally-fg);
    flex-shrink: 0;
}
.dally-brand-logo[b-varv31qld5] {
    height: 38px;
    width: auto;
    display: block;
}
.dally-brand-name[b-varv31qld5] {
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--dally-fg);
    white-space: nowrap;
}

/* ── User button ───────────────────────────────────────────── */
.dally-user-btn[b-varv31qld5] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px 6px 12px;
    border-radius: 8px;
    border: 1px solid var(--dally-border);
    cursor: pointer;
    background: transparent;
    transition: background .15s;
}
.dally-user-btn:hover[b-varv31qld5] { background: var(--dally-hover); }

.dally-user-info[b-varv31qld5] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    min-width: 0;
}
.dally-user-row1[b-varv31qld5] {
    display: flex;
    align-items: center;
    gap: 6px;
}
.dally-role-chip[b-varv31qld5] {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    padding: 2px 6px;
    border-radius: 10px;
    background: var(--dally-accent);
    color: #fff;
    white-space: nowrap;
    flex-shrink: 0;
}
.dally-user-name[b-varv31qld5] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--dally-fg);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 150px;
}
.dally-user-email[b-varv31qld5] {
    font-size: 0.6875rem;
    color: var(--dally-fg-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
}
[b-varv31qld5] .dally-user-caret {
    color: var(--dally-fg-muted) !important;
    flex-shrink: 0;
}

/* ── Body ──────────────────────────────────────────────────── */
.dally-body[b-varv31qld5] {
    display: flex;
    padding-top: var(--dally-header-h);
    flex: 1;
}

/* ── Sidebar ───────────────────────────────────────────────── */
.dally-sidebar[b-varv31qld5] {
    position: fixed;
    top: var(--dally-header-h);
    left: 0; bottom: 0;
    width: var(--dally-sidebar-width);
    background: var(--dally-surface);
    border-right: 1px solid var(--dally-border);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    z-index: 200;
    transition: width .2s ease;
}
.dally-sidebar--closed[b-varv31qld5] {
    width: 0 !important;
    border-right: none;
}

.dally-sidebar-scroll[b-varv31qld5] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 8px 0;
    scrollbar-width: thin;
}

/* ── Resize handle ─────────────────────────────────────────── */
.dally-resize-handle[b-varv31qld5] {
    position: absolute;
    top: 0; bottom: 0;
    right: -3px;
    width: 6px;
    cursor: ew-resize;
    background: transparent;
    z-index: 10;
    transition: background .15s;
}
.dally-resize-handle:hover[b-varv31qld5],
.dally-resize-handle:active[b-varv31qld5] {
    background: var(--dally-accent);
    opacity: .4;
}

/* ── Main ──────────────────────────────────────────────────── */
.dally-main[b-varv31qld5] {
    flex: 1;
    min-width: 0;
    margin-left: var(--dally-sidebar-width);
    transition: margin-left .2s ease;
    background: var(--dally-bg);
}
.dally-main--wide[b-varv31qld5] { margin-left: 0 !important; }

.dally-content[b-varv31qld5] { padding: 24px; }

/* ── Mobile ────────────────────────────────────────────────── */
@media (max-width: 767px) {
    .dally-sidebar[b-varv31qld5] {
        width: 280px !important;
        transform: translateX(-100%);
        box-shadow: 4px 0 24px rgba(0,0,0,.18);
        transition: transform .2s ease;
    }
    .dally-sidebar:not(.dally-sidebar--closed)[b-varv31qld5] {
        transform: translateX(0);
    }
    .dally-main[b-varv31qld5] { margin-left: 0 !important; }
    .dally-resize-handle[b-varv31qld5] { display: none; }
    .dally-user-info[b-varv31qld5] { display: none; }
}

#blazor-error-ui[b-varv31qld5] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0,0,0,.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: .6rem 1.25rem .7rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}
#blazor-error-ui .dismiss[b-varv31qld5] {
    cursor: pointer;
    position: absolute;
    right: .75rem;
    top: .5rem;
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* NavMenu styles are handled globally in app.css via .dally-sidebar-scroll overrides */
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-j6f1wndul9],
.components-reconnect-repeated-attempt-visible[b-j6f1wndul9],
.components-reconnect-failed-visible[b-j6f1wndul9],
.components-pause-visible[b-j6f1wndul9],
.components-resume-failed-visible[b-j6f1wndul9],
.components-rejoining-animation[b-j6f1wndul9] {
    display: none;
}

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


#components-reconnect-modal[b-j6f1wndul9] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-j6f1wndul9 0.5s both;
    &[open]

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

}

#components-reconnect-modal[b-j6f1wndul9]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-j6f1wndul9 0.5s ease-in-out;
    opacity: 1;
}

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

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

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

    100% {
        opacity: 1;
    }
}

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

    100% {
        opacity: 0;
    }
}

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

#components-reconnect-modal p[b-j6f1wndul9] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-j6f1wndul9] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-j6f1wndul9] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-j6f1wndul9] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-j6f1wndul9] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-j6f1wndul9] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-j6f1wndul9 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

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

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

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

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

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Admin/IntegrityTests/Index.razor.rz.scp.css */
/* Skupina akčních tlačítek (spuštění, export) — v záhlaví stránky i v těle panelu testu. */
.test-actions[b-q7nylhuur1] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

/* Souhrn výsledků nad seznamem testů. */
.test-summary[b-q7nylhuur1] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

/* Nadpis skupiny testů s vlastními akcemi zarovnanými doprava. */
.test-group-header[b-q7nylhuur1] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.test-group-actions[b-q7nylhuur1] {
    margin-left: auto;
    display: flex;
    gap: 0.25rem;
    align-self: center;
}

/* Hlavička panelu testu: ikona stavu · název + zdroj · závažnost · stav · čas běhu · spuštění.
   Čas běhu se odsazuje doprava, tlačítko zůstává na konci řádku. */
.test-header[b-q7nylhuur1] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
}

.test-header-text[b-q7nylhuur1] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.test-header-elapsed[b-q7nylhuur1] {
    margin-left: auto;
    white-space: nowrap;
}

/* Popis testu — pravidlo, důsledky, doporučení pod sebou s vlastními nadpisy.
   Šířka omezená kvůli čitelnosti delších odstavců. */
.test-detail[b-q7nylhuur1] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 80ch;
    margin-bottom: 1rem;
}

.test-section[b-q7nylhuur1] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
/* /Components/Pages/Admin/Users/Index.razor.rz.scp.css */
/* Admin users page-specific styles */
/* /Components/Pages/Analytics/PredictionAccuracy.razor.rz.scp.css */
.bt-run[b-xe9et3s513] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}

.bt-sample-select[b-xe9et3s513] {
    max-width: 180px;
}
/* /Components/Pages/Analytics/TopMachines.razor.rz.scp.css */
/* /top-machines přesměrovává na /machines (DALL-1271) — bez vlastních stylů. */
/* /Components/Pages/Auth/Profile.razor.rz.scp.css */
/* Profile page-specific styles */
/* /Components/Pages/Crew/Detail.razor.rz.scp.css */
/* Crew detail page-specific styles */

/* Kontakt v záhlaví (bez dlaždice, vzor detailu automatu) — údaje vedle sebe, na úzkém displeji
   se zalomí. */
.crew-contact-strip[b-fajcvkwk9m] {
    row-gap: 8px;
}

.crew-relation-filter[b-fajcvkwk9m] {
    min-width: 200px;
}

/* Filtr panel seznamu automatů */
.crew-filter-search[b-fajcvkwk9m] {
    min-width: 280px;
    flex: 1 1 280px;
    max-width: 460px;
}

.crew-filter-label[b-fajcvkwk9m] {
    display: block;
    margin-bottom: 4px;
}

.crew-filter-field[b-fajcvkwk9m] {
    max-width: 220px;
}

.crew-filter-period[b-fajcvkwk9m] {
    max-width: 320px;
}
/* /Components/Pages/Crew/Index.razor.rz.scp.css */
/* Crew list page-specific styles */
.crew-contact[b-5ei5rwg88f] {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.crew-contact-sub[b-5ei5rwg88f] {
    font-size: 0.8rem;
    opacity: 0.7;
}

.crew-num[b-5ei5rwg88f] {
    font-family: monospace;
}

/* Číslo s tooltipem („Prázdných" / „Bez zboží") — náznak, že najetím zobrazí detail.
   Nula zůstává neutrální (bez zvýraznění i bez tooltipu). */
.crew-count[b-5ei5rwg88f] {
    cursor: help;
    text-decoration: underline dotted;
    text-underline-offset: 2px;
}

.crew-count-empty[b-5ei5rwg88f] {
    color: var(--mud-palette-warning);
}

.crew-count-soldout[b-5ei5rwg88f] {
    color: var(--mud-palette-error);
}

.crew-location[b-5ei5rwg88f] {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.crew-location-code[b-5ei5rwg88f] {
    font-weight: 600;
}

.crew-location-name[b-5ei5rwg88f] {
    font-size: 0.8rem;
    opacity: 0.7;
}
/* /Components/Pages/Customers/Detail.razor.rz.scp.css */
/* Customer detail page-specific styles */
[b-0fpesgkozn] .mud-table-cell {
    white-space: nowrap;
}
/* /Components/Pages/Dashboard.razor.rz.scp.css */
/* Dashboard page-specific styles */
[b-fxp3v0zt6t] .mud-table-container {
    overflow-x: auto;
}

[b-fxp3v0zt6t] .col-right {
    text-align: right;
}

/* Číselné hodnoty v tabulkách — zvýraznění barvou dle závažnosti (bez chipu). */
.num-warning[b-fxp3v0zt6t] {
    color: var(--mud-palette-warning);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.num-error[b-fxp3v0zt6t] {
    color: var(--mud-palette-error);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* Dočasný srovnávací sloupec „Z pozic" — vizuálně potlačený proti hlavní hodnotě. */
.num-muted[b-fxp3v0zt6t] {
    opacity: 0.7;
    font-variant-numeric: tabular-nums;
}

/* Hlavička sloupce s vysvětlivkou v tooltipu. */
.col-hint[b-fxp3v0zt6t] {
    cursor: help;
    text-decoration: underline dotted;
    text-underline-offset: 2px;
}
/* /Components/Pages/Demands/Index.razor.rz.scp.css */
/* Šířky filtračních polí — konzistentní s /machines a /warehouses. */
.dm-filter-search[b-4hrimkch9k] {
    flex: 1 1 320px;
    min-width: 240px;
    max-width: 460px;
}

.dm-filter-loc[b-4hrimkch9k] {
    flex: 0 1 200px;
    min-width: 150px;
    max-width: 240px;
}

/* Popisek skupiny chipů (Stav). */
.dm-filter-label[b-4hrimkch9k] {
    display: block;
    margin-bottom: 4px;
}
/* /Components/Pages/Fillings/Index.razor.rz.scp.css */
/* Fillings page-specific styles */
/* /Components/Pages/Items/Detail.razor.rz.scp.css */
/* Item detail page-specific styles */
[b-vyc8yq9lrp] .mud-table-cell {
    white-space: nowrap;
}

/* Sloupec „QR" v tabulce měrných jednotek (DALL-1322): jen tak široký, aby unesl dvě ikony
   (na dvojici zboží+MJ jsou v datech nejvýš dva identifikátory). */
.uom-qr[b-vyc8yq9lrp] {
    width: 1%;
    white-space: nowrap;
    text-align: center;
}

/* Identifikátory bez řádku v tabulce — jedna kompaktní řádka pod ní, ne další karta. */
.uom-orphans[b-vyc8yq9lrp] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 12px;
    margin-top: 8px;
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
}

.uom-orphan[b-vyc8yq9lrp] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}

.item-thumb[b-vyc8yq9lrp] {
    width: 56px;
    height: 56px;
    object-fit: contain;
    border-radius: 4px;
    cursor: pointer;
    background-color: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-lines-default);
}

.item-thumb-zoom[b-vyc8yq9lrp] {
    max-width: 80vw;
    max-height: 80vh;
    object-fit: contain;
    cursor: pointer;
    background-color: var(--mud-palette-white);
    border-radius: 4px;
}
/* /Components/Pages/Items/Index.razor.rz.scp.css */
/* Items page-specific styles */
/* /Components/Pages/Machines/Detail.razor.rz.scp.css */
/* Machine detail page-specific styles */
[b-qojfd13zwy] .mud-table-cell {
    white-space: nowrap;
}

/* Filtrační pole nad tabulkou prázdných pozic — pevná šířka, ať drží jednotný rytmus. */
.empty-filter[b-qojfd13zwy] {
    flex: 0 0 auto;
    width: 200px;
}

/* Meta řádek pod nadpisem (adresa + zákazník) — drobnější, sekundární. */
.header-meta[b-qojfd13zwy] {
    row-gap: 4px;
    font-size: 0.875rem;
    color: var(--mud-palette-text-secondary);
}

/* ===== Pruh „Termín závozu" (DALL-1326) =====
   Levý 4px pruh je DEKORACE naléhavosti — informaci vždy nese text vedle (WCAG: nikdy jen barva).
   Barvy z MudBlazor theme tokenů (CSS proměnné palety), nikdy hex.
   Vše přes ::deep: scope atribut CSS izolace se na kořen MudBlazor komponent (MudPaper, MudText,
   MudProgressLinear) nepropíše, jen na obyčejné elementy této stránky. */
.refill-strip-host[b-qojfd13zwy]  .refill-strip {
    border-left: 4px solid var(--mud-palette-lines-default);
}

.refill-strip-host[b-qojfd13zwy]  .refill-strip--error {
    border-left-color: var(--mud-palette-error);
}

.refill-strip-host[b-qojfd13zwy]  .refill-strip--warning {
    border-left-color: var(--mud-palette-warning);
}

.refill-strip-host[b-qojfd13zwy]  .refill-strip--success {
    border-left-color: var(--mud-palette-success);
}

.refill-strip-host[b-qojfd13zwy]  .refill-strip--neutral {
    border-left-color: var(--mud-palette-lines-default);
}

/* Popisek dlaždice (overline + ikona + chip + „i") drží jeden řádek s malým odsazením. */
.refill-strip-host[b-qojfd13zwy]  .refill-tile-head {
    row-gap: 4px;
    margin-bottom: 2px;
}

.refill-strip-host[b-qojfd13zwy]  .refill-hero-row {
    min-height: 42px;
}

/* Hero = hlavní číslo obrazovky; delší stavové věty („Automat nemá aktivní pozice") se musí vejít. */
.refill-strip-host[b-qojfd13zwy]  .refill-hero-value {
    font-weight: 600;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.refill-strip-host[b-qojfd13zwy]  .refill-rec-value {
    font-weight: 600;
    line-height: 1.2;
}

/* Rozsah v Kč se nikdy nezalamuje uprostřed (pravidlo 1–3 § Poctivost čísla). */
.refill-strip-host[b-qojfd13zwy]  .refill-money {
    white-space: nowrap;
}

.refill-strip-host[b-qojfd13zwy]  .refill-note {
    line-height: 1.35;
}

/* Kontextový řádek: metadata, ne KPI — inline forma „popisek: hodnota". */
.refill-strip-host[b-qojfd13zwy]  .refill-context {
    row-gap: 8px;
    column-gap: 24px;
}

.refill-strip-host[b-qojfd13zwy]  .refill-context-item {
    row-gap: 4px;
}

.refill-strip-host[b-qojfd13zwy]  .refill-soldout-link {
    cursor: pointer;
}

.refill-strip-host[b-qojfd13zwy]  .refill-soldout-bar {
    width: 120px;
    height: 6px;
    flex: 0 0 auto;
}

/* Název zboží u prvního výpadku — 1 řádek s ellipsis, plný název je v tooltipu. */
.refill-strip-host[b-qojfd13zwy]  .refill-item-name {
    display: inline-block;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
}

/* xs: hero na Typo.h5, doporučený závoz na Typo.h6 — pruh smí narůst, nikdy se neoříznout. */
@media (max-width: 599px) {
    .refill-strip-host[b-qojfd13zwy]  .refill-hero-value {
        font-size: 1.5rem;
    }

    .refill-strip-host[b-qojfd13zwy]  .refill-rec-value {
        font-size: 1.25rem;
    }

    .refill-strip-host[b-qojfd13zwy]  .refill-item-name {
        max-width: 100%;
    }
}

/* Kompaktní KPI dlaždice v záhlaví (jeden řádek panelů místo tabulky). */
.kpi-mini[b-qojfd13zwy] {
    flex: 1 1 120px;
    min-width: 110px;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    padding: 8px 12px;
    text-align: center;
}

.kpi-label[b-qojfd13zwy] {
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
    line-height: 1.2;
    margin-bottom: 4px;
}

.kpi-value[b-qojfd13zwy] {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.1;
}

/* Naplněnost / kategorie jako velký KPI text (parita s ostatními dlaždicemi), barvu nese FillCell. */
.kpi-value--fill[b-qojfd13zwy]  .fill-cell-value,
.kpi-value--fill[b-qojfd13zwy]  .fill-cell-empty {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.1;
}

/* COLD / FOOD / SNCK na jednom řádku, hodnoty oddělené lomítkem. */
.kpi-fill-row[b-qojfd13zwy] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    white-space: nowrap;
}

.kpi-fill-sep[b-qojfd13zwy] {
    color: var(--mud-palette-text-secondary);
    font-weight: 400;
}
/* /Components/Pages/Machines/Index.razor.rz.scp.css */
/* Štítky nad ovládacími prvky filtru (chipy, přepínač období, výběr automatů). */
.filter-label[b-u2qfeeom3t] {
    display: block;
    margin-bottom: 4px;
    color: var(--mud-palette-text-secondary);
}

/* Hledání roste do šířky, ale má rozumné minimum (nezhroutí se na mobilu). */
.filter-search[b-u2qfeeom3t] {
    flex: 1 1 320px;
    min-width: 240px;
}

/* Číselná/datumová pole filtru — pevná šířka (delší labely se vejdou na řádek),
   ať se v flex řádku nerozlézají a drží jednotný rytmus lišty. */
.filter-field[b-u2qfeeom3t] {
    flex: 0 0 auto;
    width: 230px;
}

/* Combo "Období transakcí" — širší, ať se vejde "Posledních 30 dnů (od 15.3.2026)". */
.filter-period[b-u2qfeeom3t] {
    flex: 0 0 auto;
    width: 300px;
}

/* "Filtrovat" akce drží výšku dense polí (zarovnání v řádku s hledáním). */
.filter-action[b-u2qfeeom3t] {
    height: 40px;
}

/* Úzká číselná pole intervalových filtrů (od/do). */
.filter-num[b-u2qfeeom3t] {
    flex: 0 0 auto;
    width: 88px;
}

/* Pruh se scope z odkazu (?nos=) — oddělený od vlastního filtru, ať je na první pohled zřejmé,
   že seznam je omezený zvenčí, ne nastavením filtru. */
.scope-banner[b-u2qfeeom3t] {
    padding-bottom: 4px;
    border-bottom: 1px solid var(--mud-palette-divider);
}

/* Popisek intervalu (Naplněnost %, COLD %, …) — nezalamovat. */
.filter-range-label[b-u2qfeeom3t] {
    white-space: nowrap;
    color: var(--mud-palette-text-secondary);
}
/* /Components/Pages/Machines/MachineItemDetail.razor.rz.scp.css */
.header-meta[b-ifc6gplirs] {
    gap: 0.25rem 0.5rem;
    font-size: 0.9rem;
}

/* Zboží v záhlaví: ItemRef je dvouřádkový blok, ikony QR (DALL-1322) k němu patří na stejný řádek
   — proto inline-flex se svislým vystředěním (shodně s kartou konfigurace na detailu pozice). */
.header-item[b-ifc6gplirs] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
}

/* „Hodiny do vyprodání" — hero číslo v přehledu. */
.sellout-hero[b-ifc6gplirs] {
    margin-top: 0.25rem;
}

.sellout-time[b-ifc6gplirs] {
    font-weight: 700;
    line-height: 1.1;
}

/* Metriky souvislé simulace spotřeby (stejný raster jako panel přesnosti). */
.bt-metrics[b-ifc6gplirs] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem 2.5rem;
}

.bt-metric[b-ifc6gplirs] {
    min-width: 120px;
}

/* Rozbalený řádek měření backtestu — graf srovnání skutečnosti s predikcí. */
.backtest-detail[b-ifc6gplirs] {
    padding: 0.75rem 1rem 1rem;
}

/* Šířka pro pruh naplněnosti v přehledové kartě (page-level markup). */
.config-fill[b-ifc6gplirs] {
    min-width: 140px;
    max-width: 260px;
}
/* /Components/Pages/Pda/Index.razor.rz.scp.css */
/* Volič uživatele — roste do šířky, ale nezhroutí se; drží se vlevo, razítko stavu vpravo. */
.pda-user-select[b-2e7wuz8v3i] {
    flex: 1 1 360px;
    min-width: 260px;
    max-width: 520px;
}

/* Razítko provenience dat (vrstva A) — nenápadné, ztlumené, bez barvy/animace. */
.pda-server-state[b-2e7wuz8v3i] {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* Karta identity uživatele — kompaktní (role/lokace jako chipy v řádku, ne definiční seznam). */
.pda-identity[b-2e7wuz8v3i] {
    min-width: 0;
}

/* Popisek řádku (Role:/Lokace:/Pokladna:) — pevná minimální šířka pro zarovnání chipů. */
.pda-identity-label[b-2e7wuz8v3i] {
    min-width: 56px;
}

/* Obsah nápovědného tooltipu (vrstva B textem) — čitelná šířka, zarovnání vlevo. */
.pda-help-text[b-2e7wuz8v3i] {
    max-width: 320px;
    text-align: left;
    line-height: 1.4;
}
/* /Components/Pages/Pda/PdaEmptyState.razor.rz.scp.css */
.pda-empty[b-c3l3kym4me] {
    display: flex;
    justify-content: center;
}

.pda-empty-stack[b-c3l3kym4me] {
    max-width: 640px;
    margin: 0 auto;
}

.pda-empty-body[b-c3l3kym4me] {
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

/* Tělo může mít víc odstavců (MudText body2) — rozumné mezery mezi nimi. */
.pda-empty-body[b-c3l3kym4me]  .mud-typography {
    margin-bottom: 6px;
}

.pda-empty-roles[b-c3l3kym4me] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
}

.pda-empty-roles-label[b-c3l3kym4me] {
    color: var(--mud-palette-text-secondary);
}

.pda-empty-caption[b-c3l3kym4me] {
    color: var(--mud-palette-text-secondary);
    max-width: 520px;
}
/* /Components/Pages/Positions/EmptyPositions.razor.rz.scp.css */
/* Empty positions page-specific styles */
/* /Components/Pages/Positions/InactivePositions.razor.rz.scp.css */
[b-lodtrj5de8] .row-critical {
    background-color: var(--mud-palette-error-hover);
}

[b-lodtrj5de8] .row-warning {
    background-color: var(--mud-palette-warning-hover);
}
/* /Components/Pages/Positions/PositionDetail.razor.rz.scp.css */
/* Detail pozice — page-specific styly */

/* Meta řádek pod nadpisem (automat + zákazník + adresa) — drobnější, sekundární. */
.header-meta[b-tv4azmgfbx] {
    row-gap: 4px;
    font-size: 0.875rem;
    color: var(--mud-palette-text-secondary);
}

/* Buňka „Zboží" v kartě konfigurace: ItemRef je dvouřádkový blok, ikony QR (DALL-1322) k němu
   patří na stejný řádek — proto inline-flex se svislým vystředěním. */
.config-item[b-tv4azmgfbx] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
}

/* Naplněnost v kartě konfigurace — dostatečná šířka pro čitelný pruh. */
.config-fill[b-tv4azmgfbx] {
    min-width: 160px;
    max-width: 260px;
}

/* Zvýraznění aktivní verze v historii konfigurace: jemný success podklad + levý barevný pruh. */
[b-tv4azmgfbx] tr.row-active {
    background-color: var(--mud-palette-success-hover);
    box-shadow: inset 3px 0 0 0 var(--mud-palette-success);
}

/* Hlavička sbalitelného panelu „Historie konfigurace" — celá klikatelná (toggle). */
.history-header[b-tv4azmgfbx] {
    cursor: pointer;
    user-select: none;
}

/* Počet kusů mimo rozsah [0, kapacita] — pozice čeká na kalibraci. Ikona + tučné číslo,
   ať se stav nedá přehlédnout; hodnota se záměrně neořezává (viz FillLevelDisplayRules). */
.config-out-of-range[b-tv4azmgfbx] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}
/* /Components/Pages/Positions/ProblemPositions.razor.rz.scp.css */
/* Problematické pozice — sloupec „Mimo rozsah" */

.deviation[b-kw7j8tg3ca] {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    white-space: nowrap;
}

/* Podtečení (počítadlo pod nulou) — kritické, prodalo se víc, než je evidováno. */
.deviation-under[b-kw7j8tg3ca] {
    color: var(--mud-palette-error);
}

/* Přeplnění (počítadlo nad kapacitou) — méně naléhavé než podtečení, ale pořád ke kalibraci. */
.deviation-over[b-kw7j8tg3ca] {
    color: var(--mud-palette-warning);
}
/* /Components/Pages/Seals/Index.razor.rz.scp.css */
/* Štítky nad ovládacími prvky filtru. */
.filter-label[b-v27ctx85h3] {
    display: block;
    margin-bottom: 4px;
    color: var(--mud-palette-text-secondary);
}

/* Hledání roste do šířky, ale má rozumné minimum (nezhroutí se na mobilu). */
.filter-search[b-v27ctx85h3] {
    flex: 1 1 320px;
    min-width: 240px;
}

/* Pole lokace — pevná šířka, ať se v řádku nerozlézá. */
.filter-location[b-v27ctx85h3] {
    flex: 0 0 auto;
    width: 220px;
}

/* "Filtrovat" akce drží výšku dense polí (zarovnání v řádku s hledáním). */
.filter-action[b-v27ctx85h3] {
    height: 40px;
}
/* /Components/Pages/Transactions/Index.razor.rz.scp.css */
/* Transactions page-specific styles */
/* /Components/Pages/Warehouses/Detail.razor.rz.scp.css */
.wh-card[b-drop9rpzgf] {
    height: 100%;
}

.wh-info th[b-drop9rpzgf] {
    width: 40%;
    font-weight: 500;
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
}

.wh-filter-search[b-drop9rpzgf] {
    min-width: 260px;
    flex: 1 1 260px;
    max-width: 420px;
}

.wh-filter-label[b-drop9rpzgf] {
    display: block;
    margin-bottom: 4px;
}

.wh-qty[b-drop9rpzgf] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.wh-qty-value[b-drop9rpzgf] {
    font-weight: 600;
}

.wh-qty-uom[b-drop9rpzgf] {
    margin-left: 4px;
    font-size: 0.8rem;
    color: var(--mud-palette-text-secondary);
}

/* Buňka změny (delta) zarovnaná doprava; barevný obsah řeší StockChangeDeltaCell (vlastní izolace). */
.wh-delta[b-drop9rpzgf] {
    display: flex;
    justify-content: flex-end;
}
/* /Components/Pages/Warehouses/Index.razor.rz.scp.css */
.wh-filter-search[b-ea95zqvnar] {
    min-width: 260px;
    flex: 1 1 260px;
    max-width: 420px;
}

.wh-filter-label[b-ea95zqvnar] {
    display: block;
    margin-bottom: 4px;
}

/* Volič nadřazeného skladu — popisky jsou „kód — název", užší pole by je ořezalo. */
.wh-filter-superior[b-ea95zqvnar] {
    min-width: 260px;
    flex: 0 1 320px;
}

/* Skupiny chip-filtrů vedle sebe, dokud se vejdou; na úzké obrazovce pod sebe. */
.wh-filter-groups[b-ea95zqvnar] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}

/* Pole pro počet/rozsah — krátká, ať je vidět, že se čeká číslo, ne text. */
.wh-filter-range[b-ea95zqvnar] {
    min-width: 150px;
    max-width: 190px;
}

.wh-num[b-ea95zqvnar] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
/* /Components/Shared/BacktestAccuracyPanel.razor.rz.scp.css */
.bt-metrics[b-mi4yy5m2s8] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem 2.5rem;
    margin-bottom: 1rem;
}

.bt-metric[b-mi4yy5m2s8] {
    min-width: 120px;
}

.bt-categories[b-mi4yy5m2s8] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.5rem;
}

.bt-count[b-mi4yy5m2s8] {
    font-weight: 600;
    margin-right: 0.75rem;
}

.bt-kpi[b-mi4yy5m2s8] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}
/* /Components/Shared/CategoryFillCell.razor.rz.scp.css */
.cat-fill[b-5nv5sxdnoh] {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}
/* /Components/Shared/CrewMachineFillTooltip.razor.rz.scp.css */
/* Tooltip se seznamem automatů — zarovnaný vlevo, omezená šířka (MudTooltip nemá scroll). */
.crew-fill-tooltip[b-ruz2e9nle1] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    text-align: left;
    max-width: 380px;
    line-height: 1.4;
}

.crew-fill-machine[b-ruz2e9nle1] {
    display: flex;
    flex-direction: column;
}

.crew-fill-head[b-ruz2e9nle1] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
}

.crew-fill-no[b-ruz2e9nle1] {
    white-space: nowrap;
}

.crew-fill-desc[b-ruz2e9nle1] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    opacity: 0.8;
}

.crew-fill-total[b-ruz2e9nle1] {
    margin-left: auto;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Rozpad dle kategorie zboží — odsazený pod hlavičkou automatu. */
.crew-fill-cats[b-ruz2e9nle1] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem 0.75rem;
    padding-left: 0.75rem;
    font-size: 0.78rem;
    opacity: 0.85;
}

.crew-fill-cat[b-ruz2e9nle1] {
    display: inline-flex;
    gap: 0.3rem;
    white-space: nowrap;
}

.crew-fill-cat-value[b-ruz2e9nle1] {
    font-variant-numeric: tabular-nums;
}

.crew-fill-more[b-ruz2e9nle1] {
    font-style: italic;
    opacity: 0.75;
}
</content[b-ruz2e9nle1]>
/* /Components/Shared/CrewRouteMap.razor.rz.scp.css */
.route-date[b-16qf1ob7p4] {
    max-width: 220px;
}

/* Legenda trasy — čára a značka depa (mimo mapu, v přehledu legendy). */
.route-legend-line[b-16qf1ob7p4] {
    display: inline-block;
    width: 22px;
    height: 0;
    border-top: 3px solid #5e35b1;
}

.route-legend-depot[b-16qf1ob7p4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 4px;
    background: #263238;
    font-size: 0.7rem;
    line-height: 1;
}
/* /Components/Shared/EmployeeArchiveGrid.razor.rz.scp.css */
/* Zvýraznění kalibrace v archivu: jemný info podklad + levý barevný pruh (stejný vzor jako
   aktivní verze v historii konfigurace na /positions). Barva NENÍ jediný nositel informace —
   řádek nese i chip „Kalibrace" s ikonou, viz EmployeeArchiveGrid.razor. */
.employee-archive-grid[b-v8k83evb8u]  tr.employee-archive-calibration {
    background-color: var(--mud-palette-info-hover);
    box-shadow: inset 3px 0 0 0 var(--mud-palette-info);
}

/* Řada chip filtrů typů nad tabulkou — na úzkém displeji se zalomí. */
.archive-type-filter[b-v8k83evb8u] {
    row-gap: 8px;
}

.archive-filter-label[b-v8k83evb8u] {
    margin-right: 4px;
}
/* /Components/Shared/FillCell.razor.rz.scp.css */
.fill-cell-empty[b-0tu95ftcha] {
    opacity: 0.5;
}

.fill-cell-value[b-0tu95ftcha] {
    font-variant-numeric: tabular-nums;
    font-weight: 500;
}

/* Naplněnost mimo rozsah kapacity — pozice čeká na kalibraci. Ikona odlišuje tento stav
   od běžného „málo naplněno", které má stejnou Error barvu. */
.fill-cell-alert[b-0tu95ftcha] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    white-space: nowrap;
}

.fill-cell-alert .fill-cell-value[b-0tu95ftcha] {
    font-weight: 700;
}
/* /Components/Shared/FillLevelBar.razor.rz.scp.css */
.fill-bar[b-1fstsgfli1] {
    flex: 1;
    height: 10px;
    border-radius: 5px;
}

.fill-label[b-1fstsgfli1] {
    min-width: 38px;
    text-align: right;
}

.fill-empty[b-1fstsgfli1] {
    min-width: 38px;
    text-align: right;
}

/* Naplněnost mimo rozsah kapacity — pozice čeká na kalibraci. Ikona + tučné číslo,
   aby se stav odlišil od běžného „málo naplněno" (obojí je Error barva). */
.fill-calibration[b-1fstsgfli1] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    white-space: nowrap;
}

.fill-label-alert[b-1fstsgfli1] {
    font-weight: 700;
}
/* /Components/Shared/ItemPositionsCell.razor.rz.scp.css */
.positions-cell[b-nurlkhz0bs] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
}

.position-link[b-nurlkhz0bs] {
    font-weight: 600;
    white-space: nowrap;
}

/* Badge = neutrální pilulka, vizuálně odlišná role od odkazů (ne jen barvou). */
.positions-badge[b-nurlkhz0bs] {
    margin: 0;
    cursor: pointer;
}
/* /Components/Shared/ItemRef.razor.rz.scp.css */
.item-ref[b-jo32nei9uj] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 2px 0;
}

.item-ref-title[b-jo32nei9uj] {
    font-weight: 600;
    line-height: 1.3;
}

.item-ref-desc[b-jo32nei9uj] {
    font-size: 0.78rem;
    opacity: 0.8;
    line-height: 1.2;
}
/* /Components/Shared/ItemUnitsDialog.razor.rz.scp.css */
/* Dialog měrných jednotek zboží (DALL-1307). Barvy jen přes MudBlazor theme tokeny. */

.iu-head[b-fjevp33dgv] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 4px;
}

.iu-no[b-fjevp33dgv] {
    font-weight: 600;
}

.iu-desc[b-fjevp33dgv] {
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
}

.iu-num[b-fjevp33dgv] {
    text-align: right;
    white-space: nowrap;
}

/* Odlišení řádků: základní MJ tučně, jednotka z řádku dokladu podbarvená. */
.iu-row-base[b-fjevp33dgv] {
    font-weight: 600;
}

.iu-row-current[b-fjevp33dgv] {
    font-weight: 600;
    background-color: var(--mud-palette-action-default-hover);
}

/* Textové štítky vedle kódu — nositel významu je text, ne barva (WCAG). */
.iu-tag[b-fjevp33dgv] {
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--mud-palette-text-secondary);
    background-color: var(--mud-palette-action-default-hover);
    white-space: nowrap;
}

.iu-tag-current[b-fjevp33dgv] {
    color: var(--mud-palette-primary-text);
    background-color: var(--mud-palette-primary);
}

.iu-note[b-fjevp33dgv] {
    display: block;
    margin-top: 8px;
    color: var(--mud-palette-text-secondary);
}
/* /Components/Shared/KpiCard.razor.rz.scp.css */
.kpi-card[b-65fd3w2azm] {
    min-width: 160px;
}

.kpi-clickable[b-65fd3w2azm] {
    cursor: pointer;
    transition: box-shadow 120ms ease-in-out, transform 120ms ease-in-out;
}

.kpi-clickable:hover[b-65fd3w2azm] {
    box-shadow: var(--mud-elevation-8);
    transform: translateY(-2px);
}
/* /Components/Shared/LocationUsersCell.razor.rz.scp.css */
.loc-cell[b-l0be9k97cf] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.25;
}

.loc-cell-code[b-l0be9k97cf] {
    font-weight: 600;
}

/* Seznam uživatelů lokace — menší, mírně ztlumený, může se zalomit na víc řádků. */
.loc-cell-users[b-l0be9k97cf] {
    font-size: 0.75rem;
    opacity: 0.85;
}

.loc-cell-sep[b-l0be9k97cf] {
    opacity: 0.6;
}
/* /Components/Shared/MachineGrid.razor.rz.scp.css */
[b-1cck4mfek5] .cursor-pointer {
    cursor: pointer;
}

/* Zvýrazněné řádky (trasová mapa: automaty plněné v daný den) — jemný levý pruh + podbarvení. */
[b-1cck4mfek5] .mm-row-highlight td {
    background: var(--mud-palette-primary-hover, rgba(94, 53, 177, 0.10));
}

[b-1cck4mfek5] .mm-row-highlight td:first-child {
    box-shadow: inset 3px 0 0 0 #5e35b1;
}

/* ~12 sloupců se nevejde na užší displeje — povolit horizontální scroll
   místo zalomení/stlačení obsahu. */
[b-1cck4mfek5] .machines-grid .mud-table-container {
    overflow-x: auto;
}

[b-1cck4mfek5] .mud-table-cell {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: top;
}

/* Číselné buňky zarovnané vpravo, tabulkové číslice pro zarovnání řádů. */
[b-1cck4mfek5] .num-cell {
    display: block;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Číslo s tooltipem (vyprodané zboží / prázdné pozice) — náznak, že najetím zobrazí detail. */
.count-link[b-1cck4mfek5] {
    cursor: help;
    text-decoration: underline dotted;
    text-underline-offset: 2px;
}

/* Obsah tooltipu se seznamem — zarovnat vlevo, čitelné řádky, omezená šířka. */
.tooltip-detail[b-1cck4mfek5] {
    text-align: left;
    max-width: 360px;
    line-height: 1.5;
}
/* /Components/Shared/MachineMap.razor.rz.scp.css */
.machine-map[b-33hav5v3j9] {
    height: 720px;
    width: 100%;
    border-radius: var(--mud-default-borderradius);
    /* aby Leaflet pane nepřekrýval MudBlazor overlay (menu, dialogy) */
    z-index: 0;
}
/* /Components/Shared/MachineRef.razor.rz.scp.css */
.machine-ref[b-21lf2zhtjl] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 2px 0;
}

.machine-ref-title[b-21lf2zhtjl] {
    font-weight: 600;
    line-height: 1.3;
}

.machine-ref-customer[b-21lf2zhtjl] {
    font-size: 0.78rem;
    opacity: 0.8;
    line-height: 1.2;
}

.machine-ref-chips[b-21lf2zhtjl] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.machine-ref-chip[b-21lf2zhtjl] {
    height: 20px;
    font-size: 0.68rem;
}

.machine-ref-vm[b-21lf2zhtjl] {
    font-size: 0.68rem;
    opacity: 0.55;
}
/* /Components/Shared/OrderListView.razor.rz.scp.css */
/* Šířky filtračních polí — konzistentní s /machines a /warehouses. */
.ov-filter-search[b-hni82ypbho] {
    flex: 1 1 320px;
    min-width: 240px;
    max-width: 460px;
}

.ov-filter-loc[b-hni82ypbho] {
    flex: 0 1 200px;
    min-width: 150px;
    max-width: 240px;
}

/* Popisek skupiny chipů (Stav / Typ). */
.ov-filter-label[b-hni82ypbho] {
    display: block;
    margin-bottom: 4px;
}
/* /Components/Shared/PeriodSelector.razor.rz.scp.css */
.period-select[b-b35280a9l9] {
    flex: 0 0 auto;
    width: 280px;
}

.period-from[b-b35280a9l9] {
    flex: 0 0 auto;
    width: 160px;
}

.period-days[b-b35280a9l9] {
    flex: 0 0 auto;
    width: 120px;
}
/* /Components/Shared/Qr/QrMatrix.razor.rz.scp.css */
/* Moduly QR kódu (DALL-1322).

   ⚠️ Černá výplň modulů je natvrdo (#000) — stejná výjimka jako bílá plotna v QrCodeBlock.razor.css:
   je to FUNKČNÍ požadavek čtečky (AK 11), ne stylová volba. Kdyby moduly dědily barvu textu,
   v Dark mode by se QR invertoval a část HW čteček by ho nepřečetla.

   Hranu QR nese custom property --qr-size z obalující plotny (custom properties se dědí DOM
   stromem i přes hranici CSS izolace). */

.qr-svg[b-62vvcz7hrq] {
    display: block;
    width: var(--qr-size);
    height: var(--qr-size);
    /* Bez tohohle by Windows High Contrast přebarvil moduly systémovou paletou. */
    forced-color-adjust: none;
}

.qr-svg path[b-62vvcz7hrq] {
    fill: #000;
    forced-color-adjust: none;
}

/* ─── Tisk (AK 10) ──────────────────────────────────────────────────────────────────── */

@media print {
    /* Pojistka proti tiskovým profilům, které převádějí barvy. */
    .qr-svg path[b-62vvcz7hrq] {
        fill: #000 !important;
    }

    /* px se při tisku přepočítají nepředvídatelně; 40 mm dává 21modulovému QR ~2 mm/modul,
       takže ho čtečka z papíru přečte i po přeškálování tiskovým profilem. */
    .qr-plate .qr-svg[b-62vvcz7hrq] {
        width: 40mm;
        height: 40mm;
    }
}
/* /Components/Shared/QrCodeBlock.razor.rz.scp.css */
/* QR kód pro PDA čtečku (DALL-1322) — obsah dialogu. Na stránce je jen ikona (MudIconButton),
   ta žádný vlastní styl nepotřebuje.

   ⚠️ JEDINÁ POVOLENÁ VÝJIMKA z design tokenů (/dallmayr-design) v celém projektu:
   bílá plotna (#fff) a černé moduly (#000) jsou natvrdo. Není to stylová volba, ale FUNKČNÍ
   požadavek čtečky (AK 11): kdyby plotna dědila --mud-palette-surface, v Dark mode by se QR
   invertoval (bílé moduly na tmavém) a část HW čteček by ho nepřečetla. Ze stejného důvodu je
   zakázané filter: invert(), opacity < 1 i mix-blend-mode.
   Všechno ostatní (texty, badge) jde přes MudBlazor tokeny. */

.qr-zoom[b-a12s16m7ic] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

/* ─── Bílá plotna ───────────────────────────────────────────────────────────────────── */

.qr-plate[b-a12s16m7ic] {
    /* Hranu QR nese custom property --qr-size (dědí se do QrMatrix přes hranici CSS izolace):
       160 px na desktopu, 35 % šířky na úzkém displeji. Na 13místný EAN vychází ~5 px/modul,
       tedy stále bezpečně nad hranicí čitelnosti z displeje (dno je ~3 px/modul).
       Tisk má vlastní rozměr v mm níže — ten se nemění. */
    --qr-size: min(160px, 35vw);
    --qr-pad: 12px;
    display: block;
    padding: var(--qr-pad);
    border-radius: 4px;
    line-height: 0;
    /* viz komentář v hlavičce souboru — funkční požadavek čtečky, ne stylová volba */
    background: #fff;
    /* Prstenec přes box-shadow (ne border), aby se nezměnil box model a neposunula velikost QR;
       elevation odděluje bílou plotnu od tmavého povrchu v Dark mode („papírový štítek"). */
    box-shadow: 0 0 0 1px var(--mud-palette-lines-default);
    /* Bez tohohle by Windows High Contrast přebarvil moduly systémovou paletou a kód by zmizel. */
    forced-color-adjust: none;
}

:root[data-theme="dark"] .qr-plate[b-a12s16m7ic] {
    box-shadow: 0 0 0 1px var(--mud-palette-lines-default), var(--mud-elevation-2);
}

/* ─── Texty ─────────────────────────────────────────────────────────────────────────── */

.qr-caption[b-a12s16m7ic] {
    font-size: 0.875rem;
    line-height: 1.2;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

/* Textový opis je nositel informace (nadiktovat / opsat / Ctrl+C), ne dekorace → text-primary
   a user-select: all, aby jedno kliknutí vybralo celý kód. */
.qr-code[b-a12s16m7ic] {
    font-size: 1rem;
    font-family: ui-monospace, Consolas, monospace;
    letter-spacing: .04em;
    color: var(--mud-palette-text-primary);
    user-select: all;
    word-break: break-all;
    text-align: center;
}

/* ─── Badge MJ (vzor .iu-tag z ItemUnitsDialog) ─────────────────────────────────────── */

.qr-badge[b-a12s16m7ic] {
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 500;
    white-space: nowrap;
    color: var(--mud-palette-text-secondary);
    background-color: var(--mud-palette-action-default-hover);
}

/* ─── Tisk (AK 10) ──────────────────────────────────────────────────────────────────── */

@media print {
    /* Prohlížeče defaultně netisknou barvy pozadí → bez tohohle by v Dark mode zmizela bílá
       plotna a černé moduly by se tiskly na tmavý/průhledný podklad. */
    .qr-plate[b-a12s16m7ic] {
        background: #fff;
        box-shadow: none;
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }

    /* QR rozdělený mezi dvě stránky nepřečte žádná čtečka. */
    .qr-zoom[b-a12s16m7ic] {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .qr-code[b-a12s16m7ic] {
        color: #000;
    }
}
/* /Components/Shared/SealDirectionCell.razor.rz.scp.css */
/* Chip směru pečeti — kompaktní, ať se vejde do řádku gridu. */
.seal-dir-chip[b-i30guxx02r] {
    height: 22px;
    font-size: 0.72rem;
}
/* /Components/Shared/SelloutTimeCell.razor.rz.scp.css */
/* Víceřádková buňka predikce: hodnota (čas + odpočet pod sebou) a vedle ní ikona odkazu na detail. */
.sellout-cell[b-3vapq44nw0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    white-space: nowrap;
}

.sellout-value[b-3vapq44nw0] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    min-width: 7.5rem;
}

.sellout-time[b-3vapq44nw0] {
    font-weight: 500;
}

.sellout-sub[b-3vapq44nw0] {
    font-size: 0.75rem;
}

.sellout-muted[b-3vapq44nw0] {
    color: var(--mud-palette-text-secondary);
}

.sellout-detail-link[b-3vapq44nw0] {
    display: inline-flex;
    align-items: center;
}
/* /Components/Shared/StackedCell.razor.rz.scp.css */
.stacked[b-2ov8vi4yha] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    line-height: 1.25;
}

/* Hlavní řádek (datum+čas, počet) — celý na jednom řádku, neláme se. */
.stacked-main[b-2ov8vi4yha] {
    white-space: nowrap;
}

/* Podřádek (jméno, x/den) — menší, ztlumený, taky na svém řádku. */
.stacked-sub[b-2ov8vi4yha] {
    font-size: 0.72rem;
    opacity: 0.7;
    white-space: nowrap;
}

/* Číselná varianta — zarovnání vpravo a stejná šířka číslic (zarovnání řádů pod sebou). */
.stacked-num[b-2ov8vi4yha] {
    align-items: flex-end;
    font-variant-numeric: tabular-nums;
}

/* Sémantické zabarvení hlavní hodnoty — jen theme tokeny, nikdy raw hex. */
.stacked-success .stacked-main[b-2ov8vi4yha] {
    color: var(--mud-palette-success);
    font-weight: 500;
}

.stacked-warning .stacked-main[b-2ov8vi4yha] {
    color: var(--mud-palette-warning);
    font-weight: 500;
}

.stacked-error .stacked-main[b-2ov8vi4yha] {
    color: var(--mud-palette-error);
    font-weight: 500;
}

.stacked-info .stacked-main[b-2ov8vi4yha] {
    color: var(--mud-palette-info);
    font-weight: 500;
}
/* /Components/Shared/StockChangeDeltaCell.razor.rz.scp.css */
.delta-cell[b-9w2o6sz6kz] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    white-space: nowrap;
}

/* Barva se propisuje na text i (přes currentColor) na MudIcon uvnitř. */
.delta-pos[b-9w2o6sz6kz] {
    color: var(--mud-palette-success);
}

.delta-neg[b-9w2o6sz6kz] {
    color: var(--mud-palette-error);
}

.delta-zero[b-9w2o6sz6kz] {
    color: var(--mud-palette-text-secondary);
    font-weight: 500;
}

.delta-icon[b-9w2o6sz6kz] {
    font-size: 1rem;
}

.delta-unit[b-9w2o6sz6kz] {
    margin-left: 2px;
    font-size: 0.78rem;
    font-weight: 400;
    color: var(--mud-palette-text-secondary);
}
/* /Components/Shared/UomRef.razor.rz.scp.css */
/* Klikací měrná jednotka v buňce tabulky (DALL-1307).
   Vlastní komponenta s vlastním CSS — page-level ::deep se do buněk MudDataGrid nepropíše. */

.uom-ref-wrap[b-8o0vhwyrkp] {
    display: inline;
}

.uom-ref[b-8o0vhwyrkp] {
    font-size: inherit;
    line-height: inherit;
    text-align: inherit;
    vertical-align: baseline;
}
/* /Components/Shared/VisitDocumentFrame.razor.rz.scp.css */
/* Report je dokument — vlastní bílý podklad a rám, ať je poznat, kde končí aplikace a začíná
   archivní tisková sestava. Pevná výška s vnitřním scrollem: obsah je uvnitř iframu a jeho
   skutečnou výšku by šlo zjistit jen JS měřením přes hranici sandboxu. */
.visit-doc-frame[b-8ofn8nftnw] {
    display: block;
    width: 100%;
    height: 460px;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background: var(--mud-palette-white);
}
/* /Components/Shared/WarehouseRefLinks.razor.rz.scp.css */
.warehouse-refs[b-o6rjhi70nu] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.warehouse-ref[b-o6rjhi70nu] {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    line-height: 1.25;
}

.warehouse-ref-code[b-o6rjhi70nu] {
    font-weight: 600;
}

.warehouse-ref-name[b-o6rjhi70nu] {
    font-size: 0.8rem;
    color: var(--mud-palette-text-secondary);
}
