/* Desktop item search keeps the existing catalog, editable rows and submit flow. */
@media screen{
 .billing-reference-dialog .billing-plain-catalog .billing-result{display:block;margin:0;padding:0!important;border:0!important;background:transparent;box-shadow:none}
 .billing-reference-dialog .billing-plain-catalog .billing-plain-item{display:block;width:100%;max-width:none;margin:0;padding:8px 8px 8px 18px;min-height:36px;border:0;border-radius:0;box-shadow:none;background:transparent;color:#579ac6;text-align:left;font-size:14px;font-weight:400;line-height:1.6;white-space:normal;overflow-wrap:anywhere}
 .billing-reference-dialog .billing-plain-catalog .billing-plain-item:hover,.billing-reference-dialog .billing-plain-catalog .billing-plain-item[aria-pressed=true],.billing-reference-dialog .billing-plain-catalog .billing-plain-item:focus-visible{background:#e7f7fa;color:#007e94;outline:0}
 .billing-reference-dialog .billing-plain-catalog .billing-plain-item[aria-disabled=true]{color:#8ca3af}
 .billing-reference-dialog .billing-plain-catalog .billing-plain-item>small{display:inline;margin-left:8px;color:#8ca3af;font-size:11px}
 .billing-reference-dialog .billing-plain-catalog .billing-catalog-count{display:block;margin:4px 0 8px;color:var(--ui-muted,#777c84);font-size:11px}
}
@media screen and (min-width:721px){
 .billing-reference-dialog .billing-desk-search>.billing-quick-search{
  position:absolute;inset:100% 0 auto;z-index:20;max-height:min(400px,48vh);
  overflow:auto;overscroll-behavior:contain;background:#fff;
  border:1px solid var(--ui-line,#dedfe2);border-top:2px solid var(--ui-accent,#00a6c4);
  border-radius:0 0 3px 3px;box-shadow:0 5px 12px #202b3520;
  color:var(--ui-ink,#303339);font-size:13px;
 }
 .billing-quick-search[hidden]{display:none}
 .billing-quick-search>.billing-quick-heading,.billing-quick-search>button{
  display:grid;grid-template-columns:minmax(105px,1.1fr) minmax(160px,3fr) 55px minmax(78px,.8fr);
  gap:12px;align-items:center;width:100%;margin:0;padding:10px 12px;text-align:left;
 }
 .billing-quick-search>.billing-quick-heading{
  position:sticky;top:0;z-index:1;background:var(--ui-soft,#f5f6f8);
  border-bottom:1px solid var(--ui-line,#dedfe2);color:var(--ui-muted,#777c84);font-weight:400;
 }
 .billing-quick-search>button{
  min-height:42px;max-width:none;border:0;border-bottom:1px solid #eceef0;
  border-radius:0;background:white;color:inherit;font:inherit;box-shadow:none;
 }
 .billing-quick-search>button:hover,.billing-quick-search>button.keyboard-selected,
 .billing-quick-search>button:focus-visible{background:#e7f7fa;outline:0;color:#007e94}
 .billing-quick-search>button:disabled{opacity:.55;cursor:default;background:#fafafa}
 .billing-quick-search .billing-quick-code{font-size:11px;color:var(--ui-muted,#777c84);overflow-wrap:anywhere}
 .billing-quick-search .billing-quick-name{overflow-wrap:anywhere}
 .billing-quick-search .billing-quick-name>small{margin-left:8px;font-size:11px;color:var(--ui-muted,#777c84)}
 .billing-quick-search .billing-quick-price{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
 .billing-quick-search>.billing-quick-hint{padding:9px 12px;color:var(--ui-muted,#777c84);font-size:12px;background:#fafbfc}
 .billing-reference-dialog .billing-table .billing-line-added>td{background:#e7f7fa;transition:background-color .2s}
}
@media screen and (min-width:721px) and (max-width:1100px){
 .billing-quick-search>.billing-quick-heading,.billing-quick-search>button{grid-template-columns:minmax(70px,.8fr) minmax(100px,2fr) 36px 70px;gap:8px;padding:10px}
}
@media screen and (max-width:720px){
 .billing-reference-dialog .billing-desk-search>.billing-quick-search{display:none}
}

/* Reference desktop desk: a quiet directory beside one continuous charge sheet.
   These selectors only restyle existing controls; catalog/pricing/checkout code
   and the separate touch workflow keep their original owners. */
@media screen and (min-width:721px){
 dialog.billing-reference-dialog:has(#billing-composer){
  width:calc(100vw - 32px);height:calc(100dvh - 32px);border:1px solid #d9dfe3;
  border-radius:2px;box-shadow:0 8px 28px #1c303326;color:#51565d;
 }
 .billing-reference-dialog #modal-content>h2{
  flex:none;min-height:40px;margin:0;padding:10px 18px;background:#fff;
  border-bottom:1px solid #e4e7e9;font-size:15px;font-weight:500;line-height:20px;
 }
 .billing-reference-dialog .billing-desk-context{
  gap:12px 24px;padding:12px 18px;align-items:center;background:#fafafa;
  border-bottom:1px solid #e5e7e9;
 }
 .billing-reference-dialog .billing-desk-context .billing-patient{
  display:flex;align-items:center;gap:14px;min-width:170px;
 }
 .billing-reference-dialog .billing-desk-context .billing-patient small{margin:0;font-size:12px;color:#8b9098}
 .billing-reference-dialog .billing-desk-context .billing-patient strong{font-size:16px;font-weight:500;color:#41464d}
 .billing-reference-dialog .billing-desk-context>label:not(.billing-patient-search){
  display:flex;align-items:center;gap:10px;flex:0 1 auto;max-width:none;min-width:0;
  margin:0;font-size:13px;font-weight:400;color:#747c85;white-space:nowrap;
 }
 .billing-reference-dialog .billing-desk-context>label select{
  min-width:140px;width:auto;max-width:240px;margin:0;min-height:32px;
  border:1px solid #dce0e3;border-radius:0;background:#fff;font-size:13px;
 }
 .billing-reference-dialog .billing-desk-context>label:has([name=billing_mode]) select{min-width:100px}
 .billing-reference-dialog .billing-desk-context .billing-collaboration{
  flex:0 1 auto;width:auto;margin:0 0 0 auto;padding:0;border:0;font-size:13px;
 }
 .billing-reference-dialog .billing-desk-context .billing-collaboration>summary{min-height:26px;line-height:24px;padding:1px 0;color:#747c85;font-size:13px}
 .billing-reference-dialog .billing-desk-context .billing-collaboration[open]{flex-basis:100%;margin-left:0}
 dialog.billing-reference-dialog:has(#billing-composer) .billing-composer{
  grid-template-columns:minmax(240px,24%) minmax(0,1fr);background:#fff;
 }
 dialog.billing-reference-dialog:has(#billing-composer) .billing-composer.billing-directory-collapsed{grid-template-columns:minmax(0,1fr)}
 .billing-reference-dialog .billing-composer>.billing-picker-column{
  padding:0 16px 16px;border-right:1px solid #e3e6e8;background:#fff;
 }
 .billing-reference-dialog .billing-composer>.billing-editor-column{padding:0 16px 16px;background:#fff}
 .billing-reference-dialog .billing-directory-title{
  display:flex;align-items:center;height:50px;box-sizing:border-box;
  margin:0 -16px 8px;padding:0 18px;border:0;background:#e4e4e4;
  color:#8a8f96;font-size:15px;font-weight:400;
 }
 .billing-reference-dialog .billing-composer .billing-desk-search{
  min-height:50px;box-sizing:border-box;margin:0 -16px;padding:7px 12px;gap:8px;
  background:#e4e4e4;border:0;
 }
 .billing-reference-dialog .billing-composer .billing-desk-search input{
  height:36px;min-height:36px;border:1px solid #d6dade;border-radius:0;
  padding:7px 12px;background:#fff;font-size:13px;color:#565c64;
 }
 .billing-reference-dialog .billing-directory-toggle{
  min-height:34px;padding:6px 10px;border:1px solid #d6dade;border-radius:0;
  background:#fff;color:#818892;font-size:11px;white-space:nowrap;
 }
 .billing-reference-dialog .billing-mode-tabs{
  gap:0;margin:0 0 12px;border-bottom:1px solid #e4e7e9;
 }
 .billing-reference-dialog .billing-mode-tabs button{
  min-height:38px;padding:9px 4px;border:0;border-bottom:2px solid transparent;
  border-radius:0;background:#fff;color:#737c85;font-size:14px;font-weight:400;
 }
 .billing-reference-dialog .billing-mode-tabs button.active{
  border-color:#00a6c4;background:#fff;color:#00a6c4;
 }
 .billing-reference-dialog .billing-source-choice select{
  min-height:34px;border:1px solid #dfe3e6;border-radius:0;background:#fff;
  font-size:13px;color:#747c85;
 }
 .billing-reference-dialog .billing-picker-filters{margin:6px 0;color:#969da5;font-size:11px}
 .billing-reference-dialog .billing-picker-filters>summary{padding:5px 0;cursor:pointer}
 .billing-reference-dialog .billing-plain-catalog .billing-catalog-count{margin:4px 0 6px;font-size:10px;color:#a1a7af}
 .billing-reference-dialog .billing-catalog-branch{margin:0;border:0;background:transparent}
 .billing-reference-dialog .billing-catalog-branch>summary{
  display:flex;align-items:center;gap:14px;min-height:40px;padding:8px 2px!important;
  box-sizing:border-box;list-style:none;border:0;background:transparent;
  color:#65a4cf;font-size:14px;font-weight:400;
 }
 .billing-reference-dialog .billing-catalog-branch>summary::-webkit-details-marker{display:none}
 .billing-reference-dialog .billing-catalog-branch>summary::before{
  content:'';display:inline-flex;align-items:center;justify-content:center;
  flex:none;width:17px;height:13px;border:1px solid #b9bfc5;border-radius:3px;
  background:url('/static/assets/icons/caret-right.svg') center / 11px 11px no-repeat;
 }
 .billing-reference-dialog .billing-catalog-branch[open]>summary::before{background-image:url('/static/assets/icons/caret-down.svg')}
 .billing-reference-dialog .billing-plain-catalog .billing-plain-item{
  padding:7px 6px 7px 34px;min-height:35px;color:#579ac5;font-size:14px;
 }
 .billing-reference-dialog .billing-combo-list .billing-combo-choice{
  padding:9px 4px;border-radius:0;color:#65a4cf!important;
 }
 .billing-reference-dialog .billing-own-project,
 .billing-reference-dialog .billing-presets-fold{
  margin:8px 0;padding:0;border:0;border-radius:0;background:transparent;
  color:#8c949c;font-size:12px;
 }
 .billing-reference-dialog .billing-own-project>summary,
 .billing-reference-dialog .billing-presets-fold>summary{padding:7px 0;font-weight:400}
 .billing-reference-dialog #modal-form[data-desktop-billing="1"] .billing-picker-column>.billing-message{
  margin:8px 0;font-size:11px;font-weight:400;color:#a0a6ad;
 }
 .billing-reference-dialog .billing-composer .billing-lines-heading{
  min-height:45px;box-sizing:border-box;padding:8px 0!important;
  border-bottom:2px solid #3bb1c6;font-size:13px;color:#747c85;
 }
 .billing-reference-dialog .billing-lines-heading>strong{font-weight:400}
 .billing-reference-dialog .billing-lines-heading>[data-add-custom],
 .billing-reference-dialog .billing-lines-heading>[data-add-material]{
  min-height:28px;padding:4px 8px;border:0;border-radius:0;background:#fff;
  color:#65a4cf;font-size:12px;
 }
 .billing-reference-dialog .billing-composer .billing-table{min-width:670px;font-size:13px}
 .billing-reference-dialog .billing-composer .billing-table thead{top:0}
 .billing-reference-dialog .billing-composer .billing-table th{
  padding:10px 6px;background:#fff;color:#666e77;font-size:13px;font-weight:500;
  border:0;border-bottom:2px solid #dedfe2;
 }
 .billing-reference-dialog .billing-composer .billing-table td{
  padding:10px 6px;border:0;border-bottom:1px solid #eceef0;background:#fff;vertical-align:top;
 }
 .billing-reference-dialog .billing-table .billing-name>strong{font-size:13px;font-weight:400;color:#4b535b}
 .billing-reference-dialog .billing-table .billing-name>small{display:inline;margin-left:7px;color:#a0a7ae;font-size:11px}
 .billing-reference-dialog .billing-table .charge-kind-badge{
  margin:0 0 4px;padding:0;border:0;border-radius:0;background:transparent!important;
  color:#a0a7ae;font-size:10px;font-weight:400;
 }
 .billing-reference-dialog .billing-table input:not([type=hidden]),
 .billing-reference-dialog .billing-table .billing-row-price select{
  min-height:30px;margin:0;padding:5px;border:1px solid #e2e6e9;border-radius:0;
  background:#fff;color:#545c65;font-size:13px;box-shadow:none;
 }
 .billing-reference-dialog .billing-table .billing-row-price{margin-top:4px}
 .billing-reference-dialog .billing-table .billing-row-price select{min-height:24px;font-size:10px;color:#8f979f}
 .billing-reference-dialog .billing-table .quantity-stepper{min-width:96px;gap:1px}
 .billing-reference-dialog .billing-table .quantity-stepper input{width:42px;min-width:42px}
 .billing-reference-dialog .billing-table .quantity-stepper button{
  min-width:22px;min-height:30px;padding:3px;border:0;border-radius:0;background:#fff;color:#8194a1;
 }
 .billing-reference-dialog .billing-table [data-remove-line]{
  min-width:0;padding:5px 0;border:0;border-radius:0;background:#fff;color:#65a4cf;font-size:11px;
 }
 .billing-reference-dialog .billing-table .billing-name details{font-size:10px;color:#99a1a8}
 .billing-reference-dialog .billing-composer>.billing-editor-column>.billing-tablewrap{min-height:180px}
 .billing-reference-dialog .billing-tablewrap>[data-billing-empty]{padding:35px 10px;color:#b0b5bb;font-size:12px}
 .billing-reference-dialog #modal-form[data-desktop-billing="1"] .billing-discount-tools{
  margin-top:0;padding:12px 8px;border:0;border-top:1px solid #e4e6e8;border-radius:0;
  background:#fff;gap:8px;
 }
 .billing-reference-dialog .billing-discount-tools label{font-size:13px;color:#747c85;font-weight:400}
 .billing-reference-dialog .billing-discount-tools input{min-height:32px;width:92px;border-radius:0;border-color:#dde1e5}
 .billing-reference-dialog .billing-discount-tools button{
  padding:6px 8px;min-height:32px;border-radius:0;background:#fff;border-color:#e1e5e8;
  color:#82909c;font-size:11px;
 }
 .billing-reference-dialog #modal-form[data-desktop-billing="1"] .billing-payment{
  margin:0 0 10px;padding:14px 16px;border:0;border-radius:2px;background:#f5f5f6;
 }
 .billing-reference-dialog .billing-payment .billing-quick-payment{gap:6px;margin:0 0 12px;padding-bottom:12px;border-color:#e1e3e5}
 .billing-reference-dialog .billing-quick-payment button{
  min-height:32px;padding:6px 12px;border:1px solid #e0e5e8;border-radius:2px;
  background:#fff;color:#00a6c4;font-size:12px;font-weight:400;
 }
 .billing-reference-dialog .billing-payment .payment-entry-row{margin:8px 0;gap:14px}
 .billing-reference-dialog .billing-payment .payment-entry-row label{
  display:flex;align-items:center;gap:8px;font-size:13px;color:#747c85;white-space:nowrap;
 }
 .billing-reference-dialog .billing-payment .payment-entry-row select,
 .billing-reference-dialog .billing-payment .payment-entry-row input{
  min-height:34px;margin:0;min-width:0;border:1px solid #dfe2e5;border-radius:0;background:#fff;font-size:13px;
 }
 .billing-reference-dialog .billing-payment .actions>button{
  min-height:28px;padding:4px 6px;border:0;background:transparent;color:#65a4cf;font-size:11px;
 }
 .billing-reference-dialog .billing-payment [data-payment-summary]{font-size:12px;font-weight:400}
 .billing-reference-dialog .billing-check-tools,
 .billing-reference-dialog .billing-links{border-color:#eceef0;color:#9ca3aa;font-size:11px}
 .billing-reference-dialog #modal-form[data-desktop-billing="1"]>.actions{
  min-height:58px;padding:10px 18px!important;border-top:1px solid #e1e5e8;gap:10px;box-shadow:none;
 }
 .billing-reference-dialog #modal-form[data-desktop-billing="1"] .billing-footer-payment{display:none}
 .billing-reference-dialog #modal-form[data-desktop-billing="1"] .billing-footer-total{
  margin-right:auto;color:#00a6c4;font-size:18px;font-weight:400;white-space:nowrap;
 }
 .billing-reference-dialog #modal-form[data-desktop-billing="1"]>.actions>button{
  min-width:78px;min-height:34px;padding:7px 18px;border-radius:0;font-size:13px;font-weight:400;
 }
 .billing-reference-dialog #modal-form[data-desktop-billing="1"]>.actions>button.primary{
  border-color:#00a6c4;background:#00a6c4;color:#fff;
 }
 .billing-reference-dialog #modal-form[data-desktop-billing="1"]>.actions>[data-invoice-save-print]{margin-left:24px}
}
@media screen and (min-width:721px) and (max-width:1050px){
 dialog.billing-reference-dialog:has(#billing-composer){width:calc(100vw - 16px);height:calc(100dvh - 16px)}
 dialog.billing-reference-dialog:has(#billing-composer) .billing-composer{grid-template-columns:228px minmax(0,1fr)}
 dialog.billing-reference-dialog:has(#billing-composer) .billing-composer.billing-directory-collapsed{grid-template-columns:minmax(0,1fr)}
 .billing-reference-dialog .billing-desk-context{gap:8px 14px;padding:10px 14px}
 .billing-reference-dialog .billing-desk-context .billing-collaboration{margin-left:0}
 .billing-reference-dialog .billing-discount-tools label:has([data-bill-due]){margin-left:0}
 .billing-reference-dialog .billing-payment .payment-entry-row{grid-template-columns:minmax(130px,1.2fr) minmax(105px,1fr) auto;gap:8px}
 .billing-reference-dialog .billing-payment .payment-entry-row label{display:block;white-space:normal}
 .billing-reference-dialog .billing-payment .payment-entry-row label input,
 .billing-reference-dialog .billing-payment .payment-entry-row label select{margin-top:4px}
}

/* On a wide patient page, keep the identity strip and recent-patient rail in
   view while the real modal (and its normal focus/submit lifecycle) is open.
   Other entry points and narrow/touch windows retain the full-size dialog. */
@media screen and (min-width:1280px){
 body:has(.patient-profile>.recent-patients) dialog.billing-reference-dialog:has(#billing-composer){
  position:fixed;inset:210px 16px 12px 324px;margin:0;width:auto;height:auto;
  max-width:none;max-height:none;box-shadow:none;border:1px solid #e1e5e8;
 }
 body:has(.shell.nav-collapsed .patient-profile>.recent-patients) dialog.billing-reference-dialog:has(#billing-composer){left:288px}
 body:has(.patient-profile>.recent-patients) dialog.billing-reference-dialog:has(#billing-composer)::backdrop{background:transparent}
 body:has(.patient-profile>.recent-patients) .billing-reference-dialog #modal-content>h2{
  min-height:26px;padding:4px 14px;font-size:13px;line-height:18px;background:#fff;
 }
 body:has(.patient-profile>.recent-patients) .billing-reference-dialog .billing-desk-context{
  min-height:44px;box-sizing:border-box;padding:6px 14px;gap:6px 18px;background:#fff;
 }
 body:has(.patient-profile>.recent-patients) .billing-reference-dialog .billing-desk-context .billing-patient{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);
 }
 body:has(.patient-profile>.recent-patients) dialog.billing-reference-dialog:has(#billing-composer) .billing-composer{
  grid-template-columns:minmax(218px,24%) minmax(0,1fr);
 }
 body:has(.patient-profile>.recent-patients) dialog.billing-reference-dialog:has(#billing-composer) .billing-composer.billing-directory-collapsed{grid-template-columns:minmax(0,1fr)}
 body:has(.patient-profile>.recent-patients) .billing-reference-dialog .billing-payment .payment-entry-row{
  grid-template-columns:minmax(150px,1fr) minmax(125px,1fr) auto;
 }
 body:has(.patient-profile>.recent-patients) .billing-reference-dialog .billing-composer>.billing-editor-column>.billing-tablewrap:has(>[data-billing-empty]:not([hidden])){min-height:140px}
}
@supports (anchor-name:--billing-patient-sheet){
 @media screen and (min-width:1280px){
  .patient-profile:has(>.recent-patients)>#patient-body{anchor-name:--billing-patient-sheet}
  body:has(.patient-profile>.recent-patients) dialog.billing-reference-dialog:has(#billing-composer){
   position-anchor:--billing-patient-sheet;left:anchor(left);top:anchor(top);
  }
 }
}
/* A pending charge remains visible until the user explicitly discards it. */
.billing-reference-dialog .billing-draft-exit-confirm{
 flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;
 margin:0;padding:12px 18px;border-top:1px solid #ead6a5;background:#fff9ec;color:#665536;
}
.billing-reference-dialog .billing-draft-exit-confirm strong{font-size:14px;font-weight:500}
.billing-reference-dialog .billing-draft-exit-confirm p{margin:4px 0 0;font-size:12px;line-height:1.6}
.billing-reference-dialog .billing-draft-exit-confirm .actions{flex:none;display:flex;gap:8px;margin:0}
.billing-reference-dialog .billing-draft-exit-confirm button{min-height:36px;margin:0;border-radius:2px;white-space:nowrap}
@media(max-width:720px){
 .billing-reference-dialog .billing-draft-exit-confirm{display:block;padding:12px 14px}
 .billing-reference-dialog .billing-draft-exit-confirm .actions{margin-top:10px;justify-content:flex-end}
 .billing-reference-dialog .billing-draft-exit-confirm button{min-height:44px}
}
