.cashiering-dialog {
    max-width: 760px;
}

.cashiering-dialog .modal-body {
    padding: 24px;
}

.cashiering-form-stack {
    display: grid;
    gap: 20px;
}

.cashiering-member-section {
    position: relative;
    z-index: 4;
}

.cashiering-selected-member {
    min-height: 72px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border: 1px solid var(--bs-border-color);
    border-radius: 12px;
    background: var(--bs-tertiary-bg);
}

.cashiering-member-avatar {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(21, 128, 61, 0.12);
    color: #166534;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.cashiering-member-avatar.small {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
    font-size: 13px;
}

.cashiering-member-copy,
.cashiering-member-option-copy {
    min-width: 0;
    flex: 1;
}

.cashiering-member-copy strong,
.cashiering-member-option-copy strong {
    display: block;
    color: var(--bs-body-color);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
}

.cashiering-member-copy span,
.cashiering-member-option-copy small {
    display: block;
    margin-top: 2px;
    color: var(--bs-secondary-color);
    font-size: 14px;
    line-height: 1.35;
}

.cashiering-change-member {
    flex: 0 0 auto;
    border: 0;
    padding: 7px 10px;
    background: transparent;
    color: #166534;
    font-size: 14px;
    font-weight: 700;
    border-radius: 8px;
}

.cashiering-change-member:hover {
    background: rgba(21, 128, 61, 0.08);
}

.cashiering-member-picker {
    position: relative;
}

.cashiering-member-search {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 14px;
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    background: var(--bs-body-bg);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cashiering-member-search:focus-within {
    border-color: rgba(21, 128, 61, 0.55);
    box-shadow: 0 0 0 3px rgba(21, 128, 61, 0.1);
}

.cashiering-member-picker.has-error .cashiering-member-search {
    border-color: var(--bs-form-invalid-border-color);
}

.cashiering-member-search i {
    flex: 0 0 auto;
    color: var(--bs-secondary-color);
    font-size: 16px;
}

.cashiering-member-search input {
    width: 100%;
    border: 0;
    outline: 0;
    padding: 10px 0;
    background: transparent;
    color: var(--bs-body-color);
    font-size: 15px;
}

.cashiering-member-results {
    position: absolute;
    z-index: 20;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 310px;
    overflow-y: auto;
    padding: 6px;
    border: 1px solid var(--bs-border-color);
    border-radius: 12px;
    background: var(--bs-body-bg);
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.15);
}

.cashiering-member-option {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    text-align: left;
}

.cashiering-member-option:hover,
.cashiering-member-option:focus-visible {
    background: var(--bs-tertiary-bg);
}

.cashiering-member-option > i {
    flex: 0 0 auto;
    color: var(--bs-secondary-color);
}

.cashiering-member-empty {
    min-height: 92px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 18px;
    color: var(--bs-secondary-color);
    text-align: center;
    font-size: 14px;
}

.cashiering-member-empty i {
    font-size: 24px;
}

.cashiering-context-error {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid rgba(220, 53, 69, 0.24);
    border-radius: 12px;
    background: rgba(220, 53, 69, 0.06);
}

.cashiering-context-error > i {
    margin-top: 2px;
    color: var(--bs-danger);
    font-size: 18px;
}

.cashiering-context-error strong,
.cashiering-context-error span {
    display: block;
}

.cashiering-context-error strong {
    font-size: 15px;
}

.cashiering-context-error span {
    margin-top: 3px;
    color: var(--bs-secondary-color);
    font-size: 14px;
}

.cashiering-choice-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.cashiering-choice {
    min-height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px 10px;
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.cashiering-choice i {
    flex: 0 0 auto;
    color: var(--bs-secondary-color);
    font-size: 17px;
}

.cashiering-choice:hover {
    border-color: rgba(21, 128, 61, 0.35);
    background: rgba(21, 128, 61, 0.03);
}

.cashiering-choice.selected {
    border-color: rgba(21, 128, 61, 0.55);
    background: rgba(21, 128, 61, 0.08);
    color: #166534;
    box-shadow: inset 0 0 0 1px rgba(21, 128, 61, 0.08);
}

.cashiering-choice.selected i {
    color: #15803d;
}

.cashiering-money-input .input-group-text {
    min-width: 44px;
    justify-content: center;
    font-weight: 700;
}

.cashiering-money-input .form-control {
    font-size: 18px;
    font-weight: 700;
}

.cashiering-post-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 16px 18px;
    border: 1px solid rgba(21, 128, 61, 0.18);
    border-radius: 12px;
    background: rgba(21, 128, 61, 0.05);
}

.cashiering-post-summary > div:first-child {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 10px;
    align-items: center;
}

.cashiering-post-summary i {
    grid-row: 1 / span 2;
    color: #15803d;
    font-size: 20px;
}

.cashiering-post-summary span {
    color: var(--bs-secondary-color);
    font-size: 14px;
}

.cashiering-post-summary strong {
    color: var(--bs-body-color);
    font-size: 15px;
}

.cashiering-summary-amount {
    flex: 0 0 auto;
    text-align: right;
}

.cashiering-summary-amount span,
.cashiering-summary-amount strong {
    display: block;
}

.cashiering-summary-amount strong {
    margin-top: 2px;
    color: #166534;
    font-size: 20px;
}

.cashiering-success {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
    padding: 16px 18px;
    border: 1px solid rgba(21, 128, 61, 0.2);
    border-radius: 12px;
    background: rgba(21, 128, 61, 0.06);
}

.cashiering-success-icon {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #15803d;
    color: #fff;
    font-size: 23px;
}

.cashiering-success span,
.cashiering-success h3,
.cashiering-success p {
    display: block;
    margin: 0;
}

.cashiering-success span {
    color: #166534;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.cashiering-success h3 {
    margin-top: 2px;
    font-size: 21px;
    font-weight: 700;
}

.cashiering-success p {
    margin-top: 3px;
    color: var(--bs-secondary-color);
    font-size: 14px;
}

.cashiering-receipt-print {
    padding: 22px;
    border: 1px solid var(--bs-border-color);
    border-radius: 12px;
    background: var(--bs-body-bg);
}

.cashiering-receipt-brand {
    padding-bottom: 16px;
    border-bottom: 1px solid var(--bs-border-color);
}

.cashiering-receipt-brand strong,
.cashiering-receipt-brand span,
.cashiering-receipt-number span,
.cashiering-receipt-number strong,
.cashiering-receipt-member span,
.cashiering-receipt-member strong,
.cashiering-receipt-member small,
.cashiering-receipt-grid span,
.cashiering-receipt-grid strong,
.cashiering-receipt-total span,
.cashiering-receipt-total strong {
    display: block;
}

.cashiering-receipt-brand strong {
    font-size: 18px;
}

.cashiering-receipt-brand span {
    margin-top: 2px;
    color: var(--bs-secondary-color);
    font-size: 14px;
}

.cashiering-receipt-number {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 0;
    border-bottom: 1px solid var(--bs-border-color);
}

.cashiering-receipt-number span,
.cashiering-receipt-member span,
.cashiering-receipt-grid span,
.cashiering-receipt-total span {
    color: var(--bs-secondary-color);
    font-size: 14px;
}

.cashiering-receipt-number strong {
    font-size: 17px;
}

.cashiering-receipt-member {
    padding: 16px 0;
}

.cashiering-receipt-member strong {
    margin-top: 3px;
    font-size: 17px;
}

.cashiering-receipt-member small {
    margin-top: 2px;
    color: var(--bs-secondary-color);
    font-size: 14px;
}

.cashiering-receipt-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 24px;
    padding: 16px 0;
    border-top: 1px solid var(--bs-border-color);
    border-bottom: 1px solid var(--bs-border-color);
}

.cashiering-receipt-grid strong {
    margin-top: 3px;
    font-size: 15px;
}

.cashiering-receipt-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-top: 18px;
}

.cashiering-receipt-total strong {
    color: #166534;
    font-size: 24px;
}

@media (max-width: 640px) {
    .cashiering-dialog .modal-body {
        padding: 18px;
    }

    .cashiering-choice-grid {
        grid-template-columns: 1fr;
    }

    .cashiering-choice {
        min-height: 52px;
        justify-content: flex-start;
        padding: 10px 14px;
    }

    .cashiering-post-summary,
    .cashiering-receipt-number,
    .cashiering-receipt-total {
        align-items: flex-start;
        flex-direction: column;
    }

    .cashiering-summary-amount {
        text-align: left;
    }

    .cashiering-receipt-grid {
        grid-template-columns: 1fr;
    }
}

@media print {
    @page {
        size: A4;
        margin: 12mm;
    }

    /* Receipt printing is intentionally scoped to pages with a visible receipt.
       This prevents receipt print rules from blanking unrelated printable pages. */
    body:has(.cashiering-receipt-print) .sidebar,
    body:has(.cashiering-receipt-print) .topbar,
    body:has(.cashiering-receipt-print) .sidebar-backdrop,
    body:has(.cashiering-receipt-print) .toast-container,
    body:has(.cashiering-receipt-print) .modal-backdrop,
    body:has(.cashiering-receipt-print) .content-wrap > *:not(.modal):not(.modal-backdrop) {
        display: none !important;
    }

    body:has(.cashiering-receipt-print),
    body:has(.cashiering-receipt-print) .app-shell,
    body:has(.cashiering-receipt-print) .main-content,
    body:has(.cashiering-receipt-print) .content-wrap {
        width: 100% !important;
        max-width: none !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        background: #fff !important;
    }

    body:has(.cashiering-receipt-print) .modal,
    body:has(.cashiering-receipt-print) .modal-dialog,
    body:has(.cashiering-receipt-print) .modal-content,
    body:has(.cashiering-receipt-print) .modal-body {
        position: static !important;
        inset: auto !important;
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        transform: none !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    body:has(.cashiering-receipt-print) .modal-header,
    body:has(.cashiering-receipt-print) .modal-footer,
    body:has(.cashiering-receipt-print) .modal-body > *:not(.cashiering-receipt-print) {
        display: none !important;
    }

    body:has(.cashiering-receipt-print) .cashiering-receipt-print {
        position: static !important;
        inset: auto !important;
        display: block !important;
        width: 100% !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #fff !important;
        color: #000 !important;
        box-shadow: none !important;
        break-inside: avoid;
    }

    body:has(.cashiering-receipt-print) .cashiering-receipt-print * {
        color: #000 !important;
    }
}


.cashiering-member-picker-dismiss {
    position: fixed;
    inset: 0;
    z-index: 19;
    border: 0;
    background: transparent;
    cursor: default;
}

.cashiering-member-results {
    z-index: 20;
}

.cashiering-rule-note {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 14px;
    padding: 11px 13px;
    border: 1px solid #dfe9e3;
    border-radius: 10px;
    background: #f6faf7;
    color: #596b61;
    font-size: 14px;
    line-height: 1.45;
}

.cashiering-rule-note i {
    color: #2f7e50;
    font-size: 16px;
}

/* Item 12 follow-up: scalable payment selectors */
.cashiering-payment-select-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.cashiering-field-group {
    min-width: 0;
}

.cashiering-select {
    position: relative;
}

.cashiering-select-trigger {
    width: 100%;
    min-height: 58px;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 8px 12px;
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    text-align: left;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.cashiering-select-trigger:hover {
    border-color: rgba(21, 128, 61, .35);
}

.cashiering-select.open .cashiering-select-trigger,
.cashiering-select-trigger:focus-visible {
    border-color: rgba(21, 128, 61, .55);
    box-shadow: 0 0 0 3px rgba(21, 128, 61, .09);
    outline: 0;
}

.cashiering-select-trigger-icon,
.cashiering-select-option-icon {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: rgba(21, 128, 61, .09);
    color: #166534;
    font-size: 16px;
}

.cashiering-select-trigger-copy {
    min-width: 0;
    flex: 1;
}

.cashiering-select-trigger-copy small,
.cashiering-select-trigger-copy strong {
    display: block;
}

.cashiering-select-trigger-copy small {
    margin-bottom: 1px;
    color: var(--bs-secondary-color);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
}

.cashiering-select-trigger-copy strong {
    overflow: hidden;
    color: var(--bs-body-color);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cashiering-select-chevron {
    flex: 0 0 auto;
    color: var(--bs-secondary-color);
    font-size: 14px;
    transition: transform .15s ease;
}

.cashiering-select.open .cashiering-select-chevron {
    transform: rotate(180deg);
}

.cashiering-select-dismiss {
    position: fixed;
    z-index: 1060;
    inset: 0;
    border: 0;
    padding: 0;
    background: transparent;
}

.cashiering-select-menu {
    position: absolute;
    z-index: 1061;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 270px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    touch-action: pan-y;
    padding: 6px;
    border: 1px solid var(--bs-border-color);
    border-radius: 11px;
    background: var(--bs-body-bg);
    box-shadow: 0 14px 34px rgba(15, 23, 42, .16);
}

.cashiering-select-option {
    width: 100%;
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--bs-body-color);
    font-size: 14px;
    font-weight: 600;
    text-align: left;
}

.cashiering-select-option:hover,
.cashiering-select-option:focus-visible {
    background: var(--bs-tertiary-bg);
    outline: 0;
}

.cashiering-select-option.selected {
    background: rgba(21, 128, 61, .08);
    color: #166534;
}

.cashiering-select-option-icon {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
    border-radius: 8px;
    font-size: 14px;
}

.cashiering-select-check {
    margin-left: auto;
    color: #15803d;
    font-size: 17px;
}

@media (max-width: 575.98px) {
    .cashiering-payment-select-row {
        grid-template-columns: 1fr;
    }
}

.cashiering-obligation-summary {
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid var(--border-soft, #dbe5e0);
    border-radius: 12px;
    background: #f8fbf9;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.cashiering-obligation-summary > div:not(.cashiering-partial-policy) {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cashiering-obligation-summary span {
    font-size: 13px;
    color: #6c7b74;
}

.cashiering-obligation-summary strong {
    font-size: 15px;
    color: #1f2d27;
}

.cashiering-partial-policy {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid #e2eae6;
    font-weight: 600;
}

.cashiering-partial-policy.allowed {
    color: #1d6b4b;
}

.cashiering-partial-policy.full {
    color: #6c6256;
}

@media (max-width: 640px) {
    .cashiering-obligation-summary {
        grid-template-columns: 1fr;
    }

    .cashiering-partial-policy {
        grid-column: auto;
    }
}

.cashiering-receipt-series-menu {
    max-height: 300px;
}

.cashiering-receipt-series-option {
    align-items: center;
}

.cashiering-receipt-series-copy {
    min-width: 0;
    flex: 1;
}

.cashiering-receipt-series-copy strong,
.cashiering-receipt-series-copy small {
    display: block;
}

.cashiering-receipt-series-copy strong {
    overflow: hidden;
    color: var(--bs-body-color);
    font-size: 14px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cashiering-receipt-series-copy small {
    margin-top: 2px;
    color: var(--bs-secondary-color);
    font-size: 12px;
    font-weight: 500;
}

/* Reusable Fortunato form dropdown built from the cashiering selector language. */
.app-form-select .cashiering-select-option-copy {
    min-width: 0;
    flex: 1;
}

.app-form-select .cashiering-select-option-copy strong,
.app-form-select .cashiering-select-option-copy small {
    display: block;
}

.app-form-select .cashiering-select-option-copy strong {
    overflow: hidden;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-form-select .cashiering-select-option-copy small {
    margin-top: 2px;
    color: var(--bs-secondary-color);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
}

.app-form-select.compact .cashiering-select-trigger {
    height: 42px;
    min-height: 42px;
    gap: 8px;
    padding: 5px 9px;
    border-radius: 9px;
}

.app-form-select.compact .cashiering-select-trigger-icon {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
    border-radius: 7px;
    font-size: 14px;
}

.app-form-select.compact .cashiering-select-trigger-copy strong {
    font-size: 13px;
    font-weight: 650;
}

.app-form-select.compact .cashiering-select-menu {
    min-width: 280px;
    max-height: 250px;
    padding: 5px;
    border-radius: 9px;
}

.app-form-select.compact .cashiering-select-option {
    min-height: 38px;
    gap: 7px;
    padding: 5px 7px;
    font-size: 13px;
}

.app-form-select.compact .cashiering-select-option-icon {
    width: 26px;
    height: 26px;
    flex-basis: 26px;
    border-radius: 6px;
    font-size: 12px;
}


.app-form-select.is-invalid .cashiering-select-trigger {
    border-color: var(--bs-form-invalid-border-color, #dc3545);
}

.app-form-select.is-invalid.open .cashiering-select-trigger,
.app-form-select.is-invalid .cashiering-select-trigger:focus-visible {
    border-color: var(--bs-form-invalid-border-color, #dc3545);
    box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .12);
}

.cashiering-select-option:disabled,
.cashiering-select-option.disabled {
    cursor: not-allowed;
    opacity: .52;
}

.cashiering-select-option:disabled:hover,
.cashiering-select-option:disabled:focus-visible {
    background: transparent;
}

/* Standard dropdowns must be allowed to layer beyond modal content boundaries. */
.modal-content:has(.app-form-select.open) {
    overflow: visible;
}

.modal-content:has(.app-form-select.open) > .modal-header {
    border-radius: 22px 22px 0 0;
}

.modal-content:has(.app-form-select.open) > .modal-body {
    overflow: visible;
}

.modal-content:has(.app-form-select.open) > .modal-footer {
    position: relative;
    z-index: 0;
    border-radius: 0 0 22px 22px;
}

.app-form-select.open {
    z-index: 1080;
}

.app-form-select.searchable .cashiering-select-trigger {
    height: 42px;
    min-height: 42px;
    padding: 5px 38px 5px 10px;
}

.app-form-select.searchable:has(.app-form-select-clear) .cashiering-select-trigger {
    padding-right: 70px;
}

.app-form-select.searchable .cashiering-select-trigger-copy strong {
    font-size: 14px;
    font-weight: 600;
}

.app-form-select.searchable .cashiering-select-menu {
    display: flex;
    flex-direction: column;
    max-height: min(320px, 48vh);
    overflow: hidden;
}

.app-form-select-search {
    width: 100%;
    flex: 0 0 auto;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.app-form-select-search:focus-visible {
    border-color: rgba(21, 128, 61, .55);
    box-shadow: 0 0 0 3px rgba(21, 128, 61, .09);
    outline: 0;
}

.app-form-select-options {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.app-form-select.searchable .cashiering-select-option-copy strong {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
}

.app-form-select.searchable .cashiering-select-option.highlighted {
    background: var(--bs-tertiary-bg);
    outline: 2px solid rgba(21, 128, 61, .55);
    outline-offset: -2px;
}

.app-form-select-empty {
    padding: 12px 10px;
    color: var(--bs-secondary-color);
    font-size: 14px;
}

.app-form-select-clear {
    position: absolute;
    z-index: 1;
    top: 5px;
    right: 32px;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--bs-secondary-color);
}

.app-form-select-clear:hover,
.app-form-select-clear:focus-visible {
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
    outline: 2px solid rgba(21, 128, 61, .55);
}

/* Multi-allocation member payment workspace */
.cashiering-payment-dialog .modal-body {
    padding-bottom: 18px;
}

.cashiering-payment-banner {
    margin-bottom: 14px;
}

.cashiering-member-compact {
    margin-bottom: 12px;
}

.cashiering-payment-empty,
.cashiering-context-error {
    min-height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 18px;
    border: 1px dashed #cad9d1;
    border-radius: 14px;
    background: #f8fbf9;
    color: #687870;
}

.cashiering-payment-empty > i,
.cashiering-context-error > i {
    color: #1d7257;
    font-size: 24px;
}

.cashiering-payment-empty strong,
.cashiering-payment-empty span,
.cashiering-context-error strong,
.cashiering-context-error span {
    display: block;
}

.cashiering-payment-empty span,
.cashiering-context-error span {
    margin-top: 2px;
    font-size: 13px;
}

.cashiering-payment-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr);
    gap: 14px;
    align-items: start;
}

.cashiering-allocation-card,
.cashiering-payment-control-card {
    margin: 0;
}

.cashiering-overdue-context {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-bottom: 10px;
    padding: 9px 11px;
    border: 1px solid #f0cece;
    border-radius: 10px;
    background: #fff8f8;
    color: #7d3636;
}

.cashiering-overdue-context i {
    margin-top: 1px;
    font-size: 15px;
}

.cashiering-overdue-context strong,
.cashiering-overdue-context span {
    display: block;
}

.cashiering-overdue-context strong {
    font-size: 12px;
}

.cashiering-overdue-context span {
    margin-top: 1px;
    color: #8a5a5a;
    font-size: 11px;
}

.cashiering-allocation-list {
    display: grid;
    gap: 8px;
    max-height: 430px;
    overflow-y: auto;
    padding-right: 4px;
    scrollbar-gutter: stable;
}

.cashiering-allocation-row {
    display: grid;
    grid-template-columns: 30px minmax(170px, 1fr) minmax(125px, .55fr) minmax(132px, .55fr);
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid #dfe8e3;
    border-radius: 12px;
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.cashiering-allocation-row.selected {
    border-color: #9cc7b6;
    background: #fbfefc;
    box-shadow: 0 0 0 2px rgba(24, 108, 78, .05);
}

.cashiering-allocation-check {
    position: relative;
    width: 22px;
    height: 22px;
    margin: 0;
    cursor: pointer;
}

.cashiering-allocation-check input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.cashiering-allocation-check span {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border: 1.5px solid #a8bbb2;
    border-radius: 6px;
    background: #fff;
}

.cashiering-allocation-check input:checked + span {
    border-color: var(--brand);
    background: #165d46;
}

.cashiering-allocation-check input:checked + span::after {
    content: "✓";
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
}

.cashiering-allocation-check input:focus-visible + span {
    outline: 3px solid rgba(22, 93, 70, .17);
    outline-offset: 2px;
}

.cashiering-allocation-main,
.cashiering-allocation-balance,
.cashiering-allocation-amount {
    min-width: 0;
}

.cashiering-allocation-main strong,
.cashiering-allocation-main small,
.cashiering-allocation-balance span,
.cashiering-allocation-balance strong,
.cashiering-allocation-amount > span {
    display: block;
}

.cashiering-allocation-title-row {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.cashiering-allocation-title-row > strong {
    min-width: 0;
}

.cashiering-allocation-title-row .badge-status {
    flex: 0 0 auto;
    padding: 3px 7px;
    font-size: 9.5px;
}

.cashiering-allocation-main strong {
    color: #1d2b25;
    font-size: 14px;
}

.cashiering-allocation-main small,
.cashiering-allocation-balance span,
.cashiering-allocation-amount > span {
    color: #718078;
    font-size: 11px;
}

.cashiering-allocation-balance strong {
    margin-top: 2px;
    color: #25362f;
    font-size: 13px;
}

.cashiering-allocation-agreement {
    margin-top: 2px;
}

.cashiering-allocation-agreement > span {
    color: var(--brand);
    font-weight: 750;
}

.cashiering-allocation-agreement-meta {
    display: block;
    margin-top: 2px;
    color: #718078;
    font-size: 10px;
    line-height: 1.35;
}

.cashiering-allocation-pending {
    display: inline-block;
    margin-top: 4px;
    padding: 2px 6px;
    border-radius: 999px;
    background: #fff4d8;
    color: #8a6413;
    font-size: 10px;
    font-weight: 700;
}

.cashiering-money-input.compact .input-group-text,
.cashiering-money-input.compact .form-control {
    min-height: 36px;
    padding-top: 5px;
    padding-bottom: 5px;
    font-size: 13px;
}

.cashiering-control-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.cashiering-total-panel {
    margin-top: 14px;
    padding: 13px 14px;
    border-radius: 12px;
    background: linear-gradient(135deg, #0f4d3b, #256b50);
    color: #fff;
}

.cashiering-total-panel span,
.cashiering-total-panel small,
.cashiering-total-panel strong {
    display: block;
}

.cashiering-total-panel span {
    color: rgba(255,255,255,.72);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.cashiering-total-panel strong {
    margin-top: 2px;
    font-size: 25px;
}

.cashiering-total-panel small {
    margin-top: 2px;
    color: rgba(255,255,255,.72);
}

.cashiering-selected-summary {
    margin-top: 9px;
    border: 1px solid #e1e9e5;
    border-radius: 10px;
    overflow: hidden;
}

.cashiering-selected-summary > div,
.cashiering-receipt-allocation-row {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 8px 10px;
    border-bottom: 1px solid #edf2ef;
}

.cashiering-selected-summary > div:last-child,
.cashiering-receipt-allocation-row:last-child {
    border-bottom: 0;
}

.cashiering-selected-summary span {
    color: #617168;
    font-size: 12px;
}

.cashiering-selected-summary strong {
    font-size: 12px;
}

.cashiering-post-note {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin-top: 10px;
    color: #6b7972;
    font-size: 11px;
}

.cashiering-footer-total {
    margin-right: auto;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.cashiering-footer-total span {
    color: #75827c;
    font-size: 12px;
}

.cashiering-footer-total strong {
    color: #173f32;
    font-size: 18px;
}

.cashiering-receipt-allocation-list {
    margin: 14px 0;
    border: 1px solid #dfe8e3;
    border-radius: 12px;
    overflow: hidden;
}

.cashiering-receipt-allocation-row > div strong,
.cashiering-receipt-allocation-row > div span {
    display: block;
}

.cashiering-receipt-allocation-row > div span {
    margin-top: 2px;
    color: #74817a;
    font-size: 11px;
}

.cashiering-receipt-allocation-row > div .cashiering-receipt-agreement {
    display: block;
    margin-top: 2px;
    color: var(--brand);
    font-size: 10px;
    font-weight: 700;
}

@media (max-width: 991.98px) {
    .cashiering-payment-workspace {
        grid-template-columns: 1fr;
    }

    .cashiering-allocation-row {
        grid-template-columns: 28px minmax(0, 1fr) minmax(130px, .5fr);
    }

    .cashiering-allocation-amount {
        grid-column: 2 / -1;
    }
}

@media (max-width: 575.98px) {
    .cashiering-allocation-row {
        grid-template-columns: 26px minmax(0, 1fr);
    }

    .cashiering-allocation-balance,
    .cashiering-allocation-amount {
        grid-column: 2;
    }
}

/* Remote payment administration */
.payment-review-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.payment-review-allocation-list {
    border: 1px solid #e0e9e4;
    border-radius: 11px;
    overflow: hidden;
}

.payment-review-allocation-list > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 9px 11px;
    border-bottom: 1px solid #edf2ef;
}

.payment-review-allocation-list > div:last-child {
    border-bottom: 0;
}

.payment-review-allocation-list span strong,
.payment-review-allocation-list span small {
    display: block;
}

.payment-review-allocation-list span small {
    color: #78857e;
    font-size: 11px;
}

.payment-review-total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-top: 10px;
    padding: 11px 12px;
    border-radius: 10px;
    background: #f1f7f4;
}

.payment-review-total span {
    color: #68776f;
    font-size: 12px;
}

.payment-review-total strong {
    color: #15583f;
    font-size: 18px;
}

.payment-review-details {
    margin: 0;
    display: grid;
    gap: 9px;
}

.payment-review-details > div {
    display: grid;
    grid-template-columns: 115px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding-bottom: 8px;
    border-bottom: 1px solid #edf2ef;
}

.payment-review-details > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.payment-review-details dt {
    color: #78857e;
    font-size: 11px;
    font-weight: 650;
}

.payment-review-details dd {
    margin: 0;
    color: #24342d;
    font-size: 13px;
    font-weight: 700;
}

.payment-review-decision-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.member-payment-channel-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.member-payment-channel-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    padding: 15px;
    border: 1px solid #dfe8e3;
    border-radius: 14px;
    background: #fff;
}

.member-payment-channel-card.inactive {
    background: #f8faf9;
    opacity: .78;
}

.member-payment-channel-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: #edf6f1;
    color: #145a41;
    font-size: 18px;
}

.member-payment-channel-title {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.member-payment-channel-title span:not(.badge-status) {
    display: block;
    color: #9a7118;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.member-payment-channel-title h4 {
    margin: 2px 0 0;
    font-size: 16px;
}

.member-payment-channel-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 16px;
    margin-top: 12px;
}

.member-payment-channel-details small,
.member-payment-channel-details strong {
    display: block;
}

.member-payment-channel-details small {
    color: #7a8780;
    font-size: 10px;
}

.member-payment-channel-details strong {
    overflow-wrap: anywhere;
    color: #2d3d35;
    font-size: 12px;
}

.member-payment-channel-actions {
    display: flex;
    gap: 6px;
}

.member-payment-settings-file {
    min-height: 45px;
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 10px;
    border: 1px solid #d5e0da;
    border-radius: 9px;
    background: #fff;
    overflow: hidden;
}

.member-payment-settings-file input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.member-payment-settings-file > i {
    color: #166047;
}

.member-payment-settings-file strong,
.member-payment-settings-file small {
    display: block;
}

.member-payment-settings-file strong {
    font-size: 12px;
}

.member-payment-settings-file small {
    color: #7a8780;
    font-size: 10px;
}

.member-payment-settings-toggle {
    width: 100%;
    min-height: 45px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 9px;
    border: 1px solid #d5e0da;
    border-radius: 9px;
    background: #f9fbfa;
}

.member-payment-settings-toggle strong,
.member-payment-settings-toggle small {
    display: block;
}

.member-payment-settings-toggle strong {
    font-size: 12px;
}

.member-payment-settings-toggle small {
    color: #7a8780;
    font-size: 9px;
}

.member-payment-settings-toggle .form-check-input:checked {
    border-color: #155b43;
    background-color: #155b43;
}

@media (max-width: 991.98px) {
    .payment-review-grid,
    .payment-review-decision-grid,
    .member-payment-channel-grid {
        grid-template-columns: 1fr;
    }
}

/* Payment interaction polish */
.cashiering-allocation-row {
    cursor: pointer;
}

.cashiering-allocation-row:focus-visible {
    outline: 3px solid rgba(22, 93, 70, .16);
    outline-offset: 2px;
}

.member-payment-treasury-preview {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid #dfe8e3;
    border-radius: 12px;
    background: #f8fbf9;
}

.member-payment-treasury-preview small,
.member-payment-treasury-preview strong {
    display: block;
}

.member-payment-treasury-preview small {
    margin-bottom: 2px;
    color: #738078;
    font-size: 11px;
}

.member-payment-treasury-preview strong {
    color: #203129;
    font-size: 13px;
}

@media (max-width: 1199.98px) {
    .cashiering-payment-workspace {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .member-payment-treasury-preview {
        grid-template-columns: 1fr;
    }
}

.cashiering-dialog.cashiering-payment-dialog {
    max-width: 1140px;
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .cashiering-dialog.cashiering-payment-dialog {
        max-width: calc(100vw - 48px);
    }
}


/* Posted receipt confirmation is intentionally compact; the entry workspace remains wide. */
.cashiering-dialog.cashiering-payment-dialog.cashiering-posted-dialog {
    max-width: 760px;
}

.cashiering-posted-dialog .modal-body {
    padding: 18px 22px;
}

.cashiering-posted-dialog .cashiering-success {
    margin-bottom: 14px;
    padding: 12px 14px;
}

.cashiering-posted-dialog .cashiering-receipt-print {
    padding: 18px;
}

.cashiering-posted-dialog .cashiering-receipt-grid small {
    display: block;
    margin-top: 2px;
    color: var(--bs-secondary-color);
    font-size: 13px;
    font-weight: 400;
}
