:root{--ink:#203634;--muted:#647672;--teal:#126e61;--paper:#fffefa;--line:#d9e2dc;--red:#a65154;--bg:#f3f5f0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--teal);text-decoration:none}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;justify-content:center;align-items:center;min-height:44px;border:1px solid #b7cdc4;border-radius:8px;padding:9px 15px;background:white;color:var(--teal);font-weight:650;cursor:pointer;text-decoration:none}button:hover,.button:hover{background:#ecf5ef}button:disabled{opacity:.45;cursor:default}.primary{background:var(--teal);border-color:var(--teal);color:white}.primary:hover{background:#0b554b}.quiet{background:transparent;border-color:transparent}.full{width:100%}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:white;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:750;font-size:22px}.brand-sub{font-size:14px;font-weight:400;color:var(--muted)}.brand-mark{width:48px;height:48px;border-radius:14px;background:var(--teal);color:white;font-size:30px;display:grid;place-items:center;font-weight:700}.brand-mark.small{width:32px;height:32px;font-size:21px;border-radius:9px}.identity{display:flex;gap:18px;align-items:center;font-size:13px}.demo-strip{background:#e7ece0;color:#4d604e;padding:9px 4vw;font-size:11px;font-weight:750;letter-spacing:1px}.demo-strip span{font-weight:400;letter-spacing:.2px}.workspace{max-width:1440px;margin:auto;padding:32px 4vw 16px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:4px 0 28px}h1{font-size:clamp(25px,2.5vw,36px);line-height:1.2;letter-spacing:-1px;margin:8px 0 12px}h2{font-size:23px;line-height:1.25;margin:4px 0 12px;letter-spacing:-.5px}h3{font-size:16px;margin:0 0 7px}p{margin:8px 0 16px}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:800;color:var(--teal);margin:0 0 9px}.muted,.helper,small{color:var(--muted)}.role-pill,.status,.count,.form-tag{display:inline-flex;align-items:center;border-radius:20px;padding:5px 10px;background:#e9f0e8;color:#376755;font-size:10px;font-weight:750;letter-spacing:.6px;white-space:nowrap}.layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:25px;align-items:start}.layout.single{grid-template-columns:1fr}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 4px 18px #23382b04}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.count{font-size:14px;min-width:32px;justify-content:center}.patient-row{display:flex;align-items:center;gap:13px;border-top:1px solid var(--line);padding:22px 0}.patient-row[hidden]{display:none}.patient-main{flex:1}.patient-main p{font-size:12px;color:var(--muted);margin:3px 0}.patient-main h3{font-size:17px}.avatar{border-radius:50%;width:42px;height:42px;background:#e7eee3;display:grid;place-items:center;color:#527058;font-weight:700}.row-action{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.row-action .button{font-size:12px}.search-label{font-size:12px;color:var(--muted)}label{display:block;font-size:13px;font-weight:600;margin-bottom:17px}input,select,textarea{display:block;width:100%;padding:11px 12px;border:1px solid #ccd9d1;border-radius:7px;color:var(--ink);background:#fff;min-height:44px;margin-top:7px}textarea{resize:vertical;line-height:1.65}input:focus,select:focus,textarea:focus{outline:2px solid #3c9a8260;outline-offset:1px;border-color:var(--teal)}.box-label{display:block;font-size:10px;font-weight:700;letter-spacing:.55px;color:var(--red)}.two-col,.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.appointment-box{padding:18px;background:#f6f8f3;border-radius:8px;margin:8px 0 20px}.appointment-box h3{margin-bottom:15px}.notice{background:#faf2df;border:1px solid #e9dab3;padding:14px 17px;border-radius:8px;font-size:13px;margin:16px 0}.notice p:last-child{margin-bottom:0}.error{background:#fff0ee;border:1px solid #dfbbb7;color:#8c3434;border-radius:7px;padding:12px}.success{background:#e7f2e8;border:1px solid #bdd6c1;color:#2e6241;padding:12px;border-radius:7px}.empty{padding:36px 20px;text-align:center;color:var(--muted)}.staff-row{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:16px 0}footer{padding:28px 0 16px;color:#7f8e85;font-size:11px}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(130deg,#e9efe6,#f7f7f2)}.login-card{max-width:460px;width:calc(100% - 32px);margin:48px auto;background:white;border:1px solid var(--line);border-radius:18px;padding:36px}.login-card .brand-mark{margin-bottom:25px}.login-card details{margin-top:24px;font-size:13px}.login-card h1{font-size:34px}summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--teal);font-weight:650}.back{display:inline-block;margin-bottom:20px;font-size:13px}.patient-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.patient-banner h1{margin-bottom:8px}.patient-banner p{font-size:13px;margin-bottom:0}.form-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.form-nav a{padding:10px 13px;background:white;border:1px solid var(--line);border-radius:8px;font-size:12px;min-height:44px;display:flex;align-items:center}.claim-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.form-paper{background:var(--paper);border:1px solid #d1b7b4;border-radius:9px;overflow:hidden}.paper-title{display:flex;align-items:center;justify-content:space-between;padding:25px;background:#fcf8f2;border-bottom:2px solid #bb7772}.paper-title h2{font-family:Georgia,serif;font-size:27px}.paper-title .eyebrow{color:var(--red)}.draft-stamp{font-size:10px;line-height:1.6;font-weight:750;color:var(--red);text-align:center;border:1px solid #c69792;padding:7px;transform:rotate(-4deg)}.form-section{padding:20px;border-bottom:1px solid #dbc0bb;scroll-margin-top:22px}.form-section label:last-child{margin-bottom:0}.field-grid{gap:0}.form-cell{padding:12px;border:1px solid #e3cfca;min-height:85px;display:flex;flex-direction:column;gap:6px}.form-cell strong{font-size:14px;font-weight:600}.form-cell small{font-size:11px}.section-note{font-size:11px;color:var(--muted);margin:12px 0 0}.helper{display:block;font-size:12px;font-weight:400;margin:5px 0}.clinical-note{margin-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-heading h3{color:var(--red)}fieldset{margin:0;padding:0;border:0;min-width:0}fieldset:is(:disabled,.readonly) input,fieldset:is(:disabled,.readonly) textarea{background:#f6f6ef;color:var(--ink);opacity:1;border-color:#e1e3d8}.line-head,.service-entry{display:grid;grid-template-columns:minmax(150px,1fr) 65px 100px 44px;gap:9px;align-items:start}.line-head{font-size:9px;color:var(--red);font-weight:700}.service-entry{padding:10px 0;border-bottom:1px solid var(--line)}.service-entry input{margin-top:0}.service-identity{display:grid;grid-template-columns:76px 1fr;gap:7px}.remove-line{font-size:22px;min-width:44px;padding:4px}.total-row{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding:13px;background:#f2eee4;font-size:11px;font-weight:700}.total-row strong{font-size:21px}.save-bar{display:flex;align-items:center;gap:10px;padding:17px 20px;background:#ecf3ea;position:sticky;bottom:0}.save-bar span{flex:1;color:var(--muted);font-size:12px}.save-bar button{font-size:12px}.nf-section{background:#f8f9f3}.nf-cell{display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--line);padding:12px 0;font-size:13px}.nf-cell a{font-size:12px}.billing-panel{position:sticky;top:20px}.billing-panel h2{font-size:22px}.billing-panel p{font-size:13px}.metric{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:17px 0;font-size:13px}.metric strong{font-size:20px}.billing-panel form{margin-top:20px}.balance{margin-bottom:18px}.payment-entry{display:flex;flex-direction:column;padding:14px 0;border-top:1px solid var(--line);font-size:12px}.payment-entry strong{font-size:16px}.billing-panel details{margin-top:15px}
@media(max-width:1100px){.claim-layout{grid-template-columns:1fr}.billing-panel{position:static}.layout{grid-template-columns:1fr 1fr}.service-identity{grid-template-columns:1fr}.paper-title h2{font-size:25px}}@media(max-width:780px){.topbar{padding:0 18px;height:68px}.brand-sub{display:none}.identity{gap:5px;font-size:11px}.workspace{padding:22px 16px}.layout{grid-template-columns:1fr}.page-heading{flex-direction:column}.patient-banner{align-items:flex-start}.panel{padding:20px}.service-identity{grid-template-columns:75px 1fr}.demo-strip{padding:8px 16px}.demo-strip span{display:block;margin-top:2px}.form-nav{gap:6px}.form-nav a{flex:1 0 auto;font-size:12px}.form-section{padding:15px}.save-bar{padding:13px;flex-wrap:wrap}.save-bar span{flex-basis:100%}.save-bar button{flex:1}.patient-row{flex-wrap:wrap}.row-action{flex-direction:row;align-items:center;width:100%;justify-content:space-between}.line-head{display:none}.service-entry{grid-template-columns:1fr 1fr 44px}.service-identity{grid-column:1/-1}.service-entry input{font-size:16px}.paper-title{padding:18px}.field-grid{grid-template-columns:1fr 1fr}.patient-banner h1{font-size:28px}}@media(max-width:450px){.two-col,.field-grid{grid-template-columns:1fr}.brand{font-size:18px}.paper-title{gap:10px}.paper-title h2{font-size:21px}.login-card{padding:25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.account-name{padding:5px 10px;border-radius:20px;background:#e9f0e8;color:#1f4f44;font-size:12px;font-weight:750}@media(max-width:780px){.account-name{font-size:11px;padding:4px 8px}}
.login-brand{display:flex;align-items:center;gap:10px;font-weight:750;font-size:20px;margin-bottom:28px}.login-card h1{font-size:28px;margin-bottom:20px}#patient-search{margin:0 0 8px}.staff-who{display:flex;flex-direction:column;gap:2px}.status.alert{background:#faf2df;color:#7a5a12}.paper-title{padding:18px 25px}
fieldset:is(:disabled,.readonly) .remove-line{visibility:hidden}
.stack{display:grid;gap:25px;align-content:start;min-width:0}.search-form{display:flex;gap:8px;align-items:stretch}.search-form input{margin-top:0}.result-row{border-top:1px solid var(--line);padding:14px 0}.result-row h3{margin:0}.result-row p{font-size:13px;margin:4px 0 6px}.result-row details form{padding-top:8px}
.topbar{height:auto;min-height:64px;gap:16px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}.brand{font-size:20px;white-space:nowrap}
.top-search{position:relative;flex:1 1 320px;max-width:560px}.top-search input{margin:0;padding-right:38px;background:#f6f8f4}.top-search kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:11px/1 ui-monospace,Consolas,monospace;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:3px 6px;background:white}
.identity{gap:14px}.new-patient{white-space:nowrap}.workspace{padding-top:22px}
.panel-heading{gap:12px}.panel-heading h2{margin:0;flex:1}.panel-heading .filter{width:180px;margin:0;min-height:38px;padding:7px 10px}.panel-heading a{font-size:13px;font-weight:650}
.results{margin-bottom:22px}.result-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 20px}.result-who{min-width:0}.result-row details{flex:0 1 auto}.result-row details[open]{flex-basis:100%}
.inline-book{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.inline-book label{margin:0;flex:1 1 200px}.inline-book button{min-width:110px}
@media(max-width:780px){.top-search{order:3;flex-basis:100%;max-width:none}.top-search kbd{display:none}.actor-name{display:none}.panel-heading .filter{width:120px}}
.patient-row{padding:11px 0;gap:10px}.patient-main h3{font-size:15px;margin:0}.patient-main p{margin:2px 0 0}.panel{padding:18px 22px}.panel-heading{margin-bottom:10px}.panel-heading h2{font-size:20px}.row-action{flex-direction:row;align-items:center;gap:10px}.row-action form{margin:0}
.top-nav{display:flex;gap:4px}.top-nav a{padding:8px 10px;border-radius:7px;font-weight:650;font-size:14px;color:var(--ink)}.top-nav a:hover{background:#ecf5ef}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.panel-heading h2 .count{margin-left:6px;vertical-align:middle;font-size:13px}
.table-wrap{overflow-x:auto;margin:0 -4px}.patient-table{width:100%;border-collapse:collapse;font-size:14px}
.patient-table th{text-align:left;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:2px solid var(--line);white-space:nowrap}
.patient-table td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.patient-table td.name{font-weight:650}.patient-table tbody tr:nth-child(even){background:#fafbf7}
.book-cell{text-align:right}.book-cell summary{justify-content:flex-end;min-height:36px}.book-cell details[open]{min-width:300px;text-align:left}.book-cell .inline-book{flex-direction:column;align-items:stretch;gap:8px}
.pager{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:14px;font-size:13px}.page-size label{display:flex;align-items:center;gap:8px;margin:0;font-weight:400}.page-size select{width:auto;margin:0;min-height:36px;padding:6px 8px}
.page-links{display:flex;align-items:center;gap:4px}.page-links a,.page-links .off{display:inline-grid;place-items:center;min-width:36px;min-height:36px;border-radius:7px;font-size:16px}.page-links a:hover{background:#ecf5ef}.page-links .off{color:#c3cbc6}.page-of{padding:0 8px}
@media(max-width:780px){.top-nav{order:2}}
.patient-table td{padding:6px 10px}.book-cell summary{min-height:30px}
.topbar{min-height:56px;padding-top:8px;padding-bottom:8px;gap:14px}.brand{font-size:19px}
.top-nav{display:flex;align-items:center;gap:2px}.top-nav a{padding:7px 10px;border-radius:7px;font-weight:650;font-size:14px;color:var(--muted)}.top-nav a.active{color:var(--ink);background:#e9f0e8}
.top-nav a.add{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;margin-left:2px;border-radius:50%;background:var(--teal);color:white;font-size:20px;line-height:1}.top-nav a.add:hover{background:#0b554b}
.top-search{flex:1 1 300px;max-width:none}.top-search input{min-height:40px}
.user-menu{position:relative;margin-left:auto}.user-menu summary{display:flex;align-items:center;gap:8px;min-height:40px;padding:4px 10px;border:1px solid var(--line);border-radius:20px;color:var(--ink);font-weight:650;font-size:13px;list-style:none}.user-menu summary::-webkit-details-marker{display:none}.user-menu .account-name{padding:0;background:none;font-size:13px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu .caret{color:var(--muted);font-size:11px}
.user-menu .menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:220px;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #1d302820;padding:8px}
.menu-who{display:flex;flex-direction:column;gap:2px;margin:4px 8px 8px;font-size:13px}.menu-item{width:100%;justify-content:flex-start;border:0;background:none;color:var(--ink);font-weight:500;min-height:40px;padding:8px}.menu-item:hover{background:#ecf5ef}
.list-summary{margin:0 0 10px;font-size:14px;color:var(--muted)}.list-summary strong{color:var(--ink)}
@media(max-width:780px){.brand-name{display:none}.user-menu .account-name{max-width:120px}}
.nav-count{margin-left:6px;padding:1px 7px;border-radius:10px;background:white;font-size:12px;font-weight:650;color:var(--muted)}.top-nav a:not(.active) .nav-count{background:#e9f0e8}
.search-count{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);pointer-events:none;white-space:nowrap}.search-count:empty{display:none}.top-search:has(.search-count:not(:empty)) kbd{display:none}.top-search input{padding-right:120px}
.patient-list{padding-top:6px}
/* One-row top bar on desktop: the search box takes the space that is left, never more. */
.topbar{flex-wrap:nowrap}.top-search{flex:1 1 160px;min-width:0;max-width:440px}.top-search input{min-width:0}.user-menu{flex:0 0 auto}.user-menu .account-name{max-width:160px}.top-nav{flex:0 0 auto}.brand{flex:0 0 auto}
@media(max-width:780px){.topbar{flex-wrap:wrap}.top-search{max-width:none}}
/* Search hint: smaller, and space for "N matching" only while a count is shown. */
.top-search input{padding-right:40px;font-size:14px}.top-search input::placeholder{font-size:13px}.top-search:has(.search-count:not(:empty)) input{padding-right:120px}
.menu-brand{margin:4px 8px 6px;font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--teal)}
/* Patient list: page controls on top, compact one-line rows. */
.pager{margin:0 0 8px;justify-content:flex-end;font-size:12px}.page-links a,.page-links .off{min-width:30px;min-height:30px;font-size:15px}.page-size select{min-height:30px;padding:3px 6px;font-size:12px}
.patient-table{font-size:13px}.patient-table th{padding:6px 10px}.patient-table td{padding:4px 10px;white-space:nowrap}.patient-table td.payer{max-width:240px;overflow:hidden;text-overflow:ellipsis}
.book-cell summary{min-height:26px;font-size:13px}.book-cell details[open]{white-space:normal}
/* Patients page: minimal gaps between the top bar and the table. */
.workspace:has(.patient-list){padding-top:8px;padding-bottom:8px}
.patient-list{padding:6px 14px 8px;border-radius:10px}
:is(.patient-list,.payments-report) .pager{margin:0 0 2px}
.patient-table th{padding:4px 10px}.patient-table td{padding:3px 10px;line-height:1.35}
/* Slimmer top bar and page-controls row. */
.topbar{min-height:48px;padding-top:4px;padding-bottom:4px}.top-search input{min-height:36px;padding-top:6px;padding-bottom:6px}.user-menu summary{min-height:36px;padding-top:2px;padding-bottom:2px}.top-nav a{padding:6px 10px}.brand-mark.small{width:30px;height:30px;font-size:19px}
.workspace:has(.patient-list){padding-top:6px}.patient-list{padding-top:2px}
:is(.patient-list,.payments-report) .page-size select{min-height:26px;padding:1px 6px}:is(.patient-list,.payments-report) .page-links a,:is(.patient-list,.payments-report) .page-links .off{min-height:26px;min-width:28px}
/* Box 24 service lines, laid out like the CMS-1500 grid. */
.services-section .section-heading{margin-bottom:8px}.services-section .section-heading h3 .count{margin-left:6px;font-size:11px;vertical-align:middle}
.box24{width:100%;border-collapse:collapse;font-size:13px;background:white}
.box24 th{border:1px solid #c98c88;color:var(--red);font-size:9.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;line-height:1.25;padding:4px 6px;text-align:center;vertical-align:bottom;background:#fdf6f4}
.box24 td{border:1px solid #e3c3bf;padding:0;height:30px;vertical-align:middle}
.box24 td.c-date{padding:0 8px;text-align:center;color:var(--ink);white-space:nowrap;width:76px}
.box24 .c-code{width:92px}.box24 .c-num{width:96px;text-align:right}.box24 .c-units{width:70px}.box24 .c-remove{width:34px;border-left:0;border-right:0;border-bottom:0;background:transparent}
.box24 td input{display:block;width:100%;min-height:30px;margin:0;padding:4px 8px;border:0;border-radius:0;background:transparent;font-size:13px}
.box24 td.c-code input{text-align:center;letter-spacing:1px;font-family:ui-monospace,Consolas,monospace}.box24 td.c-num input{text-align:right}.box24 td.c-units input{text-align:center}
.box24 td input:focus{outline:2px solid #3c9a82;outline-offset:-2px;background:#f4fbf8}
.box24 td.line-charge{padding:0 8px;font-variant-numeric:tabular-nums;color:var(--ink)}
.box24 input[type=number]{-moz-appearance:textfield;appearance:textfield}.box24 input[type=number]::-webkit-inner-spin-button,.box24 input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.box24 .remove-line{min-height:28px;min-width:28px;padding:0;font-size:18px;color:var(--muted)}
.box24 tfoot td{border:0;height:auto;padding:8px}.box24 tfoot .total-label{text-align:right;font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--ink)}.box24 tfoot strong{font-size:17px}
.box24 tbody tr:nth-child(even) td:not(.c-remove){background:#fffaf8}
fieldset:is(:disabled,.readonly) .box24 td input{color:var(--ink);opacity:1;-webkit-text-fill-color:var(--ink)}fieldset:is(:disabled,.readonly) .box24 .c-remove{display:none}
@media(max-width:780px){.box24{font-size:12px}.box24 td.c-date{width:60px;padding:0 4px}.box24 .c-num{width:78px}}
.box24 tr.service-entry{display:table-row;padding:0;border:0}.box24 tr.service-entry input{margin-top:0}@media(max-width:780px){.box24 tr.service-entry{display:table-row}.box24 tr.service-entry input{font-size:16px}}
/* Box 24 as on the CMS-1500 (02/12): red rules, shaded supplemental strip above each line. */
.cms24{--rule:#d9534f;--shade:#fde4e4;--soft:#f0aaa7;border-collapse:collapse;width:100%;min-width:760px;background:white;font:13px/1.2 ui-monospace,Consolas,"Courier New",monospace;color:#222}
.cms24 th{border:1px solid var(--rule);color:var(--red);background:white;font:700 8.5px/1.15 system-ui,"Segoe UI",sans-serif;letter-spacing:.2px;text-transform:uppercase;padding:2px 3px;text-align:center;vertical-align:bottom}
.cms24 th small{font-size:7.5px;font-weight:600;text-transform:none}.cms24 th.l{text-align:left}
.cms24 td{border-left:1px solid var(--rule);border-right:1px solid var(--rule);padding:0;text-align:center;vertical-align:middle}
.cms24 tr.supp td{height:15px;background:var(--shade);border-top:1px solid var(--rule)}
.cms24 tr.line td{height:21px;border-bottom:1px solid var(--rule)}
.cms24 td.dt{width:26px}.cms24 td.dt+td.dt{border-left:1px dashed var(--soft)}.cms24 td.yy{border-right:1px solid var(--rule)}
.cms24 td.mod{width:24px}.cms24 td.mod+td.mod{border-left:1px dashed var(--soft)}
.cms24 td.cpt{width:70px}.cms24 td.chg{width:92px}.cms24 td.units{width:46px}.cms24 td.qual{width:34px;background:var(--shade);font:700 9px system-ui,sans-serif;color:var(--red)}.cms24 td.na{width:30px}
/* Box 24 must keep enough room for complete claim values when the full form is narrow. */
.form-paper:not(.clinician-focus) .cms24 td.cpt{min-width:64px}
.form-paper:not(.clinician-focus) .cms24 td.mod{min-width:24px}
.form-paper:not(.clinician-focus) .cms24 td.chg{min-width:82px}
.form-paper:not(.clinician-focus) .cms24 td.units{min-width:46px}
.form-paper:not(.clinician-focus) .cms24 td.qual{min-width:34px}
.form-paper:not(.clinician-focus) .cms24 td.npi-j{min-width:104px}
.form-paper:not(.clinician-focus) .cms24{table-layout:fixed}
.form-paper:not(.clinician-focus) .cms24 col.col-date{width:3.5%}
.form-paper:not(.clinician-focus) .cms24 col.col-place{width:5%}
.form-paper:not(.clinician-focus) .cms24 col.col-emg{width:3%}
.form-paper:not(.clinician-focus) .cms24 col.col-cpt{width:8%}
.form-paper:not(.clinician-focus) .cms24 col.col-mod{width:3%}
.form-paper:not(.clinician-focus) .cms24 col.col-dx{width:7%}
.form-paper:not(.clinician-focus) .cms24 col.col-charge{width:11%}
.form-paper:not(.clinician-focus) .cms24 col.col-units{width:6%}
.form-paper:not(.clinician-focus) .cms24 col.col-epsdt{width:5%}
.form-paper:not(.clinician-focus) .cms24 col.col-qual{width:5%}
.form-paper:not(.clinician-focus) .cms24 col.col-rendering{width:17%}
.form-paper:not(.clinician-focus) .cms24 col.col-remove{width:0}
.cms24 td.shade{background:var(--shade)}
.cms24 input{display:block;width:100%;margin:0;min-height:0;height:21px;padding:0 4px;border:0;border-radius:0;background:transparent;font:inherit;text-align:center}
.cms24 tr.supp input{height:15px;font:italic 11px/15px system-ui,"Segoe UI",sans-serif;text-align:left;padding:0 6px;color:#555}
.cms24 td.chg input{text-align:right;padding-right:6px;background:linear-gradient(to left,transparent 25px,var(--soft) 25px,var(--soft) 26px,transparent 26px)}
.cms24 input:focus{outline:2px solid #3c9a82;outline-offset:-2px;background-color:#f4fbf8}
.cms24 input[type=number]{-moz-appearance:textfield;appearance:textfield}.cms24 input[type=number]::-webkit-inner-spin-button,.cms24 input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.cms24 td.rm,.cms24 th.rm{width:26px;border:0;background:white}.cms24 .remove-line{min-height:22px;min-width:22px;padding:0;font-size:16px;color:var(--muted)}
.cms24 tbody.service-entry{display:table-row-group;padding:0;border:0}
.cms24 tfoot td{border:0;padding:6px 4px;text-align:right}.cms24 tfoot .total-label{font:700 9px system-ui,sans-serif;letter-spacing:.4px;color:var(--red)}.cms24 tfoot .total{border:1px solid var(--rule);font-size:14px;padding:4px 6px}
fieldset:is(:disabled,.readonly) .cms24 input{color:#222;opacity:1;-webkit-text-fill-color:#222}fieldset:is(:disabled,.readonly) .cms24 tr.supp input{-webkit-text-fill-color:#555}fieldset:is(:disabled,.readonly) .cms24 .remove-line{display:none}
.services-section{padding:12px 14px}.services-section .section-heading{margin-bottom:6px}
/* CMS-1500 colors: drop-out red rules and labels, pink shading. */
.cms24{--rule:var(--cms-rule-red, #e8473f);--shade:#fbd3d1;--soft:var(--cms-rule-red, #e8473f)}
.cms24 th{color:var(--cms-label-red, #e0352c);border-color:var(--rule)}
.cms24 td.dt+td.dt,.cms24 td.mod+td.mod{border-left:1px dashed var(--rule)}
.cms24 td.chg input{background:linear-gradient(to left,transparent 25px,var(--rule) 25px,var(--rule) 26px,transparent 26px)}
.cms24 tr.line td.qual{background:white;color:var(--cms-label-red, #e0352c);font:600 8.5px system-ui,sans-serif}
.cms24 tr.supp input{color:#4a4a4a}.cms24 tr.line input{color:#111}
.cms24 tfoot .total-label{color:var(--cms-label-red, #e0352c)}.cms24 tfoot .total{border-color:var(--rule)}
.services-section .section-heading h3{color:var(--cms-label-red, #e0352c)}
/* Keep form colors in every state. */
.cms24 th small{color:inherit}
fieldset:is(:disabled,.readonly) .cms24 input,.cms24 input:disabled{background-color:transparent;border:0}
fieldset:is(:disabled,.readonly) .cms24 td.chg input,.cms24 td.chg input:disabled{background:linear-gradient(to left,transparent 25px,var(--rule) 25px,var(--rule) 26px,transparent 26px)}
.cms24 tr.supp td.rm,.cms24 tr.line td.rm{background:white;border:0}
/* Box 21 as on the CMS-1500: A-L in three rows of four, codes on underlines. */
.box21-section{padding:12px 14px}
.cms21{--rule:var(--cms-rule-red, #e8473f);border:1px solid var(--rule);background:white;padding:4px 8px 6px}
.cms21-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;color:var(--cms-label-red, #e0352c);font:700 9px/1.3 system-ui,"Segoe UI",sans-serif;letter-spacing:.2px}
.cms21-head .hint{font-weight:500;text-transform:none}.cms21-head .icd{margin-left:auto;display:flex;align-items:center;gap:6px;font-weight:500}
.cms21-head .icd b{display:inline-grid;place-items:center;min-width:22px;height:18px;border:1px solid var(--rule);color:#111;font:600 13px ui-monospace,Consolas,monospace}
.cms21-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px 18px;margin-top:2px}
.cms21 .slot{display:flex;align-items:flex-end;gap:4px;margin:0;font:700 9px system-ui,sans-serif;color:var(--cms-label-red, #e0352c)}
.cms21 .slot span{padding-bottom:3px;min-width:12px}
.cms21 .slot input{flex:1;min-width:0;min-height:0;height:22px;margin:0;padding:0 4px;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent;color:#111;font:600 14px ui-monospace,Consolas,"Courier New",monospace;text-transform:uppercase}
.cms21 .slot input:focus{outline:2px solid #3c9a82;outline-offset:0;background:#f4fbf8}
fieldset:is(:disabled,.readonly) .cms21 .slot input{background:transparent;color:#111;-webkit-text-fill-color:#111;opacity:1}
.box21-section .clinical-note{margin-top:8px}.box21-section .clinical-note textarea{min-height:0;padding:6px 8px}
@media(max-width:780px){.cms21-grid{grid-template-columns:repeat(2,1fr)}}
/* Box 24 bottom row: add button and count on the left, total on the right. */
.cms24 tfoot td.line-tools{text-align:left;font:12px system-ui,sans-serif;color:var(--muted)}.cms24 tfoot td.line-tools button{min-height:30px;padding:4px 10px;font-size:12px;margin-right:10px}
/* Add services: three-month calendar and procedure picker, above box 24. */
.add-services{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-start;margin:0 0 10px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#f7f8f5}
.calendars{display:flex;align-items:center;gap:4px}.calendar-months{display:flex;gap:8px}
.cal-nav{min-width:26px;min-height:26px;padding:0;font-size:18px}.cal-nav:disabled{opacity:.3}
table.cal{border-collapse:collapse;background:white;border:1px solid var(--line);font:12px/1 system-ui,"Segoe UI",sans-serif}
table.cal caption{font-weight:700;font-style:italic;padding:4px 0;background:#e9ece6;border:1px solid var(--line);border-bottom:0}
table.cal th{font-weight:700;padding:3px 0;width:24px;color:var(--ink)}
table.cal td{padding:1px;text-align:center}table.cal td.other{color:#b9c0bb;background:#f1f2ef}
table.cal button{min-width:0;min-height:0;width:22px;height:20px;padding:0;border:1px solid transparent;border-radius:3px;background:transparent;color:#1f62b0;font-size:12px;font-weight:500}
table.cal button:hover{background:#e7f0fb}table.cal button.today{border-color:#333}
table.cal button[aria-pressed=true]{background:var(--teal);color:white;border-color:var(--teal)}
table.cal button:disabled{color:#c6ccc8;background:transparent;cursor:default}
.picker{flex:1 1 320px;display:flex;flex-direction:column;gap:6px;min-width:0}.picker-label{margin:0;font-size:12px;font-weight:650}
.combo{position:relative}.combo input{margin:0;min-height:34px;padding:6px 8px;font-size:13px}
#procedure-options{position:absolute;z-index:30;left:0;right:0;top:100%;max-height:280px;overflow:auto;margin:2px 0 0;padding:4px 0;list-style:none;background:white;border:1px solid #9aa9a1;border-radius:6px;box-shadow:0 8px 20px #1d302825;font-size:13px}
#procedure-options li{padding:5px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#procedure-options li:hover,#procedure-options li.active{background:#2f6fd0;color:white}
.chosen{display:flex;flex-wrap:wrap;gap:4px}.chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 2px 2px 8px;border-radius:12px;background:#e3efe8;color:#1f4f44;font-size:12px}
.chip button{min-width:20px;min-height:20px;padding:0;border:0;background:none;color:inherit;font-size:14px}
.add-row{display:flex;align-items:center;gap:10px;font-size:12px}.add-row button{min-height:32px;padding:4px 12px;font-size:13px}
/* Box 24: click a date to change it; the native picker sits hidden in the cell. */
.cms24 td.dos{position:relative;cursor:pointer}.cms24 td.dos:hover{background:#fff4f3}
.cms24 .dos-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;border:0;padding:0}
fieldset:is(:disabled,.readonly) .cms24 td.dos{cursor:default}fieldset:is(:disabled,.readonly) .cms24 td.dos:hover{background:transparent}
/* "+" under the remove column adds a blank line; the picker opens below the grid. */
.cms24 .add-line{min-width:22px;min-height:22px;padding:0;font-size:20px;line-height:1;color:var(--teal);font-weight:700}
.services-section .add-services{margin:8px 0 0}
.cms24 td.empty-note{padding:10px;text-align:center;font:12px system-ui,sans-serif;color:var(--muted);border-bottom:1px solid var(--rule)}
/* The hidden attribute must win over any display rule (buttons, flex panels, tbody). */
[hidden]{display:none !important}
/* Procedure picker: chosen procedures inside the box, typing continues after them. */
.token-field{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:34px;padding:3px 6px;border:1px solid #ccd9d1;border-radius:7px;background:white;cursor:text}
.token-field:focus-within{outline:2px solid #3c9a8260;outline-offset:1px;border-color:var(--teal)}
.token-field .chosen{display:contents}.token-field .chip{flex:0 1 auto}
.token-field input{flex:1 1 160px;min-width:120px;min-height:26px;margin:0;padding:2px 4px;border:0;outline:0;background:transparent;font-size:13px}
.token-field input:focus{outline:0}
/* Add-services panel: calendars and the Add/Close column side by side, procedures underneath. */
.add-services{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"cal actions" "picker picker";gap:10px 18px;align-items:end}
.add-services .calendars{grid-area:cal}.add-services .picker{grid-area:picker}
.add-services .add-row{grid-area:actions;flex-direction:column;align-items:flex-start;gap:8px;padding-bottom:4px}
.add-services .add-row .muted{order:-1}.add-services .add-row button{min-width:110px}
@media(max-width:680px){.add-services{grid-template-columns:1fr;grid-template-areas:"cal" "picker" "actions"}.add-services .add-row{flex-direction:row;align-items:center}.add-services .add-row .muted{order:0}.calendar-months{flex-wrap:wrap}}
/* Add-services panel: procedures and actions share the column beside the calendars. */
.services-section{container-type:inline-size}
.add-services{grid-template-columns:auto minmax(200px,1fr);grid-template-areas:"cal picker" "cal actions";grid-template-rows:auto 1fr;align-items:start}
.add-services .calendars{align-self:center}
.add-services .add-row{flex-direction:row;flex-wrap:wrap;align-items:center;align-self:end;gap:6px 10px;padding-bottom:0}
.add-services .add-row .muted{order:-1;flex-basis:100%}.add-services .add-row button{min-width:0}
.add-services #procedure-options{left:auto;right:0;min-width:min(480px,92vw)}
@container (max-width:790px){
  .add-services{grid-template-columns:auto 1fr;grid-template-areas:"cal actions" "picker picker";grid-template-rows:auto auto;align-items:end}
  .add-services .add-row{flex-direction:column;align-items:flex-start}.add-services .add-row .muted{flex-basis:auto}
  .add-services #procedure-options{left:0;right:0;min-width:0}
}
@container (max-width:640px){
  .add-services{grid-template-columns:1fr;grid-template-areas:"cal" "picker" "actions"}
  .add-services .add-row{flex-direction:row;align-items:center}.calendar-months{flex-wrap:wrap}
}
/* Slightly narrower calendar cells so the procedure column fits beside them. */
table.cal th{width:21px}table.cal button{width:20px;height:19px}.calendar-months{gap:6px}
/* Patient list: the booking form opens as a full-width row under the patient. */
.book-toggle{min-height:26px;padding:2px 8px;font-size:13px;color:var(--teal)}.book-toggle[aria-expanded=true]{background:#e9f0e8}
.patient-table tr.book-row td{white-space:normal;padding:8px 10px;background:#f2f7f3;border-bottom:2px solid var(--teal)}
.row-book{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 14px}
.row-book-who{align-self:center;font-weight:650;margin-right:auto;min-width:200px}
.row-book label{display:flex;flex-direction:column;gap:2px;margin:0;font-size:12px}
.row-book select,.row-book input{margin:0;min-height:32px;padding:4px 8px;width:auto;min-width:180px;font-size:13px}
.row-book button{min-height:32px;padding:4px 14px;font-size:13px}
.patient-table:has(.book-row) tbody tr:nth-child(even){background:none}.patient-table:has(.book-row) tbody tr:nth-child(4n+3){background:#fafbf7}
.row-book{justify-content:flex-end}
.row-book .book-cancel{min-width:32px;padding:0;font-size:20px;line-height:1;color:var(--muted)}

/* Appointment changes on the worklist and history on the Patients page. */
.change-row{margin:-4px 0 6px;padding:8px 10px;border-radius:8px;background:#f2f7f3;border:1px solid #d6e6dc}
.change-row .row-label{align-self:center;font-weight:650;margin-right:auto}
.row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 12px;margin-top:8px;padding-top:8px;border-top:1px dashed #cfdcd3}
.cancel-form{display:flex;gap:8px;align-items:center}.cancel-form input{margin:0;min-height:32px;padding:4px 8px;font-size:13px;min-width:240px}
button.danger{min-height:32px;padding:4px 12px;font-size:13px;border-color:#d9a5a5;color:#9b2c2c;background:white}button.danger:hover{background:#fbeeee}
.change-row .quiet,.row-toggle{min-height:30px;padding:2px 8px;font-size:13px}.row-toggle[aria-expanded=true]{background:#e9f0e8}
.history-cell{text-align:right}.history-toggle{white-space:nowrap}
.patient-table tr.history-row td{white-space:normal;padding:6px 10px 8px;background:#f7f9f6}
.appt-history{border-collapse:collapse;font-size:12.5px}.appt-history td{padding:3px 12px 3px 0;border:0;white-space:nowrap}.appt-history td.reason{white-space:normal;color:var(--muted)}
.status.off{background:#f1f1ee;color:#8a8f8a;text-decoration:line-through}
.patient-table:has(.history-row) tbody tr:nth-child(even){background:none}
.patient-table:has(.toggle-row) tbody tr:nth-child(n){background:none}
/* Worklist change row: no repeated label or appointment line while editing. */
.patient-row:has(.row-toggle[aria-expanded=true]) .patient-main p{display:none}
.change-row .row-book{justify-content:flex-start}.change-row .row-book .row-close{margin-left:auto}
.change-row .row-actions{justify-content:flex-start}.cancel-form input{min-width:220px}button.danger{white-space:nowrap}
/* Patient list fits the panel: long text truncates, and Book stays pinned at the right edge. */
.patient-table td.name{max-width:220px;overflow:hidden;text-overflow:ellipsis}
.patient-table td.payer{max-width:180px}.patient-table td.member{max-width:150px;overflow:hidden;text-overflow:ellipsis}
.patient-table .book-cell,.patient-table th.book-head{position:sticky;right:0;background:white;box-shadow:-6px 0 6px -6px #1d302830}
.patient-table tr:nth-child(4n+3) .book-cell{background:#fafbf7}
/* Booking row: fields start at the left so they stay in view; History and Book share the pinned cell. */
.patient-table tr.book-row .row-book{justify-content:flex-start}
.patient-table .book-cell{white-space:nowrap;text-align:right}.patient-table .book-cell .row-toggle{margin-right:4px}

/* Patient edit row and dated changes in the history. */
.patient-table tr.edit-row td{white-space:normal;padding:8px 10px;background:#f2f7f3;border-bottom:2px solid var(--teal)}
.edit-form{flex-wrap:wrap;justify-content:flex-start}.edit-form label{min-width:0}.edit-form label.wide{flex:1 1 320px}.edit-form label.wide input{width:100%}
.edit-form .box-label{font-size:10px}
.appt-history caption{text-align:left;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);padding:4px 0 2px}
.appt-history + .appt-history{margin-top:6px}.appt-history td.field,.appt-history span.field{font-weight:650}.appt-history .old{text-decoration:line-through;color:#8a8f8a}

/* Patient boxes laid out like CMS-1500 boxes 1a, 2, 3 and 5: patient on the left, insurance on the right. */
.cms-patient{--rule:var(--cms-rule-red, #e8473f);display:grid;grid-template-columns:2fr 1fr 2fr;grid-template-areas:"b2 b2 b3" "b5 b5 b1a" "city state payer" "zip phone phone";
  border:1px solid var(--rule);background:white;margin-bottom:10px}
.cms-patient.insurance-only{grid-template-columns:1fr 1fr;grid-template-areas:"b1a payer"}
.cms-patient .box{border:1px solid var(--rule);margin:-1px 0 0 -1px;padding:3px 6px 5px;display:flex;flex-direction:column;gap:3px;min-width:0}
.cms-patient .b2{grid-area:b2}.cms-patient .b3{grid-area:b3}.cms-patient .b5{grid-area:b5}.cms-patient .b1a{grid-area:b1a}.cms-patient .city{grid-area:city}
.cms-patient .state{grid-area:state}.cms-patient .zip{grid-area:zip}.cms-patient .phone{grid-area:phone}.cms-patient .payer{grid-area:payer}
.cms-patient .box-label{color:var(--cms-label-red, #e0352c);font:700 9.5px/1.2 system-ui,"Segoe UI",sans-serif;letter-spacing:.2px;margin:0}
.cms-patient .box-label small{font-weight:500;font-size:9px;color:inherit;text-transform:none}
.cms-patient input{margin:0;min-height:30px;padding:3px 8px;font-size:14px;border:1px solid #d5ddd8;border-radius:4px;background:#f7f9f8;width:100%}
.cms-patient .parts{display:flex;gap:6px;align-items:center}.cms-patient .parts input{flex:1 1 0;min-width:0}.cms-patient .parts input.mi{flex:0 0 60px}
.cms-patient .b3 .parts input[type=date]{flex:1 1 150px}
.cms-patient .sex{display:flex;align-items:center;gap:8px;white-space:nowrap}.cms-patient .sex label{display:flex;align-items:center;gap:3px;margin:0;color:var(--cms-label-red, #e0352c);font:600 11px system-ui,sans-serif}
.cms-patient .sex input{width:16px;min-height:0;height:16px;margin:0;accent-color:#333}
.cms-patient .state input{text-transform:uppercase}
.edit-form{display:flex;flex-direction:column;gap:8px}.edit-form > button,.edit-form .row-close{align-self:flex-start}
.edit-form .actions{display:flex;gap:10px;align-items:center}
@media(max-width:700px){.cms-patient{grid-template-columns:1fr 1fr;grid-template-areas:"b2 b2" "b3 b3" "b5 b5" "city state" "zip phone" "b1a b1a" "payer payer"}}
/* Box 3 sex: "SEX" centered above square boxes that show an X, as on the CMS-1500. */
.cms-patient .sex{flex-direction:column;align-items:center;gap:2px}
.cms-patient .sex .box-label{text-align:center}
.cms-patient .sex-options{display:flex;gap:14px}
.cms-patient .sex input[type=radio]{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin:0;border:1px solid var(--rule);border-radius:0;background:white;display:inline-grid;place-content:center;cursor:pointer}
.cms-patient .sex input[type=radio]::before{content:"";font:700 15px/1 system-ui,sans-serif;color:#111}
.cms-patient .sex input[type=radio]:checked::before{content:"\2715"}
.cms-patient .sex input[type=radio]:focus-visible{outline:2px solid #3c9a82;outline-offset:1px}

/* Encounter: read-only patient boxes, same layout as the Patients screen. */
.patient-view{padding:12px 14px}.cms-patient.view{margin:0}
.cms-patient .value{display:block;min-height:24px;padding:2px 2px;font:600 14px/1.5 ui-monospace,Consolas,"Courier New",monospace;color:#111;overflow-wrap:anywhere}
.cms-patient .parts .value{flex:1 1 0}.cms-patient .parts .value.mi{flex:0 0 40px}
.cms-patient .tick-label{display:flex;align-items:center;gap:3px;color:var(--cms-label-red, #e0352c);font:600 11px system-ui,sans-serif}
.cms-patient .tick{display:inline-grid;place-content:center;width:18px;height:18px;border:1px solid var(--rule);background:white;color:#111;font:700 15px/1 system-ui,sans-serif}
/* Box positions as on the CMS-1500: 1 (payer) and 1a on top; 2 and 3 below; 5, city/state and
   ZIP/telephone down the left; the right side (boxes 6-8, not stored) stays a blank box. */
.cms-patient{grid-template-columns:1fr .8fr .5fr 1.7fr;
  grid-template-areas:"payer payer payer b1a" "b2 b2 b2 b3" "b5 b5 b5 rest" "city city state rest" "zip phone phone rest"}
.cms-patient .rest{grid-area:rest;background:#fffdfc}
.cms-patient.insurance-only{grid-template-columns:1fr 1fr;grid-template-areas:"payer b1a"}
@media(max-width:700px){.cms-patient{grid-template-columns:1fr 1fr;grid-template-areas:"payer payer" "b1a b1a" "b2 b2" "b3 b3" "b5 b5" "city state" "zip phone"}.cms-patient .rest{display:none}}
/* Box 21 ICD-10 look-up list. */
.dx-options{position:absolute;z-index:40;max-height:300px;overflow:auto;margin:0;padding:4px 0;list-style:none;background:white;border:1px solid #9aa9a1;border-radius:6px;box-shadow:0 8px 20px #1d302825;font:13px system-ui,"Segoe UI",sans-serif}
.dx-options li{padding:6px 12px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:560px}
.dx-options li strong{font-family:ui-monospace,Consolas,monospace;margin-right:6px}
.dx-options li:hover,.dx-options li.active{background:#2f6fd0;color:white}

/* Encounter without the side panel: full-width form; biller actions beside 28. TOTAL CHARGE. */
.claim-layout{grid-template-columns:1fr}
.cms24 tfoot td.bill-tools{text-align:left;padding:6px 8px;white-space:nowrap}
.cms24 tfoot td.bill-tools form{display:inline}.cms24 tfoot td.bill-tools button{min-height:30px;padding:4px 10px;font-size:12px;margin-right:6px}
.clarify-row{margin-top:8px;padding:8px 10px;border-radius:8px;background:#f2f7f3;border:1px solid #d6e6dc}
.clarify-row .row-book{justify-content:flex-start;align-items:flex-end}.clarify-row label.wide{flex:1 1 360px}.clarify-row textarea{margin:0;min-height:0}
.billing-section{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:white;display:flex;flex-direction:column;gap:8px}
.billing-summary{display:flex;flex-wrap:wrap;gap:8px 28px}.billing-summary .metric{display:flex;gap:8px;align-items:baseline;border:0;padding:0;font-size:13px}.billing-summary .metric strong{font-size:17px}
.payment-form{justify-content:flex-start}.payment-form label.wide{flex:0 1 280px}
table.payments{border-collapse:collapse;font-size:13px}table.payments td{padding:3px 16px 3px 0}table.payments td.amount{font-weight:650;text-align:right}
.patient-banner .attested{margin-top:2px;font-size:12px}
/* Read-only views: the hidden date picker in each 24A cell must stay invisible. */
fieldset:is(:disabled,.readonly) .cms24 .dos-input,.cms24 .dos-input{opacity:0 !important;-webkit-text-fill-color:transparent !important;color:transparent !important}
/* Read-only clinical fields (biller, approved): no caret or focus ring on values. */
fieldset.readonly input,fieldset.readonly textarea{cursor:default}fieldset.readonly input:focus,fieldset.readonly textarea:focus{outline:none;background-color:transparent}
.services-section ~ .clarify-row,#clinical-form ~ .clarify-row{margin-left:14px;margin-right:14px}#clinical-form ~ .billing-section{margin:12px 14px 0}

/* Encounter header: one slim line; patient details live in the boxes below. */
.patient-banner.slim{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0 0 10px;font-size:13px}
.patient-banner.slim .back{margin:0 auto 0 0;font-size:13px}.patient-banner.slim .muted{margin:0}
/* One compact clarification block: yellow while a question is open. */
.clarifications{margin:0 0 10px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:white;font-size:13px}
.clarifications.open-question{background:#faf2df;border-color:#e9dab3}
.clarifications h2{font-size:13px;margin:0 0 4px;letter-spacing:0}
.clarifications article{padding:4px 0;border-top:1px dashed #e3d6b5}.clarifications article:first-of-type{border-top:0}
.clarifications p{margin:2px 0}.clarifications .who{color:var(--muted)}
.inline-reply{display:flex;gap:8px;align-items:flex-start;margin-top:4px}.inline-reply textarea{margin:0;min-height:34px;flex:1 1 auto;padding:6px 8px;font-size:13px}
.inline-reply button{min-height:34px;padding:4px 12px;font-size:13px;white-space:nowrap}

/* Admin staff list: one row per person, roles as removable chips, add a role from the picker. */
.staff-row{align-items:center;gap:12px;padding:10px 0}.staff-who .error{margin:4px 0 0;padding:6px 10px;font-size:12px}
.staff-roles{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}
.role-chip{display:inline-flex;align-items:center;border-radius:20px;background:#e9f0e8}.role-chip .role-pill{padding-right:2px}
.role-chip .chip-x{min-height:24px;min-width:24px;padding:0 8px 0 4px;border:0;background:transparent;color:#5b7a6c;font-size:15px;line-height:1;border-radius:0 20px 20px 0}.role-chip .chip-x:hover{color:var(--red);background:transparent}
.role-add{display:inline-flex;gap:4px;align-items:center}.role-add select{margin:0;min-height:30px;width:auto;padding:3px 6px;font-size:12px}.role-add button{min-height:30px;padding:3px 10px;font-size:12px}

/* Staff panel: add form, one-time password, per-person menu (reset password, deactivate), inactive logins. */
.panel#staff .panel-heading{margin-bottom:8px}.add-staff-toggle{min-height:34px;padding:4px 12px;font-size:13px}
.add-staff-row{margin:0 0 10px;padding:8px 10px;border-radius:8px;background:#f2f7f3;border:1px solid #d6e6dc}
.add-staff-row .row-book{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.add-staff-row label{margin:0;flex:1 1 180px}.add-staff-row label:nth-child(3){flex:0 1 150px}
.add-staff-row input,.add-staff-row select{min-height:36px;padding:6px 8px;margin-top:3px}.add-staff-row button{min-height:36px;padding:4px 12px}.add-staff-row .error{margin:0 0 8px;padding:6px 10px;font-size:13px}
.issued{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0;padding:8px 12px;border-radius:7px;background:#fdf0d5;border:1px solid #e0b85c;border-left:5px solid #c88a12;font-size:13px}
.issued code{font:700 15px/1.4 ui-monospace,Consolas,monospace;background:white;border:1px solid #e0b85c;padding:2px 8px;border-radius:4px;user-select:all}.issued .copy{min-height:30px;padding:0 14px;font-size:13px}
.issued .copy.done{background:#2e7d4f;border-color:#2e7d4f}.issued-warning{color:#7a4a00;font-weight:700}
.staff-more{position:relative}.staff-more summary{min-height:30px;min-width:30px;justify-content:center;border-radius:6px;color:var(--muted);list-style:none;font-size:18px}.staff-more summary::-webkit-details-marker{display:none}.staff-more summary:hover{background:#ecf5ef}
.staff-menu{position:absolute;right:0;top:100%;z-index:5;display:flex;flex-direction:column;min-width:160px;padding:4px;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px #23382b1a}
.staff-menu button{width:100%;justify-content:flex-start;min-height:34px;padding:4px 10px;font-size:13px;font-weight:500;color:var(--ink)}.staff-menu .danger{color:var(--red)}
.former-staff{margin-top:6px;border-top:1px solid var(--line)}.former-staff summary{min-height:36px;font-size:13px;color:var(--muted)}.former-staff .staff-row{color:var(--muted)}.former-staff button{min-height:30px;padding:3px 10px;font-size:12px}

/* Staff panel as one grid: the add line and each person line share the Name / Email / Roles columns. */
.staff-heading{display:flex;align-items:center;gap:10px;margin-bottom:8px}.staff-heading h2{margin:0}
.staff-heading .add-staff-toggle{min-height:32px;padding:3px 12px;font-size:13px;margin-left:4px}
#staff .staff-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.6fr) 120px;gap:6px 12px;align-items:center}
#staff .staff-head{padding:0 0 4px;font-size:11px;font-weight:700;letter-spacing:.4px;color:var(--muted);text-transform:uppercase}
#staff .staff-row{padding:8px 0;border-top:1px solid var(--line);justify-content:normal}
#staff .staff-name{font-weight:650;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#staff .staff-email{color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#staff .staff-roles{justify-content:flex-start}#staff .staff-more{justify-self:end}
#staff .span-all{grid-column:1/-1;margin:0}#staff .staff-row > .error{padding:6px 10px;font-size:13px}
#staff .staff-add{padding:8px 0;border-top:1px solid var(--line)}
#staff .staff-add input,#staff .staff-add select{margin:0;min-height:36px;padding:6px 8px}
#staff .staff-add-buttons{display:flex;gap:4px;justify-content:flex-end}#staff .staff-add-buttons button{min-height:36px;padding:4px 10px;font-size:13px}
#staff .staff-add .error{padding:6px 10px;font-size:13px}
#staff .former-staff .staff-row{color:var(--muted)}#staff .former-staff form{justify-self:end}
@media (max-width:760px){#staff .staff-grid{grid-template-columns:minmax(0,1fr) auto}#staff .staff-head{display:none}
#staff .staff-email{grid-column:1}#staff .staff-roles{grid-column:1/-1}#staff .staff-more{grid-row:1;grid-column:2}
#staff .staff-add input,#staff .staff-add select{grid-column:1/-1}#staff .staff-add-buttons{grid-column:1/-1;justify-content:flex-start}}

/* CMS-1500 boxes 25 and 31-33, read-only, filled from the filing setup. */
.filing-pick{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:13px}.filing-pick label{margin:0;font-weight:650}
.filing-pick select{width:auto;max-width:100%;margin:0;min-height:32px;padding:3px 8px;font-size:13px}
.filing-missing{margin:0 0 8px;padding:6px 10px;border-radius:7px;background:#faf2df;border:1px solid #e9dab3;font-size:13px}
.cms-bottom{--rule:var(--cms-rule-red, #e8473f);display:grid;grid-template-columns:1fr 1.45fr 1.45fr;grid-template-areas:"b25 rest rest" "b31 b32 b33";border:1px solid var(--rule);background:white}
.cms-bottom .box{border:1px solid var(--rule);margin:-1px 0 0 -1px;padding:3px 6px 5px;display:flex;flex-direction:column;gap:2px;min-width:0;font-size:13px}
.cms-bottom .b25{grid-area:b25}.cms-bottom .rest{grid-area:rest;background:#fdfcf8}.cms-bottom .b31{grid-area:b31}.cms-bottom .b32{grid-area:b32}.cms-bottom .b33{grid-area:b33}
.cms-bottom .box-label{color:var(--cms-label-red, #e0352c);font:700 9.5px/1.2 system-ui,"Segoe UI",sans-serif;letter-spacing:.2px;margin:0}.cms-bottom .box-label small{font-weight:500;font-size:9px}
.cms-bottom .value{font-weight:600;min-height:1.2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cms-bottom .sub{font-size:12px}
.cms-bottom .parts{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cms-bottom .ssn-ein{display:flex;gap:10px}.cms-bottom .tick-label{display:flex;align-items:center;gap:3px;color:var(--cms-label-red, #e0352c);font:600 11px system-ui,sans-serif}
.cms-bottom .tick{display:inline-grid;place-items:center;width:14px;height:14px;border:1px solid #333;color:#222;font-size:11px;line-height:1}
.cms-bottom .ab{display:grid;grid-template-columns:1fr 1fr;margin:3px -6px -5px;border-top:1px solid var(--rule)}.cms-bottom .ab > span{padding:2px 6px;min-height:22px}.cms-bottom .ab > span + span{border-left:1px solid var(--rule);background:#f4f4f4}
.cms-bottom .ph{font-weight:600;color:var(--ink);font-size:11px;margin-left:6px}
@media (max-width:760px){.cms-bottom{grid-template-columns:1fr;grid-template-areas:"b25" "b31" "b32" "b33"}.cms-bottom .rest{display:none}}

/* Setup page: filing setups and providers as one-line rows, filterable; providers edit in place. */
.setup .panel{padding:18px 20px}.setup .panel + .panel{margin-top:16px}
.setup-filter{width:auto;flex:0 1 280px;margin:0 0 0 auto;min-height:32px;padding:4px 10px;font-size:13px}
.setup-note{margin:0 0 8px;font-size:13px}
.setup-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.2fr) minmax(0,1.3fr) minmax(0,1.3fr) minmax(0,.8fr) minmax(0,1fr);gap:4px 12px;align-items:center}
.setup-grid.party-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr) minmax(0,.9fr) minmax(0,1.6fr) minmax(0,.6fr) auto}
.setup-head{padding:0 0 4px;font-size:11px;font-weight:700;letter-spacing:.4px;color:var(--muted);text-transform:uppercase}
.setup-row{padding:6px 0;border-top:1px solid var(--line);font-size:13px}.setup-row > span{display:flex;flex-direction:column;min-width:0}
.setup-row > span > *{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setup-row small{font-size:12px}
.setup-row.inactive{color:var(--muted)}.setup-row select{margin:0;min-height:32px;padding:3px 6px;font-size:13px}
.setup-row .row-toggle{min-height:30px;padding:3px 10px;font-size:13px}
.party-edit{padding:8px 10px;margin:0 0 6px;border-radius:8px;background:#f2f7f3;border:1px solid #d6e6dc}.party-edit .error{margin:0 0 8px;padding:6px 10px;font-size:13px}
.party-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.party-form label{margin:0;flex:1 1 160px;font-size:12px}.party-form label.wide{flex:2 1 300px}.party-form label.narrow{flex:0 1 90px}
.party-form input,.party-form select{min-height:34px;padding:5px 8px;margin-top:3px;font-size:14px}.party-buttons{display:flex;gap:4px}.party-buttons button{min-height:34px;padding:4px 12px}
@media (max-width:900px){.setup-grid,.setup-grid.party-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.setup-head{display:none}.setup-filter{flex-basis:100%;margin:6px 0 0}.staff-heading{flex-wrap:wrap}}

/* Setup: switch between Filing setups and Providers; a linked provider row is highlighted. */
.setup-switch{display:flex;gap:6px;margin:0 0 12px}.setup-switch a{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:4px 14px;border-radius:8px;border:1px solid var(--line);background:white;color:var(--ink);font-weight:650;font-size:14px}
.setup-switch a.active{background:var(--teal);border-color:var(--teal);color:white}.setup-switch a.active .count{background:#ffffff30;color:white}.setup-switch .count{font-size:11px;padding:2px 8px;min-width:0}
.setup-row a{color:inherit}.setup-row a:hover{color:var(--teal);text-decoration:underline}
.setup-row:target{background:#fff7d6;box-shadow:0 0 0 6px #fff7d6}

/* Boxes 25 and 31-33 as printed on the CMS-1500 (02/12): 25 across the form, then 31 | 32 | 33. */
.cms-bottom{grid-template-columns:1fr 1.05fr 1.3fr;grid-template-areas:"b25 b25 b25" "b31 b32 b33"}
.cms-bottom .box{padding:4px 8px 6px;gap:1px}
.cms-bottom .b25{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:40px;padding-right:18%}
.cms-bottom .b25 .box-label{grid-column:1}.cms-bottom .b25 .value{grid-column:1}
.cms-bottom .ssn-ein{grid-column:2;grid-row:1 / span 2;display:flex;gap:28px;align-items:flex-end}
.cms-bottom .tick-label{flex-direction:column;gap:3px;font-size:11px}
.cms-bottom .tick{width:15px;height:15px;border-color:#9a9a9a;background:#f3f3f3}
.cms-bottom .value{font:500 15px/1.35 system-ui,"Segoe UI",sans-serif;letter-spacing:.2px;white-space:normal}
.cms-bottom .b31 .value{margin-top:6px}
.cms-bottom .npi-a{margin:auto -8px -6px;padding:3px 8px;border-top:1px solid var(--rule);font-size:14px;display:flex;align-items:baseline;gap:6px;min-height:26px}
.cms-bottom .npi-a > span:last-child{font-size:14px;letter-spacing:.3px}
.cms-bottom .b33 > .box-label{display:flex;align-items:baseline;gap:10px}.cms-bottom .ph{font:500 14px system-ui,sans-serif;color:var(--ink);margin-left:0}
.cms24 td.npi-j{font-size:12px;white-space:nowrap;padding:0 6px;letter-spacing:.3px}
@media (max-width:760px){.cms-bottom{grid-template-areas:"b25" "b31" "b32" "b33"}.cms-bottom .b25{padding-right:8px}}

/* Setup: the boxes preview under a setup line, and the provider form ruled like the CMS-1500. */
.setup-actions{display:flex !important;flex-direction:row !important;align-items:center;gap:4px}.setup-actions form{flex:1 1 auto;min-width:0}
.setup-actions .row-toggle{min-height:32px;padding:3px 8px;font-size:12px}
.setup-boxes{padding:6px 0 10px}
.party-edit{background:#fbfaf6}
.cms-party{--rule:var(--cms-rule-red, #e8473f);display:grid;grid-template-columns:2fr 1fr 1.2fr 1fr;grid-template-areas:"name name name name" "street street street phone" "city city state zip" "npi other license license" "tax tax tax actions";
  border:1px solid var(--rule);background:white}
.cms-party .box{border:1px solid var(--rule);margin:-1px 0 0 -1px;padding:3px 6px 5px;display:flex;flex-direction:column;gap:3px;min-width:0;font-size:13px;font-weight:400}
.cms-party .name{grid-area:name}.cms-party .street{grid-area:street}.cms-party .phone{grid-area:phone}.cms-party .city{grid-area:city}.cms-party .state{grid-area:state}.cms-party .zip{grid-area:zip}
.cms-party .npi{grid-area:npi}.cms-party .other{grid-area:other}.cms-party .license{grid-area:license}.cms-party .tax{grid-area:tax}.cms-party .actions{grid-area:actions;flex-direction:row;align-items:center;justify-content:flex-end;gap:4px}
.cms-party .box-label{color:var(--cms-label-red, #e0352c);font:700 9.5px/1.2 system-ui,"Segoe UI",sans-serif;letter-spacing:.2px;margin:0}.cms-party .box-label small{font-weight:500;font-size:9px;color:inherit}
.cms-party input{margin:0;min-height:30px;padding:3px 8px;font-size:14px;border:1px solid #d5ddd8;border-radius:4px;background:#f7f9f8;width:100%}
.cms-party .parts{display:flex;gap:6px;align-items:center}.cms-party .parts input{flex:1 1 0;min-width:0}.cms-party .parts input.mi{flex:0 0 56px}.cms-party .parts input.cred{flex:0 0 90px}
.cms-party .state input{text-transform:uppercase}
.cms-party .tax .parts input{flex:0 1 220px}.cms-party .ssn-ein{display:flex;gap:22px;margin-left:auto;padding-right:12%}
.cms-party .ssn-ein label{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0;color:var(--cms-label-red, #e0352c);font:600 11px system-ui,sans-serif}
.cms-party .ssn-ein input{width:16px;height:16px;min-height:0;margin:0;accent-color:#333}
.cms-party .actions button{min-height:34px;padding:4px 14px}
@media (max-width:760px){.cms-party{grid-template-columns:1fr 1fr;grid-template-areas:"name name" "street street" "phone phone" "city city" "state zip" "npi other" "license license" "tax tax" "actions actions"}}
.cms-party .ssn-ein label,.cms-party .ssn-ein input{flex:none}.cms-party .tax .parts{align-items:flex-end}
/* SSN / EIN: square tick boxes like box 25 on the form (same as the patient's M / F boxes). */
.cms-party .ssn-ein input[type=radio]{appearance:none;-webkit-appearance:none;width:18px;height:18px;min-height:0;padding:0;margin:0;border:1px solid var(--rule);border-radius:0;background:white;display:inline-grid;place-content:center;cursor:pointer;flex:none}
.cms-party .ssn-ein input[type=radio]::before{content:"";font:700 15px/1 system-ui,sans-serif;color:#111}
.cms-party .ssn-ein input[type=radio]:checked::before{content:"\2715"}
.cms-party .ssn-ein input[type=radio]:focus-visible{outline:2px solid #3c9a82;outline-offset:1px}
/* While a setup's boxes are open, its line keeps only the label, clinician and Boxes button: the boxes show the rest. */
.setup-row:has(+ .setup-boxes:not([hidden])) > .sum{visibility:hidden}
@media (max-width:900px){.setup-row:has(+ .setup-boxes:not([hidden])) > .sum{display:none}}
.setup-actions .row-toggle[aria-expanded="true"]{background:var(--teal);border-color:var(--teal);color:white}

/* Filing setups: each setup is its name and clinician picker above its CMS-1500 boxes; provider names link to Providers. */
.setup-item{padding:12px 0 14px;border-top:1px solid var(--line)}.setup-item.inactive{opacity:.65}
.setup-item-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 6px}.setup-item-head strong{font-size:15px}
.setup-link{display:flex;align-items:center;gap:8px;margin-left:auto}.setup-link label{margin:0;font-size:12px;font-weight:600;color:var(--muted)}
.setup-link select{width:auto;min-width:200px;margin:0;min-height:32px;padding:3px 8px;font-size:13px}
.setup-item:target{background:#fff7d6;box-shadow:0 0 0 8px #fff7d6}
.cms-bottom a.value{color:var(--ink);text-decoration:none;border-bottom:1px dotted #9bb5ac}.cms-bottom a.value:hover{color:var(--teal);border-bottom-color:var(--teal)}
.cms-bottom a.value{align-self:flex-start;justify-self:start;max-width:100%}

/* Boxes 25, 31-33: smaller values as stored (not forced to capitals); on Setup the blue title words link to the provider. */
.cms-bottom .value{font:400 13.5px/1.35 system-ui,"Segoe UI",sans-serif;letter-spacing:.1px}
.cms-bottom .b31 .value{margin-top:4px}.cms-bottom .npi-a,.cms-bottom .npi-a > span:last-child{font-size:13px}.cms-bottom .ph{font-size:13px}
.cms-bottom .box-link{color:#2f6db5;text-decoration:none}.cms-bottom .box-link:hover{text-decoration:underline}
.cms-bottom .value{font-size:12px;line-height:1.3}.cms-bottom .npi-a,.cms-bottom .npi-a > span:last-child,.cms-bottom .ph{font-size:12px}

/* Provider form shaped like the CMS-1500 boxes this provider fills (25, 31 + 24J, 32, 33); other fields below. */
.cms-edit{--rule:var(--cms-rule-red, #e8473f);display:flex;flex-direction:column;border:1px solid var(--rule);background:white}
.cms-edit .box{border:1px solid var(--rule);margin:-1px 0 0 -1px;padding:4px 8px 6px;display:flex;flex-direction:column;gap:4px;min-width:0;font-size:13px;font-weight:400}
.cms-edit-row{display:flex}.cms-edit-row > .box{flex:1 1 0}.cms-edit-row > .b31{flex:1 1 0}.cms-edit-row > .b33{flex:1.25 1 0}.cms-edit-row:empty{display:none}
.cms-edit .box-label{color:var(--cms-label-red, #e0352c);font:700 9.5px/1.2 system-ui,"Segoe UI",sans-serif;letter-spacing:.2px;margin:0}.cms-edit .box-label small{font-weight:500;font-size:9px;color:inherit}
.cms-edit input{margin:0;min-height:28px;padding:2px 7px;font-size:13px;border:1px solid #d5ddd8;border-radius:4px;background:#f7f9f8;width:100%}
.cms-edit .parts{display:flex;gap:5px}.cms-edit .parts input{flex:1 1 0;min-width:0}.cms-edit .parts .mi{flex:0 0 46px}.cms-edit .parts .cred{flex:0 0 70px}.cms-edit .parts .st{flex:0 0 52px;text-transform:uppercase}.cms-edit .parts .zip{flex:0 0 100px}
.cms-edit .ab{display:grid;grid-template-columns:1fr 1fr;margin:2px -8px -6px;border-top:1px solid var(--rule)}.cms-edit .ab:empty{display:none}
.cms-edit .ab label{display:flex;align-items:center;gap:6px;margin:0;padding:3px 8px;font-weight:400}.cms-edit .ab label + label{border-left:1px solid var(--rule);background:#f4f4f4}
.cms-edit .sub-box{display:flex;flex-direction:column;gap:3px;margin:2px -8px 0;padding:4px 8px 0;border-top:1px solid var(--rule);font-weight:400}
.cms-edit .b33-title{display:flex;align-items:center;gap:8px}.cms-edit .b33-title .ph{flex:0 1 160px;min-height:24px;font-size:12.5px}
.cms-edit .tax-line{display:flex;align-items:flex-end;gap:12px}.cms-edit .tax-line > input{flex:0 1 220px}
.cms-edit .ssn-ein{display:flex;gap:22px;margin-left:auto;padding-right:16%}.cms-edit .ssn-ein label{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0;color:var(--cms-label-red, #e0352c);font:600 11px system-ui,sans-serif}
.cms-edit .ssn-ein input[type=radio]{appearance:none;-webkit-appearance:none;width:18px;height:18px;min-height:0;padding:0;margin:0;border:1px solid var(--rule);border-radius:0;background:white;display:inline-grid;place-content:center;cursor:pointer;flex:none}
.cms-edit .ssn-ein input[type=radio]::before{content:"";font:700 15px/1 system-ui,sans-serif;color:#111}.cms-edit .ssn-ein input[type=radio]:checked::before{content:"\2715"}
.cms-edit .payee{display:flex;flex-direction:column;gap:3px;margin:4px -8px 0;padding:4px 8px 0;border-top:1px dashed var(--rule)}
.cms-edit .other{background:#fbfaf6}.cms-edit .other .box-label{color:#8a6f6a}
.cms-edit .other-fields{display:flex;flex-wrap:wrap;gap:6px 10px}.cms-edit .other-fields > label{display:flex;flex-direction:column;gap:2px;margin:0;flex:1 1 150px;font-size:11px;font-weight:600;color:var(--muted)}.cms-edit .other-fields > label.wide{flex:2 1 320px}
.cms-edit .edit-actions{display:flex;justify-content:flex-end;gap:4px;padding:6px 8px}.cms-edit .edit-actions button{min-height:34px;padding:4px 14px}
@media (max-width:760px){.cms-edit-row{flex-direction:column}}
.cms-edit details.other summary{cursor:pointer;min-height:0;display:list-item;color:#8a6f6a}.cms-edit details.other[open] summary{margin-bottom:4px}

/* Provider form at the CMS-1500 positions: 24 | 24J, then 25 across, then 31 | 32 | 33. Boxes this provider
   does not fill stay in place, greyed. Fields the form does not print sit below, outside the red form. */
.cms-edit{display:grid;grid-template-columns:1fr 1.05fr 1.3fr;grid-template-areas:"b24 b24 b24j" "b25 b25 b25" "b31 b32 b33";flex-direction:unset}
.cms-edit .b24{grid-area:b24;min-height:46px}.cms-edit .b24j{grid-area:b24j}.cms-edit .b25{grid-area:b25}.cms-edit .b31{grid-area:b31}.cms-edit .b32{grid-area:b32}.cms-edit .b33{grid-area:b33}
.cms-edit .b31,.cms-edit .b32,.cms-edit .b33{min-height:118px}
.cms-edit .b24j .box-label:first-child{text-align:center}.cms-edit .npi-line{display:flex;align-items:center;gap:6px}
.cms-edit .unused{background:#f6f5f2}.cms-edit .unused .box-label{color:#d9a19d}
.cms-edit .b31 .parts{flex-wrap:wrap}.cms-edit .b31 .parts input{flex:1 1 110px}.cms-edit .b31 .parts .mi{flex:0 0 46px}.cms-edit .b31 .parts .cred{flex:0 0 64px}
.party-cms-form .not-printed{margin:10px 0 0;padding:0}.party-cms-form .np-title{font-size:12px;font-weight:700;color:var(--muted);cursor:pointer}.party-cms-form .np-title small{font-weight:400}
.party-cms-form summary.np-title{display:list-item;min-height:0}.party-cms-form .not-printed[open] .np-title{margin-bottom:6px}
.party-cms-form .payee{display:flex;flex-direction:column;gap:4px}.party-cms-form .payee input,.party-cms-form .not-printed input{margin:0;min-height:30px;padding:3px 8px;font-size:13px}
.party-cms-form .payee .parts,.party-cms-form .not-printed .parts{display:flex;gap:5px}.party-cms-form .parts .mi{flex:0 0 46px}.party-cms-form .parts .cred{flex:0 0 70px}.party-cms-form .parts .st{flex:0 0 52px}.party-cms-form .parts .zip{flex:0 0 100px}
.party-cms-form .other-fields{display:flex;flex-wrap:wrap;gap:6px 10px}.party-cms-form .other-fields > label{display:flex;flex-direction:column;gap:2px;margin:0;flex:1 1 150px;font-size:11px;font-weight:600;color:var(--muted)}.party-cms-form .other-fields > label.wide{flex:2 1 320px}
.party-cms-form .not-printed .tax-line{display:flex;align-items:flex-end;gap:12px}.party-cms-form .not-printed .ssn-ein{display:flex;gap:16px}
.party-cms-form .not-printed .ssn-ein label{display:flex;flex-direction:column;align-items:center;margin:0;font-size:11px}.party-cms-form .not-printed .ssn-ein input{width:16px;height:16px;min-height:0;flex:none}
.party-cms-form .edit-actions{display:flex;justify-content:flex-end;gap:4px;padding:8px 0 0}.party-cms-form .edit-actions button{min-height:34px;padding:4px 14px}
@media (max-width:620px){.cms-edit{grid-template-columns:1fr;grid-template-areas:"b24j" "b25" "b31" "b32" "b33"}.cms-edit .b24{display:none}.cms-edit .unused{display:none}}
.cms-edit .parts{flex-wrap:wrap}.cms-edit .b32 .parts input[name=city],.cms-edit .b33 .parts input[name=city]{flex:1 1 140px}
.cms-edit .ab label input{min-width:0}
/* Providers: people (doctors) and organizations (practices, facilities) listed separately. */
.party-group + .party-group{margin-top:18px}.group-title{display:flex;align-items:center;gap:8px;margin:6px 0 6px;font-size:16px}.group-title .count{font-size:11px;padding:2px 8px;min-width:0}
.empty-group{margin:4px 0;font-size:13px}
.setup-tools{display:flex;margin:0 0 6px}.setup-tools .setup-filter{flex:0 1 360px;margin:0}
/* People / Organizations: one line per provider; only phones stack the columns. */
.setup-grid.party-grid{grid-template-columns:minmax(0,1.6fr) 100px minmax(0,1fr) minmax(0,1.8fr) 72px 48px}
.setup-row > span.one-line{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:900px){.setup-grid.party-grid{grid-template-columns:minmax(0,1.6fr) 100px minmax(0,1fr) minmax(0,1.8fr) 72px 48px}#providers .setup-head{display:grid}}
@media (max-width:640px){.setup-grid.party-grid{grid-template-columns:minmax(0,1fr) auto}#providers .setup-head{display:none}}

/* Setup lists: a +/- toggle opens each line (like the old Practices list); Expand all / Collapse all;
   inactive setups and providers stay hidden until "Show inactives". */
.list-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 6px}.list-tools .setup-filter{flex:0 1 340px;margin:0}
.list-tools button{min-height:30px;padding:2px 8px;font-size:12.5px;font-weight:600}.expand-tools{display:flex;gap:2px;margin-left:auto}
.show-inactives[aria-pressed="true"]{background:#e9f0e8}
/* Inactive lines sit under their list's "Inactive (n)", which opens them (2026-10-19: no Show inactives button). */
.expander{width:22px;height:22px;min-height:0;min-width:0;padding:0;border:1.5px solid var(--teal);border-radius:50%;background:white;color:var(--teal);font:700 15px/1 system-ui,sans-serif;display:inline-grid;place-items:center;flex:none;justify-self:start}
.expander::before{content:"+"}.expander[aria-expanded="true"]::before{content:"\2212"}.expander:hover{background:#ecf5ef}
.setup-item{padding:6px 0}.setup-item-head{margin:0;gap:6px 10px}.setup-item-head strong{font-size:14px}.setup-item .setup-boxes{padding:6px 0 4px 32px}
.setup-grid.party-grid{grid-template-columns:28px minmax(0,1.6fr) 100px minmax(0,1fr) minmax(0,1.8fr) 72px}
@media (max-width:900px){.setup-grid.party-grid{grid-template-columns:28px minmax(0,1.6fr) 100px minmax(0,1fr) minmax(0,1.8fr) 72px}}
@media (max-width:640px){.setup-grid.party-grid{grid-template-columns:28px minmax(0,1fr) auto}.setup-item .setup-boxes{padding-left:0}}
.setup-row.inactive,.setup-item.inactive{color:var(--muted)}
.setup-row .expander,.setup-item .expander{width:22px;height:22px;min-height:0;padding:0;font-size:15px}
/* Inactive setups and providers (shown only with "Show inactives"): faded, struck-through name, grey band, tag. */
.setup-row.inactive,.setup-item.inactive{background:#f1f1ee;color:#8f9894}
.setup-row.inactive strong,.setup-item.inactive .setup-item-head strong{font-weight:500;color:#8f9894;text-decoration:line-through;text-decoration-color:#b9c0bd}
.setup-row.inactive .expander,.setup-item.inactive .expander{border-color:#b9c0bd;color:#8f9894}
.setup-row > span.name-cell{flex-direction:row;align-items:center;gap:8px}
.inactive-tag{flex:none;padding:1px 7px;border-radius:10px;background:#dcdedb;color:#5f6763;font-size:10.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;text-decoration:none}
/* Delete on inactive lines only (refused while anything still uses the item). */
.delete-form{display:inline-flex;margin:0}.danger-link{min-height:24px;padding:1px 8px;font-size:12px;font-weight:650;color:var(--red);border:1px solid #e3c4c4;background:white}.danger-link:hover{background:#fff0ee}
.setup-row > span.used-cell{flex-direction:row;align-items:center;gap:6px;flex-wrap:wrap}.keep-note{font-size:11.5px}
.setup-grid.party-grid{grid-template-columns:28px minmax(0,1.6fr) 100px minmax(0,1fr) minmax(0,1.6fr) 130px}
@media (max-width:900px){.setup-grid.party-grid{grid-template-columns:28px minmax(0,1.6fr) 100px minmax(0,1fr) minmax(0,1.6fr) 130px}}
@media (max-width:640px){.setup-grid.party-grid{grid-template-columns:28px minmax(0,1fr) auto}}
/* Name shortens with "…"; the Delete button keeps its full width. */
.setup-row > span.name-cell > strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.setup-row > span.name-cell > .delete-form,.setup-item-head .delete-form{flex:none;overflow:visible}

/* Setup: "+ Add" forms. A new setup picks its four providers; the boxes below fill in as they are picked. */
.list-tools .add-new{min-height:30px;padding:2px 12px;font-size:13px;font-weight:700;background:var(--teal);border-color:var(--teal);color:white}.list-tools .add-new:hover{background:#0b554b}
.add-row{margin:4px 0 10px;padding:10px 12px;border-radius:8px;background:#f2f7f3;border:1px solid #d6e6dc}.add-row > .error{margin:0 0 8px;padding:6px 10px;font-size:13px}
.add-setup-form{display:flex;flex-direction:column;gap:8px}
.add-fields,.add-picks{display:flex;flex-wrap:wrap;gap:8px}.add-fields label,.add-picks label{display:flex;flex-direction:column;gap:3px;margin:0;flex:1 1 180px;font-size:12px;font-weight:650}
.add-fields label.wide{flex:2 1 300px}.add-fields label small,.add-picks label small{font-weight:400;color:var(--muted)}
.add-fields input,.add-fields select,.add-picks select{margin:0;min-height:34px;padding:4px 8px;font-size:13px}
.add-preview{opacity:.95}.add-preview .cms-bottom .value:empty::before{content:"\00a0"}
.add-row{display:block}

/* A refused field: red outline, its message right under it; cleared as soon as it is edited. */
input.invalid,select.invalid,textarea.invalid{border-color:#d93b30 !important;background:#fff4f3 !important;box-shadow:0 0 0 3px #e8473f33}
.field-error{display:block;margin:3px 0 0;color:#b3261e;font:600 12px/1.3 system-ui,sans-serif}
/* The CMS box (or form field group) holding a refused field stands out in yellow with a thick red edge. */
.cms-edit .box.has-error,.has-error{background:#fff6cc !important;outline:2px solid #d93b30;outline-offset:-2px;position:relative;z-index:1}
.cms-edit .npi-line + .field-error{margin-left:30px}
/* "Show inactives" is a plain teal link-style button; once pressed ("Hide inactives") it turns solid grey, matching the grey inactive lines. */
.show-inactives{color:var(--teal);background:white;border:1px solid #b7cdc4}
.show-inactives[aria-pressed="true"]{background:#6b7470;border-color:#6b7470;color:white}.show-inactives[aria-pressed="true"]:hover{background:#565e5a}
/* Add setup: the pickers sit at the top of boxes 25, 31, 32 and 33. */
.add-preview .box.with-pick > select{margin:0 0 4px;min-height:30px;padding:2px 6px;font-size:12.5px;width:100%;border:1px solid #9bb5ac;border-radius:4px;background:#f7fbf9}
.add-preview .b25.with-pick{grid-template-rows:auto auto auto}.add-preview .b25.with-pick > select{grid-column:1;max-width:420px}
.add-preview .b25.with-pick .ssn-ein{grid-row:2 / span 2}
/* Filing setups: when each last changed, and a Most recent / Name sort switch. */
.setup-item-head time.changed{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}.setup-item-head time.changed + .setup-link{margin-left:12px}
.sort-switch{display:inline-flex;align-items:center;gap:0;border:1px solid #b7cdc4;border-radius:8px;overflow:hidden;font-size:12.5px}
.sort-switch > span{padding:0 8px;color:var(--muted);font-weight:600}
.sort-switch button{min-height:28px;padding:2px 10px;border:0;border-left:1px solid #d6e3dc;border-radius:0;font-size:12.5px;font-weight:600}
.sort-switch button[aria-pressed="true"]{background:var(--teal);color:white}
/* Expand all / Collapse all at the right end of the Setup tab row. */
.setup-switch{align-items:center;flex-wrap:wrap}.setup-switch .expand-tools{margin-left:auto;display:flex;gap:2px}
.setup-switch .expand-tools button{min-height:30px;padding:2px 8px;font-size:12.5px;font-weight:600;border:0;background:transparent;color:var(--teal)}.setup-switch .expand-tools button:hover{background:#ecf5ef}
/* A setup line stays one line: a long name shortens with "…" (full name on hover); time and clinician keep their place. */
.setup-item-head{flex-wrap:nowrap}.setup-item-head > strong{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.setup-item-head time.changed,.setup-item-head .setup-link,.setup-item-head .delete-form{flex:none}
@media (max-width:640px){.setup-item-head{flex-wrap:wrap}.setup-item-head > strong{white-space:normal}}

/* People / Organizations: a Changed column at the end of each line. */
.setup-grid.party-grid{grid-template-columns:28px minmax(0,1.6fr) 100px minmax(0,1fr) minmax(0,1.5fr) 72px 150px}
@media (max-width:900px){.setup-grid.party-grid{grid-template-columns:28px minmax(0,1.6fr) 100px minmax(0,1fr) minmax(0,1.5fr) 72px 150px}}
@media (max-width:640px){.setup-grid.party-grid{grid-template-columns:28px minmax(0,1fr) auto}.setup-row time.changed{display:none}}
.setup-row time.changed{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Procedure picker: a fixed width under the search box; each option is one line cut with "…" (full text on hover). */
.add-services #procedure-options{left:auto;right:0;width:min(520px,92vw);min-width:0;max-width:min(520px,92vw)}
#procedure-options li{max-width:100%}
@media (max-width:760px){.add-services #procedure-options{left:0;right:0;width:auto;max-width:none}}
#filing-setups .setup-item-head > .name-cell{display:flex;align-items:center;gap:8px;min-width:0}#filing-setups .name-cell > strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#filing-setups .name-cell > *:not(strong){flex:none}

/* Sortable column headings (like a file list): an arrow on the sorted one; click again to reverse. */
.sort-head{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:1px 6px;margin:0 -6px;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;justify-self:start}
.sort-head:hover{background:#eef0f2}.sort-head .arrow{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:12px}
.sort-head.sorted{color:var(--ink)}.sort-head.sorted .arrow{background:transparent;color:#454b52}
/* Every sorted heading shows its direction: up for A to Z, down for Z to A; Changed (newest first) the other way. */
.sort-head.sorted[data-dir="1"] .arrow::before{border-bottom-color:#454b52}
.sort-head.sorted[data-dir="-1"] .arrow::after{border-top-color:#454b52}
.sort-head.sorted[data-sort="recent"][data-dir="1"] .arrow::before{border-bottom-color:#b8bdc3}
.sort-head.sorted[data-sort="recent"][data-dir="1"] .arrow::after{border-top-color:#454b52}
.sort-head.sorted[data-sort="recent"][data-dir="-1"] .arrow::after{border-top-color:#b8bdc3}
.sort-head.sorted[data-sort="recent"][data-dir="-1"] .arrow::before{border-bottom-color:#454b52}
/* Filing setups: one grid for the heading row and every line, so Changed and Clinician login line up. */
#filing-setups .setup-item-head{display:grid;grid-template-columns:22px minmax(0,1fr) 110px 230px;align-items:center;gap:6px 12px}
#filing-setups .setup-item-head > .delete-form{grid-column:2;justify-self:start}
#filing-setups .setup-item-head time.changed{margin:0;justify-self:start}#filing-setups .setup-item-head .setup-link{margin:0}#filing-setups .setup-link select{width:100%;min-width:0}
#filing-setups .setup-cols{padding:4px 0;font-size:11px;font-weight:700;letter-spacing:.4px;color:var(--muted);text-transform:uppercase;border-bottom:1px solid var(--line)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:640px){#filing-setups .setup-item-head{grid-template-columns:22px minmax(0,1fr) auto}#filing-setups .setup-item-head .setup-link{grid-column:2 / -1}#filing-setups .setup-cols .col-label{display:none}}
#filing-setups .setup-item-head > .name-cell{display:flex;align-items:center;gap:8px;min-width:0}#filing-setups .name-cell > strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#filing-setups .name-cell > *:not(strong){flex:none}
/* Compact stacked triangles; highlight only the active sort direction. */
.sort-head .arrow{display:inline-flex;flex-direction:column;justify-content:center;gap:2px;width:14px;height:20px;border-radius:0}
.sort-head.sorted{color:inherit}.sort-head.sorted .arrow{background:transparent;color:#454b52}
.sort-head .arrow::before,.sort-head .arrow::after{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent}
.sort-head .arrow::before{border-bottom:4px solid #b8bdc3}
.sort-head .arrow::after{border-top:4px solid #b8bdc3}

/* CMS-1500 layout review page (synthetic sample, nothing saved): every box in form order, tinted by data source. */
.cms-review{max-width:1180px}.review-intro h1{margin:0 0 4px;font-size:24px}.review-intro p{margin:0 0 8px;font-size:13.5px}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;margin:0 0 12px;padding:0;font-size:12px}.legend li{display:flex;align-items:center;gap:6px}
.legend li::before{content:"";width:14px;height:14px;border:1px solid #e8473f;border-radius:3px;background:var(--tint)}
.src-patient,.src-done{--tint:#ffffff}.src-coverage{--tint:#e8f1fd}.src-case{--tint:#fff1dd}.src-bill{--tint:#e6f4ea}.src-setup{--tint:#efedf7}.src-calc{--tint:#f3f3f3}
.cms-form{--rule:var(--cms-rule-red, #e8473f);border:1px solid var(--rule);background:white;font-size:12.5px}
.cms-title{display:flex;justify-content:space-between;align-items:baseline;padding:6px 8px;border-bottom:2px solid var(--rule);color:var(--cms-label-red, #e0352c);font-weight:800;letter-spacing:.4px}.cms-title small{font-weight:500;font-size:9px}
.cms-form .r{display:grid;grid-template-columns:38fr 24fr 38fr}.cms-form .r-1{grid-template-columns:62fr 38fr}.cms-form .r-12{grid-template-columns:62fr 38fr}
.cms-form .r-25{grid-template-columns:22fr 16fr 13fr 15fr 15fr 19fr}
.cms-form .b{background:var(--tint,white);border:1px solid var(--rule);margin:-1px 0 0 -1px;padding:3px 6px 4px;display:flex;flex-direction:column;gap:2px;min-width:0;position:relative}
.cms-form .b.json::after{content:"JSON";position:absolute;top:2px;right:4px;font:700 8px/1 system-ui;color:#8a6f6a;letter-spacing:.4px;border:1px solid #d9c9c4;border-radius:3px;padding:1px 3px;background:white}
.cms-form .b.nucc{background:repeating-linear-gradient(135deg,#fafafa 0 6px,#f0f0f0 6px 12px)}
.cms-form .bl{color:var(--cms-label-red, #e0352c);font:700 9px/1.2 system-ui,"Segoe UI",sans-serif;letter-spacing:.15px;padding-right:30px}.cms-form .bl small{font-weight:500;font-size:8.5px}
.cms-form .v{font-size:12.5px;min-height:1.2em}.cms-form .v em{font-style:normal;color:var(--muted);font-size:11px}
.cms-form .hint{font-size:10.5px;color:#6b5a55;font-style:italic}
.cms-form .ticks{display:flex;flex-wrap:wrap;gap:4px 10px}.cms-form .tk{display:inline-flex;align-items:center;gap:3px;font-size:11px}
.cms-form .tk::before{content:"";display:inline-grid;place-items:center;width:12px;height:12px;border:1px solid #555;background:white;font:700 10px/1 system-ui}.cms-form .tk.on::before{content:"\2715"}
.cms-form .split{display:flex;justify-content:space-between;align-items:center;gap:8px}
.cms-form .col{display:flex;flex-direction:column}.cms-form .col > .b{flex:1}
.cms-form .sub{padding:0}.cms-form .pair{display:flex;border-top:1px solid var(--rule)}.cms-form .pair:first-child{border-top:0}.cms-form .pair > div{flex:1;padding:3px 6px 4px;display:flex;flex-direction:column;gap:2px}.cms-form .pair > .nb{flex:0 0 42%;border-left:1px solid var(--rule)}
.cms-form .dx{display:grid;grid-template-columns:repeat(4,1fr);gap:2px 10px;font-size:12px}
.cms-form .line24 .line{display:grid;grid-template-columns:2.2fr .6fr .5fr 1.4fr .7fr 1fr .5fr .5fr .5fr 1.4fr;gap:6px;padding:3px 0;border-top:1px dashed #f0b3ae;font-size:12px}
.cms-form .src-setup-text{background:#efedf7}.cms-form .src-bill-text{background:#e6f4ea}
.cms-form .src-done-wrap .cms-bottom{border:0;border-top:1px solid var(--rule)}
.cms-review .src-done-wrap .cms-bottom{grid-template-areas:"b31 b32 b33"}.cms-review .src-done-wrap .b25{display:none}
.legend li::before{width:18px;height:14px;filter:saturate(2.2) brightness(.93)}
.cms-review .src-done-wrap.src-setup .cms-bottom .box{background:var(--tint)}
.cms-review .b.src-patient .bl::after,.cms-review .b.src-coverage .bl::after{content:""}

/* Patient form as the top of the CMS-1500: patient on the left, 3/6/8 in the middle, the insured on the right. */
.cms-patient.cms-top{grid-template-columns:38fr 24fr 38fr;grid-template-areas:
  "top top payer" "b1 b1 b1a" "b2 b3 b4" "b5 b6 b7" "city b8 icity" "zip b8 izip"
  "b9 b10 b11" "b9a b10 b11a" "b9b b10 b11b" "b9c b10 b11c" "b9d b10d b11d"}
.cms-top .top-note{grid-area:top;border-color:transparent transparent var(--rule) transparent;background:transparent}
.cms-top .b1{grid-area:b1}.cms-top .b4{grid-area:b4}.cms-top .b6{grid-area:b6}.cms-top .b7{grid-area:b7}.cms-top .b8{grid-area:b8}
.cms-top .icity{grid-area:icity}.cms-top .izip{grid-area:izip}.cms-top .b9{grid-area:b9}.cms-top .b9a{grid-area:b9a}.cms-top .b9b{grid-area:b9b}.cms-top .b9c{grid-area:b9c}.cms-top .b9d{grid-area:b9d}
.cms-top .b10{grid-area:b10}.cms-top .b10d{grid-area:b10d}.cms-top .b11{grid-area:b11}.cms-top .b11a{grid-area:b11a}.cms-top .b11b{grid-area:b11b}.cms-top .b11c{grid-area:b11c}.cms-top .b11d{grid-area:b11d}
.cms-top .nucc{background:repeating-linear-gradient(135deg,#fafafa 0 6px,#f0f0f0 6px 12px)}
.cms-top .from-case{background:#fbf8f2}.cms-top .from-case .hint,.cms-top .hint{font-size:11px;color:#7a6a64;font-style:italic;font-weight:400}
.cms-top .pair{display:flex;gap:6px}.cms-top .pair > label{display:flex;flex-direction:column;gap:3px;margin:0;flex:1;font-weight:400}.cms-top .pair > label.nb{flex:0 0 42%}
.cms-top .tick-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}
.cms-top .tick-choice{display:inline-flex;align-items:center;gap:4px;margin:0;font:500 12px system-ui,sans-serif;color:var(--ink)}
.cms-top .tick-choice input{appearance:none;-webkit-appearance:none;width:16px;height:16px;min-height:0;padding:0;margin:0;border:1px solid #555;border-radius:0;background:white;display:inline-grid;place-content:center;cursor:pointer}
.cms-top .tick-choice input::before{content:"";font:700 13px/1 system-ui,sans-serif;color:#111}.cms-top .tick-choice input:checked::before{content:"\2715"}
.cms-top .tick-choice input:focus-visible{outline:2px solid #3c9a82;outline-offset:1px}
.cms-top .b11a .parts input[type=date]{flex:0 1 170px}
.cms-top.insurance-only .b2 .value,.cms-top.insurance-only .b3 .value,.cms-top.insurance-only .b5 .value,.cms-top.insurance-only .city .value,.cms-top.insurance-only .zip .value{color:var(--muted);font-size:13px;padding:2px 0}
.cms-top.insurance-only .b2,.cms-top.insurance-only .b3,.cms-top.insurance-only .b5,.cms-top.insurance-only .city,.cms-top.insurance-only .zip{background:#f7f7f4}
@media (max-width:760px){.cms-patient.cms-top{grid-template-columns:1fr;grid-template-areas:"payer" "b1" "b1a" "b2" "b3" "b5" "city" "zip" "b6" "b4" "b7" "icity" "izip" "b11" "b11a" "b11c" "b11d" "b9" "b9a" "b9d"}
  .cms-top .top-note,.cms-top .nucc,.cms-top .from-case{display:none}}
/* New patient: the CMS-shaped form takes the full width above the appointment list. */
.layout:has(> #new-patient){grid-template-columns:1fr}.layout > #new-patient{order:-1}
/* Read-only patient boxes (biller's view): the normal font, muted. */
.cms-top .value{font:500 13.5px/1.4 system-ui,"Segoe UI",sans-serif;color:var(--muted)}
/* Patient form tick boxes: smaller labels close to the printed form, tighter spacing; a wider middle column. */
.cms-patient.cms-top{grid-template-columns:37fr 26fr 37fr}
.cms-top .tick-row{gap:3px 9px}
.cms-top .tick-choice{gap:3px;font:500 11px/1.2 system-ui,"Segoe UI",sans-serif;letter-spacing:0;white-space:nowrap}
.cms-top .tick-choice input{width:14px;height:14px}.cms-top .tick-choice input::before{font-size:11px}
.cms-top .b3 .sex .box-label{font-size:9.5px}
.cms-top .sex label{color:var(--ink);font:500 11px/1.2 system-ui,"Segoe UI",sans-serif}.cms-top .sex input{width:14px;height:14px}

/* Patients: the name opens a read-only panel; Edit turns it into the form, Cancel back. */
.patient-table td.name .name-toggle{all:unset;cursor:pointer;font-weight:700;color:var(--ink);display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.patient-table td.name .name-toggle:hover,.patient-table td.name .name-toggle[aria-expanded="true"]{color:var(--teal);text-decoration:underline}
.patient-table td.name .name-toggle:focus-visible{outline:2px solid #3c9a82;outline-offset:2px;border-radius:3px}
.patient-panel .patient-fields{border:0;margin:0;padding:0;min-width:0}
.patient-panel.viewing .edit-actions,.patient-panel.editing .view-actions{display:none}
.patient-panel .actions{display:flex;gap:6px;align-items:center}
.patient-panel.viewing .cms-top input:not([type=radio]){background:transparent;border-color:transparent;color:var(--ink);padding-left:2px;opacity:1;-webkit-text-fill-color:var(--ink)}
.patient-panel.viewing .cms-top input[type=date]::-webkit-calendar-picker-indicator{display:none}
.patient-panel.viewing .cms-top input::placeholder{color:transparent}
.patient-panel.viewing .cms-top .tick-choice input,.patient-panel.viewing .cms-top .sex input{opacity:1;cursor:default}
.patient-panel.viewing .cms-top .hint{display:none}
.patient-panel.viewing .cms-top input::placeholder{-webkit-text-fill-color:transparent;color:transparent}
.patient-panel.viewing .cms-top input[type=date]:not([value]),.patient-panel.viewing .cms-top input[type=date][value=""]{-webkit-text-fill-color:transparent;color:transparent}
.cms-top .sex input[type=radio]{border-color:#555}

/* Patients: inactive lines (shown with "Show inactive") are grey and struck through; the switch sits by the page counts. */
.patient-table tr.inactive td{color:#8f9894;background:#f4f4f1}.patient-table tr.inactive .name-toggle{color:#8f9894;font-weight:500}
.inactive-switch{font-size:13px;font-weight:600;padding:2px 10px;border:1px solid #b7cdc4;border-radius:7px;background:white;color:var(--teal)}
.inactive-switch.on{background:#6b7470;border-color:#6b7470;color:white}
/* Patient panel: its buttons sit at the top right, over the empty corner above the carrier box. */
.patient-panel{position:relative}
.patient-panel .panel-actions{position:absolute;top:-3px;left:8px;z-index:2;display:flex;gap:6px}
.patient-panel .panel-actions .actions button{min-height:32px;padding:3px 14px;font-size:13px}
@media (max-width:760px){.patient-panel .panel-actions{position:static;margin:0 0 6px}}
/* Box 6 = Self: the insured's boxes (4, 7, 11a) print the patient's details, so they are greyed and locked. */
.cms-top .self-note{display:none;font-size:11px;font-style:italic;color:#7a6a64;font-weight:400}
.cms-top.self .insured-box{background:#f3f3f0;cursor:help}
.cms-top.self .insured-box > .hint{display:none}   /* Self: the insured's boxes show the patient's details, read-only (2026-10-22) */
.cms-top .insured-box > .box-label{order:0}.cms-top .insured-box > .self-note{order:1}
/* Box 7 "same as the patient's address": the insured's address fields hide; the claim prints box 5. */
.cms-top .same-address{display:flex;align-items:center;gap:6px;margin:0;font:500 12px system-ui,"Segoe UI",sans-serif;color:var(--ink)}
.cms-top .same-address input{width:14px;height:14px;min-height:0;margin:0;accent-color:#333}
.cms-top.self .same-address{display:none}
.cms-top.same-address .insured-address,.cms-top.same-address .icity .pair,.cms-top.same-address .izip .pair{display:none}
.cms-top.same-address .icity,.cms-top.same-address .izip{background:#f3f3f0}
/* Lists: alternate lines slightly shaded; the line under the cursor highlighted across its full width. */
.patient-table > tbody > tr.alt > td,.setup-row.alt,.setup-item.alt,.patient-row.alt,.staff-row.alt{background:var(--list-alt)}
.patient-table > tbody > tr:not([id]):hover > td,#providers .setup-row:hover,#filing-setups .setup-item > .setup-item-head:hover,.patient-row:hover,.staff-row:hover{background:var(--list-hover)}
.patient-table > tbody > tr.inactive:hover > td{background:#e6eaee}

/* Setup: box 27 and 12/13 under a setup's boxes; the same pair on Add setup. */
.filing-flags{display:flex;flex-wrap:wrap;gap:6px 22px;margin:6px 0 0;font-size:13px}.filing-flags label{display:flex;align-items:center;gap:6px;margin:0;font-weight:400}
.filing-flags input,.add-fields .flag input{width:15px;height:15px;min-height:0;margin:0;accent-color:#333}
.add-fields .flag .flag-checks{display:flex;flex-wrap:wrap;gap:4px 14px;min-height:34px;align-items:center;font-weight:400}.add-fields .flag .flag-checks > span{display:flex;align-items:center;gap:5px}

/* Patient cases: a list under the patient's form; each case opens a form shaped like boxes 10, 11b and 14-18. */
.patient-cases{margin:12px 0 4px;padding:10px 0 0;border-top:1px solid var(--line)}
.cases-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 6px}.cases-head h3{display:flex;align-items:center;gap:6px;margin:0;font-size:15px}
.cases-head .add-new{min-height:30px;padding:2px 12px;font-size:13px;font-weight:700;background:var(--teal);border-color:var(--teal);color:white}.cases-head small{font-size:12px}
.case-line{display:flex;align-items:center;gap:10px;padding:5px 0;border-top:1px solid var(--line);font-size:13.5px}.case-line.closed{color:var(--muted)}.case-line.closed strong{text-decoration:line-through;font-weight:500}
.case-line .expander{width:22px;height:22px;min-height:0;padding:0;font-size:15px}
.case-row{padding:6px 0 10px}.patient-cases .none{margin:4px 0;font-size:13px}
.case-form .case-head{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin:0 0 8px}.case-form .case-head label{display:flex;flex-direction:column;gap:3px;margin:0;font-size:12px;font-weight:650;flex:0 1 200px}
.case-form .case-head label.wide{flex:2 1 320px}.case-form .case-head label small{font-weight:400;color:var(--muted)}.case-form .case-head input,.case-form .case-head select{margin:0;min-height:34px;padding:4px 8px;font-size:13px}
.case-form .case-head label.closed{flex-direction:row;align-items:center;gap:6px;flex:0 0 auto;font-weight:500}.case-form .case-head label.closed input{width:15px;height:15px;min-height:0}
.cms-case{--rule:var(--cms-rule-red, #e8473f);display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-areas:"b10 b14 b15" "b10 b16 b16" "b17 b17 b18" "b11b employer employer";border:1px solid var(--rule);background:white}
.cms-case .box{border:1px solid var(--rule);margin:-1px 0 0 -1px;padding:4px 8px 6px;display:flex;flex-direction:column;gap:4px;min-width:0;font-size:12.5px}
.cms-case .b10{grid-area:b10}.cms-case .b14{grid-area:b14}.cms-case .b15{grid-area:b15}.cms-case .b16{grid-area:b16}.cms-case .b17{grid-area:b17}.cms-case .b18{grid-area:b18}.cms-case .b11b{grid-area:b11b}.cms-case .employer{grid-area:employer}
.cms-case .box-label{color:var(--cms-label-red, #e0352c);font:700 9.5px/1.2 system-ui,"Segoe UI",sans-serif;letter-spacing:.2px;margin:0}.cms-case .box-label small{font-weight:500;font-size:9px}
.cms-case input,.cms-case select{margin:0;min-height:30px;padding:3px 7px;font-size:13px;border:1px solid #d5ddd8;border-radius:4px;background:#f7f9f8;width:100%}
.cms-case .parts{display:flex;gap:6px;align-items:center}.cms-case .parts > *{flex:1 1 0;min-width:0}.cms-case .parts .st{flex:0 0 52px;text-transform:uppercase}.cms-case .parts .zip{flex:0 0 100px}
.cms-case .qual{display:flex;align-items:center;gap:4px;margin:0;font:600 10px system-ui,sans-serif;color:var(--cms-label-red, #e0352c)}.cms-case .qual select,.cms-case .qual input{flex:1 1 auto}
.cms-case .qual-select{flex:0 0 140px}
.cms-case .tick-line{display:flex;align-items:center;gap:10px;font:600 10.5px system-ui,sans-serif;color:var(--cms-label-red, #e0352c)}.cms-case .tick-line > span:first-child{flex:0 0 120px}
.cms-case .tick-label{display:flex;align-items:center;gap:3px;color:var(--cms-label-red, #e0352c)}.cms-case .tick{display:inline-grid;place-items:center;width:14px;height:14px;border:1px solid #555;background:white;color:#111;font-size:11px}
.cms-case .place{display:flex;align-items:center;gap:4px;margin:0 0 0 auto;font:600 10px system-ui,sans-serif;color:var(--cms-label-red, #e0352c)}.cms-case .place input{width:48px;text-transform:uppercase}
.cms-case .hint{font-size:11px;font-style:italic;color:#7a6a64}
/* Box 10 follows the case type; the employer box is for workers' comp only. */
.case-form.kind-WORKERS_COMP .yes-wc::before,.case-form.kind-AUTO .yes-auto::before,.case-form.kind-OTHER_ACCIDENT .yes-other::before,
.case-form:not(.kind-WORKERS_COMP) .no-wc::before,.case-form:not(.kind-AUTO) .no-auto::before,.case-form:not(.kind-OTHER_ACCIDENT) .no-other::before{content:"\2715"}
.case-form:not(.kind-AUTO) .place{visibility:hidden}
.case-form:not(.kind-WORKERS_COMP) .employer{background:repeating-linear-gradient(135deg,#fafafa 0 6px,#f0f0f0 6px 12px)}.case-form:not(.kind-WORKERS_COMP) .employer > *:not(.box-label){display:none}
.case-form .edit-actions{display:flex;justify-content:flex-end;gap:4px;padding:8px 0 0}
@media (max-width:760px){.cms-case{grid-template-columns:1fr;grid-template-areas:"b10" "b14" "b15" "b16" "b17" "b18" "b11b" "employer"}}

/* Encounter: the patient & insurance boxes read-only; the case boxes read-only under a case picker; the biller's bill boxes. */
.patient-view .section-note,.case-section .section-note{margin:6px 0 0;font-size:12px;color:var(--muted)}
.case-pick{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 8px}.case-pick h3,.bill-section h3{margin:0;font-size:15px}
.case-pick select{width:auto;min-width:260px;margin:0;min-height:32px;padding:3px 8px;font-size:13px}.case-pick .muted{font-size:12.5px}
.case-view{border:0;margin:0;padding:0;min-width:0}.case-view .case-head label.closed,.case-view .edit-actions{display:none}
.case-view input,.case-view select{background:transparent !important;border-color:transparent !important;color:var(--ink) !important;-webkit-text-fill-color:var(--ink);opacity:1}
.case-view input::placeholder{color:transparent}.case-view .hint{display:none}
.bill-section h3{margin:0 0 8px}
.cms-bill{--rule:var(--cms-rule-red, #e8473f);display:grid;grid-template-columns:1fr 1.4fr 1fr;grid-template-areas:"b10d b19 b19" "b20 b22 b23";border:1px solid var(--rule);background:white}
.cms-bill .box{border:1px solid var(--rule);margin:-1px 0 0 -1px;padding:4px 8px 6px;display:flex;flex-direction:column;gap:4px;min-width:0;font-size:12.5px}
.cms-bill .b10d{grid-area:b10d}.cms-bill .b19{grid-area:b19}.cms-bill .b20{grid-area:b20}.cms-bill .b22{grid-area:b22}.cms-bill .b23{grid-area:b23}
.cms-bill .box-label{color:var(--cms-label-red, #e0352c);font:700 9.5px/1.2 system-ui,"Segoe UI",sans-serif;letter-spacing:.2px;margin:0}.cms-bill .box-label small{font-weight:500;font-size:9px}
.cms-bill input,.cms-bill select{margin:0;min-height:30px;padding:3px 7px;font-size:13px;border:1px solid #d5ddd8;border-radius:4px;background:#f7f9f8;width:100%}
.cms-bill .parts{display:flex;gap:8px;align-items:center}.cms-bill .parts > select{flex:0 0 140px}.cms-bill .tick-row{display:flex;gap:10px;flex:0 0 auto}
.cms-bill .tick-choice{display:inline-flex;align-items:center;gap:4px;margin:0;font:500 11px system-ui,sans-serif}
.cms-bill .tick-choice input{appearance:none;-webkit-appearance:none;width:14px;height:14px;min-height:0;padding:0;border:1px solid #555;border-radius:0;background:white;display:inline-grid;place-content:center}
.cms-bill .tick-choice input::before{content:"";font:700 11px/1 system-ui,sans-serif;color:#111}.cms-bill .tick-choice input:checked::before{content:"\2715"}
.bill-boxes fieldset{border:0;margin:0;padding:0;min-width:0}.bill-boxes fieldset:disabled input,.bill-boxes fieldset:disabled select{background:transparent;border-color:transparent;color:var(--ink);opacity:1}
.bill-boxes .edit-actions{display:flex;justify-content:flex-end;padding:8px 0 0}
@media (max-width:760px){.cms-bill{grid-template-columns:1fr;grid-template-areas:"b10d" "b19" "b20" "b22" "b23"}}
.case-view input[type=date]:not([value]),.case-view input[type=date][value=""],.bill-boxes fieldset:disabled input:placeholder-shown{-webkit-text-fill-color:transparent;color:transparent}
.case-view input[type=date]::-webkit-calendar-picker-indicator,.case-view select{appearance:none;-webkit-appearance:none;background-image:none}
.cms-case .place select{width:64px;min-height:26px;padding:1px 4px;font-size:12.5px}

/* Box 10: answered one by one (YES / NO boxes); the state shows for 10b YES, the employer box for 10a YES. */
.cms-case .tick-line > span:first-child small{font-weight:500;font-size:9px}
.cms-case .tick-choice{display:inline-flex;align-items:center;gap:3px;margin:0;font:600 10.5px system-ui,sans-serif;color:var(--cms-label-red, #e0352c)}
.cms-case .tick-choice input{appearance:none;-webkit-appearance:none;width:14px;height:14px;min-height:0;padding:0;margin:0;border:1px solid #555;border-radius:0;background:white;display:inline-grid;place-content:center;cursor:pointer}
.cms-case .tick-choice input::before{content:"";font:700 11px/1 system-ui,sans-serif;color:#111}.cms-case .tick-choice input:checked::before{content:"\2715"}
.case-form:not(.is-auto) .place{visibility:hidden}.case-form.is-auto .place{visibility:visible}
.case-form:not(.is-employment) .employer{background:repeating-linear-gradient(135deg,#fafafa 0 6px,#f0f0f0 6px 12px)}.case-form:not(.is-employment) .employer > *:not(.box-label){display:none}
.case-form.is-employment .employer{background:white}.case-form.is-employment .employer > *:not(.box-label){display:revert}
.case-form.is-employment .employer .parts{display:flex}
.case-warnings{margin:2px 0 0;font:500 11.5px/1.35 system-ui,sans-serif;color:#8a5a00}.case-warnings:empty{display:none}.case-warnings::before{content:"\26A0  "}
/* Case form at the CMS-1500 positions: 9 | 10 | 11b, then 14 | 15 | 16, then 17 | 17a-b | 18; the employer below. */
.cms-case{grid-template-columns:38fr 24fr 38fr;grid-template-areas:"b9 b10 b11b" "b14 b15 b16" "b17 b17ab b18" "employer employer employer"}
.cms-case .b9{grid-area:b9;background:repeating-linear-gradient(135deg,#fafafa 0 6px,#f3f1ec 6px 12px)}.cms-case .b17ab{grid-area:b17ab;padding:0}
.cms-case .b10 .tick-line{gap:6px;flex-wrap:wrap}.cms-case .b10 .tick-line > span:first-child{flex:1 0 100%}
.cms-case .b10 .place{margin:0 0 0 6px}
.cms-case .pair17{display:flex;flex-direction:column;gap:2px;padding:4px 8px;min-height:34px}.cms-case .pair17 + .pair17{border-top:1px solid var(--rule)}
.cms-case .v17{font-size:13px;min-height:1.2em}
.cms-case .b14 .parts,.cms-case .b16 .parts,.cms-case .b18 .parts,.cms-case .b17 .parts{flex-wrap:wrap}
@media (max-width:760px){.cms-case{grid-template-columns:1fr;grid-template-areas:"b10" "b11b" "b14" "b15" "b16" "b17" "b17ab" "b18" "employer"}.cms-case .b9{display:none}}
/* Case form: a wider middle column; each box 10 question on one line with its YES / NO; the 10b state takes
   space only when 10b is YES; date fields a fixed width that fits. */
.cms-case{grid-template-columns:31fr 38fr 31fr}
.cms-case .b10 .tick-line{flex-wrap:nowrap;gap:8px}.cms-case .b10 .tick-line > span:first-child{flex:1 1 auto;white-space:nowrap}
.cms-case .b10 .tick-line > span:first-child small{display:none}
.case-form:not(.is-auto) .place{display:none}.case-form.is-auto .place{display:flex;visibility:visible}
.cms-case input[type=date]{flex:0 0 150px;width:150px}.cms-case .parts .qual{flex:0 1 auto}
.cms-case .b15 .parts .qual input{width:56px;flex:0 0 56px}
/* Box 10b: the state drops to its own line under the YES / NO, so 10a-c's ticks stay in one column. */
.cms-case .b10 .tick-line:has(.place){flex-wrap:wrap;row-gap:2px}
.case-form.is-auto .cms-case .b10 .place{flex:0 0 100%;justify-content:flex-end;margin:0}
/* Case form: "Description" and its input on one line. */
.case-form .case-head{align-items:center}.case-form .case-head label.wide{flex-direction:row;align-items:center;gap:8px;white-space:nowrap}.case-form .case-head label.wide input{flex:1 1 auto;min-width:0}
/* A case's line: Close / Reopen at its right end. */
.case-line .case-status{margin:0 0 0 auto}.case-line .case-status button{min-height:26px;padding:1px 10px;font-size:12.5px}
.case-line.closed .case-status button{color:var(--teal);border-color:var(--teal);font-weight:650}
/* Case form: the fields sit in a plain fieldset (disabled when the case is closed). The workers' comp employer is
   not printed in its own box, so it sits below the red form in grey, and shows only when 10a is YES. */
.case-form .case-fields{border:0;margin:0;padding:0;min-width:0}
.case-form .case-carrier.not-printed{display:none;margin:10px 0 0;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fafbfb;flex-direction:column;gap:5px}
.case-form.is-employment .case-carrier.not-printed,.case-form.is-auto .case-carrier.not-printed{display:flex}
.case-form .case-carrier .np-label{font-size:12px;font-weight:700;color:var(--muted)}.case-form .case-carrier .np-label small{font-weight:400}
.case-form .case-carrier input{margin:0;min-height:30px;padding:3px 8px;font-size:13px}
.case-form .employer.not-printed{display:none;margin:10px 0 0;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fafbfb;flex-direction:column;gap:5px}
.case-form.is-employment .employer.not-printed{display:flex}
.case-form .employer .np-label{font-size:12px;font-weight:700;color:var(--muted)}.case-form .employer .np-label small{font-weight:400}
.case-form .employer input{margin:0;min-height:30px;padding:3px 8px;font-size:13px}.case-form .employer .parts{display:flex;gap:5px}
.case-form .employer .parts .st{flex:0 0 52px}.case-form .employer .parts .zip{flex:0 0 100px}
.cms-case{grid-template-areas:"b9 b10 b11b" "b14 b15 b16" "b17 b17ab b18"}
@media (max-width:760px){.cms-case{grid-template-areas:"b10" "b11b" "b14" "b15" "b16" "b17" "b17ab" "b18"}}
.case-form .closed-note{margin:8px 0 0;font-size:13px}
/* Choose a password: notes under the title, and Cancel / Sign out under the form. */
.password-intro{margin:0 0 12px;font-size:13.5px;line-height:1.45}.login-card input[readonly]{background:#f3f5f0;color:var(--muted)}
.password-links{display:flex;justify-content:space-between;align-items:center;margin:14px 0 0;font-size:13.5px}.password-links .inline-signout{margin:0 0 0 auto}.password-links .inline-signout button{min-height:0;padding:4px 8px}
/* Cases: "+ New case" at the right end (not used often); the note stays beside the title. */
.cases-head .add-new{order:2;margin-left:auto}
/* Case form: Description, then Save and × on the same top line; the boxes below span the width. The open
   case's line drops its description, which the field shows. */
.case-form{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center}
.case-form .case-fields{display:contents}
.case-form .case-head{grid-column:1;grid-row:1;margin:0 0 8px}.case-form .case-top{grid-column:2;grid-row:1;display:flex;align-items:center;gap:10px;margin:0 0 8px}
.case-form .cms-case,.case-form .employer,.case-form > .error{grid-column:1 / -1}
.case-form .case-top .edit-actions{margin:0;padding:0;border:0}.case-form .case-top .closed-note{margin:0}
.case-line:has(.expander[aria-expanded=true]) .case-desc{display:none}
/* Patients: alternating shades separate the lines, so no rule under each one (open panels keep their teal edge). */
.patient-table > tbody > tr:not(.toggle-row):not(.book-row) > td{border-bottom:0}
/* Patients: the name opens the patient, so it is link-coloured (the app's teal, like History), underlined on hover. */
.patient-table td.name .name-toggle{color:var(--teal);font-weight:600}

/* Encounter banner: CMS-1500 print links at the right end. */
.patient-banner .print-cms{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px}.patient-banner .print-cms a{font-weight:650;color:var(--teal)}
.patient-banner .print-cms .print-red{padding:3px 10px;border:1px solid var(--teal);border-radius:6px}
/* Setup > Printing. */
.setup-printing h2{font-size:17px;margin:0 0 6px}.setup-printing p{max-width:720px;font-size:13.5px}
.alignment-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin:12px 0 6px}.alignment-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:650;margin:0}
.alignment-form .inch{display:flex;align-items:center;gap:6px;font-weight:400}.alignment-form input{width:80px;margin:0;min-height:34px}
.setup-printing .small-note{font-size:12.5px}.setup-printing .test-links{display:flex;flex-wrap:wrap;gap:18px;margin:12px 0}.setup-printing .test-links a{font-weight:650;color:var(--teal)}

/* Staff: a clinician's "Billers may complete visits" switch, after the role chips. */
.staff-roles .biller-complete{margin:0 0 0 4px}.staff-roles .biller-complete label{display:flex;align-items:center;gap:5px;margin:0;font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap}
.staff-roles .biller-complete input{width:14px;height:14px;min-height:0;margin:0}

/* Bills in progress (billers' home): drafts and attested bills not yet approved, any date. */
.bills-in-progress .heading-note{font-size:12.5px}.bills-table{width:100%;border-collapse:collapse;font-size:13.5px}
.bills-table th{text-align:left;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);padding:6px 10px;border-bottom:2px solid var(--line)}
.bills-table td{padding:5px 10px}.bills-table tbody tr:nth-child(even) td{background:#f6f8f4}.bills-table tbody tr:hover td{background:#dcebf7}
.bills-table td.name{font-weight:650}.bills-table .bill-only{margin-left:8px;font-size:12px}.bills-table td.open{text-align:right}.bills-table td.open a{font-weight:650;color:var(--teal)}
/* Patients: New bill row. */
.patient-table tr.bill-row td{white-space:normal;padding:8px 10px;background:#f2f7f3;border-bottom:2px solid var(--teal)}
.bill-row .bill-note{font-size:12.5px;color:var(--muted);align-self:center;margin-right:6px}
/* Worklist: the patient's name opens them on the Patients page (front desk, billers). */
.patient-row h3 .patient-link{color:var(--teal);text-decoration:none}.patient-row h3 .patient-link:hover{text-decoration:underline}

/* Patients: the booking line at the top of the Appointments list, in the same columns as the visits. */
.appt-history .appt-add td{padding:4px 12px 6px 0;vertical-align:middle}
.appt-history .appt-add input,.appt-history .appt-add select{margin:0;min-height:30px;padding:2px 6px;font-size:12.5px}
.appt-history .appt-add select[name=caseId]{max-width:260px}.appt-history .appt-add .add-actions{display:flex;align-items:center;gap:6px}
.appt-history .appt-add .add-actions .primary{min-height:30px;padding:2px 14px}
/* Patients: each visit's case in the Appointments list (blank for an ordinary visit). */
.appt-history td.case{max-width:260px;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}

/* Account button: an icon per role held (admin, front desk, clinician, biller); the menu names them. */
.user-menu .role-icons{display:flex;align-items:center;gap:3px}.user-menu .role-icon{flex:0 0 auto}
.role-icon.admin{color:#6b4fa3}.role-icon.desk{color:#339af0}.role-icon.clinician{color:#2f6db5}.role-icon.biller{color:#b07a12}
.menu-who .menu-roles{display:block;font-size:12px;color:var(--muted)}.menu-who .menu-roles span + span::before{content:' · '}
/* Staff: each role chip starts with its role's icon (as in the account button). */
.role-pill{display:inline-flex;align-items:center;gap:4px}.role-pill .role-icon{width:13px;height:13px;flex:0 0 auto}
/* Account menu: who (name, practice, roles with their icons), then one item per line, Sign out set apart. */
.user-menu .menu{padding:6px}
.user-menu .menu-who{margin:4px 8px 8px;padding-bottom:10px;border-bottom:1px solid var(--line);gap:3px}.user-menu .menu-who strong{font-size:14px}
.user-menu .menu-who .menu-roles{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.user-menu .menu-who .menu-roles span + span::before{content:none}
.user-menu .menu-role{display:inline-flex;align-items:center;gap:4px;padding:1px 8px 1px 6px;border-radius:10px;background:#eef3ef;font-size:11.5px;font-weight:650;color:var(--ink)}
.user-menu .menu-role .role-icon{width:13px;height:13px}
.user-menu a.menu-item,.user-menu button.menu-item{display:flex;align-items:center;box-sizing:border-box;width:100%;min-height:36px;padding:6px 10px;border-radius:6px;font-size:14px;text-decoration:none;color:var(--ink)}
.user-menu .menu-signout{margin:6px 0 0;padding-top:6px;border-top:1px solid var(--line)}
/* Worklist: while an appointment's change panel is open, its status and Change / Check in step aside (× closes the panel). */
.patient-row:has(+ .change-row:not([hidden])) .row-action{display:none}
/* Encounter, for its clinician: diagnoses and services first; the rest folded to one line each. */
.form-paper.clinician-focus{display:flex;flex-direction:column}.form-paper.clinician-focus > #clinical-form{order:-1;margin-bottom:14px}
.clinician-focus > section.folded > :not(.fold-head){display:none}
.clinician-focus > section[data-summary]{padding-top:4px;padding-bottom:4px}
.clinician-focus .fold-head{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:8px;width:100%;padding:8px 4px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--ink)}
.clinician-focus .fold-head::before{content:'▸';color:var(--teal);font-size:12px;transition:transform .15s}
.clinician-focus .fold-head[aria-expanded="true"]::before{transform:rotate(90deg)}.clinician-focus .fold-head:hover{color:var(--teal)}

/* Encounter, clinician view: titled "Diagnoses" and "Today's services"; the services show procedure, description and
   units only (dates are today's, charges come from the fee list); the date calendars and totals are the biller's. */
.focus-head{display:flex;align-items:center;gap:12px;margin:0 0 6px}.focus-head h3{margin:0;font-size:15px}
.clinician-focus .cms24 thead,.clinician-focus .cms24 td.dt,.clinician-focus .cms24 td.na,.clinician-focus .cms24 td.mod,.clinician-focus .cms24 td.chg,
.clinician-focus .cms24 td.qual,.clinician-focus .cms24 td.npi-j,.clinician-focus .cms24 td.shade,.clinician-focus .cms24 .total-label,.clinician-focus .cms24 td.total,
.clinician-focus .cms24 .bill-tools,.clinician-focus #add-line{display:none}
.clinician-focus .cms24 td.units::before{content:'Units ';font-size:11px;color:var(--muted);margin-right:4px}
.clinician-focus .cms24 td.units{white-space:nowrap}.clinician-focus .cms24 td.units input{width:60px}
.line-tools .same-as-last{margin-right:8px}
/* Add services: the office's procedures as a checkbox table (tick, then Add); the search above filters it. */
.add-services .chosen{display:none}.add-services #procedure-options{display:none !important}
.proc-table-wrap{max-height:340px;overflow:auto;margin-top:8px;border:1px solid var(--line);border-radius:6px;background:white}
.proc-table{width:100%;border-collapse:collapse;font-size:13px}.proc-table th{position:sticky;top:0;background:#f3f5f0;text-align:left;font-size:11.5px;font-weight:650;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line)}
.proc-table td{padding:5px 8px;cursor:pointer}.proc-table tbody tr:nth-child(even) td{background:#f8faf6}.proc-table tbody tr:hover td{background:#dcebf7}
.proc-table tbody tr.checked td{background:#e3f1ea}.proc-table td:first-child{width:28px}.proc-table input{width:15px;height:15px;min-height:0;margin:0}
.proc-table td.fee,.proc-table th.fee{text-align:right;white-space:nowrap;padding-right:16px}
/* Encounter, clinician view: each service as one clean row (code · description · units · ×) instead of the box 24 grid. */
.clinician-focus .cms24,.clinician-focus .cms24 tbody,.clinician-focus .cms24 tfoot{display:block;width:100%;border:0}
.clinician-focus .cms24 tr{display:contents}.clinician-focus .cms24 td{border:0 !important;background:none !important;padding:0}
.clinician-focus .cms24 tbody.service-entry{display:grid;grid-template-columns:72px minmax(0,1fr) 96px 30px;align-items:center;gap:10px;padding:7px 4px;border-bottom:1px solid var(--line)}
.clinician-focus .cms24 tbody.service-entry:nth-of-type(even){background:#f8faf6}
.clinician-focus .cms24 td.cpt{order:1}.clinician-focus .cms24 tr.supp > td:first-child{order:2}.clinician-focus .cms24 td.units{order:3}.clinician-focus .cms24 td.rm{order:4;text-align:center}
.clinician-focus .cms24 td.cpt input{border:0;background:none;padding:0;font-weight:700;font-size:13.5px;width:100%;min-height:0}
.clinician-focus .cms24 tr.supp input{border:0;background:none;padding:0;font-style:normal;font-size:13.5px;color:var(--ink);width:100%;min-height:0;text-overflow:ellipsis}
.clinician-focus .cms24 td.units{display:flex;align-items:center;justify-content:flex-end;gap:4px}.clinician-focus .cms24 td.units input{width:52px;min-height:28px;padding:2px 6px;text-align:right}
.clinician-focus .cms24 tbody.no-lines td{display:block;padding:10px 4px;color:var(--muted)}
.clinician-focus .cms24 tfoot tr{display:flex}.clinician-focus .cms24 tfoot td.line-tools{display:flex;align-items:center;gap:10px;padding:10px 4px}
.clinician-focus .table-wrap{overflow:visible}
/* Encounter, clinician view: box 21 in plain app styling (the red CMS look is for billers): no form header, neutral
   lines and letters, larger slots. The A-L letters stay (services point to them on the claim). */
.clinician-focus .cms21{--rule:var(--line);border:1px solid var(--line);border-radius:8px;padding:8px 12px 10px}
.clinician-focus .cms21-head{display:none}
.clinician-focus .cms21-grid{gap:6px 20px}
.clinician-focus .cms21 .slot{color:var(--muted);font:600 12px system-ui,sans-serif;align-items:center}
.clinician-focus .cms21 .slot input{height:30px;border:1px solid var(--line);border-radius:6px;padding:0 8px;background:white;font:600 14px ui-monospace,Consolas,monospace}
.clinician-focus .cms21 .slot input:placeholder-shown{background:#fafbf8}
.line-tools .same-as-last:disabled{color:var(--muted);cursor:default;font-weight:500}

/* Services copied from the last visit: a note with Confirm all / Clear copied, and a Confirm box on each copied line. */
.copied-note{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 8px;padding:8px 12px;border:1px solid #e9cf8f;border-radius:8px;background:#fff8e6;font-size:13px;color:#6d5212}
.copied-note .confirm-all{font-weight:700;color:var(--teal)}.copied-note .clear-copied{color:#8a4b4b}
.desc-cell{white-space:nowrap}.desc-cell:has(.confirm-copy) > input[name=description]{width:calc(100% - 96px)}
.confirm-copy{display:inline-flex;align-items:center;gap:4px;margin:0 0 0 8px;font-size:12px;font-weight:650;color:#8a6510;cursor:pointer}
.confirm-copy input{width:15px;height:15px;min-height:0;margin:0}
.clinician-focus .cms24 tr.supp > td.desc-cell{display:flex;align-items:center;gap:6px}.clinician-focus .cms24 tr.supp > td.desc-cell > input[name=description]{flex:1;width:auto}
.save-bar button:disabled{opacity:.55;cursor:not-allowed}
/* The copied-from-last-visit note sits above Diagnoses (it covers both lists); the service's Confirm box no longer
   runs into Units. */
#clinical-form > .copied-note{margin:0 0 12px}
.clinician-focus .cms24 tr.supp > td.desc-cell > input[name=description]{min-width:0}
.clinician-focus .cms24 tbody.service-entry{grid-template-columns:72px minmax(0,1fr) 104px 30px}
.clinician-focus .confirm-copy{flex:0 0 auto;margin-left:10px}
/* Copied services: Confirm all / Clear copied beside "Today's services"; Clear beside "Diagnoses". */
.services-head:empty{display:none}.copied-actions{display:inline-flex;align-items:center;gap:10px;font-size:13px}
.copied-actions .confirm-all{font-weight:700;color:var(--teal)}.copied-actions .clear-copied,.focus-head .clear-dx{color:#8a4b4b;font-size:13px}
/* Clinician's service rows: Confirm has its own column (code · description · confirm · units · ×). */
.clinician-focus .cms24 tbody.service-entry{grid-template-columns:72px minmax(0,1fr) 86px 96px 30px}
.clinician-focus .cms24 tr.supp > td.desc-cell{display:contents}
.clinician-focus .cms24 td.cpt{grid-column:1}.clinician-focus .cms24 .desc-cell > input[name=description]{grid-column:2;min-width:0;width:100%}
.clinician-focus .cms24 .desc-cell > .confirm-copy{grid-column:3;margin:0}.clinician-focus .cms24 td.units{grid-column:4}.clinician-focus .cms24 td.rm{grid-column:5}
.clinician-focus .cms24 tbody.service-entry > tr{grid-row:1}
.clinician-focus .cms24 td.cpt,.clinician-focus .cms24 .desc-cell > input[name=description],.clinician-focus .cms24 .desc-cell > .confirm-copy,.clinician-focus .cms24 td.units,.clinician-focus .cms24 td.rm{grid-row:1}
/* Clean-up: the copied note and its actions really hide when nothing waits; the Confirm checkbox keeps checkbox size
   (box 24 inputs are otherwise full-width blocks); the clinical note label in plain app styling. */
.copied-note[hidden],.copied-actions[hidden]{display:none !important}
.cms24 .confirm-copy input[type=checkbox]{display:inline-block;width:15px;height:15px;flex:0 0 15px;padding:0;margin:0;border:1px solid #8a8f8a;appearance:auto}
.clinician-focus .cms24 .desc-cell > .confirm-copy{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:12.5px}
.clinician-focus .cms24 td.units::before{font-family:system-ui,sans-serif;font-size:12px}
.clinician-focus .note-section .lbl,.clinician-focus label[for=note],.clinician-focus .clinical-note-label{color:var(--ink)}
.clinician-focus .clinical-note .box-label{color:var(--ink);font:600 14px system-ui,sans-serif;letter-spacing:0;text-transform:none}
/* The copied note sits just outside the clinical form (inside it, showing or hiding it left the services unrendered in
   Chromium); in the clinician's view it leads the reordered column, right above Diagnoses. */
.form-paper > .copied-note{margin:0 0 10px}.form-paper.clinician-focus > .copied-note{order:-2}
/* Clinician's services: the list stays above "Add services" even for lines added later (they are appended after the
   table footer); Confirm in the app font, with room before Units. */
.clinician-focus .cms24{display:flex;flex-direction:column}.clinician-focus .cms24 tfoot{order:2}
.clinician-focus .cms24 tbody.service-entry{grid-template-columns:72px minmax(0,1fr) 92px 92px 30px}
.clinician-focus .cms24 .desc-cell > .confirm-copy{font:600 12.5px system-ui,"Segoe UI",sans-serif;color:#8a6510}
.clinician-focus .cms24 td.units{justify-content:flex-start}
.clinician-focus .cms24 td.units input{border:1px solid var(--line);border-radius:5px;background:white;height:28px}
/* A copied service's state reads at a glance: "Confirm" (amber, waiting) or "Confirmed" (green, done). */
.confirm-copy .when-on{display:none}.confirm-copy:has(input:checked) .when-on{display:inline}.confirm-copy:has(input:checked) .when-off{display:none}
.clinician-focus .cms24 .desc-cell > .confirm-copy:has(input:checked),.confirm-copy:has(input:checked){color:#1f7a4d}

/* Billers' clinicians: a dropdown on the Staff row; Show all / Show mine over Bills in progress; named in the menu. */
.biller-links{position:relative;margin:0 0 0 4px;font-size:12px}.biller-links summary{cursor:pointer;color:var(--muted);font-weight:500;list-style:none;white-space:nowrap}
.biller-links summary::after{content:' ▾'}.biller-links[open] summary{color:var(--teal)}
.biller-links form{position:absolute;z-index:15;top:calc(100% + 4px);left:0;min-width:220px;padding:10px 12px;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #1d302820;display:flex;flex-direction:column;gap:6px}
.biller-links form p{margin:0;font-size:12px}.biller-links label{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:500}.biller-links input{width:15px;height:15px;min-height:0;margin:0}
.biller-links button{align-self:flex-start;min-height:30px;padding:2px 14px}
.mine-toggle{display:inline-flex;align-items:center;gap:10px;margin-left:auto;font-size:12.5px}.mine-toggle a{font-weight:650;color:var(--teal)}
.menu-who .menu-clinicians{font-size:12px}

/* Staff: Edit name & email opens under the person. */
.staff-edit{padding:8px 0}.staff-edit .row-book{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.staff-edit label{display:flex;flex-direction:column;gap:3px;margin:0;font-size:12px;font-weight:650}
.staff-edit input{margin:0;min-height:34px;min-width:220px}.staff-edit .small-note{margin:6px 0 0;font-size:12px}
.staff-menu > .row-toggle{width:100%;justify-content:flex-start}

/* Staff: name and email edit in place. They read as text; hover shows a faint box, focus a real one. */
.staff-row .inline-edit{width:100%;min-height:0;margin:0;padding:3px 6px;border:1px solid transparent;border-radius:5px;background:transparent;font:inherit;color:inherit;text-overflow:ellipsis}
.staff-row .staff-name .inline-edit{font-weight:700}.staff-row .staff-email .inline-edit{color:var(--muted)}
.staff-row .inline-edit:hover{border-color:var(--line)}.staff-row .inline-edit:focus{border-color:var(--teal);background:white;color:var(--ink);outline:none}
.staff-row .staff-email{position:relative}.staff-row .inline-status{display:block;font-size:11.5px;color:var(--muted);padding-left:6px;min-height:0}
.staff-row .inline-status:empty{display:none}.staff-row .inline-edit.invalid + .inline-status,.staff-row .staff-email:has(.invalid) .inline-status{color:#a43a32}
/* Staff: Reset password and Deactivate shown on each line (no ⋯ menu). */
#staff .staff-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.6fr) 230px}
#staff .staff-actions{display:flex;justify-content:flex-end;align-items:center;gap:6px}#staff .staff-actions form{margin:0}
#staff .staff-btn{min-height:28px;padding:2px 10px;font-size:12.5px;font-weight:600;white-space:nowrap;border:1px solid var(--line);border-radius:6px;background:white}
#staff .staff-btn.danger{color:#a43a32;border-color:#e6c4c0}#staff .staff-btn:hover{background:#f3f5f0}
@media (max-width:760px){#staff .staff-actions{grid-column:1/-1;justify-content:flex-start}}
/* Staff: Reset password and Deactivate as titled columns with an icon button on each line. */
#staff .staff-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.6fr) 74px 74px}
#staff .staff-head .icon-col{text-align:center;line-height:1.2;white-space:normal}
#staff .staff-icon{display:flex;justify-content:center}#staff .staff-icon form{margin:0}
#staff .staff-icon-btn{display:inline-grid;place-items:center;width:34px;height:30px;min-height:0;padding:0;border:1px solid var(--line);border-radius:6px;background:white;color:var(--teal)}
#staff .staff-icon-btn.danger{color:#a43a32;border-color:#e6c4c0}#staff .staff-icon-btn:hover{background:#f3f5f0}
#staff .staff-add > :last-child{grid-column:4 / -1}
@media (max-width:760px){#staff .staff-icon{grid-column:auto;justify-content:flex-start}#staff .staff-head .icon-col{display:none}}
/* Staff: "Billers complete visits" is a titled column (a checkbox on each clinician's line); a clinician's filing
   setups open from a small list in the roles cell, each linking to it on Setup. */
#staff .staff-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.6fr) 84px 74px 74px}
#staff .staff-switch{display:flex;justify-content:center}#staff .staff-switch form{margin:0}#staff .staff-switch input{width:17px;height:17px;min-height:0;margin:0}
.profile-links .links-pop{position:absolute;z-index:15;top:calc(100% + 4px);left:0;min-width:240px;padding:8px 10px;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #1d302820;display:flex;flex-direction:column;gap:4px}
.profile-links .links-pop a{font-size:13px;color:var(--teal);text-decoration:none;padding:3px 2px}.profile-links .links-pop a:hover{text-decoration:underline}
.profile-links .links-pop a.inactive{color:var(--muted)}.profile-links .links-pop a.inactive::after{content:' (inactive)';font-size:11.5px}
.profile-links .links-pop .setup-link{border-top:1px solid var(--line);margin-top:4px;padding-top:6px;font-weight:650}.profile-links .links-pop p{margin:0;font-size:12px}
@media (max-width:760px){#staff .staff-switch{justify-content:flex-start}}
/* Setup, grouped by clinician: a small header over each clinician's filing setups. */
.setup-list .setup-group{margin:12px 0 2px;padding:4px 6px;font-size:12.5px;font-weight:700;color:var(--teal);border-bottom:2px solid var(--line)}
.setup-list:not(.show-inactive) .setup-group.inactive-only{display:none}
/* Staff: a clinician's filing setups as a column, a count that opens Setup for just them. */
#staff .staff-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.5fr) 72px 84px 74px 74px}
#staff .staff-setups{display:flex;justify-content:center}
#staff .setups-btn{display:inline-grid;place-items:center;min-width:34px;height:30px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--teal);font-weight:700;font-size:13px;text-decoration:none}
#staff .setups-btn:hover{background:#f3f5f0}
@media (max-width:760px){#staff .staff-setups{justify-content:flex-start}}
/* Setup for one clinician: who, how many, and the way back to all. */
.clinician-filter{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:14px}.clinician-filter a{margin-left:auto;font-weight:650;color:var(--teal)}
/* Setup: the clinician link's "Saved" / refusal note beside the picker. */
.setup-link{position:relative}.setup-link .link-status{position:absolute;right:4px;top:100%;font-size:11.5px;color:var(--teal);white-space:nowrap}
.setup-link .link-status.failed{color:#a43a32}.setup-link .link-status:empty{display:none}
/* Encounter: "+ New case" beside the case picker; the case form opens below it and attaches the new case to this bill. */
.case-pick .new-case-btn{margin-left:auto;min-height:30px;padding:2px 12px;font-size:13px;font-weight:700;background:var(--teal);border-color:var(--teal);color:white}
.encounter-new-case{margin:8px 0 0}

/* Setup for a biller: a note that it is look-only; locked controls read as plain text; no Save buttons. */
.readonly-note{margin:0 0 10px;font-size:13px}
.setup-readonly .edit-actions,.setup-readonly .party-form button,.setup-readonly form noscript{display:none}
.setup-readonly select:disabled,.setup-readonly input:disabled{opacity:1;color:var(--ink);-webkit-text-fill-color:var(--ink);background:transparent;cursor:default}
/* Encounter: "View setup" beside the filing setup picker. */
.filing-pick .view-setup{margin-left:10px;font-size:13px;font-weight:650;color:var(--teal)}

/* Patient form: the payer box picks from the list; an unknown name offers "Add as a new payer"; the address shows below. */
.box.payer .payer-new{display:flex;align-items:center;gap:5px;margin:4px 0 0;font-size:12px;font-weight:600;color:#8a6510}.box.payer .payer-new input{width:14px;height:14px;min-height:0;margin:0}
.box.payer .payer-adr{display:block;margin-top:3px;font-size:11.5px;color:var(--muted)}
/* Payers page: one line per payer; the line opens its edit form. */
.payers-page .panel-heading{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.payer-search{margin:0 0 0 auto}.payer-search input{min-width:260px;margin:0}
.payer-note{margin:4px 0 10px;font-size:13px}
.payer-grid{display:grid;grid-template-columns:30px minmax(0,1.3fr) minmax(0,2fr) 120px 90px 70px 110px;gap:6px 12px;align-items:center;padding:6px 4px}
.payer-head{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--line)}
.payer-row{border-bottom:1px solid var(--line);font-size:13.5px}.payer-row:nth-of-type(even){background:#f8faf6}.payer-row:hover{background:#dcebf7}
.payer-row.inactive{color:var(--muted)}.payer-row.inactive .payer-name{font-weight:500}.payer-row .num{text-align:right}.payer-row .payer-adr{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.payer-actions{display:flex;justify-content:flex-end}.payer-actions form{margin:0}.small-btn{min-height:28px;padding:2px 10px;font-size:12.5px;border:1px solid var(--line);border-radius:6px;background:white}
.payer-edit{padding:10px 4px 12px 40px;background:#f2f7f3;border-bottom:2px solid var(--teal)}
.payer-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.payer-form label{display:flex;flex-direction:column;gap:3px;margin:0;font-size:12px;font-weight:650;flex:1 1 140px}
.payer-form label.wide{flex:2 1 260px}.payer-form label.st{flex:0 0 60px}.payer-form label.zip{flex:0 0 100px}.payer-form input{margin:0;min-height:32px}
.payer-form .edit-actions{display:flex;gap:8px;align-items:center;margin:0}
@media (max-width:860px){.payer-grid{grid-template-columns:30px 1fr auto}.payer-grid > :nth-child(n+4):not(.payer-actions){display:none}.payer-head{display:none}}
/* Top bar: Worklist · Patients + [search] … Payers · Setup [account]. Payers and Setup sit together after the search. */
.topbar .lists-nav{margin-left:auto;flex:0 0 auto}.topbar .lists-nav + .user-menu{margin-left:8px}

/* Staff (admin): refused page requests. */
.denied-access{margin:12px 0 0}.denied-access summary{cursor:pointer;font-weight:650;color:#a43a32}.denied-access p{margin:6px 0;font-size:12.5px}
.denied-table{width:100%;border-collapse:collapse;font-size:12.5px}.denied-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:4px 8px;border-bottom:2px solid var(--line)}
.denied-table td{padding:4px 8px;border-bottom:1px solid var(--line);vertical-align:top}.denied-table td.path{font-family:ui-monospace,Consolas,monospace;word-break:break-all}
.reopened-note{font-size:12.5px;margin:0 0 6px}
/* Electronic filing: bill attachments, the scrubber's findings, the Filing page, Setup > Electronic filing. */
.attachments-section h3,.efile-section h3{margin:0 0 8px;font-size:15px}.attachments-section h3 small,.efile-section h3 small{font-weight:400;font-size:12px}
.attachment-list{list-style:none;margin:0 0 10px;padding:0}.attachment-list li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.attachment-list li a{font-weight:650}.attachment-list li .muted{font-size:12px}.attachment-list form{margin:0 0 0 auto}
.attach-form{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.attach-form input[type=file]{width:auto;flex:1 1 260px;margin:0;min-height:38px;padding:6px}
.efile-section p{margin:4px 0 8px;font-size:13.5px}
.edi-problems{margin:4px 0 0;padding-left:18px;font-size:13px}.edi-problems li{margin:2px 0}.edi-problems a{color:#8c3434}
.filing-note{font-size:13px;max-width:860px;margin:0 0 12px}.filing-note code,.setup-filing code{font-size:12px;background:#f2f5f0;padding:1px 5px;border-radius:4px}
.filing-payer{margin:0 0 18px}.filing-payer h3{margin:0 0 6px;font-size:15px}.filing-payer h3 small{font-weight:400;font-size:12.5px}
.filing-table{width:100%;border-collapse:collapse;font-size:13.5px}.filing-table th{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);text-align:left;border-bottom:2px solid var(--line);padding:6px 8px}
.filing-table td{border-bottom:1px solid var(--line);padding:7px 8px;vertical-align:top}.filing-table .num{text-align:right;white-space:nowrap}
.filing-table input[type=checkbox]{width:18px;height:18px;min-height:0;margin:2px 0 0}.filing-table tr.blocked td{background:#fffaf8}
.filing-table .ready{color:#2e6241;font-weight:650}.filing-table tr.void td{color:var(--muted);text-decoration:line-through}.filing-table tr.void td.batch-actions{text-decoration:none}
.filing-table .file-cell{white-space:nowrap}.filing-table .file-cell a.quiet{margin-left:6px}
.batch-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.batch-actions form{margin:0}
.filing-waiting .edit-actions{display:flex;justify-content:flex-end;margin-top:6px}.filing-batches{margin-top:18px}
.setup-filing .submitter-form{display:flex;gap:6px;align-items:center;margin:0}.setup-filing .submitter-form input{margin:0;min-height:32px;max-width:180px}
.case-form .employer label.wcb{margin:4px 0 0;font-size:12px;font-weight:650;color:var(--muted)}.case-form .employer label.wcb small{font-weight:400}.case-form .employer label.wcb input{max-width:160px;margin-top:3px}
/* Filing: unbatched bills, batches, one batch. */
.create-batch{display:flex;align-items:flex-end;gap:8px;margin:0 0 0 auto}.create-batch label{margin:0;font-size:12px}.create-batch select{margin-top:3px;min-height:38px;padding:6px 10px;min-width:180px}
.filing-table tr.closed td{color:var(--muted)}
.batch-heading{flex-wrap:wrap}.batch-tools{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto;align-items:center}.batch-tools form{margin:0}.batch-tools .small-btn{min-height:34px}
.batch-page .back{margin-bottom:6px}
.small-btn.primary,.batch-tools .primary{background:var(--teal);border-color:var(--teal);color:white}.small-btn.primary:hover{background:#0b554b}
.nf3-bill{border:0;margin:0;padding:0;min-width:0}.nf3-bill .nf-cell input:not([type=radio]){width:100%}

/* Encounter: CMS-1500 or NF-3 view of the same bill. */
.form-switch{display:inline-flex;border:1px solid var(--teal);border-radius:8px;overflow:hidden}.form-switch .form-view{border:0;border-radius:0;margin:0;padding:6px 12px;background:white;color:var(--teal);font:inherit;font-size:13px;cursor:pointer}
.form-switch .form-view[aria-pressed=true]{background:var(--teal);color:white}
body:not(.nf3-view) .nf3-only, body:not(.nf3-view) #nf3{display:none}
body.nf3-view .cms-only, body.nf3-view .cms-bill-row, body.nf3-view #patient, body.nf3-view #bill, body.nf3-view #diagnosis, body.nf3-view #services, body.nf3-view #providers, body.nf3-view .case-view, body.nf3-view .case-section > .section-note{display:none}
.nf3-paper{background:white;border:1px solid #c9d2cc;padding:14px;display:flex;flex-direction:column;gap:0;font-size:13px}
.nf3-title{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;margin-bottom:10px}.nf3-title small{color:var(--muted)}
.nf3-row{display:grid;grid-template-columns:1fr;border:1px solid #9aa8a1;border-top:0}.nf3-row:first-of-type,.nf3-page + fieldset .nf3-row:first-child,.nf3-page + .nf3-row{border-top:1px solid #9aa8a1}
.nf3-row.two{grid-template-columns:1fr 1fr}.nf3-row.three{grid-template-columns:1fr 1fr 2fr}.nf3-row.head{grid-template-columns:1fr 2fr 1.4fr 1.2fr 1.4fr}.nf3-row.head4{grid-template-columns:1fr 2fr 2fr 1.4fr}
.nf3-box{display:flex;flex-direction:column;gap:3px;padding:6px 8px;min-width:0}.nf3-box + .nf3-box{border-left:1px solid #9aa8a1}.nf3-box .v{font-family:"Courier New",monospace;font-weight:600;min-height:1.2em;overflow-wrap:anywhere}
.nf3-box input:not([type=radio]){width:100%}.nf3-answer{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}.nf3-answer input:not([type=radio]){flex:1 1 220px;width:auto}
.nf3-page{margin:14px 0 6px;font-size:12px;letter-spacing:.06em;color:var(--muted)}.nf3-fields{border:0;margin:0;padding:0;min-width:0}
.nf3-table-wrap{overflow-x:auto}.nf3-lines{width:100%;border-collapse:collapse;font-size:12px}.nf3-lines th{font-weight:500;font-size:11px;color:var(--muted);text-align:left;border-bottom:1px solid #9aa8a1;padding:3px 6px}
.nf3-lines td{font-family:"Courier New",monospace;font-weight:600;padding:3px 6px;border-bottom:1px dotted var(--line)}.nf3-lines .num{text-align:right}
.nf3-warning{background:#fff6e0;border:1px solid #e8cf8f;border-radius:6px;padding:8px 10px;margin:0 0 10px}
@media(max-width:780px){.nf3-row.two,.nf3-row.three,.nf3-row.head,.nf3-row.head4{grid-template-columns:1fr}.nf3-box + .nf3-box{border-left:0;border-top:1px solid #9aa8a1}}
.nf3-box select.nf3-setup{align-self:flex-start;max-width:100%;margin:2px 0 4px;font-size:13px;padding:3px 6px}
.nf3-anchor{display:block;height:10px}
.nf3-dx-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 16px}.nf3-dx-row{display:flex;align-items:center;gap:8px;min-width:0}
.nf3-box input.nf3-dx{width:7.5em;flex:0 0 auto;font-family:"Courier New",monospace;font-weight:600;text-transform:uppercase}.nf3-dx-row .dx-desc{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nf3-anchor + fieldset .nf3-row:first-child,.nf3-anchor + .nf3-row{border-top:1px solid #9aa8a1}
/* NF-3 view: labels and answers drawn like the printed form. */
.nf3-paper .box-label{color:#1d2522;font-weight:500;font-size:12px;letter-spacing:0}
.nf3-paper .nf3-answer{gap:6px 28px;padding:4px 0 2px 18px}
.nf3-paper .nf3-answer .tick-choice{display:inline-flex;flex-direction:row;align-items:center;gap:10px;margin:0;font-size:13px;font-weight:500;color:#1d2522;cursor:pointer}
.nf3-paper .nf3-answer input[type=radio]{appearance:none;-webkit-appearance:none;width:58px;height:20px;min-height:0;padding:0;flex:0 0 auto;margin:0;border:1px solid #333;border-radius:0;background:white center/14px 14px no-repeat;cursor:pointer}
.nf3-paper .nf3-answer input[type=radio]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l10 10M12 2L2 12' stroke='%23111' stroke-width='1.8'/%3E%3C/svg%3E")}
.nf3-paper .nf3-answer input[type=radio]:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.nf3-paper .nf3-answer input[type=radio]:disabled{cursor:default;opacity:1}
.nf3-paper .nf3-answer input:not([type=radio]){border:0;border-bottom:1px solid #777;border-radius:0;background:transparent;padding:2px 4px;font-family:"Courier New",monospace;font-weight:600}
.nf3-paper .nf3-answer input:not([type=radio])::placeholder{font-family:system-ui,sans-serif;font-weight:400;font-size:12px;color:#555;text-transform:uppercase}
.nf3-paper .nf3-box > input:not([type=radio]), .nf3-paper .nf3-answer .qual input{border:0;border-bottom:1px solid #777;border-radius:0;background:transparent;font-family:"Courier New",monospace;font-weight:600}
/* NF-3 view: compact, one line per value like the form. */
.nf3-paper input:not([type=radio]){min-height:0;height:24px;padding:1px 4px;margin:0;border:0;border-bottom:1px solid #777;border-radius:0;background:transparent;box-shadow:none;font-family:"Courier New",monospace;font-weight:600;font-size:13px}
.nf3-paper input:not([type=radio]):focus{outline:none;border-bottom:2px solid var(--teal);background:#f3faf8}
.nf3-paper .nf3-box{gap:2px;padding:4px 8px}
.nf3-paper .nf3-dx-list{gap:0 16px}.nf3-paper .nf3-dx-row{gap:8px;min-height:24px}
.nf3-paper .nf3-answer{padding:2px 0 2px 18px}
.nf3-paper label.nf3-dx-row{margin:0;padding:0;min-height:0;height:22px;line-height:22px}.nf3-paper .nf3-dx-row input.nf3-dx{height:20px;line-height:20px}
.nf3-status{position:sticky;top:110px;z-index:2;float:right;margin:0 0 -24px;padding:2px 10px;border-radius:12px;background:#e8f3ef;color:var(--teal);font-size:12px;min-height:0}.nf3-status:empty{display:none}
.nf3-status.error{background:#fbeaea;color:var(--red);float:none;margin:0 0 8px;border-radius:6px}
.nf3-paper input.field-error{border-bottom:2px solid var(--red);background:#fdf3f3}
.nf3-services td{vertical-align:middle}.nf3-services td input{width:100%;height:22px}.nf3-services td.code{display:flex;gap:6px}.nf3-services td.code input:first-child{flex:0 0 6.5em}.nf3-services td.code input:last-child{flex:1 1 4em;min-width:3em}
.nf3-services td.num input{text-align:right;width:6.5em}.nf3-services td input[type=date]{width:9.5em}.nf3-services .rm{width:28px;text-align:center}.nf3-services .rm button{padding:0 6px;min-height:0}
.nf3-services tfoot .line-tools{display:flex;align-items:center;gap:10px;white-space:nowrap}.nf3-services tfoot .num-label{margin-left:auto;font-family:"Courier New",monospace;font-weight:600}
.nf3-services tfoot button{font-family:system-ui,sans-serif;font-weight:500;font-size:12px;padding:2px 8px;min-height:0}.nf3-add-slot .add-services{margin-top:8px}
.nf3-services tfoot .nf3-add-line{font-size:16px;font-weight:600;padding:0 9px;line-height:22px}
.nf3-procedures{border:1px solid #9aa8a1;border-top:0;margin:0;padding:6px 8px 8px;min-width:0}.nf3-procedures legend{float:left;width:100%;padding:0;margin:0 0 4px;font-size:12px;font-weight:500;color:#1d2522}.nf3-procedures legend small{color:var(--muted);font-weight:400;margin-left:6px}
.nf3-proc-filter{max-width:240px;margin:0 0 6px}
.nf3-proc-list{clear:both;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 18px}
.nf3-paper label.nf3-proc{display:flex;align-items:center;gap:8px;margin:0;padding:2px 0;min-height:0;font-size:12.5px;cursor:pointer}.nf3-proc[hidden]{display:none!important}
.nf3-proc input{flex:0 0 auto;width:15px;height:15px;margin:0}.nf3-proc .code{flex:0 0 6.5em;font-family:"Courier New",monospace;font-weight:600}.nf3-proc .desc{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nf3-proc .fee{flex:0 0 auto;font-family:"Courier New",monospace;color:var(--muted)}
/* NF-3 services checklist: one tidy row per service (overrides the page's label and input defaults). */
.nf3-paper .nf3-procedures .nf3-proc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:0 24px}
.nf3-paper .nf3-procedures label.nf3-proc{display:grid;grid-template-columns:16px 6.5em minmax(0,1fr) 5.5em;align-items:center;gap:8px;margin:0;padding:3px 0;font-size:12.5px;font-weight:400;border-bottom:1px dotted var(--line)}
.nf3-paper .nf3-procedures label.nf3-proc input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;width:15px;height:15px;min-height:0;padding:0;margin:0;border:0;background:none}
.nf3-paper .nf3-procedures label.nf3-proc .fee{text-align:right}
.nf3-paper .nf3-procedures input.nf3-proc-filter{width:240px;height:24px;margin:0 0 6px}
/* NF-3 box 15: striped rows instead of lines; a box shows its edge only when pointed at or typed in. */
.nf3-paper .nf3-services tbody td{border-bottom:0}
.nf3-paper .nf3-services tbody tr:nth-child(even){background:#f2f6f4}
.nf3-paper .nf3-services tbody td input{border-bottom-color:transparent;background:transparent}
.nf3-paper .nf3-services tbody td input:hover{border-bottom-color:#b9c4bf}
.nf3-paper .nf3-services tbody td input:focus{border-bottom:2px solid var(--teal);background:white}
.nf3-paper .nf3-services tfoot td{border-top:1px solid #9aa8a1;border-bottom:0}
.nf3-procedures[hidden]{display:none}
.nf3-paper .nf3-procedures .nf3-proc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 6px}
.nf3-paper .nf3-procedures label.nf3-proc-day{display:flex;align-items:center;gap:8px;margin:0;font-size:12.5px;font-weight:500}
.nf3-paper .nf3-procedures input.nf3-proc-date{width:9.5em}
.nf3-paper .nf3-services tfoot button[aria-expanded=true]{background:#e3f0ec;color:var(--teal);font-weight:600}
.nf3-attach{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:4px;font-size:12.5px}.nf3-attach a{font-weight:600;color:var(--teal)}
.nf3-paper label.nf3-attach-button{display:inline-flex;align-items:center;gap:4px;margin:0;padding:2px 10px;border:1px solid var(--teal);border-radius:6px;color:var(--teal);font-size:12px;font-weight:500;cursor:pointer}
.nf3-attach-button input[type=file]{position:absolute;width:1px;height:1px;opacity:0}.nf3-attach-button:focus-within{outline:2px solid var(--teal);outline-offset:2px}
.nf3-attach .success,.nf3-attach .error{margin:0;padding:1px 8px;font-size:12px}
/* NF-3 20/21: the form's own wording in small print; the chosen option's signature lines are filled. */
.nf3-paper .nf3-legal{margin:0;font-size:10.5px;line-height:1.35;color:#1d2522;text-align:justify}.nf3-paper .nf3-legal.nf3-gap{margin-top:12px}
.nf3-paper .nf3-choice{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start;margin-top:6px}.nf3-paper .nf3-choice .nf3-answer{padding:0}
.nf3-paper .nf3-choice .tick-choice{font-weight:700}
.nf3-paper .nf3-sign{display:grid;grid-template-columns:auto 2fr auto 2fr 1fr;gap:0 8px;align-items:end;margin:8px 0 2px 24px;font-size:11px}
.nf3-sign .lbl{font-size:11px;font-weight:500}.nf3-sign .line{border-bottom:1px solid #333;min-height:18px;font-family:"Courier New",monospace;font-weight:600;font-size:12px;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nf3-sign .cap{font-size:9.5px;text-align:center;color:#333;padding-bottom:6px}
.nf3-auth:has(input[name="nf3.assignment"][value="21"]:checked) .for-20 .line,.nf3-auth:has(input[name="nf3.assignment"][value="20"]:checked) .for-21 .line{color:transparent}
.nf3-paper .nf3-q{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 16px;margin-top:8px;font-size:11.5px;font-weight:500}
@media(max-width:780px){.nf3-paper .nf3-sign{grid-template-columns:auto 1fr;margin-left:0}.nf3-sign .cap:empty,.nf3-sign > span:empty{display:none}}
body.nf3-view #attachments{display:none}
#staff .staff-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.5fr) 72px 74px 74px}
/* NF-3 box 5: three columns of two, filled down each column like the printed form. */
.nf3-paper .nf3-dx-list{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,auto);grid-auto-flow:column;gap:0 16px}
@media(max-width:780px){.nf3-paper .nf3-dx-list{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}}
/* NF-3 view: a compact top. The Case and Filing sections shrink to a few lines; the box 5 and 15 changes save by
   themselves, so the Save bar is not shown (a save error still shows). */
body.nf3-view .form-section{padding:10px 16px}
body.nf3-view .case-section .case-pick{margin:0}
body.nf3-view .efile-section h3{margin:0 0 2px;font-size:14px}
body.nf3-view .efile-section p{margin:2px 0;font-size:13px}
body.nf3-view .efile-section .success,body.nf3-view .efile-section .error{margin:4px 0 0;padding:5px 10px;font-size:13px}
body.nf3-view .efile-section ul{margin:2px 0}
body.nf3-view .save-bar{display:none}
body.nf3-view #nf3{padding-top:12px}
.form-tag{display:inline-block;padding:1px 8px;border-radius:10px;background:#e7eef6;color:#2a4d74;font-size:11.5px;font-weight:650;white-space:nowrap}.form-tag.nf3{background:#f6ece0;color:#7a4b12}
.filing-group + .filing-group{margin-top:14px}.filing-form-head{display:flex;align-items:center;gap:8px;margin:8px 0 4px;font-size:14px}
.filing-owners{margin-top:6px}.filing-owners label{display:flex;flex-direction:column;gap:3px;margin:0;font-weight:400;font-size:13px}.filing-owners input{max-width:640px}
.nf3-owners{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}.nf3-owners a{font-size:12px;color:var(--teal)}
.filing-relationship{display:flex;flex-direction:column;gap:3px;margin-top:6px;font-size:13px}.filing-relationship .rel-choices{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px}
.filing-relationship .rel-choices label{display:inline-flex;align-items:center;gap:5px;margin:0;font-weight:400}.filing-relationship input[name=relationshipOther]{width:14em;height:28px}
/* Clean and light (2026-10-12): quieter headings everywhere; lists read as shaded lines (alternating, hover tint),
   no rule under each line, one line per entry. */
.panel-heading h2,main h2{font-family:inherit;font-size:18px;font-weight:500;letter-spacing:0;color:#202124}
.panel-heading h2 .count{font-size:12px;font-weight:500}
.filing-form-head{font-size:13px;font-weight:500;margin:14px 0 6px;display:flex;align-items:center;gap:8px}
.filing-table{border-collapse:collapse;width:100%}
.filing-table th{font-weight:500;color:#5f6368;font-size:11.5px;letter-spacing:.3px;border-bottom:1px solid #e0e3e0}
.filing-table td{border:0;padding:6px 10px;white-space:nowrap}
.filing-table tbody tr:nth-child(even) td{background:#f6f8f5}.filing-table tbody tr:hover td{background:#e8f0fe}
.payer-row{border-bottom:0}.payer-row.alt{background:#f6f8f5}.payer-row:hover{background:#e8f0fe}
.payer-row .payer-name,.payer-row .payer-adr{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.payer-head{border-bottom:1px solid #e0e3e0;font-weight:500}
/* Payers: every other line shaded (the earlier rule tinted them all, edit forms sit between the lines), hover tint. */
.payer-list .payer-row:nth-of-type(n){background:transparent}.payer-list .payer-row.alt{background:#f6f8f5}.payer-list .payer-row:hover{background:#e8f0fe}
.payers-page .panel-heading{justify-content:flex-start}.payers-page .payer-search{margin-left:auto}

/* Payers: the name opens the payer (link, like Patients); inside, fields read as text until clicked and save on leaving;
   Inactivate sits inside, top right. */
.payer-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,2fr) 130px 100px 70px}
.payer-row .name-toggle{all:unset;cursor:pointer;color:var(--teal);font-weight:600;display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.payer-row .name-toggle:hover,.payer-row .name-toggle[aria-expanded=true]{text-decoration:underline}
.payer-edit{padding:10px 12px 14px;background:#f8faf8;border-bottom:1px solid #e0e3e0}
.payer-edit-top{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:12.5px}.payer-edit-top form{margin:0 0 0 auto}
.payer-form.inline label{font-weight:500;color:#5f6368}
.payer-form.inline .inline-edit{border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:5px;color:var(--ink);font-weight:500}
.payer-form.inline .inline-edit:hover{border-color:#dadce0}.payer-form.inline .inline-edit:focus{border-color:var(--teal);background:white;outline:none}
.payer-form.inline .inline-status{flex:1 1 100%;font-size:12px;color:var(--teal);min-height:0}.payer-form.inline .inline-status.failed{color:#a43a32}
.payer-form.inline .inline-status:empty{display:none}
@media (max-width:860px){.payer-grid{grid-template-columns:1fr auto}.payer-grid > :nth-child(n+3):not(.num){display:none}}
/* Help: the top bar's "?" opens Help at the current page's section. */
.topbar .help-link{display:inline-grid;place-items:center;width:28px;height:28px;margin-left:6px;border:1px solid #dadce0;border-radius:50%;color:#5f6368;font-weight:600;font-size:14px;text-decoration:none;flex:0 0 auto}
.topbar .help-link:hover{background:#f1f3f4;color:var(--teal)}.topbar .help-link + .user-menu{margin-left:8px}
/* Old records: a hanging LEGACY sign (Legacy), only for accounts imported from the old clinic. */
.topbar .legacy-link{display:inline-grid;place-items:center;height:28px;margin-left:6px;color:#3f72b4;text-decoration:none;flex:0 0 auto}
.topbar .legacy-link svg{display:block}.topbar .legacy-link:hover{color:#1f4f8f}
.help-page{max-width:900px}.help-toc{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 12px;font-size:13.5px}.help-toc a{color:var(--teal);text-decoration:none}.help-toc a:hover{text-decoration:underline}
.help-section{margin:0 0 12px;scroll-margin-top:80px}.help-section ul{margin:4px 0 0;padding-left:20px;line-height:1.55;font-size:14px}.help-section li{margin:3px 0}
.help-section:target{box-shadow:0 0 0 2px #c6dafc}
.help-page.tabbed .help-section{display:none}.help-page.tabbed .help-section.shown{display:block;box-shadow:none}
/* Payers: Delete (only when nothing uses the payer) beside Inactivate, in red. */
.payer-edit-top{justify-content:flex-end}.payer-edit-top form{margin:0}.payer-edit-top form + form{margin-left:8px}
.small-btn.danger{color:#a43a32;border-color:#e6c4c0}

/* Encounter: "Payer for this bill" (billers, open bill). */
.bill-payer{margin:8px 0 0}.bill-payer label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#5f6368;margin:0}
.bill-payer input{margin:0;min-height:32px;min-width:280px;max-width:420px}
.payer-id{display:flex;flex-direction:column;line-height:1.25;min-width:0}.payer-via{font-size:11px;color:var(--muted)}
.payer-directory .directory-top{display:flex;gap:8px;align-items:center}.payer-directory .directory-search{margin:0;max-width:420px}
.directory-results{margin:6px 0 0}.directory-results ul{list-style:none;margin:0;padding:0;max-height:360px;overflow:auto}.directory-status:empty{display:none}
.directory-results li{display:grid;grid-template-columns:minmax(0,1fr) 90px 34px 64px;gap:10px;align-items:center;padding:4px 6px;font-size:13.5px}
.directory-results li:nth-child(even){background:#f1f4f1}.directory-results li:hover{background:#e8f0fe}
.directory-results .dir-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directory-results .dir-state{font-size:12px;color:var(--muted)}
.directory-results .dir-added{font-size:12px;color:var(--teal);font-weight:600;text-align:center}.directory-results .small-btn{min-height:26px}
@media (max-width:860px){.directory-results li{grid-template-columns:minmax(0,1fr) auto 64px}.directory-results .dir-state{display:none}}
.payers-page .in-use-toggle{font-size:13px;font-weight:500;color:var(--teal);text-decoration:none;padding:4px 10px;border:1px solid #dadce0;border-radius:16px}
.payers-page .in-use-toggle.on{background:#e8f0fe;border-color:#c6dafc}
/* Support view banner: always visible at the bottom while acting as a practice user. */
.support-banner{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:24px;background:#fef7e0;border:1px solid #f2d27a;box-shadow:0 4px 16px #0002;font-size:13.5px;color:#5c4200}
.support-banner form{margin:0}.support-banner button{min-height:28px;padding:2px 12px;font-size:13px;border-radius:16px;background:#5c4200;color:white;border:0}
/* Super-admin pages. */
.admin-head{display:flex;align-items:center;gap:10px;margin:0 0 10px}.admin-head form{margin:0}.admin-head .add-new{margin-left:auto}.admin-head input[type=search]{min-width:280px;margin:0}
.admin-row{display:flex;align-items:center;gap:14px;padding:7px 6px;font-size:13.5px}.admin-row:nth-of-type(even){background:#f6f8f5}
.admin-row .name-toggle{all:unset;cursor:pointer;color:var(--teal);font-weight:600;min-width:220px}.admin-row .name-toggle:hover{text-decoration:underline}
.admin-detail{padding:8px 10px 12px 24px;background:#f8faf8}
.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table td,.admin-table th{padding:5px 8px;text-align:left}.admin-table th{font-weight:500;color:#5f6368;font-size:11.5px}
.admin-table tr:nth-child(even) td{background:#f6f8f5}.admin-table td.act{text-align:right}.admin-table form{margin:0}.admin-table tr.inactive td{color:var(--muted)}
.admin-sub{font-size:14px;font-weight:500;margin:18px 0 6px}
.admin-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px}.admin-form label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:500;color:#5f6368;margin:0;flex:1 1 160px}
.admin-form label.wide{flex:2 1 260px}.admin-form label.check{flex-direction:row;align-items:center;flex:0 0 auto}.admin-form input,.admin-form select{margin:0;min-height:30px}
.admin-form .inline-edit,.admin-cols .inline-edit{border:1px solid transparent;background:transparent;border-radius:5px;padding:3px 6px}
.admin-form .inline-edit:hover,.admin-cols .inline-edit:hover{border-color:#dadce0}.admin-form .inline-edit:focus,.admin-cols .inline-edit:focus{border-color:var(--teal);background:white;outline:none}
.admin-cols{display:grid;grid-template-columns:minmax(0,2fr) 110px 60px 160px 90px 70px minmax(0,1fr);gap:8px}
.admin-cols.routing{grid-template-columns:minmax(0,2fr) 110px 70px minmax(0,1.3fr);align-items:center;padding:7px 6px;font-size:13.5px}
.admin-cols .name-toggle{all:unset;cursor:pointer;color:var(--teal);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-cols .name-toggle:hover{text-decoration:underline}
.route-form{display:flex;align-items:center;gap:8px}.route-form select{min-width:160px}
.admin-cols.head{font-size:11.5px;font-weight:500;color:#5f6368;background:none}.admin-cols .num{text-align:right}.admin-cols .clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-cols.inactive{color:var(--muted)}.inline-status{font-size:12px;color:var(--teal)}.inline-status:empty{display:none}
/* Super-admin lists as tables with column headings. */
.admin-grid{display:grid;gap:8px;align-items:center;padding:7px 6px;font-size:13.5px}
.admin-grid.head{font-size:11.5px;font-weight:500;color:#5f6368;border-bottom:1px solid #e0e3e0;padding-top:2px}
.admin-grid.practices{grid-template-columns:60px minmax(0,2fr) 90px 120px 80px 60px 60px 110px;column-gap:16px}
.admin-grid .usage.warn,.meters li.warn{color:#b06000}.admin-grid .usage.over,.meters li.over{color:#c5221f;font-weight:600}
.plan-notice span+span::before{content:" · "}.plan-notice.over{background:#fff0ee;border-color:#dfbbb7;color:#8c3434}
.pay-chip{margin-left:8px;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;background:#fef7e0;color:#8a5a00}.pay-chip.suspended,.pay-chip.closed{background:#fce8e6;color:#c5221f}
.payment-banner{position:fixed;left:14px;bottom:14px;z-index:59;max-width:min(560px,calc(100vw - 28px));padding:8px 14px;border-radius:12px;background:#fef7e0;border:1px solid #f2d27a;box-shadow:0 4px 16px #0002;font-size:13px;color:#5c4200}
.payment-banner.suspended{background:#fce8e6;border-color:#f4b4ae;color:#8c1d18}
.tier-box{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 28px;padding:4px 0 12px;border-bottom:1px solid #e0e3e0;margin-bottom:8px}
.tier-form{flex:0 0 auto;align-items:center}.tier-form label{flex:none}.tier-form select.inline-edit{width:180px;border-color:#dadce0;background:white}.tier-pending{font-size:12.5px}
.meters{list-style:none;display:flex;flex-wrap:wrap;gap:6px 24px;margin:0;padding:0;font-size:13px}.meters .meter-label{color:#5f6368;margin-right:6px}
.tier-cols{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px 190px minmax(0,1fr);gap:8px;align-items:center;padding:5px 6px;font-size:13.5px}
.tier-cols.head{font-size:11.5px;font-weight:500;color:#5f6368}.tier-cols .num{text-align:right}.tier-cols .tier-name{font-weight:600}
.tier-cols .inline-edit{border:1px solid transparent;background:transparent;border-radius:5px;padding:3px 6px;min-height:28px}
.tier-cols .inline-edit:hover{border-color:#dadce0}.tier-cols .inline-edit:focus{border-color:var(--teal);background:white;outline:none}
.admin-grid.receivers{grid-template-columns:minmax(0,2fr) 100px 150px 130px 130px}
.admin-grid .num{text-align:right}.admin-line.alt{background:#f6f8f5}.admin-line:hover{background:#e8f0fe}
.admin-grid .name-toggle{all:unset;cursor:pointer;color:var(--teal);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-grid .name-toggle:hover{text-decoration:underline}
.admin-table thead th{border-bottom:1px solid #e0e3e0}.admin-table td.path{font-family:ui-monospace,Consolas,monospace;font-size:12px;word-break:break-all}
.routing-filter{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.routing-filter input[type=search]{width:220px}
/* Staff: the add line has its own widths, a long email box and a role box sized to the longest role name. */
#staff .staff-grid.staff-add{grid-template-columns:minmax(0,1fr) minmax(0,2fr) 140px auto}
@media (max-width:760px){#staff .staff-grid.staff-add{grid-template-columns:minmax(0,1fr) auto}}

/* Filing setups as columns: tick, expander, setup, boxes 25 / 33 / 32 / 31, changed, clinician login. */
#filing-setups .setup-item-head.profile-grid{display:grid;grid-template-columns:18px 22px minmax(0,1.4fr) repeat(4,minmax(0,1fr)) 64px 190px;column-gap:12px;align-items:center}
#filing-setups .profile-grid .name-cell{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#filing-setups .profile-grid .box-col{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;color:#3c4043}
#filing-setups .profile-grid time.changed,#filing-setups .profile-grid time.changed + .setup-link{margin:0}
#filing-setups .profile-grid input[type=checkbox],.setup-group .pick-group{width:15px;height:15px;min-height:0;margin:0;padding:0}
#filing-setups .profile-grid .sort-head{min-width:0}
.setup-list .setup-group{display:flex;align-items:center;gap:10px}
.bulk-bar{position:sticky;bottom:12px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:10px 0 0;padding:8px 14px;background:white;border:1px solid #c6dafc;border-radius:12px;box-shadow:0 4px 16px #0002;font-size:13.5px}
.bulk-bar[hidden]{display:none}.bulk-bar label{display:flex;align-items:center;gap:8px;margin:0;font-weight:500}.bulk-bar select{margin:0;min-height:32px;width:auto}
.bulk-bar button{min-height:32px;padding:4px 14px}.bulk-count{font-weight:600}.bulk-status{color:var(--teal)}.bulk-status.failed{color:#c5221f}
@media (max-width:1100px){#filing-setups .setup-item-head.profile-grid{grid-template-columns:18px 22px minmax(0,1fr) 190px}#filing-setups .profile-grid .box-col,#filing-setups .profile-grid time.changed,#filing-setups .profile-grid .sort-head:not([data-sort=name]):not([data-sort=clinician]){display:none}}

/* People: a Clinician login column after Changed. */
.setup-grid.party-grid.people-grid{grid-template-columns:28px minmax(0,1.6fr) 100px minmax(0,1fr) minmax(0,1.4fr) 72px 110px 170px}
.person-link select{width:100%;min-height:30px;margin:0;padding:3px 6px}
@media (max-width:900px){.setup-grid.party-grid.people-grid{grid-template-columns:28px minmax(0,1fr) 150px}.people-grid > :not(.expander):not(.name-cell):not(.person-link):not(.toggle-row){display:none}}
/* A filing setup's own actions, last in its open section. */
.setup-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:10px 0 2px;font-size:13px}.setup-actions form{margin:0}
.setup-actions button{min-height:30px;padding:2px 10px;font-size:13px}
/* Setup: billing organizations, providers and locations (2026-10-13). */
.org-grid,.provider-grid{display:grid;grid-template-columns:22px minmax(0,1.6fr) minmax(0,1fr) 110px 80px 80px;column-gap:12px;align-items:center}
.provider-grid{grid-template-columns:22px minmax(0,1.3fr) 110px minmax(0,1.8fr) minmax(0,1.3fr) 56px}
.org-grid .num,.provider-grid .num{text-align:right}
.location-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1.4fr) 110px 80px minmax(0,1.6fr)}
.location-pos{margin:0}.location-pos input{width:56px;min-height:30px;margin:0;padding:3px 6px}
.org-detail{padding-left:34px}.org-parties{display:flex;flex-wrap:wrap;gap:4px 24px;font-size:13.5px;margin:2px 0 4px}
.org-sub{font-size:13px;font-weight:600;margin:14px 0 4px;color:#3c4043;display:block}
.org-locations{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:2px;font-size:13.5px}
.org-locations li{display:flex;align-items:center;gap:8px}.org-locations form{margin:0}.org-locations .chip-x{min-height:24px;padding:0 6px}
.org-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 0}.org-add select{width:auto;min-width:220px;min-height:32px;margin:0}.org-add button{min-height:32px}
.org-link{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr) minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:6px 0;border-top:1px solid #eef0ee;font-size:13.5px}
.org-link form{margin:0}.org-link .filing-relationship,.org-link .filing-owners{margin:0}.org-link .filing-owners input{min-height:30px;margin:0}
.org-link-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.org-ended{font-size:12.5px;margin-top:8px}
.provider-billers{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:6px 0}.provider-billers label{display:inline-flex;align-items:center;gap:6px;margin:0;font-weight:400;font-size:13.5px}
.provider-billers input{width:15px;height:15px;min-height:0;margin:0}.provider-billers .org-sub{margin:0}
.provider-login label{display:flex;align-items:center;gap:10px;margin:6px 0}.provider-login .org-sub{margin:0}.provider-login select{width:auto;min-width:200px;min-height:32px;margin:0}
.box-col.warn{color:#a43a32;font-weight:600}
.party-grid{grid-template-columns:28px minmax(0,1.5fr) 100px minmax(0,.9fr) minmax(0,1.4fr) minmax(0,1fr) 110px}
.staff-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.5fr) 150px 74px 74px}
.staff-provider{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.location-label[hidden]{display:none}
@media (max-width:860px){.org-grid,.provider-grid{grid-template-columns:22px minmax(0,1fr) auto}.org-grid > :nth-child(n+4),.provider-grid > :nth-child(n+4){display:none}
  .location-grid{grid-template-columns:minmax(0,1fr) 80px}.location-grid > :nth-child(2),.location-grid > :nth-child(3),.location-grid > :nth-child(5){display:none}
  .org-link{grid-template-columns:1fr}.party-grid{grid-template-columns:28px minmax(0,1fr) auto}.staff-grid{grid-template-columns:minmax(0,1fr) auto}}
.org-link{grid-template-columns:minmax(0,170px) minmax(0,2.2fr) minmax(0,1.3fr) auto}
.org-link .rel-choices{flex-wrap:nowrap}.org-link input[name=relationshipOther]{width:9em;height:30px;min-height:30px;margin:0;padding:3px 6px}
.org-add select{height:34px;min-height:34px;padding:4px 8px}.org-add button{min-height:34px;padding:4px 12px}
.org-link .filing-owners input{height:34px;min-height:34px;padding:4px 8px}
/* Super-admin, + Add account: the form, and the new account's line marked once. */
.account-add{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 14px;align-items:end}.account-add .wide{grid-column:span 2}.account-add .span-all,.account-add .edit-actions{grid-column:1/-1}
.admin-line.just-added{box-shadow:inset 4px 0 0 var(--teal)}
@media (max-width:760px){.account-add{grid-template-columns:1fr}.account-add .wide{grid-column:auto}}
/* Setup: names that open their editor, the location line's opener, and "Not in the lists?" on Billing, + Add. */
.setup .link-btn{all:unset;cursor:pointer;color:var(--teal);font-weight:600}.setup .link-btn:hover{text-decoration:underline}
.location-grid .name-cell{display:flex;align-items:center;gap:8px}
.new-party-links{display:flex;align-items:center;gap:6px;margin:4px 0 8px;font-size:13px}.new-party-links button{min-height:32px;padding:4px 10px;font-size:13px}
.provider-person{margin-bottom:12px}
/* Setup, a billing organization's boxes: CMS-1500 (25, 31-33, 27, 12/13) or NF-3 (provider, TIN), edited in place. */
.org-forms{margin:6px 0 12px}
.form-switch{display:flex;align-items:center;gap:4px;margin-bottom:6px}.form-switch button{min-height:32px;padding:3px 12px;font-size:13px;font-style:italic;border-color:transparent;background:transparent;color:var(--teal)}
.form-switch button.on{border-color:#d9e2dc;background:white;color:var(--ink)}.form-switch .inline-status{margin-left:8px}.inline-status.failed{color:#8c3434}
.org-cms{grid-template-columns:1fr 1.05fr 1.3fr;grid-template-areas:"b25 b25 b25" "b31 b32 b33"}
.org-forms .box{padding:6px 8px;display:flex;flex-direction:column;gap:3px;min-width:0}
.org-forms .box-label{color:var(--cms-label-red, #e0352c);font:700 9.5px/1.2 system-ui,"Segoe UI",sans-serif;letter-spacing:.2px}
.org-forms input.party-field{margin:0;min-height:30px;padding:3px 6px;border:1px solid transparent;background:transparent;border-radius:4px;font-family:ui-monospace,Consolas,monospace;font-size:13.5px}
.org-forms input.party-field:hover{border-color:#dadce0}.org-forms input.party-field:focus{border-color:var(--teal);background:white;outline:none}
.org-forms input.party-field:disabled{color:var(--ink);opacity:1}.org-forms input.party-field.invalid{border-color:#c0504d;background:#fff0ee}
.org-forms input[type=radio].party-field{width:auto;min-height:0}
.org-forms .parts{display:flex;gap:4px}.org-forms .parts .st{width:44px;flex:none}.org-forms .parts .zip{width:96px;flex:none}.org-forms .parts .mi{width:40px;flex:none}.org-forms .parts .cred{width:64px;flex:none}
.org-forms .tax-line{display:flex;align-items:center;gap:10px}.org-forms .tax-line input.party-field{max-width:180px}.org-forms .ssn-ein{display:flex;gap:10px;font-size:12px}.org-forms .ssn-ein label{display:flex;align-items:center;gap:4px;margin:0;font-weight:500}
.org-forms .b33 .box-label{display:flex;align-items:center;gap:6px}.org-forms .b33 .box-label .ph{max-width:150px}
.org-forms .npi-a{display:flex;align-items:center;gap:6px;border-top:1px solid var(--rule,#e8473f);padding-top:3px}.org-forms .npi-a input.party-field{max-width:150px}
.org-forms .b31 .value,.org-forms .b32 .value{font-size:13px}
.nf3-boxes{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:10px}.nf3-boxes .box{border:1px solid #333}.nf3-boxes .box-label{color:#333}
.setup-actions .icon-btn{min-height:34px;padding:4px 8px;color:#a33}
@media (max-width:760px){.org-cms{grid-template-areas:"b25" "b31" "b32" "b33"}.nf3-boxes{grid-template-columns:1fr}}
/* Setup without its own tabs (they are in the top bar): only Expand / Collapse all, at the right. */
.setup-tools{justify-content:flex-end}.setup-tools .expand-tools{margin-left:auto}
/* The account menu's role switcher: the role this tab works as is marked. */
.role-switch{display:flex;flex-direction:column;padding:4px 0;border-bottom:1px solid var(--line)}.role-switch>.muted{font-size:11.5px;padding:2px 14px}
.role-choice{display:flex;align-items:center;gap:8px}.role-choice.current{font-weight:700;background:#e8f0ec}
.switch-roles{display:flex;flex-wrap:wrap;gap:8px}
.new-login{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px;margin:8px 0}.new-login label{margin:0}.new-login input{min-height:36px;margin-top:2px;width:260px}.new-login button{min-height:36px}
.provider-access{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}.provider-access .provider-login{display:flex;align-items:center;gap:8px;margin:0}
.provider-access select{margin:0;min-height:36px;width:auto}.provider-access .issued{flex-basis:100%}.provider-login.linked{gap:12px}
.sign-in-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex-basis:100%}.sign-in-row:not([hidden]) ~ .sign-in-toggle,.sign-in-toggle[aria-expanded=true]{display:none}
.provider-grid .icon-col,.login-cell{text-align:center;justify-self:center}.login-cell form{margin:0}.login-cell .icon-btn{min-height:32px;padding:3px 7px}.login-cell .icon-btn.danger{color:#a33}.login-on{color:var(--teal)}
.sign-in-row{padding:6px 0 10px 34px}.sign-in-row .new-login{margin:0}
/* The clinical note, after today's services (the frequent work first). */
.note-section .clinical-note{margin:0}.note-section .clinical-note textarea{min-height:0;padding:6px 8px}
/* Bill, services heading: "Services", the count in a light green badge, and the add icon. */
.services-head{display:flex;align-items:center;gap:8px}.services-head h3{margin:0}.services-head .line-count{font-size:12px;min-width:26px;padding:3px 8px}
.services-head .add-services-btn,.clear-dx.icon-btn{min-height:32px;padding:3px 6px}.clear-dx.icon-btn{color:#a33}
/* Provider view of a bill: no outer form box, tighter spacing, the service date and the search on the Services line,
   the provider's name in the top bar. */
.form-paper.clinician-focus{border:0;background:transparent;border-radius:0;overflow:visible}
.clinician-focus .form-section{padding:10px 4px}.clinician-focus .focus-head{margin-bottom:6px}
.clinician-focus .services-head{flex-wrap:wrap}.clinician-focus .service-date{color:var(--muted);font-size:13px}


.top-provider{font-weight:600;font-size:14px;margin-right:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
/* Provider view: Add (save icon) and Close (×) on the Services line; no frame around the procedures, no empty band. */



.clinician-focus .table-wrap{border:0;background:transparent;padding:0;margin:0}
.clinician-focus .cms24 tfoot:not(:has(button:not([hidden]))){display:none}
/* Provider view: no empty space under the Services line while there are no services and nothing to copy. */
.clinician-focus .table-wrap:not(:has(tbody.service-entry)):not(:has(tfoot button:not([hidden]))){display:none}
.clinician-focus .services-head{margin-bottom:0}
/* Provider view, service lines: Code · Description · Modifier (editable) · Charge · Units, with column heads. */
.mod-edit{display:none}
/* Each cell pinned to its column on one row (no description: it only helps when picking; the CMS-1500 does not print it). */
.clinician-focus .cms24 tbody.service-entry,.clinician-focus .lines-head{grid-template-columns:80px 110px 100px 80px minmax(0,auto) 40px;justify-content:start}
.clinician-focus .cms24 tbody.service-entry > tr > td{grid-row:1}
.clinician-focus .cms24 td.cpt{grid-column:1}.clinician-focus .cms24 td.mod-edit{display:block;grid-column:2}.clinician-focus .cms24 td.chg{display:block;grid-column:3}
.clinician-focus .cms24 td.units{grid-column:4}.clinician-focus .cms24 td.rm{grid-column:6;text-align:center}
/* The description cell keeps only a copied service's Confirm box. */
.clinician-focus .cms24 tr.supp > td:first-child{grid-column:5}.clinician-focus .cms24 tr.supp > td:first-child input[name=description]{display:none}
.clinician-focus .mod-input{margin:0;min-height:30px;padding:3px 6px;text-transform:uppercase}
.clinician-focus .cms24 td.chg input{border:0;background:transparent;pointer-events:none;text-align:right;margin:0;min-height:30px;padding:3px 6px}
.clinician-focus .cms24 td.units::before{content:none}
.lines-head{display:none}.clinician-focus .lines-head{display:grid;gap:10px;padding:2px 4px;font-size:11.5px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line)}
.clinician-focus .lines-head span:nth-child(3){text-align:right;padding-right:6px}
.remove-line svg{display:block}.remove-line{color:#a33}
/* Provider view: column heads and cells centered. */
.clinician-focus .lines-head span,.clinician-focus .lines-head span:nth-child(3){text-align:center;padding-right:0}
.clinician-focus .cms24 td.cpt,.clinician-focus .cms24 td.mod-edit,.clinician-focus .cms24 td.chg,.clinician-focus .cms24 td.units{text-align:center}
.clinician-focus .cms24 td.cpt input,.clinician-focus .mod-input,.clinician-focus .cms24 td.chg input,.clinician-focus .cms24 td.units input{text-align:center}
/* A biller's bill entry (diagnoses and services first): one day or several days; Full bill / Diagnoses & services. */
.link-btn{all:unset;cursor:pointer;color:var(--teal);font-weight:600;font-size:13.5px}.link-btn:hover{text-decoration:underline}
.services-head .entry-one-day,.services-head .entry-days{margin-left:6px}.services-head .entry-day{width:auto;margin:0;min-height:32px;padding:3px 6px}
.entry-hidden{display:none !important}

.view-switch{margin-left:14px;font-size:13px;font-weight:600}
/* Provider/entry view: a copied service's Confirm box in its own column (5), between Units and the trash can. */
.clinician-focus .cms24 .desc-cell > .confirm-copy{grid-column:5;grid-row:1;justify-self:start}
.clinician-focus .clear-copied.icon-btn{color:#a33;min-height:32px;padding:3px 6px}
.entry-add{display:flex;align-items:center;gap:14px;padding:8px 4px}.entry-add .entry-day{width:auto;margin:0;min-height:32px;padding:3px 6px}
/* Provider/entry view lines: Date · Code · Modifier · Charge · Units · Confirm · trash; the add links beside "Same as last visit". */
.date-edit{display:none}
.clinician-focus .cms24 tbody.service-entry,.clinician-focus .lines-head{grid-template-columns:130px 80px 110px 100px 80px minmax(0,auto) 40px}
.clinician-focus .cms24 td.date-edit{display:block;grid-column:1}.clinician-focus .cms24 td.cpt{grid-column:2}.clinician-focus .cms24 td.mod-edit{grid-column:3}
.clinician-focus .cms24 td.chg{grid-column:4}.clinician-focus .cms24 td.units{grid-column:5}.clinician-focus .cms24 .desc-cell > .confirm-copy,.clinician-focus .cms24 tr.supp > td:first-child{grid-column:6}
.clinician-focus .cms24 td.rm{grid-column:7}
.clinician-focus .date-input{margin:0;min-height:30px;padding:2px 4px;border:1px solid transparent;background:transparent;font-size:13px}.clinician-focus .date-input:hover,.clinician-focus .date-input:focus{border-color:#dadce0;background:white}
.clinician-focus .lines-head span:nth-child(4){text-align:center}
.clinician-focus .cms24 td.line-tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:8px 4px}.clinician-focus .cms24 td.line-tools .entry-day{width:auto;margin:0;min-height:32px;padding:3px 6px}
.clinician-focus .table-wrap:not(:has(tbody.service-entry)) .lines-head{display:none}
/* Bill page, patient boxes: the carrier above box 1 at the top right, outside the red grid, as the form prints it;
   "Bill to" (several insurances only) at the section's top right. */
.patient-view .cms-patient .box.top-note,.patient-view .cms-patient .box.payer{border-color:transparent;background:transparent}
.patient-view .cms-patient .box.payer .box-label{display:none}
.patient-view .cms-patient .box.payer input[name=payer]{border:0;background:transparent;padding:0;min-height:0;font-family:ui-monospace,Consolas,monospace;font-size:14px}
.patient-view .cms-patient .box.payer .payer-adr{font-family:ui-monospace,Consolas,monospace;font-size:13px;color:var(--ink)}
.patient-view .bill-payer{display:flex;justify-content:flex-end;margin:0 0 6px}.patient-view .bill-payer label{display:flex;align-items:center;gap:8px;margin:0;font-size:13px}.patient-view .bill-payer select{margin:0;width:auto;min-height:34px}
.patient-banner .delete-bill{margin:0 0 0 10px;display:inline-flex}.patient-banner .delete-bill .icon-btn{min-height:32px;padding:3px 7px;color:#a33}
/* Case form: a narrower middle column (box 10, 15), so box 14's date and qualifier fit on one line. */
.cms-case{grid-template-columns:37fr 26fr 37fr}
.cms-case .b14 .parts,.cms-case .b14{flex-wrap:nowrap}
/* Date boxes: as wide as a date, not the whole cell. */
input[type=date]{width:auto;max-width:100%}
/* A date box with no value stays blank: the browser's "mm/dd/yyyy" hint shows only while it is being filled in. */
input[type=date].empty-date:not(:focus)::-webkit-datetime-edit{color:transparent}
/* Date boxes: just "08/01/2026" and the calendar icon. */
input[type=date],.cms-case input[type=date],.patient-panel input[type=date]{width:90px;flex:0 0 auto;padding-left:6px;padding-right:4px}
.clinician-focus .date-input{width:90px}
/* Case form dates as mm/dd/yy: a text box and a calendar icon; the real date box is kept, hidden, for the calendar. */
.mdy-date{position:relative;display:inline-flex;align-items:center;gap:2px}
.mdy-date .mdy-text{width:72px;margin:0;padding:5px 6px;font-variant-numeric:tabular-nums}
.mdy-date .mdy-pick{min-height:30px;padding:3px 5px}
.mdy-date .mdy-real{position:absolute;left:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;padding:0;border:0;margin:0}
/* Just wide enough for "10/05/26". */
.cms-case .mdy-date .mdy-text{width:72px;min-width:0;flex:0 0 72px;padding:4px 5px;font-size:14px}
.cms-case .mdy-date .mdy-pick{padding:3px 3px}
/* Sign out: an icon at the end of the top bar (every role). */
.top-signout{margin:0 0 0 6px;display:flex}.top-signout .icon-btn{min-height:36px;padding:4px 8px;color:var(--muted)}.top-signout .icon-btn:hover{color:var(--ink)}
/* Super-admin, eFile responses: answered batches muted below the waiting ones. */
.efile-responses tr.done td{color:var(--muted)}.efile-responses .efile-dir strong{color:var(--ink)}
.response-link{margin-left:8px;font-size:13px;font-weight:600}
/* Patients: New bill as an icon right after the name (billers). */
.patient-table td.name{white-space:nowrap}.patient-table td.name .name-toggle{max-width:calc(100% - 34px);vertical-align:middle}
.patient-table td.name .bill-toggle{min-height:28px;padding:2px 5px;margin-left:4px;vertical-align:middle;color:var(--teal)}
/* Patients: the name and the New bill icon on one line; a long name shortens, the icon stays. */
.patient-table td.name .name-line{display:flex;align-items:center;gap:4px;min-width:0}
.patient-table td.name .name-line .name-toggle{display:inline-block;min-width:0;flex:0 1 auto}
.patient-table td.name .name-line .bill-toggle{flex:none;margin-left:2px}
/* Patients (front desk): sex as a colored chip, age in years. */
.sex-chip{display:inline-block;min-width:22px;padding:1px 6px;border-radius:10px;font-size:12px;font-weight:700;text-align:center}
.sex-chip.male{background:#e3eefb;color:#2a5d9f}.sex-chip.female{background:#fbe6ef;color:#a3376a}
.patient-table th.num,.patient-table td.num{text-align:right}
/* Bill: the save status as a small notice at the bottom right, hidden once saved. */
.save-bar{position:fixed;right:20px;bottom:20px;padding:8px 16px;border-radius:20px;box-shadow:0 4px 14px #0002;z-index:30;background:#ecf3ea}.save-bar.idle{display:none}
.save-bar span{flex:none}
/* The clinical note: below the CMS-1500, plainly (it never prints). */
.note-panel{margin-top:16px}.note-panel .clinical-note{margin:0}.note-panel .note-title{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:6px}
.note-panel textarea{min-height:0}
/* Boxes 31-33: the bill's provider, location and organization picked inside them. */
.cms-bottom .box-pick{margin:2px 0 4px;min-height:32px;padding:3px 6px;font-size:13.5px;width:100%;max-width:100%}
/* Bill: a pre-scrub problem marked on its box (tooltip: the message). */
.scrub-mark{outline:2px solid #c0504d;outline-offset:-2px;background-color:#fff4f3 !important;cursor:help}
section.scrub-mark{outline-offset:2px;border-radius:4px}
/* A field that cannot be typed in (a read-only or closed view) with no value shows nothing, not its entry hint. */
input:read-only::placeholder,input:disabled::placeholder,textarea:read-only::placeholder,textarea:disabled::placeholder,
fieldset:disabled input::placeholder,fieldset:disabled textarea::placeholder{color:transparent}
/* Pre-scrub marks stand out from the CMS form's own red lines: a thick orange outline, a warm fill, a ⚠ badge. */
.scrub-mark{outline:3px solid #e8590c !important;outline-offset:-3px;background-color:#fff1e6 !important;position:relative}
.scrub-mark::after{content:"⚠";position:absolute;top:2px;right:4px;font-size:14px;line-height:1;color:#e8590c;pointer-events:none}
section.scrub-mark{outline-offset:2px}
/* A bill's case edited in place (billers): closing or reopening the case is done on the Patients page. */
.case-edit .close-case,.case-edit [form^="reopen-"],.case-edit [form^="close-"]{display:none}
/* A bill's box 10: the case picker (+ New case) above the case's 10a-c answers; 11b the case's claim number. */
.case-slot{display:flex;flex-direction:column;gap:3px;margin-top:2px}
.case-slot-pick{display:flex;align-items:center;gap:4px}.case-slot-pick form{flex:1;margin:0;min-width:0}
.case-slot-pick select{margin:0;min-height:30px;padding:2px 6px;font-size:13px;width:100%}
.case-slot-pick .new-case-btn{min-height:30px;padding:2px 9px;font-size:16px;font-weight:700;color:var(--teal)}
.case-slot .tick-line{display:flex;align-items:center;gap:8px;font:600 10.5px system-ui,sans-serif;color:var(--cms-label-red, #e0352c)}
.case-slot .tick-line > span:first-child{flex:1 1 auto;white-space:nowrap}.case-slot .tick-line > span:first-child small{display:none}
.case-slot .tick-choice{display:inline-flex;align-items:center;gap:3px;margin:0;font-weight:600}
.case-slot .place select{margin:0;min-height:24px;padding:0 4px;font-size:12px;width:auto}
.case-slot:not(.is-auto) .place{visibility:hidden}.case-slot.is-auto .place{visibility:visible}
input.case-claim{margin:2px 0 0;min-height:30px;padding:3px 6px;font-size:13.5px}
/* The case's boxes 14-18 continue the boxes above (no own heading on the full bill). */
.form-paper:not(.clinician-focus) #case{padding-top:6px}
/* A workers' comp bill: boxes 4 and 7 hold the case's employer (the insured) instead of the patient's insured. */
.case-employer:not(.is-employment){display:none}
.cms-top .insured-box:has(> .case-employer.is-employment){background:#fff}
.cms-top .insured-box:has(> .case-employer.is-employment) > :not(.case-employer):not(.box-label){display:none !important}
.cms-top .insured-box .case-employer.is-employment,.cms-top .insured-box .case-employer.is-employment .pair{display:flex}
.cms-top .insured-box .case-employer.is-employment input{display:block;width:100%}
.case-employer .pair > label{flex:1}.case-employer .pair > label.nb{flex:0 0 42%}
input.case-input{margin:2px 0 0;min-height:30px;padding:3px 6px;font-size:13.5px}
fieldset.readonly .case-slot input:focus{outline:2px solid var(--teal);background-color:#fff}
.case-need{outline:3px solid #e8590c !important;outline-offset:-3px;background-color:#fff1e6 !important;position:relative;cursor:help}
.case-need::after{content:"⚠";position:absolute;top:2px;right:4px;font-size:14px;line-height:1;color:#e8590c;pointer-events:none}
/* The bill's PDFs as icons (tooltip names each). */
.print-cms a.icon-link{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:6px;color:var(--teal)}.print-cms a.icon-link:hover{background:#e6f0ec}
/* The full bill reads like the paper form: tight rows, one header line (Delete last, it is rarely used). */
.form-paper:not(.clinician-focus) .cms-patient .box,.form-paper:not(.clinician-focus) .cms-case .box{padding:2px 6px 3px;gap:1px}
.form-paper:not(.clinician-focus) .cms-patient input:not([type=radio]):not([type=checkbox]),.form-paper:not(.clinician-focus) .cms-case input:not([type=radio]):not([type=checkbox]),.form-paper:not(.clinician-focus) .cms-case select{min-height:24px;padding-top:1px;padding-bottom:1px}
.form-paper:not(.clinician-focus) .cms-patient .value{min-height:20px;padding:0 2px;line-height:1.35}
.form-paper:not(.clinician-focus) .cms-patient .pair > label{gap:1px}
.form-paper:not(.clinician-focus) .case-slot{gap:1px;margin-top:0}
.form-paper:not(.clinician-focus) .case-slot-pick select,.form-paper:not(.clinician-focus) .case-slot-pick .new-case-btn,.form-paper:not(.clinician-focus) input.case-claim,.form-paper:not(.clinician-focus) input.case-input{min-height:24px;padding-top:1px;padding-bottom:1px}
.form-paper:not(.clinician-focus) .cms-case .pair17{min-height:24px;padding:2px 6px}
.form-paper:not(.clinician-focus) #patient{margin-bottom:0;padding-bottom:0}
.form-paper:not(.clinician-focus) #case{padding-top:0;margin-top:-1px}
.form-paper:not(.clinician-focus) .case-form .case-carrier.not-printed,.form-paper:not(.clinician-focus) .case-form .employer.not-printed{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:6px 0 0;padding:5px 10px}
.case-form label.np-field{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:650;color:var(--muted)}
.case-form label.np-field input{min-width:200px}
.form-paper:not(.clinician-focus) .case-form .employer label.wcb{display:flex;align-items:center;gap:6px;margin:0}
.form-paper:not(.clinician-focus) .case-form .employer label.wcb input{margin:0}
.patient-banner.slim{flex-wrap:nowrap;gap:6px 14px}.patient-banner.slim .back{margin:0}
.patient-banner.slim .print-cms{margin-left:-8px;gap:2px}.patient-banner.slim .delete-bill{margin:0 0 0 auto}
@media (max-width:900px){.patient-banner.slim{flex-wrap:wrap}}
/* A workers' comp bill: box 9a holds the case's WCB case number (NY WCB crosswalk) instead of the other insured's policy. */
.cms-top .b9a:has(> .case-employer.is-employment) > :not(.case-employer):not(.box-label){display:none !important}
.clinician-focus .date-input{width:124px}   /* the whole mm/dd/yyyy and its calendar icon */
.filing-table td.row-delete{width:40px;padding:0 4px;text-align:right}.filing-table td.row-delete form{margin:0;display:inline}
.panel-heading h2 .create-batch-btn{margin-left:6px;vertical-align:middle;color:var(--teal);min-height:32px;padding:3px 6px}
.filing-table .take-out{color:var(--teal);min-height:30px;padding:3px 6px}
.batch-actions .print-all,.print-all{color:var(--teal);min-height:34px;padding:4px 7px}.print-all:disabled{color:#9bb5ad}
/* Filing, Batches (as in the old clinic): open = to file (yellow), eFiled = waiting for the response (blue), closed = done (green). */
.filing-table.batches tbody tr td{border-bottom:1px solid #fff}
.filing-table.batches tbody tr.b-open td{background:#fcf5d7}
.filing-table.batches tbody tr.b-efiled td{background:#e6eff9}
.filing-table.batches tbody tr.b-closed td{background:#e1f1e4}
.filing-table.batches tbody tr:hover td{filter:brightness(.97)}
.filing-table.batches tbody tr.b-emptied td{background:#f1f2f0;color:var(--muted)}
.filing-table .efile-btn{color:#c98a00;min-height:30px;padding:3px 6px}.filing-table .efile-btn:hover{color:#a06d00}
.filing-table td.filing-act{width:44px}.filing-table td.filing-act form{margin:0;display:inline}
.filing-table .print-btn{color:var(--teal);min-height:30px;padding:3px 6px}
/* Biller: the New bill icon leads the name (an inactive patient keeps its place blank, so names line up). */
.patient-table td.name .name-line .bill-toggle{margin:0 2px 0 -5px}
.patient-table td.name .name-line .bill-toggle-gap{flex:none;width:23px}
/* Front desk: Book (calendar +) leads the name, as New bill does for billers. */
.patient-table td.name .name-line .book-toggle{flex:none;min-height:28px;padding:2px 5px;margin:0 2px 0 -5px;color:var(--teal)}
/* Patient panel: Edit (pencil), Delete (trash) and Inactivate as icons. */
.patient-panel .view-actions .icon-btn{min-height:32px;padding:3px 7px;color:var(--teal)}.patient-panel .view-actions .icon-btn.danger{color:#a33}
/* Sign out: a door with the arrow leaving it; red on hover, as leaving. */
.top-signout .icon-btn:hover{color:#a33}
/* Sign-in pages: the link under the form (Forgot password?, Back to sign in). */
.login-alt{margin:16px 0 0;text-align:center;font-size:14px}
.efile-responses td.upload-cell{width:40px;padding-right:0}.efile-responses td.upload-cell form{margin:0}.efile-responses td.upload-cell .icon-btn{color:var(--teal);min-height:30px;padding:3px 6px}
/* eFile responses: the folder line is small and plain (the folder name too, with a space after the colon). */
.efile-responses .efile-dir{font-size:13px;font-weight:400;min-height:30px;padding:3px 8px}.efile-responses .efile-dir .efile-dir-name{font-weight:400;margin-left:4px}
/* The account button's menu arrow: a clear chevron in the text colour that flips up while the menu is open. */
.user-menu .caret{display:inline-flex;align-items:center;color:var(--ink);font-size:inherit;margin-left:2px;transition:transform .15s}
.user-menu[open] .caret{transform:rotate(180deg)}
.admin-table td.act .impersonate-btn{color:var(--teal);min-height:30px;padding:3px 6px}
.admin-table td.act{width:80px;padding-right:0;white-space:nowrap}
.admin-table td.act form,.admin-table td.act .message-open{display:inline-block;vertical-align:middle}
/* Staff: Reset password and Deactivate (Reactivate for inactive logins) are icons at the start of each line, not columns. */
@media (min-width:761px){#staff .staff-grid:not(.staff-add){grid-template-columns:72px minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.5fr) 130px}}
#staff .staff-actions{display:flex;align-items:center;gap:4px}#staff .staff-actions form{margin:0}
/* Staff: Add staff (person +) beside the heading; Save in the add line. */
#staff .add-staff-toggle.icon-btn{color:var(--teal);min-height:34px;padding:4px 8px}
#staff .staff-add-buttons .primary.icon-btn{min-height:36px;padding:4px 10px}
/* A refused value, the same everywhere (markFieldError in app.js): the field gets a thick red outline and a light red
   fill, and its reason sits right under it on a light red band with a warning sign. */
input.invalid,select.invalid,textarea.invalid,.mdy-date .mdy-text.invalid{border:2px solid #d93b30 !important;background:#fff1f0 !important;box-shadow:0 0 0 3px #d93b3026 !important}
.field-error{display:block;width:max-content;max-width:100%;margin:4px 0 2px;padding:3px 9px 3px 8px;border-left:3px solid #d93b30;border-radius:3px;
  background:#fdeceb;color:#a3221b;font:600 12.5px/1.35 system-ui,-apple-system,"Segoe UI",sans-serif;white-space:normal}
.field-error::before{content:"\26A0\FE0E  "}

/* Errors and warnings are yellow-amber everywhere (2026-10-15): red belongs to the CMS-1500 form itself.
   Refused fields, their reasons, page notices, the bill's pre-scrub and case marks, and "not saved" statuses. */
:root{--warn-line:#d4a017;--warn-fill:#fff8dc;--warn-band:#fff0b3;--warn-ink:#6b4a00;--warn-mark:#b8860b}
.error{background:var(--warn-fill);border:1px solid #e9cf7a;color:var(--warn-ink)}
input.invalid,select.invalid,textarea.invalid,.mdy-date .mdy-text.invalid,.org-forms input.party-field.invalid{border:2px solid var(--warn-line) !important;background:var(--warn-fill) !important;box-shadow:0 0 0 3px #d4a01733 !important}
.field-error{background:var(--warn-band);border-left-color:var(--warn-line);color:var(--warn-ink)}
.cms-edit .box.has-error,.has-error{background:#fffbea !important;outline:2px solid var(--warn-line)}
.scrub-mark,.case-need{outline:3px solid var(--warn-line) !important;background-color:var(--warn-fill) !important}
.scrub-mark::after,.case-need::after{color:var(--warn-mark)}
.edi-problems a{color:var(--warn-ink)}
.inline-status.failed,.bulk-status.failed,.setup-link .link-status.failed,.payer-form.inline .inline-status.failed,.staff-row .inline-edit.invalid + .inline-status,.staff-row .staff-email:has(.invalid) .inline-status{color:var(--warn-ink)}
.nf3-status.error{background:var(--warn-fill);color:var(--warn-ink)}
.nf3-paper input.field-error{border-bottom-color:var(--warn-line);background:var(--warn-fill)}
/* Staff add line: the same columns as the rows (Save and × where the row icons are), and the small role picker. */
@media (min-width:761px){#staff .staff-grid.staff-add{grid-template-columns:72px minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.5fr) 130px}
  #staff .staff-add-buttons{justify-content:flex-start;gap:2px}}
#staff .staff-add select{min-height:30px;padding:3px 6px;font-size:12px;width:auto;justify-self:start}
#staff .staff-add-buttons .primary.icon-btn{min-height:32px;padding:3px 8px}
#staff .staff-add-role{display:flex;align-items:center;gap:6px}#staff .staff-add-role .primary.icon-btn{min-height:30px;padding:3px 8px}
.login-card .sent-note p{margin:0 0 10px}.login-card .sent-note .muted{font-size:13px}
/* Staff: a set-password link (new login, Reset password) shows on one line, cut with "…" (Copy link copies it whole). */
.issued.issued-link code{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:middle;font-size:12px}
/* Staff: where a line has no Deactivate (your own), a blank of its width keeps the Reset password icons in line. */
#staff .staff-actions .icon-gap{display:inline-block;width:34px;flex:none}
/* Clinicians: the Login icon (give sign-in / turn it off) leads each line; no column heading. */
.provider-grid{grid-template-columns:40px 22px minmax(0,1.3fr) 110px minmax(0,1.8fr) minmax(0,1.3fr)}
.provider-grid .login-cell{justify-self:start}
@media (max-width:860px){.provider-grid{grid-template-columns:40px 22px minmax(0,1fr)}}
/* Add buttons are icons (person +, pin +, building +, page +, book, circle +) with tooltips; teal, beside their heading. */
.add-icon.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:4px 8px;color:var(--teal)}
/* Expand / collapse, the same on every page (2026-10-15): a thin chevron pointing right when closed and down when open.
   Row expanders (Billing, Clinicians, Locations, a patient's cases), the clinician view's folded sections, and lists that
   open (Staff's Inactive, the not-printed fields). */
.expander{border:0;border-radius:4px;background:transparent;font-size:0}
.expander::before,.expander[aria-expanded="true"]::before,.clinician-focus .fold-head::before,
details:not(.user-menu):not(.biller-links) > summary::before{
  content:"";display:inline-block;flex:none;width:7px;height:7px;margin:0 5px 0 3px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(-45deg);transition:transform .15s}
.expander[aria-expanded="true"]::before,.clinician-focus .fold-head[aria-expanded="true"]::before,
details[open]:not(.user-menu):not(.biller-links) > summary::before{transform:rotate(45deg) translate(-1px,-1px)}
.expander:hover{background:#ecf5ef}
.setup-row.inactive .expander,.setup-item.inactive .expander{color:#8f9894}

/* Save buttons are a Save icon (a disk) with a tooltip, 2026-10-15. Add icons stay white with a teal icon (teal when open). */
.save-icon.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:3px 9px}
.list-tools .add-new.add-icon,.cases-head .add-new.add-icon,.add-new.add-icon{background:white;border:1px solid var(--line);color:var(--teal);font-weight:400}
.list-tools .add-new.add-icon:hover,.add-new.add-icon:hover{background:#ecf5ef}
.add-new.add-icon[aria-expanded="true"]{background:var(--teal);border-color:var(--teal);color:white}
/* Expand all / Collapse all: double chevrons. */
.expand-all.icon-btn,.collapse-all.icon-btn{min-height:30px;padding:3px 6px;color:var(--teal)}
/* Lists that open show only the chevron (not also the browser's own triangle). */
details:not(.user-menu):not(.biller-links) > summary{list-style:none}
details:not(.user-menu):not(.biller-links) > summary::-webkit-details-marker{display:none}
/* Boxes that save as they change: "Saving…" / "Saved" under the form. */
.party-cms-form .autosave-status{display:block;min-height:1.2em;margin-top:4px;font-size:12px;color:var(--muted)}
/* The "Not printed" title is a plain block (a list-item title brings back the browser's own triangle). */
.party-cms-form summary.np-title{display:block;list-style:none}.party-cms-form summary.np-title::marker{content:""}

/* Clinicians, NF-3 tab: the clinician as the NF-3 prints them, per organization they work for (old clinic's layout). */
.provider-forms > .form-switch{margin:0 0 8px}
.nf3-clinician{margin:0 0 14px;padding:10px;border:1px solid #9bb1c9;border-radius:4px;background:#fbfcfe;font-size:13px}
.nf3-clinician .nf3-provider{display:flex;flex-direction:column;max-width:340px;padding:6px 8px;border:1px solid #333;margin-bottom:10px}
.nf3-clinician .box-label,.nf3-clinician .nf3-row-label,.nf3-clinician .nf3-th{font:600 10.5px/1.3 system-ui,sans-serif;color:#1e4f8a;letter-spacing:.2px}
.nf3-16 .nf3-row-label{padding:4px 6px;border:1px solid #333;border-bottom:0}
.nf3-16-grid,.nf3-sign-grid{display:grid;grid-template-columns:1.4fr .6fr 1fr 2fr;border:1px solid #333}
.nf3-sign-grid{grid-template-columns:.6fr 1.4fr 1fr 1.4fr;margin-top:10px}
.nf3-16-grid > *,.nf3-sign-grid > *{padding:5px 6px;border-right:1px solid #333;border-top:1px solid #333;min-height:30px}
.nf3-16-grid > .nf3-th,.nf3-sign-grid > .nf3-th{border-top:0;text-align:center}
.nf3-16-grid > :nth-child(4n),.nf3-sign-grid > :nth-child(4n){border-right:0}
.nf3-td input{margin:0;min-height:28px;padding:2px 6px;font-size:13px;width:100%}
.nf3-td .rel-choices{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}.nf3-td .rel-choices label{margin:0;font-size:12.5px}
.nf3-td .rel-choices input[name=relationshipOther]{width:120px}
.nf3-clinician .nf3-17{margin-top:10px;padding:6px 8px;border:1px solid #333}.nf3-clinician .nf3-17 input{width:100%;margin-top:4px}
.nf3-clinician form{margin:0}

/* The Add icon (and Payers' From directory) sits in the list's header, at its first column. */
.head-add{display:flex;align-items:center;gap:6px;min-width:0}
.head-add .icon-btn{min-height:28px;padding:2px 6px;flex:none;text-transform:none;letter-spacing:0}
.head-add > span{min-width:0}
/* The CMS-1500 / NF-3 switch is only as wide as its two tabs (Billing organizations and clinicians). */
.org-forms > .form-switch{display:inline-flex;width:auto;max-width:max-content}
/* Patients (biller): a chevron opens the new-bill line; its New bill icon starts the bill. */
.patient-table td.name .name-line .bill-toggle.expander{margin:0 2px 0 -3px;min-height:0;padding:0;color:var(--teal)}
.start-bill.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:4px 12px}
/* Billing organizations and clinicians: the selected CMS-1500 / NF-3 tab is filled teal, as on the bill. */
.org-forms > .form-switch{border:1px solid var(--teal);border-radius:8px;overflow:hidden;gap:0;padding:0}
.org-forms > .form-switch button{font-style:normal;border:0;border-radius:0;margin:0;background:white;color:var(--teal);min-height:30px;padding:4px 14px}
.org-forms > .form-switch button.on{background:var(--teal);color:white;font-weight:700}
.org-forms > .form-switch button:not(.on):hover{background:#ecf5ef}
.org-forms > .form-switch .inline-status:empty{display:none}
/* Patients (front desk): a chevron opens the booking line; its calendar icon books. */
.patient-table td.name .name-line .book-toggle.expander{margin:0 2px 0 -3px;min-height:0;padding:0;color:var(--teal)}
.book-btn.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:4px 12px}

/* Top bar links carry an icon before their name. */
.top-nav a .nav-icon{flex:none;margin-right:6px;vertical-align:-3px}
.top-nav a:has(.nav-icon){display:inline-flex;align-items:center}
/* Locations: the NF-3 tab shows box 15's place of service with ZIP, and the address printed under the services. */
.location-forms{padding:8px 0}
.location-forms > .form-switch{margin:0 0 8px}
.nf3-location{max-width:760px}
.nf3-15-label{padding:4px 6px;border:1px solid #333;border-bottom:0}
.nf3-15-grid{display:grid;grid-template-columns:1fr 2fr;border:1px solid #333}
.nf3-15-grid > *{padding:5px 6px;border-right:1px solid #333;border-top:1px solid #333;min-height:30px}
.nf3-15-grid > .nf3-th{border-top:0;text-align:center}
.nf3-15-grid > :nth-child(2n){border-right:0}
.nf3-pos,.nf3-address{display:flex;gap:6px;align-items:center}
.nf3-pos .pos-code{flex:none;min-width:2.2em;font-family:"Courier New",monospace;font-weight:600}
.nf3-pos input.zip{width:7em}
.nf3-address input.st{flex:none;width:3.2em}
.nf3-address input:not(.st){flex:1;min-width:0}
.nf3-pos-form{margin:0;flex:none}.nf3-pos input.pos-code{width:3.4em;text-align:center}
.nf3-clinician.nf3-location{border:0;padding:0;background:none}

/* Locations: the list drops POS; box 24B (place of service) is on the CMS-1500 tab. */
.location-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1.4fr) 110px minmax(0,1.6fr)}
@media(max-width:860px){.location-grid{grid-template-columns:minmax(0,1fr) 110px}.location-grid > :nth-child(n){display:revert}.location-grid > :nth-child(2),.location-grid > :nth-child(4){display:none}}
.cms-edit .b24-pos{display:flex;align-items:flex-start;gap:16px}
.cms-edit .b24-pos .pos-cell{display:flex;flex-direction:column;gap:4px;margin:0}
.cms-edit .b24-pos .pos-cell input{width:4em;text-align:center}

/* Locations, CMS-1500 tab: box 24 drawn as on the bill (24A dates stay blank; 24B is the location's place of service). */
.cms-edit .b24-pos{display:block;padding:4px 6px}
.cms24.loc24{min-width:0;width:auto}
.cms24.loc24 td.dt{width:30px}.cms24.loc24 td.pos{width:62px}
.cms24.loc24 td.pos input{height:23px}
/* As on the bill: no rules inside 24A's heading, only under it and before 24B. */
.cms24.loc24 thead th{border:0;background:white}
.cms24.loc24 thead th[rowspan]{border-left:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.cms24.loc24 thead tr:last-child th{border-bottom:1px solid var(--rule)}
.cms24.loc24 thead tr:nth-child(2) th{text-transform:none}
.cms24.loc24{border:1px solid var(--rule)}
.cms24.loc24 td.dt,.cms24.loc24 td.dt+td.dt{border-left:0;border-right:0}
/* Others with nothing left to show (a location: its tax ID, license and phone print nowhere) is not shown. */
details.not-printed:has(.other-fields):not(:has(.other-fields label)){display:none}
/* A clinician's few unprinted fields (Taxonomy) show plainly: no Others heading to open. */
details.not-printed.flat > summary{display:none}
details.not-printed.flat{padding-top:0}
details.not-printed.flat input[name=taxonomy]{width:12em;max-width:100%}
details.not-printed.flat input[name=license]{width:12em;max-width:100%}

/* Taxonomy: label and box on one line; the picker is as wide as its longest name. */
.other-fields label.taxonomy-field{display:flex;align-items:center;gap:8px}
.other-fields label.taxonomy-field > span{flex:none;margin:0}
.other-fields label.taxonomy-field select{width:auto;max-width:100%;min-width:12em;margin:0}
details.not-printed.flat input[name=taxonomy]{width:12em}
details.not-printed.flat .other-fields > label{display:flex;align-items:center;gap:8px}
details.not-printed.flat .other-fields > label > span{flex:none;margin:0}
.party-cms-form details.not-printed.flat .other-fields{justify-content:flex-start;text-align:left}
.party-cms-form details.not-printed.flat .other-fields > label{flex-direction:row;align-items:center;flex:0 1 auto;gap:8px}
.party-cms-form details.not-printed.flat .other-fields > label select{width:auto;max-width:100%;min-width:12em;min-height:30px;padding:3px 8px;font-size:13px}

/* Billing organization: boxes 25 and 33 are plain boxes, as on Clinicians and Locations; 31 and 32 list one per line. */
.org-forms .org-cms input.party-field{min-height:28px;padding:2px 7px;font:13px system-ui,"Segoe UI",sans-serif;border:1px solid #d5ddd8;border-radius:4px;background:#f7f9f8}
.org-forms .org-cms input.party-field:focus{border-color:var(--teal);background:white}
.org-forms .org-cms input[type=radio].party-field{width:auto;min-height:0;padding:0;border-radius:50%}
.org-forms .org-cms .b33 > input.party-field,.org-forms .org-cms .b33 .parts{margin-top:4px}
.org-forms .org-cms .b33 .box-label input.ph{width:11em;margin-left:6px;font-weight:400;letter-spacing:0;text-transform:none}
.org-forms .b31 .value,.org-forms .b32 .value{display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.org-locations li .icon-btn,.org-clinicians li .icon-btn{min-height:26px;padding:2px 5px}
.org-add .icon-btn{min-height:34px;padding:4px 8px}

/* No works-for / bills-at links (2026-10-15): fewer list columns; the clinician's NF-3 tab is box 16 and the WCB rating. */
.org-grid{grid-template-columns:22px minmax(0,1.6fr) minmax(0,1fr) 110px}
.provider-grid{grid-template-columns:40px 22px minmax(0,1.6fr) 110px minmax(0,1.6fr)}
.location-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1.6fr) 110px}
@media(max-width:860px){.location-grid{grid-template-columns:minmax(0,1fr) 110px}.location-grid > :nth-child(n){display:revert}.location-grid > :nth-child(2){display:none}}
.nf3-wcb-grid{grid-template-columns:1fr 1fr 1fr}
.nf3-wcb-grid > *{border-right:1px solid #333}
.nf3-wcb-grid > :nth-child(3n){border-right:0}
.org-forms .org-17{margin-top:10px;padding:6px 8px;border:1px solid #333}.org-forms .org-17 input{width:100%;margin-top:4px}
.org-forms .org-17 form{margin:0}
.location-grid.setup-row.inactive strong,.setup-item.inactive .name-cell strong{color:var(--muted)}
.nf3-boxes .org-17{grid-column:1/-1}

/* Clinicians and Locations: inactive ones under "Inactive (n)" as on Staff; Make inactive / Reactivate leads the row. */
.provider-grid{grid-template-columns:72px 22px minmax(0,1.6fr) 110px minmax(0,1.6fr)}
@media (max-width:860px){.provider-grid{grid-template-columns:72px 22px minmax(0,1fr)}}
.provider-grid .login-cell{display:flex;align-items:center;gap:2px}
.location-grid{grid-template-columns:36px minmax(0,1.4fr) minmax(0,1.6fr) 110px}
@media(max-width:860px){.location-grid{grid-template-columns:36px minmax(0,1fr) 110px}.location-grid > :nth-child(n){display:revert}.location-grid > :nth-child(3){display:none}}
.active-toggle{margin:0;display:inline-flex}.active-toggle .icon-btn{min-height:28px;padding:2px 5px}
.row-icon{display:flex;align-items:center}
.setup-inactive{margin-top:10px}.setup-inactive > summary{padding:6px 0}
.setup-inactive .setup-item,.setup-inactive .setup-row{color:var(--muted)}

/* Billing rules: [delete] Clinician · Location · Billing organization; the add line uses the same columns. */
.rule-grid{display:grid;grid-template-columns:36px minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr);column-gap:12px;align-items:center}
.rule-grid.setup-row{padding:6px 0;border-top:1px solid #eef0ee;font-size:13.5px}
.rule-add{margin:0 0 8px}.rule-add select{width:100%;min-height:34px;margin:0}
.rule-add .rule-org{display:flex;gap:8px;align-items:center}.rule-add .rule-org .icon-btn{flex:none;min-height:34px;padding:4px 8px}
@media(max-width:760px){.rule-grid{grid-template-columns:36px minmax(0,1fr)}.rule-grid > :nth-child(n+3){grid-column:2}}

/* Billing organizations: Make inactive / Reactivate leads the row; inactive ones under "Inactive (n)". */
.org-grid{grid-template-columns:36px 22px minmax(0,1.6fr) minmax(0,1fr) 110px}
@media (max-width:860px){.org-grid{grid-template-columns:36px 22px minmax(0,1fr)}.org-grid > :nth-child(n+4){display:none}}

/* Every CMS-1500 label in the form's red (2026-10-15): the box 25 label link and box 3's M / F options too. */
.cms-bottom .box-link,.cms-bottom a.box-link{color:var(--cms-label-red, #e0352c)}
.cms-top .sex label,.cms-patient .sex label{color:var(--cms-label-red, #e0352c)}
/* Trash cans that remove a chip or a row. */
.chip-trash{display:inline-flex;align-items:center;justify-content:center;min-height:22px;min-width:22px;padding:0 3px;border:0;background:transparent;color:var(--muted);cursor:pointer}
.chip-trash:hover{color:#b3261e}
.role-chip .chip-x svg{display:block}
.small-icon{min-height:28px;padding:2px 6px}
/* Box 16's choices are plain radios; box 17 spans its box. */
.nf3-td .rel-choices input[type=radio]{width:auto;min-height:0;height:auto;padding:0;margin:0 2px 0 0;flex:none}
.nf3-td .rel-choices label{display:inline-flex;align-items:center;white-space:nowrap}
.org-forms .org-17 .filing-owners{display:block;width:100%}.org-forms .org-17 .filing-owners input{width:100%;max-width:none}
/* The old clinic's caduceus logo (white background JPG). */
.brand-logo{display:block;width:34px;height:34px;object-fit:contain;flex:none}
.login-brand .brand-logo{width:44px;height:44px}

/* eFile responses: the responses folder is set here (a folder on the server). */
.efile-dir{display:flex;align-items:center;gap:8px;margin:0;flex:1}
.efile-dir label{display:flex;align-items:center;gap:8px;margin:0;font-size:12.5px;color:var(--muted);flex:1}
.efile-dir input{flex:1;min-width:280px;max-width:640px;margin:0;min-height:32px;padding:3px 8px;font:12.5px ui-monospace,Consolas,monospace}
.efile-dir .icon-btn{min-height:32px;padding:3px 8px}

/* "Saved" after an in-place save: shown briefly, then gone. */
.inline-status.flash{color:var(--teal);font-weight:600;font-size:12.5px;animation:saved-fade 2s ease forwards}
@keyframes saved-fade{0%,70%{opacity:1}100%{opacity:0}}

/* Accounts: active clinicians and locations after Billing orgs. */
.admin-grid.practices{grid-template-columns:60px minmax(0,2fr) 90px 120px 80px 60px 70px 70px 60px 110px}

/* Accounts: the name column keeps room for the Add icon and its title. */
.admin-grid.practices{grid-template-columns:50px minmax(170px,2fr) 100px 120px 76px 76px 86px 56px 70px 96px;column-gap:12px}
.admin-grid.practices .head-add{white-space:nowrap}
/* Accounts: tighter columns so the table fits the page. */
.admin-grid.practices{grid-template-columns:40px minmax(150px,2fr) 90px 104px 64px 64px 72px 48px 60px 78px;column-gap:8px}
/* Clinicians: Expand all / Collapse all sit in the header after the Add icon. */
.provider-grid{grid-template-columns:104px 22px minmax(0,1.6fr) 110px minmax(0,1.6fr)}
@media (max-width:860px){.provider-grid{grid-template-columns:104px 22px minmax(0,1fr)}}
.head-add .expand-all,.head-add .collapse-all{min-height:28px;padding:2px 4px}
/* Expand all / Collapse all drawn like the row chevron (same size, line and color), doubled: two pointing down open
   every row, two pointing right close them. */
.expand-all,.collapse-all{position:relative;width:26px;height:26px;min-height:0;padding:0;border:0;border-radius:4px;background:transparent;color:var(--teal)}
.expand-all:hover,.collapse-all:hover{background:#ecf5ef}
.expand-all svg,.collapse-all svg{display:none}
.expand-all::before,.expand-all::after,.collapse-all::before,.collapse-all::after{
  content:"";position:absolute;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor}
.expand-all::before,.expand-all::after{left:8px;transform:rotate(45deg)}
.expand-all::before{top:4px}.expand-all::after{top:10px}
.collapse-all::before,.collapse-all::after{top:8px;transform:rotate(-45deg)}
.collapse-all::before{left:4px}.collapse-all::after{left:10px}
/* As the row chevron reads (right: click to open, down: click to close): Expand all is two pointing right, Collapse all two pointing down. */
.expand-all::before,.expand-all::after{top:8px;left:auto;transform:rotate(-45deg)}
.expand-all::before{left:4px}.expand-all::after{left:10px}
.collapse-all::before,.collapse-all::after{left:8px;transform:rotate(45deg)}
.collapse-all::before{top:4px}.collapse-all::after{top:10px}
/* Clinicians: column titles as on the super-admin lists (11.5px, plain weight, grey, rule under). */
#provider-list .setup-item-head.setup-cols{font:var(--column-title-font);color:var(--column-title-color);letter-spacing:0;text-transform:none;border-bottom:1px solid #bdcbc1;padding-top:2px;padding-bottom:4px}

/* Clinicians: the name opens the row (no chevron; a chevron only where a row opens two different things). */
.provider-grid{grid-template-columns:104px minmax(0,1.6fr) 110px minmax(0,1.6fr)}
@media (max-width:860px){.provider-grid{grid-template-columns:104px minmax(0,1fr)}}
.name-toggle.row-opener{all:unset;cursor:pointer;font-weight:700;color:var(--ink);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.name-toggle.row-opener:hover,.name-toggle.row-opener[aria-expanded="true"]{color:var(--teal);text-decoration:underline}
.name-toggle.row-opener:focus-visible{outline:2px solid #3c9a82;outline-offset:2px;border-radius:3px}
.setup-inactive .name-toggle.row-opener{color:var(--muted)}
/* Collapse all folds the rows up: two chevrons pointing up (Expand all stays two pointing right, the closed row's arrow). */
.collapse-all::before,.collapse-all::after{left:9px;transform:rotate(-135deg)}
.collapse-all::before{top:7px}.collapse-all::after{top:13px}

/* Impersonation banner: the role this tab works as, and the account's ID. */
.support-banner .support-role{padding:1px 8px;border-radius:10px;background:#f3e3b0;color:#5c4200;font-size:12px;font-weight:600}
.support-banner strong{white-space:nowrap}
/* Locations, box 24: the table is the box (no second frame inside it); only B keeps a rule on its right. */
.cms-edit .b24-pos{padding:0}
.cms24.loc24{border:0;margin:0;height:100%}
.cms24.loc24 tr.line td{border-bottom:0}
.cms24.loc24 thead th[rowspan]{border-right:1px solid var(--rule)}
.cms24.loc24 td.pos{border-right:1px solid var(--rule)}
.cms24.loc24 thead tr:first-child th:first-child{padding-left:6px}

/* Locations, NF-3 tab: box 15 as the printed NF-3 draws it (black rules, Arial heads, Courier values); the place of
   service with ZIP in its column and the address on the line under the services. */
.nf3-loc15{max-width:780px;color:#111;font-family:Arial,Helvetica,sans-serif}
.nf3-loc15-title{font-size:11.5px;padding:2px 0;border-top:2px solid #111;border-bottom:1px solid #111}
.nf3-loc15-grid{display:grid;grid-template-columns:11% 16% 41% 16% 16%}
.nf3-loc15-grid .h{font-size:10.5px;line-height:1.25;text-align:center;padding:2px 3px;border-right:1px solid #111;border-bottom:1px solid #111}
.nf3-loc15-grid .h:nth-child(5n){border-right:0}
.nf3-loc15-grid .v{min-height:30px;padding:3px;border-right:1px solid #111;display:flex;align-items:center;gap:8px}
.nf3-loc15-grid .v:nth-child(5n){border-right:0}
.nf3-loc15 input{margin:0;min-height:26px;padding:1px 4px;border:1px solid transparent;border-radius:3px;background:transparent;font:700 13px "Courier New",monospace;color:#111}
.nf3-loc15 input:hover{border-color:#d5ddd8}.nf3-loc15 input:focus{border-color:var(--teal);background:white;outline:none}
.nf3-loc15 .place .nf3-pos-form{margin:0;flex:none}.nf3-loc15 .place input[name=placeOfService]{width:3em;text-align:left}
.nf3-loc15 .place input.zip{width:6.5em}
.nf3-loc15-foot{display:grid;grid-template-columns:1fr auto 16%;align-items:center;border-bottom:1px solid #111}
.nf3-loc15-foot .addr{display:flex;align-items:center;gap:2px;padding-left:12%}
.nf3-loc15-foot .addr input.street{width:16em}.nf3-loc15-foot .addr input.city{width:9em}.nf3-loc15-foot .addr input.state{width:2.6em}.nf3-loc15-foot .addr input.zip{width:6.5em}
.nf3-loc15-foot .addr > span{font:700 13px "Courier New",monospace}
.nf3-loc15-foot .total{font-size:11.5px;padding:0 4px;text-align:right}
.nf3-loc15-foot .total-box{min-height:24px;border:1px solid #111;border-bottom:0}

/* The address (printed under the services) is edited below the box, in ordinary boxes. */
.nf3-loc15-address{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:10px}
.nf3-loc15-address .lbl{font:600 10.5px Arial,Helvetica,sans-serif;color:#1e4f8a;margin-right:4px}
.nf3-loc15-address input{border:1px solid #d5ddd8;background:#f7f9f8;font:13px system-ui,"Segoe UI",sans-serif;font-weight:400;min-height:30px}
.nf3-loc15-address input.street{width:18em}.nf3-loc15-address input.city{width:10em}.nf3-loc15-address input.state{width:3.2em}.nf3-loc15-address input.zip{width:7em}

/* Under box 15, as on the form: the address (left, edited in place) and TOTAL CHARGES TO DATE $ with its box under Charges. */
.nf3-loc15-grid{border-bottom:1px solid #111}
.nf3-loc15-address{display:grid;grid-template-columns:68% 16% 16%;align-items:center;gap:0;margin-top:0;max-width:780px}
.nf3-loc15-address .addr{display:flex;align-items:center;gap:4px;padding-left:9%}
.nf3-loc15-address input{border:1px solid transparent;background:transparent;font:700 13px "Courier New",monospace;color:#111;min-height:24px;padding:1px 3px}
.nf3-loc15-address input:hover{border-color:#d5ddd8}.nf3-loc15-address input:focus{border-color:var(--teal);background:white;outline:none}
.nf3-loc15-address input.street{width:15em}.nf3-loc15-address input.city{width:8em}.nf3-loc15-address input.state{width:2.4em}.nf3-loc15-address input.zip{width:5.6em}
.nf3-loc15-address .total{font:11.5px Arial,Helvetica,sans-serif;text-align:right;padding-right:4px;white-space:nowrap}
.nf3-loc15-address .total-box{min-height:22px;border:1px solid #111;border-top:0}
.nf3-loc15-address{grid-template-columns:minmax(0,1fr) auto 16%}
.nf3-loc15-address .total{padding:0 6px 0 12px}
/* Locations, box 24: A (dates) is not the location's, so it looks like an unused box (as 31 and 33); only B is edited. */
.cms24.loc24 thead tr th:not([rowspan]){color:#d9a19d;background:#f6f5f2}
.cms24.loc24 td.dt{background:#f6f5f2}
.cms-edit .b24-pos{background:#f6f5f2}
.cms24.loc24 thead th[rowspan],.cms24.loc24 td.pos{background:white}
/* Saved boxes on Setup read as printed text: the box shows only when clicked into (or pointed at, lightly). */
form.party-cms-form[data-autosave=true] .cms-edit input:not([type=radio]):not([type=checkbox]){border-color:transparent;background:transparent;box-shadow:none}
form.party-cms-form[data-autosave=true] .cms-edit input:not([type=radio]):not([type=checkbox]):hover{border-color:#e3e7e4}
form.party-cms-form[data-autosave=true] .cms-edit input:not([type=radio]):not([type=checkbox]):focus{border-color:var(--teal);background:white;outline:none}
form.party-cms-form[data-autosave=true] .cms-edit input.invalid{border-color:var(--warn-line,#d9a400);background:#fffbea}
/* Box 24B on a location: the same faint outline on pointing, the full box when clicked into. */
.cms24.loc24 td.pos input{border:1px solid transparent;border-radius:3px;background:transparent}
.cms24.loc24 td.pos input:hover{border-color:#e3e7e4}
.cms24.loc24 td.pos input:focus{border-color:var(--teal);background:white;outline:none}
/* Inset from the cell's red rules so its outline shows, as box 32's fields do. */
.cms24.loc24 td.pos{padding:3px 4px}
.cms24.loc24 td.pos input{width:100%;height:26px;margin:0}

/* Booking line: each picker labelled, as on the New bill line. */
.appt-history .appt-add .appt-field{display:flex;flex-direction:column;gap:2px;margin:0;font-size:11.5px;font-weight:600;color:var(--muted)}
.appt-history .appt-add .appt-pickers{display:flex;gap:10px;flex-wrap:wrap}
.appt-history .appt-add .add-actions{align-self:end;padding-top:16px}
/* Booking line: labels on one line, boxes on the next (all cells bottom-aligned). */
.appt-history .appt-add td{vertical-align:bottom}
.appt-history .appt-add .appt-pickers{align-items:flex-end}
.appt-history .appt-add .appt-field{justify-content:flex-end}
.appt-history .appt-add .add-actions{padding-top:0}

/* Booking line: the pickers stay on one line (they shrink rather than wrap); the Book icon sits level with the boxes. */
.appt-history .appt-add .appt-pickers{flex-wrap:nowrap}
.appt-history .appt-add .appt-pickers select{max-width:240px}
.appt-history .appt-add td.add-actions{display:table-cell;vertical-align:bottom}

/* Appointment history: the clinician and the location, under the booking line's Clinician and Location. */
.appt-history td.who{white-space:nowrap}
.appt-history td.who .who-name,.appt-history td.who .who-place{display:inline-block;vertical-align:middle;width:240px;margin-right:10px;overflow:hidden;text-overflow:ellipsis}
.appt-history td.who .who-place{width:240px;margin-right:0}

/* A patient's appointments: a table like the others; the action icon first; New appointment in the header. */
.appt-table{width:100%;border-collapse:collapse}
.appt-table thead th{text-align:left;font-size:11.5px;font-weight:500;color:#5f6368;padding:2px 12px 4px 0;border-bottom:1px solid #e0e3e0;white-space:nowrap}
.appt-table th.act,.appt-table td.act{width:34px;padding-right:6px}
.appt-table td{padding:4px 12px 4px 0;vertical-align:middle}
.appt-table td.act .icon-btn{display:inline-flex;min-height:26px;padding:2px 4px}
.appt-table td.who,.appt-table td.place{max-width:240px;overflow:hidden;text-overflow:ellipsis}
.appt-table .appt-add td{padding:6px 12px 6px 0;vertical-align:middle;border-bottom:1px dashed #e0e3e0}
.appt-table .appt-add select,.appt-table .appt-add input{max-width:240px}
.appt-table .head-add{display:inline-flex;align-items:center;gap:6px}
.appt-table .head-add .icon-btn{min-height:26px;padding:2px 5px}
.appt-table thead th{text-transform:none;letter-spacing:0;font-size:11.5px;font-weight:500;color:#5f6368}

/* Billing rules: each row's pickers read as text until pointed at or clicked; a change saves at once. */
.rule-grid.setup-row select{width:100%;margin:0;min-height:30px;padding:2px 6px;font-size:13.5px;border:1px solid transparent;background:transparent;border-radius:4px;-webkit-appearance:none;appearance:none}
.rule-grid.setup-row select:hover{border-color:#e3e7e4;background:#fbfcfb}
.rule-grid.setup-row select:focus{border-color:var(--teal);background:white;outline:none;-webkit-appearance:auto;appearance:auto}
.rule-grid.setup-row .rule-org{display:flex;align-items:center;gap:8px}
.rule-grid.setup-row .rule-org .inline-status{flex:none}

/* Impersonation banner: a mask for "impersonating", a return arrow to go back. */
.support-banner .support-mask{flex:none;color:#5c4200}
.support-banner .support-return{display:inline-flex;align-items:center;justify-content:center;min-height:30px;width:34px;padding:0;border-radius:16px}

.support-banner .support-role{display:inline-flex;align-items:center;gap:4px}
.support-banner .support-role .role-icon{width:14px;height:14px}

/* Biller entry: One day / Several days as two icons above the calendars (the date box beside them for one day). */
.calendars.with-modes{flex-wrap:wrap;align-content:flex-start}
.calendars.with-modes .entry-modes{flex-basis:100%;display:flex;align-items:center;gap:6px;margin-bottom:6px}
.entry-modes .icon-btn{min-height:30px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--teal)}
.entry-modes .icon-btn[aria-pressed=true]{background:var(--teal);color:white;border-color:var(--teal)}
.entry-modes input.entry-day{margin:0;min-height:30px;padding:2px 6px;font-size:13px;width:auto}


.add-services .calendars.with-modes{align-self:start}
/* The icons row spans the calendars' width without widening the column (a wrapping flex row counted it twice). */
.calendars.with-modes{display:grid;grid-template-columns:auto auto auto;align-items:center;column-gap:4px}
.calendars.with-modes .entry-modes{grid-column:1 / -1}

/* Bill, services view: the boxes that change (date, modifier, units) read as text; a faint outline when pointed at,
   the teal box when clicked in. The code is shown, not edited. */
.clinician-focus #service-lines input:not([type=checkbox]){border:1px solid transparent;border-radius:4px;background:transparent;box-shadow:none}
.clinician-focus #service-lines input:not([type=checkbox]):not([readonly]):hover{border-color:#e3e7e4}
.clinician-focus #service-lines input:not([type=checkbox]):not([readonly]):focus{border-color:var(--teal);background:white;outline:none}
.clinician-focus #service-lines input[name=code][readonly]{cursor:default;pointer-events:none}
/* Services view: Units centered under its title (the box fills the column, its number centered). */
.clinician-focus .lines-head span:nth-child(5){text-align:center}
.clinician-focus .cms24 tbody.service-entry input[name=units]{width:100%;text-align:center;box-sizing:border-box}
.clinician-focus .cms24 tbody.service-entry td:has(> input[name=units]){justify-self:stretch;width:auto;text-align:center}
/* Bill, Case: the New case icon first, next to the label; the explanation is the label's tooltip. */
.case-pick .new-case-btn{order:-1;margin-left:0}
.case-pick h3 .case-none{font-weight:500;color:var(--muted)}
.case-pick h3[title]{cursor:help}
/* Biller entry, several days: the months stacked (earliest on top), the arrows above and below them pointing up and down. */








/* One day: the date box on its own line under the two icons. */
.calendars.with-modes .entry-modes{flex-wrap:wrap}
.calendars.with-modes .entry-modes input.entry-day{flex-basis:100%;margin-top:4px}
.calendars.with-modes .entry-modes input.entry-day{flex:0 0 auto;width:9.5em}
/* Icons on one line, the (narrow) date box on the next. */
.calendars.with-modes .entry-modes{display:grid;grid-template-columns:auto auto;justify-content:start;gap:6px}
.calendars.with-modes .entry-modes input.entry-day{grid-column:1 / -1;width:9.5em;margin-top:0}

/* Patients: Appointments and Bills counts, each opening its part of the patient's list. */
.patient-table th.hist-head{width:96px;text-align:center}
.patient-table td.hist-cell{text-align:center}
.patient-table :is(.history-toggle[data-view], a.bills-count){display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:26px;min-width:34px;padding:1px 10px;border-radius:13px;font-weight:700;color:var(--teal);background:#e9f3ee;border:0}
.patient-table .history-toggle[data-view][aria-expanded=true]{background:var(--teal);color:white}
.history-row[data-view=appts] .appt-table tbody tr.bill-only{display:none}
.history-row[data-view=bills] .appt-table tbody tr:not(.has-bill){display:none}
.history-row[data-view=bills] .appt-table thead .head-add .icon-btn{display:none}

.history-row[data-view=bills] .appt-history:not(.appt-table){display:none}

.patient-table th.hist-head{width:52px;text-align:center}.patient-table th.hist-head svg{vertical-align:middle;color:var(--muted)}

/* A patient's list: Appointments shows appointment times, status and reason; Bills shows each bill's date of service and
   whether it is a draft or filed (no reason). Column titles centered. */
.appt-table thead th{text-align:center}
.appt-table thead th .head-add{justify-content:center}
.history-row .for-bills{display:none}
.history-row[data-view=bills] .for-bills{display:inline}
.history-row[data-view=bills] .status.for-bills{display:inline-block}
.history-row[data-view=bills] .for-appts,.history-row[data-view=bills] .reason-col{display:none}

/* Locations: the alias, edited in place (reads as text until pointed at or clicked). */
.location-grid{grid-template-columns:36px minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.4fr) 110px}
@media(max-width:860px){.location-grid{grid-template-columns:36px minmax(0,1fr) minmax(0,1fr)}.location-grid > :nth-child(n){display:revert}.location-grid > :nth-child(4),.location-grid > :nth-child(5){display:none}}
.alias-cell form{display:flex;align-items:center;gap:6px;margin:0}
.alias-cell input{width:100%;margin:0;min-height:28px;padding:2px 6px;font-size:13.5px;border:1px solid transparent;background:transparent;border-radius:4px}
.alias-cell input:hover{border-color:#e3e7e4}.alias-cell input:focus{border-color:var(--teal);background:white;outline:none}
/* A patient's list: each title over its values — text columns start where their values start; Status centered over its chips. */
.appt-table thead th{text-align:left}
.appt-table thead th .head-add{justify-content:flex-start}
.appt-table thead th:nth-child(6),.appt-table tbody td:nth-child(6){text-align:center}

/* Patients (biller): New bill is an icon next to the bill count (the line opens no chevron any more). */
.patient-table td.hist-cell{white-space:nowrap}
.patient-table td.hist-cell .add-bill{min-height:26px;padding:2px 4px;margin-left:4px;color:var(--teal);vertical-align:middle}
.patient-table th.hist-head{width:auto;min-width:52px}

.patient-table td.hist-cell .count-gap{display:inline-block;width:34px;vertical-align:middle}
.patient-table td.hist-cell{text-align:left;padding-left:14px}

.patient-table td.hist-cell{text-align:center;padding-left:0}
.patient-table td.hist-cell.bills-cell{text-align:left;padding-left:14px}
.patient-table th.hist-head.bills-head{text-align:left;padding-left:22px}

/* Setup lists (2026-10-16): Add, Expand all and Collapse all sit in the name column's title; a row opens from its name. */
.org-grid{grid-template-columns:36px minmax(0,1.6fr) minmax(0,1fr) 110px}
@media (max-width:860px){.org-grid{grid-template-columns:36px minmax(0,1fr)}.org-grid > :nth-child(n+3){display:none}}
.provider-grid{grid-template-columns:72px minmax(0,1.6fr) 110px minmax(0,1.6fr)}
@media (max-width:860px){.provider-grid{grid-template-columns:72px minmax(0,1fr)}}
.setup-cols .head-add,.setup-head .head-add{display:flex;align-items:center;gap:4px}
.head-add > span{margin-left:4px}

/* A patient's case opens from its name (no chevron). */
.case-line .name-toggle.row-opener{font-weight:700}

/* Staff and the super-admin lists: the Add icon beside the name column's title. */
.staff-head .head-add,.admin-grid.head .head-add,.admin-cols.head .head-add{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.staff-head .head-add .icon-btn,.admin-grid.head .head-add .icon-btn,.admin-cols.head .head-add .icon-btn{min-height:26px;padding:2px 5px}
/* Column titles everywhere look like the super-admin Accounts page (2026-10-16): small, plain, grey, a light rule under. */
.setup-item-head.setup-cols,.setup-grid.setup-head,.rule-grid.setup-head,.staff-grid.staff-head,.payer-grid.payer-head,
.admin-grid.head,.admin-row.admin-cols.head,.lines-head{font-family:system-ui,"Segoe UI",sans-serif;font-size:12px;font-weight:700;color:#454b52;letter-spacing:0;text-transform:none;background:#edf2ee;border-bottom:1px solid #bdcbc1}
.patient-table thead th,.bills-table thead th,.filing-table thead th,.admin-table thead th,.appt-table thead th,.payments thead th{
  font-family:system-ui,"Segoe UI",sans-serif;font-size:12px;font-weight:700;color:#454b52;letter-spacing:0;text-transform:none;background:#edf2ee;border-bottom:1px solid #bdcbc1}
.setup-head > span,.staff-head > span,.payer-head > span,.setup-cols > span{text-transform:none;letter-spacing:0}
/* Temporary confirmations float below the header, so appearing and disappearing never moves page content. */
.flash-notes{position:fixed;top:88px;left:50%;z-index:80;display:flex;flex-direction:column;align-items:center;gap:8px;width:calc(100vw - 32px);max-width:760px;transform:translateX(-50%);pointer-events:none}
.flash-notes .success.flash-note{display:block;width:max-content;max-width:100%;margin:0;box-shadow:0 5px 18px #2036342b;animation:note-fade 3.2s ease forwards}
@keyframes note-fade{0%{opacity:0;transform:translateY(-8px)}8%,75%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-4px)}}
@media(max-width:780px){.flash-notes{top:80px}}
/* Fields that save in place read as printed text (2026-10-16): no box at rest, a faint outline when pointed at, the teal
   box when clicked in; amber when refused. Billing organization tabs, the bill's boxes and its diagnoses. */
.org-forms .org-cms input.party-field,.org-forms .nf3-boxes input.party-field{border:1px solid transparent;background:transparent;font:13px system-ui,"Segoe UI",sans-serif}
.org-forms input.party-field:not([type=radio]):hover{border-color:#e3e7e4}
.org-forms input.party-field:not([type=radio]):focus{border-color:var(--teal);background:white;outline:none}
.form-paper .cms-patient input:not([type=radio]):not([type=checkbox]),.form-paper .cms-case input:not([type=radio]):not([type=checkbox]),
.form-paper .cms-bill input:not([type=radio]):not([type=checkbox]),.form-paper .cms-patient select,.form-paper .cms-case select,.form-paper .cms-bill select,
.clinician-focus .cms21 .slot input{border:1px solid transparent;background:transparent;box-shadow:none}
.form-paper .cms-patient input:not([type=radio]):not([type=checkbox]):not(:disabled):hover,.form-paper .cms-case input:not([type=radio]):not([type=checkbox]):not(:disabled):hover,
.form-paper .cms-bill input:not([type=radio]):not([type=checkbox]):not(:disabled):hover,.form-paper .cms-patient select:not(:disabled):hover,.form-paper .cms-case select:not(:disabled):hover,
.form-paper .cms-bill select:not(:disabled):hover,.clinician-focus .cms21 .slot input:hover{border-color:#e3e7e4}
.form-paper .cms-patient input:not([type=radio]):not([type=checkbox]):focus,.form-paper .cms-case input:not([type=radio]):not([type=checkbox]):focus,
.form-paper .cms-bill input:not([type=radio]):not([type=checkbox]):focus,.form-paper .cms-patient select:focus,.form-paper .cms-case select:focus,
.form-paper .cms-bill select:focus,.clinician-focus .cms21 .slot input:focus{border-color:var(--teal);background:white;outline:none}
.form-paper input.invalid,.form-paper select.invalid,.org-forms input.party-field.invalid{border-color:var(--warn-line,#d9a400) !important;background:#fffbea !important}
/* NF-3 tabs on Setup drawn like the printed NF-3 (2026-10-16), as the location's box 15: black rules, Arial titles,
   bold Courier values; fields read as text until pointed at or clicked. Clinicians (box 16, WCB rating) and billing
   organizations (provider's name and address, IRS/TIN, box 17). */
.nf3-clinician{border:0;padding:0;background:none;color:#111;font-family:Arial,Helvetica,sans-serif;max-width:860px}
.nf3-clinician .box-label,.nf3-clinician .nf3-row-label,.nf3-clinician .nf3-th,.nf3-boxes .box-label,.org-forms .org-17 .box-label{font:400 10.5px/1.3 Arial,Helvetica,sans-serif;color:#111;letter-spacing:0;text-transform:none}
.nf3-clinician .nf3-16 .nf3-row-label{border:0;border-top:2px solid #111;border-bottom:1px solid #111;padding:2px 0;font-size:11.5px}
.nf3-16-grid,.nf3-sign-grid{border:0;border-bottom:1px solid #111}
.nf3-16-grid > *,.nf3-sign-grid > *{border-top:0}
.nf3-16-grid > .nf3-th,.nf3-sign-grid > .nf3-th{border-bottom:1px solid #111}
.nf3-clinician .nf3-td,.nf3-clinician .nf3-td input{font:700 13px "Courier New",monospace;color:#111}
.nf3-clinician .nf3-td .rel-choices label{font:400 11px Arial,Helvetica,sans-serif}
.nf3-clinician .nf3-td input:not([type=radio]),.nf3-boxes input.party-field,.org-forms .org-17 input{border:1px solid transparent;background:transparent;border-radius:3px;font:700 13px "Courier New",monospace;color:#111}
.nf3-clinician .nf3-td input:not([type=radio]):hover,.nf3-boxes input.party-field:hover,.org-forms .org-17 input:hover{border-color:#e3e7e4}
.nf3-clinician .nf3-td input:not([type=radio]):focus,.nf3-boxes input.party-field:focus,.org-forms .org-17 input:focus{border-color:var(--teal);background:white;outline:none}
.nf3-boxes .box{border:1px solid #111;border-radius:0;background:transparent}
.org-forms .org-17{border:0;border-top:2px solid #111;border-bottom:1px solid #111;padding:2px 0}
.case-line:has(.row-opener[aria-expanded=true]) .case-desc{display:none}

/* NF-3 view, box 16: the business relationship ticked in its column, as on the form. */
.nf3-lines td.nf3-x{text-align:center;font-weight:700}
/* Bill, Diagnoses: "Empty all diagnosis boxes" is rarely used, so it stays quiet (grey, faint) until pointed at. */
.clear-dx.icon-btn,.focus-head .clear-dx{color:#a3aaa6;opacity:.7}
.clear-dx.icon-btn:hover,.clear-dx.icon-btn:focus-visible{color:#b3261e;opacity:1}
section.bill-section[hidden]{display:none !important}
/* Leaving with unsaved changes: the app's own question. */
.leave-dialog{max-width:420px;border:1px solid var(--line);border-radius:12px;padding:18px 20px;box-shadow:0 12px 40px rgba(0,0,0,.18)}
.leave-dialog::backdrop{background:rgba(20,30,25,.35)}
.leave-dialog .leave-message{margin:0 0 16px;font-size:14.5px;line-height:1.45}
.leave-dialog .leave-actions{display:flex;justify-content:flex-end;gap:10px}
.leave-dialog .leave-actions button{min-height:36px;padding:4px 14px}
section.providers-section[hidden]{display:none !important}
/* Clinician view: Patient & insurance opens from an ID-card icon in the bill's top line; folded, it takes no line. */
.clinician-focus > section.icon-folded.folded{display:none}
.patient-banner .fold-icon{min-height:30px;padding:3px 6px;color:var(--teal);margin-right:6px}
.patient-banner .fold-icon[aria-expanded=true]{background:var(--teal);color:white}
/* Sex: a plain colored letter, centered (no chip). */
.sex-chip{background:none !important;padding:0;min-width:0;border-radius:0;font-size:14px;font-weight:600}
.sex-chip.male{color:#1f7a63}
.sex-chip.female{color:#d63ab0}
.patient-table td:has(> .sex-chip),.patient-table th.sex-head{text-align:center}
/* Services view: the clinical note's title, the file box and Attach on one line; attachments listed under the note. */
.note-panel .note-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.note-panel .note-head .note-title{font-weight:600;font-size:14px;color:var(--ink)}
.note-panel .note-attach{display:flex;align-items:center;gap:8px;margin:0;flex:1}
.note-panel .note-attach input[type=file]{flex:1;min-width:0;margin:0;min-height:34px;padding:3px 6px;font-size:13px}
.note-panel .note-attach button{min-height:34px;padding:4px 14px}
.note-panel .attachment-list{margin:8px 0 0}
section.attachments-section[hidden]{display:none !important}
/* Bill, + New case: it saves itself (no Save / Close). */
#encounter-new-case .case-form .edit-actions{display:none}
/* Bill, services view: no reddish rules between the sections (space alone separates them). */
.clinician-focus .form-section{border-bottom:0}
section.case-section[hidden]{display:none !important}

/* Ready (2026-10-16): the bill's chip turns green; a check marks it Ready, a return arrow takes it back. */
.status.ready{background:#d9f0e3;color:#16613f}
.ready-form{display:inline-flex;margin:0 0 0 6px;vertical-align:middle}
.ready-form .icon-btn{min-height:30px;padding:3px 7px}
.filing-table .ready-col{width:48px;text-align:center}
.filing-table .ready-tick{color:#16813f;display:inline-flex}
.filing-table tr.not-ready td:not(.ready-col){color:var(--muted)}
/* Full bill too: the two months stacked, arrows above and below pointing up and down (as the services view). */
.form-paper .add-services .calendars{display:grid;grid-template-columns:auto;grid-template-areas:"prev" "months" "next";justify-items:center;row-gap:2px;align-self:start}
.form-paper .add-services #cal-prev{grid-area:prev}
.form-paper .add-services #calendar-months{grid-area:months;flex-direction:column;flex-wrap:nowrap;gap:6px}
.form-paper .add-services #cal-next{grid-area:next}
.form-paper .add-services .cal-nav{transform:rotate(90deg);min-height:22px;line-height:1}
.form-paper .add-services .proc-table-wrap{margin-top:0}
/* Full bill: count and Add services first on box 24's footer line. */
.cms24 tfoot td.line-tools{display:flex;align-items:center;gap:8px}
.cms24 tfoot td.line-tools .line-count{font-size:12px;min-width:26px;padding:3px 8px}
.cms24 tfoot td.line-tools .add-services-btn{min-height:30px;padding:3px 6px;margin-right:4px;position:static}
.cms24 tfoot td.line-tools :is(.add-services-btn,.add-line.icon-btn){width:32px;height:32px;min-width:32px;min-height:32px;padding:0}
.services-head[hidden]{display:none !important}
/* The footer cell stays a table cell (so box 24's columns keep their widths); its buttons line up inside it. */
.cms24 tfoot td.line-tools{display:table-cell}
.cms24 tfoot td.line-tools .line-tools-row{display:flex;align-items:center;gap:8px;white-space:nowrap}
.cms24 tfoot td.line-tools .line-tools-row button{margin-right:0;white-space:nowrap}
/* Box 24: the blank-line button an outlined icon; Add services' Close a × in the panel's top right corner. */
.cms24 tfoot .add-line.icon-btn{min-height:30px;padding:3px 6px;color:var(--teal);border:1px solid var(--line);border-radius:6px;background:white}
.cms24 tfoot .line-tools-row .add-line.icon-btn svg{width:18px;height:18px}
.cms24 tfoot .add-line.icon-btn:hover{background:#ecf5ef}
.form-paper .add-services{position:relative}
.form-paper .add-services #close-add-services{position:absolute;top:6px;right:8px;min-height:28px;min-width:28px;padding:0;font-size:20px;line-height:1;color:var(--muted)}
.form-paper .add-services #close-add-services:hover{color:var(--ink)}
/* Rarely used "delete everything" trash cans stay quiet (faint grey) and turn red only when pointed at: the bill's
   Delete, Empty all diagnoses, the unconfirmed copied services. */
.rare-delete,.icon-btn.rare-delete,.copied-actions .clear-copied{color:#a3aaa6 !important;border-color:transparent !important;background:transparent !important;opacity:.75}
.rare-delete:hover,.rare-delete:focus-visible,.copied-actions .clear-copied:hover{color:#b3261e !important;opacity:1}
/* NF-3 view: one day / several days are the same calendar icons as the services view. */
.nf3-add-day.icon-btn,.nf3-add-services.icon-btn{min-height:30px;padding:3px 6px;color:var(--teal);border:1px solid var(--line);border-radius:6px;background:white}
.nf3-add-day.icon-btn[aria-expanded=true],.nf3-add-services.icon-btn[aria-expanded=true]{background:var(--teal);color:white}
/* Add services: the several-days calendar icon (as on the services view), outlined like the blank-line icon beside it. */
.add-services-btn.icon-btn{color:var(--teal);border:1px solid var(--line);border-radius:6px;background:white}
.add-services-btn.icon-btn:hover{background:#ecf5ef}
/* The pre-scrub icon on the bill's top line, and its list. */
.scrub-icon{min-height:30px;padding:3px 6px;display:inline-flex;align-items:center;gap:3px}
.scrub-icon.clean{color:#16813f}.scrub-icon.problems{color:#a86b00}
.scrub-icon .scrub-count{font-size:12px;font-weight:700}
.scrub-dialog{position:relative;max-width:520px}.scrub-dialog .close-x{position:absolute;top:6px;right:8px;min-height:26px;padding:0 6px;font-size:18px}
.scrub-dialog p{margin:0 0 8px;padding-right:24px}.scrub-dialog ul{margin:0;padding-left:18px}
section.efile-section[hidden]{display:none !important}

/* Full bill: 19 | 20 under the case boxes, and 22 / 23 beside 21, ruled like the printed form; their fields read as text. */
.cms-bill-row{--rule:var(--cms-rule-red, #e8473f);display:grid;grid-template-columns:62fr 38fr;border:1px solid var(--rule);background:white;margin:0 14px}
.cms-bill-row .box,.cms-22-23 .box{border:1px solid var(--rule);margin:-1px 0 0 -1px;padding:3px 8px 5px;display:flex;flex-direction:column;gap:3px;min-width:0;font-size:13px}
.cms-bill-row .box-label,.cms-22-23 .box-label{color:var(--cms-label-red, #e0352c);font:700 9.5px/1.2 system-ui,"Segoe UI",sans-serif;letter-spacing:.2px;margin:0;display:flex;gap:12px}
.cms-bill-row .box-label small,.cms-22-23 .box-label small{font-weight:500;font-size:9px}
.cms-bill-row .charges-head,.cms-22-23 .ref-head{margin-left:auto}
.cms-bill-row .parts,.cms-22-23 .parts{display:flex;align-items:center;gap:10px}
.cms-bill-row .tick-row{display:flex;gap:10px}.cms-bill-row .tick-choice{display:inline-flex;align-items:center;gap:4px;margin:0;font-size:12px}
.bill-slot:not([type=radio]){margin:0;min-height:28px;padding:2px 6px;font:14px "Courier New",monospace;border:1px solid transparent;border-radius:3px;background:transparent;width:100%}
.bill-slot:not([type=radio]):hover:not(:disabled){border-color:#e3e7e4}.bill-slot:not([type=radio]):focus{border-color:var(--teal);outline:none;background:white}
.cms-22-23 .parts select.bill-slot{width:9em;flex:none}
.cms-patient .b10d .bill-slot{min-height:24px}
.form-paper:not(.clinician-focus) .box21-section{display:grid;grid-template-columns:62fr 38fr;align-items:stretch}
.form-paper:not(.clinician-focus) .box21-section .cms21{border-right:0}
.cms-22-23{--rule:var(--cms-rule-red, #e8473f);display:grid;grid-template-rows:1fr 1fr;border:1px solid var(--rule);background:white}
@media (max-width:760px){.cms-bill-row,.form-paper:not(.clinician-focus) .box21-section{grid-template-columns:1fr}.form-paper:not(.clinician-focus) .box21-section .cms21{border-right:1px solid var(--rule)}}
.filing-pick .view-setup{margin-left:auto;min-height:30px;padding:3px 6px;color:var(--teal)}

/* Full bill (the biller's review): one continuous CMS-1500, boxes 1-13, 14-18, 19-20, 21-23, 24 and 25-33 ruled
   edge to edge with no gaps between them. With no case, 14-18 show blank (they print blank). */
.form-paper:not(.clinician-focus) #patient{padding-bottom:0}
.form-paper:not(.clinician-focus) #case{padding:0 14px;border-bottom:0}
.form-paper:not(.clinician-focus) #case .cms-case{border-top:0;margin:0}
.form-paper:not(.clinician-focus) #case .case-view{margin:0;padding:0;border:0}
.form-paper:not(.clinician-focus) .cms-bill-row{border-top:0}
.form-paper:not(.clinician-focus) .box21-section{padding-top:0;padding-bottom:0;border-bottom:0}
.form-paper:not(.clinician-focus) .box21-section .cms21,.form-paper:not(.clinician-focus) .cms-22-23{border-top:0}
.form-paper:not(.clinician-focus) .services-section{padding-top:8px}
.case-blank .box{min-height:44px}

/* Full bill: the live patient and insurance boxes read as printed text (outline on hover, teal while typing). */
.patient-fields.bill-editable{border:0;margin:0;padding:0;min-width:0}
/* The bill's view switches (Full bill / Diagnoses and services) are icons. */
.view-switch.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:4px 7px;color:var(--teal)}
/* Full bill: the trash can inside box 24 (its own column goes); the sections from box 1 to 33 join edge to edge, all
   the same width, with no rules or gaps between them. */
.form-paper:not(.clinician-focus) .cms24 .rm{display:none}
.form-paper:not(.clinician-focus) .cms24 td.rm-in{position:relative;text-align:center;padding:0 20px 0 2px}
.form-paper:not(.clinician-focus) .cms24 td.rm-in .remove-line{position:absolute;right:2px;top:50%;transform:translateY(-50%);min-height:0;min-width:0;height:15px;padding:0 2px;display:inline-flex;align-items:center;color:#8a6f6a}
.form-paper:not(.clinician-focus) .cms24 td.rm-in .remove-line svg{width:13px;height:13px}
.form-paper:not(.clinician-focus) :is(#patient,#case,.box21-section,.services-section,.providers-section){padding-left:16px;padding-right:16px;border-bottom:0}
.form-paper:not(.clinician-focus) .cms-bill-row{margin:0 16px}
.form-paper:not(.clinician-focus) :is(.box21-section,.services-section){padding-top:0;padding-bottom:0}
.form-paper:not(.clinician-focus) .services-section .table-wrap{margin:0}
.form-paper:not(.clinician-focus) .cms24{border-top:0}
.form-paper:not(.clinician-focus) .cms24 tfoot td{padding-top:4px;padding-bottom:4px}
.form-paper:not(.clinician-focus) .providers-section{padding-top:0}
.form-paper:not(.clinician-focus) .services-section .table-wrap{margin-top:-1px}
/* The CMS-1500's middle column (boxes 3, 6, 8, 10, 15, 17a/b) wider, as on the printed form; box 10b's PLACE stays on one line. */
.cms-patient.cms-top,.cms-case{grid-template-columns:33fr 34fr 33fr}
.cms-top .b10 .place,.cms-case .b10 .place{white-space:nowrap}
/* Full bill: the case boxes (14-18) join the patient boxes above them. */
.form-paper:not(.clinician-focus) #case{padding-top:0}
.form-paper:not(.clinician-focus) #patient .patient-panel,.form-paper:not(.clinician-focus) #patient .patient-fields{margin-bottom:0;padding-bottom:0}
.form-paper:not(.clinician-focus) #case .cms-case{margin-top:-1px}
/* Box 20 (full bill): YES / NO as the printed form's tick boxes, the $ charges beside them. */
.cms-bill-row .b20 .box-label{display:flex;justify-content:space-between}
.cms-bill-row .b20 .parts{display:flex;align-items:center;gap:14px}
.cms-bill-row .b20 .tick-row{display:flex;gap:12px;flex:none}
.cms-bill-row .tick-choice{display:inline-flex;align-items:center;gap:4px;margin:0;font:600 11px system-ui,sans-serif;color:var(--cms-label-red, #e0352c)}
.cms-bill-row .tick-choice input{appearance:none;-webkit-appearance:none;width:14px !important;height:14px !important;min-height:0 !important;flex:none;padding:0;margin:0;border:1px solid #555 !important;border-radius:0;background:white;display:inline-grid;place-content:center;cursor:pointer;outline:0}
.cms-bill-row .tick-choice input::before{content:"";font:700 11px/1 system-ui,sans-serif;color:#111}.cms-bill-row .tick-choice input:checked::before{content:"\2715"}
.cms-bill-row .tick-choice input:focus-visible{outline:2px solid var(--teal);outline-offset:1px}
.cms-bill-row .b20 input[name="cms1500.20.charges"]{flex:1 1 auto;text-align:right}
/* Box 10 on the bill: room between the a, b and c lines. */
.cms-top .b10 .case-slot{display:flex;flex-direction:column;gap:8px}
.cms-top .b10 .tick-line{margin:0;min-height:22px}
.scrub-dialog{min-width:300px;padding:16px 18px}.scrub-dialog .scrub-head{font-weight:650}
.scrub-dialog .scrub-head.clean{color:#16813f}.scrub-dialog .scrub-head.problems{color:#a86b00}
.scrub-dialog{transition:opacity .6s ease}.scrub-dialog.fading{opacity:0}.scrub-dialog.fading::backdrop{opacity:0}

/* PDF links to look at (batch forms, USPS form, the alignment test page): the bill's soft-teal PDF icon. */
a.pdf-link{display:inline-flex;align-items:center;gap:4px;padding:3px 5px;border-radius:6px;vertical-align:middle;text-decoration:none;color:var(--teal);font-size:12px;font-weight:650}
a.pdf-link:hover{background:#e6f0ec}
/* Pre-scrub / missing-box marks: a bold amber "!" badge on the box's top-left corner (easier to spot than the small ⚠). */
.scrub-mark::after,.case-need::after{content:"!";left:-9px;right:auto;top:-9px;width:20px;height:20px;border-radius:50%;background:#e8590c;color:#fff !important;
  font:800 13px/20px system-ui,"Segoe UI",sans-serif;text-align:center;box-shadow:0 0 0 2px #fff,0 1px 3px rgba(0,0,0,.25);z-index:3}
section.scrub-mark::after{left:-12px;top:-12px;width:24px;height:24px;font-size:15px;line-height:24px}
/* The "!" badge smaller; on a whole section it sits inside the section's left margin (it was cut off at the page edge). */
.scrub-mark::after,.case-need::after{left:-6px;top:-6px;width:14px;height:14px;font-size:10px;line-height:14px;box-shadow:0 0 0 1.5px #fff}
section.scrub-mark::after{left:1px;top:1px;width:14px;height:14px;font-size:10px;line-height:14px}
/* Full bill, Add services: one line "Procedure(s) · Add N services · 3 dates (…) × 2 procedures" above the list; the
   Add button quiet (outlined), the summary after it with room. */
.form-paper .add-services{grid-template-areas:"cal picker";grid-template-rows:auto}
.form-paper .add-services .picker > .add-row{grid-area:auto;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 36px 0 0;padding:0;border:0;background:none;align-self:auto}
.form-paper .add-services .add-row .picker-label{order:-2;margin:0}
.form-paper .add-services .add-row #add-summary{order:1;flex-basis:auto;font-size:12.5px}
#add-services #add-selected{order:0;min-height:28px;padding:2px 12px;font-size:13px;font-weight:600;background:#fff;color:var(--teal);border:1px solid var(--teal);box-shadow:none}
#add-services #add-selected:not(:disabled):hover{background:#e6f0ec}
#add-services #add-selected:disabled{color:var(--muted);border-color:var(--line);background:#fff}
.scrub-dialog .scrub-anyway{margin:12px 0 0;font-size:13px}.scrub-dialog .scrub-anyway a{color:var(--teal);font-weight:600}
.scrub-dialog ol{margin:0;padding-left:22px}.scrub-dialog ol li{margin:2px 0}
.scrub-dialog a.scrub-anyway{position:absolute;top:5px;right:40px;display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:1px 4px;margin:0;border-radius:6px}
.scrub-dialog a.scrub-anyway:hover{background:#e6f0ec}.scrub-dialog a.scrub-anyway svg{width:19px;height:23px}
.scrub-dialog .scrub-head{padding-right:72px}
/* Full bill: no description in box 24's shaded band (it never prints); it is the code's tooltip instead. */
.form-paper:not(.clinician-focus) .cms24 tr.supp .desc-cell > input[name=description]{visibility:hidden}
/* Boxes that cannot be filled (NUCC reserved 8, 9b, 9c; 9 on the case form; the employer when 10a is NO): a flat pale
   fill and a faded title instead of diagonal stripes. */
.cms-form .b.nucc,.cms-top .nucc,.cms-case .b9,.case-form:not(.kind-WORKERS_COMP) .employer,.case-form:not(.is-employment) .employer{background:#f6f6f3 !important}
.cms-form .b.nucc .box-label,.cms-top .nucc .box-label,.cms-case .b9 .box-label,.case-form:not(.is-employment) .employer .box-label,.case-form:not(.is-employment) .employer .np-label{color:#e7a8a3 !important}
/* Bill top line: one row of same-size icons (34 px boxes, centered), Ready as a toggle: outlined check until done,
   solid green check once Ready. */
.patient-banner.slim{display:flex;align-items:center;gap:4px}
.patient-banner.slim > *,.patient-banner.slim .print-cms,.patient-banner.slim .ready-form,.patient-banner.slim .delete-bill{display:inline-flex;align-items:center;margin-top:0;margin-bottom:0}
.patient-banner.slim :is(.print-cms a.icon-link,a.view-switch,.scrub-icon,.ready-form .icon-btn,.delete-bill .icon-btn){box-sizing:border-box;height:34px;min-height:34px;min-width:34px;padding:0 6px;margin:0;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;vertical-align:middle}
.patient-banner.slim .ready-form{margin:0}
.patient-banner.slim .ready-btn{color:var(--teal);border:1.5px solid var(--teal);background:#fff}
.patient-banner.slim .ready-btn:hover{background:#e6f0ec}
.patient-banner.slim .ready-btn.is-ready{background:#16813f;border-color:#16813f;color:#fff}
.patient-banner.slim .ready-btn.is-ready:hover{background:#12703a}
.patient-banner.slim .print-cms{margin-left:12px}
.filing-table td.service-span{white-space:nowrap}

/* Worklist, Bills in progress: the patient's name opens the bill; the clinician pick list sits at the heading's right. */
.bills-table td.name a.bill-link{color:inherit;font-weight:inherit;text-decoration:none}.bills-table td.name a.bill-link:hover{color:var(--teal);text-decoration:underline}
.bills-table td.service-span{white-space:nowrap}
.panel-heading .clinician-pick{margin:0 0 0 auto}.panel-heading .clinician-pick select{width:auto;min-height:32px;padding:3px 8px;font-size:13px;margin:0}

/* Worklist for a biller: appointments as a table (name opens the patient, the Draft/Filed chip opens the bill). */
.appts-table td.nowrap{white-space:nowrap}
.appts-table > tbody > tr.alt > td{background:#f6f8f5}.appts-table > tbody > tr:hover > td{background:#dcebf7}
.appts-table a.bill-status{text-decoration:none;cursor:pointer}.appts-table a.bill-status:hover{outline:1px solid var(--teal)}
.login-brand a.brand-home{display:inline-flex;line-height:0}

/* Super-admin Accounts: two more count columns, # CMS Bill and # NF Bill. */
.admin-grid.practices{grid-template-columns:40px minmax(150px,2fr) 90px 104px 64px 64px 72px 48px 60px 64px 60px 78px;column-gap:8px}
.admin-grid.practices.head .wrap-head{white-space:normal;line-height:1.2}
/* Accounts: the tier on one line, a payment chip (Suspended, Past due) under it; narrower count columns so Last activity fits. */
.admin-grid.practices .tier-cell{display:flex;flex-direction:column;align-items:flex-start;gap:2px;white-space:nowrap}
.admin-grid.practices .tier-cell .pay-chip{margin:0}
.admin-grid.practices{grid-template-columns:36px minmax(150px,2fr) 84px 92px 56px 50px 70px 70px 56px 52px 64px 72px;column-gap:10px}
.admin-grid.practices{grid-template-columns:32px minmax(140px,2fr) 76px 76px 44px 38px 62px 62px 46px 44px 54px 74px;column-gap:6px}
/* Accounts: room between Patients and Last activity. */
.admin-grid.practices > span:nth-child(12){padding-left:16px}
.admin-grid.practices{grid-template-columns:32px minmax(140px,2fr) 76px 76px 44px 38px 62px 62px 46px 44px 54px 96px}
/* Patients: New patient is the add icon in the Patient column title (beside "No patients yet." on an empty list). */
.patient-table th .head-add{display:inline-flex;align-items:center;gap:8px}
.empty-add{display:flex;align-items:center;gap:10px}
/* Worklist appointments as a table for every role: actions in the last cell, Change opens a row under it. */
.appts-table td.row-action{white-space:nowrap;text-align:right}
.appts-table td.row-action > *{display:inline-flex;vertical-align:middle;margin:0 0 0 6px}
.appts-table td.row-action button{min-height:30px;padding:3px 10px;font-size:13px}
.appts-table tr.change-row > td{padding:8px 10px 12px;background:#f7f8f5}
.appts-table > tbody > tr.change-row:hover > td{background:#f7f8f5}
.appts-table tr.appt-line:has(+ tr.change-row:not([hidden])) > td{background:#eef4f0}
/* Worklist appointments: actions first (icons), today's visits stand out (teal bar, tint, Today chip, bold time),
   earlier days quiet. */
.appts-table th.act,.appts-table td.row-action{width:1%;white-space:nowrap;text-align:left;padding-right:4px}
.appts-table td.row-action > *{margin:0 4px 0 0}
.appts-table td.row-action .icon-btn{min-height:30px;min-width:32px;padding:3px 6px;color:var(--teal)}
.appts-table td.row-action .check-in-btn{background:var(--teal);color:#fff;border-color:var(--teal)}
.appts-table tr.appt-line.today > td:first-child{box-shadow:inset 3px 0 0 var(--teal)}
.appts-table tr.appt-line.today > td:nth-child(4){font-weight:700}
.appts-table .today-chip{display:inline-block;margin-right:6px;padding:0 7px;border-radius:9px;background:var(--teal);color:#fff;font-size:11px;font-weight:700;line-height:18px}
.appts-table tr.appt-line.earlier > td{color:var(--muted)}
.appts-table tr.appt-line.earlier a.bill-link{color:var(--muted)}

/* Worklist appointments: Today / Upcoming / Past tabs. */
.appt-tabs{display:flex;gap:2px;margin:0 0 8px;border-bottom:1px solid var(--line)}
.appt-tabs [role=tab]{background:none;border:0;border-bottom:3px solid transparent;border-radius:0;min-height:34px;padding:4px 14px;margin:0 0 -1px;color:var(--muted);font-weight:600;font-size:14px}
.appt-tabs [role=tab][aria-selected=true]{color:var(--teal);border-bottom-color:var(--teal)}
.appt-tabs [role=tab]:hover{color:var(--teal);background:#f2f7f4}
.appt-tabs .tab-count{display:inline-block;min-width:20px;margin-left:4px;padding:0 6px;border-radius:9px;background:#e8efeb;font-size:12px;line-height:18px;text-align:center}
.appts-table tr.tab-off,.appts-table tr.tab-off + tr.change-row{display:none}
.appt-tabs{align-items:flex-end}.appt-tabs #patient-search{margin:0 0 4px auto;width:200px;max-width:40%;min-height:32px}

/* Today tab: the date sits on the tab, so the Date column goes. */
.appts-table.on-today .date-col{display:none}
.appt-tabs .tab-date{font-weight:500}
.appt-tabs .tab-word{font-size:12px;font-weight:500;margin-right:5px}.appt-tabs .tab-date{font-weight:700}
.appt-tabs .tab-word{margin:0 0 0 5px}
/* Worklist rows edited in place: time, clinician and location read as text until touched; reason column; the
   names show when there is nothing to pick. */
.appts-table .appt-when,.appts-table .appt-pick,.appts-table .appt-reason{margin:0;min-height:30px;padding:2px 6px;font-size:13.5px;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;font-weight:inherit}
.appts-table .appt-when:hover,.appts-table .appt-pick:hover,.appts-table .appt-reason:hover{border-color:#e3e7e4}
.appts-table .appt-when:focus,.appts-table .appt-pick:focus,.appts-table .appt-reason:focus{border-color:var(--teal);outline:none;background:#fff}
.appts-table .appt-reason{width:100%;min-width:120px;border-color:#e3e7e4;background:#fff}
.appts-table td.note-col{width:220px;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appts-table td.note-col .appt-reason{max-width:220px;text-overflow:ellipsis}
.appts-table .appt-pick{max-width:220px}
.appts-table .pick-name{display:none}
.appts-table select[hidden] + .pick-name,.appts-table .loc-wrap[hidden] + .pick-name{display:inline}
.appts-table td.row-action form{display:inline-flex;margin:0}
.appts-table td.row-action .cancel-appt:hover{color:#b3261e}
.appts-table tr.appt-line.refused > td{background:#fff4e5}
/* Today's row: the time alone, with a small calendar icon to move it to another day. */
.appts-table .today-when{position:relative;display:inline-flex;align-items:center;gap:2px}
.appts-table .appt-time{margin:0;min-height:30px;padding:2px 6px;font-size:13.5px;font-weight:700;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit}
.appts-table .appt-time:hover{border-color:#e3e7e4}.appts-table .appt-time:focus{border-color:var(--teal);outline:none;background:#fff}
.appts-table .appt-day-btn{min-height:26px;min-width:26px;padding:2px 4px;color:var(--muted)}

/* Date and time boxes in the row; today's rows hide the date box (the calendar icon opens it). A changed row glows. */
.appts-table .when-box{position:relative;display:inline-flex;align-items:center;gap:2px}
.appts-table .appt-day{margin:0;min-height:30px;padding:2px 6px;font-size:13.5px;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;width:auto}
.appts-table .appt-day:hover{border-color:#e3e7e4}.appts-table .appt-day:focus{border-color:var(--teal);outline:none;background:#fff}
/* Keep the readable date aligned with its heading; the native picker overlays it for editing. */
.appts-table td.date-col{position:relative}
.appts-table td.date-col .appt-day{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;padding:0}
.appts-table td.date-col:focus-within{outline:1px solid var(--teal);outline-offset:-2px}
.appts-table td.date-col:has(.appt-day) .appt-date-text::after{content:' ▾';color:var(--muted)}
.appts-table .appt-time,.appts-table .appt-reason{margin-left:-7px}
.appts-table td.time-cell{min-width:170px}
.appts-table .appt-time{min-width:115px}
.appts-table .when-box.is-today .appt-day{position:absolute;left:0;bottom:0;width:1px;height:1px;min-height:0;opacity:0;pointer-events:none;border:0;padding:0}
.appts-table .when-box:not(.is-today) .appt-time{font-weight:500}
.appts-table tr.appt-line.just-changed > td{background:#fff7d6 !important;transition:background .6s}

/* Past tab: how many past appointments are still Booked (amber), and those rows marked. */
.appt-tabs .tab-todo{display:inline-block;min-width:20px;margin-left:4px;padding:0 6px;border-radius:9px;background:#f3a73b;color:#fff;font-size:12px;font-weight:700;line-height:18px;text-align:center}
.appt-tabs .tab-todo[hidden]{display:none}
.appts-table tr.appt-line.to-act > td:first-child{box-shadow:inset 3px 0 0 #f3a73b}

/* Worklist: clinician and location cut to one short line (full name on hover). */
.appts-table td.clin-col,.appts-table td.loc-col{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appts-table td.clin-col .appt-pick,.appts-table td.loc-col .appt-pick{max-width:150px;text-overflow:ellipsis}
.appts-table th.clin-col .clinician-head-icon{margin-left:7px} /* Match the picklist's 6px text inset plus 1px border. */
.help-status-table{width:100%;border-collapse:collapse;margin:12px 0}
.help-status-table th,.help-status-table td{text-align:left;vertical-align:top;padding:8px;border-bottom:1px solid #e3e7e4}
.help-status-table td:first-child{min-width:60px}
.help-status-table svg{vertical-align:middle}
.help-status-table .pending{color:#7d8783}.help-status-table .signed{color:#16813f}
.help-status-table .cancelled{color:#8f9894}.help-status-table .no-show{color:#a3376a}
/* A refused change: the reason on its own thin line right under the appointment (the row keeps its layout). */
.appts-table tr.row-error > td{padding:0 8px 6px;background:#fff4e5;border-top:0}
.appts-table .row-error-text{display:inline-block;font-size:12.5px;color:#8a5a00}.appts-table .row-error-text::before{content:"\26A0\FE0E  "}
.appts-table tr.appt-line.tab-off + tr.row-error{display:none}
/* Note reads as text like the other in-place fields: a faint outline on hover, a box only while typing. */
.appts-table .appt-reason{border-color:transparent;background:transparent}
.appts-table .appt-reason:hover{border-color:#e3e7e4}
.appts-table .appt-reason:focus{border-color:var(--teal);background:#fff}

/* Worklist: today's appointment not checked in, past the late mark (admin setting, 30 minutes by default). */
.appts-table tr.appt-line.today.late > td:first-child{box-shadow:inset 3px 0 0 #e8590c}
.settings-panel .late-form label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-weight:500}
.settings-panel .late-form input{width:80px;margin:0}

.appts-table .appt-reason.just-saved{box-shadow:0 0 0 2px #9fd6b4;transition:box-shadow .3s}
/* Worklist: a checked-in visit turns calm blue-grey (done at the desk); its status is an icon with a tooltip
   (checked in / bill filed), a link to the bill for billers and clinicians. */
.appts-table tr.appt-line.checked-in > td:first-child{box-shadow:inset 3px 0 0 #6b8fb8}
.appts-table .status-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:28px;border-radius:6px;color:#3f6b98;vertical-align:middle}
.appts-table a.status-icon:hover{background:#dbe6f2}
.appts-table .status-icon.filed{color:#16813f}
/* Checked in = done at the desk: plain grey, text dimmed. */
.appts-table tr.appt-line.checked-in > td{color:#6f7a76}
.appts-table tr.appt-line.checked-in > td:first-child{box-shadow:inset 3px 0 0 #b9c0bc}
.appts-table tr.appt-line.checked-in a.bill-link{color:#5f6b67}
.appts-table tr.appt-line.checked-in .status-icon:not(.filed){color:#7d8783}

/* One look for every list table (2026-10-17, as the Patients list): 13px text, compact rows, every other row lightly
   shaded (counting only rows on screen, app.js stripeLists), the whole row blue under the cursor. The worklist shows
   an appointment's state by the bar at its left (green today, orange late, grey checked in, amber past still booked). */
:is(.patient-table,.bills-table,.filing-table,.admin-table,.payments,.appt-history){font-size:13px}
:is(.bills-table,.filing-table,.admin-table,.payments,.appt-history) > tbody > tr > td{padding:3px 10px;line-height:1.35}
:is(.bills-table,.filing-table,.admin-table,.payments,.appt-history) > tbody > tr:nth-child(n) > td{background:transparent}
:is(.bills-table,.filing-table,.admin-table,.payments,.appt-history) > tbody > tr.alt:nth-child(n) > td{background:#f6f8f5}
:is(.bills-table,.filing-table,.admin-table,.payments,.appt-history) > tbody > tr:hover:nth-child(n) > td{background:#dcebf7}
.appts-table > tbody > tr.appt-line.refused:nth-child(n) > td,.appts-table > tbody > tr.row-error:nth-child(n) > td{background:#fff4e5}
.appts-table :is(.appt-time,.appt-day,.appt-pick,.appt-reason){min-height:26px;padding-top:1px;padding-bottom:1px}
.appts-table td.row-action .icon-btn{min-height:26px;padding:2px 5px}
/* Worklist (biller): the bills list is headed by an icon (its tooltip says what is in it). */
.panel-heading h2.icon-heading{display:inline-flex;align-items:center;margin:0;color:var(--teal);cursor:help}

/* Bills list status as icons, like the front desk's: checked in (draft), bill only, ready, question open. */
.bills-table .status-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:26px;border-radius:6px;color:#3f6b98;vertical-align:middle;cursor:help}
.bills-table .status-icon.ready{color:#16813f}.bills-table .status-icon.question{color:#a86b00}
.appts-table td.case-col{white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
/* Worklist appointments share the Patients list's table (patient-table): its header, row height, stripes and blue
   hover; the name looks like the Patients name (bold, teal + underline on hover). */
.appts-table.patient-table td.name a.bill-link{color:var(--ink);font-weight:700;text-decoration:none}
.appts-table.patient-table td.name a.bill-link:hover{color:var(--teal);text-decoration:underline}
.appts-table.patient-table tr.appt-line.earlier td.name a.bill-link,.appts-table.patient-table tr.appt-line.checked-in td.name a.bill-link{color:#6f7a76;font-weight:600}
.appts-table.patient-table > tbody > tr.appt-line.refused > td,.appts-table.patient-table > tbody > tr.row-error > td{background:#fff4e5}
/* Clinicians' list has no action column: the state bar sits on the name cell, and in a quiet tone like the Patients list. */
.appts-table.patient-table tr.appt-line > td:first-child{padding-left:12px}
.menu-item .menu-icon{vertical-align:-3px;margin-right:6px}

/* Super-admin account logins: roles as the Staff page's icon chips (Clinician for a login that acts as one). */
.admin-table td.role-chips{display:flex;flex-wrap:wrap;gap:4px}
.admin-table td.role-chips .role-pill{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:12px;background:#e8efeb;font-size:12px;font-weight:600}
.admin-table td.role-chips .role-icon{width:15px;height:15px}
/* Services view: the visit's date beside "Services", read-only. */
.services-head .visit-date{font-size:13.5px;font-weight:600;color:var(--muted);margin:0 4px}
.patient-banner .ready-error{order:0;margin:0 6px;font-size:12.5px;color:#8a5a00}.patient-banner .ready-error::before{content:"\26A0\FE0E  "}

/* Bill top line: the Ready check comes first (left end), its refusal right after it. */
.patient-banner.slim .ready-form{order:-2;margin:0 6px 0 0}.patient-banner.slim .ready-error{order:-1}
.appts-table .status-icon.ready{color:#16813f}
.appts-table tr.appt-line.checked-in .status-icon.ready{color:#16813f}
.appts-table td.name .patient-info-link{display:inline-flex;vertical-align:middle;min-height:24px;padding:1px 4px;margin-right:6px;color:var(--teal)}

/* Clinician worklist: a visit not checked in opens its patient and insurance under the row (read-only). */
.appts-table tr.patient-info-row > td{padding:6px 12px 10px;background:#f7f9f6;white-space:normal}
.appts-table .patient-info{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px 18px;margin:0}
.appts-table .patient-info div{min-width:0}.appts-table .patient-info dt{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.appts-table .patient-info dd{margin:0;font-size:13px}
.appts-table tr.appt-line.tab-off + tr.patient-info-row{display:none}
.appts-table .patient-info-link[aria-expanded=true]{background:var(--teal);color:#fff}

.appts-table tr.patient-info-row .cms-patient.view{max-width:900px;background:#fff}
.appts-table .patient-info-case{margin:6px 0 0;font-size:13px}
.appts-table .patient-info-link[aria-expanded=true]{background:#d3ebe4;color:var(--teal)}
.appts-table tr.patient-info-row .appt-patient-boxes{max-width:1000px}.appts-table tr.patient-info-row .appt-patient-boxes fieldset{border:0;margin:0;padding:0;min-width:0}

/* Clinician worklist: the stethoscope (diagnoses and services) before the name; the name opens patient & insurance. */
.appts-table td.name .dx-link{display:inline-flex;vertical-align:middle;min-height:24px;padding:1px 4px;margin-right:6px;color:var(--teal)}
.appts-table td.name .dx-link-space{display:inline-block;width:32px}
.appts-table td.name .name-link{all:unset;cursor:pointer;font-weight:700;color:var(--ink)}
.appts-table td.name .name-link:hover,.appts-table td.name .name-link[aria-expanded=true]{color:var(--teal);text-decoration:underline}
.appts-table td.name .name-link:focus-visible{outline:2px solid #3c9a82;outline-offset:2px;border-radius:3px}
.patient-banner.slim .back-link{order:-3;color:var(--teal)}
/* A picker the page hides (one clinician, one location) stays hidden: row styles must not show it again. */
label[hidden],.location-label[hidden],select[hidden]{display:none !important}
.admin-page nav.pager[aria-label="Account pages"],nav.pager[aria-label="Account pages"]{margin-top:12px}
/* The insurance carrier (top right) starts left of the right column, as on the printed CMS-1500, so a long payer
   name and address are not cut off. */
@media (min-width:761px){
  .cms-patient.cms-top{grid-template-areas:
    "top payer payer" "b1 b1 b1a" "b2 b3 b4" "b5 b6 b7" "city b8 icity" "zip b8 izip"
    "b9 b10 b11" "b9a b10 b11a" "b9b b10 b11b" "b9c b10 b11c" "b9d b10d b11d"}
  .cms-patient.cms-top .box.payer{padding-left:calc(34% / 0.67 * 0.55)}
}
.menu-clinicians{display:flex;align-items:flex-start;gap:6px}.menu-clinicians .menu-icon{flex:none;margin:2px 0 0;color:var(--teal)}
nav.pager:is([aria-label="Patient pages"],[aria-label="Payment pages"]){margin-top:12px}
/* Super-admin pages: their tabs are icons on the top bar (tooltips name them). */
.topbar nav a.admin-tab{gap:4px}
.admin-grid.practices.head .icon-head{display:flex;justify-content:flex-end;align-items:center;color:var(--muted);cursor:help}
/* Accounts: icon columns are narrow now; the space goes to the account name and Last activity. */
.admin-grid.practices{grid-template-columns:30px minmax(150px,2fr) 78px 78px 42px 34px 40px 40px 34px 50px 34px 84px 96px;column-gap:8px}
.admin-grid.practices > span:nth-child(12),.admin-grid.practices > span:nth-child(13){padding-left:12px}
.staff-email .last-signin{display:block;font-size:11.5px;margin-top:1px}
.admin-table th.head-center{text-align:center}

/* Sign-ins: roles as icons only (the name on hover). */
.admin-table td.role-icons{justify-content:center}
.admin-table td.role-icons .role-pill.icon-only{padding:2px;background:none;cursor:help}
.admin-table td.role-icons .role-icon{width:18px;height:18px}
.role-icon.superadmin{color:#a86b00}
/* Super-admin top bar: each page's icon in its own color (the tooltip still names it). */
.topbar nav a.admin-tab[href$="/admin"] .nav-icon{color:#126e61}
.topbar nav a.admin-tab[href$="/admin/efile"] .nav-icon{color:#6741d9}
.topbar nav a.admin-tab[href$="/admin/signin-history"] .nav-icon{color:#16813f}
.topbar nav a.admin-tab[href$="/admin/signins"] .nav-icon{color:#c26a00}
.topbar nav a.admin-tab[href$="/admin/refused"] .nav-icon{color:#a3376a}
.topbar nav a.admin-tab[href$="/admin/support-log"] .nav-icon{color:#6b4fa3}
.topbar nav a.admin-tab .nav-icon{width:26px;height:26px}
/* The same colors wherever these icons appear: impersonate (purple), accounts (teal). */
.impersonate-btn,.admin-table .impersonate-btn svg{color:#6b4fa3}
.impersonate-btn:hover{background:#efeaf8}
.admin-grid.practices .head-add .add-icon{color:#126e61}
.support-banner .support-mask{color:#6b4fa3}
/* One color per thing, wherever its icon shows (top bars, account menu, the Accounts column titles):
   clinicians teal, locations orange, billing organizations blue, logins/staff indigo, patients green. */
.topbar nav a[href$="/setup/providers"] .nav-icon,.menu a[href$="/setup/providers"] .menu-icon,.icon-head[title="Clinicians"] svg,.menu-clinicians .menu-icon{color:#0f7b6c}
.topbar nav a[href$="/setup/locations"] .nav-icon,.menu a[href$="/setup/locations"] .menu-icon,.icon-head[title="Locations"] svg{color:#c26a00}
.topbar nav a[href$="/setup"] .nav-icon,.menu a[href$="/setup"] .menu-icon,.icon-head[title="Billing organizations"] svg{color:#2a5d9f}
.topbar nav a[href$="/staff"] .nav-icon,.icon-head[title="Logins"] svg{color:#5f3dc4}
.topbar nav a[href$="/patients"] .nav-icon,.icon-head[title="Patients"] svg{color:#2b8a3e}
.admin-detail .admin-table td.role-icons{justify-content:flex-start}
.topbar nav .bills-icon{color:#0b7285}
.topbar nav a[href$="/filing"] .nav-icon{color:#6741d9}
.create-batch-btn,.create-batch-btn svg{color:#6741d9}.create-batch-btn:hover{background:#efeafc}

/* One icon and one color per thing, everywhere: appointments = calendar (amber), bills = document with a clock (cyan),
   payers = hand holding a golden $ (its own colors). */
.appt-icon{color:#339af0}.bills-icon{color:#0b7285}
.patient-table .add-bill{color:#0b7285}
.patient-table th.payer-head{white-space:nowrap}.patient-table th.payer-head .head-icon{vertical-align:-4px;margin-right:6px}
/* Admin top bar: an icon-only tab keeps its count close. */
.top-nav a[aria-label] .nav-count,.topbar nav a[aria-label] .nav-count{margin-left:2px}
/* Staff: a biller's clinicians under the stethoscope icon, one per line. */
.biller-links summary{display:flex;align-items:flex-start;gap:6px}
.biller-links summary .clin-icon{flex:none;margin-top:2px;color:#0f7b6c}
.biller-links summary .linked-names{display:flex;flex-direction:column;line-height:1.35}
.top-nav a[aria-label] .nav-icon{margin-right:2px}
.top-nav a[aria-label]{gap:0}.top-nav a[aria-label] .nav-icon{margin-right:0}.top-nav a[aria-label] .nav-count{margin-left:1px}
.top-nav a[aria-label] .nav-count{margin-left:-2px;padding:1px 5px}
/* Employers = briefcase (brown); passwords = key (gold) — the same wherever they show. */
.employer-icon{color:#9c6644}
.key-icon,button[aria-label^="Reset password"] svg,a[href$="/account/password"] svg{color:#b08900}
/* Bills list status, one color each: checked in / awaiting the clinician (amber), bill only (cyan, the bills color),
   ready (green), question open (plum). */
.bills-table .status-icon.waiting{color:#e67700}
.bills-table .status-icon.bill-only{color:#0b7285}
.bills-table .status-icon.ready{color:#16813f}
.bills-table .status-icon.question{color:#a3376a}
.bills-table .status-icon.bill-only{color:#3b5bdb}
/* Bills are clear blue everywhere (top bar, Patients column title, New bill buttons, bill-only status). */
.bills-icon,.topbar nav .bills-icon,.patient-table .add-bill{color:#3b5bdb}
/* (wins over the table's header and button colors) */
.patient-table th .bills-icon,.patient-table .add-bill,.patient-table .add-bill svg{color:#3b5bdb !important}
.patient-table th .appt-icon{color:#339af0 !important}
/* New bill row: its Start bill button in the bills blue. */
.patient-table tr.bill-row button[aria-label="Start bill"]{background:#3b5bdb !important;border-color:#3b5bdb !important;color:#fff !important}
.patient-table tr.bill-row button[aria-label="Start bill"]:hover{background:#324cc0 !important}
/* Bill page: the Full bill switch is a bills icon, so it is the bills blue. */
.patient-banner a.view-switch[aria-label="Full bill"],.patient-banner a.view-switch[aria-label="Full bill"] svg{color:#3b5bdb !important}
/* Patients history: the open-bill link in the bills blue; statuses as icons with tooltips. */
.appt-history a.open-bill,.appt-history a.open-bill svg{color:#3b5bdb !important}
.appt-history .hist-status{display:inline-flex;align-items:center;justify-content:center;width:28px;height:24px;cursor:help;vertical-align:middle}
.appt-history .hist-status.booked{color:#e67700}.appt-history .hist-status.checked-in{color:#16813f}
.appt-history .hist-status.cancelled{color:#8f9894}.appt-history .hist-status.no-show{color:#a3376a}
.appt-history .hist-status.bill-only,.appt-history .hist-status.draft{color:#3b5bdb}.appt-history .hist-status.filed{color:#16813f}
/* Sweep 2026-10-17 night (one icon, one color): checked in = person with a check, amber (awaiting the clinician);
   a new appointment = the appointments calendar, amber; patient & insurance = the patients green. */
.appt-history .hist-status.checked-in{color:#e67700}
button[aria-label="New appointment"],button[aria-label="New appointment"] svg{color:#339af0 !important}
.patient-banner .fold-icon,.appts-table .patient-info-link{color:#2b8a3e}
.patient-banner .fold-icon[aria-expanded=true]{background:#2b8a3e;color:#fff}

/* Super-admin Accounts: tabs by payment status (each tab and its count are one link-like pair). */
.account-tabs{align-items:center}
.account-tabs a[role=tab]{display:inline-flex;align-items:center;border-bottom:3px solid transparent;min-height:34px;padding:4px 4px 4px 14px;margin:0 0 -1px;color:var(--muted);font-weight:600;font-size:14px;text-decoration:none}
.account-tabs a[role=tab][aria-selected=true]{color:var(--teal);border-bottom-color:var(--teal)}
.account-tabs .tab-count{margin:0 10px 0 2px}
/* Staff: the biller's clinicians open with a clear chevron (the tiny ▾ was hard to see and to hit). */
.biller-links summary{list-style:none;cursor:pointer}
.biller-links summary::-webkit-details-marker{display:none}
.biller-links summary::marker{content:""}
.biller-links summary::after{content:"";flex:none;width:9px;height:9px;margin:3px 6px 0 4px;border-right:2.5px solid var(--teal);border-bottom:2.5px solid var(--teal);transform:rotate(45deg);transition:transform .15s}
.biller-links[open] > summary::after{transform:rotate(-135deg);margin-top:8px}
.biller-links form .inline-status{display:block;min-height:1em;font-size:12px}.biller-links form .inline-status.failed{color:#8a5a00}
/* Staff: no chevron on a biller's clinicians — the names themselves open the list. */
.biller-links summary::after,.biller-links[open] > summary::after{content:none;display:none}
.biller-links summary:hover .linked-names{text-decoration:underline}

/* Staff: roles open like a biller's clinicians — the role icons, then a checklist that saves as you tick. */
.role-links{position:relative;display:block}
.role-links summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;min-height:26px}
.role-links summary::-webkit-details-marker{display:none}.role-links summary::marker{content:""}
.role-links .role-icons-line{display:inline-flex;gap:8px;align-items:center}
.role-links .role-icons-line .role-pill .role-icon{width:17px;height:17px}
.role-links summary:hover .role-icons-line{outline:1px solid #e3e7e4;border-radius:6px}
.role-links form.role-form{position:absolute;z-index:5;left:0;top:100%;min-width:180px;padding:8px 10px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.12);display:flex;flex-direction:column;gap:4px}
.role-links form.role-form label{display:flex;align-items:center;gap:8px;margin:0;font-weight:500;font-size:13px}
.role-links form.role-form .inline-status{font-size:12px;min-height:1em}.role-links form.role-form .inline-status.failed{color:#8a5a00}
/* Roles checklist: normal-size boxes on one line with their icon and name; no chevron on the line (as the clinicians). */
.role-links form.role-form input[type=checkbox]{width:16px;height:16px;min-height:0;margin:0;padding:0;flex:none}
.role-links form.role-form label{white-space:nowrap}
.role-links form.role-form label .role-pill{display:inline-flex;align-items:center;padding:0;background:none}
.role-links summary::before,.role-links summary::after{content:none;display:none}
/* Top bar icons as big as the role icons; Rules gets its own color (pink). */
.top-nav a .nav-icon,.topbar nav a .nav-icon{width:19px;height:19px}
.topbar nav a[href$="/setup/rules"] .nav-icon{color:#c2255c}
.top-nav a .nav-icon,.topbar nav a .nav-icon{width:22px;height:22px}
.top-nav a .nav-icon,.topbar nav a .nav-icon{width:26px;height:26px}
.topbar nav a[href$="/setup/rules"] .nav-icon{color:#556b7d}
.topbar nav a[href$="/setup/rules"] .nav-icon{color:#4f7fa8}
.topbar nav a[href$="/setup/rules"] .nav-icon{color:#e599b7}
/* Locations: the map pin in rainbow colors, wherever it shows (gradient defined once in the top bar). */
.icon-defs{position:absolute;width:0;height:0;overflow:hidden}
.topbar nav a[href$="/setup/locations"] .nav-icon,.menu a[href$="/setup/locations"] .menu-icon,.icon-head[title="Locations"] svg{stroke:url(#rainbow-pin)}
.topbar nav a[href$="/setup/rules"] .nav-icon{color:#e8590c}
.topbar nav a[href$="/setup/rules"] .nav-icon{color:#c26a00}
/* The map pin is narrow and fills less of its box than the other icons: shown a little larger so it looks the same size. */
.topbar nav a[href$="/setup/locations"] .nav-icon,.menu a[href$="/setup/locations"] .menu-icon,.icon-head[title="Locations"] svg{transform:scale(1.22);transform-origin:center}
/* Top bar: every tab the same height with its icon, label and count centred on one line, evenly spaced. */
.top-nav{align-items:center;gap:6px}
.top-nav a{display:inline-flex;align-items:center;gap:6px;height:40px;min-height:40px;padding:0 10px;box-sizing:border-box;line-height:1}
.top-nav a .nav-icon{margin:0 !important;vertical-align:middle;display:block}
.top-nav a .nav-count{margin-left:0;line-height:18px}
.top-nav a[aria-label]{gap:3px}
.top-nav a[aria-label] .nav-count{margin-left:0}
/* Rules: every rules icon in the Rules color (the top bar's, the Add rule button on the Rules page). */
button[aria-label="Add billing rule"],button[aria-label="Add billing rule"] svg{color:#c26a00 !important}
/* Add rule open: a light amber background that keeps the amber icon readable (was solid teal). */
button[aria-label="Add billing rule"][aria-expanded=true]{background:#fff1db !important;border-color:#e8b46a !important}
button[aria-label="Add billing rule"]:hover{background:#fff6e8}

/* Setup Locations: the whole address (street, then city, state, ZIP) and the place of service (24B). */
.location-grid{grid-template-columns:36px minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.7fr) 90px 110px}
.location-grid .full-address{display:flex;flex-direction:column;line-height:1.35;white-space:normal}
.location-grid .pos-head{white-space:normal;line-height:1.2}
.location-grid .pos-cell{font-family:"Courier New",monospace}
@media(max-width:860px){.location-grid{grid-template-columns:36px minmax(0,1fr) minmax(0,1fr)}.location-grid > :nth-child(n){display:revert}.location-grid > :nth-child(3),.location-grid > :nth-child(5),.location-grid > :nth-child(6){display:none}}
/* Night sweep 2026-10-18: one color per thing in every menu and on every add button. */
.menu-icon.tiers-icon{color:#12b886}.menu-icon.clearing-icon{color:#6741d9}.menu-icon.directory-icon{color:#d4a017}.menu-icon.routing-icon{color:#1c7ed6}
.menu a[href$="/setup/printing"] .menu-icon{color:#495057}
.topbar nav a[href$="/staff"] .nav-icon{color:#5f3dc4}
button[aria-label="New patient"],a[aria-label="New patient"],a[aria-label="New patient"] svg{color:#2b8a3e !important}
button[aria-label="Add staff"],button[aria-label="Add staff"] svg{color:#5f3dc4 !important}
button[aria-label="Add clinician"],button[aria-label="Add clinician"] svg{color:#0f7b6c !important}
button[aria-label="Add location"] svg{stroke:url(#rainbow-pin)}
button[aria-label="New organization"],button[aria-label="New organization"] svg{color:#2a5d9f !important}
button[aria-label="Add payer"],button[aria-label="Add payer"] svg,button[aria-label="From directory"],button[aria-label="From directory"] svg,button[aria-label="Add directory payer"] svg{color:#d4a017 !important}
button[aria-label="Add clearinghouse"],button[aria-label="Add clearinghouse"] svg{color:#6741d9 !important}
/* An open add button keeps its colored icon readable: a light grey background instead of solid teal. */
.add-icon[aria-expanded=true],.add-new[aria-expanded=true]{background:#f1f3f5 !important;border-color:#ced4da !important}
/* Super-admin Accounts: a payment-status pick list (Active by default) instead of tabs. */
.account-filter{display:flex;justify-content:flex-end;margin:0 0 8px}.account-filter select{width:auto;min-height:32px;padding:3px 8px;font-size:13px;margin:0}

/* Accounts: a Payment column after Tier; its title is the payment-status pick list. */
.admin-grid.practices{grid-template-columns:30px minmax(150px,2fr) 70px 124px 78px 42px 34px 40px 40px 34px 50px 34px 84px 96px;column-gap:8px}
.admin-grid.practices > span:nth-child(12){padding-left:0}
.admin-grid.practices > span:nth-child(13),.admin-grid.practices > span:nth-child(14){padding-left:12px}
.account-filter.in-head{margin:0;justify-content:flex-start}.account-filter.in-head select{min-height:28px;padding:2px 6px;font-size:12.5px;max-width:100%}
.admin-grid.practices .pay-cell{display:flex;align-items:center}.admin-grid.practices .pay-cell .pay-chip{margin:0}
/* Accounts: tighter columns and gaps so Last activity fits. */
.admin-grid.practices{grid-template-columns:30px minmax(140px,2fr) 58px 116px 70px 36px 30px 34px 34px 30px 46px 28px 72px 86px;column-gap:6px}
.admin-grid.practices > span:nth-child(13),.admin-grid.practices > span:nth-child(14){padding-left:6px}

/* Accounts: each tier's name in its own color, rising from grey (Free) to deep purple (Max 50x). */
.tier-name{font-weight:650}
.tier-name[data-tier="FREE"]{color:#868e96}.tier-name[data-tier="PRO"]{color:#1c7ed6}.tier-name[data-tier="MAX5"]{color:#0ca678}
.tier-name[data-tier="MAX20"]{color:#e67700}.tier-name[data-tier="MAX50"]{color:#ae3ec9}.tier-name[data-tier="CUSTOM"]{color:#c92a2a}
.tier-name[data-tier="CUSTOM"]{color:#343a40}
.admin-grid.practices{grid-template-columns:30px minmax(140px,2fr) 112px 116px 70px 36px 30px 34px 34px 30px 46px 28px 72px 86px}
/* Accounts: a narrower account name (cut with … beyond it, full name on hover) and Tier close to Payment. */
.admin-grid.practices{grid-template-columns:30px minmax(110px,180px) 100px 110px 70px 36px 30px 34px 34px 30px 46px 28px 72px minmax(86px,1fr)}
.account-filter.in-head select{width:100%}

/* Accounts: Services this month narrower (limits as 25K), Last bill close to Last activity. */
.admin-grid.practices{grid-template-columns:30px minmax(110px,180px) 100px 110px 62px 36px 30px 34px 34px 30px 46px 28px 56px minmax(70px,1fr)}
.admin-grid.practices > span:nth-child(13),.admin-grid.practices > span:nth-child(14){padding-left:0}
/* Setup lists: Expand / Collapse all at the far left of the header, over the row icons. */
.head-expand{display:inline-flex;align-items:center;gap:0}.head-expand .icon-btn{min-height:26px;padding:2px 3px}
.head-expand .icon-btn{padding:1px;min-width:0}.head-expand .icon-btn svg{width:16px;height:16px}
.provider-grid .billers-head{display:flex;align-items:center;cursor:help}.provider-grid .billers-head .role-icon{width:18px;height:18px}
/* Rules list: Location (rainbow pin) and Billing organization (building with $) as icon column titles. */
.rule-grid .icon-head,.setup-head .icon-head{display:flex;align-items:center;cursor:help}
.icon-head .head-svg{width:20px;height:20px}
.icon-head .loc-head-icon{stroke:url(#rainbow-pin);transform:scale(1.22)}
.icon-head .org-head-icon{color:#2a5d9f}

/* Accounts: Payment is a pick list on each account's line (2026-10-18), colored like its status chip. */
.admin-grid.practices .pay-form{display:flex;align-items:center;gap:4px;margin:0}
.admin-grid.practices .pay-pick{font-size:12px;font-weight:600;padding:1px 4px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ink,#1f2a24);cursor:pointer;max-width:100%}
.admin-grid.practices .pay-pick:hover,.admin-grid.practices .pay-pick:focus{border-color:var(--line)}
.admin-grid.practices .pay-pick[data-status=PAST_DUE]{background:#fef7e0;color:#8a5a00}
.admin-grid.practices .pay-pick[data-status=SUSPENDED],.admin-grid.practices .pay-pick[data-status=CLOSED]{background:#fce8e6;color:#c5221f}
.admin-grid.practices .pay-form .inline-status{font-size:11px}
.admin-grid.practices .pay-form .inline-status:empty{display:none}
/* The Payment pick list's save message sits below it, so the pick list keeps its width. */
.admin-grid.practices .pay-form{flex-direction:column;align-items:flex-start;gap:2px}
.admin-grid.practices .pay-form .pay-pick{width:auto;max-width:none}
.admin-grid.practices .pay-form .inline-status{line-height:1.25;white-space:normal}

/* Accounts: Tier is a pick list on each account's line too, in its tier's color; its message sits below. */
.admin-grid.practices .tier-line-form{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0}
.admin-grid.practices .tier-pick{font-size:13px;padding:1px 2px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer}
.admin-grid.practices .tier-pick:hover,.admin-grid.practices .tier-pick:focus{border-color:var(--line)}
.admin-grid.practices .tier-pick option{color:#1f2a24;font-weight:500}
.admin-grid.practices .tier-line-form .inline-status{font-size:11px;line-height:1.25;white-space:normal}
.admin-grid.practices .tier-line-form .inline-status:empty{display:none}

/* Accounts: Time zone sits at the end of the account's details (rarely changed). */
.admin-detail .tier-box{align-items:center}.admin-detail .tz-form{margin:0 0 0 auto}
.admin-detail .tz-form label{flex:0 0 auto;flex-direction:row;align-items:center;gap:8px}
.admin-detail .tz-form select{width:auto;min-width:0;max-width:130px;flex:0 0 auto;padding-right:24px}
.admin-detail .tier-box{border:0;margin:6px 0 0;padding:6px 0 4px}
.admin-detail .admin-table tbody tr:last-child td{border-bottom:0}
/* Accounts: the Tier and Payment pick lists on a line are no taller than its text, so lines keep their height. */
.admin-grid.practices .tier-pick,.admin-grid.practices .pay-pick{height:22px;min-height:0;line-height:20px;padding-top:0;padding-bottom:0;margin:0;box-sizing:border-box}
.admin-grid.practices .tier-cell,.admin-grid.practices .pay-cell{min-height:0}

/* Add rule: checklists in place of pick lists (like a login's roles); the closed list reads what is ticked. */
.pick-many{position:relative;display:block;min-width:0}
.pick-many summary{list-style:none;cursor:pointer;display:flex;align-items:center;min-height:30px;padding:0 26px 0 8px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:13px;color:#5f6368;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}
.pick-many summary::-webkit-details-marker{display:none}.pick-many summary::marker{content:""}
.pick-many summary::after{content:"";position:absolute;right:10px;top:50%;width:6px;height:6px;border-right:1.6px solid #5f6368;border-bottom:1.6px solid #5f6368;transform:translateY(-70%) rotate(45deg)}
.pick-many.picked summary{color:#1f2a24}
.pick-many .pick-many-list{position:absolute;z-index:6;left:0;top:calc(100% + 2px);min-width:100%;max-width:420px;max-height:320px;overflow:auto;padding:6px 10px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.12);display:flex;flex-direction:column;gap:2px}
.pick-many .pick-many-list label{display:flex;align-items:center;gap:8px;margin:0;padding:3px 0;font-weight:500;font-size:13px;white-space:nowrap;cursor:pointer}
.pick-many .pick-many-list input{margin:0;width:15px;height:15px;flex:none}
.rule-add .rule-org{display:flex;align-items:center;gap:8px}.rule-add .rule-org .pick-many{flex:1}
.pick-many summary.invalid{border-color:#c26a00}
.pick-many > summary::before{content:none;display:none}.pick-many summary{font-weight:400}
details.pick-many.pick-many.pick-many > summary::before{content:none;display:none}
/* Patients: the new-bill line starts at the left with its Start bill button, then clinician, location and case. */
.patient-table tr.bill-row .row-book{justify-content:flex-start}.patient-table tr.bill-row .start-bill{order:-1}
/* The "needs attention" badge is amber like the other warnings, never the red of the CMS form. */
.scrub-mark::after,.case-need::after{background:var(--warn-mark)}
/* Super-admin Sign-ins and Refused: the Account number sits centered under its title. */
.admin-table th.acct-col,.admin-table td.acct-col{text-align:center}
/* Super-admin lists (Sign-ins, Refused, failed sign-ins, support log): the Account number sits centered under its title. */
.admin-table th.acct-col,.admin-table td.acct-col{text-align:center}
/* Admin icon: the person in the admin purple, the gear in the settings slate (as Account settings). */
/* Admin: the gear alone, in the admin purple (2026-10-20). */
.role-icon.admin .admin-gear{stroke:currentColor}
/* Biller icon: the person in the biller amber, the $ in the money gold (as the billing organization icon). */
.role-icon.biller .biller-dollar{stroke:#d4a017}

/* Patients, a patient's bills: the bill's status icon leads the line and opens the bill (one icon and color per status). */
.appt-history a.open-bill.draft,.appt-history a.open-bill.draft svg{color:#3b5bdb !important}
.appt-history a.open-bill.ready,.appt-history a.open-bill.ready svg{color:#16813f !important}
.appt-history a.open-bill.batched,.appt-history a.open-bill.batched svg{color:#6741d9 !important}
.appt-history a.open-bill.filed,.appt-history a.open-bill.filed svg{color:#16813f !important}

/* Bill status badges (fragments billStatus): a white disc with a soft ring, the mark in the status color. */
.bill-badge{display:block;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.12))}
.bill-badge .badge-ring{stroke:#dee2e6}
.bill-badge.draft{color:#3b5bdb}.bill-badge.draft .badge-ring{stroke:#c5d0fa}
.bill-badge.bill_only{color:#0b7285}.bill-badge.bill_only .badge-ring{stroke:#b6e0e6}
.bill-badge.ready{color:#e67700}.bill-badge.ready .badge-ring{stroke:#ffe1b8}
.bill-badge.batched{color:#6741d9}.bill-badge.batched .badge-ring{stroke:#ddd2fb}
.bill-badge.filed{color:#2f9e44}.bill-badge.filed .badge-ring{stroke:#c3e6cb}
.appt-history a.open-bill svg.bill-badge.draft,.bills-table svg.bill-badge.draft{color:#3b5bdb !important}
.appt-history a.open-bill svg.bill-badge.bill_only,.bills-table svg.bill-badge.bill_only{color:#0b7285 !important}
.appt-history a.open-bill svg.bill-badge.ready,.bills-table svg.bill-badge.ready{color:#e67700 !important}
.appt-history a.open-bill svg.bill-badge.batched,.bills-table svg.bill-badge.batched{color:#6741d9 !important}
.appt-history a.open-bill svg.bill-badge.filed,.bills-table svg.bill-badge.filed{color:#2f9e44 !important}
.status-cell .status-icon{display:inline-flex;vertical-align:middle}
/* Bill status badges, three statuses: incomplete blue, complete amber (in progress), batched green. */
.bill-badge.incomplete .badge-ring{stroke:#c5d0fa}.bill-badge.complete .badge-ring{stroke:#ffe1b8}.bill-badge.batched .badge-ring{stroke:#c3e6cb}
.appt-history a.open-bill svg.bill-badge.incomplete,.bills-table svg.bill-badge.incomplete{color:#3b5bdb !important}
.appt-history a.open-bill svg.bill-badge.complete,.bills-table svg.bill-badge.complete{color:#e67700 !important}
.appt-history a.open-bill svg.bill-badge.batched,.bills-table svg.bill-badge.batched{color:#2f9e44 !important}
.filing-table .ready-col .status-icon{display:inline-flex;justify-content:center}
.filing-table svg.bill-badge.incomplete{color:#3b5bdb}.filing-table svg.bill-badge.complete{color:#e67700}
/* The bill's two sign-offs: the clinician's (a check) and the biller's (the biller icon); signed ones are filled in. */
.signoffs{display:inline-flex;align-items:center;gap:6px}
.signoffs .signoff-mark{display:inline-flex;color:var(--muted);opacity:.7}.signoffs .signoff-mark.is-ready{color:#16813f;opacity:1}

/* The bill page's tools: every icon the same size. */
.patient-banner .icon-btn svg,.patient-banner .signoff-mark svg,.patient-banner a svg,.patient-banner button svg{width:22px;height:22px}
/* ONE LIST STYLE for the whole app (2026-10-19). Every list line (a table row or a grid line) gets the class list-line
   from stripeLists (app.js LIST_LINES), every other one .alt. Change the look here, once, for every list. */
:root{--list-font:13px;--list-line:32px;--list-alt:#f6f8f5;--list-hover:#dcebf7;--list-link:var(--teal);--list-link-weight:600;
  --list-btn:26px;--list-btn-icon:16px;--list-pick:26px}
tr.list-line > td{font-size:var(--list-font);height:var(--list-line);padding-top:3px;padding-bottom:3px}
div.list-line,form.list-line,article.list-line > .setup-item-head{font-size:var(--list-font);min-height:var(--list-line)}
article.list-line{padding:0}
tr.list-line.alt > td,div.list-line.alt,form.list-line.alt,article.list-line.alt > .setup-item-head{background:var(--list-alt) !important}
tr.list-line:hover > td,div.list-line:hover,form.list-line:hover,article.list-line > .setup-item-head:hover{background:var(--list-hover) !important}
/* The line's name opens it: a teal link, as on Patients. */
.list-line :is(.name-toggle,a.bill-link){color:var(--list-link);font-weight:var(--list-link-weight);font-size:var(--list-font)}
.list-line :is(.name-toggle,a.bill-link):hover,.list-line .name-toggle[aria-expanded="true"]{color:var(--list-link);text-decoration:underline}
.list-line.inactive .name-toggle{color:#8f9894;font-weight:500}
/* Icon buttons and pick lists on a line fit inside it. */
.list-line :is(.row-icon,.login-cell) .icon-btn{min-height:0;min-width:0;height:var(--list-btn);width:calc(var(--list-btn) + 2px);padding:0;display:inline-flex;align-items:center;justify-content:center}
.list-line :is(.row-icon,.login-cell) svg{width:var(--list-btn-icon);height:var(--list-btn-icon)}
.rule-grid.list-line{padding:0;line-height:1.35}
.rule-grid.list-line select{min-height:0;height:var(--list-pick);padding:0 6px;font-size:var(--list-font)}
/* Locations: the address on two lines (street, then city, state and ZIP), tight so the line stays compact. */
.location-grid.list-line .full-address{display:flex;flex-direction:column;line-height:1.25;padding:2px 0}
/* New-bill and booking lines: the location box is capped so clinician, location and case fit on one line; the open
   list still shows each location in full. */
.row-book select.location-pick,.appt-add select.location-pick{max-width:340px;text-overflow:ellipsis}
.row-book select[name=caseId]{max-width:220px}
/* Bill page, New case: the Description on the Case title line (app.js), shown while the new case is open. */
.case-pick .case-head-inline{display:flex;align-items:center;margin:0 0 0 12px;flex:1 1 320px}
.case-pick .case-head-inline label.wide{display:flex;flex-direction:row;align-items:center;gap:8px;margin:0;font-size:12px;font-weight:600;flex:1;white-space:nowrap}
.case-pick .case-head-inline input{flex:1;min-width:0;margin:0;min-height:28px;padding:2px 8px}
.case-pick:has(.new-case-btn[aria-expanded="false"]) .case-head-inline{display:none}
/* Bill page: the biller's sign-off is a sticky note (yellow, pinned); once signed it turns pale green. */
.patient-banner .sticky-note{display:inline-flex;align-items:center;gap:6px;margin:0 0 0 4px;padding:5px 10px 5px 8px;border:0;border-radius:2px;
  background:#fff3a6;color:#3d3a1f;font:700 11.5px/1 system-ui,"Segoe UI",sans-serif;letter-spacing:.6px;text-transform:uppercase;cursor:pointer;
  box-shadow:0 1px 1px rgba(0,0,0,.08),2px 3px 6px rgba(0,0,0,.14);transform:rotate(-1.5deg);min-height:0}
.patient-banner .sticky-note:hover{background:#ffec80;transform:rotate(0)}
.patient-banner .sticky-note .pin{width:14px;height:14px;color:#d6336c;flex:none}
.patient-banner .sticky-note.is-ready{background:#dff3e4;color:#1d5f33}.patient-banner .sticky-note.is-ready .pin{color:#2f9e44}
/* The sign-off notes speak for themselves: no pre-scrub "!" badge or outline on them. */
.signoffs.scrub-mark{outline:none !important;background:none !important}.signoffs.scrub-mark::after{content:none !important;display:none !important}
/* Bills list: the status badge opens the bill, the name opens the patient (a teal link, as on Patients). */
.bills-table tr.list-line td.name a.patient-link{color:var(--list-link);font-weight:var(--list-link-weight);font-size:var(--list-font)}
.bills-table tr.list-line td.name a.patient-link:hover{text-decoration:underline}
.bills-table td.name{font-weight:400}.bills-table .status-cell a.status-icon{display:inline-flex;vertical-align:middle}
.bills-table th.icon-head[title="Clinician"]{color:#0f7b6c;cursor:help}.bills-table th.icon-head svg{vertical-align:middle}
/* Patient: Cases is a folder icon (its meaning in the tooltip), and each case's name a teal link as on the Patients list. */
.cases-head h3.cases-title{cursor:help}.cases-head .cases-icon{color:var(--teal);flex:none}
.case-line .name-toggle{color:var(--list-link);font-weight:var(--list-link-weight);font-size:var(--list-font)}
.case-line .name-toggle:hover,.case-line .name-toggle[aria-expanded="true"]{color:var(--list-link);text-decoration:underline}
.case-line.closed .name-toggle{color:#8f9894;font-weight:500}
.case-line strong{font-weight:400}.case-line .case-desc{font-size:var(--list-font)}
/* The case icon (fragments caseIcon): clipboard slate teal, the patient raspberry. */
.case-icon .clip{stroke:#46696a}.case-icon .who{stroke:#b02a5b}.cases-head .case-icon{flex:none;width:22px;height:22px}
.cases-head .case-icon{width:30px;height:30px}
/* Case names and every list's name links: exactly the Patients link (teal, 600, 13px) — stronger than the older
   bold .row-opener rules. */
.case-line .name-toggle.row-opener,.list-line .name-toggle.row-opener{color:var(--list-link);font-weight:var(--list-link-weight);font-size:var(--list-font);font-family:inherit;letter-spacing:normal}
.case-line.closed .name-toggle.row-opener,.list-line.inactive .name-toggle.row-opener{color:#8f9894;font-weight:500}
/* Case form: no Save on an open case (it autosaves); Close case is a light "closed" sign icon. */
.case-form .close-case.icon-btn{color:#7a8580;padding:2px 4px;min-height:0}.case-form .close-case.icon-btn:hover{color:#b02a5b}
.case-form .case-autosave{font-size:12px;color:var(--muted)}.case-form .case-autosave.failed{color:#8a5a00}
/* Patients, an open case: the Description line goes under the case's boxes; the Close sign a bit bigger. */
.patient-cases .case-form .case-head{grid-row:99;grid-column:1;margin:8px 0 0}.patient-cases .case-form .case-top{grid-row:99;grid-column:2;margin:8px 0 0}
.case-form .close-case.icon-btn svg{width:30px;height:30px}
.case-form .close-case.icon-btn{overflow:visible}.case-form .close-case.icon-btn svg{overflow:visible}
/* The Bills icon (2026-10-19): a medical page (Bills blue, teal cross) and a gold $. */
.bills-icon .acc{stroke:#2f9e8f}.bills-icon .dollar{stroke:#d4a017}
/* Pre-scrub box: a problem fixed in place (a phone box, a file picker) under its line; a fixed line is struck through. */
.scrub-dialog .scrub-fix{display:flex;align-items:center;gap:8px;margin:4px 0 2px}
.scrub-dialog .scrub-fix input[type=tel]{width:160px;margin:0;min-height:28px;padding:2px 8px}
.scrub-dialog .scrub-fix input[type=file]{font-size:12px}
.scrub-dialog .scrub-fix-status{font-size:12px;color:#8a5a00}
.scrub-dialog li.fixed a{text-decoration:line-through;color:var(--muted)}
/* Patients: the Phone column title is a handset (slate); numbers read (845) 300-0828. */
.patient-table th.phone-head{color:#495057;cursor:help}.patient-table th.phone-head svg{vertical-align:middle}.patient-table td.phone{white-space:nowrap}
/* Patients: the short columns (age, sex, phone, appointments, bills) shrink to their content; the name and payer
   share the rest, so the columns sit close together. */
.patient-table:not(.appts-table) > thead th:not(:first-child):not(.payer-head){width:1%;white-space:nowrap;padding-left:12px;padding-right:12px}
.patient-table:not(.appts-table) th.hist-head{width:1%}
/* The name column fits the longest name (up to its cap); the payer column takes what is left. */
.patient-table:not(.appts-table) > thead th:first-child{width:230px;white-space:nowrap}.patient-table:not(.appts-table) td.name{max-width:230px}
/* Bill tools: a refused sign-off says why on its own line, under the icons. */
.patient-banner.slim:has(.ready-error){flex-wrap:wrap}
.patient-banner.slim .ready-error{order:99;flex-basis:100%;margin:4px 0 0}
/* Attachment names: plain-weight links. */
.attachment-list li a{font-weight:400}
/* A patient's visits and bills: titles left, with the same side padding as the values under them. */
.appt-history > thead th{text-align:left;padding-left:10px;padding-right:10px}
/* A patient's visits and bills: the column titles are icons (meaning in the tooltip), in each thing's color. */
.appt-history .hist-icon{cursor:help;vertical-align:middle}.appt-history .hist-icon svg{display:block}
.appt-history .hist-icon.cal{color:#339af0}.appt-history .hist-icon.dos{color:#3b5bdb}.appt-history th.hist-icon.clin{color:#0f7b6c}
.appt-history th.hist-icon .case-icon{width:18px;height:18px}
/* Worklist: the Phone title is the handset (slate), and the patient's name a teal link as on Patients. */
.appts-table th.phone-head{color:#495057;cursor:help}.appts-table th.phone-head svg{vertical-align:middle}
.appts-table.patient-table td.name a.bill-link{color:var(--list-link);font-weight:var(--list-link-weight);font-size:var(--list-font)}
.appts-table.patient-table td.name a.bill-link:hover{text-decoration:underline}
/* Clinician and Location column titles are their icons everywhere (fragments clinicianHeadIcon / locationHeadIcon). */
.head-icon{vertical-align:middle;cursor:help}.clinician-head-icon{color:#0f7b6c}
/* A case named on a line links to its case (teal, as the case list names it). */
a.case-link{color:var(--list-link);font-weight:500;text-decoration:none}a.case-link:hover{text-decoration:underline}
.appt-history td.place{max-width:300px;overflow:hidden;text-overflow:ellipsis}
/* Patients: the Appointments and Bills titles sit centered over their count bubbles (34px wide, left in the cell). */
.patient-table td.hist-cell,.patient-table td.hist-cell.bills-cell{text-align:left;padding-left:12px}
.patient-table th.hist-head{text-align:left;padding-left:21px}
.patient-table th.hist-head{padding-left:27px}
.patient-table:not(.appts-table) > thead th.hist-head:not(:first-child){padding-left:24px;text-align:left}
/* Rules: the add line is the list's last line (always there for an admin); its add-rule icon saves. */
.rule-add-line{border-top:1px solid var(--line);padding:6px 0 2px;background:none}
.rule-add-line .rule-add{align-items:center}.rule-add-line .rule-save{display:flex;align-items:center}
.rule-add-line .rule-save .add-new{min-height:0;height:28px;width:30px;padding:0;display:inline-flex;align-items:center;justify-content:center}
/* Rules: the column titles start where the values under them do. */
.rule-grid.setup-head > span:not(:first-child){padding-left:7px}
/* "Discard unsaved changes?" (app.js confirmDiscard): centered, amber warning and Discard (red is the CMS form's). */
.discard-dialog{text-align:center;min-width:320px;position:relative}
.discard-dialog .close-x{position:absolute;top:8px;right:8px}
.discard-dialog .discard-icon{color:#2b2d42;display:block;margin:6px auto 8px}
.discard-dialog .discard-title{margin:0 0 6px;font-size:20px;font-weight:500;color:var(--ink)}
.discard-dialog .discard-note{margin:0 0 18px;font-size:13.5px;color:var(--muted)}
.discard-dialog .leave-actions{justify-content:center}
.discard-dialog .discard-yes{background:#c26a00;border:1px solid #c26a00;color:#fff;border-radius:999px;min-width:100px;font-weight:600}
.discard-dialog .discard-yes:hover{background:#a85c00}
.discard-dialog .discard-no{background:#fff;border:1px solid #6b5bd2;color:#3d3a8f;border-radius:999px;min-width:100px}
.discard-dialog .discard-yes.calm{background:var(--teal);border-color:var(--teal)}.discard-dialog .discard-yes.calm:hover{background:#0e5a4f}
/* Rules only (2026-10-19): the line's action (trash; the add line's add-rule icon) is the last column, after the three
   choices, so the add line reads left to right and ends on its button. */
.rule-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr) 36px}
.rule-grid > .row-icon,.rule-grid > .rule-save,.rule-grid.setup-head > span:first-child{order:99;justify-self:center}
.rule-grid.setup-head > span:nth-child(2){padding-left:7px}
@media(max-width:760px){.rule-grid{grid-template-columns:minmax(0,1fr) 36px}.rule-grid > :nth-child(n+3){grid-column:1}}
/* Worklist: the status pick list beside the Filter box. */
.appt-tabs .status-filter{margin:0 8px 0 auto;min-height:34px;padding:4px 8px;font-size:13px;width:auto}
.appt-tabs .status-filter + .filter{margin-left:0}
.appt-tabs .status-filter + #patient-search{margin-left:0}.appt-tabs .status-filter{margin-bottom:4px;min-height:32px}
/* Worklist: cancelled and no-show visits (shown on request) read greyed. */
.appts-table tr.appt-line[data-status=CANCELLED] td,.appts-table tr.appt-line[data-status=NO_SHOW] td{color:var(--muted)}
/* A cancelled appointment: its time is struck through (the appointment went, not the patient). */
.appts-table tr.appt-line[data-status=CANCELLED] td.time-cell{text-decoration:line-through}
.appts-table tr.appt-line[data-status=CANCELLED] td.name a,.appts-table tr.appt-line[data-status=NO_SHOW] td.name a{color:var(--muted)}
/* Bill: no calendar icon in date boxes; a click opens the calendar for recent dates (app.js), birth dates are typed. */
.form-paper input[type=date]::-webkit-calendar-picker-indicator,.nf3-sheet input[type=date]::-webkit-calendar-picker-indicator,#nf3-page1 input[type=date]::-webkit-calendar-picker-indicator{display:none}
.form-paper input[type=date]:not([name*=birth i]),.nf3-sheet input[type=date],#nf3-page1 input[type=date]{cursor:pointer}
.form-paper .mdy-date .mdy-text{cursor:pointer}
/* Bill: date boxes read like box 2's fields: plain text at rest, a light shaded box under the pointer, teal while typing. */
.form-paper input[type=date]:not(.mdy-real),.form-paper .mdy-date .mdy-text{border:1px solid transparent;background:transparent;box-shadow:none;border-radius:4px}
.form-paper input[type=date]:not(.mdy-real):not(:disabled):hover,.form-paper .mdy-date .mdy-text:not(:disabled):hover{border-color:#e3e7e4;background:#f4f6f3}
.form-paper input[type=date]:not(.mdy-real):focus,.form-paper .mdy-date .mdy-text:focus{border-color:var(--teal);background:#fff;outline:none}
/* An editable case's boxes (10, 11b, 14-18) answer the pointer like box 2's: the read-only case look (.case-view, its
   transparent !important) gives way while the case can be edited. */
.case-view.case-edit input:not([type=radio]):not([type=checkbox]):not(:disabled):hover,.case-view.case-edit select:not(:disabled):hover{border-color:#e3e7e4 !important;background:#f4f6f3 !important}
.case-view.case-edit input:not([type=radio]):not([type=checkbox]):not(:disabled):focus,.case-view.case-edit select:not(:disabled):focus{border-color:var(--teal) !important;background:#fff !important;outline:none}
/* Every in-place box on the bill (patient and insured 1-13, the bill's own boxes, the diagnoses) answers the pointer the
   same way as 14-18: a light shaded box under it, white with a teal outline while typing. */
.form-paper .cms-patient input:not([type=radio]):not([type=checkbox]):not(:disabled):hover,.form-paper .cms-patient select:not(:disabled):hover,
.form-paper .cms-bill input:not([type=radio]):not([type=checkbox]):not(:disabled):hover,.form-paper .cms-bill select:not(:disabled):hover,
.form-paper .cms21 .slot input:not(:disabled):not([readonly]):hover{border-color:#e3e7e4;background:#f4f6f3}
.form-paper .cms-patient input:not([type=radio]):not([type=checkbox]):focus,.form-paper .cms-patient select:focus,
.form-paper .cms-bill input:not([type=radio]):not([type=checkbox]):focus,.form-paper .cms-bill select:focus,
.form-paper .cms21 .slot input:not([readonly]):focus{border-color:var(--teal);background:#fff;outline:none}
/* ONE BOX STYLE on the bill (2026-10-19): every editable box (text, number, date, pick list, text area) in the
   CMS-1500 and NF-3 views reads as printed text at rest, shows a light shaded box under the pointer, and is white with
   a teal outline while typing. Older per-box rules are overridden here. Left alone: ticks and radios, the Add services
   picker, file pickers, and a box marked as refused (amber). */
.form-paper :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not([type=file]):not([type=search]),select,textarea):not(.invalid):not(.mdy-real):not(#add-services *):not(.dx-group){border:1px solid transparent !important;background:transparent !important;box-shadow:none !important;border-radius:4px}
.form-paper :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not([type=file]):not([type=search]),select,textarea):not(.invalid):not(.mdy-real):not(#add-services *):not(:disabled):not([readonly]):hover{border-color:#e3e7e4 !important;background:#f4f6f3 !important}
.form-paper :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not([type=file]):not([type=search]),select,textarea):not(.invalid):not(.mdy-real):not(#add-services *):not(:disabled):not([readonly]):focus{border-color:var(--teal) !important;background:#fff !important;outline:none}
/* Birth dates (3, 11a): only as wide as mm/dd/yyyy. */
.form-paper input[type=date][name*=birth i]{width:118px !important;min-width:0;flex:0 0 118px}
/* Birth date boxes everywhere (the bill, the Patients panel, New patient): only as wide as mm/dd/yyyy and the calendar. */
input[type=date][name*=birth i]{width:150px !important;max-width:150px;min-width:0;flex:0 0 auto}
.form-paper input[type=date][name*=birth i]{width:118px !important;max-width:118px}
.appts-table .status-icon.hist-status.cancelled{color:#8f9894}.appts-table .status-icon.hist-status.no-show{color:#a3376a}
.appts-table th.icon-head .case-icon{width:18px;height:18px;vertical-align:middle}
/* LIKE THE PRINTED CMS-1500 (02-12) (2026-10-20): the columns sit where the form's do. Boxes 1-13: 36.4% / 25.3% /
   38.3% (2-5-9 | 3-6-8-10 | 1a-4-7-11). Boxes 14-18 keep the right column at 38.3% but split the left two as
   33.7% / 28% (14-17 | 15-17a), so the case grid has four tracks: 33.7 | 2.7 | 25.3 | 38.3. Box titles are the
   form's plain red type (regular weight, Arial). Phones keep their one-column layout. */
@media (min-width:761px){
  .cms-patient.cms-top{grid-template-columns:36.4fr 25.3fr 38.3fr}
  .cms-case{grid-template-columns:33.7fr 2.7fr 25.3fr 38.3fr;grid-template-areas:"b9 b9 b10 b11b" "b14 b15 b15 b16" "b17 b17ab b17ab b18"}
}
.form-paper :is(.cms-patient,.cms-case,.cms-bottom,.cms-bill) .box-label,.form-paper .cms21 .box-label{font-family:Arial,Helvetica,sans-serif;font-weight:400;letter-spacing:0;color:var(--cms-label-red, #e0352c)}
.form-paper :is(.cms-patient,.cms-case,.cms-bottom,.cms-bill) .box-label small{font-weight:400}
@media (min-width:761px){.form-paper .cms-bottom{grid-template-columns:27.4fr 34.3fr 38.3fr}}
/* Every title on the bill in the form's plain red type, the box 19-23 and 24 headings too. */
.form-paper .box-label,.form-paper .box-label small,.form-paper .cms24 th,.form-paper .cms24 thead *{font-weight:400 !important;font-family:Arial,Helvetica,sans-serif}
.form-paper .lbl,.form-paper .lbl *,.form-paper .total-label,.form-paper .cms21 .slot > span:first-child,.form-paper .cms21 label > span:first-child{font-weight:400 !important;font-family:Arial,Helvetica,sans-serif}
/* Box 10 laid out as the printed form (2026-10-20): each question on its own line, its YES and NO under it in two
   aligned columns (the box before the word), b's PLACE (State) at the right of its answers. */
.tick-line{display:grid !important;grid-template-columns:auto auto 1fr;align-items:center;column-gap:22px;row-gap:1px;margin:2px 0 5px}
.tick-line > span:first-child{grid-column:1 / -1}
.tick-line > label.tick-choice{flex-direction:row-reverse;justify-content:flex-end;gap:5px;margin:0}
.tick-line > label.tick-choice:first-of-type{padding-left:26px}
.tick-line > label.place{grid-column:3;justify-self:end;display:inline-flex;align-items:center;gap:6px;margin:0;font:400 9.5px Arial,Helvetica,sans-serif;color:var(--cms-label-red, #e0352c);white-space:nowrap}
.tick-line > label.place select{width:auto;min-width:0;min-height:0;padding:0 4px;font-size:13px}
/* Box 10b: PLACE (State) above its pick list, beside the question and its answers (as the form prints it). */
.tick-line > label.place{flex-direction:column;align-items:flex-start;gap:1px;grid-row:1 / 3;align-self:end}
/* PLACE (State) on the line of "b. AUTO ACCIDENT?", its pick list on the line of the answers. */
.tick-line > label.place{align-self:stretch;justify-content:space-between}
/* 10b: question on row 1 (left), YES/NO on row 2, PLACE (State) and its list at the right across both rows. */
.tick-line:has(> label.place) > span:first-child{grid-column:1 / 3;grid-row:1}
.tick-line:has(> label.place) > label.tick-choice{grid-row:2}
.tick-line > label.place{grid-column:3;grid-row:1 / 3;justify-self:end}
/* A case on the bill (open under Case): box 10's tick boxes keep their outline (the read-only case look made every
   border transparent, so only the X showed); the Description line sits under the case's boxes, as on the Patients
   page, with a faint rule so an empty one still reads as a field. */
.case-view .tick-choice input,.form-paper .cms-case .tick-choice input{border:1px solid #555 !important;background:#fff !important;opacity:1}
.case-view .tick-choice input:disabled{border-color:#888 !important}
#case .case-form .case-head:not(.case-head-inline){grid-row:99;grid-column:1 / -1;margin:8px 0 0}
#case .case-form .case-head:not(.case-head-inline) input{border-bottom:1px solid #d9e2dc !important}
#case .case-form .case-head:not(.case-head-inline) label.wide{border-bottom:1px solid #d9e2dc;padding-bottom:2px}
/* Bill, boxes 6 and 11c as they print: on a workers' comp bill (10a YES) box 6 shows the printed Other in place of the
   patient's own answer; an empty 11c shows the payer's name in ink. */
.form-paper .b6 .wc-six{display:none}
.form-paper:has(.case-slot.is-employment) .cms-top .b6 .tick-row:not(.wc-six){display:none}
.form-paper:has(.case-slot.is-employment) .cms-top .b6 .wc-six{display:flex}
.form-paper .b11c input.prints-payer::placeholder{color:var(--ink) !important;-webkit-text-fill-color:var(--ink) !important;opacity:1}

/* Box 17: the + beside the list and the add panel under it (Referring providers, V80). */
.b17 .parts{display:flex;align-items:center;gap:4px}.b17 .add-referrer{flex:0 0 auto;min-width:24px;padding:0 4px;font-size:16px;line-height:1}
.referrer-add{display:flex;flex-wrap:wrap;align-items:end;gap:6px;margin-top:6px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fafbfb;font-size:12px}
.referrer-add[hidden]{display:none}.referrer-add label{display:flex;flex-direction:column;gap:2px}.referrer-add input{min-height:28px;padding:2px 6px;font-size:13px}
.referrer-add .st input{width:56px}.referrer-add .ref-status{flex-basis:100%}
.npi-lookup{display:flex;gap:4px;align-items:center}
/* Setup for a biller (view only): a lock badge at the top of each list; boxes read as plain text, nothing looks clickable. */
.view-only-badge{display:inline-flex;align-items:center;gap:5px;margin-right:10px;padding:3px 9px;border:1px solid #d9dde3;border-radius:999px;background:#f4f5f7;color:#495057;font-size:12px;font-weight:600;cursor:help;white-space:nowrap}
.setup-list :is(input,select,textarea):disabled{border-color:transparent !important;background:transparent !important;box-shadow:none !important;cursor:default;color:var(--ink);-webkit-text-fill-color:var(--ink);opacity:1;-webkit-appearance:none;appearance:none}
.setup-list :is(input,select,textarea):disabled:hover{border-color:transparent !important;background:transparent !important}
.setup-list fieldset:disabled :is(input,select,textarea){border-color:transparent !important;background:transparent !important;cursor:default;-webkit-text-fill-color:var(--ink);opacity:1;-webkit-appearance:none;appearance:none}
/* Bill: the carrier lines stand above the form without a frame (as printed); every box keeps its own lines. */
.patient-view .cms-patient.cms-top{border-color:transparent}
/* Box 2: the words PATIENT'S NAME are a link to the patient, in the app's link color (teal, underlined). */
.form-paper .box-label a.box-link{color:var(--list-link);font-weight:600;text-decoration:underline;text-underline-offset:2px}.form-paper .box-label a.box-link:hover{color:var(--list-link);text-decoration-thickness:2px}
/* Box 17: the qualifier list only as wide as "DN Referring"; the referring provider takes the rest of the box. */
.cms-case .b17 .qual-select{flex:0 0 auto !important;width:auto !important;max-width:118px;min-width:0}
.cms-case .b17 select[name=referring_party_id]{flex:1 1 0 !important;width:auto !important;min-width:0}
.cms-case .b17 .parts{flex-wrap:nowrap}
/* Payers: the pager under the list; Address and Phone titles are icons (envelope, handset; slate). */
.payer-list > nav.pager{margin-top:10px}
.payer-head .icon-head.addr-head,.payer-head .icon-head.phone-head{color:#495057;cursor:help;display:inline-flex;align-items:center}
.payer-head .icon-head.addr-head svg{width:24px;height:24px}
/* The address icon: a blue mailbox with an orange flag (red is the CMS form's). */
.payer-head .icon-head.addr-head{color:#1971c2}.payer-head .icon-head.addr-head .mail-flag{stroke:#e8590c;fill:#e8590c}
/* Payers: Payer, E-File ID, Phone, Address, Patients (2026-10-20). */
#payers .payer-grid{grid-template-columns:minmax(0,1.4fr) 100px 130px minmax(0,2fr) 70px}
/* Payers: the search box and its links start at the left of the heading. */
#payers > .panel-heading{justify-content:flex-start}#payers > .panel-heading .payer-search{margin-left:0}
.payer-search{display:flex;align-items:center;gap:8px}.payer-search .payer-show{width:auto;min-height:34px;padding:4px 8px;font-size:13px}
#payers .payer-search input[type=search]{min-width:340px;width:340px}
/* Payers: the search box and the Show list the same height, on one line. */
#payers .payer-search{align-items:center}#payers .payer-search input[type=search],#payers .payer-search .payer-show{height:34px;min-height:34px;margin:0;box-sizing:border-box}
#payers .payer-search input[type=search]{padding:4px 12px;font-size:14px}
/* Payers: Inactivate / Reactivate at the start of each payer's line (as on Setup lists), not inside its panel. */
#payers .payer-grid{grid-template-columns:34px minmax(0,1.4fr) 100px 130px minmax(0,2fr) 70px}
#payers .payer-row .row-icon{display:flex;align-items:center}#payers .payer-row .row-icon form{margin:0}
#payers .payer-row .row-icon .icon-btn{min-height:0;min-width:0;height:26px;width:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:#a33}
#payers .payer-row.inactive .row-icon .icon-btn{color:var(--teal)}
#payers .payer-row:not(.inactive) .row-icon .icon-btn{color:#868e96}#payers .payer-row:not(.inactive) .row-icon .icon-btn:hover{color:#495057}
/* Payer directory: search and clearinghouse pick list on one line; the pager under the list. */
.directory-search{display:flex;align-items:center;gap:8px}.directory-search select{width:auto;min-height:34px;padding:4px 8px;font-size:13px}
/* Payer directory (2026-10-20): search as tall as the clearinghouse pick list; lines as tall as the Patients list's. */
.directory-search input[type=search],.directory-search select{height:34px;min-height:34px;margin:0;box-sizing:border-box}.directory-search input[type=search]{padding:4px 12px;font-size:14px;min-width:300px}
.directory-page form.admin-row.admin-cols{padding-top:0;padding-bottom:0;min-height:var(--list-line);font-size:var(--list-font)}
.directory-page .admin-cols .inline-edit{height:26px;min-height:26px;padding:2px 6px;margin:0;font-size:var(--list-font);box-sizing:border-box}
/* Payers: the payer just copied from the directory or saved stands out where it lands (2026-10-20). */
.payer-row.just-added{box-shadow:inset 4px 0 0 var(--teal);background:#e6f4ef !important;scroll-margin-top:120px}
.directory-results .dir-copy{justify-self:center;color:var(--teal)}
.directory-results .dir-added{color:#8f9894}
/* NF-3: the auto-accident case fix, under DATE OF ACCIDENT (amber, a warning). */
.nf3-case-fix{background:#fff6e0;border:1px solid #e8cf8f;border-radius:6px;padding:8px 10px;margin:6px 0 10px;scroll-margin-top:120px}
.nf3-case-fix .nf3-fix-msg{margin:0 0 6px;font-size:13.5px}
.nf3-fix-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:13px}
.nf3-fix-controls form{margin:0}.nf3-fix-controls select{width:auto;min-width:220px;min-height:30px;margin:0 0 0 6px;padding:3px 8px;font-size:13px}
.nf3-fix-auto{display:inline-flex;align-items:center;gap:10px}.nf3-fix-auto .fix-label{font-weight:600}
.nf3-fix-date{display:inline-flex;align-items:center;gap:6px;margin:0}.nf3-fix-date input{width:auto;min-height:30px;margin:0;padding:3px 8px}
.nf3-fix-date.case-need input{border-color:#d9a400;box-shadow:0 0 0 2px #fbe7a6}
.nf3-fix-status{color:#8a6200}.nf3-fix-status:empty{display:none}
/* NF-3 looks like the printed form (2026-10-20): Arial print, black rules across the page instead of a grid of boxes,
   the top boxes drawn as on the form, the printed notes, page ends and page heads. Values stay Courier, as typed. */
.nf3-paper{border:1px solid #c9d2cc;padding:28px 40px;font-family:Arial,Helvetica,sans-serif;color:#111;max-width:1000px}
.nf3-paper .nf3-title{font-size:13px;line-height:1.35;margin-bottom:12px}.nf3-paper .nf3-title strong{font-weight:700}
.nf3-paper .box-label{font:400 11.5px/1.3 Arial,Helvetica,sans-serif;color:#111;text-transform:none;letter-spacing:0}
.nf3-paper .nf3-row{border:0;border-top:2px solid #111}
.nf3-paper .nf3-row .nf3-box + .nf3-box{border-left:1px solid #111}
.nf3-paper .nf3-row.nf3-top{border:0;gap:0 70px;margin:0 0 12px}
.nf3-paper .nf3-row.two.nf3-top .nf3-box{border:2px solid #111;min-height:62px}
.nf3-paper .nf3-row.two.nf3-top .nf3-box.blank{border:0}
.nf3-paper .nf3-row.head.nf3-top{gap:0;border:2px solid #111}.nf3-paper .nf3-row.head.nf3-top .nf3-box{min-height:46px}
.nf3-paper .nf3-row.head.nf3-top .box-label{text-align:center}
.nf3-paper .nf3-print{margin:4px 0 14px;font-size:11.5px;line-height:1.4}
.nf3-paper .nf3-deadline{margin:10px 60px 18px}
.nf3-paper .nf3-fraud{margin:12px 0 0;font-weight:700;font-size:12px;line-height:1.35;text-align:justify;border-top:2px solid #111;padding-top:2px}
.nf3-paper .nf3-sigline{border-top:2px solid #111;border-bottom:2px solid #111}
.nf3-paper .nf3-row:last-of-type{border-bottom:2px solid #111}
.nf3-paper .nf3-pagebreak{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;margin:6px 0 0;padding:0 0 26px;border-bottom:1px dashed #b9c4bf;font-size:11px}
.nf3-paper .nf3-pagebreak .nf3-continue{grid-column:2;font-size:12px}.nf3-paper .nf3-pagebreak .nf3-foot{grid-column:1;grid-row:2;margin-top:8px;line-height:1.35}
.nf3-paper .nf3-pagebreak.last{grid-template-columns:1fr;border-bottom:0;padding-bottom:0;margin-top:40px}.nf3-paper .nf3-pagebreak.last .nf3-foot{grid-column:1;grid-row:1}
.nf3-paper .nf3-page-head{margin:22px 0 8px}
.nf3-paper .nf3-anchor + .nf3-row,.nf3-paper .nf3-anchor + fieldset .nf3-row:first-child{border-top:2px solid #111}
@media(max-width:780px){.nf3-paper{padding:14px}.nf3-paper .nf3-row.nf3-top{gap:10px}.nf3-paper .nf3-deadline{margin:8px 0 14px}.nf3-paper .nf3-row .nf3-box + .nf3-box{border-left:0;border-top:1px solid #111}}
/* NF-3 (2026-10-20): titles above the top boxes, the provider's phone under its box; the CMS-1500 PDF hides in this view. */
.nf3-paper .nf3-row.two.nf3-top .nf3-box.nf3-framed{border:0;padding:0;min-height:0;gap:2px}
.nf3-paper .nf3-frame{display:flex;flex-direction:column;gap:3px;border:2px solid #111;padding:6px 8px;min-height:62px}
.nf3-paper .nf3-frame input:not([type=radio]){width:100%;border-bottom-color:transparent}.nf3-paper .nf3-frame input:not([type=radio]):hover{border-bottom-color:#b9c4bf}
.nf3-paper .nf3-phone{padding:2px 8px 0}
.nf3-paper .nf3-row.head.nf3-top input{width:100%;border-bottom-color:transparent}.nf3-paper .nf3-row.head.nf3-top input:hover{border-bottom-color:#b9c4bf}
.nf3-paper .nf3-lines select.nf3-setup{width:100%;margin:0}
body.nf3-view .patient-banner .print-cms.cms-only,body:not(.nf3-view) .patient-banner .print-cms.nf3-only{display:none}
/* NF-3 (2026-10-20): 20 and 21 as a tick and a title; date boxes short, blank when empty (also when locked), lined up. */
.nf3-paper .nf3-choice{align-items:center}.nf3-paper .nf3-choice-title{font-weight:700;font-size:12px}
input[type=date].empty-date:not(:focus)::-webkit-datetime-edit-text,input[type=date].empty-date:not(:focus)::-webkit-datetime-edit-month-field,
input[type=date].empty-date:not(:focus)::-webkit-datetime-edit-day-field,input[type=date].empty-date:not(:focus)::-webkit-datetime-edit-year-field{color:transparent}
.nf3-paper input[type=date]{width:9.5em;flex:0 0 auto}
.nf3-paper .nf3-answer .qual{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:12px;font-weight:400;color:#111}
.nf3-paper .nf3-answer:has(.qual){gap:6px 28px;padding:4px 0 2px 18px}
.nf3-paper .nf3-box > input[type=date]{align-self:flex-start;margin:4px 0 2px 18px}
/* NF-3 dates as on the form (2026-10-20): a blank line to write on, no calendar icon (a click opens the calendar),
   no mm/dd/yyyy while empty (locked ones too); 12 FROM and THROUGH on one line; 13's line centered over (DATE). */
.nf3-paper .nf3-box input[type=date]{width:7.6em;flex:0 0 auto;height:22px;padding:0 2px;border:0 !important;border-bottom:1px solid #111 !important;border-radius:0;background:transparent;text-align:center;font:600 13px "Courier New",monospace;cursor:pointer}
.nf3-paper .nf3-box input[type=date]::-webkit-calendar-picker-indicator{display:none}
.nf3-paper .nf3-box input[type=date]:disabled{opacity:1;cursor:default;color:#111;-webkit-text-fill-color:#111}
.nf3-paper .nf3-box input[type=date].empty-date:not(:focus){color:transparent;-webkit-text-fill-color:transparent}
.nf3-paper .nf3-box input[type=date]:focus{background:#f3faf8;border-bottom:2px solid var(--teal) !important}
.nf3-paper .nf3-answer:has(.qual){flex-wrap:nowrap;gap:0 70px;padding:10px 0 4px 20px}
.nf3-paper .nf3-answer .qual{display:inline-flex;align-items:flex-end;gap:6px;margin:0;font:400 12px Arial,Helvetica,sans-serif;color:#111;white-space:nowrap}
.nf3-paper .nf3-dateline{display:flex;flex-direction:column;align-items:center;align-self:center;margin:10px 0 0;font:400 11.5px Arial,Helvetica,sans-serif}
.nf3-paper .nf3-dateline input[type=date]{width:10em}
.nf3-paper .nf3-dateline .cap{margin-top:1px}
/* NF-3 dates (2026-10-20): every date line as wide as box 13's; 12's FROM and THROUGH fit their box, on 13's line. */
.nf3-paper .nf3-box input[type=date],.nf3-paper .nf3-dateline input[type=date]{width:10em}
.nf3-paper .nf3-answer:has(.qual){gap:0 24px;padding:4px 0 0 20px}
.nf3-paper .nf3-row.two:has(.nf3-dateline) .box-label{min-height:2.6em}
.nf3-paper .nf3-dateline{margin:4px 0 0}
/* NF-3 dates: a bit shorter; FROM and THROUGH closer, their words on the dates' line. */
.nf3-paper .nf3-box input[type=date],.nf3-paper .nf3-dateline input[type=date]{width:8.8em}
.nf3-paper .nf3-answer:has(.qual){gap:0 12px;padding-left:12px}
.nf3-paper .nf3-answer .qual{align-items:baseline;gap:4px}
.nf3-paper .nf3-box input[type=date],.nf3-paper .nf3-dateline input[type=date]{width:9.4em}
.nf3-paper .nf3-box input[type=date],.nf3-paper .nf3-dateline input[type=date]{width:9.1em}
.nf3-paper .nf3-answer:has(.qual){gap:0 8px;padding-left:8px}
/* NF-3 top (2026-10-20): the insurer's and the claims representative's boxes start on one line (titles bottom-aligned);
   DATE OF ACCIDENT on one line, its date fits; every value in the line sits on the date's line, left-aligned. */
.nf3-paper .nf3-row.two.nf3-top .nf3-box.nf3-framed > .box-label{min-height:2.6em;display:flex;align-items:flex-end}
.nf3-paper .nf3-row.head.nf3-top{grid-template-columns:.9fr 1.9fr 1.4fr 1.35fr 1.3fr}
.nf3-paper .nf3-row.head.nf3-top .box-label{white-space:nowrap}
.nf3-paper .nf3-row.head.nf3-top .v,.nf3-paper .nf3-row.head.nf3-top input{height:22px;line-height:22px;min-height:22px;margin:0;padding:0 2px;box-sizing:border-box}
.nf3-paper .nf3-row.head.nf3-top input[type=date]{width:100%;max-width:9.4em;text-align:left;border-bottom:1px solid transparent !important}
.nf3-paper .nf3-row.head.nf3-top input[type=date]:hover{border-bottom-color:#b9c4bf !important}
/* NF-3 top: the two boxes as tall as each other; DATE wide enough for its date. */
.nf3-paper .nf3-row.two.nf3-top{align-items:stretch}.nf3-paper .nf3-row.two.nf3-top .nf3-framed > .nf3-frame{flex:1 1 auto}
.nf3-paper .nf3-row.head.nf3-top{grid-template-columns:1.1fr 1.8fr 1.35fr 1.35fr 1.25fr}
.nf3-paper .nf3-row.head.nf3-top .v{white-space:nowrap;overflow:hidden}
/* NF-3: one frame (the section's); the paper inside it has no border of its own. */
.nf3-paper{border:0}
/* NF-3 boxes 1-19 (2026-10-20): the data starts indented under its title, as the YES/NO answers do and as the form prints. */
.nf3-paper .nf3-fields .nf3-box > .v,.nf3-paper .nf3-fields .nf3-box > input:not([type=radio]):not([type=date]),.nf3-paper .nf3-fields .nf3-dx-list{margin-left:18px}
.nf3-paper .nf3-fields .nf3-box > .v{padding-left:0}
/* NF-3: no rule under the provider box (only box 1's rule above the patient). */
.nf3-paper .nf3-row.nf3-top:last-of-type{border-bottom:0}
/* NF-3 box 1 as printed: the name under the title, the address on two lines at the right. */
.nf3-paper .nf3-box.nf3-box1{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;column-gap:16px}
.nf3-paper .nf3-box1 .box-label{grid-column:1;grid-row:1}.nf3-paper .nf3-box1 .nf3-name{grid-column:1;grid-row:2;align-self:end}
.nf3-paper .nf3-box1 .nf3-addr{grid-column:2;grid-row:1 / span 2;display:flex;flex-direction:column;gap:2px;padding-top:2px}
@media(max-width:780px){.nf3-paper .nf3-box.nf3-box1{grid-template-columns:1fr}.nf3-paper .nf3-box1 .nf3-addr{grid-column:1;grid-row:3;margin-left:18px}}
/* NF-3 box 5 as it prints (2026-10-20): the six codes in one row, left to right; each description is its tooltip. */
.nf3-paper .nf3-dx-list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:none;grid-auto-flow:row;gap:0 10px}
.nf3-paper .nf3-dx-list .dx-desc{display:none}
.nf3-paper .nf3-dx-row input.nf3-dx{width:100%;max-width:7.5em}
@media(max-width:780px){.nf3-paper .nf3-dx-list{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Procedure groups (Add services) and diagnosis groups (box 21), V82. */
.proc-groups{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 8px}
.proc-groups .group-list{display:flex;flex-wrap:wrap;gap:6px}
.proc-groups .group-chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:14px;padding:0 2px 0 8px;background:#f6f8f8}
.proc-groups .group-pick{padding:2px 4px;font-weight:600}.proc-groups .group-status{font-size:12px}
.dx-groups{display:inline-flex;align-items:center;gap:4px;margin-left:6px}.dx-groups select{max-width:180px}
/* Admin gear in two colors (2026-10-20): the cog in the admin purple, its hub a lighter purple. */
.role-icon.admin .admin-gear .cog{stroke:#6b4fa3}.role-icon.admin .admin-gear .hub{stroke:#a98bdc;fill:#efe8fa}
/* The copy icon (Payers): the front copy in color, the one behind it gray (2026-10-20). */
svg .copy-back{stroke:#9aa3a0}
/* Referring providers (2026-10-20): two people, the one behind gray; the one in front and the referral arrow raspberry. */
.referrer-icon .ref-back{stroke:#9aa3a0}.referrer-icon .ref-front{stroke:#c2255c}
/* Referring providers, laid out as Payers (2026-10-20): the search at the left; the add icon left of the first title. */
#referrers > .panel-heading{justify-content:flex-start}#referrers > .panel-heading .payer-search{margin-left:0}
#referrers .payer-search input[type=search]{min-width:340px;width:340px;height:34px;min-height:34px;margin:0;box-sizing:border-box;padding:4px 12px;font-size:14px}
#referrers .payer-head .head-add{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
/* Referring providers (2026-10-20): inactivate / reactivate and delete in a column on the left, gray icons, as on Payers. */
#referrers .payer-grid{grid-template-columns:56px minmax(0,1.4fr) minmax(0,2fr) 130px 100px 70px}
#referrers .payer-row .row-icon{display:flex;align-items:center;gap:2px}#referrers .payer-row .row-icon form{margin:0}
#referrers .payer-row .row-icon .icon-btn{min-height:0;min-width:0;height:26px;width:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:#868e96}
#referrers .payer-row .row-icon .icon-btn:hover{color:#495057}
@media (max-width:860px){#referrers .payer-grid{grid-template-columns:56px 1fr auto}}
/* Referring provider form (2026-10-20): the boxes grouped as they belong together, one group a line:
   the name; the IDs (NPI, taxonomy, the 17a qualifier with its ID); the address and phone. */
#referrers .payer-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:12px;row-gap:8px;align-items:end;
  grid-template-areas:"last last first first mi cred" "npi npi tax q17 id17 id17" "street street city state zip phone"}
#referrers .payer-form label{flex:none;min-width:0}
#referrers .payer-form .f-last{grid-area:last}#referrers .payer-form .f-first{grid-area:first}#referrers .payer-form .f-mi{grid-area:mi}#referrers .payer-form .f-cred{grid-area:cred}
#referrers .payer-form .f-npi{grid-area:npi}#referrers .payer-form .f-tax{grid-area:tax}#referrers .payer-form .f-q17{grid-area:q17}#referrers .payer-form .f-id17{grid-area:id17}
#referrers .payer-form .f-street{grid-area:street}#referrers .payer-form .f-city{grid-area:city}#referrers .payer-form .f-state{grid-area:state}
#referrers .payer-form .f-zip{grid-area:zip}#referrers .payer-form .f-phone{grid-area:phone}
#referrers .payer-form .inline-status,#referrers .payer-form .edit-actions{grid-column:1 / -1}
#referrers .payer-form select{width:100%;margin:0;min-height:32px}
@media (max-width:760px){#referrers .payer-form{grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-areas:"last first" "mi cred" "npi tax" "q17 id17" "street street" "city state" "zip phone"}}
/* Referring provider form: the phone box titled by the phone icon (as the Payers list's column). */
#referrers .payer-form .phone-label{display:inline-flex;align-items:center;color:#495057;cursor:help;height:15px}
/* Employers, laid out as Payers and Referring providers (2026-10-20): search at the left; inactivate / reactivate and
   delete as gray icons in a column on the left; Address and Phone titled by their icons; the form grouped by meaning. */
#employers > .panel-heading{justify-content:flex-start}#employers > .panel-heading .payer-search{margin-left:0}
#employers .payer-search input[type=search]{min-width:340px;width:340px;height:34px;min-height:34px;margin:0;box-sizing:border-box;padding:4px 12px;font-size:14px}
#employers .payer-grid{grid-template-columns:56px minmax(0,1.4fr) minmax(0,2fr) 130px minmax(0,1fr) 70px}
@media (max-width:860px){#employers .payer-grid{grid-template-columns:56px 1fr auto}}
#employers .payer-row .row-icon{display:flex;align-items:center;gap:2px}#employers .payer-row .row-icon form{margin:0}
#employers .payer-row .row-icon .icon-btn{min-height:0;min-width:0;height:26px;width:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:#868e96}
#employers .payer-row .row-icon .icon-btn:hover{color:#495057}
#employers .payer-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:12px;row-gap:8px;align-items:end;
  grid-template-areas:"name name name wc wc wc" "street street city state zip phone"}
#employers .payer-form label{flex:none;min-width:0}
#employers .payer-form .f-name{grid-area:name}#employers .payer-form .f-wc{grid-area:wc}#employers .payer-form .f-street{grid-area:street}
#employers .payer-form .f-city{grid-area:city}#employers .payer-form .f-state{grid-area:state}#employers .payer-form .f-zip{grid-area:zip}#employers .payer-form .f-phone{grid-area:phone}
#employers .payer-form .inline-status,#employers .payer-form .edit-actions{grid-column:1 / -1}
@media (max-width:760px){#employers .payer-form{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"name name" "wc wc" "street street" "city state" "zip phone"}}
:is(#employers,#payers) .payer-form .phone-label{display:inline-flex;align-items:center;color:#495057;cursor:help;height:15px}
/* Payer directory: each title starts where its column's text does (the values sit in edit boxes, 7px in). */
.directory-page .admin-cols.head > span:not(.num):not(.head-add){padding-left:7px}
/* Payer routing (2026-10-20): the search first, then the account and routing pick lists, all one height; lines as tall
   as the Patients list's, the "Goes through" pick list fitting the line. */
.routing-filter{align-items:center;gap:8px}.routing-filter input[type=search]{width:300px;height:34px;min-height:34px;margin:0;box-sizing:border-box;padding:4px 12px;font-size:14px}
.routing-filter select{width:auto;height:34px;min-height:34px;margin:0;padding:4px 8px;font-size:13px}
.admin-cols.routing.admin-line{padding-top:0;padding-bottom:0;min-height:var(--list-line);font-size:var(--list-font)}
.admin-cols.routing.admin-line .route-form{margin:0}.admin-cols.routing.admin-line select.inline-edit{height:var(--list-pick);min-height:var(--list-pick);padding:0 6px;margin:0;font-size:var(--list-font)}
/* Payer routing (2026-10-20): the top line's boxes on one line, the search shorter; a payer's boxes grouped by meaning
   (name and E-File ID; the address; phone and fax), the phone titled by its icon. */
.routing-filter > label{margin:0;display:flex;align-items:center}.routing-filter input[type=search]{width:220px}
[id^="route-edit-"] .admin-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:12px;row-gap:8px;align-items:end;
  grid-template-areas:"name name name name efile efile" "street street city city state zip" "phone phone fax fax . ."}
[id^="route-edit-"] .admin-form label{flex:none;min-width:0;margin:0}
[id^="route-edit-"] .f-name{grid-area:name}[id^="route-edit-"] .f-efile{grid-area:efile}[id^="route-edit-"] .f-street{grid-area:street}
[id^="route-edit-"] .f-city{grid-area:city}[id^="route-edit-"] .f-state{grid-area:state}[id^="route-edit-"] .f-zip{grid-area:zip}
[id^="route-edit-"] .f-phone{grid-area:phone}[id^="route-edit-"] .f-fax{grid-area:fax}
[id^="route-edit-"] .admin-form .inline-status{grid-column:1 / -1}
[id^="route-edit-"] .phone-label{display:inline-flex;align-items:center;color:#495057;cursor:help;height:15px}
@media (max-width:760px){[id^="route-edit-"] .admin-form{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"name name" "efile efile" "street street" "city state" "zip zip" "phone fax"}}
/* Clearinghouse submitter IDs (2026-10-20): Account and Payers titled by their icons (accounts teal, payers the hand
   with the gold $); lines as tall as the Patients list's, the submitter ID box fitting the line. */
.admin-table.submitters th.icon-th{cursor:help;vertical-align:middle}.admin-table.submitters .acct-head-icon{color:#0f7b6c}
.admin-table.submitters tbody td{height:var(--list-line);padding-top:3px;padding-bottom:3px;font-size:var(--list-font)}
.admin-table.submitters td form{margin:0;display:flex;align-items:center;gap:6px}
.admin-table.submitters td .inline-edit{height:var(--list-pick);min-height:var(--list-pick);padding:2px 8px;margin:0;font-size:var(--list-font)}
/* Submitter IDs sit in the clearinghouse's shaded panel: a white table, so its every-other-line shading shows as on Patients. */
.admin-table.submitters{background:white}.admin-table.submitters > tbody > tr:not(.alt):not(:hover) > td{background:white}
/* Super-admin tables: the Account title is the accounts icon (teal), its word the tooltip (2026-10-20). */
.admin-table th.icon-th{cursor:help;vertical-align:middle}.admin-table .acct-head-icon{color:#0f7b6c}
/* Locations keep their own columns on narrow screens (above), so their titles stay too (2026-10-20). */
@media (max-width:900px){#location-list .setup-head.location-grid{display:grid}}
/* Setup Locations: the Address title is the mailbox icon, as on Payers (2026-10-20). */
.setup-head .icon-head.addr-head{color:#1971c2;cursor:help;display:inline-flex;align-items:center}.setup-head .icon-head.addr-head .mail-flag{stroke:#e8590c;fill:#e8590c}
/* Setup lists (2026-10-20): the row icons that take something away (make inactive, turn off sign-in) are gray, not red;
   they ask before acting, and red is kept for errors. */
.setup-list :is(.row-icon,.login-cell) .icon-btn.danger{color:#868e96;border-color:#dee2e6;background:white}
.setup-list :is(.row-icon,.login-cell) .icon-btn.danger:hover{color:#495057;background:#f1f3f5}
/* Add buttons (2026-10-20): the plus in one color everywhere (magenta, a color no icon uses: blue read too close to teal, orange to the rules amber), the thing it adds in its own color. */
svg .add-plus{stroke:#e64980}
/* Staff (2026-10-20): Deactivate is gray like the other take-away row icons (it asks first); red is for errors. */
#staff .staff-icon-btn.danger{color:#868e96;border-color:#dee2e6}#staff .staff-icon-btn.danger:hover{color:#495057;background:#f1f3f5}
/* Biller icon (2026-10-20): the person slate, the $ gold, so the two read apart. */
.role-icon.biller{color:#495057}.role-icon.biller .biller-dollar{stroke:#d4a017}
/* Super-admin top bar icons in two colors (2026-10-20): each keeps its color; a second part in its own. */
.topbar nav a.admin-tab[href$="/admin"] .nav-icon .t2{stroke:#868e96}
.topbar nav a.admin-tab[href$="/admin/efile"] .nav-icon .t2{stroke:#2f9e44}
.topbar nav a.admin-tab[href$="/admin/signin-history"] .nav-icon .t2{stroke:#868e96}
.topbar nav a.admin-tab[href$="/admin/signins"] .nav-icon .t2{stroke:#495057}
.topbar nav a.admin-tab[href$="/admin/refused"] .nav-icon .t2{stroke:#495057}
.topbar nav a.admin-tab[href$="/admin/support-log"] .nav-icon .t2{stroke:#d4a017}
/* The small Account title icon matches the top bar Accounts icon: front house teal, the one behind it gray. */
.acct-head-icon .t2{stroke:#868e96}
/* The small Impersonate button matches the top bar icon: mask purple, eyes and mouth gold. */
.impersonate-btn svg .t2{stroke:#d4a017}
/* Patients and Filing icons in two colors (2026-10-20): the person in front green and the one behind gray; the tray violet, its arrow green. */
.topbar nav a[href$="/patients"] .nav-icon .t2,.icon-head[title="Patients"] svg .t2{stroke:#868e96}
.topbar nav a[href$="/filing"] .nav-icon .t2{stroke:#2f9e44}
/* Top bar (2026-10-21): the patient search never squeezes under the links; on a narrower window it takes its own
   line under them. */
.top-search{flex:1 1 220px;min-width:170px;max-width:300px}
@media(max-width:880px){.topbar{flex-wrap:wrap}.top-search{order:3;flex:1 1 100%;max-width:none;min-width:0}}
/* Top bar (2026-10-21): tighter spacing between its items, the sign-out icon close to the account menu. */
.topbar{gap:8px}.top-nav{gap:0}.top-nav a{padding-left:8px;padding-right:8px}
.topbar .top-nav a,.topbar .user-menu summary{font-family:system-ui,"Segoe UI",sans-serif;font-size:13px;font-weight:600;letter-spacing:0;color:#454b52}
.topbar .top-nav a.active{color:#343a40}
.topbar .user-menu .account-name{font-size:inherit;font-weight:inherit}
.top-signout{margin-left:0}.top-signout .icon-btn{padding:4px 6px}
/* Bill: the patient's own boxes (2, 3, 5) read as printed, not as boxes to type in (corrected on the patient's page). */
.form-paper .demo-locked:is(input,select,textarea){background:transparent !important;border-color:transparent !important;box-shadow:none !important;color:#000 !important;-webkit-text-fill-color:#000 !important;opacity:1;cursor:default}
.form-paper input[type=radio].demo-locked{opacity:1}
/* Box 4: "Same as WC carrier" beside the employer (2026-10-21). */
.same-carrier{display:inline-flex;align-items:center;gap:4px;margin:0 0 0 8px;font-size:11.5px;font-weight:500;color:var(--muted);white-space:nowrap;cursor:pointer}
.same-carrier input{margin:0;width:auto;min-height:0}
.case-slot.case-employer .same-carrier{margin:0 0 2px 0}
/* Patients page case form (2026-10-21): everything on one CMS-1500 grid: description and the case's carrier on top,
   9a / 4 / 7 (workers' comp) where the form has them, 10, 11b and 14-18 as before. Boxes a case kind does not use are
   hatched. The bill's case boxes are laid out by the bill. */
.case-form .cms-case:has(> .b9a){grid-template-columns:32fr 26fr 42fr;
  grid-template-areas:"b9a b10 b4" "b9a b10 b7" "b9a b10 b11b" "b14 b15 b16" "b17 b17ab b18"}
.case-form .cms-case:has(> .b9a) .b9{display:none}
.cms-case:has(> .b9a) .bdesc{grid-area:bdesc}.cms-case:has(> .b9a) .bcar{grid-area:bcar}.cms-case:has(> .b9a) .b4{grid-area:b4}
.cms-case:has(> .b9a) .b7{grid-area:b7}.cms-case:has(> .b9a) .b9a{grid-area:b9a}
.cms-case:has(> .b9a) .parts .policy{flex:0 0 38%}
.cms-case:has(> .b9a) .b4 .same-carrier{align-self:flex-start;margin:0}
.case-form:not(.is-employment) .cms-case .wc-box,.case-form:not(.is-employment):not(.is-auto) .cms-case .case-ins{background:repeating-linear-gradient(135deg,#fafafa 0 6px,#f0f0f0 6px 12px)}
.case-form:not(.is-employment) .cms-case .wc-box > *:not(.box-label),.case-form:not(.is-employment):not(.is-auto) .cms-case .case-ins > *:not(.box-label){visibility:hidden}
@media (max-width:760px){.case-form .cms-case:has(> .b9a){grid-template-columns:1fr;grid-template-areas:"b10" "b4" "b7" "b9a" "b11b" "b14" "b15" "b16" "b17" "b17ab" "b18"}}
/* The case's own fields that the CMS-1500 does not print (description, its insurance carrier): above the red form,
   gray labels, no form box (2026-10-21). */
.case-form .case-extra{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:0 0 8px}
.case-form .case-extra .np-field{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:650;color:var(--muted)}
.case-form .case-extra .case-desc{flex:1 1 280px}.case-form .case-extra .case-desc input{flex:1 1 auto;min-width:0}
.case-form .case-extra .case-ins{flex:1 1 360px}.case-form .case-extra .case-ins .np-label{white-space:nowrap;cursor:help}.case-form .case-extra .case-ins .np-label small{font-weight:400}
.case-form .case-extra .case-ins .parts{display:flex;gap:6px;flex:1 1 auto}.case-form .case-extra .case-ins .parts input{min-width:0}.case-form .case-extra .case-ins .parts .policy{flex:0 0 38%}
.case-form .case-extra input{margin:0;min-height:30px;padding:3px 8px;font-size:13px}
.case-form:not(.is-employment):not(.is-auto) .case-extra .case-ins{display:none}
/* Patients, an open case as one CMS-1500 (2026-10-21): the description and the case's carrier above (gray, not
   printed), then the form: the patient's boxes read-only, the case's own boxes (4, 7, 9a, 10, 11b, 14-18) live. */
.case-cms-row .case-extra-top{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:0 0 8px}
.case-cms-row .case-extra-top .np-field{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:650;color:var(--muted)}
.case-cms-row .case-extra-top .case-desc{flex:1 1 280px}.case-cms-row .case-extra-top .case-desc input{flex:1 1 auto;min-width:0}
.case-cms-row .case-extra-top .case-ins{flex:1 1 360px}.case-cms-row .case-extra-top .case-ins .np-label{white-space:nowrap;cursor:help}.case-cms-row .case-extra-top .case-ins .np-label small{font-weight:400}
.case-cms-row .case-extra-top .case-ins .parts{display:flex;gap:6px;flex:1 1 auto}.case-cms-row .case-extra-top .case-ins .parts .policy{flex:0 0 38%}
.case-cms-row .case-extra-top input{margin:0;min-height:30px;padding:3px 8px;font-size:13px}
.case-cms-row .case-extra-top:not(.is-employment):not(.is-auto) .case-ins{display:none}
.case-paper{margin:0;padding:0;background:transparent;border:0;box-shadow:none}
.case-paper .patient-panel{margin:0}
.case-paper .case-form{margin:0}.case-paper .case-form .cms-case{border-top:0}
/* Patients (2026-10-21): while one of the patient's cases is open as a CMS-1500, the patient's own form below is not shown (the case form has the same boxes); closing the case brings it back. */
.edit-row:has(.case-cms-row:not([hidden])) form.edit-form.patient-panel{display:none}
/* Patients, the patient's own form (2026-10-21): the insurance carrier at the top without the red box, as on the bill;
   while editing, its box is a normal input to pick another payer. */
.edit-form.patient-panel .cms-patient.cms-top{border-color:transparent}
.edit-form.patient-panel .cms-patient .box.top-note,.edit-form.patient-panel .cms-patient .box.payer{border-color:transparent;background:transparent}
.edit-form.patient-panel .cms-patient .box.payer .box-label{display:none}
.edit-form.patient-panel.viewing .cms-patient .box.payer input[name=payer]{border:0;background:transparent;padding:0;min-height:0;font-family:ui-monospace,Consolas,monospace;font-size:14px}
.edit-form.patient-panel .cms-patient .box.payer .payer-adr{font-family:ui-monospace,Consolas,monospace;font-size:13px;color:var(--ink)}
/* Case form (2026-10-21): the patient's boxes, not part of the case and changed on the patient, read in the gray of the
   unused boxes (9b); the case's own boxes and its carrier stay in ink. */
.case-paper .cms-top .box:not(.payer) :is(input,select,textarea):disabled:not(.case-slot):not(.case-slot *){color:#000 !important;-webkit-text-fill-color:#000 !important}
.case-paper .cms-top .box:not(.payer) .value{color:#000}
.case-paper .cms-top .box:not(.payer) .tick-choice:has(input:disabled):not(.case-slot *){opacity:1}
/* Box 4: "Same as WC carrier" small, at the box's top right beside its title, not a line of its own (2026-10-21). */
.cms-top .insured-box:has(> .case-employer .same-carrier){position:relative}
.cms-top .case-employer .same-carrier{position:absolute;top:2px;right:6px;display:inline-flex !important;align-items:center;gap:4px;width:auto !important;margin:0 !important;font-size:11px;background:inherit}
.cms-top .case-employer .same-carrier input{display:inline-block !important;width:13px !important;height:13px;min-height:0 !important;margin:0 !important;padding:0 !important;flex:none}
/* ONE RULE (2026-10-21, 2026-10-25): on a CMS-1500 page, a box shown but changed elsewhere (the patient's own boxes on a
   bill or a case) reads as printed: black, no box; what the page edits has its light box. */
.form-paper .sex:has(.demo-locked){opacity:1}
/* A bill the biller signed off (2026-10-21) reads as printed (black, no boxes) until the sign-off is taken back. */
.form-paper.signed-off :is(input,select,textarea):is(:disabled,[readonly]){color:#000 !important;-webkit-text-fill-color:#000 !important;background:transparent !important;border-color:transparent !important;box-shadow:none !important;cursor:default}
.form-paper.signed-off .tick-choice:has(input:disabled){opacity:1}
/* Filing (2026-10-21): two tabs, Unbatched bills and Batches, each with its count, as the worklist's tabs. */
.filing-tabs{display:flex;gap:4px;margin:0 0 10px;border-bottom:1px solid var(--line)}
.filing-tabs a{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid transparent;border-bottom:0;border-radius:7px 7px 0 0;font-weight:650;font-size:14px;color:var(--muted);text-decoration:none;margin-bottom:-1px}
.filing-tabs a.active{color:var(--ink);background:white;border-color:var(--line)}
.filing-tabs a:hover{color:var(--ink)}
.filing-tabs .tab-count{padding:1px 7px;border-radius:10px;background:#e9f0e8;font-size:12px;font-weight:650;color:var(--muted)}
/* In-place edit panels (2026-10-21): the value starts right under its label; the box (border 1px + padding 6px) sits
   7px to the left of it, so its edges show on hover and while typing without pushing the text in. */
:is([id^="route-edit-"] .admin-form, .payer-form.inline) .inline-edit{margin-left:-7px !important;width:calc(100% + 7px) !important;max-width:none}
:is([id^="route-edit-"] .admin-form, .payer-form.inline) .parts > .inline-edit{width:auto !important}
/* Macros page (2026-10-21): two lists like Payers; a macro's line: delete, name, its codes; its panel: name, the codes
   one a line (code · description · fee · remove), and a pick list or code box to add one. */
.macros-page .macro-list + .macro-list{margin-top:14px}
.macros-page .macro-grid{grid-template-columns:34px minmax(0,1.2fr) minmax(0,2.6fr)}
.macros-page .macro-codes{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.macros-page .payer-row .row-icon .icon-btn{min-height:0;min-width:0;height:26px;width:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:#868e96}
.macros-page .payer-row .row-icon .icon-btn:hover{color:#495057}
.macros-page .macro-edit{display:flex;flex-direction:column;gap:8px;padding:10px 12px}
.macros-page .macro-edit[hidden]{display:none}
.macros-page .macro-name{display:flex;flex-direction:column;gap:3px;margin:0;font-size:12px;font-weight:500;color:#5f6368;max-width:420px}
.macros-page .macro-name input{margin:0;min-height:30px;padding:3px 8px;font-size:13px}
.macros-page .macro-items{display:flex;flex-direction:column;gap:0;max-width:760px}
.macros-page .macro-item{display:grid;grid-template-columns:90px minmax(0,1fr) 80px 30px;gap:10px;align-items:center;padding:3px 0;border-bottom:1px dotted var(--line);font-size:13px}
.macros-page .macro-item .code{font-family:ui-monospace,Consolas,monospace;font-weight:600}.macros-page .macro-item .desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#495057}
.macros-page .macro-item .fee{text-align:right}.macros-page .macro-item .icon-btn{min-height:0;height:24px;width:24px;padding:0;color:#868e96}
.macros-page .macro-add{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.macros-page .macro-add select{width:auto;max-width:520px;min-height:30px;margin:0;font-size:13px}
.macros-page .macro-add .macro-code{width:240px;min-height:30px;margin:0;text-transform:uppercase}
.macros-page .macro-status{font-size:12px;color:var(--teal)}.macros-page .macro-status.failed{color:#a43a32}.macros-page .macro-status:empty{display:none}
.menu-icon.macro-icon{color:#7048e8}.menu-icon.macro-icon .t2{stroke:#f59f00}
/* Sweep 2026-10-21 (values line up with their titles): Staff, the email starts under Email and above its sign-in line;
   Payers, the Claim form pick list keeps its own width. */
.staff-row .staff-email .inline-edit{margin-left:-7px;width:calc(100% + 7px)}
.payer-form.inline select.inline-edit{width:auto !important;min-width:200px;max-width:100%}
#payers .payer-form label:has(> select[name=claim_form]){flex:0 0 240px}#payers .payer-form select[name=claim_form]{width:100% !important;min-width:0}
/* Payers form (2026-10-21), grouped by meaning like Referring providers and Employers: name, E-File ID and claim form;
   the address; phone and fax. */
#payers .payer-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:12px;row-gap:8px;align-items:end;
  grid-template-areas:"name name name efile form form" "street street city state zip zip" "phone phone fax fax . ."}
#payers .payer-form label{flex:none;min-width:0;margin:0}
#payers .payer-form .f-name{grid-area:name}#payers .payer-form .f-efile{grid-area:efile}#payers .payer-form .f-form{grid-area:form}
#payers .payer-form .f-street{grid-area:street}#payers .payer-form .f-city{grid-area:city}#payers .payer-form .f-state{grid-area:state}
#payers .payer-form .f-zip{grid-area:zip}#payers .payer-form .f-phone{grid-area:phone}#payers .payer-form .f-fax{grid-area:fax}
#payers .payer-form label:has(> select[name=claim_form]){flex:none}
#payers .payer-form .inline-status,#payers .payer-form .edit-actions{grid-column:1 / -1}
#payers .payer-form select[name=claim_form]{min-height:30px;height:30px;padding:2px 6px}
@media (max-width:760px){#payers .payer-form{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"name name" "efile form" "street street" "city state" "zip zip" "phone fax"}}
#payers .payer-form .f-form select[name=claim_form]{width:auto !important;min-width:180px;height:26px;min-height:26px;padding:1px 6px}
/* Box 10 of a patient with no case (2026-10-21): NO, NO, NO; a YES starts a case. */
.case-start-ticks{display:flex;flex-direction:column;gap:8px}
.case-start-ticks .tick-line{display:flex;align-items:center;gap:8px;font:600 10.5px system-ui,sans-serif;color:var(--cms-label-red, #e0352c)}
.case-start-ticks .tick-line > span:first-child{flex:1 1 auto;white-space:nowrap}
.case-start-ticks .tick-choice{display:inline-flex;align-items:center;gap:3px;margin:0;font-weight:600;cursor:pointer}
.case-start-ticks input[type=checkbox]{appearance:none;-webkit-appearance:none;width:14px;height:14px;min-height:0;padding:0;margin:0;border:1px solid #555;border-radius:0;background:white;display:inline-grid;place-content:center;cursor:pointer}
.case-start-ticks input[type=checkbox]::before{content:"";font:700 11px/1 system-ui,sans-serif;color:#111}.case-start-ticks input[type=checkbox]:checked::before{content:"\2715"}
.case-start-ticks input[type=checkbox]:disabled{opacity:1;cursor:default}
/* RULE (2026-10-21): on a form, the boxes the person on this page keeps are white, like box 2; the others (unused,
   or someone else's) stay shaded. On the Patients page the case's boxes (10 condition, 11b claim number) are the
   front desk's: white. 10d (claim codes) is the biller's, on a bill: shaded. */
.patients-page .cms-top .b10.from-case,.patients-page .cms-top .b11b.from-case,.patient-cases .cms-top .b10.from-case,.patient-cases .cms-top .b11b.from-case,
.edit-form.patient-panel .cms-top .b10.from-case,.edit-form.patient-panel .cms-top .b11b.from-case{background:white}
/* Box 10's Cases menu replaces the Cases line above the form: the cases open from it. */
.patient-cases .cases-head,.patient-cases .case-line,.patient-cases > .none{display:none}
.patient-table .patient-cases{border-top:0;margin:0;padding:0}
.case-menu{position:relative;margin:2px 0 6px}
.case-menu summary{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 26px 2px 8px;border:1px solid #d5ddd8;border-radius:5px;background:#f7f9f8;font-size:13px;color:var(--ink);cursor:pointer;list-style:none;position:relative}
.case-menu summary::-webkit-details-marker{display:none}
.case-menu summary::after{content:"";position:absolute;right:9px;top:50%;width:6px;height:6px;border-right:1.5px solid #555;border-bottom:1.5px solid #555;transform:translateY(-70%) rotate(45deg)}
.case-menu-list{position:absolute;z-index:20;top:100%;left:0;min-width:240px;margin-top:2px;padding:4px 0;background:white;border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.case-menu-list a{display:block;padding:6px 12px;font-size:13px;color:var(--ink);text-decoration:none;white-space:nowrap}
.case-menu-list a:hover{background:#dcebf7}.case-menu-list a.closed{color:var(--muted)}
.case-menu-list .case-new-open{color:var(--teal);font-weight:600;border-top:1px solid var(--line)}
.case-cms-row{position:relative}.case-cms-row > .case-close{position:absolute;top:4px;right:6px;z-index:2;font-size:18px;line-height:1;min-height:0;padding:2px 8px}
/* Box colors by ownership, applied app-wide (2026-10-22, rule 44): white = the boxes the person on this page keeps;
   shaded (#fbf8f2) = shown here but kept elsewhere; the reserved NUCC boxes keep their hatching. */
/* The biller's full bill: the case's boxes (10, 11b) and 10d are the biller's here, so white; the patient's own boxes
   (2, 3, 5: read only on a bill) are shaded. */
.form-paper:not(.clinician-focus) .patient-view .cms-top .from-case{background:white}
.form-paper .patient-view .cms-top .box:not(.nucc):has(.demo-locked){background:#fbf8f2}
/* The clinician's view of a bill: the patient's boxes are for reading, so shaded. */
.form-paper.clinician-focus .patient-view .cms-top .box:not(.nucc):not(.payer):not(.top-note){background:#fbf8f2}
/* Patients, a case as one CMS-1500: the patient's boxes shaded; the case's own (10, 11b, and 4, 7, 9a on workers' comp) white. */
.case-paper .cms-top .box:not(.nucc):not(.payer):not(.top-note){background:#fbf8f2}
.case-paper .cms-top .box:is(.b10,.b11b),.case-paper .cms-top .box:has(> .case-employer.is-employment){background:white}
/* Patients, the case a patient's form shows (2026-10-22): its boxes 14-18 right under the patient's, as one form. */
.case-shown .case-form{margin:0}.case-shown .case-form .cms-case{border-top:0}
.case-shown .case-top .edit-actions{display:none}
/* RULE 45 (2026-10-22, general): on a CMS-1500 or NF-3 form, a box that cannot be changed right now (a locked form, a
   view before Edit, a box kept elsewhere) reads as printed, like box 2: no edit box, no fill, no pick-list arrow, no
   calendar icon. It is an edit box again once it can be changed. Gray values (kept elsewhere) keep their gray. */
:is(.cms-top, .cms-case, .nf3-paper, .form-paper .cms-bill-row, .form-paper .cms-22-23, .party-cms-form) :is(input:not([type=radio]):not([type=checkbox]):not(.mdy-real), select, textarea):disabled{
  background:transparent !important;border-color:transparent !important;box-shadow:none !important;opacity:1;cursor:default}
/* Text and pick lists print in ink; a date's own box is left alone (its short-date box on top shows the date). */
:is(.cms-top, .cms-case, .nf3-paper, .form-paper .cms-bill-row, .form-paper .cms-22-23, .party-cms-form) :is(input:not([type=radio]):not([type=checkbox]):not([type=date]), select, textarea):disabled{color:var(--ink);-webkit-text-fill-color:var(--ink)}
/* Buttons that add or change something (box 17's +) are not shown while the form is locked. */
:is(.cms-top, .cms-case) fieldset:disabled :is(.add-referrer, .small-btn), fieldset:disabled .cms-case :is(.add-referrer, .small-btn), .cms-case .add-referrer:disabled{display:none}
:is(.cms-top, .cms-case, .nf3-paper, .form-paper .cms-bill-row, .form-paper .cms-22-23, .party-cms-form) select:disabled{appearance:none;-webkit-appearance:none;background-image:none !important;padding-right:4px}
:is(.cms-top, .cms-case, .nf3-paper, .form-paper .cms-bill-row, .form-paper .cms-22-23, .party-cms-form) input[type=date]:disabled::-webkit-calendar-picker-indicator{display:none}
/* Patients, front desk: the row button that shows and books appointments is the appointments calendar (amber, with
   the add plus), not an arrow (2026-10-22). */
.patient-table .book-toggle.expander::before,.patient-table .book-toggle.expander[aria-expanded="true"]::before{content:none !important;display:none}
.patient-table td.name .name-line .book-toggle.expander{width:24px;height:24px;color:#339af0;display:inline-grid;place-items:center;border-radius:5px}
.patient-table .book-toggle.expander[aria-expanded="true"]{background:#fff4e6}
.patient-table .book-toggle.expander svg{display:block}
/* Patients, biller: New bill sits left of the patient's name, as the front desk's Appointments does (2026-10-22). */
.patient-table td.name .name-line .add-bill.row-start{width:24px;height:24px;min-height:0;min-width:0;padding:0;margin:0 2px 0 -3px;display:inline-grid;place-items:center;flex:none}
/* Patients, front desk: the Book button at the left end of the booking line, where each appointment's action icons are (2026-10-22). */
.appt-add td.book-act{white-space:nowrap}.appt-add td.book-act .book-btn{min-height:30px;padding:3px 9px}
/* Save (icon only) is just the disk, teal, no filled button (user 2026-10-22, general): every icon-only button whose icon is
   the disk; a light tint on hover. */
button.icon-btn:has(> svg.floppy):not(:disabled),button.icon-btn:has(> th\:block > svg.floppy):not(:disabled){background:transparent !important;border-color:transparent !important;color:var(--teal) !important;box-shadow:none !important}
button.icon-btn:has(svg.floppy):not(:disabled):hover{background:#e6f0ec !important}
button.icon-btn:has(svg.floppy){background:transparent;border-color:transparent;color:var(--teal)}
button.icon-btn:has(svg.floppy) svg{color:var(--teal)}
/* The icon-only Save button: a square (32px) with a light outline, like the add buttons beside list titles. */
button.icon-btn:has(svg.floppy){width:32px !important;height:32px !important;min-width:32px !important;min-height:32px !important;padding:0 !important;display:inline-grid !important;place-items:center;border:1px solid #cfd8d3 !important;border-radius:6px !important}
/* The Save disk a little larger; the square's outline shows (it outranks the plain-disk rule above). */
button.icon-btn:has(svg.floppy) svg{width:21px !important;height:21px !important}
button.icon-btn:has(> svg.floppy):not(:disabled):not(.x-save){border:1px solid #cfd8d3 !important}
/* RULE (2026-10-22, general): buttons that take something away (inactivate, deactivate, turn off) are gray, not red;
   they ask first, and red is kept for errors (and the CMS form). */
.icon-btn.danger:not(.rare-delete),button.danger.icon-btn{color:#868e96 !important;border-color:#dee2e6 !important;background:white}
.icon-btn.danger:not(.rare-delete):hover{color:#495057 !important;background:#f1f3f5 !important}
/* Box 10 on the patient's form reads like the CMS-1500 (2026-10-22): each YES / NO is a square tick box like boxes 1, 3 and 6
   (the same size), also while the form is only viewed; the questions in the form's small capitals. */
.cms-top .case-start-ticks .tick-choice input[type=checkbox],.patient-panel.viewing .cms-top .case-start-ticks .tick-choice input[type=checkbox]{appearance:none;-webkit-appearance:none;width:14px !important;height:14px !important;min-height:0;padding:0 !important;margin:0;border:1px solid #555 !important;border-radius:0;background:white !important;display:inline-grid;place-content:center;opacity:1}
.cms-top .case-start-ticks .tick-choice input[type=checkbox]::before{content:"";font:700 11px/1 system-ui,sans-serif;color:#111}.cms-top .case-start-ticks .tick-choice input[type=checkbox]:checked::before{content:"\2715"}
.cms-top .case-start-ticks .tick-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px 14px;align-items:center}
.cms-top .case-start-ticks .tick-line > span:first-child{grid-column:1 / -1;font:600 10.5px system-ui,sans-serif;color:var(--cms-label-red, #e0352c)}
.cms-top .case-start-ticks .tick-choice{font:400 11px system-ui,sans-serif;color:#111;gap:5px}
.cms-top .case-start-ticks .tick-line .tick-choice:first-of-type{grid-column:2}
/* The words beside the tick boxes are printed in the form's red (Self, Spouse, YES, NO, Medicare...), as on the CMS-1500
   (2026-10-22, general); box 10's ticks: word then box, like the rest of the page, one clean square each. */
.cms-top .tick-choice,.cms-top .tick-row label,.cms-top .sex label,.cms-case .tick-choice{color:var(--cms-label-red, #e0352c) !important}
.cms-top .case-start-ticks .tick-choice{display:inline-flex !important;flex-direction:row !important;align-items:center;gap:5px;color:var(--cms-label-red, #e0352c) !important;font:600 10.5px system-ui,sans-serif}
.cms-top .case-start-ticks .tick-choice input[type=checkbox]{-webkit-appearance:none !important;appearance:none !important;accent-color:transparent;order:2}
.cms-top .case-start-ticks .tick-choice input[type=checkbox]:checked{background:white !important}
/* Box 10 on the patient's view (2026-10-22): laid out like the New case form's box 10 - the question on its line, then
   box-then-word choices on the left, red. */
.cms-top .case-start-ticks{gap:6px}
.cms-top .case-start-ticks .tick-line{display:flex !important;flex-wrap:wrap;align-items:center;gap:4px 14px;grid-template-columns:none}
.cms-top .case-start-ticks .tick-line > span:first-child{flex:1 0 100%;font:600 10.5px system-ui,sans-serif;color:var(--cms-label-red, #e0352c)}
.cms-top .case-start-ticks .tick-line .tick-choice{grid-column:auto !important;flex-direction:row-reverse !important;gap:5px;font:600 10.5px system-ui,sans-serif;color:var(--cms-label-red, #e0352c) !important;padding-left:14px}
.cms-top .case-start-ticks .tick-line .tick-choice + .tick-choice{padding-left:0}
.cms-top .case-start-ticks .tick-choice input[type=checkbox]{order:0 !important}
/* The patient's form (2026-10-22): every tick box the same size (14px), box 10's words in the same type as 11d's Yes / No,
   and box 10's case pick list in regular weight. */
.cms-top :is(.tick-choice, .sex label, .tick-row label) input:is([type=radio],[type=checkbox]){width:14px !important;height:14px !important;min-width:14px;min-height:0 !important}
.cms-top :is(.tick-choice, .sex label, .tick-row label) input:is([type=radio],[type=checkbox])::before{font-size:11px !important}
.cms-top .case-start-ticks .tick-line .tick-choice{font:500 11px/1.2 system-ui,"Segoe UI",sans-serif !important}
.case-menu summary{font-weight:400 !important}
/* Every tick box on the form exactly 14 x 14, wherever it sits (the sex boxes stretched). */
:is(.cms-top, .cms-case) input:is([type=radio],[type=checkbox]){width:14px !important;height:14px !important;min-width:14px !important;max-width:14px !important;min-height:14px !important;max-height:14px !important;flex:0 0 14px !important;padding:0 !important;box-sizing:border-box !important}
:is(.cms-top, .cms-case) input:is([type=radio],[type=checkbox])::before{font-size:11px !important}
/* RULE 50 (2026-10-22, general): on every page drawn as a CMS-1500 (the bill, the Patients form and case form, Setup's
   CMS-1500 boxes) each tick box is exactly 14 x 14 and the words beside it are the form's red. Not the Add services
   checklist (a pick list) and not the NF-3 (its own wider boxes). */
:is(.form-paper, .party-cms-form, .org-cms, .cms-top, .cms-case) input:is([type=radio],[type=checkbox]):not(#add-services *):not(.nf3-paper *):not(.nf3-proc *){width:14px !important;height:14px !important;min-width:14px !important;max-width:14px !important;min-height:14px !important;max-height:14px !important;flex:0 0 14px !important;padding:0 !important;box-sizing:border-box !important}
:is(.form-paper, .party-cms-form, .org-cms, .cms-top, .cms-case) input:is([type=radio],[type=checkbox]):not(#add-services *):not(.nf3-paper *)::before{font-size:11px !important}
:is(.form-paper, .party-cms-form, .org-cms) :is(.tick-choice, .tick-row label, .ssn-ein label):not(#add-services *):not(.nf3-paper *){color:var(--cms-label-red, #e0352c)}
/* Box 11d as printed (2026-10-22): the box, then YES / NO in capitals, then the form's own note "If yes, complete items 9, 9a, and 9d." */
.cms-top .b11d .tick-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px}
.cms-top .b11d .form-note{font:400 10.5px/1.2 system-ui,sans-serif;color:var(--cms-label-red, #e0352c)}.cms-top .b11d .form-note b{font-weight:700}
/* Box 10's questions (a. EMPLOYMENT? ...) in the same type as the box titles, on every form (2026-10-22). */
:is(.cms-top, .cms-case) :is(.case-start-ticks, .case-slot, .b10) .tick-line > span:first-child{font:700 9.5px/1.2 system-ui,"Segoe UI",sans-serif !important;letter-spacing:.2px;color:var(--cms-label-red, #e0352c)}
.edit-form :is(.cms-top) :is(.case-start-ticks, .case-slot, .b10) .tick-line > span:first-child{font-size:10px !important}
/* 10a reads as printed, "a. EMPLOYMENT? (Current or Previous)", on every form (2026-10-22). */
:is(.cms-top, .cms-case) .tick-line > span:first-child small{display:inline !important;font-weight:400 !important;font-size:9px !important;letter-spacing:0}
:is(.cms-top, .cms-case) .tick-line > span:first-child small{color:var(--cms-label-red, #e0352c) !important}
/* Form wording (labels and their small print) is always the form's red, never ink: ink is for data (2026-10-22). */
:is(.cms-top, .cms-case, .cms-bottom, .form-paper) .box-label small{color:inherit !important}

/* RULE 51 (2026-10-22): box 10 reads as printed on every CMS form (Patients, the bill, the case form, New case, the case view):
   each question on its own line in the box-title font, then the box before its word (YES / NO, red), 14px boxes with an X. */
:is(.cms-top, .cms-case, .case-slot, .form-paper) .b10 .tick-line, .case-slot .tick-line, .cms-case .tick-line{display:flex !important;flex-wrap:wrap;align-items:center;gap:4px 14px}
:is(.cms-top, .cms-case, .case-slot, .form-paper) .tick-line > span:first-child{flex:1 0 100%;white-space:normal;font:700 9.5px/1.2 system-ui,"Segoe UI",sans-serif !important;letter-spacing:.2px;color:var(--cms-label-red, #e0352c)}
:is(.cms-top, .cms-case, .case-slot, .form-paper) .tick-line > span:first-child small{display:inline !important;font-weight:400 !important;font-size:9px !important;color:var(--cms-label-red, #e0352c) !important}
:is(.cms-top, .cms-case, .case-slot, .form-paper) .tick-line .tick-choice.box-first{display:inline-flex !important;flex-direction:row !important;align-items:center;gap:5px;margin:0;padding-left:0;font:500 11px/1.2 system-ui,"Segoe UI",sans-serif !important;color:var(--cms-label-red, #e0352c) !important}
:is(.cms-top, .cms-case, .case-slot, .form-paper) .tick-line .tick-choice.box-first:first-of-type{padding-left:14px}
:is(.cms-top, .cms-case, .case-slot, .form-paper) .tick-line .tick-choice.box-first input{appearance:none;-webkit-appearance:none;order:0 !important;width:14px !important;height:14px !important;min-height:0;padding:0 !important;margin:0;border:1px solid #555;border-radius:0;background:white !important;display:inline-grid;place-content:center;cursor:pointer}
:is(.cms-top, .cms-case, .case-slot, .form-paper) .tick-line .tick-choice.box-first input::before{content:"";font:700 11px/1 system-ui,sans-serif;color:#111}
:is(.cms-top, .cms-case, .case-slot, .form-paper) .tick-line .tick-choice.box-first input:checked::before{content:"\2715"}
:is(.cms-top, .cms-case, .case-slot, .form-paper) .tick-line .tick-choice.box-first input:disabled{opacity:1;cursor:default}
:is(.cms-top, .cms-case, .case-slot, .form-paper) .tick-line .place{font:700 9.5px/1.2 system-ui,"Segoe UI",sans-serif;color:var(--cms-label-red, #e0352c);display:inline-flex;align-items:center;gap:4px}
/* RULE 52 (2026-10-22): boxes 5 and 7 split as printed: CITY wide, STATE narrow; ZIP CODE narrower than TELEPHONE. */
:is(.cms-top, .cms-form) :is(.city, .icity) .pair > :is(label, div).nb{flex:0 0 22% !important}
:is(.cms-top, .cms-form) :is(.zip, .izip) .pair > :is(label, div):not(.nb){flex:0 0 40% !important}
:is(.cms-top, .cms-form) :is(.zip, .izip) .pair > :is(label, div).nb{flex:1 1 auto !important}
/* RULE 52 on the CMS-1500 guide's sample form: first pair CITY / STATE, second ZIP CODE / TELEPHONE. */
.cms-form .sub > .pair:first-child > div.nb{flex:0 0 22% !important}
.cms-form .sub > .pair:nth-child(2) > div:not(.nb){flex:0 0 40% !important}
.cms-form .sub > .pair:nth-child(2) > div.nb{flex:1 1 auto !important}
/* RULE 51 fix: older box 10 rules (.cms-case .b10, .case-slot) outranked it; each question takes its own line everywhere. */
:is(.cms-top, .cms-case, .case-slot, .form-paper) .tick-line > span:first-child{flex:1 0 100% !important;white-space:normal !important}
/* Patients, a patient with no case (2026-10-22): the blank case's other boxes show once box 10 has a YES. */
.case-new-shown:not(.started){display:none}
.cms-top .same-address[hidden]{display:none}
/* Self (2026-10-22): boxes 4, 7 and 11a show the patient's own details in gray, read-only. */
.cms-top.self .insured-box input:disabled:not([type=radio]):not([type=checkbox]){color:#000 !important;-webkit-text-fill-color:#000}
.cms-top.self .insured-box .tick-row,.cms-top.self .insured-box .tick-row label{color:var(--cms-label-red, #e0352c) !important}
/* Self (2026-10-22): the insured's boxes are in use (they print the patient's details), so white; gray text = read-only. Gray boxes mean not used. */
.cms-top.self .insured-box{background:white !important;cursor:default}
/* RULE 54 (2026-10-22): every typed box on a CMS form uses one type (the patient boxes': the page font, 15px, regular),
   dates (box 14's mm/dd/yy and the others), case boxes (9a, 4, 7, 11b, 14-18) and pick lists alike. */
:is(.cms-top, .cms-case) :is(input:not([type=radio]):not([type=checkbox]), select, textarea, .mdy-date .mdy-text),
.cms-top :is(input.case-input, input.case-claim){font-family:inherit !important;font-size:15px !important;font-weight:400 !important;font-variant-numeric:normal}
.cms-case .mdy-date .mdy-text{flex:0 0 84px;width:84px}
/* Empty date boxes stay blank everywhere (2026-10-22): the browser's mm / dd / yyyy hint stays hidden even where a
   text-fill color is set on the box (it outranks color); it shows while the box is being typed in. */
input[type=date].empty-date:not(:focus)::-webkit-datetime-edit,input[type=date].empty-date:not(:focus)::-webkit-datetime-edit-fields-wrapper,
input[type=date].empty-date:not(:focus)::-webkit-datetime-edit-text,input[type=date].empty-date:not(:focus)::-webkit-datetime-edit-month-field,
input[type=date].empty-date:not(:focus)::-webkit-datetime-edit-day-field,input[type=date].empty-date:not(:focus)::-webkit-datetime-edit-year-field{color:transparent !important;-webkit-text-fill-color:transparent !important}
/* Firefox (2026-10-22): its date boxes have no ::-webkit-datetime-edit parts, so an empty box's mm / dd / yyyy hint is
   hidden on the box itself (shows again while typing in it). */
@supports (-moz-appearance:none){
  input[type=date].empty-date:not(:focus){color:transparent !important;-webkit-text-fill-color:transparent !important}
}
/* Patients (2026-10-22): box 2's PATIENT link starts Edit; once editing it reads as the printed title again. */
.patient-panel .box-label a.box-link{color:var(--list-link);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.patient-panel.editing .box-label a.patient-edit-link{color:inherit;font-weight:inherit;text-decoration:none;cursor:text;pointer-events:none}
/* Patients, the pencil (2026-10-22): the patient's own boxes (2, 3, 5) read-only in gray while insurance and case are edited. */
.patient-panel.patient-locked .cms-top :is(.b2, .b3, .b5, .city, .zip) :is(input:not([type=radio]):not([type=checkbox]), select){color:#000 !important;-webkit-text-fill-color:#000 !important;background:transparent !important;border-color:transparent !important;box-shadow:none !important;cursor:default}
.patient-panel.patient-locked .cms-top :is(.b3) :is(input[type=radio], input[type=checkbox], label),.patient-panel.patient-locked .cms-top .b3 input[type=date]{pointer-events:none}
.patient-panel.patient-locked .cms-top .b3 .sex label{color:var(--cms-label-red, #e0352c) !important}
.patient-panel.patient-locked .cms-top .b3 input[type=date]::-webkit-calendar-picker-indicator{display:none}
.patient-panel.patient-locked .box-label a.patient-edit-link{pointer-events:auto;cursor:pointer;color:var(--list-link);font-weight:600;text-decoration:underline}
/* Patients (2026-10-22): the rarely used Delete / Inactivate / Reactivate sit at the bottom right of the patient's form, while viewing. */
.patient-panel .rare-actions{display:flex;justify-content:flex-end;gap:6px;margin:6px 0 0}
.patient-panel.editing .rare-actions{display:none}
.patient-panel .rare-actions .icon-btn{min-height:32px;padding:3px 7px}
/* Patients (2026-10-22): the Active / Inactive / All filter beside the Patient title. */
.patient-table thead .status-filter{margin:0 0 0 8px;min-height:0;height:26px;padding:0 4px;width:auto;font:400 12.5px system-ui,"Segoe UI",sans-serif;color:var(--ink);border:1px solid #d5ddd8;border-radius:4px;background:white}
/* Patients (2026-10-22): Cancel on the patient's form is the × (close) icon. */
.patient-panel .edit-actions .cancel-edit{min-height:32px;min-width:32px;padding:0 8px;font-size:22px;line-height:1;color:#868e96;border:1px solid transparent;background:transparent}
.patient-panel .edit-actions .cancel-edit:hover{color:#495057;background:#f1f3f5}
/* Bill (2026-10-22): the Diagnosis Macro pick list is as tall as Save as macro beside it. */
.dx-groups select.dx-group{height:28px;min-height:28px;padding:0 6px;font-size:12.5px;margin:0;box-sizing:border-box}
.dx-groups .small-btn{height:28px}
/* Macros (2026-10-22): rows as tall as the Patients list's. */
.macros-page .payer-row.macro-grid{min-height:32px;padding-top:0;padding-bottom:0;font-size:13px}
.macros-page .payer-row .name-toggle{line-height:1.35}
/* Macros (2026-10-22): the codes column opens the macro too (the name column is blank for a macro without a name). */
.macros-page .macro-codes .codes-toggle{font:inherit;font-weight:400;color:inherit;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Macros edit row (2026-10-22): Name on one line; the trash close to its code; a code box as tall as Add code. */
.macros-page .macro-name{flex-direction:row;align-items:center;gap:8px;max-width:560px}
.macros-page .macro-name small{white-space:nowrap}.macros-page .macro-name input{flex:1 1 auto;min-width:0}
#diagnosis-macros .macro-item{grid-template-columns:90px minmax(0,auto) 30px;justify-content:start;max-width:620px}
#diagnosis-macros .macro-item .desc{max-width:480px}#diagnosis-macros .macro-item .fee{display:none}
#procedure-macros .macro-items{max-width:640px}
.macros-page .macro-add .macro-code{height:30px !important;min-height:30px !important;padding:3px 8px !important;box-sizing:border-box}
/* Macros (2026-10-22): each code's trash at the start of its line, as on the lists. */
.macros-page .macro-item .macro-remove{order:-1}
.macros-page .macro-item{grid-template-columns:30px 90px minmax(0,1fr) 80px}
#diagnosis-macros .macro-item{grid-template-columns:30px 90px minmax(0,auto)}
/* Macros, a new macro (2026-10-22): Save and × on the Add code line. */
.macros-page .macro-add .edit-actions{display:inline-flex;align-items:center;gap:8px;margin:0}
/* Bill, Services (2026-10-22): the Procedure Macro pick list, as tall as Save as macro, like the Diagnosis Macro one. */
.proc-groups select.proc-group{height:28px;min-height:28px;width:auto;max-width:240px;padding:0 6px;margin:0;font-size:12.5px;box-sizing:border-box}
.proc-groups .group-save{height:28px}
/* Patients (2026-10-22, 2026-10-25): a patient's form opens read-only, its data printed in black without boxes; Edit
   shows the boxes. The same for the case under it. Labels and tick words keep the form's red. */
.patient-panel.viewing :is(input:not([type=radio]):not([type=checkbox]), select, textarea),
td:has(> .patient-panel.viewing) .case-shown :is(input:not([type=radio]):not([type=checkbox]), select, textarea),
td:has(> .patient-panel.viewing) .case-shown .mdy-date .mdy-text{color:#000 !important;-webkit-text-fill-color:#000 !important}
.patient-panel.viewing :is(input[type=radio], input[type=checkbox])::before,
td:has(> .patient-panel.viewing) .case-shown :is(input[type=radio], input[type=checkbox])::before{color:#000 !important}
.patient-panel.viewing .payer-pick .value,.patient-panel.viewing .payer-address,.patient-panel.viewing .cms-top .value{color:#000}
.patient-panel.viewing .case-menu summary{color:var(--ink)}
.patient-panel.viewing .payer-adr{color:#000 !important}
/* Patients (2026-10-22): the Edit pencil a little bigger. */
.patient-panel .view-actions .start-edit svg{width:22px;height:22px}
/* RULE 56 (2026-10-22): every × (close / cancel) button a little bigger, the same size as the patient form's Cancel. */
button:is(.row-close, .nf3-proc-close, .close-x, [data-ref-close], .cancel-edit){font-size:22px !important;line-height:1 !important;min-width:32px;min-height:32px;padding:0 6px !important;display:inline-flex;align-items:center;justify-content:center}
/* RULE 56, revised: the × bigger and thinner (a light face). */
button:is(.row-close, .nf3-proc-close, .close-x, [data-ref-close], .cancel-edit){font:200 28px/1 "Segoe UI Light","Segoe UI",system-ui,sans-serif !important}
button:is(.row-close, .nf3-proc-close, .close-x, [data-ref-close], .cancel-edit){font-size:34px !important;min-width:36px;min-height:36px}   /* RULE 56: 34px */
/* Patients (2026-10-22): Delete / Inactivate / Reactivate at the top right of the patient's form, beside the payer's
   address line (the payer box above it); only while viewing. */
.patient-panel{position:relative}
.patient-panel .rare-actions{position:absolute;top:40px;right:8px;margin:0;z-index:2}
@media (max-width:760px){.patient-panel .rare-actions{position:static;margin:6px 0 0}}
/* Patients (2026-10-22): Delete / Inactivate / Reactivate after the pencil, top left, gray and set apart; only while viewing. */
.patient-panel .panel-actions .rare-actions{position:static;margin:0 0 0 14px;display:flex;gap:6px;align-items:center}
.patient-panel.editing .panel-actions .rare-actions{display:none}
.patient-panel .panel-actions .rare-actions .icon-btn{min-height:30px;padding:3px 6px}
.patient-panel .panel-actions .rare-actions svg{width:16px;height:16px}
/* Patients (2026-10-22, trying): Delete / Inactivate / Reactivate at the top right, at the end of the payer's address
   line. The action row spans the panel's width but lets clicks through except on its buttons. */
.patient-panel .panel-actions{right:8px;pointer-events:none}
.patient-panel .panel-actions > *{pointer-events:auto}
.patient-panel .panel-actions .rare-actions{margin:0 0 0 auto;position:relative;top:34px}
@media (max-width:760px){.patient-panel .panel-actions .rare-actions{top:0}}
/* ...and clear of the form's red border: a little higher and shorter, ending above it. */
.patient-panel .panel-actions .rare-actions{top:24px}
.patient-panel .panel-actions .rare-actions .icon-btn{min-height:26px;height:26px;padding:0 6px}
.patient-panel .panel-actions .rare-actions{top:14px}   /* level with the payer address line */
.patient-panel .panel-actions .rare-actions{top:0;align-self:center}   /* level with the Edit pencil */
/* Bill, Add services (2026-10-22): while it is open, the dates and procedures to pick sit above the services already
   on the bill (the heading first, then the picker, then the lines). */
.services-section:has(> .add-services:not([hidden])){display:flex;flex-direction:column}
.services-section:has(> .add-services:not([hidden])) > *{order:3}
.services-section:has(> .add-services:not([hidden])) > .services-head{order:0}
.services-section:has(> .add-services:not([hidden])) > .add-services{order:1;margin:0 0 10px}
.services-section:has(> .add-services:not([hidden])) > .table-wrap{order:2}
.picker > .proc-groups{margin:0 0 6px}
/* Macros, procedure macros (2026-10-22): Name (optional) and Save on one line, then the tick list of the office's
   procedures as on the bill's Add services. */
.macros-page .macro-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.macros-page .macro-top .edit-actions{display:inline-flex;align-items:center;gap:8px;margin:0}
#procedure-macros .macro-edit .macro-items,#procedure-macros .macro-edit .macro-add{display:none}
#procedure-macros .macro-proc-table{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:6px;background:white;max-width:820px}
#procedure-macros .macro-proc-table table{width:100%;border-collapse:collapse;font-size:13px}
#procedure-macros .macro-proc-table th{position:sticky;top:0;background:#f4f6f3;text-align:left;font-weight:500;color:#5f6368;padding:5px 8px}
#procedure-macros .macro-proc-table td{padding:4px 8px;border-top:1px solid #eef1ee}
#procedure-macros .macro-proc-table .num{text-align:right}
#procedure-macros .macro-proc-table tr.picked td{background:#e8f3ee}
#procedure-macros .macro-proc-table input{width:16px;height:16px;margin:0}
/* Macros (2026-10-22): the name column is an in-place box (saves as you leave it); a macro's open row no longer repeats it. */
.macros-page .macro-row-name{width:100%;margin:0;min-height:26px;padding:2px 6px;font:600 13px system-ui,"Segoe UI",sans-serif;color:var(--teal);border:1px solid transparent;background:transparent;border-radius:4px}
.macros-page .macro-row-name:hover{border-color:#d5ddd8;background:white}.macros-page .macro-row-name:focus{border-color:var(--teal);background:white;outline:none;color:var(--ink)}
.macros-page .macro-edit:not(.macro-new) .macro-name{display:none}
/* Procedures page (2026-10-22): the office's procedures, each line's boxes changed in place. */
.procedures-page .procedure-tools{display:flex;gap:10px;align-items:center;margin:0 0 8px}
.procedures-page .procedure-filter{--filter-control-height:26px;max-width:320px;margin:0;min-height:26px;font-size:13px;padding-top:0 !important;padding-bottom:0 !important}
.procedures-page .procedure-status{width:auto;margin:0;min-height:0;height:26px;padding:0 4px;font:400 12.5px system-ui,"Segoe UI",sans-serif;border:1px solid #d5ddd8;border-radius:4px}
.procedures-page .procedure-grid{grid-template-columns:60px 130px 80px 100px 90px 60px minmax(0,1fr);min-height:32px;padding-top:0;padding-bottom:0}
.procedures-page .procedure-grid .num{text-align:right}
.procedures-page .procedure-row .inline-edit{width:100%;margin:0;min-height:26px;padding:2px 6px;font-size:13px;border:1px solid transparent;background:transparent;border-radius:4px;color:var(--ink)}
.procedures-page .procedure-row .inline-edit:hover{border-color:#d5ddd8;background:white}.procedures-page .procedure-row .inline-edit:focus{border-color:var(--teal);background:white;outline:none}
.procedures-page .procedure-row.inactive .inline-edit{color:var(--muted)}
.procedures-page .procedure-new .procedure-grid input{margin:0;min-height:28px;padding:2px 6px;font-size:13px}
.procedures-page .procedure-new .edit-actions{display:flex;align-items:center;gap:8px;margin:6px 0 4px 34px}
.procedures-page .row-icon .icon-btn{min-height:0;min-width:0;height:26px;width:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:#868e96}
.procedures-page .row-icon .icon-btn:hover{color:#495057}
@media (max-width:760px){.procedures-page .procedure-grid{grid-template-columns:56px 1fr 70px 80px}.procedures-page .procedure-grid > :nth-child(n+5){display:none}}
.procedures-page .payer-head .num .sort-head{justify-self:end;margin-left:auto}
.procedures-page .payer-head > .num{display:flex;justify-content:flex-end}
/* Diagnoses page (2026-10-22): the ICD-10-CM list, view only. */
.diagnoses-page .procedure-tools{display:flex;gap:10px;align-items:center;margin:0 0 8px}
.diagnoses-page .diagnosis-filter{max-width:360px;margin:0;min-height:30px;font-size:13px}
.diagnoses-page .diagnosis-grid{grid-template-columns:110px minmax(0,1fr) 70px;min-height:32px;padding-top:0;padding-bottom:0;font-size:13px}
.diagnoses-page .diagnosis-grid .code{font-family:ui-monospace,Consolas,monospace;font-weight:600}
.diagnoses-page .diagnosis-grid .desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Account menu (2026-10-22): a biller's view-only pages (Clinicians, Locations, Billing organizations) set apart below a line. */
.user-menu .menu-sep{height:1px;background:var(--line);margin:6px 10px}
.user-menu .menu-group{display:block;padding:2px 14px 2px;font-size:11px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--muted)}
/* Procedures menu icon (2026-10-22): a patient reclined on a treatment chair (green) under a syringe (slate). */
.menu-icon.procedure-icon{color:#343a40}.menu-icon.procedure-icon .t2{stroke:#2f9e77}
.diagnoses-page .diagnosis-billable{width:auto;margin:0;min-height:30px;font-size:13px}
.diagnoses-page .diagnosis-grid{grid-template-columns:110px 70px minmax(0,1fr)}   /* Billable second (2026-10-22) */
/* Diagnoses menu icon (2026-10-22): a stethoscope with a heart (red cross and pulse). */
.menu-icon.diagnosis-icon{color:#343a40}.menu-icon.diagnosis-icon .t2{stroke:#e03131}
.menu-icon.diagnosis-icon{color:#495057}.menu-icon.diagnosis-icon .t2{stroke:#1c7ed6;fill:#d0ebff;stroke-width:1.5}   /* magnifier over a medical cross (2026-10-22) */
/* Patients (2026-10-22): sortable column titles. */
.patient-table > thead > tr > th{font-family:system-ui,"Segoe UI",sans-serif;font-size:12px;font-weight:700;letter-spacing:0;text-transform:none;color:#454b52}
.patient-table thead .sort-head{color:inherit;text-decoration:none;font:inherit}
.bills-table thead .sort-head{color:inherit;text-decoration:none;font:inherit}
.patient-table thead th.num .sort-head{justify-content:flex-end}
/* Referring providers icon (2026-10-22): two people and a blue arrow (a referral coming in). */
.referrer-icon .ref-arrow{stroke:#1c7ed6;stroke-width:2.2}
.referrer-icon .ref-arrow{stroke-width:2.5}
/* Referring providers icon (2026-10-22): the two people inside a blue ring. */
.referrer-icon .ref-ring{stroke:#1c7ed6;stroke-width:1.8}
.referrer-icon .ref-front{stroke:#1c7ed6}   /* the front person blue, as the ring (2026-10-22) */
/* Trying (2026-10-22): the add plus in orange instead of magenta. */
svg .add-plus{stroke:#f76707}
svg .add-plus{stroke:#7048e8}   /* trying violet (2026-10-22) */
svg .add-plus{stroke:#1c7ed6}   /* trying blue (2026-10-22) */
svg .add-plus{stroke:#4dabf7}   /* trying light blue (2026-10-22) */
.sex-chip.male{color:#1c7ed6}   /* M in blue (2026-10-22) */
.sex-chip.male{color:#4dabf7}.sex-chip.female{color:#f783ac}   /* light blue M, light pink F (2026-10-22) */
/* Sort arrows (2026-10-22): thicker, on every list. */
/* Trying (2026-10-22): Patients and Bills swap their base colors: Patients indigo, Bills green (the $ stays gold). */
.topbar nav a[href$="/patients"] .nav-icon,.icon-head[title="Patients"] svg{color:#3b5bdb}
.bills-icon,.topbar nav .bills-icon,.patient-table .add-bill{color:#2b8a3e}
.patient-table th .bills-icon,.patient-table .add-bill,.patient-table .add-bill svg{color:#2b8a3e !important}
.topbar nav a[href$="/patients"] .nav-icon,.icon-head[title="Patients"] svg{color:#7048e8}   /* trying purple (2026-10-22) */
:is(a,button)[aria-label="New patient"] svg{color:#7048e8}   /* the New patient icon purple, as Patients (2026-10-22); its plus keeps the add color */
:is(a,button)[aria-label="New patient"],:is(a,button)[aria-label="New patient"] svg,:is(a,button)[aria-label="New patient"] svg path:not(.add-plus),:is(a,button)[aria-label="New patient"] svg circle{color:#7048e8 !important;stroke:#7048e8}
/* Staff icon (2026-10-22): the same blue as the Referring providers icon. */
.topbar nav a[href$="/staff"] .nav-icon,.icon-head[title="Logins"] svg,.add-staff-toggle svg{color:#1c7ed6}
#staff .add-staff-toggle.icon-btn,#staff .add-staff-toggle svg{color:#1c7ed6 !important}#staff .add-staff-toggle svg :is(path,circle,rect):not(.add-plus){stroke:#1c7ed6}
/* Bills icon (2026-10-22): light green base (the $ stays gold). */
.bills-icon,.topbar nav .bills-icon,.patient-table .add-bill{color:#51cf66}
.patient-table th .bills-icon,.patient-table .add-bill,.patient-table .add-bill svg{color:#51cf66 !important}
/* Create batch (2026-10-22): colored as the Filing tab icon (purple tray, green arrow). */
.create-batch-btn svg{color:#6741d9}.create-batch-btn svg .t2{stroke:#2f9e44}
/* Bill, Patient & insurance ID-card icon (2026-10-22): purple, as Patients. */
.patient-banner .fold-icon[aria-controls="patient"],.patient-banner .fold-icon[aria-controls="patient"] svg{color:#7048e8 !important}
/* Full bill icon (2026-10-22): the page light green, as Bills; the pencil keeps its blue. */
.patient-banner a.view-switch[aria-label="Full bill"] svg path:not(:last-child){stroke:#51cf66}
.patient-banner a.view-switch[aria-label="Full bill"] svg path:last-child{stroke:#3b5bdb}
/* Bill top line (2026-10-22): the PDF icons as tall as the icons beside them. */
.print-cms .pdf-icon{width:18px !important;height:22px !important}
/* Trying (2026-10-22): the PDF icons light green, as Bills. */
.print-cms .pdf-icon path:first-of-type{fill:#51cf66}.print-cms .pdf-icon path:nth-of-type(2){fill:#d3f9d8}
.sex-chip.male{color:#3f72b4}   /* trying the LEGACY icon blue (2026-10-22) */
.sex-chip.male{color:#5b8fd1}   /* a step lighter than the LEGACY blue (2026-10-22) */
.user-menu .menu-group{text-transform:none;letter-spacing:0;padding:4px 12px}   /* holds the View only badge (2026-10-22) */
.user-menu .role-switch .menu-group{display:block;padding:4px 12px}.user-menu .menu-group>.view-only-badge{margin-left:20px}.work-as-badge{cursor:default}
.user-menu .menu-who{position:relative;padding-right:34px}.user-menu a.menu-password{position:absolute;top:-4px;right:0;justify-content:center;width:28px;min-height:28px;padding:4px}.user-menu .menu-password .menu-icon{margin-right:0}
/* Bill, diagnoses-and-services view (2026-10-22): tighter vertical spacing between the top line, Diagnoses, Services,
   the picker and the service lines. */
.clinician-focus .patient-banner{margin-bottom:4px !important;padding-top:4px;padding-bottom:4px}
.clinician-focus .form-section{padding:4px 4px !important;margin-top:0 !important}
.clinician-focus .form-section + .form-section{margin-top:6px !important}
.clinician-focus .focus-head{margin-bottom:4px !important}
.clinician-focus .box21-section .cms21{padding-top:8px;padding-bottom:8px}


/* Save as macro (2026-10-22): the Macros icon before the words. */
:is(.dx-group-save,.group-save){display:inline-flex;align-items:center;gap:5px}
svg.macro-icon.btn-icon{color:#7048e8;flex:none}svg.macro-icon.btn-icon .t2{stroke:#f59f00}
/* Bill, Services heading (2026-10-22): Save and × sit on the line itself, not in a box. */
.services-head .add-row{background:transparent !important;border:0 !important;padding:0 !important;border-radius:0}
/* Bill (2026-10-22): the Diagnosis Macro and Procedure Macro pick lists look the same (box, size, width). */
.dx-groups select.dx-group,.proc-groups select.proc-group{-webkit-appearance:auto !important;appearance:auto !important;height:28px !important;min-height:28px !important;width:240px !important;max-width:240px !important;padding:0 6px !important;margin:0 !important;font-size:12.5px !important;border:1px solid #c9d3cd !important;border-radius:4px !important;background:white !important;box-shadow:none !important;color:var(--ink) !important;box-sizing:border-box}
/* Bill, diagnoses-and-services view (2026-10-22): the Diagnoses line (title, trash, macro, Save as Macro) sits on the
   page like the Services line; only the A-L boxes are in the white card. */
.clinician-focus .cms21{border:0 !important;background:transparent !important;padding:0 !important;box-shadow:none !important}
.clinician-focus .cms21-grid{border:1px solid var(--line);border-radius:8px;background:white;padding:8px 12px 10px}

/* Payments (V83): the bill's postings, a batch's check, the Payments page. */
.payment-form{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.payment-form label{display:flex;flex-direction:column;font-size:12px;gap:2px}
.payment-form input,.payment-form select{min-height:30px}.payment-form label.wide{flex:1 1 220px}
table.payments{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}table.payments th,table.payments td{padding:4px 6px;text-align:left;border-bottom:1px solid var(--line)}
table.payments .amount{text-align:right}table.payments tr.reversed td{color:var(--muted);text-decoration:line-through}table.payments tr.reversed td:last-child{text-decoration:none}
.reverse-payment{display:flex;gap:4px}.reverse-payment input{width:140px;min-height:26px}
.batch-check{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.batch-check label{display:flex;flex-direction:column;font-size:12px;gap:2px}.batch-check label.wide{flex:1 1 240px}
.batch-payments input.money{width:90px;text-align:right}
.payments-report .totals{font-weight:600}
.copay{display:inline-block;position:relative}.copay summary{list-style:none;cursor:pointer;display:inline-flex}.copay summary::-webkit-details-marker{display:none}
.copay-form{position:absolute;z-index:5;left:0;top:100%;display:flex;gap:4px;align-items:center;padding:6px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.12);white-space:nowrap}
.copay-form input{width:90px;min-height:28px}.copay-form .error{white-space:normal;max-width:260px;margin:0}
/* RULE 43 on the Procedures page (2026-10-22): each column title lines up with the value in its in-place box (the box's
   1px border + 6px padding). */
.procedures-page .payer-head.procedure-grid > span:not(:first-child):not(.num) .sort-head,.procedures-page .payer-head.procedure-grid .head-add .sort-head{margin-left:1px}
.procedures-page .payer-head.procedure-grid > span.num{padding-right:7px}
/* Patients (2026-10-23): the case shown under the patient's form keeps Close case (or Reopen, with "This case is
   closed."), which were only in the hidden Cases list; a new case's Save and x stay hidden (the patient's Save adds it). */
.case-shown:not(.case-new-shown) .case-top .edit-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end}
.case-shown:not(.case-new-shown) .case-top .edit-actions .case-autosave{display:none}
.check-total.matched{color:var(--ok,#1b7f3b);font-weight:600}.post-check-start .batch-check{align-items:end}
/* Payments page: the filter on one line; date boxes wide enough for the year. */
.payment-filter{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.payment-filter label{display:flex;flex-direction:column;gap:2px;font-size:12px}
.payment-filter input[type=date],.batch-check input[type=date]{width:150px}.payment-filter select{min-width:160px}
.batch-check label{min-width:0}.batch-check input.money{width:110px}
/* Payments controls share the compact Type-picklist height. */
.payments-report :is(.batch-check,.payment-filter) label{margin-bottom:0}
.payments-report :is(.batch-check,.payment-filter) :is(input,select,button){height:26px;min-height:26px;box-sizing:border-box;margin-top:0;padding-top:0;padding-bottom:0;font-size:13px}
/* Post payments / Post the check (2026-10-23): the Paid and Adjustment boxes sit at the right of their cells, and their
   column titles line up with the value inside the box (RULE 43: the box's 1px border + 12px padding). */
.batch-payments .filing-table td.num input.money{margin:0 0 0 auto}.batch-payments .filing-table th.box{padding-right:23px}
/* Payments tables (2026-10-23): a column title stays on one line and sits over its values, with the same side padding
   as the cells (the bill's postings and the Payments page report). */
table.payments th{white-space:nowrap;vertical-align:bottom}
table.filing-table.payments th,table.filing-table.payments td{padding:6px 10px}
/* Bill (2026-10-23): once the biller signs off, the form is decided: a read-only label replaces the CMS-1500 / NF-3 switch. */
.form-fixed{display:inline-flex;align-items:center;min-height:30px;padding:2px 12px;border:1px solid var(--line);border-radius:999px;background:#f4f6f3;color:var(--ink);font-size:12.5px;font-weight:600;cursor:default;white-space:nowrap}
/* RULE 59 (2026-10-23): every piece of DATA on a CMS-1500 form, anywhere in the app (Patients form and its case, the
   bill, the case view, Setup CMS boxes, the CMS-1500 guide), is Courier New 10pt regular, as the claim prints. Box
   titles, tick words and pick lists that are not data (the macro lists, Add services) keep their own type; NF-3 is
   its own form. */
:is(.cms-top, .cms-case, .cms-form, .form-paper, .party-cms-form, .org-cms) :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not([type=search]):not([type=file]), select:not(.dx-group):not(.proc-group), textarea, .mdy-date .mdy-text, .value, .v):not(#add-services *):not(.nf3-paper *){font-family:"Courier New",Courier,monospace !important;font-size:10pt !important;font-weight:400 !important;letter-spacing:0 !important;font-variant-numeric:normal}
/* Payments icon (2026-10-23): a bill with $ rising from a medical folder; blue folder, green $, gray page. */
svg.payments-icon{color:#4c6ef5}svg.payments-icon .pay-paper{stroke:#868e96}svg.payments-icon .pay-dollar{stroke:#2f9e44}
.topbar nav a[href$="/payments"] .nav-icon{color:#4c6ef5}
/* A signed-off bill (2026-10-23, black since 2026-10-25): every piece of its data reads as printed, boxes 11c, 24 and 31-33 included. */
.form-paper.signed-off :is(input:not([type=radio]):not([type=checkbox]), select, textarea, .value, .ph, .cms24 td):not(#add-services *){color:#000 !important;-webkit-text-fill-color:#000 !important}
/* The batch badge opens the batch. */
a.status.batch-link{text-decoration:none;cursor:pointer}a.status.batch-link:hover{text-decoration:underline}
svg.payments-icon .pay-dollar{stroke:#d4a017;stroke-width:1.5}   /* thinner, gold (2026-10-23) */
/* Signed-off bill, printed everywhere (2026-10-23, stronger): outranks the bill's one-box style; also 32a/33a NPIs and 21's ICD Ind. */
.form-paper.signed-off :is(input:not([type=radio]):not([type=checkbox]), select, textarea, .value, .ph, .cms24 td, .npi-a, .icd, .icd *):not(#add-services *):not(#zz1):not(#zz2):not(#zz3){color:#000 !important;-webkit-text-fill-color:#000 !important}
/* Signed-off bill: 11c's payer name (shown as the empty box's stand-in, as it prints) reads black too. */
.form-paper.signed-off .b11c input.prints-payer::placeholder{color:#000 !important;-webkit-text-fill-color:#000 !important}
svg.payments-icon .pay-dollar{stroke-width:1.2}   /* thinner $ (2026-10-23) */
.topbar nav a[href$="/payments"] .nav-icon.payments-icon{width:20px;height:20px}.icon-btn svg.payments-icon,a svg.payments-icon{width:23px;height:23px}   /* a little bigger (2026-10-23) */
.topbar nav a[href$="/payments"] .nav-icon.payments-icon{width:29px;height:29px}.patient-banner :is(.icon-btn, a) svg.payments-icon{width:25px;height:25px}   /* a little bigger than the 26px / 22px icons beside them */
svg.payments-icon :is(rect, path:not(.pay-dollar)){stroke-width:1.4}   /* thinner check border and line (2026-10-23) */
/* RULE 60 (2026-10-23): every tick box on a CMS-1500 form is drawn as the form's red square, also when locked
   (read-only, signed off), so the box never disappears; the X inside keeps its own color. */
:is(.form-paper, .party-cms-form, .org-cms, .cms-top, .cms-case) input:is([type=radio],[type=checkbox]):not(#add-services *):not(.nf3-paper *):not(#zz1):not(#zz2){-webkit-appearance:none !important;appearance:none !important;width:14px !important;height:14px !important;min-height:0 !important;padding:0 !important;border:1px solid var(--cms-label-red, #e0352c) !important;border-radius:0 !important;background:white !important;display:inline-grid !important;place-content:center;opacity:1 !important;box-shadow:none !important}
:is(.form-paper, .party-cms-form, .org-cms, .cms-top, .cms-case) input:is([type=radio],[type=checkbox]):not(#add-services *):not(.nf3-paper *)::before{content:"";font:700 11px/1 system-ui,sans-serif}
:is(.form-paper, .party-cms-form, .org-cms, .cms-top, .cms-case) input:is([type=radio],[type=checkbox]):checked:not(#add-services *):not(.nf3-paper *)::before{content:"\2715"}
/* Filing icon (2026-10-23): tray in the Patients purple, arrow in the Bills light green; Create batch matches. */
.topbar nav a[href$="/filing"] .nav-icon,.create-batch-btn svg{color:#7048e8}
.topbar nav a[href$="/filing"] .nav-icon .t2,.create-batch-btn svg .t2{stroke:#51cf66}
.topbar nav a[href$="/filing"] .nav-icon path:not(.t2),.create-batch-btn svg path:not(.t2){stroke-width:1.4}   /* thinner tray (2026-10-23) */
.form-paper .cms24 tfoot td.total-label:not(#zz1):not(#zz2):not(#zz3):not(#zz4){color:var(--cms-label-red, #e0352c) !important;-webkit-text-fill-color:var(--cms-label-red, #e0352c) !important}   /* 28. TOTAL CHARGE is a title: red, also on a signed-off bill */
.form-paper .cms24 td.total-label:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){color:var(--cms-label-red, #e0352c) !important;-webkit-text-fill-color:var(--cms-label-red, #e0352c) !important;font:400 9.5px Arial,Helvetica,sans-serif !important;letter-spacing:.3px}   /* box 28 title red wherever its row sits */
/* Bill, under box 24 (2026-10-23): boxes 28, 29 and 30 as on the printed form, each a title over its amount. 28 prints
   (red title); 29 (amount paid) and 30 (here: Adjusted) are not printed, so their titles are gray. */
.form-paper .cms24 tfoot td.foot-box{border:1px solid var(--rule) !important;padding:2px 6px 4px !important;vertical-align:top;text-align:left !important}
.form-paper .cms24 tfoot .foot-box > span{display:block;margin:0 0 2px;font:400 9.5px Arial,Helvetica,sans-serif !important;letter-spacing:.3px;white-space:nowrap}
.form-paper .cms24 tfoot .foot-box > strong{display:block;text-align:right;font:400 10pt "Courier New",Courier,monospace !important}
.form-paper .cms24 tfoot .b28 > .total-label:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){color:var(--cms-label-red, #e0352c) !important;-webkit-text-fill-color:var(--cms-label-red, #e0352c) !important}
.form-paper .cms24 tfoot .not-printed > .foot-label:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){color:#868e96 !important;-webkit-text-fill-color:#868e96 !important}
.form-paper .cms24 tfoot .not-printed{border-color:#d5d9dc !important;background:#fafbf9}
.clinician-focus .cms24 tfoot .not-printed{visibility:hidden}   /* the diagnoses-and-services view keeps only 28 */
/* Box 28 (2026-10-23): its title right-aligned before column F and its amount in column F, under the charges, with
   no box of its own; 29 and 30 follow as boxes over G-H and I-J. */
.form-paper .cms24 tfoot td.total-label{text-align:right !important;vertical-align:middle;border:0 !important}
.form-paper .cms24 tfoot td.total.b28{border:0 !important;background:transparent !important;text-align:right !important;padding:4px 6px !important}
.form-paper .cms24 tfoot td.total.b28 strong{font:400 10pt "Courier New",Courier,monospace !important}
/* Box 28 as on the CMS-1500 (2026-10-23): a box like 29 and 30, title on top, the total under it, the box ending at
   column F; the cells before it are empty space. */
.form-paper .cms24 tfoot td.foot-gap{border:0 !important;background:transparent !important}
.form-paper .cms24 tfoot td.foot-box.b28{border:1px solid var(--cms-rule-red, #e8473f) !important;background:transparent !important}
.form-paper .cms24 tfoot td.foot-box.b28 > strong{text-align:right}
.form-paper .cms24 tfoot td.foot-box.b28 > span{white-space:normal}   /* the title may wrap in column F's width */
/* Boxes 28-30 (2026-10-23): one strip from column F to the right edge, box 28 starting at F; 28 widest, 30 shortest. */
.form-paper .cms24 tfoot td.foot-boxes{border:0 !important;padding:0 !important;background:transparent !important}
.form-paper .cms24 tfoot .foot-boxes{display:table-cell}
.form-paper .cms24 tfoot .foot-boxes > div{display:inline-block;vertical-align:top;box-sizing:border-box;padding:2px 6px 4px;border:1px solid #d5d9dc;margin-right:-1px}
.form-paper .cms24 tfoot .foot-boxes > .b28{width:44%;border-color:var(--cms-rule-red, #e8473f)}
.form-paper .cms24 tfoot .foot-boxes > .b29{width:34%;background:#fafbf9}
.form-paper .cms24 tfoot .foot-boxes > .b30{width:22%;background:#fafbf9}
.form-paper .cms24 tfoot .foot-boxes > div > span{display:block;margin:0 0 2px;font:400 9.5px Arial,Helvetica,sans-serif !important;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.form-paper .cms24 tfoot .foot-boxes > div > strong{display:block;text-align:right;font:400 10pt "Courier New",Courier,monospace !important}
.form-paper .cms24 tfoot .foot-boxes > .b28 > .total-label:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){color:var(--cms-label-red, #e0352c) !important;-webkit-text-fill-color:var(--cms-label-red, #e0352c) !important}
.form-paper .cms24 tfoot .foot-boxes > .not-printed > .foot-label:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){color:#868e96 !important;-webkit-text-fill-color:#868e96 !important}
.clinician-focus .cms24 tfoot .foot-boxes > .not-printed{visibility:hidden}
.form-paper .cms24 tfoot .foot-boxes > :is(.b28,.b29,.b30){width:calc(100% / 3)}   /* equal widths, 28 starting at column F (2026-10-23) */
/* Boxes 28-30 in a flex row (2026-10-23): no inline gaps or right alignment pushing box 28 off column F's left edge. */
.form-paper .cms24 tfoot td.foot-boxes{text-align:left !important}
.form-paper .cms24 tfoot .foot-boxes .fb-row{display:flex;width:100%}
.form-paper .cms24 tfoot .foot-boxes .fb-row > .fb{flex:1 1 0;width:auto !important;min-width:0;margin:0 0 0 -1px;display:block}
.form-paper .cms24 tfoot .foot-boxes .fb-row > .fb:first-child{margin-left:0}
.form-paper .cms24 tfoot .foot-boxes .fb{padding:2px 6px 4px;border:1px solid #d5d9dc;box-sizing:border-box}
.form-paper .cms24 tfoot .foot-boxes .b28{border-color:var(--cms-rule-red, #e8473f);position:relative;z-index:1}
.form-paper .cms24 tfoot .foot-boxes :is(.b29,.b30){background:#fafbf9}
.form-paper .cms24 tfoot .foot-boxes .fb > span{display:block;margin:0 0 2px;font:400 9.5px Arial,Helvetica,sans-serif !important;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.form-paper .cms24 tfoot .foot-boxes .fb > strong{display:block;text-align:right;font:400 10pt "Courier New",Courier,monospace !important}
.form-paper .cms24 tfoot .foot-boxes .b28 > .total-label:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){color:var(--cms-label-red, #e0352c) !important;-webkit-text-fill-color:var(--cms-label-red, #e0352c) !important}
.form-paper .cms24 tfoot .foot-boxes .not-printed > .foot-label:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){color:#868e96 !important;-webkit-text-fill-color:#868e96 !important}
.clinician-focus .cms24 tfoot .foot-boxes .not-printed{visibility:hidden}
.form-paper .cms24 tfoot td.foot-boxes:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){border:0 !important;padding:0 !important;background:transparent !important;box-shadow:none !important;outline:0 !important}   /* only the three boxes, no outer box; box 28 flush with column F */
.form-paper .cms24 tfoot .foot-boxes > .fb-row:not(#zz1):not(#zz2){border:0 !important;padding:0 !important;margin:0 !important;width:100% !important;background:transparent !important}   /* the wrapper is not a box */
/* Bill, payments (2026-10-23): one table like Setup's Rules; posted payments edit in place, the new line last with its
   save icon, the trash at the end of each line; reversed and corrected entries show under History. */
.payment-table{width:100%;border-collapse:collapse;font-size:13px}
.payment-table th{text-align:left;font-weight:500;color:#5f6368;padding:5px 6px;border-bottom:1px solid var(--line)}
.payment-table td{padding:2px 6px;border-bottom:1px solid #eef1ee;vertical-align:middle}
.payment-table .amount{text-align:right}.payment-table th.act,.payment-table td.act{width:44px;text-align:right}
.payment-table td input,.payment-table td select{width:100%;margin:0;min-height:28px;padding:2px 6px;font-size:13px;box-sizing:border-box}
.payment-table .inline-edit{border:1px solid transparent;background:transparent;border-radius:4px}
.payment-table .inline-edit:hover{border-color:#d5ddd8;background:white}.payment-table .inline-edit:focus{border-color:var(--teal);background:white;outline:none}
.payment-table input.num{text-align:right}
.payment-table select.inline-edit{-webkit-appearance:none;appearance:none}.payment-table select.inline-edit:hover,.payment-table select.inline-edit:focus{-webkit-appearance:auto;appearance:auto}
.payment-table tr.pay-new td{background:#f6f8f5;padding-top:6px;padding-bottom:6px;border-bottom:0}
.payment-table tr.pay-history td{color:var(--muted);text-decoration:line-through;text-decoration-color:#c9cfcb}
.payment-table .pay-remove{color:#868e96;min-height:0;height:26px;width:26px;padding:0}.payment-table .pay-remove:hover{color:#495057}
.payment-table .pay-history-toggle{min-height:24px;padding:0 8px;font-size:12px}
.form-paper .cms24 tfoot .foot-boxes .b-balance{background:#fafbf9}   /* four equal boxes: 28, Amount Paid, Adjusted, Balance (2026-10-23) */
.form-paper .cms24 tfoot .foot-boxes .not-printed :is(.foot-label, strong):not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){color:var(--ink) !important;-webkit-text-fill-color:var(--ink) !important}   /* Amount Paid, Adjusted, Balance in ink; box 28 as it was (2026-10-23) */
/* Payments table (2026-10-23): column titles line up with the text in the boxes (the box's 1px border + 6px padding);
   plain-text cells (Payer, Posted by) start there too. */
.payment-table th{padding-left:13px;padding-right:13px}
.payment-table td.payer,.payment-table td.who{padding-left:13px}
.payment-table td.amount input{text-align:right}
/* Payments table (2026-10-23): not claim data, so neither the signed-off gray nor the claim's Courier applies; normal
   type in ink, boxes with a fixed 1px border + 6px padding, and titles padded to match (7px past the cell's 6px). */
.form-paper .payment-table :is(input, select, td):not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){color:var(--ink) !important;-webkit-text-fill-color:var(--ink) !important;font:400 13px system-ui,"Segoe UI",sans-serif !important;letter-spacing:0 !important}
.form-paper .payment-table :is(input, select):not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){padding:2px 6px !important;border-width:1px !important;margin:0 !important;box-sizing:border-box}
.form-paper .payment-table td:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){padding:2px 6px !important}
.form-paper .payment-table th:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){padding:5px 13px !important;text-align:left}
.form-paper .payment-table th.amount:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){text-align:right}
.form-paper .payment-table :is(td.payer, td.who):not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){padding-left:13px !important}
.form-paper .payment-table tr.pay-history td:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){color:var(--muted) !important;-webkit-text-fill-color:var(--muted) !important}
.payment-table{table-layout:auto}.payment-table th:nth-child(2),.payment-table td:nth-child(2){width:170px;min-width:170px}   /* Type wide enough for "Patient deductible" (2026-10-23) */
/* Payments: each posted line has its Save icon (teal once the line is changed) before its trash. */
.payment-table td.act{width:76px;white-space:nowrap}
.payment-table .pay-save{color:#adb5bd;min-height:0;height:26px;width:26px;padding:0;border:1px solid transparent;background:transparent}
.payment-table tr.changed .pay-save{color:var(--teal);border-color:#cfd8d3;border-radius:6px}
/* Payments: the new line starts as just an Add icon at its end; clicked, its boxes and save icon show. */
.payment-table tr.pay-new.closed td:not(.act) > *{visibility:hidden}
.payment-table tr.pay-new.closed td{background:transparent}
.payment-table tr.pay-new.closed .save-icon,.payment-table tr.pay-new:not(.closed) .pay-add{display:none}
.payment-table .pay-add{min-height:0;height:30px;width:30px;padding:0}
/* Payments, the new line (2026-10-23): closed = only the Add icon; open = trash (discard) then save. */
.payment-table tr.pay-new.closed :is(.save-icon, .pay-discard){display:none !important}
.payment-table tr.pay-new:not(.closed) .pay-add{display:none !important}
.payment-table .pay-discard{color:#868e96;min-height:0;height:26px;width:26px;padding:0}.payment-table .pay-discard:hover{color:#495057}
/* Payments table widths (2026-10-23): Payer gets the room (one line), Type shorter, tighter gaps between columns. */
.payment-table{table-layout:fixed}
.payment-table :is(th,td):nth-child(1){width:128px}
.payment-table :is(th,td):nth-child(2){width:150px !important;min-width:0 !important}
.payment-table :is(th,td):nth-child(3){width:100px}
.payment-table :is(th,td):nth-child(4){width:auto}
.payment-table :is(th,td):nth-child(5){width:78px}
.payment-table :is(th,td):nth-child(6){width:84px}
.payment-table :is(th,td):nth-child(7){width:120px}
.payment-table :is(th,td):nth-child(8){width:104px}
.payment-table :is(th,td):nth-child(9){width:70px}
.payment-table td.payer,.payment-table td.who{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.form-paper .payment-table td:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){padding:2px 3px !important}
.form-paper .payment-table th:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){padding:5px 10px !important}
.form-paper .payment-table :is(td.payer, td.who):not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){padding-left:10px !important}
/* Payments table widths, as shares of the table (2026-10-23): Payer the widest text column. */
.payment-table :is(th,td):nth-child(1){width:14%}
.payment-table :is(th,td):nth-child(2){width:16% !important}
.payment-table :is(th,td):nth-child(3){width:10%}
.payment-table :is(th,td):nth-child(4){width:19%}
.payment-table :is(th,td):nth-child(5){width:8%}
.payment-table :is(th,td):nth-child(6){width:9%}
.payment-table :is(th,td):nth-child(7){width:10%}
.payment-table :is(th,td):nth-child(8){width:9%}
.payment-table :is(th,td):nth-child(9){width:5%;min-width:64px}
.payment-table thead th{text-align:left !important}.payment-table thead th.amount{text-align:right !important}
/* Payments table, column order Payment date, Type, Check #, Paid, Adjusted, Note, Payer, Posted by (2026-10-23). */
.payment-table :is(th,td):nth-child(4){width:8%}
.payment-table :is(th,td):nth-child(5){width:9%}
.payment-table :is(th,td):nth-child(6){width:10%}
.payment-table :is(th,td):nth-child(7){width:19%}
.payment-table :is(th,td):nth-child(3){width:16%}.payment-table :is(th,td):nth-child(7){width:13%}   /* More room for check/EFT numbers, a compact payer column. */
/* Filing, Unbatched bills (2026-10-23): no title (the tab names it); Create batch and the clinician pick sit on a slim
   line at the top of the list, before the first form's group. */
.filing-waiting .panel-heading.batch-tools-line{display:flex;align-items:center;gap:8px;margin:0 0 4px;min-height:0}
.filing-waiting .batch-tools-line .create-batch{margin:0}
/* Patients, a patient's visit lines (2026-10-23): with one clinician (or one location) in the account, that column is
   left out (the booking line's pick stays, hidden, so it still books). */
.appt-history.one-clinician :is(th.clin, td.who),.appt-history.one-clinician tr.appt-add > td:nth-child(3){display:none}
.appt-history.one-location :is(th.loc, td.place),.appt-history.one-location tr.appt-add > td:nth-child(4){display:none}
/* Search and picklist controls share a height throughout list/filter toolbars. */
:root{--filter-control-height:34px}
.workspace{--filter-control-height:26px}
input[type=search],:is(.appt-tabs,.payer-search,.directory-search,.routing-filter,.admin-head,.panel-heading,.account-filter,.payments-filters) select{
  height:var(--filter-control-height) !important;min-height:var(--filter-control-height) !important;
  padding-top:4px !important;padding-bottom:4px !important;box-sizing:border-box;
}
.appt-tabs :is(.status-filter,input[type=search]){margin-top:0;margin-bottom:4px;align-self:center}
/* Page filters share the compact Patients/Procedures height; the top menu keeps its own size. */
.workspace input[type=search],
.workspace :is(.procedure-tools,.appt-tabs,.payer-search,.directory-search,.routing-filter,.admin-head,.panel-heading,.account-filter,.payments-filters) select{
  height:var(--filter-control-height) !important;min-height:var(--filter-control-height) !important;
  padding-top:0 !important;padding-bottom:0 !important;box-sizing:border-box;
}
/* Compact procedure/diagnosis pickers retain their shared 28px form layout. */
:is(.dx-groups,.proc-groups,#add-services) input[type=search]{--filter-control-height:28px}
.appts-table > tbody > tr.appt-now > td{padding:3px 12px;border-top:2px solid var(--teal);background:#eaf5f1;color:var(--teal);font-size:12px;font-weight:700;line-height:1.5}
.appts-table > tbody > tr.appt-now:hover > td{background:#eaf5f1}

/* ONE RULE (2026-10-25): the CMS-1500 on screen is a muted rosy taupe, not the bright form red: taupe box titles (told
   apart from the black data at a glance), near-neutral warm gray grid lines; bright red only for errors (invalid boxes,
   pre-scrub), so an error stands out. The printed form keeps its red (the PDF is drawn on its own). The names keep
   "red" so every rule that uses them follows. */
@media screen {
  :root { --cms-label-red:#96655f; --cms-rule-red:#d9cfcd; }
  .cms24 { --shade:#f4f0ef !important; --soft:#d9cfcd !important; }
  :is(.cms24 th, .cms24 td.qual, .cms24 tfoot .total-label, .box24 th) { color:#96655f !important; }
  .box24 th { border-color:#d9cfcd !important; }
  :is(.cms-edit .other .box-label, .cms-edit details.other summary, .cms-form .b.json::after) { color:#8a6f6a !important; }
  :is(.cms-edit .unused .box-label, .cms24.loc24 thead tr th:not([rowspan])) { color:#bfb0ae !important; }
  :is(.cms-form .b.nucc, .cms-top .nucc, .cms-case .b9, .case-form:not(.is-employment) .employer) :is(.box-label, .np-label):not(#_1):not(#_2) { color:#bfb0ae !important; }
  .form-paper:not(.clinician-focus) .cms24 td.rm-in .remove-line { color:#868e96; }
  .form-paper { border-color:#d5dbe0; }
  .paper-title { background:#f8f9fa; border-bottom-color:#d9cfcd; }
  .form-section { border-bottom-color:#e1e5e9; }
  .form-cell { border-color:#e1e5e9; }
}

/* Darker editable CMS values on screen; preserve locked values and empty dates. */
@media screen {
  :is(.cms-top, .cms-patient, .cms-case, .cms-edit, .cms-form, .cms-bottom, .cms-bill, .cms21, .cms24, .cms-bill-row, .cms-22-23, .party-cms-form, .org-cms)
  :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]), select, textarea):enabled:not([readonly]):not(.demo-locked):not(.empty-date):not(.mdy-real) {
    color:#000 !important;
    -webkit-text-fill-color:#000 !important;
  }
}
/* NF-3 screen contrast: muted printed labels, black entered and displayed data. */
@media screen {
  .nf3-paper :is(.box-label, .tick-choice, .qual, .lbl, .cap, .num-label, .nf3-choice-title, th),
  .nf3-paper .nf3-q > span:first-child,
  .nf3-paper .nf3-recommendation > span {
    color:#667085 !important;
    -webkit-text-fill-color:#667085 !important;
  }
  .nf3-paper :is(input:not([type=hidden]):not([type=radio]):not([type=checkbox]), select, textarea, .v, .nf3-sign .line, .nf3-lines tbody td, .shared-total):not(.empty-date):not(.mdy-real) {
    color:#000 !important;
    -webkit-text-fill-color:#000 !important;
    opacity:1;
  }
  .nf3-paper input:is([type=radio],[type=checkbox])::before {
    color:#000 !important;
    -webkit-text-fill-color:#000 !important;
  }
}
/* Keep the NF-3 case correction notice compact and above the form heading. */
@media screen {
  .nf3-paper .nf3-title { color:#667085; }
  .nf3-paper .nf3-case-fix { margin:0 0 18px; padding:10px 12px; }
  .nf3-paper .nf3-fix-controls { align-items:center; gap:10px 20px; }
  .nf3-paper .nf3-fix-controls label { margin:0; }
  .nf3-paper .nf3-fix-auto .tick-choice {
    display:inline-flex; flex-direction:row; align-items:center; gap:5px;
    padding:0; min-height:30px; white-space:nowrap;
  }
  .nf3-paper .nf3-fix-auto input[type=radio] {
    appearance:auto; -webkit-appearance:radio; position:static;
    width:16px; height:16px; min-height:16px; margin:0;
    padding:0; border:0; box-shadow:none; flex:0 0 16px;
  }
  .nf3-paper .nf3-fix-auto input[type=radio]::before { content:none; }
  .nf3-paper .nf3-fix-date { display:inline-flex; align-items:center; gap:8px; }
  .nf3-paper .nf3-fix-pick label { display:inline-flex; align-items:center; }
}
@media screen {
  .nf3-paper .nf3-patient-link { color:var(--teal); -webkit-text-fill-color:var(--teal); text-decoration:underline; text-underline-offset:3px; }
}

.bill-tabs{display:flex;gap:16px;border-bottom:1px solid var(--line);margin-bottom:12px}
.bill-tabs a{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:3px solid transparent;color:var(--muted)}
.bill-tabs a[aria-current=page]{color:var(--teal);border-bottom-color:var(--teal);font-weight:650}
.bill-tabs .count{font-size:11px;min-width:0;padding:1px 6px}

/* Bills use the same compact form tabs as Filing. */
.bills-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;margin:0 0 10px}
.bills-toolbar .clinician-pick{margin:0 0 0 auto}
.bills-toolbar .clinician-pick select{width:auto;min-height:32px;margin:0;padding:3px 8px;font-size:13px}
.bills-in-progress .bill-tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#f1f5f2;margin:0;max-width:100%}
.bills-in-progress .bill-tabs a{min-height:40px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:#48615b;font-size:13px;font-weight:650;line-height:1.2;gap:9px;white-space:nowrap;justify-content:center}
.bills-in-progress .bill-tabs a:hover{background:#e3ece6;color:var(--teal)}
.bills-in-progress .bill-tabs a[aria-current=page]{background:#cce8d8;color:#205c45;box-shadow:0 1px 3px #20363418}
.bills-in-progress .bill-tabs a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.bills-in-progress .bill-tabs .count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;border-radius:6px;background:#e0e9e3;color:#48615b;font-size:11px;font-weight:700;line-height:1;letter-spacing:0;font-variant-numeric:tabular-nums}
.bills-in-progress .bill-tabs a[aria-current=page] .count{background:#ffffff80;color:#205c45}

/* Filing form labels: CMS uses cream, NF uses pale blue. */
.filing-page .form-tag{background:#f6ece0;color:#7a4b12}
.filing-page .form-tag.nf3{background:#e7eef6;color:#2a4d74}
.filing-form-tabs{display:inline-flex;gap:0;border:1px solid var(--teal);border-radius:8px;overflow:hidden;margin:8px 0 10px}
.filing-form-tabs a{height:34px;min-height:34px;padding:0 12px;border:0;border-radius:0;background:#fff;color:var(--teal);font-size:13px;font-weight:500;line-height:1;gap:5px;white-space:nowrap}
.filing-form-tabs a + a{border-left:1px solid var(--teal)}
.filing-form-tabs a[aria-current=page]{background:var(--teal);color:#fff;font-weight:600;box-shadow:none}
.filing-form-tabs .count{display:inline;padding:0;min-width:0;background:transparent;color:inherit;font-size:11px;line-height:1}

/* Filing navigation sits above the unbatched controls. */
.filing-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.filing-toolbar .filing-tabs{margin:0;border-bottom:0}
.filing-waiting .unbatched-toolbar .batch-tools-line{display:flex;align-items:center;gap:8px;margin:0 0 0 auto}
.unbatched-toolbar .create-batch{margin:0}
.unbatched-toolbar .create-batch select{margin:0;min-height:32px;padding:3px 8px}

.unbatched-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;margin-bottom:10px}
.unbatched-toolbar .filing-form-tabs{margin:0}

/* Filing headers share the horizontal inset of their row values. */
.filing-page .filing-table > thead > tr > th{padding-left:10px;padding-right:10px}

/* Patient editing: all data is pure black (2026-10-25: read-only too; the box tells what is editable). Keep this after the
   general form rules so the difference is consistent across the patient and case sections. */
form.patient-panel.editing .patient-fields.patient-fields :is(input:not([type=radio]):not([type=checkbox]):not(:disabled):not([readonly]),select:not(:disabled),textarea:not(:disabled):not([readonly])),
td:has(> form.patient-panel.editing) .case-shown :is(input:not([type=radio]):not([type=checkbox]):not(:disabled):not([readonly]),select:not(:disabled),textarea:not(:disabled):not([readonly])){color:#000 !important;-webkit-text-fill-color:#000 !important}
form.patient-panel.editing .patient-fields.patient-fields :is(input:disabled,input[readonly],select:disabled,textarea:disabled,textarea[readonly],.value),
td:has(> form.patient-panel.editing) .case-shown :is(input:disabled,input[readonly],select:disabled,textarea:disabled,textarea[readonly],.value){color:#000 !important;-webkit-text-fill-color:#000 !important}
form.patient-panel.editing .patient-fields.patient-fields :is(input,textarea)::placeholder,
td:has(> form.patient-panel.editing) .case-shown :is(input,textarea)::placeholder{color:#868e96 !important;-webkit-text-fill-color:#868e96 !important;opacity:1}
/* Patients (2026-10-25): a locked patient box (pencil Edit) shows no focus ring or caret when clicked, so it never looks
   editable; the PATIENT link unlocks it (then black). */
.patient-panel.patient-locked .cms-top :is(.b2, .b3, .b5, .city, .zip) :is(input, select)[readonly]:focus{outline:none !important;caret-color:transparent}
/* Patients, a patient's bills / appointments (2026-10-25): each line as tall as a patient line (the one list size). */
.history-row .appt-table tbody tr > td{height:var(--list-line);padding-top:3px;padding-bottom:3px;line-height:1.35}
.history-row .appt-table td.act .icon-btn{min-height:0;min-width:0;height:var(--list-btn);width:calc(var(--list-btn) + 2px);padding:0;align-items:center;justify-content:center}
.history-row .appt-table td.act .icon-btn svg{max-width:22px;max-height:22px}
/* Bills, one patient's bills (2026-10-25, from the count on Patients): the patient's name with a × to show every bill again. */
.bills-toolbar .bill-patient{display:inline-flex;align-items:center;gap:2px;margin:0;padding:0 2px 0 10px;border-radius:13px;background:#e9f3ee;font-size:13px;white-space:nowrap}
.bills-toolbar .bill-patient .patient-link{color:var(--list-link);font-weight:600}
.bills-toolbar .bill-patient .clear-patient{min-height:0;min-width:0;height:24px;width:24px;padding:0;font-size:18px;line-height:1;color:#868e96}
.bills-toolbar .bill-patient .clear-patient:hover{color:#495057}
/* ONE RULE (2026-10-25): data is always black (see above); what can be typed in always shows its light box, darker on
   hover, so a mixed page shows what is editable without graying anything. Read-only reads as printed: no box. Drawn as
   a full border (border-box, so boxes that had none, box 24 and the NF-3 lines, keep their size); one look for every box:
   light border, 3px corners, white (2026-10-25). */
:is(.form-paper, .cms-top, .cms-patient, .cms-case, .cms-edit, .cms-form, .cms-bottom, .cms-bill, .cms21, .cms24, .cms-bill-row, .cms-22-23, .party-cms-form, .org-cms, .nf3-paper, .patient-panel, .case-form, .case-cms-row)
  :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not([type=file]):not([type=submit]):not([type=button]), select, textarea):enabled:not([readonly]):not(.demo-locked):not(.mdy-real):not(.dos-input):not(.invalid):not(.token-field input):not(.clinician-focus td.chg input):not(#_1):not(#_2):not(#_3),
:is(.inline-edit, input.party-field, .alias-cell input, .date-input, .nf3-loc15 input, .nf3-loc15-address input):enabled:not([readonly]):not(.invalid):not(#_1):not(#_2):not(#_3){border:1px solid #ced4da !important;border-radius:3px !important;box-shadow:none !important;background-color:var(--editable-field-bg,#fff) !important}
:is(.form-paper, .cms-top, .cms-patient, .cms-case, .cms-edit, .cms-form, .cms-bottom, .cms-bill, .cms21, .cms24, .cms-bill-row, .cms-22-23, .party-cms-form, .org-cms, .nf3-paper, .patient-panel, .case-form, .case-cms-row)
  :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not([type=file]):not([type=submit]):not([type=button]), select, textarea):enabled:not([readonly]):not(.demo-locked):not(.mdy-real):not(.dos-input):not(.invalid):not(.token-field input):not(.clinician-focus td.chg input):not(#_1):not(#_2):not(#_3):hover,
:is(.inline-edit, input.party-field, .alias-cell input, .date-input, .nf3-loc15 input, .nf3-loc15-address input):enabled:not([readonly]):not(.invalid):not(#_1):not(#_2):not(#_3):hover{border-color:#adb5bd !important}
:is(.form-paper, .cms-top, .cms-patient, .cms-case, .cms-edit, .cms-form, .cms-bottom, .cms-bill, .cms21, .cms24, .cms-bill-row, .cms-22-23, .party-cms-form, .org-cms, .nf3-paper, .patient-panel, .case-form, .case-cms-row)
  :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not([type=file]):not([type=submit]):not([type=button]), select, textarea):enabled:not([readonly]):not(.demo-locked):not(.mdy-real):not(.dos-input):not(.invalid):not(.token-field input):not(.clinician-focus td.chg input):not(#_1):not(#_2):not(#_3):focus,
:is(.inline-edit, input.party-field, .alias-cell input, .date-input, .nf3-loc15 input, .nf3-loc15-address input):enabled:not([readonly]):not(.invalid):not(#_1):not(#_2):not(#_3):focus{border-color:var(--teal) !important}
/* CMS data on screen (2026-10-25): Courier New regular's thin strokes read gray, so a light outline thickens them;
   same font, size and widths as printed (print untouched). Placeholders and empty date hints keep their own look. */
@media screen {
  :is(.cms-top, .cms-case, .cms-form, .form-paper, .party-cms-form, .org-cms) :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not([type=search]):not([type=file]), select:not(.dx-group):not(.proc-group), textarea, .mdy-date .mdy-text, .value, .v):not(#add-services *):not(.nf3-paper *){-webkit-text-stroke:.3px currentColor}
  :is(.cms-top, .cms-case, .cms-form, .form-paper, .party-cms-form, .org-cms) :is(input, textarea)::placeholder{-webkit-text-stroke:0}
}
/* Box 24 footer (2026-10-25): 28's total and Amount Paid / Adjusted / Balance print like the other values: black, same stroke. */
.form-paper .cms24 tfoot .foot-boxes .fb > strong:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6):not(#zz7){color:#000 !important;-webkit-text-fill-color:#000 !important}
@media screen { .form-paper .cms24 tfoot .foot-boxes .fb > strong{-webkit-text-stroke:.3px currentColor} }
/* 24I's NPI is printed on the form: a label (title color and type), not data, signed off or not (2026-10-25). */
.form-paper .cms24 td.qual:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){color:var(--cms-label-red, #e0352c) !important;-webkit-text-fill-color:var(--cms-label-red, #e0352c) !important;-webkit-text-stroke:0;font:400 9px Arial,Helvetica,sans-serif !important}
/* Printed words are labels, never data color, signed off or not (2026-10-25): 21's "ICD Ind." (its 0 is data), 32a/33a's
   "a.", 11a's M / F when the insured is the patient (Self). */
.form-paper .cms21-head .icd:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6),
.form-paper .npi-a .box-label:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){color:var(--cms-label-red, #e0352c) !important;-webkit-text-fill-color:var(--cms-label-red, #e0352c) !important;-webkit-text-stroke:0}
.form-paper .cms21-head .icd b:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){color:#000 !important;-webkit-text-fill-color:#000 !important}
/* Services view (2026-10-25): the footer on the service lines' columns: the tools under Date-Modifier, the total under
   Charge, centered like the charges, without box 28's title or box; the boxes that do not print are left out. */
.clinician-focus .cms24 tfoot tr{display:grid;grid-template-columns:130px 80px 110px 100px 80px minmax(0,auto) 40px;gap:0 10px;padding:0 4px;align-items:center}
.clinician-focus .cms24 tfoot td.line-tools{grid-column:1 / 4;flex-wrap:wrap}
.clinician-focus .cms24 tfoot td.foot-gap{display:none}
.clinician-focus .cms24 tfoot td.foot-boxes:not(#zz1):not(#zz2){grid-column:4 / 5;width:auto !important}
.clinician-focus .cms24 tfoot .foot-boxes .fb-row{display:block !important}
.clinician-focus .cms24 tfoot .foot-boxes .not-printed{display:none !important}
.clinician-focus .cms24 tfoot .foot-boxes .b28:not(#zz1):not(#zz2):not(#zz3):not(#zz4){width:auto !important;border:0 !important;padding:0 !important;background:transparent !important}
.clinician-focus .cms24 tfoot .foot-boxes .b28 > .total-label:not(#zz1):not(#zz2):not(#zz3){display:none !important}
.clinician-focus .cms24 tfoot .foot-boxes .b28 > strong:not(#zz1):not(#zz2){text-align:center !important}
/* Services view (2026-10-25): money lines up on the right: the Charge title, each charge and the total share one right edge. */
.clinician-focus .lines-head > span:nth-child(4){text-align:right;padding-right:6px}
.clinician-focus .cms24 td.chg input:not(#zz1){display:block;width:100% !important;text-align:right !important;padding-right:6px !important}
.clinician-focus .cms24 tfoot .foot-boxes .b28 > strong:not(#zz1):not(#zz2):not(#zz3){text-align:right !important;padding-right:6px !important}
.clinician-focus .cms24 td.chg:not(#zz1){width:auto !important}   /* the printed form's 92px cell, not the 100px column */
.clinician-focus .cms24 tfoot td.foot-boxes:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5),
.clinician-focus .cms24 tfoot .foot-boxes :is(.fb-row, .b28):not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){display:block !important;width:100% !important;margin:0 !important;padding:0 !important;border:0 !important;box-sizing:border-box}
/* Sign-in pages on a phone: the card fills the width, sits near the top, and 16px boxes stop iOS zooming in on tap. */
@media (max-width:520px){.login-page{place-items:start center}.login-card{width:calc(100% - 32px);margin:16px auto;padding:22px 18px;border-radius:14px}.login-brand{margin-bottom:18px}.login-card h1{font-size:24px;margin-bottom:14px}.login-card input{font-size:16px}}
/* Patients on a phone: the list scrolls sideways, but an opened patient (details, cases, appointments, bills, book)
   stays pinned to the screen width; the CMS boxes go back to one column (the desktop column rules above win otherwise),
   and 16px boxes stop iOS zooming in on tap. */
@media (max-width:760px){
  .patient-table tr:is(.toggle-row,.book-row) > td{padding:8px 4px}
  .patient-table tr:is(.toggle-row,.book-row) > td > *{position:sticky;left:0;width:calc(100vw - 62px);max-width:none;overflow-x:auto}
  .patient-table tr:is(.toggle-row,.book-row) > td > :is(input[type=hidden],[hidden]){display:none}
  .patient-panel .cms-patient.cms-top,.patient-panel .cms-case,.patient-cases .cms-case{grid-template-columns:minmax(0,1fr)}
  .patient-panel .cms-top .pair{flex-wrap:wrap}
  .patient-table tr:is(.toggle-row,.book-row) :is(input:not([type=radio]):not([type=checkbox]),select,textarea){font-size:16px}
}
/* CMS box titles (2026-10-25): regular Arial everywhere, as on the bill (and the printed form), so the titles read
   lighter than the data; bold titles on the Patients and case forms looked like values. */
:is(.cms-top, .cms-patient, .cms-case, .cms-edit, .cms-party, .cms-bill, .cms-bill-row, .cms-22-23, .cms-bottom, .org-forms) .box-label:not(#zz1),
:is(.cms-top, .cms-patient, .cms-case, .cms-edit, .cms-party, .cms-bill, .cms-bill-row, .cms-22-23, .cms-bottom, .org-forms) .box-label small:not(#zz1){font-family:Arial,Helvetica,sans-serif !important;font-weight:400 !important;letter-spacing:0 !important}
.nf3-fix-date .mdy-date .mdy-text{width:84px;min-height:30px;padding:3px 8px}   /* the NF-3 accident date as the case dates (2026-10-25) */
.nf3-fix-date.case-need .mdy-text{border-color:#d9a400;box-shadow:0 0 0 2px #fbe7a6}
/* The payer at the top of the bill and of the patient's form (2026-10-25): a little room before its first letter now that
   its box shows; the address under it moves in the same, so the two stay lined up. */
:is(.patient-view, .patient-panel) .cms-patient .box.payer input[name=payer]:not(#zz1){padding-left:6px !important}
:is(.patient-view, .patient-panel) .cms-patient .box.payer .payer-adr:not(#zz1){padding-left:6px}
/* 11c's payer name, shown in the empty box because it is what prints there, reads as a value (2026-10-25). */
.form-paper .b11c input.prints-payer::placeholder{color:#000 !important;-webkit-text-fill-color:#000 !important;opacity:1;-webkit-text-stroke:.3px #000}
/* 33's phone and 32a/33a's NPIs are data: Courier New 10pt black like every other value (2026-10-25). */
.form-paper :is(.cms-bottom .ph, .npi-a > span:not(.box-label)):not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){font:400 10pt "Courier New",Courier,monospace !important;color:#000 !important;-webkit-text-fill-color:#000 !important;letter-spacing:0 !important}
@media screen { .form-paper :is(.cms-bottom .ph, .npi-a > span:not(.box-label)){-webkit-text-stroke:.3px currentColor} }
/* Full bill, box 24 footer (2026-10-25): 28 is as wide as its title needs ("28. TOTAL CHARGE" whole); Amount Paid,
   Adjusted and Balance share the rest. */
.form-paper:not(.clinician-focus) .cms24 tfoot .foot-boxes .fb-row > .fb.b28:not(#zz1){flex:0 0 auto;min-width:max-content}
.form-paper:not(.clinician-focus) .cms24 tfoot .foot-boxes .fb-row > .fb.b28 > span{overflow:visible;text-overflow:clip}
/* Bill values shown as text, not boxes (2026-10-25): 24A's dates, 24J's NPI, 25's tax ID and 31-33's lines read like the
   typed values: Courier New 10pt, black, the same light outline on screen. */
.form-paper:not(.clinician-focus) :is(.cms24 td.dos, .cms24 td.npi-j, .value):not(.nf3-paper *):not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5):not(#zz6){font-family:"Courier New",Courier,monospace !important;font-size:10pt !important;font-weight:400 !important;color:#000 !important;-webkit-text-fill-color:#000 !important}
@media screen { .form-paper:not(.clinician-focus) :is(.cms24 td.dos, .cms24 td.npi-j, .value):not(.nf3-paper *){-webkit-text-stroke:.3px currentColor} }
/* Read-only boxes (2026-10-25): no beige fill; read-only already shows as no box around the value (unused boxes keep their gray). */
.form-paper .patient-view .cms-top .box:not(.nucc):has(.demo-locked):not(#zz1),
.form-paper.clinician-focus .patient-view .cms-top .box:not(.nucc):not(.payer):not(.top-note):not(#zz1),
.case-paper .cms-top .box:not(.nucc):not(.payer):not(.top-note):not(#zz1){background:white}
.cms-top .from-case:not(#zz1){background:white}
/* Staff (2026-10-25): the email box shows whole (its cell no longer clips its border) and, being data, in ink like the name. */
#staff .staff-row .staff-email:not(#zz1){overflow:visible}
#staff .staff-row .staff-email .inline-edit:not(#zz1){color:var(--ink);margin-left:0;width:100%}
#staff .staff-row :is(.staff-name, .staff-email) .inline-edit:not(#zz1){font-weight:400;font-size:13px;color:var(--ink)}   /* name and email boxes alike (2026-10-25) */
.patient-table th .bills-icon{width:22px;height:22px;vertical-align:middle}   /* the Bills column icon as big as its neighbors (2026-10-25) */
.bills-icon .dollar{stroke:#868e96}   /* gray $ on the Bills icon (2026-10-25; light gold #e5bd45 tried) */
.payer-dollar path{stroke:#868e96}   /* the Payer icon $ in the same gray as the Bills icon $ (2026-10-25; was gold #d4a017) */
.role-icon.biller .biller-dollar:not(#zz1){stroke:#868e96}   /* the Biller icon $ gray, as on Bills and Payer (2026-10-25) */
.role-icon.biller:not(#zz1){color:#2f9e44}   /* the Biller person green, the Bills color; no other role is green (2026-10-25) */
/* Payers, a payer's form (2026-10-25): two lines: name, E-File ID, phone, fax; then street, city, state and a short ZIP. */
#payers .payer-form:not(#zz1){grid-template-columns:minmax(0,1fr) 150px 50px 100px 130px;
  grid-template-areas:"name phone efile efile wcb" "street city state zip fax"}
#payers .payer-form .f-wcb{grid-area:wcb}
@media (max-width:760px){#payers .payer-form:not(#zz1){grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"name name" "efile efile" "phone wcb" "street street" "city state" "zip fax"}}
#payers .payer-grid:not(#zz1){grid-template-columns:34px minmax(0,1.4fr) 130px 100px 130px minmax(0,2fr) 70px}   /* phone before E-File ID, as in the form (2026-10-25) */
/* Employers (2026-10-25): no workers' comp carrier (it is the case's own). List: employer, address, phone, cases; the form
   on two lines like a payer's: name and phone, then street, city, state and a short ZIP. */
#employers .payer-grid:not(#zz1){grid-template-columns:56px minmax(0,1.4fr) minmax(0,2fr) 130px 70px}
#employers .payer-form:not(#zz1){grid-template-columns:minmax(0,1fr) 150px 50px 100px;grid-template-areas:"name phone . ." "street city state zip"}
@media (max-width:760px){#employers .payer-form:not(#zz1){grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"name name" "phone phone" "street street" "city state" "zip zip"}}
/* Bill, Duplicate (2026-10-25): the copy icon, and its dialog of two months to tick the new dates of service on. */
.duplicate-open{color:#51cf66}
.duplicate-dialog{border:1px solid var(--line);border-radius:10px;padding:14px 16px;box-shadow:0 10px 30px #0002;max-width:min(560px,94vw)}
.duplicate-dialog::backdrop{background:#0003}
.duplicate-dialog .dup-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}
.duplicate-dialog .dup-head h2{font-size:16px;margin:0;letter-spacing:0}
.duplicate-dialog .dup-close{min-height:30px;min-width:30px;padding:0 8px;font-size:22px;line-height:1;color:#868e96}
.duplicate-dialog .dup-cal{display:flex;align-items:flex-start;gap:6px}
.duplicate-dialog .dup-months{display:flex;gap:10px}
.duplicate-dialog .cal-nav{align-self:center}
.duplicate-dialog table.cal button.billed{box-shadow:inset 0 -2px 0 #e8590c}   /* already billed for this patient: an orange underline */
.duplicate-dialog table.cal button.billed[aria-pressed=true]{box-shadow:inset 0 -2px 0 #ffd8a8}
.duplicate-dialog .dup-picked{margin:10px 0 0;font-size:13px;min-height:1.4em}
.duplicate-dialog .dup-warn{margin:6px 0 0;font-size:13px;color:var(--warn-ink);background:var(--warn-fill);border:1px solid var(--warn-line);border-radius:6px;padding:6px 8px}
.duplicate-dialog .dup-actions{display:flex;justify-content:flex-end;margin:12px 0 0}
.duplicate-dialog .dup-create{min-height:34px;padding:4px 14px}
.duplicate-dialog:not([open]){display:none !important}   /* shown only when opened (a page-wide dialog style showed it on load) */
.duplicate-open svg path:not(.t2){stroke:#868e96}   /* the back page of the copy icon gray (2026-10-25) */

/* Shared compact curved tabs: bills, filing, macros, appointments and setup form views. */
.workspace :is(.filing-tabs,.bill-tabs,.appt-tabs,.form-switch){isolation:isolate;gap:0;padding:4px 14px 0 3px;border:0;border-bottom:1px solid #83a638;border-radius:0;background:transparent;overflow:visible;max-width:100%;flex-wrap:wrap;row-gap:5px}
.workspace :is(.filing-tabs,.bill-tabs,.appt-tabs,.form-switch) > :is(a,button){display:inline-flex;align-items:center;position:relative;isolation:isolate;z-index:1;justify-content:center;height:auto;min-height:30px;padding:3px 24px;margin:0 0 0 -5px;border:0;border-radius:19px 24px 0 0;background:none;color:#56604d;font-size:13px;font-weight:650;font-style:normal;line-height:1.5;gap:9px;box-shadow:none;text-decoration:none}
.workspace :is(.filing-tabs,.bill-tabs,.appt-tabs,.form-switch) > :is(a,button):first-child{margin-left:0}
.workspace :is(.filing-tabs,.bill-tabs,.appt-tabs,.form-switch) > :is(a,button)::before{content:"";position:absolute;inset:0;z-index:-1;border:1px solid #d0d5ca;border-bottom:0;border-radius:19px 24px 0 0;background:linear-gradient(#fafbf8 0%,#e4e7df 55%,#f3f5ef 100%);box-shadow:inset 0 3px 0 #ffffffa6;transform:skewX(16deg);transform-origin:bottom left}
.workspace :is(.filing-tabs,.bill-tabs,.appt-tabs,.form-switch) > :is(a,button):is(.active,.on,[aria-current=page],[aria-selected=true],[aria-pressed=true]){z-index:2;color:#29420b;background:none;border:0;box-shadow:none}
.workspace :is(.filing-tabs,.bill-tabs,.appt-tabs,.form-switch) > :is(a,button):is(.active,.on,[aria-current=page],[aria-selected=true],[aria-pressed=true])::before{top:-3px;border-color:#91ad4d;background:linear-gradient(#d7ed91 0%,#b9d76a 48%,#91b546 100%);box-shadow:inset 0 3px 0 #edf7c3,inset 0 0 0 1px #c6df7f}
.workspace :is(.filing-tabs,.bill-tabs,.appt-tabs,.form-switch) > :is(a,button):hover{background:none;color:#29420b}
.workspace :is(.filing-tabs,.bill-tabs,.appt-tabs,.form-switch) > :is(a,button):hover::before{filter:brightness(1.04)}
.workspace :is(.filing-tabs,.bill-tabs,.appt-tabs,.form-switch) > :is(a,button):focus-visible{outline:2px solid #456321;outline-offset:3px;z-index:3}
.workspace :is(.filing-tabs,.bill-tabs,.appt-tabs,.form-switch) > :is(a,button) :is(.count,.tab-count){display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:23px;height:22px;margin:0;padding:0 6px;border-radius:11px;background:#ffffff8c;color:inherit;font-size:11px;font-weight:700;line-height:1;letter-spacing:0;font-variant-numeric:tabular-nums}
.workspace .filing-tabs{margin-bottom:12px}
.workspace .filing-toolbar .filing-tabs{margin-bottom:0}
@media(max-width:480px){.workspace :is(.filing-tabs,.bill-tabs,.appt-tabs,.form-switch) > :is(a,button){min-width:0;padding:3px 12px;gap:6px;font-size:12px}}

/* One column-title font across application lists; printed claim forms retain their form typography. */
:root{--column-title-font:700 12px/1.5 system-ui,"Segoe UI",sans-serif;--column-title-color:#454b52}
/* Trash icons share a neutral gray, including dynamically added service rows. */
svg.trash-icon,svg.trash-icon path{color:#868e96 !important;stroke:#868e96 !important}
:is(button,a):hover svg.trash-icon,:is(button,a):hover svg.trash-icon path{color:#495057 !important;stroke:#495057 !important}
.workspace :is(.patient-table,.bills-table,.filing-table,.admin-table,.appt-table,.appt-history,.payments,.proc-table) > thead > tr > th,
.workspace :is(.setup-item-head.setup-cols,.setup-grid.setup-head,.rule-grid.setup-head,.staff-grid.staff-head,.payer-grid.payer-head,.admin-grid.head,.admin-row.admin-cols.head,.lines-head){
  font:var(--column-title-font);color:var(--column-title-color);letter-spacing:0;text-transform:none;
}
.workspace :is(thead,.setup-head,.staff-head,.payer-head,.setup-item-head,.admin-grid.head,.admin-cols.head,.lines-head) .sort-head{
  font:var(--column-title-font);color:var(--column-title-color);letter-spacing:0;text-transform:none;
}
/* Compact NF-3 error indicator beside the date; the explanation stays in its tooltip. */
.nf3-services tbody td:first-child:has(.nf3-error-icon){white-space:nowrap}
.nf3-services tbody td:first-child:has(.nf3-error-icon) input{display:inline-block;vertical-align:middle}
.nf3-paper .field-error.nf3-error-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;min-width:16px;margin:0 4px 0 0;padding:0;border:1px solid var(--warn-line);border-radius:50%;font:700 12px/1 system-ui,sans-serif;vertical-align:middle;cursor:help}
.nf3-paper .nf3-error-icon::before{content:none}
.nf3-paper .nf3-error-icon:focus-visible{outline:2px solid var(--warn-line);outline-offset:2px}

.nf3-paper .nf3-box:has(> .nf3-error-icon){display:grid;grid-template-columns:16px minmax(0,1fr);column-gap:4px;align-content:start;align-items:center}
.nf3-paper .nf3-box:has(> .nf3-error-icon) > .box-label{grid-column:1 / -1}
.nf3-paper .nf3-box > .nf3-error-icon{grid-column:1;grid-row:2;margin:0}
.nf3-paper .nf3-box:has(> .nf3-error-icon) input[data-real="injury_date"]{grid-column:2;grid-row:2;width:100%;min-width:0;margin:0;align-self:center}
 .encounter-workspace :is(.error,.ready-error).scrub-alert-message{display:flex;align-items:flex-start;gap:7px;padding:0;margin:6px 0;border:0;border-radius:0;background:transparent;font:500 12.5px/1.5 system-ui,sans-serif;white-space:pre-line}
.encounter-workspace :is(.error,.ready-error).scrub-alert-message::before{content:"!";display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;width:18px;height:18px;box-sizing:border-box;border:1px solid var(--warn-line);border-radius:50%;font:700 12px/1 system-ui,sans-serif}
.encounter-workspace .scrub-alert-message[hidden]{display:none}
.patient-banner.slim .bill-create-batch{display:inline-flex;margin:0}.patient-banner.slim .bill-create-batch .create-batch-btn{height:34px;min-height:34px;padding:0 6px}
.batch-state-icon{display:inline-flex;align-items:center;vertical-align:middle;color:#647672}.batch-state-icon.open{color:#126e61}.batch-state-icon.reopened{color:#a86b00}.batch-state-icon.processing{color:#7048e8}.batch-state-icon.accepted{color:#16813f}.batch-state-icon.printed{color:#126e61}.batch-state-icon.uploaded{color:#1c7ed6}.batch-state-icon.emptied{color:#868e96}
/* Batch status and filing actions share icon size and row alignment. */
.filing-table.batches > tbody > tr > td{height:36px;vertical-align:middle}
.filing-table.batches .batch-state-icon{width:30px;height:30px;justify-content:center}
.filing-table.batches .batch-state-icon svg{display:block;width:18px;height:18px}
.filing-table.batches td.filing-act form{display:inline-flex;vertical-align:middle}
.filing-table.batches td.filing-act .icon-btn{width:30px;height:30px;min-height:30px;padding:0;vertical-align:middle}

/* Keep box 10b's state beside YES/NO in both the bill and patient case forms. */
:is(.cms-top, .cms-case) .b10 .tick-line:has(> .place){
  display:grid !important;grid-template-columns:max-content max-content minmax(0,1fr);
  grid-template-rows:auto auto;gap:4px 10px;align-items:center;
}
:is(.cms-top, .cms-case) .b10 .tick-line:has(> .place) > span:first-child{grid-column:1 / 3;grid-row:1}
:is(.cms-top, .cms-case) .b10 .tick-line:has(> .place) > .tick-choice{grid-row:2}
:is(.cms-top, .cms-case) .b10 .tick-line:has(> .place) > .place{
  grid-column:3;grid-row:1 / 3;justify-self:end;align-self:stretch;
  flex-direction:column;align-items:flex-start;justify-content:space-between;margin:0;gap:4px;
}

/* NF-3 boxes 6 and 7: keep dates aligned below labels of different lengths. */
.nf3-paper .nf3-date-row .nf3-box > .box-label{flex:1 0 auto}

/* Compact labels above the NF-3 insurer, claims representative and provider addresses. */
.nf3-paper .nf3-row.two.nf3-top .nf3-box.nf3-framed > .box-label{font-size:10px}

.owner-attachment{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.owner-attachment form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.owner-attachment input[type=file]{max-width:100%;width:auto}
.owner-attachment small{color:var(--muted)}

#nf3-box17 .box-label .help-link{display:inline-flex;vertical-align:middle;width:16px;height:16px;min-width:16px;margin-left:4px;font:600 11px/1 Arial,sans-serif;text-transform:none}

#nf3-box17 .box-label .help-link{margin:0 4px 0 0;padding:0;border:0;background:none}

/* NF-3 header: reserve room for full policy/claim numbers and the accident date. */
.nf3-paper .nf3-row.head.nf3-top{grid-template-columns:82px minmax(110px,1fr) minmax(132px,1.1fr) 142px minmax(148px,1.2fr)}
.nf3-paper .nf3-row.head.nf3-top .nf3-box{padding-left:5px;padding-right:5px}
.nf3-paper .nf3-row.head.nf3-top input[type=date]{max-width:none}
@media(max-width:780px){.nf3-paper .nf3-row.head.nf3-top{grid-template-columns:1fr}}

/* NF-3 disability dates: give FROM/THROUGH room without crossing into box 13. */
.nf3-paper .nf3-row.two:has(.nf3-dateline){grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
.nf3-paper .nf3-row.two:has(.nf3-dateline) .nf3-answer{padding-left:0;gap:6px 10px;flex-wrap:wrap}
.nf3-paper .nf3-row.two:has(.nf3-dateline) .qual{align-items:center}
.nf3-paper .nf3-row.two:has(.nf3-dateline) .box-label{min-height:2.6em}
@media(max-width:780px){.nf3-paper .nf3-row.two:has(.nf3-dateline){grid-template-columns:1fr}}

/* NF-3 service rows: reserve compact widths for dates, codes and amounts; descriptions use the rest. */
.nf3-paper .nf3-services{table-layout:fixed;min-width:660px}
.nf3-services .nf3-col-date{width:130px}
.nf3-services .nf3-col-place{width:76px}
.nf3-services .nf3-col-code{width:84px}
.nf3-services .nf3-col-charge{width:72px}
.nf3-services .nf3-col-remove{width:0}
.nf3-paper .nf3-services :is(th,td){padding-left:4px;padding-right:4px}
.nf3-paper .nf3-services td.code{gap:3px}
.nf3-paper .nf3-services td.code input:first-child{flex:0 0 48px;min-width:0;width:48px;padding-left:3px;padding-right:3px;box-sizing:border-box}
.nf3-paper .nf3-services td.code input:last-child{flex:0 0 24px;min-width:0;width:24px;padding-left:3px;padding-right:3px;box-sizing:border-box}
.nf3-paper .nf3-services td.num input{width:100%;min-width:0}
.nf3-paper .nf3-services tbody td:nth-child(3) input{min-width:0;width:100%}

/* NF-3 box 18: question and answers share a line, wrapping only on small screens. */
.nf3-paper .nf3-box.nf3-care-inline{flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px 14px}
.nf3-paper .nf3-care-inline > .box-label{margin:0}
.nf3-paper .nf3-care-inline > .nf3-answer{padding:0;margin:0;flex-wrap:nowrap}

/* NF-3 authorization questions follow the PDF: aligned answer columns, box before YES/NO. */
.nf3-paper .nf3-q{display:grid;grid-template-columns:minmax(0,1fr) 240px;column-gap:20px;align-items:center}
.nf3-paper .nf3-q > .nf3-answer{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0;margin:0}
.nf3-paper .nf3-q .tick-choice{flex-direction:row-reverse;justify-content:flex-end;gap:16px;white-space:nowrap}
.nf3-paper .nf3-q .tick-choice input{flex-shrink:0;margin:0}
@media(max-width:520px){.nf3-paper .nf3-q{grid-template-columns:1fr}.nf3-paper .nf3-q > .nf3-answer{width:240px;justify-self:end}}

/* NF-3 box 14: answer choices at left; recommendation caption above its field at right. */
.nf3-paper .nf3-rehab > .nf3-answer{display:grid;grid-template-columns:max-content max-content minmax(0,1fr);align-items:start;gap:8px 24px}
.nf3-paper .nf3-rehab .nf3-recommendation{display:flex;flex-direction:column;gap:5px;margin:0 0 0 24px;min-width:0;font:400 11.5px/1.3 Arial,Helvetica,sans-serif;color:var(--muted)}
.nf3-paper .nf3-rehab .nf3-recommendation input{flex:none;width:100%;min-width:0}
@media(max-width:520px){.nf3-paper .nf3-rehab > .nf3-answer{grid-template-columns:max-content max-content}.nf3-paper .nf3-rehab .nf3-recommendation{grid-column:1 / -1;margin-left:0}}

/* Keep service-row delete actions in the outside gutter, freeing their column for descriptions. */
.nf3-paper .nf3-table-wrap:has(> .nf3-services){overflow:visible}
.nf3-paper .nf3-services thead .rm{width:0;padding:0;border:0}
.nf3-paper .nf3-services tbody tr{position:relative}
.nf3-paper .nf3-services tbody td.rm{position:absolute;right:-26px;top:50%;transform:translateY(-50%);width:24px;padding:0;border:0;background:transparent}
.nf3-paper .nf3-services td.rm button{padding:0 4px}
@media(max-width:780px){
  .nf3-paper .nf3-table-wrap:has(> .nf3-services){overflow-x:auto;padding-right:28px}
}
@media print{.nf3-paper .nf3-services tbody td.rm{display:none}}

.nf3-services tfoot .nf3-add-line.add-icon{min-height:34px;padding:4px 8px;line-height:normal}

/* NF-3 screen-only editing cues; printed forms retain their original appearance. */
@media screen {
  .nf3-paper{--editable-field-bg:#f3f9f5}
  .nf3-paper :is(input,select,textarea):focus{--editable-field-bg:#fff}
}

@media screen {
  .nf3-paper .nf3-answer input:is([name="nf3.8.describe"],[name="nf3.9.explain"],[name="nf3.11.describe"],[name="nf3.14.describe"])::placeholder{
    font:italic 400 11.5px Arial,Helvetica,sans-serif;
    color:#667085 !important;-webkit-text-fill-color:#667085 !important;
    -webkit-text-stroke:0;text-transform:none;letter-spacing:0;opacity:1;
  }
}

/* NF-3 signatures: captions start directly below their lines, even when the provider caption wraps. */
.nf3-paper .nf3-sign{grid-template-columns:max-content minmax(0,1fr) max-content 166px 104px;column-gap:8px;row-gap:2px;margin-left:14px}
.nf3-paper .nf3-sign .lbl{align-self:center;white-space:nowrap}
.nf3-paper .nf3-sign .line{min-width:0;min-height:20px;line-height:20px}
.nf3-paper .nf3-sign .cap{align-self:start;line-height:1.25;padding:0 2px 8px}
.nf3-paper .nf3-sign .date{text-align:center}
@media(max-width:520px){.nf3-paper .nf3-sign{grid-template-columns:max-content minmax(0,1fr) max-content minmax(0,1fr) 80px;margin-left:0;column-gap:4px}}

/* Provider signature caption spans the SIGNED and signature columns, beside DATE. */
.nf3-paper .nf3-sign .nf3-provider-sign-caption{grid-column:3 / 5;white-space:nowrap;text-align:right;padding-right:0}

/* NF-3 values match the PDF's regular Courier 10 pt; labels and placeholders retain their own typography. */
.nf3-paper :is(input:not([type=hidden]):not([type=radio]):not([type=checkbox]):not([type=file]):not([type=button]):not([type=submit]), select, textarea, .v, .nf3-sign .line, .nf3-lines tbody td, .shared-total):not(.mdy-real){
  font-family:"Courier New",Courier,monospace !important;font-size:10pt !important;font-weight:400 !important;
  letter-spacing:0;font-variant-numeric:normal;-webkit-text-stroke:0;
}

/* Locked NF-3 answers must remain visible: their X is a background image. */
.form-paper .nf3-paper .nf3-answer input[type=radio]{border:1px solid #333 !important;background:white center/14px 14px no-repeat !important;opacity:1}
.form-paper .nf3-paper .nf3-answer input[type=radio]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l10 10M12 2L2 12' stroke='%23111' stroke-width='1.8'/%3E%3C/svg%3E") !important}

/* Take a bill out of its batch: neutral gray folder and outward arrow. */
.take-out.icon-btn svg{color:#868e96}
.take-out.icon-btn svg path{stroke:currentColor}

.batch-bill-warning{display:inline-flex;vertical-align:middle;margin-left:6px;color:#a66a00}
.batch-bill-warning:focus-visible{outline:2px solid var(--teal);outline-offset:2px}

/* Batch bill values and row actions share a centered baseline and header insets. */
.filing-table.batch-bills > thead > tr > th{padding-left:10px;padding-right:10px}
.filing-table.batch-bills > tbody > tr > td{height:36px;vertical-align:middle}
.filing-table.batch-bills .batch-bill-action{width:40px;padding:3px 5px;text-align:center}
.filing-table.batch-bills .batch-bill-action form{display:inline-flex;margin:0;vertical-align:middle}
.filing-table.batch-bills .take-out{width:30px;height:30px;min-height:30px;padding:0;vertical-align:middle}
.filing-table.batch-bills .take-out svg{display:block}

.history-table > tbody > tr > td{vertical-align:top}
.history-table .history-files a,.history-table td > small{display:block}
.history-table .history-files{white-space:normal;min-width:160px}
.history-bills summary{cursor:pointer}
.history-bills ul{margin:6px 0 0;padding-left:16px;text-align:left;white-space:nowrap}
.filing-history .list-tools form{margin:0}

/* Bill and batch lists are organized by the next filing task. */
.bill-stage-tabs{margin-top:4px}
.bills-toolbar .work-batch-action{margin-left:auto;flex-shrink:0}
.bill-search{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.bill-search label{display:flex;align-items:center;gap:5px;white-space:nowrap}
.bill-search input[type=search]{width:180px}
.bill-search input[type=date]{width:135px}
.bill-search input{min-height:26px;padding:3px 6px}
.filing-batches .list-tools{margin-bottom:10px}
.filing-batches .list-tools label{display:flex;flex-direction:row;align-items:center;gap:8px}
.filing-batches .list-tools select{height:26px;min-height:26px;padding:3px 24px 3px 8px}

/* Bills by next step (2026-10-27): each stage tab shows its count and total; empty stages quiet. */
.bill-stage-tabs{flex-wrap:wrap}
.bill-stage-tabs a .tab-total{margin-left:6px;font-size:12px;font-weight:500;color:var(--muted)}
.bill-stage-tabs a.none:not(.active){opacity:.6}
.bills-toolbar .bill-form-pick{margin:0}
.bills-toolbar .bill-form-pick select{height:28px;min-height:28px;padding:3px 24px 3px 8px}
/* NF-3 box 15 (2026-10-27): one line per service: place and ZIP on one line, code and modifier side by side, middle-aligned. */
.nf3-services .nf3-col-date{width:140px}
.nf3-services .nf3-col-place{width:118px}
.nf3-services .nf3-col-code{width:80px}
.nf3-services td.place{white-space:nowrap;font-size:12px;padding-right:10px}
.nf3-paper .nf3-services td input[type=date]{width:100%;min-width:0;box-sizing:border-box}
.nf3-paper .nf3-services td.code{display:table-cell}
.nf3-services td.code .code-pair{display:flex;gap:3px;align-items:center}
.nf3-services td.desc input{text-transform:uppercase}
.nf3-top .nf3-box input{width:100%;box-sizing:border-box}
/* NF-3 signature line (2026-10-27): the values sit on one baseline at the bottom, under a one- or two-line label. */
.nf3-sigline .nf3-box{display:flex;flex-direction:column}
.nf3-sigline .nf3-box .v{margin-top:auto}
.nf3-sigline .nf3-box:nth-child(3) .v{align-self:center}   /* the TIN prints centered in its box */
/* Billing organizations, Clinicians, Locations (2026-10-27): bill counts by form (open bills included) and last date of service. */
.provider-grid{grid-template-columns:104px minmax(0,1.6fr) 110px minmax(0,1.6fr) 56px 56px 92px}
.org-grid{grid-template-columns:72px minmax(0,1.6fr) minmax(0,1fr) 110px 56px 56px 92px}
.location-grid{grid-template-columns:36px minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.7fr) 90px 110px 56px 56px 92px}
@media (max-width:860px){.provider-grid{grid-template-columns:104px minmax(0,1fr)}}
@media (max-width:1100px){.provider-grid{grid-template-columns:104px minmax(0,1.4fr) 100px minmax(0,1fr) 46px 46px 82px}
  .org-grid{grid-template-columns:72px minmax(0,1.6fr) minmax(0,1fr) 100px 46px 46px 82px}
  .location-grid{grid-template-columns:36px minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1.4fr) 70px 100px 46px 46px 82px}}
.setup-cols .stat,.setup-item-head .stat,.setup-grid .stat{white-space:nowrap}
@media (max-width:860px){.setup-cols .stat,.setup-item-head .stat,.setup-grid .stat{display:none}}
@media (max-width:860px){.location-grid{grid-template-columns:36px minmax(0,1fr) minmax(0,1fr)}.org-grid{grid-template-columns:72px minmax(0,1fr)}.provider-grid{grid-template-columns:104px minmax(0,1fr)}}
/* Bills (2026-10-27): one icon and color per step, at a glance. */
.stage-badge{display:block}
.stage-badge.stage-fix{color:#c8401f}   /* a red-orange warning triangle (2026-10-27) */
.stage-badge.stage-sign{color:#16813f}
.stage-badge.stage-clinician{color:#7d8783}
.stage-badge.stage-ready{color:#16813f}
.stage-badge.stage-batched{color:#495057}   /* no color: the folder and its arrow in plain dark gray (2026-10-27) */
.stage-badge.stage-filed{color:#16813f}
/* Reports (2026-10-27): the top-bar icon, the page's tools and the NF-3 deadline colors. */
svg.reports-icon{color:#0b7285}svg.reports-icon .bar1{stroke:#f59f00}svg.reports-icon .bar2{stroke:#1c7ed6}svg.reports-icon .bar3{stroke:#2f9e44}
.reports-page .report-tools{display:flex;align-items:center;gap:14px;justify-content:flex-end;margin:0 0 10px}
.reports-page .report-tools form{margin:0 auto 0 0}.reports-page .report-tools select{width:auto}
.reports-page .report-table tr.soon .days-left{color:#c76b00;font-weight:700}
.reports-page .report-table tr.late .days-left{color:#c92a2a;font-weight:700}
.help-status-table tbody th[scope=row]{font-weight:400}   /* the Status names in plain weight (2026-10-27) */
.stage-badge.stage-fix path:first-of-type{stroke:#868e96}   /* the triangle gray, the ! keeps the red-orange (2026-10-27) */
/* Bills toolbar (2026-10-27): the form pick list in the list font, as tall as its neighbors. */
.bills-in-progress :is(select[name=billForm], .bill-search input[type=search], .bill-search input[type=date]){font-size:13px;min-height:30px;height:30px;padding:3px 8px;margin:0;width:auto}
.bill-stage-tabs a:not(#zz1){font-family:system-ui,"Segoe UI",sans-serif;font-size:12px;font-weight:700;letter-spacing:0;text-transform:none}   /* tab labels in the column titles' font (2026-10-27) */
/* Bills toolbar (2026-10-27): form, patient search and its button on one row; the clinician pick at the right. */
.bills-in-progress .bills-toolbar:not(#zz1){display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
.bills-in-progress .bills-toolbar .bill-search:not(#zz1){display:flex;align-items:center;gap:8px;margin:0;flex-wrap:wrap}
.bills-in-progress .bills-toolbar .bill-search label{display:flex;align-items:center;gap:6px;margin:0;font-size:12.5px}
.bills-in-progress .bills-toolbar .clinician-pick{margin-left:auto}
.bills-in-progress .bills-toolbar .small-btn{height:30px;min-height:30px}
.bills-table th.dup-head{width:34px;text-align:center}.bills-table th.dup-head svg{width:18px;height:18px;vertical-align:middle}.bills-table td.dup-cell{width:34px;text-align:center}   /* Duplicate first, under the Bills icon (2026-10-27) */
.bills-table th.dup-head .head-add-bill{min-height:0;min-width:0;height:26px;width:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:#51cf66}   /* New bill, above the Duplicate buttons (2026-10-27) */
/* Bills, first column (2026-10-27): New bill above and each Duplicate below share one center line. */
.bills-table :is(th.dup-head, td.dup-cell):not(#zz1){width:40px;padding:0 6px !important;text-align:center !important}
.bills-table td.dup-cell .duplicate-open:not(#zz1){min-height:0;min-width:0;height:26px;width:28px;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center}
/* Patients (billers, 2026-10-27): the row starts with the bill count (to the patient's bills, where New bill is), or the
   add-bill icon when there are none; same slot, same width. */
.patient-table td.name .name-line a.bills-count.row-start{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;margin:0 2px 0 -3px;border-radius:11px;background:#e9f3ee;color:var(--teal);font-weight:700;font-size:12px;text-decoration:none}
.patient-table td.name .name-line a.bills-count.row-start:hover{background:var(--teal);color:white}
.stage-badge.stage-fix{width:17px;height:17px;margin:1px 0}   /* the triangle fills its box: drawn smaller so it reads the same size as the other icons (2026-10-27) */
:root{--list-link:#2a6cb3}   /* list links in the blue of the old clinic lists (2026-10-27), was teal */
/* List links blue everywhere (2026-10-27): the lists that painted their names teal follow --list-link; inactive or closed stay gray. */
:is(.patient-table, .payer-row, .admin-row, .admin-cols, .admin-grid, .list-line, .case-line) :is(.name-toggle, a.bill-link, a.patient-link):not(#zz1):not(#zz2){color:var(--list-link)}
:is(.list-line.inactive, .case-line.closed, tr.inactive, .payer-row.inactive) .name-toggle:not(#zz1):not(#zz2):not(#zz3){color:#8f9894}
.patient-table td.payer a:not(#zz1):not(#zz2){color:var(--list-link)}   /* the payer link in the list blue too (2026-10-27) */
/* Patients bill count (2026-10-27, trying): a small outlined tag in the Bills green, not the gray-green pill. */
.patient-table td.name .name-line a.bills-count.row-start:not(#zz1){background:white;border:1.5px solid #51cf66;color:#2b8a3e;border-radius:4px;height:19px;min-width:22px;padding:0 5px;font-size:11.5px;font-weight:700;box-sizing:border-box}
.patient-table td.name .name-line a.bills-count.row-start:not(#zz1):hover{background:#51cf66;color:white}
.patient-table td.name .name-line :is(a.bills-count.row-start, .add-bill.row-start):not(#zz1):not(#zz2){width:24px;min-width:24px;margin:0 4px 0 -3px;padding:0;justify-content:center}   /* tag and icon one width: names line up (2026-10-27) */
.patient-table td.name :is(.name-toggle, a):not(.bills-count):not(#zz1):not(#zz2){font-weight:510}   /* patient names weight 520, between regular and semi-bold (2026-10-27) */
/* List links weight 510 everywhere (2026-10-27, user's pick between regular and semi-bold). */
:root{--list-link-weight:510}
:is(.patient-table, .payer-row, .admin-row, .admin-cols, .admin-grid, .list-line, .case-line, .bills-table) :is(.name-toggle, a.bill-link, a.patient-link, td.payer a):not(.bills-count):not(#zz1):not(#zz2){font-weight:var(--list-link-weight)}
/* Account menu (2026-10-27): the name not bold; one line per clinician, aligned after the icon. */
.menu .menu-who > strong{font-weight:500}
.menu .menu-clinicians:not(#zz1){display:flex;align-items:flex-start;gap:6px}
.menu .menu-clinician-list{display:flex;flex-direction:column;gap:1px}
.menu .menu-clinician{display:block;white-space:nowrap}
.menu .menu-role:not(#zz1){font-weight:500}   /* the role chip not bold either (2026-10-27) */
.menu .menu-roles{display:none}   /* a one-role login: its role is the icon on the account button (tooltip) and the tab title (2026-10-27) */
.user-menu .menu-who:not(#zz1){border-bottom:0;padding-bottom:2px}   /* no line under the name (2026-10-27) */
/* Clinician icons (2026-10-27): the Clinician role's blue, not the teal-green that read like the Bills green. */
:is(.clinician-head-icon, .menu-clinicians .menu-icon, .bills-table th.icon-head[title="Clinician"], .icon-head[title="Clinicians"] svg, .topbar nav a[href$="/setup/providers"] .nav-icon, .menu a[href$="/setup/providers"] .menu-icon):not(#zz1){color:#2f6db5}
/* Front desk (2026-10-27): ruby (orange read as an alert), apart from the clinician blue; its appointment icons follow. */
:is(.role-icon.desk, .appt-icon, .patient-table th .appt-icon, .appt-history .hist-icon.cal, .patient-table td.name .name-line .book-toggle.expander):not(#zz1):not(#zz2){color:#b3164f !important}
:is(button[aria-label="New appointment"], button[aria-label="New appointment"] svg):not(#zz1){color:#b3164f !important}
.appt-history th.hist-icon.clin:not(#zz1){color:#2f6db5}
.patient-table td.name .name-line .book-toggle.expander:not(#zz1):not(#zz2):not(#zz3){color:#d9799b !important}
.patient-table td.name .name-line .book-toggle.expander .add-plus:not(#zz1):not(#zz2):not(#zz3){stroke:#8e1b4a !important;color:#8e1b4a !important}
/* Appointment actions follow the Front desk ruby (2026-10-27). */
.check-in-btn:not(#zz1):not(#zz2){background:#b3164f !important;border-color:#b3164f !important;color:#fff !important}
.check-in-btn:hover:not(#zz1):not(#zz2){background:#8e1b4a !important;border-color:#8e1b4a !important}
:is(.cancel-appt, .no-show):not(#zz1):not(#zz2){color:#b3164f !important}
:is(.cancel-appt, .no-show):hover:not(#zz1):not(#zz2){color:#8e1b4a !important}
/* Front desk Patients (2026-10-27): the appointment count starts the row, like the biller's bill count; ruby tag. */
.patient-table td.name .appt-count.row-start:not(#zz1):not(#zz2):not(#zz3){flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;min-width:24px;height:19px;margin:0 4px 0 -3px;padding:0;background:white;border:1.5px solid #d9799b;border-radius:4px;color:#8e1b4a;font-size:11.5px;font-weight:var(--list-link-weight,510);box-sizing:border-box;cursor:pointer}
.patient-table td.name .appt-count.row-start:hover:not(#zz1):not(#zz2):not(#zz3){background:#b3164f;border-color:#b3164f;color:white}
.patient-table td.name .appt-count.row-start[aria-expanded="true"]:not(#zz1):not(#zz2):not(#zz3){background:#b3164f;border-color:#b3164f;color:white}
.appt-history .hist-status.booked:not(#zz1):not(#zz2){color:#d9799b !important}
.appt-history .hist-status.booked svg:not(#zz1):not(#zz2){width:15px;height:15px}
/* M chip (2026-10-27): navy, so it no longer reads as a link. */
.sex-chip.male:not(#zz1):not(#zz2){color:#1f3a68 !important}
.sex-chip:not(#zz1):not(#zz2){font-weight:400 !important}
/* Bill toolbar (2026-10-27): edit, PDF and pre-scrub on the left; the sign-off in the middle; duplicate, the patient card
   and the trash can on the right. The two auto margins around the sign-off split the free space evenly. */
.patient-banner.slim > .signoffs{margin-left:auto;margin-right:auto}
.patient-banner.slim > .duplicate-open{margin-left:0}
.patient-banner.slim .delete-bill{margin:0 0 0 4px}

/* Patient's SSN (2026-10-27): a plain line under the red CMS-1500 boxes on the Patients page only; it is not a form box
   (it prints in 1a on workers' comp). Never on a bill. */
.patient-ssn{margin:4px 0 10px}.patient-ssn label{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:600}
.patient-ssn input{width:150px;margin:0;min-height:30px;padding:3px 8px}

/* The bill page shows the CMS-1500 as it prints (2026-10-27): on workers' comp box 1a shows the SSN (as "SSN on file",
   never the number) and box 11 the case's policy; box 31 shows its date; values in Courier New, regular, black. */
.cms-top .b1a:has(> .case-print.is-employment) > :not(.case-print):not(.box-label),
.cms-top .b11:has(> .case-employer.is-employment) > :not(.case-employer):not(.box-label){display:none !important}
.cms-top .b11 .case-employer.is-employment{display:block}.cms-top .b11 .case-employer.is-employment input{display:block;width:100%}
.cms-top .case-print.is-employment{display:block}
.cms-bottom .b31 .b31-date{text-align:right}
.form-paper :is(.cms-top, .cms-bottom, .cms21, .cms24) :is(input:not([type=radio]):not([type=checkbox]), select, .value),
.form-paper .cms24{font-family:"Courier New",Courier,monospace;font-weight:400;color:#111}

.diagnoses-page.wcb-page .wcb-grid{grid-template-columns:150px minmax(0,1fr)}   /* WCB Insurers (2026-10-28) */
.cms-top .b11c:has(> .case-employer.is-employment) > :not(.case-employer):not(.box-label){display:none !important}
.cms-top .b11c .case-employer.is-employment{display:block}.cms-top .b11c .case-employer.is-employment input{display:block;width:100%}   /* 11c on workers' comp: optional employer's name (2026-10-28) */
/* Payers rows (2026-10-28): the same height as the Patients rows. */
.payer-grid.payer-row:not(.macro-grid):not(#zz1):not(#zz2){min-height:31px;padding-top:2px;padding-bottom:2px;line-height:1.35}
.payer-row:not(.macro-grid) .row-icon .icon-btn:not(#zz1):not(#zz2){height:24px;width:24px}
.payer-row:not(.macro-grid) .name-toggle:not(#zz1):not(#zz2){min-height:0;padding-top:0;padding-bottom:0}
/* Close / Cancel × (2026-10-28): gray everywhere; it closes, it does not act. */
:is(button, a):is([aria-label="Close"], [aria-label="Cancel"]):not(#zz1):not(#zz2):not(#zz3){color:#868e96 !important;background:transparent !important;border-color:transparent !important}
:is(button, a):is([aria-label="Close"], [aria-label="Cancel"]):is(:hover, :focus-visible):not(#zz1):not(#zz2):not(#zz3){color:#495057 !important;background:#f1f3f5 !important}
:is(button, a):is([aria-label="Close"], [aria-label="Cancel"]) svg:not(#zz1):not(#zz2){color:inherit !important;stroke:currentColor}
/* Pre-scrub warnings (2026-10-28): listed, yellow, not blocking. */
.edi-problems li.scrub-warning a:not(#zz1){color:#8a6d00 !important}
.edi-problems li.scrub-warning::marker{color:#c99a00}
input.wc-ssn.scrub-warn:not(#zz1):not(#zz2){background:#fff7cc !important;border-color:#f0c64a !important}
input.wc-ssn.scrub-warn::placeholder{color:#212529;opacity:1}
input.wc-policy.scrub-warn:not(#zz1):not(#zz2){background:#fff7cc !important;border-color:#f0c64a !important}
/* WC 11d (2026-10-28): YES and NO shown, neither ticked, not clickable, as the form prints it. */
.b11d.wc-blank input:not(#zz1){pointer-events:none}
/* Employers merge (2026-10-28): one line, label + pick list + Merge, boxes the height of the edit boxes. */
form.employer-merge:not(#zz1):not(#zz2){display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
form.employer-merge label:not(#zz1):not(#zz2){display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap;font-weight:400}
form.employer-merge select:not(#zz1):not(#zz2){height:30px;min-height:0;padding:2px 26px 2px 8px;width:auto;min-width:220px;max-width:340px;margin:0}
form.employer-merge button:not(#zz1):not(#zz2){height:30px;min-height:0;padding:0 12px;margin:0}
/* Biller sign-off done (2026-10-28): a flat stamp, not a button; taking it back is the small undo arrow beside it. */
.sticky-note.signed-stamp:not(#zz1):not(#zz2){cursor:default;box-shadow:none !important;transform:none !important;pointer-events:none}
.biller-signoff .signoff-undo:not(#zz1):not(#zz2){color:#868e96;margin-left:4px;vertical-align:middle}
.biller-signoff .signoff-undo:hover:not(#zz1):not(#zz2){color:#495057}
.biller-signoff:not(#zz1){display:inline-flex;align-items:center}
/* A signed-off (locked) bill shows no pre-scrub marks on its boxes: nothing can be typed there. */
.form-paper.signed-off :is(.scrub-mark, .scrub-warn):not(#zz1):not(#zz2){background:transparent !important;border-color:transparent !important;outline:none !important;box-shadow:none !important}
.form-paper.signed-off .scrub-mark::before, .form-paper.signed-off .scrub-mark::after, .form-paper.signed-off .scrub-badge{display:none !important}
form.signoff-far-right:not(#zz1):not(#zz2){margin-left:auto;order:99}
form.signoff-far-right .signoff-undo:not(#zz1):not(#zz2){width:30px;height:30px;color:#868e96}
/* Read-only bill: "Same as WC carrier" only when it is so, as plain text. */
label.same-carrier.read-note input:not(#zz1){display:none}
.box.payer .payer-wcb-code:not(#zz1){display:block;font-family:"Courier New",monospace;font-size:10pt;color:#212529;-webkit-text-stroke:.3px;padding-left:4px}
.box.payer .payer-wcb-code:not(#zz1):not(#zz2){padding-left:8px;margin-top:-2px;line-height:1.2}
/* Red-form print (2026-10-28): a plain gray icon, no box. */
a.print-red.icon-link:not(#zz1):not(#zz2){color:#868e96 !important;background:transparent !important;border:0 !important;box-shadow:none !important}
a.print-red.icon-link:hover:not(#zz1):not(#zz2){color:#c92a2a !important}
/* Bills toolbar (2026-10-28): forms, search ... the batch folder icon in the middle ... the clinician filter at the end. */
.bills-toolbar:not(#zz1){display:flex;align-items:center;gap:8px}
.bills-toolbar > form.create-batch:not(#zz1):not(#zz2){order:5;margin:0 auto}
.bills-toolbar > form.clinician-pick:not(#zz1):not(#zz2){order:9;margin-left:0}
.bills-toolbar .batch-icon-btn:not(#zz1):not(#zz2){color:#495057;width:32px;height:32px;padding:0}
.bills-toolbar .batch-icon-btn .t2{color:#2f9e44;stroke:#2f9e44}
/* Bill rows: PDF and red-form print before Duplicate. */
td.dup-cell:not(#zz1):not(#zz2){white-space:nowrap}
td.dup-cell .row-pdf, td.dup-cell .row-print{display:inline-flex;align-items:center;vertical-align:middle;margin-right:6px}
td.dup-cell .row-print:not(#zz1):not(#zz2){color:#868e96}
td.dup-cell .row-print:hover:not(#zz1):not(#zz2){color:#c92a2a}
.bills-table :is(th.dup-head, td.dup-cell):not(#zz1):not(#zz2):not(#zz3){width:96px;min-width:96px;text-align:left !important;overflow:visible}
.bills-table td.dup-cell:not(#zz1):not(#zz2):not(#zz3){vertical-align:middle}
.bills-table td.dup-cell:not(#zz1):not(#zz2):not(#zz3) > *{vertical-align:middle;margin-top:0;margin-bottom:0}
.bills-table .form-short{color:#000}
.bills-table td.dup-cell.row-action:not(#zz1):not(#zz2):not(#zz3){display:table-cell !important}
.bills-table td .form-short:not(#zz1):not(#zz2):not(#zz3){color:#000 !important;-webkit-text-fill-color:#000}
.bills-table td .form-short:not(#zz1):not(#zz2):not(#zz3):not(#zz4){color:#96655f !important;-webkit-text-fill-color:#96655f}
.scrub-dialog .edi-problems a.scrub-name-link{color:var(--teal);text-decoration:underline}   /* the payer link in a pre-scrub message (2026-10-28) */
.bills-toolbar .batch-icon-btn:not(#zz1):not(#zz2):not(#zz3){color:#7048e8}
.bills-toolbar .batch-icon-btn svg path:not(.t2){stroke-width:1.4}
.bills-toolbar .batch-icon-btn svg .t2:not(#zz1){stroke:#51cf66}
.bills-toolbar .batch-icon-btn:hover:not(#zz1):not(#zz2){background:#efeafc}
/* PDF icon app-wide (2026-10-28): white page, gray outline, blue PDF; overrides the older green fill. */
svg.pdf-icon path:first-of-type:not(#zz1){fill:#fff;stroke:#868e96}
svg.pdf-icon path:nth-of-type(2):not(#zz1){fill:#e9ecef;stroke:#868e96}
.bills-table td .form-short.nf:not(#zz1):not(#zz2):not(#zz3):not(#zz4){color:#4a6fa5 !important;-webkit-text-fill-color:#4a6fa5}
.filing-table td .form-short:not(#zz1):not(#zz2){color:#96655f}
.filing-table td .form-short.nf:not(#zz1):not(#zz2){color:#4a6fa5}
/* Printer icons app-wide (2026-10-28): gray, red on hover. */
:is(.print-btn, a.print-red, .print-link):not(#zz1):not(#zz2):not(#zz3){color:#868e96 !important;background:transparent !important;border-color:transparent !important;box-shadow:none !important}
:is(.print-btn, a.print-red, .print-link):hover:not(#zz1):not(#zz2):not(#zz3){color:#c92a2a !important}
.reopen-btn:not(#zz1):not(#zz2){color:#868e96}
.reopen-btn:hover:not(#zz1):not(#zz2){color:#495057;background:#f1f3f5}
/* Printer hover app-wide (2026-10-28): green, not red. */
:is(.print-btn, a.print-red, .print-link, td.dup-cell .row-print):hover:not(#zz1):not(#zz2):not(#zz3):not(#zz4){color:#2b8a3e !important}
.table-sort-head{cursor:pointer;user-select:none;white-space:nowrap}
.table-sort-head .arrow{display:inline-block;width:0;height:0;margin-left:5px;vertical-align:middle;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #adb5bd;opacity:.7}
.table-sort-head[aria-sort="ascending"] .arrow{border-top:0;border-bottom:5px solid #495057;opacity:1}
.table-sort-head[aria-sort="descending"] .arrow{border-top-color:#495057;opacity:1}
/* Filing tables (2026-10-28): links in the list link blue, like the other lists. */
.filing-table td a:not(.icon-btn):not(.icon-link):not(#zz1):not(#zz2):not(#zz3){color:#2a6cb3 !important;font-weight:510;text-decoration:none}
.filing-table td a:not(.icon-btn):not(.icon-link):hover:not(#zz1):not(#zz2):not(#zz3){text-decoration:underline}
.table-sort-head .arrow.before{margin-left:0;margin-right:5px}
.stage-badge.stage-batched:not(#zz1):not(#zz2){color:#868e96}
.stage-badge.stage-batched:not(#zz1):not(#zz2) svg *{stroke:currentColor}
/* Bill status icons (2026-10-28): one size; filed gray like batched. */
svg.stage-badge:not(#zz1):not(#zz2):not(#zz3){width:18px !important;height:18px !important}
.stage-badge.stage-filed:not(#zz1):not(#zz2){color:#868e96 !important}
.stage-badge.stage-filed:not(#zz1):not(#zz2) *{stroke:currentColor}
td.dup-cell svg.pdf-icon:not(#zz1):not(#zz2):not(#zz3){width:16.4px !important;height:20px !important;overflow:visible}
td.dup-cell .duplicate-open:not(#zz1):not(#zz2){margin-right:6px !important}
/* Number columns app-wide (2026-10-28): the sort arrow hangs right of the title, outside it, so the title's last letter sits over the last digit. */
th.num a.sort-head:not(#zz1):not(#zz2){position:relative}
th.num a.sort-head .arrow:not(#zz1):not(#zz2){position:absolute;left:100%;top:50%;transform:translateY(-50%);margin:0 0 0 4px}
table:has(th.num a.sort-head) :is(th, td).num:not(#zz1):not(#zz2){padding-right:22px !important}
/* Patients Sex column (2026-10-28): centered, title and M/F. */
.patient-table th.sex-head:not(#zz1):not(#zz2){text-align:center !important}
.patient-table td:has(> .sex-chip):not(#zz1):not(#zz2), .patient-table tbody td:nth-child(3):not(#zz1):not(#zz2){text-align:center !important}
.patient-table th.sex-head a.sort-head:not(#zz1):not(#zz2){position:relative;display:inline-block}
.patient-table th.sex-head a.sort-head .arrow:not(#zz1):not(#zz2){position:absolute;left:100%;top:50%;transform:translateY(-50%);margin:0 0 0 4px}
.patient-table th.sex-head:not(#zz1):not(#zz2):not(#zz3), .patient-table tbody td:nth-child(3):not(#zz1):not(#zz2):not(#zz3){padding-left:20px !important;padding-right:20px !important}
/* Patients (2026-10-28): titles start where their column's values start. */
.patient-table :is(th.phone-head, td.phone, th.payer-head, td.payer):not(#zz1):not(#zz2):not(#zz3){padding-left:10px !important;text-align:left !important}
.patient-table th.phone-head a.sort-head:not(#zz1):not(#zz2), .patient-table th.payer-head a.sort-head:not(#zz1):not(#zz2){margin-left:0 !important;padding-left:0 !important;justify-content:flex-start}
/* Patients titles on one line (2026-10-28). */
.patient-table thead th:not(#zz1):not(#zz2){vertical-align:middle !important}
.patient-table thead th a.sort-head:not(#zz1):not(#zz2):not(#zz3){display:inline-flex !important;align-items:center;line-height:1.2;vertical-align:middle}
/* Phone columns app-wide (2026-10-28): centered, title and numbers. */
:is(th.phone-head, td.phone, .phone-head, .payer-phone, .employer-phone, .ref-phone):not(#zz1):not(#zz2):not(#zz3):not(#zz4){text-align:center !important;justify-content:center;justify-self:center}
th.phone-head a.sort-head:not(#zz1):not(#zz2):not(#zz3):not(#zz4){position:relative;justify-content:center}
th.phone-head a.sort-head .arrow:not(#zz1):not(#zz2):not(#zz3){position:absolute;left:100%;top:50%;transform:translateY(-50%);margin:0 0 0 4px}
/* Read-only empty dates (2026-10-28): a locked (signed-off) bill's empty date boxes print blank, no mm / dd / yyyy hint,
   even under the signed-off ink color; keyed on the box's own empty value, so it holds without the script's mark. */
input[type=date]:disabled:is(:not([value]),[value=""]):not(#zz1):not(#zz2):not(#zz3):not(#zz4),
input[type=date]:disabled:is(:not([value]),[value=""]):not(#zz1):not(#zz2):not(#zz3):not(#zz4)::-webkit-datetime-edit,
input[type=date]:disabled:is(:not([value]),[value=""]):not(#zz1):not(#zz2):not(#zz3):not(#zz4)::-webkit-datetime-edit-fields-wrapper,
input[type=date]:disabled:is(:not([value]),[value=""]):not(#zz1):not(#zz2):not(#zz3):not(#zz4)::-webkit-datetime-edit-text,
input[type=date]:disabled:is(:not([value]),[value=""]):not(#zz1):not(#zz2):not(#zz3):not(#zz4)::-webkit-datetime-edit-month-field,
input[type=date]:disabled:is(:not([value]),[value=""]):not(#zz1):not(#zz2):not(#zz3):not(#zz4)::-webkit-datetime-edit-day-field,
input[type=date]:disabled:is(:not([value]),[value=""]):not(#zz1):not(#zz2):not(#zz3):not(#zz4)::-webkit-datetime-edit-year-field{color:transparent !important;-webkit-text-fill-color:transparent !important}
/* (2026-10-28) The rule above is one selector list: a browser that doesn't know a -webkit- date part (Firefox) drops the
   whole list. The box itself gets its own rule, also outranking the signed-off ink, for the empty-marked box too. */
:is(input[type=date].empty-date:not(:focus), input[type=date]:disabled:is(:not([value]),[value=""])):not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){color:transparent !important;-webkit-text-fill-color:transparent !important}
/* Bills list (2026-10-28): #Services and Amount align right, titles with their numbers. */
.bills-table :is(th.num, td.num):not(#zz1):not(#zz2):not(#zz3):not(#zz4){text-align:right !important;padding-right:22px !important}
/* Filing tabs (2026-10-28): the Bills tabs' font. */
.filing-tabs a:not(#zz1){font-family:system-ui,"Segoe UI",sans-serif;font-size:12px;font-weight:700;letter-spacing:0;text-transform:none}
/* NF-3 signature line (2026-10-28): each value sits on one line at the bottom of its box, level with the others. */
.nf3-paper .nf3-sigline .nf3-box:not(#zz1){display:flex;flex-direction:column}
.nf3-paper .nf3-sigline .nf3-box > .v:not(#zz1):not(#zz2){margin-top:auto;white-space:nowrap}
/* NF-3 on the page (2026-10-28): values in the PDF's font, Courier New Bold 10 pt; titles stay as printed on the form. */
.nf3-paper :is(.v, .nf3-dx-list, input:not([type=radio]):not([type=checkbox]), select, textarea, td):not(.box-label):not(#zz1):not(#zz2):not(#zz3):not(#zz4){font-family:"Courier New",Courier,monospace !important;font-weight:700 !important;font-size:10pt !important}
/* Diagnoses and services only (2026-10-28): no form shows, so the PDF button prints the form the bill files on. */
body.nf3-print:not(#zz1) .patient-banner .print-cms.cms-only{display:none}
body.nf3-print:not(#zz1) .patient-banner .print-cms.nf3-only{display:inline-flex}
/* Super-admin accounts (2026-10-28): the tier pick reads like the payment pick beside it, dark ink, same font. */
.admin-grid.practices select.tier-pick:not(#zz1):not(#zz2){color:var(--ink);-webkit-text-fill-color:var(--ink);font:inherit;font-size:13px;font-weight:500}
.admin-grid.practices select:is(.tier-pick, .pay-pick):not(#zz1):not(#zz2){font-family:inherit;font-size:13px;font-weight:500}
.cms-case .case-b23{grid-column:-2 / -1}   /* 23 on the case (2026-10-28): its own row, right column, as on the form */
@media (max-width:760px){.cms-case .case-b23{grid-column:1 / -1}}
/* Box 10 (2026-10-28): YES and NO line up row under row; each choice takes the same width. */
.tick-line > .tick-choice:not(#zz1):not(#zz2){flex:0 0 72px;width:72px;margin:0;justify-content:flex-start}
:is(.cms-top, .cms-case) .b10 .tick-line:not(#zz1):not(#zz2){column-gap:0 !important}
:is(.cms-top, .cms-case) .b10 .tick-line:has(> .place):not(#zz1):not(#zz2){grid-template-columns:72px 72px minmax(0,1fr)}
.b1 .policy-type{display:flex;align-items:center;gap:6px;font-size:12px;margin-top:4px}.b1 .policy-type select{max-width:280px;min-height:26px;padding:1px 6px}   /* 2026-10-28 */
/* Column titles app-wide (2026-10-29): every list's titles in the Patients titles' font; form boxes (CMS-1500, NF-3) keep
   the printed form's. */
:is(table:not(.cms24):not(.nf3-services) > thead > tr > th, .admin-grid.head, .admin-grid.head > *, .admin-cols.head, .admin-cols.head > *, .tier-cols.head, .tier-cols.head > *, .lines-head, .lines-head > *, .head > .sort-head, th .sort-head):not(.form-paper *):not(.nf3-paper *):not(#zz1):not(#zz2):not(#zz3){font-family:system-ui,"Segoe UI",sans-serif !important;font-size:12px !important;font-weight:700 !important;letter-spacing:0 !important;text-transform:none !important;color:#454b52}
/* Accounts list header (2026-10-29): the tier and payment filters in the Patients status filter's font. */
:is(.admin-grid.head, .admin-cols.head) select:not(#zz1):not(#zz2):not(#zz3){font:400 12.5px system-ui,"Segoe UI",sans-serif !important;color:var(--ink);-webkit-text-fill-color:var(--ink)}
/* Payments: 835 remittances waiting to be posted. */
.remittances .panel-heading form{margin:0 0 0 auto}.remit-reasons{margin:0;padding-left:16px;font-size:12.5px}.remit-table td{vertical-align:top}
/* Save (2026-10-29): the colored floppy keeps its own colors; disabled reads faded. */
button.icon-btn:has(svg.floppy):disabled svg.floppy{opacity:.4}
/* Values only (2026-10-29): the printer drawn in its own colors; hover brightens it. */
a.print-red svg.printer-color:not(#zz1){transition:filter .15s}
a.print-red:hover svg.printer-color:not(#zz1){filter:brightness(1.08) drop-shadow(0 0 1px #2b8a3e)}
.print-btn svg.printer-color:not(#zz1){transition:filter .15s}
.print-btn:not(:disabled):hover svg.printer-color:not(#zz1){filter:brightness(1.08) drop-shadow(0 0 1px #2b8a3e)}
.print-btn:disabled svg.printer-color:not(#zz1){opacity:.4}
/* Code lists (2026-10-29): codes print in regular weight, like the rest of the row. */
.diagnoses-page .diagnosis-grid .code:not(#zz1):not(#zz2){font-weight:400 !important}
/* List heads (2026-10-29): the + add button sits level with the column title beside it. */
.payer-head .head-add:not(#zz1):not(#zz2){display:flex;align-items:center;gap:8px}
.payer-head .head-add > :is(button, span, a):not(#zz1):not(#zz2){margin-top:0;margin-bottom:0;align-self:center}
.payer-head .head-add > span:not(#zz1):not(#zz2){display:inline-flex;align-items:center}
/* (2026-10-29) The + add button sits in the first column, over the rows' inactivate buttons, centered on them. */
.payer-head .head-add-cell:not(#zz1){display:flex;align-items:center;justify-content:center;overflow:visible}
/* Address column title (2026-10-29): the Locations mailbox everywhere (blue box, orange flag, 22px), centered over its column;
   inside a sort link it keeps its own colors. */
:is(.payer-head, .setup-head) .icon-head.addr-head:not(#zz1):not(#zz2){display:flex;align-items:center;justify-content:center;justify-self:stretch;text-align:center;color:#1971c2}
:is(.payer-head, .setup-head) .icon-head.addr-head :is(a.sort-head, svg):not(#zz1):not(#zz2){color:#1971c2}
:is(.payer-head, .setup-head) .icon-head.addr-head svg:not(#zz1):not(#zz2){width:22px;height:22px}
:is(.payer-head, .setup-head) .icon-head.addr-head .mail-flag:not(#zz1):not(#zz2){stroke:#e8590c;fill:#e8590c}
.payer-head .icon-head.addr-head a.sort-head:not(#zz1):not(#zz2){position:relative;display:inline-flex;align-items:center}
.payer-head .icon-head.addr-head a.sort-head .arrow:not(#zz1):not(#zz2){position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:4px}
/* Patients (2026-10-29): Close case / Reopen sit in box 10, beside the case menu; the old spot under the form is gone. */
.case-slot{position:relative}
.case-slot > .box10-case-btn:not(#zz1){position:absolute;top:2px;right:2px;display:inline-flex;align-items:center;color:#7a8580;padding:2px 4px;min-height:0;text-decoration:none}
.case-slot > .close-case.box10-case-btn:hover{color:#b02a5b}
.case-slot > .close-case.box10-case-btn svg{width:30px;height:30px;overflow:visible}
.patient-panel :is(.case-form, .edit-actions, .actions) :is(button.close-case, button[form^="reopen-"]):not(#zz1):not(#zz2){display:none !important}
/* (2026-10-29) Patients: box 10 holds the case's Close case / Reopen; the copies under the form stay hidden. */
main:has(.case-slot > .box10-case-btn) :is(button.close-case, button[form^="reopen-"]):not(#zz1):not(#zz2):not(#zz3){display:none !important}
/* (2026-10-29) Box 10: the case menu leaves room for the Close/Reopen icon at the right (a long name shortens with …). */
.case-slot:has(> .box10-case-btn) > details.case-menu:not(#zz1){max-width:calc(100% - 40px);margin-left:0}
.case-slot:has(> .box10-case-btn) > details.case-menu > summary:not(#zz1){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.case-slot > .box10-case-btn:not(#zz1):not(#zz2){right:0;top:4px}
/* Close case box (2026-10-29): the description to keep on the closed case. */
.case-close-dialog .case-close-desc{display:flex;flex-direction:column;gap:4px;margin:10px 0 4px;font-size:13px;color:var(--muted);text-align:left}
.case-close-dialog .case-close-desc input{width:100%;min-width:300px;height:32px;font-size:14px;color:var(--ink)}
/* (2026-10-29) Box 10: Close/Reopen icon the size of the patients' inactivate icon (16px); the case menu takes the rest. */
.case-slot > .box10-case-btn:not(#zz1):not(#zz2):not(#zz3){top:6px;right:0;padding:2px;width:auto;height:auto}
.case-slot > .box10-case-btn svg:not(#zz1):not(#zz2):not(#zz3){width:16px !important;height:16px !important}
.case-slot:has(> .box10-case-btn) > details.case-menu:not(#zz1):not(#zz2){max-width:calc(100% - 24px)}
.case-slot:has(> .box10-case-btn) > details.case-menu > summary:not(#zz1):not(#zz2){padding-right:6px}
/* (2026-10-29) Box 10: one arrow (the right one); the case menu fills the box up to the lock. */
.case-slot details.case-menu:not(#zz1) > summary::before{content:none !important;display:none !important}
.case-slot details.case-menu > summary:not(#zz1):not(#zz2):not(#zz3){padding-right:26px;display:flex;width:100%;box-sizing:border-box}
.case-slot:has(> .box10-case-btn) > details.case-menu:not(#zz1):not(#zz2):not(#zz3){display:block;width:calc(100% - 24px);max-width:none}
/* Patients (2026-10-29): the patient's SSN sits in box 1a, under the insured's ID. */
.b1a .b1a-ssn:not(#zz1){display:block;margin-top:6px}
.b1a .b1a-ssn label:not(#zz1){display:flex;align-items:center;gap:8px;margin:0;font-size:12px;font-weight:600;color:var(--muted)}
.b1a .b1a-ssn input:not(#zz1){width:150px;flex:0 0 150px}
/* Patients box 1 / 1a (2026-10-29): the Policy type and SSN labels read as box titles (form's title color, regular
   Arial), apart from the data beside them. */
.cms-top :is(.policy-type, .b1a-ssn label):not(#zz1):not(#zz2){font:italic 600 12px system-ui,"Segoe UI",sans-serif !important;letter-spacing:0;text-transform:none;color:#7b8794 !important}
/* App fields that are not on the CMS-1500 (Policy type, SSN): gray italic labels, apart from the form's own titles; label and value share a baseline. */
.cms-top :is(.b1a-ssn label, :has(> .policy-type)):not(#zz1):not(#zz2){display:flex;align-items:baseline;gap:8px}
.cms-top .b1a-ssn label input:not(#zz1):not(#zz2){text-transform:none;font:400 15px "Courier New",Courier,monospace !important;color:var(--ink) !important}
.cms-top label.policy-type:not(#zz1):not(#zz2){display:flex;align-items:baseline;gap:8px}
.cms-top label.policy-type select:not(#zz1):not(#zz2){font-style:normal !important}

/* App-wide (was patient edit): editable boxes as on the NF-3 page — pale green fill, white on focus, 24px tall (2026-10-29) */
@media screen {
  :is(.form-paper, .cms-top, .cms-patient, .cms-case, .cms-edit, .cms-form, .cms-bottom, .cms-bill, .cms21, .cms24, .cms-bill-row, .cms-22-23, .party-cms-form, .org-cms, .patient-panel, .case-form, .case-cms-row) :is(input:not([type=hidden]):not([type=radio]):not([type=checkbox]):not([type=file]):not([type=button]):not([type=submit]), select):enabled:not([readonly]):not(.invalid):not(.field-error):not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){height:24px !important;min-height:24px !important;box-sizing:border-box !important;padding-top:0 !important;padding-bottom:0 !important}
  :root{--editable-field-bg:#f3f9f5}
  :is(input,select,textarea):focus{--editable-field-bg:#fff}
}
/* Box 10 case picklist in the value font, like the other boxes (2026-10-29) */
.case-slot details.case-menu :is(summary, a, button, li, span):not(.case-menu-arrow):not(#zz1):not(#zz2):not(#zz3){font:400 10pt "Courier New",Courier,monospace !important;color:#000 !important;-webkit-text-fill-color:#000;-webkit-text-stroke:.3px currentColor;letter-spacing:0}
.case-slot details.case-menu > summary:not(#zz1):not(#zz2):not(#zz3):not(#zz4){padding:0 28px 0 8px !important;height:24px;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.case-slot details.case-menu .case-menu-list a:not(#zz1):not(#zz2){padding:3px 10px;white-space:nowrap}
.case-slot details.case-menu .case-menu-list .case-new-open:not(#zz1):not(#zz2):not(#zz3):not(#zz4){font:600 13px system-ui,"Segoe UI",sans-serif !important;color:var(--teal) !important;-webkit-text-fill-color:var(--teal);-webkit-text-stroke:0}
/* Box 10 a little wider; left column gives the room (2026-10-29) */
@media (min-width:761px){
  .patient-table .cms-patient.cms-top{grid-template-columns:33.4fr 28.3fr 38.3fr}
  .patient-table .cms-case:not(.clinician-focus *){grid-template-columns:30.7fr 2.7fr 28.3fr 38.3fr}
}
/* Bill page case picklists as the Patients box 10 menu: value font, 24px (2026-10-29) */
:is(.case-slot-pick, .nf3-fix-pick) select[name=caseId]:not(#zz1):not(#zz2):not(#zz3):not(#zz4){font:400 10pt "Courier New",Courier,monospace !important;color:#000 !important;-webkit-text-fill-color:#000;-webkit-text-stroke:.3px currentColor;height:24px !important;min-height:24px !important;padding:0 24px 0 8px !important;box-sizing:border-box;width:100%;max-width:100%}
/* Case form: left column as wide as the right (2026-10-29) */
@media (min-width:761px){ .case-form .cms-case:has(> .b9a):not(#zz1){grid-template-columns:37fr 26fr 37fr} }
.proc-groups select.proc-group:not(#zz1):not(#zz2){width:420px !important;max-width:100% !important}   /* procedure macro box wider (2026-10-29) */
/* Procedure filter box as the macro box: 420px wide, 28px tall (2026-10-29) */
#add-services #token-field:not(#zz1){width:420px;max-width:100%;min-height:28px;padding:0 6px;box-sizing:border-box}
#add-services #procedure-search:not(#zz1):not(#zz2){min-height:0 !important;height:26px !important;padding:0 2px !important}

/* Entry view Add services as the full bill: "Procedure(s)" label shown, calendars always shown (2026-10-29) */


/* Entry view Add services: day icons at the right end of the macro line; "Services 5" on the Add line (2026-10-29) */
.add-services .proc-groups > .entry-modes:not(#zz1){display:flex;align-items:center;gap:4px;margin:0 0 0 8px;align-self:center}
.add-services .proc-groups > .entry-modes button:not(#zz1){height:28px;min-height:28px;width:32px;padding:0;display:inline-grid;place-items:center}
.add-services .add-row > h3:not(#zz1){margin:0;font-size:15px}
.add-services .add-row > #line-count:not(#zz1){margin:0}
.add-services .entry-modes > #close-add-services:not(#zz1):not(#zz2){position:static;display:inline-grid;place-items:center;align-self:center;top:auto;right:auto;transform:none;border:1px solid transparent;box-sizing:border-box;vertical-align:middle;height:28px;min-height:28px;width:28px;min-width:28px;padding:0;margin:0 0 0 4px;font-size:20px;line-height:1;color:var(--muted)}
/* × close icons app-wide: drawn centered (the text × sits low in its font) (2026-10-29) */
button:is([aria-label="Close"], [aria-label="Cancel"], .row-close, .close-x, .cancel-edit, .nf3-proc-close, #close-add-services):not(#zz1){font-size:0 !important;line-height:0 !important;display:inline-grid;place-items:center;vertical-align:middle}
button:is([aria-label="Close"], [aria-label="Cancel"], .row-close, .close-x, .cancel-edit, .nf3-proc-close, #close-add-services)::before{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l10 10M12 2L2 12' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l10 10M12 2L2 12' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}
.add-services .entry-modes > #close-add-services:not(#zz1):not(#zz2):not(#zz3){position:relative;top:3px}
/* Entry view: × at the right end of the Services / Add line (2026-10-29) */
.add-services .add-row > #close-add-services:not(#zz1):not(#zz2):not(#zz3){position:static;margin-left:auto;top:auto;right:auto;width:28px;min-width:28px;height:28px;min-height:28px;padding:0}
.add-services .entry-modes[hidden]:not(#zz1){display:none !important}
.add-services .add-row > #close-add-services:not(#zz1):not(#zz2):not(#zz3):not(#zz4){order:9}
.add-services .add-row:has(> #close-add-services) > #add-summary:not(#zz1){margin-right:auto}
.form-paper .add-services .picker > .add-row:not(#zz1){margin-right:0}
.add-services .add-row > h3.panel-title:not(#zz1){margin:0;font-size:15px}
.add-services .add-row > h3.panel-title:not(#zz1) ~ .picker-label{display:none}
.services-section:has(> .add-services:not([hidden])) .services-head > :is(h3, #line-count){display:none}   /* shown on the panel's Add line instead (2026-10-29) */
/* NF-3: one Add services, the shared panel (same as the bill's); the one-day tick picker is retired (2026-10-29) */
.nf3-paper .nf3-add-day, .nf3-procedures{display:none !important}
/* The shared Add services panel inside the NF-3 keeps its own look: checkboxes, app font, normal boxes (2026-10-29) */
.nf3-paper #add-services input[type=checkbox]:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){appearance:auto !important;-webkit-appearance:checkbox !important;display:inline-block !important;width:16px !important;height:16px !important;min-height:0 !important;margin:0 !important;padding:0 !important;border:0 !important;background:none !important;opacity:1 !important;visibility:visible !important;accent-color:#2563eb}
.nf3-paper #add-services :is(td, th, input:not([type=checkbox]), select):not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){font-family:system-ui,"Segoe UI",sans-serif !important;font-weight:inherit !important;-webkit-text-stroke:0 !important}
.nf3-paper #add-services td:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){font-size:13px !important;font-weight:400 !important}
.nf3-paper #add-services input[type=search]:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){border:0 !important;font-size:13px !important;font-weight:400 !important}
/* Add services Add line on every page (new bill too), not only inside the bill paper (2026-10-29) */
#add-services .picker > .add-row:not(#zz1){grid-area:auto;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;padding:0;border:0;background:none}
#add-services .add-row #add-summary:not(#zz1){order:1;flex-basis:auto;font-size:12.5px}
#add-services .add-row > .panel-count:not(#zz1){flex:none;width:auto}
.dx-groups select.dx-group:not(#zz1):not(#zz2){width:420px !important;max-width:100% !important}   /* as wide as the procedure macro box (2026-10-29) */
#payers .payer-grid:not(#zz1):not(#zz2){grid-template-columns:34px minmax(0,2.4fr) 120px 100px 130px minmax(0,1.6fr) 70px}   /* longer payer names (2026-10-29) */
#payers .payer-head a.sort-head[data-sort=wcb]:not(#zz1):not(#zz2){white-space:normal;line-height:1.15;text-align:center}   /* "WCB Carrier / Code" on two lines (2026-10-29) */
#payers .payer-grid:not(#zz1):not(#zz2):not(#zz3){grid-template-columns:34px minmax(0,2.6fr) 120px 100px 90px minmax(0,1.6fr) 70px}
#payers .payer-grid:not(#zz1):not(#zz2):not(#zz3):not(#zz4){grid-template-columns:34px minmax(0,1.5fr) 110px 95px 80px minmax(0,2fr) 64px;column-gap:10px}   /* tighter gaps (2026-10-29) */
#payers .payer-head .icon-head.addr-head:not(#zz1):not(#zz2):not(#zz3){display:flex !important;justify-content:center !important;justify-self:stretch !important;width:100%;text-align:center !important;padding:0}
#payers .payer-grid:not(#zz1):not(#zz2):not(#zz3):not(#zz4):not(#zz5){grid-template-columns:34px minmax(0,1.5fr) 110px 78px 76px minmax(0,2fr) 64px}   /* E-File ID snug (2026-10-29) */
/* Super-admin accounts: each tier its own text color, as the payment status (2026-10-30) */
.admin-grid.practices .tier-pick[data-tier=FREE]:not(#zz1):not(#zz2){color:#5f6b7a !important;-webkit-text-fill-color:#5f6b7a !important}
.admin-grid.practices .tier-pick[data-tier=PRO]:not(#zz1):not(#zz2){color:#1864ab !important;-webkit-text-fill-color:#1864ab !important}
.admin-grid.practices .tier-pick[data-tier=CUSTOM]:not(#zz1):not(#zz2){color:#7048e8 !important;-webkit-text-fill-color:#7048e8 !important}
.admin-grid.practices .tier-pick[data-tier=MAX5]:not(#zz1):not(#zz2){color:#0c8599 !important;-webkit-text-fill-color:#0c8599 !important}
.admin-grid.practices .tier-pick[data-tier=MAX20]:not(#zz1):not(#zz2){color:#2b8a3e !important;-webkit-text-fill-color:#2b8a3e !important}
.admin-grid.practices .tier-pick[data-tier=MAX50]:not(#zz1):not(#zz2){color:#d9480f !important;-webkit-text-fill-color:#d9480f !important}
/* Tier colors, one clearly different hue each (2026-10-30) */
.admin-grid.practices select.tier-pick[data-tier=FREE]:not(#zz1):not(#zz2):not(#zz3){color:#6b7280 !important;-webkit-text-fill-color:#6b7280 !important}
.admin-grid.practices select.tier-pick[data-tier=PRO]:not(#zz1):not(#zz2):not(#zz3){color:#1c7ed6 !important;-webkit-text-fill-color:#1c7ed6 !important}
.admin-grid.practices select.tier-pick[data-tier=MAX5]:not(#zz1):not(#zz2):not(#zz3){color:#e67700 !important;-webkit-text-fill-color:#e67700 !important}
.admin-grid.practices select.tier-pick[data-tier=MAX20]:not(#zz1):not(#zz2):not(#zz3){color:#2f9e44 !important;-webkit-text-fill-color:#2f9e44 !important}
.admin-grid.practices select.tier-pick[data-tier=MAX50]:not(#zz1):not(#zz2):not(#zz3){color:#c2255c !important;-webkit-text-fill-color:#c2255c !important}
.admin-grid.practices select.tier-pick[data-tier=CUSTOM]:not(#zz1):not(#zz2):not(#zz3){color:#7048e8 !important;-webkit-text-fill-color:#7048e8 !important}
.admin-grid.practices select.pay-pick[data-status=SUSPENDED]:not(#zz1):not(#zz2):not(#zz3){color:#e8590c !important;-webkit-text-fill-color:#e8590c !important}   /* orange, apart from red Closed (2026-10-30) */
.admin-grid.practices select:is(.tier-pick, .pay-pick):not(#zz1):not(#zz2):not(#zz3){font-weight:600 !important}   /* both columns semi-bold, so light tier colors read (2026-10-30) */
/* Tiers page (2026-10-30): tier names in their Accounts colors, semi-bold; rows as tall as on Patients */
.tier-cols:not(.head):not(#zz1){min-height:32px;padding:2px 6px;font-size:13px}
.tier-cols .tier-name:not(#zz1):not(#zz2){font-weight:600}
.tier-cols .inline-edit:not(#zz1):not(#zz2):not(#zz3){height:24px !important;min-height:24px !important;padding:0 6px !important;font-size:13px;font-weight:400 !important;color:var(--ink)}
.tier-cols .tier-name[data-tier=FREE]:not(#zz1){color:#6b7280}
.tier-cols .tier-name[data-tier=PRO]:not(#zz1){color:#1c7ed6}
.tier-cols .tier-name[data-tier=MAX5]:not(#zz1){color:#e67700}
.tier-cols .tier-name[data-tier=MAX20]:not(#zz1){color:#2f9e44}
.tier-cols .tier-name[data-tier=MAX50]:not(#zz1){color:#c2255c}
.tier-cols .tier-name[data-tier=CUSTOM]:not(#zz1){color:#7048e8}
/* App-wide (2026-10-30): a list's editable box reaches out by its inner padding, so the text in it lines up with the
   column header (and with plain text in the rows) instead of the box edge lining up. */
:is(.admin-row, .admin-grid, .admin-cols, .payer-row, .staff-row, .procedure-row, .tier-cols, td) > input.inline-edit:not([type=checkbox]):not([type=radio]):not(#zz1):not(#zz2){--box-inset:7px;margin-left:calc(-1 * var(--box-inset)) !important;margin-right:calc(-1 * var(--box-inset)) !important;width:calc(100% + 2 * var(--box-inset)) !important;max-width:none;padding-left:6px !important;padding-right:6px !important;box-sizing:border-box !important}
/* …and room between the boxes: the columns of a list with editable boxes sit further apart (header rows too, so they stay lined up) (2026-10-30) */
:is(.admin-row, .admin-cols, .tier-cols, .staff-row, .procedure-row):not(#zz1){column-gap:22px}
td:has(> input.inline-edit) + td:has(> input.inline-edit):not(#zz1){padding-left:16px}
.tier-cols.head:not(#zz1),.admin-row.head:not(#zz1){background:#edf2ee;border-bottom:1px solid #bdcbc1;min-height:32px;padding-top:4px;padding-bottom:4px}   /* column titles on a band, as every list (2026-10-30) */

/* An empty bill (no services yet, e.g. just started): hide PDF, biller sign-off and copy; pre-scrub stays to say what is missing */
body.bill-empty :is(.print-cms, form.biller-signoff, .duplicate-open):not(#zz1){display:none !important}
/* Entry view (?entry=): no PDF, pre-scrub, biller sign-off or copy; the biller signs off from the full bill */
body:has(.form-paper.clinician-focus) :is(.print-cms, .scrub-icon, form.biller-signoff, .duplicate-open):not(#zz1){display:none !important}
/* Patients table: the most recent payer, and every active policy on a click (2026-10-30). */
.patient-table td.payer .payer-more{display:inline-block;margin-left:6px;position:relative}
.patient-table td.payer .payer-more>summary{display:inline-block;min-height:0;cursor:pointer;list-style:none;font-size:12px;padding:0 6px;border:1px solid var(--line,#d6d3cf);border-radius:10px}
.patient-table td.payer .payer-more>summary::-webkit-details-marker{display:none}
.patient-table td.payer .payer-more>ul{position:absolute;right:0;z-index:5;margin:4px 0 0;padding:8px 12px;list-style:none;background:var(--panel,#fff);border:1px solid var(--line,#d6d3cf);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.12);white-space:nowrap}
.patient-table td.payer .payer-more li{padding:2px 0}
.patient-table td.payer .payer-kind{font-size:12px;opacity:.75}
.patient-table td.payer .payer-more .policy-off{display:inline;margin-left:6px}.patient-table td.payer .payer-more .policy-off button{min-height:0;padding:0 2px;vertical-align:middle}

/* Messages from BayViewSoft (pop-up) and the super-admin message box */
dialog.login-messages,dialog.message-dialog{border:1px solid #bdcbc1;border-radius:8px;padding:18px 20px;max-width:520px;width:90vw;box-shadow:0 10px 30px rgba(0,0,0,.25)}
dialog.login-messages::backdrop,dialog.message-dialog::backdrop{background:rgba(0,0,0,.3)}
dialog.login-messages h2{margin:0 0 12px;font-size:17px;color:#1f5f3a}
.login-message{margin:0;white-space:pre-wrap;color:#000}
.login-messages-ok,.message-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}
dialog.message-dialog h3{margin:0 0 2px;font-size:16px}
dialog.message-dialog textarea{width:100%;box-sizing:border-box;margin-top:8px;font:inherit;padding:6px 8px}
.message-open{position:relative}
.message-unread{position:absolute;top:-4px;right:-6px;background:#e8590c;color:#fff;border-radius:8px;font-size:10px;line-height:14px;min-width:14px;padding:0 3px;text-align:center}

/* Support ticket page and its top-bar link */
.support-link{display:inline-flex;align-items:center;color:#1f5f3a;margin-right:6px}
.support-panel{max-width:820px}
.support-form{display:grid;grid-template-columns:170px 1fr;gap:12px 14px;align-items:center}
.support-label{font-weight:600}
.support-how,.support-contact,.support-buttons{display:flex;gap:18px;align-items:center}
.support-contact input[name=contact]{width:320px}
.support-form textarea{width:100%;box-sizing:border-box;font:inherit;padding:6px 8px}

/* Patients: Files column (paperclip with count; the list opens below it) */
td.files{width:44px;text-align:center;position:relative}
.patient-files summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:2px;color:#1f5f3a}
.patient-files summary::-webkit-details-marker{display:none}
.files-count{font-size:12px;font-weight:600}
.patient-files-panel{position:absolute;right:0;z-index:20;background:#fff;border:1px solid #bdcbc1;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.15);padding:8px 10px;min-width:260px;text-align:left}
.patient-files-panel ul{list-style:none;margin:0 0 6px;padding:0}
.patient-files-panel li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 0}
.patient-files-panel li a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.patient-file-pick{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:#1f5f3a}
.patient-file-pick input{display:none}
th.files-head{text-align:center}
/* Files column like Bills: a count chip when there are files (opens the list), else a paperclip that attaches one */
.patient-files summary.files-count-chip:not(#zz1){display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1.5px solid #51cf66;color:#2b8a3e;border-radius:4px;height:19px;min-width:22px;padding:0 5px;font-size:11.5px;font-weight:700;box-sizing:border-box}
.patient-files summary.files-count-chip:hover{background:#2b8a3e;color:#fff}
.patient-files summary.files-count-chip::before,.patient-files summary.files-count-chip::after{content:none !important;display:none !important}
.patient-file-attach{display:inline-flex;align-items:center;cursor:pointer;color:#1f5f3a}
.patient-file-attach input{display:none}
/* Patients: the policies menu shows only +N (no fold-out arrow) */
.payer-more > summary::before,.payer-more > summary::after{content:none !important;display:none !important}
/* The +N policies list drops below the cell: the payer cell must not clip it while open */
.patient-table td.payer:has(> .payer-more[open]):not(#zz1):not(#zz2){overflow:visible !important}
.patient-table td.payer .payer-more>ul:not(#zz1){z-index:30;left:0;right:auto}
.patient-table td.payer .payer-more li.policy-inactive :is(a,span.payer-kind,.payer-employer){color:#868e96}
/* Files column must not make rows taller: compact chip and paperclip */
.patient-table td.files:not(#zz1){padding-top:0;padding-bottom:0;line-height:1;vertical-align:middle}
.patient-table td.files .patient-files:not(#zz1){display:inline-block;margin:0}
.patient-table td.files summary.files-count-chip:not(#zz1):not(#zz2){height:19px !important;min-height:0 !important;max-height:19px;line-height:16px;padding:0 5px !important;margin:0}
.patient-table td.files .patient-file-add:not(#zz1){display:inline;margin:0}
.patient-table td.files .patient-file-attach:not(#zz1):not(#zz2){min-height:0 !important;height:20px;width:20px;padding:0 !important;justify-content:center}
/* The hidden file box inside the paperclip kept its app-wide box height: take it out of the layout entirely */
.patient-table td.files input[type=file]:not(#zz1):not(#zz2):not(#zz3){display:none !important;height:0 !important;min-height:0 !important;padding:0 !important;margin:0 !important;border:0 !important}
.patient-table td.files .patient-file-attach:not(#zz1):not(#zz2){color:#868e96;vertical-align:middle}
.patient-table td.files .patient-file-attach:hover{color:#1f5f3a}
/* Files cell content floats over the cell, so it can never change the row height */
.patient-table td.files:not(#zz1):not(#zz2){position:relative;padding:0 !important;height:auto}
.patient-table td.files > :is(details, form):not(#zz1):not(#zz2){position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);margin:0 !important;display:block}
.patient-table td.files > details[open]:not(#zz1):not(#zz2){z-index:25}
/* Paperclip: a 20px box with the icon centered, so translate(-50%) centers it exactly */
.patient-table td.files > form.patient-file-add:not(#zz1):not(#zz2):not(#zz3){display:flex;height:20px;line-height:0}
.patient-table td.files .patient-file-attach:not(#zz1):not(#zz2):not(#zz3){display:flex;align-items:center;justify-content:center;height:20px;width:20px;line-height:0}
.patient-table td.files .patient-file-attach svg{display:block}
.help-toc a.support-link{display:inline-flex;align-items:center;gap:5px;margin-right:0}
.support-meet{margin-top:16px}
.help-toc a.support-link:not(#zz1){color:#7048e8;padding-left:12px;padding-right:12px}.help-toc a.support-link:hover{color:#fff;background:#7048e8}
.help-toc a.support-link:hover:not(#zz1):not(#zz2){background:#f3f0ff !important;color:#5f3dc4 !important;border-color:#b197fc}.help-toc a.support-link svg{stroke:currentColor}
/* Policies: lock = inactivate, open lock = reactivate; the main policy's lock shows when the row is hovered */
.patient-table .policy-lock,.patient-table .policy-unlock{color:#868e96}
.patient-table .policy-lock:hover{color:#c92a2a}
.patient-table .policy-unlock:hover{color:#2b8a3e}
.patient-table td.payer .main-policy-off:not(#zz1){display:inline;margin-left:4px;visibility:hidden}
.patient-table tr:hover td.payer .main-policy-off:not(#zz1),.patient-table td.payer .main-policy-off:focus-within{visibility:visible}
.patient-table td.payer .main-policy-off button{min-height:0;padding:0 2px;vertical-align:middle}

/* Bill toolbar: attachments as a count chip (opens the list) or a paperclip that attaches, as on Patients */
details.bill-files{position:relative;display:inline-flex;align-items:center;margin:0 4px}
details.bill-files > summary{list-style:none;cursor:pointer}
details.bill-files > summary::-webkit-details-marker{display:none}
details.bill-files > summary.files-count-chip:not(#zz1){display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1.5px solid #51cf66;color:#2b8a3e;border-radius:4px;height:19px;min-width:22px;padding:0 5px;font-size:11.5px;font-weight:700;box-sizing:border-box}
details.bill-files > summary.files-count-chip::before,details.bill-files > summary.files-count-chip::after{content:none !important;display:none !important}
.bill-files-panel{position:absolute;top:26px;left:0;z-index:40;background:#fff;border:1px solid #bdcbc1;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.15);padding:10px 12px;min-width:340px;text-align:left}
.bill-files-panel h4{margin:0 0 6px;font-size:13px}
.bill-files-panel h4 + *{margin-top:0}
.bill-files-panel .attachment-list{margin:0 0 8px;padding:0;list-style:none}
.bill-files-panel .attachment-list li{display:flex;gap:8px;align-items:center;padding:2px 0}
.bill-file-add{display:inline;margin:0 0 8px}
.bill-file-pick{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:#1f5f3a}
.bill-file-pick input[type=file]:not(#zz1):not(#zz2){display:none !important}
.bill-file-only:not(#zz1){color:#868e96;width:26px;height:26px;justify-content:center}
.bill-file-only:hover{color:#1f5f3a}
/* Toolbar attachments sit in line with PDF and pre-scrub */
details.bill-files:not(#zz1),form.bill-file-add:not(#zz1){display:inline-flex;align-items:center;vertical-align:middle;margin:0 2px;height:32px}
.bill-file-only:not(#zz1):not(#zz2){display:inline-flex;align-items:center;height:32px}
.bill-file-only svg{display:block}
/* Paperclip/attachment chip centered on the toolbar line like the buttons beside it */
details.bill-files:not(#zz1):not(#zz2),form.bill-file-add:not(#zz1):not(#zz2){align-self:center;margin-top:0 !important;margin-bottom:0 !important;vertical-align:middle;position:relative;top:0}
.bill-file-only:not(#zz1):not(#zz2):not(#zz3){width:36px;height:36px;margin:0}
details.bill-files > summary.files-count-chip:not(#zz1):not(#zz2):not(#zz3){height:19px !important;min-height:0 !important;max-height:19px !important;align-self:center;line-height:16px;padding:0 5px !important;margin:0 !important}
/* Bills list: Files column (attachment count chip, or a paperclip that attaches) */
.bills-table td.files:not(#zz1){position:relative;width:44px;padding:0 !important}
.bills-table td.files > :is(a,form):not(#zz1):not(#zz2){position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);margin:0 !important}
.bills-table a.files-count-chip:not(#zz1){display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1.5px solid #51cf66;color:#2b8a3e;border-radius:4px;height:19px;min-width:22px;padding:0 5px;font-size:11.5px;font-weight:700;box-sizing:border-box;text-decoration:none}
.bills-table a.files-count-chip:hover{background:#2b8a3e;color:#fff}
.bills-table .patient-file-attach:not(#zz1){display:flex;align-items:center;justify-content:center;width:20px;height:20px;cursor:pointer;color:#868e96}
.bills-table .patient-file-attach:hover{color:#1f5f3a}
.bills-table .patient-file-attach input[type=file]:not(#zz1):not(#zz2):not(#zz3){display:none !important}
.bills-table th.files-head{text-align:center}
/* Bills list Files cell: plain middle alignment (no floating), same as the other cells */
.bills-table td.files:not(#zz1):not(#zz2){position:static;vertical-align:middle !important;text-align:center;padding:0 6px !important;line-height:0}
.bills-table td.files > :is(a,form):not(#zz1):not(#zz2):not(#zz3){position:static;transform:none;display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;height:20px;margin:0 !important}
.bills-table td.files .patient-file-attach svg{display:block}
:is(.bills-table,.patient-table) td.files label.patient-file-attach:not(#zz1):not(#zz2):not(#zz3){margin:0 !important;padding:0}
.sticky-note.signoff-next:not(#zz1){margin-left:8px}
@media(min-width:761px){.rule-grid:not(#zz1){grid-template-columns:minmax(0,.75fr) minmax(0,1.5fr) minmax(0,1.05fr) 36px}}
/* Billing, + (2026-10-31): the new organization form is the add row itself; no second box around it, flush with the filter and list. */
#add-org.add-row:not(#zz1){padding:0;margin:4px 0 10px;border:0;background:none}
#add-org > #new-org-party:not(#zz1){margin:0}
/* The filter searches the existing organizations: hidden while the new organization form is open. */
#billing-orgs:has(> #add-org:not([hidden])) > .list-tools .setup-filter{display:none}
/* Clinicians: the filter searches the existing clinicians; hidden while the new clinician form is open. */
#provider-list:has(#add-provider:not([hidden])) > .list-tools .setup-filter{display:none}
/* Box 31: last, first, middle initial and credential on one line (2026-10-31). */
.cms-edit .b31 .parts:not(#zz1){flex-wrap:nowrap}.cms-edit .b31 .parts input:not(#zz1){flex:1 1 0;min-width:0}
.cms-edit .b31 .parts .mi:not(#zz1){flex:0 0 34px}.cms-edit .b31 .parts .cred:not(#zz1){flex:0 0 58px}
/* Name part hints (Last, First, MI, Cred): light gray, not mistaken for a value. */
.party-cms-form input::placeholder,.cms-edit input::placeholder,.parts input::placeholder{color:#c3c9ce !important;-webkit-text-fill-color:#c3c9ce !important;opacity:1;font-family:system-ui,sans-serif !important;font-weight:400;text-transform:none;-webkit-text-stroke:0}
/* NF-3 tab: WCB rating code and specialty boxes look like Title and License beside them (2026-10-31). */
.nf3-td input:is([name=wcbRating],[name=specialty]):not(#zz1){min-height:28px;padding:2px 7px;border:1px solid #d5ddd8;border-radius:4px;background:#f7f9f8;font-family:ui-monospace,Consolas,monospace;font-size:13px;font-weight:600;max-width:220px}
.nf3-td input:is([name=wcbRating],[name=specialty]):not(#zz1):focus{border-color:var(--teal);background:white;outline:none}
/* NF-3 signature row: three columns, so the 4-column grid's every-4th-cell rule must not drop the signature cell's line. */
.nf3-sign-grid.nf3-wcb-grid > *:not(#zz1){border-right:1px solid #333}.nf3-sign-grid.nf3-wcb-grid > :nth-child(3n):not(#zz1){border-right:0}
/* A code box's own suggestions (NF-3 WCB rating code), under the box. */
.code-suggest-host{position:relative}
.code-suggest{position:absolute;z-index:30;left:6px;top:calc(100% - 4px);min-width:260px;max-height:260px;overflow:auto;margin:0;padding:4px 0;list-style:none;background:white;border:1px solid #d5ddd8;border-radius:8px;box-shadow:0 6px 18px #0002;font-size:13px}
.code-suggest li{padding:5px 12px;cursor:pointer;white-space:nowrap}
.code-suggest li:hover,.code-suggest li.active{background:#e6f2ee}
.code-suggest li{display:flex;gap:10px}.code-suggest li b{flex:0 0 72px;font-family:ui-monospace,Consolas,monospace}.code-suggest li span{color:#868e96;font-size:12px}
/* Setup forms: one Save for all the boxes (2026-10-31); asleep until a box changes. */
.party-save-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:6px}
.party-save-bar .party-save:disabled{opacity:.35;cursor:default}
/* The tab bar carries the open tab's Save button at its right end. */
.form-switch .party-save-bar{margin:0 0 0 auto;align-self:center}
.form-switch .party-save-bar[hidden]{display:none}
.form-switch{display:flex;align-items:flex-end}
/* New clinician: the save button on the Taxonomy line (the form's only line under the boxes), at its right end. */
#add-provider details.not-printed + .edit-actions:not(#zz1){margin-top:-38px;margin-left:auto;width:max-content;position:relative}
/* Locations: the filter searches the existing locations; hidden while the new location form is open. */
#location-list:has(#add-location:not([hidden])) > .list-tools .setup-filter{display:none}
/* Organizations, NF-3 tab (2026-10-31): laid out with the clinician tab's classes (.nf3-clinician, .nf3-16 row label,
   .nf3-sign-grid), so it shares that look - values in the clinician tab's Courier, and the older ruled .org-17 box
   rules give way to the framed box the clinician's .nf3-17 draws. */
.org-forms .org-nf3 input.party-field:not(#zz1),.org-forms .org-nf3 .filing-owners input:not(#zz1){font:700 13px "Courier New",monospace;color:#111}
.org-forms .org-nf3 .nf3-provider input.party-field{width:100%;margin-top:3px}
.org-forms .org-nf3 .nf3-provider .parts{display:flex;gap:6px;margin-top:3px}
.org-forms .org-nf3 .nf3-provider .parts input{flex:1 1 0;min-width:0;margin:0}
.org-forms .org-nf3 .nf3-provider .parts input.st{flex:0 0 3.5em}
.org-forms .org-nf3 .nf3-provider .parts input.zip{flex:0 0 7em}
.org-forms .org-nf3 .org-17:not(#zz1){margin:10px 0 0;padding:6px 8px;border:1px solid #333}
.org-forms .org-nf3 .org-17 .box-label{display:block}
.org-forms .org-nf3 .org-17 .filing-owners{margin:4px 0}
/* Box 17's owners field is not a party-field, so the shaded editable box (ONE RULE, 2026-10-25) is given to it here. */
.org-forms .org-nf3 .org-17 .filing-owners input:enabled:not(#zz1):not(#zz2){width:100%;min-height:30px;padding:2px 6px;border:1px solid #ced4da;border-radius:3px;background:var(--editable-field-bg,#f3f9f5)}
.org-forms .org-nf3 .org-17 .filing-owners input:enabled:not(#zz1):not(#zz2):hover{border-color:#adb5bd}
.org-forms .org-nf3 .org-17 .filing-owners input:enabled:not(#zz1):not(#zz2):focus{border-color:var(--teal);background:#fff;outline:none}
/* The owner list attaches with the paperclip the Bills and Patients lists use; picking a file uploads it. */
.org-forms .org-nf3 .owner-attachment{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}
.org-forms .org-nf3 .owner-attachment form{display:inline-flex;margin:0}
.org-forms .org-nf3 .owner-attachment .patient-file-attach:not(#zz1){width:20px;height:20px;justify-content:center;color:#868e96}
.org-forms .org-nf3 .owner-attachment .patient-file-attach:hover{color:#1f5f3a}
.org-forms .org-nf3 .owner-attachment .patient-file-attach input[type=file]:not(#zz1):not(#zz2):not(#zz3){display:none !important}
/* One line, paperclip first: then the view / remove links, then the note (2026-10-31). */
.org-forms .org-nf3 .owner-attachment:not(#zz1){flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;text-align:left;margin-top:4px}
.org-forms .org-nf3 .owner-attachment > form:has(.patient-file-attach){order:-1}
.org-forms .org-nf3 .owner-attachment small:not(#zz1){flex:0 1 auto;margin:0;text-align:left}
/* Organizations, CMS-1500 tab (2026-10-31): 27 and 12·13 sit under the boxes, outside .org-cms, so they take the CMS
   box-label type (red Arial, number in bold) and its red-square ✕ checkbox here. */
.org-forms .filing-flags label:not(#zz1){font:400 10.5px/1.2 Arial,Helvetica,sans-serif;color:var(--cms-label-red, #e0352c);text-transform:uppercase;letter-spacing:0}
.org-forms .filing-flags label strong{font-weight:700}
.org-forms .filing-flags input[type=checkbox]:not(#zz1):not(#zz2){-webkit-appearance:none;appearance:none;width:14px;height:14px;min-height:0;margin:0;padding:0;border:1px solid var(--cms-label-red, #e0352c);border-radius:0;background:white;display:inline-grid;place-content:center;cursor:pointer}
.org-forms .filing-flags input[type=checkbox]::before{content:"";font:700 11px/1 system-ui,sans-serif;color:#000}
.org-forms .filing-flags input[type=checkbox]:checked::before{content:"\2715"}
.org-forms .filing-flags input[type=checkbox]:disabled{cursor:default;opacity:1}
/* Procedures (2026-10-31): a line is read-only until its pencil, left of the inactivate icon, is clicked. */
.procedures-page .procedure-row .row-icon{display:flex;align-items:center;gap:2px}
.procedures-page .procedure-row input.inline-edit[readonly]{cursor:default}
.procedures-page .procedure-row.editing .procedure-edit{color:var(--teal)}
/* Procedures header (2026-10-31): the + sits in the icon column above the pencils, and the header takes the rows' 22px
   column gap, so each title starts over its values. */
.procedures-page .payer-head.procedure-grid:not(#zz1){column-gap:22px}
.procedures-page .payer-head.procedure-grid > .head-add{justify-content:flex-start}
/* Charge and Units titles end where their numbers end: the arrow goes before the title (2026-10-31). */
.procedures-page .payer-head.procedure-grid > span.num:not(#zz1){padding-right:0}
.procedures-page .payer-head.procedure-grid > span.num .sort-head{flex-direction:row-reverse;margin-right:-6px}
/* Diagnosis macros (2026-10-31): no Name box (the name is edited on the macro's line; a new macro starts without one),
   the + adds the codes typed, and the codes sit as chips on the code box's line, which is narrower. */
.macros-page .macro-edit .macro-name:not(#zz1){display:none}
#diagnosis-macros .macro-edit:not([hidden]):not(#zz1){flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 8px}
#diagnosis-macros .macro-items:not(#zz1){flex-direction:row;flex-wrap:wrap;gap:6px;max-width:none}
#diagnosis-macros .macro-items:empty{display:none}
#diagnosis-macros .macro-item:not(#zz1){display:inline-flex;align-items:center;gap:4px;padding:1px 8px 1px 2px;border:1px solid #d5ddd8;border-radius:13px;background:#f3f9f5;max-width:none}
#diagnosis-macros .macro-item .desc:not(#zz1){max-width:220px;font-size:12px}
#diagnosis-macros .macro-item .icon-btn{height:20px;width:20px}
#diagnosis-macros .macro-add{flex-wrap:nowrap}
/* The code box is as tall as the name boxes on the macro lines, and short; the + is the header's add button; the
   save and × sit centered on the line (2026-10-31). */
.macros-page .macro-add .macro-code:not(#zz1):not(#zz2){width:110px;height:26px !important;min-height:26px !important;padding:2px 6px !important}
.macros-page .macro-add{align-items:center}
.macros-page .macro-add .edit-actions > *{align-self:center;margin-top:0;margin-bottom:0}
.macros-page .macro-add .row-close:not(#zz1):not(#zz2){position:static;top:auto}
/* Diagnosis macros (2026-10-31): the macro name reads as plain text; the chips show only the code (its description is
   the chip's title); the + is the save button's size and box; the × sits in a box of the same height so all three
   center on one line. */
.macros-page .macro-row-name:not(#zz1){font-weight:400;color:var(--ink)}
#diagnosis-macros .macro-item .desc:not(#zz1):not(#zz2){display:none}
.macros-page .macro-add .macro-code-add.icon-btn:not(#zz1){min-height:32px;height:32px;padding:3px 9px;border-radius:6px}
.macros-page .macro-add .edit-actions .save-icon:not(#zz1){height:32px}
.macros-page .macro-add .edit-actions .row-close:not(#zz1):not(#zz2):not(#zz3){min-height:32px !important;height:32px;margin:0 !important;padding:0 6px !important;transform:none;align-self:center}
/* Diagnosis macros: +, save and × are one fixed 32px square each, centered on the code box's line (2026-10-31). */
.macros-page .macro-add:not(#zz1){display:flex;align-items:center;gap:8px}
.macros-page .macro-add .edit-actions:not(#zz1):not(#zz2){display:inline-flex;align-items:center;gap:8px;margin:0 !important;padding:0 !important}
.macros-page .macro-add :is(.macro-code-add, .save-icon, .row-close):not(#zz1):not(#zz2):not(#zz3):not(#zz4){box-sizing:border-box;width:32px !important;min-width:32px !important;height:32px !important;min-height:32px !important;padding:0 !important;margin:0 !important;display:inline-flex !important;align-items:center;justify-content:center;vertical-align:middle;position:static;top:auto;transform:none}
.macros-page .macro-add :is(.macro-code-add, .save-icon) svg{width:18px;height:18px}
/* Locations: every column title centered over its column (2026-10-31); the Location title keeps the add button beside it. */
#location-list .location-grid.setup-head > span:not(.head-expand):not(#zz1):not(#zz2){display:flex;justify-content:center;align-items:center;text-align:center;justify-self:stretch !important;width:100%;margin:0 !important;padding-left:0 !important;padding-right:0 !important}
#location-list .location-grid.setup-head .sort-head:not(#zz1){margin:0 !important;justify-content:center;text-align:center}
#location-list .location-grid.setup-head > .head-add > span{flex:1;display:flex;justify-content:center}
/* Locations: Place of service and the counts sit centered under their centered titles, and the count columns are wide
   enough for their titles and sort arrows (2026-10-31). */
#location-list .location-grid:not(#zz1):not(#zz2){grid-template-columns:36px minmax(0,1fr) 100px minmax(0,1.6fr) 70px 92px 58px 58px 84px}
#location-list .location-grid.setup-row > :is(.pos-cell, .stat):not(#zz1){justify-self:stretch;text-align:center}
