/* _content/EVouchers.Web/Components/Account/Pages/Login.razor.rz.scp.css */
.login-container[b-is834ousgw] {
    min-height: calc(100vh - 120px);
    display: flex;
    align-items: center;
    padding: 2rem 0;
}

.login-welcome[b-is834ousgw] {
    color: #333;
    position: relative;
    overflow: hidden;
    border-right: 1px solid #e9ecef;
}

.login-welcome > div[b-is834ousgw] {
    position: relative;
    z-index: 1;
}

.login-form-container[b-is834ousgw] {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.feature-icon[b-is834ousgw] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-primary[b-is834ousgw] {
    border: none;
    font-weight: 600;
    padding: 0.75rem 1.5rem;
    transition: all 0.3s ease;
}

.btn-primary:hover[b-is834ousgw] {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(13, 110, 253, 0.4);
}

.form-control:focus[b-is834ousgw] {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

@media (max-width: 767.98px) {
    .login-welcome[b-is834ousgw] {
        order: 2;
        min-height: 300px;
        border-right: none;
        border-top: 1px solid #e9ecef;
    }
    
    .login-form-container[b-is834ousgw] {
        order: 1;
    }
    
    .login-container[b-is834ousgw] {
        padding: 1rem 0;
    }
    
    .p-5[b-is834ousgw] {
        padding: 2rem !important;
    }
}
/* _content/EVouchers.Web/Components/Account/Pages/Register.razor.rz.scp.css */
/* Reuse the same styles as Login page for consistency */
.login-container[b-1bz2h6j9zx] {
    min-height: calc(100vh - 120px);
    display: flex;
    align-items: center;
    padding: 2rem 0;
}

.login-welcome[b-1bz2h6j9zx] {
    background: #f8f9fa;
    color: #333;
    position: relative;
    overflow: hidden;
    border-right: 1px solid #e9ecef;
}

.login-welcome > div[b-1bz2h6j9zx] {
    position: relative;
    z-index: 1;
}

.login-form-container[b-1bz2h6j9zx] {
    background: white;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.feature-icon[b-1bz2h6j9zx] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-primary[b-1bz2h6j9zx] {
    border: none;
    font-weight: 600;
    padding: 0.75rem 1.5rem;
    transition: all 0.3s ease;
}

.btn-primary:hover[b-1bz2h6j9zx] {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(13, 110, 253, 0.4);
}

.form-control:focus[b-1bz2h6j9zx] {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

@media (max-width: 767.98px) {
    .login-welcome[b-1bz2h6j9zx] {
        order: 2;
        min-height: 300px;
        border-right: none;
        border-top: 1px solid #e9ecef;
    }
    
    .login-form-container[b-1bz2h6j9zx] {
        order: 1;
    }
    
    .login-container[b-1bz2h6j9zx] {
        padding: 1rem 0;
    }
    
    .p-5[b-1bz2h6j9zx] {
        padding: 2rem !important;
    }
}
/* _content/EVouchers.Web/Components/Layout/MainLayout.razor.rz.scp.css */
/* ===== MAIN LAYOUT STRUCTURE =====
   Dashboard chrome for the eVoucher.gift identity: ink top bar and sidebar,
   paper content surface, brass/claret accents. Tokens from app.css.
   Structure: .page > TopNavbar + .main-content-wrapper > (.sidebar + main) */
.page[b-etemm3h1hd] {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Holds the sidebar and content below the top bar. Stacks on mobile, and
   becomes a row from 641px up. */
.main-content-wrapper[b-etemm3h1hd] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

main[b-etemm3h1hd] {
    flex: 1;
    background: transparent;
    /* `clip` (not `hidden`) so descendants can use position: sticky.
       `overflow-x: hidden` makes browsers compute overflow-y to `auto`,
       turning <main> into the nearest scrolling ancestor for sticky
       elements — but main never actually scrolls (body does), so sticky
       never engages. `clip` clips without establishing a scroll context. */
    overflow-x: clip;
}

/* Content area */
.content[b-etemm3h1hd] {
    max-width: 1400px;
    margin: 0 auto;
}

/* ===== SIDEBAR STYLING ===== */
.sidebar[b-etemm3h1hd] {
    background: var(--ev-ink, #1A1411);
    box-shadow: inset -1px 0 0 rgba(244, 236, 222, 0.08);
    transition: all 0.3s ease;
    position: relative;
    overflow: visible;
}

/* A thread of brass along the sidebar's outer edge */
.sidebar[b-etemm3h1hd]::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: 100%;
    background: linear-gradient(to bottom, var(--ev-brass, #B68B4C), rgba(182, 139, 76, 0.1));
    pointer-events: none;
}

/* ===== RESPONSIVE DESIGN ===== */
@media (max-width: 640.98px) {
    main[b-etemm3h1hd] {
        padding: 0.75rem;
    }

    /* The sidebar collapses out of flow; the top bar's hamburger toggles
       body.mobile-nav-open (see evouchersToggleMobileNav in App.razor). */
    .sidebar[b-etemm3h1hd] {
        display: none;
    }

    /* Scoped CSS appends the scope attribute to the last selector, so this
       compiles to `body.mobile-nav-open .sidebar[b-xxx]` — the body class is
       matched as a plain ancestor. */
    body.mobile-nav-open .sidebar[b-etemm3h1hd] {
        display: block;
    }
}

@media (min-width: 641px) {
    .main-content-wrapper[b-etemm3h1hd] {
        flex-direction: row;
    }

    .sidebar[b-etemm3h1hd] {
        width: 280px;
        /* Sits below the top bar and scrolls independently of the page. */
        height: calc(100vh - var(--ev-topbar-h, 3.5rem));
        position: sticky;
        top: var(--ev-topbar-h, 3.5rem);
        flex-shrink: 0;
    }

    article[b-etemm3h1hd] {
        padding-left: 2rem !important;
        padding-right: 2rem !important;
    }
}

/* ===== LARGE SCREEN ENHANCEMENTS ===== */
@media (min-width: 1200px) {
    .sidebar[b-etemm3h1hd] {
        width: 320px;
    }

    article[b-etemm3h1hd] {
        padding-left: 2.5rem !important;
        padding-right: 2.5rem !important;
    }
}

/* ===== ERROR UI STYLING ===== */
#blazor-error-ui[b-etemm3h1hd] {
    background: var(--ev-claret-deep, #3E1019);
    bottom: 0;
    box-shadow: 0 -4px 20px rgba(62, 16, 25, 0.3);
    display: none;
    left: 0;
    padding: 1rem 1.5rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    color: var(--ev-paper-light, #FBF6EC);
    font-weight: 500;
    border-top: 1px solid var(--ev-brass, #B68B4C);
}

#blazor-error-ui .dismiss[b-etemm3h1hd] {
    cursor: pointer;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(244, 236, 222, 0.2);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    font-size: 18px;
    font-weight: bold;
}

#blazor-error-ui .dismiss:hover[b-etemm3h1hd] {
    background: rgba(244, 236, 222, 0.3);
    transform: translateY(-50%) scale(1.1);
}

/* ===== SCROLL BEHAVIOR ===== */
html[b-etemm3h1hd] {
    scroll-behavior: smooth;
}

/* Custom scrollbar for webkit browsers */
[b-etemm3h1hd]::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

[b-etemm3h1hd]::-webkit-scrollbar-track {
    background: rgba(26, 20, 17, 0.05);
    border-radius: 3px;
}

[b-etemm3h1hd]::-webkit-scrollbar-thumb {
    background: rgba(182, 139, 76, 0.4);
    border-radius: 3px;
    transition: background 0.2s ease;
}

[b-etemm3h1hd]::-webkit-scrollbar-thumb:hover {
    background: rgba(182, 139, 76, 0.6);
}

/* ===== ANIMATION UTILITIES ===== */
@keyframes fadeIn-b-etemm3h1hd {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes slideInFromLeft-b-etemm3h1hd {
    from { opacity: 0; transform: translateX(-20px); }
    to { opacity: 1; transform: translateX(0); }
}

/* Apply animations to main content */
main[b-etemm3h1hd] {
    animation: fadeIn-b-etemm3h1hd 0.5s ease-out;
}

.sidebar[b-etemm3h1hd] {
    animation: slideInFromLeft-b-etemm3h1hd 0.3s ease-out;
}

/* ===== FOCUS AND ACCESSIBILITY ===== */
.top-row[b-etemm3h1hd]  a:focus,
.top-row[b-etemm3h1hd]  .btn-link:focus {
    outline: 2px solid var(--ev-brass, #B68B4C);
    outline-offset: 2px;
}

/* Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
    *[b-etemm3h1hd],
    [b-etemm3h1hd]::before,
    [b-etemm3h1hd]::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
/* _content/EVouchers.Web/Components/Layout/NavMenu.razor.rz.scp.css */
/* Brand wordmark and the mobile toggler now live in TopNavbar.razor.css. */

.bi[b-h1jlr2vgut] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    margin-right: 0.5rem;
    top: -1px;
    background-size: cover;
}

.nav-item[b-h1jlr2vgut] {
    font-size: 0.8rem;
}

    .nav-item:first-of-type[b-h1jlr2vgut] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-h1jlr2vgut] {
        padding-bottom: 1rem;
    }

    .nav-item[b-h1jlr2vgut]  .nav-link {
        color: rgba(244, 236, 222, 0.62);
        background: none;
        border: none;
        border-radius: 4px;
        height: 2.5rem;
        display: flex;
        align-items: center;
        line-height: 2.5rem;
        width: 100%;
        padding-left: 1rem;
    }

    /* Button styled as nav-link */
    .nav-item[b-h1jlr2vgut]  button.nav-link {
        color: rgba(244, 236, 222, 0.62);
        background: none;
        border: none;
        border-radius: 4px;
        height: 2.5rem;
        display: flex;
        align-items: center;
        line-height: 2.5rem;
        width: 100%;
        padding-left: 1rem;
        text-align: left;
        cursor: pointer;
    }

    .nav-item[b-h1jlr2vgut]  a.active {
        background-color: rgba(182, 139, 76, 0.12);
        color: var(--ev-brass, #B68B4C);
    }

.nav-item[b-h1jlr2vgut]  .nav-link:hover {
    color: var(--ev-paper-light, #FBF6EC);
}

.nav-item[b-h1jlr2vgut]  button.nav-link:hover {
    color: var(--ev-paper-light, #FBF6EC);
}

/* Don't change background on hover for active items */
    .nav-item[b-h1jlr2vgut]  a.active:hover {
        color: var(--ev-brass, #B68B4C);
    }

/* Visibility of the nav is now the sidebar's job: on mobile the whole sidebar
   is hidden until the top bar's hamburger sets body.mobile-nav-open, so the nav
   itself is always displayed. */
.nav-scrollable[b-h1jlr2vgut] {
    display: block;
}

@media (min-width: 641px) {
    .nav-scrollable[b-h1jlr2vgut] {
        /* Allow the sidebar to scroll for tall menus */
        height: 100%;
        overflow-y: auto;
    }
}

/* Admin submenu styles - Bootstrap accordion */
.admin-submenu-container .accordion[b-h1jlr2vgut] {
    width: 100%;
}

.admin-submenu-container .accordion-item[b-h1jlr2vgut] {
    background: none;
    border: none;
}

.admin-submenu-container .accordion-button[b-h1jlr2vgut] {
    background: none;
    border: none;
    box-shadow: none;
    color: rgba(244, 236, 222, 0.62);
    padding: 0;
    border-radius: 4px;
    height: 2.5rem;
    line-height: 2.5rem;
    width: 100%;
    padding-left: 1rem;
    font-size: var(--bs-nav-link-font-size);
}

.admin-submenu-container .accordion-button:hover[b-h1jlr2vgut] {
    background: none;
    color: var(--ev-paper-light, #FBF6EC);
}

.admin-submenu-container .accordion-button:focus[b-h1jlr2vgut] {
    box-shadow: none;
    border: none;
}

.admin-submenu-container .accordion-button[b-h1jlr2vgut]::after {
    margin-left: auto;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb(196, 185, 166)'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    transform: rotate(0deg);
    transition: transform 0.2s ease-in-out;
}

.admin-submenu-container .accordion-button:not(.collapsed)[b-h1jlr2vgut]::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb(196, 185, 166)'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    transform: rotate(180deg);
}

.admin-submenu-container .accordion-collapse[b-h1jlr2vgut] {
    border: none;
}

.admin-submenu-container .accordion-body[b-h1jlr2vgut] {
    padding: 0;
    background: none;
}

.admin-submenu-container .accordion-body .nav-item[b-h1jlr2vgut] {
    padding-top: 0;
    padding-bottom: 0;
}

.admin-submenu-container .accordion-body .nav-item .nav-link[b-h1jlr2vgut] {
    padding-left: 2rem;
    font-size: 0.75rem;
    height: 2rem;
    line-height: 2rem;
}

/* Active state for accordion sub-items */
.admin-submenu-container .accordion-body .nav-item[b-h1jlr2vgut]  a.active {
    background-color: rgba(182, 139, 76, 0.12);
    color: var(--ev-brass, #B68B4C);
}

/* Don't change background on hover for active sub-items */
.admin-submenu-container .accordion-body .nav-item[b-h1jlr2vgut]  a.active:hover {
    background-color: rgba(182, 139, 76, 0.12);
    color: var(--ev-brass, #B68B4C);
}
/* _content/EVouchers.Web/Components/Layout/TopNavbar.razor.rz.scp.css */
/* Ink bar with a brass hairline — the same surface treatment as the sidebar, so
   the two read as one piece of chrome. Deliberately ink in BOTH themes: the
   light/dark switch governs the content area, not the app chrome (as in Casira). */
.top-navbar[b-qykketwv85] {
    position: sticky;
    top: 0;
    /* Above .card:has(.dropdown-menu.show) (z-index 1001 in app.css), so the
       profile menu can never be painted behind a dashboard card. */
    z-index: 1030;
    height: var(--ev-topbar-h, 3.5rem);
    flex-shrink: 0;
    background: var(--ev-ink, #1A1411);
    border-bottom: 1px solid rgba(182, 139, 76, 0.35);
}

.top-navbar-inner[b-qykketwv85] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    height: 100%;
    padding: 0 1rem;
}

.top-navbar-left[b-qykketwv85],
.top-navbar-right[b-qykketwv85] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

/* The left group absorbs the slack and shrinks (the workspace name ellipsises);
   the right group keeps the profile button and hamburger at full size. */
.top-navbar-left[b-qykketwv85] {
    flex: 1 1 auto;
    overflow: hidden;
}

.top-navbar-right[b-qykketwv85] {
    flex: 0 0 auto;
}

/* ===== Brand ===== */
.brand-wordmark[b-qykketwv85] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
    font-family: var(--ev-font-serif, Georgia, serif);
    font-size: 1.1rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    color: var(--ev-paper-light, #FBF6EC);
    text-decoration: none;
    white-space: nowrap;
}

.brand-wordmark:hover[b-qykketwv85] {
    color: var(--ev-paper-light, #FBF6EC);
}

.brand-wordmark img[b-qykketwv85] {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

/* ===== Mobile sidebar toggle ===== */
.navbar-toggler[b-qykketwv85] {
    appearance: none;
    cursor: pointer;
    width: 2.75rem;
    height: 2.25rem;
    flex-shrink: 0;
    border: 1px solid rgba(244, 236, 222, 0.15);
    border-radius: 4px;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28251, 246, 236, 0.65%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.5rem rgba(244, 236, 222, 0.08);
}

.navbar-toggler:checked[b-qykketwv85] {
    background-color: rgba(182, 139, 76, 0.3);
}

@media (min-width: 641px) {
    .navbar-toggler[b-qykketwv85] {
        display: none;
    }

    .top-navbar-inner[b-qykketwv85] {
        padding: 0 1.5rem;
    }
}

/* The brand name would otherwise squeeze the workspace switcher on narrow phones. */
@media (max-width: 480px) {
    .brand-name[b-qykketwv85] {
        display: none;
    }
}
/* _content/EVouchers.Web/Components/Pages/Dashboard.razor.rz.scp.css */
/* ============================================================
   Merchant dashboard — stat tiles, daily-sales chart, activity
   Uses the ev-* brand tokens and --chart-* theme tokens (app.css)
   ============================================================ */

/* --- KPI stat tiles --- */
.ev-stat .card-body[b-skj6b5htj1] {
    padding: 1.1rem 1.25rem;
}

.ev-stat-label[b-skj6b5htj1] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin-bottom: 0.35rem;
}

.ev-stat-value[b-skj6b5htj1] {
    font-family: var(--ev-font-serif);
    font-size: 1.9rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
    color: var(--bs-emphasis-color);
}

.ev-stat-sub[b-skj6b5htj1] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color);
    margin-top: 0.3rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: baseline;
}

.ev-stat-accent[b-skj6b5htj1] {
    border-left: 3px solid var(--ev-brass);
}

.ev-delta[b-skj6b5htj1] {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    font-weight: 600;
    border-radius: 999px;
    padding: 0.05rem 0.5rem;
    font-size: 0.75rem;
}

.ev-delta.up[b-skj6b5htj1] {
    color: var(--chart-success);
    background: color-mix(in srgb, var(--chart-success) 14%, transparent);
}

.ev-delta.down[b-skj6b5htj1] {
    color: var(--chart-danger);
    background: color-mix(in srgb, var(--chart-danger) 14%, transparent);
}

/* --- Expiring-soon note --- */
.ev-expiry-note[b-skj6b5htj1] {
    border: 1px solid var(--bs-info-border-subtle);
    background: var(--bs-info-bg-subtle);
    border-radius: 0.75rem;
    padding: 0.7rem 1rem;
    font-size: 0.85rem;
}

/* --- Daily sales chart --- */
.ev-chart[b-skj6b5htj1] {
    display: flex;
    align-items: flex-end;
    gap: 2px; /* the 2px surface gap between adjacent bars */
    height: 220px;
    padding-bottom: 2px;
    border-bottom: 1px solid var(--bs-border-color); /* recessive baseline, no grid */
}

.ev-chart-col[b-skj6b5htj1] {
    position: relative;
    flex: 1 1 0;
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    min-width: 0;
    cursor: default;
}

/* hover hit-target is the full column, not just the bar */
.ev-chart-col:hover[b-skj6b5htj1] {
    background: color-mix(in srgb, var(--chart-primary) 7%, transparent);
    border-radius: 4px 4px 0 0;
}

.ev-chart-bar[b-skj6b5htj1] {
    width: 100%;
    max-width: 18px;
    background: var(--chart-primary);
    border-radius: 4px 4px 0 0; /* rounded data-end, flat at the baseline */
    transition: height 0.2s ease;
}

.ev-chart-bar.zero[b-skj6b5htj1] {
    height: 2px !important;
    background: var(--bs-border-color);
    border-radius: 0;
}

.ev-chart-tip[b-skj6b5htj1] {
    position: absolute;
    bottom: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%);
    background: var(--bs-emphasis-color);
    color: var(--bs-body-bg);
    font-size: 0.72rem;
    line-height: 1.35;
    padding: 0.35rem 0.55rem;
    border-radius: 0.5rem;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.1s ease;
    z-index: 5;
    box-shadow: var(--ev-shadow-1);
}

.ev-chart-col:hover .ev-chart-tip[b-skj6b5htj1] {
    opacity: 1;
}

/* keep edge tooltips inside the card */
.ev-chart-col:nth-child(-n+4) .ev-chart-tip[b-skj6b5htj1] {
    left: 0;
    transform: none;
}

.ev-chart-col:nth-last-child(-n+4) .ev-chart-tip[b-skj6b5htj1] {
    left: auto;
    right: 0;
    transform: none;
}

.ev-chart-axis[b-skj6b5htj1] {
    display: flex;
    justify-content: space-between;
    font-size: 0.72rem;
    color: var(--bs-secondary-color);
    margin-top: 0.35rem;
}

.ev-chart-empty .bi[b-skj6b5htj1] {
    font-size: 2rem;
    color: var(--bs-secondary-color);
    opacity: 0.6;
}

/* --- Quick actions --- */
.ev-actions .list-group-item[b-skj6b5htj1] {
    background: transparent;
    border-color: var(--bs-border-color);
    padding: 0.65rem 0.25rem;
}

.ev-actions .list-group-item:first-child[b-skj6b5htj1] {
    border-top: 0;
}

.ev-actions .list-group-item:last-child[b-skj6b5htj1] {
    border-bottom: 0;
}

.ev-actions .bi[b-skj6b5htj1] {
    color: var(--ev-brass);
}

/* --- Publish nudge --- */
.ev-publish-nudge[b-skj6b5htj1] {
    border: 1px dashed var(--ev-rule-strong);
    background: var(--bs-tertiary-bg);
}

/* --- First-run steps --- */
.ev-welcome[b-skj6b5htj1] {
    border-left: 3px solid var(--ev-brass);
}

.ev-step[b-skj6b5htj1] {
    display: block;
    height: 100%;
    padding: 1rem 1.1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    text-decoration: none;
    color: var(--bs-body-color);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ev-step:hover[b-skj6b5htj1] {
    border-color: var(--ev-brass);
    box-shadow: var(--ev-shadow-1);
    color: var(--bs-body-color);
}

.ev-step-num[b-skj6b5htj1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: var(--bs-primary);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.ev-step-title[b-skj6b5htj1] {
    display: block;
    font-family: var(--ev-font-serif);
    font-size: 1.05rem;
    margin-bottom: 0.15rem;
}

.ev-step-text[b-skj6b5htj1] {
    display: block;
    font-size: 0.8rem;
    color: var(--bs-secondary-color);
}

/* --- Recent activity --- */
.ev-table th[b-skj6b5htj1] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    border-bottom-width: 1px;
}

.ev-redemptions li + li[b-skj6b5htj1] {
    border-top: 1px solid var(--bs-border-color);
}
/* _content/EVouchers.Web/Components/ProfilePanel.razor.rz.scp.css */
/* The top bar is ink in both themes (it matches the sidebar), so the trigger is
   always styled for a dark surface. The menu itself is a normal themed surface. */
.profile-panel[b-3rqppujpzj] {
    position: relative;
}

.profile-panel-btn[b-3rqppujpzj] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--ev-paper-light, #FBF6EC);
    font-size: 0.9rem;
    font-weight: 500;
    white-space: nowrap;
    transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out;
}

.profile-panel-btn:hover[b-3rqppujpzj],
.profile-panel-btn:focus[b-3rqppujpzj],
.profile-panel-btn.show[b-3rqppujpzj] {
    background-color: rgba(244, 236, 222, 0.1);
    color: var(--ev-brass, #B68B4C);
}

.profile-panel-btn:focus-visible[b-3rqppujpzj] {
    outline: 2px solid var(--ev-brass, #B68B4C);
    outline-offset: 2px;
    box-shadow: none;
}

.profile-panel-btn .bi-person-circle[b-3rqppujpzj] {
    font-size: 1.15rem;
}

.profile-panel-menu[b-3rqppujpzj] {
    min-width: 260px;
    padding: 0.5rem 0;
    border: 1px solid var(--bs-border-color);
    border-radius: 6px;
    box-shadow: var(--ev-shadow-1, 0 4px 24px rgba(26, 20, 17, .06));
}

.profile-panel-header[b-3rqppujpzj] {
    padding: 0.35rem 1rem 0.5rem;
}

.profile-panel-user[b-3rqppujpzj] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--bs-body-color);
}

.profile-panel-section[b-3rqppujpzj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.4rem 1rem;
}

.profile-panel-label[b-3rqppujpzj] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.profile-panel-menu[b-3rqppujpzj]  .dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
}

/* The sign-out button is a form submit, so it needs the dropdown-item chrome
   Bootstrap only gives to <a>. */
.profile-panel-signout[b-3rqppujpzj] {
    width: 100%;
    border: none;
    background: none;
    text-align: left;
    cursor: pointer;
    color: var(--bs-danger, #a13c30);
}

.profile-panel-signout:hover[b-3rqppujpzj],
.profile-panel-signout:focus[b-3rqppujpzj] {
    color: var(--bs-danger, #a13c30);
}

/* Below the sm breakpoint the label is dropped and the icon carries the button. */
@media (max-width: 575.98px) {
    .profile-panel-btn-label[b-3rqppujpzj] {
        display: none;
    }

    .profile-panel-btn[b-3rqppujpzj] {
        padding: 0.375rem 0.5rem;
    }
}
/* _content/EVouchers.Web/Components/TenantDisplay.razor.rz.scp.css */
.tenant-display[b-gu48qj237i] {
    display: flex;
    align-items: center;
}

.tenant-card[b-gu48qj237i] {
    transition: all 0.2s ease;
}

.tenant-card:hover[b-gu48qj237i] {
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.tenant-card.border-primary[b-gu48qj237i] {
    box-shadow: 0 2px 8px rgba(13, 110, 253, 0.15);
}
/* _content/EVouchers.Web/Components/TenantNavButton.razor.rz.scp.css */
/* Navbar wrapper around TenantSelector.

   ONLY style .tenant-nav-dropdown itself from this file. Blazor CSS isolation
   appends *this* component's scope attribute to the last selector, but the
   button, menu and items inside are rendered by TenantSelector and carry its
   scope — so rules like `.tenant-nav-dropdown .tenant-dropdown-btn { … }` here
   compile to a selector nothing matches and silently do nothing (they'd need
   ::deep). This file previously held ~150 lines of exactly that, duplicating
   rules that only worked because TenantSelector.razor.css also defines them.

   The navbar styling of the button and menu lives in TenantSelector.razor.css. */
.tenant-nav-dropdown[b-iedadbvssw] {
    /* Make the dropdown fit nicely in the navbar */
    display: inline-block;
    position: relative;
    max-width: 100%;
    /* Shrink inside the top bar's flex row so the workspace name ellipsises
       rather than overrunning the profile button. */
    min-width: 0;
}
/* _content/EVouchers.Web/Components/TenantSelector.razor.rz.scp.css */
.tenant-selector-container .tenant-dropdown-btn[b-mqx2ruuylw] {
    position: relative;
    margin-left: 50px;
}

/* Default styles for standalone use */
.tenant-dropdown-btn[b-mqx2ruuylw] {
    border: 1px solid #dee2e6;
    background: white;
    min-width: 200px;
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.tenant-dropdown-btn:hover[b-mqx2ruuylw] {
    background-color: #f8f9fa;
}

.tenant-admin-badge[b-mqx2ruuylw] {
    font-size: 0.65rem !important;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    padding: 0.2em 0.45em !important;
}

.tenant-admin-badge-sm[b-mqx2ruuylw] {
    font-size: 0.6rem !important;
    padding: 0.15em 0.4em !important;
}

/* Override styles when used inside .tenant-nav-dropdown (navbar context).
   Sizing is container-relative, not viewport-relative: in the top bar this
   button shares a flex row with the brand, the profile button and the mobile
   hamburger, and a 100vw-based width can't see any of them — it overran the
   profile button on narrow screens. Let it shrink and ellipsis instead. */
.tenant-nav-dropdown .tenant-dropdown-btn[b-mqx2ruuylw] {
    background: transparent !important;
    border: none !important;
    color: #ffffff !important;
    min-width: 0 !important;
    max-width: 100% !important;
    /* Cancel the standalone rule's 50px indent — in the top bar it offsets the
       button past its wrapper's right edge and the name gets clipped. */
    margin-left: 0 !important;
    text-overflow: ellipsis !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}

.tenant-nav-dropdown .tenant-dropdown-btn:hover[b-mqx2ruuylw] {
    background-color: rgba(255, 255, 255, 0.1) !important;
    color: #ffffff !important;
    border-color: transparent !important;
}

.tenant-nav-dropdown .tenant-dropdown-btn:focus[b-mqx2ruuylw] {
    background-color: rgba(255, 255, 255, 0.1) !important;
    color: #ffffff !important;
    border-color: transparent !important;
    box-shadow: 0 0 0 0.25rem rgba(255, 255, 255, 0.25) !important;
}

.tenant-nav-dropdown .tenant-dropdown-btn:active[b-mqx2ruuylw],
.tenant-nav-dropdown .tenant-dropdown-btn.show[b-mqx2ruuylw] {
    background-color: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    border-color: transparent !important;
}

.tenant-name[b-mqx2ruuylw] {
    font-weight: 500;
    font-size: 0.8rem;
    color: #212529;
}

/* White text for navbar context */
.tenant-nav-dropdown .tenant-name[b-mqx2ruuylw],
.tenant-nav-dropdown .tenant-dropdown-btn span[b-mqx2ruuylw] {
    color: #ffffff !important;
}

.tenant-nav-dropdown .tenant-dropdown-btn .text-muted[b-mqx2ruuylw] {
    color: #cccccc !important;
}

/* Responsive sizing for navbar context. Only wide screens reserve a minimum
   width — below that the flex row owns the sizing and the name ellipsises. */
@media (min-width: 1200px) {
    .tenant-nav-dropdown .tenant-dropdown-btn[b-mqx2ruuylw] {
        max-width: 320px !important;
        min-width: 200px !important;
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .tenant-nav-dropdown .tenant-dropdown-btn[b-mqx2ruuylw] {
        max-width: 300px !important;
        font-size: 0.85rem !important;
        padding: 0.25rem 0.5rem !important;
    }
}

@media (max-width: 767px) {
    .tenant-nav-dropdown .tenant-dropdown-btn[b-mqx2ruuylw] {
        font-size: 0.85rem !important;
        padding: 0.25rem 0.5rem !important;
    }
}

@media (max-width: 576px) {
    .tenant-nav-dropdown .tenant-dropdown-btn[b-mqx2ruuylw] {
        font-size: 0.8rem !important;
        padding: 0.2rem 0.4rem !important;
    }
}


/* Dark dropdown menu. Targets the menu element directly (no .tenant-nav-dropdown
   ancestor) because evouchersTenantDropdown.attach() moves this element to <body>
   on open to escape the surrounding chrome's stacking contexts. Blazor scoped CSS
   keeps the [b-xxx] attribute on the element regardless of DOM position, so these
   selectors still apply. */
.tenant-dropdown-menu--dark[b-mqx2ruuylw] {
    min-width: 320px;
    max-width: min(420px, calc(100vw - 16px));
    width: max-content;
    background-color: #212529 !important;
    border: 1px solid #495057 !important;
    color: #ffffff !important;
    padding: 0 !important;
    overflow: hidden;
}

/* When portaled to <body>, the JS sets position:fixed + top/left inline.
   Maximum z-index so it sits above modals/overlays on every page. */
.tenant-dropdown-menu--dark.tenant-dropdown-menu--portaled[b-mqx2ruuylw] {
    position: fixed !important;
    z-index: 2147483600 !important;
    margin: 0 !important;
    transform: none !important;
}

.tenant-dropdown-menu--dark .tenant-dropdown-list[b-mqx2ruuylw] {
    max-height: 360px;
    overflow-y: auto;
}

.tenant-dropdown-menu--dark .tenant-search-header[b-mqx2ruuylw] {
    background-color: rgba(255, 255, 255, 0.04);
}

.tenant-dropdown-menu--dark .tenant-section-label[b-mqx2ruuylw] {
    pointer-events: none;
}

.tenant-dropdown-menu--dark .dropdown-item[b-mqx2ruuylw] {
    color: #ffffff !important;
    background-color: transparent !important;
    white-space: normal;
}

.tenant-dropdown-menu--dark .dropdown-item:hover[b-mqx2ruuylw],
.tenant-dropdown-menu--dark .dropdown-item:focus[b-mqx2ruuylw] {
    background-color: rgba(255, 255, 255, 0.1) !important;
    color: #ffffff !important;
}

.tenant-dropdown-menu--dark .dropdown-item.active[b-mqx2ruuylw] {
    background-color: var(--bs-primary) !important;
    color: #ffffff !important;
}

.tenant-dropdown-menu--dark .dropdown-item.active .tenant-item-name[b-mqx2ruuylw],
.tenant-dropdown-menu--dark .dropdown-item.active small[b-mqx2ruuylw] {
    color: #ffffff !important;
}

.tenant-dropdown-menu--dark .dropdown-divider[b-mqx2ruuylw] {
    border-color: #495057 !important;
}

/* Search header controls */
.tenant-dropdown-menu--dark .tenant-search-header .input-group-text[b-mqx2ruuylw] {
    background-color: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.15);
    color: #ffffff;
}

.tenant-dropdown-menu--dark .tenant-search-header .form-control[b-mqx2ruuylw] {
    background-color: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.15);
    color: #ffffff;
}

.tenant-dropdown-menu--dark .tenant-search-header .form-control[b-mqx2ruuylw]::placeholder {
    color: rgba(255, 255, 255, 0.6);
}

.tenant-dropdown-menu--dark .tenant-search-header .form-control:focus[b-mqx2ruuylw] {
    background-color: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.35);
    color: #ffffff;
    box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.15);
}

.tenant-dropdown-menu--dark .tenant-search-header .btn-outline-secondary[b-mqx2ruuylw] {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.15);
}

.tenant-dropdown-menu--dark .tenant-search-header .btn-outline-secondary:hover[b-mqx2ruuylw] {
    background-color: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

/* Muted/secondary text overrides — Bootstrap's --bs-secondary-color is dark
   in light theme, which would be invisible on the dark menu. */
.tenant-dropdown-menu--dark .text-muted[b-mqx2ruuylw],
.tenant-dropdown-menu--dark small[b-mqx2ruuylw],
.tenant-dropdown-menu--dark .tenant-item small[b-mqx2ruuylw] {
    color: rgba(255, 255, 255, 0.65) !important;
}

.tenant-dropdown-menu--dark .tenant-search-header small[b-mqx2ruuylw] {
    color: rgba(255, 255, 255, 0.7) !important;
}

.tenant-dropdown-menu--dark .tenant-section-label small[b-mqx2ruuylw] {
    color: rgba(255, 255, 255, 0.55) !important;
}

.tenant-dropdown-menu--dark .dropdown-item.active small[b-mqx2ruuylw],
.tenant-dropdown-menu--dark .dropdown-item.active .text-muted[b-mqx2ruuylw] {
    color: rgba(255, 255, 255, 0.9) !important;
}

.tenant-dropdown-menu--dark .tenant-dropdown-footer .dropdown-item[b-mqx2ruuylw] {
    color: #ffffff !important;
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
    font-weight: 500;
}

.tenant-dropdown-menu--dark .tenant-dropdown-footer .dropdown-item i[b-mqx2ruuylw] {
    color: #ffffff;
    font-size: 1rem;
}

.tenant-dropdown-menu--dark .tenant-item[b-mqx2ruuylw] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 0.15rem 0;
}

.tenant-dropdown-menu--dark .tenant-item-name[b-mqx2ruuylw] {
    font-size: 0.9rem;
    font-weight: 500;
    color: #ffffff !important;
    min-width: 0;
}

.tenant-dropdown-menu--dark .tenant-item-name .text-truncate[b-mqx2ruuylw] {
    max-width: 100%;
}

.tenant-dropdown-menu--dark .tenant-item small[b-mqx2ruuylw] {
    font-size: 0.75rem;
}

/* Mobile sizing */
@media (max-width: 767px) {
    .tenant-dropdown-menu--dark .tenant-item-name[b-mqx2ruuylw] {
        font-size: 0.85rem;
    }

    .tenant-dropdown-menu--dark .tenant-item small[b-mqx2ruuylw] {
        font-size: 0.7rem;
    }

    .tenant-dropdown-menu--dark .dropdown-item[b-mqx2ruuylw] {
        padding: 0.45rem 0.75rem;
    }
}

@media (max-width: 640px) {
    .tenant-dropdown-menu--dark[b-mqx2ruuylw] {
        min-width: 240px;
        max-width: calc(100vw - 16px);
    }

    .tenant-dropdown-menu--dark .tenant-dropdown-list[b-mqx2ruuylw] {
        max-height: 55vh;
    }

    .tenant-nav-dropdown[b-mqx2ruuylw] {
        margin-right: 10px !important;
    }
}

@media (max-width: 576px) {
    .tenant-dropdown-menu--dark .tenant-item-name[b-mqx2ruuylw] {
        font-size: 0.8rem;
    }

    .tenant-dropdown-menu--dark .tenant-item small[b-mqx2ruuylw] {
        font-size: 0.65rem;
    }
}


/* Default tenant item styling for the LIGHT (standalone) variant */
.tenant-item[b-mqx2ruuylw] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.tenant-item-name[b-mqx2ruuylw] {
    font-weight: 500;
    color: #212529;
    min-width: 0;
}

.dropdown-item.active[b-mqx2ruuylw] {
    background-color: var(--bs-primary);
    color: white;
}

.dropdown-item.active .tenant-item-name[b-mqx2ruuylw],
.dropdown-item.active small[b-mqx2ruuylw] {
    color: white;
}

.modal.show[b-mqx2ruuylw] {
    display: block !important;
}
/* _content/EVouchers.Web/Components/ThemeToggle.razor.rz.scp.css */
.theme-toggle[b-zlcs6xb791] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.theme-toggle-switch[b-zlcs6xb791] {
    margin: 0;
    min-height: auto;
    padding-left: 2.5em;
}

.theme-toggle-icon[b-zlcs6xb791] {
    font-size: 0.85rem;
    color: var(--bs-secondary-color);
    line-height: 1;
}

/* Light the icon for whichever theme is active. */
[data-bs-theme="light"] .theme-toggle-icon--light[b-zlcs6xb791],
[data-bs-theme="dark"] .theme-toggle-icon--dark[b-zlcs6xb791] {
    color: var(--ev-brass, #B68B4C);
}
