@import '_content/Blazored.Toast/Blazored.Toast.bundle.scp.css';
@import '_content/Microsoft.AspNetCore.Components.QuickGrid/Microsoft.AspNetCore.Components.QuickGrid.bundle.scp.css';
@import '_content/PSC.Blazor.Components.Chartjs/PSC.Blazor.Components.Chartjs.bundle.scp.css';

/* /Layout/Components/Navigation/NavItem.razor.rz.scp.css */
[b-3pwpny7zk0] .nav-item-modern.active {
    background-color: var(--content-bg);
    color: var(--text-primary);
    box-shadow: var(--shadow-nav-active);
}

[b-3pwpny7zk0] .nav-item-modern.active span:first-child {
    color: var(--text-primary);
}
/* /Layout/Components/Navigation/NavSection.razor.rz.scp.css */
.nav-section-chevron[b-0usky8tr0c] {
    font-size: 0.6rem;
    transition: transform 0.15s ease;
}

.nav-section-chevron.expanded[b-0usky8tr0c] {
    transform: rotate(90deg);
}

button:hover .community-nav-icon[b-0usky8tr0c] {
    color: #2563eb;
}
/* /Layout/Components/Navigation/NavWorkspaceTree.razor.rz.scp.css */
[b-pseqdtbvyk] .nav-ws-link.active {
    background-color: var(--content-bg);
    color: var(--text-primary);
    box-shadow: var(--shadow-nav-active);
}
/* /Layout/Components/Timesheet/TimeEntriesGrid.razor.rz.scp.css */
/* Shrink fixed-content columns to their content width so the flexible
   columns (Member, Flow, Notes) get the remaining horizontal space. */
.time-entries-table .shrink-col[b-7nmq8chd2i] {
    width: 1%;
    white-space: nowrap;
}

/* Each side of the From -> To flow truncates independently so a long fund
   name doesn't push the arrow out of the cell. */
.time-entries-table .flow-fund[b-7nmq8chd2i] {
    max-width: 110px;
}

.time-entries-table .flow-arrow[b-7nmq8chd2i] {
    font-size: 0.7rem;
}

/* Notes column gets more room since prose is wordier than a label. */
.time-entries-table .notes-cell[b-7nmq8chd2i] {
    max-width: 240px;
}
/* /Layout/Components/Transactions/TransactionGridComponent.razor.rz.scp.css */
/* Custom styles for focus state */
.filter-btn:focus[b-zbtcaowbg0] {
    outline: none;
    box-shadow: none;
}

.profile-img[b-zbtcaowbg0] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    margin-right: 8px; /* Add margin between the image and the name */
}

.offset-approved-positive[b-zbtcaowbg0] {
    color: green;
    font-size: larger;
}

.offset-approved-negative[b-zbtcaowbg0] {
    color: red;
    font-size: larger;
}

.offset-pending[b-zbtcaowbg0] {
    color: grey;
    font-size: larger;
}

.offset-rejected[b-zbtcaowbg0] {
    color: grey;
    font-size: larger;
    text-decoration: line-through;
}

.balance[b-zbtcaowbg0] {
    color: grey;
    font-size: small;
}

.item-img[b-zbtcaowbg0] {
    width: 32px;
    height: 32px;
    margin-right: 8px;
    border-radius: 4px;
    object-fit: cover;
}

.item-info[b-zbtcaowbg0] {
    display: flex;
    align-items: center;
}
/* /Layout/Example.razor.rz.scp.css */
.test[b-v9txxzpnkd] {
    color: brown;
    font-family: Tahoma, Geneva, Verdana, sans-serif;
}

p[b-v9txxzpnkd] {
    color: darkgreen;
}
/* /Layout/MainLayout.razor.rz.scp.css */

.page[b-e24iz81u04] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-e24iz81u04] {
    flex: 1;
    background-color: var(--page-bg);
}

.sidebar[b-e24iz81u04] {
    background-color: var(--sidebar-bg);
    border-right: 1px solid var(--sidebar-border);
}

.top-row[b-e24iz81u04] {
    background-color: var(--content-bg);
    border-bottom: 1px solid var(--border-default);
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

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

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

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

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

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

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

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

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

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

    /* 1rem here + the page containers' own 12px gutter = the mockup's 28px
       content inset; the topbar's 18px inset is set on the TopBar itself. */
    .top-row[b-e24iz81u04], article[b-e24iz81u04] {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }
}
/* /Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-couvei31v4] {
    background-color: var(--hover-bg);
    border: 1px solid var(--border-default);
}

.top-row[b-couvei31v4] {
    height: 3.5rem;
    background-color: var(--sidebar-bg);
    border-bottom: 1px solid var(--border-default);
}

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

.bi[b-couvei31v4] {
    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-couvei31v4] {
    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-couvei31v4] {
    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-couvei31v4] {
    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-couvei31v4] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

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

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

    .nav-item[b-couvei31v4]  a {
        color: var(--text-secondary);
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
    }

.nav-item[b-couvei31v4]  a.active {
    background-color: var(--active-bg);
    color: var(--text-primary);
    font-weight: 600;
    border-left: 3px solid var(--active-border);
    margin-left: -3px;
}

.nav-item[b-couvei31v4]  a:hover {
    background-color: var(--hover-bg);
    color: var(--text-primary);
}

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

    .collapse[b-couvei31v4] {
        /* Never collapse the sidebar for wide screens */
        display: block;
    }
    
    .nav-scrollable[b-couvei31v4] {
        /* Fixed height, no scroll - child elements handle scrolling */
        height: 100vh;
        overflow: hidden;
    }
}
/* /Pages/Accounts/AccountView.razor.rz.scp.css */
.statement-table-wrap[b-ll24oeakls] {
    max-height: calc(100vh - 280px);
    overflow: auto;
    border: 1px solid #dee2e6;
    border-radius: 8px;
}

.statement-table-wrap table[b-ll24oeakls] {
    margin-bottom: 0;
}

.statement-table-wrap thead[b-ll24oeakls] {
    position: sticky;
    top: 0;
    z-index: 2;
}

.statement-table-wrap th[b-ll24oeakls] {
    white-space: nowrap;
}

.statement-cell-text[b-ll24oeakls] {
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.25;
}

.statement-table-wrap td[b-ll24oeakls] {
    vertical-align: top;
}

.statement-table-wrap .badge[b-ll24oeakls] {
    white-space: normal;
}

.statement-table-wrap .form-select[b-ll24oeakls],
.statement-table-wrap .form-control[b-ll24oeakls] {
    min-width: 0;
}

.statement-table-wrap select.form-select[b-ll24oeakls] {
    text-overflow: ellipsis;
}

.statement-table-wrap .btn-sm[b-ll24oeakls] {
    white-space: nowrap;
}

.statement-edit-cell[b-ll24oeakls] {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
}

.statement-edit-cell-end[b-ll24oeakls] {
    align-items: center;
    justify-content: flex-end;
}

.statement-cell-edit-button[b-ll24oeakls] {
    flex: 0 0 auto;
    padding-left: 6px;
    padding-right: 6px;
}

.statement-amount-editor[b-ll24oeakls] {
    min-width: 96px;
    max-width: 132px;
}

.statement-amount-editor .form-control[b-ll24oeakls] {
    min-width: 0;
}

@media (max-width: 767.98px) {
    .statement-table-wrap[b-ll24oeakls] {
        max-height: none;
    }
}
/* /Pages/Items/GetButton.razor.rz.scp.css */
.btn-sufficient-balance[b-ix80nlxjkw] {
    background-color: #007bff; /* Bootstrap primary color */
    color: white;
}

.btn-sufficient-balance:hover[b-ix80nlxjkw] {
    background-color: #0056b3; /* Darker shade on hover */
}

.btn-insufficient-balance[b-ix80nlxjkw] {
    background-color: #6c757d; /* Bootstrap secondary color */
    color: white;
}

.btn-insufficient-balance:hover[b-ix80nlxjkw] {
    background-color: #5a6268; /* Darker shade on hover */
}
/* /Pages/Items/MarketplaceCard.razor.rz.scp.css */
/* Card container to ensure full height and margins between cards */
.marketplace-item-card[b-nv7hykwojo] {
    font-size: 0.9rem;
}

/* Image container with background color and size constraints */
.card-img-top-container[b-nv7hykwojo] {
    background-color: var(--hover-bg);
    padding: 5px; /* Small padding around the image */
    text-align: center; /* Center the image horizontally */
    height: 128px; /* Fixed height for the image container */
}

/* Styling for the image itself */
.card-img-top[b-nv7hykwojo] {
    max-width: 100%; /* Ensure the image doesn't exceed the width of the container */
    max-height: 100%; /* Ensure the image doesn't exceed the height of the container */
    object-fit: contain; /* Keep the image's aspect ratio and contain it within the box */
}

/* Card title: adjust font size and weight */
.card-title[b-nv7hykwojo] {
    font-size: 0.85rem; /* Slightly smaller font size */
    font-weight: bold; /* Bold text for the item name */
}

/* Card description text */
.card-text[b-nv7hykwojo] {
    font-size: 0.8rem; /* Smaller font for the description */
    flex-grow: 1; /* Allow the description to grow and push the Buy button down */
}

/* The container of the entire card */
.marketplace-item-card[b-nv7hykwojo] {
    height: 100%; /* Ensure the card takes up the full height in the grid */
    margin-bottom: 2rem; /* Add space between the cards */
}

/* Requires Validation Badge: Softer Brownish Maroon */
.requires-validation-badge[b-nv7hykwojo] {
    background-color: #a05252; /* Softer maroon color */
    color: #fff; /* White text for readability */
}

/* Sold Out Badge: Greyish color */
.sold-out-badge[b-nv7hykwojo] {
    background-color: #6c757d; /* Greyish color */
    color: #fff; /* White text */
}
/* /Pages/Statements/BankAccountView.razor.rz.scp.css */
/* Statement entry table — compact, scannable list for a single bank account's
   movements. Rides the app-wide grayscale tokens (see wwwroot/css/app.css) so it
   adapts to dark mode automatically. */

.statement-table-wrap[b-l7sw45edm7] {
    max-height: calc(100vh - 280px);
    overflow: auto;
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: var(--radius, 8px);
}

/* Outer wrapper: top row (calendar + rules panel) stacked above the
   full-width entry table below it. */
.statement-main-layout[b-l7sw45edm7] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Top row: calendar at the left, rules panel pinned to the right of it,
   top-aligned — same relationship as before the table moved below. */
.statement-top-row[b-l7sw45edm7] {
    display: flex;
    align-items: flex-start;
}

/* Period picker — a month-grid calendar: 3 rows of 4 month abbreviations for
   the displayed year, plus a year row with prev/next arrows underneath.
   Fixed width, matching the rules panel exactly. */
.statement-period-panel[b-l7sw45edm7] {
    width: 320px;
}

.statement-period-grid[b-l7sw45edm7] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.3rem;
}

.statement-period-month[b-l7sw45edm7] {
    position: relative;
}

.statement-period-month-dot[b-l7sw45edm7] {
    position: absolute;
    top: 3px;
    right: 5px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--bs-warning, #ffc107);
}

.statement-period-year-row[b-l7sw45edm7] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 0.4rem;
}

/* Categorization rules — sits next to the calendar in the top row, not
   beside the entry table. Fixed width matching .statement-period-panel. */
.statement-rules-panel[b-l7sw45edm7] {
    flex: 0 0 320px;
    width: 320px;
}

/* Entry table — full width below the calendar/rules row, instead of being
   squeezed into the remaining space next to the rules panel. */
.statement-table-section[b-l7sw45edm7] {
    width: 100%;
}

/* Below lg, stack the calendar and rules panel into a column too, so
   neither has to share horizontal space on narrower viewports. */
@media (max-width: 991.98px) {
    .statement-top-row[b-l7sw45edm7] {
        flex-direction: column;
        align-items: stretch;
    }

    .statement-period-panel[b-l7sw45edm7],
    .statement-rules-panel[b-l7sw45edm7] {
        width: 100%;
    }
}

.statement-rules-table th[b-l7sw45edm7],
.statement-rules-table td[b-l7sw45edm7] {
    padding: 0.3rem 0.5rem;
}

.statement-table-wrap table[b-l7sw45edm7] {
    margin-bottom: 0;
}

.statement-table-wrap thead[b-l7sw45edm7] {
    position: sticky;
    top: 0;
    z-index: 2;
}

.statement-table-wrap th[b-l7sw45edm7] {
    white-space: nowrap;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--text-muted, #6b7280);
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

/* Tight, consistent row rhythm — the bulk of the "too much space per row" fix. */
.statement-table-wrap td[b-l7sw45edm7] {
    vertical-align: top;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    font-size: 0.825rem;
    line-height: 1.3;
}

.statement-table-wrap .badge[b-l7sw45edm7] {
    white-space: normal;
    font-weight: 500;
}

.statement-table-wrap .form-select[b-l7sw45edm7],
.statement-table-wrap .form-control[b-l7sw45edm7] {
    min-width: 0;
    font-size: 0.8rem;
}

.statement-table-wrap select.form-select[b-l7sw45edm7] {
    text-overflow: ellipsis;
}

.statement-table-wrap .btn-sm[b-l7sw45edm7] {
    white-space: nowrap;
}

/* Column sizing — fluid instead of a hard-coded 1240px min-width. Description
   is capped instead of left to grow unbounded, so narrower viewports need less
   horizontal scroll than the previous 8-column layout. */
.statement-col-date[b-l7sw45edm7] {
    width: 108px;
}

.statement-col-category[b-l7sw45edm7] {
    width: 150px;
}

.statement-col-amount[b-l7sw45edm7] {
    width: 110px;
}

.statement-col-distribution[b-l7sw45edm7] {
    width: 260px;
}

.statement-col-actions[b-l7sw45edm7] {
    width: 44px;
}

.statement-col-desc[b-l7sw45edm7] {
    width: 220px;
    max-width: 220px;
}

/* Details is its own column next to Description, not a sub-row inside it —
   Description (read-only, no edit control) and Details (editable) need to
   read as clearly separate fields, not like Description itself is editable. */
.statement-col-details[b-l7sw45edm7] {
    width: 170px;
    max-width: 170px;
}

/* While a Details/Category/Amount cell is actively being edited, let that
   column grow past its normal fixed width so the inline input/select has
   real room to show what's being typed/selected — instead of squeezing it
   into a 150-220px sliver. Only the column being edited expands (standard
   table auto-layout sizes the whole column to its widest cell, so this
   widens that column for every row while one entry in it is in edit mode);
   everything else keeps its normal width. The table wrapper's horizontal
   scroll (see .statement-table-wrap) absorbs any extra width this needs on
   narrow viewports instead of clipping it. */
.statement-col-details.statement-col-editing[b-l7sw45edm7],
.statement-col-category.statement-col-editing[b-l7sw45edm7] {
    width: auto;
    max-width: none;
    min-width: 260px;
}

.statement-col-amount.statement-col-editing[b-l7sw45edm7] {
    width: auto;
    max-width: none;
    min-width: 210px;
}

.statement-col-amount.statement-col-editing .statement-amount-editor[b-l7sw45edm7] {
    max-width: 180px;
}

.statement-date-line[b-l7sw45edm7] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--text-secondary, #374151);
    font-size: 0.8rem;
}

.statement-source-icon[b-l7sw45edm7] {
    font-size: 0.7rem;
    color: var(--text-subtle, #9ca3af);
    width: 14px;
    text-align: center;
}

.statement-badge-ignored[b-l7sw45edm7] {
    display: inline-flex;
    margin-top: 0.25rem;
    background-color: var(--hover-bg, #f3f4f6);
    color: var(--text-muted, #6b7280);
    border: 1px solid var(--border-default, #e4e6ea);
    font-size: 0.68rem;
}

/* Single-line, ellipsized — full text is still on the title attribute for a
   hover tooltip. Combined with .statement-cell-text for specificity so this
   wins regardless of source order against its white-space: normal below. */
.statement-cell-text.statement-desc-primary[b-l7sw45edm7],
.statement-cell-text.statement-desc-secondary[b-l7sw45edm7] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.statement-desc-primary[b-l7sw45edm7] {
    font-weight: 600;
    color: var(--text-primary, #111827);
}

.statement-desc-secondary[b-l7sw45edm7] {
    color: var(--text-muted, #6b7280);
    font-size: 0.75rem;
}

.statement-amount[b-l7sw45edm7] {
    font-size: 0.9rem;
    white-space: nowrap;
}

.statement-cell-text[b-l7sw45edm7] {
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.25;
}

.statement-edit-cell[b-l7sw45edm7] {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
}

.statement-edit-cell-end[b-l7sw45edm7] {
    align-items: center;
    justify-content: flex-end;
}

.statement-cell-edit-button[b-l7sw45edm7] {
    flex: 0 0 auto;
    padding-left: 6px;
    padding-right: 6px;
}

.statement-amount-editor[b-l7sw45edm7] {
    min-width: 96px;
    max-width: 132px;
}

.statement-amount-editor .form-control[b-l7sw45edm7] {
    min-width: 0;
}

.statement-action-btn[b-l7sw45edm7] {
    width: 32px;
    padding-left: 0;
    padding-right: 0;
}

/* Status accent: a slim left border instead of a fully tinted row — reads as a
   calm status marker rather than drowning the row in background color. */
.statement-row[b-l7sw45edm7] {
    border-left: 3px solid transparent;
}

.statement-row-pending[b-l7sw45edm7] {
    border-left-color: #f0ad4e;
    background-color: rgba(240, 173, 78, 0.07);
}

.statement-row-ignored[b-l7sw45edm7] {
    border-left-color: var(--text-subtle, #9ca3af);
    color: var(--text-muted, #6b7280);
    opacity: 0.75;
}

.statement-row-done[b-l7sw45edm7] {
    border-left-color: #2fb380;
}

@media (max-width: 767.98px) {
    .statement-table-wrap[b-l7sw45edm7] {
        max-height: none;
    }
}
/* /Pages/Transactions/TransactionDetails.razor.rz.scp.css */
.profile-img[b-nkso05c5u7] {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--border-default);
}

.profile-img-small[b-nkso05c5u7] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
}

.sticky-top[b-nkso05c5u7] {
    position: sticky;
    top: 1rem;
}

.card-title[b-nkso05c5u7] {
    font-size: 1.1rem;
    font-weight: 600;
}

.badge[b-nkso05c5u7] {
    font-size: 0.8rem;
    padding: 0.5rem 0.75rem;
}

/* Status badge colors */
.bg-warning.text-dark[b-nkso05c5u7] {
    background-color: #ffc107 !important;
    color: var(--text-primary) !important;
}

/* Transaction amount styling */
.fs-4[b-nkso05c5u7] {
    font-weight: 600;
}

/* Table hover effect */
.table-hover tbody tr:hover[b-nkso05c5u7] {
    background-color: rgba(0, 123, 255, 0.075);
}

/* Alert animation */
.alert[b-nkso05c5u7] {
    animation: fadeInUp-b-nkso05c5u7 0.3s ease-out;
}

@keyframes fadeInUp-b-nkso05c5u7 {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Loading spinner center */
.spinner-border[b-nkso05c5u7] {
    width: 3rem;
    height: 3rem;
}

/* Action buttons spacing */
.d-grid.gap-2[b-nkso05c5u7] {
    gap: 0.75rem !important;
}

/* Profile picture animation */
.profile-img[b-nkso05c5u7] {
    transition: transform 0.2s ease-in-out;
}

.profile-img:hover[b-nkso05c5u7] {
    transform: scale(1.05);
}

/* Card shadow on hover */
.card:hover[b-nkso05c5u7] {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.075);
    transition: box-shadow 0.15s ease-in-out;
}

/* Arrow styling */
.fa-arrow-right[b-nkso05c5u7] {
    color: #6c757d !important;
    animation: pulse-b-nkso05c5u7 2s infinite;
}

@keyframes pulse-b-nkso05c5u7 {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
}
