/* /Components/Layout/AuthLayout.razor.rz.scp.css */
.auth-page[b-ruksuaxati] {
    min-height: 100vh;
    background: #F2E8D8;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    font-family: var(--font-sans);
}

.auth-card[b-ruksuaxati] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    max-width: 880px;
    min-height: 520px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 40px rgba(80, 40, 10, 0.14), 0 2px 8px rgba(80, 40, 10, 0.08);
}

.auth-left[b-ruksuaxati] {
    background: #C06820;
    padding: 52px 48px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.auth-brand[b-ruksuaxati] {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.6);
    font-weight: 500;
}

.auth-left-mid[b-ruksuaxati] {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 36px 0 28px;
}

.auth-tagline[b-ruksuaxati] {
    display: flex;
    flex-direction: column;
    margin-bottom: 20px;
    max-width: 230px;
}

.auth-tagline-main[b-ruksuaxati] {
    font-family: var(--font-serif);
    font-size: 36px;
    font-weight: 700;
    color: #FFFFFF;
    line-height: 1.1;
    letter-spacing: -0.01em;
}

.auth-tagline-accent[b-ruksuaxati] {
    font-family: var(--font-serif);
    font-size: 36px;
    font-weight: 400;
    font-style: italic;
    color: #FFE0BC;
    line-height: 1.1;
    letter-spacing: -0.01em;
}

.auth-subtitle[b-ruksuaxati] {
    font-size: 13px;
    font-weight: 300;
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.65;
    max-width: 200px;
    margin: 0;
}

.auth-right[b-ruksuaxati] {
    background: #FFFFFF;
    padding: 52px 56px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.auth-form-container[b-ruksuaxati] {
    width: 100%;
    max-width: 300px;
}

@media (max-width: 720px) {
    .auth-card[b-ruksuaxati] {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .auth-left[b-ruksuaxati] {
        padding: 36px 32px;
        min-height: 220px;
    }

    .auth-tagline-main[b-ruksuaxati],
    .auth-tagline-accent[b-ruksuaxati] {
        font-size: 28px;
    }

    .auth-tagline[b-ruksuaxati] {
        max-width: none;
    }

    .auth-right[b-ruksuaxati] {
        padding: 40px 32px;
    }

    .auth-form-container[b-ruksuaxati] {
        max-width: none;
    }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* Old accent color across the app was #C17F4E */

.evie-header[b-5ox7trjgpl] {
    position: sticky;
    top: 0;
    z-index: 30;
    height: 56px;
    background-color: #C06820;
}

.evie-header-inner[b-5ox7trjgpl] {
    /*max-width: 1536px;*/
    margin: 0 auto;
    padding: 0 1.5rem;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.evie-brand[b-5ox7trjgpl] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    text-decoration: none;
}

.evie-brand-icon[b-5ox7trjgpl] {
    width: 28px;
    height: 28px;
    background-color: rgba(255, 255, 255, 0.2);
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 0.875rem;
    color: #FFFFFF;
}

.evie-brand-text[b-5ox7trjgpl] {
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: 0.15em;
    color: #FFFFFF;
}

/* The nav's own styles moved to ModuleNav.razor.css with its markup — scoped CSS
   belongs to the file that writes the element, so leaving them here would silently
   stop matching. */

.evie-header-actions[b-5ox7trjgpl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: 1rem;
}

.evie-header-icon[b-5ox7trjgpl] {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    color: rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 150ms, color 150ms;
}

.evie-header-icon:hover[b-5ox7trjgpl] {
    background-color: rgba(255, 255, 255, 0.1);
    color: #FFFFFF;
}

.evie-main[b-5ox7trjgpl] {
    padding-top: 2rem;
    padding-bottom: 3.5rem;
    min-height: calc(100vh - 56px);
}

.evie-content[b-5ox7trjgpl] {
    min-width: fit-content;
    margin: 0 auto;
    padding: 0 2rem;
    /*justify-self: center;*/
}

@media (min-width: 1280px) {
    .evie-content[b-5ox7trjgpl] {
        padding: 0 3rem;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-pxyvn3r6mx],
.components-reconnect-repeated-attempt-visible[b-pxyvn3r6mx],
.components-reconnect-failed-visible[b-pxyvn3r6mx],
.components-pause-visible[b-pxyvn3r6mx],
.components-resume-failed-visible[b-pxyvn3r6mx],
.components-rejoining-animation[b-pxyvn3r6mx] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-pxyvn3r6mx],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-pxyvn3r6mx],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-pxyvn3r6mx],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-pxyvn3r6mx],
#components-reconnect-modal.components-reconnect-retrying[b-pxyvn3r6mx],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-pxyvn3r6mx],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-pxyvn3r6mx],
#components-reconnect-modal.components-reconnect-failed[b-pxyvn3r6mx],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-pxyvn3r6mx] {
    display: block;
}

#components-reconnect-modal[b-pxyvn3r6mx] {
    background-color: var(--evie-surface);
    color: var(--evie-text);
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 1px solid var(--evie-border);
    border-radius: 0.75rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-pxyvn3r6mx 0.5s both;
}

#components-reconnect-modal[open][b-pxyvn3r6mx] {
    animation: components-reconnect-modal-slideUp-b-pxyvn3r6mx 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s,
               components-reconnect-modal-fadeInOpacity-b-pxyvn3r6mx 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

#components-reconnect-modal[b-pxyvn3r6mx]::backdrop {
    background-color: rgba(0, 0, 0, 0.5);
    animation: components-reconnect-modal-fadeInOpacity-b-pxyvn3r6mx 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-pxyvn3r6mx {
    0% { transform: translateY(30px) scale(0.95); }
    100% { transform: translateY(0); }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-pxyvn3r6mx {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-pxyvn3r6mx {
    0% { opacity: 1; }
    100% { opacity: 0; }
}

.components-reconnect-container[b-pxyvn3r6mx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-pxyvn3r6mx] {
    margin: 0;
    text-align: center;
    font-size: 0.875rem;
    color: var(--evie-text-muted);
}

#components-reconnect-modal button[b-pxyvn3r6mx] {
    border: 0;
    background-color: var(--evie-primary);
    color: white;
    padding: 0.5rem 1.5rem;
    border-radius: 0.5rem;
    font-weight: 500;
    font-size: 0.875rem;
    cursor: pointer;
    transition: background-color 150ms;
}

#components-reconnect-modal button:hover[b-pxyvn3r6mx] {
    background-color: var(--evie-primary-hover);
}

.components-rejoining-animation[b-pxyvn3r6mx] {
    position: relative;
    width: 80px;
    height: 80px;
}

.components-rejoining-animation div[b-pxyvn3r6mx] {
    position: absolute;
    border: 3px solid var(--evie-primary);
    opacity: 1;
    border-radius: 50%;
    animation: components-rejoining-animation-b-pxyvn3r6mx 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}

.components-rejoining-animation div:nth-child(2)[b-pxyvn3r6mx] {
    animation-delay: -0.5s;
}

@keyframes components-rejoining-animation-b-pxyvn3r6mx {
    0% { top: 40px; left: 40px; width: 0; height: 0; opacity: 0; }
    4.9% { top: 40px; left: 40px; width: 0; height: 0; opacity: 0; }
    5% { top: 40px; left: 40px; width: 0; height: 0; opacity: 1; }
    100% { top: 0; left: 0; width: 80px; height: 80px; opacity: 0; }
}
/* /Components/Pages/AccessDenied.razor.rz.scp.css */
.denied-content[b-4prx8uc9lu] {
    text-align: center;
}

.denied-title[b-4prx8uc9lu] {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 500;
    color: #1A1A1A;
    margin-bottom: 0.75rem;
}

.denied-message[b-4prx8uc9lu] {
    font-size: 0.9375rem;
    color: #6B6B6B;
    margin-bottom: 1.5rem;
}
/* /Components/Pages/ApMatching/Admin/MlDashboard.razor.rz.scp.css */
.summary-grid[b-gp6qpqg6qv] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.summary-card[b-gp6qpqg6qv] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    padding: 1.25rem;
}

.summary-label[b-gp6qpqg6qv] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--evie-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.summary-value[b-gp6qpqg6qv] {
    font-size: 1.75rem;
    font-weight: 500;
    color: var(--evie-text);
    font-family: var(--evie-font-mono);
}

.summary-pending[b-gp6qpqg6qv] {
    color: var(--evie-amber);
}

.section-title[b-gp6qpqg6qv] {
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--evie-text);
    margin-bottom: 0.75rem;
}

.hint-stats[b-gp6qpqg6qv] {
    display: flex;
    gap: 1.5rem;
}

.hint-stat[b-gp6qpqg6qv] {
    font-size: 0.8125rem;
    color: var(--evie-text-muted);
}

.hint-type-badge[b-gp6qpqg6qv] {
    display: inline-block;
    padding: 0.125rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--evie-text-dim);
    background: rgba(100, 116, 139, 0.1);
}

.hint-value-cell[b-gp6qpqg6qv] {
    max-width: 20rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.action-buttons[b-gp6qpqg6qv] {
    display: flex;
    gap: 0.375rem;
}

.btn-xs[b-gp6qpqg6qv] {
    padding: 0.1875rem 0.5rem;
    font-size: 0.6875rem;
}

.btn-approve[b-gp6qpqg6qv] {
    color: var(--evie-teal);
    border-color: rgba(45, 212, 191, 0.3);
    background: rgba(45, 212, 191, 0.1);
}

.btn-approve:hover[b-gp6qpqg6qv] {
    background: rgba(45, 212, 191, 0.2);
}

.btn-reject-hint[b-gp6qpqg6qv] {
    color: var(--evie-coral);
    border-color: rgba(248, 113, 113, 0.3);
}

.btn-reject-hint:hover[b-gp6qpqg6qv] {
    background: rgba(248, 113, 113, 0.1);
}

.confidence-indicator[b-gp6qpqg6qv] {
    font-size: 0.6875rem;
    font-weight: 500;
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
}

.confidence-high[b-gp6qpqg6qv] { color: var(--evie-teal); background: rgba(45, 212, 191, 0.1); }
.confidence-medium[b-gp6qpqg6qv] { color: var(--evie-amber); background: rgba(251, 191, 36, 0.1); }
.confidence-low[b-gp6qpqg6qv] { color: var(--evie-coral); background: rgba(248, 113, 113, 0.1); }

.category-badge[b-gp6qpqg6qv] {
    display: inline-block;
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
    font-size: 0.6875rem;
    font-weight: 500;
}

.category-formatting[b-gp6qpqg6qv] { color: var(--evie-text-dim); background: rgba(100, 116, 139, 0.1); }
.category-extra[b-gp6qpqg6qv] { color: var(--evie-amber); background: rgba(251, 191, 36, 0.1); }
.category-missing[b-gp6qpqg6qv] { color: var(--evie-coral); background: rgba(248, 113, 113, 0.1); }
.category-wrongvalue[b-gp6qpqg6qv] { color: var(--evie-coral); background: rgba(248, 113, 113, 0.15); }

.correction-value[b-gp6qpqg6qv] {
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--evie-font-mono);
    font-size: 0.75rem;
}.data-table th[b-gp6qpqg6qv] { text-align: left; font-size: 0.75rem; font-weight: 500; color: var(--evie-text-dim); text-transform: uppercase; letter-spacing: 0.05em; padding: 0.625rem 1rem; border-bottom: 1px solid var(--evie-border); }
.data-table td[b-gp6qpqg6qv] { padding: 0.75rem 1rem; font-size: 0.8125rem; color: var(--evie-text-muted); border-bottom: 1px solid rgba(50, 55, 72, 0.5); }
.data-table tr:last-child td[b-gp6qpqg6qv] { border-bottom: none; }
.data-table tr:hover td[b-gp6qpqg6qv] { background-color: var(--evie-surface); }

.loading-state[b-gp6qpqg6qv] { display: flex; align-items: center; justify-content: center; gap: 0.625rem; padding: 2rem; font-size: 0.875rem; color: var(--evie-text-dim); }
/* /Components/Pages/ApMatching/Approval.razor.rz.scp.css */
/* Approval queue. Table cell styling comes from the global .data-table
   rules in evie.css; only page-local bits live here. */

.loading-state[b-q5a6nlix50], .error-state[b-q5a6nlix50] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding: 2rem;
    font-size: 0.875rem;
}

.loading-state[b-q5a6nlix50] {
    color: var(--evie-text-dim);
}

.error-state[b-q5a6nlix50] {
    color: var(--evie-coral);
}

.btn-sm[b-q5a6nlix50] {
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
}
/* /Components/Pages/ApMatching/DropBox.razor.rz.scp.css */
.dropbox-list-card[b-zy57q6da9j] {
    margin-top: 0;
}

/* Upload results */

.upload-results[b-zy57q6da9j] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

.upload-result[b-zy57q6da9j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.625rem 1rem;
    border-radius: 0.5rem;
    font-size: 0.8125rem;
}

.upload-result-success[b-zy57q6da9j] {
    background-color: var(--evie-verified-muted);
    color: var(--evie-verified);
}

.upload-result-error[b-zy57q6da9j] {
    background-color: var(--evie-coral-muted);
    color: var(--evie-coral);
}

.upload-result-filename[b-zy57q6da9j] {
    font-weight: 500;
}

.upload-result-message[b-zy57q6da9j] {
    font-size: 0.75rem;
}

/* Upload progress */

.upload-progress[b-zy57q6da9j] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1.5rem;
    background-color: var(--evie-primary-muted);
    color: var(--evie-primary);
    border-radius: 0.5rem;
    font-size: 0.8125rem;
}

.upload-spinner[b-zy57q6da9j] {
    display: inline-block;
    font-size: 1rem;
}

/* Loading state */

.dropbox-loading[b-zy57q6da9j] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding: 2rem;
    color: var(--evie-text-dim);
    font-size: 0.875rem;
}

/* Document table */

.dropbox-table[b-zy57q6da9j] {
    width: 100%;
    border-collapse: collapse;
}

.dropbox-table th[b-zy57q6da9j] {
    text-align: left;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--evie-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.625rem 1rem;
    border-bottom: 1px solid var(--evie-border);
}

.dropbox-table td[b-zy57q6da9j] {
    padding: 0.75rem 1rem;
    font-size: 0.8125rem;
    color: var(--evie-text-muted);
    border-bottom: 1px solid rgba(50, 55, 72, 0.5);
}

.dropbox-table tr:last-child td[b-zy57q6da9j] {
    border-bottom: none;
}

.dropbox-table tr:hover td[b-zy57q6da9j] {
    background-color: var(--evie-surface);
}

.dropbox-filename[b-zy57q6da9j] {
    color: var(--evie-text);
    font-weight: 500;
}

/* Badge dim for "uploaded" pending state */

[b-zy57q6da9j] .badge-dim {
    background-color: rgba(110, 115, 136, 0.15);
    color: var(--evie-text-dim);
}

/* Error states */

.dropbox-error[b-zy57q6da9j] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 2rem;
    color: var(--evie-coral);
    font-size: 0.875rem;
}

.view-error-msg[b-zy57q6da9j] {
    display: block;
    color: var(--evie-coral);
    font-size: 0.6875rem;
    margin-top: 0.25rem;
}

/* Small button variant */

.btn-sm[b-zy57q6da9j] {
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
}
/* /Components/Pages/ApMatching/Index.razor.rz.scp.css */
.page-title[b-dvowe3xq02] {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 500;
    color: #1A1A1A;
    margin-bottom: 1.5rem;
}

.section-grid[b-dvowe3xq02] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 640px) {
    .section-grid[b-dvowe3xq02] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .section-grid[b-dvowe3xq02] {
        grid-template-columns: repeat(3, 1fr);
    }
}

.section-card[b-dvowe3xq02] {
    display: block;
    background-color: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-radius: 0.75rem;
    padding: 1.25rem;
    text-decoration: none;
    transition: all 200ms ease-out;
}

.section-card:hover[b-dvowe3xq02] {
    border-color: #C06820;
    box-shadow: 0 0 0 1px #C06820;
}

.section-card-title[b-dvowe3xq02] {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #1A1A1A;
    margin: 0 0 0.375rem 0;
}

.section-card-desc[b-dvowe3xq02] {
    font-size: 0.8125rem;
    color: #6B6B6B;
    margin: 0;
    line-height: 1.5;
}

.count-line[b-dvowe3xq02] {
    color: #6B6B6B;
}
/* /Components/Pages/ApMatching/Invoices.razor.rz.scp.css */
.data-table th[b-yvkq4ppnkb] {
    text-align: left;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--evie-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.625rem 1rem;
    border-bottom: 1px solid var(--evie-border);
}

.data-table td[b-yvkq4ppnkb] {
    padding: 0.75rem 1rem;
    font-size: 0.8125rem;
    color: var(--evie-text-muted);
    border-bottom: 1px solid rgba(50, 55, 72, 0.5);
}

.data-table tr:last-child td[b-yvkq4ppnkb] {
    border-bottom: none;
}

.data-table tr:hover td[b-yvkq4ppnkb] {
    background-color: var(--evie-surface);
}

.col-money[b-yvkq4ppnkb] {
    text-align: right;
}
/* Loading / error states */

.loading-state[b-yvkq4ppnkb], .error-state[b-yvkq4ppnkb] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding: 2rem;
    font-size: 0.875rem;
}

.loading-state[b-yvkq4ppnkb] {
    color: var(--evie-text-dim);
}

.error-state[b-yvkq4ppnkb] {
    color: var(--evie-coral);
}

/* Match results */

.match-results-cell[b-yvkq4ppnkb] {
    padding: 0 1rem 1rem 1rem !important;
    background-color: var(--evie-surface) !important;
}

.match-no-results[b-yvkq4ppnkb] {
    padding: 0.75rem;
    color: var(--evie-text-dim);
    font-size: 0.8125rem;
}

.match-candidates[b-yvkq4ppnkb] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.match-candidates-header[b-yvkq4ppnkb] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--evie-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.5rem 0;
}

.match-candidate[b-yvkq4ppnkb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 0.75rem;
    border: 1px solid var(--evie-border);
    border-radius: 0.5rem;
    background-color: var(--evie-card);
}

.match-candidate-info[b-yvkq4ppnkb] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
    min-width: 200px;
}

.match-vendor[b-yvkq4ppnkb], .match-po[b-yvkq4ppnkb] {
    font-size: 0.75rem;
    color: var(--evie-text-dim);
}

.match-candidate-score[b-yvkq4ppnkb] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.match-candidate-reasons[b-yvkq4ppnkb] {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.match-reason[b-yvkq4ppnkb] {
    font-size: 0.6875rem;
    color: var(--evie-text-dim);
    padding: 0.125rem 0.5rem;
    background-color: rgba(110, 115, 136, 0.1);
    border-radius: 0.25rem;
}

/* Small button */

.btn-sm[b-yvkq4ppnkb] {
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
}
/* /Components/Pages/ApMatching/PackageDetail.razor.rz.scp.css */
.page-header[b-y11efi7akv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.detail-section[b-y11efi7akv] {
    margin-bottom: 1rem;
}

.section-title[b-y11efi7akv] {
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--evie-text);
    margin-bottom: 0.75rem;
}

.status-row[b-y11efi7akv] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.status-badge[b-y11efi7akv] {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
}

.status-pending[b-y11efi7akv] { color: var(--evie-text-dim); background: rgba(100, 116, 139, 0.1); }
.status-verified[b-y11efi7akv] { color: var(--evie-indigo); background: rgba(99, 102, 241, 0.1); }
.status-approved[b-y11efi7akv] { color: var(--evie-teal); background: rgba(45, 212, 191, 0.1); }
.status-entered[b-y11efi7akv] { color: var(--evie-teal); background: rgba(45, 212, 191, 0.15); }

.hint-text[b-y11efi7akv] {
    font-size: 0.8125rem;
    color: var(--evie-text-dim);
    margin-bottom: 1rem;
}

.field-grid[b-y11efi7akv] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.field-row[b-y11efi7akv] {
    display: grid;
    grid-template-columns: 10rem 1fr auto;
    gap: 0.75rem;
    align-items: center;
}

.field-label[b-y11efi7akv] {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--evie-text-muted);
}

.field-input-group[b-y11efi7akv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.field-input[b-y11efi7akv] {
    flex: 1;
    padding: 0.375rem 0.625rem;
    background: var(--evie-surface);
    border: 1px solid var(--evie-border);
    border-radius: 0.375rem;
    color: var(--evie-text);
    font-size: 0.8125rem;
}

.field-input:focus[b-y11efi7akv] {
    outline: none;
    border-color: var(--evie-indigo);
    box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.15);
}

.field-modified[b-y11efi7akv] {
    border-color: var(--evie-amber) !important;
    background: rgba(251, 191, 36, 0.05);
}

.confidence-indicator[b-y11efi7akv] {
    font-size: 0.6875rem;
    font-weight: 500;
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
    white-space: nowrap;
}

.confidence-badge[b-y11efi7akv] {
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.125rem 0.5rem;
    border-radius: 0.25rem;
}

.confidence-high[b-y11efi7akv] { color: var(--evie-teal); background: rgba(45, 212, 191, 0.1); }
.confidence-medium[b-y11efi7akv] { color: var(--evie-amber); background: rgba(251, 191, 36, 0.1); }
.confidence-low[b-y11efi7akv] { color: var(--evie-coral); background: rgba(248, 113, 113, 0.1); }

.original-value[b-y11efi7akv] {
    font-size: 0.6875rem;
    color: var(--evie-text-dim);
    font-style: italic;
}

.action-bar[b-y11efi7akv] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--evie-border);
}

.save-message[b-y11efi7akv] {
    font-size: 0.8125rem;
}

.success-state[b-y11efi7akv] {
    color: var(--evie-teal);
}
.mono[b-y11efi7akv] {
    font-family: var(--evie-font-mono);
}
.data-table th[b-y11efi7akv] { text-align: left; font-size: 0.75rem; font-weight: 500; color: var(--evie-text-dim); text-transform: uppercase; letter-spacing: 0.05em; padding: 0.625rem 1rem; border-bottom: 1px solid var(--evie-border); }
.data-table td[b-y11efi7akv] { padding: 0.75rem 1rem; font-size: 0.8125rem; color: var(--evie-text-muted); border-bottom: 1px solid rgba(50, 55, 72, 0.5); }
.data-table tr:last-child td[b-y11efi7akv] { border-bottom: none; }

.loading-state[b-y11efi7akv], .error-state[b-y11efi7akv] { display: flex; align-items: center; justify-content: center; gap: 0.625rem; padding: 2rem; font-size: 0.875rem; }
.loading-state[b-y11efi7akv] { color: var(--evie-text-dim); }
.error-state[b-y11efi7akv] { color: var(--evie-coral); }
.btn-sm[b-y11efi7akv] { padding: 0.25rem 0.625rem; font-size: 0.75rem; }

.validation-header[b-y11efi7akv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.validation-all-passed[b-y11efi7akv] {
    font-size: 0.8125rem;
    color: var(--evie-text-dim);
}

.validation-list[b-y11efi7akv] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.validation-row[b-y11efi7akv] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.validation-severity[b-y11efi7akv] {
    display: inline-block;
    padding: 0.125rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.6875rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
    margin-top: 0.0625rem;
}

.validation-critical[b-y11efi7akv] { color: var(--evie-coral); background: rgba(248, 113, 113, 0.12); }
.validation-warning[b-y11efi7akv] { color: var(--evie-amber); background: rgba(251, 191, 36, 0.1); }

.validation-body[b-y11efi7akv] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.validation-message[b-y11efi7akv] {
    font-size: 0.8125rem;
    color: var(--evie-text-muted);
}

.validation-values[b-y11efi7akv] {
    font-size: 0.75rem;
    color: var(--evie-text-dim);
}

.alias-prompt[b-y11efi7akv] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.875rem;
    padding: 0.625rem 0.75rem;
    border: 1px solid var(--evie-border);
    border-radius: 0.375rem;
    background: var(--evie-surface);
}

.alias-prompt-text[b-y11efi7akv] {
    font-size: 0.8125rem;
    color: var(--evie-text-muted);
}

.gl-suggestion[b-y11efi7akv] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 0.75rem;
    margin-bottom: 0.875rem;
    border: 1px solid var(--evie-border);
    border-radius: 0.375rem;
    background: var(--evie-surface);
}

.gl-suggestion-text[b-y11efi7akv] {
    font-size: 0.8125rem;
    color: var(--evie-text-muted);
}

.gl-select-row[b-y11efi7akv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.gl-select[b-y11efi7akv] {
    max-width: 28rem;
}
/* /Components/Pages/ApMatching/Packages.razor.rz.scp.css */
/* Verification queue. Table cell styling comes from the global .data-table
   rules in evie.css; only page-local bits live here. */

.loading-state[b-wo6nc6cogm], .error-state[b-wo6nc6cogm] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding: 2rem;
    font-size: 0.875rem;
}

.loading-state[b-wo6nc6cogm] {
    color: var(--evie-text-dim);
}

.error-state[b-wo6nc6cogm] {
    color: var(--evie-coral);
}

.btn-sm[b-wo6nc6cogm] {
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
}
/* /Components/Pages/ApMatching/PackingSlips.razor.rz.scp.css */
.data-table th[b-ho77xeu8vr] {
    text-align: left;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--evie-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.625rem 1rem;
    border-bottom: 1px solid var(--evie-border);
}

.data-table td[b-ho77xeu8vr] {
    padding: 0.75rem 1rem;
    font-size: 0.8125rem;
    color: var(--evie-text-muted);
    border-bottom: 1px solid rgba(50, 55, 72, 0.5);
}

.data-table tr:last-child td[b-ho77xeu8vr] {
    border-bottom: none;
}

.data-table tr:hover td[b-ho77xeu8vr] {
    background-color: var(--evie-surface);
}
/* Loading / error states */

.loading-state[b-ho77xeu8vr], .error-state[b-ho77xeu8vr] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding: 2rem;
    font-size: 0.875rem;
}

.loading-state[b-ho77xeu8vr] {
    color: var(--evie-text-dim);
}

.error-state[b-ho77xeu8vr] {
    color: var(--evie-coral);
}

.btn-sm[b-ho77xeu8vr] {
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
}
/* /Components/Pages/ApMatching/Payment.razor.rz.scp.css */
/* Table cells come from the shared .ap-queue-tbl rules in evie.css. */
.batch-actions[b-8cdywee356] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--evie-border);
}

.batch-status[b-8cdywee356] {
    color: var(--evie-text-dim);
    font-size: 0.8125rem;
}

.btn-stamp[b-8cdywee356] {
    background-color: rgba(99, 102, 241, 0.15);
    color: var(--evie-indigo);
    border: 1px solid rgba(99, 102, 241, 0.3);
}

.btn-stamp:hover[b-8cdywee356] {
    background-color: rgba(99, 102, 241, 0.25);
}
.loading-state[b-8cdywee356], .error-state[b-8cdywee356] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding: 2rem;
    font-size: 0.875rem;
}

.loading-state[b-8cdywee356] {
    color: var(--evie-text-dim);
}

.error-state[b-8cdywee356] {
    color: var(--evie-coral);
}

.btn-sm[b-8cdywee356] {
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
}

/* Batch entry partial-failure strip */

.upload-results[b-8cdywee356] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem 1rem 0;
}

.upload-result[b-8cdywee356] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.625rem 1rem;
    border-radius: 0.5rem;
    font-size: 0.8125rem;
}

.upload-result-error[b-8cdywee356] {
    background-color: var(--evie-coral-muted);
    color: var(--evie-coral);
}

.upload-result-filename[b-8cdywee356] {
    font-weight: 500;
}

.upload-result-message[b-8cdywee356] {
    font-size: 0.75rem;
}
/* /Components/Pages/ApMatching/Search.razor.rz.scp.css */
/* Filter bar */

.filter-card[b-jwrhkg8piw] {
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

.filter-grid[b-jwrhkg8piw] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
    gap: 1rem 1.25rem;
}

.filter-field[b-jwrhkg8piw] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.filter-field label[b-jwrhkg8piw] {
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--evie-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.filter-input[b-jwrhkg8piw] {
    background-color: var(--evie-surface);
    color: var(--evie-text);
    border: 1px solid var(--evie-border);
    border-radius: 0.375rem;
    padding: 0.4375rem 0.625rem;
    font-size: 0.8125rem;
    font-family: inherit;
}

.filter-input:focus[b-jwrhkg8piw] {
    outline: none;
    border-color: var(--evie-indigo);
}

.filter-input:disabled[b-jwrhkg8piw] {
    opacity: 0.5;
}

.filter-statuses[b-jwrhkg8piw] {
    grid-column: 1 / -1;
}

.status-checks[b-jwrhkg8piw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
}

.status-check[b-jwrhkg8piw] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    color: var(--evie-text-muted);
    cursor: pointer;
}

.filter-actions[b-jwrhkg8piw] {
    display: flex;
    gap: 0.625rem;
    margin-top: 1.25rem;
}

/* Sum line */

.sum-line[b-jwrhkg8piw] {
    padding: 0.625rem 1rem 1rem;
    font-size: 0.875rem;
    color: var(--evie-text-muted);
    border-bottom: 1px solid var(--evie-border);
}

.sum-amount[b-jwrhkg8piw] {
    color: var(--evie-text);
}

/* Results table */

.data-table th[b-jwrhkg8piw] {
    text-align: left;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--evie-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.625rem 1rem;
    border-bottom: 1px solid var(--evie-border);
}

.data-table td[b-jwrhkg8piw] {
    padding: 0.75rem 1rem;
    font-size: 0.8125rem;
    color: var(--evie-text-muted);
    border-bottom: 1px solid rgba(50, 55, 72, 0.5);
}

.data-table tr:last-child td[b-jwrhkg8piw] {
    border-bottom: none;
}

.data-table tr:hover td[b-jwrhkg8piw] {
    background-color: var(--evie-surface);
}

.col-money[b-jwrhkg8piw] {
    text-align: right;
}

/* Pagination */

.pagination[b-jwrhkg8piw] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1rem;
    border-top: 1px solid var(--evie-border);
}

.pagination-label[b-jwrhkg8piw] {
    font-size: 0.8125rem;
    color: var(--evie-text-dim);
}

/* Empty / prompt / loading / error states */

.search-prompt[b-jwrhkg8piw],
.search-empty[b-jwrhkg8piw] {
    padding: 2rem;
    margin: 0;
    text-align: center;
    font-size: 0.875rem;
    color: var(--evie-text-dim);
}

.loading-state[b-jwrhkg8piw],
.error-state[b-jwrhkg8piw] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding: 2rem;
    font-size: 0.875rem;
}

.loading-state[b-jwrhkg8piw] {
    color: var(--evie-text-dim);
}

.error-state[b-jwrhkg8piw] {
    color: var(--evie-coral);
}

.btn-sm[b-jwrhkg8piw] {
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
}
/* /Components/Pages/ComingSoon.razor.rz.scp.css */
.coming-soon[b-tlyih8rhfh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding-top: 6rem;
    gap: 0.75rem;
}

.coming-soon-title[b-tlyih8rhfh] {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 500;
    color: #1A1A1A;
}

.coming-soon-desc[b-tlyih8rhfh] {
    font-size: 0.9375rem;
    color: #6B6B6B;
    max-width: 28rem;
    line-height: 1.625;
    margin: 0;
}

.coming-soon-badge[b-tlyih8rhfh] {
    display: inline-block;
    padding: 0.375rem 1rem;
    background-color: rgba(192, 104, 32, 0.1);
    color: #C06820;
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    border-radius: 9999px;
    margin-top: 0.5rem;
}

.coming-soon-link[b-tlyih8rhfh] {
    margin-top: 1.5rem;
}
/* /Components/Pages/Error.razor.rz.scp.css */
.error-content[b-3eiz8jm595] {
    text-align: center;
    padding-top: 4rem;
}

.error-title[b-3eiz8jm595] {
    font-size: 1rem;
    font-weight: 500;
    color: var(--evie-coral);
    margin-bottom: 0.75rem;
}

.error-message[b-3eiz8jm595] {
    font-size: 0.875rem;
    color: var(--evie-text-muted);
    margin-bottom: 0.5rem;
}

.error-request-id[b-3eiz8jm595] {
    font-size: 0.75rem;
    color: var(--evie-text-dim);
}

.error-request-id code[b-3eiz8jm595] {
    color: var(--evie-text-muted);
}
/* /Components/Pages/Home.razor.rz.scp.css */
.home-container[b-3sz7bb1pmt] {
    max-width: 900px;
    margin: 0 auto;
    padding-top: 4rem;
}

.home-greeting[b-3sz7bb1pmt] {
    text-align: center;
    margin-bottom: 3rem;
}

.home-greeting-label[b-3sz7bb1pmt] {
    display: block;
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    color: #9CA3AF;
    margin-bottom: 0.75rem;
}

.home-greeting-title[b-3sz7bb1pmt] {
    font-family: var(--font-serif);
    font-size: 2.5rem;
    font-weight: 400;
    color: #1A1A1A;
    margin: 0;
    line-height: 1.2;
}

.home-greeting-accent[b-3sz7bb1pmt] {
    font-style: italic;
    color: #C06820;
}

.module-grid[b-3sz7bb1pmt] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

@media (max-width: 768px) {
    .home-container[b-3sz7bb1pmt] {
        padding-top: 2rem;
    }

    .home-greeting-title[b-3sz7bb1pmt] {
        font-size: 1.75rem;
    }

    .module-grid[b-3sz7bb1pmt] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Login.razor.rz.scp.css */
/* Auth form styles moved to wwwroot/css/evie.css so they apply to all
   pages that use AuthLayout (Login, ForgotPassword, ChangePassword, ResetPassword). */
/* /Components/Pages/NotFound.razor.rz.scp.css */
.not-found-content[b-itk6dgl7ju] {
    text-align: center;
    padding-top: 4rem;
}

.not-found-title[b-itk6dgl7ju] {
    font-size: 1rem;
    font-weight: 500;
    color: var(--evie-text);
    margin-bottom: 0.75rem;
}

.not-found-message[b-itk6dgl7ju] {
    font-size: 0.875rem;
    color: var(--evie-text-muted);
    margin-bottom: 1.5rem;
}
/* /Components/Pages/OrderEntry/HeldDocumentsSection.razor.rz.scp.css */
.held-section[b-uexw0gj28a] {
    margin-top: 1.5rem;
    padding: 1.25rem 1.5rem;
    border: 1px solid var(--ev-border, rgba(148, 163, 184, 0.18));
    border-radius: 0.75rem;
    background-color: var(--ev-surface-2, rgba(148, 163, 184, 0.04));
    /* Never take more than half the grid area: a long list scrolls internally
       instead of pushing the order grid above it into a collapse. */
    box-sizing: border-box;
    max-height: 50%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex-shrink: 0;
}

.held-header[b-uexw0gj28a] {
    margin-bottom: 1rem;
    flex-shrink: 0;
}

.held-title[b-uexw0gj28a] {
    margin: 0;
    font-size: 1rem;
    font-weight: 500;
    color: #1A1A1A;
}

.held-subtitle[b-uexw0gj28a] {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
    color: #6B6B6B;
}

.held-list[b-uexw0gj28a] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    overflow-y: auto;
    min-height: 0;
    flex: 1;
}

.held-list[b-uexw0gj28a]::-webkit-scrollbar {
    width: 4px;
}

.held-list[b-uexw0gj28a]::-webkit-scrollbar-track {
    background: transparent;
}

.held-list[b-uexw0gj28a]::-webkit-scrollbar-thumb {
    background-color: #E5E7EB;
    border-radius: 2px;
}

.held-list[b-uexw0gj28a]::-webkit-scrollbar-thumb:hover {
    background-color: #9CA3AF;
}

.held-card[b-uexw0gj28a] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 0.875rem;
    border: 1px solid var(--ev-border, rgba(148, 163, 184, 0.14));
    border-radius: 0.5rem;
    background-color: var(--ev-surface, rgba(148, 163, 184, 0.03));
    flex-shrink: 0;
}

.held-info[b-uexw0gj28a] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.held-name[b-uexw0gj28a] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1A1A1A;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.held-meta[b-uexw0gj28a] {
    font-size: 0.75rem;
    color: #6B6B6B;
}

.held-meta strong[b-uexw0gj28a] {
    color: #1A1A1A;
    font-weight: 500;
}

/* Small kind tag at the start of the meta line. */
.held-tag[b-uexw0gj28a] {
    display: inline-block;
    padding: 0.0625rem 0.4rem;
    border-radius: 0.375rem;
    font-size: 0.6875rem;
    font-weight: 500;
}

.held-tag-duplicate[b-uexw0gj28a] {
    background-color: rgba(59, 130, 246, 0.12);
    color: #2563EB;
}

.held-tag-notpo[b-uexw0gj28a] {
    background-color: rgba(217, 119, 6, 0.12);
    color: #B45309;
}

.held-tag-error[b-uexw0gj28a] {
    background-color: rgba(220, 38, 38, 0.12);
    color: #DC2626;
}

/* Actions pinned to the right of each card. */
.held-actions[b-uexw0gj28a] {
    display: flex;
    gap: 0.5rem;
    margin-left: auto;
    flex-shrink: 0;
}

.held-btn[b-uexw0gj28a] {
    padding: 0.375rem 0.75rem;
    font-size: 0.75rem;
}

/* Document viewer / side-by-side compare — full-screen modal. */
.held-viewer-overlay[b-uexw0gj28a] {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background-color: rgba(15, 23, 42, 0.72);
    display: flex;
    align-items: stretch;
    justify-content: stretch;
    padding: 0;
}

.held-viewer-panel[b-uexw0gj28a] {
    background-color: #FFFFFF;
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.held-viewer-bar[b-uexw0gj28a] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.875rem 1.25rem;
    border-bottom: 1px solid #E5E5E5;
    background-color: #FFFFFF;
    flex-shrink: 0;
}

.held-viewer-heading[b-uexw0gj28a] {
    font-size: 1rem;
    font-weight: 500;
    color: #1A1A1A;
}

.held-viewer-close[b-uexw0gj28a] {
    border: 1px solid #E5E5E5;
    background: #FFFFFF;
    font-size: 0.875rem;
    line-height: 1;
    color: #6B6B6B;
    cursor: pointer;
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.held-viewer-close:hover[b-uexw0gj28a] {
    background-color: #F1F5F9;
    color: #1A1A1A;
}

.held-viewer-body[b-uexw0gj28a] {
    flex: 1;
    min-height: 0;
    display: flex;
    gap: 1px;
    background-color: #E5E5E5;
}

.held-viewer-pane[b-uexw0gj28a] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    background-color: #F8FAFC;
}

.held-viewer-pane-label[b-uexw0gj28a] {
    padding: 0.625rem 1rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #334155;
    background-color: #FFFFFF;
    border-bottom: 1px solid #EEF1F4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex-shrink: 0;
}

.held-viewer-frame[b-uexw0gj28a] {
    flex: 1;
    min-height: 0;
    position: relative;
}

/* The Apryse container fills its pane (global rule sets 100%; pin a floor so it
   never collapses while the viewer initializes). */
.held-viewer-frame[b-uexw0gj28a]  .apryse-viewer-container {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
}

/* File-type chip — self-contained here since scoped CSS doesn't cross into
   this component from the grid. */
.file-icon[b-uexw0gj28a] {
    width: 40px;
    height: 40px;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    flex-shrink: 0;
}

.file-icon-pdf[b-uexw0gj28a] {
    background-color: rgba(220, 74, 58, 0.1);
    color: #DC4A3A;
}

.file-icon-xls[b-uexw0gj28a] {
    background-color: rgba(46, 139, 87, 0.1);
    color: #16A34A;
}

.file-icon-csv[b-uexw0gj28a] {
    background-color: rgba(107, 114, 128, 0.1);
    color: #6B7280;
}

.file-icon-default[b-uexw0gj28a] {
    background-color: rgba(148, 163, 184, 0.1);
    color: #94A3B8;
}
/* /Components/Pages/OrderEntry/Index.razor.rz.scp.css */
.order-page-layout[b-4byqd4m18f] {
    display: flex;
    height: calc(100vh - 56px - 2rem - 3.5rem - 32px);
    overflow: hidden;
}

/* Order Management Section */
.order-management[b-4byqd4m18f] {
    min-width: 65%;
    max-width: 1100px;
    margin: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.order-management-pinned[b-4byqd4m18f] {
    flex-shrink: 0;
}

/* The grid + Not-a-PO section share the space left after the pinned filters.
   Wrapping them lets the Not-a-PO section's max-height resolve against THIS
   area (the grid's normal height), not the whole column. */
.order-grid-area[b-4byqd4m18f] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.order-table-container[b-4byqd4m18f] {
    flex: 1;
    min-height: 0;
    background-color: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-radius: 0.75rem;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.order-table[b-4byqd4m18f] {
    width: 100%;
    border-collapse: collapse;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

.order-table thead[b-4byqd4m18f] {
    flex-shrink: 0;
}

.order-table-container tbody[b-4byqd4m18f] {
    display: block;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

.order-table-container thead tr[b-4byqd4m18f],
.order-table-container tbody tr[b-4byqd4m18f] {
    display: table;
    width: 100%;
    table-layout: fixed;
}

.order-table-container tbody[b-4byqd4m18f]::-webkit-scrollbar {
    width: 4px;
}

.order-table-container tbody[b-4byqd4m18f]::-webkit-scrollbar-track {
    background: transparent;
}

.order-table-container tbody[b-4byqd4m18f]::-webkit-scrollbar-thumb {
    background-color: #E5E7EB;
    border-radius: 2px;
}

.order-table-container tbody[b-4byqd4m18f]::-webkit-scrollbar-thumb:hover {
    background-color: #9CA3AF;
}

.order-entry-header[b-4byqd4m18f] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1.5rem;
}

.order-entry-breadcrumb[b-4byqd4m18f] {
    display: block;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: #9CA3AF;
}

.order-entry-title[b-4byqd4m18f] {
    font-size: 1.375rem;
    font-weight: 400;
    color: #1A1A1A;
    margin: 0.25rem 0 0 0;
}

.order-entry-subtitle[b-4byqd4m18f] {
    font-size: 0.875rem;
    color: #6B6B6B;
    margin: 0.25rem 0 0 0;
}

.order-entry-header-right[b-4byqd4m18f] {
    text-align: right;
}

.upload-btn[b-4byqd4m18f] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    background-color: #C06820;
    color: #FFFFFF;
    border: none;
    border-radius: 0.5rem;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 150ms;
}

.upload-btn:hover[b-4byqd4m18f] {
    background-color: #A85818;
}

.upload-hint[b-4byqd4m18f] {
    font-size: 0.75rem;
    color: #9CA3AF;
    margin: 0.5rem 0 0 0;
}

/* Filters */
.order-entry-filters[b-4byqd4m18f] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    min-height: 3.5rem;
}

.filter-btn[b-4byqd4m18f] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background-color: #FFFFFF;
    color: #6B6B6B;
    border: 1px solid #E5E5E5;
    border-radius: 9999px;
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 150ms;
}

.filter-btn:hover[b-4byqd4m18f] {
    border-color: #C06820;
    color: #C06820;
}

.filter-btn-active[b-4byqd4m18f] {
    border-color: #C06820;
    color: #C06820;
}

.filter-spacer[b-4byqd4m18f] {
    flex: 1;
}

.search-box[b-4byqd4m18f] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 1rem;
    background-color: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-radius: 0.5rem;
    width: 320px;
}

.search-box svg[b-4byqd4m18f] {
    color: #9CA3AF;
    flex-shrink: 0;
}

.search-input[b-4byqd4m18f] {
    border: none;
    outline: none;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    color: #1A1A1A;
    width: 100%;
}

.search-input[b-4byqd4m18f]::placeholder {
    color: #9CA3AF;
}

.order-table th[b-4byqd4m18f] {
    padding: 1rem 1.25rem;
    text-align: left;
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #9CA3AF;
    border-bottom: 1px solid #E5E5E5;
    background-color: #FAFAFA;
}

.th-confidence[b-4byqd4m18f],
.td-confidence[b-4byqd4m18f] {
    width: 100px;
}

.th-updated[b-4byqd4m18f],
.td-updated[b-4byqd4m18f] {
    width: 120px;
}

.th-action[b-4byqd4m18f],
.td-action[b-4byqd4m18f] {
    width: 90px;
    text-align: center;
}

.order-table td[b-4byqd4m18f] {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #F5F5F5;
    vertical-align: middle;
}

.order-row:last-child td[b-4byqd4m18f] {
    border-bottom: none;
}

.order-row:hover[b-4byqd4m18f] {
    background-color: #FAFAFA;
}

/* Document cell */
.document-cell[b-4byqd4m18f] {
    display: flex;
    align-items: center;
    gap: 0.875rem;
}

.file-icon[b-4byqd4m18f] {
    width: 40px;
    height: 40px;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    flex-shrink: 0;
}

.file-icon-pdf[b-4byqd4m18f] {
    background-color: rgba(220, 74, 58, 0.1);
    color: #DC4A3A;
}

.file-icon-xls[b-4byqd4m18f] {
    background-color: rgba(46, 139, 87, 0.1);
    color: #16A34A;
}

.file-icon-csv[b-4byqd4m18f] {
    background-color: rgba(107, 114, 128, 0.1);
    color: #6B7280;
}

.file-icon-default[b-4byqd4m18f] {
    background-color: #F5F5F5;
    color: #6B7280;
}

.document-info[b-4byqd4m18f] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    /* Let this column shrink inside the flex row instead of forcing its
       intrinsic width — without min-width:0 a long unbreakable filename
       overflows the cell and overlaps the customer column. */
    flex: 1;
    min-width: 0;
}

.document-name[b-4byqd4m18f] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1A1A1A;
    /* Truncate long, unbreakable names rather than overflow the cell. */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.document-meta[b-4byqd4m18f] {
    font-size: 0.75rem;
    color: #9CA3AF;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Customer */
.td-customer[b-4byqd4m18f] {
    font-size: 0.875rem;
    color: #1A1A1A;
}

/* Status badge */
.status-badge[b-4byqd4m18f] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.05em;
}

.status-dot[b-4byqd4m18f] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.status-needs-review[b-4byqd4m18f] {
    background-color: rgba(232, 168, 56, 0.15);
    color: #B8860B;
}

.status-needs-review .status-dot[b-4byqd4m18f] {
    background-color: #B8860B;
}

.status-ready[b-4byqd4m18f] {
    background-color: rgba(46, 139, 87, 0.12);
    color: #16A34A;
}

.status-ready .status-dot[b-4byqd4m18f] {
    background-color: #16A34A;
}

.status-sent[b-4byqd4m18f] {
    background-color: rgba(107, 114, 128, 0.12);
    color: #6B7280;
}

.status-sent .status-dot[b-4byqd4m18f] {
    background-color: #6B7280;
}

.status-failed[b-4byqd4m18f] {
    background-color: rgba(220, 38, 38, 0.12);
    color: #DC2626;
}

.status-failed .status-dot[b-4byqd4m18f] {
    background-color: #DC2626;
}

/* Violet — distinct from the amber "needs review" and not red (which would
   read as an error). A deliberate "flagged for follow-up" marker. */
.status-flagged[b-4byqd4m18f] {
    background-color: rgba(124, 58, 237, 0.15);
    color: #7C3AED;
}

.status-flagged .status-dot[b-4byqd4m18f] {
    background-color: #7C3AED;
}

/* Queued — waiting in the durable extraction queue. Pending has no color
   (brand rule): a muted neutral slate, no alarm. */
.status-queued[b-4byqd4m18f] {
    background-color: rgba(148, 163, 184, 0.12);
    color: #94A3B8;
}

.status-queued .status-dot[b-4byqd4m18f] {
    background-color: #94A3B8;
}

/* Duplicate — the PO already exists in the ERP. Informational, not an error,
   so a distinct cool blue rather than coral. */
.status-duplicate[b-4byqd4m18f] {
    background-color: rgba(59, 130, 246, 0.12);
    color: #3B82F6;
}

.status-duplicate .status-dot[b-4byqd4m18f] {
    background-color: #3B82F6;
}

/* Small secondary line under a status badge (e.g. the matched ERP order ref
   on a Duplicate row). Identifiers stay monospace per brand. */
.status-subnote[b-4byqd4m18f] {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    font-family: var(--font-mono);
    color: #94A3B8;
}

/* Inline Retry / Remove buttons on a Failed row. */
.row-actions[b-4byqd4m18f] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.row-action-btn[b-4byqd4m18f] {
    padding: 0.3125rem 0.625rem;
    font-size: 0.75rem;
}

/* Confidence */
.confidence-value[b-4byqd4m18f] {
    font-family: var(--font-mono);
    font-size: 0.875rem;
    font-weight: 600;
}

.confidence-high[b-4byqd4m18f] {
    color: #16A34A;
}

.confidence-medium[b-4byqd4m18f] {
    color: #B8860B;
}

.confidence-low[b-4byqd4m18f] {
    color: #DC4A3A;
}

/* Updated */
.td-updated[b-4byqd4m18f] {
    font-size: 0.875rem;
    color: #9CA3AF;
}

/* Action links */
.action-link[b-4byqd4m18f] {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    color: #9CA3AF;
    text-decoration: none;
    transition: color 150ms;
}

.action-link:hover[b-4byqd4m18f] {
    color: #6B6B6B;
}

.action-link-review[b-4byqd4m18f] {
    color: #C06820;
}

.action-link-review:hover[b-4byqd4m18f] {
    color: #A85818;
}

.action-arrow[b-4byqd4m18f] {
    font-size: 0.75rem;
    line-height: 1;
}

/* Footer hint */
.order-footer-hint[b-4byqd4m18f] {
    margin-top: 1.5rem;
    font-size: 0.8125rem;
    color: #9CA3AF;
}

/* Upload dialog */
.upload-overlay[b-4byqd4m18f] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100;
}

.upload-dialog[b-4byqd4m18f] {
    background-color: #FFFFFF;
    border-radius: 0.75rem;
    padding: 2rem;
    max-width: 480px;
    width: 90%;
    text-align: center;
}

.upload-dialog h2[b-4byqd4m18f] {
    font-size: 1.25rem;
    font-weight: 600;
    color: #1A1A1A;
    margin: 0 0 0.5rem 0;
}

.upload-dialog p[b-4byqd4m18f] {
    color: #6B6B6B;
    margin: 0 0 1.5rem 0;
}

/* Order Upload Section */
.upload-section[b-4byqd4m18f] {
    min-width: 33%;
    max-width: 1100px;
    padding-right: 1.5rem;
    padding-left: 1.5rem;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.upload-section-pinned[b-4byqd4m18f] {
    flex-shrink: 0;
}

.upload-card-list[b-4byqd4m18f] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1rem;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-right: 0.25rem;
    padding-bottom: 1rem;
}

.upload-card-list[b-4byqd4m18f]::-webkit-scrollbar {
    width: 4px;
}

.upload-card-list[b-4byqd4m18f]::-webkit-scrollbar-track {
    background: transparent;
}

.upload-card-list[b-4byqd4m18f]::-webkit-scrollbar-thumb {
    background-color: #E5E7EB;
    border-radius: 2px;
}

.upload-card-list[b-4byqd4m18f]::-webkit-scrollbar-thumb:hover {
    background-color: #9CA3AF;
}
/* ---------- Empty state ---------- */

/* The container is flex:1 so it holds its height whether or not there are rows.
   That left the header sitting over a tall blank panel when a filter matched
   nothing — indistinguishable from a stuck load. The empty state fills that
   space deliberately instead. */
/* Inherits `tbody tr { display: table; width: 100%; table-layout: fixed }` from the
   grid rules above, so the single colspan cell spans the full width. Overriding the
   row to display:block instead collapses the cell to its content width and leaves a
   stray rule where the row border lands. */
.order-empty-row td[b-4byqd4m18f] {
    padding: 0;
    border: none;
    width: 100%;
}

.order-empty[b-4byqd4m18f] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 4rem 2rem;
    text-align: center;
}

.order-empty-icon[b-4byqd4m18f] {
    color: #D1D5DB;
    margin-bottom: 0.25rem;
}

.order-empty-title[b-4byqd4m18f] {
    font-size: 0.9375rem;
    font-weight: 500;
    color: #374151;
}

.order-empty-sub[b-4byqd4m18f] {
    font-size: 0.8125rem;
    color: #9CA3AF;
    max-width: 26rem;
}

.order-empty-action[b-4byqd4m18f] {
    margin-top: 0.75rem;
}
/* /Components/Pages/OrderEntry/Review.razor.rz.scp.css */
/* Page chrome for the Review page. Section-specific styles live beside their
   components in ./Review (ReviewOrderInfoSection, ReviewLineItemsSection,
   ReviewValidationSection, the dialogs) and the dropdown chrome in the shared
   SearchableDropdown. Rules the sections share (section headers, confidence
   dots, buttons) are kept here once, reaching into the section components via
   ::deep from the page-rendered .panel-body wrapper. */
.review-page[b-zheyk4leov] {
    width: 100%;
}

/* Base .oe-loading/.oe-empty is global (evie.css); only the page-specific
   empty-state heading margin stays scoped here. */
.oe-empty h2[b-zheyk4leov] {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
}

.page-header[b-zheyk4leov] {
    padding: 1.5rem 0 1rem;
}

.eyebrow[b-zheyk4leov] {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #9CA3AF;
    margin-bottom: 0.375rem;
}

.header-top[b-zheyk4leov] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
}

.page-title[b-zheyk4leov] {
    font-size: 1.375rem;
    font-weight: 400;
    color: #1A1A1A;
    line-height: 1.1;
    margin: 0;
}

.page-sub[b-zheyk4leov] {
    font-size: 0.875rem;
    color: #6B6B6B;
    margin: 0.25rem 0 0 0;
}

.header-actions[b-zheyk4leov] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
}

/* Buttons: page-rendered (header, bottom bar) and, via ::deep, the ones the
   section components render inside the right panel's body. */
.btn[b-zheyk4leov],
.panel-body[b-zheyk4leov]  .btn {
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    border: 1px solid;
    transition: all 0.18s;
    white-space: nowrap;
    background: transparent;
}

.btn-sm[b-zheyk4leov],
.panel-body[b-zheyk4leov]  .btn-sm {
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
}

/* Ghost buttons read as active by default — the old ghost grey made enabled
   buttons (Back to list, Cancel, Confirm Review, etc.) look disabled. Disabled
   then has its own clearly-muted state. */
.btn-ghost[b-zheyk4leov],
.panel-body[b-zheyk4leov]  .btn-ghost {
    color: #1A1A1A;
    border-color: #C8C8C8;
}

.btn-ghost:hover:not(:disabled)[b-zheyk4leov],
.panel-body[b-zheyk4leov]  .btn-ghost:hover:not(:disabled) {
    border-color: #9CA3AF;
    color: #1A1A1A;
    background: #FAFAFA;
}

.btn-ghost:disabled[b-zheyk4leov],
.panel-body[b-zheyk4leov]  .btn-ghost:disabled {
    color: #B0B0B0;
    border-color: #ECECEC;
    cursor: not-allowed;
}

.btn-outline[b-zheyk4leov] {
    color: #C06820;
    border-color: #FCCF9A;
}

.btn-outline:hover[b-zheyk4leov] {
    background: #FFF5EE;
    border-color: #C06820;
}

.btn-warning[b-zheyk4leov] {
    background: #FFFBEB;
    color: #92400E;
    border-color: #FCD34D;
}

.btn-warning:hover[b-zheyk4leov] {
    background: #FEF3C7;
}

.btn-primary[b-zheyk4leov] {
    background: #C06820;
    color: #FFF;
    border-color: #C06820;
    box-shadow: 0 3px 10px rgba(192, 104, 32, 0.22);
}

.btn-primary:hover:not(:disabled)[b-zheyk4leov] {
    background: #A85818;
    box-shadow: 0 5px 16px rgba(192, 104, 32, 0.32);
    transform: translateY(-1px);
}

.btn-primary:disabled[b-zheyk4leov] {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}

.btn-link[b-zheyk4leov],
.panel-body[b-zheyk4leov]  .btn-link {
    background: none;
    border: none;
    color: #C06820;
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
}

.btn-link.danger[b-zheyk4leov],
.panel-body[b-zheyk4leov]  .btn-link.danger {
    color: #DC4A3A;
}

/* Summary strip */
/* Reads as a card (full border, 14px radius, the same soft shadow as .panel) while
   keeping the banner's own compact bar layout and #FAFAFA fill — it was a full-bleed
   rule-under-a-strip, which sat oddly above the rounded panels below it. */
.summary-strip[b-zheyk4leov] {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 0.875rem 1.25rem;
    border: 1.5px solid #E5E5E5;
    border-radius: 14px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    background: #FAFAFA;
    /* Keeps the pill/badge children inside the rounded corners. */
    overflow: hidden;
}

.sum-item[b-zheyk4leov] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.sum-label[b-zheyk4leov] {
    font-size: 0.6875rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #9CA3AF;
}

.sum-val[b-zheyk4leov] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1A1A1A;
}

.sum-sep[b-zheyk4leov] {
    width: 1px;
    height: 20px;
    background: #E5E5E5;
}

.file-badge[b-zheyk4leov] {
    font-size: 0.625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.2rem 0.45rem;
    border-radius: 4px;
    border: 1px solid;
}

.badge-pdf[b-zheyk4leov] {
    color: #C06820;
    background: #FFF5EE;
    border-color: #FCCF9A;
}

.pill[b-zheyk4leov] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    border-radius: 999px;
    padding: 0.25rem 0.75rem;
    font-size: 0.6875rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border: 1px solid;
}

.pill-dot[b-zheyk4leov] {
    width: 5px;
    height: 5px;
    border-radius: 50%;
}

.pill-review[b-zheyk4leov] {
    color: #92400E;
    background: #FFFBEB;
    border-color: #FCD34D;
}

.pill-review .pill-dot[b-zheyk4leov] {
    background: #D97706;
}

.pill-ready[b-zheyk4leov] {
    color: #14532D;
    background: #F0FDF4;
    border-color: #86EFAC;
}

.pill-ready .pill-dot[b-zheyk4leov] {
    background: #16A34A;
}

.pill-sent[b-zheyk4leov] {
    color: #374151;
    background: #F3F4F6;
    border-color: #D1D5DB;
}

.pill-sent .pill-dot[b-zheyk4leov] {
    background: #6B7280;
}

.pill-failed[b-zheyk4leov] {
    color: #991B1B;
    background: #FEF2F2;
    border-color: #FECACA;
}

.pill-failed .pill-dot[b-zheyk4leov] {
    background: #DC2626;
}

/* Violet — distinct from the amber "needs review" pill and not red (error). */
.pill-flagged[b-zheyk4leov] {
    color: #6D28D9;
    background: #F5F3FF;
    border-color: #C4B5FD;
}

.pill-flagged .pill-dot[b-zheyk4leov] {
    background: #7C3AED;
}

.conf-badge[b-zheyk4leov] {
    font-family: var(--font-mono);
    font-size: 0.875rem;
    font-weight: 600;
}

.conf-high[b-zheyk4leov] { color: #16A34A; }
.conf-mid[b-zheyk4leov]  { color: #D97706; }
.conf-low[b-zheyk4leov]  { color: #DC2626; }

/* Workspace */
.workspace[b-zheyk4leov] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    padding-top: 1.5rem;
    /* start, not stretch: a long extracted-data panel must not stretch the source
       -document panel to match (which pushes the PDF far down / vertically centered). */
    align-items: start;
    min-width: 0;
}

/* The source-document viewer keeps a bounded viewport height and sticks in view
   while the (potentially very long) extracted-data panel scrolls beside it, so the
   document always sits at the top of the viewer instead of being centered in an
   over-tall column. */
.doc-panel[b-zheyk4leov] {
    position: sticky;
    /* Clear the 56px sticky app header, with a little breathing room. */
    top: calc(56px + 1rem);
    /* Fit between the 56px header and the fixed 60px bottom action bar (plus a
       1rem gap above each) so the viewer never tucks behind the footer. */
    height: calc(100vh - 56px - 60px - 2rem);
}

.panel[b-zheyk4leov] {
    min-width: 0;
}

.panel[b-zheyk4leov] {
    background: #FFFFFF;
    border: 1.5px solid #E5E5E5;
    border-radius: 14px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 600px;
}

.panel-header[b-zheyk4leov] {
    background: #FAFAFA;
    border-bottom: 1px solid #E5E5E5;
    padding: 0.85rem 1.15rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.panel-title[b-zheyk4leov] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #1A1A1A;
}

.panel-sub[b-zheyk4leov] {
    font-size: 0.75rem;
    color: #9CA3AF;
    margin-top: 0.125rem;
}

/* "Source not located" hint — subtle amber, not alarming. */
.panel-sub.hl-miss[b-zheyk4leov] {
    color: #B45309;
}

/* The viewer panel puts its hint beside the title instead of under it, so the
   header costs one line instead of two. flex-wrap plus a nowrap hint means the
   sentence never breaks mid-phrase: it either sits on the title's line or drops
   below it whole. */
.panel-heading-inline[b-zheyk4leov] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 0.5rem;
    row-gap: 0.125rem;
}

.panel-heading-inline .panel-sub[b-zheyk4leov] {
    white-space: nowrap;
    margin-top: 0;
}

.panel-controls[b-zheyk4leov] {
    display: flex;
    gap: 0.35rem;
}

.panel-body[b-zheyk4leov] {
    flex: 1;
    overflow-y: auto;
}

.doc-viewer-body[b-zheyk4leov] {
    padding: 0;
    background: #EBEBEB;
    overflow: hidden; /* clip to rounded corners of .panel when viewer is full-height */
}

.doc-viewer-body[b-zheyk4leov]  .apryse-viewer-container {
    height: 100%;
    min-height: 560px;
}

.viewer-placeholder[b-zheyk4leov] {
    padding: 3rem;
    text-align: center;
    color: #9CA3AF;
    font-size: 0.875rem;
}

/* Right sections — structural styles shared by the three section components. */
.panel-body[b-zheyk4leov]  .right-section {
    padding: 1.15rem 1.25rem;
    border-bottom: 1px solid #F0F0F0;
}

.panel-body[b-zheyk4leov]  .right-section:last-child {
    border-bottom: none;
}

.panel-body[b-zheyk4leov]  .section-head {
    margin-bottom: 0.875rem;
}

.panel-body[b-zheyk4leov]  .section-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: #1A1A1A;
}

.panel-body[b-zheyk4leov]  .section-sub {
    font-size: 0.75rem;
    color: #9CA3AF;
    margin-top: 0.125rem;
}

.panel-body[b-zheyk4leov]  .section-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.875rem;
}

.panel-body[b-zheyk4leov]  .section-count {
    font-size: 0.6875rem;
    font-weight: 500;
    color: #9CA3AF;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.panel-body[b-zheyk4leov]  .section-actions {
    display: flex;
    gap: 0.375rem;
}

/* Confidence / match-status dots, rendered by both sections. */
.panel-body[b-zheyk4leov]  .conf-dot {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
    flex-shrink: 0;
}

.panel-body[b-zheyk4leov]  .conf-dot.tag-high   { background: #16A34A; }
.panel-body[b-zheyk4leov]  .conf-dot.tag-mid    { background: #D97706; }
.panel-body[b-zheyk4leov]  .conf-dot.tag-low    { background: #DC2626; }
.panel-body[b-zheyk4leov]  .conf-dot.tag-failed { background: #DC2626; }

/* Evie card (currently commented out in the markup) */
.evie-card[b-zheyk4leov] {
    background: #FAFAFA;
    border: 1.5px solid #E5E5E5;
    border-radius: 6px;
    padding: 0.875rem 1rem;
}

.evie-label[b-zheyk4leov] {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #C06820;
    font-weight: 600;
    margin-bottom: 0.75rem;
}

.evie-bullets[b-zheyk4leov] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.evie-bullets li[b-zheyk4leov] {
    font-size: 0.875rem;
    color: #6B6B6B;
    line-height: 1.5;
    padding-left: 1rem;
    position: relative;
}

.evie-bullets li[b-zheyk4leov]::before {
    content: '·';
    position: absolute;
    left: 0.25rem;
    color: #C06820;
    font-weight: 700;
    font-size: 0.875rem;
}

/* Bottom bar */
.bottom-bar[b-zheyk4leov] {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(12px);
    border-top: 1px solid #E5E5E5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 2rem;
    z-index: 200;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.06);
}

.bar-note[b-zheyk4leov] {
    font-size: 0.875rem;
    color: #6B6B6B;
}

.bar-note strong[b-zheyk4leov] {
    color: #1A1A1A;
    font-weight: 600;
}

.bar-right[b-zheyk4leov] {
    display: flex;
    gap: 0.5rem;
}

/* Toast */
.toast[b-zheyk4leov] {
    position: fixed;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%);
    background: #1A1A1A;
    color: #FFFFFF;
    padding: 0.75rem 1.25rem;
    border-radius: 8px;
    font-size: 0.875rem;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
    z-index: 300;
}

@media (max-width: 1100px) {
    .workspace[b-zheyk4leov] {
        grid-template-columns: 1fr;
    }

    /* Single column: don't pin the viewer over the screen — let it sit inline as a
       bounded-height panel above the extracted data. */
    .doc-panel[b-zheyk4leov] {
        position: static;
        height: 70vh;
    }
}

.flag-banner[b-zheyk4leov] {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #FFFBEB;
    border: 1px solid #FCD34D;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    margin: 0.75rem 0;
    color: #92400E;
}

.flag-banner-text[b-zheyk4leov] {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem;
    font-size: 0.875rem;
    line-height: 1.4;
}

.flag-banner-icon[b-zheyk4leov] {
    font-size: 1rem;
    line-height: 1;
}

.flag-banner-actor[b-zheyk4leov] {
    font-weight: 600;
}

.flag-banner-note[b-zheyk4leov] {
    color: #78350F;
}

.flag-banner-resolve[b-zheyk4leov] {
    flex-shrink: 0;
}
/* /Components/Pages/OrderEntry/Review/ReviewFlagDialogs.razor.rz.scp.css */
/* Modal chrome + button styles, duplicated from the review page's scoped CSS —
   scoped styles don't cross component boundaries, and the global .modal-* /
   .btn styles (used by ConfirmDialog) are the dark-theme variants. */
.modal-overlay[b-n0otsliu5x] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 400;
}

.modal-card[b-n0otsliu5x] {
    background: #FFFFFF;
    border-radius: 10px;
    padding: 1.5rem;
    width: min(520px, 90vw);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.modal-title[b-n0otsliu5x] {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: #1A1A1A;
}

.modal-sub[b-n0otsliu5x] {
    margin: 0;
    font-size: 0.875rem;
    color: #4B5563;
    line-height: 1.5;
}

.flag-note-input[b-n0otsliu5x] {
    width: 100%;
    border: 1px solid #D1D5DB;
    border-radius: 6px;
    padding: 0.6rem 0.75rem;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    color: #1A1A1A;
    resize: vertical;
    min-height: 4.5rem;
}

.flag-note-input:focus[b-n0otsliu5x] {
    outline: none;
    border-color: #C06820;
    box-shadow: 0 0 0 3px rgba(192, 104, 32, 0.15);
}

.modal-actions[b-n0otsliu5x] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

.btn[b-n0otsliu5x] {
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    border: 1px solid;
    transition: all 0.18s;
    white-space: nowrap;
    background: transparent;
}

.btn-ghost[b-n0otsliu5x] {
    color: #1A1A1A;
    border-color: #C8C8C8;
}

.btn-ghost:hover:not(:disabled)[b-n0otsliu5x] {
    border-color: #9CA3AF;
    color: #1A1A1A;
    background: #FAFAFA;
}

.btn-ghost:disabled[b-n0otsliu5x] {
    color: #B0B0B0;
    border-color: #ECECEC;
    cursor: not-allowed;
}

.btn-primary[b-n0otsliu5x] {
    background: #C06820;
    color: #FFF;
    border-color: #C06820;
    box-shadow: 0 3px 10px rgba(192, 104, 32, 0.22);
}

.btn-primary:hover:not(:disabled)[b-n0otsliu5x] {
    background: #A85818;
    box-shadow: 0 5px 16px rgba(192, 104, 32, 0.32);
    transform: translateY(-1px);
}

.btn-primary:disabled[b-n0otsliu5x] {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}
/* /Components/Pages/OrderEntry/Review/ReviewLineItemsSection.razor.rz.scp.css */
/* Line table */
.empty-lines[b-h8r2h57vlp] {
    padding: 1rem 1.15rem;
    background: #FAFAFA;
    border: 1px dashed #E5E5E5;
    border-radius: 6px;
    font-size: 0.875rem;
    color: #6B6B6B;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.line-table-wrap[b-h8r2h57vlp] {
    /* overflow-x:auto keeps horizontal scroll for the min-width table and
       (per CSS) computes overflow-y to auto, so content clips to the
       rounded corners — framing the line items as a card like the fields. */
    overflow-x: auto;
    border: 1px solid #E7E3DD;
    border-radius: 8px;
}

.line-table[b-h8r2h57vlp] {
    width: 100%;
    border-collapse: collapse;
    min-width: 560px;
    font-size: 0.875rem;
    /* Columns are sized by the colgroup, never by their content. Pricing
       and lead-time resolve asynchronously and add notes to cells that were
       empty, which under auto layout re-measures every column and makes the
       grid jump around as results stream in. */
    table-layout: fixed;
}

/* Part numbers run to 7-8 characters in the mono cell font ("121985E" needs
   ~80px of input width); 12% left the last glyph clipped at a 1600px viewport. */
.line-table .col-part[b-h8r2h57vlp] { width: 14%; }
/* Free prose that truncates at any width — the cheapest place to fund the price
   column below, which has a hard minimum. */
.line-table .col-desc[b-h8r2h57vlp] { width: 18%; }
/* Qty needs far more room than its short header suggests: the bound decimal
   renders all four scale digits ("2050.0000"), which needs ~103px of the ~119px
   this buys. It was clipping badly at the old width. */
.line-table .col-qty[b-h8r2h57vlp] { width: 17%; }
.line-table .col-uom[b-h8r2h57vlp] { width: 9%; }
/* Price is bound through Review.NormalizeMoneyScale, so it renders "36.75" rather
   than "36.7500" — but it keeps 2 decimals as a money field should ("160.00", not
   "160"), and sub-cent precision still shows in full ("0.4210" ⇒ 0.421).
   A clipped price is the worst failure on this page: the visible digits still read
   as a valid number, so a truncated 63.8000 looked like 63.86.
   Measured at a 1600px viewport this holds ~7 characters — "1234.56", "0.4210",
   "160.00" all fit. A four-figure price carrying sub-cent precision ("1234.5678")
   still clips; covering that needs ~17%, which the other columns can't spare.
   Wider viewports scale up and are unaffected. */
.line-table .col-price[b-h8r2h57vlp] { width: 15%; }
.line-table .col-total[b-h8r2h57vlp] { width: 13%; }
/* Conf. is a 6px dot and Remove is a ~46px link — both had far more room than
   they need, which is where the part/price columns above were widened from. */
.line-table .col-conf[b-h8r2h57vlp] { width: 5%; }
.line-table .col-actions[b-h8r2h57vlp] { width: 9%; }

/* Fixed layout won't shrink columns to fit content, so long values have to be
   told what to do rather than forcing a horizontal scroll. */
.line-table td[b-h8r2h57vlp] {
    overflow-wrap: anywhere;
}

/* Async notes ("No quote", "No supplier", the quoted price) land in cells that
   were empty. Two things made that shift the whole grid vertically, and both
   are fixed here:

   1. The note added a line where there was none. Every cell without a note now
      reserves exactly one line, so the note drops into space that already
      existed. Cells that already have a note don't reserve extra, so this costs
      no additional height — the part cell always carries one, and it is what
      sets the row height today.
   2. Short notes WRAPPED in the narrow qty/uom/price columns, so a single
      "No supplier" cost two lines. They stay on one line and overflow instead,
      which is invisible in practice and cannot change row height. */
.line-table td[b-h8r2h57vlp]::after {
    content: "";
    display: block;
    /* Mirrors a .cell-note's box exactly — same line height, same margin — so
       swapping the reserve for a real note changes nothing. */
    height: 0.75rem;
    margin-top: 0.25rem;
}

.line-table td:has(.cell-note)[b-h8r2h57vlp]::after {
    display: none;
}

.line-table td .cell-note[b-h8r2h57vlp] {
    white-space: nowrap;
    overflow: visible;
}

.line-table th[b-h8r2h57vlp] {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #9CA3AF;
    padding: 0.6rem 0.5rem;
    text-align: left;
    font-weight: 500;
    background: #FAFAFA;
    border-bottom: 1px solid #E5E5E5;
}

.line-table td[b-h8r2h57vlp] {
    padding: 0.5rem 0.5rem;
    border-bottom: 1px solid #F0F0F0;
    vertical-align: top;
}

.line-table tbody tr.flagged td[b-h8r2h57vlp] {
    background: #FFFDF5;
}

.cell-input[b-h8r2h57vlp] {
    width: 100%;
    border: 1px solid transparent;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    color: #1A1A1A;
    padding: 0.25rem 0.4rem;
    border-radius: 3px;
    outline: none;
}

.cell-input.mono[b-h8r2h57vlp] {
    font-family: var(--font-mono);
}

/* Field-vs-document mismatch marker — see ReviewOrderInfoSection.razor.css. */
.cell-input.doc-mismatch[b-h8r2h57vlp] {
    box-shadow: inset 0 -2px 0 0 #E8A838;
    background: rgba(232, 168, 56, 0.13);
    border-radius: 3px;
}

.cell-input:focus[b-h8r2h57vlp] {
    border-color: #C06820;
    background: #FFF5EE;
}

/* Locked derived fields (qty / UOM / price) while the Part → Pricing lookup is
   pending — matching can rewrite them, so editing is blocked until it settles. */
.cell-input:disabled[b-h8r2h57vlp] {
    color: #9A9A9A;
    background: rgba(0, 0, 0, 0.03);
    cursor: not-allowed;
}

/* Per-line match indicator. Smaller-footprint variant of .field-note;
   sits inside the table cell below its input. */
.cell-note[b-h8r2h57vlp] {
    font-size: 0.6875rem;
    margin-top: 0.25rem;
    line-height: 1.1;
}

/* Part cell: the match note and the "Choose part" picker share one line.
   width:0 keeps the row out of the column's intrinsic width, so it can spill
   over the description cell without widening the parts column or wrapping —
   the parts column stays sized by its input alone. */
.part-note-row[b-h8r2h57vlp] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    white-space: nowrap;
    width: 0;
    overflow: visible;
    position: relative;
    z-index: 2;
    /* The row overhangs the description input, so it must not swallow clicks
       meant for it. Only the interactive bits opt back in, below. */
    pointer-events: none;
}

/* Every parts row is its own stacking context (z-index above), so the open
   dropdown's fixed menu (z 2000) is confined to its row. Without this, a lower
   row — same z-index, later in the DOM — would paint its "Choose part" trigger
   over an open menu spilling down from the row above. Lifting the open row above
   its siblings keeps its menu on top. */
.part-note-row.dd-open[b-h8r2h57vlp] {
    z-index: 2001;
}

/* Flex items shrink to nothing inside a zero-width container without this. */
.part-note-row > *[b-h8r2h57vlp] {
    flex: 0 0 auto;
    margin-top: 0;
}

.part-note-row[b-h8r2h57vlp]  .sdd,
.part-note-row .match-retry-btn[b-h8r2h57vlp] {
    pointer-events: auto;
}

.cell-note.match[b-h8r2h57vlp] {
    color: #059669;
}

.cell-note.matching[b-h8r2h57vlp] {
    color: #6B6B6B;
    display: inline-flex;
    align-items: center;
    gap: 0.3125rem;
}

.cell-note.matching .dot[b-h8r2h57vlp] {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 50%;
    background: #9CA3AF;
    animation: match-pulse 1.4s ease-in-out infinite;
}

.cell-note.notfound[b-h8r2h57vlp] {
    color: #DC4A3A;
}

.cell-note.failed[b-h8r2h57vlp] {
    color: #B5443B;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    flex-wrap: wrap;
}

.cell-note .match-retry-btn[b-h8r2h57vlp] {
    font-family: var(--font-sans);
    font-size: 0.6875rem;
    color: #C06820;
    background: transparent;
    border: 1px solid #FCCF9A;
    border-radius: 0.25rem;
    padding: 0 0.375rem;
    cursor: pointer;
    line-height: 1.4;
}

.cell-note .match-retry-btn:hover[b-h8r2h57vlp] {
    background: #FFF5EE;
    border-color: #C06820;
}

.cell-note .match-retry-btn:disabled[b-h8r2h57vlp] {
    opacity: 0.55;
    cursor: not-allowed;
}

/* Stage suffix shown next to "Matched" — e.g. "(description, LIKE)".
   Dim and italic so the primary "Matched" text reads first; the stage
   label is for reviewers who care about how the match was made. */
.cell-note .stage-tag[b-h8r2h57vlp] {
    color: #9CA3AF;
    font-style: italic;
    margin-left: 0.25rem;
    font-weight: 400;
}

.mono[b-h8r2h57vlp] {
    font-family: var(--font-mono);
    font-size: 0.875rem;
}

.total-mismatch[b-h8r2h57vlp] {
    color: #D97706;
    font-weight: 600;
}

.total-mismatch-indicator[b-h8r2h57vlp] {
    margin-left: 0.35rem;
    font-size: 0.75rem;
    color: #D97706;
}
/* /Components/Pages/OrderEntry/Review/ReviewOrderInfoSection.razor.rz.scp.css */
/* Fields */
.fields-grid[b-0gxyi0yvpv] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.625rem;
}

.field-full[b-0gxyi0yvpv] {
    grid-column: 1 / -1;
}

.field-item[b-0gxyi0yvpv] {
    /* Subtle warm-neutral fill so each field reads as its own card against
       the white panel — the border alone wasn't enough separation. */
    background: #FAF9F7;
    border: 1px solid #E7E3DD;
    border-radius: 8px;
    padding: 0.625rem 0.75rem;
    transition: border-color 0.15s, background-color 0.15s;
}

.field-item:hover[b-0gxyi0yvpv] {
    border-color: #D6CFC5;
    background: #FCFBFA;
}

.field-item:focus-within[b-0gxyi0yvpv] {
    border-color: #C06820;
    box-shadow: 0 0 0 3px rgba(192, 104, 32, 0.1);
}

.field-label-row[b-0gxyi0yvpv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.25rem;
}

.field-label[b-0gxyi0yvpv] {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #9CA3AF;
    font-weight: 500;
}

.field-input[b-0gxyi0yvpv] {
    width: 100%;
    border: none;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 500;
    color: #1A1A1A;
    padding: 0;
    outline: none;
}

/* Field-vs-document mismatch marker: the field was edited to a value that
   isn't on the document. Amber, not red — an attention cue, not an error
   (it's often legitimately the case after an edit/alias). */
.field-input.doc-mismatch[b-0gxyi0yvpv] {
    box-shadow: inset 0 -2px 0 0 #E8A838;
    background: rgba(232, 168, 56, 0.13);
    border-radius: 3px;
}

/* .field-note{,.match,.matching,.notfound,.failed,.retry-btn,.stage-tag} live in
   the global evie.css so Order Entry and AP share one match-note style. */

/* Six-input ship-to grid. Two columns on wide layouts; collapses to one
   column under ~520px. Line 1 + Line 2 span both columns. */
.shipto-grid[b-0gxyi0yvpv] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}

.shipto-grid .shipto-line1[b-0gxyi0yvpv],
.shipto-grid .shipto-line2[b-0gxyi0yvpv] {
    grid-column: 1 / -1;
}

@media (max-width: 520px) {
    .shipto-grid[b-0gxyi0yvpv] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/OrderEntry/Review/ReviewPartAliasDialog.razor.rz.scp.css */
/* Modal chrome + button styles, duplicated from the review page's scoped CSS —
   scoped styles don't cross component boundaries, and the global .modal-* /
   .btn styles (used by ConfirmDialog) are the dark-theme variants. */
.modal-overlay[b-mxgor8x7op] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 400;
}

.modal-card[b-mxgor8x7op] {
    background: #FFFFFF;
    border-radius: 10px;
    padding: 1.5rem;
    width: min(520px, 90vw);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.modal-title[b-mxgor8x7op] {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: #1A1A1A;
}

.modal-sub[b-mxgor8x7op] {
    margin: 0;
    font-size: 0.875rem;
    color: #4B5563;
    line-height: 1.5;
}

.modal-actions[b-mxgor8x7op] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

/* The checkbox list of corrections to remember. */
.part-alias-list[b-mxgor8x7op] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0.75rem 0 1rem;
    max-height: 40vh;
    overflow-y: auto;
}

.part-alias-row[b-mxgor8x7op] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    cursor: pointer;
    font-size: 0.875rem;
    line-height: 1.35;
}

.part-alias-row input[type="checkbox"][b-mxgor8x7op] {
    margin-top: 0.15rem;
    flex: 0 0 auto;
}

.part-alias-text .mono[b-mxgor8x7op] {
    font-family: var(--font-mono);
}

.btn[b-mxgor8x7op] {
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    border: 1px solid;
    transition: all 0.18s;
    white-space: nowrap;
    background: transparent;
}

.btn-ghost[b-mxgor8x7op] {
    color: #1A1A1A;
    border-color: #C8C8C8;
}

.btn-ghost:hover:not(:disabled)[b-mxgor8x7op] {
    border-color: #9CA3AF;
    color: #1A1A1A;
    background: #FAFAFA;
}

.btn-ghost:disabled[b-mxgor8x7op] {
    color: #B0B0B0;
    border-color: #ECECEC;
    cursor: not-allowed;
}

.btn-primary[b-mxgor8x7op] {
    background: #C06820;
    color: #FFF;
    border-color: #C06820;
    box-shadow: 0 3px 10px rgba(192, 104, 32, 0.22);
}

.btn-primary:hover:not(:disabled)[b-mxgor8x7op] {
    background: #A85818;
    box-shadow: 0 5px 16px rgba(192, 104, 32, 0.32);
    transform: translateY(-1px);
}

.btn-primary:disabled[b-mxgor8x7op] {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}
/* /Components/Pages/OrderEntry/Review/ReviewValidationSection.razor.rz.scp.css */
/* Validation cards */
.val-cards[b-43u43gmzza] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.val-card[b-43u43gmzza] {
    border: 1.5px solid;
    border-radius: 6px;
    padding: 0.75rem 0.875rem;
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
}

.val-card.acked[b-43u43gmzza] {
    opacity: 0.65;
}

/* Held in place while the check it depends on runs. Muted and inert so it reads
   as "not settled yet" rather than something to act on — but still occupying its
   space, so the list doesn't collapse and re-expand under the reviewer. */
.val-card.pending[b-43u43gmzza] {
    opacity: 0.5;
    filter: grayscale(0.7);
}

.val-card.pending .val-check[b-43u43gmzza] {
    cursor: progress;
}

.val-pending[b-43u43gmzza] {
    display: inline-flex;
    align-items: center;
    gap: 0.3125rem;
    margin-left: 0.5rem;
    font-size: 0.6875rem;
    font-weight: 400;
    text-transform: lowercase;
    letter-spacing: 0.02em;
    color: #6B6B6B;
}

.val-pending .dot[b-43u43gmzza] {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 50%;
    background: #9CA3AF;
    animation: match-pulse 1.4s ease-in-out infinite;
}

.val-card.acked .val-title[b-43u43gmzza] {
    text-decoration: line-through;
}

.val-check[b-43u43gmzza] {
    flex: 0 0 auto;
    margin-top: 0.1rem;
    display: inline-flex;
    cursor: pointer;
}

.val-check input[type="checkbox"][b-43u43gmzza] {
    width: 1rem;
    height: 1rem;
    margin: 0;
    cursor: pointer;
    accent-color: #B45309;
}

.val-check input[type="checkbox"]:disabled[b-43u43gmzza] {
    cursor: default;
}

.val-helper[b-43u43gmzza] {
    font-size: 0.75rem;
    color: #6B6B6B;
    font-style: italic;
    margin-top: 0.25rem;
}

.val-body[b-43u43gmzza] {
    flex: 1 1 auto;
    min-width: 0;
}

.val-card.warn[b-43u43gmzza] {
    border-color: #FCD34D;
    background: #FFFBEB;
}

.val-card.error[b-43u43gmzza] {
    border-color: #FECACA;
    background: #FEF2F2;
}

.val-card.info[b-43u43gmzza] {
    border-color: #E5E5E5;
    background: #FAFAFA;
}

.val-title[b-43u43gmzza] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #1A1A1A;
    margin-bottom: 0.2rem;
}

.val-text[b-43u43gmzza] {
    font-size: 0.75rem;
    color: #6B6B6B;
    line-height: 1.5;
}
/* /Components/Pages/OrderEntry/Sent.razor.rz.scp.css */
/* Page chrome for the Sent page. Section-specific styles live beside their
   components in ./Sent; primitives shared across sections (cards, buttons,
   match sub-lines, retry buttons, change rows) are kept here once and reach
   into the section components via ::deep from the page-rendered .sent-page
   wrapper (page-rendered elements match those rules too). */
.sent-page[b-xln5x4moxp] {
    width: 100%;
    padding-bottom: 3rem;
}

/* Base .oe-loading/.oe-empty is global (evie.css); only the page-specific
   empty-state heading margin stays scoped here. */
.oe-empty h2[b-xln5x4moxp] {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
}

/* Header */
.page-header[b-xln5x4moxp] {
    padding: 1.75rem 0 1.25rem;
}

.breadcrumb[b-xln5x4moxp] {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #9CA3AF;
    margin-bottom: 0.5rem;
    display: flex;
    gap: 0.375rem;
}

.breadcrumb a[b-xln5x4moxp] {
    color: #C06820;
    text-decoration: none;
}

.breadcrumb a:hover[b-xln5x4moxp] {
    text-decoration: underline;
}

.bc-sep[b-xln5x4moxp] {
    color: #9CA3AF;
}

.header-top[b-xln5x4moxp] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
}

.page-title[b-xln5x4moxp] {
    font-size: 1.375rem;
    font-weight: 400;
    color: #1A1A1A;
    line-height: 1.1;
    margin: 0 0 0.25rem 0;
}

.page-sub[b-xln5x4moxp] {
    font-size: 0.875rem;
    color: #6B6B6B;
    margin: 0;
}

.header-right[b-xln5x4moxp] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

/* Buttons — page-rendered and, via ::deep, the ones inside section components
   (retry buttons carry their own .match-retry-btn styling below). */
.btn[b-xln5x4moxp],
.sent-page[b-xln5x4moxp]  .btn {
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    border: 1px solid;
    transition: all 0.18s;
    white-space: nowrap;
    background: transparent;
}

.btn-sm[b-xln5x4moxp],
.sent-page[b-xln5x4moxp]  .btn-sm {
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
}

/* Active by default so Back to list / View Original don't read as disabled. */
.btn-ghost[b-xln5x4moxp],
.sent-page[b-xln5x4moxp]  .btn-ghost {
    color: #1A1A1A;
    border-color: #C8C8C8;
}

.btn-ghost:hover:not(:disabled)[b-xln5x4moxp],
.sent-page[b-xln5x4moxp]  .btn-ghost:hover:not(:disabled) {
    border-color: #9CA3AF;
    color: #1A1A1A;
    background: #FAFAFA;
}

.btn-ghost:disabled[b-xln5x4moxp],
.sent-page[b-xln5x4moxp]  .btn-ghost:disabled {
    color: #B0B0B0;
    border-color: #ECECEC;
    cursor: not-allowed;
}

.btn-outline[b-xln5x4moxp] {
    color: #C06820;
    border-color: #FCCF9A;
}

.btn-outline:hover[b-xln5x4moxp] {
    background: #FFF5EE;
    border-color: #C06820;
}

.btn-primary[b-xln5x4moxp],
.sent-page[b-xln5x4moxp]  .btn-primary {
    background: #C06820;
    color: #FFF;
    border-color: #C06820;
}

.btn-primary:hover[b-xln5x4moxp],
.sent-page[b-xln5x4moxp]  .btn-primary:hover {
    background: #A85818;
}

/* Pills (header processing status) */
.pill[b-xln5x4moxp] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    border-radius: 999px;
    padding: 0.25rem 0.75rem;
    font-size: 0.6875rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border: 1px solid;
}

.pill-dot[b-xln5x4moxp] {
    width: 5px;
    height: 5px;
    border-radius: 50%;
}

.pill-sent[b-xln5x4moxp] {
    color: #166534;
    background: #F0FDF4;
    border-color: #86EFAC;
}

.pill-sent .pill-dot[b-xln5x4moxp] { background: #16A34A; }

.pill-ready[b-xln5x4moxp] {
    color: #14532D;
    background: #F0FDF4;
    border-color: #86EFAC;
}

.pill-ready .pill-dot[b-xln5x4moxp] { background: #16A34A; }

.pill-review[b-xln5x4moxp] {
    color: #92400E;
    background: #FFFBEB;
    border-color: #FCD34D;
}

.pill-review .pill-dot[b-xln5x4moxp] { background: #D97706; }

.pill-failed[b-xln5x4moxp] {
    color: #DC2626;
    background: #FEF2F2;
    border-color: #FECACA;
}

.pill-failed .pill-dot[b-xln5x4moxp] { background: #DC2626; }

/* Match sub-lines — shared by the summary strip and the order overview. */
.sent-page[b-xln5x4moxp]  .sum-sub {
    font-size: 0.75rem;
    color: #9CA3AF;
    margin-top: 0.15rem;
}

.sent-page[b-xln5x4moxp]  .sum-sub.matched {
    color: #059669;
    font-weight: 500;
}

.sent-page[b-xln5x4moxp]  .sum-sub.matching {
    color: #6B6B6B;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.sent-page[b-xln5x4moxp]  .sum-sub.matching::before {
    content: "";
    width: 0.4375rem;
    height: 0.4375rem;
    border-radius: 50%;
    background: #9CA3AF;
    animation: sum-match-pulse-b-xln5x4moxp 1.4s ease-in-out infinite;
}

@keyframes sum-match-pulse-b-xln5x4moxp {
    0%, 100% { opacity: 0.35; }
    50% { opacity: 1; }
}

.sent-page[b-xln5x4moxp]  .sum-sub.failed {
    color: #B5443B;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.sent-page[b-xln5x4moxp]  .match-retry-btn {
    font-family: var(--font-sans);
    font-size: 0.6875rem;
    color: #C06820;
    background: transparent;
    border: 1px solid #FCCF9A;
    border-radius: 0.375rem;
    padding: 0.0625rem 0.4375rem;
    cursor: pointer;
}

.sent-page[b-xln5x4moxp]  .match-retry-btn:hover {
    background: #FFF5EE;
    border-color: #C06820;
}

.sent-page[b-xln5x4moxp]  .match-retry-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

/* Stage suffix shown next to "Matched" — e.g. "(description, LIKE)".
   Dim and italic so the primary "Matched" text reads first. */
.sent-page[b-xln5x4moxp]  .cell-note .stage-tag,
.sent-page[b-xln5x4moxp]  .sum-sub .stage-tag {
    color: #9CA3AF;
    font-style: italic;
    margin-left: 0.25rem;
    font-weight: 400;
}

/* Post-send probe spinner — summary strip + per-line ERP column. */
.sent-page[b-xln5x4moxp]  .probe-spinner-sm {
    width: 10px;
    height: 10px;
    border: 2px solid #9CA3AF;
    border-top-color: transparent;
    border-radius: 50%;
    animation: probe-spin-b-xln5x4moxp 0.8s linear infinite;
    flex-shrink: 0;
}

@keyframes probe-spin-b-xln5x4moxp {
    to { transform: rotate(360deg); }
}

.sent-page[b-xln5x4moxp]  .muted {
    color: #9CA3AF;
}

/* Main layout */
.main[b-xln5x4moxp] {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 1.5rem;
    padding: 1.5rem 0 3rem;
    align-items: start;
    min-width: 0;
}

.left-col[b-xln5x4moxp],
.right-col[b-xln5x4moxp] {
    min-width: 0;
}

.left-col[b-xln5x4moxp],
.right-col[b-xln5x4moxp] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* Card — page-rendered (source document) and every section component. */
.sent-page[b-xln5x4moxp]  .card {
    background: #FFFFFF;
    border: 1.5px solid #E5E5E5;
    border-radius: 14px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.sent-page[b-xln5x4moxp]  .card-header {
    background: #FAFAFA;
    border-bottom: 1px solid #E5E5E5;
    padding: 0.85rem 1.15rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.sent-page[b-xln5x4moxp]  .card-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: #1A1A1A;
}

.sent-page[b-xln5x4moxp]  .card-sub {
    font-size: 0.75rem;
    color: #9CA3AF;
    margin-top: 0.1rem;
}

/* Change rows — shared by the flag history and review changes cards. */
.sent-page[b-xln5x4moxp]  .change-list {
    display: flex;
    flex-direction: column;
}

.sent-page[b-xln5x4moxp]  .change-row {
    padding: 0.75rem 1.25rem;
    border-top: 1px solid #F3F4F6;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sent-page[b-xln5x4moxp]  .change-row:first-child {
    border-top: none;
}

.sent-page[b-xln5x4moxp]  .change-row-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.sent-page[b-xln5x4moxp]  .change-kind {
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    border: 1px solid;
}

.sent-page[b-xln5x4moxp]  .change-kind.edit {
    color: #92400E;
    background: #FFFBEB;
    border-color: #FCD34D;
}

.sent-page[b-xln5x4moxp]  .change-kind.add {
    color: #14532D;
    background: #F0FDF4;
    border-color: #86EFAC;
}

.sent-page[b-xln5x4moxp]  .change-kind.remove {
    color: #DC2626;
    background: #FEF2F2;
    border-color: #FECACA;
}

.sent-page[b-xln5x4moxp]  .change-kind.flagged {
    color: #B91C1C;
    background: #FEF2F2;
    border-color: #FECACA;
}

.sent-page[b-xln5x4moxp]  .change-kind.resolved {
    color: #166534;
    background: #F0FDF4;
    border-color: #86EFAC;
}

.sent-page[b-xln5x4moxp]  .change-subject {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1A1A1A;
}

.sent-page[b-xln5x4moxp]  .change-row-body {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-mono);
    font-size: 0.8125rem;
}

.sent-page[b-xln5x4moxp]  .change-old {
    color: #9CA3AF;
    text-decoration: line-through;
}

.sent-page[b-xln5x4moxp]  .change-arrow {
    color: #9CA3AF;
}

.sent-page[b-xln5x4moxp]  .change-new {
    color: #1A1A1A;
    font-weight: 500;
}

.sent-page[b-xln5x4moxp]  .change-row-meta {
    font-size: 0.75rem;
    color: #9CA3AF;
}

/* Attachment (source document card — page-rendered) */
.attachment-row[b-xln5x4moxp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.875rem 1.25rem;
}

.att-left[b-xln5x4moxp] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.att-icon[b-xln5x4moxp] {
    width: 40px;
    height: 40px;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    border: 1px solid #FCCF9A;
    color: #C06820;
    background: #FFF5EE;
}

.att-name[b-xln5x4moxp] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1A1A1A;
}

.att-meta[b-xln5x4moxp] {
    font-size: 0.75rem;
    color: #9CA3AF;
    margin-top: 0.15rem;
}

/* Toast */
.toast[b-xln5x4moxp] {
    position: fixed;
    bottom: 32px;
    left: 50%;
    transform: translateX(-50%);
    background: #1A1A1A;
    color: #FFFFFF;
    padding: 0.75rem 1.25rem;
    border-radius: 8px;
    font-size: 0.875rem;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
    z-index: 300;
}

@media (max-width: 1024px) {
    .main[b-xln5x4moxp] {
        grid-template-columns: 1fr;
    }
}

/* Why Resend is (temporarily) unavailable on a failed order — the staging
   double-push guard's explanation to the reviewer. */
.resend-guard-note[b-xln5x4moxp] {
    margin: 0.75rem 1.75rem 0;
    padding: 0.625rem 0.875rem;
    border-radius: 0.5rem;
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    line-height: 1.4;
}

.resend-guard-block[b-xln5x4moxp] {
    background: #FFF7ED;
    border: 1px solid #FED7AA;
    color: #9A3412;
}

.resend-guard-pending[b-xln5x4moxp] {
    background: #FAFAFA;
    border: 1px solid #E5E7EB;
    color: #6B7280;
}
/* /Components/Pages/OrderEntry/Sent/SentFlagHistory.razor.rz.scp.css */
/* Flag history rows reuse the shared .change-* suite from the page CSS;
   only the note body is specific to this card. */
.flag-row-note[b-3s2ylgekq4] {
    font-size: 0.8125rem;
    color: #1A1A1A;
    white-space: pre-wrap;
}
/* /Components/Pages/OrderEntry/Sent/SentLineItems.razor.rz.scp.css */
/* Read-only line items table with per-cell match notes and the ERP probe
   column. Retry buttons / stage tags / spinner come from the page CSS. */
.line-table-wrap[b-39g8illbar] {
    overflow-x: auto;
}

.po-line-table[b-39g8illbar] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.po-line-table th[b-39g8illbar] {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #9CA3AF;
    padding: 0.6rem 0.75rem;
    text-align: left;
    font-weight: 500;
    background: #FAFAFA;
    border-bottom: 1px solid #E5E5E5;
    border-top: 1px solid #F3F4F6;
}

.po-line-table td[b-39g8illbar] {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid #F3F4F6;
    vertical-align: top;
}

.po-line-table tbody tr:last-child td[b-39g8illbar] {
    border-bottom: none;
}

.mono[b-39g8illbar] {
    font-family: var(--font-mono);
    font-size: 0.8125rem;
}

.dim[b-39g8illbar] {
    color: #9CA3AF;
}

.empty-lines[b-39g8illbar] {
    padding: 0.875rem 1.25rem;
    color: #9CA3AF;
    font-size: 0.875rem;
}

/* Per-line match indicator inside a table cell. Mirrors the .field-note
   variants on Review but smaller-footprint to fit in a cell. */
.cell-note[b-39g8illbar] {
    font-size: 0.6875rem;
    margin-top: 0.25rem;
    line-height: 1.1;
}

.cell-note.match[b-39g8illbar] {
    color: #059669;
}

.cell-note.matching[b-39g8illbar] {
    color: #6B6B6B;
    display: inline-flex;
    align-items: center;
    gap: 0.3125rem;
}

.cell-note.matching .dot[b-39g8illbar] {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 50%;
    background: #9CA3AF;
    animation: sum-match-pulse 1.4s ease-in-out infinite;
}

.cell-note.notfound[b-39g8illbar] {
    color: #9CA3AF;
}

.cell-note.failed[b-39g8illbar] {
    color: #B5443B;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    flex-wrap: wrap;
}

/* Per-line ERP reference rendered under the line number cell. Mirrors the
   header's .sum-erp colour (warm amber) so reviewers visually link the two
   "this came from the ERP" markers. */
.cell-note.erp-ref[b-39g8illbar] {
    color: #D97706;
    font-weight: 600;
    margin-top: 0.25rem;
}

/* Per-row line-probe indicator. */
.line-erp-col[b-39g8illbar] {
    width: 110px;
    white-space: nowrap;
}

.line-erp-cell[b-39g8illbar] {
    white-space: nowrap;
}

/* Match the header indicator's treatment: text-only colored ink, no
   pill/background. Light tinted backgrounds were muting the red/green
   in busy table rows. Same color values as .probe-inline so the lines
   read as visually consistent with the ERP Status sub-line. */
.line-erp-tag[b-39g8illbar] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.line-erp-tag.line-erp-pending[b-39g8illbar] { color: #6B7280; }
.line-erp-tag.line-erp-ok[b-39g8illbar]      { color: #16A34A; }
.line-erp-tag.line-erp-missing[b-39g8illbar] { color: #DC2626; }
.line-erp-tag.line-erp-warn[b-39g8illbar]    { color: #B45309; cursor: help; }
/* /Components/Pages/OrderEntry/Sent/SentOrderOverview.razor.rz.scp.css */
/* Order overview field grid. Match sub-lines (.sum-sub*) come from the page
   CSS under ::deep. */
.fields-grid[b-t41s8q8fih] {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.field-cell[b-t41s8q8fih] {
    padding: 0.7rem 0.9rem;
    border-bottom: 0.5px solid #F3F4F6;
    border-right: 0.5px solid #F3F4F6;
}

.field-cell:nth-child(2n)[b-t41s8q8fih] {
    border-right: none;
}

.field-cell.full[b-t41s8q8fih] {
    grid-column: 1 / -1;
    border-right: none;
}

.field-cell:nth-last-child(-n+2)[b-t41s8q8fih] {
    border-bottom: none;
}

.f-label[b-t41s8q8fih] {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #9CA3AF;
    margin-bottom: 0.25rem;
    font-weight: 500;
}

.f-val[b-t41s8q8fih] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1A1A1A;
}

.f-val.muted[b-t41s8q8fih] {
    color: #9CA3AF;
}

/* Multi-line ship-to block render. Stacks each non-blank address part on
   its own line. */
.shipto-block > div[b-t41s8q8fih] {
    line-height: 1.4;
}
/* /Components/Pages/OrderEntry/Sent/SentProcessingDetails.razor.rz.scp.css */
/* Who/when audit rows. */
.audit-row[b-us8lmfi6ax] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 1.25rem;
    border-bottom: 0.5px solid #F3F4F6;
    gap: 0.75rem;
}

.audit-row:last-child[b-us8lmfi6ax] {
    border-bottom: none;
}

.audit-key[b-us8lmfi6ax] {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #9CA3AF;
    font-weight: 500;
}

.audit-val[b-us8lmfi6ax] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1A1A1A;
    text-align: right;
}
/* /Components/Pages/OrderEntry/Sent/SentResendDialog.razor.rz.scp.css */
/* Resend confirmation modal. Buttons come from the page CSS under ::deep. */
.modal-overlay[b-xv1a916qct] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 400;
}

.modal-card[b-xv1a916qct] {
    background: #FFFFFF;
    border-radius: 10px;
    padding: 1.5rem;
    width: min(520px, 90vw);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.modal-title[b-xv1a916qct] {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: #1A1A1A;
}

.modal-sub[b-xv1a916qct] {
    margin: 0;
    font-size: 0.875rem;
    color: #4B5563;
    line-height: 1.5;
}

.modal-sub p[b-xv1a916qct] {
    margin: 0;
}

.modal-actions[b-xv1a916qct] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.25rem;
}
/* /Components/Pages/OrderEntry/Sent/SentReviewChanges.razor.rz.scp.css */
/* Review changes rows reuse the shared .change-* suite from the page CSS;
   only the empty state is specific to this card. */
.empty-changes[b-l9d72khk0s] {
    padding: 0.875rem 1.25rem;
    color: #9CA3AF;
    font-size: 0.875rem;
}
/* /Components/Pages/OrderEntry/Sent/SentSummaryStrip.razor.rz.scp.css */
/* Summary strip cards. Match sub-lines (.sum-sub*) and the probe spinner are
   shared with other sections and live in the page CSS under ::deep. */
/* Reads as a card (full border, 14px radius, the same soft shadow as .card) while
   keeping the banner's own divided-columns layout and #FAFAFA fill — it was a
   full-bleed rule-under-a-strip, which sat oddly above the rounded cards below it.
   overflow-x:auto already clips to the padding box, so the radius holds when the
   columns overflow on a narrow viewport. */
.summary-strip[b-im5gpdrtkx] {
    padding: 1rem 1.25rem;
    border: 1.5px solid #E5E5E5;
    border-radius: 14px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    background: #FAFAFA;
    display: flex;
    align-items: stretch;
    overflow-x: auto;
}

.sum-card[b-im5gpdrtkx] {
    padding: 0 1.75rem;
    border-right: 1px solid #E5E5E5;
    min-width: 130px;
}

/* Boxed now, so the first column sits inside the border rather than flush against
   the old full-bleed edge — the strip's own padding provides the inset. */
.sum-card:first-child[b-im5gpdrtkx] {
    padding-left: 0;
}

.sum-card:last-child[b-im5gpdrtkx] {
    border-right: none;
}

.sum-label[b-im5gpdrtkx] {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #9CA3AF;
    margin-bottom: 0.35rem;
    font-weight: 500;
}

.sum-val[b-im5gpdrtkx] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #1A1A1A;
    line-height: 1.2;
}

.sum-val-sm[b-im5gpdrtkx] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1A1A1A;
}

.sum-erp[b-im5gpdrtkx] {
    font-size: 0.875rem;
    color: #D97706;
    font-weight: 600;
}

/* Order-level probe — rendered as one extra sub-line inside the ERP
   Status sum-card. Severity class flips by status / outcome (see
   LineProbeSeverity() in Sent.Probes.cs). */
.probe-inline[b-im5gpdrtkx] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.15rem;
    font-size: 0.75rem;
    font-weight: 500;
}

.probe-inline.probe-pending[b-im5gpdrtkx] { color: #6B7280; }
.probe-inline.probe-ok[b-im5gpdrtkx]      { color: #16A34A; }
.probe-inline.probe-danger[b-im5gpdrtkx]  { color: #DC2626; }
.probe-inline.probe-warn[b-im5gpdrtkx]    { color: #B45309; cursor: help; }
/* /Components/Pages/OrderEntry/Sent/SentTimeline.razor.rz.scp.css */
/* Processing timeline. */
.timeline[b-5pieblt474] {
    display: flex;
    flex-direction: column;
    padding: 1rem 1.25rem;
}

.tl-item[b-5pieblt474] {
    display: flex;
    gap: 0.875rem;
    padding-bottom: 1.25rem;
}

.tl-item:last-child[b-5pieblt474] {
    padding-bottom: 0;
}

.tl-dot-wrap[b-5pieblt474] {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 20px;
    flex-shrink: 0;
}

.tl-dot[b-5pieblt474] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid;
}

.tl-dot.done[b-5pieblt474] {
    background: #16A34A;
    border-color: #16A34A;
}

.tl-dot.active[b-5pieblt474] {
    background: #C06820;
    border-color: #C06820;
}

.tl-dot.pending[b-5pieblt474] {
    background: #FFFFFF;
    border-color: #E5E5E5;
}

.tl-dot.failed[b-5pieblt474] {
    background: #DC2626;
    border-color: #DC2626;
}

.tl-line[b-5pieblt474] {
    width: 1.5px;
    background: #E5E5E5;
    flex: 1;
    margin-top: 0.125rem;
}

.tl-line.done[b-5pieblt474] {
    background: #86EFAC;
}

.tl-title[b-5pieblt474] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #1A1A1A;
    margin-bottom: 0.1rem;
    line-height: 1.2;
}

.tl-time[b-5pieblt474] {
    font-size: 0.75rem;
    color: #9CA3AF;
}

.tl-note[b-5pieblt474] {
    font-size: 0.75rem;
    color: #6B6B6B;
    margin-top: 0.2rem;
    line-height: 1.45;
}
/* /Components/Pages/Profile/Index.razor.rz.scp.css */
/* Page shell + sidebar for Profile & Settings. The panels live in ./Panels as
   separate components; primitives they share (section headers, cards, forms,
   tables, badges, small buttons) are kept here once and reach into the panel
   components via ::deep from the page-rendered .profile-panels wrapper. The
   moved-in admin panels (AI settings, Extraction logs, Tenant queries,
   Client app, Modules, Reset data) render outside that wrapper so they keep
   their own standalone styling.
   Panel-specific suites (toggles, map-rows, GL, invite/pagination) live in
   the panel's own scoped CSS. */
.profile-shell[b-map5i92ahg] {
    display: grid;
    grid-template-columns: 220px 1fr;
    /* 56px = the sticky .evie-header height. Keeping these in sync prevents the
       shell from pushing the document past the viewport (phantom scrollbar). */
    min-height: calc(100vh - 56px);
    background: var(--evie-bg);
    /* Cancel .evie-main / .evie-content padding so the sidebar goes edge-to-edge.
       Values must match MainLayout.razor.css. */
    margin: -2rem -2rem -3.5rem -2rem;
}

@media (min-width: 1280px) {
    .profile-shell[b-map5i92ahg] {
        margin-left: -3rem;
        margin-right: -3rem;
    }
}

.profile-sidebar[b-map5i92ahg] {
    border-right: 1px solid var(--evie-border);
    background: #FAFAFA;
    padding: 28px 0 0px;
    display: flex;
    flex-direction: column;
    position: sticky;
    /* Sit below the 56px sticky header — not under it — and only fill the space
       between the header and the fixed footer. Using 100vh here was the bug: a
       full-viewport sidebar stacked under a 56px header overflowed the page by
       exactly the header's height. The extra 36px keeps the sidebar (and its
       scrollbar) clear of the ~35px fixed .evie-footer instead of running
       behind it. */
    top: 56px;
    height: calc(100vh - 56px - 36px);
    overflow-y: auto;
}

/* Standard properties for Firefox */
aside.profile-sidebar[b-map5i92ahg] {
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
}

/* WebKit properties for Chrome/Safari/Edge */
aside.profile-sidebar[b-map5i92ahg]::-webkit-scrollbar {
    width: 6px;
}

aside.profile-sidebar[b-map5i92ahg]::-webkit-scrollbar-track {
    background: transparent;
}

aside.profile-sidebar[b-map5i92ahg]::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    border: 1px solid transparent;
    background-clip: content-box;
}

aside.profile-sidebar[b-map5i92ahg]::-webkit-scrollbar-thumb:hover {
    background-color: rgba(0, 0, 0, 0.3);
}

.sidebar-user[b-map5i92ahg] {
    padding: 0 20px 24px;
    border-bottom: 1px solid var(--evie-border);
    margin-bottom: 16px;
}

.user-avatar[b-map5i92ahg] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--evie-primary-muted);
    border: 2px solid rgba(192, 104, 32, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 500;
    color: var(--evie-primary);
    margin-bottom: 10px;
}

.user-name[b-map5i92ahg] {
    font-size: 13px;
    font-weight: 600;
    color: var(--evie-text);
}

.user-email[b-map5i92ahg] {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--evie-text-dim);
    margin-top: 2px;
}

.user-role[b-map5i92ahg] {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 8px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--evie-primary);
    background: var(--evie-primary-muted);
    border: 1px solid rgba(192, 104, 32, 0.3);
    padding: 2px 8px;
    border-radius: 999px;
    margin-top: 6px;
    font-weight: 500;
}

.nav-group[b-map5i92ahg] {
    margin-bottom: 6px;
}

.nav-group-label[b-map5i92ahg] {
    font-family: var(--font-mono);
    font-size: 8px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--evie-text-dim);
    padding: 8px 20px 4px;
    font-weight: 500;
}

.nav-item[b-map5i92ahg] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 20px;
    cursor: pointer;
    color: var(--evie-text-muted);
    /* <button> does not inherit typography from its parent by default
       — without these lines the button-based nav items render in the
       browser's default button font while <a class="nav-item"> renders
       in the page's Outfit. Force inheritance so both types match. */
    font-family: inherit;
    font-size: 13px;
    font-weight: 400;
    line-height: inherit;
    letter-spacing: inherit;
    position: relative;
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
    transition: background-color 120ms, color 120ms;
}

.nav-item svg[b-map5i92ahg] {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    color: var(--evie-text-dim);
}

.nav-item:hover[b-map5i92ahg] {
    background: var(--evie-secondary-hover);
    color: var(--evie-text);
}

.nav-item.active[b-map5i92ahg] {
    background: var(--evie-primary-muted);
    color: var(--evie-primary);
    font-weight: 600;
}

.nav-item.active svg[b-map5i92ahg] {
    color: var(--evie-primary);
}

.nav-item.active[b-map5i92ahg]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--evie-primary);
    border-radius: 0 2px 2px 0;
}

.nav-item-danger[b-map5i92ahg] {
    color: #B91C1C;
}

.nav-item-danger svg[b-map5i92ahg] {
    color: #B91C1C;
}

.nav-item-danger:hover[b-map5i92ahg] {
    background: #FEF2F2;
    color: #991B1B;
}

.profile-main[b-map5i92ahg] {
    padding: 36px 48px 60px;
}

/* ===== Shared panel primitives (::deep — rendered by the profile-native
   panel components and the page's own inline Company placeholder alike). == */

.profile-panels[b-map5i92ahg]  .section-eyebrow {
    font-family: var(--font-mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--evie-text-dim);
    margin-bottom: 6px;
    font-weight: 500;
}

.profile-panels[b-map5i92ahg]  .section-title {
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 700;
    color: var(--evie-text);
    margin: 0 0 4px 0;
}

.profile-panels[b-map5i92ahg]  .section-sub {
    font-size: 13px;
    font-weight: 300;
    color: var(--evie-text-muted);
    margin-bottom: 32px;
}

.profile-panels[b-map5i92ahg]  .card {
    background: var(--evie-surface);
    border: 1.5px solid var(--evie-border);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
    margin-bottom: 20px;
}

.profile-panels[b-map5i92ahg]  .card-header {
    background: #FAFAFA;
    border-bottom: 1px solid var(--evie-border);
    padding: 13px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.profile-panels[b-map5i92ahg]  .card-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--evie-text);
}

.profile-panels[b-map5i92ahg]  .card-sub-text {
    font-size: 11px;
    color: var(--evie-text-dim);
    font-weight: 300;
    margin-top: 1px;
}

.profile-panels[b-map5i92ahg]  .card-body {
    padding: 20px 22px;
}

.profile-panels[b-map5i92ahg]  .placeholder-body {
    color: var(--evie-text-dim);
    font-size: 12px;
    font-style: italic;
}

.profile-panels[b-map5i92ahg]  .form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.profile-panels[b-map5i92ahg]  .form-full {
    grid-column: 1 / -1;
}

.profile-panels[b-map5i92ahg]  .form-actions {
    margin-top: 20px;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.profile-panels[b-map5i92ahg]  .f-label {
    display: block;
    font-family: var(--font-mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--evie-text-dim);
    margin-bottom: 6px;
    font-weight: 500;
}

.profile-panels[b-map5i92ahg]  .f-input {
    width: 100%;
    border: 1.5px solid var(--evie-border);
    border-radius: 6px;
    padding: 9px 12px;
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--evie-text);
    background: var(--evie-surface);
    outline: none;
    transition: border-color 180ms, box-shadow 180ms;
}

.profile-panels[b-map5i92ahg]  .f-input:focus {
    border-color: var(--evie-primary);
    box-shadow: 0 0 0 3px rgba(192, 104, 32, 0.1);
}

.profile-panels[b-map5i92ahg]  .f-input:disabled {
    background: var(--evie-surface-hover);
    color: var(--evie-text-muted);
    cursor: not-allowed;
}

.profile-panels[b-map5i92ahg]  .f-input::placeholder {
    color: var(--evie-text-dim);
}

.profile-panels[b-map5i92ahg]  .f-select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M2 4l3 3 3-3' stroke='%239CA3AF' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
}

.profile-panels[b-map5i92ahg]  .btn-sm {
    padding: 6px 12px;
    font-size: 12px;
}

/* Active by default — muted ghost grey made enabled buttons look disabled. */
.profile-panels[b-map5i92ahg]  .btn-ghost {
    background: transparent;
    color: var(--evie-text);
    border: 1.5px solid #C8C8C8;
}

.profile-panels[b-map5i92ahg]  .btn-ghost:hover:not(:disabled) {
    color: var(--evie-text);
    border-color: #9CA3AF;
    background: var(--evie-surface-hover);
}

.profile-panels[b-map5i92ahg]  .btn-ghost:disabled {
    color: var(--evie-text-dim);
    border-color: var(--evie-border);
    cursor: not-allowed;
}

.profile-panels[b-map5i92ahg]  .users-action-message {
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 13px;
    margin-bottom: 14px;
    border: 1px solid;
}

.profile-panels[b-map5i92ahg]  .users-action-success {
    color: var(--evie-teal);
    background: rgba(45, 212, 191, 0.08);
    border-color: rgba(45, 212, 191, 0.25);
}

.profile-panels[b-map5i92ahg]  .users-action-error {
    color: var(--evie-coral);
    background: rgba(248, 113, 113, 0.08);
    border-color: rgba(248, 113, 113, 0.25);
}

.profile-panels[b-map5i92ahg]  .users-search {
    margin-bottom: 14px;
}

.profile-panels[b-map5i92ahg]  .users-loading {
    padding: 24px;
    text-align: center;
    color: var(--evie-text-dim);
    font-size: 13px;
}

.profile-panels[b-map5i92ahg]  .users-table-wrap {
    overflow-x: auto;
}

.profile-panels[b-map5i92ahg]  .users-table {
    width: 100%;
    border-collapse: collapse;
}

.profile-panels[b-map5i92ahg]  .users-table th {
    text-align: left;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 500;
    color: var(--evie-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    padding: 10px 12px;
    border-bottom: 1px solid var(--evie-border);
    white-space: nowrap;
}

.profile-panels[b-map5i92ahg]  .users-table td {
    padding: 12px;
    font-size: 13px;
    color: var(--evie-text-muted);
    border-bottom: 1px solid rgba(50, 55, 72, 0.4);
    vertical-align: middle;
}

.profile-panels[b-map5i92ahg]  .users-table tr:last-child td {
    border-bottom: none;
}

.profile-panels[b-map5i92ahg]  .users-table tr:hover td {
    background: var(--evie-surface);
}

.profile-panels[b-map5i92ahg]  .users-cell-strong {
    color: var(--evie-text);
    font-weight: 500;
}

.profile-panels[b-map5i92ahg]  .users-cell-dim {
    color: var(--evie-text-dim);
    font-size: 12px;
    white-space: nowrap;
}

.profile-panels[b-map5i92ahg]  .users-input-sm {
    padding: 4px 8px;
    font-size: 12px;
    width: 7rem;
    display: inline-block;
    margin-right: 4px;
}

.profile-panels[b-map5i92ahg]  .users-action-buttons {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

/* Status badges */
.profile-panels[b-map5i92ahg]  .status-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 9999px;
    font-size: 11px;
    font-weight: 500;
}

.profile-panels[b-map5i92ahg]  .status-active   { color: var(--evie-teal);     background: rgba(45, 212, 191, 0.12); }
.profile-panels[b-map5i92ahg]  .status-inactive { color: var(--evie-text-dim); background: rgba(100, 116, 139, 0.12); }

/* Small inline action buttons used in the panel tables.
   .btn / .btn-ghost come from the global stylesheet — these are size +
   semantic-tone modifiers only. */
.profile-panels[b-map5i92ahg]  .btn-xs {
    padding: 4px 8px;
    font-size: 11px;
    border-radius: 4px;
}

.profile-panels[b-map5i92ahg]  .btn-approve {
    color: var(--evie-teal);
    border: 1px solid rgba(45, 212, 191, 0.35);
    background: rgba(45, 212, 191, 0.1);
}

.profile-panels[b-map5i92ahg]  .btn-approve:hover:not(:disabled) {
    background: rgba(45, 212, 191, 0.2);
}

.profile-panels[b-map5i92ahg]  .btn-reject-hint {
    color: var(--evie-coral);
    border: 1px solid rgba(248, 113, 113, 0.35);
    background: transparent;
}

.profile-panels[b-map5i92ahg]  .btn-reject-hint:hover:not(:disabled) {
    background: rgba(248, 113, 113, 0.1);
}
/* /Components/Pages/Profile/Panels/ProfileAiSettingsPanel.razor.rz.scp.css */
/* Panel-specific only. The shared admin-panel primitives (.card padding,
   .section-title, .settings-grid, .setting-group, .toggle-grid, .data-table,
   .hint-text, .action-bar, the state classes) live in wwwroot/css/admin-panels.css
   under .admin-panel, so every moved-in panel gets them — not just this one. */

.cost-grid[b-2t0m8pwf2c] { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.cost-card[b-2t0m8pwf2c] { display: flex; flex-direction: column; gap: 0.25rem; padding: 1rem; background: var(--evie-surface); border-radius: 0.375rem; }
.cost-label[b-2t0m8pwf2c] { font-size: 0.75rem; font-weight: 500; color: var(--evie-text-dim); text-transform: uppercase; letter-spacing: 0.05em; }
.cost-value[b-2t0m8pwf2c] { font-size: 1.5rem; font-weight: 500; color: var(--evie-text); }
/* /Components/Pages/Profile/Panels/ProfileApiKeysPanel.razor.rz.scp.css */
/* Just-issued key flash (moved from the page CSS with the API keys panel). */
.temp-password-display[b-uezvta8ke4] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    margin-top: 14px;
    background: rgba(99, 102, 241, 0.06);
    border: 1px solid rgba(99, 102, 241, 0.2);
    border-radius: 6px;
}

.temp-password-value[b-uezvta8ke4] {
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--evie-text);
}
/* /Components/Pages/Profile/Panels/ProfileClientAppPanel.razor.rz.scp.css */
/* Lifted out of an inline <style> block in the .razor, which was global — generic
   names like `.btn-sm` and `.slug` were leaking to every page in the app. Same
   treatment as ProfileTenantQueriesPanel.

   Panel-specific only: the shared admin-panel primitives live in
   wwwroot/css/admin-panels.css. */

.tol-input[b-c8fyoxcxv5] { width: 5rem; text-align: right; font-variant-numeric: tabular-nums; }
.tol-sep[b-c8fyoxcxv5] { color: var(--evie-text-muted, #9aa3b2); }
.slug[b-c8fyoxcxv5] { color: var(--evie-text-muted, #9aa3b2); font-size: 0.85rem; }
.btn-sm[b-c8fyoxcxv5] { padding: 0.25rem 0.625rem; font-size: 0.85rem; }
.badge-uptodate[b-c8fyoxcxv5] { display: inline-block; margin-left: 0.4rem; padding: 0.05rem 0.45rem; font-size: 0.7rem; border-radius: 0.25rem; background: rgba(72, 187, 120, 0.15); color: #68d391; }
.confirm-inline[b-c8fyoxcxv5] { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; color: var(--evie-text-muted, #9aa3b2); }
.upload-block[b-c8fyoxcxv5] { margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid var(--evie-border, rgba(255,255,255,0.08)); }
.upload-row[b-c8fyoxcxv5] { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.5rem; }
.version-input[b-c8fyoxcxv5] { max-width: 180px; }
.erp-mode-select[b-c8fyoxcxv5] { max-width: 160px; padding: 0.25rem 0.5rem; font-size: 0.85rem; }

/* Styled stand-in for the browser's "Choose File" button. The real input stays in
   the DOM (hidden) so the label activates it and Blazor's InputFile change event
   still fires — the file name is echoed in the hint under the row. */
.file-picker[b-c8fyoxcxv5] {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.875rem;
    font-size: 0.85rem;
    color: var(--evie-text);
    background: var(--evie-surface);
    border: 1px solid var(--evie-border);
    border-radius: 0.375rem;
    cursor: pointer;
    transition: background 150ms, border-color 150ms;
}

.file-picker:hover[b-c8fyoxcxv5] {
    border-color: var(--evie-primary);
}

.file-picker[b-c8fyoxcxv5]  input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

/* The real input is visually hidden, so keyboard focus needs its own cue. */
.file-picker:focus-within[b-c8fyoxcxv5] {
    outline: 2px solid var(--evie-primary);
    outline-offset: 2px;
}
/* /Components/Pages/Profile/Panels/ProfileCompaniesPanel.razor.rz.scp.css */
/* Companies panel specifics. Card / table / form primitives come from the page
   CSS (Index.razor.css) under ::deep; the one-time-secret displays are copied
   from the API keys and users panels because their CSS is component-scoped. */
.temp-password-display[b-h1w1i3riuq] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    margin-top: 14px;
    background: rgba(99, 102, 241, 0.06);
    border: 1px solid rgba(99, 102, 241, 0.2);
    border-radius: 6px;
}

.temp-password-value[b-h1w1i3riuq] {
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--evie-text);
}

.invite-link-row[b-h1w1i3riuq] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
}

.invite-link-input[b-h1w1i3riuq] {
    flex: 1 1 auto;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px;
}

.companies-check[b-h1w1i3riuq] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    font-size: 13px;
    color: var(--evie-text-muted);
    cursor: pointer;
}

.companies-actions[b-h1w1i3riuq] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 1.5rem;
}

.f-hint[b-h1w1i3riuq] {
    margin-top: 6px;
    font-size: 12px;
    color: var(--evie-text-dim);
}

.f-hint-error[b-h1w1i3riuq] {
    color: var(--evie-coral);
}
/* /Components/Pages/Profile/Panels/ProfileExtractionLogsPanel.razor.rz.scp.css */
/* Panel-specific only — the shared admin-panel primitives live in
   wwwroot/css/admin-panels.css under .admin-panel. The .data-table override
   below is deliberate: this table has far more columns than the others and
   needs tighter cells than the shared padding gives. */

.filter-bar[b-p7h06xd9qa] { margin-bottom: 1rem; }
.filter-grid[b-p7h06xd9qa] { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0.75rem; margin-bottom: 0.75rem; }
.filter-field[b-p7h06xd9qa] { display: flex; flex-direction: column; gap: 0.25rem; }
.result-count[b-p7h06xd9qa] { font-size: 0.75rem; color: var(--evie-text-dim); margin-bottom: 0.75rem; }

.clickable-row[b-p7h06xd9qa] { cursor: pointer; }
.clickable-row:hover td[b-p7h06xd9qa] { background-color: var(--evie-surface); }

.phase-badge[b-p7h06xd9qa] { display: inline-block; padding: 0.125rem 0.5rem; border-radius: 0.25rem; font-size: 0.6875rem; font-weight: 500; }
.phase-primary[b-p7h06xd9qa] { color: var(--evie-indigo); background: rgba(99, 102, 241, 0.1); }
.phase-escalation[b-p7h06xd9qa] { color: var(--evie-amber); background: rgba(251, 191, 36, 0.1); }
.phase-verification[b-p7h06xd9qa] { color: var(--evie-teal); background: rgba(45, 212, 191, 0.1); }
.phase-mathretry[b-p7h06xd9qa] { color: var(--evie-coral); background: rgba(248, 113, 113, 0.1); }

.confidence-indicator[b-p7h06xd9qa] { font-size: 0.6875rem; font-weight: 500; padding: 0.125rem 0.375rem; border-radius: 0.25rem; }
.confidence-high[b-p7h06xd9qa] { color: var(--evie-teal); background: rgba(45, 212, 191, 0.1); }
.confidence-medium[b-p7h06xd9qa] { color: var(--evie-amber); background: rgba(251, 191, 36, 0.1); }
.confidence-low[b-p7h06xd9qa] { color: var(--evie-coral); background: rgba(248, 113, 113, 0.1); }

.detail-row td[b-p7h06xd9qa] { background: var(--evie-surface) !important; }
.detail-content[b-p7h06xd9qa] { padding: 0.75rem; display: flex; flex-direction: column; gap: 0.5rem; }
.detail-item[b-p7h06xd9qa] { font-size: 0.8125rem; color: var(--evie-text-muted); }
.detail-label[b-p7h06xd9qa] { font-weight: 500; color: var(--evie-text); margin-right: 0.375rem; }
.field-list[b-p7h06xd9qa] { display: flex; flex-wrap: wrap; gap: 0.375rem; margin-top: 0.375rem; }
.field-chip[b-p7h06xd9qa] { display: inline-block; padding: 0.125rem 0.5rem; border-radius: 0.25rem; font-size: 0.6875rem; background: rgba(100, 116, 139, 0.1); color: var(--evie-text-dim); }
.field-corrected[b-p7h06xd9qa] { background: rgba(251, 191, 36, 0.1); color: var(--evie-amber); }

.pagination[b-p7h06xd9qa] { display: flex; align-items: center; justify-content: center; gap: 1rem; padding: 1rem 0 0.5rem; }
.page-info[b-p7h06xd9qa] { font-size: 0.75rem; color: var(--evie-text-dim); }
.btn-xs[b-p7h06xd9qa] { padding: 0.1875rem 0.5rem; font-size: 0.6875rem; }

/* Tighter than the shared .data-table — this grid carries 9 columns. */
.data-table th[b-p7h06xd9qa] { padding: 0.625rem 0.75rem; }
.data-table td[b-p7h06xd9qa] { padding: 0.625rem 0.75rem; }
/* /Components/Pages/Profile/Panels/ProfileFieldMappingPanel.razor.rz.scp.css */
/* Compact 1-line column-mapping rows used by the Field Mapping panel. */
.map-row[b-em6qane2k1] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
    border-bottom: 1px solid var(--evie-border);
}

.map-row:last-child[b-em6qane2k1] {
    border-bottom: none;
}

.map-row .f-input[b-em6qane2k1] {
    margin: 0;
    box-sizing: border-box;
    /* Override the user-agent intrinsic min-width on form controls
       (selects size themselves to fit their widest option, which makes
       them wider than read-only divs in the same row otherwise). */
    min-width: 0;
}

.map-row-srctype[b-em6qane2k1] {
    flex: 0 0 110px;
}

.map-row-field[b-em6qane2k1] {
    flex: 1 1 140px;
}

.map-row-arrow[b-em6qane2k1] {
    color: var(--evie-text-muted);
    font-size: 16px;
    user-select: none;
}

.map-row-column[b-em6qane2k1] {
    flex: 1 1 140px;
}

/* Pin both the Remove button AND the "required" badge to the same fixed
   width so the flex remainder distributes identically across required vs.
   non-required rows — otherwise the wider "REQUIRED" badge eats into the
   row's flex budget and shifts the field columns left for required rows. */
.map-row-remove[b-em6qane2k1],
.map-row-required[b-em6qane2k1] {
    flex: 0 0 90px;
    box-sizing: border-box;
    text-align: center;
}

.map-row-remove[b-em6qane2k1] {
    color: #DC4A3A;
    border: 1.5px solid rgba(220, 74, 58, 0.4);
    background: transparent;
}

.map-row-remove:hover:not(:disabled)[b-em6qane2k1] {
    background: rgba(220, 74, 58, 0.08);
    border-color: #DC4A3A;
}

.map-row-required[b-em6qane2k1] {
    font-size: 11px;
    color: var(--evie-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Required-row read-only stand-in: matches the dimensions of an enabled
   <select.f-input.f-select> so the row aligns vertically with non-required
   rows. display: flex centers the text inside the div the same way a
   form control would. */
.map-row-readonly[b-em6qane2k1] {
    display: flex;
    align-items: center;
    background: var(--evie-surface-hover);
    color: var(--evie-text-muted);
    cursor: not-allowed;
}
/* /Components/Pages/Profile/Panels/ProfileGlAccountsPanel.razor.rz.scp.css */
/* GL accounts panel (chart of accounts, moved in from the standalone page). */
.gl-code[b-48bhhjm16q] { font-family: var(--font-mono); }

.gl-inline-edit[b-48bhhjm16q] { display: flex; align-items: center; gap: 0.375rem; }
.gl-actions[b-48bhhjm16q] { display: flex; gap: 0.375rem; }

.gl-active-badge[b-48bhhjm16q] {
    display: inline-block;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.6875rem;
    font-weight: 500;
}
.gl-active-yes[b-48bhhjm16q] { color: var(--evie-verified); background: var(--evie-verified-muted); }
.gl-active-no[b-48bhhjm16q] { color: var(--evie-text-dim); background: rgba(0, 0, 0, 0.05); }

.gl-add-row[b-48bhhjm16q] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--evie-border);
}
.gl-code-input[b-48bhhjm16q] { width: 9rem; font-family: var(--font-mono); }
.gl-desc-input[b-48bhhjm16q] { flex: 1; max-width: 24rem; }
.gl-empty[b-48bhhjm16q] { text-align: center; color: var(--evie-text-dim); }
/* /Components/Pages/Profile/Panels/ProfileModulesPanel.razor.rz.scp.css */
/* Panel-specific only — the shared admin-panel primitives live in
   wwwroot/css/admin-panels.css. */

.module-list[b-3itktm0u7v] {
    display: flex;
    flex-direction: column;
}

.module-row[b-3itktm0u7v] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.875rem 0;
    border-bottom: 1px solid var(--evie-border);
}

.module-row:last-child[b-3itktm0u7v] {
    border-bottom: none;
    padding-bottom: 0;
}

.module-row:first-child[b-3itktm0u7v] {
    padding-top: 0;
}

.module-info[b-3itktm0u7v] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.module-name[b-3itktm0u7v] {
    font-size: 0.875rem;
    color: var(--evie-text);
}

.module-status[b-3itktm0u7v] {
    font-size: 0.75rem;
    color: var(--evie-coral);
}

/* Switch — same geometry and motion as the Notifications panel's toggles, so the
   two settings surfaces read as one control set. */
.toggle[b-3itktm0u7v] {
    position: relative;
    width: 36px;
    height: 20px;
    flex-shrink: 0;
}

.toggle input[b-3itktm0u7v] {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-track[b-3itktm0u7v] {
    position: absolute;
    inset: 0;
    background: var(--evie-border);
    border-radius: 999px;
    cursor: pointer;
    transition: background 200ms;
}

.toggle input:checked + .toggle-track[b-3itktm0u7v] {
    background: var(--evie-primary);
}

.toggle-track[b-3itktm0u7v]::after {
    content: '';
    position: absolute;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #FFF;
    top: 3px;
    left: 3px;
    transition: transform 200ms;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

.toggle input:checked + .toggle-track[b-3itktm0u7v]::after {
    transform: translateX(16px);
}

.toggle input:disabled + .toggle-track[b-3itktm0u7v] {
    cursor: not-allowed;
    opacity: 0.6;
}

/* Keyboard users get no focus cue otherwise — the real input is visually hidden. */
.toggle input:focus-visible + .toggle-track[b-3itktm0u7v] {
    outline: 2px solid var(--evie-primary);
    outline-offset: 2px;
}
/* /Components/Pages/Profile/Panels/ProfileNotificationsPanel.razor.rz.scp.css */
/* Toggle switches (moved from the page CSS with the notifications panel). */
.toggle-row[b-5dpdjb9uzy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid var(--evie-border);
}

.toggle-row:last-child[b-5dpdjb9uzy] {
    border-bottom: none;
}

.toggle-label[b-5dpdjb9uzy] {
    font-size: 13px;
    font-weight: 500;
    color: var(--evie-text);
    margin-bottom: 2px;
}

.toggle-desc[b-5dpdjb9uzy] {
    font-size: 11px;
    color: var(--evie-text-muted);
    font-weight: 300;
}

.toggle[b-5dpdjb9uzy] {
    position: relative;
    width: 36px;
    height: 20px;
    flex-shrink: 0;
}

.toggle input[b-5dpdjb9uzy] {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-track[b-5dpdjb9uzy] {
    position: absolute;
    inset: 0;
    background: var(--evie-border);
    border-radius: 999px;
    cursor: pointer;
    transition: background 200ms;
}

.toggle input:checked + .toggle-track[b-5dpdjb9uzy] {
    background: var(--evie-primary);
}

.toggle-track[b-5dpdjb9uzy]::after {
    content: '';
    position: absolute;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #FFF;
    top: 3px;
    left: 3px;
    transition: transform 200ms;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

.toggle input:checked + .toggle-track[b-5dpdjb9uzy]::after {
    transform: translateX(16px);
}

.toggle input:disabled + .toggle-track[b-5dpdjb9uzy] {
    cursor: not-allowed;
    opacity: 0.6;
}
/* /Components/Pages/Profile/Panels/ProfileQueryConsolePanel.razor.rz.scp.css */
/* Scoped CSS follows the file that writes the element, so these rules are
   duplicated from ProfileTenantQueriesPanel.razor.css rather than shared — the
   console markup moved here when the tab was split, and a rule left behind in
   the other panel's sheet would not apply to it.

   Panel-specific only: .card / .setting-group / .input and the rest of the
   shared primitives come from wwwroot/css/admin-panels.css. */

.sql-editor[b-p15rargz7l] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.875rem; }

.console-db-toggle[b-p15rargz7l] { display: flex; gap: 1.25rem; margin-top: 0.35rem; }
.console-db-toggle label[b-p15rargz7l] { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.9rem; color: var(--evie-text-muted, #9aa3b2); }

.form-actions[b-p15rargz7l] { display: flex; gap: 0.5rem; margin-top: 1rem; }
.hint[b-p15rargz7l] { color: var(--evie-text-muted, #9aa3b2); font-size: 0.85rem; margin-top: 0.4rem; }
.validation-error[b-p15rargz7l] { white-space: pre-wrap; word-break: break-word; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.85rem; margin: 0.25rem 0 0; max-height: 240px; overflow: auto; }

.preview-status[b-p15rargz7l] { margin-top: 1rem; }
.preview-results[b-p15rargz7l] { margin-top: 1rem; }
.preview-table-scroll[b-p15rargz7l] { max-height: 420px; overflow: auto; border: 1px solid var(--evie-border, rgba(255,255,255,0.08)); border-radius: 0.375rem; }
.preview-table-scroll .data-table[b-p15rargz7l] { margin: 0; }
.preview-table-scroll th[b-p15rargz7l] { position: sticky; top: 0; background: var(--evie-surface, #1b2130); z-index: 1; }
/* /Components/Pages/Profile/Panels/ProfileResetDataPanel.razor.rz.scp.css */
/* Panel-specific only — the shared admin-panel primitives (.card padding,
   .section-title, the state classes) live in wwwroot/css/admin-panels.css. */

.summary-grid[b-b85aecyyh6] { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0.75rem; }
.summary-item[b-b85aecyyh6] { display: flex; justify-content: space-between; padding: 0.5rem 0.75rem; background: var(--evie-surface); border-radius: 0.375rem; }
.summary-label[b-b85aecyyh6] { font-size: 0.8125rem; color: var(--evie-text-muted); }
.summary-value[b-b85aecyyh6] { font-size: 0.8125rem; font-weight: 500; color: var(--evie-text); font-family: var(--evie-font-mono); }

.danger-card[b-b85aecyyh6] { border-left: 3px solid var(--evie-coral); }
.danger-title[b-b85aecyyh6] { color: var(--evie-coral); }
.danger-text[b-b85aecyyh6] { font-size: 0.8125rem; color: var(--evie-text-muted); margin-bottom: 1rem; }

.confirm-group[b-b85aecyyh6] { display: flex; flex-direction: column; gap: 0.375rem; margin-bottom: 1rem; max-width: 16rem; }
.confirm-input[b-b85aecyyh6] { font-family: var(--evie-font-mono); }

.btn-destructive[b-b85aecyyh6] { background: rgba(248, 113, 113, 0.15); color: var(--evie-coral); border: 1px solid rgba(248, 113, 113, 0.3); padding: 0.5rem 1rem; border-radius: 0.375rem; cursor: pointer; }
.btn-destructive:hover:not(:disabled)[b-b85aecyyh6] { background: rgba(248, 113, 113, 0.25); }
.btn-destructive:disabled[b-b85aecyyh6] { opacity: 0.5; cursor: not-allowed; }

.result-card[b-b85aecyyh6] { margin-top: 1rem; }

/* This one is a standalone block rather than an .action-message pill, so it
   keeps its own roomier padding on top of the shared error colours. */
.error-state[b-b85aecyyh6] { padding: 1rem; }

.deleted-list[b-b85aecyyh6] { display: flex; flex-direction: column; gap: 0.25rem; }
.deleted-item[b-b85aecyyh6] { font-size: 0.8125rem; color: var(--evie-text-muted); font-family: var(--evie-font-mono); }
/* /Components/Pages/Profile/Panels/ProfileTenantQueriesPanel.razor.rz.scp.css */
/* Lifted out of an inline <style> block in the .razor. That block was global —
   every rule here leaked to every page in the app — and it still couldn't style
   .card / .setting-group, because those come from the shared admin-panel sheet
   (wwwroot/css/admin-panels.css) which the panel wasn't opted into.

   Panel-specific only: the shared primitives live in admin-panels.css. */

.page-subtitle[b-ldyhqkkj9i] { color: var(--evie-text-muted, #9aa3b2); margin-bottom: 1.25rem; }
.sql-preview[b-ldyhqkkj9i] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 480px; }
.sql-editor[b-ldyhqkkj9i] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.875rem; }

.badge-configured[b-ldyhqkkj9i] { display: inline-block; padding: 0.1rem 0.5rem; font-size: 0.7rem; border-radius: 0.25rem; background: rgba(99, 179, 237, 0.15); color: #63b3ed; }
.badge-fallback[b-ldyhqkkj9i] { display: inline-block; padding: 0.1rem 0.5rem; font-size: 0.7rem; border-radius: 0.25rem; background: rgba(160, 174, 192, 0.12); color: #a0aec0; }
.badge-required[b-ldyhqkkj9i] { font-size: 0.7rem; padding: 0.05rem 0.45rem; border-radius: 0.25rem; background: rgba(245, 101, 101, 0.15); color: #fc8181; }
.badge-optional[b-ldyhqkkj9i] { font-size: 0.7rem; padding: 0.05rem 0.45rem; border-radius: 0.25rem; background: rgba(160, 174, 192, 0.12); color: #a0aec0; }

.form-actions[b-ldyhqkkj9i] { display: flex; gap: 0.5rem; margin-top: 1rem; }
.btn-sm[b-ldyhqkkj9i] { padding: 0.25rem 0.625rem; font-size: 0.85rem; }
.hint[b-ldyhqkkj9i] { color: var(--evie-text-muted, #9aa3b2); font-size: 0.85rem; margin-top: 0.4rem; }

.validation-result[b-ldyhqkkj9i] { display: flex; flex-direction: column; gap: 0.25rem; margin-bottom: 1rem; }
.validation-error[b-ldyhqkkj9i] { white-space: pre-wrap; word-break: break-word; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.85rem; margin: 0.25rem 0 0; max-height: 240px; overflow: auto; }

.expected-params-panel[b-ldyhqkkj9i],
.expected-cols-panel[b-ldyhqkkj9i] { margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid var(--evie-border, rgba(255,255,255,0.08)); }
.param-chips[b-ldyhqkkj9i] { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.25rem; }
.param-chip[b-ldyhqkkj9i] { padding: 0.2rem 0.55rem; font-size: 0.85rem; border-radius: 0.25rem; background: rgba(99, 179, 237, 0.12); color: #63b3ed; }
.param-chip code[b-ldyhqkkj9i] { background: none; padding: 0; color: inherit; }

.column-spec-list[b-ldyhqkkj9i] { list-style: none; padding: 0; margin: 0.25rem 0 0; display: flex; flex-direction: column; gap: 0.35rem; }
.column-spec[b-ldyhqkkj9i] { display: flex; gap: 0.5rem; align-items: baseline; flex-wrap: wrap; }
.column-spec-name code[b-ldyhqkkj9i] { background: rgba(99, 179, 237, 0.12); color: #63b3ed; padding: 0.1rem 0.4rem; border-radius: 0.25rem; }
.column-spec-purpose[b-ldyhqkkj9i] { color: var(--evie-text-muted, #9aa3b2); font-size: 0.85rem; flex: 1; min-width: 280px; }

.preview-panel[b-ldyhqkkj9i] { margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid var(--evie-border, rgba(255,255,255,0.08)); }
.preview-params[b-ldyhqkkj9i] { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem; }
.preview-param-row[b-ldyhqkkj9i] { display: flex; align-items: center; gap: 0.75rem; }
.preview-param-label[b-ldyhqkkj9i] { flex: 0 0 220px; }
.preview-param-label code[b-ldyhqkkj9i] { background: rgba(99, 179, 237, 0.12); color: #63b3ed; padding: 0.1rem 0.4rem; border-radius: 0.25rem; }
.preview-param-row .input[b-ldyhqkkj9i] { flex: 1; }
.preview-status[b-ldyhqkkj9i] { margin-top: 1rem; }
.preview-results[b-ldyhqkkj9i] { margin-top: 1rem; }
.preview-table-scroll[b-ldyhqkkj9i] { max-height: 420px; overflow: auto; border: 1px solid var(--evie-border, rgba(255,255,255,0.08)); border-radius: 0.375rem; }
.preview-table-scroll .data-table[b-ldyhqkkj9i] { margin: 0; }
.preview-table-scroll th[b-ldyhqkkj9i] { position: sticky; top: 0; background: var(--evie-surface, #1b2130); z-index: 1; }
/* /Components/Pages/Profile/Panels/ProfileUsersPanel.razor.rz.scp.css */
/* Users & roles panel specifics (invite link, pagination, module-role
   pickers, global-role badges). Table + form primitives shared with the
   other panels live in the page CSS (Index.razor.css) under ::deep. */
.invite-link-row[b-og8cj1t2u0] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
}

.invite-link-input[b-og8cj1t2u0] {
    flex: 1 1 auto;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px;
}

.users-module-roles[b-og8cj1t2u0] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.users-module-roles .users-input-sm[b-og8cj1t2u0] {
    width: 9.5rem;
    margin-right: 0;
}

.users-pagination[b-og8cj1t2u0] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 14px 0 4px;
}

.users-page-info[b-og8cj1t2u0] {
    font-size: 12px;
    color: var(--evie-text-dim);
}

/* Role badges */
.role-badge[b-og8cj1t2u0] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
}

.role-viewer[b-og8cj1t2u0]   { color: var(--evie-text-dim); background: rgba(100, 116, 139, 0.12); }
.role-reviewer[b-og8cj1t2u0] { color: var(--evie-teal);     background: rgba(45, 212, 191, 0.12); }
.role-admin[b-og8cj1t2u0]    { color: var(--evie-amber);    background: rgba(251, 191, 36, 0.12); }
.role-system[b-og8cj1t2u0]   { color: var(--evie-coral);    background: rgba(248, 113, 113, 0.12); }
/* /Components/Pages/SwitchCompany.razor.rz.scp.css */
.switch-company[b-norppybgfp] {
    max-width: 34rem;
    margin: 3rem auto;
}

.switch-company-title[b-norppybgfp] {
    font-weight: 500;
    font-size: 1.5rem;
    color: var(--evie-text);
    margin: 0 0 0.5rem;
}

.switch-company-sub[b-norppybgfp] {
    color: var(--evie-text-muted);
    font-size: 0.875rem;
    line-height: 1.6;
    margin: 0 0 2rem;
}

.switch-company-error[b-norppybgfp] {
    background: var(--evie-coral-muted);
    color: var(--evie-coral);
    border-radius: 6px;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    margin-bottom: 1.5rem;
}

.switch-company-empty[b-norppybgfp] {
    color: var(--evie-text-dim);
    font-size: 0.875rem;
}

.switch-company-list[b-norppybgfp] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.switch-company-option[b-norppybgfp] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    border: 1px solid var(--evie-border);
    border-radius: 8px;
    background: var(--evie-card);
    cursor: pointer;
}

.switch-company-option:hover[b-norppybgfp] {
    background: var(--evie-surface-hover);
}

.switch-company-option.is-current[b-norppybgfp] {
    border-color: var(--evie-primary);
}

.switch-company-label[b-norppybgfp] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    flex: 1;
    min-width: 0;
}

.switch-company-name[b-norppybgfp] {
    color: var(--evie-text);
    font-size: 0.9375rem;
}

.switch-company-slug[b-norppybgfp] {
    color: var(--evie-text-dim);
    font-family: var(--evie-font-mono);
    font-size: 0.75rem;
}

.switch-company-tag[b-norppybgfp] {
    color: var(--evie-text-muted);
    background: var(--evie-surface-hover);
    border-radius: 999px;
    padding: 0.125rem 0.625rem;
    font-size: 0.6875rem;
    letter-spacing: 0.02em;
}

.switch-company-tag-current[b-norppybgfp] {
    color: var(--evie-primary);
    background: var(--evie-primary-muted);
}

.switch-company-actions[b-norppybgfp] {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-top: 2rem;
}

.switch-company-submit[b-norppybgfp] {
    background: var(--evie-primary);
    color: #FFFFFF;
    border: none;
    border-radius: 6px;
    padding: 0.625rem 1.5rem;
    font-size: 0.875rem;
    cursor: pointer;
}

.switch-company-submit:hover[b-norppybgfp] {
    background: var(--evie-primary-hover);
}

.switch-company-cancel[b-norppybgfp] {
    color: var(--evie-text-muted);
    font-size: 0.875rem;
}
/* /Components/Pages/Vault/DocumentDetail.razor.rz.scp.css */
.page-header[b-fttroignkk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.section-title[b-fttroignkk] {
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--evie-text);
    margin-bottom: 0.75rem;
}

.detail-grid[b-fttroignkk] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.meta-form[b-fttroignkk] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.form-field[b-fttroignkk] { display: flex; flex-direction: column; gap: 0.25rem; }
.form-actions[b-fttroignkk] { display: flex; gap: 0.5rem; }

.meta-info[b-fttroignkk] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--evie-border);
}

.meta-item[b-fttroignkk] {
    font-size: 0.75rem;
    color: var(--evie-text-dim);
}

.status-badge[b-fttroignkk] {
    display: inline-block;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.6875rem;
    font-weight: 500;
}

.status-uploaded[b-fttroignkk] { color: var(--evie-text-dim); background: rgba(100, 116, 139, 0.1); }
.status-stamped[b-fttroignkk] { color: var(--evie-teal); background: rgba(45, 212, 191, 0.1); }
.status-archived[b-fttroignkk] { color: var(--evie-indigo); background: rgba(99, 102, 241, 0.1); }

.stamp-apply[b-fttroignkk] {
    display: flex;
    gap: 0.75rem;
    align-items: flex-end;
    margin-bottom: 1rem;
}

.stamp-type-badge[b-fttroignkk] {
    display: inline-block;
    padding: 0.125rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--evie-indigo);
    background: rgba(99, 102, 241, 0.1);
}

.action-message[b-fttroignkk] { padding: 0.75rem 1rem; margin-top: 1rem; border-radius: 0.375rem; font-size: 0.8125rem; }
.success-state[b-fttroignkk] { color: var(--evie-teal); background: rgba(45, 212, 191, 0.1); }
.error-state[b-fttroignkk] { color: var(--evie-coral); background: rgba(248, 113, 113, 0.1); }
.empty-state[b-fttroignkk] { padding: 2rem; text-align: center; color: var(--evie-text-dim); font-size: 0.875rem; }
.data-table th[b-fttroignkk] { text-align: left; font-size: 0.75rem; font-weight: 500; color: var(--evie-text-dim); text-transform: uppercase; letter-spacing: 0.05em; padding: 0.625rem 1rem; border-bottom: 1px solid var(--evie-border); }
.data-table td[b-fttroignkk] { padding: 0.75rem 1rem; font-size: 0.8125rem; color: var(--evie-text-muted); border-bottom: 1px solid rgba(50, 55, 72, 0.5); }
.data-table tr:last-child td[b-fttroignkk] { border-bottom: none; }

.loading-state[b-fttroignkk] { display: flex; align-items: center; justify-content: center; gap: 0.625rem; padding: 2rem; font-size: 0.875rem; color: var(--evie-text-dim); }
/* /Components/Pages/Vault/Index.razor.rz.scp.css */
.page-header[b-2be6jlniiu] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.section-title[b-2be6jlniiu] { font-size: 0.9375rem; font-weight: 500; color: var(--evie-text); margin-bottom: 0.75rem; }

.upload-card[b-2be6jlniiu] { margin-bottom: 1rem; }
.upload-form[b-2be6jlniiu] { display: flex; flex-direction: column; gap: 0.75rem; }
.form-field[b-2be6jlniiu] { display: flex; flex-direction: column; gap: 0.25rem; }
.file-info[b-2be6jlniiu] { font-size: 0.75rem; color: var(--evie-text-dim); }

.search-bar[b-2be6jlniiu] { display: flex; gap: 0.75rem; margin-bottom: 1rem; }
.search-input[b-2be6jlniiu] { flex: 1; }
.status-filter[b-2be6jlniiu] { width: 10rem; }

.clickable-row[b-2be6jlniiu] { cursor: pointer; }
.clickable-row:hover td[b-2be6jlniiu] { background-color: var(--evie-surface); }

.status-badge[b-2be6jlniiu] { display: inline-block; padding: 0.125rem 0.5rem; border-radius: 9999px; font-size: 0.6875rem; font-weight: 500; }
.status-uploaded[b-2be6jlniiu] { color: var(--evie-text-dim); background: rgba(100, 116, 139, 0.1); }
.status-stamped[b-2be6jlniiu] { color: var(--evie-teal); background: rgba(45, 212, 191, 0.1); }
.status-archived[b-2be6jlniiu] { color: var(--evie-indigo); background: rgba(99, 102, 241, 0.1); }

.action-message[b-2be6jlniiu] { padding: 0.75rem 1rem; margin-bottom: 1rem; border-radius: 0.375rem; font-size: 0.8125rem; }
.success-state[b-2be6jlniiu] { color: var(--evie-teal); background: rgba(45, 212, 191, 0.1); }
.error-state[b-2be6jlniiu] { color: var(--evie-coral); background: rgba(248, 113, 113, 0.1); }
.empty-state[b-2be6jlniiu] { padding: 2rem; text-align: center; color: var(--evie-text-dim); font-size: 0.875rem; }

.pagination[b-2be6jlniiu] { display: flex; align-items: center; justify-content: center; gap: 1rem; padding: 1rem 0 0.5rem; }
.page-info[b-2be6jlniiu] { font-size: 0.75rem; color: var(--evie-text-dim); }
.btn-xs[b-2be6jlniiu] { padding: 0.1875rem 0.5rem; font-size: 0.6875rem; }
.data-table th[b-2be6jlniiu] { text-align: left; font-size: 0.75rem; font-weight: 500; color: var(--evie-text-dim); text-transform: uppercase; letter-spacing: 0.05em; padding: 0.625rem 1rem; border-bottom: 1px solid var(--evie-border); }
.data-table td[b-2be6jlniiu] { padding: 0.75rem 1rem; font-size: 0.8125rem; color: var(--evie-text-muted); border-bottom: 1px solid rgba(50, 55, 72, 0.5); }
.data-table tr:last-child td[b-2be6jlniiu] { border-bottom: none; }

.loading-state[b-2be6jlniiu] { display: flex; align-items: center; justify-content: center; gap: 0.625rem; padding: 2rem; font-size: 0.875rem; color: var(--evie-text-dim); }
/* /Components/Shared/AppFooter.razor.rz.scp.css */
.evie-footer[b-2kxdq08pul] {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 40;
    background-color: #FFFFFF;
    border-top: 1px solid #E5E5E5;
    padding: 0.5rem 1rem;
    font-size: 0.75rem;
    color: #9CA3AF;
    display: flex;
    align-items: center;
}

.evie-footer-deploy[b-2kxdq08pul] {
    flex: 1;
    text-align: left;
}

.evie-footer-center[b-2kxdq08pul] {
    flex: 1;
    text-align: center;
}

.evie-footer-spacer[b-2kxdq08pul] {
    flex: 1;
}

.evie-footer-brand[b-2kxdq08pul] {
    font-weight: 500;
    color: #6B6B6B;
}
/* /Components/Shared/DocumentReclassifyControl.razor.rz.scp.css */
.reclassify-control[b-5agy03k80i] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.reclassify-label[b-5agy03k80i] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--evie-text-muted);
}

.reclassify-row[b-5agy03k80i] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.reclassify-select[b-5agy03k80i] {
    min-width: 0;
    flex: 1;
}

.reclassify-hint[b-5agy03k80i] {
    font-size: 0.75rem;
    color: var(--evie-text-muted);
    margin: 0;
}

.reclassify-error[b-5agy03k80i] {
    color: var(--evie-coral, #c0392b);
    font-size: 0.8125rem;
    margin: 0;
}
/* /Components/Shared/DropZone.razor.rz.scp.css */
.dropzone[b-r4h97c5law] {
    position: relative;
    border: 2px dashed #E5E7EB;
    border-radius: 0.75rem;
    padding: 2.5% 1.5rem;
    text-align: center;
    transition: border-color 200ms, background-color 200ms;
    cursor: pointer;
    background-color: #FFFFFF;
}

.dropzone:hover[b-r4h97c5law] {
    border-color: #C06820;
    background-color: #FFF5EE;
}

.dropzone-active[b-r4h97c5law] {
    border-color: #C06820;
    background-color: #FFF5EE;
}

[b-r4h97c5law] .dropzone-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.dropzone-label[b-r4h97c5law] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
}

.dropzone-icon[b-r4h97c5law] {
    color: #C06820;
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #E5E7EB;
    border-radius: 0.5rem;
    margin-bottom: 0.5rem;
    background-color: #FFFFFF;
}

.dropzone-text-primary[b-r4h97c5law] {
    font-size: 1rem;
    font-weight: 600;
    color: #111827;
}

.dropzone-text-secondary[b-r4h97c5law] {
    font-size: 0.8125rem;
    color: #6B7280;
}

.dropzone-click-link[b-r4h97c5law] {
    color: #C06820;
    text-decoration: underline;
}

.dropzone-pills[b-r4h97c5law] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
}
/* /Components/Shared/EmptyState.razor.rz.scp.css */
.empty-state[b-g6169xuznb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1.5rem;
    text-align: center;
}

.empty-state-icon[b-g6169xuznb] {
    font-size: 2rem;
    margin-bottom: 0.75rem;
    opacity: 0.5;
}

.empty-state-message[b-g6169xuznb] {
    font-size: 0.875rem;
    color: var(--evie-text-dim);
    max-width: 24rem;
    line-height: 1.625;
    margin: 0;
}
/* /Components/Shared/EVButton.razor.rz.scp.css */
.btn[b-t1kqiuj226] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    background-color: var(--btn-bgcolor,#C06820);
    color: var(--btn-color,#FFFFFF);
    border: none;
    border-radius: 0.5rem;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 150ms;
    width: var(--btn-height, 100px);
    height: var(--btn-width, 30px);
}

.btn:hover[b-t1kqiuj226] {
    background-color: #A85818;
}
/* /Components/Shared/EVDatePicker.razor.rz.scp.css */
.ev-datepicker[b-b68c5vi9yf] {
    position: relative;
    display: inline-flex;
}

/* --- Trigger button (matches EVDropdown filter-btn) --- */

.ev-datepicker-trigger[b-b68c5vi9yf] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background-color: var(--evie-surface, #FFFFFF);
    color: var(--evie-text-muted, #6B6B6B);
    border: 1px solid var(--evie-border, #E5E5E5);
    border-radius: 9999px;
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 150ms;
}

.ev-datepicker-trigger:hover[b-b68c5vi9yf] {
    border-color: var(--evie-primary, #C06820);
    color: var(--evie-primary, #C06820);
}

.ev-datepicker-trigger-active[b-b68c5vi9yf] {
    border-color: var(--evie-primary, #C06820);
    color: var(--evie-primary, #C06820);
}

.ev-datepicker-trigger-text[b-b68c5vi9yf] {
    white-space: nowrap;
}

.ev-datepicker-icon[b-b68c5vi9yf] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ev-datepicker-chevron[b-b68c5vi9yf] {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.ev-datepicker-chevron-open[b-b68c5vi9yf] {
    transform: rotate(180deg);
}

/* --- Popup panel (matches EVDropdown filter-dropdown-menu) --- */

.ev-datepicker-popup[b-b68c5vi9yf] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 50;
    min-width: 260px;
    border-radius: 8px;
    border: 1px solid var(--evie-border, #E5E5E5);
    background: var(--evie-surface, #FFFFFF);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    padding: 0.75rem;
    animation: ev-datepicker-fadeIn-b-b68c5vi9yf 0.15s ease;
}

/* --- Header: nav arrows + month/year --- */

.ev-datepicker-header[b-b68c5vi9yf] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}

.ev-datepicker-month-year[b-b68c5vi9yf] {
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--evie-text, #1A1A1A);
}

.ev-datepicker-nav[b-b68c5vi9yf] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--evie-text-muted, #6B6B6B);
    cursor: pointer;
    transition: background-color 150ms, color 150ms;
}

.ev-datepicker-nav:hover[b-b68c5vi9yf] {
    background-color: var(--evie-primary-muted, rgba(192, 104, 32, 0.12));
    color: var(--evie-primary, #C06820);
}

.ev-datepicker-nav svg[b-b68c5vi9yf] {
    width: 16px;
    height: 16px;
}

/* --- Weekday labels --- */

.ev-datepicker-weekdays[b-b68c5vi9yf] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    margin-bottom: 0.25rem;
}

.ev-datepicker-weekday[b-b68c5vi9yf] {
    font-family: var(--font-sans);
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--evie-text-dim, #9CA3AF);
    padding: 0.25rem 0;
}

/* --- Day grid --- */

.ev-datepicker-days[b-b68c5vi9yf] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}

.ev-datepicker-day[b-b68c5vi9yf] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin: 0 auto;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--evie-text, #1A1A1A);
    cursor: pointer;
    transition: background-color 150ms, color 150ms;
}

.ev-datepicker-day:hover:not(:disabled)[b-b68c5vi9yf] {
    background-color: var(--evie-primary-muted, rgba(192, 104, 32, 0.12));
    color: var(--evie-primary, #C06820);
}

.ev-datepicker-day:disabled[b-b68c5vi9yf] {
    color: var(--evie-text-dim, #9CA3AF);
    opacity: 0.4;
    cursor: default;
}

.ev-datepicker-day-outside[b-b68c5vi9yf] {
    color: var(--evie-text-dim, #9CA3AF);
}

.ev-datepicker-day-today[b-b68c5vi9yf] {
    border: 1px solid var(--evie-primary, #C06820);
}

.ev-datepicker-day-selected[b-b68c5vi9yf] {
    background-color: var(--evie-primary, #C06820);
    color: #FFFFFF;
    font-weight: 600;
}

.ev-datepicker-day-selected:hover:not(:disabled)[b-b68c5vi9yf] {
    background-color: var(--evie-primary-hover, #A85818);
    color: #FFFFFF;
}

/* --- Footer --- */

.ev-datepicker-footer[b-b68c5vi9yf] {
    display: flex;
    justify-content: space-between;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--evie-border, #E5E5E5);
}

.ev-datepicker-footer-link[b-b68c5vi9yf] {
    padding: 0;
    border: none;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--evie-primary, #C06820);
    cursor: pointer;
    transition: color 150ms;
}

.ev-datepicker-footer-link:hover[b-b68c5vi9yf] {
    color: var(--evie-primary-hover, #A85818);
}

/* --- Animation --- */

@keyframes ev-datepicker-fadeIn-b-b68c5vi9yf {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}
/* /Components/Shared/EVDateRange.razor.rz.scp.css */
.ev-daterange[b-gaqdnk6gyb] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.ev-daterange-field[b-gaqdnk6gyb] {
    display: flex;
    flex-direction: column;
    gap: 0.1875rem;
}

.ev-daterange-label[b-gaqdnk6gyb] {
    font-family: var(--font-sans);
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--evie-text-muted, #6B6B6B);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.ev-daterange-separator[b-gaqdnk6gyb] {
    font-size: 0.875rem;
    color: var(--evie-text-muted, #6B6B6B);
    padding-top: 1rem;
}
/* /Components/Shared/EVDropdown.razor.rz.scp.css */
.filter-dropdown[b-006owc7q4s] {
    position: relative;
    display: inline-flex;
}

.filter-btn[b-006owc7q4s] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background-color: #FFFFFF;
    color: #6B6B6B;
    border: 1px solid #E5E5E5;
    border-radius: 9999px;
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 150ms;
    min-width: var(--dropdown-width);
}
.filter-btn:hover[b-006owc7q4s] {
    border-color: #C06820;
    color: #C06820;
}
/* Icon slots — layout only; caller icons own their size */
.filter-dropdown-icon[b-006owc7q4s] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Chevron inherits filter-btn sizing and rotates on open */
.filter-dropdown-chevron[b-006owc7q4s] {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.filter-dropdown-chevron-open[b-006owc7q4s] {
    transform: rotate(180deg);
}

/* Dropdown panel */
.filter-dropdown-menu[b-006owc7q4s] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    min-width: 100%;
    z-index: 50;
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: var(--evie-surface, #1a1a2e);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
    padding: 4px 0;
    animation: filterDropdownFadeIn-b-006owc7q4s 0.15s ease;
}

/* Option rows */
.filter-dropdown-option[b-006owc7q4s] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 12px;
    border: none;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 0.85rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.1s ease;
}

.filter-dropdown-option:hover[b-006owc7q4s] {
    background: rgba(192, 104, 32, 0.4);
}

.filter-dropdown-option-selected[b-006owc7q4s] {
    background: rgba(192, 104, 32, 1);
    font-weight: 500;
}

.filter-dropdown-option-text[b-006owc7q4s] {
    flex: 1;
    text-align: left;
}

@keyframes filterDropdownFadeIn-b-006owc7q4s {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}
/* /Components/Shared/EvieWordmark.razor.rz.scp.css */
.evie-wordmark[b-axcfgpss41] {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    gap: 0.5rem;
}

.evie-wordmark:hover[b-axcfgpss41] {
    text-decoration: none;
}

.evie-wordmark-icon[b-axcfgpss41] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2.5px;
}

.evie-wordmark-bar[b-axcfgpss41] {
    display: block;
    height: 2.5px;
    border-radius: 1.5px;
    background-color: var(--evie-text);
}

.evie-wordmark-bar-primary[b-axcfgpss41] {
    background-color: var(--evie-primary);
    opacity: 1 !important;
}

.evie-wordmark-text[b-axcfgpss41] {
    font-family: var(--font-sans);
    font-weight: 300;
    letter-spacing: 0.07em;
    color: var(--evie-text);
    line-height: 1;
    text-transform: lowercase;
}
/* /Components/Shared/EVTextPill.razor.rz.scp.css */
.text-pill[b-hwe2dzq3ei] {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    border: 1px solid #E5E7EB;
    border-radius: 9999px;
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #6B7280;
    white-space: nowrap;
}
/* /Components/Shared/EVUploadToast.razor.rz.scp.css */
.ev-upload-toast[b-qb2b5rcc2u] {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 200;
    width: 360px;
    max-width: calc(100vw - 2rem);
    background-color: var(--evie-surface, #FFFFFF);
    border: 1px solid var(--evie-border, #E5E5E5);
    border-radius: 0.75rem;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    animation: ev-toast-slide-in-b-qb2b5rcc2u 250ms ease-out;
}

@keyframes ev-toast-slide-in-b-qb2b5rcc2u {
    from {
        opacity: 0;
        transform: translateY(1rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.ev-upload-toast-header[b-qb2b5rcc2u] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem 0.5rem;
}

.ev-upload-toast-title[b-qb2b5rcc2u] {
    font-family: var(--font-sans, 'Outfit', sans-serif);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--evie-text, #1A1A1A);
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.ev-upload-toast-close[b-qb2b5rcc2u] {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--evie-text-muted, #6B6B6B);
    font-size: 0.875rem;
    padding: 0.125rem 0.25rem;
    border-radius: 4px;
    line-height: 1;
    transition: color 150ms, background-color 150ms;
}

.ev-upload-toast-close:hover[b-qb2b5rcc2u] {
    color: var(--evie-text, #1A1A1A);
    background-color: var(--evie-surface-hover, #F5F5F5);
}

.ev-upload-toast-body[b-qb2b5rcc2u] {
    padding: 0 1rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-height: 240px;
    overflow-y: auto;
}

.ev-upload-toast-entry[b-qb2b5rcc2u] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.5rem 0.625rem;
    border-radius: 0.5rem;
}

.entry-success[b-qb2b5rcc2u] {
    background-color: var(--evie-verified-muted, rgba(46, 139, 87, 0.12));
}

.entry-failure[b-qb2b5rcc2u] {
    background-color: var(--evie-error-muted, #FEF2F2);
}

.ev-upload-toast-icon[b-qb2b5rcc2u] {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    border-radius: 50%;
    line-height: 1;
}

.entry-success .ev-upload-toast-icon[b-qb2b5rcc2u] {
    color: var(--evie-verified, #16A34A);
}

.entry-failure .ev-upload-toast-icon[b-qb2b5rcc2u] {
    color: var(--evie-error, #FEF2F2);
}

.ev-upload-toast-detail[b-qb2b5rcc2u] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.ev-upload-toast-filename[b-qb2b5rcc2u] {
    font-family: var(--font-sans, 'Outfit', sans-serif);
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--evie-text, #1A1A1A);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ev-upload-toast-message[b-qb2b5rcc2u] {
    font-family: var(--font-sans, 'Outfit', sans-serif);
    font-size: 0.75rem;
    color: var(--evie-text-muted, #6B6B6B);
}

.ev-upload-toast-timer[b-qb2b5rcc2u] {
    height: 3px;
    background-color: var(--evie-border, #E5E5E5);
}

.ev-upload-toast-timer-bar[b-qb2b5rcc2u] {
    height: 100%;
    background-color: var(--evie-primary, #C06820);
    width: 100%;
    animation: ev-toast-timer-shrink-b-qb2b5rcc2u linear forwards;
}

@keyframes ev-toast-timer-shrink-b-qb2b5rcc2u {
    from {
        width: 100%;
    }
    to {
        width: 0%;
    }
}
/* /Components/Shared/GlAssignmentCard.razor.rz.scp.css */
.gl-hint[b-eh43ojmd2t] {
    font-size: 0.75rem;
    color: var(--evie-text-muted);
    margin: 0 0 0.5rem;
}

.gl-suggestion[b-eh43ojmd2t] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 0.75rem;
    margin-bottom: 0.625rem;
    border: 1px solid var(--evie-border);
    border-radius: 0.375rem;
}

.gl-suggestion-text[b-eh43ojmd2t] {
    font-size: 0.8125rem;
    color: var(--evie-text-muted);
}

.gl-select-row[b-eh43ojmd2t] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.gl-readonly[b-eh43ojmd2t] {
    font-size: 0.875rem;
    color: var(--evie-text);
}

.gl-unassigned[b-eh43ojmd2t] {
    color: var(--evie-text-muted);
    font-style: italic;
}

.gl-error[b-eh43ojmd2t] {
    color: var(--evie-coral, #c0392b);
    font-size: 0.8125rem;
    margin-top: 0.375rem;
}

.mono[b-eh43ojmd2t] {
    font-family: var(--font-mono, monospace);
}
/* /Components/Shared/LineItemsTable.razor.rz.scp.css */
.line-items-section[b-lira8yfzy3] {
    margin-top: 1rem;
}

.line-items-header[b-lira8yfzy3] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--evie-text-muted);
    margin: 0 0 0.5rem;
}

.line-list[b-lira8yfzy3] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.line-card[b-lira8yfzy3] {
    border: 1px solid var(--evie-border);
    border-radius: 0.5rem;
    overflow: hidden;
    background: var(--evie-surface);
}

.line-card-expanded[b-lira8yfzy3] {
    border-color: var(--evie-primary);
}

/* Compact, scannable summary row */
.line-summary[b-lira8yfzy3] {
    display: flex;
    align-items: flex-start;
    gap: 0.2rem;
    width: 100%;
    padding: 0.5rem 0.625rem;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    color: var(--evie-text);
}

.line-summary:hover[b-lira8yfzy3] {
    background: var(--evie-bg);
}

.line-chevron[b-lira8yfzy3] {
    flex-shrink: 0;
    color: var(--evie-text-muted);
    font-size: 0.75rem;
    width: 0.75rem;
    padding-top: 0.125rem;
}

.line-summary-body[b-lira8yfzy3] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

/* Part # (left) and line total (right) share the top row. */
.line-summary-top[b-lira8yfzy3] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.line-summary-primary[b-lira8yfzy3] {
    font-family: var(--font-mono, monospace);
    font-size: 0.8125rem;
    font-weight: 600;
    min-width: 0;
    overflow-wrap: anywhere;
}

.line-summary-headline[b-lira8yfzy3] {
    flex-shrink: 0;
    font-size: 0.8125rem;
    font-weight: 600;
}

/* Description spans the full width and clamps to 3 lines (full text in title). */
.line-summary-desc[b-lira8yfzy3] {
    font-size: 0.75rem;
    color: var(--evie-text-muted);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-summary-sub[b-lira8yfzy3] {
    font-size: 0.6875rem;
    color: var(--evie-text-muted);
}

/* Roomy edit/detail panel */
.line-detail[b-lira8yfzy3] {
    padding: 0.625rem 0.75rem 0.75rem;
    border-top: 1px solid var(--evie-border);
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.line-field[b-lira8yfzy3] {
    display: flex;
    flex-direction: column;
    gap: 0.1875rem;
}

.line-field-label[b-lira8yfzy3] {
    font-size: 0.6875rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--evie-text-dim);
}

.line-field-input[b-lira8yfzy3] {
    width: 100%;
}

.line-field-readonly[b-lira8yfzy3] {
    font-size: 0.875rem;
    color: var(--evie-text);
    padding: 0.25rem 0;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

/* Discrepancy (recalculated ≠ extracted): amber, matching the rest of the app. */
.line-field-discrepancy[b-lira8yfzy3] {
    background: #FFFBEB;
    border: 1px solid #FCD34D;
    border-radius: 0.375rem;
    padding: 0.25rem 0.5rem;
    color: #92400E;
}

.line-field-disc-mark[b-lira8yfzy3] {
    color: #B45309;
    font-size: 0.75rem;
    cursor: help;
}

.line-detail-actions[b-lira8yfzy3] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.125rem;
}
/* /Components/Shared/ModuleCard.razor.rz.scp.css */
.module-card[b-b45xxqp80g] {
    display: flex;
    flex-direction: column;
    background-color: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-radius: 0.75rem;
    padding: 1.5rem;
    text-decoration: none;
    transition: all 200ms ease-out;
    min-height: 200px;
}

.module-card-active[b-b45xxqp80g] {
    cursor: pointer;
}

.module-card-active:hover[b-b45xxqp80g] {
    border-color: #C06820;
    box-shadow: 0 0 0 1px #C06820;
}

.module-card-disabled[b-b45xxqp80g] {
    opacity: 0.5;
    cursor: default;
}

.module-card-header[b-b45xxqp80g] {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    margin-bottom: 0.75rem;
}

.module-card-icon[b-b45xxqp80g] {
    width: 48px;
    height: 48px;
    background-color: rgba(192, 104, 32, 0.1);
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #C06820;
    flex-shrink: 0;
}

.module-card-icon-disabled[b-b45xxqp80g] {
    background-color: #F5F5F5;
    color: #9CA3AF;
}

.module-card-title[b-b45xxqp80g] {
    font-size: 1rem;
    font-weight: 600;
    color: #1A1A1A;
    margin: 0;
}

.module-card-disabled .module-card-title[b-b45xxqp80g] {
    color: #9CA3AF;
}

.module-card-desc[b-b45xxqp80g] {
    font-size: 0.875rem;
    color: #6B6B6B;
    margin: 0;
    line-height: 1.5;
    flex: 1;
}

.module-card-disabled .module-card-desc[b-b45xxqp80g] {
    color: #9CA3AF;
}

.module-card-footer[b-b45xxqp80g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
    padding-top: 1rem;
}

.module-card-status[b-b45xxqp80g] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #C06820;
}

.module-card-status-dot[b-b45xxqp80g] {
    width: 6px;
    height: 6px;
    background-color: #C06820;
    border-radius: 50%;
}

.module-card-arrow[b-b45xxqp80g] {
    font-size: 1.25rem;
    color: #C06820;
    transition: transform 150ms;
}

.module-card-active:hover .module-card-arrow[b-b45xxqp80g] {
    transform: translateX(4px);
}

.module-card-lock[b-b45xxqp80g] {
    color: #9CA3AF;
    margin-left: auto;
}
/* /Components/Shared/ModuleNav.razor.rz.scp.css */
/* Moved here from MainLayout.razor.css along with the markup.

   Scoped CSS follows the .razor file that writes the element, not the class name:
   once the <nav> moved into this component, `.evie-nav` in the layout's stylesheet
   stopped matching it and the nav lost `margin-left: auto`, sliding left to sit
   against the logo. Same trap as the Profile admin panels (docs/potential-bugs.md D1).

   The link rules need ::deep because NavLink is a component — the <a> it renders
   carries NavLink's scope, not this one's. */

.evie-nav[b-h9kioqkbyi] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    /* Pushes the module links off the brand and over toward the header actions. */
    margin-left: auto;
}

[b-h9kioqkbyi] .evie-nav-link {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    border-radius: 0.375rem;
    transition: background-color 150ms, color 150ms;
}

[b-h9kioqkbyi] .evie-nav-link:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: #FFFFFF;
}

[b-h9kioqkbyi] .evie-nav-link.active {
    background-color: rgba(255, 255, 255, 0.15);
    color: #FFFFFF;
}
/* /Components/Shared/NotificationBell.razor.rz.scp.css */
.notif-bell[b-0ya9bep7fy] {
    position: relative;
}

/* Match the look of .evie-header-icon in MainLayout — duplicated here because
   Blazor CSS isolation scopes that class to the layout component. */
.notif-bell-btn[b-0ya9bep7fy] {
    position: relative;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    color: rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 150ms, color 150ms;
}

.notif-bell-btn:hover[b-0ya9bep7fy] {
    background-color: rgba(255, 255, 255, 0.1);
    color: #FFFFFF;
}

.notif-bell-dot[b-0ya9bep7fy] {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 9px;
    height: 9px;
    background-color: #F59E0B; /* Amber per spec */
    border-radius: 50%;
    border: 2px solid #1F2937;
    pointer-events: none;
}

.notif-drawer[b-0ya9bep7fy] {
    position: absolute;
    right: 0;
    top: calc(100% + 0.5rem);
    width: 22rem;
    max-height: 28rem;
    display: flex;
    flex-direction: column;
    background-color: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-radius: 0.75rem;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15);
    z-index: 50;
    overflow: hidden;
}

.notif-drawer-header[b-0ya9bep7fy] {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #E5E5E5;
}

.notif-drawer-title[b-0ya9bep7fy] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1A1A1A;
}

.notif-drawer-body[b-0ya9bep7fy] {
    overflow-y: auto;
    flex: 1;
}

.notif-drawer-empty[b-0ya9bep7fy] {
    padding: 1.25rem 1rem;
    text-align: center;
    color: #9CA3AF;
    font-size: 0.875rem;
}

.notif-item[b-0ya9bep7fy] {
    padding: 0.625rem 1rem;
    border-bottom: 1px solid #F3F4F6;
}

.notif-item:last-child[b-0ya9bep7fy] {
    border-bottom: none;
}

.notif-item-unread[b-0ya9bep7fy] {
    background-color: rgba(245, 158, 11, 0.06);
}

.notif-item-message[b-0ya9bep7fy] {
    font-size: 0.875rem;
    color: #1A1A1A;
    line-height: 1.35;
}

.notif-item-message a[b-0ya9bep7fy] {
    color: inherit;
    text-decoration: none;
}

.notif-item-message a:hover[b-0ya9bep7fy] {
    text-decoration: underline;
}

.notif-item-time[b-0ya9bep7fy] {
    margin-top: 0.25rem;
    font-size: 0.75rem;
    color: #9CA3AF;
}

.notif-bell-backdrop[b-0ya9bep7fy] {
    position: fixed;
    inset: 0;
    z-index: 49;
}
/* /Components/Shared/OrderUploadCard.razor.rz.scp.css */
/* ===== Card Shell ===== */

.upload-card[b-zkatq4q5m4] {
    background-color: #FFFFFF;
    border: 1.5px solid #E5E7EB;
    border-radius: 0.75rem;
    overflow: hidden;
    transition: border-color 300ms;
    flex-shrink: 0;
}

.border-uploading[b-zkatq4q5m4] {
    border-color: #7C6EE0;
}

.border-extracting[b-zkatq4q5m4] {
    border-color: #D97706;
}

.border-processing[b-zkatq4q5m4] {
    border-color: #D97706;
}

.border-ready[b-zkatq4q5m4] {
    border-color: #16A34A;
}

.border-failed[b-zkatq4q5m4] {
    border-color: #DC2626;
}

/* ===== Header ===== */

.upload-card-header[b-zkatq4q5m4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.875rem 1rem;
    cursor: pointer;
    user-select: none;
}

.upload-card-file-info[b-zkatq4q5m4] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.file-type-badge[b-zkatq4q5m4] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.5rem;
    font-size: 0.5625rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    flex-shrink: 0;
}

.file-type-pdf[b-zkatq4q5m4] {
    background-color: rgba(220, 74, 58, 0.08);
    color: #DC4A3A;
}

.file-type-xls[b-zkatq4q5m4] {
    background-color: rgba(46, 139, 87, 0.08);
    color: #16A34A;
}

.file-type-csv[b-zkatq4q5m4] {
    background-color: rgba(107, 114, 128, 0.08);
    color: #6B7280;
}

.file-type-default[b-zkatq4q5m4] {
    background-color: #F5F5F5;
    color: #6B7280;
}

.file-details[b-zkatq4q5m4] {
    display: flex;
    flex-direction: column;
    gap: 0.0625rem;
    min-width: 0;
}

.file-name[b-zkatq4q5m4] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #111827;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.file-size[b-zkatq4q5m4] {
    font-family: var(--font-mono);
    font-size: 0.6875rem;
    color: #9CA3AF;
}

.upload-card-actions[b-zkatq4q5m4] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

/* ===== Status Pill ===== */

.status-pill[b-zkatq4q5m4] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    border: 1px solid;
    white-space: nowrap;
}

.status-dot[b-zkatq4q5m4] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.pill-uploading[b-zkatq4q5m4] {
    background-color: rgba(124, 110, 224, 0.08);
    border-color: rgba(124, 110, 224, 0.3);
    color: #7C6EE0;
}

.pill-uploading .status-dot[b-zkatq4q5m4] {
    background-color: #7C6EE0;
}

.pill-extracting[b-zkatq4q5m4] {
    background-color: rgba(232, 168, 56, 0.1);
    border-color: rgba(232, 168, 56, 0.4);
    color: #B8860B;
}

.pill-extracting .status-dot[b-zkatq4q5m4] {
    background-color: #D97706;
}

.pill-processing[b-zkatq4q5m4] {
    background-color: rgba(232, 168, 56, 0.1);
    border-color: rgba(232, 168, 56, 0.4);
    color: #B8860B;
}

.pill-processing .status-dot[b-zkatq4q5m4] {
    background-color: #D97706;
}

.pill-ready[b-zkatq4q5m4] {
    background-color: rgba(46, 139, 87, 0.08);
    border-color: rgba(46, 139, 87, 0.3);
    color: #16A34A;
}

.pill-ready .status-dot[b-zkatq4q5m4] {
    background-color: #16A34A;
}

.pill-failed[b-zkatq4q5m4] {
    background-color: #FEF2F2;
    border-color: #DC2626;
    color: #DC2626;
}

.pill-failed .status-dot[b-zkatq4q5m4] {
    background-color: #DC2626;
}

/* ===== Dismiss Button ===== */

.dismiss-btn[b-zkatq4q5m4] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    padding: 0;
    border: none;
    border-radius: 0.25rem;
    background: transparent;
    color: #9CA3AF;
    cursor: pointer;
    transition: color 150ms;
}

.dismiss-btn:hover[b-zkatq4q5m4] {
    color: #6B7280;
}

/* ===== Progress Bar ===== */

.progress-bar-track[b-zkatq4q5m4] {
    height: 4px;
    margin: 0 1rem;
    border-radius: 2px;
    overflow: hidden;
    transition: background-color 300ms;
}

.track-uploading[b-zkatq4q5m4] {
    background-color: rgba(124, 110, 224, 0.15);
}

.track-extracting[b-zkatq4q5m4] {
    background-color: rgba(232, 168, 56, 0.15);
}

.track-processing[b-zkatq4q5m4] {
    background-color: rgba(232, 168, 56, 0.15);
}

.track-ready[b-zkatq4q5m4] {
    background-color: rgba(46, 139, 87, 0.15);
}

.track-failed[b-zkatq4q5m4] {
    background-color: rgba(220, 74, 58, 0.15);
}

.progress-bar-fill[b-zkatq4q5m4] {
    height: 100%;
    border-radius: 2px;
    transition: width 400ms ease, background-color 300ms;
}

.fill-uploading[b-zkatq4q5m4] {
    background-color: #7C6EE0;
}

.fill-extracting[b-zkatq4q5m4] {
    background-color: #D97706;
}

.fill-processing[b-zkatq4q5m4] {
    background-color: #D97706;
}

.fill-ready[b-zkatq4q5m4] {
    background-color: #16A34A;
}

.fill-failed[b-zkatq4q5m4] {
    background-color: #DC2626;
}

/* ===== Collapsible Body ===== */

.upload-card-body[b-zkatq4q5m4] {
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows 300ms ease;
}

.upload-card-body.collapsed[b-zkatq4q5m4] {
    grid-template-rows: 0fr;
}

.upload-card-body-inner[b-zkatq4q5m4] {
    overflow: hidden;
}

/* ===== Step List ===== */

.step-list[b-zkatq4q5m4] {
    list-style: none;
    margin: 0;
    padding: 0.75rem 1rem 0.875rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.step-item[b-zkatq4q5m4] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
}

.step-dot[b-zkatq4q5m4] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.step-complete .step-dot[b-zkatq4q5m4] {
    background-color: #16A34A;
}

.step-complete .step-text[b-zkatq4q5m4] {
    color: #16A34A;
}

.step-active .step-dot[b-zkatq4q5m4] {
    background-color: #D97706;
}

.step-active .step-text[b-zkatq4q5m4] {
    color: #D97706;
}

.step-pending .step-dot[b-zkatq4q5m4] {
    background-color: #9CA3AF;
}

.step-pending .step-text[b-zkatq4q5m4] {
    color: #9CA3AF;
}

.step-failed .step-dot[b-zkatq4q5m4] {
    background-color: #DC2626;
}

.step-failed .step-text[b-zkatq4q5m4] {
    color: #DC2626;
}
/* /Components/Shared/PackageFlagButton.razor.rz.scp.css */
/* Flag banner (package page; lives in the ~320px sidebar, so it stacks
   vertically and wraps long notes instead of overflowing horizontally). */
.flag-banner[b-vbfq1jnnao] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    background: #FFFBEB;
    border: 1px solid #FCD34D;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    margin: 0.75rem 0;
    color: #92400E;
}

.flag-banner-text[b-vbfq1jnnao] {
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem;
    font-size: 0.875rem;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.flag-banner-icon[b-vbfq1jnnao] {
    font-size: 1rem;
    line-height: 1;
}

.flag-banner-actor[b-vbfq1jnnao] {
    font-weight: 600;
}

.flag-banner-note[b-vbfq1jnnao] {
    color: #78350F;
    overflow-wrap: anywhere;
}

.flag-banner-resolve[b-vbfq1jnnao] {
    flex-shrink: 0;
    align-self: flex-end;
}

/* Compact grid rendering */
.pkg-flag-chip[b-vbfq1jnnao] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border: 1px solid #FCD34D;
    background: #FFFBEB;
    color: #92400E;
    border-radius: 999px;
    padding: 0.1rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.pkg-flag-chip-actionable[b-vbfq1jnnao] {
    cursor: pointer;
}

.pkg-flag-icon-btn[b-vbfq1jnnao] {
    border: 1px solid var(--evie-border);
    background: transparent;
    color: var(--evie-text-muted);
    border-radius: 6px;
    padding: 0.15rem 0.45rem;
    font-size: 0.9rem;
    cursor: pointer;
    line-height: 1;
}

.pkg-flag-icon-btn:hover[b-vbfq1jnnao] {
    color: #92400E;
    border-color: #FCD34D;
    background: #FFFBEB;
}

.pkg-flag-error[b-vbfq1jnnao] {
    color: var(--evie-coral, #c0392b);
    font-size: 0.8125rem;
    margin-top: 0.375rem;
}

/* Note modal (self-contained copy of the Review modal styling) */
.modal-overlay[b-vbfq1jnnao] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 400;
}

.modal-card[b-vbfq1jnnao] {
    background: #FFFFFF;
    border-radius: 10px;
    padding: 1.5rem;
    width: min(520px, 90vw);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.modal-title[b-vbfq1jnnao] {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: #1A1A1A;
}

.modal-sub[b-vbfq1jnnao] {
    margin: 0;
    font-size: 0.875rem;
    color: #4B5563;
    line-height: 1.5;
}

.flag-note-input[b-vbfq1jnnao] {
    width: 100%;
    border: 1px solid #D1D5DB;
    border-radius: 6px;
    padding: 0.6rem 0.75rem;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    color: #1A1A1A;
    resize: vertical;
    min-height: 4.5rem;
}

.flag-note-input:focus[b-vbfq1jnnao] {
    outline: none;
    border-color: #C06820;
    box-shadow: 0 0 0 3px rgba(192, 104, 32, 0.15);
}

.modal-actions[b-vbfq1jnnao] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.25rem;
}
/* /Components/Shared/PackageHistorySection.razor.rz.scp.css */
.history[b-62tx6fpimz] {
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(128, 128, 128, 0.2);
}

.history-summary[b-62tx6fpimz] {
    cursor: pointer;
    font-weight: 500;
    font-size: 0.9rem;
    opacity: 0.85;
    user-select: none;
    list-style: none;
}

/* Custom disclosure caret (hide the native marker). */
.history-summary[b-62tx6fpimz]::-webkit-details-marker { display: none; }
.history-summary[b-62tx6fpimz]::before {
    content: "\25B8";
    display: inline-block;
    margin-right: 0.45rem;
    font-size: 0.75em;
    transition: transform 0.15s ease;
}
.history[open] .history-summary[b-62tx6fpimz]::before { transform: rotate(90deg); }

.history-empty[b-62tx6fpimz] {
    opacity: 0.6;
    font-size: 0.85rem;
    padding: 0.5rem 0 0.25rem;
}

.history-list[b-62tx6fpimz] {
    list-style: none;
    margin: 0.6rem 0 0;
    padding: 0;
}

.history-item[b-62tx6fpimz] {
    display: flex;
    gap: 0.6rem;
    padding: 0.4rem 0;
}

.history-dot[b-62tx6fpimz] {
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    margin-top: 0.4rem;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.35;
}

.history-body[b-62tx6fpimz] { flex: 1 1 auto; min-width: 0; }

.history-line[b-62tx6fpimz] {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    align-items: baseline;
}

.history-label[b-62tx6fpimz] { font-size: 0.88rem; font-weight: 500; }

.history-time[b-62tx6fpimz] {
    flex: 0 0 auto;
    font-size: 0.78rem;
    opacity: 0.6;
    white-space: nowrap;
}

.history-meta[b-62tx6fpimz] {
    font-size: 0.8rem;
    opacity: 0.65;
    word-break: break-word;
}
/* /Components/Shared/SearchableDropdown.razor.rz.scp.css */
/* Inline "click to change" combobox chrome. Generalized from the Order Entry
   review page's ship-to / candidate-part pickers. */
.sdd[b-p3nkuuc27b] {
    position: relative;
    display: inline-block;
    vertical-align: baseline;
}

/* The value rendered as an inline combobox: dashed underline + caret signal
   it's editable; subtle hover confirms it. Inherits the surrounding text's
   font/colour so it still reads as the value. Kept as display:inline so the
   label sits on the sentence baseline. */
.sdd-trigger-inline[b-p3nkuuc27b] {
    display: inline;
    font: inherit;
    color: inherit;
    background: transparent;
    border: none;
    border-radius: 3px;
    padding: 0 0.15rem;
    margin: 0;
    cursor: pointer;
}

.sdd-trigger-label[b-p3nkuuc27b] {
    border-bottom: 1px dashed currentColor;
}

.sdd-trigger-inline:hover[b-p3nkuuc27b] {
    background: rgba(0, 0, 0, 0.06);
}

.sdd-trigger-inline:hover .sdd-trigger-label[b-p3nkuuc27b] {
    border-bottom-style: solid;
}

/* Boxed variant: a select-like control for form contexts (AP modal fields,
   side panels) — full width, bordered, value left / chevron right. The inline
   variant above stays untouched for Order Entry's mid-sentence pickers. */
.sdd:has(> .sdd-trigger-boxed)[b-p3nkuuc27b] {
    display: block;
    width: 100%;
}

.sdd-trigger-boxed[b-p3nkuuc27b] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    min-width: 0;
    border: 1.5px solid var(--evie-border, #D6D3CE);
    border-radius: 6px;
    padding: 9px 12px;
    font: inherit;
    font-size: 13px;
    color: var(--evie-text, #2A2A2A);
    background: var(--evie-surface, #FFFFFF);
    text-align: left;
    cursor: pointer;
    transition: border-color 180ms, box-shadow 180ms;
}

.sdd-trigger-boxed:hover[b-p3nkuuc27b] {
    border-color: var(--evie-text-dim, #9CA3AF);
}

.sdd.open > .sdd-trigger-boxed[b-p3nkuuc27b] {
    border-color: var(--evie-primary, #C06820);
    box-shadow: 0 0 0 3px rgba(192, 104, 32, 0.1);
}

.sdd-trigger-boxed .sdd-trigger-label[b-p3nkuuc27b] {
    border-bottom: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sdd-trigger-boxed .sdd-chevron[b-p3nkuuc27b] {
    flex: 0 0 auto;
}

.sdd-chevron[b-p3nkuuc27b] {
    width: 0.8em;
    height: 0.8em;
    margin-left: 0.15rem;
    vertical-align: -0.08em;
    transition: transform 0.15s ease;
}

.sdd-chevron.open[b-p3nkuuc27b] {
    transform: rotate(180deg);
}

/* The menu is position:fixed and placed by JS (dropdown-interop.js) relative to
   the trigger, so it escapes any clipping ancestor — robust even inside a
   1-2 row overflow:hidden panel. Starts hidden until JS places it (no flash),
   above the backdrop. */
.sdd-menu[b-p3nkuuc27b] {
    position: fixed;
    top: 0;
    left: 0;
    visibility: hidden;
    z-index: 2000;
    min-width: 20rem;
    max-width: 32rem;
    max-height: 16rem;
    overflow-y: auto;
    background: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    padding: 0.25rem;
}

/* Full-viewport outside-click catcher; sits just below the menu. */
.sdd-backdrop[b-p3nkuuc27b] {
    position: fixed;
    inset: 0;
    z-index: 19;
}

/* Search box pinned to the top of the menu while the options scroll. */
.sdd-search[b-p3nkuuc27b] {
    position: sticky;
    top: 0;
    z-index: 1;
    width: 100%;
    box-sizing: border-box;
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    color: #1F2937;
    background: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    margin-bottom: 0.25rem;
    outline: none;
}

.sdd-search:focus[b-p3nkuuc27b] {
    border-color: #C06820;
}

.sdd-status[b-p3nkuuc27b] {
    padding: 0.5rem 0.625rem;
    font-size: 0.75rem;
    color: #6B6B6B;
}

.sdd-option[b-p3nkuuc27b] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    color: #1F2937;
    background: transparent;
    border: none;
    border-radius: 4px;
    padding: 0.4rem 0.625rem;
    cursor: pointer;
    text-align: left;
}

.sdd-option:hover[b-p3nkuuc27b] {
    background: #F5F5F5;
}

.sdd-option.active[b-p3nkuuc27b] {
    background: #FFF5EE;
    color: #C06820;
}

/* Row internals are rendered by the caller's ItemTemplate (parent scope), so
   they're reached with ::deep. Standard classes: sdd-option-main / -text /
   -addr for a two-line row, sdd-option-badge for a trailing tag. */
.sdd-option[b-p3nkuuc27b]  .sdd-option-main {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.0625rem;
}

.sdd-option[b-p3nkuuc27b]  .sdd-option-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sdd-option[b-p3nkuuc27b]  .sdd-option-addr {
    font-size: 0.6875rem;
    color: #9CA3AF;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sdd-option.active[b-p3nkuuc27b]  .sdd-option-addr {
    color: #C0996F;
}

.sdd-option[b-p3nkuuc27b]  .sdd-option-badge {
    flex: 0 0 auto;
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6B7280;
    background: #F0F0F0;
    border-radius: 999px;
    padding: 0.0625rem 0.375rem;
}
/* /Components/Shared/UserMenu.razor.rz.scp.css */
.user-menu[b-q37a68p337] {
    position: relative;
}

.user-menu-btn[b-q37a68p337] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.15);
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    cursor: pointer;
    transition: background-color 150ms;
}

.user-menu-btn:hover[b-q37a68p337] {
    background-color: rgba(255, 255, 255, 0.25);
}

.user-menu-btn:focus-visible[b-q37a68p337] {
    outline: none;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5);
}

.user-dropdown[b-q37a68p337] {
    position: absolute;
    right: 0;
    top: calc(100% + 0.5rem);
    width: 14rem;
    background-color: #FFFFFF;
    border: 1px solid #E5E5E5;
    border-radius: 0.75rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    z-index: 50;
    overflow: hidden;
}

.user-menu-backdrop[b-q37a68p337] {
    position: fixed;
    inset: 0;
    z-index: 49;
}

.user-dropdown-header[b-q37a68p337] {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #E5E5E5;
}

.user-dropdown-email[b-q37a68p337] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #1f2937;
    word-break: break-all;
}

.user-dropdown-role[b-q37a68p337] {
    margin-top: 0.125rem;
    font-size: 0.75rem;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.user-dropdown-company[b-q37a68p337] {
    margin-top: 0.375rem;
    font-size: 0.75rem;
    color: #6b7280;
}

/* Working in someone else's company: state it plainly rather than colouring it
   as a problem (brand spec — coral is for genuine issues). */
.user-dropdown-company.is-switched[b-q37a68p337] {
    color: #1f2937;
    font-weight: 600;
}

.user-dropdown-item[b-q37a68p337] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    color: #1f2937;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 150ms;
}

.user-dropdown-item:hover[b-q37a68p337] {
    background-color: #f3f4f6;
}

.user-dropdown-item svg[b-q37a68p337] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.user-dropdown-signout[b-q37a68p337] {
    color: #b91c1c;
}
/* /Components/Shared/ValidationIssuesSection.razor.rz.scp.css */
.validation-list[b-ai1hg57myx] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.validation-item[b-ai1hg57myx] {
    border: 1px solid var(--evie-border);
    border-left-width: 3px;
    border-radius: 0.375rem;
    padding: 0.5rem 0.625rem;
    background: var(--evie-surface);
}

/* Critical = coral; Warning = amber (matches the rest of the app). */
.validation-critical[b-ai1hg57myx] {
    border-left-color: var(--evie-coral, #c0392b);
}

.validation-warning[b-ai1hg57myx] {
    border-left-color: #FCD34D;
}

.validation-item-top[b-ai1hg57myx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.validation-badge[b-ai1hg57myx] {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.0625rem 0.375rem;
    border-radius: 999px;
}

.validation-critical .validation-badge[b-ai1hg57myx] {
    color: var(--evie-coral, #c0392b);
    background: var(--evie-coral-muted, #fdecea);
}

.validation-warning .validation-badge[b-ai1hg57myx] {
    color: #92400E;
    background: #FFFBEB;
}

.validation-line[b-ai1hg57myx] {
    font-size: 0.6875rem;
    color: var(--evie-text-muted);
}

.validation-msg[b-ai1hg57myx] {
    font-size: 0.8125rem;
    color: var(--evie-text);
    line-height: 1.35;
}

.validation-ea[b-ai1hg57myx] {
    margin-top: 0.25rem;
    font-size: 0.6875rem;
    color: var(--evie-text-muted);
}

.validation-ea .mono[b-ai1hg57myx] {
    font-family: var(--font-mono, monospace);
    color: var(--evie-text);
}

/* Grouped card: expander toggle + collapsed per-line detail rows. */
.validation-expand[b-ai1hg57myx] {
    margin-top: 0.375rem;
    background: none;
    border: none;
    padding: 0;
    font-size: 0.6875rem;
    color: var(--evie-text-muted);
    cursor: pointer;
    text-decoration: underline;
}

.validation-expand:hover[b-ai1hg57myx] {
    color: var(--evie-text);
}

.validation-group-detail[b-ai1hg57myx] {
    margin-top: 0.375rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.validation-group-row[b-ai1hg57myx] {
    font-size: 0.6875rem;
    color: var(--evie-text-muted);
    line-height: 1.35;
    padding-left: 0.5rem;
    border-left: 2px solid var(--evie-border);
}
/* /Components/Shared/WorkflowStampButton.razor.rz.scp.css */
.critical-ack-panel[b-ftd6uaox2b] {
    border: 1px solid rgba(248, 113, 113, 0.3);
    border-radius: 0.375rem;
    background: rgba(248, 113, 113, 0.05);
    padding: 0.75rem 0.875rem;
    margin-bottom: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.critical-ack-title[b-ftd6uaox2b] {
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--evie-coral);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.critical-ack-hint[b-ftd6uaox2b] {
    font-size: 0.6875rem;
    color: var(--evie-text-dim);
}

/* Blocking issue (no checkbox): must be resolved, not acknowledged. */
.critical-block-item[b-ftd6uaox2b] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--evie-coral);
}

.critical-block-mark[b-ftd6uaox2b] {
    flex-shrink: 0;
    font-size: 0.5rem;
    line-height: 1.4rem;
}
