/*!
 * WOUB admin styling overrides (Filament).
 *
 * Intentionally kept hand-editable and independent of external theme packages.
 */

/* ---- Double sidebar (left icon rail + right detail sidebar) ------------ */
:root {
    --woub-topbar-height: 56px;
    --woub-rail-width: 4.5rem;
}

@media (min-width: 700px) {
    :root {
        --woub-rail-width: 4.5rem;
        --woub-detail-width: 15rem;  /* the “real” sidebar width */
        --sidebar-width: calc(var(--woub-rail-width) + var(--woub-detail-width));
    }

    .woub-sidebar-shell {
        display: flex;
        height: 100dvh;
        width: var(--sidebar-width);
        min-height: 0;
        overflow: visible;
    }

    .woub-sidebar-detail {
        flex: 0 0 var(--woub-detail-width);
        width: var(--woub-detail-width);
        min-width: 0;
        min-height: 0;
        overflow: hidden;
        background: rgb(255 255 255);
    }

    .dark .woub-sidebar-detail {
        background: rgb(17 24 39);
    }

    .woub-detail-sidebar {
        width: var(--woub-detail-width) !important;
        max-width: var(--woub-detail-width) !important;
    }

    /*
     * Desktop: pin the navigation sidebar to the viewport; offset main so content is not hidden.
     * (Filament’s lg:sticky in this shell was unreliable with the custom two-column sidebar.)
     */
    .fi-body.fi-body-has-navigation:not(.fi-body-has-top-navigation) .fi-sidebar.fi-main-sidebar {
        position: fixed !important;
        inset-block-start: 0 !important;
        inset-block-end: 0 !important;
        inset-inline-start: 0 !important;
        transform: none !important;
        translate: none !important;
        z-index: 50;
        height: 100dvh !important;
        max-height: 100dvh !important;
        overflow: visible !important;
        width: var(--sidebar-width) !important;
        max-width: var(--sidebar-width) !important;
    }

    .fi-sidebar-close-overlay,
    .fi-layout-sidebar-toggle-btn-ctn,
    .fi-topbar-open-sidebar-btn,
    .fi-topbar-close-sidebar-btn {
        display: none !important;
    }

    /*
     * Rail-only pages: must beat the rule above (same body/sidebar specificity),
     * otherwise a transparent full-width fixed sidebar blocks the main content.
     */
    .fi-body.fi-body-has-navigation:not(.fi-body-has-top-navigation)
        .fi-sidebar.fi-main-sidebar.woub-sidebar--dashboard-only {
        width: var(--woub-rail-width) !important;
        max-width: var(--woub-rail-width) !important;
        overflow: hidden !important;
    }

    .fi-body.fi-body-has-navigation:not(.fi-body-has-top-navigation)
        .fi-sidebar.fi-main-sidebar.woub-sidebar--dashboard-only
        > .woub-sidebar-shell {
        width: var(--woub-rail-width) !important;
        max-width: var(--woub-rail-width) !important;
    }

    .fi-body.fi-body-has-navigation:not(.fi-body-has-top-navigation)
        .fi-sidebar.fi-main-sidebar.woub-sidebar--dashboard-only
        .woub-sidebar-detail {
        display: none !important;
        pointer-events: none !important;
        width: 0 !important;
        max-width: 0 !important;
        min-width: 0 !important;
        flex: 0 0 0 !important;
        overflow: hidden !important;
    }

    .fi-layout:has(.woub-sidebar--dashboard-only) main.fi-main {
        max-width: 100% !important;
    }

    .fi-body.fi-body-has-navigation:not(.fi-body-has-top-navigation) .fi-main-ctn {
        position: relative;
        z-index: 0;
        margin-inline-start: var(--sidebar-width) !important;
        width: calc(100dvw - var(--sidebar-width)) !important;
        max-width: calc(100dvw - var(--sidebar-width)) !important;
        min-width: 0 !important;
    }

    .fi-body.fi-body-has-navigation:not(.fi-body-has-top-navigation)
        .fi-layout:has(.woub-sidebar--dashboard-only)
        .fi-main-ctn {
        margin-inline-start: var(--woub-rail-width) !important;
        width: calc(100dvw - var(--woub-rail-width)) !important;
        max-width: calc(100dvw - var(--woub-rail-width)) !important;
    }
}

.woub-sidebar-rail {
    box-sizing: border-box;
    width: var(--woub-rail-width);
    background: rgb(255 255 255);
    border-inline-end: 1px solid rgba(0, 0, 0, 0.06);
}

.woub-sidebar-rail-brand {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: var(--woub-topbar-height);
    min-height: var(--woub-topbar-height);
    max-height: var(--woub-topbar-height);
    padding-inline: 0.75rem;
    background: #fff;
    border-bottom: 1px solid #f0f0f0;
    flex-shrink: 0;
}

.woub-sidebar-rail-brand-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.woub-sidebar-rail-brand-icon {
    width: 1.75rem;
    height: 1.75rem;
    min-width: 1.75rem;
    min-height: 1.75rem;
    max-width: 1.75rem;
    max-height: 1.75rem;
    display: block;
}

.woub-sidebar-detail,
.woub-sidebar-detail .fi-sidebar,
.woub-sidebar-detail .fi-sidebar-nav {
    background: rgb(255 255 255) !important;
}

.woub-sidebar-detail {
    border-inline-end: 1px solid rgba(0, 0, 0, 0.06);
}

.woub-detail-sidebar {
    border-inline-end: 1px solid rgba(0, 0, 0, 0.06) !important;
}

.woub-detail-sidebar,
.woub-detail-sidebar > * {
    box-sizing: border-box;
}

.dark .woub-sidebar-detail,
.dark .woub-sidebar-detail .fi-sidebar,
.dark .woub-sidebar-detail .fi-sidebar-nav {
    background: rgb(17 24 39) !important;
}

.dark .woub-sidebar-detail {
    border-inline-end-color: rgba(255, 255, 255, 0.1);
}

.dark .woub-detail-sidebar {
    border-inline-end-color: rgba(255, 255, 255, 0.1) !important;
}

.dark .woub-sidebar-rail {
    background: rgb(17 24 39);
    border-inline-end-color: rgba(255, 255, 255, 0.1);
}

/* Desktop: keep Filament topbar disabled visually (mobile still gets hamburger + bar) */
@media (min-width: 700px) {
    .fi-topbar {
        display: none !important;
    }
}

.woub-sidebar-rail-inner {
    padding: 0.75rem 0.5rem;
    gap: 0.5rem;
}

.woub-rail-button {
    height: 2.25rem;
    width: 2.25rem;
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    outline: none;
    transition: background-color 120ms ease;
    color: rgba(var(--gray-500), 1);
}

.woub-rail-button:hover {
    background: rgba(var(--gray-100), 1);
}

.dark .woub-rail-button:hover {
    background: rgba(255, 255, 255, 0.05);
}

.woub-rail-button.is-active {
    background: rgba(var(--gray-100), 1);
    color: rgba(var(--primary-600), 1);
}

.dark .woub-rail-button.is-active {
    background: rgba(255, 255, 255, 0.06);
    color: rgba(var(--primary-400), 1);
}

.woub-rail-icon {
    height: 1.25rem;
    width: 1.25rem;
}

.woub-rail-user-menu-trigger {
    padding: 0 !important;
}

.woub-sidebar-rail .fi-user-menu .fi-dropdown-trigger {
    display: flex;
    align-items: center;
    justify-content: center;
}

.fi-dropdown-panel {
    z-index: 100000 !important;
}

/*
 * Profile menu: Filament panels default to w-screen; without max-width they span
 * the full desktop. Class is on the teleported panel itself (see user-menu view).
 */
.fi-dropdown-panel.woub-user-menu-panel {
    width: 14rem !important;
    max-width: min(14rem, calc(100vw - 1rem)) !important;
    min-width: 0 !important;
}

.fi-dropdown-panel.woub-user-menu-panel .fi-dropdown-list-item-label,
.fi-dropdown-panel.woub-user-menu-panel .fi-dropdown-header {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---- Mobile off-canvas -------------------------------------------------- */
@media (max-width: 699px) {
    :root {
        --sidebar-width: 80vw;
    }

    /* Top bar: keep open/close + brand area; user menu stays on the sidebar rail */
    .fi-topbar nav > .ms-auto {
        display: none !important;
    }

    .fi-sidebar-close-overlay {
        z-index: 9998 !important;
    }

    .woub-mobile-sidebar {
        position: fixed !important;
        z-index: 9999 !important;
        inset: 0 auto 0 0 !important;
        width: min(var(--sidebar-width), 350px) !important;
        max-width: 350px !important;
        min-width: min(var(--sidebar-width), 350px) !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        border: 0 !important;
        padding: 0 !important;
    }

    [dir='rtl'] .woub-mobile-sidebar {
        inset: 0 0 0 auto !important;
    }
}

/* ---- Compact sidebar spacing ------------------------------------------- */
.fi-sidebar {
    padding: 0 !important;
}

.fi-sidebar-header {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
}

/* Detail column (desktop aside + mobile drawer): hide group heading row (e.g. "Admin") */
.woub-sidebar-detail .fi-sidebar-group-button {
    display: none !important;
}

.woub-sidebar-detail .fi-sidebar-group {
    gap: 0 !important;
}

.fi-sidebar-nav {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
    gap: 0.5rem !important;
    scrollbar-gutter: auto !important;
}

.fi-sidebar-nav {
    scrollbar-width: thin;
}

.fi-sidebar-nav::-webkit-scrollbar {
    width: 8px;
}

.fi-sidebar-nav::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 9999px;
}

.fi-sidebar-nav-groups {
    margin-left: 0 !important;
    margin-right: 0 !important;
    gap: 0.5rem !important;
}

.fi-sidebar-group {
    gap: 0.25rem !important;
}

.fi-sidebar-group-button {
    padding: 0.35rem 0.55rem !important;
    justify-content: flex-start !important;
}

.fi-sidebar-group-items {
    gap: 0.25rem !important;
}

.fi-sidebar-item-button {
    padding: 0.35rem 0.55rem !important;
    justify-content: flex-start !important;
    gap: 0.5rem !important;
}

.fi-sidebar-item-label {
    line-height: 1.15rem !important;
}

.fi-sidebar-item-icon {
    margin-inline-end: 0.5rem !important;
}

/* Infolist: label left / value right at 50% (Filament default is 1/3 + 2/3) */
@media (min-width: 640px) {
    .fi-in-entry.fi-in-entry-has-inline-label {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .fi-in-entry.fi-in-entry-has-inline-label .fi-in-entry-content-col {
        grid-column: span 1 / span 1 !important;
    }
}

/* ---- Auth / MFA: full-width one-time code input -------------------------------- */
.fi-simple-layout .fi-one-time-code-input-ctn {
    width: 100%;
}

.fi-simple-layout .fi-one-time-code-input-ctn > .fi-one-time-code-input-digit-field {
    display: none;
}

.fi-simple-layout .fi-one-time-code-input {
    position: relative !important;
    inset: auto !important;
    right: auto !important;
    left: auto !important;
    display: block;
    width: 100% !important;
    height: calc(var(--spacing) * 12);
    padding-inline: calc(var(--spacing) * 3);
    border-radius: var(--radius-lg);
    border-style: solid;
    border-width: 1px;
    border-color: color-mix(in oklab, var(--gray-950) 10%, transparent);
    background-color: var(--color-white);
    font-size: var(--text-lg);
    line-height: calc(var(--spacing) * 12);
    letter-spacing: 0.35em !important;
    text-align: center;
}

.fi-simple-layout .fi-one-time-code-input:focus {
    border-width: 2px;
    border-color: var(--primary-600);
}

.fi-simple-layout .fi-one-time-code-input.fi-valid {
    caret-color: auto;
}

.dark .fi-simple-layout .fi-one-time-code-input {
    border-color: color-mix(in oklab, var(--color-white) 20%, transparent);
    background-color: color-mix(in oklab, var(--color-white) 5%, transparent);
    color: var(--color-white);
}

.dark .fi-simple-layout .fi-one-time-code-input:focus {
    border-color: var(--primary-500);
}

/* ---- Admin global search topbar (Filament-style placement) ------------- */
.woub-global-search-topbar {
    box-sizing: border-box;
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    height: var(--woub-topbar-height);
    min-height: var(--woub-topbar-height);
    max-height: var(--woub-topbar-height);
    padding: 0 1rem;
    background: #fff;
    border-bottom: 1px solid #f0f0f0;
}

.woub-topbar-breadcrumbs {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 1;
    overflow: hidden;
}

.woub-topbar-breadcrumbs-list {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    min-width: 0;
    overflow: hidden;
}

.woub-topbar-breadcrumbs-item {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    max-width: 100%;
}

.woub-topbar-breadcrumbs-sep {
    flex-shrink: 0;
    width: 0.875rem;
    height: 0.875rem;
    margin-inline: 0.375rem;
    color: #d1d5db;
}

.woub-topbar-breadcrumbs-link {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.25;
    color: #6b7280;
    text-decoration: none;
    border-radius: 0.25rem;
    transition: color 0.15s ease;
}

.woub-topbar-breadcrumbs-link:hover {
    color: #111827;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.woub-topbar-breadcrumbs-current {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.25;
    color: #111827;
}

/* Page title lives in the topbar; keep header actions only. */
.fi-header > div:first-child {
    display: none !important;
}

.fi-header:not(:has(.fi-header-actions-ctn)) {
    display: none !important;
}

.woub-global-search-topbar-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    width: min(100%, 22rem);
    flex-shrink: 0;
    min-height: 2.25rem;
    padding: 0.375rem 0.75rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    background: #f9fafb;
    color: #6b7280;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.woub-global-search-topbar-btn:hover {
    background: #f3f4f6;
    border-color: #d1d5db;
    color: #374151;
}

.woub-global-search-topbar-btn-icon {
    width: 1.125rem;
    height: 1.125rem;
    flex-shrink: 0;
    color: #9ca3af;
}

.woub-global-search-topbar-btn-label {
    flex: 1;
    text-align: start;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: inherit;
}

.woub-global-search-topbar-btn-kbd {
    display: inline-flex;
    align-items: center;
    gap: 0.125rem;
    padding: 0.125rem 0.375rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.375rem;
    background: #fff;
    color: #9ca3af;
    font-size: 0.75rem;
    line-height: 1rem;
    font-family: ui-sans-serif, system-ui, sans-serif;
}

.woub-global-search-topbar-btn-kbd-mod {
    font-size: 0.7rem;
}

@media (max-width: 639px) {
    .woub-global-search-topbar-btn {
        width: 100%;
    }

    .woub-global-search-topbar-btn-kbd {
        display: none;
    }
}

/* ---- Admin global search modal ----------------------------------------- */
.woub-admin-search-overlay {
    position: fixed;
    inset: 0;
    z-index: 999999;
}

.woub-admin-search-overlay-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
}

.woub-admin-search-overlay-positioner {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: max(16px, 15vh) 16px 16px;
    pointer-events: none;
}

.woub-admin-search-overlay-positioner > .woub-admin-search-modal {
    pointer-events: auto;
}

.woub-admin-search-modal {
    pointer-events: auto;
    width: 100%;
    max-width: 42rem;
}

.woub-admin-search-panel {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    max-height: min(70vh, calc(100dvh - 10rem));
}

.woub-admin-search-input-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid #e5e7eb;
}

.woub-admin-search-input-icon {
    width: 18px;
    height: 18px;
    color: #9ca3af;
    flex-shrink: 0;
}

.woub-admin-search-input {
    flex: 1;
    min-width: 0;
    height: 28px;
    border: 0;
    outline: 0;
    padding: 0 4px;
    font-size: 15px;
    background: transparent;
    color: #111827;
}

.woub-admin-search-input::placeholder {
    color: #9ca3af;
}

.woub-admin-search-kbd {
    height: 22px;
    padding: 0 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    color: #6b7280;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
    background: #fff;
    flex-shrink: 0;
}

.woub-admin-search-close-btn {
    height: 28px;
    width: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
    border-radius: 8px;
    background: transparent;
    border: 0;
    cursor: pointer;
    flex-shrink: 0;
}

.woub-admin-search-close-btn:hover {
    background: #f3f4f6;
    color: #4b5563;
}

.woub-admin-search-hints {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 14px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    font-size: 12px;
    color: #6b7280;
}

.woub-admin-search-hint {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.woub-admin-search-hint-keys {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.woub-admin-search-hint-key {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 22px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #fff;
    color: #111827;
    box-shadow: 0 1px 0 rgba(17, 24, 39, 0.04);
}

.woub-admin-search-hint-key-icon {
    width: 14px !important;
    height: 14px !important;
    color: #111827 !important;
}

.woub-admin-search-hints kbd {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 6px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    font-size: 11px;
    font-weight: 600;
    color: #374151;
    line-height: 1;
}

.woub-admin-search-filters {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 12px 14px;
    border-bottom: 1px solid #e5e7eb;
}

.woub-admin-search-filters-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #6b7280;
}

.woub-admin-search-filters-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.woub-admin-search-list {
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: #fff;
}

.woub-admin-search-list::-webkit-scrollbar {
    width: 8px;
}

.woub-admin-search-list::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 9999px;
}

.woub-admin-search-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 24px;
    padding: 0 8px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #f3f4f6;
    color: #111827;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    cursor: pointer;
}

.woub-admin-search-filter-chip:hover {
    background: #e5e7eb;
    border-color: #9ca3af;
}

.woub-admin-search-filter-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 12px;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    background: #fff;
    color: #374151;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

.woub-admin-search-filter-label-icon {
    width: 14px;
    height: 14px;
    color: #6b7280;
}

.woub-admin-search-filter-label:hover {
    background: #f9fafb;
    border-color: #d1d5db;
    color: #111827;
}

.woub-admin-search-filter-label--active {
    background: #111827;
    border-color: #111827;
    color: #fff;
}

.woub-admin-search-filter-label--active:hover {
    background: #374151;
    border-color: #374151;
    color: #fff;
}

.woub-admin-search-filter-label--active .woub-admin-search-filter-label-icon {
    color: #fff;
}

.woub-admin-search-section + .woub-admin-search-section {
    border-top: 1px solid #f3f4f6;
}

.woub-admin-search-section-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px 8px;
}

.woub-admin-search-section-title {
    font-size: 13px;
    font-weight: 600;
    color: #6b7280;
}

.woub-admin-search-section-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 4px;
    background: #f3f4f6;
    font-size: 11px;
    font-weight: 700;
    color: #374151;
}

.woub-admin-search-section-items {
    padding-bottom: 4px;
}

.woub-admin-search-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 180px;
    padding: 32px 24px;
    text-align: center;
}

.woub-admin-search-empty--compact {
    min-height: 140px;
    padding: 24px;
}

.woub-admin-search-empty-icon {
    width: 20px;
    height: 20px;
    color: #9ca3af;
    margin-bottom: 12px;
}

.woub-admin-search-empty-title {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
}

.woub-admin-search-empty-text {
    margin-top: 6px;
    max-width: 280px;
    font-size: 13px;
    line-height: 1.45;
    color: #6b7280;
}

.woub-admin-search-result {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 14px;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.woub-admin-search-result:hover,
.woub-admin-search-result:focus-visible,
.woub-admin-search-result--active {
    background: #f3f4f6;
    outline: none;
}

.woub-admin-search-result-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: 8px;
    border: 1px solid transparent;
}

.woub-admin-search-result-icon-svg {
    width: 18px !important;
    height: 18px !important;
}

.woub-admin-search-result-icon--company {
    background: #eff6ff;
    border-color: #dbeafe;
    color: #2563eb;
}

.woub-admin-search-result-icon--company .woub-admin-search-result-icon-svg {
    color: #2563eb !important;
}

.woub-admin-search-result-icon--user {
    background: #f5f3ff;
    border-color: #ede9fe;
    color: #7c3aed;
}

.woub-admin-search-result-icon--user .woub-admin-search-result-icon-svg {
    color: #7c3aed !important;
}

.woub-admin-search-result-icon--contact {
    background: #ecfdf5;
    border-color: #d1fae5;
    color: #059669;
}

.woub-admin-search-result-icon--contact .woub-admin-search-result-icon-svg {
    color: #059669 !important;
}

.woub-admin-search-result-icon--project {
    background: #fffbeb;
    border-color: #fde68a;
    color: #d97706;
}

.woub-admin-search-result-icon--project .woub-admin-search-result-icon-svg {
    color: #d97706 !important;
}

.woub-admin-search-result-icon--checklist {
    background: #fdf2f8;
    border-color: #fce7f3;
    color: #db2777;
}

.woub-admin-search-result-icon--checklist .woub-admin-search-result-icon-svg {
    color: #db2777 !important;
}

.woub-admin-search-result-main {
    min-width: 0;
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
}

.woub-admin-search-result-action {
    display: none;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    margin-left: auto;
    padding-left: 8px;
}

.woub-admin-search-result:hover .woub-admin-search-result-action,
.woub-admin-search-result:focus-visible .woub-admin-search-result-action,
.woub-admin-search-result--active .woub-admin-search-result-action {
    display: inline-flex;
}

.woub-admin-search-result-action-label {
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
    white-space: nowrap;
}

.woub-admin-search-result-action-kbd {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 6px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    font-size: 11px;
    font-weight: 600;
    color: #374151;
    line-height: 1;
}

.woub-admin-search-result-title {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    line-height: 1.3;
    flex-shrink: 0;
    max-width: 45%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.woub-admin-search-result-meta {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0;
    min-width: 0;
    flex: 1;
    margin-top: 0;
    font-size: 12px;
    color: #6b7280;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.woub-admin-search-result-meta-sep {
    margin: 0 4px;
    color: #d1d5db;
    flex-shrink: 0;
}

.woub-admin-search-result-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

.woub-admin-search-result-meta-label {
    color: #9ca3af;
    flex-shrink: 0;
}

.woub-admin-search-result-meta-value {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---- Integration log long payloads (Tailwind utilities in PHP attrs are not in Filament CSS) ---- */
.woub-integration-log-scroll {
    max-height: 24rem;
    overflow: auto;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.woub-integration-log-code {
    margin: 0;
    max-height: 24rem;
    overflow: auto;
    padding: 0.75rem 1rem;
    border-radius: 0.375rem;
    border: 1px solid #e8e8e8;
    background: #f7f7f8;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.8125rem;
    line-height: 1.55;
    white-space: pre;
    tab-size: 2;
}

.woub-integration-log-code code {
    display: block;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    background: transparent;
    padding: 0;
    color: inherit;
    white-space: inherit;
}

.fi-section:has(.woub-integration-log-code) .fi-section-content {
    padding-top: 0.75rem;
}

.fi-section:has(.woub-integration-log-code) .fi-in-entry,
.fi-section:has(.woub-integration-log-code) .fi-in-entry-content-ctn,
.fi-section:has(.woub-integration-log-code) .fi-in-entry-content,
.fi-section:has(.woub-integration-log-code) .fi-in-text {
    display: block;
    width: 100%;
}

.fi-section:has(.woub-integration-log-code) .fi-in-text {
    padding: 0;
}

/* ---- Flatter cards / tables ------------------------------------------- */
.fi-section:not(.fi-section-not-contained):not(.fi-aside),
.fi-wi-stats-overview-stat,
.fi-empty-state {
    box-shadow: none !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    --tw-ring-offset-shadow: 0 0 #0000 !important;
    border-radius: 0.375rem !important;
    border: 1px solid #f0f0f0;
}

/*
 * Equal-height section cards in schema grids (view/edit overview blocks).
 * Grid row stretch alone is not enough — nested wrappers must fill the cell.
 */
.fi-grid:not(.fi-grid-direction-col) > .fi-grid-col:has(> .fi-sc-component > .fi-sc-section) {
    display: flex;
    flex-direction: column;
    align-self: stretch;
}

.fi-grid:not(.fi-grid-direction-col) > .fi-grid-col:has(> .fi-sc-component > .fi-sc-section) > .fi-sc-component,
.fi-grid:not(.fi-grid-direction-col) > .fi-grid-col:has(> .fi-sc-component > .fi-sc-section) > .fi-sc-component > .fi-sc-section {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 100%;
    height: 100%;
}

.fi-grid:not(.fi-grid-direction-col) > .fi-grid-col:has(> .fi-sc-component > .fi-sc-section) .fi-section:not(.fi-aside) {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    height: 100%;
}

.fi-grid:not(.fi-grid-direction-col) > .fi-grid-col:has(> .fi-sc-component > .fi-sc-section) .fi-section > .fi-section-content-ctn {
    flex: 1 1 auto;
}

/*
 * Detail/edit section cards: never full-bleed. Force a 2-column track so a lone
 * section (e.g. User “Information”) stays at most 50% width. Nested field grids
 * inside a section are untouched (they do not contain .fi-sc-section children).
 */
@media (min-width: 700px) {
    .fi-main .fi-sc.fi-grid:has(> .fi-grid-col > .fi-sc-component > .fi-sc-section) {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

.fi-ta-ctn {
    box-shadow: none !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    --tw-ring-offset-shadow: 0 0 #0000 !important;
    border-radius: 0.375rem !important;
    border: none !important;
}

/* Relation-manager tables only — not overview/list page tables */
.fi-resource-relation-manager .fi-ta-ctn {
    border: 1px solid #f0f0f0 !important;
    border-radius: 0.375rem !important;
    overflow: hidden;
}

/*
 * Column/body separator under the toolbar.
 * Header/toolbar child borders were cleared for the single-row header layout.
 */
.fi-resource-relation-manager .fi-ta-header-ctn {
    border-bottom: 1px solid #f0f0f0 !important;
    background: #fff !important;
}

.fi-resource-relation-manager .fi-ta-header-ctn > .fi-ta-header,
.fi-resource-relation-manager .fi-ta-header-ctn > .fi-ta-header-toolbar {
    background: #fff !important;
}

.fi-resource-relation-manager .fi-ta-table > thead .fi-ta-header-cell {
    background: #fff !important;
}

.fi-resource-relation-manager .fi-pagination {
    background: #fff !important;
}

.fi-resource-relation-manager .fi-ta-content-ctn,
.fi-resource-relation-manager .fi-ta-empty-state {
    border-top: 0 !important;
    overflow: visible;
}

.fi-resource-relation-manager .fi-ta-table > thead {
    position: static;
    top: auto;
}

/* Relation manager / page tab switcher bar */
.fi-tabs:not(.fi-contained),
.fi-sc-tabs.fi-contained {
    box-shadow: none !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    --tw-ring-offset-shadow: 0 0 #0000 !important;
    border-radius: 0.375rem !important;
    border: 1px solid #f0f0f0;
}

/* Neutral Actions ⋮ trigger + dropdown items */
.fi-ta-actions .fi-ac-grouped-action,
.fi-ta-actions .fi-ac-grouped-action.fi-icon-btn,
.fi-ta-actions .fi-ac-grouped-action .fi-icon {
    color: #6b7280 !important;
    background: transparent !important;
}

.fi-ta-actions .fi-ac-grouped-action:hover,
.fi-ta-actions .fi-ac-grouped-action:hover .fi-icon {
    color: #374151 !important;
    background: #f3f4f6 !important;
}

.fi-dropdown-panel .fi-dropdown-list-item {
    color: #374151 !important;
}

.fi-dropdown-panel .fi-dropdown-list-item .fi-icon {
    display: none !important;
}

/* ---- Single-row table header (heading + toolbar) ---------------------- */
.fi-ta-header-ctn {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    border-bottom: 1px solid #f0f0f0;
}

/* Overview list pages use the muted gray chrome; relation managers stay white. */
.fi-resource-list-records-page .fi-ta-header-ctn {
    background: #fafafa;
}

.fi-resource-list-records-page .fi-pagination {
    background: #fafafa;
}

.fi-resource-list-records-page .fi-ta-table > thead .fi-ta-header-cell {
    background: #fafafa;
}

.fi-ta-header-ctn > .fi-ta-header {
    border-bottom: 0 !important;
    flex: 0 1 auto;
    padding-block: 0.75rem;
    justify-content: flex-start;
}

.fi-ta-header-ctn > .fi-ta-header .fi-ta-actions {
    margin-inline-start: 0 !important;
    justify-content: flex-start;
}

.fi-ta-header-ctn > .fi-ta-header-toolbar {
    border-bottom: 0 !important;
    flex: 1 1 auto;
    padding-block: 0.75rem;
    margin-inline-start: auto;
    justify-content: flex-end;
}

/* Sticky column header while body scrolls — list pages only.
 * Do NOT apply on view/relation-manager tables: sticky + overflow:auto there
 * (especially with topbar offset) clips the header row and breaks card radius. */
.fi-resource-list-records-page .fi-ta-content-ctn {
    overflow: auto;
}

.fi-resource-list-records-page .fi-ta-table > thead {
    position: sticky;
    top: 0;
    z-index: 20;
}

.fi-ta-table > thead .fi-ta-header-cell {
    box-shadow: none;
    border-bottom: none !important;
}

/* Compact row height */
.fi-ta-header-cell {
    padding-block: 0.5rem !important;
}

.fi-ta-text,
.fi-ta-icon,
.fi-ta-checkbox,
.fi-ta-image,
.fi-ta-color,
.fi-ta-select,
.fi-ta-toggle,
.fi-ta-cell .fi-ta-actions {
    padding-block: 0.5rem !important;
}

.fi-ta-cell .fi-ta-actions {
    padding-inline: 0.75rem;
}

/* Table search — match custom topbar search control */
.fi-ta-search-field {
    width: min(100%, 22rem);
}

.fi-ta-search-field .fi-input-wrp {
    box-shadow: none !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    --tw-ring-offset-shadow: 0 0 #0000 !important;
    --tw-shadow: 0 0 #0000 !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 0.75rem !important;
    background: #f9fafb !important;
    min-height: 2.25rem;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.fi-ta-search-field .fi-input-wrp:focus-within {
    box-shadow: none !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    border-color: #d1d5db !important;
    background: #f3f4f6 !important;
}

.fi-ta-search-field .fi-input {
    color: #6b7280;
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.fi-ta-search-field .fi-input::placeholder {
    color: #9ca3af;
}

.fi-ta-search-field .fi-input-wrp-prefix .fi-icon {
    color: #9ca3af;
}

/*
 * Overview list pages: fill the viewport so short / empty tables still stretch
 * and the paginator stays pinned to the bottom.
 *
 * DOM chain (every link must flex-grow):
 *   .fi-main-ctn → .fi-main → .fi-resource-list-records-page →
 *   .fi-page-header-main-ctn → .fi-page-main → .fi-page-content →
 *   .fi-sc → [schema col] → .fi-sc-component → .fi-ta → .fi-ta-ctn → .fi-ta-main
 */
.fi-main-ctn:has(.fi-resource-list-records-page) {
    display: flex !important;
    flex-direction: column;
    height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
}

.fi-main-ctn:has(.fi-resource-list-records-page) > .woub-global-search-topbar {
    flex-shrink: 0;
}

.fi-main-ctn:has(.fi-resource-list-records-page) > .fi-main {
    max-width: none !important;
    padding-inline: 0 !important;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.fi-resource-list-records-page {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.fi-resource-list-records-page .fi-page-header-main-ctn,
.fi-resource-list-records-page .fi-page-main,
.fi-resource-list-records-page .fi-page-content,
.fi-resource-list-records-page .fi-sc,
.fi-resource-list-records-page .fi-sc > *:has(.fi-ta),
.fi-resource-list-records-page .fi-sc-component:has(.fi-ta),
.fi-resource-list-records-page .fi-ta,
.fi-resource-list-records-page .fi-ta-ctn,
.fi-resource-list-records-page .fi-ta-main {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.fi-resource-list-records-page .fi-page-header-main-ctn {
    padding-block: 0 !important;
    gap: 0 !important;
}

.fi-resource-list-records-page .fi-page-content,
.fi-resource-list-records-page .fi-sc {
    gap: 0 !important;
}

.fi-resource-list-records-page .fi-ta-ctn {
    border-radius: 0 !important;
}

.fi-resource-list-records-page .fi-ta-header-ctn {
    flex-shrink: 0;
}

.fi-resource-list-records-page .fi-ta-content-ctn,
.fi-resource-list-records-page .fi-ta-empty-state {
    flex: 1 1 auto;
    min-height: 0;
}

.fi-resource-list-records-page .fi-pagination {
    margin-top: auto;
    flex-shrink: 0;
}

/* Endpoint-driven companies pagination: overview | per-page | page pills */
.woub-endpoint-table .woub-endpoint-pagination {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 0.75rem 1rem;
    padding: 0.75rem 1rem;
}

.woub-endpoint-table .woub-endpoint-pagination .fi-pagination-overview {
    display: inline !important;
    justify-self: start;
    grid-column: 1;
}

.woub-endpoint-table .woub-endpoint-pagination .fi-pagination-records-per-page-select-ctn {
    grid-column: 2;
    justify-self: center;
}

.woub-endpoint-table .woub-endpoint-pagination .fi-pagination-items {
    display: flex !important;
    grid-column: 3;
    justify-self: end;
}

.woub-endpoint-table .fi-ta-filters-dropdown {
    position: relative;
}

.woub-endpoint-table .woub-endpoint-filters-panel {
    position: absolute !important;
    top: calc(100% + 0.5rem) !important;
    left: auto !important;
    right: 0 !important;
    z-index: 50 !important;
    min-width: 18rem;
    max-width: min(22rem, calc(100vw - 1.5rem));
}

.woub-endpoint-table .fi-ta-content-ctn.is-loading {
    opacity: 0.55;
    pointer-events: none;
    transition: opacity 0.15s ease;
}

.woub-endpoint-table .fi-ta-empty-state {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 16rem;
}

.woub-endpoint-table .woub-endpoint-actions-panel {
    z-index: 80 !important;
    min-width: 9rem;
}


