/* /Layout/CompanyLayout.razor.rz.scp.css */
/* Company Layout - Uses base layout styles with specific overrides */
.company-layout[b-ypkxx02zta] {
    display: flex;
    min-height: 100vh;
}
/* /Layout/CompanyNavMenu.razor.rz.scp.css */
.nav-menu[b-79a09zwlai] {
    padding: var(--spacing-4) 0;
}

.nav-menu .nav-link[b-79a09zwlai] {
    display: flex;
    align-items: center;
    padding: var(--nav-item-padding-y) var(--nav-item-padding-x);
    color: var(--text-sidebar);
    text-decoration: none;
    transition: all var(--transition-base);
    border-left: 3px solid transparent;
    min-height: var(--nav-item-height);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    position: relative;
}

/* Hover is a hint, not a claim: a dimmed bar. The solid white left edge is reserved for the
   selected page so the two can never be confused. */
.nav-menu .nav-link:hover[b-79a09zwlai] {
    background: var(--bg-hover);
    color: var(--text-sidebar);
    border-left-color: rgba(255, 255, 255, 0.35);
    transform: translateX(2px);
}

.nav-menu .nav-link:focus-visible[b-79a09zwlai] {
    outline: 2px solid var(--text-sidebar);
    outline-offset: -2px;
}

/* Selected page: an inverted bar. The sidebar is pure black, so the old
   rgba(255,255,255,0.15) wash sat 5% away from the 0.10 hover wash AND drew the same white
   left border - "what am I looking at" was indistinguishable from "what is under the mouse".
   Inversion is the only unambiguous signal a black-and-white palette has. */
.nav-menu .nav-link.active[b-79a09zwlai] {
    background: var(--text-sidebar);
    color: var(--bg-sidebar);
    border-left-color: var(--text-sidebar);
    font-weight: var(--font-weight-semibold);
}

/* components.css pins every nav icon to white with !important, which would leave the icon
   invisible on the inverted bar. The .bi base class lifts this above that file's
   .bi-building / .bi-receipt variants. */
.nav-menu .nav-link.active i.bi[b-79a09zwlai] {
    color: var(--bg-sidebar) !important;
}

.nav-menu .nav-link.active span[b-79a09zwlai] {
    color: var(--bg-sidebar);
}

.nav-menu .nav-link i[b-79a09zwlai] {
    font-size: 1.125rem;
    width: 24px;
    margin-right: var(--spacing-3);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-sidebar) !important;
}

.nav-menu .nav-link i.bi-building[b-79a09zwlai] {
    color: #ffffff !important;
}

.nav-menu .nav-link span[b-79a09zwlai] {
    flex: 1;
    color: var(--text-sidebar);
    font-size: var(--font-size-base);
}

.nav-section[b-79a09zwlai] {
    padding: var(--spacing-5) var(--nav-item-padding-x) var(--spacing-2);
    margin-top: var(--spacing-4);
}

.nav-section:first-child[b-79a09zwlai] {
    margin-top: 0;
}

.nav-section-title[b-79a09zwlai] {
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-sidebar-muted);
    font-weight: var(--font-weight-semibold);
    opacity: 0.6;
}

/* Submenu styles */
.nav-item.has-submenu > .nav-link[b-79a09zwlai] {
    cursor: pointer;
}

.nav-item.has-submenu > .nav-link .submenu-arrow[b-79a09zwlai] {
    font-size: 0.75rem;
    transition: transform 0.2s ease;
}

.submenu[b-79a09zwlai] {
    list-style: none;
    padding: 0;
    margin: 0;
    background: rgba(0, 0, 0, 0.1);
}

.submenu .nav-item .nav-link[b-79a09zwlai] {
    padding-left: calc(var(--nav-item-padding-x) + 24px + var(--spacing-3));
    font-size: var(--font-size-sm);
    min-height: 38px;
}

.submenu .nav-item .nav-link i[b-79a09zwlai] {
    font-size: 0.9rem;
    width: 20px;
    margin-right: var(--spacing-2);
}

.submenu .nav-item .nav-link:hover[b-79a09zwlai] {
    background: rgba(255, 255, 255, 0.1);
}
/* /Layout/MainLayout.razor.rz.scp.css */
.page[b-g458zyp164] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-g458zyp164] {
    flex: 1;
}

.sidebar[b-g458zyp164] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row[b-g458zyp164] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-g458zyp164]  a, .top-row[b-g458zyp164]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-g458zyp164]  a:hover, .top-row[b-g458zyp164]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-g458zyp164]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-g458zyp164] {
        justify-content: space-between;
    }

    .top-row[b-g458zyp164]  a, .top-row[b-g458zyp164]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-g458zyp164] {
        flex-direction: row;
    }

    .sidebar[b-g458zyp164] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-g458zyp164] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-g458zyp164]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-g458zyp164], article[b-g458zyp164] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}
/* /Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-lcklbjzog0] {
    background-color: rgba(255, 255, 255, 0.1);
}

.top-row[b-lcklbjzog0] {
    height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-lcklbjzog0] {
    font-size: 1.1rem;
}

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

.bi-house-door-fill-nav-menu[b-lcklbjzog0] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-lcklbjzog0] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-lcklbjzog0] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' 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");
}

.nav-item[b-lcklbjzog0] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

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

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

    .nav-item[b-lcklbjzog0]  a {
        color: #d7d7d7;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
    }

.nav-item[b-lcklbjzog0]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-lcklbjzog0]  a:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

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

    .collapse[b-lcklbjzog0] {
        /* Never collapse the sidebar for wide screens */
        display: block;
    }
    
    .nav-scrollable[b-lcklbjzog0] {
        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Layout/SuperAdminLayout.razor.rz.scp.css */
/* Super Admin Layout - Uses base layout styles with specific overrides */
.superadmin-layout[b-6ba83o7brw] {
    display: flex;
    min-height: 100vh;
}
/* /Layout/SuperAdminNavMenu.razor.rz.scp.css */
.nav-menu[b-d4jv8sl6zf] {
    padding: var(--spacing-4) 0;
}

.nav-menu .nav-link[b-d4jv8sl6zf] {
    display: flex;
    align-items: center;
    padding: var(--nav-item-padding-y) var(--nav-item-padding-x);
    color: var(--text-sidebar);
    text-decoration: none;
    transition: all var(--transition-base);
    border-left: 3px solid transparent;
    min-height: var(--nav-item-height);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    position: relative;
}

/* Hover is a hint, not a claim: a dimmed bar. The solid white left edge is reserved for the
   selected page so the two can never be confused. */
.nav-menu .nav-link:hover[b-d4jv8sl6zf] {
    background: var(--bg-hover);
    color: var(--text-sidebar);
    border-left-color: rgba(255, 255, 255, 0.35);
    transform: translateX(2px);
}

.nav-menu .nav-link:focus-visible[b-d4jv8sl6zf] {
    outline: 2px solid var(--text-sidebar);
    outline-offset: -2px;
}

.nav-menu .nav-link span[b-d4jv8sl6zf] {
    color: var(--text-sidebar);
    font-size: var(--font-size-base);
}

/* Selected page: an inverted bar. The sidebar is pure black, so the old
   rgba(255,255,255,0.15) wash sat 5% away from the 0.10 hover wash AND drew the same white
   left border - "what am I looking at" was indistinguishable from "what is under the mouse".
   Inversion is the only unambiguous signal a black-and-white palette has. */
.nav-menu .nav-link.active[b-d4jv8sl6zf] {
    background: var(--text-sidebar);
    color: var(--bg-sidebar);
    border-left-color: var(--text-sidebar);
    font-weight: var(--font-weight-semibold);
}

/* components.css pins every nav icon to white with !important, which would leave the icon
   invisible on the inverted bar. The .bi base class lifts this above that file's
   .bi-building / .bi-receipt variants. */
.nav-menu .nav-link.active i.bi[b-d4jv8sl6zf] {
    color: var(--bg-sidebar) !important;
}

.nav-menu .nav-link.active span[b-d4jv8sl6zf] {
    color: var(--bg-sidebar);
}

.nav-menu .nav-link i[b-d4jv8sl6zf] {
    font-size: 1.125rem;
    width: 24px;
    margin-right: var(--spacing-3);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-sidebar) !important;
}

.nav-menu .nav-link i.bi-building[b-d4jv8sl6zf] {
    color: #ffffff !important;
}

.nav-menu .nav-link span[b-d4jv8sl6zf] {
    flex: 1;
}

.nav-section[b-d4jv8sl6zf] {
    padding: var(--spacing-5) var(--nav-item-padding-x) var(--spacing-2);
    margin-top: var(--spacing-4);
}

.nav-section:first-child[b-d4jv8sl6zf] {
    margin-top: 0;
}

.nav-section-title[b-d4jv8sl6zf] {
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-sidebar-muted);
    font-weight: var(--font-weight-semibold);
    opacity: 0.6;
}
/* /Pages/Admin/Companies/Index.razor.rz.scp.css */
/* Companies Page Specific Styles */
.companies-page[b-tqpz74jq5k] {
    /* Inherits from layout and base styles */
}

.companies-page .page-header[b-tqpz74jq5k] {
    margin-bottom: var(--spacing-6);
}

.companies-page .sortable[b-tqpz74jq5k] {
    cursor: pointer;
    user-select: none;
    position: relative;
}

.companies-page .sortable:hover[b-tqpz74jq5k] {
    background-color: var(--bg-secondary) !important;
}

.companies-page .table[b-tqpz74jq5k] {
    background-color: var(--bg-primary);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.companies-page .table th[b-tqpz74jq5k] {
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-secondary);
    border-bottom: 2px solid var(--border-color);
    padding: var(--spacing-4);
    background-color: var(--bg-tertiary);
}

.companies-page .table td[b-tqpz74jq5k] {
    vertical-align: middle;
    padding: var(--spacing-4);
    border-bottom: 1px solid var(--border-color-light);
}

.companies-page .table tbody tr:last-child td[b-tqpz74jq5k] {
    border-bottom: none;
}

.companies-page .table tbody tr:hover[b-tqpz74jq5k] {
    background-color: var(--bg-tertiary);
}

/* Fix org number styling - remove pink, use neutral */
.companies-page .table .org-number[b-tqpz74jq5k] {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
    padding: var(--spacing-1) var(--spacing-2);
    border-radius: var(--radius-sm);
    font-weight: var(--font-weight-medium);
    font-size: var(--font-size-sm);
    font-family: var(--font-family-mono);
    display: inline-block;
}

/* Badge improvements */
.companies-page .badge[b-tqpz74jq5k] {
    font-weight: var(--font-weight-semibold);
    padding: var(--spacing-1) var(--spacing-3);
    font-size: var(--font-size-xs);
    border-radius: var(--radius-base);
}

.companies-page .dropdown-menu[b-tqpz74jq5k] {
    min-width: 220px;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--border-color);
}

.companies-page .dropdown-item[b-tqpz74jq5k] {
    padding: var(--spacing-2) var(--spacing-4);
    font-size: var(--font-size-sm);
}

.companies-page .dropdown-item i[b-tqpz74jq5k] {
    width: 18px;
    margin-right: var(--spacing-2);
}

/* Search input styling */
.companies-page .input-group-text[b-tqpz74jq5k] {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
    color: var(--text-secondary);
}

.companies-page .input-group .form-control[b-tqpz74jq5k] {
    border-left: none;
}

.companies-page .input-group:focus-within .input-group-text[b-tqpz74jq5k],
.companies-page .input-group:focus-within .form-control[b-tqpz74jq5k] {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Card improvements */
.companies-page .card[b-tqpz74jq5k] {
    border: none;
    box-shadow: var(--shadow-sm);
}

.companies-page .card-header[b-tqpz74jq5k] {
    background-color: var(--bg-primary);
    border-bottom: 1px solid var(--border-color-light);
    padding: var(--spacing-4) var(--spacing-6);
}

.companies-page .card-footer[b-tqpz74jq5k] {
    background-color: var(--bg-primary);
    border-top: 1px solid var(--border-color-light);
    padding: var(--spacing-4) var(--spacing-6);
}

/* Pagination improvements */
.companies-page .pagination[b-tqpz74jq5k] {
    margin: 0;
}

/* Empty state */
.companies-page .text-center i[b-tqpz74jq5k] {
    color: var(--text-muted);
    opacity: 0.5;
}


/* /Pages/Admin/Dashboard.razor.rz.scp.css */
/* .stat-icon and .stat-icon i now live once in wwwroot/css/components.css. They were
   duplicated across four scoped stylesheets at two different sizes, and ZReportTools used
   the class with no stylesheet at all. */
/* Admin Dashboard Specific Styles */
.stat-card[b-2kot2rvajg] {
    transition: transform var(--transition-base), box-shadow var(--transition-base);
    border: none;
    overflow: hidden;
    position: relative;
}

.stat-card[b-2kot2rvajg]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--color-primary);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.stat-card:hover[b-2kot2rvajg] {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg) !important;
}

.stat-card:hover[b-2kot2rvajg]::before {
    opacity: 1;
}

.stat-card .card-body[b-2kot2rvajg] {
    padding: var(--spacing-5);
}

/* The three rules that used to sit here forced `.stat-icon.bg-primary` back to SOLID black and
   painted its icon - and every `.bi-building` anywhere on the page - pure white. They were
   band-aids for the real defect, which was in components.css: the `.bg-*` overrides had dropped
   `--bs-bg-opacity`, so the `bg-opacity-10` these cards ask for was inert and the tile rendered
   at 100%. White-on-black was the only way to see the icon at all.
   That root cause is fixed, so these must go: re-forcing the solid background would defeat the
   fix (scoped styles outrank the global utility), and a white icon on the 10% tint the card now
   actually gets would be invisible. The icon inherits its `.text-*` colour, like every other
   variant in the portal. */

.stat-card h3[b-2kot2rvajg] {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--text-primary);
    margin: 0;
    line-height: var(--line-height-tight);
}

.stat-card p[b-2kot2rvajg] {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin: 0 0 var(--spacing-2) 0;
    font-weight: var(--font-weight-medium);
}

.dashboard .card[b-2kot2rvajg] {
    border: none;
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition-base);
}

.dashboard .card:hover[b-2kot2rvajg] {
    box-shadow: var(--shadow-md);
}

.dashboard .card-header[b-2kot2rvajg] {
    background-color: var(--bg-primary);
    border-bottom: 1px solid var(--border-color-light);
    padding: var(--spacing-4) var(--spacing-6);
}

.dashboard .card-header h5[b-2kot2rvajg] {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--text-primary);
}

.dashboard .btn-outline-primary[b-2kot2rvajg] {
    transition: all var(--transition-base);
    font-weight: var(--font-weight-medium);
}

.dashboard .btn-outline-primary:hover[b-2kot2rvajg] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}
/* /Pages/Admin/FortnoxReportTools.razor.rz.scp.css */
/* .stat-icon and .stat-icon i now live once in wwwroot/css/components.css. They were
   duplicated across four scoped stylesheets at two different sizes, and ZReportTools used
   the class with no stylesheet at all. */
.stat-card:hover[b-yqtyoqsxsd] {
    transform: translateY(-2px);
    transition: transform 0.2s ease;
}
/* /Pages/Admin/FortnoxTokenRefreshTools.razor.rz.scp.css */
/* .stat-icon and .stat-icon i now live once in wwwroot/css/components.css. They were
   duplicated across four scoped stylesheets at two different sizes, and ZReportTools used
   the class with no stylesheet at all. */
.stat-card:hover[b-pbw8s9vtpk] {
    transform: translateY(-2px);
    transition: transform 0.2s ease;
}

.spin[b-pbw8s9vtpk] {
    animation: spin-b-pbw8s9vtpk 1s linear infinite;
}

@keyframes spin-b-pbw8s9vtpk {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.bg-success-subtle[b-pbw8s9vtpk] { background-color: rgba(25, 135, 84, 0.1); }
.bg-danger-subtle[b-pbw8s9vtpk] { background-color: rgba(220, 53, 69, 0.1); }
.bg-warning-subtle[b-pbw8s9vtpk] { background-color: rgba(255, 193, 7, 0.1); }
.bg-info-subtle[b-pbw8s9vtpk] { background-color: rgba(13, 202, 240, 0.1); }
.bg-primary-subtle[b-pbw8s9vtpk] { background-color: rgba(13, 110, 253, 0.1); }

.result-item:last-child[b-pbw8s9vtpk] {
    border-bottom: none !important;
}

.row-expired[b-pbw8s9vtpk] {
    background-color: rgba(220, 53, 69, 0.05);
}

.row-expiring[b-pbw8s9vtpk] {
    background-color: rgba(255, 193, 7, 0.05);
}

.row-no-token[b-pbw8s9vtpk] {
    background-color: rgba(108, 117, 125, 0.05);
}
/* /Pages/Company/Assortment/Index.razor.rz.scp.css */
/* Assortment landing page shell.
   Scoped to Index.razor: only the page's own wrapper elements are styled here. Every panel, the
   toolbar, the grid, the FAB and the dialogs carry their own styles inside their components, so
   nothing in this file has to reach into a child with ::deep. */

/* Full-height column: breadcrumb, then a card that fills all remaining space. */
.assortment-page[b-1yatx2hifk] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: #f8f9fa;
    overflow: hidden;
}

/* Breadcrumb - compact, never grows. */
.assortment-breadcrumb[b-1yatx2hifk] {
    flex-shrink: 0;
    padding: 0.5rem 1rem;
}

/* Main container - fills ALL remaining space. */
.assortment-container[b-1yatx2hifk] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    background: #fff;
    margin: 0 0.75rem 0.75rem 0.75rem;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    overflow: hidden;
}

/* Content area - two panes, each with its own scroll. The page body never scrolls sideways. */
.assortment-content[b-1yatx2hifk] {
    display: flex;
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
}
/* /Pages/Company/Dashboard.razor.rz.scp.css */
/* .stat-icon and .stat-icon i now live once in wwwroot/css/components.css. They were
   duplicated across four scoped stylesheets at two different sizes, and ZReportTools used
   the class with no stylesheet at all. */
/* Dashboard Stat Cards */
.stat-card[b-u7l9i52wm3] {
    transition: transform var(--transition-base), box-shadow var(--transition-base);
    border: none;
    overflow: hidden;
    position: relative;
}

.stat-card[b-u7l9i52wm3]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--color-primary);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.stat-card:hover[b-u7l9i52wm3] {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg) !important;
}

.stat-card:hover[b-u7l9i52wm3]::before {
    opacity: 1;
}

.stat-card .card-body[b-u7l9i52wm3] {
    padding: var(--spacing-5);
}

.stat-card h3[b-u7l9i52wm3] {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--text-primary);
    margin: 0;
    line-height: var(--line-height-tight);
}

.stat-card p[b-u7l9i52wm3] {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin: 0 0 var(--spacing-2) 0;
    font-weight: var(--font-weight-medium);
}

.stat-card small[b-u7l9i52wm3] {
    font-size: var(--font-size-xs);
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    margin-top: var(--spacing-2);
}

/* Chart Improvements */
.chart-placeholder[b-u7l9i52wm3] {
    background: var(--bg-tertiary);
    border-radius: var(--radius-lg);
    padding: var(--spacing-6);
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Payment Method Progress Bars */
.payment-method[b-u7l9i52wm3] {
    margin-bottom: var(--spacing-4);
}

.payment-method:last-child[b-u7l9i52wm3] {
    margin-bottom: 0;
}

.payment-method .progress[b-u7l9i52wm3] {
    border-radius: var(--radius-full);
    height: 8px;
    background-color: var(--bg-tertiary);
    margin-top: var(--spacing-2);
}

.payment-method .progress-bar[b-u7l9i52wm3] {
    border-radius: var(--radius-full);
    transition: width var(--transition-slow);
}

/* Sized to match the sibling bootstrap-icons glyphs on the other payment rows. */
.payment-swish-logo[b-u7l9i52wm3] {
    width: 20px;
    height: 20px;
    object-fit: contain;
}

/* Dashboard Card Enhancements */
.dashboard .card[b-u7l9i52wm3] {
    border: none;
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition-base);
}

.dashboard .card:hover[b-u7l9i52wm3] {
    box-shadow: var(--shadow-md);
}

.dashboard .card-header[b-u7l9i52wm3] {
    background-color: var(--bg-primary);
    border-bottom: 1px solid var(--border-color-light);
    padding: var(--spacing-4) var(--spacing-6);
}

.dashboard .card-header h5[b-u7l9i52wm3] {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}

.dashboard .card-header h5 i[b-u7l9i52wm3] {
    color: var(--color-primary);
}

/* Quick Actions */
.dashboard .btn-outline-primary[b-u7l9i52wm3],
.dashboard .btn-outline-success[b-u7l9i52wm3],
.dashboard .btn-outline-info[b-u7l9i52wm3],
.dashboard .btn-outline-warning[b-u7l9i52wm3] {
    transition: all var(--transition-base);
    font-weight: var(--font-weight-medium);
}

.dashboard .btn-outline-primary:hover[b-u7l9i52wm3],
.dashboard .btn-outline-success:hover[b-u7l9i52wm3],
.dashboard .btn-outline-info:hover[b-u7l9i52wm3],
.dashboard .btn-outline-warning:hover[b-u7l9i52wm3] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* Alert/Notification Items */
.dashboard .list-group-item[b-u7l9i52wm3] {
    border-left: none;
    border-right: none;
    border-color: var(--border-color-light);
    padding: var(--spacing-4);
    transition: background-color var(--transition-fast);
}

.dashboard .list-group-item:hover[b-u7l9i52wm3] {
    background-color: var(--bg-tertiary);
}

.dashboard .list-group-item:first-child[b-u7l9i52wm3] {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.dashboard .list-group-item:last-child[b-u7l9i52wm3] {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
/* /Pages/Login.razor.rz.scp.css */
.login-container[b-r6bg4vynv5] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: linear-gradient(135deg, #000000 0%, #212121 50%, #424242 100%);
    padding: var(--spacing-4);
    position: relative;
    overflow: hidden;
}

.login-container[b-r6bg4vynv5]::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.05) 0%, transparent 70%);
    animation: pulse-b-r6bg4vynv5 20s ease-in-out infinite;
}

@keyframes pulse-b-r6bg4vynv5 {
    0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.3; }
    50% { transform: scale(1.1) rotate(180deg); opacity: 0.5; }
}

.login-card[b-r6bg4vynv5] {
    background: var(--bg-primary);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-2xl);
    padding: var(--spacing-10, 2.5rem) var(--spacing-8, 2rem);
    width: 100%;
    max-width: 520px;
    position: relative;
    z-index: 1;
    border: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
}

.login-header[b-r6bg4vynv5] {
    text-align: center;
    margin-bottom: var(--spacing-8);
}

.login-logo[b-r6bg4vynv5] {
    height: 60px;
    width: auto;
    max-width: 360px;
    display: block;
    margin: 0 auto var(--spacing-4);
}

.login-header p[b-r6bg4vynv5] {
    color: var(--text-secondary);
    font-size: var(--font-size-lg, 1.125rem);
    margin: 0;
}

.login-card .input-group-text[b-r6bg4vynv5] {
    background-color: var(--bg-tertiary);
    border-right: none;
    color: var(--text-secondary);
    border-color: var(--border-color);
    font-size: 1.25rem;
    padding: var(--spacing-3, 0.75rem);
}

.login-card .form-control[b-r6bg4vynv5] {
    font-size: var(--font-size-lg, 1.125rem);
    padding: var(--spacing-3, 0.75rem);
}

.login-card .input-group .form-control[b-r6bg4vynv5] {
    border-left: none;
    border-color: var(--border-color);
}

.login-card .input-group .form-control:focus[b-r6bg4vynv5] {
    border-color: var(--color-primary);
    box-shadow: none;
}

.login-card .input-group:focus-within[b-r6bg4vynv5] {
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
    border-radius: var(--radius-md);
}

.login-card .input-group:focus-within .input-group-text[b-r6bg4vynv5],
.login-card .input-group:focus-within .form-control[b-r6bg4vynv5] {
    border-color: var(--color-primary);
}

.login-card .form-label[b-r6bg4vynv5] {
    color: var(--text-primary);
    font-weight: var(--font-weight-medium);
    font-size: var(--font-size-lg, 1.125rem);
    margin-bottom: var(--spacing-2);
}

.login-card .btn-primary[b-r6bg4vynv5] {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    padding: var(--spacing-4, 1rem);
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-lg, 1.125rem);
    width: 100%;
    margin-top: var(--spacing-4);
    transition: all var(--transition-base);
}

.login-card .btn-primary:hover:not(:disabled)[b-r6bg4vynv5] {
    background-color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.login-card .btn-primary:active:not(:disabled)[b-r6bg4vynv5] {
    transform: translateY(0);
    box-shadow: var(--shadow-sm);
}

.login-card .btn-primary:disabled[b-r6bg4vynv5] {
    opacity: 0.6;
    cursor: not-allowed;
}

.login-card .form-check-label[b-r6bg4vynv5] {
    color: var(--text-secondary);
    font-size: var(--font-size-base, 1rem);
}

.login-footer[b-r6bg4vynv5] {
    border-top: 1px solid var(--border-color-light);
    padding-top: var(--spacing-4);
    margin-top: var(--spacing-6);
    text-align: center;
}

.login-footer p[b-r6bg4vynv5] {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--font-size-sm, 0.875rem);
}

.login-card .alert[b-r6bg4vynv5] {
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-4);
}

.forgot-password-link[b-r6bg4vynv5] {
    color: var(--color-primary);
    text-decoration: none;
    font-size: var(--font-size-base, 1rem);
    transition: color var(--transition-base);
}

.forgot-password-link:hover[b-r6bg4vynv5] {
    color: var(--color-primary-dark);
    text-decoration: underline;
}

.modal-backdrop[b-r6bg4vynv5] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: var(--z-modal-backdrop);
}

.modal[b-r6bg4vynv5] {
    z-index: var(--z-modal);
}

.modal-content[b-r6bg4vynv5] {
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-2xl);
    border: none;
}

.modal-header[b-r6bg4vynv5] {
    border-bottom: 1px solid var(--border-color);
    padding: var(--spacing-4) var(--spacing-5);
}

.modal-title[b-r6bg4vynv5] {
    color: var(--text-primary);
    font-weight: var(--font-weight-semibold);
}

.modal-body[b-r6bg4vynv5] {
    padding: var(--spacing-5);
}

.modal-footer[b-r6bg4vynv5] {
    border-top: 1px solid var(--border-color);
    padding: var(--spacing-4) var(--spacing-5);
}

.modal-body .input-group-text[b-r6bg4vynv5] {
    background-color: var(--bg-tertiary);
    border-right: none;
    color: var(--text-secondary);
    border-color: var(--border-color);
}

.modal-body .input-group .form-control[b-r6bg4vynv5] {
    border-left: none;
    border-color: var(--border-color);
}

.modal-body .input-group .form-control:focus[b-r6bg4vynv5] {
    border-color: var(--color-primary);
    box-shadow: none;
}

.modal-body .input-group:focus-within[b-r6bg4vynv5] {
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
    border-radius: var(--radius-md);
}

.modal-body .input-group:focus-within .input-group-text[b-r6bg4vynv5],
.modal-body .input-group:focus-within .form-control[b-r6bg4vynv5] {
    border-color: var(--color-primary);
}

/* Responsive adjustments */
@media (max-width: 576px) {
    .login-card[b-r6bg4vynv5] {
        padding: var(--spacing-8, 2rem) var(--spacing-6, 1.5rem);
    }

    .login-logo[b-r6bg4vynv5] {
        height: 44px;
        max-width: 280px;
    }
}
/* /Pages/ResetPassword.razor.rz.scp.css */
.reset-container[b-kcum3cluv7] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: linear-gradient(135deg, #000000 0%, #212121 50%, #424242 100%);
    padding: var(--spacing-4);
    position: relative;
    overflow: hidden;
}

.reset-container[b-kcum3cluv7]::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.05) 0%, transparent 70%);
    animation: pulse-b-kcum3cluv7 20s ease-in-out infinite;
}

@keyframes pulse-b-kcum3cluv7 {
    0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.3; }
    50% { transform: scale(1.1) rotate(180deg); opacity: 0.5; }
}

.reset-card[b-kcum3cluv7] {
    background: var(--bg-primary);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-2xl);
    padding: var(--spacing-8) var(--spacing-6);
    width: 100%;
    max-width: 420px;
    position: relative;
    z-index: 1;
    border: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
}

.reset-header[b-kcum3cluv7] {
    text-align: center;
    margin-bottom: var(--spacing-6);
}

.reset-icon[b-kcum3cluv7] {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 72px;
    height: 72px;
    background: var(--bg-tertiary);
    border-radius: var(--radius-full);
    margin-bottom: var(--spacing-4);
}

.reset-icon i[b-kcum3cluv7] {
    font-size: 2rem;
    color: var(--color-primary);
}

.reset-title[b-kcum3cluv7] {
    color: var(--text-primary);
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--spacing-2);
}

.reset-subtitle[b-kcum3cluv7] {
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    margin: 0;
    line-height: var(--line-height-relaxed);
}

.reset-card .form-label[b-kcum3cluv7] {
    color: var(--text-primary);
    font-weight: var(--font-weight-medium);
    margin-bottom: var(--spacing-2);
}

.reset-card .input-group-text[b-kcum3cluv7] {
    background-color: var(--bg-tertiary);
    border-right: none;
    color: var(--text-secondary);
    border-color: var(--border-color);
}

.reset-card .input-group .form-control[b-kcum3cluv7] {
    border-left: none;
    border-color: var(--border-color);
}

.reset-card .input-group .form-control:focus[b-kcum3cluv7] {
    border-color: var(--color-primary);
    box-shadow: none;
}

.reset-card .input-group:focus-within[b-kcum3cluv7] {
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
    border-radius: var(--radius-md);
}

.reset-card .input-group:focus-within .input-group-text[b-kcum3cluv7],
.reset-card .input-group:focus-within .form-control[b-kcum3cluv7] {
    border-color: var(--color-primary);
}

.reset-card .input-group .btn-outline-secondary[b-kcum3cluv7] {
    border-color: var(--border-color);
    color: var(--text-secondary);
    background: var(--bg-primary);
}

.reset-card .input-group .btn-outline-secondary:hover[b-kcum3cluv7] {
    background: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.reset-card .btn-primary[b-kcum3cluv7] {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    padding: var(--spacing-3);
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-base);
    width: 100%;
    margin-top: var(--spacing-2);
    transition: all var(--transition-base);
}

.reset-card .btn-primary:hover:not(:disabled)[b-kcum3cluv7] {
    background-color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.reset-card .btn-primary:active:not(:disabled)[b-kcum3cluv7] {
    transform: translateY(0);
    box-shadow: var(--shadow-sm);
}

.reset-card .btn-primary:disabled[b-kcum3cluv7] {
    opacity: 0.6;
    cursor: not-allowed;
}

.back-link[b-kcum3cluv7] {
    color: var(--text-secondary);
    text-decoration: none;
    font-size: var(--font-size-sm);
    transition: color var(--transition-base);
}

.back-link:hover[b-kcum3cluv7] {
    color: var(--color-primary);
    text-decoration: underline;
}

.reset-footer[b-kcum3cluv7] {
    border-top: 1px solid var(--border-color-light);
    padding-top: var(--spacing-4);
    margin-top: var(--spacing-6);
    text-align: center;
}

.reset-footer p[b-kcum3cluv7] {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--font-size-xs);
}

.reset-card .alert[b-kcum3cluv7] {
    border-radius: var(--radius-md);
}

/* Responsive adjustments */
@media (max-width: 576px) {
    .reset-card[b-kcum3cluv7] {
        padding: var(--spacing-6) var(--spacing-4);
    }

    .reset-icon[b-kcum3cluv7] {
        width: 60px;
        height: 60px;
    }

    .reset-icon i[b-kcum3cluv7] {
        font-size: 1.5rem;
    }

    .reset-title[b-kcum3cluv7] {
        font-size: var(--font-size-xl);
    }
}
/* /Pages/VismaCallback.razor.rz.scp.css */
.callback-container[b-hbp62xe3dw] {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: linear-gradient(135deg, #000000 0%, #212121 50%, #424242 100%);
    padding: var(--spacing-4);
    position: relative;
    overflow: hidden;
}

.callback-container[b-hbp62xe3dw]::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.05) 0%, transparent 70%);
    animation: pulse-b-hbp62xe3dw 20s ease-in-out infinite;
}

@keyframes pulse-b-hbp62xe3dw {
    0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.3; }
    50% { transform: scale(1.1) rotate(180deg); opacity: 0.5; }
}

.callback-card[b-hbp62xe3dw] {
    background: var(--bg-primary);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-2xl);
    padding: var(--spacing-8) var(--spacing-6);
    width: 100%;
    max-width: 480px;
    position: relative;
    z-index: 1;
    border: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
}

.callback-header[b-hbp62xe3dw] {
    text-align: center;
    margin-bottom: var(--spacing-6);
}

.callback-icon[b-hbp62xe3dw] {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 80px;
    height: 80px;
    background: var(--bg-tertiary);
    border-radius: var(--radius-full);
    margin-bottom: var(--spacing-4);
}

.callback-icon i[b-hbp62xe3dw] {
    font-size: 2.5rem;
    color: var(--text-secondary);
}

.callback-icon-success[b-hbp62xe3dw] {
    background: rgba(25, 135, 84, 0.1);
}

.callback-icon-success i[b-hbp62xe3dw] {
    color: var(--bs-success, #198754);
}

.callback-icon-error[b-hbp62xe3dw] {
    background: rgba(220, 53, 69, 0.1);
}

.callback-icon-error i[b-hbp62xe3dw] {
    color: var(--bs-danger, #dc3545);
}

.callback-title[b-hbp62xe3dw] {
    color: var(--text-primary);
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--spacing-2);
}

.callback-subtitle[b-hbp62xe3dw] {
    color: var(--text-secondary);
    font-size: var(--font-size-base);
    margin: 0;
    line-height: var(--line-height-relaxed);
}

.callback-card .form-label[b-hbp62xe3dw] {
    color: var(--text-primary);
    margin-bottom: var(--spacing-1);
}

.callback-card .input-group[b-hbp62xe3dw] {
    box-shadow: var(--shadow-sm);
    border-radius: var(--radius-md);
}

.callback-card .code-input[b-hbp62xe3dw] {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
    color: var(--text-primary);
    font-family: var(--font-mono, 'Consolas', 'Monaco', monospace);
    font-size: var(--font-size-sm);
    padding: var(--spacing-3);
    letter-spacing: 0.5px;
}

.callback-card .code-input:focus[b-hbp62xe3dw] {
    background-color: var(--bg-tertiary);
    border-color: var(--color-primary);
    box-shadow: none;
    color: var(--text-primary);
}

.callback-card .btn-primary[b-hbp62xe3dw] {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    padding: var(--spacing-3) var(--spacing-4);
    font-weight: var(--font-weight-medium);
    transition: all var(--transition-base);
    min-width: 120px;
}

.callback-card .btn-primary:hover:not(:disabled)[b-hbp62xe3dw] {
    background-color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
}

.callback-card .btn-success[b-hbp62xe3dw] {
    background-color: var(--bs-success, #198754);
    border-color: var(--bs-success, #198754);
    padding: var(--spacing-3) var(--spacing-4);
    font-weight: var(--font-weight-medium);
    min-width: 120px;
}

.callback-card .alert[b-hbp62xe3dw] {
    border-radius: var(--radius-md);
}

.back-link[b-hbp62xe3dw] {
    color: var(--text-secondary);
    text-decoration: none;
    font-size: var(--font-size-sm);
    transition: color var(--transition-base);
}

.back-link:hover[b-hbp62xe3dw] {
    color: var(--color-primary);
    text-decoration: underline;
}

.callback-footer[b-hbp62xe3dw] {
    border-top: 1px solid var(--border-color-light);
    padding-top: var(--spacing-4);
    margin-top: var(--spacing-6);
    text-align: center;
}

.callback-footer p[b-hbp62xe3dw] {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--font-size-xs);
}

/* Responsive adjustments */
@media (max-width: 576px) {
    .callback-card[b-hbp62xe3dw] {
        padding: var(--spacing-6) var(--spacing-4);
    }

    .callback-icon[b-hbp62xe3dw] {
        width: 64px;
        height: 64px;
    }

    .callback-icon i[b-hbp62xe3dw] {
        font-size: 2rem;
    }

    .callback-title[b-hbp62xe3dw] {
        font-size: var(--font-size-xl);
    }

    .callback-card .btn-primary[b-hbp62xe3dw],
    .callback-card .btn-success[b-hbp62xe3dw] {
        min-width: 100px;
        padding: var(--spacing-2) var(--spacing-3);
    }
}
