/* /Components/Alop/AlopDfWorkflowPanel.razor.rz.scp.css */
.alop-df-workflow[b-w81bw0q00s] { display: grid; gap: 1rem; }
.alop-df-actions[b-w81bw0q00s] { display: flex; flex-wrap: wrap; gap: .5rem; }
.alop-df-summary[b-w81bw0q00s] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.alop-df-summary span[b-w81bw0q00s] { border-left: 3px solid var(--color-primary, #2563eb); padding: .5rem .75rem; background: var(--surface-subtle, #f6f7f9); }
.alop-df-findings[b-w81bw0q00s], .alop-df-repair[b-w81bw0q00s], .alop-df-revisions[b-w81bw0q00s] { display: grid; gap: .5rem; }
.alop-df-finding[b-w81bw0q00s] { display: grid; grid-template-columns: auto 1fr auto; gap: .75rem; padding: .65rem; border-left: 3px solid #64748b; background: #f8fafc; }
.alop-df-finding--error[b-w81bw0q00s] { border-color: #b91c1c; background: #fef2f2; }
.alop-df-finding--warning[b-w81bw0q00s] { border-color: #a16207; background: #fffbeb; }
.alop-df-repair-action[b-w81bw0q00s] { display: flex; align-items: flex-start; gap: .5rem; }
.alop-df-revision[b-w81bw0q00s] { display: grid; grid-template-columns: 1fr auto auto; gap: 1rem; padding: .65rem; color: inherit; border-bottom: 1px solid #d7dce2; text-decoration: none; }
.alop-df-revision.is-current[b-w81bw0q00s] { background: #eef6ff; }
.alop-df-live[b-w81bw0q00s] { min-height: 1.5rem; }
@media (max-width: 760px) { .alop-df-summary[b-w81bw0q00s] { grid-template-columns: 1fr; } .alop-df-finding[b-w81bw0q00s] { grid-template-columns: 1fr; } }
/* /Components/Alop/AlopDfWorkspaceModal.razor.rz.scp.css */
/* ===== Workspace chrome =====
 *
 * The BACKDROP and the PANEL are styled in wwwroot/css/app.css, not here.
 *
 * Both elements are rendered by TdlModal, so they carry TdlModal's isolation scope. A rule written
 * in this file compiles to `.alop-workspace-backdrop[b-<this component>]` and never matches them -
 * CSS isolation tags the elements written in a component's own .razor file, and that does not
 * extend to markup a child component renders.
 *
 * The consequence was that neither rule applied: the backdrop was a static block in the page flow
 * instead of a fixed overlay, and the panel had no height limit, so it grew to fit ~1100 lines of
 * content and pushed the primary action off-screen (measured at y=2079 on a 1080-tall viewport).
 *
 * Everything below this point styles markup that lives in THIS component, so it is scoped correctly.
 */

/* Direct child of the panel; it has to relay the column so the strips and the scroller line up. */
.alop-workspace-inner[b-t8o72h1crb] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

/* ===== Fixed header ===== */

.alop-workspace-header[b-t8o72h1crb] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1.1rem 0.7rem;
    border-bottom: 1px solid var(--tdl-border);
    background: #ffffff;
    flex: 0 0 auto;
}

.alop-workspace-identity[b-t8o72h1crb] {
    min-width: 0;
}

.alop-workspace-eyebrow[b-t8o72h1crb] {
    color: var(--tdl-primary-hover);
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.alop-workspace-title[b-t8o72h1crb] {
    margin: 0.1rem 0 0.2rem;
    font-size: 1.15rem;
    line-height: 1.25;
    font-weight: 900;
    color: var(--tdl-text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 60vw;
}

.alop-workspace-meta[b-t8o72h1crb] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
    color: var(--tdl-text-secondary);
    font-size: 0.82rem;
}

.alop-workspace-meta strong[b-t8o72h1crb] {
    color: var(--tdl-text-primary);
    font-variant-numeric: tabular-nums;
}

.alop-workspace-status[b-t8o72h1crb] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    flex: 0 0 auto;
}

.alop-workspace-total[b-t8o72h1crb] {
    font-size: 1rem;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.alop-workspace-saved[b-t8o72h1crb] {
    color: var(--tdl-text-secondary);
    font-size: 0.78rem;
    white-space: nowrap;
}

.alop-workspace-close[b-t8o72h1crb] {
    width: 2.4rem;
    height: 2.4rem;
    flex: 0 0 auto;
}

.alop-workspace-close:focus-visible[b-t8o72h1crb] {
    outline: 3px solid rgba(37, 99, 235, 0.65);
    outline-offset: 2px;
}

/* ===== Fixed step navigation ===== */

.alop-workspace-tabs[b-t8o72h1crb] {
    display: flex;
    gap: 0.35rem;
    padding: 0.55rem 1.1rem;
    border-bottom: 1px solid var(--tdl-border);
    background: #ffffff;
    overflow-x: auto;
    flex: 0 0 auto;
    scrollbar-width: thin;
}

.alop-workspace-tab[b-t8o72h1crb] {
    min-height: 40px;
    padding: 0.45rem 0.85rem;
    border: 1px solid transparent;
    border-radius: 0.5rem;
    background: transparent;
    color: var(--tdl-text-secondary);
    font-size: 0.86rem;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
}

.alop-workspace-tab--accounting[b-t8o72h1crb] {
    font-weight: 850;
    color: var(--tdl-text-primary);
    border-color: var(--tdl-border);
}

.alop-workspace-tab:hover[b-t8o72h1crb] {
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
}

.alop-workspace-tab:focus-visible[b-t8o72h1crb] {
    outline: 3px solid rgba(37, 99, 235, 0.65);
    outline-offset: 1px;
}

.alop-workspace-tab--active[b-t8o72h1crb],
.alop-workspace-tab--active.alop-workspace-tab--accounting[b-t8o72h1crb] {
    background: var(--tdl-primary);
    border-color: var(--tdl-primary);
    color: #ffffff;
}

/* ===== Orientation + totals strips ===== */

.alop-workspace-orientation[b-t8o72h1crb] {
    padding: 0.5rem 1.1rem;
    border-bottom: 1px solid #dbeafe;
    background: #eff6ff;
    color: #1e3a8a;
    font-size: 0.86rem;
    font-weight: 650;
    flex: 0 0 auto;
}

.alop-workspace-totals[b-t8o72h1crb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 1.4rem;
    padding: 0.45rem 1.1rem;
    border-bottom: 1px solid var(--tdl-border);
    background: #f8fafc;
    color: var(--tdl-text-secondary);
    font-size: 0.82rem;
    flex: 0 0 auto;
}

.alop-workspace-totals strong[b-t8o72h1crb] {
    color: var(--tdl-text-primary);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.alop-consistency-badge[b-t8o72h1crb] {
    display: inline-flex;
    padding: 0.16rem 0.45rem;
    border: 1px solid #d0d5dd;
    border-radius: 999px;
    background: #f2f4f7;
    color: #475467;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
}

.alop-consistency-badge--matches[b-t8o72h1crb] {
    border-color: #91d6ad;
    background: #e4f7ec;
    color: #12613b;
}

.alop-consistency-badge--totaldifference[b-t8o72h1crb] {
    border-color: #f3abab;
    background: #ffebeb;
    color: #9c1c1c;
}

.alop-consistency-badge--incomplete[b-t8o72h1crb],
.alop-consistency-badge--distributiondifference[b-t8o72h1crb] {
    border-color: #edc37f;
    background: #fff0d7;
    color: #7a2e0b;
}

/* ===== Content region (single scroll) ===== */

.alop-workspace-body[b-t8o72h1crb] {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.alop-workspace-content[b-t8o72h1crb] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.9rem 1.1rem 1.2rem;
}

.alop-step-panel[b-t8o72h1crb] {
    margin-top: 0.75rem;
}

/* ===== Fixed action bar =====
   Sits under the info strips and above the scrolling content, so the rule that separates it from
   the document is on its underside. It is a fixed row of the panel's flex column, which is what
   keeps it visible however far the content is scrolled - no position: sticky involved. */

.alop-workspace-actionbar[b-t8o72h1crb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7rem 1.1rem;
    border-bottom: 1px solid var(--tdl-border);
    background: #ffffff;
    flex: 0 0 auto;
    /* Over the content, so a dropdown opening below cannot paint across the actions. */
    position: relative;
    z-index: 2;
}

.alop-workspace-actionbar-right[b-t8o72h1crb] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.alop-workspace-actionbar[b-t8o72h1crb]  .tdl-btn,
.alop-workspace-actionbar .tdl-btn[b-t8o72h1crb] {
    min-height: 40px;
}

.alop-workspace-actionbar .tdl-btn:focus-visible[b-t8o72h1crb] {
    outline: 3px solid rgba(37, 99, 235, 0.65);
    outline-offset: 2px;
}

/* ===== Rezumat ===== */

.alop-rezumat-header[b-t8o72h1crb] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.alop-rezumat-actions[b-t8o72h1crb] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.alop-btn-warning[b-t8o72h1crb] {
    border-color: #edc37f !important;
    color: #7a2e0b !important;
    background: #fff7e8 !important;
}

.alop-preview-eyebrow[b-t8o72h1crb],
.alop-muted[b-t8o72h1crb],
.alop-preview-section-header span[b-t8o72h1crb],
.alop-preview-pager span[b-t8o72h1crb] {
    color: var(--bs-secondary-color);
    font-size: 0.875rem;
}

.alop-preview-title[b-t8o72h1crb] {
    font-weight: 700;
    line-height: 1.25;
}

.alop-preview-grid-two[b-t8o72h1crb] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.75rem;
    margin-top: 0.6rem;
}

.alop-preview-section[b-t8o72h1crb] {
    min-width: 0;
}

.alop-preview-section .table-responsive[b-t8o72h1crb] {
    max-height: 285px;
    overflow: auto;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.375rem;
}

.alop-preview-section .table[b-t8o72h1crb] {
    font-size: 0.835rem;
}

.alop-preview-section thead th[b-t8o72h1crb] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--bs-body-bg);
}

.alop-preview-section h3[b-t8o72h1crb] {
    font-size: 0.95rem;
    margin: 0;
}

.alop-preview-section-header[b-t8o72h1crb],
.alop-preview-pager[b-t8o72h1crb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.alop-preview-pager[b-t8o72h1crb] {
    margin-top: 0.45rem;
}

.alop-problem-row > td[b-t8o72h1crb] {
    background: rgba(220, 53, 69, 0.06);
    box-shadow: inset 0 -1px 0 rgba(220, 53, 69, 0.12);
}

.alop-truncate[b-t8o72h1crb] {
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alop-rezumat-grid[b-t8o72h1crb] {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.8fr);
    gap: 1rem;
    align-items: start;
    margin-top: 1rem;
}

.alop-rezumat-card[b-t8o72h1crb] {
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: #ffffff;
    padding: 1rem 1.1rem;
}

.alop-rezumat-card h3[b-t8o72h1crb] {
    margin: 0 0 0.7rem;
    font-size: 0.98rem;
    font-weight: 900;
}

.alop-rezumat-card h3 + .muted-text[b-t8o72h1crb] {
    margin: 0;
}

.alop-rezumat-card h3:not(:first-child)[b-t8o72h1crb] {
    margin-top: 1.1rem;
}

/* ===== Detail fields (ported) ===== */

.alop-detail-fields[b-t8o72h1crb] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem 1rem;
}

.alop-detail-field[b-t8o72h1crb] {
    min-width: 0;
}

.alop-detail-field--wide[b-t8o72h1crb] {
    grid-column: 1 / -1;
}

.alop-detail-label[b-t8o72h1crb] {
    display: block;
    margin-bottom: 0.2rem;
    color: var(--tdl-text-muted);
    font-size: 0.74rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.055em;
}

.alop-detail-value[b-t8o72h1crb] {
    display: block;
    color: var(--tdl-text-primary);
    font-size: 0.94rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.alop-amount-value[b-t8o72h1crb] {
    display: block;
    color: var(--tdl-text-primary);
    font-size: 1rem;
    font-weight: 850;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.alop-path-value[b-t8o72h1crb] {
    display: block;
    color: var(--tdl-text-secondary);
    font-family: var(--font-mono);
    font-size: 0.84rem;
    overflow-wrap: anywhere;
}

.alop-status-pill[b-t8o72h1crb] {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 0.25rem 0.58rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-size: 0.78rem;
    font-weight: 850;
}

.alop-status-pill--draft[b-t8o72h1crb] {
    background: #f1f5f9;
    color: #334155;
}

.alop-status-pill--positive[b-t8o72h1crb] {
    background: var(--tdl-success-soft);
    color: #166534;
}

.alop-status-pill--negative[b-t8o72h1crb] {
    background: var(--tdl-danger-soft);
    color: #991b1b;
}

/* ===== Section summary ===== */

.alop-section-summary[b-t8o72h1crb] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
    margin: 1rem 0 0;
}

.alop-section-summary > div[b-t8o72h1crb] {
    min-width: 0;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-sm);
    background: rgba(255, 255, 255, 0.8);
}

.alop-section-summary span[b-t8o72h1crb] {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--tdl-text-muted);
    font-size: 0.74rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.055em;
}

.alop-section-summary strong[b-t8o72h1crb] {
    display: block;
    color: var(--tdl-text-primary);
    font-size: 1.02rem;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* ===== Section cards / grids (ported) ===== */

.alop-section-card[b-t8o72h1crb] {
    margin-top: 1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: #ffffff;
    overflow: hidden;
}

.alop-section-card-header[b-t8o72h1crb] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1.1rem;
    border-bottom: 1px solid #e8edf4;
}

.alop-section-card-header h2[b-t8o72h1crb] {
    margin: 0;
    font-size: 1.02rem;
    line-height: 1.2;
    font-weight: 900;
}

.alop-section-card-header p[b-t8o72h1crb] {
    margin: 0.25rem 0 0;
    color: var(--tdl-text-muted);
    font-size: 0.9rem;
}

.alop-section-title-row[b-t8o72h1crb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}

.alop-count-badge[b-t8o72h1crb] {
    display: inline-flex;
    align-items: center;
    min-height: 1.55rem;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
    font-size: 0.72rem;
    font-weight: 850;
}

.alop-lines-section > .muted-text[b-t8o72h1crb] {
    margin: 0;
    padding: 1rem 1.1rem;
}

.alop-lines-table-wrapper[b-t8o72h1crb] {
    max-width: 100%;
    overflow-x: auto;
    border: 0;
    border-radius: 0;
}

.alop-lines-table[b-t8o72h1crb] {
    width: 100%;
    min-width: 1280px;
    table-layout: fixed;
    border-collapse: collapse;
}

.alop-lines-table--section-a[b-t8o72h1crb] {
    min-width: 1040px;
}

.alop-ord-blocks-table[b-t8o72h1crb] {
    width: 100%;
    min-width: 980px;
    table-layout: fixed;
    border-collapse: collapse;
}

.alop-ord-blocks-table thead th[b-t8o72h1crb],
.alop-lines-table thead th[b-t8o72h1crb] {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid #dce5f0;
    background: #f3f7fb;
    color: var(--tdl-text-secondary);
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1.25;
    text-align: left;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.alop-ord-blocks-table tbody td[b-t8o72h1crb],
.alop-lines-table tbody td[b-t8o72h1crb] {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid #edf2f7;
    color: var(--tdl-text-primary);
    font-size: 0.86rem;
    line-height: 1.35;
    vertical-align: middle;
}

.alop-lines-table tbody tr:nth-child(even) td[b-t8o72h1crb] {
    background: rgba(248, 250, 252, 0.65);
}

.alop-lines-table tbody tr:hover td[b-t8o72h1crb] {
    background: #f8fbff;
}

.alop-col-row[b-t8o72h1crb] {
    width: 58px;
}

.alop-col-context[b-t8o72h1crb] {
    width: 104px;
}

.alop-col-code[b-t8o72h1crb] {
    width: 118px;
}

.alop-col-party[b-t8o72h1crb] {
    width: 180px;
}

.alop-col-iban[b-t8o72h1crb] {
    width: 205px;
}

.alop-col-description[b-t8o72h1crb] {
    width: 230px;
}

.alop-col-amount[b-t8o72h1crb] {
    width: 118px;
    text-align: right !important;
}

.alop-col-actions[b-t8o72h1crb] {
    width: 140px;
}

.alop-row-number[b-t8o72h1crb] {
    color: var(--tdl-text-muted);
    font-weight: 750;
}

.alop-context-cell[b-t8o72h1crb],
.alop-code-cell[b-t8o72h1crb],
.alop-iban-cell[b-t8o72h1crb],
.alop-party-cell[b-t8o72h1crb],
.alop-line-description-cell[b-t8o72h1crb] {
    overflow-wrap: anywhere;
    word-break: normal;
}

.alop-code-cell[b-t8o72h1crb],
.alop-iban-cell[b-t8o72h1crb] {
    font-family: var(--font-mono);
    font-size: 0.8rem;
}

.alop-party-cell[b-t8o72h1crb] {
    font-weight: 700;
}

.alop-line-description-cell[b-t8o72h1crb] {
    color: var(--tdl-text-secondary);
}

.alop-amount-cell[b-t8o72h1crb] {
    color: var(--tdl-text-primary);
    font-weight: 850;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.alop-line-row-actions[b-t8o72h1crb] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    white-space: nowrap;
}

/* ===== Validation (ported) ===== */

.alop-validation-body[b-t8o72h1crb] {
    padding: 0.85rem 1.1rem 1.1rem;
}

.alop-validation-panel[b-t8o72h1crb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.8rem;
}

.alop-validation-status[b-t8o72h1crb],
.alop-validation-actions[b-t8o72h1crb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}

.alop-validation-pill[b-t8o72h1crb] {
    display: inline-flex;
    align-items: center;
    min-height: 1.8rem;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 900;
}

.alop-validation-pill--neutral[b-t8o72h1crb] {
    background: #eef2f7;
    color: #475569;
}

.alop-validation-pill--valid[b-t8o72h1crb] {
    background: var(--tdl-success-soft);
    color: #166534;
}

.alop-validation-pill--warning[b-t8o72h1crb] {
    background: #fef3c7;
    color: #92400e;
}

.alop-validation-pill--error[b-t8o72h1crb] {
    background: var(--tdl-danger-soft);
    color: #991b1b;
}

.alop-validation-counts[b-t8o72h1crb] {
    color: var(--tdl-text-secondary);
    font-size: 0.88rem;
    font-weight: 750;
}

.alop-validation-groups[b-t8o72h1crb] {
    display: grid;
    gap: 0.65rem;
    margin-top: 0.8rem;
}

.alop-validation-group[b-t8o72h1crb] {
    border: 1px solid var(--tdl-border);
    border-radius: 0.5rem;
    background: #fff;
    overflow: hidden;
}

.alop-validation-group > summary[b-t8o72h1crb] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7rem 0.8rem;
    cursor: pointer;
    background: #f8fafc;
    font-size: 0.84rem;
}

.alop-validation-group > summary:focus-visible[b-t8o72h1crb] {
    outline: 3px solid rgba(37, 99, 235, 0.65);
    outline-offset: -3px;
}

.alop-validation-group__body[b-t8o72h1crb] {
    display: grid;
    gap: 0.5rem;
    padding: 0.65rem;
}

.alop-validation-row-card[b-t8o72h1crb] {
    display: grid;
    grid-template-columns: minmax(10rem, 0.35fr) minmax(0, 1fr) auto;
    align-items: start;
    gap: 0.65rem;
    padding: 0.6rem 0.7rem;
    border-left: 3px solid #e3a008;
    background: #fffaf0;
}

.alop-validation-row-card.is-error[b-t8o72h1crb] {
    border-left-color: #dc3545;
    background: #fff7f7;
}

.alop-validation-row-card > div[b-t8o72h1crb] {
    display: grid;
}

.alop-validation-row-card > div span[b-t8o72h1crb] {
    color: var(--tdl-text-muted);
    font-size: 0.75rem;
}

.alop-validation-row-card ul[b-t8o72h1crb] {
    margin: 0;
    padding-left: 1.1rem;
}

.alop-validation-row-card li[b-t8o72h1crb] {
    margin-bottom: 0.2rem;
    font-size: 0.82rem;
}

/* ===== Forms (ported) ===== */

.alop-edit-form[b-t8o72h1crb],
.alop-line-editor-form[b-t8o72h1crb] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.alop-edit-grid[b-t8o72h1crb] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.alop-edit-field[b-t8o72h1crb],
.form-field[b-t8o72h1crb] {
    min-width: 0;
}

.form-field[b-t8o72h1crb] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.form-field > span:first-child[b-t8o72h1crb] {
    color: var(--tdl-text-secondary);
    font-size: 0.82rem;
    font-weight: 800;
}

.form-field input[b-t8o72h1crb],
.form-field select[b-t8o72h1crb],
.form-field textarea[b-t8o72h1crb] {
    width: 100%;
    min-height: 2.45rem;
    border: 1px solid var(--tdl-border-strong);
    border-radius: var(--tdl-radius-sm);
    background: rgba(255, 255, 255, 0.92);
    color: var(--tdl-text-primary);
    padding: 0.55rem 0.72rem;
}

.form-field textarea[b-t8o72h1crb] {
    min-height: 5.5rem;
    resize: vertical;
}

.form-field input:focus[b-t8o72h1crb],
.form-field select:focus[b-t8o72h1crb],
.form-field textarea:focus[b-t8o72h1crb] {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.18);
}

.alop-edit-field--wide[b-t8o72h1crb],
.alop-line-editor-field--wide[b-t8o72h1crb] {
    grid-column: 1 / -1;
}

.alop-edit-actions[b-t8o72h1crb] {
    display: flex;
    justify-content: flex-end;
    gap: 0.65rem;
}

.alop-helper-text[b-t8o72h1crb] {
    margin-top: 0.05rem;
    color: var(--tdl-text-muted);
    font-size: 0.8rem;
    font-weight: 500;
}

.alop-line-editor-grid[b-t8o72h1crb] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.alop-line-total-preview[b-t8o72h1crb] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.2rem;
    min-height: 4.2rem;
    border: 1px dashed var(--tdl-border-strong);
    border-radius: var(--tdl-radius-sm);
    padding: 0.75rem 0.9rem;
    background: #f8fafc;
}

.alop-line-total-preview span[b-t8o72h1crb] {
    color: var(--tdl-text-muted);
    font-size: 0.74rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.045em;
}

.alop-line-total-preview strong[b-t8o72h1crb] {
    font-size: 1.02rem;
    white-space: nowrap;
}

/* ===== Banners (ported) ===== */

.error-banner[b-t8o72h1crb],
.alop-inline-note[b-t8o72h1crb],
.success-banner[b-t8o72h1crb],
.loading-card[b-t8o72h1crb] {
    margin-bottom: 1rem;
    border-radius: var(--tdl-radius-sm);
    padding: 0.8rem 0.95rem;
    font-weight: 750;
}

.error-banner[b-t8o72h1crb] {
    border: 1px solid #fecaca;
    background: var(--tdl-danger-soft);
    color: #991b1b;
}

.alop-inline-note[b-t8o72h1crb] {
    border: 1px solid #bfdbfe;
    background: #eff6ff;
    color: #1e3a8a;
}

.alop-inline-note--success[b-t8o72h1crb] {
    border-color: var(--tdl-success-soft-border);
    background: var(--tdl-success-soft);
    color: #14532d;
}

.alop-inline-note--warning[b-t8o72h1crb] {
    border-color: var(--tdl-warning-soft-border);
    background: var(--tdl-warning-soft);
    color: #7c2d12;
}

.alop-inline-note--error[b-t8o72h1crb] {
    border-color: var(--tdl-danger-soft-border);
    background: var(--tdl-danger-soft);
    color: #7f1d1d;
}

.success-banner[b-t8o72h1crb] {
    border: 1px solid #bbf7d0;
    background: var(--tdl-success-soft);
    color: #166534;
}

.loading-card[b-t8o72h1crb] {
    border: 1px solid var(--tdl-border);
    background: var(--tdl-surface);
    color: var(--tdl-text-secondary);
}

/* ===== Danger zone ===== */

.alop-workspace-danger[b-t8o72h1crb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    padding: 0.8rem 1rem;
    border: 1px solid var(--tdl-danger-soft-border, #fecaca);
    border-radius: var(--tdl-radius-sm);
    background: #fff7f7;
}

.alop-workspace-danger strong[b-t8o72h1crb] {
    display: block;
    color: #991b1b;
    font-size: 0.88rem;
}

.alop-workspace-danger span[b-t8o72h1crb] {
    color: var(--tdl-text-secondary);
    font-size: 0.82rem;
}

/* ===== Side panel (row/header editor) ===== */

/* Overlays only the content region: header, tabs and footer stay reachable. */
.alop-workspace-sidepanel[b-t8o72h1crb] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(560px, 92%);
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border-left: 1px solid var(--tdl-border);
    box-shadow: -18px 0 40px rgba(15, 23, 42, 0.18);
    z-index: 5;
}

/* .alop-workspace { position: relative; } lives in app.css with the rest of the panel rules -
   see the note at the top of this file: a rule written here cannot reach that element. */

.alop-workspace-sidepanel-header[b-t8o72h1crb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--tdl-border);
    flex: 0 0 auto;
}

.alop-workspace-sidepanel-header h3[b-t8o72h1crb] {
    margin: 0;
    font-size: 1rem;
    font-weight: 900;
}

.alop-workspace-sidepanel-body[b-t8o72h1crb] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 1rem;
}

/* ===== Confirmation dialogs ===== */

.alop-workspace-confirm[b-t8o72h1crb] {
    position: absolute;
    inset: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.45);
}

.alop-workspace-confirm-card[b-t8o72h1crb] {
    width: min(30rem, 92%);
    padding: 1.2rem 1.3rem;
    border-radius: 0.6rem;
    background: #ffffff;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.4);
}

.alop-workspace-confirm-card h3[b-t8o72h1crb] {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
    font-weight: 900;
}

.alop-workspace-confirm-card p[b-t8o72h1crb] {
    margin: 0 0 1rem;
    color: var(--tdl-text-secondary);
    font-size: 0.9rem;
}

.alop-workspace-confirm-actions[b-t8o72h1crb] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
}

/* ===== Misc ===== */

.muted-text[b-t8o72h1crb] {
    color: var(--tdl-text-secondary);
}

.table-wrapper[b-t8o72h1crb] {
    max-width: 100%;
    overflow-x: auto;
}

/* Workflow strip: calm, compact secondary actions */

[b-t8o72h1crb] .alop-df-workflow {
    margin-top: 0;
    padding: 0.75rem 1.1rem 0.9rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: #ffffff;
}

[b-t8o72h1crb] .alop-df-workflow h2 {
    font-size: 0.95rem;
    margin: 0;
}

/* ===== Responsive ===== */

@media (max-width: 1100px) {
    .alop-rezumat-grid[b-t8o72h1crb],
    .alop-preview-grid-two[b-t8o72h1crb] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1024px) {
    /* The backdrop and panel overrides for this breakpoint live in app.css, next to their base
       rules - see the note at the top of this file. */

    .alop-workspace-title[b-t8o72h1crb] {
        max-width: 100%;
        white-space: normal;
    }
}

@media (max-width: 820px) {
    .alop-workspace-header[b-t8o72h1crb] {
        flex-wrap: wrap;
    }

    .alop-workspace-status[b-t8o72h1crb] {
        width: 100%;
        justify-content: space-between;
    }

    .alop-rezumat-header[b-t8o72h1crb],
    .alop-section-card-header[b-t8o72h1crb],
    .alop-validation-panel[b-t8o72h1crb] {
        align-items: stretch;
        flex-direction: column;
    }

    .alop-rezumat-actions[b-t8o72h1crb] {
        justify-content: flex-start;
    }

    .alop-section-summary[b-t8o72h1crb],
    .alop-detail-fields[b-t8o72h1crb],
    .alop-edit-grid[b-t8o72h1crb],
    .alop-line-editor-grid[b-t8o72h1crb] {
        grid-template-columns: 1fr;
    }

    .alop-detail-field--wide[b-t8o72h1crb],
    .alop-edit-field--wide[b-t8o72h1crb],
    .alop-line-editor-field--wide[b-t8o72h1crb] {
        grid-column: auto;
    }

    .alop-edit-actions[b-t8o72h1crb] {
        flex-direction: column-reverse;
    }

    .alop-edit-actions .tdl-btn[b-t8o72h1crb] {
        width: 100%;
    }

    .alop-validation-actions .tdl-btn[b-t8o72h1crb] {
        width: 100%;
    }

    .alop-validation-row-card[b-t8o72h1crb] {
        grid-template-columns: 1fr;
    }

    .alop-workspace-sidepanel[b-t8o72h1crb] {
        width: 100%;
        border-left: 0;
    }

    .alop-workspace-actionbar[b-t8o72h1crb] {
        flex-wrap: wrap;
    }

    .alop-workspace-actionbar-right[b-t8o72h1crb] {
        flex: 1 1 auto;
        justify-content: flex-end;
        flex-wrap: wrap;
    }

    .alop-workspace-tabs[b-t8o72h1crb] {
        gap: 0.25rem;
        padding: 0.45rem 0.6rem;
    }

    .alop-workspace-content[b-t8o72h1crb] {
        padding: 0.7rem 0.75rem 1rem;
    }
}

@media (max-width: 480px) {
    .alop-workspace-meta[b-t8o72h1crb] {
        font-size: 0.78rem;
    }

    .alop-workspace-total[b-t8o72h1crb] {
        font-size: 0.9rem;
    }

    .alop-workspace-saved[b-t8o72h1crb] {
        display: none;
    }
}
/* /Components/Alop/AlopFinancialSummaryBar.razor.rz.scp.css */
.alop-financial-summary[b-t4tofh0g47] {
    display: grid;
    gap: .65rem;
    padding: .7rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .55rem;
    background: var(--bs-tertiary-bg);
}

.alop-financial-summary__status[b-t4tofh0g47] {
    display: flex;
    align-items: center;
    gap: .65rem;
    flex-wrap: wrap;
    color: var(--bs-secondary-color);
    font-size: .82rem;
}

.alop-consistency[b-t4tofh0g47] {
    display: inline-flex;
    gap: .35rem;
    align-items: center;
    padding: .25rem .55rem;
    border-radius: 999px;
    font-weight: 700;
    color: #7a2e0b;
    background: #fff0d7;
    border: 1px solid #edc37f;
}

.alop-consistency--matches[b-t4tofh0g47] {
    color: #12613b;
    background: #e4f7ec;
    border-color: #91d6ad;
}

.alop-consistency--notvalidated[b-t4tofh0g47] {
    color: #475467;
    background: #f2f4f7;
    border-color: #d0d5dd;
}

.alop-consistency--totaldifference[b-t4tofh0g47] {
    color: #9c1c1c;
    background: #ffebeb;
    border-color: #f3abab;
}

.alop-financial-summary__groups[b-t4tofh0g47] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(12rem, .8fr);
    gap: .55rem;
}

.alop-financial-summary__group[b-t4tofh0g47],
.alop-financial-summary__differences[b-t4tofh0g47] {
    display: grid;
    gap: .18rem;
    padding: .55rem .65rem;
    border-radius: .4rem;
    background: var(--bs-body-bg);
    box-shadow: 0 0 0 1px rgba(16, 24, 40, .07);
}

.alop-financial-summary__group > strong[b-t4tofh0g47] {
    margin-bottom: .12rem;
    font-size: .82rem;
}

.alop-financial-summary__group span[b-t4tofh0g47],
.alop-financial-summary__differences span[b-t4tofh0g47] {
    display: flex;
    justify-content: space-between;
    gap: .45rem;
    font-size: .76rem;
}

.alop-financial-summary__group b[b-t4tofh0g47],
.alop-financial-summary__differences strong[b-t4tofh0g47] {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 1100px) {
    .alop-financial-summary__groups[b-t4tofh0g47] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .alop-financial-summary__groups[b-t4tofh0g47] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Alop/AlopGroupedFindingsPanel.razor.rz.scp.css */
.alop-grouped-findings[b-owzj3sxkg5] {
    display: grid;
    gap: .65rem;
    margin-top: .6rem;
}

.alop-validation-group[b-owzj3sxkg5] {
    border: 1px solid var(--tdl-border, var(--tdl-border));
    border-radius: .5rem;
    background: #fff;
    overflow: hidden;
}

.alop-validation-group > summary[b-owzj3sxkg5] {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    padding: .7rem .8rem;
    cursor: pointer;
    background: #f8fafc;
    font-size: .84rem;
}

.alop-validation-group__body[b-owzj3sxkg5] {
    display: grid;
    gap: .5rem;
    padding: .65rem;
}

.alop-validation-row-card[b-owzj3sxkg5] {
    display: grid;
    grid-template-columns: minmax(10rem, .35fr) minmax(0, 1fr) auto;
    align-items: start;
    gap: .65rem;
    padding: .6rem .7rem;
    border-left: 3px solid #64748b;
    background: #f8fafc;
    border-radius: .3rem;
}

.alop-validation-row-card > div[b-owzj3sxkg5] {
    display: grid;
}

.alop-validation-row-card > div span[b-owzj3sxkg5] {
    color: var(--tdl-text-muted, #6b7280);
    font-size: .78rem;
}

.alop-df-finding--error[b-owzj3sxkg5] {
    border-left-color: #b91c1c;
    background: #fef2f2;
}

.alop-df-finding--warning[b-owzj3sxkg5] {
    border-left-color: #a16207;
    background: #fffbeb;
}

.alop-df-finding--information[b-owzj3sxkg5] {
    border-left-color: #0e7490;
    background: #ecfeff;
}

@media (max-width: 760px) {
    .alop-validation-row-card[b-owzj3sxkg5] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Alop/AlopImportCompatibilityWizard.razor.rz.scp.css */
.alop-import-wizard-backdrop[b-yhizffjyxd] {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgb(15 23 42 / 55%);
}

.alop-import-wizard[b-yhizffjyxd] {
    width: min(960px, 100%);
    max-height: calc(100vh - 2rem);
    /* Flex column: header and action bar are fixed rows, only .tdl-modal-body scrolls. Was a
       4-row grid, which stopped matching once the actions moved up next to the header. */
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid #d9dee7;
    border-radius: 8px;
    box-shadow: 0 20px 48px rgb(15 23 42 / 24%);
}

.alop-import-wizard__header[b-yhizffjyxd],
.alop-import-wizard__footer[b-yhizffjyxd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #e5e7eb;
}

.alop-import-wizard__header h2[b-yhizffjyxd] { margin: 0; font-size: 1.25rem; }
.alop-import-wizard__eyebrow[b-yhizffjyxd] { color: #52606d; font-size: .75rem; font-weight: 700; text-transform: uppercase; }
/* Now sits under the header, above the scrolling body, so the rule is the underside border. */
.alop-import-wizard__footer[b-yhizffjyxd] { flex: 0 0 auto; justify-content: flex-end; border-top: 0; border-bottom: 1px solid #e5e7eb; }
.alop-import-wizard__header[b-yhizffjyxd], .alop-import-steps[b-yhizffjyxd] { flex: 0 0 auto; }
.alop-import-wizard .tdl-modal-body[b-yhizffjyxd] { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.alop-import-wizard__body[b-yhizffjyxd] { overflow: auto; padding: 1.25rem; }
.alop-import-mode-note[b-yhizffjyxd] { display: grid; gap: .2rem; margin-bottom: .75rem; }

.alop-import-steps[b-yhizffjyxd] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    margin: 0;
    padding: 0;
    list-style: none;
    background: #dfe3e8;
}

.alop-import-steps li[b-yhizffjyxd] { padding: .6rem .75rem; background: #f5f7fa; color: #697586; text-align: center; font-size: .82rem; }
.alop-import-steps .is-current[b-yhizffjyxd] { background: #e8f1fb; color: #174a7e; font-weight: 700; }
.alop-import-steps .is-complete[b-yhizffjyxd] { background: #e8f5ee; color: #22633f; }
.alop-import-file-summary[b-yhizffjyxd] { display: grid; grid-template-columns: auto 1fr; gap: .25rem .75rem; margin: 1rem 0 0; }
.alop-import-file-summary dt[b-yhizffjyxd], .alop-import-file-summary dd[b-yhizffjyxd] { margin: 0; }
.alop-import-detected[b-yhizffjyxd] { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin-bottom: 1rem; }

.alop-import-metrics[b-yhizffjyxd] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border: 1px solid #dfe3e8;
    border-radius: 6px;
    overflow: hidden;
}

.alop-import-metrics div[b-yhizffjyxd] { min-width: 0; padding: .7rem; border-right: 1px solid #e5e7eb; border-bottom: 1px solid #e5e7eb; }
.alop-import-metrics strong[b-yhizffjyxd], .alop-import-metrics span[b-yhizffjyxd] { display: block; }
.alop-import-metrics span[b-yhizffjyxd] { color: #697586; font-size: .75rem; }
.alop-import-totals[b-yhizffjyxd] { display: flex; gap: 1.25rem; flex-wrap: wrap; padding: .75rem 0; }
.alop-import-section[b-yhizffjyxd] { padding: .75rem 0; border-top: 1px solid #e5e7eb; }
.alop-import-section summary[b-yhizffjyxd] { cursor: pointer; font-weight: 700; }
.alop-import-group[b-yhizffjyxd] { margin-top: .35rem; padding-inline: .75rem; border: 1px solid #e5e7eb; border-radius: 6px; }
.alop-import-group--safe[b-yhizffjyxd] { border-left: 4px solid #278455; background: #f4fbf7; }
.alop-import-group--warning[b-yhizffjyxd] { border-left: 4px solid #b54708; }
.alop-import-group--decision[b-yhizffjyxd] { border-left: 4px solid #7f56d9; }
.alop-import-group--blocking[b-yhizffjyxd] { border-left: 4px solid #b42318; }
.alop-import-repair-table[b-yhizffjyxd] { min-width: 900px; background: #fff; }
.alop-import-repair-table th[b-yhizffjyxd] { color: #52606d; font-size: .75rem; white-space: nowrap; }
.alop-import-repair-value[b-yhizffjyxd] { max-width: 14rem; overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; }
.alop-import-repair-summary[b-yhizffjyxd] { display: flex; flex-wrap: wrap; gap: .45rem; }
.alop-import-repair-summary span[b-yhizffjyxd] { border: 1px solid #b7e2ca; border-radius: 999px; background: #f0fbf5; padding: .2rem .55rem; font-size: .8rem; }
.alop-import-findings[b-yhizffjyxd] { display: grid; gap: .5rem; margin-top: .75rem; }

.alop-import-finding[b-yhizffjyxd] {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: start;
    padding: .65rem .75rem;
    border-left: 3px solid #4c6f91;
    background: #f6f8fa;
}

.alop-import-finding--error[b-yhizffjyxd] { border-left-color: #b42318; background: #fff1f0; }
.alop-import-finding--warning[b-yhizffjyxd] { border-left-color: #b54708; background: #fff7ed; }
.alop-import-finding__severity[b-yhizffjyxd] { font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.alop-import-result-links[b-yhizffjyxd] { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: .4rem; }

.alop-resolution-heading[b-yhizffjyxd],
.alop-resolution-navigation[b-yhizffjyxd],
.alop-resolution-preview[b-yhizffjyxd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
}

.alop-resolution-heading h3[b-yhizffjyxd] { margin: 0; font-size: 1.05rem; }
.alop-resolution-progress[b-yhizffjyxd] { padding: .3rem .6rem; border-radius: 999px; background: #eee9fb; color: #5b3aa3; font-weight: 700; }
.alop-resolution-document[b-yhizffjyxd],
.alop-resolution-explanation[b-yhizffjyxd] { display: grid; gap: .2rem; margin-top: .8rem; padding: .75rem; border-radius: 6px; background: #fff; }
.alop-resolution-document small[b-yhizffjyxd],
.alop-resolution-explanation small[b-yhizffjyxd],
.alop-resolution-option small[b-yhizffjyxd] { color: #697586; }
.alop-resolution-values[b-yhizffjyxd] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin-top: .75rem; }
.alop-resolution-values div[b-yhizffjyxd] { min-width: 0; padding: .55rem .65rem; border: 1px solid #ded7ef; border-radius: 6px; background: #fff; }
.alop-resolution-values span[b-yhizffjyxd],
.alop-resolution-values strong[b-yhizffjyxd] { display: block; }
.alop-resolution-values span[b-yhizffjyxd] { color: #697586; font-size: .75rem; }
.alop-resolution-lines[b-yhizffjyxd] { margin-top: .75rem; }
.alop-resolution-lines .table-responsive[b-yhizffjyxd] { max-width: 100%; }
.alop-resolution-lines table[b-yhizffjyxd] { min-width: 760px; }
.alop-resolution-options[b-yhizffjyxd] { display: grid; gap: .5rem; min-width: 0; margin: .9rem 0 0; padding: 0; border: 0; }
.alop-resolution-options legend[b-yhizffjyxd] { margin-bottom: .25rem; font-size: .9rem; font-weight: 700; }
.alop-resolution-option[b-yhizffjyxd] { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .65rem; align-items: start; min-width: 0; padding: .7rem; border: 1px solid #d9dee7; border-radius: 6px; background: #fff; cursor: pointer; }
.alop-resolution-option.is-selected[b-yhizffjyxd] { border-color: #7f56d9; box-shadow: 0 0 0 2px rgb(127 86 217 / 12%); }
.alop-resolution-option span[b-yhizffjyxd] { display: grid; gap: .15rem; min-width: 0; overflow-wrap: anywhere; }
.alop-resolution-identity[b-yhizffjyxd] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: .8rem; }
.alop-resolution-preview[b-yhizffjyxd] { justify-content: flex-start; margin-top: .8rem; padding: .65rem .75rem; border-left: 4px solid #278455; background: #f4fbf7; }
.alop-resolution-navigation[b-yhizffjyxd] { justify-content: flex-end; margin-top: 1rem; }
.alop-resolution-complete[b-yhizffjyxd] { display: grid; gap: .2rem; padding: .75rem; color: #22633f; background: #f4fbf7; }
.alop-resolution-saved-list[b-yhizffjyxd] { display: grid; gap: .35rem; margin: .6rem 0 0; padding: 0; list-style: none; }
.alop-resolution-saved-list li[b-yhizffjyxd] { display: flex; align-items: center; justify-content: space-between; gap: .5rem; min-width: 0; }

@media (max-width: 700px) {
    .alop-import-wizard-backdrop[b-yhizffjyxd] { padding: 0; }
    .alop-import-wizard[b-yhizffjyxd] { width: 100%; max-height: 100vh; min-height: 100vh; border-radius: 0; }
    .alop-import-metrics[b-yhizffjyxd] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .alop-import-finding[b-yhizffjyxd] { grid-template-columns: 1fr; }
    .alop-import-wizard__footer[b-yhizffjyxd] { flex-wrap: wrap; }
    .alop-resolution-values[b-yhizffjyxd],
    .alop-resolution-identity[b-yhizffjyxd] { grid-template-columns: 1fr; }
    .alop-resolution-navigation .btn[b-yhizffjyxd] { flex: 1 1 auto; }
}
/* /Components/BillingInstitutionNotice.razor.rz.scp.css */
.billing-institution-notice[b-98l2aezt51] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1.25rem;
}

.billing-institution-notice a[b-98l2aezt51] {
    font-weight: 700;
    color: inherit;
    text-decoration: underline;
}
/* /Components/Deletion/SafeDeleteDialog.razor.rz.scp.css */
/*
   Dialogul comun de ștergere în siguranță.

   Discret pe cât se poate: lista dependențelor este informație, nu o alarmă. Roșul rămâne al
   butonului de confirmare, singurul loc unde chiar se întâmplă ceva ireversibil.

   Fără culori noi: totul din tokenii TDL.
*/

.safe-delete-dialog__lead[b-e875pwrw8z] {
    margin: 0 0 0.35rem;
    color: var(--tdl-text-secondary);
    font-size: 0.86rem;
}

.safe-delete-dialog__dependencies[b-e875pwrw8z] {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.safe-delete-dialog__dependencies li[b-e875pwrw8z] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    padding: 0.35rem 0.55rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-primary);
    font-size: 0.88rem;
}

.safe-delete-dialog__dependencies strong[b-e875pwrw8z] {
    font-variant-numeric: tabular-nums;
}

.safe-delete-dialog__note[b-e875pwrw8z] {
    margin: 0.75rem 0 0;
    color: var(--tdl-text-muted);
    font-size: 0.8rem;
}
/* /Components/EFacturaTransmissionPanel.razor.rz.scp.css */
/*
    Gridul de transmitere RO e-Factura.

    Aerisit, nu dens ca aplicația desktop: rândurile se citesc pe verticală, iar selecția trebuie să se
    vadă dintr-o privire, pentru că de ea depinde ce pleacă la ANAF.
*/

.efactura-panel[b-d5axn49c8i] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

/* ── Toolbar ───────────────────────────────────────── */

.efactura-toolbar[b-d5axn49c8i] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem;
}

.efactura-filters[b-d5axn49c8i] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.6rem;
}

.efactura-field[b-d5axn49c8i] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.efactura-field-label[b-d5axn49c8i] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #6b7280;
}

.efactura-select-actions[b-d5axn49c8i] {
    display: flex;
    gap: 0.4rem;
}

/*
    Tasta scrisă lângă etichetă, nu în locul ei. Un buton „S" singur nu spune nimic cuiva care nu a
    folosit aplicația desktop; eticheta explică, iar <kbd> adaugă scurtătura fără să o impună.
*/
.efactura-kbd[b-d5axn49c8i] {
    display: inline-block;
    min-width: 1.35rem;
    margin-left: 0.35rem;
    padding: 0.05rem 0.3rem;
    border: 1px solid var(--tdl-border, #d1d5db);
    border-bottom-width: 2px;
    border-radius: 4px;
    background: #f9fafb;
    font-family: var(--font-mono, monospace);
    font-size: 0.7rem;
    line-height: 1.4;
    color: #4b5563;
}

/* ── Tabel ─────────────────────────────────────────── */

/*
    Învelișul gridului. NU este `.table-responsive`: acela are `overflow: auto` pe amândouă axele,
    deci devenea un al doilea container care derulează pe verticală, înghesuit în cel al dialogului.
    Consecințele se vedeau amândouă pe ecran: o a doua bară de derulare peste ultima coloană, și un
    antet de tabel care nu se putea lipi sus, pentru că se raporta la învelișul acesta, nu la zona
    care chiar derula.

    Aici nu se decupează nimic. Când tabelul nu încape - ferestre înguste - derularea pe orizontală
    o face zona modalului, singurul scroller, iar coloana „Document" rămâne accesibilă în loc să fie
    tăiată de marginea dialogului.
*/
.efactura-table-wrap[b-d5axn49c8i] {
    min-width: 0;
    border-radius: var(--tdl-radius-md, 8px);
}

.efactura-table[b-d5axn49c8i] {
    font-size: 0.86rem;
}

/*
    Antetul rămâne la vedere peste rândurile care trec pe sub el. Se lipește de zona care derulează
    a dialogului - `.spv-sync-modal-body` - pentru că, între el și ea, niciun element nu mai
    declară overflow. Exact asta cerea eliminarea `.table-responsive`.
*/
.efactura-table thead th[b-d5axn49c8i] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--tdl-surface, #fff);
}

/*
    Coloanele scurte nu se rup: „119,00 RON" pe două rânduri și „02.09.2026" pe trei fac tabelul de
    două ori mai înalt fără să adauge o informație. Clientul primește restul lățimii, iar dacă tot nu
    încape, învelișul .table-responsive derulează orizontal - o dată, nu în fiecare celulă.
*/
.efactura-table td:not(:nth-child(5))[b-d5axn49c8i],
.efactura-table th[b-d5axn49c8i] {
    white-space: nowrap;
}

/*
    Clientul este singura coloană cu text de lungime imprevizibilă, deci este singura care primește
    lățime elastică: minimul o ține lizibilă, maximul o oprește înainte să împingă coloana
    „Document" în afara ecranului. Peste maxim, denumirea se rupe pe două rânduri - `anywhere`,
    pentru că „S.C. INTERNATIONAL CONSULTING" nu are unde să se despartă altfel.
*/
.efactura-table td:nth-child(5)[b-d5axn49c8i] {
    min-width: 12rem;
    max-width: 20rem;
    overflow-wrap: anywhere;
}

/*
    Coloanele scurte nu au voie să ia lățime pe care nu o folosesc. Fără plafon, algoritmul de tabel
    împarte spațiul rămas între toate coloanele, iar „Tip" sau „Index încărcare" ajungeau la fel de
    late ca denumirea clientului - lățime luată chiar de la capătul din dreapta al tabelului.
*/
.efactura-table th:nth-child(3)[b-d5axn49c8i],
.efactura-table td:nth-child(3)[b-d5axn49c8i],
.efactura-table th:nth-child(4)[b-d5axn49c8i],
.efactura-table td:nth-child(4)[b-d5axn49c8i],
.efactura-table th:nth-child(8)[b-d5axn49c8i],
.efactura-table td:nth-child(8)[b-d5axn49c8i],
.efactura-table th:nth-child(10)[b-d5axn49c8i],
.efactura-table td:nth-child(10)[b-d5axn49c8i] {
    width: 1%;
}

/* Coloana de acțiuni rămâne întreagă: butonul nu se rupe și nu se strânge. */
.efactura-table th:last-child[b-d5axn49c8i],
.efactura-table td:last-child[b-d5axn49c8i] {
    width: 1%;
    white-space: nowrap;
}

.efactura-table thead th[b-d5axn49c8i] {
    white-space: nowrap;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #6b7280;
}

.efactura-table tbody tr[b-d5axn49c8i] {
    transition: background-color 120ms ease;
}

/*
    Selecția colorează rândul întreg, nu doar caseta. Într-un tabel de 40 de rânduri, o bifă de 20px
    este prea puțin pentru a răspunde la „ce urmează să transmit?".
*/
.efactura-row--selected[b-d5axn49c8i] {
    background: var(--tdl-primary-soft, #eff6ff);
}

/* Rândurile pe care nu se poate acționa acum stau deja la coadă; retragerea este discretă, doar cât
   să confirme gruparea. Nu se atenuează sub pragul de lizibilitate - starea și motivul blocării
   trebuie să rămână de citit, nu doar de bănuit. */
.efactura-row--inactionable[b-d5axn49c8i] {
    color: var(--tdl-text-secondary, #55606b);
}

.efactura-row--inactionable.efactura-row--selected[b-d5axn49c8i] {
    color: inherit;
}

.efactura-select-cell[b-d5axn49c8i] {
    width: 2.75rem;
    text-align: center;
}

.efactura-number[b-d5axn49c8i] {
    font-family: var(--font-mono, monospace);
    font-weight: 600;
}

/* Numărul este o acțiune, nu doar text: deschide detaliile facturii. Arată ca un link, dar rămâne
   <button>, pentru că nu navighează nicăieri. */
.efactura-number-link[b-d5axn49c8i] {
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: var(--tdl-primary, #2563eb);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.efactura-number-link:hover[b-d5axn49c8i] {
    color: var(--tdl-primary-active, #1d4ed8);
}

.efactura-number-link:focus-visible[b-d5axn49c8i] {
    outline: 2px solid var(--tdl-primary, #2563eb);
    outline-offset: 2px;
    border-radius: 3px;
}

.efactura-index[b-d5axn49c8i] {
    font-family: var(--font-mono, monospace);
    font-size: 0.8rem;
}

.efactura-type[b-d5axn49c8i] {
    font-size: 0.78rem;
}

.efactura-type--correction[b-d5axn49c8i] {
    font-weight: 600;
    color: #b45309;
}

/* Punct discret lângă starea unei facturi pe care ANAF încă o procesează. */
.efactura-inflight[b-d5axn49c8i] {
    margin-left: 0.3rem;
    color: var(--tdl-primary, #2563eb);
    font-weight: 700;
}

.efactura-footer[b-d5axn49c8i] {
    font-size: 0.8rem;
}

.efactura-batch-issues[b-d5axn49c8i] {
    margin: 0.4rem 0 0;
    padding-left: 1.1rem;
    font-size: 0.82rem;
}

/* ── Bara de acțiune ───────────────────────────────── */

/*
    Apare doar când există o selecție și rămâne lipită jos: operatorul care a derulat până la rândul
    40 nu trebuie să urce înapoi ca să transmită.
*/
.efactura-action-bar[b-d5axn49c8i] {
    position: sticky;
    bottom: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--tdl-primary-soft-border, #bfdbfe);
    border-radius: var(--tdl-radius-lg, 10px);
    background: var(--tdl-primary-soft, #eff6ff);
    box-shadow: 0 -2px 10px rgb(15 23 42 / 6%);
}

.efactura-action-count[b-d5axn49c8i] {
    font-weight: 600;
    color: var(--tdl-primary-active, #1d4ed8);
}

.efactura-action-buttons[b-d5axn49c8i] {
    display: flex;
    gap: 0.5rem;
}

@media (max-width: 720px) {
    .efactura-toolbar[b-d5axn49c8i] {
        flex-direction: column;
        align-items: stretch;
    }

    .efactura-action-bar[b-d5axn49c8i] {
        flex-direction: column;
        align-items: stretch;
    }

    .efactura-action-buttons[b-d5axn49c8i] {
        justify-content: stretch;
    }

    .efactura-action-buttons .btn[b-d5axn49c8i] {
        flex: 1;
    }
}

/* ── Vizualizatorul documentului ───────────────────── */

/*
   Fără `::deep`, spre deosebire de varianta anterioară: markup-ul nu mai stă într-un <TdlModal>
   copil, ci este randat chiar de componenta asta, deci poartă atributul ei de scope. `::deep` ar
   mai funcționa - rădăcina panoului are scope - dar ar spune că elementele vin de altundeva, ceea
   ce nu mai este adevărat.
*/

.efactura-preview[b-d5axn49c8i] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
}

.efactura-preview-head[b-d5axn49c8i] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.efactura-preview-eyebrow[b-d5axn49c8i] {
    color: var(--tdl-primary-hover, #1d4ed8);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.efactura-preview-title[b-d5axn49c8i] {
    margin: 0;
    color: var(--tdl-text-primary, #0f172a);
    font-size: 1.25rem;
    font-weight: 800;
}

.efactura-preview-subtitle[b-d5axn49c8i] {
    margin: 0;
    color: var(--tdl-text-muted, #6b7280);
    font-size: 0.88rem;
}

/*
   Acțiunile documentului. Se rup pe mai multe rânduri, nu se strâng: patru butoane strivite la
   lățimea unui telefon devin patru ținte pe care nu le nimerește nimeni.
*/
.efactura-preview-actions[b-d5axn49c8i] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--tdl-border, #dee2e6);
}

.efactura-preview-tabs[b-d5axn49c8i] {
    display: flex;
    gap: 0.25rem;
    border-bottom: 1px solid var(--tdl-border, #dee2e6);
}

.efactura-preview-tab[b-d5axn49c8i] {
    appearance: none;
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    padding: 0.4rem 0.9rem;
    font-weight: 600;
    color: var(--tdl-text-muted, #6c757d);
    cursor: pointer;
}

.efactura-preview-tab.is-active[b-d5axn49c8i] {
    color: var(--tdl-text, #212529);
    border-bottom-color: var(--tdl-primary, #0d6efd);
}

.efactura-preview-tab:focus-visible[b-d5axn49c8i] {
    outline: 2px solid var(--tdl-primary, #2563eb);
    outline-offset: -2px;
    border-radius: 4px 4px 0 0;
}

.efactura-preview-meta[b-d5axn49c8i] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
}

.efactura-preview-badge[b-d5axn49c8i] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-weight: 600;
    font-size: 0.78rem;
    background: var(--tdl-surface-muted, #eef1f5);
    color: var(--tdl-text, #212529);
}

/* Payload-ul chiar transmis la ANAF se distinge de o simplă previzualizare. */
.efactura-preview-badge--sent[b-d5axn49c8i] {
    background: #e7f4ea;
    color: #14532d;
}

.efactura-preview-xml[b-d5axn49c8i] {
    margin: 0;
    max-height: 60vh;
    overflow: auto;
    padding: 0.75rem;
    background: var(--tdl-surface-muted, #f6f8fa);
    border: 1px solid var(--tdl-border, #dee2e6);
    border-radius: 0.375rem;
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
    font-size: 0.8rem;
    line-height: 1.45;
    /* XML-ul se afișează exact cum a fost generat: fără rewrap, cu scroll orizontal. */
    white-space: pre;
    tab-size: 2;
}

/* ── Verdictul și PDF-ul ANAF ──────────────────────── */

.efactura-anaf-progress[b-d5axn49c8i] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 1.25rem 0.75rem;
    color: var(--tdl-text-secondary, #55606b);
    font-size: 0.92rem;
}

.efactura-anaf-spinner[b-d5axn49c8i] {
    width: 1rem;
    height: 1rem;
    flex: none;
    border: 2px solid var(--tdl-border, #dee2e6);
    border-top-color: var(--tdl-primary, #2563eb);
    border-radius: 50%;
    animation: efactura-anaf-spin-b-d5axn49c8i 700ms linear infinite;
}

@keyframes efactura-anaf-spin-b-d5axn49c8i {
    to { transform: rotate(360deg); }
}

/* Cine nu vrea mișcare pe ecran primește doar starea, scrisă alături. */
@media (prefers-reduced-motion: reduce) {
    .efactura-anaf-spinner[b-d5axn49c8i] {
        animation: none;
    }
}

.efactura-anaf-verdict[b-d5axn49c8i] {
    padding: 0.65rem 0.85rem;
    border-radius: var(--tdl-radius-md, 8px);
    border-left: 4px solid transparent;
    font-size: 0.9rem;
}

.efactura-anaf-verdict--ok[b-d5axn49c8i] {
    background: #ecfdf5;
    border-left-color: #059669;
    color: #065f46;
    font-weight: 600;
}

.efactura-anaf-verdict--error[b-d5axn49c8i] {
    background: #fef2f2;
    border-left-color: #dc2626;
    color: #7f1d1d;
}

/*
   Chihlimbariu, nu roșu, și nu pentru că ANAF ar fi trimis un „warning" - serviciul lor nu trimite
   niciun nivel de gravitate. Este singura reîncadrare pe care o face aplicația, și doar pentru un
   payload DEJA TRANSMIS: acolo verdictul fiscal a fost dat la data transmiterii, iar o regulă nouă
   nu îl poate anula retroactiv. Roșul ar spune „repară", iar aici nu mai e nimic de reparat.
*/
.efactura-anaf-verdict--observation[b-d5axn49c8i] {
    background: #fffbeb;
    border-left-color: #d97706;
    color: #78350f;
}

.efactura-anaf-service-detail[b-d5axn49c8i] {
    margin-top: 0.35rem;
    font-size: 0.82rem;
}

.efactura-anaf-issues[b-d5axn49c8i] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Fiecare regulă pe cardul ei: o listă continuă de reguli lungi se citește ca un perete de text. */
.efactura-anaf-issue[b-d5axn49c8i] {
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--tdl-border, #dee2e6);
    border-left-width: 4px;
    border-radius: var(--tdl-radius-md, 8px);
    background: var(--tdl-surface, #fff);
    font-size: 0.88rem;
}

.efactura-anaf-issue--error[b-d5axn49c8i] {
    border-left-color: #dc2626;
}

.efactura-anaf-issue--observation[b-d5axn49c8i] {
    border-left-color: #d97706;
}

/* Codul oficial rămâne vizibil și copiabil: este limbajul comun cu ANAF. */
.efactura-anaf-issue-code[b-d5axn49c8i] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--tdl-text-secondary, #55606b);
}

.efactura-anaf-issue-title[b-d5axn49c8i] {
    margin: 0.15rem 0 0.4rem;
    font-weight: 700;
    color: var(--tdl-text-primary, #0f172a);
}

.efactura-anaf-issue-row[b-d5axn49c8i] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.2rem;
}

.efactura-anaf-issue-label[b-d5axn49c8i] {
    flex: none;
    font-weight: 600;
    color: var(--tdl-text-secondary, #55606b);
}

.efactura-anaf-issue-value[b-d5axn49c8i] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    /* Valoarea din document se rupe unde trebuie; o adresă lungă nu întinde cardul. */
    overflow-wrap: anywhere;
}

.efactura-anaf-issue-official[b-d5axn49c8i] {
    margin-top: 0.4rem;
    padding-top: 0.4rem;
    border-top: 1px dashed var(--tdl-border, #dee2e6);
    color: var(--tdl-text-secondary, #55606b);
    font-size: 0.84rem;
}

.efactura-anaf-issue-technical[b-d5axn49c8i] {
    margin-top: 0.5rem;
    font-size: 0.8rem;
}

.efactura-anaf-issue-technical summary[b-d5axn49c8i] {
    cursor: pointer;
    color: var(--tdl-text-muted, #6b7280);
}

.efactura-anaf-issue-raw[b-d5axn49c8i] {
    margin: 0.4rem 0 0;
    padding: 0.5rem;
    max-height: 14rem;
    overflow: auto;
    background: var(--tdl-surface-muted, #f6f8fa);
    border-radius: 0.375rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.74rem;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/*
   Vizualizatorul PDF.

   Înălțimea este legată de fereastră, nu de conținut: `dvh` ține cont de bara de adrese pe mobil.
   Cadrul nu poate crește peste dialogul care îl conține - `max-height` se raportează la aceeași
   fereastră din care dialogul își ia și el 92dvh - deci nu apare situația în care documentul
   împinge shell-ul în afara ecranului.
*/
.efactura-anaf-pdf[b-d5axn49c8i] {
    min-width: 0;
}

.efactura-anaf-pdf-frame[b-d5axn49c8i] {
    display: block;
    width: 100%;
    height: min(62dvh, 780px);
    border: 1px solid var(--tdl-border, #dee2e6);
    border-radius: var(--tdl-radius-md, 8px);
    background: var(--tdl-surface-muted, #f6f8fa);
}

@media (max-width: 720px) {
    .efactura-preview-actions .btn[b-d5axn49c8i] {
        flex: 1 1 45%;
    }

    .efactura-anaf-pdf-frame[b-d5axn49c8i] {
        height: min(55dvh, 520px);
    }
}
/* /Components/Email/InvoiceEmailSenderField.razor.rz.scp.css */
/*
 * Cardul de expeditor din modalul de trimitere.
 *
 * Rangul vizual este intenționat: identitatea de pe care pleacă factura este o informație, nu o
 * notă de subsol, iar conectarea unei adrese este o acțiune, nu un link de documentație.
 */
.invoice-email-sender[b-l4yqwiuevw] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.invoice-email-sender__card[b-l4yqwiuevw] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface-soft);
}

.invoice-email-sender__icon[b-l4yqwiuevw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary);
    font-weight: 700;
}

.invoice-email-sender__identity[b-l4yqwiuevw] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
    flex: 1 1 auto;
}

.invoice-email-sender__name[b-l4yqwiuevw] {
    font-weight: 600;
    color: var(--tdl-text-primary);
    overflow-wrap: anywhere;
}

.invoice-email-sender__note[b-l4yqwiuevw] {
    font-size: 0.8rem;
    color: var(--tdl-text-secondary);
}

.invoice-email-sender__note--block[b-l4yqwiuevw] {
    display: block;
}

.invoice-email-sender__connect[b-l4yqwiuevw] {
    flex: 0 0 auto;
    white-space: nowrap;
}

@media (max-width: 560px) {
    .invoice-email-sender__card[b-l4yqwiuevw] {
        flex-wrap: wrap;
    }

    .invoice-email-sender__connect[b-l4yqwiuevw] {
        flex: 1 1 100%;
    }
}
/* /Components/Email/MailboxConnectPanel.razor.rz.scp.css */
/*
 * Panoul de conectare a cutiei poștale personale.
 *
 * Nu are backdrop, nu are z-index și nu se poziționează fix: este conținut, iar învelișul îl dă
 * gazda. Așa poate sta în corpul modalului de trimitere fără să existe două straturi de dialog
 * suprapuse.
 */
.mailbox-connect[b-79z02wnslk] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.mailbox-connect__intro[b-79z02wnslk] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.mailbox-connect__title[b-79z02wnslk] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--tdl-text-primary);
}

.mailbox-connect__lead[b-79z02wnslk] {
    margin: 0;
    font-size: 0.86rem;
    color: var(--tdl-text-secondary);
}

.mailbox-connect__section-title[b-79z02wnslk] {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--tdl-text-secondary);
}

/* Trei carduri de furnizor. Se strâng într-o coloană înainte să se strivească textul. */
.mailbox-connect__providers[b-79z02wnslk] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: 0.65rem;
}

.mailbox-connect__provider[b-79z02wnslk] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 0.85rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface-soft);
}

.mailbox-connect__provider-name[b-79z02wnslk] {
    font-weight: 700;
    color: var(--tdl-text-primary);
}

.mailbox-connect__provider-note[b-79z02wnslk] {
    flex: 1 1 auto;
    font-size: 0.8rem;
    color: var(--tdl-text-secondary);
}

.mailbox-connect__form[b-79z02wnslk] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.mailbox-connect__form .form-field--wide[b-79z02wnslk] {
    grid-column: 1 / -1;
}

.mailbox-connect__help-toggle[b-79z02wnslk] {
    align-self: flex-start;
    padding-left: 0;
}

.mailbox-connect__help[b-79z02wnslk] {
    margin: 0;
    padding-left: 1.2rem;
    font-size: 0.83rem;
    line-height: 1.5;
    color: var(--tdl-text-secondary);
}

.mailbox-connect__actions[b-79z02wnslk] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.mailbox-connect__footer[b-79z02wnslk] {
    display: flex;
    justify-content: flex-start;
}

.mailbox-connect__failure[b-79z02wnslk] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--tdl-danger-soft-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-danger-soft);
    font-size: 0.84rem;
    color: var(--tdl-danger);
}

.mailbox-connect__failure > span[b-79z02wnslk] {
    flex: 1 1 16rem;
}

.mailbox-connect__accounts[b-79z02wnslk] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.mailbox-connect__account[b-79z02wnslk] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.65rem 0.8rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface);
}

.mailbox-connect__account-identity[b-79z02wnslk] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.mailbox-connect__account-address[b-79z02wnslk] {
    font-weight: 600;
    word-break: break-all;
}

.mailbox-connect__account-meta[b-79z02wnslk] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: var(--tdl-text-secondary);
}

.mailbox-connect__account-error[b-79z02wnslk] {
    font-size: 0.8rem;
    color: var(--tdl-warning);
}

.mailbox-connect__account-actions[b-79z02wnslk] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

@media (max-width: 720px) {
    .mailbox-connect__form[b-79z02wnslk] {
        grid-template-columns: 1fr;
    }

    .mailbox-connect__actions .btn[b-79z02wnslk] {
        flex: 1 1 10rem;
    }
}
/* /Components/InstitutionSelectorPlaceholder.razor.rz.scp.css */
.institution-selector[b-tw4gwg4zek] {
    display: inline-flex;
    align-items: stretch;
    min-width: min(18rem, 100%);
    max-width: 32rem;
    flex: 0 1 auto;
    border: 1px solid var(--tdl-border-strong);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface);
    box-shadow: var(--tdl-shadow-sm);
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.institution-selector:hover[b-tw4gwg4zek] {
    border-color: var(--tdl-border-strong);
}

.institution-selector:focus-within[b-tw4gwg4zek] {
    border-color: var(--tdl-primary);
    box-shadow: 0 0 0 3px rgba(74, 116, 148, 0.18);
}

.institution-selector-label[b-tw4gwg4zek] {
    display: inline-flex;
    align-items: center;
    padding: 0 0.85rem;
    background: var(--tdl-surface-soft);
    border-right: 1px solid var(--tdl-border);
    color: var(--tdl-text-muted);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.institution-selector-select[b-tw4gwg4zek] {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    min-height: 2.3rem;
    padding-right: 2rem;
    padding-left: 0.75rem;
    color: var(--tdl-text-primary);
    font-weight: 600;
    min-width: 0;
    max-width: 24rem;
    flex: 1 1 auto;
    text-overflow: ellipsis;
}

.institution-loading[b-tw4gwg4zek] {
    cursor: progress;
}

/*
 * On a phone the selector gets the whole row rather than sharing it with the live badge and the
 * bell, which squeezed the institution name until only the first word survived - and the
 * institution is the one piece of context every figure on the page depends on.
 */
@media (max-width: 760px) {
    .institution-selector[b-tw4gwg4zek] {
        min-width: 100%;
        width: 100%;
        /* Beats flex-shrink from .topbar-actions; without it the row still divides itself up. */
        flex: 1 1 100%;
    }

    .institution-selector-select[b-tw4gwg4zek] {
        max-width: none;
        flex: 1;
        min-height: 2.75rem;
    }
}

/* Narrow enough that label and value side by side leave neither of them room. */
@media (max-width: 480px) {
    .institution-selector[b-tw4gwg4zek] {
        flex-direction: column;
        align-items: stretch;
    }

    .institution-selector-label[b-tw4gwg4zek] {
        padding: 0.35rem 0.75rem;
        border-right: 0;
        border-bottom: 1px solid var(--tdl-border);
    }
}

/* Hide the legacy selected-institution-name element if any old markup still uses it */
.selected-institution-name[b-tw4gwg4zek] { display: none; }
/* /Components/InvoiceBusinessTypeSelector.razor.rz.scp.css */
/* Segmented control: one connected bar, the active segment lifted out of it. */

.business-type-selector[b-yeivy1x9ig] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    padding: 0.2rem;
    border: 1px solid var(--border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-muted);

    /* The bar is as wide as its three segments. Inside a stretching form field it would otherwise
       span the whole row, which reads as a toolbar rather than a choice between three options. */
    width: fit-content;
    align-self: start;
    max-width: 100%;
}

.business-type-option[b-yeivy1x9ig] {
    appearance: none;
    border: 1px solid transparent;
    border-radius: calc(var(--tdl-radius-md) - 0.1rem);
    background: transparent;
    color: var(--text-secondary);
    font-size: 0.85rem;
    font-weight: 500;
    line-height: 1.4;
    padding: 0.35rem 1.1rem;
    cursor: pointer;
    transition: background .12s, color .12s, border-color .12s, box-shadow .12s;
    white-space: nowrap;
}

.business-type-option:hover:not(:disabled):not(.business-type-option--active)[b-yeivy1x9ig] {
    background: var(--tdl-surface);
    color: var(--text-primary);
}

/* Selection is carried by fill, weight AND border, never by colour alone. */
.business-type-option--active[b-yeivy1x9ig] {
    background: var(--tdl-surface);
    border-color: var(--tdl-primary-soft-border);
    color: var(--tdl-primary-active);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .08);
}

/* The group is one tab stop, so the focus ring has to be unmistakable when it lands. */
.business-type-option:focus-visible[b-yeivy1x9ig] {
    outline: 2px solid var(--tdl-primary);
    outline-offset: 1px;
}

.business-type-option:disabled[b-yeivy1x9ig] {
    cursor: not-allowed;
    opacity: .6;
}

@media (max-width: 560px) {
    .business-type-selector[b-yeivy1x9ig] {
        display: flex;
        width: 100%;
    }

    .business-type-option[b-yeivy1x9ig] {
        flex: 1 1 auto;
        padding: 0.35rem 0.5rem;
        text-align: center;
    }
}
/* /Components/InvoiceLineProductField.razor.rz.scp.css */
.line-product-field[b-cpdn90ybn2] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.line-product-input-row[b-cpdn90ybn2] {
    display: flex;
    gap: .5rem;
    align-items: stretch;
}

.line-product-input-row .form-control[b-cpdn90ybn2] {
    flex: 1 1 auto;
    min-width: 0;
}

.line-product-catalog-btn[b-cpdn90ybn2] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    white-space: nowrap;
}

@media (max-width: 520px) {
    /* The icon carries the meaning once the label no longer fits; the aria-label still names it. */
    .line-product-catalog-btn-text[b-cpdn90ybn2] {
        display: none;
    }
}
/* /Components/InvoicePaymentsPanel.razor.rz.scp.css */
/* Sumar orientat pe factura: valoare, incasat, rest. Al treilea capata accent cand mai e sold. */
.invoice-payments-summary[b-wefzq93tat] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: .6rem;
    margin-bottom: .9rem;
}

.invoice-payments-summary > div[b-wefzq93tat] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding: .55rem .7rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md, .4rem);
    background: var(--tdl-surface-muted);
}

.invoice-payments-summary span[b-wefzq93tat] {
    color: var(--tdl-text-muted);
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.invoice-payments-summary strong[b-wefzq93tat] {
    font-size: 1rem;
    font-weight: 800;
    white-space: nowrap;
}

.invoice-payments-summary__due strong[b-wefzq93tat] { color: var(--tdl-danger, #b02a37); }
.invoice-payments-summary__settled strong[b-wefzq93tat] { color: var(--tdl-success, #1a7f4b); }

.invoice-payments-form__grid[b-wefzq93tat] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: .6rem .8rem;
}

.invoice-payments-form__actions[b-wefzq93tat] {
    display: flex;
    gap: .5rem;
    margin-top: .7rem;
}

.invoice-payments-history-title[b-wefzq93tat] {
    margin: 1.1rem 0 .5rem;
    font-size: .95rem;
    font-weight: 800;
}

/* Marcaj discret: randul arata alocarea catre factura curenta, nu totalul incasarii. */
.invoice-payment-distributed[b-wefzq93tat] {
    display: inline-block;
    margin-left: .4rem;
    padding: .05rem .4rem;
    border-radius: 999px;
    background: var(--tdl-surface-muted);
    border: 1px solid var(--tdl-border);
    color: var(--tdl-text-muted);
    font-size: .68rem;
    font-weight: 700;
    white-space: nowrap;
}

/* Confirmarea stergerii, in panou. Un al treilea strat de overlay peste modalul facturii ar fi
   fost mai greu de inchis decat operatia in sine. */
.invoice-payments-confirm[b-wefzq93tat] {
    margin: .8rem 0;
    padding: .7rem .85rem;
    border: 1px solid var(--tdl-danger-soft-border, #f0c2c7);
    border-left: 4px solid var(--tdl-danger, #b02a37);
    border-radius: var(--tdl-radius-md, .4rem);
    background: var(--tdl-danger-soft, #fdf2f3);
}

.invoice-payments-confirm__title[b-wefzq93tat] {
    font-weight: 800;
    margin-bottom: .25rem;
}

.invoice-payments-confirm__text[b-wefzq93tat] {
    color: var(--tdl-text-secondary);
    font-size: .86rem;
}

.invoice-payments-confirm__actions[b-wefzq93tat] {
    display: flex;
    gap: .5rem;
    margin-top: .6rem;
}
/* /Components/Invoices/InvoiceDocumentFiscalClassic.razor.rz.scp.css */
/* =================================================================================================
   "Factură fiscală clasică" - the typed form, cod 14-4-10/A.

   The geometry here is the deliverable, so it is written in millimetres and never left to content.
   Scoped to this component, so these rules and the Modern template's cannot reach each other.
   ================================================================================================= */

/* The grey desk the sheet sits on. Screen only - print paints nothing behind the page. */
.fx-screen[b-8kojrpw1k1] {
    display: flex;
    justify-content: center;
    padding: 8mm 0;
    background: #e8eaed;
    min-height: 100vh;
}

/* ── The sheet ──────────────────────────────────────────────────────────────────────────────────── */
.fx-sheet[b-8kojrpw1k1] {
    position: relative;
    box-sizing: border-box;
    width: 210mm;
    min-height: 272mm;
    padding: 12mm 11mm 3mm;
    flex: 0 0 auto;
    background: #fff;
    color: #000;
    font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
    font-size: 3.1mm;
    line-height: 1.15;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .25);
}

/* The single outer rule of the form. */
.fx-frame[b-8kojrpw1k1] {
    position: relative;
    width: 188mm;
    min-height: 257mm;
    box-sizing: border-box;
    border: 0.35mm solid #000;
    display: flex;
    flex-direction: column;
}

/* ── Header band ─────────────────────────────────────────────────────────────────────────────────

   The printed form's head, reproduced. Three columns of rubrics with dotted rules, the series and
   number line, the title, and the one boxed block.

   Rows are placed on a millimetre grid measured off the reference sheet, not flowed: a rubric sits
   where the form puts it whether or not the application holds a value for it. A dotted leader is a
   placeholder only: completed fields show label and value without decorative dots.

   InvoicePdfService draws the same millimetres.
   ─────────────────────────────────────────────────────────────────────────────────────────────── */
.fx-head[b-8kojrpw1k1] {
    flex: 0 0 71.5mm;
    display: flex;
    box-sizing: border-box;
    padding: 6.3mm 0 0 0;
    overflow: hidden;
}

/*
   Column edges from the reference: 13.5 / 78.5 / 138.5mm inside a frame that starts at 11mm, so the
   three columns are 65 + 60 + 63 = 188mm, the full width of the frame.

   Every column is pinned and every column carries `min-width: 0`. Without it a column's automatic
   minimum size is its min-content width, so a long label pushed the left column past its 65mm and the
   only flexible column - the buyer's - was squeezed to a third of its width, where even the label
   "Nr.ord.Reg.Com./an" no longer fitted. The form's column edges are part of the form: they do not
   move because of what a particular invoice happens to contain.
*/
.fx-col--left[b-8kojrpw1k1] {
    flex: 0 0 65mm;
    min-width: 0;
    padding-left: 2.5mm;
}

.fx-col--doc[b-8kojrpw1k1] {
    flex: 0 0 60mm;
    min-width: 0;
    padding-left: 4mm;
}

.fx-col--right[b-8kojrpw1k1] {
    flex: 0 0 63mm;
    min-width: 0;
    padding-left: 2mm;
}

/* ── A rubric ─────────────────────────────────────────────────────────────────────────────────── */

.fx-rub[b-8kojrpw1k1] {
    display: flex;
    align-items: baseline;
    gap: 1mm;
    height: 5.4mm;
    overflow: hidden;
    white-space: nowrap;
}

.fx-rub-label[b-8kojrpw1k1] {
    flex: 0 0 auto;
    font-size: 2.9mm;
}

/*
   The value sits on the rule. It steps down three sizes before it is allowed to reach the end of the
   field, because clipping it is not an option: fiscal identity is the one thing a document may not
   hide. The four sizes are the same ladder the PDF uses (8.4 / 7.2 / 6.2 / 5pt), so the same invoice
   is set the same way in the browser and on the server.

   `min-width: 0` lets the flex item shrink so it can never push the rule off the field.
*/
.fx-rub-value[b-8kojrpw1k1] {
    flex: 0 1 auto;
    min-width: 0;
    font-size: 2.9mm;
}

.fx-rub-value--small[b-8kojrpw1k1] {
    font-size: 2.5mm;
}

.fx-rub-value--tiny[b-8kojrpw1k1] {
    font-size: 2.15mm;
}

.fx-rub-value--micro[b-8kojrpw1k1] {
    font-size: 1.75mm;
}

.fx-rub-lead[b-8kojrpw1k1] {
    display: none;
}

.fx-rub-blank[b-8kojrpw1k1] { display: inline-block; flex: 1 1 auto; min-width: 8mm; height: 1em; }

.fx-rub-lead--wide[b-8kojrpw1k1] {
    flex-grow: 1.4;
}

/*
   The two rubrics the form prints twice - the buyer's name and the seat address - because neither
   fits one rule. The rules are painted as backgrounds at the two baselines so the value flows across
   both: a flex leader can only sit after the value on one line, which is what clipped a 55-character
   company name and what dropped a long address onto the note between the rules.
*/
.fx-rub-pair[b-8kojrpw1k1] {
    height: 10.8mm;
    line-height: 5.4mm;
    overflow: hidden;
    overflow-wrap: break-word;
}

.fx-rub-pair--empty[b-8kojrpw1k1] {
    background: none;
}

.fx-rub-pair--filled[b-8kojrpw1k1] {
    background: none;
}

    .fx-rub-pair .fx-rub-label[b-8kojrpw1k1] {
        margin-right: 1mm;
    }

/* "Cota T.V.A. .................. %" - the rule runs between the label and the trailing per-cent. */
.fx-rub--vat[b-8kojrpw1k1] {
    margin-top: 4.6mm;
}

.fx-series-number[b-8kojrpw1k1] { margin-top: 6.2mm; text-align: center; font-size: 3.6mm; font-weight: 600; line-height: 1.2; }

.fx-note[b-8kojrpw1k1] {
    font-size: 2.2mm;
    line-height: 1;
    text-align: center;
    height: 3.4mm;
    padding-top: 0.6mm;
}

/* ── Centre column ───────────────────────────────────────────────────────────────────────────── */

/*
   The title is centred in the middle column and must stay inside it. At 6mm "FACTURĂ FISCALĂ" was a
   couple of millimetres wider than the column's 56mm of content and its last letters printed on top
   of the buyer's "C.I.F." rubric. The PDF fits the title to the same 56mm; here the two lengths the
   form can carry each get their own size, which is the same fit expressed in CSS.
*/
.fx-title[b-8kojrpw1k1] {
    text-align: center;
    font-size: 5.6mm;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.1mm;
    margin: 8.7mm 0 0 0;
    white-space: nowrap;
}

.fx-title--storno[b-8kojrpw1k1] {
    font-size: 3.9mm;
}

/* The one box in the header. Its top edge sits 60mm down the sheet, as on the form. */
.fx-docbox[b-8kojrpw1k1] {
    border: 0.3mm solid #000;
    border-radius: 1.2mm;
    margin-top: 5.5mm;
    padding: 1.4mm 1.6mm 0.4mm 1.6mm;
}

    .fx-docbox .fx-rub[b-8kojrpw1k1] {
        height: 4.8mm;
    }

/*
   Sigla instituției.

   Ancorată la baza benzii de antet, în stânga - singurul loc unde formularul are spațiu gol după
   ultima rubrică („Cota T.V.A.”) și înainte de tabel. `position: absolute` față de cadru o scoate
   complet din flux, deci nicio rubrică nu se mișcă indiferent de dimensiunea imaginii; limitele de
   lățime și înălțime o țin în acel spațiu chiar dacă instituția încarcă un fișier mare.
*/
.fx-logo[b-8kojrpw1k1] {
    position: absolute;
    left: 2.5mm;
    top: 57mm;
    max-width: 42mm;
    max-height: 11mm;
    object-fit: contain;
    object-position: left center;
}

/* ── Ruled table ────────────────────────────────────────────────────────────────────────────────── */
.fx-body[b-8kojrpw1k1] {
    flex: 0 0 auto;
}

.fx-table[b-8kojrpw1k1] {
    width: 100%;
    height: auto;
    border-collapse: collapse;
    table-layout: fixed;
}

/*
   The reference column widths, as their share of the table.

   They are the form's millimetres - 9.6, 63.9, 10, 20, 27.2, 28.2 and 29.1 - divided by the 188mm
   they add up to. Written as millimetres they added up to the frame's *outer* width, while the table
   lives inside the frame's content box, which is 0.7mm narrower because of the frame's own border.
   Under `table-layout: fixed` a column sum wider than the table widens the table instead of shrinking
   the columns, so the last column's right-hand rule was pushed past the frame and clipped away by the
   printer. On screen it was invisible: the overflow had somewhere to go. As proportions the columns
   keep the form's ratios and the table can no longer be wider than what contains it.
*/
.fx-c0[b-8kojrpw1k1] { width: 5.106%; }
.fx-c1[b-8kojrpw1k1] { width: 33.989%; }
.fx-c2[b-8kojrpw1k1] { width: 5.319%; }
.fx-c3[b-8kojrpw1k1] { width: 10.638%; }
.fx-c4[b-8kojrpw1k1] { width: 14.468%; }
.fx-c5[b-8kojrpw1k1] { width: 15%; }
.fx-c6[b-8kojrpw1k1] { width: 15.48%; }

/*
   Cu coloana TOTAL sunt opt coloane, iar lățimea ei se ia din coloana de denumire - singura care are
   de unde da. Restul își păstrează exact proporțiile formularului, ca un rând să se citească la fel
   în ambele variante.

   Milimetrii formularului: 9.6, 34.8, 10, 20, 27.2, 28.2, 29.1, 29.1 din 188. Suma procentelor este
   fix 100: sub `table-layout: fixed` o sumă mai mare ar lăți tabelul peste cadru și ar tăia din nou
   rigla din dreapta la tipărire - exact defectul reparat mai sus.
*/
.fx-table--with-total .fx-c1[b-8kojrpw1k1] { width: 18.511%; }
.fx-table--with-total .fx-c7[b-8kojrpw1k1] { width: 15.478%; }

.fx-table th[b-8kojrpw1k1],
.fx-table td[b-8kojrpw1k1] {
    border-right: 0.2mm solid #aebdca;
    border-bottom: 0.2mm solid #cbd5e1;
    padding: 1.1mm 1.2mm;
    vertical-align: top;
    overflow: hidden;
}

/* The frame already draws the outside; the table must not double it. */
.fx-table tr > *:first-child[b-8kojrpw1k1] { border-left: 0; }
.fx-table tr > *:last-child[b-8kojrpw1k1] { border-right: 0.3mm solid #7899b8; }
.fx-table[b-8kojrpw1k1] { border: 0.3mm solid #7899b8; }

.fx-cols th[b-8kojrpw1k1] {
    height: 12.4mm;
    text-align: center;
    vertical-align: middle;
    font-weight: 700;
    background: #dbeafe;
    line-height: 1.15;
}

.fx-sub[b-8kojrpw1k1] {
    font-size: 2.4mm;
}

/*
   The band that numbers the columns: 0, 1, 2, 3, 4, 5(3x4), 6.

   It is not decoration. The footer's payable total is labelled "(col.5+col.6)" and the VAT column's
   header is "5(3x4)"; without this band those references point at nothing. Set quieter than the
   column titles above it, because it is a key to them rather than a heading of its own.
*/
.fx-nums th[b-8kojrpw1k1] {
    height: 4.2mm;
    padding: 0;
    text-align: center;
    vertical-align: middle;
    font-weight: 600;
    font-size: 2.7mm;
    color: #475569;
    background: #eff5fc;
}

.fx-row td[b-8kojrpw1k1] {
    height: 7mm;
    vertical-align: middle;
}

/*
   Aceeași convenție ca la Modern TDL și Modern A4: antet centrat (vezi `.fx-cols th`), text la
   stânga, numeric la dreapta, UM și numărul curent la centru.

   Alinierea descrierii era lăsată implicită, iar cantitatea era centrată. Cantitatea este o valoare
   numerică și se citește ca ele, aliniată la dreapta cu cifre tabulare, ca zecimalele coloanei să
   cadă una sub alta.
*/
.fx-num[b-8kojrpw1k1] { text-align: center; }
.fx-desc[b-8kojrpw1k1] { text-align: left; white-space: normal; overflow-wrap: anywhere; }
.fx-um[b-8kojrpw1k1] { text-align: center; }
.fx-qty[b-8kojrpw1k1] { text-align: right; font-variant-numeric: tabular-nums; }
.fx-money[b-8kojrpw1k1] { text-align: right; font-variant-numeric: tabular-nums; }
/*
   Celula de T.V.A. poartă două valori pe același rând - suma și cota - deci are nevoie de un flex.
   Flex-ul stă însă pe un element DIN INTERIORUL celulei, nu pe celulă.

   `display: flex` pe un `<td>` îl scoate din algoritmul de tabel: celula nu mai participă la
   coloană, browserul îi generează un înveliș anonim, iar riglele ei se desenau cu câțiva zecimi de
   milimetru pe lângă marginea coloanei - liniile „fantomă” de la marginea din dreapta a coloanei de
   T.V.A. Celula redevine `table-cell` și își recapătă riglele exact pe caroiaj.
*/
.fx-vat-cell[b-8kojrpw1k1] { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fx-vat-inner[b-8kojrpw1k1] { display: flex; justify-content: flex-end; gap: 1mm; }
.fx-vat-amount[b-8kojrpw1k1] { flex: 1 1 auto; }
.fx-vat-rate[b-8kojrpw1k1] { flex: 0 0 9mm; text-align: right; }

.fx-remarks-panel[b-8kojrpw1k1] {
    min-height: 12mm;
    white-space: normal;
    overflow-wrap: anywhere;
    padding: 4mm 2.5mm;
    font-size: 2.8mm;
    line-height: 1.35;
}

.fx-draft[b-8kojrpw1k1] {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.2mm;
    margin-bottom: 1mm;
}

/*
   Compact changes the type, never the grid. A typed fiscal form has one geometry; the setting is
   allowed to fit more text into it, not to move a rule.
*/
.fx-sheet--compact[b-8kojrpw1k1] {
    font-size: 2.85mm;
}

    .fx-sheet--compact .fx-title[b-8kojrpw1k1] {
        font-size: 5.4mm;
    }

    .fx-sheet--compact .fx-remarks[b-8kojrpw1k1] {
        font-size: 2.6mm;
    }

/* ── Footer band ────────────────────────────────────────────────────────────────────────────────── */
/*
   `overflow: hidden` is load-bearing, not decoration. A flex item defaults to `min-height: auto`, so
   without it the tallest cell in here would push the band past its stated height and steal the
   millimetres from the line area above - which is exactly the "page grows around its content" the
   fixed grid exists to prevent.
*/
.fx-foot[b-8kojrpw1k1] {
    flex: 0 0 41.3mm;
    display: flex;
    box-sizing: border-box;
    border-top: 0.25mm solid #000;
    overflow: hidden;
    margin-top: auto;
}

.fx-foot-sign[b-8kojrpw1k1] {
    flex: 0 0 44mm;
    box-sizing: border-box;
    padding: 1.2mm 1.4mm;
    border-right: 0.25mm solid #000;
}

/* The statute reference is a footnote, not a rubric: it must not crowd out the paid stamp. */
.fx-foot-legal[b-8kojrpw1k1] {
    font-size: 2.3mm;
    line-height: 1.25;
}

.fx-foot-ship[b-8kojrpw1k1] {
    flex: 0 0 69mm;
    box-sizing: border-box;
    padding: 1.2mm 1.4mm;
    border-right: 0.25mm solid #000;
    overflow: hidden;
}

/*
   The shipping block keeps the printed form's dotted leaders, and it is the one place on this
   document that should: these rubrics are filled in by hand at the moment of delivery, so the rules
   are what someone writes on. That is the opposite of the header, where the value is printed and a
   leader underneath it would just be noise.

   The leaders sit BETWEEN the fragments, not after the whole sentence: the form reads
   "seria ..... nr. ..... eliberat(ă) .....", and running the three words together with one rule at
   the end produced "serianr.eliberat(ă)".

   Nine lines plus a title have to live inside 41.3mm, so they are sized to fit it.
*/
.fx-ship-line[b-8kojrpw1k1] {
    display: flex;
    align-items: baseline;
    gap: 1.1mm;
    height: 3.8mm;
    font-size: 2.7mm;
    white-space: nowrap;
    overflow: hidden;
}

    .fx-ship-line > span[b-8kojrpw1k1] {
        flex: 0 0 auto;
    }

.fx-lead[b-8kojrpw1k1] {
    flex: 1 1 auto;
    min-width: 3mm;
    align-self: flex-end;
    border-bottom: 0.25mm dotted #000;
    transform: translateY(-0.8mm);
}

/* The form's leaders are not all the same length; these weights follow the printed proportions. */
.fx-lead--wide[b-8kojrpw1k1] {
    flex-grow: 1.6;
}

.fx-ship-title[b-8kojrpw1k1] {
    font-size: 2.9mm;
    margin-bottom: 0.3mm;
}

/* A discreet paid mark in the stamp cell - where a paid stamp goes on paper anyway. */
.fx-paid[b-8kojrpw1k1] {
    margin-top: 2mm;
    display: inline-block;
    border: 0.4mm solid #000;
    padding: 0.5mm 1.6mm;
    font-size: 3mm;
    font-weight: 700;
    letter-spacing: 0.4mm;
}

.fx-foot-totals[b-8kojrpw1k1] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/*
   Band proportions read off the reference form: the "Total / din care: accize" band takes 25.2mm
   of the 41.3mm footer and its value area is split at 14.7mm, leaving 16.1mm for the receipt
   signature and the payable total underneath.
*/
/*
   Cele două rânduri de totaluri: „Valoare fără T.V.A.” și „T.V.A.”, fiecare cu valoarea lui.

   Banda este acum o coloană de DOUĂ rânduri, nu două coloane alăturate. Linia orizontală dintre ele
   traversează și eticheta, și valoarea, deci cele două chiar arată ca un tabel de două rânduri -
   înainte linia exista doar în dreptul valorilor, iar etichetele pluteau nedespărțite alături.
*/
.fx-tot-top[b-8kojrpw1k1] {
    flex: 0 0 19mm;
    display: flex;
    flex-direction: column;
    border-bottom: 0.25mm solid #000;
}

.fx-tot-row[b-8kojrpw1k1] {
    flex: 1 1 50%;
    display: flex;
    min-height: 0;
}

    .fx-tot-row + .fx-tot-row[b-8kojrpw1k1] {
        border-top: 0.25mm solid #000;
    }

.fx-tot-row-label[b-8kojrpw1k1] {
    flex: 1 1 auto;
    box-sizing: border-box;
    padding: 1.2mm 1.4mm;
    border-right: 0.25mm solid #000;
    display: flex;
    align-items: center;
    min-width: 0;
}

.fx-tot-row-value[b-8kojrpw1k1] {
    flex: 0 0 27mm;
    box-sizing: border-box;
    padding: 1.2mm 1.4mm;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.fx-tot-bottom[b-8kojrpw1k1] {
    flex: 1 1 auto;
    display: flex;
}

.fx-tot-recv[b-8kojrpw1k1] {
    flex: 0 0 27.2mm;
    box-sizing: border-box;
    padding: 1.2mm 1.4mm;
    border-right: 0.25mm solid #000;
}

.fx-tot-pay[b-8kojrpw1k1] {
    flex: 1 1 auto;
    box-sizing: border-box;
    padding: 1.2mm 1.4mm;
    min-width: 0;
}

.fx-pay-label[b-8kojrpw1k1] {
    font-weight: 700;
}

.fx-pay-sub[b-8kojrpw1k1] {
    font-size: 2.6mm;
}

.fx-pay-value[b-8kojrpw1k1] {
    margin-top: 0.8mm;
    text-align: right;
    font-weight: 700;
    font-size: 3.8mm;
    font-variant-numeric: tabular-nums;
}

/* ── Print ──────────────────────────────────────────────────────────────────────────────────────
   The same composition, not a second layout: the sheet already has the page's geometry, so printing
   only has to stop painting the desk around it.
   ─────────────────────────────────────────────────────────────────────────────────────────────── */
@page {
    size: A4 portrait;
    margin: 0 0 6mm;
}

@media print {
    /* `.no-print` is on the host page toolbar; its rule stays there. */

    html[b-8kojrpw1k1], body[b-8kojrpw1k1] {
        background: #fff !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 210mm;
    }

    .fx-screen[b-8kojrpw1k1] {
        display: block;
        padding: 0;
        background: #fff;
        min-height: 0;
    }

    .fx-sheet[b-8kojrpw1k1] {
        box-shadow: none;
        margin: 0;
    }

    /* Content can continue on another sheet; the legal footer follows in normal flow. */
    .fx-frame[b-8kojrpw1k1] {
        break-inside: auto;
    }

    a[b-8kojrpw1k1] {
        color: inherit !important;
        text-decoration: none !important;
    }
}

/*
   Rândul de discount al unei linii: rând complet, cu numărul lui, în aceleași șapte coloane -
   articolul poartă valoarea de dinaintea reducerii (deci coloana „5(3x4)” spune adevărul), iar acest
   rând diferența negativă. Mai discret prin cursive, nu prin indentare.
*/
.fx-discount-row td[b-8kojrpw1k1] {
    height: 5mm;
    font-size: 2.6mm;
}

.fx-discount-label[b-8kojrpw1k1] {
    font-style: italic;
}

.fx-line-group[b-8kojrpw1k1] {
    break-inside: avoid;
    page-break-inside: avoid;
}

.fx-vat-treatment[b-8kojrpw1k1] {
    display: block;
    text-align: right;
    font-size: 2.3mm;
    line-height: 1.15;
    color: #475569;
    overflow-wrap: anywhere;
}
/* /Components/Invoices/InvoiceDocumentModern.razor.rz.scp.css */
/* =================================================================================================
   "Modern TDL" invoice styles.

   Recovered from commit 3c6c9cc - the last state of InvoicePrint.razor.css before 650ffe0 rebuilt the
   document as the typed 14-4-10/A form. Only the document rules were taken; the screen chrome
   (toolbar, loading state) stays with the print page that hosts both templates.

   Scoped to this component, so the fiscal template's rules and these cannot reach each other.
   ================================================================================================= */

/* ── Invoice document (shared screen + print) ───────────────── */
.invoice-doc[b-jcskid79jz] {
    max-width: 800px;
    margin: 2rem auto;
    padding: 2.5rem;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: .875rem;
    color: #0f172a;
    font-family: 'Segoe UI', Arial, sans-serif;
    line-height: 1.5;
}

/*
   ── Header band ────────────────────────────────────────────────

   FURNIZOR | FACTURĂ | CUMPĂRĂTOR, in one framed band across the full width, matching
   DrawPartyHeader in InvoicePdfService. The proportions are the PDF's: the identity column needs the
   least room, the two parties share what is left.

   The colours below are the print-side halves of the app's --tdl-* tokens. They are written out
   rather than referenced because this document is also what the browser sends to a printer, where a
   themed custom property is not guaranteed to resolve to anything.
*/
.inv-header[b-jcskid79jz] {
    display: grid;
    grid-template-columns: minmax(0, 37fr) minmax(0, 26fr) minmax(0, 37fr);
    align-items: stretch;
    border: 1px solid #8fb4d9;
    margin-bottom: 1.25rem;
}

.inv-issuer[b-jcskid79jz],
.inv-meta[b-jcskid79jz],
.inv-buyer[b-jcskid79jz] {
    padding: .6rem .7rem;
    min-width: 0;
}

.inv-meta[b-jcskid79jz],
.inv-buyer[b-jcskid79jz] {
    border-left: 1px solid #bdd6ee;
}

.inv-party-box[b-jcskid79jz] {
    overflow-wrap: anywhere;
}

.inv-company-name[b-jcskid79jz],
.inv-party-name[b-jcskid79jz] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: .25rem;
    line-height: 1.35;
}

.inv-company-placeholder[b-jcskid79jz] {
    color: #94a3b8;
    font-style: italic;
}

.inv-company-line[b-jcskid79jz] {
    font-size: .8rem;
    color: #475569;
    line-height: 1.6;
}

.inv-iban[b-jcskid79jz] {
    font-family: monospace;
    margin-top: .25rem;
}

.inv-meta[b-jcskid79jz] {
    text-align: center;
}

.inv-meta-number[b-jcskid79jz] {
    font-size: 1.3rem;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: .06em;
    line-height: 1.15;
}

.inv-meta-series[b-jcskid79jz] {
    font-size: .95rem;
    font-weight: 700;
    color: #173b5f;
    margin-top: .15rem;
}

.inv-meta-draft-series[b-jcskid79jz] {
    font-size: .72rem;
    color: #64748b;
}

.inv-meta-table[b-jcskid79jz] {
    font-size: .78rem;
    border-collapse: collapse;
    width: 100%;
    margin-top: .5rem;
}

    .inv-meta-table td[b-jcskid79jz] {
        padding: .12rem 0;
        color: #475569;
    }

    .inv-meta-table td:first-child[b-jcskid79jz] {
        text-align: left;
        color: #94a3b8;
        font-size: .68rem;
        text-transform: uppercase;
        letter-spacing: .04em;
    }

    .inv-meta-table td:last-child[b-jcskid79jz] {
        text-align: right;
        font-weight: 700;
        color: #0f172a;
    }

.inv-overdue-date[b-jcskid79jz] {
    color: #dc2626 !important;
    font-weight: 700;
}

/* ── Divider ────────────────────────────────────────────────── */
.inv-divider[b-jcskid79jz] {
    border: none;
    border-top: 2px solid #e2e8f0;
    margin: 1.25rem 0;
}

.inv-party-label[b-jcskid79jz] {
    font-size: .65rem;
    font-weight: 700;
    color: #173b5f;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: .25rem;
}

.inv-logo[b-jcskid79jz] { display: block; max-width: 32mm; max-height: 18mm; margin: .55rem auto 0; object-fit: contain; }

/* Supplier and buyer are peers on the page, so they are set on one typographic scale: the same
   size, the same leading, the same weight on the name. Only the leading used to differ, which made
   the buyer block read as the denser, lesser of the two. */
.inv-party-line[b-jcskid79jz] {
    font-size: .8rem;
    color: #475569;
    line-height: 1.6;
}

/*
   ── Lines table ────────────────────────────────────────────────

   The fiscal form's ruled grid: an outer frame, a rule between every pair of columns and a band
   across the head. Same palette as the PDF's DrawTableRow, so the preview, the print and the
   downloaded file are one document in three renderings.
*/
.inv-lines-table[b-jcskid79jz] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1.25rem;
    font-size: .78rem;
    border: 1px solid #8fb4d9;
}

    .inv-lines-table thead tr[b-jcskid79jz] {
        background: #dbecff;
    }

.inv-lines-table th[b-jcskid79jz] {
        padding: .4rem .45rem;
        font-size: .66rem;
        font-weight: 700;
        color: #173b5f;
        text-transform: uppercase;
        letter-spacing: .04em;
        text-align: center;
        vertical-align: middle;
        border: 1px solid #bdd6ee;
    }

    .inv-lines-table td[b-jcskid79jz] {
        padding: .38rem .45rem;
        color: #0f172a;
        vertical-align: top;
        border: 1px solid #bdd6ee;
    }

/*
   Description takes the room; everything else is sized to the widest value it will ever hold, which
   for money at this font is eight characters ("9.681,93"). The fixed columns are deliberately tight:
   they add up to roughly 70% of the sheet, leaving the description the same ~30% the PDF's weights
   give it, so a line reads the same in both renderings.
*/
.inv-col-nr[b-jcskid79jz]      { width: 2.2rem; text-align: center; }
.inv-col-desc[b-jcskid79jz]    { width: auto;   text-align: left; overflow-wrap: anywhere; }
.inv-col-um[b-jcskid79jz]      { width: 2.8rem; text-align: center; }
.inv-col-qty[b-jcskid79jz]     { width: 3.2rem; text-align: right; font-variant-numeric: tabular-nums; }
.inv-col-price[b-jcskid79jz]   { width: 4.7rem; text-align: right; font-variant-numeric: tabular-nums; }
.inv-col-net[b-jcskid79jz]     { width: 4.9rem; text-align: right; font-variant-numeric: tabular-nums; }
.inv-col-vat[b-jcskid79jz]     { width: 3rem;   text-align: right; font-variant-numeric: tabular-nums; }
.inv-col-vat-amt[b-jcskid79jz] { width: 4.7rem; text-align: right; font-variant-numeric: tabular-nums; }
.inv-col-total[b-jcskid79jz]   { width: 5rem;   text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }

/*
   Rândul de discount: un rând complet, cu numărul lui propriu, aceleași coloane ca oricare articol.
   Rămâne identificabil prin culoare/cursive, nu prin indentare sau marcaj de rând-copil. Linia de
   separare dintre cele două rânduri ale aceluiași articol este mai slabă decât cea dintre articole.
*/
.inv-discount-row td[b-jcskid79jz] {
    padding-top: .12rem;
    font-size: .92em;
    color: #7a2018;
}

.inv-line-group tr:first-child:not(:last-child) td[b-jcskid79jz] {
    border-bottom-color: #eef2f7;
}

.inv-discount-label[b-jcskid79jz] {
    font-style: italic;
}

/* Articolul și reducerea lui trec împreună pe pagina următoare. */
.inv-line-group[b-jcskid79jz] {
    break-inside: avoid;
    page-break-inside: avoid;
}

/*
   Convenția de aliniere a tabelelor de linii, identică în toate cele patru formate:

     antet          -> centrat, FĂRĂ excepții
     text / denumiri -> stânga
     numeric         -> dreapta, cu cifre tabulare ca virgulele să cadă una sub alta
     UM și coduri scurte -> centrat

   Antetul se centra peste tot mai puțin la coloana de descriere, care era aliniată stânga „ca să
   semene cu coloana ei”. Rezultatul era un singur titlu ieșit din rând într-un cap de tabel altfel
   regulat. Regula se aplică acum antetului ca antet, nu ca etichetă a conținutului: alinierea
   VALORILOR rămâne cea semantică, definită pe clasele de coloană de mai sus.

   Centrarea antetului este declarată o singură dată, pe `.inv-lines-table th`. Aici rămâne doar
   restrângerea la CELULA de date, ca `.inv-col-desc` să nu mai tragă și antetul la stânga.
*/
.inv-lines-table td.inv-col-desc[b-jcskid79jz] {
    text-align: left;
}

.inv-th-sub[b-jcskid79jz] {
    display: block;
    margin-top: .08rem;
    font-size: .6rem;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

/* ── Totals ─────────────────────────────────────────────────── */
.inv-totals[b-jcskid79jz] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1.5rem;
}

.inv-totals-table[b-jcskid79jz] {
    border-collapse: collapse;
    min-width: 280px;
    width: 46%;
    border: 1px solid #8fb4d9;
    background: #f3f9ff;
}

    .inv-totals-table td[b-jcskid79jz] {
        padding: .3rem .6rem;
        font-size: .85rem;
        color: #475569;
    }

    .inv-totals-table td:last-child[b-jcskid79jz] {
        text-align: right;
        font-weight: 700;
        color: #0f172a;
        font-variant-numeric: tabular-nums;
    }

/* The one number the reader is looking for gets its own band, not one more line in a list. */
.inv-totals-grand td[b-jcskid79jz] {
    font-weight: 800 !important;
    color: #173b5f !important;
    background: #dbecff;
    border-top: 1px solid #8fb4d9;
    padding-top: .45rem !important;
    padding-bottom: .45rem !important;
}

    .inv-totals-grand td:last-child[b-jcskid79jz] {
        font-size: 1.05rem !important;
        color: #173b5f !important;
    }

/* ── Notes block ────────────────────────────────────────────── */
.inv-notes[b-jcskid79jz] {
    border-top: 1px solid #e2e8f0;
    padding-top: 1rem;
    margin-bottom: 1.25rem;
}

.inv-notes-label[b-jcskid79jz] {
    font-size: .68rem;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: .4rem;
}

.inv-notes-text[b-jcskid79jz] {
    font-size: .85rem;
    color: #334155;
    white-space: pre-wrap;
    line-height: 1.55;
}

/* ── Payments block ─────────────────────────────────────────── */
.inv-payments[b-jcskid79jz] {
    border-top: 1px solid #e2e8f0;
    padding-top: 1rem;
    margin-bottom: 1.5rem;
}

.inv-payments-title[b-jcskid79jz] {
    font-size: .72rem;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: .5rem;
}

.inv-payments-table[b-jcskid79jz] {
    width: 100%;
    border-collapse: collapse;
    font-size: .8rem;
    margin-bottom: .75rem;
}

    .inv-payments-table th[b-jcskid79jz] {
        font-size: .68rem;
        font-weight: 700;
        color: #94a3b8;
        text-transform: uppercase;
        letter-spacing: .04em;
        padding: .25rem .5rem;
        border-bottom: 1px solid #e2e8f0;
    }

    .inv-payments-table td[b-jcskid79jz] {
        padding: .3rem .5rem;
        color: #475569;
    }

.inv-paid-stamp[b-jcskid79jz] {
    display: inline-block;
    border: 3px solid #16a34a;
    color: #16a34a;
    font-weight: 900;
    font-size: 1.2rem;
    letter-spacing: .15em;
    padding: .25rem .75rem;
    border-radius: 4px;
    transform: rotate(-4deg);
    opacity: .85;
}

.inv-remaining[b-jcskid79jz] {
    font-size: .85rem;
    color: #dc2626;
}

/*
   ── Running party line ─────────────────────────────────────────

   Hidden on screen and on a one-page print. It only earns its place on a continuation sheet, which
   is what `position: running()` / the print rules below arrange; a browser that supports neither
   simply never shows it, which is the correct outcome for a single-page invoice.
*/
.inv-running-parties[b-jcskid79jz] {
    display: none;
    font-size: .72rem;
    color: #94a3b8;
    border-top: 1px solid #e2e8f0;
    padding-top: .6rem;
    margin-top: 1rem;
}

/* ── Print media ────────────────────────────────────────────── */
@media print {
    /* `.no-print` lives on the host page toolbar, so its rule stays there - a scoped stylesheet
       cannot reach an element that belongs to another component. */

    body[b-jcskid79jz] {
        background: #fff !important;
        margin: 0;
        padding: 0;
    }

    .invoice-doc[b-jcskid79jz] {
        box-sizing: border-box;
        width: 210mm;
        max-width: 210mm;
        min-height: 272mm;
        margin: 0;
        padding: 15mm 15mm 4mm;
        border: none;
        border-radius: 0;
        box-shadow: none;
    }

    /*
       The band and the rules have to survive the printer's default of dropping backgrounds, or the
       table loses exactly the column separation this layout is for.
    */
    .inv-lines-table thead tr[b-jcskid79jz],
    .inv-totals-grand td[b-jcskid79jz],
    .inv-totals-table[b-jcskid79jz] {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* A header band repeated at the top of every printed page, the way the PDF redraws it. */
    .inv-lines-table thead[b-jcskid79jz] {
        display: table-header-group;
    }

    .inv-lines-table tfoot[b-jcskid79jz] {
        display: table-footer-group;
    }

    /* A line is moved whole to the next sheet rather than sliced through the middle. */
    .inv-lines-table tr[b-jcskid79jz] {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Totals and the party header are single blocks; splitting either reads as a printing fault. */
    .inv-totals[b-jcskid79jz],
    .inv-header[b-jcskid79jz] {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    a[b-jcskid79jz] {
        color: inherit !important;
        text-decoration: none !important;
    }

    @page { margin: 0 0 6mm; size: A4 portrait; }
}

.invoice-doc--compact[b-jcskid79jz] {
    max-width: 740px;
    padding: 1.4rem;
    border: 1px solid #cbd5e1;
    border-top: 8px solid #0f172a;
    border-radius: 2px;
    font-size: .8rem;
    line-height: 1.35;
}

/*
   Compact keeps the same three-column band; it only tightens it. The structure is deliberately not a
   second layout - the two templates differ in density, not in where a reader looks for something.
*/
.invoice-doc--compact .inv-header[b-jcskid79jz] {
    margin-bottom: .7rem;
}

.invoice-doc--compact .inv-issuer[b-jcskid79jz],
.invoice-doc--compact .inv-meta[b-jcskid79jz],
.invoice-doc--compact .inv-buyer[b-jcskid79jz] {
    padding: .45rem .55rem;
}

.invoice-doc--compact .inv-company-line[b-jcskid79jz],
.invoice-doc--compact .inv-party-line[b-jcskid79jz] {
    line-height: 1.35;
}

.invoice-doc--compact .inv-party-name[b-jcskid79jz],
.invoice-doc--compact .inv-party-line[b-jcskid79jz],
.invoice-doc--compact .inv-company-line[b-jcskid79jz] {
    overflow-wrap: anywhere;
}

.invoice-doc--compact .inv-divider[b-jcskid79jz] {
    margin: .55rem 0;
    border-top-width: 1px;
}

.invoice-doc--compact .inv-lines-table[b-jcskid79jz] {
    margin-bottom: .7rem;
}

.invoice-doc--compact .inv-lines-table th[b-jcskid79jz],
.invoice-doc--compact .inv-lines-table td[b-jcskid79jz],
.invoice-doc--compact .inv-payments-table th[b-jcskid79jz],
.invoice-doc--compact .inv-payments-table td[b-jcskid79jz] {
    padding: .28rem .4rem;
}

.invoice-doc--compact .inv-meta-number[b-jcskid79jz] {
    font-size: 1.15rem;
}

.invoice-doc--compact .inv-totals[b-jcskid79jz] {
    margin-bottom: .8rem;
}

.invoice-doc--compact .inv-totals-table[b-jcskid79jz] {
    min-width: 230px;
    border: 1px solid #cbd5e1;
    background: #f8fafc;
}

.invoice-doc--compact .inv-notes[b-jcskid79jz],
.invoice-doc--compact .inv-payments[b-jcskid79jz] {
    margin-bottom: .9rem;
    padding-top: .7rem;
}

/*
   On a phone the three columns are ~100px each, which is narrower than "Nr. Reg. Com.". The band
   stacks instead - the reading order is unchanged, so it is still supplier, document, buyer - and the
   separators become horizontal. Printing is unaffected: @media print carries its own A4 geometry.
*/
/* Screen-only is essential: Chromium's print layout is narrower than 767 CSS pixels. Applying this
   breakpoint to all media was the reason the three-column header became three vertical blocks in PDF. */
@media screen and (max-width: 767px) {
    .invoice-doc[b-jcskid79jz] {
        padding: 1.25rem;
    }

    .inv-header[b-jcskid79jz] {
        grid-template-columns: 1fr;
    }

    .inv-meta[b-jcskid79jz],
    .inv-buyer[b-jcskid79jz] {
        border-left: 0;
        border-top: 1px solid #bdd6ee;
    }

    .inv-meta[b-jcskid79jz] {
        text-align: left;
    }

    .inv-meta-table[b-jcskid79jz] {
        margin-left: 0;
    }

    /*
       Tabelul fiscal își păstrează coloanele și derulează în cutia lui, fără să treacă de marginea
       paginii. Derularea este pe ÎNVELIȘ, nu pe tabel.

       Aici era bug-ul de aliniere de pe telefon. Regula fusese `.inv-lines-table { display: block }`,
       ceea ce scoate elementul din contextul de formatare de tabel: `thead` și `tbody` sunt atunci
       împachetate fiecare în propriul tabel anonim și își aleg lățimile de coloană INDEPENDENT unul
       de altul. Antetul nu mai avea nicio legătură cu valorile de sub el - „COTĂ T.V.A. %” ajungea
       peste coloana vecină - iar coloanele înguste din stânga se strângeau la zero, fiindcă tabelul
       antetului era mult mai lat decât cel al corpului.

       Mutată pe înveliș, derularea nu mai atinge tabelul: `display: table` rămâne, algoritmul de
       lățimi rămâne unul singur pentru cap și corp, iar antetul stă din nou centrat peste coloana
       lui - fără nicio lățime scrisă de mână pentru telefon.
    */
    .inv-lines-scroll[b-jcskid79jz] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .inv-lines-table[b-jcskid79jz] {
        white-space: nowrap;
    }

    .inv-col-desc[b-jcskid79jz] {
        white-space: normal;
        min-width: 11rem;
    }

    .inv-totals-table[b-jcskid79jz] {
        width: 100%;
    }
}

@media print {
    .invoice-doc--compact[b-jcskid79jz] {
        max-width: 100%;
        margin: 0;
        padding: 0;
        border: none;
        border-top: 6px solid #0f172a;
        border-radius: 0;
    }

    .invoice-doc--compact .inv-lines-table thead tr[b-jcskid79jz],
    .invoice-doc--compact .inv-header[b-jcskid79jz],
    .invoice-doc--compact .inv-totals-table[b-jcskid79jz] {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* The printed document keeps the same conceptual header row as the screen document. */
    .inv-header[b-jcskid79jz] {
        display: grid;
        grid-template-columns: minmax(0, 37fr) minmax(0, 26fr) minmax(0, 37fr);
    }
}

.inv-fiscal-mentions[b-jcskid79jz] {
    margin: 0 0 .9rem;
    padding: .55rem .75rem;
    border-left: 3px solid #8fb4d9;
    background: #f8fbff;
    break-inside: avoid;
    page-break-inside: avoid;
}

    .inv-fiscal-mentions .inv-notes-label[b-jcskid79jz] {
        margin-bottom: .2rem;
    }

    .inv-fiscal-mentions .inv-notes-text[b-jcskid79jz] {
        line-height: 1.4;
        overflow-wrap: anywhere;
    }
/* /Components/Invoices/InvoiceDocumentModernA4.razor.rz.scp.css */
.a4-document[b-8aallhlv30] {
    box-sizing: border-box;
    width: min(100%, 800px);
    min-height: 1060px;
    margin: 2rem auto;
    padding: 2.5rem;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    color: #0f172a;
    font: .875rem/1.5 'Segoe UI', Arial, sans-serif;
}

.a4-party-grid[b-8aallhlv30] { display: grid; grid-template-columns: 58% 42%; grid-template-areas: "supplier meta" "beneficiary logo"; gap: 1.2rem 1.5rem; }
.a4-header[b-8aallhlv30], .a4-lower[b-8aallhlv30] { display: contents; }
.a4-issuer[b-8aallhlv30] { grid-area: supplier; }
.a4-meta[b-8aallhlv30] { grid-area: meta; }
.a4-beneficiary[b-8aallhlv30] { grid-area: beneficiary; }
.a4-logo-box[b-8aallhlv30] { grid-area: logo; display: flex; align-items: center; justify-content: center; min-height: 25mm; }
.a4-logo-box img[b-8aallhlv30] { display: block; max-width: 42mm; max-height: 24mm; object-fit: contain; }
.a4-document--business .a4-party-grid[b-8aallhlv30] { grid-template-areas: "supplier logo" "meta beneficiary"; }
.a4-document--business .a4-meta[b-8aallhlv30] { text-align: left; }
.a4-document--business .a4-meta-table[b-8aallhlv30] { margin-left: 0; }

.a4-issuer[b-8aallhlv30] { flex: 1 1 58%; min-width: 0; }
.a4-meta[b-8aallhlv30] { flex: 0 1 38%; min-width: 15rem; text-align: right; }
.a4-company-name[b-8aallhlv30] { margin-bottom: .25rem; font-size: 1.1rem; font-weight: 700; }
.a4-company-line[b-8aallhlv30], .a4-party-line[b-8aallhlv30] { color: #475569; font-size: .8rem; overflow-wrap: anywhere; }
.a4-iban[b-8aallhlv30] { font-family: Consolas, monospace; margin-top: .25rem; }
.a4-placeholder[b-8aallhlv30] { color: #94a3b8; font-style: italic; }
.a4-title[b-8aallhlv30] { font-size: 1.4rem; font-weight: 800; letter-spacing: .06em; }
.a4-series[b-8aallhlv30] { margin-bottom: .75rem; color: #1d4ed8; font-size: 1rem; font-weight: 600; }
.a4-draft-series[b-8aallhlv30], .a4-storno[b-8aallhlv30] { color: #64748b; font-size: .72rem; }
.a4-meta-table[b-8aallhlv30] { margin-left: auto; border-collapse: collapse; font-size: .8rem; }
.a4-meta-table td[b-8aallhlv30] { padding: .15rem .5rem; }
.a4-meta-table td:first-child[b-8aallhlv30] { color: #94a3b8; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.a4-meta-table td:last-child[b-8aallhlv30] { font-weight: 600; }
.a4-overdue[b-8aallhlv30] { color: #dc2626; font-weight: 700; }
.a4-divider[b-8aallhlv30] { margin: 1.25rem 0; border-top: 2px solid #e2e8f0; }

.a4-beneficiary[b-8aallhlv30] { min-height: 7rem; }
.a4-party-label[b-8aallhlv30], .a4-section-label[b-8aallhlv30] { margin-bottom: .25rem; color: #94a3b8; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.a4-party-name[b-8aallhlv30] { color: #0f172a; font-size: .95rem; font-weight: 700; }

.a4-lines[b-8aallhlv30] { width: 100%; margin-bottom: 1.25rem; border-collapse: collapse; font-size: .78rem; table-layout: auto; }
.a4-lines thead[b-8aallhlv30] { background: #f8fafc; border-bottom: 2px solid #e2e8f0; }
/*
   Aceeași convenție ca la Modern TDL și la formularul fiscal:
   antet centrat, text la stânga, numeric la dreapta, UM la centru.

   Antetul era aliniat stânga, iar coloanele numerice își impuneau alinierea cu `!important` și pe
   `th` - deci capul de tabel avea trei alinieri diferite pe același rând. Lățimile rămân pe clasa
   comună, fiindcă privesc coloana; alinierea VALORILOR se declară acum explicit pe `td`, ca antetul
   să nu mai fie tras după conținut.
*/
.a4-lines th[b-8aallhlv30] { padding: .5rem .42rem; color: #64748b; font-size: .64rem; font-weight: 700; letter-spacing: .035em; text-align: center; text-transform: uppercase; vertical-align: bottom; }
.a4-lines td[b-8aallhlv30] { padding: .55rem .42rem; border-bottom: 1px solid #f1f5f9; vertical-align: top; }
.a4-th-sub[b-8aallhlv30] { display: block; margin-top: .1rem; font-size: .58rem; font-weight: 500; letter-spacing: 0; text-transform: none; }

.a4-col-nr[b-8aallhlv30] { width: 1.8rem; color: #94a3b8; }
.a4-col-desc[b-8aallhlv30] { min-width: 10rem; overflow-wrap: anywhere; }
.a4-col-um[b-8aallhlv30] { width: 2.8rem; }
.a4-col-qty[b-8aallhlv30] { width: 3.3rem; }
.a4-col-price[b-8aallhlv30], .a4-col-net[b-8aallhlv30], .a4-col-vat[b-8aallhlv30], .a4-col-vat-amount[b-8aallhlv30], .a4-col-total[b-8aallhlv30] { width: 4.6rem; }
.a4-col-total[b-8aallhlv30] { font-weight: 700; }

/* Rândul de discount: rând complet, cu numărul lui - identificabil prin culoare/cursive, nu indentare. */
.a4-discount-row td[b-8aallhlv30] { padding-top: .1rem; font-size: .92em; color: #7a2018; }
.a4-line-group tr:first-child:not(:last-child) td[b-8aallhlv30] { border-bottom-color: #f1f5f9; }
.a4-discount-label[b-8aallhlv30] { font-style: italic; }
.a4-line-group[b-8aallhlv30] { break-inside: avoid; page-break-inside: avoid; }

.a4-lines td.a4-col-nr[b-8aallhlv30] { text-align: center; }
.a4-lines td.a4-col-desc[b-8aallhlv30] { text-align: left; }
.a4-lines td.a4-col-um[b-8aallhlv30] { text-align: center; }
.a4-lines td.a4-col-qty[b-8aallhlv30],
.a4-lines td.a4-col-price[b-8aallhlv30],
.a4-lines td.a4-col-net[b-8aallhlv30],
.a4-lines td.a4-col-vat[b-8aallhlv30],
.a4-lines td.a4-col-vat-amount[b-8aallhlv30],
.a4-lines td.a4-col-total[b-8aallhlv30] { text-align: right; font-variant-numeric: tabular-nums; }

.a4-totals[b-8aallhlv30] { display: flex; justify-content: flex-end; margin: 1.2rem 0 1.5rem; }
.a4-totals table[b-8aallhlv30] { min-width: 280px; border-collapse: collapse; }
.a4-totals td[b-8aallhlv30] { padding: .35rem .65rem; color: #475569; }
.a4-totals td:last-child[b-8aallhlv30] { color: #0f172a; font-weight: 600; text-align: right; }
.a4-grand td[b-8aallhlv30] { padding-top: .55rem; border-top: 2px solid #0f172a; color: #0f172a; font-size: 1rem; font-weight: 800; }
.a4-notes[b-8aallhlv30], .a4-payments[b-8aallhlv30] { margin-bottom: 1.25rem; padding-top: 1rem; border-top: 1px solid #e2e8f0; color: #334155; white-space: pre-wrap; }
.a4-payments table[b-8aallhlv30] { width: 100%; border-collapse: collapse; font-size: .78rem; }
.a4-payments th[b-8aallhlv30], .a4-payments td[b-8aallhlv30] { padding: .3rem .5rem; border-bottom: 1px solid #e2e8f0; text-align: left; }
.a4-payments th:last-child[b-8aallhlv30], .a4-payments td:last-child[b-8aallhlv30] { text-align: right; }

.a4-document--compact[b-8aallhlv30] { min-height: 0; max-width: 740px; padding: 1.4rem; border-top: 8px solid #0f172a; border-radius: 2px; font-size: .8rem; line-height: 1.35; }
.a4-document--compact .a4-header[b-8aallhlv30] { gap: .8rem; margin-bottom: .7rem; }
.a4-document--compact .a4-beneficiary[b-8aallhlv30] { min-height: 5rem; }
.a4-document--compact .a4-divider[b-8aallhlv30] { margin: .65rem 0; border-top-width: 1px; }

@media screen and (max-width: 767px) {
    .a4-document[b-8aallhlv30] { min-height: 0; margin: 0; padding: 1.25rem; border-radius: 0; }
    .a4-party-grid[b-8aallhlv30] { display: flex; flex-direction: column; }
    .a4-meta[b-8aallhlv30] { min-width: 0; width: 100%; text-align: left; }
    .a4-meta-table[b-8aallhlv30] { margin-left: 0; }
    .a4-beneficiary[b-8aallhlv30] { width: 100%; min-height: 0; }
    /*
       Derularea orizontală stă pe înveliș, nu pe tabel. Regula era `.a4-lines { display: block }`,
       care scoate tabelul din contextul lui de formatare: `thead` și `tbody` ajung fiecare în
       propriul tabel anonim și își aleg lățimile independent, deci antetul nu mai stă peste coloana
       lui. Pe telefon se vedea ca titluri mutate cu o coloană și ca primele coloane strivite la
       zero. Cu derularea pe înveliș, tabelul rămâne `display: table` și cap și corp împart același
       calcul de lățimi. Vezi aceeași corecție în InvoiceDocumentModern.razor.css.
    */
    .a4-lines-scroll[b-8aallhlv30] { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .a4-lines[b-8aallhlv30] { white-space: nowrap; }
    .a4-col-desc[b-8aallhlv30] { min-width: 11rem; white-space: normal; }
    .a4-totals table[b-8aallhlv30] { width: 100%; }
}

@media print {
    .a4-document[b-8aallhlv30], .a4-document--compact[b-8aallhlv30] {
        box-sizing: border-box;
        width: 210mm;
        max-width: 210mm;
        min-height: 272mm;
        margin: 0;
        padding: 15mm 15mm 4mm;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .a4-party-grid[b-8aallhlv30] { display: grid; }
    .a4-header[b-8aallhlv30], .a4-lower[b-8aallhlv30] { display: contents; }
    .a4-issuer[b-8aallhlv30] { flex: 1 1 58%; }
    .a4-meta[b-8aallhlv30] { flex: 0 1 38%; min-width: 56mm; text-align: right; }
    .a4-meta-table[b-8aallhlv30] { margin-left: auto; }
    .a4-lines thead[b-8aallhlv30] { display: table-header-group; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .a4-lines tr[b-8aallhlv30], .a4-totals[b-8aallhlv30] { break-inside: avoid; page-break-inside: avoid; }
}

@page { size: A4 portrait; margin: 0 0 6mm; }

.a4-fiscal-mentions[b-8aallhlv30] { margin: .9rem 0 0; padding: .55rem .75rem; border-left: 3px solid #cbd5e1; background: #f8fafc; color: #334155; font-size: .85rem; line-height: 1.4; overflow-wrap: anywhere; break-inside: avoid; page-break-inside: avoid; }
/* /Components/Invoices/InvoiceFiscalRegimeBlock.razor.rz.scp.css */
/* An invoice attribute, right-aligned under the lines: no label, no band, no accent bar. */
.fiscal-regime-block[b-zdjlwxtz1f] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.1rem;
    margin: 0.5rem 0;
    font-size: 0.8rem;
    line-height: 1.35;
    text-align: right;
    break-inside: avoid;
    page-break-inside: avoid;
}

.fiscal-regime-block__value[b-zdjlwxtz1f] {
    font-weight: 700;
    color: #0f172a;
}

.fiscal-regime-block__note[b-zdjlwxtz1f] {
    max-width: 100%;
    color: #334155;
    overflow-wrap: anywhere;
}
/* /Components/Invoices/InvoiceLineClassificationChips.razor.rz.scp.css */
.line-classification[b-7shn21o8tv] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    max-width: 100%;
    min-width: 0;
}

.line-classification__chip[b-7shn21o8tv] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
    max-width: 100%;
    min-width: 0;
    padding: 0.1rem 0.45rem;
    border: 1px solid var(--tdl-border);
    border-radius: 999px;
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-primary);
    font-size: 0.76rem;
    line-height: 1.3;
}

.line-classification__chip--none[b-7shn21o8tv] {
    border-style: dashed;
    background: transparent;
    color: var(--tdl-text-muted);
}

.line-classification__prefix[b-7shn21o8tv] {
    flex: 0 0 auto;
    color: var(--tdl-text-secondary);
    font-size: 0.68rem;
}

.line-classification__value[b-7shn21o8tv] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Invoices/InvoiceLineDiscountBreakdown.razor.rz.scp.css */
/* Defalcarea unei linii cu reducere: bază, reducere, valoare după reducere, TVA. Doar citire. */
.line-discount-breakdown__list[b-9k36w8juvs] {
    margin: 0;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--tdl-border);
    border-radius: 0.5rem;
    background: var(--tdl-surface-soft);
    display: grid;
    gap: 0.2rem;
}

.line-discount-breakdown__row[b-9k36w8juvs] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: 0.88rem;
}

.line-discount-breakdown__row dt[b-9k36w8juvs] {
    font-weight: 500;
    color: var(--tdl-text-secondary);
}

.line-discount-breakdown__row dd[b-9k36w8juvs] {
    margin: 0;
    font-variant-numeric: tabular-nums;
    color: var(--tdl-text-primary);
    white-space: nowrap;
}

/* Roșu discret, nu roșu de eroare: reducerea este o cifră normală care se SCADE. */
.line-discount-breakdown__row--discount dd[b-9k36w8juvs] {
    color: #b42318;
}

.line-discount-breakdown__row--strong dt[b-9k36w8juvs],
.line-discount-breakdown__row--strong dd[b-9k36w8juvs] {
    font-weight: 700;
    color: var(--tdl-text-primary);
}

/* Informativ și derivat: mai mic și estompat, ca să nu arate a câmp sau a sumă de scăzut. */
.line-discount-breakdown__row--secondary dt[b-9k36w8juvs],
.line-discount-breakdown__row--secondary dd[b-9k36w8juvs] {
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--tdl-text-muted);
}
/* /Components/Invoices/InvoiceLineDiscountField.razor.rz.scp.css */
/* ---------------------------------------------------------------------------------------------
   Discount de linie: comutator segmentat „Procent | Sumă fixă” + un câmp cu unitatea lui.

   Un singur control cu două jumătăți, nu două casete de bifat: exact una este activă, iar cea
   activă se vede plină. Eticheta și comutatorul stau pe același rând, ca pe telefon câmpul să nu
   crească în înălțime mai mult decât vecinii lui (cantitate, preț).
   --------------------------------------------------------------------------------------------- */
.line-discount-field__head[b-pucdjbuknm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.4rem;
}

.line-discount-field__label[b-pucdjbuknm] {
    margin-bottom: 0;
}

.line-discount-mode[b-pucdjbuknm] {
    display: inline-flex;
    border: 1px solid var(--tdl-border-strong);
    border-radius: 0.5rem;
    overflow: hidden;
    background: var(--tdl-surface);
}

.line-discount-mode__option[b-pucdjbuknm] {
    border: 0;
    background: transparent;
    color: var(--tdl-text-secondary);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    /* Cât să nu depășească înălțimea unei etichete: câmpul rămâne aliniat cu „Preț unitar” de lângă el. */
    padding: 0.1rem 0.6rem;
    line-height: 1.4;
    cursor: pointer;
    white-space: nowrap;
}

.line-discount-mode__option + .line-discount-mode__option[b-pucdjbuknm] {
    border-left: 1px solid var(--tdl-border-strong);
}

.line-discount-mode__option:hover:not(.is-active):not(:disabled)[b-pucdjbuknm] {
    background: var(--tdl-primary-soft);
}

.line-discount-mode__option.is-active[b-pucdjbuknm] {
    background: var(--tdl-primary);
    color: #fff;
}

.line-discount-mode__option:focus-visible[b-pucdjbuknm] {
    outline: 2px solid var(--tdl-primary-soft-border);
    outline-offset: -2px;
}

.line-discount-mode__option:disabled[b-pucdjbuknm] {
    cursor: not-allowed;
    opacity: 0.6;
}

/* Unitatea stă ÎN câmp, la dreapta, ca cifra să se citească împreună cu ea: „10 %”, „25 RON”. */
.line-discount-field__control[b-pucdjbuknm] {
    display: flex;
    align-items: stretch;
}

.line-discount-field__control .form-control[b-pucdjbuknm] {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    min-width: 0;
}

.line-discount-field__suffix[b-pucdjbuknm] {
    display: inline-flex;
    align-items: center;
    padding: 0 0.65rem;
    border: 1px solid var(--tdl-border-strong);
    border-left: 0;
    border-radius: 0 0.5rem 0.5rem 0;
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-secondary);
    font-weight: 600;
    font-size: 0.85rem;
    min-width: 3rem;
    justify-content: center;
}
/* /Components/Invoices/InvoiceLineVatTreatmentCell.razor.rz.scp.css */
.line-vat-cell[b-2oyo2g3ra9] {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    max-width: 100%;
    line-height: 1.2;
    text-align: right;
}

.line-vat-cell__rate[b-2oyo2g3ra9] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.line-vat-cell__treatment[b-2oyo2g3ra9],
.line-vat-cell__reason[b-2oyo2g3ra9] {
    max-width: 100%;
    font-size: 0.72em;
    color: #64748b;
    overflow-wrap: normal;
    word-break: normal;
}

.line-vat-cell__reason[b-2oyo2g3ra9] {
    font-variant-numeric: tabular-nums;
}

@media print {
    .line-vat-cell__treatment[b-2oyo2g3ra9],
    .line-vat-cell__reason[b-2oyo2g3ra9] {
        color: #475569;
    }
}
/* /Components/Invoices/InvoiceMoreActionsMenu.razor.rz.scp.css */
/*
 * Meniul de acțiuni rare al facturii.
 *
 * POZIȚIONAREA, și de ce este `fixed` și nu `absolute`.
 *
 * Panoul a fost `position: absolute`, ancorat de învelișul propriu, cu explicația că astfel scapă de
 * `overflow-y: auto` al barei de acțiuni. Explicația era greșită, și pe telefon se vedea: un element
 * poziționat absolut este tăiat de ORICE strămoș cu `overflow` diferit de `visible` aflat pe lanțul
 * blocului lui conținător. Învelișul (`position: relative`) stă în bară, deci blocul conținător stă
 * tot în bară, iar bara primește sub 900px `max-height: 40dvh; overflow-y: auto` din contractul
 * barei lipite. Meniul era tăiat la 40% din înălțimea ferestrei și derula ÎN bară.
 *
 * Al doilea efect, independent: bara are `position: relative; z-index: 2`, adică este un CONTEXT DE
 * STIVUIRE. `z-index: 41` de aici nu se compară niciodată cu restul paginii - se compară doar cu
 * frații din bară - deci nu putea ridica nimic peste conținutul modalului. Un număr mai mare nu ar
 * fi reparat nimic, fiindcă problema nu era numărul.
 *
 * `position: fixed` are drept bloc conținător fereastra, deci nu îl mai taie niciun overflow. În
 * schimb coordonatele nu se mai pot scrie aici: se măsoară de la declanșator, în tdl-action-menu.js.
 * Regulile de mai jos dau doar forma, limitele și starea „încă nemăsurat”.
 */
.invoice-more-actions[b-1d8p4vrdup] {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
}

.invoice-more-actions__trigger[b-1d8p4vrdup] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    white-space: nowrap;
}

.invoice-more-actions__caret[b-1d8p4vrdup] {
    font-size: 0.7rem;
    line-height: 1;
}

/*
 * Prinde clicul din afara meniului fără să fie un al doilea backdrop de modal: transparentă, fără
 * rol de dialog și fără focus. Sub panou, peste restul paginii.
 */
.invoice-more-actions__scrim[b-1d8p4vrdup] {
    position: fixed;
    inset: 0;
    z-index: 40;
    background: transparent;
}

.invoice-more-actions__menu[b-1d8p4vrdup] {
    position: fixed;
    /* Punctul de plecare. JS scrie top/left măsurate de la declanșator imediat după randare. */
    top: 0;
    left: 0;
    z-index: 41;
    min-width: min(19rem, calc(100vw - 1rem));
    max-width: min(24rem, calc(100vw - 1rem));
    /* Plasă de siguranță dacă JS nu a apucat să scrie o limită măsurată. */
    max-height: min(60vh, 26rem);
    overflow-y: auto;
    padding: 0.35rem;
    border: 1px solid var(--tdl-border-strong);
    border-radius: var(--tdl-radius-xl);
    background: var(--tdl-surface);
    box-shadow: var(--tdl-shadow-lg);
    text-align: left;
}

/*
 * Randat, dar încă nemăsurat. Ascuns pentru un singur cadru, ca panoul să nu apară în colțul din
 * stânga sus înainte să primească poziția. Clasa este scoasă de JS după măsurare - sau din C#, dacă
 * modulul nu se poate încărca - deci nu poate rămâne blocată invizibil.
 */
.invoice-more-actions__menu--pending[b-1d8p4vrdup] {
    opacity: 0;
    pointer-events: none;
}

/*
 * Un separator între FIECARE pereche de intrări, nu doar la granițele grupurilor.
 *
 * Titlurile de grup au dispărut; linia rămâne singurul semn că „Stornează” și „Anulează” nu sunt
 * același fel de lucru. Pusă între toate perechile, lista se citește ca o listă, nu ca trei blocuri
 * lipite. Prima intrare nu primește linie deasupra - acolo este deja marginea panoului.
 */
.invoice-more-actions__item + .invoice-more-actions__item[b-1d8p4vrdup] {
    margin-top: 0.25rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--tdl-border);
}

.invoice-more-actions__item[b-1d8p4vrdup] {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    width: 100%;
    padding: 0.45rem 0.55rem;
    border: none;
    border-radius: var(--tdl-radius-md);
    background: transparent;
    color: var(--tdl-text-primary);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.invoice-more-actions__item:hover:not(:disabled)[b-1d8p4vrdup],
.invoice-more-actions__item:focus-visible:not(:disabled)[b-1d8p4vrdup] {
    background: var(--tdl-surface-soft);
}

.invoice-more-actions__item:focus-visible[b-1d8p4vrdup] {
    outline: 3px solid rgba(74, 116, 148, 0.28);
    outline-offset: -3px;
}

.invoice-more-actions__item:disabled[b-1d8p4vrdup] {
    cursor: default;
    opacity: 0.72;
}

.invoice-more-actions__item-label[b-1d8p4vrdup] {
    font-weight: 600;
}

.invoice-more-actions__item-note[b-1d8p4vrdup],
.invoice-more-actions__item-reason[b-1d8p4vrdup] {
    font-size: 0.78rem;
    line-height: 1.25;
    color: var(--tdl-text-secondary);
    white-space: normal;
}

/*
 * Tonul semnalizează consecința, nu importanța, și rămâne un accent — culoarea tare este a
 * dialogului de confirmare, nu a unei intrări de meniu.
 */
/*
 * Albastrul acțiunii constructive. `--tdl-primary-hover` este exact tonul cu care aplicația scrie
 * deja albastru pe fundal deschis (supratitlul modalului, legăturile, butoanele „outline primary”),
 * deci nu este un albastru nou - este ACELAȘI. Varianta plină, `--tdl-primary`, este rezervată
 * butoanelor; aici ar fi prea deschisă pentru text pe alb.
 */
.invoice-more-actions__item--primary .invoice-more-actions__item-label[b-1d8p4vrdup] {
    color: var(--tdl-primary-hover);
}

.invoice-more-actions__item--primary:hover:not(:disabled)[b-1d8p4vrdup],
.invoice-more-actions__item--primary:focus-visible:not(:disabled)[b-1d8p4vrdup] {
    background: var(--tdl-primary-soft);
}

.invoice-more-actions__item--correction .invoice-more-actions__item-label[b-1d8p4vrdup] {
    color: #6b4fa3;
}

.invoice-more-actions__item--destructive .invoice-more-actions__item-label[b-1d8p4vrdup] {
    color: #b42318;
}

.invoice-more-actions__item--destructive:hover:not(:disabled)[b-1d8p4vrdup],
.invoice-more-actions__item--destructive:focus-visible:not(:disabled)[b-1d8p4vrdup] {
    background: rgba(180, 35, 24, 0.08);
}

@media (max-width: 720px) {
    .invoice-more-actions[b-1d8p4vrdup] {
        flex: 1 1 100%;
    }

    .invoice-more-actions__trigger[b-1d8p4vrdup] {
        width: 100%;
        justify-content: center;
    }

    /*
     * Pe telefon panoul ia lățimea ferestrei minus gutiera pe care o lasă JS (8px de fiecare parte),
     * ca intrarea și motivul ei să nu fie stoarse pe două rânduri. `left` NU se declară aici: îl
     * scrie JS. Un `left: 0; right: 0` peste `position: fixed` ar fixa panoul la marginile
     * ferestrei și ar ignora măsurătoarea, adică exact bug-ul de dinainte, pe alt drum.
     */
    .invoice-more-actions__menu[b-1d8p4vrdup] {
        min-width: calc(100vw - 1rem);
        max-width: calc(100vw - 1rem);
    }
}
/* /Components/Invoices/InvoiceTemplatePicker.razor.rz.scp.css */
/* =================================================================================================
   Template gallery.

   Patru carduri pe desktop, trei pe laptop mic, două pe tabletă, unul pe telefon. Previzualizarea
   este esența: utilizatorul trebuie să deosebească formatele fără să citească, de aceea fiecare card
   poartă o miniatură a documentului real, nu o pictogramă.

   Numărul de coloane este declarat pe praguri explicite, nu prin auto-fit. Galeria trăiește într-un
   modal a cărui lățime este min(920px, 100vw - 2rem), deci auto-fit ar fi calculat coloanele din
   lățimea panoului și ar fi dat patru coloane și pe o tabletă de 768px, unde cardurile devin prea
   mici ca miniatura să mai spună ceva.

   Dimensiunile sunt toate relative și niciuna nu este fixă: la 1366x768 modalul trebuie să încapă
   întreg, cu header și footer vizibile, iar galeria să crească pe verticală când se adaugă formate.
   ================================================================================================= */

.tpl-gallery[b-0llihr3gau] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.7rem;
}

/*
   Opțiunea de dată/oră stă în footer-ul modalului, care este aliniat la dreapta. Marginea automată
   o împinge singură la stânga și lasă butoanele la dreapta, fără să modifice CSS-ul comun al
   footer-ului, folosit de toate celelalte dialoguri.
*/
.tpl-generated-at[b-0llihr3gau] {
    margin-right: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    font-size: 0.86rem;
}

.tpl-card[b-0llihr3gau] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.6rem;
    border: 2px solid var(--tdl-border, #cfe0f2);
    border-radius: var(--tdl-radius-lg, 0.55rem);
    background: var(--tdl-surface, #fff);
    cursor: pointer;
    transition: border-color 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
}

.tpl-card:hover[b-0llihr3gau] {
    border-color: var(--tdl-border-strong, #a9c8e6);
    background: var(--tdl-surface-soft, #f3f9ff);
    box-shadow: var(--tdl-shadow, 0 3px 10px rgba(22, 48, 77, 0.07));
}

.tpl-card:focus-visible[b-0llihr3gau] {
    outline: 2px solid var(--tdl-primary, #1677d2);
    outline-offset: 2px;
}

/* The selected card is stated twice - border and tint - so it survives a greyscale screen. */
.tpl-card--selected[b-0llihr3gau] {
    border-color: var(--tdl-primary, #1677d2);
    background: var(--tdl-primary-soft, #dbecff);
}

.tpl-thumb[b-0llihr3gau] {
    position: relative;
    background: #fff;
    border: 1px solid var(--tdl-border, #cfe0f2);
    border-radius: var(--tdl-radius-md, 0.4rem);
    overflow: hidden;
    display: flex;
    justify-content: center;
}

    .tpl-thumb svg[b-0llihr3gau] {
        display: block;
        width: 100%;
        height: auto;

        /* Cât să rămână recognoscibilă miniatura, nu cât să umple cardul. La 7rem intră un rând
           întreg de patru carduri plus header și footer în 768px înălțime de ecran. */
        max-height: 7rem;
    }

.tpl-check[b-0llihr3gau] {
    position: absolute;
    top: 0.4rem;
    right: 0.4rem;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 50%;
    background: var(--tdl-primary, #1677d2);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 3px rgba(22, 48, 77, 0.3);
}

.tpl-name[b-0llihr3gau] {
    font-weight: 700;
    font-size: 0.88rem;
    line-height: 1.25;
    color: var(--tdl-text-primary, #1e2a37);
}

.tpl-desc[b-0llihr3gau] {
    font-size: 0.76rem;
    line-height: 1.3;
    color: var(--tdl-text-muted, #64748b);
}

.tpl-default[b-0llihr3gau] {
    margin-top: 0.3rem;
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--tdl-primary, #1677d2);
    background: var(--tdl-primary-soft, #dbecff);
    border-radius: 999px;
    padding: 0.1rem 0.5rem;
}

/*
   Praguri de lățime. Se măsoară fereastra, nu panoul: modalul își ia lățimea din fereastră, deci
   cele două se mișcă împreună, iar regula rămâne citibilă.

   1366 -> 4 coloane, 1024 -> 3, 768 -> 2, 390 -> 1.
*/
@media (max-width: 1199px) {
    .tpl-gallery[b-0llihr3gau] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .tpl-gallery[b-0llihr3gau] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/*
   Pe telefon cardurile se așază unul sub altul, iar miniatura crește la loc: pe un singur rând
   există lățime de dat, iar previzualizarea este singurul lucru care deosebește formatele.
   Footer-ul rămâne pe ecran, deci opțiunea și butoanele nu pleacă la derulare.
*/
@media (max-width: 640px) {
    .tpl-gallery[b-0llihr3gau] {
        grid-template-columns: 1fr;
        gap: 0.6rem;
    }

    .tpl-thumb svg[b-0llihr3gau] {
        max-height: 9rem;
    }

    /* Etichetă lungă lângă butoane pe un ecran îngust: opțiunea trece pe rândul ei. */
    .tpl-generated-at[b-0llihr3gau] {
        margin-right: 0;
        flex: 1 1 100%;
        margin-bottom: 0.35rem;
    }
}
/* /Components/Invoices/VatCategoryPicker.razor.rz.scp.css */
.vatex-picker[b-m83qxxz4vr] {
    width: min(760px, calc(100vw - 1.5rem));
    max-height: min(80vh, 720px);
    padding: 0;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl, 14px);
    background: var(--tdl-surface);
    color: var(--tdl-text-primary);
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.28);
    overflow: hidden;
}

.vatex-picker[open][b-m83qxxz4vr] {
    display: flex;
    flex-direction: column;
}

.vatex-picker[b-m83qxxz4vr]::backdrop {
    background: rgba(15, 23, 42, 0.42);
}

.vatex-picker__header[b-m83qxxz4vr] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.1rem 0.5rem;
}

.vatex-picker__title[b-m83qxxz4vr] {
    font-weight: 700;
    font-size: 1.05rem;
}

.vatex-picker__subtitle[b-m83qxxz4vr] {
    font-size: 0.82rem;
    color: var(--tdl-text-muted);
}

.vatex-picker__search[b-m83qxxz4vr] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.25rem 1.1rem 0.75rem;
    border-bottom: 1px solid var(--tdl-border);
}

.vatex-picker__search .form-control[b-m83qxxz4vr] {
    flex: 1 1 auto;
    min-width: 0;
}

.vatex-picker__count[b-m83qxxz4vr] {
    flex: 0 0 auto;
    font-size: 0.8rem;
    color: var(--tdl-text-muted);
    white-space: nowrap;
}

.vatex-picker__body[b-m83qxxz4vr] {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.4rem 0.6rem 0.8rem;
}

.vatex-picker__row[b-m83qxxz4vr] {
    appearance: none;
    display: grid;
    grid-template-columns: minmax(8.5rem, auto) 1fr;
    gap: 0.75rem;
    width: 100%;
    text-align: left;
    padding: 0.5rem 0.6rem;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.vatex-picker__row:hover[b-m83qxxz4vr],
.vatex-picker__row:focus-visible[b-m83qxxz4vr] {
    background: var(--tdl-primary-soft);
    outline: none;
}

.vatex-picker__row.is-selected[b-m83qxxz4vr] {
    background: var(--tdl-primary-soft);
    box-shadow: inset 3px 0 0 var(--tdl-primary);
}

.vatex-picker__code[b-m83qxxz4vr] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.vatex-picker__description[b-m83qxxz4vr] {
    color: var(--tdl-text-secondary);
    min-width: 0;
    overflow-wrap: anywhere;
}

.vatex-picker__empty[b-m83qxxz4vr] {
    padding: 1rem;
    color: var(--tdl-text-muted);
}

@media (max-width: 560px) {
    .vatex-picker[b-m83qxxz4vr] {
        width: calc(100vw - 1rem);
        max-height: 88vh;
    }

    .vatex-picker__row[b-m83qxxz4vr] {
        grid-template-columns: 1fr;
        gap: 0.15rem;
    }

    .vatex-picker__count[b-m83qxxz4vr] {
        display: none;
    }
}

.vat-category-picker[b-m83qxxz4vr] {
    width: min(620px, calc(100vw - 1.5rem));
}

.vat-category-picker .vatex-picker__row[b-m83qxxz4vr] {
    grid-template-columns: 3rem 1fr;
    align-items: start;
}

.vat-category-picker__text[b-m83qxxz4vr] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.vat-category-picker__label[b-m83qxxz4vr] {
    font-weight: 600;
}

@media (max-width: 560px) {
    .vat-category-picker .vatex-picker__row[b-m83qxxz4vr] {
        grid-template-columns: 2.6rem 1fr;
        gap: 0.5rem;
    }
}
/* /Components/Invoices/VatexReasonPicker.razor.rz.scp.css */
/* Selectorul motivului scutirii - un <dialog> în top layer, cu tokenii temei TDL. */
.vatex-picker[b-o3f8ig8zga] {
    width: min(760px, calc(100vw - 1.5rem));
    max-height: min(80vh, 720px);
    padding: 0;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl, 14px);
    background: var(--tdl-surface);
    color: var(--tdl-text-primary);
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.28);
    overflow: hidden;
}

.vatex-picker[open][b-o3f8ig8zga] {
    display: flex;
    flex-direction: column;
}

.vatex-picker[b-o3f8ig8zga]::backdrop {
    background: rgba(15, 23, 42, 0.42);
}

.vatex-picker__header[b-o3f8ig8zga] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.1rem 0.5rem;
}

.vatex-picker__title[b-o3f8ig8zga] {
    font-weight: 700;
    font-size: 1.05rem;
}

.vatex-picker__subtitle[b-o3f8ig8zga] {
    font-size: 0.82rem;
    color: var(--tdl-text-muted);
}

/* Căutarea rămâne vizibilă; doar lista derulează. */
.vatex-picker__search[b-o3f8ig8zga] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.25rem 1.1rem 0.75rem;
    border-bottom: 1px solid var(--tdl-border);
}

.vatex-picker__search .form-control[b-o3f8ig8zga] {
    flex: 1 1 auto;
    min-width: 0;
}

.vatex-picker__count[b-o3f8ig8zga] {
    flex: 0 0 auto;
    font-size: 0.8rem;
    color: var(--tdl-text-muted);
    white-space: nowrap;
}

.vatex-picker__body[b-o3f8ig8zga] {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.4rem 0.6rem 0.8rem;
}

.vatex-picker__row[b-o3f8ig8zga] {
    appearance: none;
    display: grid;
    grid-template-columns: minmax(8.5rem, auto) 1fr;
    gap: 0.75rem;
    width: 100%;
    text-align: left;
    padding: 0.5rem 0.6rem;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.vatex-picker__row:hover[b-o3f8ig8zga],
.vatex-picker__row:focus-visible[b-o3f8ig8zga] {
    background: var(--tdl-primary-soft);
    outline: none;
}

.vatex-picker__row.is-selected[b-o3f8ig8zga] {
    background: var(--tdl-primary-soft);
    box-shadow: inset 3px 0 0 var(--tdl-primary);
}

.vatex-picker__code[b-o3f8ig8zga] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.vatex-picker__description[b-o3f8ig8zga] {
    color: var(--tdl-text-secondary);
    min-width: 0;
    overflow-wrap: anywhere;
}

.vatex-picker__empty[b-o3f8ig8zga] {
    padding: 1rem;
    color: var(--tdl-text-muted);
}

/* Telefon: codul deasupra descrierii, fără derulare orizontală. */
@media (max-width: 560px) {
    .vatex-picker[b-o3f8ig8zga] {
        width: calc(100vw - 1rem);
        max-height: 88vh;
    }

    .vatex-picker__row[b-o3f8ig8zga] {
        grid-template-columns: 1fr;
        gap: 0.15rem;
    }

    .vatex-picker__count[b-o3f8ig8zga] {
        display: none;
    }
}
/* /Components/Invoices/VatTreatmentEditor.razor.rz.scp.css */
/* Tratamentul TVA: categorie și cotă pe un rând (două coloane), motivul dedesubt, pe toată lățimea. */
.vat-treatment-editor[b-oq8pmj8peu] {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    min-width: 0;
}

.vat-treatment-editor__grid[b-oq8pmj8peu] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
    gap: 0.75rem;
}

.vat-treatment-editor__rate[b-oq8pmj8peu] {
    display: flex;
    align-items: stretch;
}

.vat-treatment-editor__rate .form-control[b-oq8pmj8peu] {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    min-width: 0;
}

.vat-treatment-editor__rate .form-control[readonly][b-oq8pmj8peu] {
    background: var(--tdl-surface-muted);
    color: var(--tdl-text-secondary);
}

.vat-treatment-editor__suffix[b-oq8pmj8peu] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.6rem;
    padding: 0 0.6rem;
    border: 1px solid var(--tdl-border-strong);
    border-left: 0;
    border-radius: 0 0.5rem 0.5rem 0;
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-secondary);
    font-weight: 600;
}

.vat-treatment-editor__reason-card[b-oq8pmj8peu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--tdl-border);
    border-radius: 0.5rem;
    background: var(--tdl-surface-soft);
    min-width: 0;
}

.vat-treatment-editor__reason-card--empty[b-oq8pmj8peu] {
    border-style: dashed;
}

.vat-treatment-editor__reason-text[b-oq8pmj8peu] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.vat-treatment-editor__reason-code[b-oq8pmj8peu] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.vat-treatment-editor__reason-description[b-oq8pmj8peu] {
    font-size: 0.85rem;
    color: var(--tdl-text-secondary);
    overflow-wrap: anywhere;
}

.vat-treatment-editor__reason-actions[b-oq8pmj8peu] {
    display: flex;
    gap: 0.4rem;
    flex: 0 0 auto;
}

.vat-treatment-editor__text-label[b-oq8pmj8peu] {
    margin-top: 0.5rem;
}

/* În editorul liniei de factură folosim lățimea modalului pentru a evita scrollul vertical inutil. */
.vat-treatment-editor[data-testid$="line-modal-vat-treatment"][b-oq8pmj8peu] {
    gap: 0.5rem;
}

.vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__grid[b-oq8pmj8peu] {
    grid-template-columns: minmax(9rem, 0.72fr) minmax(0, 1.65fr);
    gap: 0.65rem;
}

.vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason[b-oq8pmj8peu] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    grid-template-rows: auto auto auto;
    gap: 0.25rem 0.75rem;
    align-items: start;
    min-width: 0;
}

.vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason > .settings-label:first-child[b-oq8pmj8peu] {
    grid-column: 1;
    grid-row: 1;
}

.vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason > .form-control[b-oq8pmj8peu] {
    grid-column: 1;
    grid-row: 2;
}

.vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason > .vat-treatment-editor__generated[b-oq8pmj8peu] {
    grid-column: 1;
    grid-row: 3;
}

.vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason > .vat-treatment-editor__text-label[b-oq8pmj8peu] {
    grid-column: 2;
    grid-row: 1;
    margin-top: 0;
}

.vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason > .vat-treatment-editor__reason-card[b-oq8pmj8peu] {
    grid-column: 2;
    grid-row: 2 / span 2;
    gap: 0.65rem;
    padding: 0.48rem 0.65rem;
}

@media (max-width: 760px) {
    .vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason[b-oq8pmj8peu] {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        gap: 0.3rem;
    }

    .vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason > .settings-label:first-child[b-oq8pmj8peu],
    .vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason > .form-control[b-oq8pmj8peu],
    .vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason > .vat-treatment-editor__generated[b-oq8pmj8peu],
    .vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason > .vat-treatment-editor__text-label[b-oq8pmj8peu],
    .vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason > .vat-treatment-editor__reason-card[b-oq8pmj8peu] {
        grid-column: 1;
        grid-row: auto;
    }

    .vat-treatment-editor[data-testid$="line-modal-vat-treatment"] .vat-treatment-editor__reason > .vat-treatment-editor__text-label[b-oq8pmj8peu] {
        margin-top: 0.2rem;
    }
}

/* Telefon: categoria și cota se stivuiesc, butoanele motivului trec sub text. */
@media (max-width: 560px) {
    .vat-treatment-editor__grid[b-oq8pmj8peu] {
        grid-template-columns: 1fr;
    }

    .vat-treatment-editor__reason-card[b-oq8pmj8peu] {
        flex-direction: column;
        align-items: stretch;
    }

    .vat-treatment-editor__reason-actions[b-oq8pmj8peu] {
        justify-content: flex-end;
    }
}

.vat-treatment-editor__category[b-oq8pmj8peu] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-width: 0;
    text-align: left;
    cursor: pointer;
}

.vat-treatment-editor__category:disabled[b-oq8pmj8peu] {
    cursor: default;
}

.vat-treatment-editor__category-code[b-oq8pmj8peu] {
    flex: 0 0 auto;
    min-width: 1.9rem;
    padding: 0.05rem 0.4rem;
    border-radius: 0.35rem;
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary);
    font-weight: 700;
    text-align: center;
}

.vat-treatment-editor__category-label[b-oq8pmj8peu] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vat-treatment-editor__category-placeholder[b-oq8pmj8peu] {
    color: var(--tdl-text-muted);
}

.vat-treatment-editor__generated[b-oq8pmj8peu] {
    margin-top: 0.4rem;
    font-size: 0.82rem;
    color: var(--tdl-text-secondary);
}

.vat-treatment-editor__hint[b-oq8pmj8peu] {
    margin-top: 0.25rem;
}
/* /Components/NotificationBell.razor.rz.scp.css */
.notification-bell[b-uoltx86y91] {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.notification-bell__button[b-uoltx86y91] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.45rem;
    height: 2.45rem;
    border: 1px solid var(--tdl-border, var(--tdl-border));
    border-radius: var(--tdl-radius-md, 0.4rem);
    background: var(--tdl-surface, var(--tdl-surface));
    color: var(--tdl-text-primary, #2d333b);
    box-shadow: var(--tdl-shadow-sm, 0 1px 3px rgba(43, 50, 59, 0.06));
    transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.notification-bell__button:hover[b-uoltx86y91],
.notification-bell__button:focus-visible[b-uoltx86y91] {
    border-color: var(--tdl-primary-soft-border, #bfd1df);
    background: var(--tdl-primary-soft, #e6eff5);
    box-shadow: var(--tdl-shadow, 0 4px 12px rgba(43, 50, 59, 0.08));
    outline: none;
}

.notification-bell__icon[b-uoltx86y91] {
    width: 1.1rem;
    height: 1.1rem;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.notification-bell__badge[b-uoltx86y91] {
    position: absolute;
    top: -0.35rem;
    right: -0.35rem;
    min-width: 1.15rem;
    height: 1.15rem;
    padding: 0 0.28rem;
    border: 2px solid var(--tdl-surface, var(--tdl-surface));
    border-radius: 999px;
    background: var(--tdl-danger, #9e2a2b);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 0.95rem;
    text-align: center;
}

.notification-panel[b-uoltx86y91] {
    position: absolute;
    z-index: 40;
    top: calc(100% + 0.65rem);
    right: 0;
    width: min(24rem, calc(100vw - 2rem));
    overflow: hidden;
    border: 1px solid var(--tdl-border, var(--tdl-border));
    border-radius: var(--tdl-radius-lg, 0.55rem);
    background: var(--tdl-surface, var(--tdl-surface));
    box-shadow: var(--tdl-shadow-lg, 0 22px 48px rgba(15, 23, 42, 0.14));
}

.notification-panel__header[b-uoltx86y91] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--tdl-border, var(--tdl-border));
    font-weight: 800;
}

.notification-panel__mark-all[b-uoltx86y91] {
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    text-decoration: underline;
    color: var(--tdl-text-muted, #6b7280);
    font-size: 0.78rem;
    font-weight: 700;
}

.notification-panel__count[b-uoltx86y91] {
    color: var(--tdl-text-muted, #6b7280);
    font-size: 0.78rem;
    font-weight: 700;
}

.notification-panel__empty[b-uoltx86y91] {
    padding: 1.25rem 1rem;
    color: var(--tdl-text-muted, #6b7280);
    font-size: 0.9rem;
}

.notification-panel__list[b-uoltx86y91] {
    display: grid;
    max-height: 24rem;
    overflow-y: auto;
}

.notification-item[b-uoltx86y91] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.7rem;
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--tdl-border-soft, rgba(226, 221, 213, 0.72));
    background: transparent;
    padding: 0.85rem 1rem;
    text-align: left;
    color: var(--tdl-text-primary, #2d333b);
}

.notification-item:last-child[b-uoltx86y91] {
    border-bottom: 0;
}

.notification-item:hover[b-uoltx86y91],
.notification-item:focus-visible[b-uoltx86y91] {
    background: var(--tdl-surface-soft, var(--tdl-surface-soft));
    outline: none;
}

.notification-item--read[b-uoltx86y91] {
    opacity: 0.68;
}

.notification-item__marker[b-uoltx86y91] {
    width: 0.55rem;
    height: 0.55rem;
    margin-top: 0.35rem;
    border-radius: 999px;
    background: var(--tdl-primary, var(--tdl-primary));
}

.notification-item--success .notification-item__marker[b-uoltx86y91] {
    background: var(--tdl-success, #275c3d);
}

.notification-item--warning .notification-item__marker[b-uoltx86y91] {
    background: var(--tdl-warning, #8c5a14);
}

.notification-item--danger .notification-item__marker[b-uoltx86y91] {
    background: var(--tdl-danger, #9e2a2b);
}

.notification-item__content[b-uoltx86y91] {
    display: grid;
    gap: 0.18rem;
}

.notification-item__title[b-uoltx86y91] {
    font-size: 0.9rem;
    font-weight: 800;
}

.notification-item__description[b-uoltx86y91],
.notification-item__meta[b-uoltx86y91] {
    color: var(--tdl-text-secondary, #4b5563);
    font-size: 0.82rem;
    line-height: 1.35;
}

.notification-item__meta[b-uoltx86y91] {
    color: var(--tdl-text-muted, #6b7280);
    font-weight: 700;
}

/* Contorul de repetări: un singur eveniment observat de mai multe ori, nu mai multe evenimente. */
.notification-item__repeat[b-uoltx86y91] {
    margin-left: 0.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: var(--tdl-surface-muted, rgba(0, 0, 0, .06));
    color: var(--tdl-text-secondary, #667);
    font-size: 0.68rem;
    font-weight: 700;
    vertical-align: middle;
}
/* /Components/PageHeader.razor.rz.scp.css */
.page-header[b-r00x5th4o5] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 1.2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--tdl-border);
}

/* See PageHeader.Compact. Only the band shrinks - the title keeps its size and the rule stays. */
.page-header--compact[b-r00x5th4o5] {
    margin-bottom: 0.6rem;
    padding-bottom: 0.55rem;
}

.page-header-content[b-r00x5th4o5] {
    min-width: 0;
}

.page-header-eyebrow[b-r00x5th4o5] {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0.55rem;
    padding: 0.22rem 0.55rem;
    border-radius: var(--tdl-radius-sm);
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.page-header-title[b-r00x5th4o5] {
    margin: 0;
    font-size: clamp(1.45rem, 1.6vw, 1.75rem);
    line-height: 1.1;
    font-weight: 750;
    color: var(--tdl-text-primary);
    letter-spacing: 0;
}

.page-header-description[b-r00x5th4o5] {
    margin: 0.5rem 0 0 0;
    max-width: 780px;
    color: var(--tdl-text-muted);
    font-size: 0.95rem;
    line-height: 1.55;
}

.page-header-actions[b-r00x5th4o5] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

@media (max-width: 900px) {
    .page-header[b-r00x5th4o5] {
        flex-direction: column;
        align-items: stretch;
    }

    .page-header-actions[b-r00x5th4o5] {
        justify-content: flex-start;
    }
}
/* /Components/PaymentEditorModal.razor.rz.scp.css */
.payment-editor-metadata[b-23ybj31vm2] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem .8rem;
}

.payment-editor-field label[b-23ybj31vm2] {
    display: block;
    margin-bottom: .25rem;
    color: var(--tdl-text-primary);
    font-size: .78rem;
    font-weight: 700;
}

.payment-editor-field .form-control[b-23ybj31vm2],
.payment-editor-field .form-select[b-23ybj31vm2] {
    min-height: 2.25rem;
}

.payment-editor-alert[b-23ybj31vm2] {
    margin-bottom: .65rem;
    padding: .55rem .7rem;
}

.payment-editor-allocation-section[b-23ybj31vm2] {
    margin-top: .75rem;
}

.payment-editor-source-context[b-23ybj31vm2] {
    margin-bottom: .35rem;
    color: var(--tdl-text-muted);
    font-size: .8rem;
}

.payment-editor-allocation-heading-row[b-23ybj31vm2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .4rem;
}

.payment-editor-allocation-heading-row h3[b-23ybj31vm2] {
    margin: 0;
    color: var(--tdl-text-primary);
    font-size: .95rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.payment-editor-add-another-control[b-23ybj31vm2] {
    display: flex;
    align-items: center;
    gap: .45rem;
}

.payment-editor-add-another-control small[b-23ybj31vm2] {
    max-width: 14rem;
    color: var(--tdl-text-muted);
    font-size: .72rem;
    line-height: 1.2;
}

.payment-editor-summary[b-23ybj31vm2] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: .45rem;
    overflow: hidden;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
}

.payment-editor-summary div[b-23ybj31vm2] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .45rem;
    min-width: 0;
    padding: .45rem .65rem;
}

.payment-editor-summary div + div[b-23ybj31vm2] {
    border-left: 1px solid var(--tdl-border);
}

.payment-editor-summary span[b-23ybj31vm2] {
    color: var(--tdl-text-muted);
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.payment-editor-summary strong[b-23ybj31vm2] {
    white-space: nowrap;
}

.payment-editor-state[b-23ybj31vm2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin: .45rem 0 0;
    padding: .55rem .7rem;
}

.payment-editor-allocation-warning[b-23ybj31vm2] {
    margin: 0 0 .45rem;
    padding: .5rem .65rem;
    font-size: .82rem;
}

.payment-editor-allocation-list[b-23ybj31vm2] {
    max-height: 13.5rem;
    overflow-x: auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
}

.allocation-table[b-23ybj31vm2] {
    min-width: 780px;
}

.allocation-table th[b-23ybj31vm2] {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: .4rem .5rem;
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-muted);
    font-size: .67rem;
    text-transform: uppercase;
    letter-spacing: .035em;
    white-space: nowrap;
}

.allocation-table td[b-23ybj31vm2] {
    padding: .42rem .5rem;
    vertical-align: middle;
}

.payment-editor-client[b-23ybj31vm2] {
    display: -webkit-box;
    max-width: 22rem;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}

.allocation-amount-input[b-23ybj31vm2] {
    width: 8.25rem;
    min-height: 2rem;
    margin-left: auto;
    padding-top: .25rem;
    padding-bottom: .25rem;
}

.payment-editor-add-row[b-23ybj31vm2] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: .5rem;
    margin-top: .5rem;
}

.balance--due[b-23ybj31vm2] {
    color: var(--tdl-danger, #b91c1c);
}

@media (max-width: 1199px) {
    .payment-editor-metadata[b-23ybj31vm2] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .payment-editor-metadata[b-23ybj31vm2],
    .payment-editor-summary[b-23ybj31vm2],
    .payment-editor-add-row[b-23ybj31vm2] {
        grid-template-columns: 1fr;
    }

    .payment-editor-summary div + div[b-23ybj31vm2] {
        border-top: 1px solid var(--tdl-border);
        border-left: 0;
    }

    .payment-editor-allocation-heading-row[b-23ybj31vm2] {
        align-items: flex-start;
        flex-direction: column;
    }

    .payment-editor-add-another-control[b-23ybj31vm2] {
        align-items: flex-start;
        flex-direction: column;
    }

    .payment-editor-allocation-list[b-23ybj31vm2] {
        max-height: none;
        overflow: visible;
        border: 0;
    }

    .allocation-table[b-23ybj31vm2],
    .allocation-table tbody[b-23ybj31vm2],
    .allocation-table tr[b-23ybj31vm2],
    .allocation-table td[b-23ybj31vm2] {
        display: block;
        min-width: 0;
        width: 100%;
    }

    .allocation-table thead[b-23ybj31vm2] {
        display: none;
    }

    .allocation-table tr[b-23ybj31vm2] {
        margin-bottom: .65rem;
        overflow: hidden;
        border: 1px solid var(--tdl-border);
        border-radius: var(--tdl-radius-md);
        background: var(--tdl-surface);
    }

    .allocation-table td[b-23ybj31vm2] {
        display: grid;
        grid-template-columns: minmax(7.5rem, 42%) minmax(0, 1fr);
        align-items: center;
        gap: .65rem;
        border: 0;
        border-bottom: 1px solid var(--tdl-border);
        text-align: right !important;
    }

    .allocation-table td:last-child[b-23ybj31vm2] {
        border-bottom: 0;
    }

    .allocation-table td[b-23ybj31vm2]::before {
        content: attr(data-label);
        color: var(--tdl-text-muted);
        font-size: .68rem;
        font-weight: 800;
        text-align: left;
        text-transform: uppercase;
        letter-spacing: .035em;
    }

    .payment-editor-client[b-23ybj31vm2] {
        max-width: none;
        text-align: right;
    }

    .allocation-amount-input[b-23ybj31vm2] {
        width: 100%;
    }
}

@media (max-width: 520px) {
    .payment-editor-summary div[b-23ybj31vm2] {
        padding: .4rem .5rem;
    }

    .payment-editor-state[b-23ybj31vm2] {
        align-items: stretch;
        flex-direction: column;
    }
}
/* /Components/ProductCatalogPicker.razor.rz.scp.css */
.product-picker[b-0nuux3pfjg] {
    width: min(920px, calc(100vw - 2rem));
    max-height: min(78vh, 760px);
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Header and search stay put; only the results scroll. */
.product-picker-header[b-0nuux3pfjg] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--tdl-surface);
}

.product-picker-search[b-0nuux3pfjg] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .25rem 0 .75rem;
    border-bottom: 1px solid var(--border);
}

.product-picker-search .form-control[b-0nuux3pfjg] {
    flex: 1 1 auto;
}

.product-picker-count[b-0nuux3pfjg] {
    flex: 0 0 auto;
    font-size: .8rem;
    color: var(--text-secondary);
    white-space: nowrap;
}

.product-picker-body[b-0nuux3pfjg] {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    padding: .85rem 0;
    min-height: 6rem;
}

/* Chips flow and wrap. A long product name grows the card downwards, never sideways. */
.product-picker-grid[b-0nuux3pfjg] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: stretch;
}

.product-chip[b-0nuux3pfjg] {
    appearance: none;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: .35rem;
    flex: 0 1 auto;
    width: 15rem;
    max-width: 100%;
    text-align: left;
    padding: .6rem .75rem;
    border: 1px solid var(--border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface);
    cursor: pointer;
    transition: border-color .12s, background .12s, box-shadow .12s;
}

.product-chip:hover[b-0nuux3pfjg] {
    border-color: var(--tdl-primary-soft-border);
    background: var(--tdl-primary-soft);
}

.product-chip--highlighted[b-0nuux3pfjg] {
    border-color: var(--tdl-primary);
    background: var(--tdl-primary-soft);
    box-shadow: 0 0 0 1px var(--tdl-primary);
}

.product-chip:focus-visible[b-0nuux3pfjg] {
    outline: 2px solid var(--tdl-primary);
    outline-offset: 1px;
}

.product-chip-name[b-0nuux3pfjg] {
    font-weight: 600;
    font-size: .85rem;
    color: var(--text-primary);

    /* Wrap cleanly, including a single very long token. */
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.35;
}

.product-chip-meta[b-0nuux3pfjg] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
    font-size: .78rem;
    color: var(--text-secondary);
}

.product-chip-unit[b-0nuux3pfjg] {
    text-transform: uppercase;
    letter-spacing: .02em;
}

.product-chip-price[b-0nuux3pfjg] {
    font-variant-numeric: tabular-nums;
}

.product-picker-footer[b-0nuux3pfjg] {
    border-top: 1px solid var(--border);
    padding-top: .6rem;
}

@media (max-width: 640px) {
    .product-picker-search[b-0nuux3pfjg] {
        flex-wrap: wrap;
    }

    .product-chip[b-0nuux3pfjg] {
        width: 100%;
    }
}
/* /Components/RealtimeStatusBadge.razor.rz.scp.css */
.realtime-status[b-1dkg2rr0qk] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 2.3rem;
    padding: 0.42rem 0.7rem;
    border-radius: var(--tdl-radius-md);
    border: 1px solid var(--tdl-border-strong);
    background: var(--tdl-surface);
    color: var(--tdl-text-secondary);
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

.realtime-status:hover[b-1dkg2rr0qk] {
    color: var(--tdl-text-primary);
    border-color: #94a3b8;
}

.realtime-status-dot[b-1dkg2rr0qk] {
    width: 0.62rem;
    height: 0.62rem;
    border-radius: 999px;
    background: #94a3b8;
    box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.18);
    flex: 0 0 auto;
}

.realtime-status--connected .realtime-status-dot[b-1dkg2rr0qk] {
    background: #16a34a;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.18);
}

.realtime-status--connecting .realtime-status-dot[b-1dkg2rr0qk],
.realtime-status--reconnecting .realtime-status-dot[b-1dkg2rr0qk] {
    background: #f59e0b;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.2);
}

.realtime-status--disconnected .realtime-status-dot[b-1dkg2rr0qk] {
    background: #dc2626;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.16);
}

.realtime-status--disabled[b-1dkg2rr0qk] {
    opacity: 0.72;
    cursor: default;
}

@media (max-width: 760px) {
    .realtime-status[b-1dkg2rr0qk] {
        flex: 1 1 auto;
        justify-content: center;
    }
}
/* /Components/SidebarLogout.razor.rz.scp.css */
/* Pinned to the bottom of the viewport-height sidebar, outside the nav scroller. */
.sidebar-footer[b-ehfctwc7gf] {
    flex: 0 0 auto;
    margin-top: auto;
    padding: 0.85rem 0.7rem 1.05rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(0, 0, 0, 0.12);
}

.sidebar-logout[b-ehfctwc7gf] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    width: 100%;
    height: 2.65rem;
    padding: 0 1rem;
    margin: 0;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: rgba(226, 233, 240, 0.78);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.1;
    cursor: pointer;
    text-align: left;
    transition: background-color 0.16s ease, color 0.16s ease;
}

.sidebar-logout:hover[b-ehfctwc7gf],
.sidebar-logout:focus[b-ehfctwc7gf] {
    background: rgba(220, 80, 80, 0.16);
    color: #ffd9d9;
    outline: 0;
}

.sidebar-logout:focus-visible[b-ehfctwc7gf] {
    box-shadow: 0 0 0 2px rgba(225, 130, 130, 0.55);
}

.sidebar-logout-icon[b-ehfctwc7gf] {
    width: 1.3rem;
    height: 1.3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: rgba(220, 228, 236, 0.55);
    transition: color 0.16s ease;
}

.sidebar-logout:hover .sidebar-logout-icon[b-ehfctwc7gf],
.sidebar-logout:focus .sidebar-logout-icon[b-ehfctwc7gf] {
    color: #ffb4b4;
}

.sidebar-logout-icon svg[b-ehfctwc7gf] {
    width: 1.2rem;
    height: 1.2rem;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
}

.sidebar-logout-label[b-ehfctwc7gf] {
    color: inherit;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1100px) {
    .sidebar-footer[b-ehfctwc7gf] {
        border-top: 0;
        background: transparent;
        padding: 0 0.85rem 0.85rem;
        margin-top: 0;
    }

    .sidebar-logout[b-ehfctwc7gf] {
        height: 2.4rem;
    }
}
/* /Components/SpvSyncPanel.razor.rz.scp.css */
/* ---- Sincronizare SPV ------------------------------------------------------------------ */

/* Moved here with the panel itself: the styles belong to the component, not to whichever page
   happens to mount it. */

.page-chip--success[b-9m6vmbz9ju] {
    border-color: var(--tdl-success-soft-border);
    background: var(--tdl-success-soft);
    color: var(--tdl-success);
}

.page-chip--danger[b-9m6vmbz9ju] {
    border-color: var(--tdl-danger-soft-border);
    background: var(--tdl-danger-soft);
    color: var(--tdl-danger);
}

.spv-preview[b-9m6vmbz9ju] {
    margin-top: 1.25rem;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    padding-top: 1rem;
}

.spv-preview__headline[b-9m6vmbz9ju] {
    font-size: 1.05rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
}

.spv-preview__summary[b-9m6vmbz9ju] {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
}

.spv-preview__summary strong[b-9m6vmbz9ju] {
    display: inline-block;
    min-width: 1.75rem;
    text-align: right;
    margin-right: 0.35rem;
}

.spv-preview__filters[b-9m6vmbz9ju] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
}

/* Technical identifiers stay behind a disclosure so the normal view shows only business data. */
.spv-preview__details[b-9m6vmbz9ju] {
    margin-top: 0.35rem;
}

.spv-preview__details summary[b-9m6vmbz9ju] {
    cursor: pointer;
    font-size: 0.85rem;
}

/* The list must never be able to push the page sideways on a narrow screen. */
.spv-preview .table[b-9m6vmbz9ju] {
    display: block;
    overflow-x: auto;
    max-width: 100%;
}

@media (max-width: 640px) {
    .spv-preview__summary[b-9m6vmbz9ju] {
        flex-direction: column;
        gap: 0.35rem;
    }

    .spv-preview__filters .btn[b-9m6vmbz9ju] {
        flex: 1 1 auto;
    }
}
/* /Components/SuperAdmin/DestructiveOperationsPreflightPanel.razor.rz.scp.css */
.preflight-panel[b-44dnmbkkcm] {
    border: 1px solid var(--tdl-border);
    border-radius: 0.5rem;
    padding: 0.85rem 1rem;
    background: var(--tdl-surface-soft);
    margin-bottom: 1rem;
}

.preflight-panel-header[b-44dnmbkkcm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.preflight-status[b-44dnmbkkcm] {
    font-weight: 600;
    font-size: 0.85rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
}

.preflight-status--green[b-44dnmbkkcm] {
    color: var(--tdl-success);
    background: var(--tdl-success-soft);
    border: 1px solid var(--tdl-success-soft-border);
}

.preflight-status--red[b-44dnmbkkcm] {
    color: var(--tdl-danger);
    background: var(--tdl-danger-soft);
    border: 1px solid var(--tdl-danger-soft-border);
}

.preflight-item-list[b-44dnmbkkcm] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.6rem;
}

.preflight-group > ul[b-44dnmbkkcm] {
    list-style: none;
    margin: 0.25rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.25rem;
}

.preflight-group-name[b-44dnmbkkcm] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--tdl-text-muted);
}

.preflight-item[b-44dnmbkkcm] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.85rem;
    flex-wrap: wrap;
}

.preflight-item-name[b-44dnmbkkcm] {
    font-weight: 600;
    color: var(--tdl-text-primary);
}

.preflight-item-detail[b-44dnmbkkcm] {
    color: var(--tdl-text-secondary);
}

.preflight-badge[b-44dnmbkkcm] {
    display: inline-block;
    min-width: 4.5rem;
    text-align: center;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.1rem 0.4rem;
    border-radius: 0.25rem;
}

.preflight-badge--present[b-44dnmbkkcm] {
    color: var(--tdl-success);
    background: var(--tdl-success-soft);
    border: 1px solid var(--tdl-success-soft-border);
}

.preflight-badge--missing[b-44dnmbkkcm] {
    color: var(--tdl-danger);
    background: var(--tdl-danger-soft);
    border: 1px solid var(--tdl-danger-soft-border);
}

.preflight-badge--invalid[b-44dnmbkkcm] {
    color: var(--tdl-warning);
    background: var(--tdl-warning-soft);
    border: 1px solid var(--tdl-warning-soft-border);
}

.preflight-status--warning[b-44dnmbkkcm] {
    color: var(--tdl-warning);
    background: var(--tdl-warning-soft);
    border: 1px solid var(--tdl-warning-soft-border);
}
/* /Components/TdlModal.razor.rz.scp.css */
.tdl-modal-backdrop[b-68zw1jc5ju] {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(15, 23, 42, 0.45);
}

.tdl-modal[b-68zw1jc5ju] {
    width: min(640px, calc(100vw - 2rem));
    max-width: 100%;
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    padding: 1.25rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    background: var(--tdl-surface);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.25);
}

.tdl-modal--size-small[b-68zw1jc5ju] {
    width: min(520px, calc(100vw - 2rem));
}

.tdl-modal--size-medium[b-68zw1jc5ju] {
    width: min(680px, calc(100vw - 2rem));
}

.tdl-modal--size-large[b-68zw1jc5ju] {
    width: min(920px, calc(100vw - 2rem));
}

.tdl-modal--size-extra-large[b-68zw1jc5ju] {
    width: min(1280px, calc(100vw - 3rem));
}

.tdl-modal--danger[b-68zw1jc5ju] {
    border-color: rgba(220, 38, 38, 0.22);
}

.tdl-modal-header[b-68zw1jc5ju] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.tdl-modal-header h2[b-68zw1jc5ju] {
    margin: 0.15rem 0 0.2rem;
    color: var(--tdl-text-primary);
    font-size: 1.35rem;
    font-weight: 800;
}

.tdl-modal-header p[b-68zw1jc5ju] {
    margin: 0;
    color: var(--tdl-text-muted);
    font-size: 0.9rem;
}

.tdl-modal-eyebrow[b-68zw1jc5ju] {
    color: var(--tdl-primary-hover);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tdl-modal-close[b-68zw1jc5ju] {
    padding: 0.1rem 0.25rem;
    border: 0;
    background: transparent;
    color: var(--tdl-text-muted);
    font-size: 1.7rem;
    line-height: 1;
}

.tdl-modal-actions[b-68zw1jc5ju] {
    display: flex;
    justify-content: flex-end;
    gap: 0.65rem;
    flex-wrap: wrap;
    margin-top: 1.25rem;
}

/* ==========================================================================================
   The same header and footer, for a CustomLayout shell built on the standard panel
   ==========================================================================================

   Everything above is scoped to markup THIS component renders. A confirmation dialog written with
   CustomLayout supplies its own header and footer, so the rules above never reached them: the
   .tdl-modal-header of the fiscal delete dialog carried the page's scope attribute, not the
   component's, and rendered with no layout at all - eyebrow, title, subtitle and the × button all
   in a row of plain text.

   These ::deep copies apply the same presentation to a shell that opted into the standard panel
   (`PanelClass="tdl-modal ..."`) and uses the structural class names. Deliberately keyed on
   .tdl-modal rather than on the wildcard: a shell with its own panel (.alop-modal,
   .modal-panel-custom) also brings its own header styling and must not inherit this one.
   ========================================================================================== */

.tdl-modal[b-68zw1jc5ju]  .tdl-modal-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.tdl-modal[b-68zw1jc5ju]  .tdl-modal-header h2 {
    margin: 0.15rem 0 0.2rem;
    color: var(--tdl-text-primary);
    font-size: 1.35rem;
    font-weight: 800;
}

.tdl-modal[b-68zw1jc5ju]  .tdl-modal-header p {
    margin: 0;
    color: var(--tdl-text-muted);
    font-size: 0.9rem;
}

.tdl-modal[b-68zw1jc5ju]  .tdl-modal-eyebrow {
    color: var(--tdl-primary-hover);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tdl-modal[b-68zw1jc5ju]  .tdl-modal-close {
    flex: 0 0 auto;
    padding: 0.1rem 0.25rem;
    border: 0;
    background: transparent;
    color: var(--tdl-text-muted);
    font-size: 1.7rem;
    line-height: 1;
}

.tdl-modal[b-68zw1jc5ju]  .tdl-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.65rem;
    flex-wrap: wrap;
    margin-top: 1.25rem;
}

/* ==========================================================================================
   Sticky action bar shell
   ==========================================================================================

   The panel becomes a flex column that does not scroll; only the body does. Header and action
   bar are siblings of the scroller rather than content inside it, so they simply cannot scroll
   away - no position: sticky, and therefore no ancestor-overflow or z-index trap to fall into.

   Opt-in through .tdl-modal--stacked. Every standard-layout modal gets it automatically from the
   component; a CustomLayout shell adopts it by adding the class to its PanelClass. Legacy shells
   that do not opt in keep the old behaviour, where the panel itself is the scroller.

   These rules live here, in the component's own stylesheet, because the elements are structural.
   Putting them in a page stylesheet is what caused the earlier regression where .tdl-modal was
   styled in Payments.razor.css while the element was rendered by the child component. ::deep is
   what lets the same rules reach markup that a CustomLayout page supplies.
   ========================================================================================== */

.tdl-modal--stacked[b-68zw1jc5ju] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    /* Beats the .tdl-modal default above without needing a more specific selector chain. */
    overflow: hidden;
}

.tdl-modal--stacked > .tdl-modal-header[b-68zw1jc5ju],
.tdl-modal--stacked[b-68zw1jc5ju]  .tdl-modal-shell-header {
    flex: 0 0 auto;
}

.tdl-modal-actionbar[b-68zw1jc5ju],
.tdl-modal--stacked[b-68zw1jc5ju]  .tdl-modal-actionbar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    /* Above the body so a dropdown or date picker opening in the content cannot paint over it. */
    position: relative;
    z-index: 2;
}

/*
   Bleed to the panel edges. Only for the standard layout, whose panel has a known 1.25rem padding.
   A CustomLayout shell sets its own padding - Invoice Details uses padding: 0 - so inheriting this
   negative margin there makes the bar wider than the panel and pushes it into horizontal overflow.
*/
.tdl-modal-actionbar[b-68zw1jc5ju] {
    margin: 0 -1.25rem 0.9rem;
    padding: 0.7rem 1.25rem;
    border-top: 1px solid var(--tdl-border);
    border-bottom: 1px solid var(--tdl-border);
    background: var(--tdl-surface-soft, var(--tdl-surface));
}

.tdl-modal-body[b-68zw1jc5ju],
.tdl-modal--stacked[b-68zw1jc5ju]  .tdl-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    /* Room for a focus ring on the first and last elements inside the scroller. */
    padding: 0.15rem 0.15rem 0.25rem;
    margin: -0.15rem -0.15rem -0.25rem;
}

/*
   Action grouping. The separator pushes everything after it to the right, which is how the
   fiscal/destructive group is kept visually apart from neutral document actions rather than
   sitting in the same undifferentiated row.
*/
.tdl-modal-actionbar-spacer[b-68zw1jc5ju],
.tdl-modal--stacked[b-68zw1jc5ju]  .tdl-modal-actionbar .tdl-modal-actionbar-spacer {
    flex: 1 1 auto;
}

.tdl-modal-actionbar-group[b-68zw1jc5ju],
.tdl-modal--stacked[b-68zw1jc5ju]  .tdl-modal-actionbar .tdl-modal-actionbar-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.tdl-modal-actionbar-group--critical[b-68zw1jc5ju],
.tdl-modal--stacked[b-68zw1jc5ju]  .tdl-modal-actionbar .tdl-modal-actionbar-group--critical {
    padding-left: 0.75rem;
    border-left: 1px solid var(--tdl-border-strong, var(--tdl-border));
}

@media (max-width: 900px) {
    /*
       Wrap onto more rows rather than shrinking the buttons into illegibility. The bar is capped
       so that on a short viewport it can never eat the whole modal and leave no room to scroll.
    */
    .tdl-modal-actionbar[b-68zw1jc5ju],
    .tdl-modal--stacked[b-68zw1jc5ju]  .tdl-modal-actionbar {
        max-height: 40dvh;
        overflow-y: auto;
    }

    .tdl-modal-actionbar-group--critical[b-68zw1jc5ju],
    .tdl-modal--stacked[b-68zw1jc5ju]  .tdl-modal-actionbar .tdl-modal-actionbar-group--critical {
        padding-left: 0;
        border-left: 0;
    }
}

@media (max-width: 640px) {
    .tdl-modal-backdrop[b-68zw1jc5ju] {
        align-items: flex-start;
        padding: 0.5rem;
    }

    .tdl-modal[b-68zw1jc5ju],
    .tdl-modal--size-small[b-68zw1jc5ju],
    .tdl-modal--size-medium[b-68zw1jc5ju],
    .tdl-modal--size-large[b-68zw1jc5ju],
    .tdl-modal--size-extra-large[b-68zw1jc5ju] {
        width: calc(100vw - 1rem);
        max-height: calc(100dvh - 1rem);
        padding: 1rem;
    }

    .tdl-modal-actions .btn[b-68zw1jc5ju] {
        flex: 1 1 100%;
    }

    .tdl-modal-actionbar[b-68zw1jc5ju] {
        margin-left: -1rem;
        margin-right: -1rem;
        padding-left: 1rem;
        padding-right: 1rem;
    }
}
/* /Components/ToastHost.razor.rz.scp.css */
.toast-host[b-zj4qlsnln8] {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 2000;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: min(420px, calc(100vw - 2rem));
    pointer-events: none;
}

.toast[b-zj4qlsnln8] {
    pointer-events: auto;
    display: grid;
    grid-template-columns: 1.5rem 1fr auto;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    border: 1px solid transparent;
    border-radius: var(--tdl-radius-lg, 0.55rem);
    padding: 0.65rem 0.85rem;
    background: var(--tdl-surface, #fff);
    box-shadow: var(--tdl-shadow-lg, 0 22px 48px rgba(15, 23, 42, 0.14));
    color: var(--tdl-text-primary, #2d333b);
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    font-size: 0.92rem;
    line-height: 1.3;
    transform: translateX(0);
    animation: toast-in-b-zj4qlsnln8 0.18s ease-out;
}

.toast:hover[b-zj4qlsnln8] {
    filter: brightness(0.985);
}

.toast:focus-visible[b-zj4qlsnln8] {
    outline: 2px solid var(--tdl-primary, var(--tdl-primary));
    outline-offset: 2px;
}

.toast-icon[b-zj4qlsnln8] {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    background: rgba(0, 0, 0, 0.05);
    color: inherit;
    font-size: 0.85rem;
}

.toast-text[b-zj4qlsnln8] {
    color: inherit;
    word-break: break-word;
}

.toast-close[b-zj4qlsnln8] {
    color: inherit;
    opacity: 0.6;
    font-size: 1rem;
    padding-left: 0.35rem;
}

.toast--success[b-zj4qlsnln8] {
    border-color: var(--tdl-success-soft-border, #c9dfd2);
    background: var(--tdl-success-soft, #e5f0ea);
    color: var(--tdl-success, #275c3d);
}

.toast--success .toast-icon[b-zj4qlsnln8] {
    background: var(--tdl-success, #275c3d);
    color: #fff;
}

.toast--error[b-zj4qlsnln8] {
    border-color: var(--tdl-danger-soft-border, #e9c1c1);
    background: var(--tdl-danger-soft, #fae8e8);
    color: var(--tdl-danger, #9e2a2b);
}

.toast--error .toast-icon[b-zj4qlsnln8] {
    background: var(--tdl-danger, #9e2a2b);
    color: #fff;
}

.toast--warning[b-zj4qlsnln8] {
    border-color: var(--tdl-warning-soft-border, #f2d8b5);
    background: var(--tdl-warning-soft, #fdf0df);
    color: var(--tdl-warning, #8c5a14);
}

.toast--warning .toast-icon[b-zj4qlsnln8] {
    background: var(--tdl-warning, #8c5a14);
    color: #fff;
}

.toast--info[b-zj4qlsnln8] {
    border-color: var(--tdl-info-soft-border, #a5f3fc);
    background: var(--tdl-info-soft, #ecfeff);
    color: var(--tdl-info, #0e7490);
}

.toast--info .toast-icon[b-zj4qlsnln8] {
    background: var(--tdl-info, #0e7490);
    color: #fff;
}

@keyframes toast-in-b-zj4qlsnln8 {
    from {
        opacity: 0;
        transform: translateX(0.5rem);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}
/* /Components/UnitOfMeasureCatalogStatus.razor.rz.scp.css */
/*
    Un rând de subsol, nu un panou. Nomenclatorul este corect fără ca nimeni să se uite la el; rândul
    există pentru ziua în care cineva se întreabă de ce o unitate lipsește, deci trebuie găsit atunci,
    nu observat tot restul timpului.
*/
.uom-sync[b-okzq0oq2ad] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    /* Aerul de dedesubt este pentru eticheta secțiunii următoare: lipite, cele două citesc ca un
       singur bloc și nota pare titlul secțiunii de prețuri. */
    margin: 0.75rem 0 1rem;
    font-size: 0.78rem;
    color: #6b7280;
}

.uom-sync-text[b-okzq0oq2ad] {
    line-height: 1.35;
}

.uom-sync-action[b-okzq0oq2ad] {
    padding: 0;
    font-size: 0.78rem;
    text-decoration: underline;
}

.uom-sync-message[b-okzq0oq2ad] {
    margin-top: 0.35rem;
    font-size: 0.78rem;
    line-height: 1.35;
}

.uom-sync-message--ok[b-okzq0oq2ad] {
    color: #15803d;
}

/*
    Un upstream indisponibil nu este roșu: nu s-a stricat nimic, lista a rămas exact cum era. Culoarea
    de avertizare spune „uită-te când ai timp”, nu „ai o problemă acum”.
*/
.uom-sync-message--warn[b-okzq0oq2ad] {
    color: #b45309;
}
/* /Components/UnitOfMeasureSelector.razor.rz.scp.css */
/* =================================================================================================
   Selectorul de unitate de măsură.

   Lista se desenează peste conținutul de dedesubt, ancorată de câmp. Într-un tabel de linii de
   factură nu există loc să împingă rândurile în jos - de aceea `position: absolute` și un z-index
   peste rândurile vecine, nu un element în flux.
   ================================================================================================= */

.uom-field[b-y31uvyt4vq] {
    position: relative;
    display: block;
}

.uom-field--disabled[b-y31uvyt4vq] {
    opacity: .65;
}

.uom-input[b-y31uvyt4vq] {
    width: 100%;
}

/* Marcajul pentru o valoare veche, nepreluată în nomenclator. */
.uom-unclassified[b-y31uvyt4vq] {
    position: absolute;
    right: .4rem;
    top: 50%;
    transform: translateY(-50%);
    padding: .05rem .35rem;
    border-radius: 999px;
    background: var(--tdl-warning-soft, #fef3c7);
    color: var(--tdl-warning-text, #92400e);
    font-size: .65rem;
    font-weight: 700;
    pointer-events: none;
}

.uom-list[b-y31uvyt4vq] {
    position: absolute;
    z-index: 30;
    left: 0;
    right: 0;
    top: calc(100% + 2px);
    margin: 0;
    padding: .25rem 0;
    list-style: none;

    /* Peste zece intrări lista derulează, ca să nu acopere jumătate de formular. */
    max-height: 16rem;
    overflow-y: auto;
    min-width: 15rem;
    background: var(--tdl-surface, #fff);
    border: 1px solid var(--tdl-border, #cfe0f2);
    border-radius: var(--tdl-radius-md, .4rem);
    box-shadow: 0 6px 18px rgba(22, 48, 77, .14);
}

.uom-group[b-y31uvyt4vq] {
    padding: .3rem .6rem .15rem;
    color: var(--tdl-text-muted, #64748b);
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.uom-option[b-y31uvyt4vq] {
    display: grid;

    /* Simbolul are lățime proprie ca simbolurile să se citească într-o coloană, nu decalate. */
    grid-template-columns: 3.5rem 1fr auto;
    align-items: baseline;
    gap: .5rem;
    padding: .3rem .6rem;
    cursor: pointer;
    font-size: .85rem;
}

.uom-option:hover[b-y31uvyt4vq] {
    background: var(--tdl-surface-soft, #f3f9ff);
}

.uom-option--selected[b-y31uvyt4vq] {
    background: var(--tdl-primary-soft, #dbecff);
}

.uom-option-symbol[b-y31uvyt4vq] {
    font-weight: 700;
    color: var(--tdl-text-primary, #1e2a37);
}

.uom-option-name[b-y31uvyt4vq] {
    color: var(--tdl-text-secondary, #475569);
}

/* Codul standard, discret: îl caută cine îl știe, nu concurează cu simbolul. */
.uom-option-code[b-y31uvyt4vq] {
    color: var(--tdl-text-muted, #94a3b8);
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: .72rem;
}
/* /Layout/MainLayout.razor.rz.scp.css */
.app-shell[b-c7yqbxz1vs] {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 264px minmax(0, 1fr);
    background: var(--tdl-page-gradient);
}

/* ── Sidebar ───────────────────────────────────────────── */

/*
 * The sidebar is anchored to the viewport, never to the document.
 *
 * It used to carry overflow-y:auto on the ROOT, which made brand + nav + logout a single scroller:
 * once the menu grew past the viewport the TDL logo scrolled out of sight and the whole menu looked
 * like it had slid up with the page. Only the navigation may scroll now - see NavMenu.razor.css -
 * so the brand stays pinned at the top and the logout stays pinned at the bottom.
 */
.sidebar[b-c7yqbxz1vs] {
    background: var(--tdl-sidebar-bg);
    color: var(--tdl-surface);
    border-right: 1px solid rgba(0, 0, 0, 0.22);
    padding: 0;
    position: sticky;
    top: 0;
    height: 100dvh;
    /* Root must not scroll; the nav region owns it. */
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
    scrollbar-color: rgba(121, 175, 214, 0.62) rgba(13, 19, 27, 0.48);
    scrollbar-width: thin;
}

.sidebar-unused-scrollbar[b-c7yqbxz1vs]::-webkit-scrollbar {
    width: 10px;
}

.sidebar[b-c7yqbxz1vs]::-webkit-scrollbar-track {
    background: rgba(13, 19, 27, 0.48);
}

.sidebar[b-c7yqbxz1vs]::-webkit-scrollbar-thumb {
    background: rgba(121, 175, 214, 0.5);
    border: 2px solid rgba(13, 19, 27, 0.48);
    border-radius: 999px;
}

.sidebar[b-c7yqbxz1vs]::-webkit-scrollbar-thumb:hover {
    background: rgba(159, 197, 223, 0.72);
}

.brand-panel[b-c7yqbxz1vs] {
    /* Pinned: never part of what scrolls. */
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1.1rem 1.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    text-decoration: none;
    color: inherit;
}

.brand-panel:hover[b-c7yqbxz1vs] {
    color: inherit;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.03);
}

.brand-logo[b-c7yqbxz1vs] {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: #4f84a8;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 0.9rem;
    letter-spacing: 0.06em;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.22);
    flex-shrink: 0;
}

.brand-title[b-c7yqbxz1vs] {
    font-size: 1.02rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.15;
    letter-spacing: -0.005em;
}

.brand-subtitle[b-c7yqbxz1vs] {
    margin-top: 0.18rem;
    font-size: 0.74rem;
    color: rgba(236, 241, 245, 0.55);
    line-height: 1.3;
}

/* ── Workspace + topbar ────────────────────────────────── */

.workspace[b-c7yqbxz1vs] {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.topbar[b-c7yqbxz1vs] {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 64px;
    padding: 0.75rem 1.65rem;
    border-bottom: 1px solid var(--tdl-border);
    background: rgba(253, 252, 251, 0.96);
    backdrop-filter: blur(12px);
    flex-wrap: wrap;
    row-gap: 0.65rem;
}

.topbar-lead[b-c7yqbxz1vs] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

/*
 * Hamburger. Hidden on desktop, where the sidebar is a permanent column and a control that opens
 * something already on screen is just noise.
 */
.nav-toggle[b-c7yqbxz1vs] {
    display: none;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--tdl-border-strong);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface);
    color: var(--tdl-text-secondary);
    cursor: pointer;
}

.nav-toggle:focus-visible[b-c7yqbxz1vs] {
    outline: 2px solid var(--tdl-primary);
    outline-offset: 2px;
}

/* Three bars drawn from one element: the middle is the box, the outer two are its box-shadows. */
.nav-toggle-bars[b-c7yqbxz1vs],
.nav-toggle-bars[b-c7yqbxz1vs]::before,
.nav-toggle-bars[b-c7yqbxz1vs]::after {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
}

.nav-toggle-bars[b-c7yqbxz1vs] {
    position: relative;
}

.nav-toggle-bars[b-c7yqbxz1vs]::before,
.nav-toggle-bars[b-c7yqbxz1vs]::after {
    content: "";
    position: absolute;
    left: 0;
}

.nav-toggle-bars[b-c7yqbxz1vs]::before {
    top: -6px;
}

.nav-toggle-bars[b-c7yqbxz1vs]::after {
    top: 6px;
}

.topbar-meta[b-c7yqbxz1vs] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.topbar-kicker[b-c7yqbxz1vs] {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--tdl-text-subtle);
    text-transform: uppercase;
}

.topbar-date[b-c7yqbxz1vs] {
    color: var(--tdl-text-secondary);
    font-size: 0.92rem;
    font-weight: 600;
    text-transform: capitalize;
}

.topbar-actions[b-c7yqbxz1vs] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    min-width: 0;
}

/* Topbar buttons — three visual weights */
.topbar-action[b-c7yqbxz1vs] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.3rem;
    padding: 0.45rem 0.95rem;
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface);
    color: var(--tdl-text-secondary);
    border: 1px solid var(--tdl-border-strong);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.88rem;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease,
                box-shadow 0.15s ease, transform 0.1s ease;
    white-space: nowrap;
}

.topbar-action:hover[b-c7yqbxz1vs] {
    color: var(--tdl-text-primary);
    border-color: #94a3b8;
    text-decoration: none;
}

.topbar-action:focus-visible[b-c7yqbxz1vs] {
    outline: 0;
    box-shadow: 0 0 0 3px rgba(74, 116, 148, 0.2);
}

.topbar-action--primary[b-c7yqbxz1vs] {
    background: var(--tdl-primary);
    color: #ffffff;
    border-color: var(--tdl-primary);
    box-shadow: 0 8px 18px rgba(74, 116, 148, 0.22);
}

.topbar-action--primary:hover[b-c7yqbxz1vs] {
    color: #ffffff;
    border-color: var(--tdl-primary-hover);
    background: var(--tdl-primary-hover);
}

.topbar-action--disabled[b-c7yqbxz1vs],
.topbar-action--disabled:hover[b-c7yqbxz1vs] {
    opacity: 0.72;
    cursor: default;
    pointer-events: none;
    transform: none;
}

.topbar-action--secondary[b-c7yqbxz1vs] {
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
    border-color: var(--tdl-primary-soft-border);
}

.topbar-action--secondary:hover[b-c7yqbxz1vs] {
    color: #ffffff;
    border-color: var(--tdl-primary);
    background: var(--tdl-primary);
}

.page-body[b-c7yqbxz1vs] {
    width: 100%;
    max-width: 1520px;
    padding: 1.55rem 1.75rem 2.25rem 1.75rem;
}

/* ── Responsive ───────────────────────────────────────── */

@media (max-width: 1280px) {
    .topbar[b-c7yqbxz1vs] {
        padding: 0.85rem 1.1rem;
    }

    .topbar-action[b-c7yqbxz1vs] {
        padding: 0.4rem 0.75rem;
        font-size: 0.85rem;
    }
}

/*
 * Below this width the sidebar stops being a column and becomes a drawer.
 *
 * It used to simply stack above the content, which handed a phone's whole first screen to a
 * navigation list the user had already finished with - the page itself started below the fold.
 * Off-canvas gives the content the full width and the full viewport, and the menu arrives only when
 * it is asked for.
 */
@media (max-width: 1100px) {
    .app-shell[b-c7yqbxz1vs] {
        grid-template-columns: minmax(0, 1fr);
    }

    .nav-toggle[b-c7yqbxz1vs] {
        display: inline-flex;
    }

    .sidebar[b-c7yqbxz1vs] {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        z-index: 1150;
        width: min(320px, 86vw);
        height: 100dvh;
        border-right: 1px solid rgba(0, 0, 0, 0.28);
        border-bottom: 0;
        box-shadow: 0 24px 60px rgba(15, 23, 42, 0.35);
        transform: translateX(-100%);
        transition: transform 0.22s ease;
        /* Out of the tab order and off the pointer while closed, so nothing behind the edge of the
           screen can be reached by accident. */
        visibility: hidden;
    }

    .sidebar[data-nav-open="true"][b-c7yqbxz1vs] {
        transform: translateX(0);
        visibility: visible;
    }

    .nav-drawer-backdrop[b-c7yqbxz1vs] {
        position: fixed;
        inset: 0;
        z-index: 1140;
        background: rgba(15, 23, 42, 0.45);
    }

    .topbar[b-c7yqbxz1vs] {
        padding: 0.85rem 1rem;
    }

    .page-body[b-c7yqbxz1vs] {
        padding: 1.25rem 1rem 2rem 1rem;
    }
}

@media (max-width: 1100px) and (prefers-reduced-motion: reduce) {
    .sidebar[b-c7yqbxz1vs] {
        transition: none;
    }
}

@media (max-width: 760px) {
    .topbar[b-c7yqbxz1vs] {
        align-items: center;
        row-gap: 0.5rem;
    }

    .topbar-actions[b-c7yqbxz1vs] {
        width: 100%;
        justify-content: flex-start;
    }

    .topbar-action[b-c7yqbxz1vs] {
        flex: 1 1 auto;
        /* WCAG 2.2 target size: comfortably past the 24px minimum on a control meant for thumbs. */
        min-height: 2.75rem;
    }

    .topbar-kicker[b-c7yqbxz1vs] {
        display: none;
    }

    .topbar-date[b-c7yqbxz1vs] {
        font-size: 0.85rem;
    }
}
/* /Layout/NavMenu.razor.rz.scp.css */
/*
   Sidebar navigation — scoped CSS.

   Root cause for the previous "nothing applies to the rows" bug:
   <NavLink> is a CHILD COMPONENT. The <a> element it renders does NOT
   inherit NavMenu's scoped attribute (b-XXX). A selector like
   `.sidebar-nav-link` from this stylesheet is compiled to
   `.sidebar-nav-link[b-XXX]` — but the anchor has no b-XXX, so the rule
   never matches. Spans inside <NavLink>'s ChildContent (icon/label) DO
   get the scope because they're rendered by NavMenu, but the anchor's
   color/background/padding fell back to Bootstrap + global `a`.

   Fix: pierce the boundary with `::deep`. Rules below compile to
   `.sidebar-nav[b-XXX] .sidebar-nav-link` (specificity 0,3,0), which
   easily beats global `a` (0,0,1) and Bootstrap's `.nav-link` (0,1,0)
   without any !important or global rules.
*/

/*
 * The only scrolling region of the sidebar.
 *
 * The shell pins the brand above and the logout below; whatever the menu cannot fit scrolls here
 * and nowhere else. min-height:0 is what actually lets a flex child shrink below its content.
 */
.sidebar-nav[b-cyp0ljt22v] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0.85rem 0.7rem 1.6rem;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-color: rgba(121, 175, 214, 0.62) rgba(13, 19, 27, 0.48);
    scrollbar-width: thin;
}

.sidebar-nav[b-cyp0ljt22v]::-webkit-scrollbar {
    width: 8px;
}

.sidebar-nav[b-cyp0ljt22v]::-webkit-scrollbar-thumb {
    background: rgba(121, 175, 214, 0.45);
    border-radius: 999px;
}

.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-section {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-caption {
    padding: 0.4rem 0.95rem 0.45rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(231, 236, 241, 0.42);
}

/* Anchor styling — pierces NavLink's component boundary via ::deep.
   Stable across :link / :visited / :hover / :focus so visited links
   don't snap back to a default browser color. */
.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link,
.sidebar-nav[b-cyp0ljt22v]  a.sidebar-nav-link,
.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link:link,
.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link:visited,
.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link:hover,
.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link:focus {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    height: 2.9rem;
    padding: 0 1rem;
    margin: 0;
    border-radius: 10px;
    text-decoration: none;
    cursor: pointer;
    border: 0;
}

.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link {
    position: relative;
    color: rgba(226, 233, 240, 0.86);
    font-size: 0.97rem;
    font-weight: 600;
    line-height: 1.1;
    background: transparent;
    transition: background-color 0.16s ease, color 0.16s ease;
}

/* Soft blue rather than a wash of white: the hover should read as TDL blue, not as grey. */
.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link:hover {
    background: rgba(90, 168, 236, 0.16);
    color: #ffffff;
}

.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 2px rgba(106, 184, 245, 0.7);
}

/* Active state — NavLink appends `.active` to the rendered anchor. */
/* Clearly brighter than hover, so "where am I" is answered at a glance. */
.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link.active {
    background: rgba(90, 168, 236, 0.34);
    color: #ffffff;
    font-weight: 700;
}

/* Left accent bar — absolute, so toggling active causes no layout shift.
   `left: 0` keeps it inside the sidebar (no horizontal overflow). */
.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55rem;
    bottom: 0.55rem;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: #6ab8f5;
}

.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-icon {
    width: 1.3rem;
    height: 1.3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: rgba(220, 228, 236, 0.6);
    transition: color 0.16s ease;
}

.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link:hover .sidebar-nav-icon {
    color: #ffffff;
}

.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link.active .sidebar-nav-icon {
    color: #cee2f1;
}

.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-icon svg {
    width: 1.2rem;
    height: 1.2rem;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
}

.sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-label {
    min-width: 0;
    color: inherit;
    text-decoration: none;
    letter-spacing: 0.005em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1100px) {
    .sidebar-nav[b-cyp0ljt22v] {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.85rem;
        padding: 0.85rem;
    }

    .sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-section {
        min-width: 200px;
        flex: 1 1 220px;
    }

    .sidebar-nav[b-cyp0ljt22v]  .sidebar-nav-link {
        height: 2.55rem;
        padding: 0 0.85rem;
    }
}
/* /Pages/AccountingDashboard.razor.rz.scp.css */
.accounting-kpi-grid[b-9po8o3wv80] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.accounting-stat-link[b-9po8o3wv80] {
    text-decoration: none;
}

    .accounting-stat-link:hover[b-9po8o3wv80] {
        border-color: var(--accent);
    }


.accounting-overview-panel[b-9po8o3wv80] {
    display: grid;
    grid-template-columns: minmax(280px, .92fr) minmax(0, 1.08fr);
    gap: .85rem;
    align-items: stretch;
    margin-bottom: .85rem;
}

.accounting-overview-main[b-9po8o3wv80],
.accounting-overview-tile[b-9po8o3wv80],
.accounting-compact-metric[b-9po8o3wv80] {
    text-decoration: none;
    color: inherit;
}

.accounting-overview-main[b-9po8o3wv80] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 8.6rem;
    padding: 1.1rem 1.25rem;
    border: 1px solid rgba(37, 99, 235, .2);
    border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at top right, rgba(37, 99, 235, .14), transparent 36%),
        linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(248, 250, 252, .98));
    box-shadow: var(--shadow-sm);
}

.accounting-overview-main:hover[b-9po8o3wv80],
.accounting-overview-tile:hover[b-9po8o3wv80],
.accounting-compact-metric:hover[b-9po8o3wv80] {
    border-color: var(--accent);
    transform: translateY(-1px);
}

.accounting-overview-kicker[b-9po8o3wv80],
.accounting-overview-tile span[b-9po8o3wv80],
.accounting-compact-metric span[b-9po8o3wv80] {
    color: var(--text-secondary);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.accounting-overview-value[b-9po8o3wv80] {
    display: block;
    margin-top: .25rem;
    color: var(--text-primary);
    font-size: clamp(1.85rem, 4vw, 2.75rem);
    line-height: 1.05;
    font-weight: 900;
}

.accounting-overview-value--warning[b-9po8o3wv80] {
    color: #dc2626;
}

.accounting-overview-meta[b-9po8o3wv80] {
    margin-top: .45rem;
    color: var(--text-secondary);
    font-size: .9rem;
    font-weight: 650;
}

.accounting-overview-side[b-9po8o3wv80] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
}

.accounting-overview-tile[b-9po8o3wv80] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .25rem;
    min-height: 8.6rem;
    padding: .95rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface-raised);
    box-shadow: var(--shadow-xs, none);
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.accounting-overview-tile strong[b-9po8o3wv80] {
    color: var(--text-primary);
    font-size: 1.35rem;
    line-height: 1.1;
    font-weight: 850;
}

.accounting-overview-tile small[b-9po8o3wv80],
.accounting-compact-metric small[b-9po8o3wv80] {
    color: var(--text-secondary);
    font-size: .78rem;
    font-weight: 600;
}

.accounting-compact-strip[b-9po8o3wv80] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    margin-bottom: 1rem;
}

.accounting-compact-metric[b-9po8o3wv80] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-height: 4.85rem;
    padding: .72rem .82rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-raised);
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.accounting-compact-metric strong[b-9po8o3wv80] {
    color: var(--text-primary);
    font-size: 1.02rem;
    line-height: 1.15;
    font-weight: 850;
}

.accounting-compact-metric--alert strong[b-9po8o3wv80] {
    color: #dc2626;
}

.accounting-layout[b-9po8o3wv80] {
    display: grid;
    grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
    gap: 1rem;
    align-items: start;
    margin-bottom: 1rem;
}

.accounting-layout--balanced[b-9po8o3wv80] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.accounting-layout--receivables[b-9po8o3wv80] {
    grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
    margin-top: 1rem;
}

.accounting-kpi-grid--receivables[b-9po8o3wv80] {
    margin-top: .25rem;
}

.receivables-filter-row[b-9po8o3wv80] {
    display: grid;
    grid-template-columns: minmax(180px, 1.4fr) repeat(4, minmax(140px, 1fr)) auto;
    gap: .65rem;
    align-items: center;
    margin-bottom: 1rem;
}

.receivables-table th[b-9po8o3wv80],
.receivables-table td[b-9po8o3wv80] {
    white-space: nowrap;
}

.receivable-row--overdue[b-9po8o3wv80] {
    background: rgba(254, 242, 242, .72);
}

.receivable-actions[b-9po8o3wv80] {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem;
}

.receivables-aging-list[b-9po8o3wv80] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.receivables-aging-row[b-9po8o3wv80] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .75rem 0;
    border-bottom: 1px solid var(--border-subtle, var(--border));
}

    .receivables-aging-row:last-child[b-9po8o3wv80] {
        border-bottom: none;
    }

.receivables-aging-row--empty[b-9po8o3wv80] {
    color: var(--text-secondary);
}

.receivables-aging-label[b-9po8o3wv80] {
    font-weight: 700;
    color: var(--text-primary);
}

.receivables-aging-meta[b-9po8o3wv80] {
    color: var(--text-secondary);
    font-size: .82rem;
}

.receivables-aging-value[b-9po8o3wv80] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 9rem;
}

    .receivables-aging-value span[b-9po8o3wv80] {
        color: var(--text-secondary);
        font-size: .78rem;
    }

.customer-statement-header[b-9po8o3wv80] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: .85rem;
}

.customer-statement-name[b-9po8o3wv80] {
    font-weight: 800;
    color: var(--text-primary);
}

.customer-statement-meta[b-9po8o3wv80] {
    color: var(--text-secondary);
    font-size: .82rem;
}

.customer-statement-grid[b-9po8o3wv80] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    margin-bottom: 1rem;
}

    .customer-statement-grid div[b-9po8o3wv80] {
        border: 1px solid var(--border);
        border-radius: var(--radius-sm);
        padding: .65rem;
        background: var(--surface-raised);
    }

    .customer-statement-grid span[b-9po8o3wv80] {
        display: block;
        color: var(--text-secondary);
        font-size: .75rem;
        font-weight: 700;
        text-transform: uppercase;
    }

    .customer-statement-grid strong[b-9po8o3wv80] {
        display: block;
        margin-top: .2rem;
        color: var(--text-primary);
        font-size: .95rem;
    }

.statement-subtitle[b-9po8o3wv80] {
    margin: 1rem 0 .55rem;
    font-size: .95rem;
    font-weight: 800;
}

.accounting-warning-list[b-9po8o3wv80] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.accounting-warning-row[b-9po8o3wv80] {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    align-items: center;
    gap: .75rem;
    padding: .55rem 0;
    border-bottom: 1px solid var(--border-subtle, var(--border));
    color: var(--text-primary);
    text-decoration: none;
}

    .accounting-warning-row:last-child[b-9po8o3wv80] {
        border-bottom: none;
    }

    .accounting-warning-row:hover[b-9po8o3wv80] {
        color: var(--accent);
    }

.accounting-warning-count[b-9po8o3wv80] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 1.6rem;
    border-radius: var(--radius-sm);
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
    font-weight: 700;
    font-size: .8rem;
}

.accounting-status-list[b-9po8o3wv80] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.accounting-status-badge[b-9po8o3wv80] {
    display: inline-flex;
    align-items: center;
    min-height: 1.35rem;
    padding: .1rem .45rem;
    border-radius: var(--radius-sm);
    background: var(--surface-raised);
    border: 1px solid var(--border);
    color: var(--text-secondary);
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
}

@media (max-width: 1100px) {
    .accounting-kpi-grid[b-9po8o3wv80],
    .accounting-compact-strip[b-9po8o3wv80] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .accounting-overview-panel[b-9po8o3wv80],
    .accounting-layout[b-9po8o3wv80],
    .accounting-layout--balanced[b-9po8o3wv80],
    .accounting-layout--receivables[b-9po8o3wv80] {
        grid-template-columns: 1fr;
    }

    .receivables-filter-row[b-9po8o3wv80] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .accounting-kpi-grid[b-9po8o3wv80],
    .accounting-compact-strip[b-9po8o3wv80],
    .accounting-overview-side[b-9po8o3wv80] {
        grid-template-columns: 1fr;
    }

    .accounting-overview-main[b-9po8o3wv80],
    .accounting-overview-tile[b-9po8o3wv80] {
        min-height: auto;
    }

    .receivables-filter-row[b-9po8o3wv80],
    .customer-statement-grid[b-9po8o3wv80] {
        grid-template-columns: 1fr;
    }

    .customer-statement-header[b-9po8o3wv80],
    .receivables-aging-row[b-9po8o3wv80] {
        flex-direction: column;
    }

    .receivables-aging-value[b-9po8o3wv80] {
        align-items: flex-start;
    }
}
/* /Pages/AccountingSettings.razor.rz.scp.css */
.accounting-settings-summary[b-r4trdj60mq] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .7rem;
    margin-bottom: .9rem;
}

.accounting-settings-summary__item[b-r4trdj60mq] {
    min-width: 0;
    padding: .78rem .9rem;
    border: 1px solid rgba(148, 163, 184, .22);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(248,250,252,.82));
    box-shadow: 0 12px 30px rgba(15, 23, 42, .05);
}

.accounting-settings-summary__item span[b-r4trdj60mq] {
    display: block;
    margin-bottom: .25rem;
    color: var(--tdl-text-secondary);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.accounting-settings-summary__item strong[b-r4trdj60mq] {
    display: block;
    overflow: hidden;
    color: var(--tdl-text-primary);
    font-size: .94rem;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.accounting-settings-summary__item--status[b-r4trdj60mq] {
    background: linear-gradient(180deg, rgba(240,253,244,.94), rgba(255,255,255,.86));
    border-color: rgba(34, 197, 94, .24);
}

.accounting-settings-layout[b-r4trdj60mq] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
}

.accounting-settings-panel[b-r4trdj60mq] {
    padding: .95rem;
    border: 1px solid rgba(148, 163, 184, .2);
    border-radius: 18px;
    background: rgba(248, 250, 252, .64);
}

.accounting-settings-panel--wide[b-r4trdj60mq] {
    grid-column: 1 / -1;
}

.accounting-settings-panel__heading[b-r4trdj60mq] {
    display: flex;
    flex-direction: column;
    gap: .18rem;
    margin-bottom: .8rem;
}

.accounting-settings-panel__heading--inline[b-r4trdj60mq] {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.accounting-settings-panel__heading span[b-r4trdj60mq] {
    color: var(--tdl-text-primary);
    font-size: .98rem;
    font-weight: 850;
}

.accounting-settings-panel__heading small[b-r4trdj60mq] {
    color: var(--tdl-text-secondary);
    font-size: .82rem;
}

.accounting-settings-form[b-r4trdj60mq] {
    gap: .7rem .8rem;
}

.accounting-settings-check[b-r4trdj60mq] {
    min-height: 38px;
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .45rem .65rem;
    border: 1px solid rgba(148, 163, 184, .24);
    border-radius: 12px;
    background: #fff;
}

.accounting-template-summary[b-r4trdj60mq] {
    margin-top: .25rem;
}

.accounting-settings-actions[b-r4trdj60mq] {
    margin-top: 1rem;
    padding-top: .9rem;
    border-top: 1px solid rgba(148, 163, 184, .22);
}

@media (max-width: 1100px) {
    .accounting-settings-summary[b-r4trdj60mq] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    .accounting-settings-summary[b-r4trdj60mq],
    .accounting-settings-layout[b-r4trdj60mq] {
        grid-template-columns: 1fr;
    }

    .accounting-settings-panel__heading--inline[b-r4trdj60mq] {
        flex-direction: column;
    }
}

.exchange-rate-toolbar[b-r4trdj60mq] {
    display: grid;
    grid-template-columns: minmax(120px, .45fr) minmax(180px, .65fr) minmax(320px, 1.9fr);
    gap: .8rem;
    align-items: end;
}

.exchange-rate-field[b-r4trdj60mq] {
    min-width: 0;
}

.exchange-rate-actions[b-r4trdj60mq] {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    justify-content: flex-end;
}

.exchange-rate-result[b-r4trdj60mq] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
    margin-top: 1rem;
}

.exchange-rate-result > div[b-r4trdj60mq] {
    min-width: 0;
    padding: .78rem .9rem;
    border: 1px solid rgba(59, 130, 246, .18);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(239,246,255,.9), rgba(255,255,255,.92));
}

.exchange-rate-result span[b-r4trdj60mq] {
    display: block;
    margin-bottom: .25rem;
    color: var(--tdl-text-secondary);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.exchange-rate-result strong[b-r4trdj60mq] {
    color: var(--tdl-text-primary);
    font-size: .92rem;
    font-weight: 850;
}

.exchange-rate-history[b-r4trdj60mq] {
    margin-top: 1rem;
    border: 1px solid rgba(148, 163, 184, .2);
    border-radius: 14px;
}

.exchange-rate-history thead th[b-r4trdj60mq] {
    color: var(--tdl-text-secondary);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

@media (max-width: 980px) {
    .exchange-rate-toolbar[b-r4trdj60mq] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .exchange-rate-actions[b-r4trdj60mq] {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }

    .exchange-rate-result[b-r4trdj60mq] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .exchange-rate-toolbar[b-r4trdj60mq],
    .exchange-rate-result[b-r4trdj60mq] {
        grid-template-columns: 1fr;
    }

    .exchange-rate-actions[b-r4trdj60mq] {
        grid-column: auto;
    }

    .exchange-rate-actions .btn[b-r4trdj60mq] {
        width: 100%;
    }
}
/* /Pages/AdminAccountApprovals.razor.rz.scp.css */
.admin-account-stats[b-1w8ewyf1fo] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.admin-account-stat-card[b-1w8ewyf1fo] {
    padding: 1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface);
    box-shadow: var(--tdl-shadow-sm);
}

.admin-account-stat-card span[b-1w8ewyf1fo] {
    display: block;
    color: var(--tdl-text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-account-stat-card strong[b-1w8ewyf1fo] {
    display: block;
    margin-top: 0.45rem;
    color: #06142b;
    font-size: 1.45rem;
    line-height: 1;
}

.admin-account-tabs[b-1w8ewyf1fo],
.admin-inner-tabs[b-1w8ewyf1fo] {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--tdl-border);
}

.admin-account-tab[b-1w8ewyf1fo],
.admin-inner-tab[b-1w8ewyf1fo] {
    appearance: none;
    border: 0;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: var(--tdl-text-secondary);
    font-weight: 800;
    padding: 0.8rem 0.95rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}

.admin-account-tab span[b-1w8ewyf1fo] {
    min-width: 1.45rem;
    border-radius: 999px;
    padding: 0.12rem 0.42rem;
    background: var(--tdl-surface-muted);
    color: var(--tdl-text-secondary);
    font-size: 0.74rem;
    line-height: 1.25;
}

.admin-account-tab.active[b-1w8ewyf1fo],
.admin-inner-tab.active[b-1w8ewyf1fo] {
    color: var(--tdl-primary-hover);
    border-bottom-color: var(--tdl-primary);
}

.admin-account-tab.active span[b-1w8ewyf1fo] {
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
}

.admin-account-toolbar[b-1w8ewyf1fo] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 1rem;
}

.admin-account-search[b-1w8ewyf1fo] {
    flex: 1 1 24rem;
}

.admin-account-filter[b-1w8ewyf1fo] {
    flex: 0 0 14rem;
}

.admin-account-table-wrap[b-1w8ewyf1fo],
.admin-account-table[b-1w8ewyf1fo] {
    width: 100%;
}

.admin-account-table th[b-1w8ewyf1fo] {
    color: var(--tdl-text-muted);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
}

.admin-account-table td[b-1w8ewyf1fo] {
    vertical-align: middle;
}

.admin-account-email[b-1w8ewyf1fo] {
    font-weight: 700;
    color: var(--tdl-text-primary);
}

.admin-modal-backdrop[b-1w8ewyf1fo] {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(15, 23, 42, 0.46);
}

.admin-modal[b-1w8ewyf1fo] {
    width: min(820px, 100%);
    max-height: min(92vh, 980px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    background: var(--tdl-surface);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.25);
}

.admin-modal--large[b-1w8ewyf1fo] {
    width: min(1080px, 100%);
}

.admin-modal-header[b-1w8ewyf1fo] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.35rem;
    border-bottom: 1px solid var(--tdl-border);
    background: var(--tdl-surface);
}

.admin-modal-header h2[b-1w8ewyf1fo] {
    margin: 0.12rem 0 0.15rem;
    font-size: 1.35rem;
    font-weight: 850;
}

.admin-modal-header p[b-1w8ewyf1fo] {
    margin: 0;
    color: var(--tdl-text-muted);
    font-size: 0.92rem;
}

.admin-modal-eyebrow[b-1w8ewyf1fo] {
    color: var(--tdl-primary-hover);
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-modal-header-actions[b-1w8ewyf1fo] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.admin-modal-close[b-1w8ewyf1fo] {
    width: 2.2rem;
    height: 2.2rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-sm);
    background: #fff;
    color: var(--tdl-text-muted);
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
}

.admin-modal-close:hover[b-1w8ewyf1fo],
.admin-modal-close:focus[b-1w8ewyf1fo] {
    color: var(--tdl-text-primary);
    border-color: var(--tdl-border-strong);
    background: var(--tdl-surface-soft);
}

.admin-modal-body[b-1w8ewyf1fo] {
    overflow: auto;
    padding: 1.25rem 1.35rem;
}

.admin-modal-grid[b-1w8ewyf1fo] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.admin-modal-section[b-1w8ewyf1fo] {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface-soft);
}

.admin-modal-section--wide[b-1w8ewyf1fo] {
    margin-top: 1rem;
}

.admin-section-title[b-1w8ewyf1fo] {
    margin-bottom: 0.75rem;
    color: var(--tdl-text-primary);
    font-size: 0.86rem;
    font-weight: 850;
}

.admin-key-value-grid[b-1w8ewyf1fo] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.admin-key-value-grid--compact[b-1w8ewyf1fo] {
    margin-top: 1rem;
}

.admin-key-value-grid div[b-1w8ewyf1fo] {
    min-width: 0;
}

.admin-key-value-grid span[b-1w8ewyf1fo] {
    display: block;
    color: var(--tdl-text-muted);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.admin-key-value-grid strong[b-1w8ewyf1fo] {
    display: block;
    margin-top: 0.16rem;
    color: var(--tdl-text-primary);
    font-size: 0.95rem;
    font-weight: 750;
    overflow-wrap: anywhere;
}

.admin-modal-form[b-1w8ewyf1fo] {
    margin-bottom: 0;
}

.admin-checkbox-line[b-1w8ewyf1fo] {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.45rem;
    color: var(--tdl-text-primary);
    font-weight: 600;
}

.admin-readonly-box[b-1w8ewyf1fo] {
    min-height: 2.45rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--tdl-border-strong);
    border-radius: var(--tdl-radius-sm);
    background: #fff;
    color: var(--tdl-text-primary);
    white-space: pre-wrap;
}

.admin-modal-alert[b-1w8ewyf1fo] {
    margin-top: 1rem;
    margin-bottom: 0;
}

.admin-institution-card[b-1w8ewyf1fo] {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) auto auto minmax(16rem, auto);
    gap: 0.85rem;
    align-items: center;
    padding: 0.85rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: #fff;
}

.admin-institution-card strong[b-1w8ewyf1fo],
.admin-institution-card span[b-1w8ewyf1fo] {
    display: block;
}

.admin-institution-card span[b-1w8ewyf1fo] {
    color: var(--tdl-text-muted);
    font-size: 0.85rem;
}

.admin-danger-zone[b-1w8ewyf1fo] {
    display: grid;
    gap: 0.85rem;
    padding: 1rem;
    border: 1px solid var(--tdl-danger-soft-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-danger-soft);
}

.admin-danger-zone-header[b-1w8ewyf1fo],
.admin-danger-action[b-1w8ewyf1fo] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: 0.85rem;
    border: 1px solid rgba(158, 42, 43, 0.14);
    border-radius: var(--tdl-radius-md);
    background: rgba(255, 255, 255, 0.72);
}

.admin-danger-zone-header strong[b-1w8ewyf1fo],
.admin-danger-action strong[b-1w8ewyf1fo] {
    display: block;
    color: var(--tdl-text-primary);
}

.admin-danger-zone-header span[b-1w8ewyf1fo],
.admin-danger-action span[b-1w8ewyf1fo] {
    display: block;
    color: var(--tdl-text-muted);
    font-size: 0.9rem;
}

.admin-danger-action--stacked[b-1w8ewyf1fo] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 1fr) auto;
}

.admin-audit-list[b-1w8ewyf1fo] {
    display: grid;
    gap: 0.75rem;
}

.admin-audit-item[b-1w8ewyf1fo] {
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: #fff;
}

.admin-audit-item span[b-1w8ewyf1fo] {
    display: block;
    color: var(--tdl-text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.admin-audit-item strong[b-1w8ewyf1fo] {
    display: block;
    margin-top: 0.18rem;
    color: var(--tdl-text-primary);
}

.admin-audit-item p[b-1w8ewyf1fo] {
    margin: 0.25rem 0 0;
}

.admin-modal-footer[b-1w8ewyf1fo] {
    display: flex;
    justify-content: flex-end;
    gap: 0.65rem;
    flex-wrap: wrap;
    padding: 1rem 1.35rem;
    border-top: 1px solid var(--tdl-border);
    background: var(--tdl-surface-soft);
}

@media (max-width: 1180px) {
    .admin-account-stats[b-1w8ewyf1fo] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-modal-grid[b-1w8ewyf1fo],
    .admin-key-value-grid[b-1w8ewyf1fo] {
        grid-template-columns: 1fr;
    }

    .admin-institution-card[b-1w8ewyf1fo],
    .admin-danger-action--stacked[b-1w8ewyf1fo] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .admin-account-stats[b-1w8ewyf1fo] {
        grid-template-columns: 1fr;
    }

    .admin-account-tabs[b-1w8ewyf1fo],
    .admin-inner-tabs[b-1w8ewyf1fo],
    .admin-account-toolbar[b-1w8ewyf1fo] {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-account-filter[b-1w8ewyf1fo] {
        flex: 1 1 auto;
    }

    .admin-modal-backdrop[b-1w8ewyf1fo] {
        align-items: stretch;
        padding: 0;
    }

    .admin-modal[b-1w8ewyf1fo],
    .admin-modal--large[b-1w8ewyf1fo] {
        width: 100%;
        max-height: none;
        min-height: 100vh;
        border-radius: 0;
        border-left: 0;
        border-right: 0;
    }

    .admin-modal-header[b-1w8ewyf1fo] {
        flex-direction: column;
    }

    .admin-modal-header-actions[b-1w8ewyf1fo],
    .admin-modal-footer[b-1w8ewyf1fo] {
        justify-content: space-between;
    }

    .admin-modal-footer .btn[b-1w8ewyf1fo] {
        flex: 1 1 100%;
    }
}

.admin-inline-actions[b-1w8ewyf1fo] {
    display: flex;
    justify-content: flex-end;
    gap: 0.65rem;
    margin-top: 1rem;
}

.admin-institution-list[b-1w8ewyf1fo] {
    display: grid;
    gap: 0.75rem;
}

.admin-account-command-center[b-1w8ewyf1fo] {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(28rem, 1.1fr);
    gap: 1rem;
    align-items: stretch;
    margin-bottom: 1rem;
    padding: 1.1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    background:
        radial-gradient(circle at top right, rgba(74, 116, 148, 0.12), transparent 22rem),
        var(--tdl-surface);
    box-shadow: var(--tdl-shadow-sm);
}

.admin-account-command-copy[b-1w8ewyf1fo] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.admin-command-eyebrow[b-1w8ewyf1fo] {
    color: var(--tdl-primary-hover);
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-account-command-copy h2[b-1w8ewyf1fo] {
    margin: 0.2rem 0 0.25rem;
    color: var(--tdl-text-primary);
    font-size: 1.35rem;
    font-weight: 850;
    letter-spacing: -0.02em;
}

.admin-account-command-copy p[b-1w8ewyf1fo] {
    margin: 0;
    max-width: 46rem;
    color: var(--tdl-text-muted);
}

.admin-account-metrics[b-1w8ewyf1fo] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
}

.admin-account-metrics div[b-1w8ewyf1fo] {
    min-width: 0;
    padding: 0.85rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: rgba(255, 255, 255, 0.72);
}

.admin-account-metrics span[b-1w8ewyf1fo] {
    display: block;
    color: var(--tdl-text-muted);
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
}

.admin-account-metrics strong[b-1w8ewyf1fo] {
    display: block;
    margin-top: 0.35rem;
    color: var(--tdl-text-primary);
    font-size: 1.35rem;
    line-height: 1;
}

@media (max-width: 1100px) {
    .admin-account-command-center[b-1w8ewyf1fo] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .admin-account-metrics[b-1w8ewyf1fo] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* /Pages/AlopCommitments.razor.rz.scp.css */
.commitments-page[b-npf1iv9jkq] {
    display: grid;
    gap: 1rem;
    color: #15283a;
}

.page-header[b-npf1iv9jkq],
.section-heading[b-npf1iv9jkq],
.detail-title[b-npf1iv9jkq],
.preview[b-npf1iv9jkq],
.relation-card[b-npf1iv9jkq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.page-header h1[b-npf1iv9jkq],
.panel h2[b-npf1iv9jkq],
.panel h3[b-npf1iv9jkq] {
    margin: 0;
}

.page-header p[b-npf1iv9jkq],
.panel p[b-npf1iv9jkq] {
    margin: .25rem 0 0;
}

.eyebrow[b-npf1iv9jkq] {
    color: #326c73;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.panel[b-npf1iv9jkq] {
    border: 1px solid #d7e1e4;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 28px rgb(19 47 60 / 5%);
    padding: 1rem;
}

.materialize-panel[b-npf1iv9jkq] {
    display: grid;
    grid-template-columns: minmax(220px, .7fr) minmax(420px, 1.3fr);
    gap: 1rem;
    background: linear-gradient(135deg, #eff8f6, #f8fbfc);
}

.inline-form[b-npf1iv9jkq],
.filters[b-npf1iv9jkq],
.reconcile-actions[b-npf1iv9jkq],
.allocation-grid[b-npf1iv9jkq],
.reception-form[b-npf1iv9jkq],
.correction-form[b-npf1iv9jkq] {
    display: grid;
    gap: .75rem;
}

.inline-form[b-npf1iv9jkq] {
    grid-template-columns: 1fr 1fr auto;
    align-items: end;
}

.filters[b-npf1iv9jkq] {
    grid-template-columns: repeat(5, minmax(120px, 1fr)) auto;
    align-items: end;
}

label[b-npf1iv9jkq] {
    display: grid;
    gap: .3rem;
    color: #4b626f;
    font-size: .78rem;
    font-weight: 700;
}

input[b-npf1iv9jkq] {
    min-width: 0;
    border: 1px solid #c9d6da;
    border-radius: 8px;
    background: #fff;
    color: #15283a;
    padding: .62rem .7rem;
}

input:focus[b-npf1iv9jkq] {
    border-color: #287d7c;
    box-shadow: 0 0 0 3px rgb(40 125 124 / 14%);
    outline: none;
}

button[b-npf1iv9jkq] {
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 750;
    padding: .66rem .9rem;
}

button:disabled[b-npf1iv9jkq] {
    cursor: not-allowed;
    opacity: .55;
}

.primary[b-npf1iv9jkq] {
    background: #176b67;
    color: #fff;
}

.secondary[b-npf1iv9jkq] {
    border: 1px solid #9fc4c2;
    background: #f2faf8;
    color: #145d5a;
}

.link-button[b-npf1iv9jkq] {
    background: transparent;
    color: #176b67;
    padding: .3rem;
}

.live-message[b-npf1iv9jkq] {
    min-height: 1.35rem;
    color: #176b67;
    font-weight: 650;
}

.live-message.is-error[b-npf1iv9jkq] {
    color: #a62f33;
}

.master-detail[b-npf1iv9jkq] {
    display: grid;
    grid-template-columns: minmax(310px, .72fr) minmax(560px, 1.5fr);
    gap: 1rem;
    align-items: start;
}

.list-panel[b-npf1iv9jkq] {
    position: sticky;
    top: 1rem;
}

.section-heading span[b-npf1iv9jkq],
small[b-npf1iv9jkq],
.muted[b-npf1iv9jkq] {
    color: #6b7e87;
    font-size: .78rem;
}

.commitment-list[b-npf1iv9jkq] {
    display: grid;
    gap: .45rem;
    margin-top: .8rem;
}

.commitment-row[b-npf1iv9jkq] {
    display: grid;
    grid-template-columns: 1fr .9fr auto;
    gap: .65rem;
    align-items: center;
    width: 100%;
    border: 1px solid #e0e8ea;
    background: #fff;
    color: inherit;
    padding: .75rem;
    text-align: left;
}

.commitment-row:hover[b-npf1iv9jkq],
.commitment-row.selected[b-npf1iv9jkq] {
    border-color: #5eaaa6;
    background: #f1faf8;
}

.commitment-row span[b-npf1iv9jkq] {
    display: grid;
    gap: .15rem;
}

.detail-panel[b-npf1iv9jkq] {
    display: grid;
    gap: 1.2rem;
}

.detail-panel section[b-npf1iv9jkq] {
    display: grid;
    gap: .65rem;
    border-top: 1px solid #e4ebed;
    padding-top: 1rem;
}

.provenance[b-npf1iv9jkq] {
    border: 1px solid #cbe0dd !important;
    border-radius: 10px;
    background: #f3faf8;
    padding: .9rem !important;
}

dl[b-npf1iv9jkq] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
    margin: 0;
}

dl div[b-npf1iv9jkq] {
    min-width: 0;
}

dt[b-npf1iv9jkq] {
    color: #6b7e87;
    font-size: .72rem;
    font-weight: 750;
    text-transform: uppercase;
}

dd[b-npf1iv9jkq] {
    margin: .15rem 0 0;
    overflow-wrap: anywhere;
}

.mono[b-npf1iv9jkq] {
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

.financial-grid[b-npf1iv9jkq] {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: .6rem;
}

.financial-card[b-npf1iv9jkq] {
    display: grid;
    gap: .25rem;
    border: 1px solid #e0e8ea;
    border-radius: 9px;
    background: #fbfcfc;
    padding: .7rem;
}

.financial-card > span[b-npf1iv9jkq] {
    color: #657984;
    font-size: .72rem;
    font-weight: 750;
    text-transform: uppercase;
}

.findings[b-npf1iv9jkq] {
    border-left: 4px solid #d38a2e;
    border-radius: 6px;
    background: #fff7e8;
    padding: .75rem 1rem;
}

.findings ul[b-npf1iv9jkq],
.compact-list[b-npf1iv9jkq] {
    margin: .4rem 0 0;
    padding-left: 1.15rem;
}

.table-scroll[b-npf1iv9jkq] {
    overflow-x: auto;
}

table[b-npf1iv9jkq] {
    width: 100%;
    border-collapse: collapse;
    font-size: .84rem;
}

th[b-npf1iv9jkq],
td[b-npf1iv9jkq] {
    border-bottom: 1px solid #e3eaec;
    padding: .65rem;
    text-align: left;
    vertical-align: top;
}

td small[b-npf1iv9jkq] {
    display: block;
    margin-top: .15rem;
}

tr.inactive[b-npf1iv9jkq] {
    opacity: .55;
}

.reconcile-panel[b-npf1iv9jkq] {
    border: 1px solid #c9dddd !important;
    border-radius: 11px;
    background: #f8fbfb;
    padding: 1rem !important;
}

.reconcile-actions[b-npf1iv9jkq] {
    grid-template-columns: 1fr auto 1fr 1fr auto;
    align-items: end;
}

.preview[b-npf1iv9jkq] {
    border: 1px solid #d9e5e7;
    border-radius: 9px;
    background: #fff;
    padding: .75rem;
}

.candidate-list[b-npf1iv9jkq] {
    display: grid;
    gap: .45rem;
}

.candidate[b-npf1iv9jkq] {
    grid-template-columns: auto 1fr auto;
    align-items: center;
    border: 1px solid #dde7e8;
    border-radius: 8px;
    background: #fff;
    padding: .6rem;
}

.candidate span[b-npf1iv9jkq] {
    display: grid;
}

.allocation-grid[b-npf1iv9jkq],
.reception-form[b-npf1iv9jkq] {
    grid-template-columns: repeat(3, 1fr) auto;
    align-items: end;
}

.wide-label[b-npf1iv9jkq] {
    max-width: 520px;
}

.relation-card[b-npf1iv9jkq] {
    border: 1px solid #e0e8ea;
    border-radius: 9px;
    padding: .7rem;
}

.relation-card > div[b-npf1iv9jkq] {
    display: grid;
    gap: .15rem;
}

.correction-form[b-npf1iv9jkq] {
    grid-template-columns: repeat(3, minmax(120px, 1fr));
    border: 1px solid #e4c37c;
    border-radius: 9px;
    background: #fff9ec;
    padding: .8rem;
}

.correction-form > strong[b-npf1iv9jkq] {
    grid-column: 1 / -1;
}

.status[b-npf1iv9jkq],
.state[b-npf1iv9jkq] {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 800;
    padding: .22rem .5rem;
}

.status-legend[b-npf1iv9jkq] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    justify-content: flex-end;
}

.status-confirmed[b-npf1iv9jkq],
.state-available[b-npf1iv9jkq],
.status-active[b-npf1iv9jkq] {
    background: #dff4e9;
    color: #17613f;
}

.status-suggested[b-npf1iv9jkq],
.state-suggested[b-npf1iv9jkq] {
    background: #e0effc;
    color: #245d87;
}

.status-ambiguous[b-npf1iv9jkq],
.state-ambiguous[b-npf1iv9jkq],
.state-incomplete[b-npf1iv9jkq] {
    background: #fff0cd;
    color: #865812;
}

.status-unresolved[b-npf1iv9jkq],
.state-unresolved[b-npf1iv9jkq],
.state-unavailable[b-npf1iv9jkq] {
    background: #edf0f2;
    color: #596970;
}

.status-rejected[b-npf1iv9jkq],
.status-superseded[b-npf1iv9jkq],
.status-cancelled[b-npf1iv9jkq] {
    background: #fbe2e3;
    color: #8f3036;
}

.empty-state[b-npf1iv9jkq] {
    display: grid;
    min-height: 130px;
    place-items: center;
    color: #71828a;
    text-align: center;
}

@media (max-width: 1100px) {
    .materialize-panel[b-npf1iv9jkq],
    .master-detail[b-npf1iv9jkq] {
        grid-template-columns: 1fr;
    }

    .filters[b-npf1iv9jkq] {
        grid-template-columns: repeat(3, 1fr);
    }

    .list-panel[b-npf1iv9jkq] {
        position: static;
    }
}

@media (max-width: 720px) {
    .page-header[b-npf1iv9jkq],
    .detail-title[b-npf1iv9jkq],
    .materialize-panel[b-npf1iv9jkq],
    .inline-form[b-npf1iv9jkq],
    .filters[b-npf1iv9jkq],
    .reconcile-actions[b-npf1iv9jkq],
    .allocation-grid[b-npf1iv9jkq],
    .reception-form[b-npf1iv9jkq],
    .correction-form[b-npf1iv9jkq] {
        grid-template-columns: 1fr;
    }

    .page-header[b-npf1iv9jkq] {
        align-items: flex-start;
        flex-direction: column;
    }

    .financial-grid[b-npf1iv9jkq],
    dl[b-npf1iv9jkq] {
        grid-template-columns: 1fr 1fr;
    }

    .commitment-row[b-npf1iv9jkq] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/AlopDocuments.razor.rz.scp.css */
.alop-list-toolbar[b-9ij0k40sg6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0.6rem;
}

.alop-revision-filter[b-9ij0k40sg6] {
    width: 8.5rem;
}

.alop-muted[b-9ij0k40sg6] {
    color: #64748b;
    font-size: 0.85rem;
}

.alop-pager[b-9ij0k40sg6] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 0.6rem;
    padding: 0.3rem 0;
}

.alop-documents-table-wrapper[b-9ij0k40sg6] {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid #e8edf4;
    border-radius: 8px;
}

.alop-documents-table[b-9ij0k40sg6] {
    min-width: 1060px;
}

.alop-documents-table thead th[b-9ij0k40sg6] {
    position: sticky;
    top: 0;
    z-index: 1;
    white-space: nowrap;
    font-size: 0.86rem;
    color: #475569;
    font-weight: 800;
    background: #f8fafc;
    border-bottom: 1px solid #e8edf4;
}

.alop-documents-table tbody td[b-9ij0k40sg6] {
    font-size: 0.9rem;
}

.alop-document-number-cell[b-9ij0k40sg6] {
    color: #0f172a;
    font-weight: 800;
    white-space: nowrap;
}

.alop-document-unique-cell[b-9ij0k40sg6] {
    color: #475569;
    font-family: 'Consolas', 'SF Mono', monospace;
    font-size: 0.84rem;
    white-space: nowrap;
}

.alop-amount-cell[b-9ij0k40sg6] {
    color: #0f172a;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.alop-status-pill[b-9ij0k40sg6] {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-size: 0.8rem;
    font-weight: 800;
    white-space: nowrap;
}

.alop-modal-backdrop[b-9ij0k40sg6] {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    overflow-y: auto;
    padding: 2rem 1rem;
    background: rgba(15, 23, 42, 0.48);
}

/*
 * The .alop-modal panel itself is styled in wwwroot/css/app.css, not here.
 *
 * TdlModal renders that element, so it carries the component's scope rather than this page's -
 * a scoped `.alop-modal` rule would compile to `.alop-modal[b-…]` and never match. (The backdrop
 * above is different: it is the component's ROOT element, which Blazor also tags with the parent's
 * scope, so the backdrop rule does apply.)
 */

.alop-modal-header[b-9ij0k40sg6] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.25rem 0.75rem;
    border-bottom: 1px solid #e8edf4;
}

.alop-modal-header h2[b-9ij0k40sg6] {
    margin: 0;
    color: #0f172a;
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.25;
}

.alop-modal-eyebrow[b-9ij0k40sg6] {
    margin-bottom: 0.25rem;
    color: #2563eb;
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.alop-modal-description[b-9ij0k40sg6] {
    margin: 0;
    padding: 1rem 1.25rem;
    color: #475569;
}

.alop-create-options[b-9ij0k40sg6] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    padding: 0 1.25rem 1.25rem;
}

.alop-create-option[b-9ij0k40sg6] {
    min-width: 0;
    padding: 1rem;
    border: 1px solid #e8edf4;
    border-radius: 8px;
    background: #f8fafc;
}

.alop-helper-text[b-9ij0k40sg6] {
    margin-top: 0.5rem;
    color: #64748b;
    font-size: 0.85rem;
}

.alop-modal-actions[b-9ij0k40sg6] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1rem 1.25rem 1.25rem;
    border-top: 1px solid #e8edf4;
}

.alop-import-panel[b-9ij0k40sg6] {
    padding: 0 1.25rem 1rem;
}

.alop-loading-state[b-9ij0k40sg6] {
    margin: 0 1.25rem 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 700;
}

.alop-modal-alert[b-9ij0k40sg6] {
    margin: 0 1.25rem 1rem;
}

.alop-modal-alert ul[b-9ij0k40sg6] {
    margin: 0.5rem 0 0;
    padding-left: 1.25rem;
}

.alop-preview[b-9ij0k40sg6] {
    padding: 0 1.25rem 1.25rem;
}

.alop-preview-section[b-9ij0k40sg6] {
    margin-bottom: 1rem;
}

.alop-preview-section h3[b-9ij0k40sg6] {
    margin: 0 0 0.75rem;
    color: #0f172a;
    font-size: 1rem;
    font-weight: 800;
}

.alop-preview-grid[b-9ij0k40sg6] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0;
}

.alop-preview-grid div[b-9ij0k40sg6] {
    min-width: 0;
    padding: 0.75rem;
    border: 1px solid #e8edf4;
    border-radius: 8px;
    background: #f8fafc;
}

.alop-preview-grid dt[b-9ij0k40sg6] {
    margin-bottom: 0.25rem;
    color: #64748b;
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.alop-preview-grid dd[b-9ij0k40sg6] {
    margin: 0;
    color: #0f172a;
    font-size: 0.92rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.alop-opme-lines-wrapper[b-9ij0k40sg6] {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid #e8edf4;
    border-radius: 8px;
}

.alop-opme-lines[b-9ij0k40sg6] {
    min-width: 980px;
}

.alop-opme-lines thead th[b-9ij0k40sg6] {
    position: sticky;
    top: 0;
    z-index: 1;
    white-space: nowrap;
    font-size: 0.78rem;
    color: #475569;
    font-weight: 800;
    background: #f8fafc;
    border-bottom: 1px solid #e8edf4;
}

.alop-opme-lines tbody td[b-9ij0k40sg6] {
    font-size: 0.84rem;
    vertical-align: top;
}

.alop-opme-lines tbody td:nth-child(2)[b-9ij0k40sg6],
.alop-opme-lines tbody td:nth-child(4)[b-9ij0k40sg6],
.alop-opme-lines tbody td:nth-child(9)[b-9ij0k40sg6] {
    max-width: 260px;
    overflow-wrap: anywhere;
}

.alop-confirm-placeholder[b-9ij0k40sg6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid #e8edf4;
    border-radius: 8px;
    background: #f8fafc;
    color: #64748b;
    font-size: 0.9rem;
}

@media (max-width: 900px) {
    .alop-modal-backdrop[b-9ij0k40sg6] {
        padding: 1rem 0.75rem;
    }

    .alop-modal[b-9ij0k40sg6] {
        max-height: calc(100vh - 2rem);
    }

    .alop-create-options[b-9ij0k40sg6],
    .alop-preview-grid[b-9ij0k40sg6] {
        grid-template-columns: 1fr;
    }
}

.alop-row-actions[b-9ij0k40sg6] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.alop-manual-form[b-9ij0k40sg6] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.alop-form-grid[b-9ij0k40sg6] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.alop-form-field[b-9ij0k40sg6] {
    min-width: 0;
}

.alop-form-field--wide[b-9ij0k40sg6] {
    grid-column: 1 / -1;
}

.alop-manual-section-title[b-9ij0k40sg6] {
    margin: 0.75rem 0 0;
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
}

@media (max-width: 768px) {
    .alop-form-grid[b-9ij0k40sg6] {
        grid-template-columns: 1fr;
    }

    .alop-row-actions[b-9ij0k40sg6] {
        flex-direction: column;
    }
}
/* /Pages/AlopPaymentOrders.razor.rz.scp.css */
.payment-orders-page[b-0yve0crk1b] { display: grid; gap: 1rem; max-width: 1500px; margin: 0 auto; padding: 1rem; }
.page-header[b-0yve0crk1b], .section-heading[b-0yve0crk1b], .record-select[b-0yve0crk1b], .workflow-actions[b-0yve0crk1b] { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.page-header h1[b-0yve0crk1b], .section-heading h2[b-0yve0crk1b] { margin: 0; }
.eyebrow[b-0yve0crk1b] { margin: 0 0 .25rem; text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; color: var(--tdl-muted, #64748b); }
.panel[b-0yve0crk1b] { background: var(--tdl-surface, #fff); border: 1px solid var(--tdl-border, #dbe3ed); border-radius: .8rem; padding: 1rem; box-shadow: 0 8px 24px rgb(15 23 42 / 4%); }
.form-grid[b-0yve0crk1b] { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .8rem; margin: 1rem 0; }
.form-grid label[b-0yve0crk1b], .reason-field[b-0yve0crk1b] { display: grid; gap: .35rem; font-weight: 600; }
input[b-0yve0crk1b], select[b-0yve0crk1b] { min-height: 2.5rem; border: 1px solid #b8c4d2; border-radius: .45rem; padding: .45rem .6rem; background: #fff; color: #172033; }
button[b-0yve0crk1b], .workflow-actions a[b-0yve0crk1b] { border: 1px solid #9aabbe; border-radius: .45rem; background: #fff; color: #17324d; padding: .55rem .8rem; cursor: pointer; text-decoration: none; }
button.primary[b-0yve0crk1b] { background: #165d91; border-color: #165d91; color: #fff; }
button:disabled[b-0yve0crk1b] { opacity: .55; cursor: not-allowed; }
.source-grid[b-0yve0crk1b] { grid-template-columns: minmax(260px, 1fr) auto minmax(300px, 2fr); align-items: end; }
.source-summary[b-0yve0crk1b] { display: grid; gap: .15rem; border-left: 3px solid #2f7ead; padding-left: .8rem; }
.live-message[b-0yve0crk1b] { min-height: 1.5rem; color: #24633f; }
.live-message.is-error[b-0yve0crk1b] { color: #a11d28; }
.workspace-grid[b-0yve0crk1b] { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-items: start; }
.cards[b-0yve0crk1b] { display: grid; gap: .55rem; }
.record-card[b-0yve0crk1b] { border: 1px solid #d7e0e9; border-radius: .55rem; background: #fff; padding: .65rem; }
.record-card.selected[b-0yve0crk1b] { border-color: #2f7ead; box-shadow: 0 0 0 2px rgb(47 126 173 / 12%); }
.record-select[b-0yve0crk1b] { width: 100%; border: 0; padding: 0; text-align: left; }
.record-select span[b-0yve0crk1b] { display: grid; gap: .15rem; }
.record-select small[b-0yve0crk1b], td small[b-0yve0crk1b] { display: block; color: #66778b; }
.record-actions[b-0yve0crk1b] { display: flex; gap: .4rem; margin-top: .55rem; }
.status[b-0yve0crk1b] { border-radius: 999px; padding: .25rem .55rem; background: #e8eef4; font-size: .78rem; white-space: nowrap; }
.status-issued[b-0yve0crk1b], .status-paid[b-0yve0crk1b], .status-validated[b-0yve0crk1b], .status-cfpapproved[b-0yve0crk1b] { background: #d9f2e3; color: #185c37; }
.status-cfprejected[b-0yve0crk1b], .status-rejected[b-0yve0crk1b], .status-cancelled[b-0yve0crk1b] { background: #fae0e2; color: #8e1c26; }
.findings[b-0yve0crk1b] { margin: .55rem 0 0; padding-left: 1.2rem; color: #5f6f80; }
.findings .blocking[b-0yve0crk1b], .finding-row[b-0yve0crk1b] { color: #9b2731; background: #fff4f4; }
.selection-toolbar[b-0yve0crk1b] { display: flex; align-items: center; gap: .6rem; margin-top: .6rem; font-size: .85rem; color: #53667a; }
.selection-table[b-0yve0crk1b] { overflow-x: auto; margin: 1rem 0; }
table[b-0yve0crk1b] { width: 100%; border-collapse: collapse; min-width: 780px; }
th[b-0yve0crk1b], td[b-0yve0crk1b] { border-bottom: 1px solid #e2e8f0; padding: .6rem; text-align: left; vertical-align: top; }
th[b-0yve0crk1b] { color: #53667a; font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; }
.amount-grid[b-0yve0crk1b] { display: grid; grid-template-columns: repeat(5, minmax(140px, 1fr)); gap: .65rem; margin: 1rem 0; }
.amount-grid article[b-0yve0crk1b] { display: grid; gap: .3rem; padding: .75rem; border-radius: .55rem; background: #f5f8fb; }
.order-beneficiary-workspace[b-0yve0crk1b] { display: grid; grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); min-height: 560px; margin-top: 1rem; border: 1px solid #dbe3ed; border-radius: .7rem; overflow: hidden; }
.beneficiary-master[b-0yve0crk1b] { display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: .8rem; padding: 1rem; background: #f7f9fc; border-right: 1px solid #dbe3ed; }
.beneficiary-master-heading[b-0yve0crk1b], .beneficiary-detail-heading[b-0yve0crk1b] { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.beneficiary-master-heading h3[b-0yve0crk1b], .beneficiary-detail-heading h3[b-0yve0crk1b] { margin: 0; }
.beneficiary-master-heading > span[b-0yve0crk1b] { min-width: 2rem; padding: .2rem .5rem; border-radius: 999px; background: #e1eaf3; text-align: center; font-weight: 700; }
.beneficiary-search[b-0yve0crk1b] { display: grid; gap: .3rem; color: #53667a; font-size: .8rem; font-weight: 650; }
.beneficiary-list[b-0yve0crk1b] { display: grid; align-content: start; gap: .5rem; max-height: 560px; overflow-y: auto; padding-right: .15rem; }
.beneficiary-card[b-0yve0crk1b] { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: .7rem; width: 100%; padding: .7rem; border-color: #d3dde8; text-align: left; }
.beneficiary-card > span[b-0yve0crk1b] { display: grid; gap: .15rem; min-width: 0; }
.beneficiary-card small[b-0yve0crk1b] { color: #66778b; overflow: hidden; text-overflow: ellipsis; }
.beneficiary-card.selected[b-0yve0crk1b] { border-color: #2474a8; background: #eaf4fb; box-shadow: inset 3px 0 #2474a8; }
.beneficiary-card-total[b-0yve0crk1b] { text-align: right; white-space: nowrap; }
.beneficiary-detail[b-0yve0crk1b] { min-width: 0; padding: 1rem; background: #fff; }
.beneficiary-detail-heading p[b-0yve0crk1b] { margin: .3rem 0 0; color: #66778b; }
.beneficiary-total[b-0yve0crk1b] { display: grid; gap: .2rem; padding: .65rem .8rem; border-radius: .55rem; background: #eef6fb; text-align: right; white-space: nowrap; }
.beneficiary-total span[b-0yve0crk1b] { color: #53667a; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.compact-lines table[b-0yve0crk1b] { min-width: 1120px; }
.compact-lines caption[b-0yve0crk1b] { padding: .65rem 0; color: #53667a; text-align: left; }
.compact-lines .has-findings[b-0yve0crk1b] { background: #fffaf1; }
.completeness[b-0yve0crk1b] { display: inline-flex; padding: .2rem .45rem; border-radius: 999px; background: #fff0d5; color: #805612; font-size: .76rem; white-space: nowrap; }
.completeness.is-complete[b-0yve0crk1b] { background: #d9f2e3; color: #185c37; }
.supporting-documents[b-0yve0crk1b] { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e2e8f0; }
.supporting-document-list[b-0yve0crk1b] { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .6rem; margin-top: .7rem; }
.supporting-document-list article[b-0yve0crk1b] { display: grid; gap: .25rem; padding: .7rem; border: 1px solid #dbe3ed; border-radius: .55rem; background: #f8fafc; }
.supporting-document-list span[b-0yve0crk1b], .supporting-document-list small[b-0yve0crk1b] { color: #5f6f80; }
.workflow-actions[b-0yve0crk1b] { justify-content: flex-start; flex-wrap: wrap; margin: 1rem 0; }
.reason-field[b-0yve0crk1b] { max-width: 700px; }
.history-note[b-0yve0crk1b] { padding: .65rem; border-left: 3px solid #8aa1b8; background: #f7f9fb; }
.empty-state[b-0yve0crk1b] { color: #66778b; padding: 1rem 0; }
@media (max-width: 960px) {
    .workspace-grid[b-0yve0crk1b] { grid-template-columns: 1fr; }
    .source-grid[b-0yve0crk1b] { grid-template-columns: 1fr; }
    .amount-grid[b-0yve0crk1b] { grid-template-columns: repeat(2, 1fr); }
    .page-header[b-0yve0crk1b] { align-items: flex-start; flex-direction: column; }
    .order-beneficiary-workspace[b-0yve0crk1b] { grid-template-columns: 1fr; }
    .beneficiary-master[b-0yve0crk1b] { border-right: 0; border-bottom: 1px solid #dbe3ed; }
    .beneficiary-list[b-0yve0crk1b] { max-height: 300px; }
}
@media (max-width: 620px) {
    .amount-grid[b-0yve0crk1b] { grid-template-columns: 1fr; }
    .beneficiary-card[b-0yve0crk1b] { grid-template-columns: 1fr; }
    .beneficiary-card-total[b-0yve0crk1b] { text-align: left; }
    .beneficiary-detail-heading[b-0yve0crk1b] { flex-direction: column; }
    .beneficiary-total[b-0yve0crk1b] { width: 100%; text-align: left; }
}
/* /Pages/AlopPdfTemplates.razor.rz.scp.css */
.alop-pdf-templates-table-wrapper[b-svgm0wlr4a],
.alop-sync-items-wrapper[b-svgm0wlr4a],
.alop-fields-table-wrapper[b-svgm0wlr4a] {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid #e8edf4;
    border-radius: 8px;
}

.alop-pdf-templates-table[b-svgm0wlr4a] {
    min-width: 1080px;
}

.alop-template-header-actions[b-svgm0wlr4a] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    flex-wrap: wrap;
    width: min(100%, 920px);
}

[b-svgm0wlr4a] .page-header {
    align-items: flex-start;
    flex-wrap: wrap;
}

[b-svgm0wlr4a] .page-header-content {
    flex: 1 1 320px;
    min-width: min(100%, 280px);
}

[b-svgm0wlr4a] .page-header-actions {
    flex: 1 1 520px;
    min-width: min(100%, 320px);
}

.alop-upload-grid[b-svgm0wlr4a] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.alop-upload-field[b-svgm0wlr4a] {
    min-width: 0;
}

.alop-upload-helper[b-svgm0wlr4a] {
    margin-top: 0.45rem;
    color: #64748b;
    font-size: 0.85rem;
    overflow-wrap: anywhere;
}

.alop-upload-actions[b-svgm0wlr4a] {
    display: flex;
    justify-content: flex-end;
    margin-top: 1rem;
}

.alop-template-active-downloads[b-svgm0wlr4a] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    flex-wrap: wrap;
    flex: 1 1 100%;
}

.alop-template-header-actions .btn[b-svgm0wlr4a],
.alop-template-active-downloads .btn[b-svgm0wlr4a] {
    max-width: 100%;
    white-space: normal;
    text-align: left;
}

.alop-pdf-templates-table thead th[b-svgm0wlr4a],
.alop-sync-items-table thead th[b-svgm0wlr4a] {
    position: sticky;
    top: 0;
    z-index: 1;
    white-space: nowrap;
    font-size: 0.84rem;
    color: #475569;
    font-weight: 800;
    background: #f8fafc;
    border-bottom: 1px solid #e8edf4;
}

.alop-pdf-templates-table tbody td[b-svgm0wlr4a],
.alop-sync-items-table tbody td[b-svgm0wlr4a] {
    font-size: 0.9rem;
    vertical-align: top;
}

.alop-template-kind-cell[b-svgm0wlr4a] {
    color: #0f172a;
    font-weight: 800;
    min-width: 220px;
}

.alop-template-status[b-svgm0wlr4a] {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
    white-space: nowrap;
}

.alop-template-status--active[b-svgm0wlr4a] {
    background: #dcfce7;
    color: #166534;
}

.alop-template-status--inactive[b-svgm0wlr4a] {
    background: #f1f5f9;
    color: #475569;
}

.alop-template-size-cell[b-svgm0wlr4a] {
    color: #0f172a;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.alop-template-error-cell[b-svgm0wlr4a] {
    max-width: 340px;
}

.alop-template-error-text[b-svgm0wlr4a] {
    display: block;
    max-width: 100%;
    padding: 0.45rem 0.6rem;
    border: 1px solid #fecaca;
    border-radius: 8px;
    background: #fef2f2;
    color: #991b1b;
    font-size: 0.84rem;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.alop-template-actions-cell[b-svgm0wlr4a] {
    white-space: nowrap;
}

.alop-template-row-actions[b-svgm0wlr4a] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.alop-fields-section[b-svgm0wlr4a] {
    margin-top: 1rem;
}

.alop-fields-result[b-svgm0wlr4a] {
    display: grid;
    gap: 1rem;
}

.alop-fields-meta[b-svgm0wlr4a] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0;
}

.alop-fields-meta div[b-svgm0wlr4a] {
    min-width: 0;
    padding: 0.75rem;
    border: 1px solid #e8edf4;
    border-radius: 8px;
    background: #f8fafc;
}

.alop-fields-meta dt[b-svgm0wlr4a] {
    margin-bottom: 0.25rem;
    color: #64748b;
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.alop-fields-meta dd[b-svgm0wlr4a] {
    margin: 0;
    color: #0f172a;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.alop-fields-table[b-svgm0wlr4a] {
    min-width: 960px;
}

.alop-fields-table thead th[b-svgm0wlr4a] {
    position: sticky;
    top: 0;
    z-index: 1;
    white-space: nowrap;
    font-size: 0.84rem;
    color: #475569;
    font-weight: 800;
    background: #f8fafc;
    border-bottom: 1px solid #e8edf4;
}

.alop-fields-table tbody td[b-svgm0wlr4a] {
    font-size: 0.9rem;
    vertical-align: top;
}

.alop-field-name-cell[b-svgm0wlr4a] {
    color: #0f172a;
    font-weight: 800;
}

.alop-field-options-cell[b-svgm0wlr4a] {
    max-width: 360px;
    overflow-wrap: anywhere;
}

.alop-sync-result[b-svgm0wlr4a] {
    display: grid;
    gap: 1rem;
}

.alop-sync-section[b-svgm0wlr4a] {
    margin-top: 1rem;
}

.alop-sync-status[b-svgm0wlr4a] {
    padding: 0.85rem 1rem;
    border-radius: 8px;
    font-weight: 800;
}

.alop-sync-status--success[b-svgm0wlr4a] {
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}

.alop-sync-status--error[b-svgm0wlr4a] {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #991b1b;
}

.alop-sync-meta[b-svgm0wlr4a] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0;
}

.alop-sync-meta div[b-svgm0wlr4a] {
    min-width: 0;
    padding: 0.75rem;
    border: 1px solid #e8edf4;
    border-radius: 8px;
    background: #f8fafc;
}

.alop-sync-meta dt[b-svgm0wlr4a] {
    margin-bottom: 0.25rem;
    color: #64748b;
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.alop-sync-meta dd[b-svgm0wlr4a] {
    margin: 0;
    color: #0f172a;
    font-weight: 800;
}

.alop-sync-list[b-svgm0wlr4a] {
    padding: 0.85rem 1rem;
    border-radius: 8px;
}

.alop-sync-list h3[b-svgm0wlr4a] {
    margin: 0 0 0.5rem;
    font-size: 0.95rem;
    font-weight: 800;
}

.alop-sync-list ul[b-svgm0wlr4a] {
    margin: 0;
    padding-left: 1.25rem;
}

.alop-sync-list--error[b-svgm0wlr4a] {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #991b1b;
}

.alop-sync-list--warning[b-svgm0wlr4a] {
    border: 1px solid #fde68a;
    background: #fffbeb;
    color: #92400e;
}

.alop-sync-items-table[b-svgm0wlr4a] {
    min-width: 860px;
}

.alop-sync-message-cell[b-svgm0wlr4a] {
    max-width: 420px;
    overflow-wrap: anywhere;
}

@media (max-width: 760px) {
    .alop-sync-meta[b-svgm0wlr4a],
    .alop-fields-meta[b-svgm0wlr4a] {
        grid-template-columns: 1fr;
    }

    .alop-upload-grid[b-svgm0wlr4a] {
        grid-template-columns: 1fr;
    }

    .alop-upload-actions[b-svgm0wlr4a] {
        justify-content: flex-start;
    }

    .alop-upload-actions .btn[b-svgm0wlr4a] {
        width: 100%;
    }

    .alop-template-header-actions[b-svgm0wlr4a],
    .alop-template-active-downloads[b-svgm0wlr4a] {
        align-items: stretch;
        justify-content: flex-start;
        width: 100%;
    }

    .alop-template-header-actions .btn[b-svgm0wlr4a],
    .alop-template-active-downloads .btn[b-svgm0wlr4a] {
        width: 100%;
    }
}
/* /Pages/AlopTerti.razor.rz.scp.css */
.alop-modal-backdrop[b-spgt9sxhr8] {
    position: fixed;
    inset: 0;
    z-index: 1050;
    background: rgba(15, 23, 42, 0.48);
}

.alop-modal-shell[b-spgt9sxhr8] {
    position: fixed;
    inset: 0;
    z-index: 1060;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    pointer-events: none;
}

.alop-modal-card[b-spgt9sxhr8] {
    width: min(760px, 100%);
    max-height: min(90vh, 780px);
    overflow: auto;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.28);
    pointer-events: auto;
}

.alop-modal-header[b-spgt9sxhr8] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.35rem 1.5rem 1rem;
    border-bottom: 1px solid #e8edf4;
}

.alop-modal-header h2[b-spgt9sxhr8] {
    margin: 0;
    color: #0f172a;
    font-size: 1.35rem;
    font-weight: 850;
}

.alop-modal-eyebrow[b-spgt9sxhr8] {
    margin-bottom: 0.25rem;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.alop-modal-alert[b-spgt9sxhr8] {
    margin: 1rem 1.5rem 0;
}

.alop-form-grid[b-spgt9sxhr8] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    padding: 1.25rem 1.5rem;
}

.alop-form-field[b-spgt9sxhr8] {
    min-width: 0;
}

.alop-form-field--wide[b-spgt9sxhr8] {
    grid-column: 1 / -1;
}

.alop-helper-text[b-spgt9sxhr8] {
    margin-top: 0.35rem;
    color: #64748b;
    font-size: 0.82rem;
}

.alop-modal-actions[b-spgt9sxhr8] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1rem 1.5rem 1.35rem;
    border-top: 1px solid #e8edf4;
}

@media (max-width: 768px) {
    .alop-modal-shell[b-spgt9sxhr8] {
        align-items: flex-start;
        padding: 0.75rem;
        overflow: auto;
    }

    .alop-form-grid[b-spgt9sxhr8] {
        grid-template-columns: 1fr;
    }

    .alop-modal-actions[b-spgt9sxhr8] {
        flex-direction: column-reverse;
    }

    .alop-modal-actions .btn[b-spgt9sxhr8] {
        width: 100%;
    }
}
/* /Pages/Customers.razor.rz.scp.css */
.message-stack[b-siij6tmim9] {
    display: grid;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.page-chip[b-siij6tmim9] {
    display: inline-flex;
    align-items: center;
    padding: 0.65rem 0.9rem;
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    color: var(--tdl-text-secondary);
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.04);
}

/* ── Stats ─────────────────────────────────── */

.customer-stats-grid[b-siij6tmim9] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.stat-tile[b-siij6tmim9] {
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    padding: 1rem 1.1rem;
    box-shadow: var(--tdl-shadow-sm);
}

.stat-label[b-siij6tmim9] {
    color: var(--tdl-text-muted);
    font-size: 0.86rem;
    font-weight: 700;
    margin-bottom: 0.45rem;
}

.stat-value[b-siij6tmim9] {
    color: var(--tdl-text-primary);
    font-size: 1.4rem;
    font-weight: 800;
    line-height: 1.1;
}

.stat-value--active[b-siij6tmim9]  { color: #166534; }
.stat-value--inactive[b-siij6tmim9] { color: #991b1b; }

/* ── Page grid ──────────────────────────────── */

.customer-page-grid[b-siij6tmim9] {
    display: grid;
    /* Lista întâi și dominantă (~65%), formularul la dreapta (~35%). Vezi Serii documente. */
    grid-template-columns: minmax(560px, 1.85fr) minmax(340px, 1fr);
    gap: 1.15rem;
    align-items: start;
}

.customer-page-grid > *[b-siij6tmim9] {
    min-width: 0;
}

/* ── Form ───────────────────────────────────── */

.form-section-label[b-siij6tmim9] {
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--tdl-primary-hover);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.7rem;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid var(--tdl-border);
}

.form-grid[b-siij6tmim9] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    margin-bottom: 1.2rem;
}

.form-field[b-siij6tmim9] {
    min-width: 0;
}

.form-field--registration[b-siij6tmim9] {
    min-width: 0;
}

.form-field--registration .form-control[b-siij6tmim9] {
    width: 100%;
}

.form-field--identification-row[b-siij6tmim9] {
    margin-bottom: 0;
}

.customer-identification-row[b-siij6tmim9] {
    display: grid;
    grid-template-columns: minmax(120px, 0.85fr) auto minmax(180px, 1.15fr);
    gap: 0.75rem;
    align-items: end;
}

.customer-identification-field[b-siij6tmim9] {
    min-width: 0;
}

.customer-identification-action[b-siij6tmim9] {
    display: flex;
    align-items: flex-end;
}

.form-field--wide[b-siij6tmim9] {
    grid-column: 1 / -1;
}

.form-field--switch[b-siij6tmim9] {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-bottom: 0.15rem;
}

.required-star[b-siij6tmim9] {
    color: #dc2626;
    font-weight: 700;
}

.field-error[b-siij6tmim9] {
    display: block;
    font-size: 0.82rem;
    color: #dc2626;
    margin-top: 0.3rem;
}

.form-actions[b-siij6tmim9] {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding-top: 0.5rem;
}

/* ── List ───────────────────────────────────── */

.search-bar[b-siij6tmim9] {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 0.85rem;
}

.customer-list-table thead th[b-siij6tmim9] {
    white-space: nowrap;
    font-size: 0.86rem;
    color: #475569;
    font-weight: 800;
    background: var(--tdl-surface-soft);
    border-bottom: 1px solid var(--tdl-border);
}

.customer-list-table td[b-siij6tmim9],
.customer-list-table th[b-siij6tmim9] {
    vertical-align: middle;
}

.customer-name-cell[b-siij6tmim9] {
    font-weight: 700;
    color: var(--tdl-text-primary);
}

.customer-row[b-siij6tmim9] {
    cursor: pointer;
    transition: background 0.1s;
}

.customer-row--selected[b-siij6tmim9] {
    background: var(--tdl-primary-soft) !important;
    box-shadow: inset 4px 0 0 var(--tdl-primary);
}

.empty-state[b-siij6tmim9] {
    padding: 1rem 0;
    color: #64748b;
}

.list-footer[b-siij6tmim9] {
    padding-top: 0.75rem;
    font-size: 0.83rem;
    color: #94a3b8;
    font-weight: 600;
}

/* ── Status pills ───────────────────────────── */

.status-pill[b-siij6tmim9] {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
    white-space: nowrap;
}

.status-pill--active[b-siij6tmim9] { background: var(--tdl-success-soft); color: var(--tdl-success); }

.status-pill--inactive[b-siij6tmim9] { background: var(--tdl-surface-muted); color: var(--tdl-text-secondary); }

/* ── Responsive ─────────────────────────────── */

@media (max-width: 1200px) {
    .customer-page-grid[b-siij6tmim9] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .customer-stats-grid[b-siij6tmim9] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .form-grid[b-siij6tmim9] {
        grid-template-columns: 1fr;
    }

    .form-field--wide[b-siij6tmim9] {
        grid-column: auto;
    }
}

@media (max-width: 600px) {
    .customer-stats-grid[b-siij6tmim9] {
        grid-template-columns: 1fr;
    }
}

.list-filter-pills[b-siij6tmim9] {
    display: flex;
    gap: .375rem;
    flex-wrap: wrap;
    margin-top: .5rem;
}

.filter-pill[b-siij6tmim9] {
    padding: .25rem .7rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface);
    color: var(--text-secondary);
    font-size: .75rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .12s, color .12s, border-color .12s;
    line-height: 1.4;
}

    .filter-pill:hover[b-siij6tmim9] {
        background: var(--surface-raised);
        color: var(--text-primary);
    }

.filter-pill--active[b-siij6tmim9] {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

    .filter-pill--active:hover[b-siij6tmim9] {
        background: var(--accent);
        color: #fff;
    }

/* ── Customer history panel ────────────────────────────────── */

.ch-kpi-row[b-siij6tmim9] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.ch-kpi[b-siij6tmim9] {
    background: var(--tdl-surface-soft);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    padding: 0.7rem 0.85rem;
    text-align: center;
}

.ch-kpi-label[b-siij6tmim9] {
    font-size: 0.72rem;
    color: var(--tdl-text-muted);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.3rem;
}

.ch-kpi-value[b-siij6tmim9] {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--tdl-text-primary);
    line-height: 1.1;
}

.ch-kpi-value--issued[b-siij6tmim9]   { color: var(--tdl-success); }
.ch-kpi-value--paid[b-siij6tmim9]     { color: var(--tdl-primary-hover); }
.ch-kpi-value--cancelled[b-siij6tmim9] { color: var(--tdl-danger); }

.ch-table-wrapper[b-siij6tmim9] {
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    overflow: hidden;
}

.ch-table thead th[b-siij6tmim9] {
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-secondary);
    font-size: 0.83rem;
    font-weight: 800;
    border-bottom: 1px solid var(--tdl-border);
    white-space: nowrap;
    padding: 0.5rem 0.75rem;
}

.ch-table tbody td[b-siij6tmim9] {
    font-size: 0.88rem;
    padding: 0.5rem 0.75rem;
}

.ch-number-cell[b-siij6tmim9] {
    font-weight: 800;
    color: var(--tdl-text-primary);
    white-space: nowrap;
}

.ch-amount-cell[b-siij6tmim9] {
    font-weight: 700;
    color: var(--tdl-text-primary);
    white-space: nowrap;
}

.status-pill[b-siij6tmim9] {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.6rem;
    border-radius: var(--tdl-radius-pill);
    font-size: 0.78rem;
    font-weight: 700;
}

.status-pill--draft[b-siij6tmim9]     { background: var(--tdl-warning-soft); color: #7a4a0f; }
.status-pill--issued[b-siij6tmim9]    { background: var(--tdl-primary-soft); color: var(--tdl-primary-hover); }
.status-pill--partial[b-siij6tmim9]   { background: #f7dfc3; color: #8c4b16; }
.status-pill--paid[b-siij6tmim9]      { background: var(--tdl-success-soft); color: var(--tdl-success); }
.status-pill--cancelled[b-siij6tmim9] { background: var(--tdl-danger-soft); color: var(--tdl-danger); }
.status-pill--storno[b-siij6tmim9]    { background: var(--tdl-violet-soft); color: var(--tdl-violet); }

@media (max-width: 700px) {
    .ch-kpi-row[b-siij6tmim9] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


.fiscal-code-btn[b-siij6tmim9] {
    min-height: 2.45rem;
    white-space: nowrap;
}

.form-hint[b-siij6tmim9] {
    margin-top: 0.45rem;
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.45;
}

.anaf-feedback[b-siij6tmim9] {
    margin-top: 0.55rem;
    padding: 0.7rem 0.8rem;
    border-radius: 14px;
    font-size: 0.82rem;
    font-weight: 700;
}

.anaf-feedback--success[b-siij6tmim9] {
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}

.anaf-feedback--error[b-siij6tmim9] {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #991b1b;
}

@media (max-width: 900px) {
    .customer-identification-row[b-siij6tmim9] {
        grid-template-columns: 1fr;
    }

    .customer-identification-action[b-siij6tmim9],
    .fiscal-code-btn[b-siij6tmim9] {
        width: 100%;
    }
}

/*
   Ștergerea nu stă lângă „Actualizează”. Împinsă la capătul barei cu margin-left, nu cu `order`:
   ordinea DOM rămâne ordinea vizuală. Aceeași convenție ca în editorul de nomenclator.
*/
.customer-danger-action[b-siij6tmim9] {
    margin-left: auto;
}

@media (max-width: 900px) {
    /* Pe telefon ocupă un rând al ei, sub acțiunile principale. */
    .customer-danger-action[b-siij6tmim9] {
        margin-left: 0;
        width: 100%;
    }
}
/* /Pages/GoodTypes.razor.rz.scp.css */
/*
   Tipuri bun - nomenclator list-first.

   Regulile sunt SCOPED, deci nu se pot împrumuta de la InventoryCategories.razor.css oricât de mult
   ar semăna cele două pagini: un stil scoped se aplică doar elementelor randate de componenta lui.
   Aceeași lecție pe care o consemnează și pagina vecină în capul fișierului ei. Ce urmează este
   deci o copie deliberată a acelorași reguli, minus tot ce ținea de arbore - tipurile de bun sunt o
   listă plată - plus grupurile de secțiune din editor.

   Tabelul-card pe mobil (.tdl-card-grid), stările de rând (.tdl-grid-row), chip-urile de stare
   (.status-pill) și modalul vin din contractele globale și nu se redefinesc aici.

   Fără culori noi: totul din tokenii TDL.
*/

/* ── Toolbar ─────────────────────────────────────────────────────────────── */
.category-toolbar[b-vlg3pm8by8] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.9rem;
}

.category-toolbar__search[b-vlg3pm8by8] {
    flex: 1 1 18rem;
    min-width: 0;
}

.category-toolbar__filter[b-vlg3pm8by8] {
    flex: 0 0 auto;
    width: auto;
    min-width: 11rem;
}

/* ── Tabel ───────────────────────────────────────────────────────────────── */
.category-table[b-vlg3pm8by8] {
    table-layout: auto;
}

.category-table th[b-vlg3pm8by8] {
    white-space: nowrap;
}

.category-code-cell[b-vlg3pm8by8] {
    width: 1%;
    white-space: nowrap;
    font-weight: 700;
    color: var(--tdl-text-primary);
}

.category-table td[b-vlg3pm8by8],
.category-table th[b-vlg3pm8by8] {
    vertical-align: middle;
}

.category-table td.tdl-card-grid-actions[b-vlg3pm8by8] {
    width: 1%;
    white-space: nowrap;
}

.category-name[b-vlg3pm8by8] {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Descrierea este context, nu identitate: se poate rupe și nu are voie să împingă coloanele. */
.good-type-description-cell[b-vlg3pm8by8] {
    color: var(--tdl-text-secondary);
    overflow-wrap: anywhere;
}

/* Cifre tabulare, ca procentele să cadă unul sub altul într-o coloană citită pe verticală. */
.good-type-vat-cell[b-vlg3pm8by8] {
    width: 1%;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* ── Empty state compact ─────────────────────────────────────────────────── */
.category-empty[b-vlg3pm8by8] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 1.1rem 1.15rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
}

.category-empty__title[b-vlg3pm8by8] {
    margin: 0;
    color: var(--tdl-text-primary);
    font-size: 0.95rem;
    font-weight: 700;
}

.category-empty__text[b-vlg3pm8by8] {
    margin: 0;
    color: var(--tdl-text-secondary);
    font-size: 0.86rem;
}

.category-empty .btn[b-vlg3pm8by8] {
    margin-top: 0.5rem;
}

/* ── Editor ──────────────────────────────────────────────────────────────── */

/*
   `align-items: start` nu este cosmetic. Contractul global `.form-field` este `display: grid`, iar
   un grid item se întinde implicit pe toată înălțimea rândului: un câmp cu hint dedesubt îl făcea
   pe vecinul fără hint să crească până arăta ca un textarea. Aliniat la start, fiecare câmp este
   înalt cât conținutul lui. Aceeași observație ca la pagina vecină, și din același motiv.
*/
.category-form-grid[b-vlg3pm8by8] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem 1.1rem;
    align-items: start;
}

.category-form-grid .form-field--wide[b-vlg3pm8by8] {
    grid-column: 1 / -1;
}

/*
   Capul unei secțiuni din editor - „Informații”, „Configurare contabilă”.

   Există fiindcă formularul are două jumătăți care nu se citesc la fel: una descrie tipul, cealaltă
   îi atașează conturi. Nomenclatorul vechi le punea pe toate în același șir orizontal de coloane,
   ceea ce este exact motivul pentru care nimeni nu putea spune, uitându-se la el, care câmp la ce
   folosește.
*/
.form-field-group[b-vlg3pm8by8] {
    margin-top: 0.35rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--tdl-border);
    color: var(--tdl-text-secondary);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.form-field-group:first-child[b-vlg3pm8by8] {
    margin-top: 0;
}

/* ── Setări contabile avansate ────────────────────────────────────────────
   Dezvăluire nativă `<details>`, închisă implicit. Nouă conturi permanent pe ecran ar fi transformat
   un formular de patru câmpuri într-un perete - exact impresia grilei vechi. Nativ, nu o stare în
   C#: funcționează fără JS și este accesibil de la tastatură din start. */
.good-type-advanced[b-vlg3pm8by8] {
    margin-top: 0.25rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
}

.good-type-advanced__summary[b-vlg3pm8by8] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0.85rem;
    color: var(--tdl-text-primary);
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
    user-select: none;
    list-style: revert;
}

.good-type-advanced__summary:focus-visible[b-vlg3pm8by8] {
    outline: 3px solid rgba(74, 116, 148, 0.28);
    outline-offset: -3px;
    border-radius: var(--tdl-radius-md);
}

/* „opțional” este o notă, nu un titlu: se retrage la dreapta și în greutate. */
.good-type-advanced__hint[b-vlg3pm8by8] {
    margin-left: auto;
    color: var(--tdl-text-muted);
    font-size: 0.75rem;
    font-weight: 500;
}

.good-type-advanced__body[b-vlg3pm8by8] {
    padding: 0 0.85rem 0.85rem;
    border-top: 1px solid var(--tdl-border);
}

.good-type-advanced__note[b-vlg3pm8by8] {
    margin: 0.6rem 0 0.85rem;
}

/*
   Grila conturilor. `auto-fit` cu un minim: trei coloane pe desktop, două pe tabletă, una pe telefon
   - fără niciun breakpoint scris de mână, și fără nicio lățime care să poată depăși containerul.
   `minmax(0, 1fr)` este ce împiedică un `input` să împingă coloana peste marginea modalului.
*/
.good-type-accounts-grid[b-vlg3pm8by8] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(13rem, 100%), 1fr));
    gap: 0.85rem 1rem;
    align-items: start;
}

/*
   Ștergerea nu stă lângă Salvează. Împinsă la capătul barei cu margin-left, nu cu `order`: ordinea
   DOM rămâne ordinea vizuală, așa cum cere contractul action bar-ului.
*/
.category-modal-danger[b-vlg3pm8by8] {
    margin-left: auto;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .category-toolbar[b-vlg3pm8by8] {
        flex-direction: column;
        align-items: stretch;
    }

    .category-toolbar__search[b-vlg3pm8by8],
    .category-toolbar__filter[b-vlg3pm8by8] {
        flex: 1 1 auto;
        width: 100%;
        min-width: 0;
    }

    .category-form-grid[b-vlg3pm8by8] {
        grid-template-columns: minmax(0, 1fr);
    }

    .category-modal-danger[b-vlg3pm8by8] {
        margin-left: 0;
        width: 100%;
    }
}

/* Codul devine titlul cardului; eticheta „COD” nu mai aduce nimic. */
@media (max-width: 767.98px) {
    .category-table .category-code-cell[b-vlg3pm8by8] {
        width: auto;
        justify-content: flex-start;
        font-size: 1rem;
    }

    .category-table .category-code-cell[b-vlg3pm8by8]::before {
        content: none;
    }

    .good-type-vat-cell[b-vlg3pm8by8] {
        width: auto;
    }
}

.action-row[b-vlg3pm8by8] {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: nowrap;
}

/* Codurile de notă: un sub-bloc al setărilor avansate, separat vizual de conturi. */
.good-type-notes[b-vlg3pm8by8] {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--tdl-border);
}

.good-type-notes__title[b-vlg3pm8by8] {
    margin-bottom: 0.6rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--tdl-text-secondary);
}
/* /Pages/Home.razor.rz.scp.css */
.action-hub[b-35no48bb6t] {
    display: grid;
    grid-template-columns: 1.15fr 1fr 1fr;
    gap: 0.9rem;
    margin-bottom: 1.15rem;
}

.action-card[b-35no48bb6t] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    min-height: 148px;
    padding: 1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    background: var(--tdl-surface);
    color: inherit;
    text-decoration: none;
    box-shadow: var(--tdl-shadow-sm);
    overflow: hidden;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.action-card[b-35no48bb6t]::after {
    content: none;
}

.action-card:hover[b-35no48bb6t] {
    color: inherit;
    transform: translateY(-1px);
    border-color: var(--tdl-primary-soft-border);
    box-shadow: var(--tdl-shadow);
}

.action-card-header[b-35no48bb6t] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.action-card-icon[b-35no48bb6t] {
    width: 2.45rem;
    height: 2.45rem;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.action-card-icon svg[b-35no48bb6t] {
    width: 1.35rem;
    height: 1.35rem;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.action-card-kicker[b-35no48bb6t] {
    width: fit-content;
    padding: 0.28rem 0.58rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.action-card-title[b-35no48bb6t] {
    max-width: 16ch;
    font-size: 1.08rem;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 0;
}

.action-card-text[b-35no48bb6t] {
    line-height: 1.55;
}

.action-card-cta[b-35no48bb6t] {
    margin-top: auto;
    font-weight: 850;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.action-card--primary[b-35no48bb6t] {
    background: linear-gradient(135deg, var(--tdl-primary-hover) 0%, var(--tdl-sidebar-bg) 100%);
    color: #ffffff;
    border-color: transparent;
}

.action-card--primary .action-card-icon[b-35no48bb6t] {
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
}

.action-card--primary .action-card-kicker[b-35no48bb6t] {
    background: rgba(255, 255, 255, 0.16);
    color: rgba(253, 252, 251, 0.78);
}

.action-card--primary .action-card-text[b-35no48bb6t] {
    color: rgba(253, 252, 251, 0.78);
}

.action-card--primary .action-card-cta[b-35no48bb6t] {
    color: #ffffff;
}

.action-card--emerald[b-35no48bb6t] {
    background: #f6faf6;
}

.action-card--emerald .action-card-icon[b-35no48bb6t] {
    background: #dcfce7;
    color: #166534;
}

.action-card--emerald .action-card-kicker[b-35no48bb6t] {
    background: rgba(22, 163, 74, 0.12);
    color: #166534;
}

.action-card--emerald .action-card-cta[b-35no48bb6t] {
    color: #166534;
}

.action-card--violet[b-35no48bb6t] {
    background: #f8f4fb;
}

.action-card--violet .action-card-icon[b-35no48bb6t] {
    background: #ede9fe;
    color: #6d28d9;
}

.action-card--violet .action-card-kicker[b-35no48bb6t] {
    background: rgba(124, 58, 237, 0.12);
    color: #6d28d9;
}

.action-card--violet .action-card-cta[b-35no48bb6t] {
    color: #5b21b6;
}

.kpi-grid[b-35no48bb6t] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.1rem;
}

.kpi-tile[b-35no48bb6t] {
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    padding: 1rem;
    box-shadow: var(--tdl-shadow-sm);
    display: flex;
    align-items: flex-start;
    gap: 0.95rem;
}

.kpi-icon[b-35no48bb6t] {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.kpi-icon--blue[b-35no48bb6t]   { background: var(--tdl-primary-soft); color: var(--tdl-primary-hover); }
.kpi-icon--green[b-35no48bb6t]  { background: var(--tdl-success-soft); color: #166534; }
.kpi-icon--violet[b-35no48bb6t] { background: var(--tdl-violet-soft); color: var(--tdl-violet); }
.kpi-icon--amber[b-35no48bb6t]  { background: var(--tdl-warning-soft); color: #92400e; }
.kpi-icon--red[b-35no48bb6t]    { background: var(--tdl-danger-soft); color: var(--tdl-danger); }

.kpi-tile--alert[b-35no48bb6t] {
    border-color: #fecaca;
    background: linear-gradient(180deg, rgba(255, 250, 250, 0.98) 0%, rgba(255, 244, 244, 0.98) 100%);
}

.kpi-body[b-35no48bb6t] {
    min-width: 0;
}

.kpi-value[b-35no48bb6t] {
    font-size: 1.65rem;
    font-weight: 800;
    color: var(--tdl-text-primary);
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.kpi-label[b-35no48bb6t] {
    font-size: 0.83rem;
    font-weight: 800;
    color: var(--tdl-text-secondary);
    margin-top: 0.2rem;
}

.kpi-sub[b-35no48bb6t] {
    font-size: 0.78rem;
    color: var(--tdl-text-muted);
    margin-top: 0.2rem;
    font-weight: 650;
}

.workflow-card[b-35no48bb6t] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.1rem;
    margin-bottom: 1.15rem;
    padding: 1.15rem 1.4rem;
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    box-shadow: var(--tdl-shadow-sm);
}

.workflow-step[b-35no48bb6t] {
    min-width: 0;
    flex: 1;
    display: grid;
    justify-items: center;
    text-align: center;
    gap: 0.25rem;
}

.workflow-icon[b-35no48bb6t] {
    width: 3.3rem;
    height: 3.3rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--tdl-surface-soft);
    color: var(--tdl-primary-hover);
    border: 1px solid var(--tdl-border);
}

.workflow-icon svg[b-35no48bb6t] {
    width: 1.35rem;
    height: 1.35rem;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.workflow-step strong[b-35no48bb6t] {
    color: var(--tdl-text-primary);
    font-weight: 800;
}

.workflow-step small[b-35no48bb6t] {
    color: var(--tdl-text-muted);
    font-size: 0.78rem;
}

.workflow-arrow[b-35no48bb6t] {
    color: var(--tdl-border-strong);
    font-size: 1.8rem;
    line-height: 1;
}

.invoice-overview-card[b-35no48bb6t] {
    display: grid;
    grid-template-columns: minmax(270px, 0.72fr) minmax(0, 1.28fr);
    gap: 1rem;
    margin-bottom: 1.15rem;
    padding: 1rem;
    background: linear-gradient(135deg, var(--tdl-surface) 0%, #f8f5ef 100%);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    box-shadow: var(--tdl-shadow-sm);
}

.invoice-overview-main[b-35no48bb6t] {
    display: flex;
    flex-direction: column;
    gap: 0.48rem;
    padding: 0.85rem;
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface);
    border: 1px solid rgba(226, 221, 213, 0.78);
}

.invoice-overview-kicker[b-35no48bb6t] {
    width: fit-content;
    padding: 0.28rem 0.58rem;
    border-radius: 999px;
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
    font-size: 0.72rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.invoice-overview-title[b-35no48bb6t] {
    color: var(--tdl-text-primary);
    font-size: 1.18rem;
    line-height: 1.2;
    font-weight: 850;
}

.invoice-overview-subtitle[b-35no48bb6t] {
    color: var(--tdl-text-muted);
    line-height: 1.45;
    font-size: 0.88rem;
}

.invoice-overview-balance[b-35no48bb6t] {
    margin-top: auto;
    padding-top: 0.65rem;
    border-top: 1px solid var(--tdl-border);
}

.invoice-overview-balance span[b-35no48bb6t] {
    display: block;
    color: var(--tdl-text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.2rem;
}

.invoice-overview-balance strong[b-35no48bb6t] {
    display: block;
    color: var(--tdl-text-primary);
    font-size: 1.72rem;
    line-height: 1.05;
    font-weight: 900;
    white-space: nowrap;
}

.invoice-overview-link[b-35no48bb6t] {
    margin-top: 0.2rem;
    color: var(--tdl-primary);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 850;
}

.invoice-overview-link:hover[b-35no48bb6t] {
    color: var(--tdl-primary-hover);
    text-decoration: underline;
}

.invoice-overview-metrics[b-35no48bb6t] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.invoice-overview-metric[b-35no48bb6t] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 86px;
    padding: 0.86rem 0.92rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface);
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.035);
}

.invoice-overview-metric span[b-35no48bb6t] {
    color: var(--tdl-text-muted);
    font-size: 0.76rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.055em;
    line-height: 1.25;
}

.invoice-overview-metric strong[b-35no48bb6t] {
    color: var(--tdl-text-primary);
    font-size: 1.62rem;
    line-height: 1.1;
    font-weight: 900;
}

.invoice-overview-metric--draft[b-35no48bb6t] { background: #fffaf0; }
.invoice-overview-metric--issued[b-35no48bb6t] { background: var(--tdl-primary-soft); }
.invoice-overview-metric--partial[b-35no48bb6t] { background: #fff7ed; }
.invoice-overview-metric--paid[b-35no48bb6t] { background: var(--tdl-success-soft); }
.invoice-overview-metric--overdue[b-35no48bb6t] { background: var(--tdl-danger-soft); }

.invoice-overview-metric--overdue strong[b-35no48bb6t] {
    color: var(--tdl-danger);
}

.dashboard-bottom[b-35no48bb6t] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(320px, 0.8fr);
    gap: 1.15rem;
    align-items: start;
}

.recent-table thead th[b-35no48bb6t] {
    white-space: nowrap;
    background: rgba(241, 245, 249, 0.82);
}

.invoice-number-cell[b-35no48bb6t] {
    font-weight: 850;
    white-space: nowrap;
}

.invoice-link[b-35no48bb6t] {
    color: var(--tdl-primary);
    text-decoration: none;
    font-weight: 850;
}

.invoice-link:hover[b-35no48bb6t] {
    text-decoration: underline;
}

.recent-footer[b-35no48bb6t] {
    padding-top: 0.9rem;
    font-size: 0.88rem;
    font-weight: 700;
}

.recent-footer a[b-35no48bb6t],
.empty-state a[b-35no48bb6t] {
    color: var(--tdl-primary);
    text-decoration: none;
    font-weight: 800;
}

.recent-footer a:hover[b-35no48bb6t],
.empty-state a:hover[b-35no48bb6t] {
    text-decoration: underline;
}

.empty-state[b-35no48bb6t] {
    padding: 1rem 0;
    color: var(--tdl-text-muted);
}

.quick-links-grid[b-35no48bb6t] {
    display: grid;
    gap: 0.75rem;
}

.quick-link-card[b-35no48bb6t] {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    padding: 0.9rem 1rem;
    background: var(--tdl-surface-soft);
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.quick-link-card:hover[b-35no48bb6t] {
    color: inherit;
    transform: translateY(-2px);
    border-color: rgba(74, 116, 148, 0.24);
    background: var(--tdl-surface);
    box-shadow: var(--tdl-shadow-sm);
}

.quick-link-icon[b-35no48bb6t] {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.quick-link-icon--blue[b-35no48bb6t]   { background: var(--tdl-primary-soft); color: var(--tdl-primary-hover); }
.quick-link-icon--green[b-35no48bb6t]  { background: var(--tdl-success-soft); color: #166534; }
.quick-link-icon--violet[b-35no48bb6t] { background: var(--tdl-violet-soft); color: var(--tdl-violet); }
.quick-link-icon--amber[b-35no48bb6t]  { background: var(--tdl-warning-soft); color: #92400e; }

.quick-link-title[b-35no48bb6t] {
    font-size: 0.96rem;
    font-weight: 850;
    color: var(--tdl-text-primary);
    margin-bottom: 0.1rem;
}

.quick-link-text[b-35no48bb6t] {
    font-size: 0.82rem;
    color: var(--tdl-text-muted);
    line-height: 1.4;
}

.status-pill[b-35no48bb6t] {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.6rem;
    border-radius: var(--tdl-radius-pill);
    font-size: 0.78rem;
    font-weight: 850;
    white-space: nowrap;
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
}

.status-pill--draft[b-35no48bb6t]     { background: var(--tdl-warning-soft); color: #7a4a0f; }
.status-pill--issued[b-35no48bb6t]    { background: var(--tdl-primary-soft); color: var(--tdl-primary-hover); }
.status-pill--partial[b-35no48bb6t]   { background: #f7dfc3; color: #8c4b16; }
.status-pill--paid[b-35no48bb6t]      { background: var(--tdl-success-soft); color: var(--tdl-success); }
.status-pill--cancelled[b-35no48bb6t] { background: var(--tdl-danger-soft); color: var(--tdl-danger); }
.status-pill--storno[b-35no48bb6t]    { background: var(--tdl-violet-soft); color: var(--tdl-violet); }
.status-pill--storno-cancelled[b-35no48bb6t] { background: var(--tdl-danger-soft); color: var(--tdl-violet); }

@media (max-width: 1250px) {
    .action-hub[b-35no48bb6t],
    .dashboard-bottom[b-35no48bb6t],
    .invoice-overview-card[b-35no48bb6t] {
        grid-template-columns: 1fr;
    }

    .action-card-title[b-35no48bb6t] {
        max-width: none;
    }
}

@media (max-width: 900px) {
    .kpi-grid[b-35no48bb6t],
    .invoice-overview-metrics[b-35no48bb6t] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .workflow-card[b-35no48bb6t] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .workflow-arrow[b-35no48bb6t] {
        display: none;
    }
}

@media (max-width: 540px) {
    .kpi-grid[b-35no48bb6t],
    .invoice-overview-metrics[b-35no48bb6t] {
        grid-template-columns: 1fr;
    }

    .kpi-tile[b-35no48bb6t],
    .action-card[b-35no48bb6t],
    .invoice-overview-metric[b-35no48bb6t] {
        min-height: unset;
    }

    .kpi-tile[b-35no48bb6t] {
        flex-direction: column;
        gap: 0.6rem;
    }

    .invoice-overview-card[b-35no48bb6t] {
        padding: 0.75rem;
    }

    .invoice-overview-balance strong[b-35no48bb6t] {
        white-space: normal;
    }
}


.action-card--primary:hover[b-35no48bb6t],
.action-card--primary:hover .action-card-title[b-35no48bb6t],
.action-card--primary:hover .action-card-cta[b-35no48bb6t] {
    color: #ffffff;
}

.action-card--primary:hover .action-card-text[b-35no48bb6t],
.action-card--primary:hover .action-card-kicker[b-35no48bb6t] {
    color: rgba(253, 252, 251, 0.78);
}
/* /Pages/InstitutionDetails.razor.rz.scp.css */
.settings-grid[b-yusdp2nh7f] {
    display: grid;
    gap: 1rem;
    max-width: 1320px;
}

.page-chip--success[b-yusdp2nh7f] {
    border-color: var(--tdl-success-soft-border);
    background: var(--tdl-success-soft);
    color: var(--tdl-success);
}

.page-chip--danger[b-yusdp2nh7f] {
    border-color: var(--tdl-danger-soft-border);
    background: var(--tdl-danger-soft);
    color: var(--tdl-danger);
}

.institution-admin-topline[b-yusdp2nh7f] {
    max-width: 1320px;
    margin-bottom: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.95rem 1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(248, 250, 252, 0.86));
    box-shadow: var(--tdl-shadow-sm);
}

.institution-admin-identity[b-yusdp2nh7f] {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.institution-avatar[b-yusdp2nh7f] {
    width: 2.6rem;
    height: 2.6rem;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--tdl-radius-lg);
    border: 1px solid var(--tdl-primary-soft-border);
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
    font-weight: 900;
    letter-spacing: 0.04em;
}

.institution-avatar--large[b-yusdp2nh7f] {
    width: 3.15rem;
    height: 3.15rem;
    font-size: 1.05rem;
}

.institution-admin-name[b-yusdp2nh7f] {
    color: var(--tdl-text-primary);
    font-size: 1.08rem;
    font-weight: 900;
    line-height: 1.2;
}

.institution-admin-meta[b-yusdp2nh7f] {
    margin-top: 0.18rem;
    color: var(--tdl-text-secondary);
    font-size: 0.88rem;
}

.institution-admin-summary[b-yusdp2nh7f] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.55rem;
}

.admin-summary-chip[b-yusdp2nh7f] {
    min-width: 7.2rem;
    display: grid;
    gap: 0.05rem;
    padding: 0.62rem 0.78rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.04);
}

.admin-summary-chip span[b-yusdp2nh7f] {
    color: var(--tdl-text-muted);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.admin-summary-chip strong[b-yusdp2nh7f] {
    color: var(--tdl-text-primary);
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

.admin-summary-chip--warning[b-yusdp2nh7f] {
    border-color: var(--tdl-warning-soft-border);
    background: var(--tdl-warning-soft);
}

.admin-summary-chip--warning strong[b-yusdp2nh7f] {
    color: var(--tdl-warning);
}

.institution-admin-nav[b-yusdp2nh7f] {
    max-width: 1320px;
    margin-bottom: 0.95rem;
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.institution-admin-nav a[b-yusdp2nh7f] {
    display: inline-flex;
    align-items: center;
    min-height: 2.15rem;
    padding: 0.45rem 0.78rem;
    border: 1px solid var(--tdl-border);
    border-radius: 999px;
    background: var(--tdl-surface);
    color: var(--tdl-text-secondary);
    font-size: 0.84rem;
    font-weight: 800;
    text-decoration: none;
    box-shadow: var(--tdl-shadow-sm);
}

.institution-admin-nav a:hover[b-yusdp2nh7f] {
    border-color: var(--tdl-primary-soft-border);
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
}

.admin-section-heading[b-yusdp2nh7f] {
    scroll-margin-top: 1rem;
    margin: 0.7rem 0 -0.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.85rem 1rem;
    background: rgba(253, 252, 251, 0.58);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
}

.admin-section-heading span[b-yusdp2nh7f] {
    color: var(--tdl-text-primary);
    font-size: 1.05rem;
    font-weight: 800;
}

.admin-section-heading small[b-yusdp2nh7f] {
    color: var(--tdl-text-secondary);
    font-size: 0.88rem;
}

.module-toggle-grid[b-yusdp2nh7f] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.module-toggle-card[b-yusdp2nh7f] {
    display: grid;
    gap: 0.85rem;
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface);
    box-shadow: var(--tdl-shadow-sm);
}

.module-toggle-card.is-enabled[b-yusdp2nh7f] {
    border-color: var(--tdl-success-soft-border);
    background: linear-gradient(180deg, var(--tdl-success-soft), var(--tdl-surface));
}

.module-toggle-card.is-partial[b-yusdp2nh7f] {
    border-color: var(--tdl-warning-soft-border);
    background: linear-gradient(180deg, var(--tdl-warning-soft), var(--tdl-surface));
}

.module-toggle-card.is-disabled[b-yusdp2nh7f] {
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.92), var(--tdl-surface));
}

.module-toggle-header[b-yusdp2nh7f] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.module-toggle-header h3[b-yusdp2nh7f] {
    margin: 0;
    color: var(--tdl-text-primary);
    font-size: 1rem;
    font-weight: 900;
}

.module-toggle-header p[b-yusdp2nh7f] {
    margin: 0.3rem 0 0;
    color: var(--tdl-text-secondary);
    font-size: 0.88rem;
}

.module-status-pill[b-yusdp2nh7f] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    padding: 0.34rem 0.62rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 900;
}

.module-status-pill.is-enabled[b-yusdp2nh7f] {
    background: var(--tdl-success-soft);
    color: var(--tdl-success);
}

.module-status-pill.is-partial[b-yusdp2nh7f] {
    background: var(--tdl-warning-soft);
    color: var(--tdl-warning);
}

.module-status-pill.is-disabled[b-yusdp2nh7f] {
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-muted);
}

.module-progress[b-yusdp2nh7f] {
    height: 0.45rem;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18);
}

.module-progress-fill[b-yusdp2nh7f] {
    height: 100%;
    border-radius: inherit;
    background: var(--tdl-primary);
}

.module-meta-line[b-yusdp2nh7f] {
    color: var(--tdl-text-secondary);
    font-size: 0.85rem;
}

.module-meta-line strong[b-yusdp2nh7f] {
    color: var(--tdl-text-primary);
    font-weight: 900;
}

.module-feature-list[b-yusdp2nh7f] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.module-feature-pill[b-yusdp2nh7f] {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 800;
    border: 1px solid var(--tdl-border);
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-muted);
}

.module-feature-pill.is-enabled[b-yusdp2nh7f] {
    border-color: var(--tdl-success-soft-border);
    background: var(--tdl-success-soft);
    color: var(--tdl-success);
}

.module-feature-pill.is-disabled[b-yusdp2nh7f] {
    opacity: 0.76;
}

.module-actions[b-yusdp2nh7f] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.admin-split-panel[b-yusdp2nh7f] {
    display: grid;
    grid-template-columns: minmax(260px, 0.34fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.admin-sidebar-panel[b-yusdp2nh7f],
.admin-content-panel[b-yusdp2nh7f] {
    min-width: 0;
}

.admin-role-list[b-yusdp2nh7f] {
    display: grid;
    gap: 0.55rem;
}

.admin-role-button[b-yusdp2nh7f] {
    width: 100%;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    padding: 0.8rem 0.9rem;
    background: var(--tdl-surface);
    color: var(--tdl-text-primary);
    text-align: left;
    box-shadow: var(--tdl-shadow-sm);
}

.admin-role-button:hover[b-yusdp2nh7f] {
    border-color: var(--tdl-primary-soft-border);
    background: var(--tdl-primary-soft);
}

.admin-role-button.is-active[b-yusdp2nh7f] {
    border-color: var(--tdl-primary);
    background: var(--tdl-primary-soft);
    box-shadow: 0 12px 24px rgba(37, 99, 235, 0.1);
}

.role-permission-count[b-yusdp2nh7f] {
    margin-top: 0.45rem;
    color: var(--tdl-primary-hover);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.permissions-table-wrap[b-yusdp2nh7f] {
    max-height: 520px;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
}

.permission-matrix[b-yusdp2nh7f] {
    margin-bottom: 0;
}

.permission-matrix thead th[b-yusdp2nh7f] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--tdl-surface-soft);
    white-space: nowrap;
}

.permission-matrix th:not(:first-child)[b-yusdp2nh7f],
.permission-matrix td:not(:first-child)[b-yusdp2nh7f] {
    text-align: center;
}

/*
   Cu paisprezece coloane de acțiuni matricea derulează pe orizontală, iar prima coloană este exact
   contextul care se pierde: fără ea, un rând de casete nu spune la ce funcționalitate se referă.
   Rămâne lipită la stânga, cu z-index sub antet ca intersecția să nu acopere titlul coloanei.
*/
.permission-matrix th:first-child[b-yusdp2nh7f],
.permission-matrix td:first-child[b-yusdp2nh7f] {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--tdl-surface);
    min-width: 12rem;
}

.permission-matrix thead th:first-child[b-yusdp2nh7f] {
    z-index: 2;
    background: var(--tdl-surface-soft);
}

/* Caseta este inline-flex, deci text-align nu o mișcă; centrarea se face pe celulă. */
.permission-matrix .permission-cell[b-yusdp2nh7f] {
    padding-inline: 0.4rem;
}

.permission-matrix .permission-cell[b-yusdp2nh7f]  .app-check {
    justify-content: center;
    width: 100%;
}

.admin-table[b-yusdp2nh7f] {
    margin-bottom: 0;
}

.invitation-token[b-yusdp2nh7f] {
    display: inline-block;
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

@media (max-width: 1100px) {
    .institution-admin-topline[b-yusdp2nh7f] {
        align-items: stretch;
        flex-direction: column;
    }

    .institution-admin-summary[b-yusdp2nh7f] {
        justify-content: flex-start;
    }

    .module-toggle-grid[b-yusdp2nh7f],
    .admin-split-panel[b-yusdp2nh7f] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .institution-admin-topline[b-yusdp2nh7f] {
        padding: 0.8rem;
    }

    .institution-admin-identity[b-yusdp2nh7f] {
        align-items: flex-start;
    }

    .institution-admin-summary[b-yusdp2nh7f],
    .admin-summary-chip[b-yusdp2nh7f],
    .module-actions[b-yusdp2nh7f],
    .module-actions .btn[b-yusdp2nh7f] {
        width: 100%;
    }

    .admin-summary-chip[b-yusdp2nh7f] {
        min-width: 0;
    }

    .institution-admin-nav a[b-yusdp2nh7f] {
        flex: 1 1 auto;
        justify-content: center;
    }
}

/* ── Institution logo ───────────────────────────────────────────────────────────────────────────
   The preview is a fixed frame the image is contained inside, never cropped or stretched, so the
   operator sees the same proportions the printed document will use. A checkered-free plain surface
   keeps a transparent PNG readable without pretending it has a white background.
*/
.institution-logo-panel[b-yusdp2nh7f] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}

.institution-logo-preview[b-yusdp2nh7f] {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 180px;
    height: 96px;
    padding: .5rem;
    border: 1px dashed #cbd5e1;
    border-radius: .5rem;
    background: #fff;
}

    .institution-logo-preview img[b-yusdp2nh7f] {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
    }

.institution-logo-empty[b-yusdp2nh7f] {
    color: #94a3b8;
    font-size: .85rem;
}

.institution-logo-actions[b-yusdp2nh7f] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

    .institution-logo-actions label.btn[b-yusdp2nh7f] {
        cursor: pointer;
    }

.form-grid[b-yusdp2nh7f] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    margin-bottom: 1.2rem;
}

.form-field[b-yusdp2nh7f] {
    min-width: 0;
}

.form-field--wide[b-yusdp2nh7f] {
    grid-column: 1 / -1;
}

.form-field--switch[b-yusdp2nh7f] {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-bottom: 0.15rem;
}

/* Rezultatul verificării IBAN, sub câmp: un rând care se rupe pe mobil, nu o casetă mare. */
.bank-account-iban-feedback[b-yusdp2nh7f] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.9rem;
    margin-top: 0.4rem;
    padding: 0.45rem 0.65rem;
    border-radius: var(--tdl-radius-md, 0.5rem);
    font-size: 0.85rem;
    overflow-wrap: anywhere;
}

.bank-account-iban-feedback--valid[b-yusdp2nh7f] {
    background: var(--tdl-success-soft);
    border: 1px solid var(--tdl-success-soft-border);
}

.bank-account-iban-feedback--invalid[b-yusdp2nh7f] {
    background: var(--tdl-danger-soft);
    color: var(--tdl-danger);
}

.bank-account-iban-feedback__ok[b-yusdp2nh7f] {
    color: var(--tdl-success);
    font-weight: 600;
}

.bank-account-iban-feedback__source[b-yusdp2nh7f] {
    flex-basis: 100%;
    color: var(--tdl-text-secondary);
}
/* /Pages/Institutions.razor.rz.scp.css */
.institutions-grid[b-eqlfzmxj5r] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1rem;
}

.institution-card[b-eqlfzmxj5r] {
    display: grid;
    gap: 1rem;
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    background: var(--tdl-surface);
    box-shadow: var(--tdl-shadow-sm);
    transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.institution-card:hover[b-eqlfzmxj5r] {
    transform: translateY(-1px);
    border-color: var(--tdl-primary-soft-border);
    box-shadow: var(--tdl-shadow);
}

.institution-card.is-selected[b-eqlfzmxj5r] {
    border-color: var(--tdl-success-soft-border);
    background: linear-gradient(135deg, var(--tdl-success-soft), var(--tdl-surface));
}

.institution-card-main[b-eqlfzmxj5r] {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    min-width: 0;
}

.institution-avatar[b-eqlfzmxj5r] {
    width: 2.8rem;
    height: 2.8rem;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--tdl-radius-lg);
    border: 1px solid var(--tdl-primary-soft-border);
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
    font-weight: 900;
    letter-spacing: 0.04em;
}

.institution-card-copy[b-eqlfzmxj5r] {
    min-width: 0;
}

.institution-card-title[b-eqlfzmxj5r] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
    color: var(--tdl-text-primary);
}

.institution-card-title strong[b-eqlfzmxj5r] {
    font-size: 1rem;
    font-weight: 900;
}

.institution-card-meta[b-eqlfzmxj5r] {
    margin-top: 0.35rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.8rem;
    color: var(--tdl-text-secondary);
    font-size: 0.86rem;
}

.institution-card-footer[b-eqlfzmxj5r] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--tdl-border);
}

@media (max-width: 640px) {
    .institutions-grid[b-eqlfzmxj5r] {
        grid-template-columns: 1fr;
    }

    .institution-card-footer[b-eqlfzmxj5r] {
        align-items: stretch;
        flex-direction: column;
    }

    .institution-card-footer .form-actions[b-eqlfzmxj5r],
    .institution-card-footer .btn[b-eqlfzmxj5r] {
        width: 100%;
    }
}
/* /Pages/InventoryCategories.razor.rz.scp.css */
/*
   Categorii gestiune - nomenclator list-first.

   Pagina folosea clase definite EXCLUSIV în InvoiceSeries.razor.css. Fiind stiluri scoped, ele se
   aplică doar elementelor randate de acea componentă, deci aici nu ajungeau niciodată: „grila" în
   două coloane nu exista, iar toolbar-ul se stivuia pe verticală, la lățime completă. De aici venea
   impresia de formular administrativ.

   Ce urmează sunt DOAR regulile proprii acestei pagini. Tabelul-card pe mobil (.tdl-card-grid),
   stările de rând (.tdl-grid-row), chip-urile de stare (.status-pill) și modalul vin din contractele
   globale și nu sunt redefinite aici.

   Fără culori noi: totul din tokenii TDL.
*/

/* ── Toolbar ───────────────────────────────────────────────────────────────
   Căutarea și filtrul de stare formează un singur rând. Filtrul își ia doar
   lățimea de care are nevoie - un select „Toate stările" pe toată lățimea era
   jumătate din spațiul vertical pierdut înainte de a vedea datele. */
.category-toolbar[b-mmt4p3yz0b] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.9rem;
}

.category-toolbar__search[b-mmt4p3yz0b] {
    flex: 1 1 18rem;
    min-width: 0;
}

.category-toolbar__filter[b-mmt4p3yz0b] {
    flex: 0 0 auto;
    width: auto;
    min-width: 11rem;
}

/* ── Tabel ─────────────────────────────────────────────────────────────────
   Patru coloane: codul este identitatea, deci primește lățime fixă și accent;
   denumirea ia restul. Acțiunile stau la dreapta, strânse. */
.category-table[b-mmt4p3yz0b] {
    table-layout: auto;
}

.category-table th[b-mmt4p3yz0b] {
    white-space: nowrap;
}

.category-code-cell[b-mmt4p3yz0b] {
    width: 1%;
    white-space: nowrap;
    font-weight: 700;
    color: var(--tdl-text-primary);
}

.category-table td[b-mmt4p3yz0b],
.category-table th[b-mmt4p3yz0b] {
    vertical-align: middle;
}

/* Coloana de acțiuni nu are de ce să crească; pe desktop rămâne cât butonul. */
.category-table td.tdl-card-grid-actions[b-mmt4p3yz0b] {
    width: 1%;
    white-space: nowrap;
}

/* ── Empty state compact ───────────────────────────────────────────────────
   Nomenclatorul gol este un punct de plecare, nu o eroare: două rânduri de text
   și acțiunea, nu un dreptunghi punctat de 200px. */
.category-empty[b-mmt4p3yz0b] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 1.1rem 1.15rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
}

.category-empty__title[b-mmt4p3yz0b] {
    margin: 0;
    color: var(--tdl-text-primary);
    font-size: 0.95rem;
    font-weight: 700;
}

.category-empty__text[b-mmt4p3yz0b] {
    margin: 0;
    color: var(--tdl-text-secondary);
    font-size: 0.86rem;
}

.category-empty .btn[b-mmt4p3yz0b] {
    margin-top: 0.5rem;
}

/* ── Modal ─────────────────────────────────────────────────────────────────
   Două câmpuri scurte pe un rând, comutatorul de stare pe toată lățimea.

   `align-items: start` nu este cosmetic, este ceea ce ține cele două controale la
   aceeași înălțime. Contractul global `.form-field` este `display: grid`, iar un
   grid item se întinde implicit pe toată înălțimea rândului. Cod are hint dedesubt,
   Denumire nu, deci rândul este înalt cât Cod + hint, iar rândurile auto din
   interiorul lui Denumire se întindeau ca să umple diferența: input-ul ajungea
   53.9px față de 39.2px și arăta ca un textarea. Aliniat la start, fiecare câmp
   este înalt cât conținutul lui, iar ambele input-uri rămân single-line pe
   min-height-ul din `.form-control`. */
.category-form-grid[b-mmt4p3yz0b] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem 1.1rem;
    align-items: start;
}

.category-form-grid .form-field--wide[b-mmt4p3yz0b] {
    grid-column: 1 / -1;
}

/*
   Ștergerea nu stă lângă Salvează. Împinsă la capătul barei cu margin-left, nu
   cu proprietatea CSS `order`: ordinea DOM rămâne ordinea vizuală, așa cum cere
   contractul action bar-ului.
*/
.category-modal-danger[b-mmt4p3yz0b] {
    margin-left: auto;
}

/* ── Responsive ────────────────────────────────────────────────────────────
   Sub 900px toolbar-ul se stivuiește; tabelul devine card prin contractul
   global .tdl-card-grid la 767.98px, deci aici nu se redefinește nimic din el. */
@media (max-width: 900px) {
    .category-toolbar[b-mmt4p3yz0b] {
        flex-direction: column;
        align-items: stretch;
    }

    .category-toolbar__search[b-mmt4p3yz0b],
    .category-toolbar__filter[b-mmt4p3yz0b] {
        flex: 1 1 auto;
        width: 100%;
        min-width: 0;
    }

    .category-form-grid[b-mmt4p3yz0b] {
        grid-template-columns: minmax(0, 1fr);
    }

    /* Pe telefon Ștergerea ocupă un rând al ei, sub acțiunile principale. */
    .category-modal-danger[b-mmt4p3yz0b] {
        margin-left: 0;
        width: 100%;
    }
}

/* Codul devine titlul cardului; eticheta „COD" nu mai aduce nimic. */
@media (max-width: 767.98px) {
    .category-table .category-code-cell[b-mmt4p3yz0b] {
        width: auto;
        justify-content: flex-start;
        font-size: 1rem;
    }

    .category-table .category-code-cell[b-mmt4p3yz0b]::before {
        content: none;
    }
}

/*
    Tree affordances for the nomenclature grid.

    The indent itself is an inline style, because the depth is data. What lives here is everything
    that does not vary per row: the branch mark, the child badge, and the path line that carries the
    structure once the indent is gone - on a phone, where the grid becomes cards, and in a filtered
    list, where a match can appear without its parent above it.
*/
.category-name-cell[b-mmt4p3yz0b] {
    display: flex;
    align-items: center;
    gap: .4rem;
    min-width: 0;
}

.category-tree-branch[b-mmt4p3yz0b] {
    color: var(--tdl-text-muted);
    font-size: .85rem;
    line-height: 1;
    flex: none;
}

.category-name[b-mmt4p3yz0b] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.category-child-count[b-mmt4p3yz0b] {
    flex: none;
    min-width: 1.25rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: var(--tdl-surface-soft);
    border: 1px solid var(--tdl-border);
    color: var(--tdl-text-secondary);
    font-size: .72rem;
    font-weight: 700;
    text-align: center;
}

.category-path[b-mmt4p3yz0b] {
    margin-top: .15rem;
    color: var(--tdl-text-muted);
    font-size: .75rem;
    overflow-wrap: anywhere;
}

/*
    On a phone the grid is a stack of cards, so a left inset would only eat width without conveying
    nesting - the path line under the name does that job instead.
*/
@media (max-width: 767.98px) {
    .category-name-cell[b-mmt4p3yz0b] {
        padding-left: 0 !important;
    }

    .category-tree-branch[b-mmt4p3yz0b] {
        display: none;
    }
}

.action-row[b-mmt4p3yz0b] {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: nowrap;
}

    .action-row .btn[b-mmt4p3yz0b] {
        display: inline-block;
        font-weight: 400;
        text-align: center;
        vertical-align: middle;
        cursor: pointer;
        padding: 0.375rem 0.75rem;
        font-size: 0.875rem;
        line-height: 1.5;
        border-radius: 0.25rem;
        border: 1px solid transparent;
        transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
        text-decoration: none;
        background-color: transparent;
        user-select: none;
        min-height: 31px;
    }

    /* Edit button - outline secondary */
    .action-row .btn-outline-secondary[b-mmt4p3yz0b] {
        color: #6c757d;
        border-color: #6c757d;
        background-color: transparent;
    }

        .action-row .btn-outline-secondary:hover[b-mmt4p3yz0b] {
            color: #fff;
            background-color: #6c757d;
            border-color: #6c757d;
        }

        .action-row .btn-outline-secondary:active[b-mmt4p3yz0b] {
            color: #fff;
            background-color: #5a6268;
            border-color: #545b62;
        }

    /* Subcategory button - outline primary */
    .action-row .btn-outline-primary[b-mmt4p3yz0b] {
        color: #0d6efd;
        border-color: #0d6efd;
        background-color: transparent;
    }

        .action-row .btn-outline-primary:hover[b-mmt4p3yz0b] {
            color: #fff;
            background-color: #0d6efd;
            border-color: #0d6efd;
        }

        .action-row .btn-outline-primary:active[b-mmt4p3yz0b] {
            color: #fff;
            background-color: #0b5ed7;
            border-color: #0a58ca;
        }

    /* Small button size */
    .action-row .btn-sm[b-mmt4p3yz0b] {
        padding: 0.25rem 0.5rem;
        font-size: 0.75rem;
        line-height: 1.5;
        border-radius: 0.2rem;
    }

    /* Make sure buttons have proper background and border on focus */
    .action-row .btn:focus[b-mmt4p3yz0b] {
        outline: 0;
        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    }

    .action-row .btn-outline-secondary:focus[b-mmt4p3yz0b] {
        box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.25);
    }

    .action-row .btn-outline-primary:focus[b-mmt4p3yz0b] {
        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    }
/* /Pages/InvoicePrint.razor.rz.scp.css */
/* =================================================================================================
   Print page chrome.

   The page hosts one of three invoice templates and owns nothing of the document itself: each template
   carries its own scoped stylesheet, so the Modern rules and the fiscal form's rules cannot reach
   each other. What is left here is the toolbar that must never be printed.
   ================================================================================================= */

.print-loading[b-oy6yati42a] {
    padding: 3rem;
    text-align: center;
    color: #64748b;
    font-size: 1rem;
}

.print-toolbar[b-oy6yati42a] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .75rem 1.5rem;
    background: var(--surface, #fff);
    border-bottom: 1px solid var(--border, #d9e2ec);
    position: sticky;
    top: 0;
    z-index: 10;
}

.print-toolbar-title[b-oy6yati42a] {
    font-weight: 700;
    font-size: .95rem;
    color: var(--text-primary, #1e2a37);
}

.print-toolbar-actions[b-oy6yati42a] {
    display: flex;
    gap: .5rem;
}

.print-footer[b-oy6yati42a] {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    justify-content: space-between;
    width: min(100%, 210mm);
    margin: 0 auto;
    padding: 2mm 0 4mm;
    color: #64748b;
    font: 10px/1.3 'Segoe UI', Arial, sans-serif;
}

/* Mențiunea juridică și rândul de provenienţă, unul sub altul, în stânga benzii. */
.print-footer-note[b-oy6yati42a] {
    display: flex;
    flex-direction: column;
    gap: 0.4mm;
    min-width: 0;
}

/*
   BT-33. Aceeași familie și aceeași culoare ca rândul de brand de sub ea, un pic mai mică: este o
   notă, nu un titlu, și nu poartă etichetă. `pre-wrap` pentru că textul vine dintr-un câmp liber în
   care operatorul poate apăsa Enter.
*/
.print-footer-legal[b-oy6yati42a] {
    font-size: 9px;
    line-height: 1.25;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.print-footer-generated[b-oy6yati42a] {
    margin-left: auto;
    text-align: right;
}

@media print {
    @page { size: A4 portrait; margin: 0 0 6mm; }
    .no-print[b-oy6yati42a] {
        display: none !important;
    }

    html[b-oy6yati42a], body[b-oy6yati42a] {
        background: #fff !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Scoped CSS cannot recolour the real body element. This owned surface covers the printable A4
       content so the app shell's pale-blue screen background cannot leak into a saved PDF. */
    .print-surface[b-oy6yati42a] {
        min-height: 0;
        background: #fff;
    }

    /* In-flow footer: its full height participates in pagination. */
    .print-footer[b-oy6yati42a] {
        width: 180mm;
        padding: 2mm 0 4mm;
        font-size: 2.5mm;
        line-height: 1.25;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .print-footer-legal[b-oy6yati42a] {
        font-size: 2.2mm;
        line-height: 1.25;
    }
}
/* /Pages/Invoices.razor.rz.scp.css */
.message-stack[b-ufmeqc3odx] {
    display: grid;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.page-chip[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    padding: 0.65rem 0.9rem;
    border-radius: var(--tdl-radius-pill);
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    color: var(--tdl-text-primary);
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.04);
}

.invoice-stats-grid[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.stat-tile[b-ufmeqc3odx] {
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    padding: 1rem 1.1rem;
    box-shadow: var(--tdl-shadow-sm);
}

.stat-label[b-ufmeqc3odx] {
    color: #64748b;
    font-size: 0.86rem;
    font-weight: 700;
    margin-bottom: 0.45rem;
}

.stat-value[b-ufmeqc3odx] {
    color: #0f172a;
    font-size: 1.4rem;
    font-weight: 800;
    line-height: 1.1;
}

.stat-value--text[b-ufmeqc3odx] {
    font-size: 1rem;
    line-height: 1.25;
}

.invoice-page-grid[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: minmax(700px, 1fr) minmax(360px, 0.42fr);
    gap: 1.15rem;
    align-items: start;
}

.invoice-page-grid--compact[b-ufmeqc3odx] {
    gap: 0.85rem;
}

.invoice-list-column[b-ufmeqc3odx] {
    order: 1;
    min-width: 0;
}

.invoice-form-column[b-ufmeqc3odx] {
    order: 2;
    min-width: 0;
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column[b-ufmeqc3odx] {
    position: sticky;
    top: 5.2rem;
    max-height: calc(100vh - 6.2rem);
    overflow: hidden;
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column > .section-card[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 6.2rem);
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column > .section-card > .section-card-body[b-ufmeqc3odx] {
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    scrollbar-color: rgba(74, 116, 148, 0.48) rgba(226, 221, 213, 0.62);
    scrollbar-width: thin;
    scrollbar-gutter: stable;
    padding-right: 0.35rem;
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column > .section-card > .section-card-body[b-ufmeqc3odx]::-webkit-scrollbar {
    width: 10px;
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column > .section-card > .section-card-body[b-ufmeqc3odx]::-webkit-scrollbar-track {
    background: rgba(226, 221, 213, 0.62);
    border-radius: 999px;
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column > .section-card > .section-card-body[b-ufmeqc3odx]::-webkit-scrollbar-thumb {
    background: rgba(74, 116, 148, 0.62);
    border-radius: 999px;
}

.invoice-page-grid--create[b-ufmeqc3odx] {
    grid-template-columns: minmax(0, 1fr);
    justify-content: stretch;
}

.invoice-page-grid--create .invoice-form-column[b-ufmeqc3odx] {
    width: 100%;
    max-width: none;
}

.invoice-page-grid--create .form-grid[b-ufmeqc3odx] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1100px) {
    .invoice-page-grid--create .form-grid[b-ufmeqc3odx] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .invoice-page-grid--create .form-grid[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }
}

.invoice-page-grid--create .invoice-form-column[b-ufmeqc3odx] {
    order: 1;
}

.form-grid[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    margin-bottom: 1rem;
}

.form-grid--invoice-header[b-ufmeqc3odx] {
    align-items: start;
}

.form-field--client-data[b-ufmeqc3odx] {
    min-width: 0;
}

.form-field--issue-date[b-ufmeqc3odx] {
    align-self: start;
}

.invoice-editor-summary[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    padding: 0.85rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface-soft);
    margin-bottom: 1rem;
}

.invoice-editor-summary div[b-ufmeqc3odx] {
    min-width: 0;
}

.invoice-editor-summary span[b-ufmeqc3odx] {
    display: block;
    color: var(--tdl-text-muted);
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.25rem;
}

.invoice-editor-summary strong[b-ufmeqc3odx] {
    display: block;
    color: var(--tdl-text-primary);
    font-size: 0.94rem;
    overflow-wrap: anywhere;
}

.form-field[b-ufmeqc3odx] {
    min-width: 0;
}

.lines-toolbar[b-ufmeqc3odx] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.lines-toolbar-actions[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.placeholder-help[b-ufmeqc3odx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.75rem;
    align-items: center;
    padding: 0.75rem 0.9rem;
    margin-bottom: 0.75rem;
    border: 1px solid var(--tdl-primary-soft-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-primary-soft);
    color: var(--tdl-text-primary);
    font-size: 0.86rem;
}

.placeholder-help strong[b-ufmeqc3odx] {
    flex-basis: 100%;
}

.bulk-discount-panel[b-ufmeqc3odx] {
    padding: 0.75rem 0.9rem;
    margin-bottom: 0.75rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
}

.bulk-discount-panel__row[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.35rem;
}

.bulk-discount-panel__row input[b-ufmeqc3odx] {
    max-width: 7rem;
}

.bulk-discount-panel__suffix[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
}

.lines-title[b-ufmeqc3odx] {
    font-size: 1rem;
    font-weight: 800;
    color: #0f172a;
}

.lines-subtitle[b-ufmeqc3odx] {
    margin-top: 0.25rem;
    color: #64748b;
    line-height: 1.5;
}

.lines-table-wrapper[b-ufmeqc3odx] {
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    overflow: auto;
    margin-bottom: 1.2rem;
    max-width: 100%;
}

/*
   Band, ink and rules come from `.tdl-table--column-separated` in app.css; what stays here is the
   sizing that really is specific to the invoice lines.
*/
.lines-table thead th[b-ufmeqc3odx] {
    font-size: 0.82rem;
    white-space: nowrap;
    padding: 0.5rem 0.6rem;
}

.lines-table tbody td[b-ufmeqc3odx] {
    vertical-align: middle;
    padding: 0.5rem 0.6rem;
}

/* The description is what the row is about, so it takes whatever the fixed columns leave. */
.lines-table th:first-child[b-ufmeqc3odx],
.lines-table td:first-child[b-ufmeqc3odx] {
    min-width: 12rem;
}

.lines-col-actions[b-ufmeqc3odx] {
    width: 130px;
    white-space: nowrap;
}

.lines-col-small[b-ufmeqc3odx] {
    width: 110px;
}

.lines-col-medium[b-ufmeqc3odx] {
    width: 150px;
}

.lines-col-action[b-ufmeqc3odx] {
    width: 100px;
}

.line-unit-cell[b-ufmeqc3odx] {
    font-family: 'Consolas', 'SF Mono', monospace;
    font-size: 0.83rem;
    color: #475569;
    font-weight: 600;
    white-space: nowrap;
    width: 60px;
}

.line-unit-input[b-ufmeqc3odx] {
    width: 72px;
    min-width: 60px;
    font-family: 'Consolas', 'SF Mono', monospace;
    font-size: 0.83rem;
    padding: 0.3rem 0.5rem;
}

.product-picker-select[b-ufmeqc3odx] {
    font-size: 0.8rem;
    color: var(--tdl-text-secondary);
    border-color: var(--tdl-border-strong);
    background: var(--tdl-surface-soft);
}

.line-total-cell[b-ufmeqc3odx] {
    font-weight: 800;
    color: var(--tdl-text-primary);
    white-space: nowrap;
}

.totals-panel[b-ufmeqc3odx] {
    background: var(--tdl-surface-soft);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    padding: 1rem 1.1rem;
    display: grid;
    gap: 0.75rem;
    margin-bottom: 1.2rem;
}

.totals-row[b-ufmeqc3odx] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    color: #334155;
}

.totals-row-grand[b-ufmeqc3odx] {
    padding-top: 0.75rem;
    border-top: 1px solid #dbe3ee;
    font-size: 1.08rem;
    color: #0f172a;
}

.form-actions[b-ufmeqc3odx] {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.sticky-action-bar[b-ufmeqc3odx] {
    justify-content: space-between;
}

.sticky-action-bar--totals[b-ufmeqc3odx] {
    position: sticky;
    bottom: 0;
    z-index: 5;
    margin-top: 0.85rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--tdl-primary-soft-border, #bfd1df);
    border-left: 4px solid var(--tdl-primary, var(--tdl-primary));
    border-radius: var(--tdl-radius-md);
    background: rgba(253, 252, 251, 0.96);
    box-shadow: 0 -10px 24px rgba(43, 50, 59, 0.08);
    backdrop-filter: blur(6px);
}

.sticky-action-bar > div:first-child[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
    min-width: 10rem;
}

.sticky-action-bar > div:last-child[b-ufmeqc3odx] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.65rem;
}

.invoice-guidance-stack[b-ufmeqc3odx] {
    display: grid;
    gap: 0.6rem;
    margin-bottom: 0.85rem;
}

.client-picker[b-ufmeqc3odx] {
    position: relative;
}

.client-picker-row[b-ufmeqc3odx],
.client-fiscal-row[b-ufmeqc3odx] {
    display: flex;
    gap: 0.5rem;
    align-items: stretch;
}

.client-edit-button[b-ufmeqc3odx] {
    flex: 0 0 auto;
    white-space: nowrap;
    min-width: 9.5rem;
}

.client-suggestions[b-ufmeqc3odx] {
    position: absolute;
    z-index: 20;
    top: calc(100% + 0.35rem);
    left: 0;
    right: 0;
    display: grid;
    gap: 0.2rem;
    padding: 0.35rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface);
    box-shadow: var(--tdl-shadow-md);
}

.client-suggestion[b-ufmeqc3odx] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    border: 0;
    border-radius: 9px;
    background: transparent;
    padding: 0.55rem 0.65rem;
    text-align: left;
    color: var(--tdl-text-primary);
}

.client-suggestion:hover[b-ufmeqc3odx],
.client-suggestion.is-active[b-ufmeqc3odx] {
    background: var(--tdl-primary-soft);
}

.client-suggestion span[b-ufmeqc3odx] {
    font-weight: 750;
}

.client-suggestion small[b-ufmeqc3odx],
.client-selected-hint[b-ufmeqc3odx] {
    color: var(--tdl-text-secondary);
}

.client-selected-hint[b-ufmeqc3odx] {
    margin-top: 0.35rem;
    font-size: 0.84rem;
}

.modal-backdrop-custom[b-ufmeqc3odx] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(15, 23, 42, 0.35);
}

.modal-panel-custom[b-ufmeqc3odx] {
    position: fixed;
    z-index: 1050;
    top: 50%;
    left: 50%;
    width: min(820px, calc(100vw - 2rem));
    max-height: calc(100vh - 3rem);
    overflow: auto;
    transform: translate(-50%, -50%);
    padding: 1.2rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    background: var(--tdl-surface);
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.22);
}

.modal-panel-custom--small[b-ufmeqc3odx] {
    width: min(620px, calc(100vw - 2rem));
}

.modal-panel-header[b-ufmeqc3odx] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.modal-panel-title[b-ufmeqc3odx] {
    font-size: 1.12rem;
    font-weight: 850;
    color: var(--tdl-text-primary);
}

.modal-panel-subtitle[b-ufmeqc3odx] {
    margin-top: 0.25rem;
    color: var(--tdl-text-secondary);
    font-size: 0.9rem;
}

.client-modal-grid[b-ufmeqc3odx] {
    margin-bottom: 1rem;
}

.modal-section-title[b-ufmeqc3odx] {
    margin: 0.2rem 0 -0.15rem;
    padding-top: 0.35rem;
    color: var(--tdl-primary-hover);
    font-size: 0.74rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.empty-state[b-ufmeqc3odx] {
    padding: 1rem 0;
    color: #64748b;
}

.invoice-list-table tbody td[b-ufmeqc3odx] {
    padding-top: 0.72rem;
    padding-bottom: 0.72rem;
}

.invoice-row-actions[b-ufmeqc3odx] {
    min-width: 260px;
}

.invoice-row-actions .btn[b-ufmeqc3odx] {
    margin: 0.12rem;
}

.invoice-number-cell[b-ufmeqc3odx] {
    font-weight: 800;
    color: #0f172a;
}

.status-pill[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    max-width: 100%;
    padding: .25rem .80rem;
    border: 1px solid var(--tdl-border);
    border-radius: 999px;
    background: var(--tdl-surface-muted);
    color: var(--tdl-text-secondary);
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    min-width: 95px;
    text-align: center;
}

.status-pill--draft[b-ufmeqc3odx]     { background: var(--tdl-warning-soft); color: #7a4a0f; }
.status-pill--issued[b-ufmeqc3odx]    { background: var(--tdl-primary-soft); color: var(--tdl-primary-hover); }
.status-pill--partial[b-ufmeqc3odx]   { background: #f7dfc3; color: #8c4b16; }
.status-pill--paid[b-ufmeqc3odx]      { background: var(--tdl-success-soft); color: var(--tdl-success); }
.status-pill--cancelled[b-ufmeqc3odx] { background: var(--tdl-danger-soft); color: var(--tdl-danger); }
.status-pill--storno[b-ufmeqc3odx]    { background: var(--tdl-violet-soft); color: var(--tdl-violet); }
.status-pill--storno-cancelled[b-ufmeqc3odx] { background: var(--tdl-danger-soft); color: var(--tdl-violet); }

/* ── Payments section ────────────────────────── */

.payments-section[b-ufmeqc3odx] {
    margin-top: 1.4rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--tdl-border);
}

.payments-section-title[b-ufmeqc3odx] {
    font-size: 1rem;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 0.9rem;
}

.payments-table-wrapper[b-ufmeqc3odx] {
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    overflow: hidden;
    margin-bottom: 0.9rem;
}

.payments-table thead th[b-ufmeqc3odx] {
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-secondary);
    font-size: 0.83rem;
    font-weight: 800;
    border-bottom: 1px solid var(--tdl-border);
    white-space: nowrap;
    padding: 0.55rem 0.75rem;
}

.payments-table tbody td[b-ufmeqc3odx] {
    font-size: 0.88rem;
    padding: 0.55rem 0.75rem;
}

.payment-amount-cell[b-ufmeqc3odx] {
    font-weight: 800;
    color: #0f172a;
    white-space: nowrap;
}

.payment-summary[b-ufmeqc3odx] {
    background: var(--tdl-surface-soft);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    padding: 0.85rem 1rem;
    display: grid;
    gap: 0.6rem;
    margin-bottom: 1rem;
    font-size: 0.9rem;
}

.payment-summary-row[b-ufmeqc3odx] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #334155;
}

.payment-summary-balance[b-ufmeqc3odx] {
    padding-top: 0.5rem;
    border-top: 1px solid #dbe3ee;
    font-weight: 700;
}

.payment-paid-amount[b-ufmeqc3odx] {
    color: #166534;
}

.balance--zero[b-ufmeqc3odx] { color: #166534; }
.balance--due[b-ufmeqc3odx]  { color: #991b1b; }

.required-star[b-ufmeqc3odx] {
    color: #dc2626;
    font-weight: 700;
}

.payment-entry-action[b-ufmeqc3odx] {
    display: flex;
    justify-content: flex-end;
    margin-top: .75rem;
}

.payment-paid-badge[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 1rem;
    background: #dcfce7;
    color: #166534;
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 800;
    margin-top: 0.25rem;
}

.detail-actions[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.65rem;
    margin-bottom: 1rem;
    padding: 0.75rem;
    background: var(--tdl-surface-soft);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
}

.detail-action-group[b-ufmeqc3odx] {
    display: grid;
    gap: 0.5rem;
    min-width: 0;
}

.detail-action-group--document[b-ufmeqc3odx],
.detail-action-group--secondary[b-ufmeqc3odx] {
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
}

.detail-action-group--secondary[b-ufmeqc3odx] {
    padding-top: 0.65rem;
    border-top: 1px solid var(--tdl-border);
}

.detail-action-group .btn[b-ufmeqc3odx] {
    width: 100%;
    min-height: 2.15rem;
    white-space: normal;
}

.detail-action-group--primary .btn[b-ufmeqc3odx] {
    min-height: 2.45rem;
    font-weight: 800;
    box-shadow: 0 8px 18px rgba(22, 101, 52, 0.16);
}

.detail-grid[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
    margin-bottom: 1.2rem;
}

.detail-grid.linked-documents-card[b-ufmeqc3odx] {
    margin-bottom: 0.9rem;
}

.detail-field[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.65rem 0.75rem;
    background: var(--tdl-surface-soft);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
}

.detail-label[b-ufmeqc3odx] {
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.detail-value[b-ufmeqc3odx] {
    color: #0f172a;
    font-weight: 600;
}

.invoice-row[b-ufmeqc3odx] {
    cursor: pointer;
    transition: background 0.12s, box-shadow 0.12s;
}

@media (max-width: 1200px) {
    .invoice-page-grid[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .invoice-stats-grid[b-ufmeqc3odx] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .form-grid[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }

    .invoice-editor-summary[b-ufmeqc3odx] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lines-toolbar[b-ufmeqc3odx] {
        flex-direction: column;
        align-items: stretch;
    }
}

@media (max-width: 600px) {
    .invoice-stats-grid[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }

    .invoice-editor-summary[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }
}

/* ── Invoice filter bar ─────────────────────────────────────── */
.invoice-filter-bar[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin-bottom: .75rem;
}

/* Search takes the row; the sort reset sits beside it at its natural width instead of stretching. */
.invoice-search-row[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.invoice-search[b-ufmeqc3odx] {
    flex: 1 1 auto;
    min-width: 0;
}

.invoice-search-row .sort-reset-btn[b-ufmeqc3odx] {
    flex: 0 0 auto;
    white-space: nowrap;
}

/*
   The operational row. Two flex items only - the status tabs and the tools (period + SPV) - and
   neither may shrink below its content: when they no longer fit side by side the tools move to a
   line of their own as one piece, and the tabs wrap between tabs, never inside one. Every control
   shares one height (--invoice-toolbar-control-height) so a wrapped row still lines up.
*/
.invoice-toolbar[b-ufmeqc3odx] {
    --invoice-toolbar-control-height: 2.1rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem .75rem;
    padding-bottom: .75rem;
    margin-bottom: .9rem;
    border-bottom: 1px solid var(--tdl-border);
}

/* The shared .process-tabs draws its own rule and spacing; here the toolbar owns them. */
.invoice-status-tabs[b-ufmeqc3odx] {
    flex: 0 1 auto;
    min-width: 0;
    gap: .4rem;
    margin: 0;
    padding: 0;
    border-bottom: 0;
}

.invoice-status-tabs .process-tab[b-ufmeqc3odx] {
    min-height: var(--invoice-toolbar-control-height);
    white-space: nowrap;
}

/* On a line of its own the period stays left and SPV / ANAF keeps the right edge. */
.invoice-toolbar-tools[b-ufmeqc3odx] {
    flex: 1 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem .75rem;
}

/* Sized like the other toolbar actions, not like a badge: same height and radius as any .btn-sm,
   the icon aligned optically with the label rather than sitting on the text baseline. */
.invoice-spv-sync-toggle[b-ufmeqc3odx] {
    margin-left: auto;
    white-space: nowrap;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.invoice-toolbar .invoice-spv-sync-toggle[b-ufmeqc3odx] {
    min-height: var(--invoice-toolbar-control-height);
}

/*
   Period filter. The two fields are TdlDateInput, so their <input> carries that component's scope
   and is reached through ::deep. The field is sized for "zz/ll/aaaa" plus the calendar button and
   does not shrink: a crushed date is worse than one that moves to the next line.
*/
.date-filter-group[b-ufmeqc3odx] {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: .4rem;
}

.date-filter-item[b-ufmeqc3odx] {
    flex: 0 0 auto;
    width: 8.5rem;
}

.date-filter-item[b-ufmeqc3odx]  input[type="text"] {
    width: 100%;
    height: var(--invoice-toolbar-control-height);
    font-size: .85rem;
}

.date-separator[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
}

.toggle-container[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    height: var(--invoice-toolbar-control-height);
    margin-left: .15rem;
    padding: 0 0 0 .6rem;
    border: 0;
    border-left: 1px solid var(--tdl-border);
    background: transparent;
    cursor: pointer;
    user-select: none;
}

.toggle-container:focus-visible[b-ufmeqc3odx] {
    outline: 2px solid var(--tdl-primary);
    outline-offset: 2px;
    border-radius: var(--tdl-radius-sm, 4px);
}

/* The shared .app-switch-track keys its "on" state off a checkbox; this switch is a button, so the
   state comes from a class. Same colours and thumb travel as the shared switch. */
.app-switch-track--active[b-ufmeqc3odx] {
    background: var(--tdl-primary);
    border-color: var(--tdl-primary);
}

.app-switch-track--active .app-switch-thumb[b-ufmeqc3odx] {
    left: calc(100% - 1.05rem - 2px);
}

.toggle-container:hover .app-switch-track[b-ufmeqc3odx] {
    box-shadow: 0 0 0 3px rgba(74, 116, 148, 0.18);
}

.invoice-spv-sync-icon[b-ufmeqc3odx] {
    flex: 0 0 auto;
    opacity: .85;
}

.invoice-spv-sync-toggle:hover .invoice-spv-sync-icon[b-ufmeqc3odx],
.invoice-spv-sync-toggle[aria-expanded="true"] .invoice-spv-sync-icon[b-ufmeqc3odx] {
    opacity: 1;
}

/* ── Paginare listă facturi ─────────────────────────────────────
   Paginare, nu virtualizare: rândurile au înălțimi variabile pentru că numele
   de client se rupe pe 2-3 linii, iar o listă virtualizată ar trebui să le
   măsoare din mers. O pagină mică și fixă este predictibilă. */
.invoice-pagination[b-ufmeqc3odx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem .9rem;
    margin-top: .75rem;
    padding-top: .7rem;
    border-top: 1px solid var(--tdl-border);
}

.invoice-pagination__range[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
    font-size: .82rem;
    white-space: nowrap;
}

.invoice-pagination__controls[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    gap: .25rem;
    flex-wrap: wrap;
}

.invoice-pagination__btn[b-ufmeqc3odx] {
    min-width: 2rem;
    height: 2rem;
    padding: 0 .5rem;
    border: 1px solid var(--tdl-border-strong);
    border-radius: var(--tdl-radius-sm);
    background: #fff;
    color: var(--tdl-text-secondary);
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.invoice-pagination__btn:hover:not(:disabled)[b-ufmeqc3odx] {
    border-color: var(--tdl-primary);
    color: var(--tdl-primary);
}

.invoice-pagination__btn:focus-visible[b-ufmeqc3odx] {
    outline: none;
    border-color: var(--tdl-primary);
    box-shadow: 0 0 0 3px var(--tdl-primary-soft);
}

/*
   The active page stays ACTIVE under the pointer. The hover rule above is more specific than a
   single class (:hover and :not() count too), so on its own it repainted the current page's text in
   the primary colour - on a primary background, i.e. invisible. Hover on the current page darkens
   the fill instead, with the same high-contrast text.
*/
.invoice-pagination__btn--active[b-ufmeqc3odx],
.invoice-pagination__btn--active:hover:not(:disabled)[b-ufmeqc3odx] {
    background: var(--tdl-primary);
    border-color: var(--tdl-primary);
    color: #fff;
}

.invoice-pagination__btn--active:hover:not(:disabled)[b-ufmeqc3odx] {
    background: var(--tdl-primary-hover);
    border-color: var(--tdl-primary-hover);
}

.invoice-pagination__btn:disabled[b-ufmeqc3odx] {
    opacity: .45;
    cursor: not-allowed;
}

.invoice-pagination__ellipsis[b-ufmeqc3odx] {
    padding: 0 .15rem;
    color: var(--tdl-text-subtle);
}

.invoice-pagination__size[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin: 0;
    color: var(--tdl-text-muted);
    font-size: .82rem;
    white-space: nowrap;
}

.invoice-pagination__size .form-select[b-ufmeqc3odx] {
    width: auto;
    min-width: 4.2rem;
}

/* Compact create-invoice composition. Kept at the end so it overrides the older shared editor
   dimensions without changing list/details layouts. */
@media (min-width: 1200px) {
    .invoice-page-grid--create .form-grid[b-ufmeqc3odx] {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 721px) and (max-width: 1199px) {
    .invoice-page-grid--create .form-grid[b-ufmeqc3odx] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.form-field--span-2[b-ufmeqc3odx] { grid-column: span 2; }

.invoice-page-grid--create[b-ufmeqc3odx]  .section-card-header {
    padding: 0.72rem 1rem 0.62rem;
}

.invoice-page-grid--create[b-ufmeqc3odx]  .section-card-subtitle {
    margin-top: 0.18rem;
    line-height: 1.3;
}

.invoice-page-grid--create[b-ufmeqc3odx]  .section-card-body {
    padding: 0.5rem 1rem 0.5rem;
}

.invoice-page-grid--create .form-grid[b-ufmeqc3odx] {
    gap: 0.55rem 0.7rem;
    margin-bottom: 0.55rem;
}

.invoice-page-grid--create .form-section-heading[b-ufmeqc3odx] {
    margin: 0.75rem 0 0.45rem;
}

.invoice-page-grid--create .form-label[b-ufmeqc3odx] { margin-bottom: 0.22rem; }

.invoice-page-grid--create .form-text[b-ufmeqc3odx],
.invoice-page-grid--create .next-number-hint[b-ufmeqc3odx],
.invoice-page-grid--create .client-selected-hint[b-ufmeqc3odx] {
    margin-top: 0.18rem;
    line-height: 1.25;
}

.invoice-additional-details[b-ufmeqc3odx] {
    margin: 0.15rem 0 0.35rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
}

.invoice-additional-details summary[b-ufmeqc3odx] {
    cursor: pointer;
    padding: 0.46rem 0.68rem;
    color: var(--tdl-text-primary);
    font-size: 0.82rem;
    font-weight: 750;
}

.invoice-additional-details summary span[b-ufmeqc3odx] {
    margin-left: 0.35rem;
    color: var(--tdl-text-muted);
    font-weight: 500;
}

.invoice-additional-details-body[b-ufmeqc3odx] { padding: 0 0.68rem 0.68rem; }
.invoice-page-grid--create .invoice-notes-input[b-ufmeqc3odx] { min-height: 54px; }

@media (max-width: 720px) {
    .form-field--span-2[b-ufmeqc3odx] { grid-column: span 1; }
    .invoice-create-meta-total[b-ufmeqc3odx] { width: 100%; margin-left: 0; }
    .invoice-page-grid--create[b-ufmeqc3odx]  .section-card-header,
    .invoice-page-grid--create[b-ufmeqc3odx]  .section-card-body {
        padding-left: 0.78rem;
        padding-right: 0.78rem;
    }
}

.invoice-create-meta[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.38rem;
    min-height: 2.25rem;
    margin-bottom: 0.55rem;
    padding: 0.42rem 0.75rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-muted);
    font-size: 0.82rem;
}

.invoice-create-meta strong[b-ufmeqc3odx] { color: var(--tdl-text-primary); }
.invoice-create-meta-total[b-ufmeqc3odx] { margin-left: auto; }

/*
   Badge-ul de stare: o singură linie, întotdeauna.

   Aceleași dimensiuni și aceeași semantică de tonuri ca `.status-pill` din app.css, pe care îl
   folosește modalul SPV. Regulile rămân separate doar pentru că badge-ul din grid este un <button>
   (deschide răspunsul ANAF) și are nevoie de stările proprii de hover/focus.

   `white-space: nowrap` este partea care contează: metadata ANAF stătea înainte în interiorul
   pastilei și o rupea pe două rânduri.
*/
.invoice-spv-status[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    max-width: 100%;
    padding: .22rem .6rem;
    border: 1px solid var(--tdl-border);
    border-radius: 999px;
    background: var(--tdl-surface-muted);
    color: var(--tdl-text-secondary);
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
    white-space: nowrap;
}

button.invoice-spv-status:hover[b-ufmeqc3odx],
button.invoice-spv-status:focus-visible[b-ufmeqc3odx] {
    border-color: var(--tdl-primary);
    box-shadow: 0 0 0 3px var(--tdl-primary-soft);
}

.invoice-spv-status--success[b-ufmeqc3odx] { background: var(--tdl-success-soft); color: var(--tdl-success); border-color: var(--tdl-success-soft-border); }
.invoice-spv-status--danger[b-ufmeqc3odx] { background: var(--tdl-danger-soft); color: var(--tdl-danger); border-color: var(--tdl-danger-soft-border); }
.invoice-spv-status--info[b-ufmeqc3odx] { background: var(--tdl-primary-soft); color: var(--tdl-primary-hover); border-color: var(--tdl-primary-soft-border); }
.invoice-spv-status--warning[b-ufmeqc3odx] { background: var(--tdl-warning-soft); color: var(--tdl-warning); border-color: var(--tdl-warning-soft-border); }

/*
   The badge is `max-width: 100%` of its column, so the label is the part that gives way: without
   this a long state painted straight through the Acțiuni cell. The full text is in the badge title.
*/
.invoice-spv-status > *[b-ufmeqc3odx] {
    flex: 0 0 auto;
}

.invoice-spv-status > .invoice-spv-status__label[b-ufmeqc3odx] {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.invoice-spv-retry[b-ufmeqc3odx] {
    padding-left: .35rem;
    border-left: 1px solid currentColor;
    opacity: .8;
}

.anaf-technical-details[b-ufmeqc3odx] {
    margin-top: 1rem;
    padding: .85rem 1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-muted);
}

.anaf-technical-details summary[b-ufmeqc3odx] {
    cursor: pointer;
    font-weight: 700;
}

@media (max-width: 900px) {
    /* Pe mobil documentul derulează normal - un layout cu înălțime fixă ar produce
       două scroll-uri suprapuse. Paginatorul se stivuiește, iar butoanele rămân
       destul de mari pentru atingere. Fără overflow orizontal: totul se rupe pe rând. */
    .invoice-pagination[b-ufmeqc3odx] {
        flex-direction: column;
        align-items: stretch;
        gap: .6rem;
    }

    .invoice-pagination__controls[b-ufmeqc3odx] {
        justify-content: center;
    }

    .invoice-pagination__btn[b-ufmeqc3odx] {
        min-width: 2.4rem;
        height: 2.4rem;
    }

    .invoice-pagination__range[b-ufmeqc3odx],
    .invoice-pagination__size[b-ufmeqc3odx] {
        justify-content: center;
        text-align: center;
        white-space: normal;
    }
}

/* Lățimea dialogului SPV / ANAF stă în app.css, ca `.modal-panel-custom.spv-sync-modal`: panoul este
   randat de TdlModal și nu poartă atributul de scope al acestei pagini, deci o regulă de aici nu l-ar
   atinge niciodată. Vezi comentariul de acolo. */

.spv-sync-modal-header[b-ufmeqc3odx] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--tdl-surface);
}

/*
    Taburile celor două direcții RO e-Factura. Lipite sub antet, deasupra zonei care derulează, ca
    schimbarea direcției să rămână la vedere oricât ar derula operatorul prin grid.
*/
.spv-tabs[b-ufmeqc3odx] {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    gap: 0.25rem;
    padding: 0 0 0.1rem;
    border-bottom: 1px solid var(--tdl-border);
    background: var(--tdl-surface);
}

.spv-tab[b-ufmeqc3odx] {
    padding: 0.5rem 0.9rem;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--tdl-text-secondary);
    cursor: pointer;
    transition: color 120ms ease, border-color 120ms ease;
}

.spv-tab:hover[b-ufmeqc3odx] {
    color: var(--tdl-primary-hover);
}

.spv-tab--active[b-ufmeqc3odx] {
    color: var(--tdl-primary-active);
    border-bottom-color: var(--tdl-primary);
}

.spv-tab:focus-visible[b-ufmeqc3odx] {
    outline: 2px solid var(--tdl-primary);
    outline-offset: -2px;
    border-radius: 4px 4px 0 0;
}

/*
    SINGURUL scroller al dialogului SPV. Antetul și taburile sunt frați ai acestei zone, nu conținut
    din ea, deci rămân la vedere fără `position: sticky` și fără o a doua bară de derulare.

    `overflow: auto` pe AMÂNDOUĂ axele, nu `overflow-x: hidden`: ascunderea axei orizontale nu
    făcea tabelul să încapă, ci doar tăia coloanele din dreapta - exact simptomul raportat. Când
    gridul chiar nu intră (ferestre înguste), acum se poate ajunge la el derulând, iar antetul
    tabelului rămâne lipit sus pentru că se raportează la ACEST scroller.

    `scrollbar-gutter: stable` rezervă banda barei de derulare din start. Fără ea, bara apărea peste
    ultima coloană în momentul în care conținutul devenea mai înalt decât dialogul, și mânca din
    exact spațiul pe care îl acoperea.
*/
.spv-sync-modal-body[b-ufmeqc3odx] {
    flex: 1 1 auto;
    overflow: auto;
    scrollbar-gutter: stable;
    min-height: 0;
    padding-top: 0.9rem;
}

.invoice-filter-pills[b-ufmeqc3odx] {
    display: flex;
    gap: .375rem;
    flex-wrap: wrap;
}

.filter-pill[b-ufmeqc3odx] {
    padding: .25rem .7rem;
    border: 1px solid var(--border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface);
    color: var(--text-secondary);
    font-size: .75rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .12s, color .12s, border-color .12s;
    line-height: 1.4;
}

    .filter-pill:hover[b-ufmeqc3odx] {
        background: var(--surface-raised);
        color: var(--text-primary);
    }

.filter-pill--active[b-ufmeqc3odx] {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

    .filter-pill--active:hover[b-ufmeqc3odx] {
        background: var(--accent);
        color: #fff;
    }

/* ── Overdue ─────────────────────────────────────────────────── */

.overdue-badge[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.45rem;
    border-radius: 999px;
    background: var(--tdl-danger-soft);
    color: var(--tdl-danger);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    vertical-align: middle;
}

.filter-pill--overdue[b-ufmeqc3odx] {
    background: #991b1b !important;
    border-color: #991b1b !important;
}

/* ── Notes ─────────────────────────────────────────────────── */

.form-field--full[b-ufmeqc3odx] {
    grid-column: 1 / -1;
}

/*
 * A band of fields inside .form-grid that needs its own track sizing rather than the parent's equal
 * columns. It spans the parent row and lays its children out itself; the desktop editor gives it
 * five weighted tracks (see the 1200px block), everything narrower keeps the ordinary stacking.
 */
.form-subrow[b-ufmeqc3odx] {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 0.85rem;
}

@media (max-width: 720px) {
    .form-subrow[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }
}

.invoice-notes-input[b-ufmeqc3odx] {
    resize: vertical;
    min-height: 72px;
}

.detail-notes[b-ufmeqc3odx] {
    background: var(--tdl-surface-soft);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.detail-notes-label[b-ufmeqc3odx] {
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.35rem;
}

.detail-notes-text[b-ufmeqc3odx] {
    color: #334155;
    font-size: 0.9rem;
    line-height: 1.55;
    white-space: pre-wrap;
}

/* ── Inline edit panel ──────────────────────────────────────── */

.invoice-edit-panel[b-ufmeqc3odx] {
    background: var(--tdl-primary-soft);
    border: 1px solid var(--tdl-primary-soft-border);
    border-radius: var(--tdl-radius-lg);
    padding: 1rem 1.1rem;
    margin-bottom: 1rem;
}

.invoice-edit-grid[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.invoice-edit-actions[b-ufmeqc3odx] {
    display: flex;
    gap: 0.5rem;
}

/*
 * Confirmation that belongs to a field but not on a line of its own - the client's fiscal code, the
 * number the series will hand out next. It sits beside the label, quiet enough that the label still
 * reads first, and truncates rather than pushing the row wider.
 */
.field-inline-hint[b-ufmeqc3odx] {
    min-width: 0;
    overflow: hidden;
    color: var(--tdl-text-secondary);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Next invoice number hint ───────────────────────────────── */

.next-number-hint[b-ufmeqc3odx] {
    margin-top: 0.35rem;
    font-size: 0.8rem;
    color: #475569;
}


/* ── Modern refinements for the simplified invoice workflow ─────────────── */
.form-section-heading[b-ufmeqc3odx] {
    margin: 1.15rem 0 0.75rem 0;
    font-size: 0.84rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--tdl-primary-hover);
}

.form-section-heading:first-of-type[b-ufmeqc3odx] {
    margin-top: 0;
}

.invoice-page-grid[b-ufmeqc3odx] {
    grid-template-columns: minmax(700px, 1fr) minmax(360px, 0.42fr);
}

.invoice-page-grid--create[b-ufmeqc3odx] {
    grid-template-columns: minmax(0, 1fr);
    justify-content: stretch;
}

.invoice-page-grid--create .invoice-form-column[b-ufmeqc3odx] {
    width: 100%;
    max-width: none;
}

.invoice-page-grid--create .form-grid[b-ufmeqc3odx] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1100px) {
    .invoice-page-grid--create .form-grid[b-ufmeqc3odx] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .invoice-page-grid--create .form-grid[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }
}

.stat-tile[b-ufmeqc3odx],
.page-chip[b-ufmeqc3odx],
.lines-table-wrapper[b-ufmeqc3odx],
.payments-table-wrapper[b-ufmeqc3odx],
.totals-panel[b-ufmeqc3odx],
.payment-summary[b-ufmeqc3odx],
.detail-notes[b-ufmeqc3odx],
.invoice-edit-panel[b-ufmeqc3odx] {
    border-color: var(--tdl-border);
}

.detail-actions[b-ufmeqc3odx],
.invoice-edit-actions[b-ufmeqc3odx],
.form-actions[b-ufmeqc3odx] {
    flex-wrap: wrap;
}

.form-actions .btn-primary[b-ufmeqc3odx] {
    min-width: 12rem;
}

.invoice-list-table tbody tr:hover[b-ufmeqc3odx] {
    background: var(--tdl-surface-soft);
}

/*
 * Selection colour only. The states themselves - selected, focus-visible, hover - come from the
 * shared .tdl-grid-row contract in app.css.
 *
 * This rule used to draw the selection with `outline`, which is the same thing the browser uses to
 * show keyboard focus. Two rows in two different states came out looking identical, and the grid
 * appeared to have two active rows at once.
 *
 * The colour goes through --bs-table-bg-state, not only `background`: Bootstrap 5.3 paints a table
 * cell's state as `box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state)` ON TOP of the
 * background. Setting just the background (even !important) was invisible on every cell except the
 * first, whose shadow the accent had replaced - so the row showed two different blues.
 */
.invoice-row--selected > *[b-ufmeqc3odx] {
    --bs-table-bg-state: color-mix(in srgb, var(--tdl-primary-soft, #e6eff5) 42%, var(--tdl-surface, #fff) 58%);
    background-color: var(--bs-table-bg-state);
}

.invoice-row--selected td[b-ufmeqc3odx] {
    font-weight: 700;
    color: var(--tdl-text-primary, #2d333b);
}

.invoice-row--selected .invoice-number-cell[b-ufmeqc3odx] {
    color: var(--tdl-primary-hover, var(--tdl-primary-hover));
    font-weight: 900;
}

.invoice-list-table tbody tr.invoice-row--selected:hover > *[b-ufmeqc3odx] {
    --bs-table-bg-state: color-mix(in srgb, var(--tdl-primary-soft, #e6eff5) 58%, var(--tdl-surface, #fff) 42%);
    background-color: var(--bs-table-bg-state);
}

.storno-banner[b-ufmeqc3odx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    padding: 0.55rem 0.75rem;
    margin: 0.6rem 0;
    border-radius: var(--tdl-radius-md, 0.4rem);
    border: 1px solid var(--tdl-violet-soft, #ede9fe);
    background: var(--tdl-violet-soft, #ede9fe);
    color: var(--tdl-text-primary, #2d333b);
    font-size: 0.88rem;
}

.storno-banner--cancelled[b-ufmeqc3odx] {
    border-color: var(--tdl-danger-soft-border, #e9c1c1);
    background: var(--tdl-danger-soft, #fae8e8);
    color: var(--tdl-text-primary, #2d333b);
}

.storno-banner-text[b-ufmeqc3odx] {
    color: inherit;
}

.filter-pill[b-ufmeqc3odx] {
    min-height: 2.05rem;
    padding: 0.32rem 0.72rem;
    font-weight: 750;
}

/* Container chrome comes from `.tdl-data-grid`; only the page-level spacing stays. */
.invoice-lines-editor[b-ufmeqc3odx] {
    margin-bottom: 1rem;
}

.invoice-line-card[b-ufmeqc3odx] {
    border: 0;
    border-bottom: 1px solid var(--tdl-border);
    border-radius: 0;
    background: var(--tdl-surface);
    padding: 0.7rem 0.85rem;
    box-shadow: none;
}

.invoice-line-card:last-child[b-ufmeqc3odx] {
    border-bottom: 0;
}

.invoice-line-card-header[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.45rem;
}

.invoice-line-card-title[b-ufmeqc3odx] {
    font-size: 0.92rem;
    font-weight: 850;
    color: var(--tdl-text-primary);
}

.invoice-line-card-caption[b-ufmeqc3odx] {
    display: none;
}

.invoice-line-card-grid[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: minmax(260px, 1.55fr) 72px 110px 112px 82px;
    gap: 0.55rem;
    align-items: end;
}

.invoice-line-card-grid .form-field--full[b-ufmeqc3odx] {
    grid-column: 1 / -1;
}

.product-picker-select[b-ufmeqc3odx] {
    min-height: 2.25rem;
    background: var(--tdl-surface-soft);
    border-color: var(--tdl-border);
    color: #334155;
}

.line-number-input[b-ufmeqc3odx] {
    min-height: 2.25rem;
}

.invoice-line-card-total[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.65rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--tdl-border);
    color: #475569;
}

.invoice-line-card-total strong[b-ufmeqc3odx] {
    font-size: 1rem;
    color: #0f172a;
}

@media (max-width: 1200px) {
    .invoice-page-grid[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }

    .invoice-list-column[b-ufmeqc3odx],
    .invoice-form-column[b-ufmeqc3odx] {
        order: initial;
        position: static;
        max-height: none;
        overflow: visible;
    }

    .invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column > .section-card[b-ufmeqc3odx] {
        max-height: none;
    }

    .invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column > .section-card > .section-card-body[b-ufmeqc3odx] {
        overflow: visible;
    }
}

@media (max-width: 900px) {
    .invoice-line-card-grid[b-ufmeqc3odx] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1201px) {
    .invoice-form-column .section-card[b-ufmeqc3odx] {
        position: relative;
    }

    /*
     * List page only - and the :not() is the whole point.
     *
     * There, .invoice-form-column is itself a pinned panel with a max-height and its own scroller,
     * so a bottom-sticky totals panel settles against the bottom of that panel and covers nothing.
     *
     * On the editor route the column is a plain block inside a document taller than the viewport,
     * so the nearest scrollport is the viewport itself. Sticky then lifts the panel off its flow
     * position - measured at 1366x768 with three lines, from y=903 to y=645 - and, being z-index 4
     * with an opaque background over static content, it paints straight over the "Linii factură"
     * toolbar and the entire line list. Every rect stayed exactly where it belonged, which is why
     * bounding-box and in-viewport assertions kept passing while the rows were invisible.
     *
     * At 1920x1080 the same rule is inert: the panel's flow position already fits the viewport, and
     * sticky never moves an element below where it would otherwise sit.
     *
     * Nothing is lost by excluding the editor - the running total is already pinned there by
     * .sticky-action-bar--totals.
     */
    .invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column .totals-panel[b-ufmeqc3odx] {
        position: sticky;
        bottom: 1rem;
        z-index: 4;
        box-shadow: var(--tdl-shadow);
    }
}

@media (max-width: 760px) {
    .invoice-edit-grid[b-ufmeqc3odx],
    .invoice-line-card-grid[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }

    .invoice-line-card-header[b-ufmeqc3odx],
    .invoice-line-card-total[b-ufmeqc3odx] {
        flex-direction: column;
        align-items: stretch;
    }

    .sticky-action-bar[b-ufmeqc3odx] {
        align-items: stretch;
        flex-direction: column;
    }

    .sticky-action-bar > div:last-child[b-ufmeqc3odx] {
        justify-content: stretch;
    }

    .sticky-action-bar .btn[b-ufmeqc3odx] {
        width: 100%;
    }
}

/* ── Compact invoice line editor (row layout) ───────────────────── */
.invoice-lines-editor[b-ufmeqc3odx] {
    padding: 0;
}

/*
    Only the COLUMNS live here now. Every visual property this block used to repeat - the header
    band, the separators, hover, the selected accent, cell typography and numeric alignment - comes
    from the shared `.tdl-data-grid` contract in app.css, which is also what `.table` follows. That
    is what makes the line editor read as part of the same application as the invoice list above it.
*/
.invoice-lines-row[b-ufmeqc3odx] {
    grid-template-columns: 2.4rem minmax(190px, 2.1fr) minmax(9rem, 1.15fr) 4.2rem 5rem 6rem 4.6rem minmax(6.4rem, 1fr) 5rem;
}

.invoice-lines-col[b-ufmeqc3odx] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.invoice-lines-col .form-control[b-ufmeqc3odx],
.invoice-lines-col .form-select[b-ufmeqc3odx] {
    width: 100%;
    min-width: 0;
}

/* Centring is the one thing this column wants beyond `tdl-data-grid__cell--index`. */
.invoice-lines-col--idx[b-ufmeqc3odx] {
    justify-content: center;
}

/* Read-only summary values. The row shows what the line IS; the dialog is where it changes. */
.invoice-lines-value[b-ufmeqc3odx] {
    font-size: 0.85rem;
    line-height: 1.4;
    color: var(--tdl-text-primary);
    padding: 0.25rem 0;
    min-width: 0;
}

.invoice-lines-value--desc[b-ufmeqc3odx] {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.invoice-lines-value--num[b-ufmeqc3odx] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.invoice-lines-col--desc[b-ufmeqc3odx] {
    gap: 0.3rem;
}

.invoice-lines-col--total[b-ufmeqc3odx] {
    align-items: flex-end;
    flex-direction: row;
    justify-content: flex-end;
    gap: 0.3rem;
    font-weight: 700;
    color: var(--tdl-text-primary);
}

.invoice-lines-col--total .invoice-lines-currency[b-ufmeqc3odx] {
    font-size: 0.78rem;
    color: var(--tdl-text-muted);
    font-weight: 500;
}

/* Edit and remove sit side by side: the row is one line tall, so stacking them would grow it. */
.invoice-lines-col--actions[b-ufmeqc3odx] {
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 0.3rem;
}

.invoice-lines-col--actions .btn[b-ufmeqc3odx] {
    min-width: 2rem;
    padding-left: 0.4rem;
    padding-right: 0.4rem;
    line-height: 1;
}

.invoice-line-product[b-ufmeqc3odx] {
    font-size: 0.78rem;
    padding: 0.18rem 0.4rem;
    min-height: 1.8rem;
}

.invoice-lines-error[b-ufmeqc3odx] {
    padding: 0.55rem 0.85rem;
    border-top: 1px solid var(--tdl-border);
}

/* Varianta fara coloana TVA pentru institutii neplatitoare de TVA. */
.invoice-lines-row--no-vat[b-ufmeqc3odx] {
    grid-template-columns: 2.4rem minmax(190px, 2.1fr) minmax(9rem, 1.15fr) 4.2rem 5rem 6rem minmax(6.4rem, 1fr) 5rem;
}


.invoice-lines-col--category[b-ufmeqc3odx] {
    min-width: 0;
}

.invoice-lines-col--category .form-select[b-ufmeqc3odx] {
    width: 100%;
    min-width: 0;
    font-size: 0.82rem;
    padding: 0.2rem 1.5rem 0.2rem 0.4rem;
}

/* Selector plus the inline "+ Categorie" escape hatch, side by side. */
.inventory-category-field[b-ufmeqc3odx] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    min-width: 0;
}

.inventory-category-field .form-select[b-ufmeqc3odx] {
    flex: 1 1 auto;
    min-width: 0;
}

.inventory-category-field .btn[b-ufmeqc3odx] {
    flex: 0 0 auto;
    white-space: nowrap;
}

.inventory-category-list[b-ufmeqc3odx] {
    margin-top: 0.9rem;
}

.inventory-category-list .invoice-lines-row[b-ufmeqc3odx] {
    grid-template-columns: 6rem minmax(0, 1fr) 6rem auto;
}

.inventory-category-editor[b-ufmeqc3odx] {
    margin-top: 0.4rem;
}

@media (max-width: 900px) {
    .inventory-category-list .invoice-lines-row[b-ufmeqc3odx] {
        grid-template-columns: 1fr auto;
        grid-template-areas: none;
        row-gap: 0.3rem;
    }

    .inventory-category-field[b-ufmeqc3odx] {
        flex-wrap: wrap;
    }
}

/* Stable master-detail behavior for the redesigned invoice list. */
.invoice-page-grid:not(.invoice-page-grid--create)[b-ufmeqc3odx] {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
    align-items: start;
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-list-column[b-ufmeqc3odx] {
    order: 1;
    min-width: 0;
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column[b-ufmeqc3odx] {
    order: 2;
    min-width: 0;
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column > .section-card[b-ufmeqc3odx] {
    max-height: calc(100vh - 6.2rem);
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column > .section-card > .section-card-body[b-ufmeqc3odx] {
    overflow-y: auto;
}

@media (max-width: 1200px) {
    .invoice-page-grid:not(.invoice-page-grid--create)[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }

    .invoice-page-grid:not(.invoice-page-grid--create) .invoice-list-column[b-ufmeqc3odx] {
        order: 1;
    }

    .invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column[b-ufmeqc3odx] {
        order: 2;
    }

    .invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column[b-ufmeqc3odx] {
        position: static;
        max-height: none;
        overflow: visible;
    }

    .invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column > .section-card[b-ufmeqc3odx],
    .invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column > .section-card > .section-card-body[b-ufmeqc3odx] {
        max-height: none;
        overflow: visible;
    }
}

/* Storno UI */
.storno-summary-card[b-ufmeqc3odx] {
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
    padding: .75rem 1rem;
    margin-bottom: 1rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: .65rem 1.25rem;
}

.storno-summary-row[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.storno-summary-row span[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.storno-summary-row strong[b-ufmeqc3odx] {
    color: var(--tdl-text-primary);
}

.storno-summary-links[b-ufmeqc3odx] {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .6rem;
    align-items: center;
    border-top: 1px dashed var(--tdl-border);
    padding-top: .5rem;
}

.storno-summary-links span[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.balance--zero[b-ufmeqc3odx] { color: var(--tdl-success, #0f7b4a); }
.balance--due[b-ufmeqc3odx] { color: var(--tdl-danger, #b91c1c); }

/* Modal */
.storno-chooser-grid[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
}

@media (max-width: 720px) {
    .storno-chooser-grid[b-ufmeqc3odx] { grid-template-columns: 1fr; }
}

.storno-chooser-option[b-ufmeqc3odx] {
    text-align: left;
    border: 1px solid var(--tdl-border);
    background: var(--tdl-surface-soft);
    border-radius: var(--tdl-radius-md);
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

.storno-chooser-option:hover[b-ufmeqc3odx] {
    border-color: var(--tdl-primary, #2563eb);
    background: var(--tdl-surface);
}

.storno-chooser-title[b-ufmeqc3odx] {
    font-weight: 800;
    font-size: 1rem;
}

.storno-chooser-text[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
    font-size: .85rem;
}

.storno-partial-table th[b-ufmeqc3odx] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--tdl-text-muted);
}

.storno-qty-input[b-ufmeqc3odx] {
    width: 7.5rem;
    margin-left: auto;
}

.invoice-row--highlighted[b-ufmeqc3odx] {
    animation: invoice-highlight-pulse-b-ufmeqc3odx 2.6s ease-out;
    box-shadow: inset 7px 0 0 var(--tdl-success, #275c3d),
                inset 0 -1px 0 var(--tdl-success-soft-border, #c9dfd2),
                inset 0 1px 0 var(--tdl-success-soft-border, #c9dfd2);
}

.selected-invoice-panel--highlighted[b-ufmeqc3odx]  .section-card {
    animation: invoice-panel-highlight-b-ufmeqc3odx 2.6s ease-out;
}

@keyframes invoice-highlight-pulse-b-ufmeqc3odx {
    0% {
        background-color: var(--tdl-success-soft, #e5f0ea);
    }
    100% {
        background-color: transparent;
    }
}

@keyframes invoice-panel-highlight-b-ufmeqc3odx {
    0% {
        border-color: var(--tdl-success, #275c3d);
        box-shadow: 0 0 0 3px rgba(39, 92, 61, 0.16);
    }
    100% {
        border-color: var(--tdl-border, var(--tdl-border));
        box-shadow: var(--tdl-shadow-sm);
    }
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column[b-ufmeqc3odx]  .section-card {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 6.2rem);
}

.invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column[b-ufmeqc3odx]  .section-card-body {
    overflow-y: auto;
    min-height: 0;
    padding-right: .7rem;
    scrollbar-color: rgba(74, 116, 148, 0.48) rgba(226, 221, 213, 0.62);
    scrollbar-width: thin;
}

@media (max-width: 1200px) {
    .invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column[b-ufmeqc3odx]  .section-card,
    .invoice-page-grid:not(.invoice-page-grid--create) .invoice-form-column[b-ufmeqc3odx]  .section-card-body {
        max-height: none;
        overflow: visible;
    }
}

.payment-row--highlight td[b-ufmeqc3odx] {
    animation: payment-highlight-pulse-b-ufmeqc3odx 2.4s ease-out 1;
}

@keyframes payment-highlight-pulse-b-ufmeqc3odx {
    0% {
        background: rgba(34, 197, 94, .22);
        box-shadow: inset 4px 0 0 #16a34a;
    }
    70% {
        background: rgba(34, 197, 94, .08);
        box-shadow: inset 4px 0 0 rgba(22, 163, 74, .35);
    }
    100% {
        background: transparent;
        box-shadow: inset 0 0 0 transparent;
    }
}

.invoice-page-grid--list[b-ufmeqc3odx] {
    grid-template-columns: minmax(0, 1fr) !important;
}

.invoice-page-grid--list .invoice-list-column[b-ufmeqc3odx] {
    width: 100%;
    min-width: 0;
}

.invoice-page-grid--list .invoice-form-column[b-ufmeqc3odx] {
    display: none;
}

/* ==========================================================================================
   Invoice list: column model
   ==========================================================================================

   Fixed layout, so a column is as wide as its header says and never depends on which page of
   data happens to be showing. Every column has a width except Client, which takes what is left.

   Two things made the columns run into each other, and both are dealt with here:

     1. The widths never applied. Eight of the ten headers are rendered by SortableColumnHeader and
        carry THAT component's scope attribute, so `.invoice-col-number` from this stylesheet
        (compiled to `.invoice-col-number[b-<this page>]`) matched only "Stare SPV" and "Acțiuni".
        A fixed-layout table then split the rest of the width equally - nine columns of the same
        width, Client included. Header rules therefore go through ::deep.
     2. Nothing stopped the table from shrinking. It was simply 100% of the card, so at 125-150%
        zoom every column kept narrowing until nowrap content painted over its neighbour.
        `min-width` is the floor: below it the table scrolls sideways inside .table-responsive
        (the page itself never does), and above it Client absorbs every extra pixel.

   The minimums are measured from real content, cell padding included: "Ciornă fără număr" in the
   number column, a dd.MM.yyyy date, a five-digit amount with its currency, the "Detalii" button.
   ========================================================================================== */
.invoice-list-table[b-ufmeqc3odx] {
    width: 100%;
    table-layout: fixed;
}

.invoice-list-table tbody td[b-ufmeqc3odx] {
    vertical-align: middle;
}

.invoice-list-table[b-ufmeqc3odx]  .invoice-col-status  { width: 6.25rem; }
.invoice-list-table[b-ufmeqc3odx]  .invoice-col-number  { width: 9.5rem; }
.invoice-list-table[b-ufmeqc3odx]  .invoice-col-client  { width: auto; }
.invoice-list-table[b-ufmeqc3odx]  .invoice-col-date    { width: 6.5rem; }
.invoice-list-table[b-ufmeqc3odx]  .invoice-col-money   { width: 7rem; }
.invoice-list-table .invoice-col-spv[b-ufmeqc3odx]            { width: 11.5rem; }
.invoice-list-table .invoice-col-actions[b-ufmeqc3odx]        { width: 7.5rem; }

/*
 * Headers may take a second line rather than overflow: "DATA EMITERII" is wider than a date, and a
 * translated or renamed header must not be what decides a column's width.
 */
.invoice-list-table[b-ufmeqc3odx]  thead th {
    white-space: normal;
    vertical-align: bottom;
}

/* Sum of the fixed columns plus a readable Client column (10rem). */
@media (min-width: 768px) {
    .invoice-list-table[b-ufmeqc3odx] {
        min-width: 67.25rem;
    }

    .invoice-list-table--with-spv[b-ufmeqc3odx] {
        min-width: 78.75rem;
    }

    /*
     * Once the table scrolls sideways, "Detalii" stays pinned to the right edge of the scroller
     * instead of starting off-screen. When nothing overflows, sticky has no effect at all.
     *
     * Every cell here paints opaquely (Bootstrap's --bs-table-bg plus the state layer), so what
     * scrolls underneath is hidden rather than showing through. The divider is a pseudo-element,
     * not a box-shadow: box-shadow is the channel Bootstrap paints row states through.
     */
    .invoice-list-table .invoice-col-actions[b-ufmeqc3odx],
    .invoice-list-table tbody td.invoice-action-cell[b-ufmeqc3odx] {
        position: sticky;
        right: 0;
        z-index: 1;
    }

    .invoice-list-table .invoice-col-actions[b-ufmeqc3odx]::before,
    .invoice-list-table tbody td.invoice-action-cell[b-ufmeqc3odx]::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        width: 1px;
        background: var(--tdl-border);
    }
}

/*
 * Every cell keeps its content inside its own box. The breaks below are the last line of defence
 * for data longer than anything measured - an unbroken client name, a long series - and they break
 * the value rather than letting it paint across the next column.
 */
.invoice-list-table tbody td[b-ufmeqc3odx] {
    overflow-wrap: anywhere;
}

.invoice-list-table tbody td.invoice-cell-date[b-ufmeqc3odx] {
    white-space: nowrap;
}

/*
 * app.css keeps amounts on one line everywhere. In this column set a seven-digit total may instead
 * put its currency on a second line - the break at the space is taken first, so "108.90 RON" never
 * splits, and only an amount wider than the whole column would ever be broken.
 */
.money-cell[b-ufmeqc3odx] {
    text-align: right;
    font-weight: 750;
}

.invoice-list-table tbody td.money-cell[b-ufmeqc3odx] {
    white-space: normal;
}

/* A rare, long state ("Încasată parțial") wraps inside its pill instead of spilling out of it. */
.invoice-list-table .invoice-cell-status[b-ufmeqc3odx] {
    padding-right: 15px; /* Pushes the "GROUP" column away */
    white-space: nowrap; /* Ensures the pill stays on one line */
    vertical-align: middle;
}

.invoice-action-cell[b-ufmeqc3odx] {
    text-align: right;
    white-space: nowrap;
}

.invoice-details-button[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-width: 6.5rem;
}

.invoice-row[b-ufmeqc3odx] {
    cursor: default;
}

.invoice-details-modal-header[b-ufmeqc3odx] {
    flex: 0 0 auto;
    padding: 1.15rem 1.25rem 0;
    margin-bottom: 0;
}

/* Tab strip: sticky between the header and the single scrolling tabpanel. */
.invoice-details-tabs[b-ufmeqc3odx] {
    flex: 0 0 auto;
    display: flex;
    gap: 0.25rem;
    margin-top: 0.85rem;
    padding: 0 1.25rem;
    border-bottom: 1px solid var(--tdl-border);
    background: var(--tdl-surface);
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
}

.invoice-details-tab[b-ufmeqc3odx] {
    flex: 0 0 auto;
    position: relative;
    padding: 0.6rem 0.9rem;
    border: none;
    border-bottom: 3px solid transparent;
    border-radius: var(--tdl-radius-md, 0.4rem) var(--tdl-radius-md, 0.4rem) 0 0;
    background: transparent;
    color: var(--tdl-text-secondary);
    font-size: 0.86rem;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
}

.invoice-details-tab:hover[b-ufmeqc3odx] {
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-primary);
}

.invoice-details-tab--active[b-ufmeqc3odx] {
    border-bottom-color: var(--tdl-primary);
    color: var(--tdl-primary-hover);
}

.invoice-details-tab:focus-visible[b-ufmeqc3odx] {
    outline: 2px solid var(--tdl-primary);
    outline-offset: -2px;
}

.invoice-details-modal-header-actions[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.invoice-details-modal-body[b-ufmeqc3odx] {
    flex: 1 1 auto;
    padding: 1rem 1.25rem 1.1rem;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
}

.invoice-details-modal-body:focus-visible[b-ufmeqc3odx] {
    outline: 2px solid var(--tdl-primary);
    outline-offset: -4px;
}

.invoice-details-section-title[b-ufmeqc3odx] {
    margin: 0.45rem 0 0.75rem;
    color: var(--tdl-primary-hover);
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.invoice-details-info-grid[b-ufmeqc3odx] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Footer holds general invoice actions only; the SPV/XML workflow lives in its own tab. */
/*
 * The action bar now sits under the tab strip instead of at the very bottom, so the border moves to
 * the underside: it separates the actions from the scrolling document, not from what is above it.
 * Sitting outside the scroller is what keeps it visible - there is no position: sticky involved.
 */
.invoice-details-actionbar[b-ufmeqc3odx] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.8rem 1.25rem;
    border-bottom: 1px solid var(--tdl-border);
    background: var(--tdl-surface-soft);
    /* Over the tab panel, so a dropdown opening in the content cannot paint across the actions. */
    position: relative;
    z-index: 2;
}

@media (max-width: 900px) {
    /* Many actions on a narrow screen: wrap onto more rows, but never eat the whole dialog. */
    .invoice-details-actionbar[b-ufmeqc3odx] {
        max-height: 40dvh;
        overflow-y: auto;
    }
}

.invoice-details-actionbar-group[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.invoice-details-actionbar-group:first-child[b-ufmeqc3odx] {
    flex: 1 1 auto;
}

/*
 * Secondary actions and the "Mai multe acțiuni" trigger sit to the right of the everyday ones, with
 * a separator instead of a colour: the divider says "different rank", not "danger". The destructive
 * emphasis now lives where it belongs - inside the menu, and on the confirmation dialog.
 */
.invoice-details-actionbar-group--secondary[b-ufmeqc3odx] {
    flex: 0 0 auto;
    justify-content: flex-end;
    margin-left: auto;
    padding-left: 0.85rem;
    border-left: 1px solid var(--tdl-border);
}

/*
 * The action bar clips its own overflow on narrow screens, which would cut the menu panel. The menu
 * anchors to its own wrapper and is lifted above the bar, so it stays whole either way.
 */
.invoice-details-actionbar .invoice-more-actions[b-ufmeqc3odx] {
    position: relative;
    z-index: 3;
}

/* Status-changing and destructive actions stay visually apart from the everyday ones. */
.invoice-details-actionbar-group--critical[b-ufmeqc3odx] {
    flex: 0 0 auto;
    justify-content: flex-end;
    margin-left: auto;
    padding-left: 0.85rem;
    border-left: 1px solid var(--tdl-border-strong);
}

.invoice-details-actionbar .btn[b-ufmeqc3odx] {
    min-width: 7.5rem;
}

/*
 * "Copiază ca factură nouă" is a constructive action - it creates a new document and changes
 * nothing about this one - so it lives in the business group next to Încasări and Creează
 * recurență, not behind the separator that marks the fiscal and destructive actions. Teal keeps it
 * visibly distinct from the storno purple.
 */
.btn-copy-as-new[b-ufmeqc3odx] {
    background-color: #0f766e;
    border-color: #0f766e;
    color: #fff;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.btn-copy-as-new:hover[b-ufmeqc3odx],
.btn-copy-as-new:focus[b-ufmeqc3odx] {
    background-color: #0d5f59;
    border-color: #0d5f59;
    color: #fff;
}

.btn-copy-as-new:active[b-ufmeqc3odx] {
    background-color: #0a4b46;
    border-color: #0a4b46;
    color: #fff;
}

.btn-copy-as-new:focus-visible[b-ufmeqc3odx] {
    outline: 2px solid #0d5f59;
    outline-offset: 2px;
}

.btn-copy-as-new:disabled[b-ufmeqc3odx] {
    background-color: #6ba7a2;
    border-color: #6ba7a2;
    color: #fff;
}

.btn-copy-as-new-icon[b-ufmeqc3odx] {
    font-size: 1rem;
    line-height: 1;
}

.btn-storno[b-ufmeqc3odx] {
    background-color: #6b4fa3;
    border-color: #6b4fa3;
    color: #fff;
    font-weight: 700;
}

.btn-storno:hover[b-ufmeqc3odx],
.btn-storno:focus[b-ufmeqc3odx] {
    background-color: #573d8e;
    border-color: #573d8e;
    color: #fff;
}

.btn-storno:active[b-ufmeqc3odx] {
    background-color: #4a3378;
    border-color: #4a3378;
    color: #fff;
}

.btn-storno:focus-visible[b-ufmeqc3odx] {
    outline: 2px solid #573d8e;
    outline-offset: 2px;
}

@media (max-width: 900px) {
    .invoice-details-info-grid[b-ufmeqc3odx] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .invoice-details-actionbar[b-ufmeqc3odx] {
        justify-content: stretch;
    }

    .invoice-details-actionbar-group[b-ufmeqc3odx] {
        flex: 1 1 100%;
    }

    .invoice-details-actionbar-group--critical[b-ufmeqc3odx] {
        margin-left: 0;
        padding-left: 0;
        padding-top: 0.55rem;
        border-left: none;
        border-top: 1px solid var(--tdl-border-strong);
    }

    .invoice-details-actionbar-group--secondary[b-ufmeqc3odx] {
        margin-left: 0;
        padding-left: 0;
        padding-top: 0.55rem;
        border-left: none;
        border-top: 1px solid var(--tdl-border);
    }

    .invoice-details-actionbar .btn[b-ufmeqc3odx],
    .invoice-details-actionbar a.btn[b-ufmeqc3odx] {
        flex: 1 1 10rem;
    }

    .invoice-efactura-facts[b-ufmeqc3odx] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 901px) and (max-width: 1279px) {
    .invoice-details-actionbar[b-ufmeqc3odx] {
        align-items: stretch;
    }

    .invoice-details-actionbar-group[b-ufmeqc3odx],
    .invoice-details-actionbar-group:first-child[b-ufmeqc3odx] {
        flex: 1 1 100%;
    }

    .invoice-details-actionbar-group--critical[b-ufmeqc3odx] {
        margin-left: 0;
        padding-left: 0;
        padding-top: 0.65rem;
        border-left: none;
        border-top: 1px solid var(--tdl-border-strong);
    }

    .invoice-details-actionbar-group--secondary[b-ufmeqc3odx] {
        margin-left: 0;
        padding-left: 0;
        padding-top: 0.65rem;
        border-left: none;
        border-top: 1px solid var(--tdl-border);
    }
}

/* ==========================================================================
   Rezumatul de stare al documentului
   ========================================================================== */

/*
 * O bandă, nu un teanc de casete. Trei alerte suprapuse înaintea facturii cereau atenție egală
 * pentru trei lucruri de importanță foarte diferită, iar împreună împingeau documentul sub linia de
 * plutire pe un ecran de 768px înălțime.
 */
.invoice-status-summary[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin: 0.35rem 0 0.6rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface-soft);
}

.invoice-status-summary-facts[b-ufmeqc3odx] {
    font-size: 0.87rem;
    font-weight: 600;
    color: var(--tdl-text-secondary);
}

/*
 * <details> nativ: deschiderea și tastatura sunt ale browserului, iar textul rămâne în document
 * chiar și închis - ceea ce ține explicațiile la îndemână fără să le lase permanent pe ecran.
 */
.invoice-status-details[b-ufmeqc3odx] {
    margin: 0 0 0.75rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface);
}

.invoice-status-details-summary[b-ufmeqc3odx] {
    padding: 0.45rem 0.75rem;
    font-size: 0.83rem;
    font-weight: 600;
    color: var(--tdl-text-secondary);
    cursor: pointer;
    list-style-position: inside;
}

.invoice-status-details-summary:focus-visible[b-ufmeqc3odx] {
    outline: 3px solid rgba(74, 116, 148, 0.28);
    outline-offset: -3px;
    border-radius: var(--tdl-radius-lg);
}

.invoice-status-details-body[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0 0.75rem 0.65rem;
}

.invoice-status-note[b-ufmeqc3odx] {
    font-size: 0.85rem;
    line-height: 1.45;
    color: var(--tdl-text-secondary);
}

@media (min-width: 901px) and (max-width: 1400px) {
    .invoice-efactura-facts[b-ufmeqc3odx] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .invoice-details-info-grid[b-ufmeqc3odx],
    .invoice-efactura-facts[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }

    /*
     * Stacked, and packed to the top.
     *
     * `.modal-panel-header` sets `justify-content: space-between` and `flex-wrap: wrap`, which read
     * as "left and right" in a row and as "top and bottom" the moment the direction turns to
     * column. That is what produced a dialog whose title sat at the top, whose status pill and
     * Închide button sat at the very bottom, and whose middle was a screen and a half of nothing.
     */
    .invoice-details-modal-header[b-ufmeqc3odx] {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0.6rem;
    }

    /*
     * Both halves size to their content once the header is a column. Left alone they inherit a
     * flex-basis written as a width, which the column reads as a height - see the note beside the
     * matching rule in app.css.
     */
    .invoice-details-modal-header > div[b-ufmeqc3odx],
    .invoice-details-modal-header > .invoice-details-modal-header-actions[b-ufmeqc3odx] {
        flex: 0 0 auto;
    }

    .invoice-details-modal-header-actions[b-ufmeqc3odx] {
        justify-content: flex-start;
    }

    .invoice-details-modal-header-actions .btn[b-ufmeqc3odx] {
        min-height: 2.5rem;
    }
}

.invoice-email-callout[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    margin: 0.35rem 0 0.85rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid #bbf7d0;
    border-left: 4px solid #16a34a;
    border-radius: var(--tdl-radius-lg, 0.75rem);
    background: #f0fdf4;
    color: #14532d;
}

.invoice-email-callout > div[b-ufmeqc3odx] {
    display: grid;
    gap: 0.15rem;
}

.invoice-email-callout strong[b-ufmeqc3odx] {
    font-weight: 850;
}

.invoice-email-callout span[b-ufmeqc3odx] {
    font-size: 0.9rem;
    color: #166534;
}

.invoice-email-modal-backdrop[b-ufmeqc3odx] {
    z-index: 1060;
    background: rgba(15, 23, 42, 0.46);
}

.invoice-email-modal[b-ufmeqc3odx] {
    z-index: 1070;
}

.invoice-email-form[b-ufmeqc3odx] {
    display: grid;
    gap: 0.95rem;
}

.invoice-email-helper[b-ufmeqc3odx] {
    margin-top: 0.35rem;
    color: var(--tdl-text-secondary);
    font-size: 0.84rem;
    line-height: 1.35;
}

.invoice-email-message[b-ufmeqc3odx] {
    min-height: 9rem;
    resize: vertical;
}

.invoice-email-attachment[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
    width: fit-content;
    max-width: 100%;
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md, 0.45rem);
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-primary);
}

/* Doar insigna „PDF” de la începutul rândului. Fără selectorul de copil direct, regula prindea
   și span-urile din interiorul lui <small>, iar numele formatului apărea ca o a doua insignă roșie. */
.invoice-email-attachment > span[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.2rem;
    padding: 0.15rem 0.35rem;
    border-radius: 0.35rem;
    background: #fee2e2;
    color: #991b1b;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.04em;
}

.invoice-email-attachment strong[b-ufmeqc3odx] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.invoice-email-attachment small[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--tdl-text-secondary);
    white-space: nowrap;
}

/* Spune dacă formatul este cel implicit sau unul ales pentru acest email. */
.invoice-email-template-badge[b-ufmeqc3odx] {
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: var(--tdl-primary-soft, #dbecff);
    color: var(--tdl-primary, #1677d2);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.invoice-email-template-badge--muted[b-ufmeqc3odx] {
    background: var(--tdl-surface-muted, #eef2f6);
    color: var(--tdl-text-muted, #64748b);
}

.invoice-email-actions[b-ufmeqc3odx] {
    justify-content: flex-end;
    margin-top: 1rem;
}

@media (max-width: 620px) {
    .invoice-email-callout[b-ufmeqc3odx] {
        align-items: stretch;
        flex-direction: column;
    }

    .invoice-email-callout .btn[b-ufmeqc3odx],
    .invoice-email-actions .btn[b-ufmeqc3odx] {
        width: 100%;
    }

    .invoice-email-attachment[b-ufmeqc3odx] {
        width: 100%;
    }
}



.invoice-efactura-section[b-ufmeqc3odx] {
    margin-top: 1rem;
    padding: 0.95rem 1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg, 0.75rem);
    background: var(--tdl-surface-soft);
}

/* Non-interactive e-Factura badge kept on the Factură tab so the verdict is visible at a glance. */
.invoice-efactura-summary[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 0.9rem 0 0.35rem;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg, 0.55rem);
    background: var(--tdl-surface-soft);
}

.invoice-efactura-summary-label[b-ufmeqc3odx] {
    color: var(--tdl-text-primary);
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.invoice-efactura-summary-link[b-ufmeqc3odx] {
    margin-left: auto;
    padding: 0;
}

/* Verdict badge: colour is paired with an icon and a label so it never carries meaning alone. */
.invoice-efactura-state[b-ufmeqc3odx] {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--tdl-border);
    border-left: 5px solid var(--tdl-text-muted);
    border-radius: var(--tdl-radius-lg, 0.55rem);
    background: var(--tdl-surface-soft);
}

.invoice-efactura-state-icon[b-ufmeqc3odx] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 999px;
    background: #fff;
    font-size: 0.95rem;
    font-weight: 850;
    line-height: 1;
}

.invoice-efactura-state-label[b-ufmeqc3odx] {
    font-size: 0.98rem;
    font-weight: 850;
    color: var(--tdl-text-primary);
}

/* ANAF's own answer is reported separately from TDL's local workflow state. */
.invoice-efactura-state-anaf[b-ufmeqc3odx] {
    margin-top: 0.15rem;
    font-size: 0.86rem;
    color: var(--tdl-text-primary);
}

.invoice-efactura-state-detail[b-ufmeqc3odx] {
    margin-top: 0.2rem;
    font-size: 0.85rem;
    line-height: 1.45;
    color: var(--tdl-text-secondary);
}

.invoice-efactura-state--success[b-ufmeqc3odx] {
    border-left-color: var(--tdl-success);
    background: var(--tdl-success-soft);
}

.invoice-efactura-state--success .invoice-efactura-state-icon[b-ufmeqc3odx] {
    color: var(--tdl-success);
}

.invoice-efactura-state--warning[b-ufmeqc3odx] {
    border-left-color: var(--tdl-warning);
    background: var(--tdl-warning-soft);
}

.invoice-efactura-state--warning .invoice-efactura-state-icon[b-ufmeqc3odx] {
    color: var(--tdl-warning);
}

.invoice-efactura-state--danger[b-ufmeqc3odx] {
    border-left-color: var(--tdl-danger);
    background: var(--tdl-danger-soft);
}

.invoice-efactura-state--danger .invoice-efactura-state-icon[b-ufmeqc3odx] {
    color: var(--tdl-danger);
}

.invoice-efactura-state--info[b-ufmeqc3odx] {
    border-left-color: var(--tdl-primary);
    background: var(--tdl-primary-soft);
}

.invoice-efactura-state--info .invoice-efactura-state-icon[b-ufmeqc3odx] {
    color: var(--tdl-primary-hover);
}

.invoice-efactura-state--muted .invoice-efactura-state-icon[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
}

.invoice-efactura-facts[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem 0.9rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg, 0.55rem);
    background: var(--tdl-surface-soft);
}

.invoice-efactura-fact[b-ufmeqc3odx] {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.invoice-efactura-fact-label[b-ufmeqc3odx] {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tdl-text-muted);
}

.invoice-efactura-fact-value[b-ufmeqc3odx] {
    font-size: 0.86rem;
    color: var(--tdl-text-primary);
    overflow-wrap: anywhere;
}

.invoice-efactura-fact-value--mono[b-ufmeqc3odx] {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
    font-size: 0.82rem;
}

.invoice-efactura-note[b-ufmeqc3odx] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.6rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg, 0.55rem);
    background: var(--tdl-surface);
    color: var(--tdl-text-secondary);
    font-size: 0.85rem;
    line-height: 1.45;
}

.invoice-efactura-note-label[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.invoice-efactura-actions-empty[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
    font-size: 0.85rem;
}

/* Why the upload is disarmed; icon + text so the reason never depends on colour alone. */
.invoice-efactura-send-block[b-ufmeqc3odx] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: 0.55rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--tdl-danger-soft-border);
    border-radius: var(--tdl-radius-lg, 0.55rem);
    background: var(--tdl-danger-soft);
    color: var(--tdl-danger);
    font-size: 0.84rem;
    line-height: 1.45;
}

.invoice-efactura-send-block-icon[b-ufmeqc3odx] {
    flex: 0 0 auto;
    font-weight: 850;
}

/* Neutral, informational: says where these values come from, without implying a problem. */
.invoice-efactura-legacy-note[b-ufmeqc3odx] {
    margin-bottom: 0.5rem;
    padding: 0.5rem 0.7rem;
    border: 1px dashed var(--border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-muted);
    color: var(--text-secondary);
    font-size: 0.82rem;
    line-height: 1.45;
}

/* Amber: the upload succeeded and ANAF is still working. Not an error, not a result yet. */
.invoice-efactura-processing[b-ufmeqc3odx] {
    margin-top: 0.65rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--tdl-warning-soft-border);
    border-radius: var(--tdl-radius-lg, 0.55rem);
    background: var(--tdl-warning-soft);
    color: var(--tdl-warning);
}

.invoice-efactura-processing-head[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
}

/* The icon and the wording carry the state as well as the colour does. */
.invoice-efactura-processing-icon[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.15rem;
    height: 1.15rem;
    border-radius: 50%;
    background: var(--tdl-warning);
    color: var(--tdl-warning-soft);
    font-size: 0.75rem;
    font-weight: 850;
}

.invoice-efactura-processing-text[b-ufmeqc3odx] {
    margin: 0.35rem 0 0;
    font-size: 0.84rem;
    line-height: 1.5;
}

.invoice-efactura-processing-index[b-ufmeqc3odx] {
    font-family: var(--tdl-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-weight: 650;
    overflow-wrap: anywhere;
}

/* Invoice line editor: wide enough to keep one ordinary line on one screen.
   Header and footer stay fixed; only the body scrolls as a fallback on short viewports. */
.invoice-line-modal[b-ufmeqc3odx] {
    width: min(1080px, calc(100vw - 2rem));
    max-height: calc(100vh - 1.5rem);
    overflow: hidden;
    padding: 0;
}

.invoice-line-modal-shell[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 1.5rem);
    min-height: 0;
}

.invoice-line-modal-header[b-ufmeqc3odx] {
    flex: 0 0 auto;
    margin: 0;
    padding: 0 0 0.65rem;
    border-bottom: 1px solid var(--tdl-border);
}

.invoice-line-modal-header .modal-panel-title[b-ufmeqc3odx] {
    font-size: 1.18rem;
}

.invoice-line-modal-header .modal-panel-subtitle[b-ufmeqc3odx] {
    margin-top: 0.15rem;
}

.invoice-line-modal-body[b-ufmeqc3odx] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.7rem 0;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.settings-form.invoice-line-modal-grid[b-ufmeqc3odx] {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 0.7rem;
    margin-bottom: 0;
}

.invoice-line-modal-section[b-ufmeqc3odx] {
    display: grid;
    grid-column: 1 / -1;
    gap: 0.65rem 0.8rem;
    min-width: 0;
    align-items: start;
}

.invoice-line-modal-section--classification[b-ufmeqc3odx] {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
}

.invoice-line-modal-section--commercial[b-ufmeqc3odx] {
    grid-template-columns:
        minmax(8rem, 0.8fr)
        minmax(8rem, 0.75fr)
        minmax(10rem, 1fr)
        minmax(12rem, 1.25fr);
}

.invoice-line-modal .field-hint[b-ufmeqc3odx] {
    margin-top: 0.22rem;
    font-size: 0.78rem;
}

.invoice-line-modal-alert[b-ufmeqc3odx] {
    margin: 0 0 0.7rem;
}

.invoice-line-modal-footer[b-ufmeqc3odx] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0;
    padding: 0.7rem 0 0;
    border-top: 1px solid var(--tdl-border);
    background: var(--tdl-surface);
    box-shadow: 0 -8px 18px rgba(15, 23, 42, 0.04);
}

.invoice-line-modal-total[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.invoice-line-modal-total span[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.invoice-line-modal-total strong[b-ufmeqc3odx] {
    color: var(--tdl-text-primary);
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
}

.invoice-line-modal-footer-actions[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.55rem;
}

@media (max-width: 900px) {
    .invoice-line-modal[b-ufmeqc3odx] {
        width: min(860px, calc(100vw - 1rem));
        max-height: calc(100vh - 1rem);
    }

    .invoice-line-modal-shell[b-ufmeqc3odx] {
        max-height: calc(100vh - 1rem);
    }

    .invoice-line-modal-section--commercial[b-ufmeqc3odx] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .invoice-line-modal[b-ufmeqc3odx] {
        width: calc(100vw - 0.5rem);
        max-height: calc(100vh - 0.5rem);
        border-radius: var(--tdl-radius-lg);
    }

    .invoice-line-modal-shell[b-ufmeqc3odx] {
        max-height: calc(100vh - 0.5rem);
    }

    .invoice-line-modal-section--classification[b-ufmeqc3odx],
    .invoice-line-modal-section--commercial[b-ufmeqc3odx] {
        grid-template-columns: 1fr;
    }

    .invoice-line-modal-footer[b-ufmeqc3odx] {
        align-items: stretch;
        flex-direction: column;
        gap: 0.55rem;
    }

    .invoice-line-modal-total[b-ufmeqc3odx] {
        flex-direction: row;
        justify-content: space-between;
        align-items: baseline;
    }

    .invoice-line-modal-footer-actions[b-ufmeqc3odx] {
        width: 100%;
    }

    .invoice-line-modal-footer-actions .btn[b-ufmeqc3odx] {
        flex: 1 1 0;
    }
}

/* Secondary technical tools; deliberately quieter than the contextual SPV actions. */
.invoice-efactura-tools[b-ufmeqc3odx] {
    margin-top: 0.9rem;
    padding: 0.75rem 0.9rem;
    border: 1px dashed var(--tdl-border-strong);
    border-radius: var(--tdl-radius-lg, 0.55rem);
    background: var(--tdl-surface);
}

.invoice-efactura-tools-title[b-ufmeqc3odx] {
    margin-bottom: 0.5rem;
    color: var(--tdl-text-muted);
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.invoice-efactura-tools-actions[b-ufmeqc3odx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.invoice-efactura-attempts[b-ufmeqc3odx] {
    display: grid;
    gap: 0.5rem;
}

.invoice-efactura-attempt[b-ufmeqc3odx] {
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--tdl-border);
    border-left: 4px solid var(--tdl-text-muted);
    border-radius: var(--tdl-radius-lg, 0.55rem);
    background: var(--tdl-surface-soft);
}

.invoice-efactura-attempt--success[b-ufmeqc3odx] { border-left-color: var(--tdl-success); }
.invoice-efactura-attempt--warning[b-ufmeqc3odx] { border-left-color: var(--tdl-warning); }
.invoice-efactura-attempt--danger[b-ufmeqc3odx] { border-left-color: var(--tdl-danger); }
.invoice-efactura-attempt--info[b-ufmeqc3odx] { border-left-color: var(--tdl-primary); }

.invoice-efactura-attempt-head[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.invoice-efactura-attempt-meta[b-ufmeqc3odx] {
    margin-top: 0.25rem;
    color: var(--tdl-text-muted);
    font-size: 0.79rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.invoice-efactura-attempt-message[b-ufmeqc3odx] {
    margin-top: 0.25rem;
    color: var(--tdl-text-secondary);
    font-size: 0.82rem;
    line-height: 1.45;
}

.invoice-efactura-attempts-link[b-ufmeqc3odx] {
    padding: 0.25rem 0;
}

.invoice-documents-toolbar[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.invoice-document-filters[b-ufmeqc3odx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.7rem;
}

.invoice-document-filter[b-ufmeqc3odx] {
    min-width: 4.5rem;
}

.invoice-efactura-header[b-ufmeqc3odx] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
}

.invoice-efactura-title[b-ufmeqc3odx] {
    color: var(--tdl-text-primary);
    font-size: 0.9rem;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.invoice-efactura-subtitle[b-ufmeqc3odx],
.invoice-efactura-meta[b-ufmeqc3odx],
.invoice-efactura-message[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
    font-size: 0.82rem;
    line-height: 1.4;
}

.invoice-efactura-meta[b-ufmeqc3odx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.9rem;
    margin-top: 0.7rem;
}

.invoice-efactura-message[b-ufmeqc3odx] {
    margin-top: 0.6rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--tdl-border);
    color: var(--tdl-text-secondary);
}

.invoice-efactura-actions[b-ufmeqc3odx],
.invoice-efactura-downloads[b-ufmeqc3odx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.75rem;
    padding-top: 0.7rem;
    border-top: 1px solid var(--tdl-border);
}

.invoice-efactura-downloads[b-ufmeqc3odx] {
    margin-top: 0.35rem;
    padding-top: 0.55rem;
}

.invoice-efactura-validation[b-ufmeqc3odx] {
    margin-top: 0.7rem;
    padding: 0.7rem 0.8rem;
    border-radius: var(--tdl-radius-md, 0.55rem);
    font-size: 0.82rem;
    line-height: 1.45;
}

.invoice-efactura-validation ul[b-ufmeqc3odx] {
    margin: 0.45rem 0 0;
    padding-left: 1.1rem;
}

.invoice-efactura-validation--valid[b-ufmeqc3odx] {
    background: var(--tdl-success-soft);
    color: var(--tdl-success);
}

.invoice-efactura-validation--invalid[b-ufmeqc3odx] {
    background: var(--tdl-danger-soft);
    color: var(--tdl-danger);
}

.invoice-efactura-validation-warnings[b-ufmeqc3odx] {
    margin-top: 0.45rem;
    color: #7a4a0f;
}

.efactura-pill[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: max-content;
    padding: 0.32rem 0.68rem;
    border-radius: var(--tdl-radius-pill);
    font-size: 0.78rem;
    font-weight: 850;
}

.efactura-pill--muted[b-ufmeqc3odx] { background: var(--tdl-surface); color: var(--tdl-text-muted); }
.efactura-pill--info[b-ufmeqc3odx] { background: var(--tdl-primary-soft); color: var(--tdl-primary-hover); }
.efactura-pill--warning[b-ufmeqc3odx] { background: var(--tdl-warning-soft); color: #7a4a0f; }
.efactura-pill--success[b-ufmeqc3odx] { background: var(--tdl-success-soft); color: var(--tdl-success); }
.efactura-pill--danger[b-ufmeqc3odx] { background: var(--tdl-danger-soft); color: var(--tdl-danger); }

@media (max-width: 620px) {
    .invoice-efactura-header[b-ufmeqc3odx] {
        align-items: stretch;
        flex-direction: column;
    }

    .efactura-pill[b-ufmeqc3odx],
    .invoice-efactura-actions .btn[b-ufmeqc3odx],
    .invoice-efactura-downloads .btn[b-ufmeqc3odx] {
        width: 100%;
    }
}

.invoice-audit-section[b-ufmeqc3odx] {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg, 0.75rem);
    background: var(--tdl-surface-soft);
}

.invoice-audit-section-title[b-ufmeqc3odx] {
    margin-bottom: 0.85rem;
    color: var(--tdl-text-primary);
    font-size: 0.88rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.invoice-audit-timeline[b-ufmeqc3odx] {
    display: grid;
    gap: 0.75rem;
}

.invoice-audit-item[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.65rem;
}

.invoice-audit-dot[b-ufmeqc3odx] {
    width: 0.72rem;
    height: 0.72rem;
    margin-top: 0.35rem;
    border-radius: 999px;
    background: var(--tdl-primary);
    box-shadow: 0 0 0 0.22rem var(--tdl-primary-soft);
}

.invoice-audit-content[b-ufmeqc3odx] {
    min-width: 0;
    padding-bottom: 0.72rem;
    border-bottom: 1px solid var(--tdl-border);
}

.invoice-audit-item:last-child .invoice-audit-content[b-ufmeqc3odx] {
    padding-bottom: 0;
    border-bottom: 0;
}

.invoice-audit-main[b-ufmeqc3odx],
.invoice-audit-meta[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.invoice-audit-main strong[b-ufmeqc3odx] {
    color: var(--tdl-text-primary);
    font-weight: 850;
}

.invoice-audit-main span[b-ufmeqc3odx],
.invoice-audit-meta[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
    font-size: 0.78rem;
}

.invoice-audit-summary[b-ufmeqc3odx] {
    margin-top: 0.2rem;
    color: var(--tdl-text-secondary);
    font-size: 0.9rem;
    line-height: 1.4;
}

.invoice-audit-details[b-ufmeqc3odx] {
    margin-top: 0.22rem;
    color: var(--tdl-text-muted);
    font-size: 0.82rem;
    line-height: 1.35;
}

.invoice-audit-meta[b-ufmeqc3odx] {
    justify-content: flex-start;
    margin-top: 0.35rem;
}

.invoice-documents-section[b-ufmeqc3odx] {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg, 0.75rem);
    background: var(--tdl-surface);
}

.invoice-document-list[b-ufmeqc3odx] {
    display: grid;
    gap: 0.75rem;
}

.invoice-document-item[b-ufmeqc3odx] {
    padding: 0.85rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md, 0.65rem);
    background: var(--tdl-surface-soft);
}

.invoice-document-main[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
}

.invoice-document-main strong[b-ufmeqc3odx],
.invoice-document-main span[b-ufmeqc3odx] {
    display: block;
}

.invoice-document-main strong[b-ufmeqc3odx] {
    color: var(--tdl-text-primary);
    font-weight: 850;
    overflow-wrap: anywhere;
}

.invoice-document-main span[b-ufmeqc3odx],
.invoice-document-meta[b-ufmeqc3odx] {
    color: var(--tdl-text-muted);
    font-size: 0.8rem;
}

.invoice-document-meta[b-ufmeqc3odx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.9rem;
    margin-top: 0.55rem;
}

@media (max-width: 780px) {
    .invoice-document-main[b-ufmeqc3odx] {
        align-items: flex-start;
        flex-direction: column;
    }

    .invoice-document-main .btn[b-ufmeqc3odx] {
        width: 100%;
    }
}

.invoice-efactura-transport-note[b-ufmeqc3odx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
    margin-top: 0.65rem;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md, 0.55rem);
    color: var(--tdl-text-secondary);
    font-size: 0.8rem;
    line-height: 1.4;
    background: var(--tdl-surface);
}

.invoice-efactura-transport-note--mock[b-ufmeqc3odx] {
    background: #eef6ff;
    border-color: #bfdbfe;
}

.invoice-efactura-transport-note--ready[b-ufmeqc3odx] {
    background: #ecfdf3;
    border-color: #bbf7d0;
}

.invoice-efactura-transport-note--blocked[b-ufmeqc3odx] {
    background: #fff7ed;
    border-color: #fed7aa;
}

.invoice-efactura-oauth-row[b-ufmeqc3odx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.4rem;
}

.invoice-efactura-checklist[b-ufmeqc3odx] {
    display: grid;
    gap: 0.45rem;
    margin-top: 0.65rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md, 0.55rem);
    background: var(--tdl-surface);
    color: var(--tdl-text-secondary);
    font-size: 0.82rem;
}

.invoice-efactura-checklist-title[b-ufmeqc3odx] {
    font-weight: 800;
    color: var(--tdl-text-primary);
    letter-spacing: 0.015em;
}

.invoice-efactura-checklist-item[b-ufmeqc3odx] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    line-height: 1.35;
}

.invoice-efactura-checklist-icon[b-ufmeqc3odx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 900;
    margin-top: 0.05rem;
}

.invoice-efactura-checklist-item--ok .invoice-efactura-checklist-icon[b-ufmeqc3odx] {
    background: #dcfce7;
    color: #166534;
}

.invoice-efactura-checklist-item--pending .invoice-efactura-checklist-icon[b-ufmeqc3odx],
.invoice-efactura-checklist-item--warning .invoice-efactura-checklist-icon[b-ufmeqc3odx] {
    background: #fef3c7;
    color: #92400e;
}

.invoice-efactura-checklist-item--blocked .invoice-efactura-checklist-icon[b-ufmeqc3odx] {
    background: #fee2e2;
    color: #991b1b;
}

.invoice-document-header[b-ufmeqc3odx] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
    flex-wrap: wrap;
}

.invoice-document-header .invoice-audit-section-title[b-ufmeqc3odx] {
    margin-bottom: 0;
}

.invoice-document-header-actions[b-ufmeqc3odx] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

@media (max-width: 720px) {
    .invoice-document-header-actions[b-ufmeqc3odx],
    .invoice-document-header-actions .btn[b-ufmeqc3odx] {
        width: 100%;
    }
}

/* ---- Origine SPV ------------------------------------------------------------------------ */

/* Deliberately quieter than the storno pill: this marks provenance, not a fiscal state. */
/*
   The badge flows inline after the number and drops under it when the column is narrow. The cell
   itself stays a table cell: it used to be `display: flex`, which takes a <td> out of the table
   model - the browser boxes it in an anonymous cell, so its background covered only its content and
   a selected row showed the number as a separate, shorter block.
*/
.spv-source-badge[b-ufmeqc3odx] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.05rem 0.4rem;
    border: 1px solid var(--bs-border-color, #ced4da);
    border-radius: 0.75rem;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    vertical-align: middle;
    white-space: nowrap;
}

.spv-source-banner[b-ufmeqc3odx] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    margin-bottom: 0.9rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--bs-border-color, #ced4da);
    border-radius: 0.5rem;
    font-size: 0.9rem;
}

.spv-source-banner .spv-source-badge[b-ufmeqc3odx] {
    margin-left: 0;
    flex: 0 0 auto;
}

/*
 * Învelișul comun TdlModal randează panoul; markup-ul istoric al modalului rămâne dedesubt ca
 * simplu container, fără să mai deseneze un al doilea panou peste primul.
 */
.tdl-modal-passthrough[b-ufmeqc3odx] {
    display: contents;
}

/* ==========================================================================================
   Invoice list as cards: the invoice-specific half
   ==========================================================================================

   The card layout itself is the shared .tdl-card-grid contract in app.css. What belongs here is
   only what is true of an invoice: which two cells make up the card's title, where the client
   name stops being part of the heading, and what a selected card looks like.
   ========================================================================================== */

@media (max-width: 767.98px) {
    /* Status and number are the card's title row, so they carry no repeated label. */
    .invoice-list-table tbody td.invoice-cell-status[b-ufmeqc3odx],
    .invoice-list-table tbody td.invoice-number-cell[b-ufmeqc3odx] {
        justify-content: flex-start;
        text-align: left;
        padding-bottom: 0.15rem;
    }

    .invoice-list-table tbody td.invoice-cell-status[b-ufmeqc3odx]::before,
    .invoice-list-table tbody td.invoice-number-cell[b-ufmeqc3odx]::before {
        content: none;
    }

    .invoice-list-table tbody td.invoice-number-cell[b-ufmeqc3odx] {
        font-size: 1.02rem;
        font-weight: 800;
    }

    .invoice-list-table tbody td.invoice-cell-client[b-ufmeqc3odx] {
        padding-bottom: 0.5rem;
        border-bottom: 1px solid var(--tdl-border);
        font-weight: 700;
    }

    /* The card IS the selection surface; a cell-level accent has no edge to sit on here. */
    .invoice-row--selected > *[b-ufmeqc3odx] {
        background: transparent !important;
    }

    .invoice-list-table tbody tr.invoice-row--selected[b-ufmeqc3odx] {
        border-color: var(--tdl-primary, var(--tdl-primary));
        background: color-mix(in srgb, var(--tdl-primary-soft, #e6eff5) 42%, var(--tdl-surface, #fff) 58%);
        box-shadow: inset 4px 0 0 var(--tdl-primary, var(--tdl-primary));
    }

    .invoice-list-table tbody tr.invoice-row--selected > *[b-ufmeqc3odx] {
        box-shadow: none;
    }
}

/* Final responsive column override for the compact create form (the file retains older editor
   declarations for list/edit compatibility). */
@media (min-width: 1200px) {
    .invoice-page-grid--create .form-grid[b-ufmeqc3odx] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 721px) and (max-width: 1199px) {
    .invoice-page-grid--create .form-grid[b-ufmeqc3odx] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .invoice-page-grid--create .form-grid[b-ufmeqc3odx] { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Confirmarea de anulare/ștergere fiscală

   Rezumatul era o listă de <span>-uri fără nicio regulă de layout, deci cele patru fapte se lipeau
   într-o singură propoziție continuă („Total: 119,00 RONStatus document: Emisă..."). Nu este un
   paragraf, ci patru perechi etichetă/valoare, așa că se desenează ca atare: grilă 2x2 pe ecran
   larg, o coloană pe telefon.
   ========================================================================== */

.invoice-lifecycle-modal-body[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.invoice-lifecycle-facts[b-ufmeqc3odx] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    margin: 0;
    padding: 0.75rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft, var(--tdl-surface));
}

.invoice-lifecycle-fact[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    /* Fără asta o valoare lungă (total + monedă) lățește coloana și împinge dialogul în overflow. */
    min-width: 0;
}

.invoice-lifecycle-fact dt[b-ufmeqc3odx] {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tdl-text-muted, #64748b);
}

.invoice-lifecycle-fact dd[b-ufmeqc3odx] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    overflow-wrap: anywhere;
}

/* Tratarea încasărilor este o decizie separată de rezumat, nu încă un câmp în șir. */
.invoice-lifecycle-payment-section[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 0.75rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
}

.invoice-lifecycle-section-title[b-ufmeqc3odx] {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tdl-text-muted, #64748b);
}

.invoice-lifecycle-blocked-actions[b-ufmeqc3odx] {
    margin-top: 0.5rem;
}

@media (max-width: 640px) {
    .invoice-lifecycle-facts[b-ufmeqc3odx] {
        grid-template-columns: minmax(0, 1fr);
    }
}


/* ---------------------------------------------------------------------------------------------
   Discount de linie

   Roșu discret, nu roșu de eroare: o reducere este o cifră normală care se SCADE, iar tonul spune
   doar în ce direcție merge. Aceeași culoare pe care documentul o folosește pentru sold restant.
   Defalcarea din modal are stilurile ei, în InvoiceLineDiscountBreakdown.razor.css.
   --------------------------------------------------------------------------------------------- */

/*
   Rândul de discount - un rând complet, cu numărul lui propriu, în tabelele de detalii și în grila
   editorului - nu un rând indentat, subordonat. Rămâne identificabil prin culoare/cursive, mai scund
   decât un articol, dar aceleași coloane.
*/
.invoice-line-discount-row td[b-ufmeqc3odx] {
    padding-top: 0.2rem;
    padding-bottom: 0.45rem;
    color: #9b2c1f;
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
}

.invoice-lines-row--discount[b-ufmeqc3odx] {
    color: #9b2c1f;
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
}

.invoice-lines-row--discount .invoice-lines-col[b-ufmeqc3odx] {
    padding-top: 0.15rem;
    padding-bottom: 0.4rem;
}

.invoice-line-discount-label[b-ufmeqc3odx] {
    font-style: italic;
}

.invoice-line-discount-vat[b-ufmeqc3odx] {
    font-size: 0.78rem;
    white-space: nowrap;
}

.lines-col-category[b-ufmeqc3odx] {
    max-width: 14rem;
}



/* ---------------------------------------------------------------------------------------------
   Create / Edit invoice workspace (desktop)

   The editor used to grow the document: header, metadata, every line and the totals stacked into
   one long page, so writing a three-line invoice meant scrolling away from the totals and the
   Save/Issue buttons to reach the lines and back.

   Now the editor claims the viewport it already sits in and distributes it - fixed chrome keeps its
   natural height, the line list absorbs the rest. The flex chain runs
   .invoice-page-grid--create -> .invoice-form-column -> SectionCard (FillHeight parameter)
   -> .invoice-editor-form (global, because the <form> is unscoped) -> the line list below.
   Every link needs min-height:0 or the chain refuses to shrink.
   --------------------------------------------------------------------------------------------- */
@media (min-width: 901px) {
    .invoice-page-grid--create[b-ufmeqc3odx] {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }

    .invoice-page-grid--create .invoice-form-column[b-ufmeqc3odx] {
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        min-height: 0;
    }

    /*
     * The single scroll region - and it only becomes one when it has to.
     *
     * Clamping the whole column squeezed the list to its minimum even for three lines, which put a
     * scrollbar on an invoice that had nothing to scroll. Capping the LIST instead means a short
     * invoice renders at its natural height with no scrollbar at all, while a long one stops growing
     * at roughly half the viewport and scrolls internally. The cap is a viewport proportion rather
     * than a magic pixel count, so it holds at every screen height.
     */
    .invoice-page-grid--create .invoice-lines-editor[b-ufmeqc3odx] {
        /* A floor as well as a cap: without min-height the height-constrained column shrinks this
           region to nothing at 768px and the table disappears entirely. */
        flex: 0 1 auto;
        min-height: 11rem;
        max-height: 46dvh;
        overflow-y: auto;
        overflow-x: auto;
    }

    /* Column headings have to survive scrolling or a long list loses its meaning. */
    .invoice-page-grid--create .invoice-lines-row--header[b-ufmeqc3odx] {
        position: sticky;
        top: 0;
        z-index: 2;
    }

    /* The reason the layout exists: these never scroll away with the lines. */
    .invoice-page-grid--create .totals-panel[b-ufmeqc3odx],
    .invoice-page-grid--create .lines-toolbar[b-ufmeqc3odx] {
        flex: 0 0 auto;
    }

    /* Vertical space the old layout spent on air. */
    .invoice-page-grid--create .form-section-heading[b-ufmeqc3odx] {
        margin-top: 0.55rem;
        margin-bottom: 0.3rem;
    }

    .invoice-page-grid--create .totals-panel[b-ufmeqc3odx] {
        margin-top: 0.55rem;
    }
}

/* Narrow viewports: no clamp, no nested scroller, no viewport jail - the page scrolls as always. */
@media (max-width: 900px) {
    .invoice-page-grid--create[b-ufmeqc3odx] {
        display: block;
    }

    .invoice-page-grid--create .invoice-lines-editor[b-ufmeqc3odx] {
        overflow: auto;
        max-height: none;
    }
}

/* ---------------------------------------------------------------------------------------------
   Editor density (desktop)

   Making the line list scrollable moved the problem without solving it: the operator still had to
   travel past a tall metadata block to reach the lines. This reclaims that vertical space so the
   lines start near the top of the card instead of below a screenful of chrome.

   Nothing here shrinks type below the app's normal reading size - the space comes from padding,
   margins and helper text, not from making the form harder to read.
   --------------------------------------------------------------------------------------------- */
@media (min-width: 1200px) {
    /*
     * Two rows, not three - measured at 1366x768 this block was 260px, the single largest thing
     * between the operator and the first line.
     *
     *   row 1:  Client + Adaugă client        |  Serie + Editează serie
     *   row 2:  Tip document | Tratament fiscal | Emitere | Scadență | Monedă
     *
     * Twelve columns rather than four, because row 2 needs five cells of unequal weight: the
     * segmented document type and the fiscal-treatment select carry long labels and get 3 each, the
     * two dates and the currency get 2 each. Fractions, not pixels, so the row still divides
     * correctly on a 1200px screen and on a 2560px one.
     *
     * Placement is by what a field IS, not by a span- utility: a rule that says "the client field is
     * half the first row" survives someone reordering the markup, and `span 2` in a twelve-column
     * grid would silently mean something entirely different from `span 2` in a four-column one.
     */
    .invoice-page-grid--create .form-grid--invoice-header[b-ufmeqc3odx] {
        grid-template-columns: repeat(12, minmax(0, 1fr));
        gap: 0.55rem 0.9rem;
    }

    .invoice-page-grid--create .form-field--client-data[b-ufmeqc3odx],
    .invoice-page-grid--create .form-field--series[b-ufmeqc3odx] {
        grid-column: span 6;
    }

    /*
     * Row 2, sized by what each control has to display rather than by equal shares. Measured at
     * 1366x768 the five need 234 / 190 / 130 / 130 / 190px and the row offers 980, so the fractions
     * below leave every one of them ~10% of slack. No pixel widths: the same proportions divide a
     * 2560px row correctly, and minmax(0, …) lets a select shrink rather than push the row wide.
     */
    .invoice-page-grid--create .form-subrow--document-meta[b-ufmeqc3odx] {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns:
            minmax(0, 1.35fr) minmax(0, 1.1fr)
            minmax(0, 0.78fr) minmax(0, 0.78fr)
            minmax(0, 1.12fr);
        align-items: start;
        gap: 0.55rem 0.9rem;
    }

    /* Conditional fields - VATEX code, fiscal reason, post-issue reason - still take a row of their
       own when the treatment calls for them. */
    .invoice-page-grid--create .form-grid--invoice-header .form-field--full[b-ufmeqc3odx] {
        grid-column: 1 / -1;
    }

    /* The action beside Client and Serie is a word, not a sentence: at 9.5rem it was eating the
       input it belongs to once the field is half a row instead of a whole one. */
    .invoice-page-grid--create .client-edit-button[b-ufmeqc3odx] {
        min-width: 0;
        padding-inline: 0.7rem;
    }

    /*
     * The segmented control belongs to InvoiceBusinessTypeSelector, so this needs ::deep - and it is
     * about how much room the field gives it, not about how the control looks. At 1.1rem of padding
     * per side the three segments needed 249px; a quarter of a 1366px card row is 234px, so the bar
     * wrapped to two lines and row 2 grew by 34px on exactly the screen this work is about. The
     * segments stay well above a comfortable click target at 0.7rem.
     */
    .invoice-page-grid--create .form-field--document-type[b-ufmeqc3odx]  .business-type-option {
        padding-inline: 0.7rem;
    }
}

@media (min-width: 901px) {
    .invoice-page-grid--create .form-grid[b-ufmeqc3odx] {
        gap: 0.6rem 0.9rem;
        margin-bottom: 0.4rem;
    }

    .invoice-page-grid--create .form-field[b-ufmeqc3odx] {
        gap: 0.15rem;
    }

    .invoice-page-grid--create .form-label[b-ufmeqc3odx] {
        margin-bottom: 0.1rem;
        line-height: 1.25;
    }

    /* Helper text under a field is reference material, not something to read every time. It stays
       available but stops claiming a full line of its own at full size. */
    .invoice-page-grid--create .form-text[b-ufmeqc3odx] {
        font-size: 0.72rem;
        line-height: 1.25;
        margin-top: 0.1rem;
    }

    /* Collapsed "Detalii suplimentare" must cost exactly one compact row. */
    .invoice-page-grid--create .invoice-additional-details[b-ufmeqc3odx] {
        margin: 0.35rem 0;
    }

    .invoice-page-grid--create .invoice-additional-details:not([open]) > summary[b-ufmeqc3odx] {
        padding: 0.35rem 0.6rem;
    }

    .invoice-page-grid--create .lines-toolbar[b-ufmeqc3odx] {
        margin-bottom: 0.35rem;
    }

    .invoice-page-grid--create .lines-subtitle[b-ufmeqc3odx] {
        display: none;
    }
}

/* ---------------------------------------------------------------------------------------------
   Editor density, second pass.

   Measured at 1366x768 with a 3-line invoice, the first row's bottom sat at y=826 in a 768px
   viewport - 58px below the fold - with the pixels going to: a 129px gap between the page header
   and the card, a 260px three-row metadata block, and two headings saying the same thing.

   This reclaims that. Type sizes are untouched; the space comes from gaps, padding and duplication.
   --------------------------------------------------------------------------------------------- */
@media (min-width: 901px) {
    /* The card started 129px below the page header. Most of it was stacked margins. */
    .invoice-page-grid--create[b-ufmeqc3odx] {
        margin-top: 0;
        gap: 0;
    }

    .invoice-page-grid--create .form-section-heading:first-of-type[b-ufmeqc3odx] {
        margin-top: 0;
    }

    /* Section headings are orientation, not content: they do not need a full line each. */
    .invoice-page-grid--create .form-section-heading[b-ufmeqc3odx] {
        font-size: 0.72rem;
        margin-top: 0.4rem;
        margin-bottom: 0.25rem;
    }

    /* Heading and actions share one row instead of stacking. */
    .invoice-page-grid--create .lines-toolbar[b-ufmeqc3odx] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        flex-wrap: wrap;
        margin: 0.3rem 0 0.3rem;
    }

    .invoice-page-grid--create .lines-title[b-ufmeqc3odx] {
        margin: 0;
        font-size: 0.95rem;
    }

    .invoice-page-grid--create .lines-toolbar-actions[b-ufmeqc3odx] {
        display: flex;
        gap: 0.4rem;
        flex-wrap: wrap;
    }

    .invoice-page-grid--create .lines-toolbar-actions .btn[b-ufmeqc3odx] {
        padding: 0.3rem 0.7rem;
        font-size: 0.82rem;
    }

    /*
     * Totals: three dense rows in one panel, not three cards. The height was going into the body
     * line-height (1.55, sized for reading paragraphs) applied to three two-word rows.
     */
    .invoice-page-grid--create .totals-panel[b-ufmeqc3odx] {
        padding: 0.35rem 0.75rem;
        gap: 0;
        margin-top: 0.3rem;
        margin-bottom: 0.4rem;
    }

    .invoice-page-grid--create .totals-row[b-ufmeqc3odx] {
        padding: 0.08rem 0;
        line-height: 1.25;
    }

    .invoice-page-grid--create .totals-row-grand[b-ufmeqc3odx] {
        margin-top: 0.2rem;
        padding-top: 0.28rem;
        font-size: 1rem;
    }
}

/* ---------------------------------------------------------------------------------------------
   Editor density, third pass - /facturi/noua at 1366x768.

   Measured on the create route itself rather than extrapolated from edit: three real lines, the
   document was 1050px tall in a 768px viewport, so 282px of the form could only be reached by
   scrolling - including the totals and, at the moment they matter most, the line rows.

   The pixels came from four places, and this block addresses all four:
     - a three-row metadata grid, dealt with in the 1200px block above;
     - confirmation text under Client and Serie, moved beside their labels (markup);
     - an 8px grid gap between line rows that already separate themselves with a border;
     - padding on the totals panel and the action bar sized for a page, not for a workspace.

   Type sizes are untouched. Controls stay at their normal 2.45rem, which is the bottom of the
   38-42px band, so click targets do not move.
   --------------------------------------------------------------------------------------------- */
@media (min-width: 901px) {
    /* Beside the label, in space that was empty anyway. Quiet enough not to compete with it. */
    .invoice-page-grid--create .form-label-row[b-ufmeqc3odx] {
        margin-bottom: 0.1rem;
        gap: 0.5rem;
    }

    .invoice-page-grid--create .field-inline-hint[b-ufmeqc3odx] {
        font-size: 0.78rem;
    }

    /*
     * The line rows carry their own bottom border, so the grid gap was drawing 8px of nothing
     * between each pair - 24px on a three-line invoice, and the separators read as weaker for it.
     */
    .invoice-page-grid--create .invoice-lines-editor[b-ufmeqc3odx] {
        gap: 0;
        margin-bottom: 0.4rem;
    }

    .invoice-page-grid--create .invoice-lines-row--data[b-ufmeqc3odx] {
        padding-top: 0.3rem;
        padding-bottom: 0.3rem;
    }

    .invoice-page-grid--create .invoice-lines-row--header[b-ufmeqc3odx] {
        padding-top: 0.35rem;
        padding-bottom: 0.35rem;
    }

    /* The bar is pinned, so its padding is paid on every screen at every scroll position. */
    .invoice-page-grid--create .sticky-action-bar--totals[b-ufmeqc3odx] {
        margin-top: 0.4rem;
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }

    .custom-card-header[b-ufmeqc3odx] {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin-bottom: 1.25rem;
        padding-bottom: 0.5rem;
        border-bottom: 1px solid #e9ecef;
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .custom-card-header-left[b-ufmeqc3odx] {
        flex: 1;
        min-width: 200px;
    }

        .custom-card-header-left .card-title[b-ufmeqc3odx] {
            margin: 0;
            font-size: 1.5rem;
            font-weight: 600;
            line-height: 1.2;
        }

        .custom-card-header-left .card-subtitle[b-ufmeqc3odx] {
            margin: 0.25rem 0 0 0;
            color: #6c757d;
            font-size: 0.875rem;
        }

    .custom-card-header-actions[b-ufmeqc3odx] {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        flex-wrap: wrap;
        padding-top: 0.25rem;
    }

        .custom-card-header-actions .page-chip[b-ufmeqc3odx] {
            font-size: 0.875rem;
            color: #495057;
            background: #f8f9fa;
            padding: 0.375rem 0.75rem;
            border-radius: 1rem;
            border: 1px solid #dee2e6;
            white-space: nowrap;
        }

    /* If you need to remove any default SectionCard padding */
    .section-card .card-body[b-ufmeqc3odx] {
        padding-top: 0.5rem;
    }

    /* Responsive */
    @media (max-width: 768px) {
        .custom-card-header[b-ufmeqc3odx] {
            flex-direction: column;
            align-items: stretch;
        }

        .custom-card-header-actions[b-ufmeqc3odx] {
            justify-content: flex-start;
        }
    }
}

/* Storno afișat sub factura corectată: marcajul și retragerea spun că rândul aparține celui de
   deasupra. Doar în vizualizarea implicită - sub o sortare manuală relația nu mai este garantată
   de poziție, așa că nici marcajul nu se aplică. */
.invoice-number-cell--correction[b-ufmeqc3odx] {
    padding-left: 1.25rem;
}

.invoice-correction-marker[b-ufmeqc3odx] {
    color: var(--tdl-text-muted, #6c757d);
    margin-right: 0.35rem;
}

/*
   Metadata ANAF: text secundar SUB badge, nu conținut al lui.

   Identificatorul stătea ÎN pilulă, pe a doua linie a ei, ca să spună că starea și id-ul sunt
   același fapt. Costul era prea mare: pilula creștea pe verticală, se înghesuia, iar id-ul lung o
   făcea și lată. Rămân în aceeași celulă, deci relația se citește în continuare din poziție.
   Valoarea e monospațiată pentru că se compară cifră cu cifră cu ce arată SPV-ul.

   Fără background, fără chenar, fără greutate de badge - altfel citește ca o a doua stare. Numărul
   poate fi lung, deci se taie cu ellipsis şi îşi ţine valoarea întreagă în `title`, ca lăţimea
   coloanei să nu depindă de lungimea unui id ANAF.
*/
.invoice-spv-identifier[b-ufmeqc3odx] {
    display: block;
    margin-top: .2rem;
    color: var(--tdl-text-muted);
    font-size: .72rem;
    font-weight: 500;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.invoice-spv-identifier__value[b-ufmeqc3odx] {
    font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, monospace);
}

.detail-field-split[b-ufmeqc3odx] {
    display: flex !important;
    flex-direction: row !important; /* Forces them side-by-side */
    justify-content: space-between;
    align-items: flex-start; /* Aligns the tops of both columns perfectly */
    width: 100%;
    gap: 1rem;
}

.split-item[b-ufmeqc3odx] {
    display: flex;
    flex-direction: column;
}

.split-item-right[b-ufmeqc3odx] {
    align-items: flex-end;
    text-align: right;
}

.modal-panel-header > div:first-child[b-ufmeqc3odx] {
    display: flex;
    align-items: center;
    gap: 8px; /* Adds space between pill and text */
}
/* /Pages/InvoiceSeries.razor.rz.scp.css */
/* Per-page layout for /serii-facturi.
   Visual primitives (stat-tile, status-pill, empty-state, page-chip, form-grid,
   form-field, field-hint, required-star, form-actions, list-footer, message-stack)
   are defined in wwwroot/css/app.css. */

/* ── Stats grid layout ─────────────────────── */

.series-stats-grid[b-3cmfhv6k16] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

/* ── Page grid (form + list) ────────────────── */

/*
   Lista este elementul principal, deci stă prima și ocupă ~69%; formularul de adăugare/editare o
   însoțește la dreapta, pe ~31%. Raportul este capătul de sus al intervalului cerut (60-70%) pentru
   că sub el cele opt coloane nu mai încap la 1366px, iar ultimele două ies din înveliș. Ordinea este cea din marcaj - lista chiar este primul copil -
   deci ordinea vizuală, cea de citire și cea de tabulare coincid, iar pe ecran îngust stivuirea dă
   automat „lista întâi, formularul dedesubt”, fără nicio regulă suplimentară.
*/
.series-page-grid[b-3cmfhv6k16] {
    display: grid;
    grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr);
    gap: 1.15rem;
    align-items: start;
}

.series-page-grid > *[b-3cmfhv6k16] {
    min-width: 0;
}

.series-filters[b-3cmfhv6k16] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(150px, 0.4fr) minmax(120px, 0.3fr) minmax(130px, 0.3fr);
    gap: 0.65rem;
    margin-bottom: 1rem;
}

.series-filters > *[b-3cmfhv6k16] {
    min-width: 0;
    max-width: 100%;
}

.field-hint--warning[b-3cmfhv6k16] {
    color: var(--tdl-warning-text, #92400e);
    font-weight: 700;
    overflow-wrap: anywhere;
}

/*
    Nota despre identitatea înghețată a unei serii folosite.

    Ocupă toată lățimea formularului, nu coloana unui câmp: sunt două propoziții, iar într-o coloană
    de ~150px ele devin un zid de zece rânduri îngroșate care sperie mai tare decât informează. Tonul
    este de explicație, nu de avertizare - nimic nu e în neregulă, doar o parte din câmpuri e fixată.
*/
.identity-note[b-3cmfhv6k16] {
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--tdl-warning-text, #92400e);
    background: var(--tdl-warning-soft, #fffbeb);
    border: 1px solid var(--tdl-warning-soft-border, #fde68a);
    border-radius: var(--tdl-radius-lg);
    padding: 0.7rem 0.9rem;
    margin-bottom: 1.1rem;
}

.identity-note strong[b-3cmfhv6k16] {
    font-weight: 700;
}

.text-uppercase-input[b-3cmfhv6k16] {
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* ── Number preview ─────────────────────────── */

.number-preview[b-3cmfhv6k16] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--tdl-primary-soft);
    border: 1px solid var(--tdl-primary-soft-border);
    border-radius: var(--tdl-radius-lg);
    padding: 0.85rem 1.1rem;
    margin-bottom: 1.1rem;
    gap: 1rem;
}

.preview-label[b-3cmfhv6k16] {
    font-size: 0.82rem;
    color: var(--tdl-primary-hover);
    font-weight: 600;
}

.preview-value[b-3cmfhv6k16] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--tdl-primary-active);
    letter-spacing: 0.04em;
    font-family: var(--font-mono);
}

/* ── List table specifics ───────────────────── */

/*
   Opt coloane într-o coloană de pagină de ~65% este strâmt la 1366px, iar tabelul ajungea să
   deruleze pe orizontală în propriul înveliș - adică ultimele coloane, „Utilizare” și „Stare”,
   dispăreau exact pe rezoluția pe care lucrează clientul.

   Se strâmtorează spațierea, nu conținutul: nicio coloană nu este ascunsă, pentru că fiecare dintre
   ele răspunde la o întrebare pe care handoff-ul o cere vizibilă fără să deschizi seria.
*/
/* Selectorul oglindește forma celui din Bootstrap (`.table > :not(caption) > * > *`), altfel
   padding-ul cadrului rămâne mai specific și regula de aici nu are niciun efect.

   `::deep` este obligatoriu, nu decorativ: antetele sortabile sunt randate de
   SortableColumnHeader, deci `<th>`-urile lor poartă marcajul de scope AL COMPONENTEI, nu al
   paginii. O regulă scoped normală trecea pe lângă exact coloanele care ocupau cel mai mult loc, iar
   tabelul continua să depășească învelișul cu aceiași pixeli oricât se strâmtora restul.

   Textul lung - „neutilizată · fără modul de emitere” - are voie să treacă pe două rânduri. Ținut pe
   un singur rând, împingea ultimele coloane în afara învelișului, adică exact „Utilizare” și
   „Stare” dispăreau. Un rând mai înalt este un preț mult mai mic decât o coloană invizibilă. */
.series-list-table[b-3cmfhv6k16]  > :not(caption) > * > *,
.series-list-table > :not(caption) > * > *[b-3cmfhv6k16] {
    padding-inline: 0.4rem;
    font-size: 0.84rem;
}

/* Antetele au voie să treacă pe două rânduri: un rând în plus costă câțiva pixeli pe verticală,
   ținute pe un rând costă o coloană întreagă. */
.series-list-table[b-3cmfhv6k16]  th {
    white-space: normal;
}

/* Ce nu are voie să se rupă: identificatorii și cifrele. */
.series-list-table .series-type-cell[b-3cmfhv6k16],
.series-list-table .series-code-cell[b-3cmfhv6k16],
.series-list-table .series-next-cell[b-3cmfhv6k16] {
    white-space: nowrap;
}

.series-type-pill[b-3cmfhv6k16] {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border: 1px solid var(--tdl-border, #d8e2ec);
    border-radius: 999px;
    background: var(--tdl-surface-muted, #f1f5f9);
    color: var(--tdl-text-primary);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.4;
}

.series-list-table .series-code-cell[b-3cmfhv6k16] {
    font-weight: 700;
    color: var(--tdl-text-primary);
    letter-spacing: 0.04em;
}

.series-list-table .series-next-cell[b-3cmfhv6k16] {
    font-weight: 600;
    color: var(--tdl-primary-hover);
    font-family: var(--font-mono);
}

.series-row[b-3cmfhv6k16] {
    cursor: pointer;
}

.series-row--selected[b-3cmfhv6k16],
.series-row--selected:hover[b-3cmfhv6k16] {
    background: var(--tdl-primary-soft) !important;
    --bs-table-bg-state: var(--tdl-primary-soft) !important;
    box-shadow: inset 4px 0 0 var(--tdl-primary);
}

/* ── Responsive ─────────────────────────────── */

@media (max-width: 1200px) {
    .series-page-grid[b-3cmfhv6k16] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .series-stats-grid[b-3cmfhv6k16] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .series-filters[b-3cmfhv6k16] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .series-stats-grid[b-3cmfhv6k16] {
        grid-template-columns: 1fr;
    }

    .form-actions .btn[b-3cmfhv6k16] {
        width: 100%;
    }

    .number-preview[b-3cmfhv6k16] {
        align-items: flex-start;
        flex-direction: column;
    }
}
/* /Pages/Login.razor.rz.scp.css */
/* „Ține-mă minte”: o singură linie între câmpul de parolă și butonul de autentificare.

   Caseta și eticheta stau pe același rând și amândouă sunt zonă de clic - o casetă de 13px izolată
   este exact genul de țintă pe care un utilizator o ratează pe telefon.

   `flex-direction: row` NU este redundant, ci este exact remedierea.
   `.form-field` din app.css declară `flex-direction: column` (o dată ca `display: flex`, mai târziu
   suprascris la `display: grid`, dar direcția rămâne declarată). Regula de aici readuce `display:
   flex`, cu specificitate mai mare - și moștenea direcția pe coloană. Cu axa principală verticală,
   `align-items: center` centrează pe ORIZONTALĂ, adică exact simptomul: caseta plutea singură, la
   mijlocul cardului, sub câmpul de parolă.

   Deci: direcția este fixată explicit, iar `align-items: center` rămâne pentru ce a fost gândit -
   alinierea verticală a casetei cu textul ei. */
.form-field--inline[b-hthpw9oxmg] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    /* Într-un părinte grid, un element nu se întinde pe toată lățimea doar ca să conțină o casetă. */
    justify-items: start;
    /* 0.625rem = 10px: în intervalul de 8-12px cerut, față de câmpul de parolă de deasupra și de
       butonul de mai jos (care are propriul margin-top de 0.5rem). */
    margin-top: 0.625rem;
}

.auth-remember[b-hthpw9oxmg] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
    cursor: pointer;
    color: var(--tdl-text-secondary);
    font-size: .88rem;
    user-select: none;
}

.auth-remember .form-check-input[b-hthpw9oxmg] {
    /* `flex: none` oprește strivirea casetei într-un dreptunghi când textul cere lățime. */
    flex: none;
    margin: 0;
    cursor: pointer;
}

/* Tastatura trebuie să vadă unde este. Inelul se pune pe casetă, nu pe etichetă: aceea nu primește
   focus, iar un contur în jurul întregului rând ar sugera o altă țintă decât cea reală. */
.auth-remember .form-check-input:focus-visible[b-hthpw9oxmg] {
    outline: 2px solid var(--tdl-primary);
    outline-offset: 2px;
    border-radius: 3px;
}

@media (max-width: 480px) {
    /* Pe telefon rândul rămâne la stânga și se poate rupe, ca un text mai lung să nu împingă caseta
       în afara cardului. Nu se centrează: alinierea la stânga este chiar corectura. */
    .form-field--inline[b-hthpw9oxmg] {
        flex-wrap: wrap;
    }

    .auth-remember[b-hthpw9oxmg] {
        /* Ținta de atingere ajunge la înălțimea recomandată fără să mute textul. */
        min-height: 2.25rem;
    }
}
/* /Pages/Payments.razor.rz.scp.css */
/* ── KPI grid (reuses stat-tile pattern from Reports) ──────── */
.collections-kpi-grid[b-vhcqhwmvr1] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

@media (max-width: 900px) {
    .collections-kpi-grid[b-vhcqhwmvr1] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 520px) {
    .collections-kpi-grid[b-vhcqhwmvr1] {
        grid-template-columns: 1fr;
    }
}

/* stat-tile, stat-label, stat-value, stat-sub come from Reports.razor.css
   which is scoped — so we redeclare them here for this component */
.stat-tile[b-vhcqhwmvr1] {
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    padding: 1rem 1.1rem;
    box-shadow: var(--tdl-shadow-sm);
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.stat-label[b-vhcqhwmvr1] {
    font-size: .75rem;
    font-weight: 600;
    color: var(--tdl-text-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.stat-value[b-vhcqhwmvr1] {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--tdl-text-primary);
    line-height: 1.15;
}

.stat-value--revenue[b-vhcqhwmvr1] {
    color: var(--tdl-success);
}

.stat-value--method[b-vhcqhwmvr1] {
    color: var(--tdl-primary-hover);
    font-size: 1.25rem;
}

.stat-sub[b-vhcqhwmvr1] {
    font-size: .78rem;
    color: var(--text-secondary);
}

/* ── Payments table ────────────────────────────────────────── */
.collections-table[b-vhcqhwmvr1] {
    font-size: .875rem;
}

    .collections-table thead th[b-vhcqhwmvr1] {
        font-size: .72rem;
        font-weight: 600;
        color: var(--text-secondary);
        text-transform: uppercase;
        letter-spacing: .04em;
        border-bottom: 1px solid var(--tdl-border);
        padding: .75rem .8rem;
        white-space: nowrap;
    }

    .collections-table tbody td[b-vhcqhwmvr1] {
        padding: .72rem .8rem;
        border-bottom: 1px solid var(--tdl-border);
        vertical-align: middle;
    }

    .collections-table tfoot td[b-vhcqhwmvr1] {
        padding: .55rem .75rem;
        border-top: 2px solid var(--border);
    }

.collections-date-cell[b-vhcqhwmvr1] {
    font-variant-numeric: tabular-nums;
    color: var(--text-secondary);
    white-space: nowrap;
}

.collections-invoice-link[b-vhcqhwmvr1] {
    font-weight: 600;
    font-family: var(--font-mono, monospace);
    font-size: .8rem;
    color: var(--accent);
    text-decoration: none;
}

    .collections-invoice-link:hover[b-vhcqhwmvr1] {
        text-decoration: underline;
    }

.collections-ref-cell[b-vhcqhwmvr1] {
    color: var(--text-secondary);
    font-size: .8rem;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.collections-amount-cell[b-vhcqhwmvr1] {
    font-weight: 700;
    color: var(--tdl-success);
    white-space: nowrap;
}

.collections-summary-row td[b-vhcqhwmvr1] {
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-primary);
}

/* ── Method badge ──────────────────────────────────────────── */
.collections-method-badge[b-vhcqhwmvr1] {
    display: inline-block;
    padding: .2rem .6rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
    border: 1px solid transparent;
}

.collections-method-badge--banktransfer[b-vhcqhwmvr1] {
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
    border-color: var(--tdl-primary-soft-border);
}

.collections-method-badge--cash[b-vhcqhwmvr1] {
    background: #f0fdf4;
    color: #15803d;
    border-color: #bbf7d0;
}

.collections-method-badge--card[b-vhcqhwmvr1] {
    background: #fdf4ff;
    color: #7e22ce;
    border-color: #e9d5ff;
}

.collections-method-badge--cardpos[b-vhcqhwmvr1] {
    background: #fdf4ff;
    color: #7e22ce;
    border-color: #e9d5ff;
}

.collections-method-badge--cardonline[b-vhcqhwmvr1],
.collections-method-badge--paymentlink[b-vhcqhwmvr1] {
    background: #eff6ff;
    color: #1d4ed8;
    border-color: #bfdbfe;
}

.collections-method-badge--compensation[b-vhcqhwmvr1] {
    background: #fefce8;
    color: #854d0e;
    border-color: #fde68a;
}

.collections-method-badge--other[b-vhcqhwmvr1] {
    background: #f8fafc;
    color: #475569;
    border-color: #e2e8f0;
}

/* ── Empty state ───────────────────────────────────────────── */
.empty-state[b-vhcqhwmvr1] {
    padding: 1.5rem;
    text-align: center;
    color: var(--text-secondary);
    font-size: .875rem;
}

    .empty-state a[b-vhcqhwmvr1] {
        color: var(--accent);
    }

.collection-row--selected td[b-vhcqhwmvr1] {
    background: var(--tdl-primary-soft);
    color: var(--tdl-text-primary);
    border-top: 1px solid var(--tdl-primary-soft-border);
    border-bottom: 1px solid var(--tdl-primary-soft-border);
    font-weight: 600;
}

.collection-row--selected td:first-child[b-vhcqhwmvr1] {
    border-left: 3px solid var(--tdl-primary);
    border-top-left-radius: .35rem;
    border-bottom-left-radius: .35rem;
}

.collection-row--selected td:last-child[b-vhcqhwmvr1] {
    border-right: 1px solid var(--tdl-primary-soft-border);
    border-top-right-radius: .35rem;
    border-bottom-right-radius: .35rem;
}

.collections-actions-header[b-vhcqhwmvr1],
.collections-actions-cell[b-vhcqhwmvr1] {
    min-width: 170px;
    width: 190px;
}

.collections-actions[b-vhcqhwmvr1] {
    display: flex;
    justify-content: flex-end;
    gap: .45rem;
    flex-wrap: wrap;
}

.tdl-form-grid[b-vhcqhwmvr1] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.tdl-form-field label[b-vhcqhwmvr1] {
    display: block;
    margin-bottom: .35rem;
    font-weight: 700;
    color: var(--tdl-text-primary);
    font-size: .86rem;
}

.tdl-form-field small[b-vhcqhwmvr1] {
    display: block;
    margin-top: .25rem;
    color: var(--tdl-text-muted);
    font-size: .75rem;
}

.delete-summary[b-vhcqhwmvr1] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.delete-summary div[b-vhcqhwmvr1] {
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
    padding: .75rem;
}

.delete-summary span[b-vhcqhwmvr1] {
    display: block;
    color: var(--tdl-text-muted);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: .2rem;
}

.delete-summary strong[b-vhcqhwmvr1] {
    color: var(--tdl-text-primary);
}

@media (max-width: 760px) {
    .tdl-form-grid[b-vhcqhwmvr1],
    .delete-summary[b-vhcqhwmvr1] {
        grid-template-columns: 1fr;
    }

    .collections-actions[b-vhcqhwmvr1] {
        justify-content: flex-start;
    }

    .customer-treasury-toolbar[b-vhcqhwmvr1] {
        align-items: flex-start;
        flex-direction: column;
    }

    .customer-treasury-actions[b-vhcqhwmvr1] {
        justify-content: flex-start;
    }
}

.collections-filter-row[b-vhcqhwmvr1] {
    display: grid;
    grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(140px, 1fr)) auto;
    gap: .65rem;
    align-items: center;
}

@media (max-width: 900px) {
    .collections-filter-row[b-vhcqhwmvr1] {
        grid-template-columns: 1fr 1fr;
    }

    .collections-new-btn[b-vhcqhwmvr1] {
        grid-column: 1 / -1;
    }
}

.collections-invoice-link-wrapper[b-vhcqhwmvr1] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.collections-client[b-vhcqhwmvr1] {
    color: var(--tdl-text-muted);
    font-size: .8rem;
}

.collections-unallocated-hint[b-vhcqhwmvr1] {
    font-size: .7rem;
    color: var(--tdl-text-muted);
    font-weight: 500;
}

.customer-treasury-toolbar[b-vhcqhwmvr1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .85rem;
}

.customer-treasury-total[b-vhcqhwmvr1] {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--tdl-text-primary);
}

.customer-treasury-actions[b-vhcqhwmvr1] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
}

.payment-detail-grid[b-vhcqhwmvr1] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
    margin-bottom: 1rem;
}

@media (max-width: 760px) {
    .payment-detail-grid[b-vhcqhwmvr1] {
        grid-template-columns: 1fr;
    }
}

.payment-detail-field[b-vhcqhwmvr1] {
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
    padding: .65rem .8rem;
}

.payment-detail-label[b-vhcqhwmvr1] {
    color: var(--tdl-text-muted);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: .15rem;
}

.payment-detail-value[b-vhcqhwmvr1] {
    color: var(--tdl-text-primary);
    font-weight: 700;
}

.payment-detail-heading[b-vhcqhwmvr1] {
    margin: 1rem 0 .5rem;
    font-size: 1rem;
    font-weight: 700;
}

.allocation-table th[b-vhcqhwmvr1] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--tdl-text-muted);
}

.allocation-amount-input[b-vhcqhwmvr1] {
    width: 9rem;
    margin-left: auto;
}

.allocation-add-row[b-vhcqhwmvr1] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .5rem;
}

.allocation-summary[b-vhcqhwmvr1] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .6rem;
}

.allocation-summary div[b-vhcqhwmvr1] {
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
    padding: .5rem .65rem;
}

.allocation-summary span[b-vhcqhwmvr1] {
    display: block;
    color: var(--tdl-text-muted);
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: .1rem;
}

.balance--due[b-vhcqhwmvr1] {
    color: var(--tdl-danger, #b91c1c);
}

@media (max-width: 640px) {
    .tdl-form-grid[b-vhcqhwmvr1],
    .allocation-summary[b-vhcqhwmvr1],
    .delete-summary[b-vhcqhwmvr1],
    .allocation-add-row[b-vhcqhwmvr1] {
        grid-template-columns: 1fr;
    }

    .allocation-amount-input[b-vhcqhwmvr1] {
        width: 7rem;
    }
}

.collection-row--highlight td[b-vhcqhwmvr1],
.treasury-row--highlight td[b-vhcqhwmvr1] {
    animation: collection-highlight-pulse-b-vhcqhwmvr1 2.4s ease-out 1;
}

@keyframes collection-highlight-pulse-b-vhcqhwmvr1 {
    0% {
        background: rgba(59, 130, 246, .2);
        box-shadow: inset 4px 0 0 var(--tdl-primary);
    }
    70% {
        background: rgba(59, 130, 246, .08);
        box-shadow: inset 4px 0 0 rgba(59, 130, 246, .35);
    }
    100% {
        background: transparent;
        box-shadow: inset 0 0 0 transparent;
    }
}

.customer-treasury-toolbar + .table-responsive[b-vhcqhwmvr1] {
    border-radius: var(--tdl-radius-lg);
}

.customer-treasury-toolbar + .table-responsive .collections-table[b-vhcqhwmvr1] {
    min-width: 980px;
}

.customer-treasury-toolbar + .table-responsive .collections-actions-cell[b-vhcqhwmvr1] {
    white-space: nowrap;
}

@media (max-width: 760px) {
    .customer-treasury-toolbar + .table-responsive .collections-table[b-vhcqhwmvr1] {
        min-width: 860px;
    }
}

.collections-action-note[b-vhcqhwmvr1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
    padding: .2rem .65rem;
    border-radius: 999px;
    background: var(--tdl-surface-soft);
    color: var(--text-secondary);
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
}

.payment-allocation-history[b-vhcqhwmvr1] {
    display: grid;
    gap: .55rem;
}

.payment-allocation-history-item[b-vhcqhwmvr1] {
    padding: .7rem .8rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-secondary);
    font-size: .86rem;
    line-height: 1.45;
}
/* /Pages/Products.razor.rz.scp.css */
.message-stack[b-iaozhcc5tk] {
    display: grid;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.page-chip[b-iaozhcc5tk] {
    display: inline-flex;
    align-items: center;
    padding: 0.65rem 0.9rem;
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    color: var(--tdl-text-secondary);
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.04);
}

/* ── Stats ─────────────────────────────────── */

.product-stats-grid[b-iaozhcc5tk] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.stat-tile[b-iaozhcc5tk] {
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    padding: 1rem 1.1rem;
    box-shadow: var(--tdl-shadow-sm);
}

.stat-label[b-iaozhcc5tk] {
    color: var(--tdl-text-muted);
    font-size: 0.86rem;
    font-weight: 700;
    margin-bottom: 0.45rem;
}

.stat-value[b-iaozhcc5tk] {
    color: var(--tdl-text-primary);
    font-size: 1.4rem;
    font-weight: 800;
    line-height: 1.1;
}

.stat-value--active[b-iaozhcc5tk]  { color: #166534; }
.stat-value--inactive[b-iaozhcc5tk] { color: #991b1b; }
.stat-value--zero[b-iaozhcc5tk]    { color: #92400e; }

/* ── Page grid ──────────────────────────────── */

.product-page-grid[b-iaozhcc5tk] {
    display: grid;
    /* Lista întâi și dominantă (~65%), formularul la dreapta (~35%). Vezi Serii documente. */
    grid-template-columns: minmax(560px, 1.85fr) minmax(340px, 1fr);
    gap: 1.15rem;
    align-items: start;
}

.product-page-grid > *[b-iaozhcc5tk] {
    min-width: 0;
}

/* ── Form ───────────────────────────────────── */

.form-section-label[b-iaozhcc5tk] {
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--tdl-primary-hover);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.7rem;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid var(--tdl-border);
}

.form-grid[b-iaozhcc5tk] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    margin-bottom: 1.2rem;
}

.form-field[b-iaozhcc5tk] {
    min-width: 0;
}

.form-field--wide[b-iaozhcc5tk] {
    grid-column: 1 / -1;
}

.form-field--switch[b-iaozhcc5tk] {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-bottom: 0.15rem;
}

.required-star[b-iaozhcc5tk] {
    color: #dc2626;
    font-weight: 700;
}

.field-error[b-iaozhcc5tk] {
    display: block;
    font-size: 0.82rem;
    color: #dc2626;
    margin-top: 0.3rem;
}

.field-hint[b-iaozhcc5tk] {
    font-size: 0.78rem;
    color: #94a3b8;
    margin-top: 0.25rem;
}

.form-actions[b-iaozhcc5tk] {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding-top: 0.5rem;
}

.text-uppercase-input[b-iaozhcc5tk] {
    text-transform: uppercase;
}

/* ── List ───────────────────────────────────── */

.search-bar[b-iaozhcc5tk] {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 0.85rem;
}

.product-list-table thead th[b-iaozhcc5tk] {
    white-space: nowrap;
    font-size: 0.86rem;
    color: #475569;
    font-weight: 800;
    background: var(--tdl-surface-soft);
    border-bottom: 1px solid var(--tdl-border);
}

.product-list-table td[b-iaozhcc5tk],
.product-list-table th[b-iaozhcc5tk] {
    vertical-align: middle;
}

.product-list-table .text-end[b-iaozhcc5tk] {
    white-space: nowrap;
}

.product-name-cell[b-iaozhcc5tk] {
    font-weight: 700;
    color: var(--tdl-text-primary);
}

.product-description-cell[b-iaozhcc5tk] {
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 400;
    margin-top: 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 260px;
}

.product-unit-cell[b-iaozhcc5tk] {
    font-family: 'Consolas', 'SF Mono', monospace;
    font-size: 0.85rem;
    color: #475569;
    font-weight: 700;
    white-space: nowrap;
}

.product-price-cell[b-iaozhcc5tk] {
    font-weight: 700;
    color: #0f172a;
    font-variant-numeric: tabular-nums;
}

.product-row[b-iaozhcc5tk] {
    cursor: pointer;
    transition: background 0.1s;
}

.product-row--selected[b-iaozhcc5tk] {
    background: var(--tdl-primary-soft) !important;
    box-shadow: inset 4px 0 0 var(--tdl-primary);
}

.empty-state[b-iaozhcc5tk] {
    padding: 1rem 0;
    color: #64748b;
}

.list-footer[b-iaozhcc5tk] {
    padding-top: 0.75rem;
    font-size: 0.83rem;
    color: #94a3b8;
    font-weight: 600;
}

/* ── Status pills ───────────────────────────── */

.status-pill[b-iaozhcc5tk] {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
    white-space: nowrap;
}

.status-pill--active[b-iaozhcc5tk] { background: var(--tdl-success-soft); color: var(--tdl-success); }

.status-pill--inactive[b-iaozhcc5tk] { background: var(--tdl-surface-muted); color: var(--tdl-text-secondary); }

/* ── Responsive ─────────────────────────────── */

@media (max-width: 1200px) {
    .product-page-grid[b-iaozhcc5tk] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .product-stats-grid[b-iaozhcc5tk] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .form-grid[b-iaozhcc5tk] {
        grid-template-columns: 1fr;
    }

    .form-field--wide[b-iaozhcc5tk] {
        grid-column: auto;
    }
}

@media (max-width: 600px) {
    .product-stats-grid[b-iaozhcc5tk] {
        grid-template-columns: 1fr;
    }
}

.list-filter-pills[b-iaozhcc5tk] {
    display: flex;
    gap: .375rem;
    flex-wrap: wrap;
    margin-top: .5rem;
}

.filter-pill[b-iaozhcc5tk] {
    padding: .25rem .7rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface);
    color: var(--text-secondary);
    font-size: .75rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .12s, color .12s, border-color .12s;
    line-height: 1.4;
}

    .filter-pill:hover[b-iaozhcc5tk] {
        background: var(--surface-raised);
        color: var(--text-primary);
    }

.filter-pill--active[b-iaozhcc5tk] {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

    .filter-pill--active:hover[b-iaozhcc5tk] {
        background: var(--accent);
        color: #fff;
    }

/*
   Ștergerea nu stă lângă „Actualizează”. Împinsă la capătul barei cu margin-left, nu cu `order`:
   ordinea DOM rămâne ordinea vizuală. Aceeași convenție ca pe pagina de clienți.
*/
.product-danger-action[b-iaozhcc5tk] {
    margin-left: auto;
}

@media (max-width: 900px) {
    .product-danger-action[b-iaozhcc5tk] {
        margin-left: 0;
        width: 100%;
    }
}

/* Tratamentul TVA ocupă tot rândul formularului: categoria, cota și motivul au nevoie de lățime. */
.product-vat-field[b-iaozhcc5tk] {
    grid-column: 1 / -1;
}

.product-vat-readonly[b-iaozhcc5tk] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.75rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--tdl-border);
    border-radius: 0.5rem;
    background: var(--tdl-surface-soft);
}

.product-vat-readonly span[b-iaozhcc5tk] {
    font-size: 0.85rem;
    color: var(--tdl-text-secondary);
    overflow-wrap: anywhere;
}
/* /Pages/Proformas.razor.rz.scp.css */
.proforma-info-card[b-vixns2aztr] {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    padding: .78rem .9rem;
    border: 1px solid var(--tdl-primary-soft-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-primary-soft);
    color: var(--tdl-primary-hover);
    box-shadow: var(--tdl-shadow-sm);
}

.proforma-info-card strong[b-vixns2aztr] {
    white-space: nowrap;
    color: var(--tdl-primary-active);
}

.proforma-info-card span[b-vixns2aztr] {
    color: var(--tdl-text-secondary);
    font-size: .9rem;
    line-height: 1.45;
}

.proforma-layout[b-vixns2aztr] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.proforma-list-panel[b-vixns2aztr],
.proforma-side-panel[b-vixns2aztr],
.proforma-editor[b-vixns2aztr],
.convert-panel[b-vixns2aztr],
.email-panel[b-vixns2aztr] {
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    box-shadow: var(--tdl-shadow-sm);
    padding: 1rem;
}

.proforma-list-panel[b-vixns2aztr] {
    min-width: 0;
}

.proforma-side-panel[b-vixns2aztr] {
    position: sticky;
    top: .85rem;
}

.proforma-side-panel h2[b-vixns2aztr],
.proforma-editor h2[b-vixns2aztr],
.convert-panel h2[b-vixns2aztr],
.email-panel h2[b-vixns2aztr] {
    margin: 0 0 .35rem;
    color: var(--tdl-text-primary);
    font-size: 1.08rem;
    font-weight: 800;
}

.proforma-table[b-vixns2aztr] {
    font-size: .86rem;
}

.proforma-table th[b-vixns2aztr] {
    padding: .65rem .75rem;
    border-bottom: 1px solid var(--tdl-border);
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-muted);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.proforma-table td[b-vixns2aztr] {
    padding: .68rem .75rem;
    border-bottom: 1px solid var(--tdl-border);
    vertical-align: middle;
}

.proforma-table tbody tr:hover td[b-vixns2aztr] {
    background: rgba(230, 239, 245, .45);
}

.proforma-table .table-active td[b-vixns2aztr],
.proforma-table tr.table-active td[b-vixns2aztr] {
    background: var(--tdl-primary-soft);
    box-shadow: inset 4px 0 0 var(--tdl-primary);
}

.action-row[b-vixns2aztr] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.status-pill[b-vixns2aztr] {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
    padding: .18rem .58rem;
    border: 1px solid var(--tdl-border);
    border-radius: 999px;
    background: var(--tdl-surface-soft);
    color: var(--tdl-text-secondary);
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
}

.detail-grid[b-vixns2aztr] {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: .52rem .8rem;
    margin: 1rem 0;
    padding: .85rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface-soft);
}

.detail-grid span[b-vixns2aztr] {
    color: var(--tdl-text-muted);
    font-size: .78rem;
    font-weight: 700;
}

.detail-grid strong[b-vixns2aztr] {
    color: var(--tdl-text-primary);
    font-weight: 800;
    overflow-wrap: anywhere;
}

.line-preview[b-vixns2aztr] {
    display: grid;
    gap: .5rem;
    margin-bottom: 1rem;
}

.line-preview > div[b-vixns2aztr] {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: #fff;
    padding: .55rem .65rem;
}

.line-preview span[b-vixns2aztr] {
    color: var(--tdl-text-secondary);
}

.detail-note[b-vixns2aztr] {
    white-space: pre-wrap;
    color: var(--tdl-text-secondary);
    border-top: 1px solid var(--tdl-border);
    padding-top: .75rem;
}

.proforma-editor[b-vixns2aztr],
.convert-panel[b-vixns2aztr],
.email-panel[b-vixns2aztr] {
    margin-top: 1rem;
}

.editor-header[b-vixns2aztr] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: .75rem;
}

.editor-grid[b-vixns2aztr] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.editor-grid label[b-vixns2aztr] {
    display: grid;
    gap: .25rem;
    color: var(--tdl-text-secondary);
    font-size: .86rem;
    font-weight: 700;
}

.lines-editor[b-vixns2aztr] {
    margin: 1rem 0;
}

.line-editor-row[b-vixns2aztr] {
    display: grid;
    grid-template-columns: minmax(140px, 1fr) minmax(180px, 1.5fr) 100px 110px 90px 90px auto;
    gap: .5rem;
    align-items: center;
    margin-bottom: .5rem;
    padding: .65rem;
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-lg);
    background: var(--tdl-surface-soft);
}

.line-total[b-vixns2aztr] {
    text-align: right;
    font-weight: 800;
    color: var(--tdl-text-primary);
    white-space: nowrap;
}

.editor-actions[b-vixns2aztr] {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    align-items: center;
}

.convert-panel[b-vixns2aztr] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 320px) auto;
    gap: 1rem;
    align-items: center;
}

.email-message[b-vixns2aztr] {
    grid-column: 1 / -1;
}

@media (max-width: 1100px) {
    .proforma-layout[b-vixns2aztr],
    .convert-panel[b-vixns2aztr] {
        grid-template-columns: 1fr;
    }

    .proforma-side-panel[b-vixns2aztr] {
        position: static;
    }

    .editor-grid[b-vixns2aztr],
    .line-editor-row[b-vixns2aztr] {
        grid-template-columns: 1fr;
    }

    .line-total[b-vixns2aztr] {
        text-align: left;
    }
}

@media (max-width: 700px) {
    .proforma-info-card[b-vixns2aztr],
    .editor-header[b-vixns2aztr],
    .editor-actions[b-vixns2aztr] {
        align-items: stretch;
        flex-direction: column;
    }

    .proforma-info-card strong[b-vixns2aztr] {
        white-space: normal;
    }
}
/* /Pages/RealtimeDiagnostics.razor.rz.scp.css */
.realtime-diagnostics-grid[b-io3n1l1aea] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.realtime-diagnostics-card[b-io3n1l1aea] {
    border: 1px solid var(--border-color);
    border-radius: 1rem;
    background: var(--tdl-surface);
    box-shadow: var(--tdl-shadow-sm);
    padding: 1rem;
    display: grid;
    gap: .35rem;
}

.realtime-diagnostics-card span[b-io3n1l1aea],
.realtime-diagnostics-meta span[b-io3n1l1aea] {
    color: var(--tdl-text-muted);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.realtime-diagnostics-card strong[b-io3n1l1aea] {
    color: var(--tdl-text-primary);
    font-size: 1.45rem;
    line-height: 1;
}

.realtime-diagnostics-card small[b-io3n1l1aea] {
    color: var(--tdl-text-muted);
}

.realtime-diagnostics-meta[b-io3n1l1aea] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .75rem;
}

.realtime-diagnostics-meta div[b-io3n1l1aea] {
    border: 1px solid var(--border-color);
    border-radius: .85rem;
    padding: .85rem;
    display: grid;
    gap: .25rem;
}

.realtime-diagnostics-meta strong[b-io3n1l1aea] {
    color: var(--tdl-text-primary);
    word-break: break-word;
}

.realtime-diagnostics-table-wrap[b-io3n1l1aea] {
    border: 1px solid var(--border-color);
    border-radius: 1rem;
    overflow: auto;
}

.realtime-diagnostics-table td[b-io3n1l1aea],
.realtime-diagnostics-table th[b-io3n1l1aea] {
    white-space: nowrap;
}

.realtime-result[b-io3n1l1aea] {
    border-radius: 999px;
    display: inline-flex;
    font-size: .76rem;
    font-weight: 800;
    padding: .18rem .55rem;
}

.realtime-result--success[b-io3n1l1aea] {
    background: rgba(25, 135, 84, .12);
    color: #146c43;
}

.realtime-result--danger[b-io3n1l1aea] {
    background: rgba(220, 53, 69, .12);
    color: #b02a37;
}

.realtime-result--muted[b-io3n1l1aea] {
    background: rgba(108, 117, 125, .12);
    color: #495057;
}
/* /Pages/RecurringInvoices.razor.rz.scp.css */
.recurring-kpi-grid[b-1qmh0ectql] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

@media (max-width: 900px) {
    .recurring-kpi-grid[b-1qmh0ectql] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 520px) {
    .recurring-kpi-grid[b-1qmh0ectql] { grid-template-columns: 1fr; }
}

.stat-tile[b-1qmh0ectql] {
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    padding: 1rem 1.1rem;
    box-shadow: var(--tdl-shadow-sm);
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.stat-label[b-1qmh0ectql] {
    font-size: .75rem;
    font-weight: 600;
    color: var(--tdl-text-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.stat-value[b-1qmh0ectql] {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--tdl-text-primary);
    line-height: 1.15;
}

.stat-sub[b-1qmh0ectql] {
    font-size: .78rem;
    color: var(--text-secondary);
}

.recurring-filter-row[b-1qmh0ectql] {
    display: grid;
    grid-template-columns: minmax(220px, 2fr) minmax(140px, 1fr) auto;
    gap: .65rem;
    align-items: center;
}

@media (max-width: 900px) {
    .recurring-filter-row[b-1qmh0ectql] { grid-template-columns: 1fr 1fr; }
}

.recurring-table[b-1qmh0ectql] {
    font-size: .875rem;
}

.recurring-table thead th[b-1qmh0ectql] {
    font-size: .72rem;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: .04em;
    border-bottom: 1px solid var(--tdl-border);
    padding: .75rem .8rem;
    white-space: nowrap;
}

.recurring-table tbody td[b-1qmh0ectql] {
    padding: .72rem .8rem;
    border-bottom: 1px solid var(--tdl-border);
    vertical-align: middle;
}

.recurring-row--selected td[b-1qmh0ectql] {
    background: var(--tdl-primary-soft);
    border-top: 1px solid var(--tdl-primary-soft-border);
    border-bottom: 1px solid var(--tdl-primary-soft-border);
    font-weight: 600;
}

.recurring-template-link[b-1qmh0ectql] {
    font-weight: 600;
    font-family: var(--font-mono, monospace);
    font-size: .8rem;
    color: var(--accent);
}

.recurring-date-cell[b-1qmh0ectql] {
    font-variant-numeric: tabular-nums;
    color: var(--text-secondary);
    white-space: nowrap;
}

.recurring-amount-cell[b-1qmh0ectql] {
    font-weight: 700;
    color: var(--tdl-text-primary);
    white-space: nowrap;
}

.recurring-actions-header[b-1qmh0ectql],
.recurring-actions-cell[b-1qmh0ectql] {
    min-width: 290px;
}

.recurring-actions[b-1qmh0ectql] {
    display: flex;
    justify-content: flex-end;
    gap: .45rem;
    flex-wrap: wrap;
}

.recurring-detail-grid[b-1qmh0ectql] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
    margin-bottom: 1rem;
}

@media (max-width: 760px) {
    .recurring-detail-grid[b-1qmh0ectql] { grid-template-columns: 1fr; }
}

.recurring-detail-field[b-1qmh0ectql] {
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
    padding: .65rem .8rem;
}

.recurring-detail-label[b-1qmh0ectql] {
    color: var(--tdl-text-muted);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: .15rem;
}

.recurring-detail-value[b-1qmh0ectql] {
    color: var(--tdl-text-primary);
    font-weight: 700;
}

.recurring-detail-heading[b-1qmh0ectql] {
    margin: 1rem 0 .5rem;
    font-size: 1rem;
    font-weight: 700;
}

.recurring-runs-table th[b-1qmh0ectql] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--tdl-text-muted);
}

.tdl-form-grid[b-1qmh0ectql] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.tdl-form-grid--fieldset[b-1qmh0ectql] {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.tdl-form-field--full[b-1qmh0ectql] { grid-column: 1 / -1; }

.tdl-form-field label[b-1qmh0ectql] {
    display: block;
    margin-bottom: .35rem;
    font-weight: 700;
    color: var(--tdl-text-primary);
    font-size: .86rem;
}

@media (max-width: 760px) {
    .tdl-form-grid[b-1qmh0ectql] { grid-template-columns: 1fr; }

}
/* /Pages/RecurringInvoiceTemplate.razor.rz.scp.css */
/*
    The recurrence-model editor.

    The line grid deliberately mirrors the invoice line grid: an operator editing the model of a
    recurrence is editing an invoice, and it should read as one. The rules live here rather than being
    imported from Invoices.razor.css because Blazor scopes page stylesheets to their own page - those
    rules simply do not apply to this component, so sharing them would mean moving the invoice
    editor's styles into the global sheet and re-testing that page for no benefit here.
*/

.recurring-template-scope-banner[b-o9d5vpkryi] {
    margin-bottom: 1rem;
}

.recurring-template-lines-toolbar[b-o9d5vpkryi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.recurring-template-lines-subtitle[b-o9d5vpkryi] {
    color: var(--tdl-text-secondary);
    font-size: 0.88rem;
}

/* Container chrome comes from the shared `.tdl-data-grid` contract in app.css. */
.recurring-template-lines[b-o9d5vpkryi] {
    border-radius: var(--tdl-radius-lg);
}

/* Only the COLUMNS. Everything visual is the shared `.tdl-data-grid` contract. */
.recurring-template-line[b-o9d5vpkryi] {
    grid-template-columns: 2.4rem minmax(190px, 2.1fr) minmax(9rem, 1.15fr) 4.2rem 5rem 6rem 4.6rem minmax(6.4rem, 1fr) 5rem;
}

.recurring-template-line--no-vat[b-o9d5vpkryi] {
    grid-template-columns: 2.4rem minmax(190px, 2.1fr) minmax(9rem, 1.15fr) 4.2rem 5rem 6rem minmax(6.4rem, 1fr) 5rem;
}


.recurring-template-currency[b-o9d5vpkryi] {
    font-size: 0.75rem;
    color: var(--tdl-text-secondary);
}

/* Marca de discount sub prețul de dinaintea reducerii - aceeași ca în grila facturii. */
.recurring-template-discount-tag[b-o9d5vpkryi] {
    display: block;
    margin-top: 0.1rem;
    color: #b42318;
    font-size: 0.72rem;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

.recurring-template-category-badge[b-o9d5vpkryi] {
    display: inline-block;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: var(--tdl-surface-soft);
    border: 1px solid var(--tdl-border);
    font-size: 0.78rem;
    line-height: 1.5;
}

.recurring-template-category-badge--none[b-o9d5vpkryi] {
    color: var(--tdl-text-secondary);
    font-style: italic;
}

.recurring-template-totals[b-o9d5vpkryi] {
    margin-top: 1rem;
    margin-left: auto;
    display: grid;
    gap: 0.35rem;
    max-width: 22rem;
}

.recurring-template-totals-row[b-o9d5vpkryi] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1.5rem;
    color: var(--tdl-text-secondary);
}

.recurring-template-totals-row--grand[b-o9d5vpkryi] {
    border-top: 1px solid var(--tdl-border);
    padding-top: 0.35rem;
    color: var(--tdl-text-primary);
    font-size: 1.02rem;
}

.recurring-template-page-actions[b-o9d5vpkryi] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

/*
    The save action follows the operator down a long line list instead of waiting at the bottom of the
    page, which is the same promise the modal action bar makes.
*/
.recurring-template-page-actions--sticky[b-o9d5vpkryi] {
    position: sticky;
    bottom: 0;
    z-index: 2;
    margin-top: 1rem;
    padding: 0.75rem 0;
    background: var(--tdl-bg, var(--tdl-surface));
    border-top: 1px solid var(--tdl-border);
}

.recurring-template-page-actions .btn[b-o9d5vpkryi] {
    min-height: 2.75rem;
}

@media (max-width: 640px) {
    .recurring-template-totals[b-o9d5vpkryi] {
        max-width: none;
    }
}

/* Rezumatul „Pe fiecare linie” din antet: arată ca un câmp, nu se editează. */
.recurring-template-fiscal-summary[b-o9d5vpkryi] {
    background: var(--tdl-surface-muted);
    color: var(--tdl-text-secondary);
}
/* /Pages/Reports.razor.rz.scp.css */
/* ── Year selector ─────────────────────────────────────────── */
.year-selector[b-9qxldsfr2v] {
    display: flex;
    gap: .375rem;
}

.year-btn[b-9qxldsfr2v] {
    padding: .35rem .85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
    color: var(--text-secondary);
    font-size: .8125rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}

    .year-btn:hover[b-9qxldsfr2v] {
        background: var(--surface-raised);
        color: var(--text-primary);
    }

.year-btn--active[b-9qxldsfr2v] {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

    .year-btn--active:hover[b-9qxldsfr2v] {
        background: var(--accent);
        color: #fff;
    }


.report-overview-panel[b-9qxldsfr2v] {
    display: grid;
    grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
    gap: .85rem;
    margin-bottom: 1rem;
}

.report-overview-main[b-9qxldsfr2v] {
    min-height: 7.25rem;
    padding: 1rem 1.2rem;
    border: 1px solid rgba(22, 163, 74, .22);
    border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at top right, rgba(22, 163, 74, .14), transparent 36%),
        linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(240, 253, 244, .66));
    box-shadow: var(--shadow-sm);
}

.report-overview-kicker[b-9qxldsfr2v],
.report-overview-metric span[b-9qxldsfr2v] {
    display: block;
    color: var(--text-secondary);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.report-overview-main strong[b-9qxldsfr2v] {
    display: block;
    margin-top: .3rem;
    color: #16a34a;
    font-size: clamp(1.65rem, 3.2vw, 2.35rem);
    line-height: 1.05;
    font-weight: 900;
}

.report-overview-main small[b-9qxldsfr2v],
.report-overview-metric small[b-9qxldsfr2v] {
    display: block;
    margin-top: .22rem;
    color: var(--text-secondary);
    font-size: .78rem;
    font-weight: 600;
}

.report-overview-metrics[b-9qxldsfr2v] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
}

.report-overview-metric[b-9qxldsfr2v] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 7.25rem;
    padding: .85rem .92rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-raised);
    box-shadow: var(--shadow-xs, none);
}

.report-overview-metric strong[b-9qxldsfr2v] {
    color: var(--text-primary);
    font-size: 1.12rem;
    line-height: 1.12;
    font-weight: 850;
}

.report-overview-metric--alert strong[b-9qxldsfr2v] {
    color: #dc2626;
}

/* ── KPI grid ──────────────────────────────────────────────── */
.report-kpi-grid[b-9qxldsfr2v] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.25rem;
}

@media (max-width: 900px) {
    .report-kpi-grid[b-9qxldsfr2v],
    .report-overview-metrics[b-9qxldsfr2v] {
        grid-template-columns: repeat(2, 1fr);
    }

    .report-overview-panel[b-9qxldsfr2v] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .report-kpi-grid[b-9qxldsfr2v],
    .report-overview-metrics[b-9qxldsfr2v] {
        grid-template-columns: 1fr;
    }

    .report-overview-main[b-9qxldsfr2v],
    .report-overview-metric[b-9qxldsfr2v] {
        min-height: auto;
    }
}

.stat-tile[b-9qxldsfr2v] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.stat-label[b-9qxldsfr2v] {
    font-size: .75rem;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.stat-value[b-9qxldsfr2v] {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.15;
}

.stat-value--revenue[b-9qxldsfr2v] {
    color: #16a34a;
}

.stat-value--overdue[b-9qxldsfr2v] {
    color: #dc2626;
}

.stat-value--top[b-9qxldsfr2v] {
    color: var(--accent);
}

.stat-sub[b-9qxldsfr2v] {
    font-size: .78rem;
    color: var(--text-secondary);
}

/* ── Bar chart ─────────────────────────────────────────────── */
.bar-chart[b-9qxldsfr2v] {
    display: flex;
    align-items: flex-end;
    gap: .375rem;
    height: 130px;
    margin-bottom: .75rem;
    padding: 0 .25rem;
}

.bar-col[b-9qxldsfr2v] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: .2rem;
    height: 100%;
}

.bar-col--empty .bar-bar[b-9qxldsfr2v] {
    background: var(--border);
}

.bar-val[b-9qxldsfr2v] {
    font-size: .6rem;
    color: var(--text-secondary);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.bar-bar[b-9qxldsfr2v] {
    width: 100%;
    min-height: 3px;
    background: var(--accent);
    border-radius: 3px 3px 0 0;
    transition: height .3s ease;
}

.bar-label[b-9qxldsfr2v] {
    font-size: .65rem;
    color: var(--text-secondary);
    font-weight: 500;
    text-align: center;
}

/* ── Report tables ─────────────────────────────────────────── */
.report-table[b-9qxldsfr2v] {
    font-size: .8375rem;
}

    .report-table thead th[b-9qxldsfr2v] {
        font-size: .72rem;
        font-weight: 600;
        color: var(--text-secondary);
        text-transform: uppercase;
        letter-spacing: .04em;
        border-bottom: 1px solid var(--border);
        padding: .5rem .75rem;
        white-space: nowrap;
    }

    .report-table tbody td[b-9qxldsfr2v] {
        padding: .45rem .75rem;
        border-bottom: 1px solid var(--border-subtle, var(--border));
        color: var(--text-primary);
        vertical-align: middle;
    }

    .report-table tfoot td[b-9qxldsfr2v] {
        padding: .55rem .75rem;
        border-top: 2px solid var(--border);
    }

.report-month-cell[b-9qxldsfr2v] {
    font-weight: 500;
    color: var(--text-primary);
}

.report-total-cell[b-9qxldsfr2v] {
    font-weight: 600;
    color: var(--text-primary);
}

.report-row--empty td[b-9qxldsfr2v] {
    color: var(--text-secondary);
    font-style: italic;
}

.report-summary-row td[b-9qxldsfr2v] {
    background: var(--surface-raised);
    color: var(--text-primary);
}

/* ── Bottom two-column grid ────────────────────────────────── */
.report-bottom-grid[b-9qxldsfr2v] {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 1rem;
    align-items: start;
}

@media (max-width: 960px) {
    .report-bottom-grid[b-9qxldsfr2v] {
        grid-template-columns: 1fr;
    }
}

.report-right-col[b-9qxldsfr2v] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ── Empty state ───────────────────────────────────────────── */
.report-empty[b-9qxldsfr2v] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: 2rem 1rem;
    color: var(--text-secondary);
    font-size: .875rem;
}

.report-empty-icon[b-9qxldsfr2v] {
    font-size: 1.75rem;
    color: #16a34a;
}

.empty-state[b-9qxldsfr2v] {
    padding: 1.5rem;
    text-align: center;
    color: var(--text-secondary);
    font-size: .875rem;
}

/* ── Overdue table ─────────────────────────────────────────── */
.overdue-number-cell[b-9qxldsfr2v] {
    font-weight: 600;
    font-family: var(--font-mono, monospace);
    font-size: .8rem;
    color: var(--accent);
}

.overdue-days-badge[b-9qxldsfr2v] {
    display: inline-block;
    padding: .15rem .5rem;
    border-radius: 999px;
    background: #fef2f2;
    color: #dc2626;
    font-size: .72rem;
    font-weight: 700;
    border: 1px solid #fecaca;
}

.overdue-amount-cell[b-9qxldsfr2v] {
    font-weight: 600;
    color: #dc2626;
}

/* ── VAT summary ───────────────────────────────────────────── */
.vat-rate-badge[b-9qxldsfr2v] {
    display: inline-block;
    padding: .2rem .6rem;
    border-radius: var(--radius-sm);
    background: var(--surface-raised);
    border: 1px solid var(--border);
    font-size: .75rem;
    font-weight: 700;
    color: var(--text-primary);
}

.vat-amount-cell[b-9qxldsfr2v] {
    font-weight: 600;
    color: var(--text-primary);
}

/* ── Top customers ─────────────────────────────────────────── */
.top-customers-list[b-9qxldsfr2v] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.top-customer-row[b-9qxldsfr2v] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .5rem .25rem;
    border-bottom: 1px solid var(--border-subtle, var(--border));
}

    .top-customer-row:last-child[b-9qxldsfr2v] {
        border-bottom: none;
    }

.top-customer-rank[b-9qxldsfr2v] {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: var(--surface-raised);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    font-weight: 700;
    color: var(--text-secondary);
    flex-shrink: 0;
}

.rank--gold[b-9qxldsfr2v] {
    background: #fef9c3;
    border-color: #fbbf24;
    color: #92400e;
}

.rank--silver[b-9qxldsfr2v] {
    background: #f1f5f9;
    border-color: #94a3b8;
    color: #475569;
}

.rank--bronze[b-9qxldsfr2v] {
    background: #fef3c7;
    border-color: #d97706;
    color: #78350f;
}

.top-customer-info[b-9qxldsfr2v] {
    flex: 1;
    min-width: 0;
}

.top-customer-name[b-9qxldsfr2v] {
    font-size: .85rem;
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.top-customer-meta[b-9qxldsfr2v] {
    font-size: .72rem;
    color: var(--text-secondary);
}

.top-customer-revenue[b-9qxldsfr2v] {
    font-size: .875rem;
    font-weight: 700;
    color: var(--text-primary);
    white-space: nowrap;
}

/* ── Aging report ──────────────────────────────────────────── */

.aging-grid[b-9qxldsfr2v] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

@media (max-width: 800px) {
    .aging-grid[b-9qxldsfr2v] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .aging-grid[b-9qxldsfr2v] {
        grid-template-columns: 1fr;
    }
}

.aging-bucket[b-9qxldsfr2v] {
    padding: .85rem 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.aging-bucket--empty[b-9qxldsfr2v] {
    opacity: .45;
}

.aging-label[b-9qxldsfr2v] {
    font-size: .78rem;
    font-weight: 700;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.aging-bar-track[b-9qxldsfr2v] {
    height: 6px;
    border-radius: 3px;
    background: var(--border);
    overflow: hidden;
}

.aging-bar-fill[b-9qxldsfr2v] {
    height: 100%;
    border-radius: 3px;
    background: #dc2626;
    transition: width .4s ease;
    min-width: 0;
}

.aging-bucket--empty .aging-bar-fill[b-9qxldsfr2v] {
    background: var(--border);
}

.aging-stats[b-9qxldsfr2v] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: .5rem;
}

.aging-count[b-9qxldsfr2v] {
    font-size: .78rem;
    color: var(--text-secondary);
}

.aging-amount[b-9qxldsfr2v] {
    font-size: .88rem;
    font-weight: 700;
    color: var(--text-secondary);
}

.aging-amount--due[b-9qxldsfr2v] {
    color: #dc2626;
}

.aging-total[b-9qxldsfr2v] {
    font-size: .8375rem;
    color: var(--text-secondary);
    text-align: right;
    padding-top: .25rem;
    border-top: 1px solid var(--border);
}

/* ── VAT journal ───────────────────────────────────────────── */
.vat-journal-overview[b-9qxldsfr2v] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
    margin-bottom: 1rem;
}

.vat-journal-stat[b-9qxldsfr2v] {
    padding: .8rem .9rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-raised);
}

.vat-journal-stat span[b-9qxldsfr2v] {
    display: block;
    margin-bottom: .2rem;
    color: var(--text-secondary);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.vat-journal-stat strong[b-9qxldsfr2v] {
    color: var(--text-primary);
    font-size: 1rem;
    font-weight: 800;
}

.vat-journal-table-wrap[b-9qxldsfr2v] {
    max-height: 34rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.vat-journal-table thead[b-9qxldsfr2v] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--surface-raised);
}

.vat-journal-document-type[b-9qxldsfr2v] {
    display: block;
    margin-top: .15rem;
    color: var(--text-secondary);
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
}

.vat-category-badge[b-9qxldsfr2v] {
    display: inline-flex;
    min-width: 2rem;
    justify-content: center;
    padding: .18rem .45rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface-raised);
    color: var(--text-primary);
    font-size: .72rem;
    font-weight: 800;
}

.vat-journal-reason[b-9qxldsfr2v] {
    display: block;
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vat-journal-row--correction td[b-9qxldsfr2v] {
    background: rgba(220, 38, 38, .035);
}

.vat-journal-limit-note[b-9qxldsfr2v] {
    margin-top: .75rem;
    color: var(--text-secondary);
    font-size: .78rem;
}

@media (max-width: 900px) {
    .vat-journal-overview[b-9qxldsfr2v] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .vat-journal-overview[b-9qxldsfr2v] {
        grid-template-columns: 1fr;
    }
}

/* ---------------------------------------------------------------------------------------------
   Gestiune pe categorii
   --------------------------------------------------------------------------------------------- */
.category-report-filters[b-9qxldsfr2v] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: var(--tdl-space-3);
    margin-bottom: var(--tdl-space-3);
}

.category-report-field[b-9qxldsfr2v] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.category-report-shortcuts[b-9qxldsfr2v] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--tdl-space-2);
    margin-bottom: var(--tdl-space-4);
}

.category-report-spacer[b-9qxldsfr2v] {
    flex: 1 1 auto;
}

.category-report-currency + .category-report-currency[b-9qxldsfr2v] {
    margin-top: var(--tdl-space-5, 1.25rem);
    padding-top: var(--tdl-space-4);
    border-top: 1px solid var(--tdl-border);
}

.category-report-kpis[b-9qxldsfr2v] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: var(--tdl-space-3);
    margin-bottom: var(--tdl-space-3);
}

.category-report-kpi[b-9qxldsfr2v] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: var(--tdl-space-3);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-md);
    background: var(--tdl-surface-soft);
    min-width: 0;
}

.category-report-kpi-label[b-9qxldsfr2v] {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--tdl-text-secondary);
}

/* The row is the drill-down affordance, so it has to look and behave like one. */
.category-report-row[b-9qxldsfr2v] {
    cursor: pointer;
}

.category-report-row:hover[b-9qxldsfr2v] {
    background: var(--tdl-primary-soft);
}

.category-report-row:focus-visible[b-9qxldsfr2v] {
    outline: 2px solid var(--tdl-primary);
    outline-offset: -2px;
}

/* ── Navigație între rapoarte ───────────────────────────────
   Pagina are șase rapoarte pe o singură coloană. Fără navigație, ultimul raport
   este descoperit doar de cine știe deja că există. */
.report-section-nav[b-9qxldsfr2v] {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: 1rem;
}

    .report-section-nav a[b-9qxldsfr2v] {
        padding: .35rem .85rem;
        border: 1px solid var(--border);
        border-radius: 999px;
        background: var(--surface);
        color: var(--text-secondary);
        font-size: .8125rem;
        font-weight: 600;
        text-decoration: none;
        transition: background .15s, color .15s, border-color .15s;
    }

        .report-section-nav a:hover[b-9qxldsfr2v],
        .report-section-nav a:focus-visible[b-9qxldsfr2v] {
            background: var(--surface-raised);
            border-color: var(--accent);
            color: var(--text-primary);
        }

/* Ținta ancorei stă puțin deasupra cardului, ca titlul să nu ajungă lipit de
   marginea de sus a ferestrei după salt. Elementul nu ocupă spațiu în layout. */
.report-section-anchor[b-9qxldsfr2v] {
    display: block;
    height: 0;
    scroll-margin-top: 5rem;
}
/* /Pages/Settings.razor.rz.scp.css */
/* ── Two-column card grid ───────────────────────────────────── */
.settings-grid[b-rnialchv1k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}

@media (max-width: 860px) {
    .settings-grid[b-rnialchv1k] {
        grid-template-columns: 1fr;
    }
}

/* ── Form layout inside each card ───────────────────────────── */
.settings-form[b-rnialchv1k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem 1rem;
}

.settings-field[b-rnialchv1k] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.settings-field--full[b-rnialchv1k] {
    grid-column: 1 / -1;
}

.settings-label[b-rnialchv1k] {
    font-size: .78rem;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: .03em;
}

.required-star[b-rnialchv1k] {
    color: #dc2626;
    margin-left: .1rem;
}

.settings-error[b-rnialchv1k] {
    font-size: .75rem;
    color: #dc2626;
}

.settings-input--mono[b-rnialchv1k] {
    font-family: var(--font-mono, monospace);
    letter-spacing: .04em;
}

/* ── Save bar ───────────────────────────────────────────────── */
.settings-save-bar[b-rnialchv1k] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    padding: .875rem 0;
    border-top: 1px solid var(--border);
    margin-top: .25rem;
}

.settings-save-ok[b-rnialchv1k] {
    font-size: .85rem;
    font-weight: 500;
    color: #16a34a;
}

/* ── Empty state ───────────────────────────────────────────── */
.empty-state[b-rnialchv1k] {
    padding: 1.5rem;
    text-align: center;
    color: var(--text-secondary);
    font-size: .875rem;
}
/* /Pages/SuperAdminInstitutionData.razor.rz.scp.css */
.destructive-form-grid[b-cp5uwr7tcb],
.destructive-code-row[b-cp5uwr7tcb] {
    display: grid;
    grid-template-columns: minmax(18rem, 1fr) minmax(16rem, 1fr);
    gap: 1rem;
    align-items: end;
}

.destructive-target-meta[b-cp5uwr7tcb],
.destructive-verification-meta[b-cp5uwr7tcb],
.destructive-result[b-cp5uwr7tcb] {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1.2rem;
    align-items: center;
}

.destructive-target-meta span[b-cp5uwr7tcb],
.destructive-verification-meta span[b-cp5uwr7tcb],
.destructive-result div[b-cp5uwr7tcb] {
    color: var(--text-muted, #5e6875);
}

.destructive-operation-picker[b-cp5uwr7tcb] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.25rem;
}

.destructive-operation-card[b-cp5uwr7tcb] {
    border: 2px solid #d5dbe3;
    border-radius: .85rem;
    background: #fff;
    padding: 1rem;
    text-align: left;
    display: grid;
    gap: .35rem;
}

.destructive-operation-card span[b-cp5uwr7tcb] {
    color: #5e6875;
}

.destructive-operation-card.is-selective.is-selected[b-cp5uwr7tcb] {
    border-color: #c79600;
    background: #fff9df;
}

.destructive-operation-card.is-total.is-selected[b-cp5uwr7tcb] {
    border-color: #d66a00;
    background: #fff0df;
}

.destructive-operation-card.is-danger.is-selected[b-cp5uwr7tcb] {
    border-color: #b42318;
    background: #fff0f0;
}

.destructive-hard-delete[b-cp5uwr7tcb] {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid #efb5b0;
    border-radius: .85rem;
    background: #fff8f7;
}

.destructive-hard-delete summary[b-cp5uwr7tcb] {
    cursor: pointer;
    font-weight: 700;
    color: #8f1d16;
}

.destructive-scopes[b-cp5uwr7tcb] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: .75rem;
}

.destructive-scope-card[b-cp5uwr7tcb] {
    border: 1px solid #d5dbe3;
    border-radius: .75rem;
    padding: .8rem;
    display: flex;
    gap: .7rem;
    align-items: flex-start;
}

.destructive-scope-card span[b-cp5uwr7tcb] {
    display: grid;
    gap: .2rem;
}

.destructive-scope-card small[b-cp5uwr7tcb] {
    color: #5e6875;
}

.destructive-impact-grid[b-cp5uwr7tcb] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: .75rem;
}

.destructive-impact-grid div[b-cp5uwr7tcb] {
    border: 1px solid #e0e5eb;
    border-radius: .7rem;
    padding: .75rem;
    display: grid;
    gap: .25rem;
}

.destructive-impact-grid span[b-cp5uwr7tcb] {
    color: #5e6875;
    font-size: .85rem;
}

.destructive-impact-grid strong[b-cp5uwr7tcb] {
    font-size: 1.25rem;
}

.destructive-secret-input[b-cp5uwr7tcb] {
    max-width: 30rem;
}

.destructive-code-row[b-cp5uwr7tcb] {
    grid-template-columns: minmax(15rem, 25rem) auto auto;
}

.destructive-code-input[b-cp5uwr7tcb] {
    font: 700 1.2rem/1.2 ui-monospace, monospace;
    letter-spacing: .18rem;
}

.destructive-total-warning[b-cp5uwr7tcb] {
    border-color: #ef9d43;
    background: #fff3e4;
}

code[b-cp5uwr7tcb] {
    display: block;
    margin-top: .5rem;
    padding: .65rem;
    white-space: normal;
    color: inherit;
}

@media (max-width: 760px) {
    .destructive-form-grid[b-cp5uwr7tcb],
    .destructive-operation-picker[b-cp5uwr7tcb],
    .destructive-code-row[b-cp5uwr7tcb] {
        grid-template-columns: 1fr;
    }
}

.destructive-force-optin[b-cp5uwr7tcb] {
    border: 1px solid #f0b429;
    background: #fff8e6;
    border-radius: .75rem;
    padding: .8rem;
    display: flex;
    gap: .7rem;
    align-items: flex-start;
}

.destructive-force-optin span[b-cp5uwr7tcb] {
    display: grid;
    gap: .2rem;
}

.destructive-force-optin small[b-cp5uwr7tcb] {
    color: #5e6875;
}

.destructive-force-panel[b-cp5uwr7tcb] {
    border: 2px solid #c92a2a;
    border-radius: .75rem;
    padding: 1rem;
    background: #fff5f5;
}
/* /Shared/ListPaginator.razor.rz.scp.css */
/* Aceleași reguli vizuale ca paginarea listei de facturi, ca gridurile să nu arate ca două
   produse diferite. Clasele sunt neutre pentru că aici controlul nu aparține unei pagini anume. */
.list-pagination[b-uf3e3t37nw] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem .9rem;
    margin-top: .75rem;
    padding-top: .7rem;
    border-top: 1px solid var(--tdl-border);
}

.list-pagination__range[b-uf3e3t37nw] {
    color: var(--tdl-text-muted);
    font-size: .82rem;
    white-space: nowrap;
}

.list-pagination__controls[b-uf3e3t37nw] {
    display: flex;
    align-items: center;
    gap: .25rem;
    flex-wrap: wrap;
}

.list-pagination__btn[b-uf3e3t37nw] {
    min-width: 2rem;
    height: 2rem;
    padding: 0 .5rem;
    border: 1px solid var(--tdl-border-strong);
    border-radius: var(--tdl-radius-sm);
    background: #fff;
    color: var(--tdl-text-secondary);
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.list-pagination__btn:hover:not(:disabled)[b-uf3e3t37nw] {
    border-color: var(--tdl-primary);
    color: var(--tdl-primary);
}

.list-pagination__btn:focus-visible[b-uf3e3t37nw] {
    outline: none;
    border-color: var(--tdl-primary);
    box-shadow: 0 0 0 3px var(--tdl-primary-soft);
}

/* Same fix as the invoice list: hover on the current page darkens it, and never recolours its text
   to the primary colour it sits on. */
.list-pagination__btn--active[b-uf3e3t37nw],
.list-pagination__btn--active:hover:not(:disabled)[b-uf3e3t37nw] {
    background: var(--tdl-primary);
    border-color: var(--tdl-primary);
    color: #fff;
}

.list-pagination__btn--active:hover:not(:disabled)[b-uf3e3t37nw] {
    background: var(--tdl-primary-hover);
    border-color: var(--tdl-primary-hover);
}

.list-pagination__btn:disabled[b-uf3e3t37nw] {
    opacity: .45;
    cursor: not-allowed;
}

.list-pagination__ellipsis[b-uf3e3t37nw] {
    padding: 0 .15rem;
    color: var(--tdl-text-subtle);
}

.list-pagination__size[b-uf3e3t37nw] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin: 0;
    color: var(--tdl-text-muted);
    font-size: .82rem;
    white-space: nowrap;
}

.list-pagination__size .form-select[b-uf3e3t37nw] {
    width: auto;
    min-width: 4.2rem;
}
/* /Shared/SectionCard.razor.rz.scp.css */
.section-card[b-bz1upq3uie] {
    background: var(--tdl-surface);
    border: 1px solid var(--tdl-border);
    border-radius: var(--tdl-radius-xl);
    box-shadow: var(--tdl-shadow-sm);
    overflow: hidden;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.section-card + .section-card[b-bz1upq3uie] {
    margin-top: 1.25rem;
}

.section-card-header[b-bz1upq3uie] {
    padding: 1rem 1.2rem 0.82rem 1.2rem;
    border-bottom: 1px solid var(--tdl-border);
    background: var(--tdl-surface);
}

.section-card-title[b-bz1upq3uie] {
    margin: 0;
    font-size: 1rem;
    font-weight: 750;
    color: var(--tdl-text-primary);
    letter-spacing: -0.01em;
}

.section-card-subtitle[b-bz1upq3uie] {
    margin: 0.3rem 0 0 0;
    color: var(--tdl-text-muted);
    font-size: 0.86rem;
    line-height: 1.5;
}

.section-card-body[b-bz1upq3uie] {
    padding: 1.15rem 1.2rem;
}

@media (max-width: 700px) {
    .section-card-header[b-bz1upq3uie] { padding: 1rem 1.1rem 0.7rem 1.1rem; }
    .section-card-body[b-bz1upq3uie] { padding: 1.1rem; }
}

/* ---------------------------------------------------------------------------------------------
   Fill variant - see SectionCard.FillHeight.
   The card becomes a flex column so a child can be given the leftover height. min-height:0 on both
   the card and the body is what actually allows shrinking: without it a flex item refuses to go
   below its content height and the inner scroller never engages.
   --------------------------------------------------------------------------------------------- */
.section-card--fill[b-bz1upq3uie] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    /* overflow-y:visible next to overflow-x:hidden computes to auto, which would make the card a
       second scroller. The editor gives up the clipped radius so the line list is the only one. */
    overflow: visible;
}

.section-card--fill .section-card-header[b-bz1upq3uie] {
    flex: 0 0 auto;
}

.section-card-body--fill[b-bz1upq3uie] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
/* /Shared/SortableColumnHeader.razor.rz.scp.css */
.sortable-th[b-qxcvlybx2g] {
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.sortable-th:hover[b-qxcvlybx2g] {
    background-color: var(--tdl-surface-soft);
}

.sortable-th--asc[b-qxcvlybx2g],
.sortable-th--desc[b-qxcvlybx2g] {
    color: var(--tdl-primary);
}

.sortable-th-inner[b-qxcvlybx2g] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.sort-icon[b-qxcvlybx2g] {
    font-size: 0.7rem;
    opacity: 0.35;
    transition: opacity 0.12s;
    line-height: 1;
    font-style: normal;
}

.sortable-th--asc .sort-icon[b-qxcvlybx2g],
.sortable-th--desc .sort-icon[b-qxcvlybx2g] {
    opacity: 1;
    color: var(--tdl-primary);
}
/* /Shared/TdlDateInput.razor.rz.scp.css */
/* Câmpul formatat plus butonul de calendar arată ca UN control, nu ca două.

   Butonul stă peste marginea din dreapta a inputului, exact acolo unde browserul desenează iconița
   calendarului la un <input type="date"> - deci gestul rămâne cel cu care utilizatorul este deja
   obișnuit, chiar dacă acum controlul este al nostru. */
.tdl-date-input[b-smlyxwwj3x] {
    position: relative;
    display: block;
}

.tdl-date-input input[type="text"][b-smlyxwwj3x] {
    /* Loc pentru buton, ca textul să nu treacă pe sub el. */
    padding-right: 2.1rem;
}

/*
   Inputul nativ este ANCORA calendarului, nu un câmp de completat.

   Nu se folosește `display: none` și nici `visibility: hidden`: un element ascuns astfel nu poate
   deschide un selector nativ. Rămâne deci în layout, dar cu dimensiune nulă și fără interacțiune,
   poziționat sub buton ca panoul calendarului să apară lângă câmp.
*/
.tdl-date-input__native[b-smlyxwwj3x] {
    position: absolute;
    right: .55rem;
    bottom: 0;
    width: 1px;
    height: 1px;
    padding: 0;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

.tdl-date-input__calendar[b-smlyxwwj3x] {
    position: absolute;
    top: 50%;
    right: .35rem;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    border: 0;
    border-radius: var(--tdl-radius-sm, 4px);
    background: transparent;
    color: var(--tdl-text-secondary, #55606b);
    font-size: .95rem;
    line-height: 1;
    cursor: pointer;
}

.tdl-date-input__calendar:hover[b-smlyxwwj3x] {
    background: var(--tdl-surface-muted, #f1f3f5);
    color: var(--tdl-primary, #2563eb);
}

.tdl-date-input__calendar:focus-visible[b-smlyxwwj3x] {
    outline: 2px solid var(--tdl-primary, #2563eb);
    outline-offset: 1px;
}

.tdl-date-input--disabled .tdl-date-input__calendar[b-smlyxwwj3x] {
    display: none;
}
