.billing-page .billing-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.billing-page .customer-card{min-width:0}.billing-page .billing-contracts,.billing-page .billing-detail{width:100%}.billing-page .billing-summary[hidden],.billing-page .billing-legacy-history[hidden],.billing-page .billing-invoice-list[hidden],.billing-page .billing-receipt-list[hidden],.billing-page .billing-invoice-detail[hidden],.billing-page .billing-form[hidden]{display:none}.billing-page .billing-record-list{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;list-style:none;margin:6px 0 0;padding:0}.billing-record{width:100%;display:grid;grid-template-columns:minmax(0,1.6fr) 130px 90px minmax(0,1fr);gap:12px;align-items:center;padding:10px 12px;text-align:left;color:var(--c-text);background:#fff;border:1px solid var(--c-border);border-radius:10px}.billing-page .billing-record-head{display:grid;grid-template-columns:minmax(0,1.6fr) 130px 90px minmax(0,1fr);gap:12px;margin:16px 0 0;padding:6px 12px;border-radius:8px;background:#f1f8f6;color:var(--c-brand);font-size:12px;font-weight:800}.billing-page .billing-record-head span:nth-child(n+3){text-align:right}.billing-record-identity{display:grid;gap:2px;min-width:0}.billing-record-identity strong{overflow-wrap:anywhere}.billing-record-amount{text-align:right;font-variant-numeric:tabular-nums;font-size:13px;white-space:nowrap}.billing-record-amount strong[data-tone=danger]{color:#9b3040}.billing-record-chip{display:inline-block;padding:2px 9px;border-radius:999px;background:#eef2f0;color:var(--c-muted);font-size:12px;font-weight:800;white-space:nowrap}.billing-record-chip[data-tone=ok]{background:#e3f2ec;color:#1d5c47}.billing-record-chip[data-tone=warn]{background:#fdf3e3;color:#8a5a12}.billing-record:hover,.billing-invoice-card:hover,.billing-invoice-card[aria-current=true]{border-color:var(--c-brand-light);background:#f2f8f7}.billing-record[aria-current=true]{border-color:var(--c-brand);background:#eef5f3;box-shadow:inset 3px 0 0 var(--c-brand)}.billing-record span,.billing-record small,.billing-invoice-card span,.billing-receipt-cards span{color:var(--c-muted);line-height:1.5}.billing-pagination{margin-top:14px}.billing-page .customer-search{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.billing-page .customer-search .field{margin:0}.billing-page .customer-search input[type=search]{min-width:min(100%,300px)}.billing-page .customer-search-actions{margin:0}.billing-page .customer-search .field-error{flex-basis:100%;margin:0}.billing-page .customer-search .field{min-width:0}.billing-page .customer-search .field:first-child{flex:1}.billing-page .customer-search select{min-width:180px}.billing-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.billing-summary>div{display:grid;gap:4px;padding:12px;border:1px solid var(--c-border);border-radius:11px;background:#f7fbfa}.billing-summary span{font-size:12px;color:var(--c-muted)}.billing-summary strong{font-size:18px}.billing-summary .customer-note{grid-column:1/-1;margin:0}.billing-legacy-history{margin-top:22px;padding:18px 0 0;border-top:1px solid var(--c-border)}.billing-legacy-history .customer-section-heading{margin:0}.billing-legacy-history .status-chip{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#eef5f3;color:var(--c-brand);font-weight:800}.billing-legacy-events{display:grid;gap:8px;list-style:none;padding:0;margin:10px 0 0}.billing-legacy-events li{display:grid;gap:4px;padding:10px 12px;border-left:3px solid var(--c-brand-light);background:#f7fbfa}.billing-legacy-events span{color:var(--c-muted)}.billing-invoice-list,.billing-receipt-list,.billing-invoice-detail{margin-top:22px;padding-top:18px;border-top:1px solid var(--c-border)}.billing-invoice-list h3,.billing-receipt-list h3{margin:0 0 10px}.billing-invoice-cards{display:grid;gap:9px}.billing-invoice-card{display:grid;gap:4px;width:100%;padding:13px;text-align:left;color:var(--c-text);background:#fff;border:1px solid var(--c-border);border-radius:11px}.billing-receipt-cards{display:grid;gap:8px;list-style:none;margin:0;padding:0}.billing-receipt-cards li{display:grid;gap:4px;padding:11px 13px;border-left:3px solid var(--c-brand-light);background:#f7fbfa}.billing-invoice-detail{display:grid;gap:12px}.billing-invoice-detail .customer-section-heading{margin:0}.billing-line-table{display:grid;border:1px solid var(--c-border);border-radius:10px;overflow:hidden}.billing-line-table>div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--c-border)}.billing-line-table>div:last-child{border-bottom:0}.billing-form{display:grid;gap:16px;margin-top:22px;padding-top:18px;border-top:2px solid var(--c-brand-light)}.billing-form h3{margin:0}.billing-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.billing-fieldset{border:0;padding:0;margin:0}.billing-fieldset legend{font-weight:800}.billing-check-list,.billing-allocation-list,.billing-additions{display:grid;gap:8px;margin-top:8px}.billing-check-list label,.billing-allocation-row{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--c-border);border-radius:10px;background:#fff}.billing-check-list input,.billing-allocation-row input[type=checkbox]{width:auto;min-height:auto;accent-color:var(--c-brand)}.billing-allocation-row input[data-invoice-id]{margin-left:auto;width:150px;min-height:42px}.billing-addition-row{display:grid;grid-template-columns:1.3fr .8fr .8fr .6fr .5fr 1.6fr auto;gap:8px;align-items:end;padding:12px;border:1px solid var(--c-border);border-radius:10px;background:#f7fbfa}.billing-addition-row label{display:grid;gap:5px;font-size:12px;font-weight:700}.billing-addition-row textarea{min-height:42px}.billing-form .primary-button{width:100%}.billing-page .customer-status[data-tone=error]{color:#b44f5c}.billing-page .customer-status[data-tone=success]{color:#27835c}@media(max-width:900px){.billing-record,.billing-page .billing-record-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.billing-page .billing-record-head{display:none}}@media(max-width:1000px){.billing-addition-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.billing-summary{grid-template-columns:1fr}.billing-record{grid-template-columns:1fr}.billing-form-grid{grid-template-columns:1fr}.billing-page .customer-search{display:grid;grid-template-columns:1fr}.billing-page .customer-search-actions{justify-content:flex-start}.billing-allocation-row{flex-wrap:wrap}.billing-allocation-row input[data-invoice-id]{width:100%;margin-left:0}.billing-addition-row{grid-template-columns:1fr}.billing-addition-row .secondary-button{width:100%}}
.billing-page .billing-template-card{margin:4px 0 18px;padding:14px 16px;border:1px solid var(--c-border);border-radius:12px;background:#f1f8f6;color:var(--c-brand)}.billing-page .billing-template-card p{margin:4px 0 0;color:var(--c-muted);line-height:1.5}.billing-page .danger-button{border-color:#b85767;color:#a33f50}.billing-page .danger-button:hover:not(:disabled){background:#fff3f4}
.billing-work-badge{display:inline-block;margin-left:8px;padding:1px 10px;border-radius:999px;font-size:.78rem;font-weight:800;white-space:nowrap}
.billing-work-badge.is-done{background:#e3f2ec;color:#1d5c47}
.billing-work-badge.is-pending{background:#fdf3e3;color:#8a5a12}

/*
 * UI-088：項目服務改為「左邊勾選、右邊備註」的兩欄列。
 * 備註直接印在請求書明細的「備考」欄，因此輸入框必須和它所屬的服務在同一列裡，
 * 不能是清單下方一個共用欄位——那會讓人分不清這段字要印在哪一列。
 */
.billing-page .billing-service-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--c-border);border-radius:10px;background:#fff}
.billing-page .billing-service-pick{display:flex;align-items:center;gap:9px;min-width:0;margin:0;padding:0;border:0;background:none}
.billing-page .billing-service-pick input[type=checkbox]{width:auto;min-height:auto;flex:0 0 auto;accent-color:var(--c-brand)}
.billing-page .billing-service-pick>span:first-of-type{overflow-wrap:anywhere}
.billing-page .billing-service-remark{display:grid;gap:4px;min-width:0}
/* 這個 label 位於 .billing-check-list 內，會吃到「每個 label 都是一格帶框選項列」的既有規則；
   逐項還原成純文字標籤，否則欄位標題會自己長出一個空白邊框盒。 */
.billing-page .billing-service-remark label{display:block;margin:0;padding:0;border:0;border-radius:0;background:none;font-size:12px;font-weight:700;color:var(--c-muted)}
.billing-page .billing-service-remark input{width:100%;min-height:40px}
/* 未勾選時輸入框停用：備註只會隨著被勾選的服務印出來，停用讓這個依賴看得見。 */
.billing-page .billing-service-remark input:disabled{background:#f4f6f5;color:var(--c-muted);cursor:not-allowed}
@media(max-width:760px){.billing-page .billing-service-row{grid-template-columns:1fr;align-items:stretch}}
/* UI-105：決算後加收區的月度待辦法人稅加收列（版面稿 artifacts/ui/ui-105-monthly-surcharge-to-invoice-v1.html 的 A～C 區）。 */
.billing-page .billing-monthly-surcharge{display:grid;gap:10px;margin:0 0 14px}
.billing-page .billing-monthly-surcharge-box{border:1px solid var(--c-brand-light);border-radius:14px;padding:14px 16px;background:var(--c-soft)}
.billing-page .billing-monthly-surcharge-box h3{margin:0 0 6px;font-size:15px}
.billing-page .billing-monthly-surcharge-source{margin:0 0 10px;color:var(--c-brand);font-size:.85rem;overflow-wrap:anywhere}
.billing-page .billing-monthly-surcharge-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,2fr);gap:12px;align-items:start}
.billing-page .billing-monthly-surcharge-grid .field{margin:0;min-width:0}
.billing-page .billing-monthly-surcharge-grid input{width:100%}
.billing-page .billing-monthly-surcharge-grid input.is-changed{border-color:var(--c-danger-border);box-shadow:0 0 0 2px var(--c-danger-soft)}
.billing-page .billing-monthly-surcharge-diff{margin:4px 0 0;min-height:1.2em;color:var(--c-danger);font-size:.8rem;font-weight:700}
.billing-page .billing-monthly-surcharge-notice,.billing-page .billing-monthly-surcharge-warning{margin:0;padding:10px 14px;border-radius:10px;background:var(--c-warn-soft);color:var(--c-warn-ink);font-size:.88rem;overflow-wrap:anywhere}
.billing-page .billing-monthly-surcharge-warning{display:grid;gap:8px;justify-items:start}
.billing-page .billing-monthly-surcharge .secondary-button{width:auto;margin:0}
@media(max-width:760px){.billing-page .billing-monthly-surcharge-grid{grid-template-columns:1fr}}
