/* _content/VendControl.Web/Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-aa4l4paga4] {
    position: relative;
    display: flex;
    flex-direction: column;
    max-width: 100%;
    overflow-x: clip;
}

main[b-aa4l4paga4] {
    flex: 1;
    min-width: 0;
}

article.content[b-aa4l4paga4] { container-name: page-content; container-type: inline-size; min-width: 0; }

.sidebar[b-aa4l4paga4] {
    background-image: var(--sidebar-background);
    display: flex;
    flex-direction: column;
}

@media (min-width: 641px) {
    .page[b-aa4l4paga4] {
        flex-direction: row;
    }

    .sidebar[b-aa4l4paga4] {
        width: 250px;
        flex: 0 0 250px;
        height: 100vh;
        position: sticky;
        top: 0;
        transition: flex-basis 0.15s ease, width 0.15s ease;
    }

    html.sidebar-collapsed .sidebar[b-aa4l4paga4] {
        width: 4.5rem;
        flex-basis: 4.5rem;
    }

    @media (max-width: 1023.98px) {
        html:not(.sidebar-expanded) .sidebar[b-aa4l4paga4] {
            width: 4.5rem;
            flex-basis: 4.5rem;
        }
    }

    article[b-aa4l4paga4] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-aa4l4paga4] {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-aa4l4paga4] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}
/* _content/VendControl.Web/Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-4whxnb7gmm] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-4whxnb7gmm] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-4whxnb7gmm] {
    height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
    /* Padding trzymamy tutaj, a nie klasa ps-3 z Bootstrapa: ta ustawia go przez
       !important, wiec stan zwiniety nie mial jak go wyzerowac bez drugiego !important. */
    padding-left: 1rem;
}

.navbar-brand[b-4whxnb7gmm] {
    font-size: 1.1rem;
}

.top-row .container-fluid[b-4whxnb7gmm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sidebar-header-actions[b-4whxnb7gmm] {
    display: flex;
    align-items: center;
    gap: .35rem;
}

.theme-toggle[b-4whxnb7gmm] { line-height: 1; }
.theme-moon[b-4whxnb7gmm] { display: none; }
:root[data-theme="dark"] .theme-moon[b-4whxnb7gmm] { display: inline; }
:root[data-theme="dark"] [data-theme-toggle][b-4whxnb7gmm] { font-size: 0; }
:root[data-theme="dark"] [data-theme-toggle] .theme-moon[b-4whxnb7gmm] { font-size: 1rem; }

.sidebar-toggle[b-4whxnb7gmm] {
    line-height: 1;
}

.sidebar-toggle-collapsed[b-4whxnb7gmm] {
    display: none;
}

.bi[b-4whxnb7gmm] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.bi-check2-square-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M3 1.5a1.5 1.5 0 0 0-1.5 1.5v10A1.5 1.5 0 0 0 3 14.5h10a1.5 1.5 0 0 0 1.5-1.5V8a.5.5 0 0 0-1 0v5a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V3a.5.5 0 0 1 .5-.5h7a.5.5 0 0 0 0-1H3z'/%3E%3Cpath d='m4.854 7.146 2 2a.5.5 0 0 0 .708 0l6-6a.5.5 0 0 0-.708-.708L7.207 8.086 5.56 6.439a.5.5 0 1 0-.707.707z'/%3E%3C/svg%3E");
}

.nav-badge[b-4whxnb7gmm] {
    margin-left: .4rem;
    vertical-align: middle;
}

.bi-box-seam-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M8.186.113a.5.5 0 0 0-.372 0L1.846 2.347l2.404.901L10.404 1 8.186.113zM11.74 1.535 5.568 3.85 8 4.761l6.154-2.307-2.414-.92zM15 3.19l-6.5 2.438v9.069l6.5-2.438V3.19zM7.5 14.697V5.628L1 3.19v9.069l6.5 2.438zM.646 2.347 7.5 4.917v9.78L.323 12.006A.5.5 0 0 1 0 11.538V2.816a.5.5 0 0 1 .646-.469z'/%3E%3C/svg%3E");
}

.bi-grid-3x3-gap-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M1 1h4v4H1V1zm5 0h4v4H6V1zm5 0h4v4h-4V1zM1 6h4v4H1V6zm5 0h4v4H6V6zm5 0h4v4h-4V6zM1 11h4v4H1v-4zm5 0h4v4H6v-4zm5 0h4v4h-4v-4z'/%3E%3C/svg%3E");
}

.bi-truck-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M0 3.5A1.5 1.5 0 0 1 1.5 2h9A1.5 1.5 0 0 1 12 3.5V5h1.02a1.5 1.5 0 0 1 1.17.563l1.481 1.85a1.5 1.5 0 0 1 .329.938V10.5a1.5 1.5 0 0 1-1.5 1.5H14a2 2 0 1 1-4 0H5a2 2 0 1 1-3.998-.085A1.5 1.5 0 0 1 0 10.5v-7zm1.294 7.456A1.999 1.999 0 0 1 4.732 11h5.536a2.01 2.01 0 0 1 .732-.732V3.5a.5.5 0 0 0-.5-.5h-9a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 .294.456zM12 10a2 2 0 0 1 1.732 1h.768a.5.5 0 0 0 .5-.5V8.35a.5.5 0 0 0-.11-.312l-1.48-1.85A.5.5 0 0 0 13.02 6H12v4zm-9 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm9 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2z'/%3E%3C/svg%3E");
}

.bi-arrow-repeat-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M11.534 7h1.204A5.002 5.002 0 0 0 3.545 5.147.5.5 0 1 1 2.67 4.663 6.002 6.002 0 0 1 13.73 7h1.27a.5.5 0 0 1 .354.854l-1.75 1.75a.5.5 0 0 1-.708 0l-1.75-1.75A.5.5 0 0 1 11.534 7ZM4.466 9H3.262a5.002 5.002 0 0 0 9.193 1.853.5.5 0 1 1 .875.484A6.002 6.002 0 0 1 2.27 9H1a.5.5 0 0 1-.354-.854l1.75-1.75a.5.5 0 0 1 .708 0l1.75 1.75A.5.5 0 0 1 4.466 9Z'/%3E%3C/svg%3E");
}
.bi-bar-chart-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M1 14.5a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 0-1H2V.5a.5.5 0 0 0-1 0z'/%3E%3Cpath d='M3 13h2V7H3zm4 0h2V3H7zm4 0h2V5h-2z'/%3E%3C/svg%3E");
}

.bi-key-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 11a3.5 3.5 0 1 1 2.45-5.999L16 5v2h-2v2h-2V7h-1.05l-2.1 2.1A3.49 3.49 0 0 1 3.5 11zm0-1a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z'/%3E%3C/svg%3E");
}

.bi-door-exit-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M3 1.5A1.5 1.5 0 0 1 4.5 0h5A1.5 1.5 0 0 1 11 1.5v3h-1v-3a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5v-3h1v3A1.5 1.5 0 0 1 9.5 16h-5A1.5 1.5 0 0 1 3 14.5v-13zM8.146 8.146a.5.5 0 0 1 .708 0l2 2a.5.5 0 0 1-.708.708L9 9.707V13.5a.5.5 0 0 1-1 0V9.707l-1.146 1.147a.5.5 0 1 1-.708-.708l2-2z'/%3E%3C/svg%3E");
}

.nav-item[b-4whxnb7gmm] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

.nav-section[b-4whxnb7gmm] {
    color: #b9c5cc;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    padding-top: .9rem;
    text-transform: uppercase;
}

    .nav-item:first-of-type[b-4whxnb7gmm] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-4whxnb7gmm] {
        padding-bottom: 1rem;
    }

    .nav-item[b-4whxnb7gmm]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
    }

.nav-item[b-4whxnb7gmm]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-4whxnb7gmm]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

.nav-scrollable[b-4whxnb7gmm] {
    display: none;
    overflow-x: hidden;
}

.sidebar-footer[b-4whxnb7gmm] {
    border-top: 1px solid var(--surface-border);
    margin-top: auto;
}

.sidebar-logout-form[b-4whxnb7gmm] {
    margin: 0;
    width: 100%;
}

.sidebar-logout-form .nav-link[b-4whxnb7gmm] {
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.navbar-toggler:checked ~ .nav-scrollable[b-4whxnb7gmm] {
    display: flex;
    flex-direction: column;
}

@media (min-width: 641px) {
    .navbar-toggler[b-4whxnb7gmm] {
        display: none;
    }

    .nav-scrollable[b-4whxnb7gmm] {
        /* Never collapse the sidebar for wide screens */
        display: flex;
        flex: 1;
        flex-direction: column;
        min-height: 0;

        /* Allow sidebar to scroll for tall menus */
        overflow-y: auto;
        scrollbar-gutter: stable;
    }

    html.sidebar-collapsed .brand-label[b-4whxnb7gmm],
    html.sidebar-collapsed .nav-label[b-4whxnb7gmm],
    html.sidebar-collapsed .nav-section[b-4whxnb7gmm] {
        display: none;
    }

    html.sidebar-collapsed .top-row[b-4whxnb7gmm] {
        height: auto;
        /* Klasa ps-3 z markupu daje 1 rem paddingu od lewej, przez co para przyciskow
           nie centruje sie w szynie, tylko dotyka prawej krawedzi. */
        padding-left: 0;
        padding-right: 0;
    }

    /* Przelacznik motywu zostaje PO LEWEJ od strzalek takze w stanie zwinietym: 44 px to
       wysokosc celu dotykowego, nie szerokosc — oba przyciski maja po ~27 px, wiec razem
       z odstepem mieszcza sie w pasku 4,5 rem. Ustawianie ich jeden nad drugim bylo
       poprawka na problem, ktorego nie ma. */
    html.sidebar-collapsed .sidebar-header-actions[b-4whxnb7gmm] {
        flex-direction: row;
        gap: .2rem;
    }

    /* Marka bez etykiety zostaje pustym linkiem, ktory nadal zajmuje szerokosc i spycha
       przyciski do prawej krawedzi szyny. W stanie zwinietym znika w calosci — rola
       "powrot na start" nalezy tam do pozycji Start na liscie. */
    html.sidebar-collapsed .navbar-brand[b-4whxnb7gmm] {
        display: none;
    }

    html.sidebar-collapsed .top-row .container-fluid[b-4whxnb7gmm] {
        justify-content: center;
        padding-left: 0;
        padding-right: 0;
    }

    html.sidebar-collapsed .sidebar-toggle-expanded[b-4whxnb7gmm] {
        display: none;
    }

    html.sidebar-collapsed .sidebar-toggle-collapsed[b-4whxnb7gmm] {
        display: inline;
    }

    html.sidebar-collapsed .nav-item[b-4whxnb7gmm] {
        padding-left: .25rem !important;
        padding-right: .25rem !important;
    }

    html.sidebar-collapsed .nav-item[b-4whxnb7gmm]  .nav-link {
        justify-content: center;
        padding-inline: 0;
    }

    html.sidebar-collapsed .nav-item .bi[b-4whxnb7gmm] {
        margin-right: 0;
    }

    /* Zwiniete menu: licznik zadan jako plakietka na ikonie (prawy dolny rog) zamiast
       znikac razem z etykieta. Punktem odniesienia jest sam odnosnik - stad ::deep,
       bo .nav-link rysuje komponent NavLink, a plakietka jest juz w markupie tego pliku. */
    html.sidebar-collapsed .nav-item[b-4whxnb7gmm]  .nav-link { position: relative; }

    html.sidebar-collapsed .nav-badge[b-4whxnb7gmm] {
        position: absolute;
        top: 1.45rem;
        left: calc(50% + .05rem);
        margin-left: 0;
        font-size: .62rem;
        line-height: 1;
        padding: .18rem .3rem;
        box-shadow: 0 0 0 .12rem rgba(0, 0, 0, .45);
    }

    /* Zwiniecie automatyczne ponizej 1024 px zwezalo sam pasek, ale reguly prezentacji
       wisialy wylacznie na klasie sidebar-collapsed — bez jawnego wyboru uzytkownika
       etykiety zostawaly na miejscu i byly przycinane w pasku o szerokosci 4,5 rem,
       czyli dokladnie ta usterka, ktora zglosili testerzy. Ten sam wyglad musi
       obowiazywac w obu drogach do stanu zwinietego. */
    @media (max-width: 1023.98px) {
        html:not(.sidebar-expanded) .brand-label[b-4whxnb7gmm],
        html:not(.sidebar-expanded) .nav-label[b-4whxnb7gmm],
        html:not(.sidebar-expanded) .nav-section[b-4whxnb7gmm] {
            display: none;
        }

        html:not(.sidebar-expanded) .top-row[b-4whxnb7gmm] {
            height: auto;
            padding-left: 0;
            padding-right: 0;
        }

        html:not(.sidebar-expanded) .sidebar-header-actions[b-4whxnb7gmm] {
            flex-direction: row;
            gap: .2rem;
        }

        html:not(.sidebar-expanded) .navbar-brand[b-4whxnb7gmm] {
            display: none;
        }

        html:not(.sidebar-expanded) .top-row .container-fluid[b-4whxnb7gmm] {
            justify-content: center;
            padding-left: 0;
            padding-right: 0;
        }

        html:not(.sidebar-expanded) .sidebar-toggle-expanded[b-4whxnb7gmm] {
            display: none;
        }

        html:not(.sidebar-expanded) .sidebar-toggle-collapsed[b-4whxnb7gmm] {
            display: inline;
        }

        html:not(.sidebar-expanded) .nav-item[b-4whxnb7gmm] {
            padding-left: .25rem !important;
            padding-right: .25rem !important;
        }

        html:not(.sidebar-expanded) .nav-item[b-4whxnb7gmm]  .nav-link {
            justify-content: center;
            padding-inline: 0;
        }

        html:not(.sidebar-expanded) .nav-item .bi[b-4whxnb7gmm] {
            margin-right: 0;
        }

        html:not(.sidebar-expanded) .nav-item[b-4whxnb7gmm]  .nav-link { position: relative; }

        html:not(.sidebar-expanded) .nav-badge[b-4whxnb7gmm] {
            position: absolute;
            top: 1.45rem;
            left: calc(50% + .05rem);
            margin-left: 0;
            font-size: .62rem;
            line-height: 1;
            padding: .18rem .3rem;
            box-shadow: 0 0 0 .12rem rgba(0, 0, 0, .45);
        }
    }
}

@media (max-width: 640.98px) {
    .sidebar-toggle[b-4whxnb7gmm] {
        display: none;
    }

    /* Hamburger to checkbox pozycjonowany absolutnie 1 rem od prawej krawedzi ekranu
       (szerokosc 3,5 rem), a grupa akcji w pasku dochodzila do tej samej krawedzi —
       przycisk motywu wchodzil na hamburger. Odsuwamy grupe o szerokosc hamburgera
       wraz z jego marginesem, liczac od wewnetrznej krawedzi .container-fluid. */
    .sidebar-header-actions[b-4whxnb7gmm] {
        margin-right: 4.4rem;
    }
}

/* Numer wersji nad linia oddzielajaca stopke menu. Powstal, bo przy zgloszeniach z produkcji
   nie dalo sie ustalic, czy dana instancja ma juz omawiana poprawke. Rozwiniete menu: dwa
   wiersze (wersja ze skrotem commita, data wdrozenia) — jeden wiersz nie miescil sie w pasku.
   Zwiniete menu: pelna etykieta znika razem z pozostalymi .nav-label, a w szynie zostaje sam
   skrot commita (.sidebar-version-compact); pelna wartosc jest w atrybucie title. */
.sidebar-version[b-4whxnb7gmm] {
    color: #8fa0ab;
    font-size: .7rem;
    letter-spacing: .02em;
    padding-bottom: .35rem;
    padding-top: .5rem;
    white-space: nowrap;
}

.sidebar-version-full[b-4whxnb7gmm] {
    display: flex;
    flex-direction: column;
    line-height: 1.35;
}

.sidebar-version-date[b-4whxnb7gmm] {
    opacity: .85;
}

.sidebar-version-compact[b-4whxnb7gmm] {
    display: none;
    font-size: .62rem;
    letter-spacing: 0;
    text-align: center;
}

@media (min-width: 641px) {
    html.sidebar-collapsed .sidebar-version-compact[b-4whxnb7gmm] {
        display: block;
    }

    @media (max-width: 1023.98px) {
        html:not(.sidebar-expanded) .sidebar-version-compact[b-4whxnb7gmm] {
            display: block;
        }
    }
}

/* Zalogowany login nad "Zmien haslo" (wlasciciel, 2026-09-06): ten sam uklad co pozycje menu,
   ale bez odnosnika - to informacja, nie akcja. W zwinietym menu zostaje sama ikona z title. */
.sidebar-user[b-4whxnb7gmm] {
    cursor: default;
    opacity: .85;
}

.bi-person-nav-menu[b-4whxnb7gmm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3C/svg%3E");
}
/* _content/VendControl.Web/Components/Pages/CalendarTasks.razor.rz.scp.css */
.calendar-task-list[b-geawm0u2y8] { min-width: 42rem; }
.calendar-task-row[b-geawm0u2y8] { cursor: pointer; }
.calendar-task-row:focus-visible[b-geawm0u2y8] { outline: 3px solid rgba(var(--bs-primary-rgb), .45); outline-offset: -3px; }
.calendar-task-detail td[b-geawm0u2y8] { background: var(--surface-muted); }
.calendar-task-description[b-geawm0u2y8] { white-space: pre-wrap; }
.table-folded[b-geawm0u2y8] { display: none; }

@container page-content (max-width: 899.98px) {
    .calendar-task-list[b-geawm0u2y8] { min-width: 0; }
    .calendar-task-list .fold-column[b-geawm0u2y8] { display: none; }
    .calendar-task-list .table-folded[b-geawm0u2y8] { color: var(--text-muted); display: grid; font-size: .875rem; gap: .15rem; margin-top: .25rem; }
}
.calendar-task-label[b-geawm0u2y8] { color: var(--text-muted); font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }
.calendar-task-done[b-geawm0u2y8] { border-top: 1px solid var(--surface-border); margin-top: .75rem; padding-top: .6rem; }
/* _content/VendControl.Web/Components/Pages/Home.razor.rz.scp.css */
/* Kafelek zlecenia na pulpicie.

   Hierarchia jest odwrócona względem pierwszej wersji: NAJWIĘKSZA jest nazwa automatu, bo to
   ona odpowiada na pytanie „gdzie mam iść". Data zeszła do drugiego planu, a numer zlecenia
   do rogu — jest potrzebny przy rozmowie z centralą, a nie przy wybieraniu zlecenia z listy.

   Rodzaj zlecenia niosą trzy nośniki naraz: pasek koloru przy lewej krawędzi, ikona (ta sama
   co w menu bocznym) i słowo. Kolor sam w sobie nie wystarcza — odpada przy daltonizmie
   i na wydruku. */

.dashboard-card[b-9k51lmyfp5] {
    /* Pasek rodzaju jako cień WEWNĘTRZNY, nie obramowanie: obramowanie kafelka niesie już
       stan (żółte „w trakcie", czerwone „zaległe") i te dwa znaczenia nie mogą walczyć
       o tę samą krawędź. */
    box-shadow: inset 0.3rem 0 0 var(--dashboard-kind-accent);
    padding-left: 0.3rem;
    transition: box-shadow 120ms ease-in-out, transform 120ms ease-in-out;
}

.dashboard-calendar-task-card[b-9k51lmyfp5] {
    border-left: .3rem solid #198754;
    color: var(--text-primary);
    transition: box-shadow 120ms ease-in-out, transform 120ms ease-in-out;
}

.dashboard-calendar-task-card:hover[b-9k51lmyfp5],
.dashboard-calendar-task-card:focus-visible[b-9k51lmyfp5] {
    box-shadow: 0 0.25rem 0.75rem rgb(0 0 0 / 12%);
    color: var(--text-primary);
}

.dashboard-card:hover[b-9k51lmyfp5], .dashboard-card:focus-within[b-9k51lmyfp5] {
    box-shadow: inset 0.3rem 0 0 var(--dashboard-kind-accent), 0 0.25rem 0.75rem rgb(0 0 0 / 12%);
}

.dashboard-kind-restock[b-9k51lmyfp5] {
    --dashboard-kind-accent: #0a58ca;
    --dashboard-kind-text: #0a58ca;
    --dashboard-kind-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M0 3.5A1.5 1.5 0 0 1 1.5 2h9A1.5 1.5 0 0 1 12 3.5V5h1.02a1.5 1.5 0 0 1 1.17.563l1.481 1.85a1.5 1.5 0 0 1 .329.938V10.5a1.5 1.5 0 0 1-1.5 1.5H14a2 2 0 1 1-4 0H5a2 2 0 1 1-3.998-.085A1.5 1.5 0 0 1 0 10.5v-7zm1.294 7.456A1.999 1.999 0 0 1 4.732 11h5.536a2.01 2.01 0 0 1 .732-.732V3.5a.5.5 0 0 0-.5-.5h-9a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 .294.456zM12 10a2 2 0 0 1 1.732 1h.768a.5.5 0 0 0 .5-.5V8.35a.5.5 0 0 0-.11-.312l-1.48-1.85A.5.5 0 0 0 13.02 6H12v4zm-9 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm9 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2z'/%3E%3C/svg%3E");
}

.dashboard-kind-update[b-9k51lmyfp5] {
    --dashboard-kind-accent: #6f42c1;
    --dashboard-kind-text: #59379b;
    --dashboard-kind-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M11.534 7h1.204A5.002 5.002 0 0 0 3.545 5.147.5.5 0 1 1 2.67 4.663 6.002 6.002 0 0 1 13.73 7h1.27a.5.5 0 0 1 .354.854l-1.75 1.75a.5.5 0 0 1-.708 0l-1.75-1.75A.5.5 0 0 1 11.534 7ZM4.466 9H3.262a5.002 5.002 0 0 0 9.193 1.853.5.5 0 1 1 .875.484A6.002 6.002 0 0 1 2.27 9H1a.5.5 0 0 1-.354-.854l1.75-1.75a.5.5 0 0 1 .708 0l1.75 1.75A.5.5 0 0 1 4.466 9Z'/%3E%3C/svg%3E");
}

/* Ciemny motyw: te same barwy są na ciemnym tle nieczytelne. Akcent rozjaśniamy, bo pasek
   ma być widoczny, a tekst jeszcze bardziej, bo musi przejść kontrast na tle kafelka. */
[data-theme="dark"] .dashboard-kind-restock[b-9k51lmyfp5] { --dashboard-kind-accent: #6ea8fe; --dashboard-kind-text: #9ec5fe; }
[data-theme="dark"] .dashboard-kind-update[b-9k51lmyfp5] { --dashboard-kind-accent: #b98cff; --dashboard-kind-text: #d3bbff; }

.dashboard-kind-row[b-9k51lmyfp5] {
    align-items: center;
    display: flex;
    gap: 0.4rem;
}

/* Ikona jako MASKA, nie obrazek: jedna definicja obsługuje oba motywy, bo kolor bierze
   się z akcentu rodzaju zamiast siedzieć zaszyty w samym SVG. */
.dashboard-kind-icon[b-9k51lmyfp5] {
    background-color: var(--dashboard-kind-accent);
    flex: 0 0 auto;
    height: 1rem;
    mask: var(--dashboard-kind-icon) center / contain no-repeat;
    -webkit-mask: var(--dashboard-kind-icon) center / contain no-repeat;
    width: 1rem;
}

.dashboard-kind-label[b-9k51lmyfp5] {
    color: var(--dashboard-kind-text);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.dashboard-number[b-9k51lmyfp5] {
    color: var(--text-muted);
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    margin-left: auto;
    white-space: nowrap;
}

/* Nazwa automatu jest największym elementem kafelka — to ona mówi, gdzie iść. */
.dashboard-machine[b-9k51lmyfp5] {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.25;
    margin-top: 0.35rem;
    overflow-wrap: anywhere;
}

.dashboard-when[b-9k51lmyfp5] {
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
    margin-top: 0.15rem;
}

.dashboard-when-overdue[b-9k51lmyfp5] { color: var(--status-negative-text); font-weight: 600; }

.dashboard-meta[b-9k51lmyfp5] { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.6rem; }

.dashboard-subtitle[b-9k51lmyfp5] { color: var(--text-muted); display: block; margin-top: 0.5rem; }

/* Przycisk przyklejony do dołu: kafelki w wierszu mają różną wysokość treści, a rząd
   przycisków na jednej linii czyta się jak lista, nie jak zbiór osobnych obrazków. */
.dashboard-card .card-body[b-9k51lmyfp5] { display: flex; flex-direction: column; }
.dashboard-action[b-9k51lmyfp5] { margin-top: auto; padding-top: 0.75rem; }
/* _content/VendControl.Web/Components/Pages/LocalStock.razor.rz.scp.css */
.local-stock-page[b-esv3kby1xd] {
    display: grid;
    gap: 1rem;
}

.local-stock-header[b-esv3kby1xd] {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.stock-filter[b-esv3kby1xd] {
    max-width: 48rem;
}

.stock-state[b-esv3kby1xd],
.stock-empty[b-esv3kby1xd] {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: .75rem;
    justify-content: center;
    min-height: 8rem;
    padding: 2rem;
    text-align: center;
}

.stock-empty[b-esv3kby1xd] {
    flex-direction: column;
}

.stock-table-card[b-esv3kby1xd] {
    overflow: hidden;
}

.stock-grid[b-esv3kby1xd] { table-layout: fixed; width: 100%; }
.table-folded[b-esv3kby1xd] { display: none; }

.stock-grid thead th[b-esv3kby1xd] {
    background: var(--bs-tertiary-bg);
    font-size: .8rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.stock-grid th button[b-esv3kby1xd] {
    background: transparent;
    border: 0;
    color: inherit;
    font: inherit;
    padding: .25rem 0;
    text-transform: inherit;
}

.stock-row[b-esv3kby1xd] {
    cursor: pointer;
}

.stock-row:focus-visible[b-esv3kby1xd] {
    outline: 3px solid rgba(var(--bs-primary-rgb), .45);
    outline-offset: -3px;
}

.stock-quantity[b-esv3kby1xd] {
    border-radius: .25rem;
    display: inline-block;
    font-weight: 600;
    padding: .25rem .5rem;
    white-space: nowrap;
}

.stock-quantity-positive[b-esv3kby1xd] {
    background: var(--status-positive-background);
    color: var(--status-positive-text);
}

.stock-quantity-zero[b-esv3kby1xd] {
    background: var(--status-neutral-background);
    color: var(--status-neutral-text);
}

.stock-quantity-negative[b-esv3kby1xd] {
    background: var(--status-negative-background);
    color: var(--status-negative-text);
}

.stock-table-footer[b-esv3kby1xd],
.stock-pagination[b-esv3kby1xd] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.stock-table-footer[b-esv3kby1xd] {
    border-top: var(--bs-border-width) solid var(--bs-border-color);
    justify-content: space-between;
    padding: .75rem 1rem;
}

.stock-pagination select[b-esv3kby1xd] {
    width: auto;
}

@media (max-width: 640px) {
    .stock-filter .input-group[b-esv3kby1xd] {
        display: grid;
        gap: .5rem;
        grid-template-columns: 1fr;
    }

    .stock-filter .form-control[b-esv3kby1xd],
    .stock-filter .btn[b-esv3kby1xd] {
        border-radius: .25rem !important;
        width: 100%;
    }
}

@container page-content (max-width: 899.98px) {
    .stock-grid .fold-column[b-esv3kby1xd] { display: none; }
    .stock-grid .table-folded[b-esv3kby1xd] { color: var(--text-muted); display: grid; font-size: .875rem; gap: .15rem; margin-top: .25rem; }
}
/* _content/VendControl.Web/Components/Pages/LocalStockProduct.razor.rz.scp.css */
.local-stock-product-page[b-wwtze3jfr1] {
    display: grid;
    gap: 1rem;
}

.product-state[b-wwtze3jfr1] {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: .75rem;
    justify-content: center;
    min-height: 8rem;
    padding: 2rem;
}

.product-header[b-wwtze3jfr1] {
    align-items: center;
    display: grid;
    gap: 1rem;
    grid-template-columns: auto minmax(0, 1fr);
}

.product-stock-summary[b-wwtze3jfr1] {
    display: grid;
    gap: 1rem 2rem;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
}

.product-overview .detail-metadata[b-wwtze3jfr1] {
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}

.product-stock-summary > div[b-wwtze3jfr1] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.product-stock-summary span[b-wwtze3jfr1] {
    color: var(--bs-secondary-color);
    font-size: .8rem;
    text-transform: uppercase;
}

.stock-quantity[b-wwtze3jfr1] {
    border-radius: .25rem;
    display: inline-block;
    padding: .25rem .5rem;
    width: fit-content;
}

.stock-quantity-positive[b-wwtze3jfr1] {
    background: var(--status-positive-background);
    color: var(--status-positive-text);
}

.stock-quantity-zero[b-wwtze3jfr1] {
    background: var(--status-neutral-background);
    color: var(--status-neutral-text);
}

.stock-quantity-negative[b-wwtze3jfr1] {
    background: var(--status-negative-background);
    color: var(--status-negative-text);
}

@media (max-width: 700px) {
    .product-header[b-wwtze3jfr1] {
        justify-items: center;
        grid-template-columns: 1fr;
        text-align: center;
    }
}
/* _content/VendControl.Web/Components/Pages/SalesReport.razor.rz.scp.css */
.sales-chart[b-guj44wmiay] { width: 100%; height: 220px; color: var(--text-secondary); }
.sales-bar[b-guj44wmiay] { fill: var(--accent, #198754); }
/* _content/VendControl.Web/Components/Pages/Stores.razor.rz.scp.css */
.base-store-card[b-udo78w24k2] {
    max-width: 42rem;
    border-left: 0.3rem solid var(--bs-primary);
}

.store-card-link[b-udo78w24k2] {
    color: inherit;
    text-decoration: none;
}

.store-card-link:hover[b-udo78w24k2],
.store-card-link:focus-visible[b-udo78w24k2] {
    border-color: var(--bs-primary);
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}

.machine-search[b-udo78w24k2] {
    width: min(100%, 24rem);
}

.machine-list[b-udo78w24k2] {
    max-height: 60vh;
    overflow-y: auto;
}

.machine-name[b-udo78w24k2] {
    overflow-wrap: anywhere;
}
/* _content/VendControl.Web/Components/Pages/VendingMachine.razor.rz.scp.css */
/* Karta automatu (uklad z 2026-09-07, uwaga wlasciciela o "scisnietym" ekranie laptopa):
   naglowek na cala szerokosc strony; ponizej siatka: tabela stanow bierze CALA reszte
   szerokosci, rysunek automatu swoja naturalna szerokosc (10 slotow x 5rem + panel boczny),
   a gdy jej brakuje - kurczy sie z wlasnym przewijaniem (.vending-viewport). Wczesniej
   justify-items:start ustawial naglowek na szerokosc tekstu, a tabela dostawala sztywna
   jedna trzecia (col-xl-4) obok rysunku o stalych wymiarach. */
.vending-machine-detail[b-svse992hc7] { display: grid; gap: 1rem; width: 100%; }
.vending-machine-detail > header[b-svse992hc7] { width: 100%; }
.machine-detail-layout[b-svse992hc7] { align-items: start; display: grid; gap: 1rem; grid-template-columns: minmax(24rem, 1fr) minmax(0, max-content); max-width: 100%; }
.machine-detail-layout > *[b-svse992hc7] { min-width: 0; }
/* Dwie kolumny dopiero, gdy obok rysunku (~940 px) zostaje sensowne miejsce na tabele;
   na laptopie 1366 px tabela ladowala w 384 px i nazwy lamaly sie na trzy linie. */
@media (max-width: 1599.98px) { .machine-detail-layout[b-svse992hc7] { grid-template-columns: 1fr; } }
.machine-stock[b-svse992hc7] { width: 100%; }
.machine-stock th[b-svse992hc7], .machine-stock td[b-svse992hc7] { white-space: nowrap; }
.machine-stock td:first-child[b-svse992hc7] { white-space: normal; }
.machine-stock[b-svse992hc7] { width: 100%; }
.machine-stock-viewport[b-svse992hc7] { max-width: 100%; overflow-x: auto; }
.machine-reported-zero[b-svse992hc7] { color: var(--status-negative-text); font-weight: 600; }
.machine-stock-mismatch[b-svse992hc7] { color: var(--status-negative-text) !important; font-weight: 600; }
.machine-fill-gauge[b-svse992hc7] { display:grid; gap:.2rem; min-width:8rem; }
.machine-fill-gauge .progress[b-svse992hc7] { height:.5rem; }
/* Cienki pasek dostepnosci w JEDNEJ linii z liczba (wlasciciel, 2026-09-06). Markup jest
   w .razor, nie w RenderTreeBuilder: elementy budowane recznie nie dostaja atrybutu izolacji
   CSS i te reguly by ich nie objely (tak wygladal pierwszy, "za duzy" pasek). */
.machine-availability[b-svse992hc7] { align-items: center; display: inline-flex; gap: .5rem; white-space: nowrap; }
.machine-availability .progress[b-svse992hc7] { height: .3rem; width: 5rem; }
.machine-availability small[b-svse992hc7] { color: var(--text-muted); min-width: 3rem; }
[b-svse992hc7] .vending-slot.vending-slot-reported-empty { background: var(--status-negative-background); border-color: var(--status-negative-text); color: var(--status-negative-text); }

/* Produkt, ktorego automat nie ma (stan 0 wg raportu): caly wiersz w kolorze stanu ujemnego,
   zeby pusty slot rzucal sie w oczy (wlasciciel, 2026-09-06). Tokeny maja wariant ciemny. */
.machine-stock tbody tr.machine-row-empty > td[b-svse992hc7],
.machine-stock .table-hover tbody tr.machine-row-empty:hover > td[b-svse992hc7] {
    background-color: var(--status-negative-background);
    color: var(--status-negative-text);
}
.machine-stock tbody tr.machine-row-empty .text-secondary[b-svse992hc7],
.machine-stock tbody tr.machine-row-empty small[b-svse992hc7] { color: var(--status-negative-text); opacity: .85; }
/* _content/VendControl.Web/Components/Pages/VendingMachines.razor.rz.scp.css */
.vending-machines-page[b-8to0dgt2fz], .vending-machine-detail[b-8to0dgt2fz] { display: grid; gap: 1rem; }
.vending-machine-search[b-8to0dgt2fz] { max-width: 42rem; }
.vending-machine-empty[b-8to0dgt2fz] { min-height: 8rem; display: grid; place-items: center; text-align: center; padding: 2rem; }
.vending-machine-table[b-8to0dgt2fz] { width: 100%; table-layout: fixed; }
.vending-machine-table th:first-child[b-8to0dgt2fz] { width: auto; }
.table-folded[b-8to0dgt2fz] { display: none; }
.vending-machine-row[b-8to0dgt2fz] { cursor: pointer; }
.machine-name[b-8to0dgt2fz] { display: inline-flex; flex-direction: column; }
.vending-machine-row:focus-visible[b-8to0dgt2fz] { outline: 3px solid rgba(var(--bs-primary-rgb), .45); outline-offset: -3px; }
.vending-grid-scroll[b-8to0dgt2fz] { overflow-x: auto; padding-bottom: .5rem; }
.vending-grid[b-8to0dgt2fz] { display: grid; gap: .6rem; min-width: max-content; padding: .25rem; }
.vending-grid-row[b-8to0dgt2fz] { display: flex; flex-wrap: nowrap; gap: .5rem; justify-content: center; }
.vending-slot[b-8to0dgt2fz] { background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: .35rem; display: grid; grid-template-rows: auto 58px minmax(2.5rem, auto) auto; gap: .2rem; min-height: 10.5rem; padding: .35rem; position: relative; width: 8.25rem; }
.vending-slot-empty[b-8to0dgt2fz] { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); grid-template-rows: auto 1fr; }
.vending-slot-code[b-8to0dgt2fz] { color: var(--bs-secondary-color); font-size: .75rem; }
.vending-slot-image[b-8to0dgt2fz] { height: 56px; justify-self: center; object-fit: contain; width: 56px; }
.vending-slot-image[src=""][b-8to0dgt2fz] { display: none; }
.vending-slot-product[b-8to0dgt2fz] { display: -webkit-box; font-size: .82rem; line-height: 1.2; overflow: hidden; text-align: center; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.vending-slot-price[b-8to0dgt2fz] { font-size: .85rem; text-align: center; }
.vending-slot-empty-label[b-8to0dgt2fz] { align-self: center; justify-self: center; }

@container page-content (max-width: 899.98px) {
    .vending-machine-table .fold-column[b-8to0dgt2fz] { display: none; }
    .vending-machine-table .table-folded[b-8to0dgt2fz] { color: var(--text-muted); display: grid; font-size: .875rem; gap: .15rem; margin-top: .25rem; }
    .vending-machine-table td:first-child[b-8to0dgt2fz] { min-width: 0; }
}
/* _content/VendControl.Web/Components/Pages/VendingRestock.razor.rz.scp.css */
.restock-number[b-h4jduj8zi9] { min-width:9rem; }
.restock-quantity[b-h4jduj8zi9] { min-height:3rem; min-width:7rem; text-align:end; }
.restock-legend[b-h4jduj8zi9] { display:flex; flex-wrap:wrap; gap:.5rem; }
/* flex:0 0 auto — plakietki maja sie zawijac, a nie sciskac; nowrap trzyma etykiete w calosci. */
.restock-legend span[b-h4jduj8zi9] { border-radius:999px; flex:0 0 auto; font-size:.875rem; padding:.35rem .7rem; white-space:nowrap; }
.restock-legend-refill[b-h4jduj8zi9],.restock-legend-pick-partial[b-h4jduj8zi9] { background:var(--status-negative-background); border:1px solid var(--surface-border); color:var(--status-negative-text); }
.restock-legend-verification[b-h4jduj8zi9] { background:var(--status-positive-background); border:1px solid var(--surface-border); color:var(--status-positive-text); }
.restock-legend-other[b-h4jduj8zi9],.restock-legend-pick-none[b-h4jduj8zi9] { background:var(--status-neutral-background); border:1px solid var(--surface-border); color:var(--status-neutral-text); }
.restock-legend-unknown[b-h4jduj8zi9] { background:var(--status-negative-background); border:1px solid var(--surface-border); color:var(--status-negative-text); }
.restock-pick-muted[b-h4jduj8zi9] { opacity:.55; }
/* Sprzedaz w trakcie wizyty to sygnal, nie liczba w tabelce — ma byc widoczna od razu. */
.restock-sale-alert[b-h4jduj8zi9] { background:var(--status-negative-background); color:var(--status-negative-text); font-weight:600; }
.restock-slot-state[b-h4jduj8zi9] { display:block; line-height:1.2; text-align:center; }
.restock-slot-stock[b-h4jduj8zi9] { display:block; font-size:1.05rem; }
.restock-slot-before[b-h4jduj8zi9], .restock-slot-counted[b-h4jduj8zi9] { display:block; font-size:.72rem; opacity:.75; }
/* Ta sama kropka co na slocie — inaczej trzeba zgadywac, co znaczy zielony punkt. */
/* Kropka jest elementem UKLADU (inline-flex + gap), a nie nakladka pozycjonowana
   absolutnie na paddingu. Poprzednia wersja zalezala od tego, czy padding-left wygra
   ze wspolna regula ".restock-legend span" — nie wygrywal i kropka siadala na tekscie.
   W tej wersji nachodzenie jest niemozliwe niezaleznie od paddingu. */
.restock-legend span.restock-legend-fresh[b-h4jduj8zi9] { align-items:center; background:var(--status-neutral-background); color:var(--status-neutral-text); display:inline-flex; gap:.4rem; }
.restock-legend span.restock-legend-fresh[b-h4jduj8zi9]::before { background:var(--status-positive-text); border:2px solid var(--status-positive-background); border-radius:50%; content:""; flex:0 0 auto; height:.7rem; width:.7rem; }
[b-h4jduj8zi9] .vending-slot.restock-slot-refill { background:var(--status-negative-background); border:2px solid var(--surface-border); color:var(--text-primary); }
[b-h4jduj8zi9] .vending-slot.restock-slot-verification { background:var(--status-positive-background); border:2px solid var(--surface-border); color:var(--text-primary); }
[b-h4jduj8zi9] .vending-slot.restock-slot-other { opacity:.52; }
/* Slot z towarem, ktorego automat nie umie nazwac. Czerwony i BEZ wygaszenia — to jedyny
   stan, ktory zatrzymuje wizyte, wiec nie moze wygladac jak slot "poza zakresem". */
[b-h4jduj8zi9] .vending-slot.restock-slot-unknown { background:var(--status-negative-background); border:2px solid var(--surface-border); color:var(--text-primary); opacity:1; }
[b-h4jduj8zi9] .vending-slot.restock-slot-fresh::after { background:var(--status-positive-text); border:2px solid var(--status-positive-background); border-radius:50%; content:""; height:.7rem; position:absolute; right:.3rem; top:.3rem; width:.7rem; }
.vending-discrepancy-summary td[b-h4jduj8zi9] { border-left: .25rem solid var(--status-positive-text); color: var(--text-muted); font-size: .875rem; }
/* _content/VendControl.Web/Components/Pages/VendingUpdates.razor.rz.scp.css */
.vending-update-scope .badge + .badge[b-pr3l75cymh] { margin-left: .35rem; }
/* _content/VendControl.Web/Components/Pages/VendingVisit.razor.rz.scp.css */
.restock-number[b-wshhnfot1l] { min-width:9rem; }
/* max-width jest tu rownie wazny co min-width. Pole bez gornej granicy rozciaga sie na cala
   szerokosc kolumny, wiec jednocyfrowa wartosc siedzi przy lewej krawedzi kilkuset pikseli
   pustego pola — i karetka po kliknieciu ladowala daleko od liczby. To bylo zrodlo zgloszenia
   o "karetce w dziwnym miejscu", a nie samo zaznaczanie wartosci. */
.restock-quantity[b-wshhnfot1l] { max-width:9rem; min-height:3rem; min-width:7rem; text-align:end; }
.restock-legend[b-wshhnfot1l] { display:flex; flex-wrap:wrap; gap:.5rem; }
.restock-legend span[b-wshhnfot1l] { border-radius:999px; flex:0 0 auto; font-size:.875rem; padding:.35rem .7rem; white-space:nowrap; }
.restock-legend-refill[b-wshhnfot1l],.restock-legend-pick-partial[b-wshhnfot1l] { background:var(--status-negative-background); border:1px solid var(--surface-border); color:var(--status-negative-text); }
.restock-legend-verification[b-wshhnfot1l] { background:var(--status-positive-background); border:1px solid var(--surface-border); color:var(--status-positive-text); }
.restock-legend-other[b-wshhnfot1l],.restock-legend-pick-none[b-wshhnfot1l] { background:var(--status-neutral-background); border:1px solid var(--surface-border); color:var(--status-neutral-text); }
.restock-legend-unknown[b-wshhnfot1l],.restock-legend-pick-unavailable[b-wshhnfot1l] { background:var(--status-negative-background); border:1px solid var(--surface-border); color:var(--status-negative-text); }
.restock-pick-muted[b-wshhnfot1l] { opacity:.55; }
/* Sugerowana ilość to liczba, po którą pracownik idzie na magazyn — pogrubiona w nagłówku
   i w wierszach (prośba właściciela 2026-09-04). */
.restock-pick-suggested[b-wshhnfot1l] { font-weight:700; }
.restock-sale-alert[b-wshhnfot1l] { background:#f8d7da; color:#842029; font-weight:600; }
.restock-slot-state[b-wshhnfot1l] { display:block; line-height:1.2; text-align:center; }
.restock-slot-stock[b-wshhnfot1l] { display:block; font-size:1.05rem; }
.restock-slot-counted[b-wshhnfot1l] { display:block; font-size:.72rem; opacity:.75; }
.vending-discrepancy-summary td[b-wshhnfot1l] { border-left:.25rem solid var(--status-positive-text); color:var(--text-muted); font-size:.875rem; }
.restock-legend span.restock-legend-fresh[b-wshhnfot1l] { align-items:center; background:var(--status-neutral-background); color:var(--status-neutral-text); display:inline-flex; gap:.4rem; }
.restock-legend span.restock-legend-fresh[b-wshhnfot1l]::before { background:var(--status-positive-text); border:2px solid var(--status-positive-background); border-radius:50%; content:""; flex:0 0 auto; height:.7rem; width:.7rem; }
[b-wshhnfot1l] .vending-slot.restock-slot-refill { background:var(--status-negative-background); border:2px solid var(--surface-border); color:var(--text-primary); }
[b-wshhnfot1l] .vending-slot.restock-slot-verification { background:var(--status-positive-background); border:2px solid var(--surface-border); color:var(--text-primary); }
[b-wshhnfot1l] .vending-slot.restock-slot-other { opacity:.52; }
[b-wshhnfot1l] .vending-slot.restock-slot-unknown { background:var(--status-negative-background); border:2px solid var(--surface-border); color:var(--text-primary); opacity:1; }
[b-wshhnfot1l] .vending-slot.restock-slot-fresh::after { background:var(--status-positive-text); border:2px solid var(--status-positive-background); border-radius:50%; content:""; height:.7rem; position:absolute; right:.3rem; top:.3rem; width:.7rem; }
.visit-error-details[b-wshhnfot1l] { margin-top:.25rem; }
.visit-error-details > summary[b-wshhnfot1l] { cursor:pointer; font-size:.875rem; }
.visit-error-detail-text[b-wshhnfot1l] { display:block; margin-top:.25rem; font-size:.8125rem; white-space:pre-wrap; overflow-wrap:anywhere; }
/* Przycisk stoi W TYM pliku .razor, wiec i regula musi byc tutaj — styl zapisany w CSS
   komponentu rozliczenia nie dosiega go przez izolacje stylow Blazora (pulapka E9-01). */
.settlement-not-loaded-toggle[b-wshhnfot1l] { margin-left:.5rem; min-height:32px; padding:.25rem .5rem; white-space:nowrap; }
/* _content/VendControl.Web/Components/Pages/WarehouseDocumentDetails.razor.rz.scp.css */
.warehouse-document-details[b-vlnzq5yclc] {
    display: grid;
    gap: 1rem;
}

.document-details-navigation[b-vlnzq5yclc] {
    margin-bottom: -.25rem;
}

.document-details-header[b-vlnzq5yclc] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
}
.document-details-header .card-body[b-vlnzq5yclc] { width: 100%; }

.document-details-state[b-vlnzq5yclc] {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: .75rem;
    justify-content: center;
    min-height: 8rem;
    padding: 2rem;
}

.metadata-wide[b-vlnzq5yclc] {
    grid-column: 1 / -1;
}

.preserve-lines[b-vlnzq5yclc] {
    white-space: pre-wrap;
}

.document-items-grid[b-vlnzq5yclc],
.transaction-documents-grid[b-vlnzq5yclc] {
    min-width: 52rem;
}

.document-items-grid thead th[b-vlnzq5yclc],
.transaction-documents-grid thead th[b-vlnzq5yclc] {
    background: var(--surface-muted, #f8f9fa);
    font-size: .8rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.document-product-cell[b-vlnzq5yclc] {
    align-items: center;
    display: flex;
    gap: .75rem;
    min-width: 12rem;
}

.document-product-link[b-vlnzq5yclc] {
    color: inherit;
    text-decoration: none;
}

.document-product-link:hover span[b-vlnzq5yclc],
.document-product-link:focus-visible span[b-vlnzq5yclc] {
    color: var(--bs-primary);
    text-decoration: underline;
}

.document-attachments[b-vlnzq5yclc] {
    display: grid;
    gap: .75rem;
    list-style: none;
    padding-left: 0;
}

.document-attachments li[b-vlnzq5yclc] {
    align-items: start;
    display: flex;
    gap: .75rem;
}

.document-attachment-thumbnail[b-vlnzq5yclc] {
    display: block;
    max-height: 120px;
    max-width: 120px;
    object-fit: contain;
}

@media (max-width: 640px) {
    .document-details-header .btn[b-vlnzq5yclc] {
        width: 100%;
    }
}
/* _content/VendControl.Web/Components/Pages/WarehouseDocumentForm.razor.rz.scp.css */
.warehouse-document-form-page[b-4j7hsrwdzs] {
    display: grid;
    gap: 1rem;
}

.document-form-header[b-4j7hsrwdzs] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
}

.document-form-header h1[b-4j7hsrwdzs] {
    margin-bottom: .25rem;
}

.document-number[b-4j7hsrwdzs] {
    font-size: 1rem;
}

.document-form-state[b-4j7hsrwdzs] {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: .75rem;
    justify-content: center;
    min-height: 8rem;
    padding: 2rem;
}

.document-form-fields[b-4j7hsrwdzs] {
    display: grid;
    gap: 1rem 1.5rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-section-title[b-4j7hsrwdzs],
.form-field-wide[b-4j7hsrwdzs] {
    grid-column: 1 / -1;
}

.selected-option[b-4j7hsrwdzs] {
    align-items: center;
    border: 1px solid var(--surface-border, #ced4da);
    border-radius: .25rem;
    display: flex;
    justify-content: space-between;
    min-height: 2.4rem;
    padding: .35rem .5rem .35rem .75rem;
}

.search-results[b-4j7hsrwdzs] {
    margin-top: .5rem;
    max-height: 18rem;
    overflow-y: auto;
}

/* Bootstrapowa .list-group jest kolumnowym flexem, a max-height wyzej daje mu za malo miejsca.
   Pozycje mialy wiec domyslne flex-shrink:1 i byly SCISKANE ponizej wysokosci swojej tresci —
   nazwa kolejnego produktu wchodzila na podpis poprzedniego. To ten sam blad, ktory opisano juz
   przy plakietkach legendy zatowarowania: element ma sie zawijac albo przewijac, a nie sciskac. */
.search-results > .list-group-item[b-4j7hsrwdzs] {
    flex: 0 0 auto;
}

.search-results-footer[b-4j7hsrwdzs] {
    align-items: center;
    color: var(--text-muted);
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    margin-top: .5rem;
}

.search-empty-message[b-4j7hsrwdzs] {
    /* --bs-secondary-color pochodzi z Bootstrapa 5.3, a mamy 5.1 — zmiennej nie ma i kolor
       leciał z dziedziczenia. Projekt ma na to własną zmienną. */
    color: var(--text-muted);
    padding: .75rem 0 0;
}

.product-search-section[b-4j7hsrwdzs] {
    display: grid;
    gap: 1rem;
}

.product-search[b-4j7hsrwdzs] {
    max-width: 48rem;
}

.product-result[b-4j7hsrwdzs] {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    text-align: left;
}

.product-result-main[b-4j7hsrwdzs],
.product-cell[b-4j7hsrwdzs] {
    align-items: center;
    display: flex;
    gap: .75rem;
    min-width: 0;
}

.product-result-main > span:last-child[b-4j7hsrwdzs],
.product-cell > span:last-child[b-4j7hsrwdzs] {
    min-width: 0;
}

.product-result small[b-4j7hsrwdzs] {
    color: var(--bs-secondary);
    display: block;
    margin-top: .15rem;
}

.document-form-empty[b-4j7hsrwdzs] {
    border-top: 1px solid var(--surface-border, #dee2e6);
    color: var(--bs-secondary);
    padding: 1.5rem;
    text-align: center;
}

.document-form-items[b-4j7hsrwdzs] {
    min-width: 48rem;
}

.document-form-items thead th[b-4j7hsrwdzs] {
    background: var(--surface-muted, #f8f9fa);
    font-size: .8rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.number-input[b-4j7hsrwdzs] {
    margin-left: auto;
    max-width: 9rem;
    text-align: right;
}

.document-form-actions[b-4j7hsrwdzs] {
    display: flex;
    gap: .75rem;
    justify-content: flex-end;
}

@media (max-width: 700px) {
    .document-form-fields[b-4j7hsrwdzs] {
        grid-template-columns: 1fr;
    }

    .form-section-title[b-4j7hsrwdzs],
    .form-field-wide[b-4j7hsrwdzs] {
        grid-column: auto;
    }

    .document-form-actions[b-4j7hsrwdzs] {
        flex-direction: column-reverse;
    }

    .document-form-actions .btn[b-4j7hsrwdzs] {
        width: 100%;
    }
}
/* _content/VendControl.Web/Components/Pages/WarehouseDocuments.razor.rz.scp.css */
.warehouse-documents-page[b-pcec82viwr] {
    display: grid;
    gap: 1rem;
}

.document-page-header[b-pcec82viwr] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
}

.document-filters[b-pcec82viwr] {
    align-items: end;
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}

.filter-search[b-pcec82viwr] {
    grid-column: span 2;
}

.document-filter-actions[b-pcec82viwr] {
    align-items: center;
    display: flex;
    gap: .25rem;
}

.document-state[b-pcec82viwr],
.document-empty-state[b-pcec82viwr] {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: .75rem;
    justify-content: center;
    min-height: 8rem;
    padding: 2rem;
    text-align: center;
}

.document-empty-state[b-pcec82viwr] {
    flex-direction: column;
}

.document-table-card[b-pcec82viwr] {
    overflow: hidden;
}

.document-grid[b-pcec82viwr] { table-layout: fixed; width: 100%; }
.table-folded[b-pcec82viwr] { display: none; }

.document-grid thead th[b-pcec82viwr] {
    background: var(--bs-tertiary-bg);
    font-size: .8rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.document-grid th button[b-pcec82viwr] {
    background: transparent;
    border: 0;
    color: inherit;
    font: inherit;
    padding: .25rem 0;
    text-transform: inherit;
}

.document-grid th button:hover[b-pcec82viwr],
.document-grid th button:focus-visible[b-pcec82viwr] {
    color: var(--bs-primary);
}

.document-row[b-pcec82viwr] {
    cursor: pointer;
}

.document-row:focus-visible[b-pcec82viwr] {
    outline: 3px solid rgba(var(--bs-primary-rgb), .45);
    outline-offset: -3px;
}

.task-reference[b-pcec82viwr] {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.task-reference small[b-pcec82viwr] {
    color: var(--bs-secondary-color);
}

.document-table-footer[b-pcec82viwr] {
    align-items: center;
    border-top: var(--bs-border-width) solid var(--bs-border-color);
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    padding: .75rem 1rem;
}

.document-pagination[b-pcec82viwr] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.document-pagination select[b-pcec82viwr] {
    width: auto;
}

@media (max-width: 640px) {
    .filter-search[b-pcec82viwr] {
        grid-column: span 1;
    }

    .document-page-header .btn[b-pcec82viwr],
    .document-filter-actions[b-pcec82viwr],
    .document-filter-actions .btn[b-pcec82viwr] {
        width: 100%;
    }

    .document-filter-actions[b-pcec82viwr] {
        flex-direction: column;
    }
}

@container page-content (max-width: 899.98px) {
    .document-grid .fold-column[b-pcec82viwr] { display: none; }
    .document-grid .table-folded[b-pcec82viwr] { color: var(--text-muted); display: grid; font-size: .875rem; gap: .15rem; margin-top: .25rem; }
}
/* _content/VendControl.Web/Components/Pages/WarehouseTransferForm.razor.rz.scp.css */
.search-results-footer[b-o0177yaddf] {
    align-items: center;
    color: var(--text-muted);
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    margin-top: .5rem;
}
/* _content/VendControl.Web/Components/ProductThumbnail.razor.rz.scp.css */
.product-thumbnail-frame[b-ltbn9drw9o],
.product-thumbnail-image[b-ltbn9drw9o],
.product-thumbnail-placeholder[b-ltbn9drw9o] {
    height: 3.5rem;
    width: 3.5rem;
}

.product-thumbnail-large[b-ltbn9drw9o],
.product-thumbnail-large .product-thumbnail-image[b-ltbn9drw9o],
.product-thumbnail-large .product-thumbnail-placeholder[b-ltbn9drw9o] {
    height: min(16rem, 65vw);
    width: min(16rem, 65vw);
}

.product-thumbnail-large[b-ltbn9drw9o] {
    flex-basis: min(16rem, 65vw);
}

.product-thumbnail-frame[b-ltbn9drw9o] {
    display: inline-flex;
    flex: 0 0 3.5rem;
}

.product-thumbnail-image[b-ltbn9drw9o],
.product-thumbnail-placeholder[b-ltbn9drw9o] {
    background: var(--bs-tertiary-bg, #f1f3f5);
    border: var(--bs-border-width, 1px) solid var(--bs-border-color, #dee2e6);
    border-radius: .35rem;
}

.product-thumbnail-image[b-ltbn9drw9o] {
    object-fit: contain;
}

.product-thumbnail-placeholder[b-ltbn9drw9o] {
    align-items: center;
    color: var(--bs-secondary-color, #6c757d);
    display: inline-flex;
    font-size: 1.4rem;
    justify-content: center;
}

@media (max-width: 480px) {
    .product-thumbnail-frame[b-ltbn9drw9o],
    .product-thumbnail-image[b-ltbn9drw9o],
    .product-thumbnail-placeholder[b-ltbn9drw9o] {
        height: 3rem;
        width: 3rem;
    }

    .product-thumbnail-frame[b-ltbn9drw9o] {
        flex-basis: 3rem;
    }
}
/* _content/VendControl.Web/Components/Shared/DashboardLocationsPanel.razor.rz.scp.css */
/* Uklad (wlasciciel, 2026-09-06): mapa na cala szerokosc, pod nia lista lokalizacji;
   rozwinieta lokalizacja pokazuje pod soba swoje automaty (akordeon). */
.dashboard-location-entry[b-hg01mj1yac] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.dashboard-machine-expanded[b-hg01mj1yac] {
    border-left: .2rem solid var(--link-color);
    margin: 0 0 .5rem .75rem;
    padding-left: .75rem;
}

.dashboard-map[b-hg01mj1yac] {
    border: 1px solid var(--surface-border);
    border-radius: .5rem;
    height: 24rem;
    overflow: hidden;
}

.dashboard-location-list[b-hg01mj1yac],
.dashboard-machine-list[b-hg01mj1yac] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.dashboard-location-item[b-hg01mj1yac] {
    align-items: center;
    background: var(--surface-raised);
    border: 1px solid var(--surface-border);
    border-radius: .5rem;
    color: var(--text-primary);
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    padding: .75rem;
    text-align: left;
    width: 100%;
}

.dashboard-location-item:hover[b-hg01mj1yac],
.dashboard-location-item:focus-visible[b-hg01mj1yac],
.dashboard-location-item.is-selected[b-hg01mj1yac] {
    border-color: var(--link-color);
    box-shadow: 0 0 0 .15rem rgb(13 110 253 / 15%);
}

/* Wiersz lokalizacji w DWOCH liniach (wlasciciel, 2026-09-06): lewa kolumna nazwa / adres,
   prawa kolumna status / liczba automatow - obie kolumny pionowe, prawa wyrownana do prawej. */
.dashboard-location-main[b-hg01mj1yac],
.dashboard-location-badges[b-hg01mj1yac] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.dashboard-location-badges[b-hg01mj1yac] {
    align-items: flex-end;
    text-align: right;
    white-space: nowrap;
}

.dashboard-location-main small[b-hg01mj1yac],
.dashboard-location-badges > span:not(.badge)[b-hg01mj1yac],
.fact-label[b-hg01mj1yac] {
    color: var(--text-muted);
    font-size: .875rem;
}

.dashboard-machine-row[b-hg01mj1yac] {
    display: block;
}

.dashboard-map[b-hg01mj1yac]  .dashboard-map-pin {
    align-items: center;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 .1rem .35rem rgb(0 0 0 / 35%);
    color: #fff;
    display: flex;
    font-weight: 700;
    height: 34px;
    justify-content: center;
    width: 34px;
}

@media (max-width: 767.98px) {
    .dashboard-map[b-hg01mj1yac] {
        height: 18rem;
    }
}
/* _content/VendControl.Web/Components/Shared/ToastHost.razor.rz.scp.css */
.toast-host[b-loe4zjt5cp] {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 1100;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    width: min(24rem, calc(100vw - 2rem));
}

.toast-message[b-loe4zjt5cp] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    box-shadow: 0 .25rem .75rem rgb(0 0 0 / 15%);
}

.toast-message .btn-close[b-loe4zjt5cp] {
    flex: 0 0 auto;
}
/* _content/VendControl.Web/Components/Shared/VendingCabinet.razor.rz.scp.css */
/* Automat dopasowuje szerokość do zawartości; przy zbyt wąskiej stronie przewija się w całości. */
.vending-viewport[b-3s7b6idda8] { max-width: 100%; overflow-x: auto; padding-bottom: .25rem; }
.vending-chrome[b-3s7b6idda8] { background:#40505a; border:6px solid #34424a; border-radius:1.2rem; display:flex; gap:.75rem; padding:1rem 1rem 1.1rem; width:max-content; }
.vending-body[b-3s7b6idda8] { display:flex; flex-direction:column; gap:.65rem; flex:1 1 auto; width:calc(var(--vending-cols, 10) * 5rem); }
.vending-glass[b-3s7b6idda8] { background:linear-gradient(135deg,#f9fcfd,#e8f1f3); border:1px solid rgba(255,255,255,.9); border-radius:.7rem; box-shadow:inset 0 2px rgba(255,255,255,.95); padding:.75rem; }
.vending-side[b-3s7b6idda8] { background:#62737b; border-radius:.45rem; padding:.45rem; display:grid; align-content:start; gap:.55rem; flex:0 0 5rem; }
.vending-screen[b-3s7b6idda8] { background:#0d1f17; border:2px solid #26343b; border-radius:.2rem; display:block; height:1.7rem; overflow:hidden; position:relative; }
.vending-screen-text[b-3s7b6idda8] { animation:vending-marquee-b-3s7b6idda8 9s linear infinite; color:#54e0a1; font-family:Consolas,'Courier New',monospace; font-size:.66rem; left:100%; letter-spacing:.12em; line-height:1.55rem; position:absolute; text-transform:uppercase; white-space:nowrap; }
@keyframes vending-marquee-b-3s7b6idda8 { to { transform:translateX(calc(-100% - 4.6rem)); } }
.vending-keypad[b-3s7b6idda8] { display:grid; grid-template-columns:repeat(3,1fr); gap:.18rem; }
.vending-keypad b[b-3s7b6idda8] { animation:vending-keypress-b-3s7b6idda8 9s infinite; background:#e6edef; border-radius:.1rem; height:.7rem; }
.vending-keypad b:nth-child(1)[b-3s7b6idda8]{animation-delay:.4s}.vending-keypad b:nth-child(2)[b-3s7b6idda8]{animation-delay:5.1s}.vending-keypad b:nth-child(3)[b-3s7b6idda8]{animation-delay:2.6s}.vending-keypad b:nth-child(4)[b-3s7b6idda8]{animation-delay:7.3s}.vending-keypad b:nth-child(5)[b-3s7b6idda8]{animation-delay:1.5s}.vending-keypad b:nth-child(6)[b-3s7b6idda8]{animation-delay:6.2s}.vending-keypad b:nth-child(7)[b-3s7b6idda8]{animation-delay:3.8s}.vending-keypad b:nth-child(8)[b-3s7b6idda8]{animation-delay:8.4s}.vending-keypad b:nth-child(9)[b-3s7b6idda8]{animation-delay:.9s}.vending-keypad b:nth-child(10)[b-3s7b6idda8]{animation-delay:4.4s}.vending-keypad b:nth-child(11)[b-3s7b6idda8]{animation-delay:2.1s}.vending-keypad b:nth-child(12)[b-3s7b6idda8]{animation-delay:6.8s}
@keyframes vending-keypress-b-3s7b6idda8 { 0%,3.5%,100% { background:#e6edef; transform:none; } 1.7% { background:#94a9b1; transform:translateY(1px); } }
@media (prefers-reduced-motion: reduce) { .vending-screen-text[b-3s7b6idda8],.vending-keypad b[b-3s7b6idda8] { animation:none; } .vending-screen-text[b-3s7b6idda8] { left:.3rem; } }
.vending-card-terminal[b-3s7b6idda8] { background:#202a2f; border:1px solid #829197; border-radius:.2rem; height:.8rem; margin-top:.1rem; }
.vending-flap[b-3s7b6idda8] { align-items:center; align-self:center; background:#202a2f; border:2px solid #172126; border-radius:.5rem; color:#aab6ba; display:flex; flex-direction:column; font-size:.62rem; height:2.5rem; justify-content:center; letter-spacing:.1em; width:min(22rem, 65%); }
.vending-flap span[b-3s7b6idda8] { background:#94a5aa; border-radius:2px; display:block; height:4px; margin-top:.3rem; width:55%; }

/* Rzędy z mniejszą liczbą slotów rozciągają sloty do pełnej szerokości najszerszego rzędu. */
.vending-grid[b-3s7b6idda8] { display:flex; flex-direction:column; gap:.45rem; }
.vending-grid-row[b-3s7b6idda8] { display:flex; gap:.35rem; }
.vending-slot[b-3s7b6idda8] { background:var(--surface-background, var(--bs-body-bg)); border:1px solid var(--surface-border, var(--bs-border-color)); border-radius:.35rem; display:grid; flex:1 1 0; gap:.15rem; grid-template-rows:auto 56px minmax(2.2rem,auto) auto; min-height:9.6rem; min-width:0; padding:.25rem; position:relative; user-select:none; }
.vending-slot-new[b-3s7b6idda8] { border:2px solid #198754; }
.vending-slot-new-label[b-3s7b6idda8] { background:#198754; border-radius:999px; color:#fff; font-size:.62rem; padding:1px 6px; position:absolute; right:.25rem; top:.25rem; }
.vending-slot-changed[b-3s7b6idda8] { border:2px solid #d97706; }
.vending-slot-emptied[b-3s7b6idda8] { border:2px dashed #d97706; }
.vending-slot-changed-label[b-3s7b6idda8] { background:#b45309; border-radius:999px; color:#fff; font-size:.62rem; padding:1px 6px; position:absolute; right:.25rem; top:.25rem; }
.vending-slot-empty[b-3s7b6idda8] { background:var(--surface-muted, #f4f6f7); border:1px dashed #9aa7ad; color:var(--text-muted, var(--bs-secondary-color)); grid-template-rows:auto 1fr; }
.vending-slot-empty.vending-slot-emptied[b-3s7b6idda8] { border:2px dashed #d97706; }
.vending-slot-reported-empty[b-3s7b6idda8] { background:var(--status-negative-background); border-color:var(--status-negative-text); color:var(--status-negative-text); }
.vending-slot-code[b-3s7b6idda8] { color:var(--text-muted, var(--bs-secondary-color)); font-size:.64rem; }
.vending-slot-image[b-3s7b6idda8],.vending-slot-placeholder[b-3s7b6idda8] { height:54px; justify-self:center; object-fit:contain; width:54px; }
.vending-slot-placeholder[b-3s7b6idda8] { align-content:center; color:var(--text-muted, var(--bs-secondary-color)); font-size:1.6rem; text-align:center; }
.vending-slot-product[b-3s7b6idda8] { color:var(--text-primary); display:-webkit-box; font-size:.72rem; line-height:1.15; overflow:hidden; text-align:center; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.vending-slot-price[b-3s7b6idda8] { font-size:.75rem; text-align:center; }
.vending-slot-stock[b-3s7b6idda8] { color:var(--text-muted, var(--bs-secondary-color)); font-size:.68rem; text-align:center; }
.vending-slot-price del[b-3s7b6idda8] { color:var(--text-muted, var(--bs-secondary-color)); font-weight:normal; }
.vending-slot-price span[b-3s7b6idda8] { color:#087f3e; }
.vending-slot-empty-label[b-3s7b6idda8] { align-self:center; justify-self:center; }
.vending-slot[role="button"][b-3s7b6idda8] { cursor:pointer; }
:root[data-theme="dark"] .vending-glass[b-3s7b6idda8] { background:linear-gradient(135deg,#26333b,#182126); border-color:#66767e; box-shadow:inset 0 2px rgba(255,255,255,.1); }
.vending-slot[role="button"]:focus-visible[b-3s7b6idda8] { outline:3px solid rgba(var(--bs-primary-rgb),.45); outline-offset:2px; }
/* _content/VendControl.Web/Components/Shared/VendingMachineStatusPanel.razor.rz.scp.css */
.vending-status-panel[b-c01f2xq1oq] { align-items: center; background: var(--surface-raised); border: 1px solid var(--surface-border); border-radius: .5rem; display: grid; gap: 1rem; grid-template-columns: minmax(10rem, 1fr) minmax(15rem, 2fr) auto; padding: 1rem; width: 100%; }
.vending-status-identity[b-c01f2xq1oq], .vending-status-facts[b-c01f2xq1oq] { display: flex; flex-direction: column; gap: .35rem; }
.vending-status-identity .badge[b-c01f2xq1oq] { align-self: flex-start; }
.vending-status-chips[b-c01f2xq1oq] { display: flex; flex-wrap: wrap; gap: .35rem; }
.vending-status-chip[b-c01f2xq1oq] { border-radius: 999px; font-size: .8rem; font-weight: 600; padding: .15rem .6rem; }
.vending-layout-chip[b-c01f2xq1oq] { background: #e7f1ff; color: #084298; }
.vending-price-chip[b-c01f2xq1oq] { background: #f3e8ff; color: #5b21b6; }
[data-theme="dark"] .vending-layout-chip[b-c01f2xq1oq] { background: #1d3557; color: #cfe2ff; }
[data-theme="dark"] .vending-price-chip[b-c01f2xq1oq] { background: #3b2a5e; color: #e9d8fd; }
.vending-status-gauge[b-c01f2xq1oq] { align-items: center; display: grid; gap: .5rem; grid-template-columns: auto minmax(5rem, 1fr) auto; }
.vending-status-gauge .progress[b-c01f2xq1oq] { height: .5rem; }
.vending-status-actions[b-c01f2xq1oq] { display: flex; flex-direction: column; gap: .35rem; justify-self: end; }
.vending-status-actions .btn[b-c01f2xq1oq] { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; }
@media (max-width: 767.98px) { .vending-status-panel[b-c01f2xq1oq] { grid-template-columns: 1fr; } .vending-status-actions[b-c01f2xq1oq] { justify-self: start; } }
/* _content/VendControl.Web/Components/Shared/VendingMachineTaskHistoryPanel.razor.rz.scp.css */
/* Uklad automatyczny, nie sztywny: kolumna na przycisk "Podglad" jest pusta dla kont bez
   prawa do zlecen i przy sztywnym podziale zabierala szosta czesc szerokosci tabeli. */
.vending-task-history[b-plvh5hms4s] { width: 100%; }
.table-folded[b-plvh5hms4s] { display: none; }
.vending-task-history td:last-child[b-plvh5hms4s] { vertical-align: middle; }

/* Waska kolumna numeru tylko w ukladzie pelnym. Ponizej progu numer niesie zwinieta tresc
   (rodzaj, termin, realizacja) i szerokosc 4 rem lamalaby ja po literach. */
@container page-content (min-width: 900px) {
    .vending-task-history th:first-child[b-plvh5hms4s], .vending-task-history td:first-child[b-plvh5hms4s] { width: 4rem; }
}

@container page-content (max-width: 899.98px) {
    .vending-task-history .fold-column[b-plvh5hms4s] { display: none; }
    .vending-task-history .table-folded[b-plvh5hms4s] { color: var(--text-muted); display: grid; font-size: .875rem; gap: .15rem; margin-top: .25rem; }
}
/* _content/VendControl.Web/Components/Shared/VendingTaskList.razor.rz.scp.css */
.vending-task-list[b-rhiiqt2may] { table-layout: fixed; width: 100%; }
.vending-task-row[b-rhiiqt2may] { cursor: pointer; }
.vending-task-row:focus-visible[b-rhiiqt2may] { outline: 3px solid rgba(var(--bs-primary-rgb), .45); outline-offset: -3px; }
.table-folded[b-rhiiqt2may] { display: none; }
.vending-task-list td:last-child[b-rhiiqt2may] { vertical-align: middle; }

@container page-content (max-width: 899.98px) {
    .vending-task-list[b-rhiiqt2may]  .fold-column { display: none; }
    .vending-task-list .table-folded[b-rhiiqt2may] { color: var(--text-muted); display: grid; font-size: .875rem; gap: .15rem; margin-top: .25rem; }
}
/* _content/VendControl.Web/Components/Shared/VendingVisitCarriedGoodsPanel.razor.rz.scp.css */
.carried-goods-panel[b-08sgllvyux] {
    background: var(--surface-raised);
    border: 1px solid var(--surface-border);
    border-radius: .5rem;
    margin-bottom: 1rem;
    max-width: 32rem;
    padding: .75rem 1rem;
}

.carried-goods-panel h3[b-08sgllvyux] { font-size: 1rem; margin: 0 0 .4rem; }
.carried-goods-panel ul[b-08sgllvyux] { display: grid; gap: .3rem; list-style: none; margin: 0; padding: 0; }
.carried-goods-panel li[b-08sgllvyux] { line-height: 1.25; min-width: 0; overflow-wrap: anywhere; }
.carried-goods-panel small[b-08sgllvyux] { color: var(--text-muted); display: block; margin-top: .1rem; }
/* Numery slotów w nawiasie kwadratowym — pracownik czyta je stojąc przy automacie,
   więc muszą być tak samo wyraźne jak numery na rysunku obok. */
.carried-goods-slots[b-08sgllvyux] { font-weight: 700; white-space: nowrap; }

@container page-content (max-width: 899.98px) {
    .carried-goods-panel[b-08sgllvyux] { max-width: none; padding: .65rem .75rem; }
}
/* _content/VendControl.Web/Components/Shared/VendingVisitLoadingScreen.razor.rz.scp.css */
/* Style ekranu wkładania. Blazor izoluje CSS per komponent, a ten ekran wyprowadził się
   z dwóch stron do komponentu współdzielonego (E15-01) — bez własnego pliku wszystkie
   klasy zostały bez reguł: napisy w kafelkach traciły `display:block` i pomniejszenie,
   przez co rozpychały slot, a kolory stanów i zielona kropka świeżego raportu znikały.
   Reguły odtworzone z `VendingRestock.razor.css` i usuniętego `VendingUpdateRealize.razor.css`,
   żeby oba procesy wyglądały tak samo — o to w tej konsolidacji chodziło. */

.restock-legend[b-kn03vtee99] { display:flex; flex-wrap:wrap; gap:.5rem; }
.restock-legend span[b-kn03vtee99] { border-radius:999px; flex:0 0 auto; font-size:.875rem; padding:.35rem .7rem; white-space:nowrap; }
.restock-legend-refill[b-kn03vtee99] { background:var(--status-negative-background); border:1px solid var(--surface-border); color:var(--status-negative-text); }
.restock-legend-verification[b-kn03vtee99] { background:var(--status-positive-background); border:1px solid var(--surface-border); color:var(--status-positive-text); }
.restock-legend-other[b-kn03vtee99] { background:var(--status-neutral-background); border:1px solid var(--surface-border); color:var(--status-neutral-text); }

/* Kropka jest elementem UKŁADU (inline-flex + gap), nie nakładką na paddingu — inaczej
   siada na tekście, gdy wspólna reguła `.restock-legend span` wygra z paddingiem. */
.restock-legend span.restock-legend-fresh[b-kn03vtee99] { align-items:center; background:var(--status-neutral-background); color:var(--status-neutral-text); display:inline-flex; gap:.4rem; }
.restock-legend span.restock-legend-fresh[b-kn03vtee99]::before { background:var(--status-positive-text); border:2px solid var(--status-positive-background); border-radius:50%; content:""; flex:0 0 auto; height:.7rem; width:.7rem; }

/* Trzy linie w kafelku: stan, stan sprzed wizyty, ręczne przeliczenie. Każda MUSI być
   blokiem — inline rozjeżdża siatkę slotów. */
.restock-slot-state[b-kn03vtee99] { display:block; line-height:1.2; text-align:center; }
.restock-slot-stock[b-kn03vtee99] { display:block; font-size:1.05rem; }
.restock-slot-before[b-kn03vtee99], .restock-slot-counted[b-kn03vtee99] { display:block; font-size:.72rem; opacity:.75; }

/* Numer slotu na rysunku: pracownik stoi przy automacie i po tym numerze szuka szuflady,
   więc na tym kroku jest duży i pogrubiony, nie szary jak na karcie automatu (uwaga
   właściciela po testach u klienta 2026-09-04). */
[b-kn03vtee99] .vending-slot .vending-slot-code { color:var(--text-primary); font-size:1.05rem; font-weight:700; line-height:1.1; }

[b-kn03vtee99] .vending-slot.restock-slot-refill { background:var(--status-negative-background); border:2px solid var(--surface-border); color:var(--text-primary); }
[b-kn03vtee99] .vending-slot.restock-slot-verification { background:var(--status-positive-background); border:2px solid var(--surface-border); color:var(--text-primary); }
[b-kn03vtee99] .vending-slot.restock-slot-other { opacity:.52; }

/* Slot „tylko liczenie" po wpisaniu ilości: nadal zielony (to wciąż slot do liczenia), ale
   przygaszony jak slot do uzupełnienia po potwierdzeniu przez automat - widać, co już zrobione. */
[b-kn03vtee99] .vending-slot.restock-slot-verification.restock-slot-settled { opacity:.55; }

/* Slot z towarem, którego automat nie umie nazwać: czerwony i BEZ wygaszenia — to jedyny
   stan zatrzymujący wizytę, więc nie może wyglądać jak slot „poza zakresem". */
[b-kn03vtee99] .vending-slot.restock-slot-unknown { background:var(--status-negative-background); border:2px solid var(--surface-border); color:var(--text-primary); opacity:1; }

[b-kn03vtee99] .vending-slot.restock-slot-fresh::after { background:var(--status-positive-text); border:2px solid var(--status-positive-background); border-radius:50%; content:""; height:.7rem; position:absolute; right:.3rem; top:.3rem; width:.7rem; }
/* _content/VendControl.Web/Components/Shared/VendingVisitSettlementFields.razor.rz.scp.css */
.settlement-photo-preview[b-cvhv4vhyks] {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: 0.25rem;
}

.settlement-quantity[b-cvhv4vhyks] {
    width: 150px;
}
.settlement-not-loaded[b-cvhv4vhyks] {
    max-width: 12rem;
}
/* _content/VendControl.Web/Components/Shared/VisitNoteDialog.razor.rz.scp.css */
/* Zapisana uwaga jest cytatem z tego, co juz jest w zleceniu, a nie polem do pisania.
   Wczesniejsza ramka z zaokragleniem wygladala jak drugi input tuz nad "Nowa uwaga" i
   tester probowal w niej pisac. Tlo bierzemy z tokenu motywu, bo dolaczony Bootstrap to
   wersja 5.1 - klasy bg-body-secondary (5.3) w nim nie ma i panel zostalby przezroczysty,
   czyli poprawka bylaby niewidoczna. Kolory jasny/ciemny obsluguje sam token. */
.visit-note-saved[b-rhvasmygpy] {
    background: var(--surface-muted);
    border-left: .1875rem solid var(--surface-border);
    white-space: pre-wrap;
}
/* _content/VendControl.Web/Components/Shared/VisitStepper.razor.rz.scp.css */
.visit-stepper[b-4wpdmqrgrd] { color: var(--text-primary); margin: -.5rem 0 1rem; min-width: 0; }
.visit-stepper-wide ol[b-4wpdmqrgrd] { align-items: flex-start; display: flex; list-style: none; margin: 0; padding: 0; }
.visit-stepper-wide li[b-4wpdmqrgrd] { align-items: center; color: var(--text-muted); display: flex; flex: 1 1 0; font-size: .8rem; gap: .35rem; min-width: 0; position: relative; }
.visit-stepper-wide li:not(:last-child)[b-4wpdmqrgrd]::after { border-top: 1px solid var(--surface-border); content: ""; flex: 1 1 auto; margin: 0 .5rem; }
.visit-stepper-marker[b-4wpdmqrgrd] { align-items: center; background: var(--surface-muted); border: 1px solid var(--surface-border); border-radius: 50%; display: inline-flex; flex: 0 0 1.45rem; height: 1.45rem; justify-content: center; line-height: 1; }
.visit-stepper-label[b-4wpdmqrgrd] { overflow-wrap: anywhere; }
.visit-stepper .is-done[b-4wpdmqrgrd] { color: var(--text-muted); }
.visit-stepper .is-current[b-4wpdmqrgrd] { color: var(--link-color); font-weight: 700; }
.visit-stepper .is-current .visit-stepper-marker[b-4wpdmqrgrd] { background: var(--link-color); border-color: var(--link-color); color: var(--surface-background); }
.visit-stepper .is-cancelled[b-4wpdmqrgrd] { color: var(--status-neutral-text); font-weight: 700; }
.visit-stepper .is-cancelled .visit-stepper-marker[b-4wpdmqrgrd] { background: var(--status-neutral-background); border-color: var(--surface-border); color: var(--status-neutral-text); }
.visit-stepper .is-done .visit-stepper-marker[b-4wpdmqrgrd] { background: var(--status-positive-background); border-color: var(--status-positive-background); color: var(--status-positive-text); }
.visit-stepper-narrow[b-4wpdmqrgrd] { display: none; }
@container page-content (max-width: 899.98px) {
    .visit-stepper[b-4wpdmqrgrd] { margin: -.25rem 0 .75rem; }
    .visit-stepper-wide[b-4wpdmqrgrd] { display: none; }
    .visit-stepper-narrow[b-4wpdmqrgrd] { display: block; }
    .visit-stepper-summary[b-4wpdmqrgrd] { color: var(--text-primary); font-size: .9rem; line-height: 1.35; overflow-wrap: anywhere; }
    .visit-stepper-progress[b-4wpdmqrgrd] { background: var(--surface-muted); border: 1px solid var(--surface-border); height: .35rem; margin-top: .35rem; overflow: hidden; position: relative; }
    .visit-stepper-progress[b-4wpdmqrgrd]::before { background: var(--link-color); content: ""; display: block; height: 100%; width: calc((100% * var(--visit-step-progress)) / var(--visit-step-count)); }
    .visit-stepper.is-cancelled .visit-stepper-progress[b-4wpdmqrgrd]::before { background: var(--status-neutral-text); }
}
