/* UI-110：請款與收款工作台易用性（docs/design/drafts/ui-110-billing-workbench-usability-and-overpayment-v1.md）。
 * 紅框錯誤欄位、收款自動分配摘要與差額處理、預收款／退款／結清紀錄、請款單下載鈕、從預覽頁回來時的標亮。 */
.billing-page [aria-invalid="true"]{border-color:#b3261e!important;box-shadow:0 0 0 2px rgb(179 38 30 / 18%)}
.billing-page label.is-invalid,.billing-page .is-invalid{color:#a3322a}
.billing-page .field-error--dynamic{margin:4px 0 0;color:#a3322a;font-size:.86rem;font-weight:700}
.billing-allocation-tools{display:flex;justify-content:flex-end;margin:8px 0 0}
.billing-allocation-tools .secondary-button{width:auto;margin:0}
.billing-allocation-summary{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.billing-allocation-summary-item{display:inline-flex;gap:6px;align-items:baseline;border:1px solid var(--c-border,#e9e3de);border-radius:999px;padding:4px 12px;background:#fafcfb;font-size:.9rem}
.billing-allocation-summary-item strong{font-variant-numeric:tabular-nums}
.billing-allocation-summary-item[data-tone=ok]{background:#e3f1e8;color:#2f6b4a}
.billing-allocation-summary-item[data-tone=warn]{background:#fdf3e3;color:#8a5a12}
.billing-allocation-summary-item[data-tone=danger]{background:#fbe9e7;color:#a3322a}
.billing-difference{display:grid;gap:8px}
.billing-difference-option{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--c-border,#e9e3de);border-radius:12px;padding:10px 12px;background:#fff;cursor:pointer}
.billing-difference-option:has(input:checked){border-color:#5a9088;background:#f2f8f7}
.billing-difference-option input{width:18px;height:18px;flex:0 0 auto;margin-top:3px}
.billing-difference-option strong,.billing-difference-option small{display:block}
.billing-difference-option small{color:var(--c-muted,#71807d);margin-top:2px;line-height:1.5}
.billing-field-wide{grid-column:1/-1}
.billing-invoice-actions{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 8px}
.billing-invoice-actions .secondary-button{width:auto;min-height:36px;margin:0;padding:4px 12px}
.billing-invoice-card.is-flash{background:#fff3cd;box-shadow:0 0 0 3px rgb(255 214 102 / 55%);transition:background-color .6s ease}
@media (prefers-reduced-motion: reduce){.billing-invoice-card.is-flash{transition:none}}
.billing-balance-section{margin-top:14px;border-top:1px solid var(--c-border,#e9e3de);padding-top:10px}
.billing-balance-section h4{margin:0 0 6px;font-size:.95rem}
.billing-balance-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.billing-balance-list li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;overflow-wrap:anywhere}
.billing-balance-list li>span{min-width:0}
.billing-balance-list .secondary-button,.billing-balance-section>.secondary-button{width:auto;min-height:36px;margin:0;padding:4px 12px}
.billing-balance-total{margin:8px 0}
#billing-credit-dialog,#billing-refund-dialog{width:min(640px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto}
#billing-credit-dialog .billing-allocation-row input[type=number]{max-width:10em}
