/**
 * Global Admin panel layout — same content width on every screen.
 * Sidebar-aware: uses remaining viewport width after the sidebar.
 */

:root {
    --bhuguard-admin-content-max: 1650px;
    --bhuguard-admin-content-width: 97%;
    --bhuguard-modal-sidebar-offset: var(--sidebar-width, 15rem);
}

/* Unlock Filament default 7xl (~1280px) and align all pages — never apply to modal windows */
.fi-panel-admin .fi-page > .fi-page-main,
.fi-panel-admin .fi-page-main,
.fi-panel-admin .fi-width-7xl:not(.fi-modal-window),
.fi-panel-admin .fi-width-full:not(.fi-modal-window),
.fi-panel-admin .fi-width-screen:not(.fi-modal-window),
.fi-panel-admin .fi-width-screen-2xl:not(.fi-modal-window),
.fi-panel-admin .fi-width-6xl:not(.fi-modal-window),
.fi-panel-admin .fi-width-5xl:not(.fi-modal-window),
.fi-panel-admin .fi-width-4xl:not(.fi-modal-window),
.fi-panel-admin .fi-width-3xl:not(.fi-modal-window) {
    max-width: min(var(--bhuguard-admin-content-max), var(--bhuguard-admin-content-width)) !important;
    width: 100% !important;
    margin-inline: auto !important;
}

.fi-panel-admin .fi-main {
    padding-inline: clamp(0.9375rem, 2.2vw, 2rem) !important;
}

/* Header / breadcrumbs share the same horizontal alignment as content */
.fi-panel-admin .fi-header,
.fi-panel-admin .fi-page-header,
.fi-panel-admin .fi-header-heading {
    max-width: min(var(--bhuguard-admin-content-max), var(--bhuguard-admin-content-width));
    width: 100%;
    margin-inline: auto;
}

/* Artisan Pro Registrations — keep page title on one line */
.bhuguard-artisan-registrations-page .fi-header-heading,
.bhuguard-artisan-registrations-title {
    white-space: nowrap;
    max-width: none;
}

/* Tables and section cards fill the content column */
.fi-panel-admin .fi-ta-ctn,
.fi-panel-admin .fi-section,
.fi-panel-admin .fi-wi-stats-overview,
.fi-panel-admin .fi-wi-widget {
    width: 100%;
}

/* Sidebar width follows Filament CSS variables (collapsible + user resize). */
.fi-panel-admin .fi-sidebar {
    max-width: none;
}

.fi-panel-admin .fi-sidebar.fi-sidebar-open {
    width: var(--sidebar-width) !important;
}

.fi-panel-admin.fi-body-has-sidebar-collapsible-on-desktop .fi-sidebar:not(.fi-sidebar-open) {
    width: var(--collapsed-sidebar-width) !important;
}

.fi-panel-admin .fi-sidebar-item-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Hide empty sidebar footer shell (no reserved green box) */
.fi-panel-admin .fi-sidebar-footer:empty {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
}

.fi-panel-admin .fi-sidebar-nav {
    padding-bottom: 1rem;
}

@media (max-width: 1023px) {
    .fi-panel-admin .fi-page > .fi-page-main,
    .fi-panel-admin .fi-page-main,
    .fi-panel-admin .fi-width-7xl,
    .fi-panel-admin .fi-width-full,
    .fi-panel-admin .fi-header,
    .fi-panel-admin .fi-page-header {
        max-width: 100% !important;
    }
}

/*
 * Modal positioning (loads AFTER Vite theme so it wins Filament `inset: 0`).
 * Overlay stays full-viewport; window container is inset by the sidebar.
 */
body.fi-panel-admin.fi-body-has-sidebar-collapsible-on-desktop:has(.fi-sidebar:not(.fi-sidebar-open)) {
    --bhuguard-modal-sidebar-offset: var(--collapsed-sidebar-width, 4.5rem);
}

body.fi-panel-admin:has(.fi-sidebar.fi-sidebar-open) {
    --bhuguard-modal-sidebar-offset: var(--sidebar-width, 15rem);
}

body.fi-panel-admin .fi-modal {
    z-index: 80 !important;
}

body.fi-panel-admin .fi-modal > .fi-modal-close-overlay {
    z-index: 80 !important;
    inset: 0 !important;
}

body.fi-panel-admin .fi-modal > .fi-modal-window-ctn {
    z-index: 90 !important;
}

/*
 * Page content uses z-index:1 (above watermark). That stacking context traps nested
 * modals under the sticky topbar (z-30). Elevate the host page while a modal is open.
 */
body.fi-panel-admin .fi-main > *:has(.fi-modal.fi-modal-open),
body.fi-panel-admin .fi-page:has(.fi-modal.fi-modal-open) {
    z-index: 220 !important;
}

body.fi-panel-admin .fi-modal.fi-modal-open {
    z-index: 220 !important;
}

body.fi-panel-admin .fi-modal.fi-modal-open > .fi-modal-close-overlay {
    z-index: 220 !important;
}

body.fi-panel-admin .fi-modal.fi-modal-open > .fi-modal-window-ctn {
    z-index: 230 !important;
}

/* True viewport centering: Filament sm+ uses 1fr/auto/3fr which pins modals too high. */
body.fi-panel-admin .fi-modal:not(.fi-modal-slide-over):not(.fi-width-screen) > .fi-modal-window-ctn {
    display: grid !important;
    grid-template-rows: 1fr auto 1fr !important;
    justify-items: center !important;
    align-items: center !important;
    padding: 20px !important;
    box-sizing: border-box !important;
}

@media (min-width: 1024px) {
    body.fi-panel-admin:not(.fi-body-has-top-navigation):not(:has(.fi-simple-main))
        .fi-modal:not(.fi-modal-slide-over):not(.fi-width-screen)
        > .fi-modal-window-ctn {
        /* Must override Filament `inset: 0` shorthand, not only `left`. */
        inset: 0 0 0 var(--bhuguard-modal-sidebar-offset) !important;
        width: auto !important;
        padding: 20px !important;
        align-items: center !important;
        justify-items: center !important;
        grid-template-rows: 1fr auto 1fr !important;
        box-sizing: border-box !important;
    }

    body.fi-panel-admin:not(.fi-body-has-top-navigation):not(:has(.fi-simple-main))
        .fi-modal:not(.fi-modal-slide-over):not(.fi-width-screen)
        > .fi-modal-window-ctn
        > .fi-modal-window {
        width: min(780px, calc(100vw - var(--bhuguard-modal-sidebar-offset) - 80px)) !important;
        max-width: min(780px, calc(100vw - var(--bhuguard-modal-sidebar-offset) - 80px)) !important;
        max-height: calc(100dvh - 40px) !important;
        margin-inline: auto !important;
        margin-block: 0 !important;
    }

    body.fi-panel-admin:not(.fi-body-has-top-navigation):not(:has(.fi-simple-main))
        .fi-modal:not(.fi-modal-slide-over):not(.fi-width-screen)
        > .fi-modal-window-ctn
        > .fi-modal-window.bhuguard-assign-kiln-modal,
    body.fi-panel-admin:not(.fi-body-has-top-navigation):not(:has(.fi-simple-main))
        .fi-modal:not(.fi-modal-slide-over):not(.fi-width-screen)
        > .fi-modal-window-ctn
        > .fi-modal-window.fi-width-5xl,
    body.fi-panel-admin:not(.fi-body-has-top-navigation):not(:has(.fi-simple-main))
        .fi-modal:not(.fi-modal-slide-over):not(.fi-width-screen)
        > .fi-modal-window-ctn
        > .fi-modal-window.fi-width-4xl,
    body.fi-panel-admin:not(.fi-body-has-top-navigation):not(:has(.fi-simple-main))
        .fi-modal:not(.fi-modal-slide-over):not(.fi-width-screen)
        > .fi-modal-window-ctn
        > .fi-modal-window.fi-width-3xl {
        width: min(780px, calc(100vw - var(--bhuguard-modal-sidebar-offset) - 80px)) !important;
        max-width: min(780px, calc(100vw - var(--bhuguard-modal-sidebar-offset) - 80px)) !important;
        max-height: calc(100dvh - 40px) !important;
    }

    /* Artisan Pro edit: width + max height (desktop) */
    body.fi-panel-admin:not(.fi-body-has-top-navigation):not(:has(.fi-simple-main))
        .fi-modal:not(.fi-modal-slide-over):not(.fi-width-screen)
        > .fi-modal-window-ctn
        > .fi-modal-window.bhuguard-artisan-edit-modal {
        width: min(56rem, calc(100vw - var(--bhuguard-modal-sidebar-offset) - 64px)) !important;
        max-width: min(56rem, calc(100vw - var(--bhuguard-modal-sidebar-offset) - 64px)) !important;
        max-height: min(calc(100dvh - 3rem), 880px) !important;
        height: auto !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }
}

@media (max-width: 1023px) {
    body.fi-panel-admin .fi-modal:not(.fi-modal-slide-over):not(.fi-width-screen) > .fi-modal-window-ctn {
        inset: 0 !important;
        padding: 0.75rem !important;
        grid-template-rows: 1fr auto 1fr !important;
    }

    body.fi-panel-admin .fi-modal:not(.fi-modal-slide-over):not(.fi-width-screen) > .fi-modal-window-ctn > .fi-modal-window {
        width: min(90vw, calc(100vw - 1.5rem)) !important;
        max-width: min(90vw, calc(100vw - 1.5rem)) !important;
        max-height: calc(100dvh - 40px) !important;
        margin-block: 0 !important;
    }

    body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal,
    body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal {
        width: min(90vw, calc(100vw - 1.5rem)) !important;
        max-width: min(90vw, calc(100vw - 1.5rem)) !important;
        max-height: calc(100dvh - 40px) !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }
}

@media (max-width: 640px) {
    body.fi-panel-admin .fi-modal:not(.fi-modal-slide-over):not(.fi-width-screen) > .fi-modal-window-ctn > .fi-modal-window,
    body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal {
        width: min(95vw, calc(100vw - 1rem)) !important;
        max-width: min(95vw, calc(100vw - 1rem)) !important;
        max-height: calc(100dvh - 24px) !important;
    }
}

/* Artisan edit modal: keep header + footer fully inside the box on all breakpoints */
body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal > .fi-modal-header {
    flex: 0 0 auto !important;
    padding: 1.25rem 1.5rem 1rem !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    background: #fff !important;
    z-index: 2;
    position: relative !important;
    top: auto !important;
}

body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal > .fi-modal-content {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    padding: 1.15rem 1.5rem !important;
}

body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal > .fi-modal-footer {
    flex: 0 0 auto !important;
    padding: 0.95rem 1.5rem 1.15rem !important;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    background: #fff !important;
    z-index: 2;
    margin: 0 !important;
    position: relative !important;
    bottom: auto !important;
}

body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal .fi-modal-footer-actions {
    flex-wrap: wrap;
    gap: 0.65rem;
    width: 100%;
    justify-content: flex-end;
}

body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal .fi-section-content-ctn,
body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal .fi-sc {
    width: 100%;
}

body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal .fi-input-wrp,
body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal .fi-select-input {
    width: 100%;
    min-width: 0;
}

body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal .fi-select-input-content,
body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal .fi-input-wrp-content {
    flex-wrap: nowrap;
    min-width: 0;
}

body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal .fi-select-input-value,
body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal .fi-select-input .fi-badge,
body.fi-panel-admin .fi-modal-window.bhuguard-artisan-edit-modal .fi-select-input .fi-ba {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

body.fi-panel-admin .fi-modal:not(.fi-modal-slide-over).fi-modal-has-sticky-header.fi-modal-has-sticky-footer
    > .fi-modal-window-ctn
    > .fi-modal-window {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    max-height: calc(100dvh - 40px) !important;
}

body.fi-panel-admin .fi-modal:not(.fi-modal-slide-over).fi-modal-has-sticky-header.fi-modal-has-sticky-footer
    > .fi-modal-window-ctn
    > .fi-modal-window
    > .fi-modal-content {
    flex: 1 1 auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    min-height: 0 !important;
    padding: 1rem 1.35rem 1.25rem !important;
    scrollbar-gutter: stable;
}

body.fi-panel-admin .fi-modal .fi-modal-header,
body.fi-panel-admin .fi-modal .fi-modal-footer {
    flex-shrink: 0 !important;
}

/* Assign Kilns: sticky header/footer + readable scroll body */
body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    max-height: calc(100dvh - 40px) !important;
    box-sizing: border-box !important;
}

body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal > .fi-modal-header {
    flex: 0 0 auto !important;
    position: relative !important;
    top: auto !important;
    z-index: 3;
    padding: 1.1rem 1.35rem !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    background: #fffdf7 !important;
}

body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal > .fi-modal-header .fi-modal-heading {
    padding-inline-end: 2.75rem;
    line-height: 1.35;
    overflow: visible;
}

body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal > .fi-modal-header .fi-modal-close-btn,
body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal > .fi-modal-header .fi-icon-btn {
    min-width: 2.25rem;
    min-height: 2.25rem;
    margin: 0;
}

body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal > .fi-modal-content {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    /* Extra bottom padding so last fields are not covered by sticky footer. */
    padding: 1.1rem 1.35rem 2.25rem !important;
    scrollbar-gutter: stable;
}

body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal > .fi-modal-footer {
    flex: 0 0 auto !important;
    position: relative !important;
    bottom: auto !important;
    z-index: 3;
    margin: 0 !important;
    padding: 0.95rem 1.35rem 1.1rem !important;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    background: #fffdf7 !important;
}

body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal .fi-section {
    margin-bottom: 1rem;
}

body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal .fi-section:last-child {
    margin-bottom: 0;
}

body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal .fi-fo-field-wrp {
    margin-block: 0.55rem;
}

body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal .fi-fo-field-wrp-label,
body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal .fi-fo-field-wrp-helper-text,
body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal .fi-fo-placeholder {
    overflow: visible;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
    max-width: 100%;
}

body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal .fi-input-wrp,
body.fi-panel-admin .fi-modal-window.bhuguard-assign-kiln-modal .fi-select-input {
    width: 100%;
    min-width: 0;
}
