html, body {
    /* font-family intentionally removed: let MudBlazor theme set it via
       var(--mud-typography-default-family) so our brand FontFamily (Poppins,
       configured in BrandConfiguration.CreateMudTheme) actually propagates
       to navbar/body. Hardcoding 'Helvetica Neue' here overrides the theme. */
    margin: 0;
    padding: 0;
    min-height: 100vh;
    width: 100%;
    height: 100%;
}

#app {
    min-height: 100vh;
    margin: 0;
    padding: 0;
}

a, .btn-link {
    color: #006bb7;
}

/* Shared link style — primary MudBlazor color + underline. Use this class on every
   <MudLink> / <a> that represents a navigable link, so colors stay consistent across
   the panel and follow the active theme primary (light/dark/branded). */
.xgg-link,
.xgg-link:link,
.xgg-link:visited,
.xgg-link:active {
    color: var(--mud-palette-primary) !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

.xgg-link:hover,
.xgg-link:focus {
    color: var(--mud-palette-primary-darken) !important;
    text-decoration: underline !important;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA9NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDg2IDY2LjAxODMgMjYzLjU4NiA2Ni4wMTgzWk0yNjMuNTc2IDg2LjA1NDdDMjYxLjA0OSA4Ni4wNTQ3IDI1OS43ODUgODcuMzAwNSAyNTkuNzg2IDg5Ljc5MjEgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

.blazor-error-boundary::after {
    content: "An error has occurred."
}

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

/* Custom scripts from here down */

.zamowOnlineLogo {
    position: fixed;
    min-width: 100%;
    padding-top: 20%;
    text-align: center;
    z-index: 1;
    pointer-events: none;
}

.zamowOnlineLogo img {
    max-width: 400px;
}

#waveVideo {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 0;
    pointer-events: none;
    object-fit: cover;
}

@supports (-moz-appearance:none) {
    /* Firefox-specific fix */
    #waveVideo {
        min-width: 100vw;
        min-height: 100vh;
    }
}

.image-dialog.mud-dialog .mud-dialog-content {
    cursor: zoom-in;
}

/* Fullscreen image dialog – all areas black, title/actions hidden */
.fullscreen-image-dialog {
    background-color: black !important;
}
.fullscreen-image-dialog .mud-dialog-title {
    display: none !important;
}
.fullscreen-image-dialog .mud-dialog-actions {
    display: none !important;
}
.fullscreen-image-dialog .mud-dialog-content {
    background-color: black !important;
    padding: 0 !important;
    overflow: hidden !important;
    max-height: none !important;
    flex: 1 !important;
    position: relative !important;
}

.mud-table-head .mud-table-cell .column-header {
    justify-content: flex-start !important;
    gap: 4px !important;
}

.mud-table-head .mud-table-cell .column-header > span,
.mud-table-head .mud-table-cell .column-header .column-header-content {
    width: auto !important;
    max-width: max-content !important;
}

.mud-table-head .mud-table-cell .column-options > *:nth-child(n+2),
.mud-table-head .mud-table-cell .column-options > *:nth-child(n+2) * {
    opacity: 0 !important;
    transition: opacity 0.2s ease-in-out;
}

.mud-table-head .mud-table-cell:hover .column-options *,
.mud-table-head .mud-table-cell:hover .column-options > * {
    opacity: 1 !important;
}

/* UserAvatar component — gray frame around every avatar (image or initials).
   Lives in global css because Blazor scoped css does not pierce into child component
   roots (MudAvatar) without a wrapper element, and a wrapper would break MudAvatarGroup
   overlapping layout. */
.user-avatar {
    border: 3px solid #c4c4c4 !important;
}

/* Slight bump on Size.Small variant (default 24px feels cramped with 2-letter initials
   plus the gray border). Other sizes keep MudBlazor defaults. */
.user-avatar.mud-avatar-small {
    height: 32px !important;
    width: 32px !important;
    font-size: 0.85rem !important;
}

/* MudBlazor v9 zeroed default horizontal padding inside MudExpansionPanel content
   AND header (used to be 24px in v7). Restore so existing panels (InvoiceData on
   OrderDetails, OrderHistoryPanel, StoreCustomerInfoCard) keep their side spacing
   on both the title row (text + expand arrow) and the content body.
   We match Mud's own selector specificity (.mud-expand-panel .mud-expand-panel-*)
   so we don't need !important. */
.mud-expand-panel .mud-expand-panel-header,
.mud-expansion-panel .mud-expansion-panel-header {
    padding-left: 24px;
    padding-right: 24px;
}

.mud-expand-panel .mud-expand-panel-content,
.mud-expansion-panel .mud-expansion-panel-content {
    padding-left: 24px;
    padding-right: 24px;
}

/* MudBlazor v9 changed default MudLink Typo from body1 to inherit and shifted link
   color toward primary (blue, #006bb7); Bootstrap base (via BootstrapBlazor.FontAwesome)
   also sets `a, .btn-link { color: #006bb7 }`. Active breadcrumb items render as <a>
   (.mud-link / .btn-link) and went blue. Scope the dark-text override to breadcrumbs ONLY,
   and EXCLUDE the disabled (current page) item via :not(.mud-disabled) so Mud's own greyed
   styling for the current item is left intact (don't !important over it). */
.app-breadcrumbs .mud-breadcrumb-item:not(.mud-disabled) a {
    color: var(--mud-palette-text-primary) !important;
}

/* MudDataGrid v9 cell rendering doesn't propagate the parent .razor scoped
   attribute down to <td>, so DeliveryZones.razor.css `::deep .zone-name {...}`
   stops matching. Restore the zone-name styling globally.
   v9 also wraps cell value in a <span>, so target both the td (with CellClass)
   and any descendant text node — plus !important to beat Mud's default cell text. */
.zone-name,
td.zone-name,
.zone-name * {
    font-weight: 600 !important;
    font-size: 0.925rem !important;
}

/* MudBlazor v9 MudFileUpload root element became display:block, causing the
   wrapper to fill the column width — XGGButton inside CustomContent gets
   stretched. Force inline-flex so the upload button hugs its content. */
.mud-file-upload {
    display: inline-flex;
}

/* ...except uploads explicitly marked full-width (e.g. the PageEditor gallery
   drag-and-drop zone), which must stretch to fill their parent MudPaper instead
   of shrinking to content. */
.mud-file-upload.full-width {
    display: block;
    width: 100%;
}

/* MudBlazor v9 dropped the v7 default font-weight 500 on MudNavGroup labels —
   navbar group headings ("Sprzedaż", "Magazyn", ...) rendered thinner than before.
   Restore the bold-ish weight. !important so theme-level typography defaults
   don't win the cascade. */
.mud-nav-group > .mud-nav-link > .mud-nav-link-text,
.mud-nav-group > .mud-nav-link .mud-nav-link-text {
    font-weight: 500 !important;
}
