@font-face{font-family:Inter;src:url('/fonts/InterVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--ink:#0d073b;--teal:#ff8a65;--teal-dark:#a23a18;--teal-soft:#fff1eb;font-family:Inter,Arial,sans-serif}.app-shell{padding-top:0}.sidebar,.mobile-header{top:0}.clinic-logo{width:48px;height:48px;object-fit:contain}.primary{color:#0d073b}.primary:hover{background:#ff9b7c;border-color:#ff9b7c}.appointment{background:#fff2ec;border-color:#edc1b0;border-left-color:#ff8a65}.appointment:hover{background:#ffe7dc}
#superbill-editor>.empty-state{display:none}
.statement-dialog th{text-transform:none;letter-spacing:normal}.statement-dialog a.secondary{display:inline-flex;align-items:center;border:1px solid #ccc;border-radius:4px;padding:10px 12px;text-decoration:none;font-size:14px;font-weight:600}
.client-billing-toolbar{display:flex;justify-content:flex-end;margin-bottom:16px}.client-billing-new{position:relative}.client-billing-new>summary{list-style:none;cursor:pointer;background:#ff8a65;color:#0d073b;border-radius:4px;padding:10px 18px}.client-billing-new>div{position:absolute;right:0;z-index:4;background:#fff;border:1px solid #ddd;box-shadow:0 3px 12px #0002;min-width:160px;padding:6px}.client-billing-new button{display:block;text-align:left;width:100%;border:0;padding:10px;background:#fff;color:#0d073b}.client-billing-new button:hover{background:#fff2ec}
.statement-dialog{font-family:Inter,Arial,sans-serif;width:min(1000px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);overflow-y:auto;padding:0;border:1px solid #ddd;border-radius:6px;color:#0d073b;background:#fff}.statement-dialog::backdrop{background:rgb(0 0 0 / 60%)}.statement-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:24px;background:#fff;position:sticky;top:0;z-index:3}.statement-dialog h2{font-size:20px;font-weight:500;margin:0}.statement-dialog .icon-button{border:0;background:none;color:#777;font-size:26px;cursor:pointer}.statement-fields{border:0;padding:0;margin:0;min-width:0}.statement-top{display:grid;gap:18px;padding:0 24px 24px}.statement-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.statement-dialog label{font-size:14px;color:#777;font-weight:400}.statement-dialog input,.statement-dialog select,.statement-dialog textarea{font:inherit;font-size:15px;color:#0d073b;background:white;border:1px solid #bbb;border-radius:3px;padding:8px 12px;min-width:0;width:100%;margin-top:4px}.statement-dialog textarea{resize:vertical}.statement-identity{font-size:15px;color:#0d073b;line-height:1.6;border:1px solid #bbb;border-radius:3px;min-height:104px;padding:8px 12px;margin-top:4px}.statement-two .statement-identity{min-height:170px}.statement-codes{border-top:1px solid #ddd;padding:24px;background:#f6f6f6}.statement-codes h3{font-size:18px;font-weight:500;margin:0 0 20px}.statement-table-wrap{border:1px solid #bbb;border-radius:3px;background:#fff;overflow:auto;margin-bottom:18px}.statement-dialog table{border-collapse:collapse;width:100%;margin:0}.statement-dialog th{background:#fff;color:#777;font-size:14px;font-weight:500;text-align:left;border-bottom:1px solid #ddd;padding:14px 10px}.statement-dialog td{vertical-align:top;border-bottom:1px solid #ddd;padding:10px}.statement-diagnoses th:first-child,.statement-diagnoses td:first-child{width:64px;padding-left:24px}.statement-diagnoses th:last-child{width:42px}.statement-services{min-width:900px;table-layout:fixed}.statement-services th:nth-child(1){width:130px}.statement-services th:nth-child(2){width:96px}.statement-services th:nth-child(3){width:230px}.statement-services th:nth-child(4){width:90px}.statement-services th:nth-child(5){width:70px}.statement-services th:nth-child(6){width:65px}.statement-services input,.statement-services select,.statement-services textarea{font-size:12px;padding:6px 4px}.statement-services select{max-width:210px}.statement-dialog .text-button{border:0;background:none;color:#b84522;padding:10px 12px;cursor:pointer}.statement-reviewed{display:flex;align-items:center;gap:3px;font-size:10px!important;margin-top:6px}.statement-reviewed input{width:12px;height:12px;margin:0}.statement-dialog footer{display:flex;justify-content:space-between;gap:12px;background:#fff;padding:18px 24px;border-top:1px solid #ddd;position:sticky;bottom:0;z-index:3}.statement-dialog footer>div{display:flex;gap:10px;flex-wrap:wrap}.statement-dialog .primary{background:#ff8a65;border-color:#ff8a65;color:#171717}.statement-dialog .secondary{background:#fff;color:#0d073b;border-color:#ccc}.statement-dialog .notice{margin:12px 24px}.statement-dialog summary{cursor:pointer}.statement-dialog .check input{width:auto}.statement-dialog :focus-visible{outline:2px solid #b84522;outline-offset:2px}
@media(max-width:700px){.statement-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.statement-two{grid-template-columns:1fr}.statement-dialog>header,.statement-codes{padding:18px}.statement-top{padding:0 18px 18px}.statement-dialog footer{padding:12px;align-items:flex-start}.statement-dialog footer>div{justify-content:flex-end}.statement-two .statement-identity{min-height:0}}

/* ICD-10 condition drawer (icd10-picker.mjs), reused by the client record's
   conditions tab and the superbill editor's "+ Add code". Reference:
   condition-catalog-1280.png / condition-search-1280.png. */
.icd10-drawer-root{position:fixed;inset:0;z-index:60;margin:0;padding:0;border:0;width:100%;height:100%;max-width:none;max-height:none;background:transparent;color:inherit}
.icd10-drawer-root::backdrop{background:transparent}
.icd10-drawer-backdrop{position:absolute;inset:0;background:rgb(0 0 0 / 45%)}
.icd10-drawer{position:absolute;top:0;right:0;bottom:0;width:min(560px,100vw);background:#fff;box-shadow:-8px 0 24px rgb(0 0 0 / 15%);display:flex;flex-direction:column;font-family:Inter,Arial,sans-serif;color:#0d073b}
.icd10-drawer-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;border:0;background:#fff;box-shadow:0 1px 4px rgb(0 0 0 / 20%);font-size:20px;color:#555;cursor:pointer}
.icd10-drawer-head{display:flex;gap:14px;align-items:flex-start;padding:24px 56px 20px 24px;border-bottom:1px solid #e5e5e5}
.icd10-drawer-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:8px;background:#f2f2f2;font-style:italic;font-weight:600;font-size:18px;flex-shrink:0}
.icd10-drawer-head h2{margin:0 0 4px;font-size:20px;font-weight:600}
.icd10-drawer-head p{margin:0;font-size:14px;color:#666}
.icd10-drawer-body{padding:20px 24px;overflow-y:auto;flex:1}
.icd10-field{display:block;font-size:14px;color:#555;margin-bottom:16px}
.icd10-field input,.icd10-field select{font:inherit;font-size:15px;color:#0d073b;background:#fff;border:1px solid #bbb;border-radius:4px;padding:10px 12px;width:100%;margin-top:6px}
.icd10-field input:focus,.icd10-field select:focus{outline:2px solid #ff8a65;outline-offset:-1px;border-color:#ff8a65}
#icd10-results-slot{position:relative}
.icd10-results{position:relative;margin-top:-16px;margin-bottom:16px;max-height:400px;overflow-y:auto;border:1px solid #ddd;border-top:0;border-radius:0 0 6px 6px;box-shadow:0 6px 16px rgb(0 0 0 / 10%)}
.icd10-result{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;border:0;background:#fff;padding:12px 16px;cursor:pointer;font:inherit;font-size:15px}
.icd10-result:hover{background:#fff7f3}
.icd10-result b{flex-shrink:0;min-width:70px}
.icd10-result span{color:#333;flex:1}
.icd10-result-existing{color:#aaa}
.icd10-result-existing b,.icd10-result-existing span{color:#aaa;font-weight:600}
.icd10-tag{flex-shrink:0;font-style:normal;font-size:13px;color:#aaa}
.icd10-selected{border-top:1px solid #e5e5e5;padding-top:16px}
.icd10-status select{width:auto;min-width:140px}
.icd10-onset{display:flex;align-items:center;gap:10px}
.icd10-onset input{width:auto;flex:1}
.icd10-chip{display:inline-block;background:#f2f2f2;border-radius:14px;padding:6px 14px;font-size:14px;margin-top:6px}
.icd10-drawer-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid #e5e5e5}
.icd10-drawer-foot .primary{background:#ff8a65;border-color:#ff8a65;color:#171717}
.icd10-drawer-foot .primary:disabled{background:#eee;border-color:#eee;color:#aaa;cursor:default}
.icd10-drawer-foot .secondary{background:#fff;color:#0d073b;border-color:#ccc}
.icd10-drawer-foot button{border:1px solid transparent;border-radius:4px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer}
@media(max-width:700px){.icd10-drawer{width:100vw}}

/* Superbill DX row's inline quick-pick (superbill-editor.mjs): a blank row
   is "Search and add from ICD-10 diagnostic codes", scoped first to the
   client's own conditions, with a "+ New condition" link that escalates to
   the full icd10-drawer above. Reference: superbill-icd10-search-client-
   codes-1440.png. */
.dx-row-picker{position:relative}
.dx-row-input{margin-top:0!important}
/* position:fixed, positioned in JS (superbill-editor.mjs's
   positionDxDropdown) -- NOT position:absolute within .dx-row-picker.
   The DX row sits inside .statement-table-wrap, which has overflow:auto;
   an absolutely-positioned descendant of a scrolling ancestor gets clipped
   to that ancestor's box the moment it would extend past it (exactly what
   was cutting the results off, hidden behind the services table below).
   Fixed positioning is relative to the viewport regardless of DOM nesting,
   so no scrolling ancestor -- this one or any other -- can clip it. */
.dx-row-dropdown{position:fixed;z-index:20}
.dx-dropdown-panel{background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 6px 16px rgb(0 0 0 / 12%);max-height:320px;overflow-y:auto}
.dx-dropdown-head{padding:10px 14px 4px;font-size:12px;color:#888;display:flex;align-items:center;gap:6px}
.dx-dropdown-count{background:#eee;color:#777;border-radius:10px;padding:1px 8px;font-size:11px}
.dx-dropdown-result{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;border:0;border-top:1px solid #f0f0f0;background:#fff;padding:10px 14px;cursor:pointer;font:inherit;font-size:14px}
.dx-dropdown-result:hover{background:#fff7f3}
.dx-dropdown-result b{flex-shrink:0}
.dx-dropdown-result span{color:#333;flex:1}
.dx-status-badge{flex-shrink:0;font-style:normal;font-size:11px;background:#fff1eb;color:#b84522;border-radius:10px;padding:1px 8px}
.dx-dropdown-new{display:block;width:100%;text-align:left;border:0;border-top:1px solid #f0f0f0;background:#fff;color:#b84522;font-weight:600;padding:10px 14px;cursor:pointer;font:inherit;font-size:14px}
.dx-dropdown-new:hover{background:#fff7f3}

/* Issued preview uses the stored PDF, also used for printing and download. */
.superbill-pdf-preview{display:block;width:100%;height:calc(100dvh - 240px);min-height:500px;border:0;background:#fff}
.cp-superbill-page .cp-invoice-canvas:has(.superbill-pdf-preview){padding:16px}
@media(max-width:700px){.superbill-pdf-preview{height:calc(100dvh - 250px);min-height:400px}}

/* Invoice selection shares the statement's controls and spacing. */
.statement-invoice-picker{border:1px solid #bbb;border-radius:3px;padding:16px;color:#0A0A0A;background:#F7F7F5}
.statement-invoice-picker h3{margin:0;font-size:16px;font-weight:600}.statement-invoice-picker p{margin:8px 0;font-size:13px}
.statement-invoice-list{max-height:240px;overflow:auto;margin:12px 0;background:#fff}
.statement-dialog .statement-invoice-choice{display:flex;align-items:flex-start;gap:12px;padding:12px;border-bottom:1px solid #ddd;color:#0A0A0A;cursor:pointer}
.statement-dialog .statement-invoice-choice input{width:18px;height:18px;flex:none;margin:2px 0;accent-color:#E16E37}
.statement-invoice-choice span span{display:block;font-size:13px;margin-top:4px}.statement-invoice-choice:has(input:disabled){opacity:.65}
.statement-invoice-choice:has(input:checked){background:#F7F7F5;box-shadow:inset 3px 0 #E16E37}

/* Finalized superbills show the stored PDF and one delivery action. */
.cp-superbill-page .sb-delivery{margin-top:20px;padding:16px 20px;border:1px solid #ddd;border-radius:8px;background:#F7F7F5;color:#0A0A0A;overflow-wrap:anywhere}
.cp-superbill-page .sb-delivery strong{font-size:18px}.cp-superbill-page .sb-delivery p{margin:6px 0 0}
.cp-superbill-page .sb-send-primary,.statement-dialog .primary{background:#E16E37;border-color:#E16E37;color:#0A0A0A}
.cp-superbill-page .sb-send-primary:disabled{opacity:.55;cursor:default}
@media(max-width:700px){.cp-superbill-page .cp-invoice-title{flex-wrap:wrap}.cp-superbill-page .cp-invoice-actions{width:100%;flex-wrap:wrap}.cp-superbill-page .sb-send-primary{flex:1}.cp-superbill-page .sb-delivery{padding:12px}}

/* One document action at a time; optional draft/correction tools stay in More. */
.statement-more{position:relative;align-self:center}
.statement-more>summary{display:block;list-style:none;border:1px solid #ccc;border-radius:4px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer}
.statement-more>summary::-webkit-details-marker{display:none}
.statement-more>div{position:absolute;right:0;bottom:calc(100% + 8px);min-width:185px;padding:6px;border:1px solid #ddd;border-radius:6px;background:#fff;box-shadow:0 4px 18px #0002}
.statement-more>div>button,.statement-more>div>a{display:block;width:100%;padding:10px 12px;border:0;background:#fff;color:#0A0A0A;text-align:left;font:inherit;font-size:14px;text-decoration:none;white-space:nowrap}
.statement-more>div>button:hover,.statement-more>div>a:hover{background:#F7F7F5}

.statement-status{margin:0 24px 20px;padding:12px 16px;border-radius:6px;background:#F7F7F5;color:#0A0A0A;font-size:14px;line-height:1.5}
