/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-s40uurv82h] {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Header stays full-width across the top */
.top-row[b-s40uurv82h] {
    background-color: var(--bg-white);
    border-bottom: 1px solid #e6e6e6;
    display: flex;
    align-items: center;
    height: 72px;
    position: sticky;
    top: 0;
    z-index: 1030;
}

.site-logo-link[b-s40uurv82h] {
    display: inline-block;
    padding-top: 3px;
    padding-bottom: 2px;
}

.site-logo[b-s40uurv82h] {
    height: 56px;
}

.site-footer[b-s40uurv82h] {
    background: var(--bg-light);
    border-top: 1px solid #eee;
}

.site-footer-copyright[b-s40uurv82h] {
    font-size: 0.95rem;
    color: var(--text-muted);
    margin-top: 0.5rem;
}

/* Body = sidebar + content, sitting BELOW the header */
.page-body[b-s40uurv82h] {
    display: flex;
    flex-direction: column;
    flex: 1;
}

main[b-s40uurv82h] {
    flex: 1;
    min-width: 0;
}

.sidebar[b-s40uurv82h] {
    background: #fff;
    border-right: 1px solid #ececec;
    box-shadow: 1px 0 3px rgba(0, 0, 0, 0.03);
    transition: width 0.2s ease;
}

/* Collapse toggle button (sits at top of sidebar) */
.sidebar-collapse-btn[b-s40uurv82h] {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0.6rem;
    margin: 0.5rem;
    border: none;
    background: none;
    border-radius: 8px;
    color: #6b6b6b;
    transition: background-color 0.15s ease;
}

    .sidebar-collapse-btn:hover[b-s40uurv82h] {
        background: var(--bg-light);
    }

.sidebar-collapse-btn .bi[b-s40uurv82h] {
    display: inline-block;
    width: 1.15rem;
    height: 1.15rem;
    background-size: cover;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%236b6b6b' 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");
}

/* Side-by-side once there's room */
@media (min-width: 641px) {
    .page-body[b-s40uurv82h] {
        flex-direction: row;
    }

    .sidebar[b-s40uurv82h] {
        width: 250px;
        flex-shrink: 0;
        position: sticky;
        top: 72px;
        /* Stretch to the row height the sticky-footer flex layout computes (so a
           short page stays exactly 100vh with no overflow), but never exceed the
           viewport, scrolling independently when the nav is long. Using a hard
           height: calc(100vh - 72px) here forced .page-body taller than its flex
           allocation and pushed the document past 100vh, creating a phantom
           scrollbar and empty space under short pages. */
        align-self: stretch;
        max-height: calc(100vh - 72px);
        overflow-y: auto;
    }

    .top-row[b-s40uurv82h], article[b-s40uurv82h] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

/* Stack on narrow screens (hamburger takes over) */
@media (max-width: 640px) {
    .top-row[b-s40uurv82h] {
        height: 64px;
    }

    .top-row img[b-s40uurv82h] {
        height: 48px !important;
    }

    /* On narrow screens the slide-in drawer is the primary navigation, so the
       desktop collection sidebar is redundant — hide it to reclaim the space. */
    .sidebar[b-s40uurv82h] {
        display: none;
    }
}

#blazor-error-ui[b-s40uurv82h] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    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-s40uurv82h] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.social-links[b-s40uurv82h] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.social-link[b-s40uurv82h] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #6b6b6b;
    transition: color 0.15s ease, transform 0.15s ease;
}

    .social-link:hover[b-s40uurv82h] {
        color: #000;
        transform: translateY(-1px);
    }
/* /Components/Layout/NavMenuHorizontal.razor.rz.scp.css */
/* ============================================================================
   Navigation
   - Desktop (> 1075px auth / > 805px anon): inline horizontal nav + account
     dropdowns (.nav).
   - Mobile: a right-side slide-in drawer (.nav-drawer) with a backdrop
     (.nav-backdrop), opened by the animated hamburger (.navbar-toggle-horizontal).
   The drawer is data-driven and scales to many grouped destinations; add a
   sitemap node with children to get a new collapsible group for free.
   ============================================================================ */

/* ============ Desktop / inline (default) ============ */
.nav-horizontal[b-kyhhkewwgp] {
    display: flex;
    align-items: center;
    position: relative;
}

.container-fluid[b-kyhhkewwgp] {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* Hamburger button (hidden on desktop, shown at the collapse breakpoints) */
.navbar-toggle-horizontal[b-kyhhkewwgp] {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.4rem;
    color: #2b2b2b;
    line-height: 0;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
}

    .navbar-toggle-horizontal:hover[b-kyhhkewwgp] {
        background: color-mix(in srgb, var(--accent) 10%, transparent);
    }

    .navbar-toggle-horizontal:focus-visible[b-kyhhkewwgp] {
        outline: 2px solid var(--accent);
        outline-offset: 2px;
    }

.hamburger[b-kyhhkewwgp] {
    position: relative;
    display: inline-block;
    width: 26px;
    height: 20px;
}

.hamburger-line[b-kyhhkewwgp] {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2.5px;
    border-radius: 3px;
    background: currentColor;
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease, top 0.28s ease;
}

    .hamburger-line:nth-child(1)[b-kyhhkewwgp] {
        top: 0;
    }

    .hamburger-line:nth-child(2)[b-kyhhkewwgp] {
        top: 50%;
        transform: translateY(-50%);
    }

    .hamburger-line:nth-child(3)[b-kyhhkewwgp] {
        top: 100%;
        transform: translateY(-100%);
    }

/* Animate hamburger -> X when open */
.navbar-toggle-horizontal.is-open .hamburger-line:nth-child(1)[b-kyhhkewwgp] {
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
}

.navbar-toggle-horizontal.is-open .hamburger-line:nth-child(2)[b-kyhhkewwgp] {
    opacity: 0;
}

.navbar-toggle-horizontal.is-open .hamburger-line:nth-child(3)[b-kyhhkewwgp] {
    top: 50%;
    transform: translateY(-50%) rotate(-45deg);
}

.nav[b-kyhhkewwgp] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.25rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-item[b-kyhhkewwgp] {
    display: flex;
    align-items: center;
}

/* Single style for ALL inline desktop links AND the account toggle button */
.nav-link[b-kyhhkewwgp] {
    display: flex;
    align-items: center;
    color: #2b2b2b;
    background: none;
    border: none;
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
    font-weight: 600;
    line-height: 1.2;
    text-align: left;
    text-decoration: none;
    white-space: nowrap;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    cursor: pointer;
    position: relative;
}

    .nav-link:hover[b-kyhhkewwgp] {
        color: var(--accent);
    }

    .nav-link.active[b-kyhhkewwgp] {
        color: var(--accent);
        font-weight: 700;
        background: color-mix(in srgb, var(--accent) 12%, transparent);
    }

        .nav-link.active[b-kyhhkewwgp]::after {
            content: "";
            position: absolute;
            left: 0.75rem;
            right: 0.75rem;
            bottom: 0.1rem;
            height: 3px;
            border-radius: 3px;
            background: var(--accent);
        }

    .nav-link:focus[b-kyhhkewwgp],
    .nav-link:focus-visible[b-kyhhkewwgp] {
        outline: none;
        box-shadow: none;
    }

.signout-link[b-kyhhkewwgp] {
    font-weight: 500;
}

/* ============ Account (icon + dropdown) ============ */
.account-menu[b-kyhhkewwgp] {
    position: relative;
}

.account-toggle[b-kyhhkewwgp] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.45rem 0.6rem;
    border-radius: 999px;
    color: #2b2b2b;
    transition: background-color 0.15s ease, color 0.15s ease;
}

    .account-toggle:hover[b-kyhhkewwgp] {
        background: color-mix(in srgb, var(--accent) 10%, transparent);
        color: var(--accent);
    }

.account-caret[b-kyhhkewwgp] {
    transition: transform 0.15s ease;
}

.account-menu:has(.account-dropdown.open) .account-caret[b-kyhhkewwgp] {
    transform: rotate(180deg);
}

.account-dropdown[b-kyhhkewwgp] {
    display: none;
    position: absolute;
    top: calc(100% + 0.6rem);
    right: 0;
    min-width: 210px;
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.14);
    padding: 0.4rem;
    z-index: 1050;
    width: 100%;
}

    .account-dropdown.open[b-kyhhkewwgp] {
        display: block;
    }

        .account-dropdown.open[b-kyhhkewwgp]::before {
            content: "";
            position: absolute;
            top: -6px;
            right: 16px;
            width: 12px;
            height: 12px;
            background: #fff;
            border-left: 1px solid #ececec;
            border-top: 1px solid #ececec;
            transform: rotate(45deg);
        }

    .account-dropdown .nav-item[b-kyhhkewwgp] {
        width: 100%;
    }

    /* Small, uppercase section heading that visually groups related account
       links (Profile / Security / Billing). Presentation only. */
    .account-group-label[b-kyhhkewwgp] {
        padding: 0.5rem 0.85rem 0.2rem;
        font-size: 0.68rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: var(--text-muted, #666);
    }

        /* Tighten the gap before the very first group label. */
        .account-dropdown > .account-group-label:first-child[b-kyhhkewwgp] {
            padding-top: 0.25rem;
        }

    .account-dropdown-divider[b-kyhhkewwgp] {
        height: 1px;
        margin: 0.4rem 0.5rem;
        background: #ececec;
    }

    /* NavLink renders its own <a>, which does NOT get this component's scoped-CSS
       attribute, so the dropdown item rules MUST use ::deep (same as the sidebar /
       drawer) and carry their own neutral base styling — otherwise the anchors fall
       back to the global blue link color. */
    .account-dropdown[b-kyhhkewwgp]  .nav-link {
        display: flex;
        align-items: center;
        gap: 0.65rem;
        width: 100%;
        color: #4a4a4a;
        background: none;
        border: none;
        text-decoration: none;
        font-size: 0.92rem;
        font-weight: 500;
        padding: 0.62rem 0.85rem;
        border-radius: 8px;
        transition: background-color 0.15s ease, color 0.15s ease;
    }

        .account-dropdown[b-kyhhkewwgp]  .nav-link .bi {
            flex: 0 0 auto;
            width: 1.05rem;
            height: 1.05rem;
            filter: brightness(0) saturate(100%) invert(28%) sepia(0%) saturate(0%) hue-rotate(0deg);
        }

        .account-dropdown[b-kyhhkewwgp]  .nav-link .account-item-text {
            flex: 1 1 auto;
        }

        .account-dropdown[b-kyhhkewwgp]  .nav-link:hover {
            background: color-mix(in srgb, var(--accent) 10%, transparent);
            color: var(--accent);
        }

            .account-dropdown[b-kyhhkewwgp]  .nav-link:hover .bi {
                filter: brightness(0) saturate(100%) invert(38%) sepia(66%) saturate(2200%) hue-rotate(205deg);
            }

        .account-dropdown[b-kyhhkewwgp]  .nav-link.active {
            font-weight: 600;
            color: var(--accent);
            background: color-mix(in srgb, var(--accent) 12%, transparent);
        }

            /* Recolor the leading icon on the active item to match (parity with the sidebar). */
            .account-dropdown[b-kyhhkewwgp]  .nav-link.active .bi {
                filter: brightness(0) saturate(100%) invert(38%) sepia(66%) saturate(2200%) hue-rotate(205deg);
            }

            .account-dropdown[b-kyhhkewwgp]  .nav-link.active::after {
                display: none;
            }

/* ============ Mobile slide-in drawer ============ */
/* Hidden on desktop; revealed by the breakpoints below. */
.nav-backdrop[b-kyhhkewwgp] {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(17, 17, 17, 0.45);
    opacity: 0;
    visibility: hidden;
    z-index: 1090;
    transition: opacity 0.28s ease, visibility 0.28s ease;
    -webkit-tap-highlight-color: transparent;
}

    .nav-backdrop.open[b-kyhhkewwgp] {
        opacity: 1;
        visibility: visible;
    }

.nav-drawer[b-kyhhkewwgp] {
    display: none;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(90vw, 376px);
    background: #fff;
    box-shadow: -18px 0 42px rgba(0, 0, 0, 0.22);
    z-index: 1100;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}

    .nav-drawer.open[b-kyhhkewwgp] {
        transform: translateX(0);
    }

.nav-drawer-header[b-kyhhkewwgp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.1rem 1.1rem;
    border-bottom: 1px solid #eef0f3;
    background: linear-gradient(135deg, var(--primary, #1f2d4d) 0%, var(--primary-light, #3a4a6d) 100%);
    flex: 0 0 auto;
}

.nav-drawer-brand[b-kyhhkewwgp] {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    color: #fff;
    text-decoration: none;
    min-width: 0;
}

.nav-drawer-brand-mark[b-kyhhkewwgp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.16);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
    color: #fff;
    font-size: 1.1rem;
}

    .nav-drawer-brand-mark .bi[b-kyhhkewwgp] {
        margin-right: 0;
        width: 1.1rem;
        height: 1.1rem;
    }

.nav-drawer-brand-copy[b-kyhhkewwgp] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.15;
}

.nav-drawer-brand-text[b-kyhhkewwgp] {
    font-weight: 700;
    font-size: 1rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nav-drawer-brand-sub[b-kyhhkewwgp] {
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.72);
}

.nav-drawer-close[b-kyhhkewwgp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.12);
    border: none;
    color: #fff;
    cursor: pointer;
    border-radius: 10px;
    min-width: 40px;
    min-height: 40px;
    flex: 0 0 auto;
    transition: background-color 0.15s ease;
}

    .nav-drawer-close:hover[b-kyhhkewwgp] {
        background: rgba(255, 255, 255, 0.24);
    }

    .nav-drawer-close:focus-visible[b-kyhhkewwgp] {
        outline: 2px solid #fff;
        outline-offset: 2px;
    }

.nav-drawer-body[b-kyhhkewwgp] {
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding: 0.35rem 0.5rem 1rem;
    background: #fbfbfc;
}

/* Collapsible groups */
.nav-group[b-kyhhkewwgp] {
    padding: 0.15rem 0;
}

    .nav-group + .nav-group[b-kyhhkewwgp] {
        margin-top: 0.1rem;
    }

.nav-group-header[b-kyhhkewwgp] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.7rem 0.6rem 0.35rem;
    color: #9299a6;
    font: inherit;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    transition: color 0.15s ease;
}

    .nav-group-header:hover[b-kyhhkewwgp] {
        color: var(--primary, #1f2d4d);
    }

    .nav-group-header:focus-visible[b-kyhhkewwgp] {
        outline: 2px solid var(--accent);
        outline-offset: -2px;
        border-radius: 8px;
    }

.nav-group-icon[b-kyhhkewwgp] {
    margin-right: 0;
    width: 0.9rem;
    height: 0.9rem;
    opacity: 0.6;
}

.nav-group-title[b-kyhhkewwgp] {
    flex: 1 1 auto;
    text-align: left;
}

.nav-group-caret[b-kyhhkewwgp] {
    margin-right: 0;
    width: 0.75rem;
    height: 0.75rem;
    opacity: 0.5;
    transition: transform 0.25s ease;
}

.nav-group.expanded .nav-group-caret[b-kyhhkewwgp] {
    transform: rotate(180deg);
}

/* Collapsible body: animated max-height */
.nav-group-items[b-kyhhkewwgp] {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height 0.3s ease, opacity 0.2s ease;
}

.nav-group.expanded .nav-group-items[b-kyhhkewwgp] {
    /* Large enough to accommodate many links per group */
    max-height: 1600px;
    opacity: 1;
    padding-bottom: 0.2rem;
}

/* Secondary group (Help & Resources): visually de-emphasized and pushed to the
   bottom with a divider, so primary workspace groups read as the focus. */
.nav-group-secondary[b-kyhhkewwgp] {
    margin-top: 0.6rem;
    padding-top: 0.5rem;
    border-top: 1px solid #eef0f3;
}

    .nav-group-secondary .nav-group-header[b-kyhhkewwgp] {
        color: #a6adba;
        font-size: 0.64rem;
    }

    .nav-group-secondary[b-kyhhkewwgp]  .nav-drawer-link {
        font-weight: 500;
        font-size: 0.875rem;
        color: #6b7280;
        min-height: 40px;
    }

        .nav-group-secondary[b-kyhhkewwgp]  .nav-drawer-link:hover {
            color: var(--accent);
        }

    .nav-group-secondary[b-kyhhkewwgp]  .nav-drawer-icon {
        opacity: 0.75;
    }

/* App-navigation rows (NOT hyperlinks): inline glyph + label, full-width tappable.
   These mirror the desktop sidebar (NavMenuVertical ::deep .nav-link) EXACTLY so the
   two layouts feel like one navigation system: same neutral inactive text, same tinted
   active fill + accent text + heavier weight, same icon recolor. NavLink renders its own
   <a>, which does NOT inherit this component's scoped-CSS attribute, so these rules MUST
   use ::deep (same reason the sidebar uses ::deep) or they silently fail and the anchors
   fall back to the global blue link color. */
[b-kyhhkewwgp] .nav-drawer-link {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    color: #4a4a4a;
    text-decoration: none;
    font-weight: 500;
    font-size: 0.95rem;
    letter-spacing: -0.005em;
    padding: 0.62rem 0.85rem;
    border-radius: 8px;
    min-height: 46px;
    position: relative;
    transition: background-color 0.15s ease, color 0.15s ease, transform 0.08s ease;
}

    /* Reserve the brand color for hover — inactive rows stay neutral */
    [b-kyhhkewwgp] .nav-drawer-link:hover {
        background: color-mix(in srgb, var(--accent) 10%, transparent);
        color: var(--accent);
    }

    /* Pressed state: subtle push-down */
    [b-kyhhkewwgp] .nav-drawer-link:active {
        transform: scale(0.985);
    }

    /* Active page — immediately recognizable: tinted fill, accent text, heavier weight
       (identical to the sidebar's ::deep a.active). */
    [b-kyhhkewwgp] .nav-drawer-link.active {
        background: color-mix(in srgb, var(--accent) 12%, transparent);
        color: var(--accent);
        font-weight: 600;
    }

        /* Leading accent bar marks the current location */
        [b-kyhhkewwgp] .nav-drawer-link.active::before {
            content: "";
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            width: 3px;
            height: 1.6rem;
            border-radius: 0 3px 3px 0;
            background: var(--accent);
        }

    [b-kyhhkewwgp] .nav-drawer-link:focus-visible {
        outline: 2px solid var(--accent);
        outline-offset: -2px;
    }

/* Inline icon glyph for each row. The shared glyphs are dark SVGs, so recolor them
   with filter() (same technique as the sidebar .bi) — neutral by default, brand-accent
   on hover/active. */
.nav-drawer-icon[b-kyhhkewwgp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.05rem;
    height: 1.05rem;
    flex: 0 0 auto;
    margin-right: 0;
    transition: filter 0.15s ease, transform 0.13s ease;
}

.nav-drawer-icon.bi[b-kyhhkewwgp] {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    /* Neutral gray for inactive rows (matches sidebar .bi) */
    filter: brightness(0) saturate(100%) invert(28%) sepia(0%) saturate(0%) hue-rotate(0deg);
}

/* Hover + active: tint the glyph toward the blue accent (matches sidebar active icon) */
[b-kyhhkewwgp] .nav-drawer-link:hover .nav-drawer-icon.bi,
[b-kyhhkewwgp] .nav-drawer-link.active .nav-drawer-icon.bi {
    filter: brightness(0) saturate(100%) invert(38%) sepia(66%) saturate(2200%) hue-rotate(205deg);
}

.nav-drawer-label[b-kyhhkewwgp] {
    flex: 1 1 auto;
}

.nav-drawer-footer[b-kyhhkewwgp] {
    flex: 0 0 auto;
    border-top: 1px solid #eef0f3;
    padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom, 0px));
    background: #fff;
}

.nav-drawer-action[b-kyhhkewwgp] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    min-height: 48px;
    border-radius: 12px;
    font-weight: 700;
    text-decoration: none;
    padding: 0.7rem 1rem;
    transition: background-color 0.15s ease, filter 0.15s ease;
}

    .nav-drawer-action.login[b-kyhhkewwgp] {
        background: var(--accent);
        color: #fff;
        box-shadow: 0 6px 16px color-mix(in srgb, var(--accent) 30%, transparent);
    }

        .nav-drawer-action.login:hover[b-kyhhkewwgp] {
            filter: brightness(0.95);
        }

    .nav-drawer-action.signout[b-kyhhkewwgp] {
        background: #f4f5f7;
        color: #333a47;
        border: 1px solid #e4e7ec;
    }

        .nav-drawer-action.signout:hover[b-kyhhkewwgp] {
            background: #eceef2;
        }

/* ============ Breakpoints: swap inline nav for the drawer ============ */
/* Authenticated users collapse earlier (more inline items). */
@media (max-width: 1075px) {
    .nav-horizontal.is-auth .nav[b-kyhhkewwgp] {
        display: none;
    }

    .nav-horizontal.is-auth .navbar-toggle-horizontal[b-kyhhkewwgp] {
        display: inline-flex;
    }
}

/* Anonymous users collapse later. */
@media (max-width: 805px) {
    .nav-horizontal .nav[b-kyhhkewwgp] {
        display: none;
    }

    .nav-horizontal .navbar-toggle-horizontal[b-kyhhkewwgp] {
        display: inline-flex;
    }
}

/* Show the drawer + backdrop whenever the hamburger is in play.
   Visibility within is driven by the .open state classes. */
@media (max-width: 1075px) {
    .nav-backdrop[b-kyhhkewwgp] {
        display: block;
    }

    .nav-drawer[b-kyhhkewwgp] {
        display: flex;
    }
}

/* Honor reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
    .nav-drawer[b-kyhhkewwgp],
    .nav-backdrop[b-kyhhkewwgp],
    .hamburger-line[b-kyhhkewwgp],
    .nav-group-items[b-kyhhkewwgp],
    .nav-group-caret[b-kyhhkewwgp] {
        transition: none;
    }
}

/* Icons inside the nav (light background => dark fill) */
.bi[b-kyhhkewwgp] {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    margin-right: 0.4rem;
    top: 1px;
    position: relative;
    background-size: cover;
    vertical-align: -0.1em;
}
/* /Components/Layout/NavMenuVertical.razor.rz.scp.css */
/* ============================================================
   Sidebar (modern professional, light)
   ============================================================ */

/* Base icon: recolor the shared (dark) glyphs for the light sidebar */
.bi[b-bbo7q49xkm] {
    display: inline-block;
    position: relative;
    width: 1.05rem;
    height: 1.05rem;
    top: 1px;
    background-size: cover;
    filter: brightness(0) saturate(100%) invert(28%) sepia(0%) saturate(0%) hue-rotate(0deg);
}

/* Section header (now a clickable toggle) */
.sidebar-header[b-bbo7q49xkm] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    padding: 1.5rem 1.25rem 0.85rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--text-muted);
    border: none;
    border-bottom: 1px solid #f0f0f0;
    background: none;
    margin-bottom: 0.5rem;
    cursor: pointer;
    text-align: left;
    transition: color 0.15s ease;
}

    .sidebar-header:hover[b-bbo7q49xkm] {
        color: var(--accent);
    }

    .sidebar-header .bi[b-bbo7q49xkm] {
        width: 0.95rem;
        height: 0.95rem;
        top: 0;
    }

.sidebar-chevron[b-bbo7q49xkm] {
    margin-left: auto;           /* push to the far right */
    width: 0.5rem;
    height: 0.5rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(135deg);   /* points left = "collapse" */
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

/* Nav items */
.nav-item[b-bbo7q49xkm] {
    padding: 0.12rem 0.75rem;
}

    .nav-item[b-bbo7q49xkm]  .nav-link {
        display: flex;
        align-items: center;
        gap: 0.65rem;
        color: #4a4a4a;
        background: none;
        border: none;
        border-radius: 8px;
        font-size: 0.92rem;
        font-weight: 500;
        padding: 0.62rem 0.85rem;
        width: 100%;
        transition: background-color 0.15s ease, color 0.15s ease;
    }

        .nav-item[b-bbo7q49xkm]  .nav-link:hover {
            background: color-mix(in srgb, var(--accent) 10%, transparent);
            color: var(--accent);
        }

    .nav-item[b-bbo7q49xkm]  a.active {
        background: color-mix(in srgb, var(--accent) 12%, transparent);
        color: var(--accent);
        font-weight: 600;
    }

        /* Active item: tint icon toward the blue accent */
        .nav-item[b-bbo7q49xkm]  a.active .bi {
            filter: brightness(0) saturate(100%) invert(38%) sepia(66%) saturate(2200%) hue-rotate(205deg);
        }

/* Scroll container */
.nav-scrollable-vertical[b-bbo7q49xkm] {
    display: block;
    overflow: visible; /* was height:100%; overflow-y:auto — caused the extra scrollbar */
    padding-bottom: 1rem;
    background: var(--bg-white);
}
/* /Components/Pages/Collections/Index.razor.rz.scp.css */
/* Action buttons sit side by side when the column is wide enough and
   wrap to the next line only when space is tight. */
.collection-actions[b-gvwfmg3bz8] {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
}

    .collection-actions .btn[b-gvwfmg3bz8] {
        white-space: nowrap;
    }

/* Give the Actions column enough room to keep the buttons on one line
   on wider screens so they don't wrap prematurely. */
[b-gvwfmg3bz8] .collection-actions-col {
    width: 1%;
    white-space: nowrap;
}

/* On mobile stacked cards, make the action buttons full-width and
   stacked so they are easy to tap and never scatter awkwardly. */
@media (max-width: 640px) {
    .collection-actions[b-gvwfmg3bz8] {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        flex: 1 1 100%;
        width: 100%;
    }

        .collection-actions .btn[b-gvwfmg3bz8] {
            width: 100%;
        }

        .collection-actions span[b-gvwfmg3bz8] {
            text-align: center;
        }
}
/* /Components/Pages/ComingSoon.razor.rz.scp.css */
.coming-soon[b-r2b183ulqx] {
    display: flex;
    justify-content: center;
    padding: 3rem 1rem;
}

.coming-soon-card[b-r2b183ulqx] {
    width: 100%;
    max-width: 560px;
    text-align: center;
    background: #fff;
    border: 1px solid #eef0f3;
    border-radius: 16px;
    box-shadow: 0 10px 34px rgba(0, 0, 0, 0.07);
    padding: 2.5rem 1.75rem;
}

.coming-soon-badge[b-r2b183ulqx] {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent, #2f6fed);
    background: color-mix(in srgb, var(--accent, #2f6fed) 12%, #fff);
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    margin-bottom: 1rem;
}

.coming-soon-title[b-r2b183ulqx] {
    font-size: 1.9rem;
    font-weight: 800;
    color: var(--heading-color, #1b2336);
    margin: 0 0 0.75rem;
}

.coming-soon-lead[b-r2b183ulqx] {
    color: var(--text-secondary, #444);
    font-size: 1.02rem;
    line-height: 1.55;
    margin: 0 auto 1.75rem;
    max-width: 44ch;
}

.coming-soon-actions[b-r2b183ulqx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
}

@media (max-width: 420px) {
    .coming-soon-actions .btn[b-r2b183ulqx] {
        width: 100%;
    }
}
/* /Components/Shared/DataList.razor.rz.scp.css */
/* ===================================================================
   DataList — shared professional table styling
   =================================================================== */
.data-list[b-22zexl7da5] {
    background: var(--bg-white);
    border: 1px solid #ececec;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
    margin-bottom: 1.25rem;
}

.data-list__scroll[b-22zexl7da5] {
    overflow-x: auto;
}

/* Table reset so it fills the rounded container cleanly */
[b-22zexl7da5] .data-list__table {
    width: 100%;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.95rem;
}

/* Header */
[b-22zexl7da5] .data-list__table thead th {
    background: var(--bg-light);
    color: var(--heading-color);
    font-weight: 600;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
    padding: 0.85rem 1rem;
    border-bottom: 2px solid #ececec;
    vertical-align: middle;
}

/* Sort button inherits header typography */
[b-22zexl7da5] .data-list__sort {
    color: var(--heading-color) !important;
    font-size: inherit !important;
    letter-spacing: inherit;
    text-transform: inherit;
    font-weight: 600 !important;
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

[b-22zexl7da5] .data-list__sort:hover:not(:disabled) {
    color: var(--primary) !important;
}

[b-22zexl7da5] .data-list__sort--active {
    color: var(--primary) !important;
}

[b-22zexl7da5] .data-list__sort-indicator {
    font-size: 0.7rem;
    color: var(--primary);
}

/* Body cells */
[b-22zexl7da5] .data-list__table tbody td {
    padding: 0.85rem 1rem;
    border-bottom: 1px solid #f0f0f0;
    vertical-align: middle;
    color: var(--text-main);
}

[b-22zexl7da5] .data-list__table tbody tr:last-child td {
    border-bottom: none;
}

/* Zebra + hover */
[b-22zexl7da5] .data-list__table tbody tr:nth-child(even):not(.data-list__detail-row) {
    background: #fcfbf9;
}

[b-22zexl7da5] .data-list__table tbody tr:not(.data-list__detail-row):hover {
    background: rgba(176, 141, 87, 0.06);
}

/* Expanded parent row stands out from its detail panel */
[b-22zexl7da5] .data-list__row--expanded > td {
    background: rgba(176, 141, 87, 0.09);
    border-bottom: none;
    font-weight: 500;
}

/* Detail / expansion panel */
[b-22zexl7da5] .data-list__detail-row > td {
    padding: 0;
    border-bottom: 1px solid #f0f0f0;
    background: var(--bg-light);
}

[b-22zexl7da5] .data-list__detail {
    padding: 1.25rem 1.5rem 1.5rem;
    border-left: 3px solid var(--primary);
    background: var(--bg-light);
}

/* ===================================================================
   Mobile (= 640px) — collapse the table into stacked cards so rows
   stay readable on phones instead of forcing horizontal scrolling.
   Mirrors MainLayout's 640px breakpoint.
   =================================================================== */
@media (max-width: 640px) {
    .data-list__scroll[b-22zexl7da5] {
        overflow-x: visible;
    }

    /* Hide the header row; each cell carries its own label instead. */
    [b-22zexl7da5] .data-list__table thead {
        display: none;
    }

    [b-22zexl7da5] .data-list__table,
    [b-22zexl7da5] .data-list__table tbody,
    [b-22zexl7da5] .data-list__table tr,
    [b-22zexl7da5] .data-list__table td {
        display: block;
        width: 100%;
    }

    /* Each data row becomes a self-contained card. */
    [b-22zexl7da5] .data-list__table tbody tr:not(.data-list__detail-row) {
        border: 1px solid #dcd7cf;
        border-radius: var(--radius);
        margin-bottom: 1.25rem;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
        background: var(--bg-white);
        overflow: hidden;
    }

    [b-22zexl7da5] .data-list__table tbody tr:not(.data-list__detail-row):last-child {
        margin-bottom: 0;
    }

    /* Neutralize desktop zebra striping inside the card look. */
    [b-22zexl7da5] .data-list__table tbody tr:nth-child(even):not(.data-list__detail-row) {
        background: var(--bg-white);
    }

    [b-22zexl7da5] .data-list__row--expanded > td {
        background: var(--bg-white);
    }

    /* Label / value laid out as a two-column flex line. */
    [b-22zexl7da5] .data-list__table tbody td {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        gap: 1rem;
        padding: 0.6rem 1rem;
        border-bottom: 1px solid #f3f1ee;
        text-align: right;
        flex-wrap: wrap;
        row-gap: 0.5rem;
    }

    [b-22zexl7da5] .data-list__table tbody td:last-child {
        border-bottom: none;
    }

    /* Tinted first cell anchors the top of each stacked card. */
    [b-22zexl7da5] .data-list__table tbody tr:not(.data-list__detail-row) td:first-child {
        background: var(--bg-light);
        border-bottom: 1px solid #e4e0d9;
    }

    [b-22zexl7da5] .data-list__table tbody td[data-label]::before {
        content: attr(data-label);
        flex: 0 0 auto;
        font-weight: 600;
        font-size: 0.72rem;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: var(--heading-color);
        text-align: left;
    }

    /* Cells with no header label (e.g., action buttons) stay left-aligned. */
    [b-22zexl7da5] .data-list__table tbody td[data-label=""] {
        justify-content: flex-end;
        text-align: left;
    }

        [b-22zexl7da5] .data-list__table tbody td[data-label=""] .btn,
        [b-22zexl7da5] .data-list__table tbody td[data-label=""] .btn-group {
            flex: 0 0 auto;
        }

    /* Detail panel spans the full card width with no inline label. */
    [b-22zexl7da5] .data-list__detail-row > td {
        padding: 0;
        text-align: left;
    }

    [b-22zexl7da5] .data-list__detail {
        border-left: none;
        border-top: 3px solid var(--primary);
        padding: 1rem 1.1rem 1.25rem;
    }
}
/* /Components/Shared/EntityTypeahead.razor.rz.scp.css */
.entity-typeahead__menu[b-pwze8dg5ib] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1050;
    max-height: 18rem;
    overflow-y: auto;
}
/* /Components/Shared/ImageLightbox.razor.rz.scp.css */
.lb-backdrop[b-5g14ikuibi] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1080;
    padding: 2rem;
}

.lb-stage[b-5g14ikuibi] {
    max-width: 92vw;
    max-height: 88vh;
    overflow: hidden; /* zoom in place, no scrollbars */
    display: flex;
    align-items: center;
    justify-content: center;
    touch-action: none;   /* let us handle pinch/drag ourselves */
    overscroll-behavior: contain;
}

.lb-img[b-5g14ikuibi] {
    max-width: 92vw;
    max-height: 88vh;
    border-radius: 6px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
    transform-origin: center center;
    transition: transform 0.12s ease;
    user-select: none;
    -webkit-user-select: none;
    touch-action: none; /* let us handle drag/pan gestures */
}

    .lb-img.lb-zoomed[b-5g14ikuibi] {
        cursor: grab;
    }

    .lb-img.lb-panning[b-5g14ikuibi] {
        cursor: grabbing;
        transition: none; /* follow the pointer instantly while dragging */
    }

.lb-close[b-5g14ikuibi] {
    position: absolute;
    top: 1rem;
    right: 1.5rem;
    color: #fff;
    font-size: 2rem;
    background: none;
    border: none;
    cursor: pointer;
    line-height: 1;
    z-index: 1;
}

.lb-toolbar[b-5g14ikuibi] {
    position: absolute;
    bottom: 1.25rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(0, 0, 0, 0.55);
    padding: 0.4rem 0.75rem;
    border-radius: 999px;
    z-index: 1;
}

.lb-btn[b-5g14ikuibi] {
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.6rem;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 6px;
    background: transparent;
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}

    .lb-btn:hover[b-5g14ikuibi] {
        background: rgba(255, 255, 255, 0.15);
    }

.lb-zoom[b-5g14ikuibi] {
    color: #fff;
    min-width: 3.5rem;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
/* /Components/Shared/Pager.razor.rz.scp.css */
.pager[b-5wd9wpixxh] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
}

.pager__status[b-5wd9wpixxh] {
    text-align: center;
    white-space: nowrap;
}

/* On phones give the buttons equal width and let the status sit on its own line. */
@media (max-width: 640px) {
    .pager[b-5wd9wpixxh] {
        flex-wrap: wrap;
    }

    .pager__status[b-5wd9wpixxh] {
        order: 3;
        flex: 1 0 100%;
        text-align: center;
        margin-top: 0.25rem;
    }

    .pager .btn[b-5wd9wpixxh] {
        flex: 1 1 0;
    }
}
