/* Scoped overrides: radio tiles and the receipt field have different layouts. */
#billingDialog { top:var(--billing-viewport-top,0px); bottom:auto; height:var(--billing-viewport-height,100dvh); box-sizing:border-box; }
#billingDialog .billing-dialog { max-height:calc(var(--billing-viewport-height,100dvh) - 24px); overscroll-behavior:contain; }
#billingDialog .billing-payment-dialog { color:var(--text,#10211d); background:var(--surface,#fff); gap:12px; }
#billingDialog .billing-payment-form { min-width:0; }
#billingDialog .billing-payment-form .billing-external-reference { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; cursor:default; background:var(--surface-strong,#f5f8f6); color:var(--text,#10211d); }
#billingDialog .billing-external-reference > span { font-size:16px; line-height:1.35; }
#billingDialog .billing-external-reference input { width:100%; min-width:0; box-sizing:border-box; font-size:16px; min-height:48px; color:var(--text,#10211d); background:var(--surface,#fff); }
#billingDialog .billing-external-reference small { color:var(--text,#10211d); font-size:13px; line-height:1.4; }
#billingDialog .billing-payment-error { color:#922c23; background:#fff0ec; border:1px solid #c45040; border-radius:8px; padding:10px; font-size:14px; overflow-wrap:anywhere; }
#billingDialog .billing-payment-error[hidden] { display:none; }
#billingDialog .billing-payment-form fieldset { grid-template-columns:repeat(3,minmax(0,1fr)); padding:0; gap:6px; }
#billingDialog .billing-payment-form fieldset label { padding:10px 6px; min-width:0; flex-wrap:wrap; justify-content:center; gap:5px; color:var(--text,#10211d); background:var(--surface-strong,#f5f8f6); border-color:var(--line,#cddbd4); }
#billingDialog .billing-payment-form fieldset label:has(input:checked) { background:color-mix(in srgb,var(--theme-accent,#20c997) 20%,var(--surface,#fff)); border-color:var(--theme-accent,#20c997); }
#billingDialog .billing-payment-form fieldset label span { display:none; }
#billingDialog .billing-payment-form fieldset label strong { font-size:14px; overflow-wrap:anywhere; }
#billingDialog .billing-payment-actions button { white-space:normal; min-height:44px; }
.service-table-select { -webkit-touch-callout:none; user-select:none; }
/* Payment assignment targets stay reachable while scrolling long bills. */
#billingDialog .billing-transfer-bar { position:sticky; top:-1px; z-index:3; padding:6px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); }
#billingDialog .billing-transfer-bar p { font-size:12px; line-height:1.35; margin:4px 0 7px; overflow-wrap:anywhere; }
#billingDialog .billing-transfer-tools { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:7px; }
#billingDialog .billing-transfer-tools button { font-size:12px; padding:7px 9px; min-height:36px; white-space:normal; color:var(--text); background:var(--surface-strong); border:1px solid var(--line); border-radius:7px; }
#billingDialog .billing-seat-targets { display:flex; flex-wrap:wrap; gap:5px; }
#billingDialog .billing-seat-drop { display:grid; gap:2px; min-width:68px; min-height:44px; padding:6px; color:var(--text); background:var(--surface-strong); border:1px dashed var(--theme-accent,#078564); border-radius:8px; cursor:pointer; }
#billingDialog .billing-seat-drop small { font-size:11px; color:var(--text); white-space:normal; }
#billingDialog .billing-transfer-message:empty { display:none; }
#billingDialog .billing-transfer-message { font-weight:700; }
#billingDialog .billing-transfer-bar:has(.billing-category-split) { max-height:calc(100dvh - 80px); overflow:auto; }
#billingDialog .billing-category-split { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:8px; padding-top:8px; border-top:1px solid var(--line); }
#billingDialog .billing-category-split > small,#billingDialog .billing-category-split > p,#billingDialog .billing-category-split > div,#billingDialog .billing-category-split .billing-split-scope { grid-column:1 / -1; }
#billingDialog .billing-category-split label { display:grid; min-width:0; gap:4px; font-size:14px; font-weight:700; }
#billingDialog .billing-category-split select { min-width:0; width:100%; min-height:44px; font-size:16px; background:var(--surface-strong); color:var(--text); border:1px solid var(--line); border-radius:7px; }
#billingDialog .billing-category-split .billing-split-scope { display:flex; align-items:center; gap:8px; }
#billingDialog .billing-split-scope input { flex:none; width:20px; height:20px; accent-color:var(--theme-accent); }
#billingDialog .billing-category-split > div { display:flex; flex-wrap:wrap; gap:6px; }
#billingDialog .billing-category-split button { min-height:44px; white-space:normal; }
#billingDialog .billing-transfer-line .billing-line-name { display:flex; align-items:center; gap:8px; min-width:0; }
#billingDialog .billing-transfer-line { -webkit-touch-callout:none; -webkit-user-select:none; user-select:none; }
#billingDialog .billing-transfer-line input { -webkit-user-select:text; user-select:text; }
#billingDialog .billing-transfer-line .billing-line-name > div { display:grid; flex:1; gap:3px; min-width:0; overflow-wrap:anywhere; }
#billingDialog .billing-transfer-controls { display:flex; align-items:center; flex:none; gap:4px; }
#billingDialog .billing-drag-handle { display:flex; align-items:center; justify-content:center; flex:none; margin-inline-start:auto; width:26px; min-height:32px; font-size:26px; line-height:1; color:var(--text); cursor:grab; }
#billingDialog [data-billing-select-item] { width:20px; height:20px; margin:0; accent-color:var(--theme-accent,#078564); }
#billingDialog .billing-seat-drop.billing-drop-active { outline:3px solid var(--theme-accent,#078564); outline-offset:-3px; background:color-mix(in srgb,var(--theme-accent,#078564) 20%,var(--surface)) !important; }
#billingDialog .billing-line:has([data-billing-select-item]:checked) { box-shadow:inset 3px 0 var(--theme-accent,#078564); }
#billingDialog .billing-line.billing-drag-armed { outline:3px solid var(--theme-accent,#078564); outline-offset:-3px; background:color-mix(in srgb,var(--theme-accent,#078564) 28%,var(--surface)) !important; cursor:grabbing; }
#billingDialog .billing-line.billing-drag-source { opacity:.3; outline:0; border-style:dashed; box-shadow:none; }
#billingDialog .billing-lines { position:relative; }
#billingDialog .billing-drop-slot { min-width:0; box-sizing:border-box; border:2px dashed var(--theme-accent,#078564); border-radius:11px; background:color-mix(in srgb,var(--theme-accent,#078564) 10%,var(--surface)); pointer-events:none; }
body.billing-dragging #billingDialog .billing-dialog { overflow-anchor:none; }
#billingDialog .billing-drag-ghost { position:fixed; top:0; left:0; z-index:10000; pointer-events:none; box-sizing:border-box; padding:7px; border:2px solid var(--theme-accent,#078564); border-radius:12px; background:var(--surface); color:var(--text); box-shadow:0 10px 30px #0007; font-size:15px; will-change:transform; }
#billingDialog .billing-drag-caption { display:block; margin:0 0 5px; font-size:13px; }
#billingDialog .billing-ghost-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; min-width:0; padding:8px; margin:0; box-shadow:none; }
#billingDialog .billing-ghost-card .billing-line-name { grid-column:1; font-size:16px; }
#billingDialog .billing-ghost-card .billing-line-total { grid-column:2; font-size:14px; }
body.billing-dragging { cursor:grabbing; -webkit-user-select:none; user-select:none; }
/* One scroll container, no shrinking grid rows or footer covering form fields. */
#billingDialog { display:flex; align-items:center; justify-content:center; overflow:hidden; }
#billingDialog .billing-dialog { display:block; min-height:0; margin:0; overflow:auto; }
#billingDialog .billing-dialog > * + * { margin-top:12px; }
#billingDialog .billing-title-row { align-items:center; }
#billingDialog .billing-dialog:not(.billing-payment-dialog):not(.billing-payment-result) > .billing-title-row { grid-template-columns:minmax(0,1fr) 38px; }
#billingDialog .billing-title-row + .billing-transfer-bar { margin-top:4px; }
#billingDialog .billing-title-row h3 { font-size:22px; line-height:1.25; }
#billingDialog .billing-title-row .eyebrow { font-size:12px; margin:0 0 4px; }
#billingDialog .billing-title-row .meta { font-size:13px; line-height:1.4; }
#billingDialog .billing-checkout-bar { position:static; margin-bottom:0; }
#billingDialog .billing-optional { border:1px solid var(--line); border-radius:10px; padding:10px; }
#billingDialog .billing-optional summary { cursor:pointer; font-size:14px; font-weight:700; min-height:24px; }
#billingDialog .billing-optional[open] summary { margin-bottom:10px; }
#billingDialog :is(.billing-person-summary,.billing-person-summary > div > div,.billing-group > header,.billing-line,.billing-table-discount,.billing-person-discount,.billing-person-actions,.billing-adjustment-form,.billing-applied-discount,.billing-discount-share) { background:var(--surface-strong); color:var(--text); border-color:var(--line); }
#billingDialog :is(.billing-person-summary,.billing-group,.billing-table-discount,.billing-person-discount,.billing-adjustment-form,.billing-applied-discount) :is(strong,small,h4,label,span) { color:var(--text); }
#billingDialog :is(.billing-price-field,.billing-table-discount,.billing-person-discount,.billing-adjustment-form,.billing-discount-edit) :is(input,select) { background:var(--surface); color:var(--text); border-color:var(--line); }
#billingDialog .billing-person-summary > div > div { gap:10px; }
@media (max-width:700px) {
  #billingDialog { padding:6px; }
  #billingDialog .billing-dialog { max-height:calc(var(--billing-viewport-height,100dvh) - 12px); }
  #billingDialog .billing-payment-dialog { padding:12px; }
  #billingDialog .billing-payment-dialog .billing-title-row h3 { font-size:22px; }
  #billingDialog .billing-payment-dialog .billing-title-row .meta { font-size:12px; line-height:1.35; margin:6px 0; }
  #billingDialog .billing-payment-dialog .billing-grand-total { padding:8px 10px; }
  #billingDialog .billing-payment-dialog .billing-grand-total strong { font-size:24px; }
}
