@import '_content/BidGlory.UI/BidGlory.UI.yluzweye93.bundle.scp.css';

/* /Components/Accounting/AccountingEntityPanel.razor.rz.scp.css */
/* Accounting status on the bid / PO header. Colours come from theme.css tokens only. */

.accounting-status-chip[b-nsy9zfhcy3] {
    display: inline-flex;
    align-items: center;
    gap: 0.1rem;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text);
    font-size: 0.8rem;
    font-weight: 700;
    white-space: nowrap;
}

.accounting-status-chip__when[b-nsy9zfhcy3] {
    color: var(--text-muted);
    font-weight: 600;
}

.accounting-status-chip--needsattention[b-nsy9zfhcy3] {
    border-color: var(--status-danger);
    background: var(--status-danger-soft);
    color: var(--status-danger-ink);
}

.accounting-status-chip--queued[b-nsy9zfhcy3] {
    border-color: var(--status-warning);
    background: var(--status-warning-soft);
    color: var(--status-warning-ink);
}

.accounting-doc[b-nsy9zfhcy3] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    max-width: 100%;
}

.accounting-doc__chip[b-nsy9zfhcy3] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

a.accounting-doc__chip[b-nsy9zfhcy3] {
    text-decoration: none;
}

a.accounting-doc__chip:hover[b-nsy9zfhcy3],
a.accounting-doc__chip:focus-visible[b-nsy9zfhcy3] {
    text-decoration: underline;
}

.accounting-doc__chip--failed[b-nsy9zfhcy3] {
    border-color: var(--status-danger);
    color: var(--status-danger-ink);
}

.bid-accounting[b-nsy9zfhcy3] {
    display: inline-flex;
}

.bid-accounting__toggle[b-nsy9zfhcy3] {
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    color: var(--brand-sea-ink);
    border-color: var(--brand-sea);
}

.bid-accounting__toggle:focus-visible[b-nsy9zfhcy3] {
    outline: 2px solid var(--brand-sea);
    outline-offset: 2px;
}

.accounting-attention[b-nsy9zfhcy3] {
    flex-basis: 100%;
    font-size: 0.82rem;
    color: var(--status-danger-ink);
}

/* #16724 "Changed since sent": a watch signal, so the warning status pair. */
.accounting-changed-chip[b-nsy9zfhcy3] {
    background: var(--status-warning-soft);
    color: var(--status-warning-ink);
    border-color: transparent;
}
/* /Components/Accounting/AccountingSendDialog.razor.rz.scp.css */
/* Send to accounting dialog. Colours come from theme.css tokens only. */

.accounting-send-dialog[b-9z2b4xrij7] {
    width: min(52rem, 100%);
    max-height: calc(100vh - 2.5rem);
    overflow: auto;
    display: grid;
    /* minmax(0, …): an auto track grows to the widest line table's min-content
       and pushes the dialog past a phone's edge; the tables scroll in their wrap. */
    grid-template-columns: minmax(0, 1fr);
    gap: 0.85rem;
    text-align: left;
}

.accounting-send-dialog > *[b-9z2b4xrij7],
.accounting-send-preview > *[b-9z2b4xrij7],
.accounting-send-doc[b-9z2b4xrij7],
.accounting-table-wrap[b-9z2b4xrij7] {
    min-width: 0;
}

.accounting-send-dialog__head[b-9z2b4xrij7] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.accounting-send-dialog__head h2[b-9z2b4xrij7] {
    margin: 0;
    font-size: 1.35rem;
    min-width: 0;
}

.accounting-send-dialog__head .app-cta[b-9z2b4xrij7] {
    flex: 0 0 auto;
}

.accounting-send-options[b-9z2b4xrij7] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
    gap: 0.6rem 1rem;
    align-items: start;
}

.accounting-send-field[b-9z2b4xrij7] {
    display: grid;
    gap: 0.2rem;
    margin: 0;
}

.accounting-send-checks[b-9z2b4xrij7] {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    gap: 0.35rem 1rem;
    margin: 0;
    padding: 0.5rem 0.75rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}

/* A grid fieldset's legend is a grid item at some widths; keep it a full-width row above the options. */
.accounting-send-checks legend[b-9z2b4xrij7] {
    grid-column: 1 / -1;
    float: none;
    padding: 0 0.25rem;
}

.accounting-send-check[b-9z2b4xrij7] {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    margin: 0;
}

.accounting-send-note[b-9z2b4xrij7] {
    grid-column: 1 / -1;
    margin: 0;
}

.accounting-send-preview[b-9z2b4xrij7] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.5rem;
}

.accounting-send-refusal[b-9z2b4xrij7] {
    margin: 0;
    padding: 0.5rem 0.75rem;
    border-left: 4px solid var(--status-danger);
    background: var(--status-danger-soft);
    color: var(--status-danger-ink);
}

.accounting-send-hint[b-9z2b4xrij7],
.accounting-send-warning[b-9z2b4xrij7] {
    margin: 0;
}

.accounting-send-warning[b-9z2b4xrij7] {
    padding-left: 0.6rem;
    border-left: 3px solid var(--status-warning);
}

.accounting-send-total[b-9z2b4xrij7] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.25rem;
    align-items: baseline;
    padding: 0.55rem 0.75rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--surface-sunken);
}

.accounting-send-total--ok .accounting-send-total__verdict[b-9z2b4xrij7] {
    color: var(--status-success-ink);
    font-weight: 700;
}

.accounting-send-total--bad[b-9z2b4xrij7] {
    border-color: var(--status-danger);
}

.accounting-send-total--bad .accounting-send-total__verdict[b-9z2b4xrij7] {
    color: var(--status-danger-ink);
    font-weight: 700;
}

.accounting-send-doc[b-9z2b4xrij7] {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 0.45rem 0.65rem;
}

.accounting-send-doc summary[b-9z2b4xrij7] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.25rem 0.75rem;
    cursor: pointer;
}

.accounting-send-doc__title[b-9z2b4xrij7] {
    font-weight: 700;
}

.accounting-send-doc__plan[b-9z2b4xrij7] {
    color: var(--text-muted);
}

.accounting-table-wrap[b-9z2b4xrij7] {
    position: relative;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-top: 0.5rem;
}

.accounting-send-lines[b-9z2b4xrij7] {
    min-width: 30rem;
}

/* A phone fits line / qty / rate / amount when the names wrap. */
@media (max-width: 640px) {
    .accounting-send-lines[b-9z2b4xrij7] {
        min-width: 100%;
        font-size: 0.9rem;
    }

    .accounting-send-lines th[b-9z2b4xrij7],
    .accounting-send-lines td[b-9z2b4xrij7] {
        padding-left: 0.3rem;
        padding-right: 0.3rem;
    }

    .accounting-send-lines th[b-9z2b4xrij7] {
        white-space: nowrap;
    }

    .accounting-send-lines td:first-child[b-9z2b4xrij7] {
        overflow-wrap: anywhere;
    }
}

.accounting-send-lines .num[b-9z2b4xrij7] {
    text-align: right;
    white-space: nowrap;
}

.accounting-line--comment td[b-9z2b4xrij7],
.accounting-line--subtotal td[b-9z2b4xrij7] {
    color: var(--text-muted);
    font-style: italic;
}

.accounting-send-lines__total td[b-9z2b4xrij7] {
    font-weight: 700;
}

.accounting-send-result[b-9z2b4xrij7] {
    padding: 0.55rem 0.75rem;
    border-radius: var(--radius-sm);
    border-left: 4px solid var(--status-success);
    background: var(--status-success-soft);
    color: var(--status-success-ink);
}

.accounting-send-result--bad[b-9z2b4xrij7] {
    border-left-color: var(--status-danger);
    background: var(--status-danger-soft);
    color: var(--status-danger-ink);
}

.accounting-send-result p[b-9z2b4xrij7],
.accounting-send-result ul[b-9z2b4xrij7] {
    margin: 0.15rem 0;
}

.accounting-send-footer[b-9z2b4xrij7] {
    display: grid;
    gap: 0.5rem;
    position: sticky;
    bottom: -1px;
    padding-top: 0.5rem;
    background: var(--surface);
}

/* Covers the panel's bottom padding, so the preview never shows below the buttons. */
.accounting-send-footer[b-9z2b4xrij7]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 1.25rem;
    background: var(--surface);
}

.accounting-send-footer .accounting-send-result[b-9z2b4xrij7] {
    max-height: 40vh;
    overflow-y: auto;
}

.accounting-send-actions[b-9z2b4xrij7] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.accounting-send-blocking[b-9z2b4xrij7] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.4rem;
}

.accounting-send-blocking li[b-9z2b4xrij7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem 0.75rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--status-danger);
    border-radius: var(--radius-sm);
}

.accounting-send-blocking__actions[b-9z2b4xrij7] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
/* /Components/Accounting/AccountingSubnav.razor.rz.scp.css */
/* Integrations sub-navigation — colours come from the shared .legacy-tab rules (theme-aware). */

.accounting-subnav[b-y09tx0esrr] {
    align-items: center;
}

.accounting-subnav a[b-y09tx0esrr] {
    text-decoration: none;
}
/* /Components/Accounting/ErpNext/ErpNextConnectionPanel.razor.rz.scp.css */
/* ERPNext connect form — colours from theme.css tokens only. */

.erpnext-connect[b-n2fvzdw2q4] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

.erpnext-connect__step h2[b-n2fvzdw2q4],
.erpnext-connect__status h2[b-n2fvzdw2q4] {
    margin: 0 0 0.25rem;
}

.erpnext-connect__status-head[b-n2fvzdw2q4] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
}

.erpnext-connect__status-label[b-n2fvzdw2q4] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--text-muted);
}

.erpnext-connect__facts[b-n2fvzdw2q4] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.2rem 0.75rem;
    margin: 0.5rem 0 0;
}

.erpnext-connect__facts dt[b-n2fvzdw2q4] {
    color: var(--text-muted);
    font-weight: 600;
}

.erpnext-connect__facts dd[b-n2fvzdw2q4] {
    margin: 0;
    overflow-wrap: anywhere;
}

.erpnext-connect__error[b-n2fvzdw2q4] {
    color: var(--status-danger-ink);
}

.erpnext-connect__grid[b-n2fvzdw2q4] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    align-items: end;
    gap: 0.85rem 1rem;
    max-width: 60rem;
    margin-top: 0.75rem;
}

/* Sign-in: the key and the secret side by side, each wide enough to read. */
.erpnext-connect__grid--signin[b-n2fvzdw2q4] {
    max-width: 46rem;
}

.erpnext-field[b-n2fvzdw2q4] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}

.erpnext-field--wide[b-n2fvzdw2q4] {
    grid-column: 1 / -1;
}

.erpnext-field__label[b-n2fvzdw2q4] {
    font-weight: 600;
    color: var(--text-strong);
    font-size: 0.92rem;
}

.erpnext-field .form-control[b-n2fvzdw2q4],
.erpnext-field .form-select[b-n2fvzdw2q4],
.erpnext-fieldset .form-select[b-n2fvzdw2q4] {
    width: 100%;
    min-height: var(--control-h);
}

.erpnext-fieldset[b-n2fvzdw2q4] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    min-width: 0;
    margin: 0;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-sunken);
}

.erpnext-fieldset legend[b-n2fvzdw2q4] {
    float: none;
    width: auto;
    margin: 0 0 0.15rem;
    padding: 0;
}

.erpnext-choice-row[b-n2fvzdw2q4] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.25rem;
}

.erpnext-check[b-n2fvzdw2q4] {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.5rem;
    min-height: 2rem;
    padding: 0.2rem 0;
    line-height: 1.35;
    cursor: pointer;
}

@media (pointer: coarse) {
    .erpnext-check[b-n2fvzdw2q4] {
        min-height: var(--tap-min);
    }
}

.erpnext-check input[b-n2fvzdw2q4] {
    margin-top: 0.2rem;
    flex: none;
    accent-color: var(--brand-sea);
}

.erpnext-indent[b-n2fvzdw2q4] {
    margin: 0 0 0.35rem 1.6rem;
    max-width: min(32rem, calc(100% - 1.6rem));
}

.erpnext-inline[b-n2fvzdw2q4] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.5rem 0.75rem;
}

.erpnext-inline .form-select[b-n2fvzdw2q4] {
    flex: 1 1 14rem;
    width: auto;
    min-width: 0;
}

.erpnext-field--rate[b-n2fvzdw2q4] {
    flex: 0 0 7rem;
}

.erpnext-tax-figure[b-n2fvzdw2q4] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-top: 0.35rem;
    padding-top: 0.5rem;
    border-top: 1px dashed var(--border);
}

.erpnext-connect__actions[b-n2fvzdw2q4] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.9rem;
}

.erpnext-connect__danger[b-n2fvzdw2q4] {
    color: var(--status-danger-ink);
}

.erpnext-connect__result[b-n2fvzdw2q4] {
    margin: 0.75rem 0 0;
    padding: 0.55rem 0.75rem;
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
    overflow-wrap: anywhere;
}

.erpnext-connect__result--ok[b-n2fvzdw2q4] {
    background: var(--status-success-soft);
    border-color: var(--status-success);
    color: var(--status-success-ink);
}

.erpnext-connect__result--bad[b-n2fvzdw2q4] {
    background: var(--status-danger-soft);
    border-color: var(--status-danger);
    color: var(--status-danger-ink);
}

.erpnext-connect__warning[b-n2fvzdw2q4] {
    margin: 0.5rem 0 0;
    padding: 0.5rem 0.75rem;
    border-radius: var(--radius-sm);
    background: var(--status-warning-soft);
    color: var(--status-warning-ink);
}

.erpnext-connect__ref[b-n2fvzdw2q4] {
    margin: 0.9rem 0 0;
    max-width: 60rem;
}

.erpnext-connect__step > .app-help-text[b-n2fvzdw2q4],
.erpnext-connect__warning[b-n2fvzdw2q4],
.erpnext-connect__result[b-n2fvzdw2q4] {
    max-width: 60rem;
}

.erpnext-connect code[b-n2fvzdw2q4] {
    overflow-wrap: anywhere;
}
/* /Components/Accounting/ErpNext/ErpNextSetupGuide.razor.rz.scp.css */
/* ERPNext setup guide — colours from theme.css tokens only. */

.erpnext-guide h2[b-vfrczby9ai] {
    margin: 0 0 0.25rem;
}

.erpnext-guide__steps[b-vfrczby9ai] {
    margin: 0.75rem 0 0;
    padding-left: 1.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.erpnext-guide__steps li[b-vfrczby9ai]::marker {
    color: var(--brand-sea);
    font-weight: 700;
}

.erpnext-guide h3[b-vfrczby9ai] {
    font-size: 1rem;
    margin: 0 0 0.25rem;
    color: var(--text-strong);
}

.erpnext-guide p[b-vfrczby9ai] {
    margin: 0 0 0.4rem;
    overflow-wrap: anywhere;
}

.erpnext-guide__roles[b-vfrczby9ai],
.erpnext-guide__facts[b-vfrczby9ai] {
    margin: 0.25rem 0 0.4rem;
    padding-left: 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.erpnext-guide__subhead[b-vfrczby9ai] {
    margin-top: 1.25rem !important;
    padding-top: 0.9rem;
    border-top: 1px solid var(--border);
}

.erpnext-guide code[b-vfrczby9ai] {
    overflow-wrap: anywhere;
}

/* A readable measure: the guide is prose. */
.erpnext-guide p[b-vfrczby9ai],
.erpnext-guide__steps[b-vfrczby9ai],
.erpnext-guide__roles[b-vfrczby9ai],
.erpnext-guide__facts[b-vfrczby9ai] {
    max-width: 75ch;
}
/* /Components/Accounting/QuickBooksDesktop/QbdConnectionPanel.razor.rz.scp.css */
/* QuickBooks Desktop panel — colours come from theme.css tokens only. */

.qbd-panel[b-4ad8noic1y] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.qbd-panel__head[b-4ad8noic1y] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.qbd-panel__head h2[b-4ad8noic1y] {
    margin: 0;
}

.qbd-panel__status[b-4ad8noic1y] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--text-muted);
}

.qbd-panel__facts[b-4ad8noic1y] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.25rem 0.9rem;
    margin: 0.5rem 0;
}

.qbd-panel__facts dt[b-4ad8noic1y] {
    color: var(--text-muted);
    font-weight: 600;
}

.qbd-panel__facts dd[b-4ad8noic1y] {
    margin: 0;
    overflow-wrap: anywhere;
}

.qbd-panel__actions[b-4ad8noic1y] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.qbd-panel__inline[b-4ad8noic1y] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.qbd-panel__minutes[b-4ad8noic1y] {
    width: 6rem;
}

.qbd-panel__grid[b-4ad8noic1y] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    gap: 0.75rem;
}

.qbd-panel__grid label[b-4ad8noic1y] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.qbd-panel__secret[b-4ad8noic1y] {
    border: 1px solid var(--status-warning);
    background: var(--status-warning-soft);
    color: var(--status-warning-ink);
    border-radius: var(--radius-md);
    padding: 0.75rem;
    margin: 0.5rem 0;
}

.qbd-panel__secret p[b-4ad8noic1y] {
    margin: 0 0 0.5rem;
}

.qbd-panel__copyrow[b-4ad8noic1y] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.qbd-panel__copyrow input[b-4ad8noic1y] {
    flex: 1 1 18rem;
}

.qbd-panel__mono[b-4ad8noic1y] {
    font-family: var(--font-mono);
}

.qbd-panel__link[b-4ad8noic1y] {
    background: none;
    border: 0;
    padding: 0 0.25rem;
    color: var(--brand-sea);
    text-decoration: underline;
    cursor: pointer;
}

.qbd-panel__link:disabled[b-4ad8noic1y] {
    color: var(--text-muted);
    cursor: default;
}

.qbd-panel__error[b-4ad8noic1y] {
    color: var(--status-danger-ink);
}

.qbd-panel__list[b-4ad8noic1y] {
    margin: 0;
    padding-left: 1.2rem;
}

.qbd-panel__table[b-4ad8noic1y] {
    width: 100%;
    border-collapse: collapse;
}

.qbd-panel__table th[b-4ad8noic1y],
.qbd-panel__table td[b-4ad8noic1y] {
    text-align: left;
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}

.qbd-panel__note[b-4ad8noic1y] {
    color: var(--text-muted);
    overflow-wrap: anywhere;
}
/* /Components/Accounting/QuickBooksDesktop/QbdIifExportDialog.razor.rz.scp.css */
/* IIF export — colours come from theme.css tokens only. */

.qbd-iif[b-qjxkbsgrdp] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.qbd-iif__title[b-qjxkbsgrdp] {
    margin: 0;
}

.qbd-iif__warnings[b-qjxkbsgrdp] {
    margin: 0;
    padding: 0.75rem 0.75rem 0.75rem 2rem;
    border: 1px solid var(--status-warning);
    background: var(--status-warning-soft);
    color: var(--status-warning-ink);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.qbd-iif__grid[b-qjxkbsgrdp] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: 0.75rem;
}

.qbd-iif__grid label[b-qjxkbsgrdp] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.qbd-iif__checks[b-qjxkbsgrdp] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.qbd-iif__ack[b-qjxkbsgrdp] {
    font-weight: 600;
}

.qbd-iif__actions[b-qjxkbsgrdp] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.qbd-iif__errors[b-qjxkbsgrdp] {
    margin: 0;
    padding-left: 1.2rem;
    color: var(--status-danger-ink);
}

.qbd-iif__notes[b-qjxkbsgrdp] {
    margin: 0;
    padding-left: 1.2rem;
    color: var(--text-muted);
}
/* /Components/Accounting/QuickBooksDesktop/QbdSettingsPage.razor.rz.scp.css */
/* QuickBooks Desktop page — colours come from theme.css tokens only. */

.qbd-page__search[b-6tqnu9jev8] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    gap: 0.5rem;
}

.qbd-page__results[b-6tqnu9jev8] {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.qbd-page__pick[b-6tqnu9jev8] {
    width: 100%;
    text-align: left;
    background: var(--surface-sunken);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 0.4rem 0.6rem;
    color: var(--text);
    cursor: pointer;
}

.qbd-page__pick:hover[b-6tqnu9jev8],
.qbd-page__pick:focus-visible[b-6tqnu9jev8] {
    background: var(--brand-sea-soft);
}
/* /Components/Accounting/QuickBooksDesktop/QbdSetupGuide.razor.rz.scp.css */
/* QuickBooks Desktop setup guide — colours come from theme.css tokens only. */

.qbd-guide[b-aoy0muczbi] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.qbd-guide__list[b-aoy0muczbi] {
    margin: 0;
    padding-left: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.qbd-guide__table[b-aoy0muczbi] {
    width: 100%;
    border-collapse: collapse;
}

.qbd-guide__table th[b-aoy0muczbi],
.qbd-guide__table td[b-aoy0muczbi] {
    text-align: left;
    vertical-align: top;
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid var(--border);
}

.qbd-guide__table th[b-aoy0muczbi] {
    color: var(--text-muted);
}

@media (max-width: 640px) {
    .qbd-guide__table thead[b-aoy0muczbi] {
        display: none;
    }

    .qbd-guide__table tr[b-aoy0muczbi] {
        display: block;
        border-bottom: 1px solid var(--border);
        padding: 0.4rem 0;
    }

    .qbd-guide__table td[b-aoy0muczbi] {
        display: block;
        border: 0;
        padding: 0.15rem 0;
    }
}
/* /Components/Accounting/QuickBooksOnline/QboConnectionPanel.razor.rz.scp.css */
/* QuickBooks Online connection panel. Colours come from theme.css tokens only. */

.qbo-panel[b-g37gbl12iz] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.qbo-panel__head[b-g37gbl12iz] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.qbo-panel__title[b-g37gbl12iz] {
    margin: 0;
}

.qbo-panel__env[b-g37gbl12iz] {
    font-weight: 600;
}

.qbo-panel__notice[b-g37gbl12iz] {
    margin: 0;
    padding: 0.5rem 0.75rem;
    border-left: 4px solid var(--border);
    background: var(--surface-sunken);
}

.qbo-panel__notice--ok[b-g37gbl12iz] {
    border-left-color: var(--status-success);
    background: var(--status-success-soft);
    color: var(--status-success-ink);
}

.qbo-panel__notice--problem[b-g37gbl12iz] {
    border-left-color: var(--status-warning);
    background: var(--status-warning-soft);
    color: var(--status-warning-ink);
}

.qbo-panel__banner[b-g37gbl12iz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--status-warning);
    background: var(--status-warning-soft);
    color: var(--status-warning-ink);
}

.qbo-panel__banner p[b-g37gbl12iz] {
    margin: 0;
    flex: 1 1 18rem;
}

.qbo-panel__facts[b-g37gbl12iz] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.2rem 0.75rem;
    margin: 0;
}

.qbo-panel__facts dt[b-g37gbl12iz] {
    color: var(--text-muted);
    font-weight: 600;
}

.qbo-panel__facts dd[b-g37gbl12iz] {
    margin: 0;
    overflow-wrap: anywhere;
}

.qbo-panel__error[b-g37gbl12iz] {
    color: var(--status-danger-ink);
}

.qbo-panel__section[b-g37gbl12iz] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border);
}

.qbo-panel__section h3[b-g37gbl12iz] {
    margin: 0;
    font-size: 1rem;
}

.qbo-panel__field[b-g37gbl12iz] {
    display: grid;
    gap: 0.25rem;
    max-width: 28rem;
}

.qbo-panel__check[b-g37gbl12iz] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.qbo-panel__problems[b-g37gbl12iz] {
    margin: 0;
    padding-left: 1.25rem;
}

.qbo-panel__problems code[b-g37gbl12iz] {
    /* Integrations:QuickBooksOnline:ClientSecret is one unbreakable word. */
    overflow-wrap: anywhere;
}

.qbo-panel__connect[b-g37gbl12iz] {
    margin: 0;
}

.qbo-panel__fine[b-g37gbl12iz] {
    margin: 0;
    font-size: 0.9em;
}

.qbo-panel__actions[b-g37gbl12iz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.qbo-panel__actions--end[b-g37gbl12iz] {
    justify-content: flex-end;
}

.qbo-connect-button:focus-visible[b-g37gbl12iz] {
    outline: 2px solid var(--brand-sea);
    outline-offset: 2px;
}
/* /Components/Accounting/QuickBooksOnline/QboPaymentStatusChip.razor.rz.scp.css */
/* Invoice payment chip (bid page). Colours come from theme.css tokens only. */

.qbo-payment[b-bnytn0r9hh] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.qbo-payment__chip[b-bnytn0r9hh] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.qbo-payment__check[b-bnytn0r9hh] {
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text-muted);
    border-radius: 999px;
    padding: 0.05rem 0.55rem;
    font: inherit;
    font-size: 0.85em;
    cursor: pointer;
}

.qbo-payment__check:hover:not(:disabled)[b-bnytn0r9hh] {
    background: var(--brand-sea-soft);
}

.qbo-payment__check:focus-visible[b-bnytn0r9hh] {
    outline: 2px solid var(--brand-sea);
    outline-offset: 2px;
}

.qbo-payment__message[b-bnytn0r9hh] {
    color: var(--text-muted);
    font-size: 0.9em;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-lneei1k5q3],
.components-reconnect-repeated-attempt-visible[b-lneei1k5q3],
.components-reconnect-failed-visible[b-lneei1k5q3],
.components-pause-visible[b-lneei1k5q3],
.components-resume-failed-visible[b-lneei1k5q3],
.components-rejoining-animation[b-lneei1k5q3] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-lneei1k5q3],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-lneei1k5q3],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-lneei1k5q3],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-lneei1k5q3],
#components-reconnect-modal.components-reconnect-retrying[b-lneei1k5q3],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-lneei1k5q3],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-lneei1k5q3],
#components-reconnect-modal.components-reconnect-failed[b-lneei1k5q3],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-lneei1k5q3] {
    display: block;
}


#components-reconnect-modal[b-lneei1k5q3] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-lneei1k5q3 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-lneei1k5q3 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-lneei1k5q3 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-lneei1k5q3]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-lneei1k5q3 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-lneei1k5q3 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-lneei1k5q3 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-lneei1k5q3 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-lneei1k5q3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-lneei1k5q3] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-lneei1k5q3] {
    border: 0;
    background-color: var(--brand-sea);
    color: var(--text-inverse);
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-lneei1k5q3] {
        background-color: var(--brand-sea-ink);
    }

    #components-reconnect-modal button:active[b-lneei1k5q3] {
        background-color: var(--brand-sea);
    }

.components-rejoining-animation[b-lneei1k5q3] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-lneei1k5q3] {
        position: absolute;
        border: 3px solid var(--brand-glow);
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-lneei1k5q3 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-lneei1k5q3] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-lneei1k5q3 {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/AccountingBidMagicGuide.razor.rz.scp.css */
/* Coming from BidMagic: QuickBooks — colours come from theme.css tokens only. */

.accounting-guide-steps ol[b-l2dd6vq0b7],
.accounting-guide-page ul[b-l2dd6vq0b7] {
    margin: 0.25rem 0 0.5rem;
    padding-left: 1.3rem;
    display: grid;
    gap: 0.35rem;
}

.accounting-guide-rows[b-l2dd6vq0b7] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
    gap: 0.75rem;
}

.accounting-guide-row[b-l2dd6vq0b7] {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 0.7rem 0.85rem;
    background: var(--surface);
}

.accounting-guide-row h2[b-l2dd6vq0b7] {
    margin: 0 0 0.4rem;
    font-size: 1rem;
    color: var(--brand-sea-ink);
}

.accounting-guide-row dl[b-l2dd6vq0b7] {
    margin: 0;
    display: grid;
    gap: 0.15rem;
}

.accounting-guide-row dt[b-l2dd6vq0b7] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted);
}

.accounting-guide-row dd[b-l2dd6vq0b7] {
    margin: 0 0 0.35rem;
}
/* /Components/Pages/AccountingHistory.razor.rz.scp.css */
/* Sync history (/settings/integrations/history) — colours come from theme.css tokens only. */

.accounting-history-views .legacy-tab[b-b8zgemjz0f] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.accounting-badge[b-b8zgemjz0f] {
    display: inline-block;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.4;
}

.accounting-badge--todo[b-b8zgemjz0f] {
    background: var(--status-danger-soft);
    color: var(--status-danger-ink);
}

.accounting-history-filters[b-b8zgemjz0f] {
    display: grid;
    gap: 0.6rem;
}

.accounting-history-filter-grid[b-b8zgemjz0f] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
    gap: 0.5rem 0.75rem;
    align-items: end;
}

.accounting-history-filter-grid label[b-b8zgemjz0f] {
    display: grid;
    gap: 0.2rem;
    margin: 0;
}

.accounting-history-search[b-b8zgemjz0f] {
    grid-column: span 2;
}

@media (max-width: 30rem) {
    .accounting-history-search[b-b8zgemjz0f] {
        grid-column: auto;
    }
}

.accounting-table-wrap[b-b8zgemjz0f] {
    position: relative;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.accounting-history-table[b-b8zgemjz0f] {
    min-width: 44rem;
}

/* A phone stacks each row into a card (app.css .mobile-card-table, labels
   from data-label); the scoped min-width above would outrank its reset. */
@media (max-width: 640px) {
    .accounting-history-table[b-b8zgemjz0f] {
        min-width: 0;
    }

    .accounting-history-table .accounting-history-message[b-b8zgemjz0f] {
        max-width: none;
    }

    /* A cell's second line stays under its value, not under the label. */
    .accounting-history-table td > .table-subline[b-b8zgemjz0f] {
        grid-column: 2;
    }

    .accounting-history-table .accounting-result[b-b8zgemjz0f] {
        justify-self: start;
        white-space: normal;
    }

    .accounting-history-table td.accounting-history-actions[b-b8zgemjz0f]::before {
        content: none;
    }

    .accounting-history-table td.accounting-history-actions[b-b8zgemjz0f] {
        display: block;
    }

    .accounting-history-table td.accounting-history-actions:not(:has(button))[b-b8zgemjz0f] {
        display: none;
    }
}

.accounting-nowrap[b-b8zgemjz0f] {
    white-space: nowrap;
}

.accounting-history-message[b-b8zgemjz0f] {
    max-width: 28rem;
    overflow-wrap: anywhere;
}

.accounting-result[b-b8zgemjz0f] {
    display: inline-block;
    padding: 0.05rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
}

.accounting-result--ok[b-b8zgemjz0f] {
    background: var(--status-success-soft);
    color: var(--status-success-ink);
}

.accounting-result--bad[b-b8zgemjz0f] {
    background: var(--status-danger-soft);
    color: var(--status-danger-ink);
}

.accounting-result--wait[b-b8zgemjz0f] {
    background: var(--status-warning-soft);
    color: var(--status-warning-ink);
}

/* Muted text on the page surface with a border (4.76:1 light); on surface-sunken it was 4.40:1, below AA. */
.accounting-result--quiet[b-b8zgemjz0f] {
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text-muted);
}

/* #16725 detail drawer: a disclosure under the row's result, never a modal. */
.accounting-history-detail[b-b8zgemjz0f] { margin-top: 0.35rem; }
.accounting-history-detail > summary[b-b8zgemjz0f] { cursor: pointer; color: var(--brand-sea); font-size: 0.85rem; }
.accounting-history-detail dl[b-b8zgemjz0f] { display: grid; grid-template-columns: max-content 1fr; gap: 0.15rem 0.75rem; margin: 0.4rem 0 0; font-size: 0.85rem; }
.accounting-history-detail dt[b-b8zgemjz0f] { color: var(--text-muted); font-weight: 600; }
.accounting-history-detail dd[b-b8zgemjz0f] { margin: 0; overflow-wrap: anywhere; }
/* /Components/Pages/AccountingImport.razor.rz.scp.css */
/* Import (/settings/integrations/{id}/import) — colours come from theme.css tokens only. */

.accounting-import-pick[b-e3wtewvffh],
.accounting-import-review[b-e3wtewvffh] {
    display: grid;
    gap: 0.75rem;
}

.accounting-import-kinds[b-e3wtewvffh],
.accounting-import-filters[b-e3wtewvffh],
.accounting-import-apply[b-e3wtewvffh] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
}

.accounting-import-filters label[b-e3wtewvffh] {
    display: grid;
    gap: 0.2rem;
}

.accounting-check[b-e3wtewvffh] {
    display: inline-flex !important;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
}

.accounting-import-error[b-e3wtewvffh] {
    border-left: 4px solid var(--status-danger);
}

.accounting-import-error p[b-e3wtewvffh] {
    margin: 0;
    color: var(--status-danger-ink);
}

.accounting-import-result[b-e3wtewvffh] {
    border-left: 4px solid var(--status-success);
}

.accounting-import-result h2[b-e3wtewvffh] {
    margin: 0.1rem 0 0.4rem;
}

.accounting-import-failures[b-e3wtewvffh] {
    margin: 0 0 0.5rem;
    padding-left: 1.2rem;
    color: var(--status-danger-ink);
}

.accounting-chip--todo[b-e3wtewvffh] {
    background: var(--status-warning-soft);
    color: var(--status-warning-ink);
}

.accounting-table-wrap[b-e3wtewvffh] {
    position: relative;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.accounting-import-table[b-e3wtewvffh] {
    min-width: 40rem;
}

.accounting-import-do[b-e3wtewvffh] {
    min-width: 14rem;
}

.accounting-row--review td[b-e3wtewvffh] {
    /* a row highlight is an accent need, not a status (CLAUDE.md) */
    background: var(--brand-glow-soft);
}

.accounting-reason[b-e3wtewvffh] {
    display: inline-block;
    padding: 0.05rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    background: var(--surface-sunken);
    color: var(--text);
}

.accounting-reason--match[b-e3wtewvffh] {
    background: var(--status-success-soft);
    color: var(--status-success-ink);
}

.accounting-reason--review[b-e3wtewvffh] {
    background: var(--status-warning-soft);
    color: var(--status-warning-ink);
}

.accounting-reason--new[b-e3wtewvffh] {
    background: var(--brand-sea-soft);
    color: var(--brand-sea-ink);
}

/* Dark: brand-sea-ink on brand-sea-soft is 4.37:1 (below AA); the dark theme's text orange is 6.93:1. */
[data-theme="dark"] .accounting-reason--new[b-e3wtewvffh] {
    color: var(--brand-orange-text);
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .accounting-reason--new[b-e3wtewvffh] {
        color: var(--brand-orange-text);
    }
}

.accounting-reason--quiet[b-e3wtewvffh] {
    color: var(--text-muted);
}

/* Phones: each row becomes a card (the record, what BidGlory found, the choice). */
@media (max-width: 40rem) {
    .accounting-import-table[b-e3wtewvffh] {
        min-width: 0;
    }

    .accounting-import-table thead[b-e3wtewvffh] {
        display: none;
    }

    .accounting-import-table tr[b-e3wtewvffh] {
        display: grid;
        gap: 0.35rem;
        padding: 0.65rem 0.5rem;
        border-bottom: 1px solid var(--border);
    }

    .accounting-row--review[b-e3wtewvffh] {
        background: var(--brand-glow-soft);
    }

    .accounting-import-table td[b-e3wtewvffh] {
        display: block;
        padding: 0;
        border: 0;
    }

    .accounting-import-do[b-e3wtewvffh] {
        min-width: 0;
    }
}
/* /Components/Pages/AccountingIntegrations.razor.rz.scp.css */
/* Integrations (/settings/integrations) — colours come from theme.css tokens only. */

.accounting-card-grid[b-b9ntrhgn82] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
    gap: 1rem;
}

.accounting-card[b-b9ntrhgn82] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    /* A grid item's default min-width is its content's: a provider panel with a
       long unbreakable string (QBO's configuration keys) would widen the column
       past a phone screen. */
    min-width: 0;
}

.accounting-card__head[b-b9ntrhgn82] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.accounting-card__head h2[b-b9ntrhgn82] {
    margin: 0;
}

.accounting-card__status[b-b9ntrhgn82] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--text-muted);
}

.accounting-card__facts[b-b9ntrhgn82] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.2rem 0.75rem;
    margin: 0;
}

.accounting-card__facts dt[b-b9ntrhgn82] {
    color: var(--text-muted);
    font-weight: 600;
}

.accounting-card__facts dd[b-b9ntrhgn82] {
    margin: 0;
    overflow-wrap: anywhere;
}

.accounting-card__error[b-b9ntrhgn82] {
    color: var(--status-danger-ink);
}

.accounting-card__actions[b-b9ntrhgn82] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: auto;
}

.accounting-card__note[b-b9ntrhgn82] {
    margin: 0;
}

/* UI lane (switch, first-run tip, card links, provider panel slot). */

.accounting-switch[b-b9ntrhgn82] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.accounting-switch__copy[b-b9ntrhgn82] {
    flex: 1 1 18rem;
    min-width: 0;
}

.accounting-switch__copy h2[b-b9ntrhgn82] {
    margin: 0 0 0.25rem;
}

.accounting-switch__copy p[b-b9ntrhgn82] {
    margin: 0;
}

.accounting-switch[data-accounting-switch="on"][b-b9ntrhgn82] {
    border-left: 4px solid var(--status-success);
}

.accounting-howto[b-b9ntrhgn82] {
    margin: 0 0 0.75rem;
    padding-left: 1.2rem;
    display: grid;
    gap: 0.35rem;
}

.accounting-tip[b-b9ntrhgn82] {
    border-left: 4px solid var(--brand-glow);
    background: var(--brand-glow-soft);
}

.accounting-tip p[b-b9ntrhgn82] {
    margin: 0;
}

.accounting-card__panel[b-b9ntrhgn82] {
    display: grid;
    gap: 0.5rem;
}

.accounting-card__links[b-b9ntrhgn82] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border);
    font-weight: 600;
}

.accounting-retired ul[b-b9ntrhgn82] {
    margin: 0.25rem 0 0;
    padding-left: 1.2rem;
}

.accounting-card__guide summary[b-b9ntrhgn82] {
    cursor: pointer;
    font-weight: 600;
}
/* /Components/Pages/AccountingMapping.razor.rz.scp.css */
/* Mapping (/settings/integrations/{id}/mapping) — colours come from theme.css tokens only. */

.accounting-mapping-tabs .legacy-tab[b-zaogvml4jx] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.accounting-badge[b-zaogvml4jx] {
    display: inline-block;
    min-width: 1.4rem;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    /* Muted text on the page surface (4.76:1 light): on surface-sunken it was 4.40:1, below AA. */
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
}

.accounting-badge--todo[b-zaogvml4jx] {
    border-color: transparent;
    background: var(--status-warning-soft);
    color: var(--status-warning-ink);
}

.accounting-mapping-panel[b-zaogvml4jx] {
    display: grid;
    gap: 0.75rem;
}

.accounting-mapping-intro[b-zaogvml4jx],
.accounting-mapping-notice[b-zaogvml4jx] {
    margin: 0;
}

.accounting-mapping-notice[b-zaogvml4jx] {
    border-left: 3px solid var(--status-warning);
    padding-left: 0.6rem;
}

.accounting-mapping-toolbar[b-zaogvml4jx],
.accounting-mapping-bulk[b-zaogvml4jx],
.accounting-pager[b-zaogvml4jx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
}

.accounting-mapping-search[b-zaogvml4jx] {
    flex: 1 1 14rem;
    min-width: 0;
    max-width: 28rem;
}

.accounting-check[b-zaogvml4jx] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
}

.accounting-picker[b-zaogvml4jx] {
    width: min(36rem, 100%);
    max-height: calc(100vh - 2.5rem);
    overflow: auto;
    display: grid;
    gap: 0.6rem;
    text-align: left;
}

.accounting-picker__head[b-zaogvml4jx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.accounting-picker__list[b-zaogvml4jx] {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: min(24rem, 55vh);
    overflow-y: auto;
    display: grid;
    gap: 0.25rem;
}

.accounting-picker__option[b-zaogvml4jx] {
    width: 100%;
    display: grid;
    gap: 0.1rem;
    text-align: left;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-xs);
    background: var(--surface);
    color: var(--text);
    font: inherit;
    cursor: pointer;
}

.accounting-picker__option:hover[b-zaogvml4jx],
.accounting-picker__option:focus-visible[b-zaogvml4jx] {
    background: var(--brand-sea-soft);
    outline: none;
}

.accounting-picker__manual[b-zaogvml4jx] {
    align-items: end;
}

.accounting-table-wrap[b-zaogvml4jx] {
    position: relative;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.accounting-mapping-table[b-zaogvml4jx] {
    min-width: 36rem;
}

.accounting-col-check[b-zaogvml4jx] {
    width: 2.25rem;
}

.accounting-row--pending td[b-zaogvml4jx] {
    background: var(--brand-sea-soft);
}

.accounting-mapped[b-zaogvml4jx] {
    font-weight: 600;
}

.accounting-mapped--pending small[b-zaogvml4jx] {
    color: var(--text-muted);
    font-weight: 400;
}

.accounting-unmapped[b-zaogvml4jx] {
    color: var(--text-muted);
}

.accounting-row-actions[b-zaogvml4jx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: flex-end;
}

/* Phones: each row becomes a small card (checkbox, name, what it maps to,
   the actions) instead of a table that scrolls sideways. */
@media (max-width: 40rem) {
    .accounting-mapping-table[b-zaogvml4jx] {
        min-width: 0;
    }

    .accounting-mapping-table thead[b-zaogvml4jx] {
        display: none;
    }

    .accounting-mapping-table tr[b-zaogvml4jx] {
        display: grid;
        grid-template-columns: 2rem minmax(0, 1fr);
        gap: 0.3rem 0.5rem;
        padding: 0.65rem 0;
        border-bottom: 1px solid var(--border);
    }

    .accounting-row--pending[b-zaogvml4jx] {
        background: var(--brand-sea-soft);
    }

    .accounting-mapping-table td[b-zaogvml4jx] {
        display: block;
        padding: 0;
        border: 0;
    }

    .accounting-mapping-table td:nth-child(3)[b-zaogvml4jx],
    .accounting-mapping-table td:nth-child(4)[b-zaogvml4jx] {
        grid-column: 2;
    }

    .accounting-row-actions[b-zaogvml4jx] {
        justify-content: flex-start;
    }
}
/* /Components/Pages/AgentAccess.razor.rz.scp.css */
/* Agent access (/account/agent-access) — tokens only; colours come from theme.css. */

.agent-token-reveal[b-2exfbjqxf6] {
    border-left: 4px solid var(--status-warning);
    background: var(--surface);
}

.agent-token-reveal__row[b-2exfbjqxf6] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    margin: 0.5rem 0 0.75rem;
}

.agent-token-reveal__row .app-cta[b-2exfbjqxf6] {
    flex: 0 0 auto;
    white-space: nowrap;
}

.agent-token-reveal__value[b-2exfbjqxf6] {
    flex: 1 1 auto;
    min-width: 0;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.85rem;
}

.agent-token-table-wrap[b-2exfbjqxf6] {
    /* contains the visually-hidden header's absolute box, which otherwise
       escapes the scroller and widens the page at phone width */
    position: relative;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.agent-token-table[b-2exfbjqxf6] {
    min-width: 36rem;
}

.agent-token-status[b-2exfbjqxf6] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
}

.agent-token-scopes[b-2exfbjqxf6] {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 0.5rem 0.75rem 0.75rem;
    margin: 0;
}

.agent-token-scope[b-2exfbjqxf6] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    margin-top: 0.4rem;
    color: var(--text);
}

.agent-token-scope--off[b-2exfbjqxf6] {
    color: var(--text-muted);
}

.agent-token-scope input[b-2exfbjqxf6] {
    margin-top: 0.2rem;
}

code[b-2exfbjqxf6] {
    overflow-wrap: anywhere;
}

/* Grid/flex children default to min-width: auto, so a wide table inside a
   panel widened the PAGE at phone width (measured: 611px scroll on a 390px
   viewport). min-width: 0 lets the table's own wrapper scroll instead. */
.app-panel[b-2exfbjqxf6],
.company-layout > *[b-2exfbjqxf6] {
    min-width: 0;
}

@media (max-width: 640px) {
    .form-grid[b-2exfbjqxf6] {
        grid-template-columns: minmax(0, 1fr);
    }

    .agent-token-reveal__row[b-2exfbjqxf6] {
        flex-direction: column;
        align-items: stretch;
    }
}
/* /Components/Pages/AgentDrafts.razor.rz.scp.css */
/* Agent drafts (/agent-drafts) — tokens only; colours come from theme.css. */

.agent-drafts-table-wrap[b-0s7fc5n0mg] {
    /* contains the visually-hidden header's absolute box, which otherwise
       escapes the scroller and widens the page at phone width */
    position: relative;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.agent-drafts-table[b-0s7fc5n0mg] {
    min-width: 40rem;
}

.agent-drafts-actions[b-0s7fc5n0mg] {
    white-space: nowrap;
}

.agent-drafts-actions .app-cta + .app-cta[b-0s7fc5n0mg] {
    margin-left: 0.4rem;
}

.agent-drafts-filter[b-0s7fc5n0mg] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.agent-drafts-filter .flag-label[b-0s7fc5n0mg] {
    white-space: nowrap;
}

.agent-drafts-filter select[b-0s7fc5n0mg] {
    width: auto;
}

.agent-drafts-preview p[b-0s7fc5n0mg] {
    white-space: pre-wrap;
    max-width: 48rem;
    color: var(--text);
}

/* Same phone-width rule as Agent access: the table scrolls, the page does not. */
.app-panel[b-0s7fc5n0mg] {
    min-width: 0;
}

@media (max-width: 640px) {
    .agent-drafts-filter[b-0s7fc5n0mg] {
        display: flex;
        width: 100%;
    }
}

.agent-drafts-compare[b-0s7fc5n0mg] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 0.4rem;
}

.agent-drafts-compare p[b-0s7fc5n0mg] {
    white-space: pre-wrap;
    margin: 0.2rem 0 0;
    color: var(--text);
}

@media (max-width: 640px) {
    .agent-drafts-compare[b-0s7fc5n0mg] {
        grid-template-columns: minmax(0, 1fr);
    }
}

.agent-drafts-warning[b-0s7fc5n0mg] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0.3rem 0 0;
    color: var(--status-warning-ink);
    background: var(--status-warning-soft);
    border-radius: var(--radius-sm);
    padding: 0.3rem 0.5rem;
}

/* #16447 — the line's effect on the bid total, under the line. */
.agent-drafts-impact[b-0s7fc5n0mg] {
    margin-top: 0.2rem;
    font-weight: 600;
    color: var(--text);
    font-variant-numeric: tabular-nums;
}
/* /Components/Pages/BidElectrical.razor.rz.scp.css */
/* Electrical (lane C) on the bid workspace shell. The shell
   (BidWorkspaceSidebar.razor.css) lays out the sidebar, title strip and
   foot; this file styles only what this page puts in its slots and main
   column. Colours are theme.css tokens: --phase-* for the A/B/C rows
   (accent), --status-* only for the balance / utilisation verdicts. */

.bws-save[b-iepa98xi6q] { flex: 1 1 auto; min-width: 0; }
@media (min-width: 1280px) {
    .bws[data-collapsed="true"]:not([data-panel="true"]) .bws-side .bws-save__extra[b-iepa98xi6q] { display: none; }
}
@media (min-width: 768px) and (max-width: 1279.98px) and (pointer: fine),
       (min-width: 768px) and (max-width: 1279.98px) and (min-height: 501px) {
    .bws:not([data-open="true"]):not([data-panel="true"]) .bws-side .bws-save__extra[b-iepa98xi6q] { display: none; }
}

.bws-identity[b-iepa98xi6q] { display: grid; gap: .35rem; padding: .15rem 0; }
.bws-identity > div[b-iepa98xi6q] { min-width: 0; }
.bws-identity .flag-label[b-iepa98xi6q] { display: block; }
.bws-identity__value[b-iepa98xi6q] {
    margin: 0;
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--text);
    overflow-wrap: anywhere;
}

.elec-info[b-iepa98xi6q] { margin: 0; }
.elec-lock-chip[b-iepa98xi6q] { border-color: var(--status-warning); }
.elec-panel-picker .form-select[b-iepa98xi6q] { min-width: 12rem; }

/* ---- in-page tabs ---------------------------------------------------- */
.elec-tabs[b-iepa98xi6q] {
    display: flex;
    gap: .25rem;
    border-bottom: 1px solid var(--border);
    margin: .25rem 0 .5rem;
}
.elec-tab[b-iepa98xi6q] {
    border: 0;
    background: transparent;
    color: var(--text-muted);
    font-weight: 600;
    padding: .5rem .85rem;
    min-height: 2.5rem;
    border-bottom: 3px solid transparent;
    cursor: pointer;
}
.elec-tab[aria-selected="true"][b-iepa98xi6q] { color: var(--text); border-bottom-color: var(--brand-sea); }
.elec-tab:focus-visible[b-iepa98xi6q] { outline: none; box-shadow: var(--shadow-focus); }

/* ---- panel header ---------------------------------------------------- */
.elec-head[b-iepa98xi6q] { padding: .65rem .9rem; }
.elec-head__line[b-iepa98xi6q] { margin: 0; display: flex; flex-wrap: wrap; gap: .35rem .75rem; align-items: center; }
.elec-head__line + .elec-head__line[b-iepa98xi6q] { margin-top: .35rem; }
/* The header's parts wrap between each other, never mid-part, and the
   separator belongs to the part after it (no lone "· 200 A" line). */
.elec-head__parts[b-iepa98xi6q] { gap: .2rem .45rem; }
.elec-head__part[b-iepa98xi6q] { white-space: nowrap; }
.elec-head__name[b-iepa98xi6q] { font-weight: 800; }
.elec-head__part + .elec-head__part[b-iepa98xi6q]::before { content: "·"; margin-right: .45rem; color: var(--text-muted); }

.elec-status[b-iepa98xi6q] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .1rem .55rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: .82rem;
}
.elec-status--success[b-iepa98xi6q] { background: var(--status-success-soft); color: var(--status-success-ink); }
.elec-status--warning[b-iepa98xi6q] { background: var(--status-warning-soft); color: var(--status-warning-ink); }
.elec-status--danger[b-iepa98xi6q]  { background: var(--status-danger-soft);  color: var(--status-danger-ink); }
.elec-status--empty[b-iepa98xi6q]   { background: var(--surface-sunken); color: var(--text-muted); }
.elec-dot[b-iepa98xi6q] { display: inline-block; width: .6rem; height: .6rem; border-radius: 50%; margin-right: .35rem; padding: 0; }

.elec-section-title[b-iepa98xi6q] { font-size: 1rem; margin: 0 0 .5rem; display: flex; gap: .5rem; align-items: center; }
.elec-ref[b-iepa98xi6q] {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    padding: .05rem .4rem;
    border-radius: var(--radius-xs);
    background: var(--brand-glow-soft);
    color: var(--text);
    white-space: nowrap;
}
.elec-muted[b-iepa98xi6q] { color: var(--text-muted); }

/* ---- the panel directory ----------------------------------------------
   Desktop: odd spaces left, even right, one row per pair — a real panel's
   directory. Phone: one column in slot order, empty spaces folded into the
   "Add circuit (n free)" button. */
.elec-grid-panel[b-iepa98xi6q] { container-type: inline-size; padding: .5rem; }
.elec-grid[b-iepa98xi6q] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px 6px;
}
.elec-slot[b-iepa98xi6q] { min-width: 0; border-radius: var(--radius-xs); }
.elec-slot.phase-a[b-iepa98xi6q] { background: var(--phase-a-soft); }
.elec-slot.phase-b[b-iepa98xi6q] { background: var(--phase-b-soft); }
.elec-slot.phase-c[b-iepa98xi6q] { background: var(--phase-c-soft); }
.elec-slot--empty[b-iepa98xi6q] { opacity: .85; }
.elec-slot__btn[b-iepa98xi6q] {
    display: grid;
    grid-template-columns: 2rem 1.4rem 3.6rem minmax(0, 1fr) auto;
    grid-template-areas: "num ph brk desc va" ". . flags flags flags";
    align-items: center;
    gap: 0 .45rem;
    width: 100%;
    min-height: 2.4rem;
    padding: .3rem .5rem;
    border: 1px solid transparent;
    border-radius: inherit;
    background: transparent;
    color: var(--text);
    text-align: left;
    font: inherit;
    font-size: .84rem;
    cursor: pointer;
}
.elec-slot__btn:hover:not(:disabled)[b-iepa98xi6q] { border-color: var(--border-strong); }
.elec-slot__btn:focus-visible[b-iepa98xi6q] { outline: none; box-shadow: var(--shadow-focus); }
.elec-slot__btn:disabled[b-iepa98xi6q] { cursor: default; }
.elec-slot__num[b-iepa98xi6q] { grid-area: num; font-weight: 700; color: var(--text-muted); text-align: right; white-space: nowrap; }
.elec-slot__phase[b-iepa98xi6q] {
    grid-area: ph;
    font-weight: 800;
    font-size: .75rem;
    text-align: center;
}
.phase-a .elec-slot__phase[b-iepa98xi6q] { color: var(--phase-a); }
.phase-b .elec-slot__phase[b-iepa98xi6q] { color: var(--phase-b); }
.phase-c .elec-slot__phase[b-iepa98xi6q] { color: var(--phase-c); }
.elec-slot__brk[b-iepa98xi6q] { grid-area: brk; font-weight: 600; white-space: nowrap; }
.elec-slot__desc[b-iepa98xi6q] { grid-area: desc; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.elec-slot__va[b-iepa98xi6q] { grid-area: va; font-variant-numeric: tabular-nums; white-space: nowrap; }
.elec-slot__flags[b-iepa98xi6q] { grid-area: flags; display: flex; flex-wrap: wrap; gap: .25rem; }
.elec-slot__flags:empty[b-iepa98xi6q] { display: none; }
.elec-flag[b-iepa98xi6q] {
    font-size: .68rem;
    font-weight: 700;
    padding: 0 .35rem;
    border-radius: var(--radius-xs);
    border: 1px solid var(--border-strong);
    background: var(--surface);
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.elec-flag--muted[b-iepa98xi6q] { color: var(--text-muted); }
.elec-slot--cont .elec-slot__btn[b-iepa98xi6q] { font-style: italic; }
.elec-add-free[b-iepa98xi6q] { margin-top: .6rem; }

@container (max-width: 44rem) {
    .elec-grid[b-iepa98xi6q] { grid-template-columns: minmax(0, 1fr); }
    .elec-slot--empty[b-iepa98xi6q] { display: none; }
    .elec-slot__btn[b-iepa98xi6q] {
        min-height: 3.625rem;
        grid-template-columns: 2.4rem 1.4rem 3.6rem minmax(0, 1fr);
        grid-template-areas: "num ph brk desc" ". . va flags";
    }
    .elec-slot__va[b-iepa98xi6q]::after { content: " VA"; }
}

/* ---- load calc --------------------------------------------------------- */
.elec-methods[b-iepa98xi6q] { display: grid; gap: .75rem; }
@media (min-width: 1280px) {
    .elec-methods--two[b-iepa98xi6q] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.elec-method[b-iepa98xi6q] { container-type: inline-size; min-width: 0; }
.elec-calc[b-iepa98xi6q] { width: 100%; border-collapse: collapse; font-size: .84rem; }
.elec-calc :is(th, td)[b-iepa98xi6q] { padding: .3rem .4rem; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.elec-calc th[b-iepa98xi6q] { color: var(--text-muted); font-size: .74rem; text-transform: uppercase; letter-spacing: .03em; }
.elec-calc .num[b-iepa98xi6q] { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.elec-calc__info td[b-iepa98xi6q] { color: var(--text-muted); }
@container (max-width: 36rem) {
    .elec-calc[b-iepa98xi6q], .elec-calc tbody[b-iepa98xi6q] { display: block; }
    .elec-calc thead[b-iepa98xi6q] { display: none; }
    .elec-calc tr[b-iepa98xi6q] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .1rem .5rem;
        padding: .45rem .1rem;
        border-bottom: 1px solid var(--border);
    }
    .elec-calc td[b-iepa98xi6q] { display: block; border: 0; padding: 0; text-align: left; }
    .elec-calc td[data-label="Category"][b-iepa98xi6q] { font-weight: 700; }
    .elec-calc td[data-label="Basis"][b-iepa98xi6q] { grid-column: 1 / -1; }
    .elec-calc td[data-label="Connected"][b-iepa98xi6q], .elec-calc td[data-label="Factor"][b-iepa98xi6q] { display: none; }
    .elec-calc td[data-label="Demand"][b-iepa98xi6q] { grid-column: 2; grid-row: 1; text-align: right; font-weight: 700; }
}
.elec-verdict[b-iepa98xi6q] { display: grid; gap: .3rem; margin: .75rem 0 0; }
.elec-verdict > div[b-iepa98xi6q] { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; }
.elec-verdict dt[b-iepa98xi6q] { color: var(--text-muted); font-weight: 600; }
.elec-verdict dd[b-iepa98xi6q] { margin: 0; font-weight: 700; }
.elec-footer[b-iepa98xi6q] { margin-top: .5rem; }

/* ---- phase balance ----------------------------------------------------- */
.elec-panel-strip[b-iepa98xi6q] { display: flex; flex-wrap: wrap; gap: .35rem; }
.elec-panel-strip__item[b-iepa98xi6q] {
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text);
    border-radius: 999px;
    padding: .25rem .7rem;
    min-height: 2.25rem;
    cursor: pointer;
}
.elec-panel-strip__item[aria-current="true"][b-iepa98xi6q] { border-color: var(--brand-sea); font-weight: 700; }
.elec-balance__status[b-iepa98xi6q] { font-size: 1.15rem; padding: .3rem .9rem; margin: 0 0 .5rem; }
.elec-legs[b-iepa98xi6q] { display: grid; gap: .5rem; margin: .5rem 0; }
.elec-leg[b-iepa98xi6q] { display: grid; grid-template-columns: 5rem minmax(0, 1fr) auto; gap: .6rem; align-items: center; }
.elec-leg__name[b-iepa98xi6q] { font-weight: 700; }
.elec-leg__bar[b-iepa98xi6q] { display: block; height: .8rem; background: var(--surface-sunken); border-radius: 999px; overflow: hidden; }
.elec-leg__bar > span[b-iepa98xi6q] { display: block; height: 100%; border-radius: inherit; }
.elec-leg.phase-a .elec-leg__bar > span[b-iepa98xi6q] { background: var(--phase-a); }
.elec-leg.phase-b .elec-leg__bar > span[b-iepa98xi6q] { background: var(--phase-b); }
.elec-leg.phase-c .elec-leg__bar > span[b-iepa98xi6q] { background: var(--phase-c); }
.elec-leg__val[b-iepa98xi6q] { font-variant-numeric: tabular-nums; white-space: nowrap; font-size: .84rem; }
@media (max-width: 767.98px) {
    .elec-leg[b-iepa98xi6q] { grid-template-columns: minmax(0, 1fr) auto; }
    .elec-leg__bar[b-iepa98xi6q] { grid-column: 1 / -1; grid-row: 2; }
}
.elec-moves[b-iepa98xi6q] { padding-left: 1.1rem; display: grid; gap: .4rem; }
.elec-moves li[b-iepa98xi6q] { overflow-wrap: anywhere; }

.elec-warnings ul[b-iepa98xi6q] { margin: 0; padding-left: 1.1rem; display: grid; gap: .3rem; font-size: .86rem; }
.elec-warnings li[b-iepa98xi6q] { overflow-wrap: anywhere; }

.elec-empty__title[b-iepa98xi6q] { font-size: 1.15rem; margin: .25rem 0; }

/* ---- dialogs: centred on iPad/desktop, a bottom sheet on a phone -------- */
.elec-sheet[b-iepa98xi6q] { position: fixed; inset: 0; z-index: 1080; display: grid; place-items: center; padding: 1rem; }
.elec-sheet__scrim[b-iepa98xi6q] { position: absolute; inset: 0; background: rgba(15, 23, 42, .45); }
.elec-sheet__body[b-iepa98xi6q] {
    position: relative;
    width: min(40rem, 100%);
    max-height: calc(100dvh - 2rem);
    overflow: auto;
    display: grid;
    gap: .6rem;
    margin: 0;
}
.elec-sheet__head[b-iepa98xi6q] { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.elec-sheet__head h2[b-iepa98xi6q] { font-size: 1.1rem; margin: 0; }
.elec-sheet__actions[b-iepa98xi6q] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.elec-form[b-iepa98xi6q] { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem .75rem; }
.elec-form > label[b-iepa98xi6q] { display: grid; gap: .2rem; min-width: 0; }
.elec-form .checkbox-row[b-iepa98xi6q] { margin-top: 0; display: flex; align-items: center; gap: .4rem; }
.elec-form__wide[b-iepa98xi6q] { grid-column: 1 / -1; }
.elec-danger[b-iepa98xi6q] { color: var(--status-danger-ink); border-color: var(--status-danger); }
.elec-line-picker ul[b-iepa98xi6q] { list-style: none; margin: 0; padding: 0; max-height: 14rem; overflow: auto; display: grid; gap: .2rem; }
.elec-line-picker__item[b-iepa98xi6q] {
    width: 100%;
    text-align: left;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text);
    border-radius: var(--radius-xs);
    padding: .45rem .6rem;
    min-height: 2.5rem;
    cursor: pointer;
}
@media (max-width: 767.98px) {
    .elec-sheet[b-iepa98xi6q] { place-items: end stretch; padding: 0; }
    .elec-sheet__body[b-iepa98xi6q] { width: 100%; max-height: 88dvh; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
    .elec-form[b-iepa98xi6q] { grid-template-columns: minmax(0, 1fr); }
    .elec-tabs[b-iepa98xi6q] { overflow-x: auto; }
    .elec-tab[b-iepa98xi6q] { flex: 1 0 auto; }
}

/* Phone: the dock holds Bid menu, the demand and the pinned command, so the
   command keeps only its last word there, as on the rail. A 2/3-pole
   breaker's card names all its spaces ("3·5") and its continuation spaces
   fold away. */
.elec-slot__more[b-iepa98xi6q] { display: none; }
@media (max-width: 767.98px) {
    .bws-dock .bws-save__extra[b-iepa98xi6q] { display: none; }
    .bws-save[b-iepa98xi6q] { flex: 0 0 auto; }
}
@container (max-width: 44rem) {
    .elec-slot--cont[b-iepa98xi6q] { display: none; }
    .elec-slot__more[b-iepa98xi6q] { display: inline; }
}
/* /Components/Pages/BidPermits.razor.rz.scp.css */
/* Permits (PBI #13874) on the bid workspace shell. The shell
   (BidWorkspaceSidebar.razor.css) lays out the sidebar, title strip and
   foot; this file styles only what this page puts in its slots and main
   column. Colours are theme.css tokens only, so light and dark both follow
   the theme: --status-* for the permit / inspection status pills (they ARE
   status), --brand-sea / --brand-sea-soft for the selected permit (an accent,
   not a status). */

.bws-save[b-cd7kvhod06] { flex: 1 1 auto; min-width: 0; }
@media (min-width: 1280px) {
    .bws[data-collapsed="true"]:not([data-panel="true"]) .bws-side .bws-save__extra[b-cd7kvhod06] { display: none; }
}
@media (min-width: 768px) and (max-width: 1279.98px) and (pointer: fine),
       (min-width: 768px) and (max-width: 1279.98px) and (min-height: 501px) {
    .bws:not([data-open="true"]):not([data-panel="true"]) .bws-side .bws-save__extra[b-cd7kvhod06] { display: none; }
}

.bws-identity[b-cd7kvhod06] { display: grid; gap: .35rem; padding: .15rem 0; }
.bws-identity > div[b-cd7kvhod06] { min-width: 0; }
.bws-identity .flag-label[b-cd7kvhod06] { display: block; }
.bws-identity__value[b-cd7kvhod06] {
    margin: 0;
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--text);
    overflow-wrap: anywhere;
}

.permits-info[b-cd7kvhod06] { margin: 0; }
.permits-job-chip[b-cd7kvhod06] { text-decoration: none; color: var(--text); }
.permits-job-chip:hover[b-cd7kvhod06] { border-color: var(--brand-sea); }
.permits-job-chip:focus-visible[b-cd7kvhod06] { outline: none; box-shadow: var(--shadow-focus); }
.permits-muted[b-cd7kvhod06] { color: var(--text-muted); }

.permits-head[b-cd7kvhod06] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .5rem;
}
.permits-title[b-cd7kvhod06] { font-size: 1rem; margin: 0; overflow-wrap: anywhere; }
.permits-empty__title[b-cd7kvhod06] { font-size: 1.15rem; margin: .25rem 0; }
.permits-notes[b-cd7kvhod06] { margin: 0 0 .5rem; white-space: pre-line; overflow-wrap: anywhere; }

/* ---- status pills: the status palette only ---------------------------- */
.permit-status[b-cd7kvhod06] {
    display: inline-flex;
    align-items: center;
    padding: .1rem .55rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: .8rem;
    white-space: nowrap;
}
.permit-status--success[b-cd7kvhod06] { background: var(--status-success-soft); color: var(--status-success-ink); }
.permit-status--warning[b-cd7kvhod06] { background: var(--status-warning-soft); color: var(--status-warning-ink); }
.permit-status--danger[b-cd7kvhod06]  { background: var(--status-danger-soft);  color: var(--status-danger-ink); }
.permit-status--neutral[b-cd7kvhod06] { background: var(--surface-sunken); color: var(--text-muted); }

/* ---- the permit list ----------------------------------------------------
   Wide: number + AHJ, status, the facts in a row, Edit. Narrow (phone, or a
   squeezed column): a card per permit, facts wrapping under the name. */
.permits-list[b-cd7kvhod06] { container-type: inline-size; }
.permits-rows[b-cd7kvhod06], .inspection-rows[b-cd7kvhod06] { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.permit-row[b-cd7kvhod06] {
    display: grid;
    grid-template-columns: minmax(10rem, 1.2fr) auto minmax(0, 3fr) auto;
    align-items: center;
    gap: .35rem .75rem;
    padding: .5rem .6rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
}
.permit-row--selected[b-cd7kvhod06] { border-color: var(--brand-sea); background: var(--brand-sea-soft); }
.permit-row__open[b-cd7kvhod06] {
    display: grid;
    gap: .1rem;
    min-width: 0;
    min-height: 2.5rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text);
    text-align: left;
    font: inherit;
    cursor: pointer;
}
.permit-row__open:focus-visible[b-cd7kvhod06] { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--radius-xs); }
.permit-row__number[b-cd7kvhod06] { font-weight: 800; overflow-wrap: anywhere; }
.permit-row__ahj[b-cd7kvhod06] { font-size: .84rem; color: var(--text-muted); overflow-wrap: anywhere; }
.permit-row__facts[b-cd7kvhod06] { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: 0; font-size: .84rem; }
.permit-row__facts > div[b-cd7kvhod06] { display: flex; gap: .3rem; min-width: 0; }
.permit-row__facts dt[b-cd7kvhod06] { color: var(--text-muted); font-weight: 600; }
.permit-row__facts dd[b-cd7kvhod06] { margin: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.permit-row__facts a[b-cd7kvhod06] { color: var(--brand-sea-ink); }
.permit-row__edit[b-cd7kvhod06] { justify-self: end; }

@container (max-width: 44rem) {
    .permit-row[b-cd7kvhod06] {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas: "open status" "facts facts" "edit edit";
    }
    .permit-row__open[b-cd7kvhod06] { grid-area: open; }
    .permit-row .permit-status[b-cd7kvhod06] { grid-area: status; }
    .permit-row__facts[b-cd7kvhod06] { grid-area: facts; }
    .permit-row__edit[b-cd7kvhod06] { grid-area: edit; justify-self: start; }
}

/* ---- inspections ---------------------------------------------------------- */
.inspection-row[b-cd7kvhod06] {
    display: grid;
    gap: .3rem;
    padding: .5rem .6rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
}
.inspection-row__main[b-cd7kvhod06] { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.inspection-row__phase[b-cd7kvhod06] { font-weight: 700; overflow-wrap: anywhere; }
.inspection-row__meta[b-cd7kvhod06] { display: flex; flex-wrap: wrap; gap: .2rem 1rem; margin: 0; font-size: .84rem; color: var(--text-muted); }
.inspection-row__notes[b-cd7kvhod06] { margin: 0; font-size: .86rem; white-space: pre-line; overflow-wrap: anywhere; }
.inspection-row__actions[b-cd7kvhod06] { display: flex; flex-wrap: wrap; gap: .4rem; }
.permits-danger[b-cd7kvhod06] { color: var(--status-danger-ink); border-color: var(--status-danger); }

/* ---- dialogs (AppDialog + the shared .item-dialog-panel scale) ------------ */
.permits-dialog[b-cd7kvhod06] { display: grid; gap: .6rem; margin: 0; }
.permits-form[b-cd7kvhod06] { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem .75rem; }
.permits-form > label[b-cd7kvhod06], .permits-form[b-cd7kvhod06]  .permits-date { display: grid; gap: .2rem; min-width: 0; }
.permits-form__wide[b-cd7kvhod06] { grid-column: 1 / -1; }
@media (max-width: 767.98px) {
    .permits-form[b-cd7kvhod06] { grid-template-columns: minmax(0, 1fr); }
}
/* /Components/Pages/BidPreview.razor.rz.scp.css */
/* BidPreview on the bid workspace shell (Feature 16264, PBI 16266).

   The shell (BidWorkspaceSidebar.razor.css) lays out the sidebar, the title
   strip and the foot; this file styles only the markup this page puts in
   its slots and its main column. Colours come from theme.css tokens. */

/* The pinned command (foot and phone dock): in the dock it takes the
   room the bid page gives its Total. */
.bws-save[b-yc2xw0cj0e] { flex: 1 1 auto; min-width: 0; }

/* On the rail the pinned command keeps only its last word ("Word",
   "Orders"); its accessible name and tooltip keep the whole label. */
@media (min-width: 1280px) {
    .bws[data-collapsed="true"]:not([data-panel="true"]) .bws-side .bws-save__extra[b-yc2xw0cj0e] { display: none; }
}
@media (min-width: 768px) and (max-width: 1279.98px) and (pointer: fine),
       (min-width: 768px) and (max-width: 1279.98px) and (min-height: 501px) {
    .bws:not([data-open="true"]):not([data-panel="true"]) .bws-side .bws-save__extra[b-yc2xw0cj0e] { display: none; }
}

/* Sidebar: the bid's identity (no pickers here; the bid page has them). */
.bws-identity[b-yc2xw0cj0e] {
    display: grid;
    gap: .35rem;
    padding: .15rem 0;
}
.bws-identity > div[b-yc2xw0cj0e] { min-width: 0; }
.bws-identity .flag-label[b-yc2xw0cj0e] { display: block; }
.bws-identity__value[b-yc2xw0cj0e] {
    margin: 0;
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--text);
    overflow: hidden;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* Advanced options panel: the two toggle banks one under the other, two
   checkboxes a row in the 400px sidebar (one on a narrow phone). */
.preview-options-panel .preview-toggle-bank + .preview-toggle-bank[b-yc2xw0cj0e] { margin-top: .5rem; }
.preview-options-panel .preview-toggle-grid[b-yc2xw0cj0e] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* app.css nudges every .checkbox-row / .compact-check down (1.55-1.8rem)
   to line up with labelled fields beside it; a list of toggles has none. */
.preview-options-panel .checkbox-row[b-yc2xw0cj0e] { margin-top: 0; min-height: 1.75rem; }
@media (pointer: coarse) {
    .preview-options-panel .checkbox-row[b-yc2xw0cj0e] { min-height: var(--tap-min); }
}
@media (max-width: 359.98px) {
    .preview-options-panel .preview-toggle-grid[b-yc2xw0cj0e] { grid-template-columns: minmax(0, 1fr); }
}

/* Phones: the quick controls two to a row (Selection, Opening/Closing and
   the cover choice keep a whole row) instead of one tall column. */
@media (max-width: 767.98px) {
    .preview-quick-grid[b-yc2xw0cj0e] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem .6rem; align-items: end; }
    .preview-quick-grid .preview-scope-strip[b-yc2xw0cj0e],
    .preview-quick-grid .preview-inline-choice[b-yc2xw0cj0e] { grid-column: 1 / -1; }
    .preview-quick-grid .preview-inline-choice > .checkbox-row[b-yc2xw0cj0e] { margin-top: 0; }
    .preview-room-header .status-pill[b-yc2xw0cj0e] { white-space: nowrap; }
}

/* Proposal body: one line per item, no sideways scroll. The shell already
   drops app.css's 1320px floor; fixed layout gives the text columns what
   the fixed-width columns leave and cuts them with an ellipsis (each cell
   keeps its full text as a tooltip). */
.preview-room-section[b-yc2xw0cj0e] { container-type: inline-size; }
.preview-table th[b-yc2xw0cj0e] { top: var(--bws-top, 0px); }
.preview-items-table[b-yc2xw0cj0e] { table-layout: fixed; }
.preview-items-table :is(th, td)[b-yc2xw0cj0e] { overflow: hidden; text-overflow: ellipsis; }
.preview-items-table .c-phase[b-yc2xw0cj0e] { width: 5rem; }
.preview-items-table .c-mfg[b-yc2xw0cj0e] { width: 7.5rem; }
.preview-items-table .c-model[b-yc2xw0cj0e] { width: 8.5rem; }
.preview-items-table .c-qty[b-yc2xw0cj0e] { width: 3.5rem; }
.preview-items-table .c-unit[b-yc2xw0cj0e] { width: 3.25rem; }
.preview-items-table .c-sell[b-yc2xw0cj0e] { width: 5.75rem; }
.preview-items-table .c-total[b-yc2xw0cj0e] { width: 6.25rem; }
.preview-items-table .c-url[b-yc2xw0cj0e] { width: 9rem; }
/* Features shares the leftover width with Description; Description keeps
   the larger share (most lines have no features text). */
.preview-items-table .c-feat[b-yc2xw0cj0e] { width: 16%; }
@container (max-width: 60rem) {
    .preview-items-table .c-feat[b-yc2xw0cj0e] { width: 12%; }
}

/* Narrow (a phone, or a phone held sideways): each item is
   a two- or three-line card — model, mfg and total; the description; then
   phase, quantity and unit price — instead of a table wider than the page. */
@container (max-width: 40rem) {
    .preview-items-table[b-yc2xw0cj0e],
    .preview-items-table tbody[b-yc2xw0cj0e] { display: block; width: 100%; }
    .preview-items-table thead[b-yc2xw0cj0e] { display: none; }
    .preview-items-table tr[b-yc2xw0cj0e] {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        column-gap: .45rem;
        row-gap: .1rem;
        padding: .45rem .55rem;
        border-bottom: 1px solid var(--border);
    }
    /* .bid-workspace-table doubled: beats app.css's striped and hovered
       cell fills, so a card is one surface. */
    .preview-items-table.bid-workspace-table tr td[b-yc2xw0cj0e] {
        display: block;
        width: auto;
        min-width: 0;
        padding: 0;
        border: 0;
        background: transparent;
        color: inherit;
        white-space: nowrap;
    }
    .preview-items-table tr:nth-child(even)[b-yc2xw0cj0e] { background: var(--surface-sunken); }
    .preview-items-table tr:hover[b-yc2xw0cj0e] { background: var(--brand-sea-soft); }
    .preview-items-table .c-model[b-yc2xw0cj0e] { order: 1; font-weight: 700; flex: 0 1 auto; }
    .preview-items-table .c-mfg[b-yc2xw0cj0e] { order: 2; flex: 0 1 auto; color: var(--text-muted); }
    .preview-items-table .c-total[b-yc2xw0cj0e] { order: 3; margin-left: auto; font-weight: 700; flex: none; }
    .preview-items-table .c-desc[b-yc2xw0cj0e] { order: 4; flex: 1 0 100%; }
    .preview-items-table .c-feat[b-yc2xw0cj0e] { order: 5; flex: 1 0 100%; color: var(--text-muted); }
    /* On its own line the description (and features) wraps rather than
       hiding the end of a long product name behind an ellipsis no touch
       screen can hover; an unbroken name breaks inside its own line
       (verifier P3, 2026-10-10). Number cells stay nowrap. */
    .preview-items-table.bid-workspace-table tr td:is(.c-desc, .c-feat)[b-yc2xw0cj0e] {
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .preview-items-table .c-phase[b-yc2xw0cj0e] { order: 6; color: var(--text-muted); font-size: .72rem; }
    .preview-items-table .c-qty[b-yc2xw0cj0e] { order: 7; }
    .preview-items-table .c-unit[b-yc2xw0cj0e] { order: 8; }
    .preview-items-table .c-sell[b-yc2xw0cj0e] { order: 9; color: var(--text-muted); }
    .preview-items-table .c-sell[b-yc2xw0cj0e]::before { content: "@ "; }
    .preview-items-table .c-url[b-yc2xw0cj0e] { order: 10; flex: 1 0 100%; color: var(--text-muted); font-size: .72rem; }
}

/* The short tables (system summary, payment plan) fit as they are; on a
   phone their headers may wrap rather than push the page sideways. */
@media (max-width: 767.98px) {
    .preview-payment-plan th[b-yc2xw0cj0e] { white-space: normal; }
    .preview-payment-plan :is(th, td)[b-yc2xw0cj0e] { padding-left: .35rem; padding-right: .35rem; }
}

/* ...until the amounts are large: five nowrap columns of a ten-figure plan
   ("$528,243,076.81") pushed the page to 391px at 320 (verifier P3,
   2026-10-10). On a phone each payment is a short card — number, percent
   and amount; the running balance; the due date (or status), each named —
   and no value ever breaks inside itself. */
@media (max-width: 640px) {
    .preview-payment-plan[b-yc2xw0cj0e],
    .preview-payment-plan tbody[b-yc2xw0cj0e] { display: block; width: 100%; min-width: 0; }
    .preview-payment-plan thead[b-yc2xw0cj0e] { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
    .preview-payment-plan tbody tr[b-yc2xw0cj0e] {
        display: grid;
        grid-template-columns: auto auto minmax(0, 1fr);
        column-gap: .5rem;
        row-gap: .1rem;
        padding: .45rem .55rem;
        border-bottom: 1px solid var(--border);
    }
    .preview-payment-plan.bid-workspace-table tbody td[b-yc2xw0cj0e] {
        padding: 0;
        border: 0;
        background: transparent;
        white-space: nowrap;
        overflow-wrap: normal;
        text-align: left;
    }
    .preview-payment-plan .pp-no[b-yc2xw0cj0e] { grid-area: 1 / 1; font-weight: 700; }
    .preview-payment-plan .pp-no[b-yc2xw0cj0e]::before { content: "#"; }
    .preview-payment-plan .pp-pct[b-yc2xw0cj0e] { grid-area: 1 / 2; color: var(--text-muted); }
    .preview-payment-plan.bid-workspace-table tbody td.pp-amt[b-yc2xw0cj0e] { grid-area: 1 / 3; text-align: right; font-weight: 700; }
    .preview-payment-plan .pp-bal[b-yc2xw0cj0e] { grid-area: 2 / 1 / 3 / 4; min-width: 0; color: var(--text-muted); font-size: .8rem; }
    .preview-payment-plan.bid-workspace-table tbody td.pp-due[b-yc2xw0cj0e] { grid-area: 3 / 1 / 4 / 4; min-width: 0; color: var(--text-muted); font-size: .8rem; white-space: normal; overflow-wrap: normal; }
    .preview-payment-plan .pp-bal[b-yc2xw0cj0e]::before,
    .preview-payment-plan .pp-due[data-label="Due"]:not(:empty)[b-yc2xw0cj0e]::before { content: attr(data-label) " "; }
}

/* R2 W1-4 — Advanced options in the page (iPad and desktop), as 815dbb6
   had them: the two banks a little apart. PHONE (the sidebar's sheet + dock
   mode, as BidWorkspaceSidebar.razor.css writes it) keeps them in the sidebar
   panel only, exactly as e10b644. */
.preview-advanced-options[b-yc2xw0cj0e] { scroll-margin-top: calc(var(--bws-top, 0px) + .75rem); }
.preview-advanced-options .preview-toggle-bank + .preview-toggle-bank[b-yc2xw0cj0e] { margin-top: 1rem; }
@media (max-width: 767.98px), (pointer: coarse) and (max-height: 500px) {
    .preview-advanced-options[b-yc2xw0cj0e] { display: none; }
}
/* /Components/Pages/BidTakeoff.razor.rz.scp.css */
/* Plan takeoff (lane D) on the bid workspace shell. Opens on the rail so the
   canvas gets the width. Colours are theme.css tokens. */

.bws-save[b-7h7ui64fhp] { flex: 1 1 auto; min-width: 0; }
@media (min-width: 1280px) {
    .bws[data-collapsed="true"]:not([data-panel="true"]) .bws-side .bws-save__extra[b-7h7ui64fhp] { display: none; }
}
@media (min-width: 768px) and (max-width: 1279.98px) and (pointer: fine),
       (min-width: 768px) and (max-width: 1279.98px) and (min-height: 501px) {
    .bws:not([data-open="true"]):not([data-panel="true"]) .bws-side .bws-save__extra[b-7h7ui64fhp] { display: none; }
}
.bws-identity[b-7h7ui64fhp] { display: grid; gap: .35rem; padding: .15rem 0; }
.bws-identity > div[b-7h7ui64fhp] { min-width: 0; }
.bws-identity .flag-label[b-7h7ui64fhp] { display: block; }
.bws-identity__value[b-7h7ui64fhp] { margin: 0; font-size: .86rem; font-weight: 700; line-height: 1.25; color: var(--text); overflow-wrap: anywhere; }

.elec-muted[b-7h7ui64fhp] { color: var(--text-muted); }
.takeoff-title[b-7h7ui64fhp] { font-size: 1rem; margin: 0 0 .5rem; }
.takeoff-link[b-7h7ui64fhp] {
    border: 0;
    background: none;
    padding: 0;
    color: var(--brand-sea-ink);
    text-decoration: underline;
    cursor: pointer;
    font: inherit;
}

/* ---- new takeoff + list ------------------------------------------------- */
.takeoff-form[b-7h7ui64fhp] { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: .55rem .75rem; }
.takeoff-form > label[b-7h7ui64fhp] { display: grid; gap: .2rem; min-width: 0; }
.takeoff-form__wide[b-7h7ui64fhp] { grid-column: 1 / -1; }
.takeoff-actions[b-7h7ui64fhp] { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.takeoff-existing[b-7h7ui64fhp] { max-width: 18rem; }
.takeoff-plans[b-7h7ui64fhp] { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.takeoff-plan[b-7h7ui64fhp] {
    width: 100%;
    display: grid;
    gap: .15rem;
    text-align: left;
    min-height: 3.625rem;
    padding: .6rem .8rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
    color: var(--text);
    cursor: pointer;
}
.takeoff-plan:hover[b-7h7ui64fhp] { border-color: var(--brand-sea); }
.takeoff-plan:focus-visible[b-7h7ui64fhp] { outline: none; box-shadow: var(--shadow-focus); }
.takeoff-plan__title[b-7h7ui64fhp] { font-weight: 700; }
.takeoff-plan__meta[b-7h7ui64fhp] { color: var(--text-muted); font-size: .84rem; overflow-wrap: anywhere; }

/* ---- canvas layout: palette | canvas | counts --------------------------- */
.takeoff-layout[b-7h7ui64fhp] {
    display: grid;
    grid-template-columns: 15rem minmax(0, 1fr) 14rem;
    gap: .75rem;
    align-items: start;
}
@media (max-width: 1279.98px) {
    .takeoff-layout[b-7h7ui64fhp] { grid-template-columns: 14rem minmax(0, 1fr); }
    .takeoff-counts[b-7h7ui64fhp] { grid-column: 1 / -1; }
}
@media (max-width: 767.98px) {
    .takeoff-layout[b-7h7ui64fhp] { grid-template-columns: minmax(0, 1fr); }
    .takeoff-canvas-panel[b-7h7ui64fhp] { order: -1; }
    .takeoff-tool--room[b-7h7ui64fhp] { display: none; }
}
.takeoff-phone-hint[b-7h7ui64fhp] { display: none; }
@media (max-width: 767.98px) {
    .takeoff-phone-hint[b-7h7ui64fhp] { display: block; }
}

.takeoff-palette[b-7h7ui64fhp], .takeoff-counts[b-7h7ui64fhp], .takeoff-canvas-panel[b-7h7ui64fhp] { min-width: 0; }
.takeoff-tools[b-7h7ui64fhp] { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: .5rem; }
.takeoff-tool[b-7h7ui64fhp] {
    flex: 1 1 auto;
    min-height: 2.5rem;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-xs);
    background: var(--surface);
    color: var(--text);
    font-weight: 600;
    cursor: pointer;
}
.takeoff-tool[aria-pressed="true"][b-7h7ui64fhp] { background: var(--brand-sea); color: var(--text-inverse); border-color: var(--brand-sea); }
.takeoff-tool:disabled[b-7h7ui64fhp] { opacity: .55; cursor: default; }
.takeoff-symbol[b-7h7ui64fhp] { border: 0; margin: 0; padding: 0; display: grid; gap: .45rem; min-width: 0; }
.takeoff-symbol > label[b-7h7ui64fhp] { display: grid; gap: .2rem; }
.takeoff-symbol__product[b-7h7ui64fhp] { margin: 0; font-size: .86rem; overflow-wrap: anywhere; }
.takeoff-search[b-7h7ui64fhp] { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem; }
.takeoff-search .form-control[b-7h7ui64fhp] { min-width: 0; }
.takeoff-search .app-cta[b-7h7ui64fhp] { white-space: nowrap; padding-inline: .7rem; }
.takeoff-results[b-7h7ui64fhp], .takeoff-palette__list[b-7h7ui64fhp] { list-style: none; margin: 0; padding: 0; display: grid; gap: .2rem; max-height: 14rem; overflow: auto; }
.takeoff-results button[b-7h7ui64fhp], .takeoff-swatch[b-7h7ui64fhp] {
    width: 100%;
    text-align: left;
    border: 1px solid var(--border);
    border-radius: var(--radius-xs);
    background: var(--surface);
    color: var(--text);
    padding: .35rem .5rem;
    min-height: 2.25rem;
    cursor: pointer;
    overflow-wrap: anywhere;
}
.takeoff-swatch[aria-pressed="true"][b-7h7ui64fhp] { border-color: var(--brand-sea); box-shadow: inset 3px 0 0 var(--brand-sea); }
.takeoff-swatch__dot[b-7h7ui64fhp] { display: inline-block; width: .6rem; height: .6rem; border-radius: 50%; background: var(--brand-sea); margin-right: .4rem; }
.takeoff-room-draft[b-7h7ui64fhp] { display: grid; gap: .4rem; margin-top: .6rem; }
.takeoff-room-draft > label[b-7h7ui64fhp] { display: grid; gap: .2rem; }
.takeoff-delete[b-7h7ui64fhp] { margin-top: .6rem; width: 100%; }

.takeoff-canvas-head[b-7h7ui64fhp] { display: flex; flex-wrap: wrap; gap: .5rem; align-items: baseline; margin-bottom: .4rem; }
.takeoff-canvas[b-7h7ui64fhp] {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-xs);
    background: var(--surface);
    touch-action: manipulation;
}
.takeoff-canvas.tool-marker[b-7h7ui64fhp], .takeoff-canvas.tool-room[b-7h7ui64fhp] { cursor: crosshair; }
.takeoff-sheet[b-7h7ui64fhp] { fill: var(--surface); }
.takeoff-grid-line[b-7h7ui64fhp] { fill: none; stroke: var(--border); stroke-width: 1; }
.takeoff-room[b-7h7ui64fhp] { fill: var(--brand-sea-soft); fill-opacity: .55; stroke: var(--brand-sea); stroke-width: 2; }
.takeoff-room.is-selected[b-7h7ui64fhp] { stroke-width: 4; stroke-dasharray: 8 4; }
.takeoff-room-draft-line[b-7h7ui64fhp] { fill: none; stroke: var(--brand-sea-ink); stroke-width: 2; stroke-dasharray: 6 4; }
.takeoff-marker circle[b-7h7ui64fhp] { fill: var(--phase-a); stroke: var(--surface); stroke-width: 2; }
.takeoff-marker.is-selected circle[b-7h7ui64fhp] { stroke: var(--ring); stroke-width: 4; }
.takeoff-canvas[b-7h7ui64fhp]  .takeoff-marker-label { font-size: 14px; fill: var(--text); paint-order: stroke; stroke: var(--surface); stroke-width: 3px; }
.takeoff-canvas[b-7h7ui64fhp]  .takeoff-room-label { font-size: 16px; font-weight: 700; fill: var(--brand-sea-ink); }
.takeoff-canvas :is(polygon, polyline, g, rect)[b-7h7ui64fhp] { pointer-events: none; }
.takeoff-canvas rect.takeoff-sheet[b-7h7ui64fhp] { pointer-events: all; }

.takeoff-details[b-7h7ui64fhp] { margin-top: .5rem; }
.takeoff-details summary[b-7h7ui64fhp] { cursor: pointer; font-weight: 600; }
.takeoff-details .takeoff-form[b-7h7ui64fhp] { margin-top: .5rem; }

/* ---- counts --------------------------------------------------------------- */
.takeoff-count-room[b-7h7ui64fhp] { margin-bottom: .6rem; }
.takeoff-count-room__name[b-7h7ui64fhp] { margin: 0 0 .2rem; font-weight: 700; display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.takeoff-count-room ul[b-7h7ui64fhp] { list-style: none; margin: 0; padding: 0; }
.takeoff-count-room li[b-7h7ui64fhp] { display: flex; justify-content: space-between; gap: .5rem; font-size: .86rem; padding: .1rem 0; border-bottom: 1px dashed var(--border); }
.takeoff-counts > .app-cta[b-7h7ui64fhp] { width: 100%; margin-top: .4rem; }

.takeoff-chip[b-7h7ui64fhp] {
    display: inline-block;
    font-size: .74rem;
    font-weight: 700;
    padding: .05rem .5rem;
    border-radius: 999px;
    white-space: nowrap;
}
.takeoff-chip--success[b-7h7ui64fhp] { background: var(--status-success-soft); color: var(--status-success-ink); }
.takeoff-chip--warning[b-7h7ui64fhp] { background: var(--status-warning-soft); color: var(--status-warning-ink); }
.takeoff-chip--danger[b-7h7ui64fhp] { background: var(--status-danger-soft); color: var(--status-danger-ink); }
.takeoff-chip--muted[b-7h7ui64fhp] { background: var(--surface-sunken); color: var(--text-muted); }

/* ---- review sheet (centred dialog; a bottom sheet on a phone) ------------ */
.elec-sheet[b-7h7ui64fhp] { position: fixed; inset: 0; z-index: 1080; display: grid; place-items: center; padding: 1rem; }
.elec-sheet__scrim[b-7h7ui64fhp] { position: absolute; inset: 0; background: rgba(15, 23, 42, .45); }
.elec-sheet__body[b-7h7ui64fhp] { position: relative; width: min(46rem, 100%); max-height: calc(100dvh - 2rem); overflow: auto; display: grid; gap: .6rem; margin: 0; }
.elec-sheet__head[b-7h7ui64fhp] { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.elec-sheet__head h2[b-7h7ui64fhp] { font-size: 1.1rem; margin: 0; }
.elec-sheet__actions[b-7h7ui64fhp] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.takeoff-review__rows[b-7h7ui64fhp] { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.takeoff-review__row[b-7h7ui64fhp] {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1.2fr) minmax(0, 1.4fr) auto;
    gap: .5rem;
    align-items: center;
    padding: .45rem .5rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-xs);
    min-height: 3.625rem;
}
.takeoff-review__what[b-7h7ui64fhp] { display: grid; min-width: 0; overflow-wrap: anywhere; }
.takeoff-review__room[b-7h7ui64fhp] { display: grid; gap: .3rem; min-width: 0; }
.takeoff-review__include input[b-7h7ui64fhp] { width: 1.2rem; height: 1.2rem; }
@media (max-width: 767.98px) {
    .elec-sheet[b-7h7ui64fhp] { place-items: end stretch; padding: 0; }
    .elec-sheet__body[b-7h7ui64fhp] { width: 100%; max-height: 88dvh; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
    .takeoff-review__row[b-7h7ui64fhp] { grid-template-columns: 2rem minmax(0, 1fr) auto; }
    .takeoff-review__room[b-7h7ui64fhp] { grid-column: 2 / -1; }
    .takeoff-form[b-7h7ui64fhp] { grid-template-columns: minmax(0, 1fr); }
}

/* Phone: the dock's pinned command keeps only its last word, as on the rail,
   so Bid menu and the counts keep their room. */
@media (max-width: 767.98px) {
    .bws-dock .bws-save__extra[b-7h7ui64fhp] { display: none; }
    .bws-save[b-7h7ui64fhp] { flex: 0 0 auto; }
}

/* P3f: on a phone the 1200-unit canvas scaled to ~360 px drew its labels at
   ~5 px. The canvas keeps a 720 px minimum inside its own scroller (never
   the page) and its labels and markers grow, so they read at ~14-17 px. */
.takeoff-canvas-scroll[b-7h7ui64fhp] { overflow-x: auto; overscroll-behavior-x: contain; border-radius: var(--radius-xs); }
@media (max-width: 767.98px) {
    .takeoff-canvas[b-7h7ui64fhp] { min-width: 720px; }
    .takeoff-canvas[b-7h7ui64fhp]  .takeoff-marker-label { font-size: 24px; }
    .takeoff-canvas[b-7h7ui64fhp]  .takeoff-room-label { font-size: 28px; }
    .takeoff-marker circle[b-7h7ui64fhp] { r: 14px; }
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* Home page scoped styles. Relies on the global tokens from
   /wwwroot/css/theme.css. */

.home-hero[b-1sivlem6g5] {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 1fr);
    gap: 1.25rem;
    align-items: center;
    overflow: hidden;
}

.home-hero__copy[b-1sivlem6g5] {
    min-width: 0;
}

.home-hero__ctas[b-1sivlem6g5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1rem;
}

.home-hero__art[b-1sivlem6g5] {
    position: relative;
    display: grid;
    place-items: center;
    padding: 0.25rem;
    /* The frame stays 16:9 although the logo emblem is square.
       Framing it via aspect-ratio keeps the hero panel a
       consistent shape while Grok / swap-in art may vary
       slightly in output dimensions. */
    aspect-ratio: 16 / 9;
    min-height: 14rem;
    max-height: 22rem;
    /* The row is the frame's height, not the image's natural height
       (a square PNG at 100% width is taller than the frame), and the
       frame never grows past its column (min-height would otherwise
       push it ~410px wide and off-centre on a phone). */
    grid-template-rows: minmax(0, 1fr);
    max-width: 100%;
    border-radius: var(--radius-md);
    overflow: hidden;
    /* Subtle tinted bed behind the image so a PNG with a
       transparent background still reads as a framed focal. */
    background:
        linear-gradient(180deg,
            color-mix(in oklab, var(--brand-sea-soft) 70%, var(--surface)) 0%,
            var(--surface) 100%);
    box-shadow: inset 0 0 0 1px var(--border);
}

.home-hero__art picture[b-1sivlem6g5],
.home-hero__art picture img[b-1sivlem6g5],
.home-hero__art > img[b-1sivlem6g5] {
    width: 100%;
    /* 2/3 of the frame height: the emblem plus the brand brief's
       clear space (1/4 of its width on every side) is 1.5x the
       emblem, so contain never crops it and never stretches it. */
    height: 66.667%;
    display: block;
    object-fit: contain;
    object-position: 50% 42%;
    /* No drop-shadow: the brand brief forbids shadowing the logo. */
}

/* Collapse to single column on small screens — art goes
   underneath the copy so the call-to-action stays above the
   fold. */
@media (max-width: 1024px) {
    .home-hero[b-1sivlem6g5] {
        grid-template-columns: 1fr;
    }
    .home-hero__art[b-1sivlem6g5] {
        order: 2;
    }
    .home-hero__copy[b-1sivlem6g5] {
        order: 1;
    }
}

/* #14167 — the sample-data files in the wiring panel. */
.home-sample-data[b-1sivlem6g5] {
    margin-top: 1rem;
}

.home-sample-data__list[b-1sivlem6g5] {
    list-style: none;
    margin: 0.35rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}

.home-sample-data__list li[b-1sivlem6g5] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    min-width: 0;
    overflow-wrap: anywhere;
}
/* /Components/Pages/Permits.razor.rz.scp.css */
/* Permits across all bids (PBI #16851). Colours are theme.css tokens only,
   so light and dark both follow the theme: --status-* for the permit status
   pills (they ARE status, the same tones as the bid's Permits page),
   --brand-sea-ink for links (an accent, not a status). */

.permits-list-head[b-fcxsmrfx64] { display: grid; gap: .5rem; }
.permits-list-head .app-headline[b-fcxsmrfx64],
.permits-list-head .app-subline[b-fcxsmrfx64] { margin: 0; }

/* ---- filters --------------------------------------------------------------
   Search wide, then status, building department, the two issued dates and
   Clear, wrapping to as many rows as the width needs. */
.permits-filter-grid[b-fcxsmrfx64] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    align-items: end;
    gap: .55rem .75rem;
    margin-top: .25rem;
}
.permits-filter-grid > .permits-filter[b-fcxsmrfx64],
.permits-filter-grid[b-fcxsmrfx64]  .permits-filter { display: grid; gap: .2rem; min-width: 0; }
.permits-filter--wide[b-fcxsmrfx64] { grid-column: span 2; }
.permits-filter--actions[b-fcxsmrfx64] { display: flex; align-items: end; }
@media (max-width: 575.98px) {
    .permits-filter-grid[b-fcxsmrfx64] { grid-template-columns: minmax(0, 1fr); }
    .permits-filter--wide[b-fcxsmrfx64] { grid-column: auto; }
}

/* ---- the list ------------------------------------------------------------- */
.permits-list-panel[b-fcxsmrfx64] { container-type: inline-size; display: grid; gap: .5rem; }
.permits-count[b-fcxsmrfx64] { margin: 0; font-weight: 700; color: var(--text); }
.permits-none[b-fcxsmrfx64] { display: grid; gap: .4rem; justify-items: start; }
.permits-none p[b-fcxsmrfx64] { margin: 0; }
.permits-muted[b-fcxsmrfx64] { color: var(--text-muted); }

.permits-table-wrap[b-fcxsmrfx64] { overflow-x: auto; }
.permits-table[b-fcxsmrfx64] { width: 100%; border-collapse: collapse; font-size: .9rem; }
.permits-table th[b-fcxsmrfx64],
.permits-table td[b-fcxsmrfx64] {
    padding: .55rem .5rem;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
}
.permits-table thead th[b-fcxsmrfx64] {
    font-size: .74rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-muted);
    white-space: nowrap;
}
.permits-table tbody th[b-fcxsmrfx64] { font-weight: 800; color: var(--text); overflow-wrap: anywhere; }
.permits-table td[b-fcxsmrfx64] { color: var(--text); overflow-wrap: anywhere; }
.permits-table .permits-num[b-fcxsmrfx64] { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.permits-table a[b-fcxsmrfx64] { color: var(--brand-sea-ink); font-weight: 600; }
.permits-table a:focus-visible[b-fcxsmrfx64] { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--radius-xs); }
.permits-client[b-fcxsmrfx64] { display: block; font-size: .82rem; color: var(--text-muted); }

/* Narrow (phone, or a squeezed column): a card per permit, each value under
   its column name. */
@container (max-width: 46rem) {
    .permits-table thead[b-fcxsmrfx64] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .permits-table[b-fcxsmrfx64],
    .permits-table tbody[b-fcxsmrfx64],
    .permits-table tr[b-fcxsmrfx64] { display: block; }
    .permits-table tr[b-fcxsmrfx64] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .3rem .75rem;
        padding: .6rem;
        margin-bottom: .5rem;
        border: 1px solid var(--border);
        border-radius: var(--radius-sm);
        background: var(--surface);
    }
    .permits-table th[b-fcxsmrfx64],
    .permits-table td[b-fcxsmrfx64] { display: block; padding: 0; border: 0; }
    .permits-table tbody th[b-fcxsmrfx64] { grid-column: 1 / -1; }
    .permits-table td[b-fcxsmrfx64]::before {
        content: attr(data-label);
        display: block;
        font-size: .72rem;
        font-weight: 700;
        letter-spacing: .06em;
        text-transform: uppercase;
        color: var(--text-muted);
    }
    .permits-table .permits-num[b-fcxsmrfx64] { text-align: left; }
}

/* ---- status pills: the status palette only (same tones as BidPermits) ---- */
.permit-status[b-fcxsmrfx64] {
    display: inline-flex;
    align-items: center;
    padding: .1rem .55rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: .8rem;
    white-space: nowrap;
}
.permit-status--success[b-fcxsmrfx64] { background: var(--status-success-soft); color: var(--status-success-ink); }
.permit-status--warning[b-fcxsmrfx64] { background: var(--status-warning-soft); color: var(--status-warning-ink); }
.permit-status--danger[b-fcxsmrfx64]  { background: var(--status-danger-soft);  color: var(--status-danger-ink); }
.permit-status--neutral[b-fcxsmrfx64] { background: var(--surface-sunken); color: var(--text-muted); }

/* ---- pager ---------------------------------------------------------------- */
.permits-pager[b-fcxsmrfx64] { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.permits-pager__at[b-fcxsmrfx64] { color: var(--text-muted); font-variant-numeric: tabular-nums; }
/* /Components/Pages/ProductDetail.razor.rz.scp.css */
.product-linked-items[b-l1m33ytfkw] {
    min-width: 50rem;
}

.product-linked-items :is(th, td):last-child[b-l1m33ytfkw] {
    width: 9.5rem;
}

.product-linked-items .linked-row-actions[b-l1m33ytfkw] {
    flex-wrap: wrap;
    justify-content: flex-start;
}

.product-suppliers-table[b-l1m33ytfkw] {
    min-width: 46rem;
}

/* Phone: the card heading's copy took the whole row and squeezed the card's
   one button ("Add linked item", "Add supplier") to 30-45px, its caption
   wrapping a few letters per line. Let the button drop under the copy. */
@media (max-width: 768px) {
    .linked-products-header[b-l1m33ytfkw] {
        flex-wrap: wrap;
    }
}
/* /Components/Pages/ProductEnrichmentReview.razor.rz.scp.css */
/* #16711 review queue — theme tokens only. */
.enrichment-queue-scroll[b-434iuwqpms] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.enrichment-queue-table td[b-434iuwqpms],
.enrichment-queue-table th[b-434iuwqpms] {
    vertical-align: top;
}

.enrichment-queue-sub[b-434iuwqpms] {
    display: block;
    color: var(--text-muted);
    font-size: 0.85em;
}

.enrichment-queue-flagged[b-434iuwqpms] {
    color: var(--status-warning-ink);
    font-weight: 600;
}

.enrichment-bulk-bar[b-434iuwqpms] {
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.enrichment-queue-pager[b-434iuwqpms] {
    justify-content: flex-end;
    align-items: center;
    gap: var(--space-2);
    color: var(--text-muted);
}

.enrichment-run-sources[b-434iuwqpms] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    border: 0;
    padding: 0;
}

.link-button[b-434iuwqpms] {
    border: 0;
    background: transparent;
    color: var(--brand-sea);
    min-width: var(--tap-min);
    cursor: pointer;
}
/* /Components/RecordHistoryPanel.razor.rz.scp.css */
/* Scoped styles for RecordHistoryPanel — collocated, following the
   DeviceJobDetail.razor.css pattern rather than adding a fourth inline
   timeline treatment to the app. Everything here is a token, not a
   literal colour, so the panel follows the theme system. */

.record-history[b-b6xstaqem5] {
    margin-block-start: 1rem;
}

.record-history__head[b-b6xstaqem5] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-block-end: 0.5rem;
}

.record-history__title[b-b6xstaqem5] {
    font-size: 1rem;
    margin: 0;
}

.record-history__count[b-b6xstaqem5] {
    font-size: 0.8125rem;
    color: var(--app-ink-muted, #666);
}

/* The table can outgrow a narrow viewport — a long note value is 4,000
   characters wide in the worst case. Scroll it inside its own container
   so the PAGE never scrolls sideways. */
.record-history__table[b-b6xstaqem5] {
    display: block;
    overflow-x: auto;
    max-width: 100%;
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.record-history__table th[b-b6xstaqem5],
.record-history__table td[b-b6xstaqem5] {
    text-align: left;
    padding: 0.375rem 0.625rem;
    border-block-end: 1px solid var(--app-border, #e0e0e0);
    vertical-align: top;
}

.record-history__table th[b-b6xstaqem5] {
    font-weight: 600;
    color: var(--app-ink-muted, #666);
    white-space: nowrap;
}

.record-history__when[b-b6xstaqem5] {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.record-history__who[b-b6xstaqem5],
.record-history__field[b-b6xstaqem5] {
    white-space: nowrap;
}

.record-history__field[b-b6xstaqem5] {
    font-weight: 600;
}

/* Values are the point of the panel, so give them room — but cap it, or
   one 4,000-character note pushes every other column off screen. */
.record-history__old[b-b6xstaqem5],
.record-history__new[b-b6xstaqem5] {
    max-width: 22rem;
    overflow-wrap: anywhere;
}

.record-history__old[b-b6xstaqem5] {
    color: var(--app-ink-muted, #666);
}

.record-history__row--insert .record-history__field[b-b6xstaqem5],
.record-history__row--delete .record-history__field[b-b6xstaqem5] {
    font-style: italic;
    font-weight: 500;
}

.record-history__row--delete[b-b6xstaqem5] {
    background: var(--status-danger-soft, #ffebee);
}

.record-history__note[b-b6xstaqem5] {
    margin-block-start: 0.5rem;
    margin-block-end: 0;
    font-size: 0.75rem;
    color: var(--app-ink-muted, #666);
}
/* /Components/Shared/BidPaymentPlanEditor.razor.rz.scp.css */
/* PP-3 — scoped styles for the payment-plan editor dialog. Tokens only, so
   the dialog follows the light/dark theme. The one status colour used is the
   danger token on an over-100% percent: that is a validation error on the
   field (the same token .field-error uses), not a repaint of a status. */

/* The dialog backdrop is a grid that sizes the panel to its content, and the
   table below has a 36rem minimum, so on a phone the panel grew past the
   screen and squeezed the header text to one letter per line. Capping the
   panel at the viewport (less the backdrop's 1.25rem padding each side) caps
   its content contribution too; the table then scrolls inside its wrapper. */
.payment-plan-editor[b-08wrohv6rz] {
    max-width: min(52rem, calc(100vw - 2.5rem));
}

.payment-plan-editor__note[b-08wrohv6rz] {
    margin: 0 0 0.85rem;
    padding: 0.55rem 0.75rem;
    border-radius: var(--radius-md);
    background: var(--surface-sunken);
    color: var(--text-muted);
    font-size: 0.875rem;
}

.payment-plan-editor__mode[b-08wrohv6rz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 1rem;
    margin: 0 0 0.85rem;
    padding: 0;
    border: 0;
}

.payment-plan-editor__legend[b-08wrohv6rz] {
    float: none;
    width: auto;
    margin: 0 0.25rem 0 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text);
}

/* Six rows of five inputs outgrow a phone: scroll inside the dialog so the
   page never scrolls sideways. */
.payment-plan-editor__table-wrap[b-08wrohv6rz] {
    max-width: 100%;
    overflow-x: auto;
}

.payment-plan-editor__table[b-08wrohv6rz] {
    width: 100%;
    min-width: 36rem;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.payment-plan-editor__table th[b-08wrohv6rz],
.payment-plan-editor__table td[b-08wrohv6rz] {
    padding: 0.35rem 0.45rem;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid var(--border);
}

.payment-plan-editor__table thead th[b-08wrohv6rz] {
    font-weight: 600;
    color: var(--text-muted);
    white-space: nowrap;
}

.payment-plan-editor__label[b-08wrohv6rz] {
    font-weight: 600;
    color: var(--text);
    white-space: nowrap;
}

.payment-plan-editor__pct-cell[b-08wrohv6rz] {
    width: 5.5rem;
}

.payment-plan-editor__amount-cell[b-08wrohv6rz] {
    width: 9rem;
}

.payment-plan-editor__due-cell[b-08wrohv6rz] {
    width: 10rem;
}

.payment-plan-editor__pct[b-08wrohv6rz],
.payment-plan-editor__amount[b-08wrohv6rz],
.payment-plan-editor__readonly[b-08wrohv6rz] {
    font-variant-numeric: tabular-nums;
}

.payment-plan-editor__readonly[b-08wrohv6rz] {
    display: block;
    padding: 0.25rem 0.5rem;
    color: var(--text);
}

/* Legacy painted the percent red while rows 1-5 exceed 100 (frmJob.vb:5184).
   The selector is deliberately specific: theme.css repaints every dark-theme
   number input with `[data-theme="dark"] input[type="number"]:not(.e-input)`
   (specificity 0,3,1), which otherwise wins and hides the red in dark. */
.payment-plan-editor__table input.payment-plan-editor__pct.payment-plan-editor__pct--over[b-08wrohv6rz],
.payment-plan-editor__table input.payment-plan-editor__pct.payment-plan-editor__pct--over:focus[b-08wrohv6rz] {
    color: var(--status-danger);
    border-color: var(--status-danger);
}

/* Locked rows (row N+1 waits for row N's percent). The same dark-theme input
   rule outranks theme.css's own `.form-control:disabled` repaint, so in dark
   a locked field looked like an open one; restate the dark disabled look
   here (light keeps Bootstrap's grey fill). */
[data-theme="dark"] .payment-plan-editor__table input.form-control:disabled[b-08wrohv6rz] {
    background-color: var(--surface);
    color: var(--text-subtle);
}

.payment-plan-editor__final th[b-08wrohv6rz],
.payment-plan-editor__final td[b-08wrohv6rz] {
    background: var(--surface-sunken);
}

.payment-plan-editor__table tfoot th[b-08wrohv6rz],
.payment-plan-editor__table tfoot td[b-08wrohv6rz] {
    border-bottom: 0;
    padding-top: 0.6rem;
}

.payment-plan-editor__grand[b-08wrohv6rz] {
    font-weight: 700;
    color: var(--text);
    font-variant-numeric: tabular-nums;
}

/* PP-8 — the save reminder (legacy dlgPaymentPlanConfirm): one sentence, a
   checkbox and OK. Narrow like the legacy window. */
.payment-plan-reminder[b-08wrohv6rz] {
    max-width: 30rem;
}

.payment-plan-reminder__text[b-08wrohv6rz] {
    margin: 0 0 0.85rem;
    color: var(--text);
}

.payment-plan-reminder__check[b-08wrohv6rz] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 0.85rem;
}

/* Portal batch 1 — what the split total is. */
.payment-plan-editor__hint[b-08wrohv6rz] {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--text-muted);
}
