:root {
  --ink:#16213a; --muted:#6d788d; --canvas:#f4f7fb; --card:#fff;
  --blue:#3478df; --blue-dark:#235fbd; --blue-soft:#eaf3ff;
  --mint:#169a72; --mint-soft:#e9f8f2; --purple:#7655b5; --purple-soft:#f1ecfb;
  --amber:#c77a0a; --amber-soft:#fff4dc; --red:#ce4c4c; --red-soft:#fff0f0;
  --patient-female:#A0678F; --patient-female-soft:#FBE6F0;
  --patient-male:#3560A0; --patient-male-soft:#DBEAFE;
  --line:#dde4ee; --shadow:0 14px 38px rgba(39,55,89,.10);
  /* #403 (David, 2026-09-05) LIST SIZING — ONE size for the three list pages (Active PVTs · Patients · Providers).
     Active PVTs was 11px; David ruled +5% = 11.55px, and the other two pages come to the SAME numbers. Change here, never per page. */
  --p3-list-fs:11.55px; --p3-list-fs-small:9.45px; --p3-list-fs-head:9.45px; --p3-list-fs-tag:8.4px;
}

/* Document Intelligence review workspace — shares the permanent manual PDF foundation. */
.di-heading{align-items:flex-end;gap:20px}.di-heading h2{margin:4px 0 5px}.di-heading p{max-width:900px;margin:0}.di-top-actions,.di-entry-actions{display:flex;gap:10px;align-items:center;flex-wrap:nowrap}.di-safety{margin:0 0 14px}.di-source-context{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;margin-bottom:12px;border:1px solid #9ed8cd;border-left:5px solid #0f9d86;border-radius:12px;background:#f0fbf8}.di-source-context span{color:#65748b}.di-entry-card{max-width:1060px;background:#fff;border:1px solid #d8e0ea;border-radius:18px;padding:24px;box-shadow:0 12px 35px rgba(25,45,80,.08)}.di-entry-card h3{font-size:24px;margin:0 0 5px}.di-entry-card>div:first-child p{margin:0 0 18px;color:#687790}.di-upload{display:flex;min-height:148px;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #9cb9df;border-radius:14px;background:#f7faff;cursor:pointer;text-align:center}.di-upload input{position:absolute;opacity:0;pointer-events:none}.di-upload strong{font-size:20px;color:#19314f}.di-upload span{margin-top:6px;color:#74839a}.di-optional-patient{margin:18px 0}.di-optional-patient>label{display:block;margin-bottom:6px;font-size:12px;font-weight:800;letter-spacing:.06em;color:#53637a}.di-optional-patient>small{display:block;margin-top:5px;color:#758399}.di-entry-actions{margin-top:18px}.di-entry-actions button{min-height:46px}.di-service-state{display:flex;align-items:center;gap:11px;margin-top:18px;padding:12px 14px;border-radius:11px;background:#f3f6fa;color:#64748b}.di-service-state i{width:10px;height:10px;border-radius:50%;background:#95a2b4}.di-service-state.ready{background:#eefaf6;color:#067b65}.di-service-state.ready i{background:#11a780}.di-service-state div{display:flex;flex-direction:column}.di-service-state span{font-size:13px;margin-top:2px}.di-status-card{max-width:800px;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:35px;background:#fff;border:1px solid #d8e0ea;border-radius:18px;text-align:center}.di-status-card strong{font-size:22px}.di-status-card span{max-width:660px;color:#687790}.di-spinner{width:48px;height:48px;border:5px solid #dce7f6;border-top-color:#2f76df;border-radius:50%;animation:diSpin .9s linear infinite}@keyframes diSpin{to{transform:rotate(360deg)}}.di-accounting{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px;padding:10px 14px;border-radius:10px;border:1px solid}.di-accounting.complete{background:#ecfbf5;border-color:#9ed8c2;color:#067859}.di-accounting.blocked{background:#fff5e8;border-color:#efc682;color:#8d5600}.di-accounting span{font-size:13px}.di-review-workspace{display:grid;grid-template-columns:minmax(380px,1.22fr) minmax(300px,.82fr) minmax(310px,.9fr);height:calc(100vh - 310px);min-height:560px;max-width:100%;overflow:hidden;background:#fff;border:1px solid #d4dde9;border-radius:14px}.di-source-pane,.di-proposals,.di-details{min-width:0;overflow:hidden}.di-source-pane{display:flex;flex-direction:column;border-right:1px solid #dce3ec;background:#f4f6f9}.di-source-pane>header,.di-proposals>header{height:58px;flex:0 0 58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border-bottom:1px solid #dde4ed;background:#fff}.di-source-pane header div,.di-proposals header div{display:flex;flex-direction:column}.di-source-pane header span,.di-proposals header span{font-size:12px;color:#718096}.di-source-pane header>div:last-child{display:flex;flex-direction:row;gap:6px}.di-source-pane header button{padding:6px 11px}.di-source-pane iframe{width:100%;height:100%;border:0;background:#59616d}.di-proposals{display:flex;flex-direction:column;border-right:1px solid #dce3ec;background:#f7f9fc}.di-proposals>header>b{display:grid;place-items:center;min-width:30px;height:30px;border-radius:15px;background:#e5eefc;color:#1f62bf}.di-proposals>div{overflow-y:auto;padding:10px}.di-segment-card{margin-bottom:9px;border:1px solid #d5deea;border-radius:11px;background:#fff;overflow:hidden;cursor:pointer}.di-segment-card.active{border:2px solid #3478e5;box-shadow:0 6px 18px rgba(52,120,229,.13)}.di-segment-card.drag-over{outline:3px solid #8fb8f5}.di-segment-card>header{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px}.di-segment-card>header>span:first-child{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#eaf1fc;color:#2768c8;font-weight:800}.di-segment-card header div{display:flex;flex-direction:column;min-width:0}.di-segment-card header strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.di-segment-card header small{font-size:11px;color:#718096}.di-confidence{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border-radius:12px;font-size:11px;font-weight:800;background:#eef1f5;color:#59697e}.di-confidence.high{background:#e3f7ef;color:#08765c}.di-confidence.medium{background:#fff2d7;color:#926000}.di-confidence.low{background:#fee8e7;color:#b5322d}.di-page-chips{display:flex;flex-wrap:wrap;gap:5px;padding:0 10px 10px}.di-page-chips button{padding:5px 8px;border-color:#cbd8e7;background:#f5f8fc}.di-page-chips button.active{border-color:#2f76df;background:#e5efff;color:#145dbd}.di-segment-card>footer{display:flex;gap:5px;padding:8px 10px;background:#f6f8fb;border-top:1px solid #e3e8ef}.di-segment-card>footer button{padding:6px 8px;font-size:11px}.di-details{overflow-y:auto;padding:15px;background:#fff}.di-detail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.di-detail-head div{display:flex;flex-direction:column}.di-detail-head span{font-size:12px;color:#74839a}.di-details>label{display:block;margin:0 0 11px;font-size:11px;font-weight:800;letter-spacing:.04em;color:#53637a}.di-details input,.di-details select,.di-details textarea{display:block;width:100%;margin-top:5px}.di-details textarea{min-height:82px}.di-details label>small{float:right;font-weight:500;letter-spacing:0;color:#7a8799}.di-evidence{display:flex;flex-direction:column;gap:6px;margin-top:13px;padding-top:13px;border-top:1px solid #e1e7ef}.di-evidence>button{display:grid;grid-template-columns:48px 1fr;gap:8px;text-align:left;padding:8px;background:#f7f9fc;border-color:#dae3ef}.di-evidence button b{color:#2c6ecf}.di-evidence button span{font-size:11px;color:#58687e}.di-warning{width:100%;margin-top:7px;text-align:left;background:#fff5df;border-color:#f0cf88;color:#875800}.di-page-actions{margin-top:12px}.di-review-footer{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:10px;padding:10px 12px;border:1px solid #d5deea;border-radius:12px;background:#fff;box-shadow:0 -4px 16px rgba(25,45,80,.07)}.di-review-footer>div{display:flex;flex-direction:column;margin-right:auto}.di-review-footer span{font-size:12px;color:#718096}.di-complete-card{max-width:900px;padding:24px;background:#edfaf5;border:1px solid #9dd9c2;border-radius:16px}.di-complete-card>strong{display:block;font-size:23px;color:#05775b}.di-complete-card>span{display:block;margin:5px 0 16px;color:#557269}.di-complete-card>div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-top:1px solid #c5e8da}.di-complete-card small{color:#65766f}@media(max-width:1250px){.di-review-workspace{grid-template-columns:minmax(340px,1.1fr) minmax(270px,.8fr) minmax(285px,.85fr)}.di-segment-card>footer{flex-wrap:wrap}}@media(max-width:980px){.di-review-workspace{display:block;height:auto;overflow:visible}.di-source-pane{height:600px;border-right:0}.di-proposals,.di-details{max-height:none;border-right:0}.di-heading{align-items:flex-start}.di-top-actions{flex-wrap:wrap}}
*{box-sizing:border-box} body{margin:0;background:var(--canvas);color:var(--ink);font:15px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit} button{cursor:pointer} button:disabled{cursor:not-allowed;opacity:.52}
.app-shell{min-height:100vh;display:grid;grid-template-columns:242px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:26px 18px;background:#172033;color:white;display:flex;flex-direction:column;z-index:5}
.brand{display:flex;gap:12px;align-items:center;padding:0 8px 28px}.logo{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:linear-gradient(145deg,#68a8ff,#3972d6);font-size:21px;font-weight:900;box-shadow:0 8px 20px rgba(66,126,223,.35)}
/* The clinic's own lotus in the app brand, extracted from PVT2's
   _logoLotusBase64_ (gs.txt:33647). It replaces the "P3" placeholder tile; the
   46px brand box and its spacing are unchanged. */
.logo:has(img){background:#fff;box-shadow:0 6px 16px rgba(15,32,60,.18)}.logo img{display:block;width:100%;height:100%;object-fit:contain;padding:4px;box-sizing:border-box}
.brand h1{font-size:22px;margin:0;letter-spacing:-.5px}.brand small{display:block;color:#aebbd1;margin-top:1px}.prototype-tag{margin-left:auto;font-size:9px;font-weight:800;letter-spacing:.08em;color:#122039;background:#8edcc5;padding:4px 7px;border-radius:20px}
.nav-label{font-size:10px;letter-spacing:.13em;color:#7e8aa1;font-weight:800;padding:8px 12px}.nav-link{width:100%;border:0;background:transparent;color:#b7c2d5;display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;text-align:left;margin:2px 0;font-weight:680}.nav-link:hover{background:#222e45;color:#fff}.nav-link.active{background:#3478df;color:#fff;box-shadow:0 8px 22px rgba(52,120,223,.26)}.nav-icon{font-size:18px;width:22px;text-align:center}
.sidebar-foot{margin-top:auto;border-top:1px solid #2a354b;padding:18px 7px 0}.role-label{color:#8f9bb0;font-size:10px;font-weight:800;letter-spacing:.12em}.owner-access-label{display:block;margin-top:8px;color:#dfeaff;font-size:13px;line-height:1.3}.role-switch{width:100%;margin-top:8px;background:#222d42;color:white;border:1px solid #36435c;border-radius:11px;padding:11px}.reset-link{display:block;border:0;background:transparent;color:#8491a8;font-size:12px;margin:14px auto 0}.reset-link:hover{color:white}
.main{min-width:0}.topbar{height:76px;background:rgba(255,255,255,.89);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;position:sticky;top:0;z-index:4}.page-title{font-size:22px;font-weight:820;letter-spacing:-.4px}.top-actions{display:flex;align-items:center;gap:12px}.save-status{display:flex;align-items:center;gap:7px;color:var(--mint);font-size:13px;font-weight:650}.save-status.connecting{color:#64748b}.save-status.offline{color:#a16207}.save-dot{width:8px;height:8px;border-radius:50%;background:var(--mint)}.save-status.connecting .save-dot{background:#94a3b8;animation:pulse 1.4s ease-in-out infinite}.save-status.offline .save-dot{background:#eab308}@keyframes pulse{50%{opacity:.35}}
.role-chip,.avatar{border-radius:999px}.role-chip{padding:7px 11px;background:#eef2f8;color:#536079;font-size:12px;font-weight:750}.avatar{display:grid;place-items:center;width:36px;height:36px;color:white;background:#7554b4;font-weight:800}
.content{padding:32px 36px 48px;max-width:1510px;margin:auto}.notice{display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid #ead7a3;background:#fff8e7;border-radius:13px;color:#755313;margin-bottom:22px}.notice strong{color:#5e430d}.notice .notice-spacer{margin-left:auto;color:#94783e;font-size:12px}
.hero{display:grid;grid-template-columns:1.45fr .8fr;gap:22px;margin-bottom:24px}.hero-main{background:linear-gradient(135deg,#fff 0%,#eef6ff 100%);border:1px solid #d8e7fa;border-radius:22px;padding:30px;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero-main:after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;right:-62px;top:-86px;background:rgba(52,120,223,.08)}.eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);font-weight:850}.hero h2{font-size:32px;letter-spacing:-1px;line-height:1.12;margin:10px 0}.hero p{color:var(--muted);max-width:650px;margin:0 0 22px}.primary,.secondary,.ghost,.danger,.module-button{border-radius:11px;padding:11px 16px;font-weight:760;border:1px solid transparent}.primary{background:var(--blue);color:white;box-shadow:0 7px 18px rgba(52,120,223,.22)}.primary:hover{background:var(--blue-dark);transform:translateY(-1px)}.secondary{background:white;border-color:#b9d4fa;color:var(--blue)}.secondary:hover{background:var(--blue-soft)}.ghost{background:#f4f6f9;border-color:#e1e6ee;color:#566177}.ghost:hover{background:#eaedf2}.danger{background:white;border-color:#efb3b3;color:var(--red)}.danger:hover{background:var(--red-soft)}
.quick-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:23px;box-shadow:var(--shadow)}.quick-card h3{margin:0 0 6px;font-size:18px}.quick-card p{font-size:13px;margin:0 0 18px}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat{background:#f7f9fc;border-radius:13px;padding:13px}.stat strong{display:block;font-size:24px}.stat span{font-size:11px;color:var(--muted);font-weight:700}.stat.draft strong{color:var(--amber)}.stat.complete strong{color:var(--mint)}
.section-head{display:flex;align-items:center;justify-content:space-between;margin:28px 0 13px}.section-head h3{font-size:19px;margin:0}.section-head span{color:var(--muted);font-size:12px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.draft-card{background:white;border:1px solid var(--line);border-left:5px solid var(--amber);border-radius:16px;padding:18px;box-shadow:0 7px 22px rgba(45,58,87,.06);transition:.18s}.draft-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#e7c27f}.card-top{display:flex;justify-content:space-between;gap:10px}.patient-name{font-size:17px;font-weight:820}.draft-badge{background:var(--amber-soft);color:#8e5704;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:850}.meta{color:var(--muted);font-size:12px;margin:3px 0 14px}.progress-label{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);font-weight:700}.progress{height:7px;background:#edf0f5;border-radius:9px;overflow:hidden;margin:6px 0 15px}.progress i{display:block;height:100%;background:linear-gradient(90deg,#e3a034,#c97a08);border-radius:9px}.card-actions{display:flex;gap:8px}.card-actions button{flex:1}
.empty-card{grid-column:1/-1;text-align:center;background:white;border:1px dashed #ccd4e1;border-radius:18px;padding:34px;color:var(--muted)}
.empty-card>strong{display:block;color:var(--ink);font-size:16px;margin-bottom:6px}
.directory-empty p{max-width:520px;margin:0 auto 18px;line-height:1.55}
.directory-empty .primary{padding:12px 24px}
.list-card{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}.list-row{display:grid;grid-template-columns:1.3fr .8fr .75fr .85fr auto;align-items:center;gap:18px;padding:15px 18px;border-bottom:1px solid #edf0f4}.list-row:last-child{border:0}.list-row.header{padding:11px 18px;background:#f7f9fc;color:#7b8699;text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:850}.pill{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:750}.pill.green{background:var(--mint-soft);color:#087b59}.pill.amber{background:var(--amber-soft);color:#8b580b}.pill.blue{background:var(--blue-soft);color:#2d66bd}
.wizard-wrap{background:white;border:1px solid var(--line);border-radius:21px;box-shadow:var(--shadow);min-height:710px;overflow:hidden}.wizard-head{padding:23px 28px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.wizard-head h2{margin:0;font-size:23px}.wizard-head p{margin:3px 0 0;color:var(--muted)}.draft-id{font-size:12px;color:var(--amber);background:var(--amber-soft);padding:7px 10px;border-radius:999px;font-weight:760}
.stepper{display:grid;grid-template-columns:repeat(6,1fr);padding:25px 28px 20px}.step{position:relative;text-align:center;color:#98a1b0;font-size:11px;font-weight:760}.step:not(:last-child):after{content:"";position:absolute;left:58%;right:-42%;height:3px;background:#e5e8ee;top:16px}.step.done:not(:last-child):after{background:var(--mint)}.step.active:not(:last-child):after{background:linear-gradient(90deg,var(--blue) 0 42%,#e5e8ee 42%)}.step-dot{position:relative;z-index:1;margin:auto auto 7px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:white;border:2px solid #dce1e8}.step.done .step-dot{border-color:var(--mint);background:var(--mint);color:white}.step.active{color:var(--blue)}.step.active .step-dot{border-color:var(--blue);background:var(--blue);color:white;box-shadow:0 0 0 6px var(--blue-soft)}
.patient-strip{margin:0 28px;padding:13px 16px;border:1px solid #cfe0f7;background:#f2f7ff;border-radius:12px;display:flex;align-items:center;gap:12px}.patient-strip .tiny{color:#77839a;font-size:11px;font-weight:800}.patient-strip strong{font-size:15px}.wizard-body{padding:25px 28px 12px}.form-title{font-size:20px;margin:0 0 4px}.form-subtitle{color:var(--muted);margin:0 0 22px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:17px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:17px}.field{margin-bottom:16px}.field label{display:block;font-size:11px;color:#5e687b;text-transform:uppercase;letter-spacing:.06em;font-weight:830;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid #d7dee9;border-radius:11px;padding:12px 13px;background:white;color:var(--ink);outline:0}.field textarea{min-height:94px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#72a6ee;box-shadow:0 0 0 4px var(--blue-soft)}.field.error input,.field.error select,.field.error textarea{border-color:#e26d6d;background:#fff7f7;box-shadow:0 0 0 3px #ffeded}.field-note{font-size:11px;color:var(--muted);margin-top:5px}.required{color:var(--red)}
.module-empty{text-align:center;padding:52px 20px;color:var(--muted)}.big-plus{margin:0 auto 12px;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-size:32px;border:2px solid #b9d6fa}.module-list{display:grid;gap:11px;margin-bottom:17px}.module-row{border:1px solid #cfe5db;background:var(--mint-soft);border-radius:13px;padding:14px 15px;display:flex;align-items:center;justify-content:space-between;gap:16px}.module-row.amber{border-color:#f0d392;background:#fffaf0}.module-row strong{display:block}.module-row small{color:var(--muted)}.module-row-actions{display:flex;gap:8px}.mini-btn{border:1px solid #cbd5e3;background:white;border-radius:9px;padding:7px 11px;color:#43516a;font-size:12px;font-weight:750}.mini-btn:hover{border-color:#85aee6;color:var(--blue)}
.wizard-foot{display:flex;align-items:center;gap:10px;padding:18px 28px 25px;border-top:1px solid #edf0f4;margin-top:15px}.wizard-foot .spacer{flex:1}.save-copy{font-size:12px;color:var(--mint);margin-left:5px}.footer-danger{margin-right:auto}.review-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.review-card{border:1px solid var(--line);border-radius:15px;padding:17px}.review-card h4{margin:0 0 11px;display:flex;justify-content:space-between}.review-card h4 span{font-size:11px;color:var(--muted)}.review-item{padding:9px 0;border-top:1px solid #edf0f4}.review-item strong{display:block}.review-item small{color:var(--muted)}.complete-panel{text-align:center;background:linear-gradient(135deg,#edf9f5,#eef5ff);border:1px solid #c8e7db;border-radius:16px;padding:24px;margin-top:17px}.complete-panel h3{margin:0 0 6px}.complete-panel p{margin:0 0 16px;color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;background:rgba(18,28,48,.56);display:grid;place-items:center;padding:24px;z-index:150}.modal{width:min(820px,100%);max-height:92vh;overflow:auto;background:white;border-radius:20px;box-shadow:0 25px 70px rgba(8,17,35,.3)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 23px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0;font-size:21px}.modal-head p{margin:3px 0 0;color:var(--muted)}.close-x{border:0;background:#f2f4f7;border-radius:9px;width:34px;height:34px;color:#4f5b70;font-size:18px}.modal-body{padding:21px 23px}.modal-foot{display:flex;gap:9px;justify-content:flex-end;padding:15px 23px 21px;border-top:1px solid #edf0f4}.provider-results{border:1px solid #d7dee8;border-radius:11px;overflow:hidden;margin-top:-10px;margin-bottom:15px}.provider-option{padding:11px 13px;border-bottom:1px solid #edf0f4;cursor:pointer}.provider-option:last-child{border:0}.provider-option:hover{background:var(--blue-soft)}.provider-option strong{display:block}.provider-option small{color:var(--muted)}.not-directory{color:#80580c;background:#fff9eb}
.loading-panel{padding:54px;text-align:center}.spinner{width:36px;height:36px;margin:0 auto 13px;border-radius:50%;border:4px solid #e4ebf4;border-top-color:var(--blue);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.toast{position:fixed;right:28px;bottom:26px;z-index:2147482700;background:#17223a;color:white;padding:13px 17px;border-radius:12px;box-shadow:var(--shadow);font-weight:680;animation:toastin .25s ease}.toast.good{background:#117c5c}.toast.bad{background:#b83e3e}@keyframes toastin{from{transform:translateY(12px);opacity:0}}
/* LAW 4.27 — a 'bad' toast stays until dismissed; the × is its only exit. */
.toast.bad{display:flex;align-items:center;gap:14px;max-width:440px;padding-right:12px}
.p3-toast-close{flex:0 0 auto;border:0;background:rgba(255,255,255,.16);color:#fff;width:22px;height:22px;border-radius:50%;font-size:15px;line-height:1;cursor:pointer;display:grid;place-items:center}
.p3-toast-close:hover{background:rgba(255,255,255,.3)}
.workspace-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.workspace-head h2{font-size:30px;letter-spacing:-.8px;margin:7px 0 5px}.workspace-head p{color:var(--muted);margin:0;max-width:700px}.directory-tools{display:flex;align-items:center;gap:10px}.directory-tools select{border:1px solid var(--line);background:white;border-radius:12px;padding:12px;color:var(--ink)}.directory-search{min-width:280px;display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--line);border-radius:12px;padding:0 12px}.directory-search:focus-within{border-color:#72a6ee;box-shadow:0 0 0 4px var(--blue-soft)}.directory-search span{color:#8490a4;font-size:20px}.directory-search input{width:100%;border:0;outline:0;padding:12px 0;background:transparent}.directory-count{color:var(--muted);font-size:12px;font-weight:750;margin-bottom:12px}.directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.directory-card{background:white;border:1px solid var(--line);border-radius:17px;padding:18px;box-shadow:0 7px 22px rgba(45,58,87,.05)}.directory-card:hover{border-color:#b9d4fa;box-shadow:var(--shadow)}.directory-card-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.directory-card-head h3{font-size:17px;margin:0}.directory-card-head p{font-size:12px;color:var(--muted);margin:2px 0 0}.directory-avatar{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:var(--purple-soft);color:var(--purple);font-weight:850}.directory-avatar.provider{background:var(--blue-soft);color:var(--blue);font-size:18px}.directory-detail{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #edf0f4;padding:10px 0}.directory-detail span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.directory-detail strong{font-size:13px;text-align:right}.directory-stats{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f7f9fc;border-radius:10px;padding:9px 11px;margin:7px 0 14px;color:var(--muted);font-size:12px}.directory-stats strong{color:var(--ink)}.full-button{width:100%}[hidden]{display:none!important}
.patient-sex-name{font-weight:800}.patient-sex-name.female{color:var(--patient-female)}.patient-sex-name.male{color:var(--patient-male)}.patient-sex-name.unknown{color:#4b5563}.directory-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}.directory-bar .directory-count{margin:0}.sex-filters{display:flex;align-items:center;gap:7px}.sex-filter{border:1px solid var(--line);background:white;color:#59667c;border-radius:999px;padding:6px 11px;font-size:11px;font-weight:750}.sex-filter.active{background:#27364f;color:white;border-color:#27364f}.sex-filter.female:not(.active){border-color:#f5d5e5;color:var(--patient-female)}.sex-filter.female.active{background:var(--patient-female);border-color:var(--patient-female)}.sex-filter.male:not(.active){border-color:#bfdbfe;color:var(--patient-male)}.sex-filter.male.active{background:var(--patient-male);border-color:var(--patient-male)}.directory-list{background:white;border:1px solid var(--line);border-radius:15px;overflow-x:auto;box-shadow:0 7px 22px rgba(45,58,87,.045)}.directory-row{display:grid;align-items:center;gap:18px;padding:12px 15px;border-bottom:1px solid #e9edf3}.directory-row:last-child{border-bottom:0}.directory-row:not(.directory-row-head):hover{background:#fafcff}.directory-row-head{padding-top:9px;padding-bottom:9px;background:#f7f9fc;color:#7b8699;text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:850}.patient-directory .directory-row{grid-template-columns:minmax(220px,1.35fr) minmax(135px,.8fr) minmax(145px,.85fr) minmax(170px,.9fr) auto;min-width:900px}.provider-directory .directory-row{grid-template-columns:minmax(210px,1.2fr) minmax(145px,.9fr) minmax(210px,1.2fr) minmax(140px,.8fr) minmax(85px,.55fr) auto;min-width:1030px}.patient-directory-row{border-left:4px solid transparent}.patient-directory-row.sex-female{border-left-color:rgba(160,103,143,.55)}.patient-directory-row.sex-male{border-left-color:rgba(53,96,160,.55)}.directory-person{display:flex;align-items:center;gap:11px;min-width:0}.directory-person>strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory-avatar{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:10px;background:var(--purple-soft);color:var(--purple);font-weight:850;font-size:12px}.directory-avatar.female{background:var(--patient-female-soft);color:var(--patient-female)}.directory-avatar.male{background:var(--patient-male-soft);color:var(--patient-male)}.directory-avatar.provider{background:var(--blue-soft);color:var(--blue);font-size:15px}.directory-row>div>strong,.directory-row>div>small{display:block}.directory-row>div>small{color:var(--muted);font-size:11px;margin-top:2px}.row-activity{display:flex!important;gap:15px;color:var(--muted);font-size:12px}.row-activity strong{color:var(--ink)}.compact-button{padding:8px 12px;white-space:nowrap}[hidden]{display:none!important}
/* #457 — the Patients filter row: Status (Active · Inactive · All, default Active) beside Sex; a not-active row names its stored status */
.patient-filter-row{flex-wrap:wrap;row-gap:8px;margin-bottom:10px}.patient-filter-group{display:inline-flex;align-items:center;gap:7px}.patient-filter-label{color:#7b8699;font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;margin-right:1px}.patient-filter-sep{width:1px;height:20px;background:var(--line);margin:0 8px}.patient-status-pill{display:inline-block;margin-top:3px;padding:1px 8px;border-radius:999px;border:1px solid #d7dce5;background:#f1f3f7;color:#5b6576;font-size:10px;font-weight:800;letter-spacing:.03em}.patient-directory-row.is-inactive .directory-avatar{opacity:.55}
.workspace-head{flex-wrap:wrap}.workspace-head>div:first-child{min-width:0;flex:1 1 520px}.directory-search{min-width:min(280px,100%)}.patient-directory .directory-row{grid-template-columns:minmax(180px,1.25fr) minmax(115px,.75fr) minmax(130px,.82fr) minmax(145px,.85fr) auto;min-width:760px}.provider-directory .directory-row{grid-template-columns:minmax(185px,1.15fr) minmax(130px,.82fr) minmax(175px,1.05fr) minmax(125px,.75fr) minmax(75px,.5fr) auto;min-width:900px}
.page-heading{margin-bottom:15px}.page-heading h2{font-size:30px;letter-spacing:-.8px;margin:7px 0 5px}.page-heading p{color:var(--muted);margin:0;max-width:780px}.action-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.page-search-row{margin-bottom:10px}.page-search-row .directory-search{width:min(620px,100%);min-width:0}.page-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:13px}.page-filter-row select{min-width:210px;border:1px solid var(--line);background:white;border-radius:10px;padding:9px 34px 9px 11px;color:var(--ink)}.page-filter-row+.directory-count{margin-top:4px}.pill.red{background:var(--red-soft);color:#a33131}.pill.purple{background:var(--purple-soft);color:#6942a6}
.directory-search-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.directory-search-actions .directory-search{flex:1}.directory-search-actions>button{flex:0 0 auto;white-space:nowrap}
.fax-filter-row{align-items:flex-start;flex-direction:column}.fax-tabs,.fax-status-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.fax-tab,.fax-filter{border:1px solid var(--line);background:white;color:#5d687c;border-radius:9px;padding:7px 11px;font-size:12px;font-weight:750}.fax-tab span{margin-left:5px;padding:1px 6px;background:#eef2f7;border-radius:999px;font-size:10px}.fax-tab.active{background:#dff0c7;color:#2e5e10;border-color:#a9d07c}.fax-filter{border-radius:999px;padding:6px 11px}.fax-filter.active{background:#27364f;color:white;border-color:#27364f}.fax-notice{margin:15px 0}.fax-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin:15px 0}.fax-summary-card{background:white;border:1px solid var(--line);border-left:4px solid #94a3b8;border-radius:12px;padding:12px 14px}.fax-summary-card strong{display:block;font-size:23px}.fax-summary-card span{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.fax-summary-card.urgent{border-left-color:var(--amber)}.fax-summary-card.urgent strong{color:#9a5f08}.fax-summary-card.ready{border-left-color:var(--blue)}.fax-summary-card.ready strong{color:var(--blue-dark)}.fax-summary-card.failed{border-left-color:var(--red)}.fax-summary-card.failed strong{color:var(--red)}.fax-summary-card.complete{border-left-color:var(--mint)}.fax-summary-card.complete strong{color:var(--mint)}.fax-list{background:white;border:1px solid var(--line);border-radius:15px;overflow-x:auto;box-shadow:0 7px 22px rgba(45,58,87,.045)}.fax-row{display:grid;grid-template-columns:minmax(135px,.8fr) minmax(190px,1.05fr) minmax(225px,1.35fr) minmax(175px,1fr) 55px 105px auto;align-items:center;gap:15px;min-width:1080px;padding:12px 15px;border-bottom:1px solid #e9edf3}.fax-row:last-child{border-bottom:0}.fax-row:not(.fax-row-head):hover{background:#fafcff}.fax-row-head{background:#f7f9fc;color:#7b8699;text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:850;padding-top:9px;padding-bottom:9px}.fax-row>div>strong,.fax-row>div>small{display:block}.fax-row>div>small{color:var(--muted);font-size:11px;margin-top:2px}.fax-direction{color:var(--blue-dark)}.fax-direction.outbound{color:#7c4bb2}.fax-modal{width:min(1080px,100%)}.fax-review-layout{display:grid;grid-template-columns:1.08fr .92fr;gap:22px;padding:22px}.fax-document-preview{background:#e7e9ed;border:1px solid #cfd4dc;border-radius:14px;padding:18px;min-height:430px}.fax-page-stack{display:flex;align-items:flex-start;justify-content:center;gap:10px}.fax-page{width:145px;min-height:205px;background:white;border:1px solid #c8ccd3;border-radius:4px;padding:18px 14px;box-shadow:0 5px 16px rgba(42,50,65,.12);display:flex;flex-direction:column;gap:9px}.fax-page strong{font-size:10px;color:#5f6672}.fax-page span{height:5px;background:#d7dbe1;border-radius:2px}.fax-page span.short{width:63%}.fax-page small{margin-top:auto;color:#9aa1ad;font-size:9px;text-align:center}.fax-preview-note{text-align:center;color:#6f7785;font-size:11px;margin-top:16px}.fax-triage-form{min-width:0}.fax-meta-list{border:1px solid var(--line);border-radius:12px;overflow:hidden}.fax-meta-list>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border-bottom:1px solid #edf0f4}.fax-meta-list>div:last-child{border-bottom:0}.fax-meta-list span:first-child{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.fax-list .fax-row{grid-template-columns:115px minmax(140px,.9fr) minmax(175px,1.2fr) minmax(140px,.9fr) 45px 90px auto;min-width:920px}.fax-list .fax-row>div{min-width:0}.fax-list .fax-row>div>strong,.fax-list .fax-row>div>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fax-parity-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:12px}.fax-parity-head h2{font-size:32px;letter-spacing:-.8px;margin:5px 0 0}.fax-live-dot{font-size:11px;color:var(--mint);font-weight:750}.fax-main-search{margin-bottom:11px}.fax-main-search .directory-search{width:min(760px,100%)}
.fax-command-bar{display:flex;align-items:center;gap:10px;min-width:0;margin-bottom:10px;white-space:nowrap}.fax-command-bar .fax-tabs{margin-right:8px;flex:0 0 auto;flex-wrap:nowrap}.fax-command-bar>*{flex-shrink:0}.fax-command-bar .fax-refresh-age{margin-left:auto}.fax-tab{border-radius:8px;padding:9px 16px;font-size:13px}.fax-tab.active{background:#e1f1ca;color:#2f6111;border-color:#acd37b}.fax-quick{min-width:150px;border:0;border-radius:7px;background:#12998c;color:#fff;padding:10px 22px;font-weight:850}.fax-quick:hover{background:#0d8278}.fax-nonfax{display:flex;align-items:center;gap:8px;color:#2f6be0;font-size:12px;font-style:italic}.fax-nonfax input{width:215px;border:1px solid #79a7f4;border-radius:8px;padding:9px 11px;background:#fff;font-style:normal}.fax-refresh-age{margin-left:auto;color:#98a1af;font-size:11px}.fax-tool,.fax-admin-tools{border:1px solid var(--line);border-radius:8px;background:#fff;color:#4d586b;padding:8px 11px;font-size:12px;font-weight:720}.fax-admin-tools{border-color:transparent;background:transparent;color:#7d8797}.fax-last-pull{color:#8d97a8;font-size:11px;border:1px solid #e3e7ed;border-radius:7px;padding:7px 9px}.fax-last-pull i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--mint);margin-right:4px}.fax-safety{border:1px solid #ead7a3;background:#fff8e7;color:#765a20;border-radius:8px;padding:7px 11px;font-size:11px;margin-bottom:9px}.fax-safety strong{margin-right:6px;color:#8a5c00}
.fax-work-card{border:1px solid #c8ccd4;border-radius:8px;background:#e6e7ea;overflow-x:auto;box-shadow:0 8px 24px rgba(29,42,66,.06)}.fax-list-toolbar{min-width:1380px;min-height:42px;display:flex;align-items:center;gap:13px;padding:7px 14px;background:#d1d2d6;border-bottom:1px solid #bfc3ca}.fax-list-toolbar label{font-weight:780}.fax-list-toolbar>strong{font-size:11px;color:#707988;background:#fff;border-radius:999px;padding:4px 9px}.fax-list-toolbar .fax-status-filters{margin-left:auto}.fax-filter span{margin-left:4px}.fax-filter.active{background:#242a33;border-color:#242a33}.fax-empty{padding:38px;text-align:center;color:var(--muted);background:#fff}
.fax-rich-row{min-width:1380px;display:grid;grid-template-columns:26px 104px 54px 190px 145px 205px minmax(270px,1fr) 350px;align-items:center;gap:9px;min-height:66px;padding:7px 13px;border-bottom:1px solid #c7cad0;background:#e9eaed}.fax-rich-row:hover{background:#dfe1e5}.fax-rich-row:last-child{border-bottom:0}.fax-row-check{width:17px;height:17px;accent-color:var(--blue)}.fax-icon-tools{display:flex;align-items:center;gap:5px}.fax-icon-tools button{width:29px;height:29px;border:1px solid #d3d7de;border-radius:6px;background:#eef0f3;color:#8490a0}.fax-folder-badge{font-size:10px;font-weight:800;background:#dff2e9;color:#167553;border-radius:4px;padding:4px 7px}.fax-folder-badge.trash{background:#f7dede;color:#9b2e2e}.fax-page-count{display:grid;place-items:center;background:#f6f7f9;color:#808a99;border-radius:7px;padding:5px 4px;font-size:11px;font-weight:760}.fax-page-thumbs{display:flex;align-items:center;gap:4px;height:50px}.fax-page-thumb{position:relative;width:36px;height:46px;flex:0 0 36px;overflow:hidden;padding:0;border:1px solid #bfc5ce;border-radius:3px;background:#fff;transition:.12s}.fax-page-thumb:hover{transform:scale(1.08);border-color:var(--blue);z-index:2}.fax-thumb-scale,.fax-picker-scale{position:absolute;left:0;top:0;display:block;width:720px;height:930px;transform-origin:top left;transform:scale(.05);pointer-events:none}.fax-date{display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:center}.fax-date b{grid-row:1/3;color:#707988;font-size:11px}.fax-date strong{font-size:12px}.fax-date span{font-size:11px;color:#707988}.fax-sender{position:relative;min-width:0;padding-left:9px;border-left:3px solid var(--mint)}.fax-sender strong,.fax-sender small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fax-sender small{font-size:10px;color:#778294}.fax-category{display:inline-block;margin-top:2px;border-radius:999px;padding:2px 7px;background:#f3f0e9;color:#655f52;font-size:9px;font-weight:750}.fax-category.imaging{background:#dff5e9;color:#16734d}.fax-category.labs{background:#edf7d8;color:#476d20}.fax-triage{min-width:0}.fax-triage>strong,.fax-triage>em,.fax-triage>small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fax-triage em{color:#8c95a3;font-size:12px}.fax-triage small{font-size:10px;color:#6f7989;margin-top:3px}.fax-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.fax-row-actions button{white-space:nowrap}.fax-provider-reply{border:1px solid #8ecfc8;background:#f3fffd;color:#167c71;border-radius:7px;padding:7px 11px;font-size:11px;font-weight:760}.fax-process-btn{border:0;background:#286be5;color:white;border-radius:7px;padding:8px 17px;font-weight:800}.fax-trash-icon,.fax-block-icon,.fax-danger-link{border:0;background:transparent;color:#9099a6;font-size:17px}.fax-block-icon,.fax-danger-link{color:#d14545}.fax-danger-link{font-size:11px;font-weight:750}
.fax-sent-row{min-width:1380px;display:grid;grid-template-columns:24px 45px 220px 160px minmax(260px,1.1fr) minmax(240px,1fr) 280px;align-items:start;gap:12px;padding:10px 15px;background:#fff;border-bottom:1px solid #e3e6eb}.fax-sent-row:last-child{border-bottom:0}.fax-view-link{border:0;border-bottom:1px solid #3672d8;background:transparent;color:#3672d8;padding:0;font-weight:720}.fax-sent-preview{display:flex;align-items:center;gap:7px;min-width:0}.fax-sent-preview>small{flex:0 0 auto;color:#7f8998;background:#f1f3f6;border-radius:6px;padding:4px 6px;font-weight:750}.fax-sent-preview .fax-page-thumbs{height:48px}.fax-sent-date strong,.fax-sent-date small,.fax-sent-patient strong,.fax-sent-patient span,.fax-sent-destination strong,.fax-sent-destination small,.fax-sent-result small{display:block}.fax-sent-date small,.fax-sent-patient span,.fax-sent-destination small,.fax-sent-result small{color:#8b95a6;font-size:11px}.fax-sent-patient strong{color:var(--blue)}.fax-sent-result{text-align:right}.fax-sent-result .pill{margin-left:auto}.fax-sent-result>b{display:block;color:#b43e3e;font-size:11px;margin:4px 0}.fax-sent-result button{border:1px solid #dc7070;background:#fff5f5;color:#b23838;border-radius:6px;padding:5px 9px;margin:3px 0 0 6px;font-size:10px;font-weight:760}
.fax-doc-page{position:relative;width:720px;min-height:930px;background:#fff;color:#151515;padding:34px 44px 48px;font-family:Arial,sans-serif;box-shadow:0 3px 14px rgba(0,0,0,.15);overflow:hidden}.fax-doc-page.hover{width:900px;min-height:1180px;padding:46px 60px 60px}.fax-doc-page.thumb{box-shadow:none}.fax-doc-top{font-family:monospace;font-size:10px;font-weight:700;border-bottom:1px solid #777;padding-bottom:6px}.fax-doc-top span{float:right}.fax-doc-brand{text-align:center;font-size:25px;font-weight:900;margin:35px 0 3px}.fax-doc-address{text-align:center;font-size:10px}.fax-doc-patient{margin:28px 0 30px;border:1px solid #888;padding:12px;font-size:12px;line-height:1.55}.fax-doc-page h2{text-align:center;font-size:22px;margin:0 0 32px}.fax-doc-page h4{font-size:13px;margin:18px 0 5px}.fax-doc-page p{font-size:12px;line-height:1.55}.fax-empty-state{max-width:420px;margin:80px auto;text-align:center;color:#6b7280;font-family:inherit}.fax-empty-state strong{display:block;font-size:15px;color:#4b5563;margin-bottom:8px}.fax-empty-state p{font-size:12.5px;line-height:1.6;margin:0}.fax-thumb-empty{display:grid;place-items:center;height:100%;padding:8px;color:#8a94a4;font-size:10px;text-align:center}.fax-doc-empty{text-align:center;color:#6b7280;font-size:12px;line-height:1.6;border:1px dashed #b8bfc9;border-radius:8px;padding:18px;margin:0 auto;max-width:520px}.fax-doc-placeholder h2{color:#8a94a4;letter-spacing:.04em}.fax-doc-lines{display:flex;flex-direction:column;gap:10px;margin-top:25px}.fax-doc-lines i{height:5px;background:#c6c6c6}.fax-doc-table{display:grid;grid-template-columns:1.2fr .7fr 1fr;border:1px solid #777;font-size:11px}.fax-doc-table>*{padding:8px;border-right:1px solid #999;border-bottom:1px solid #999}.fax-doc-page footer{position:absolute;left:0;right:0;bottom:20px;text-align:center;font-size:9px;color:#777}.fax-hover-preview{position:fixed;z-index:50;display:none;pointer-events:none;background:#fff;border:1px solid #cbd1da;border-radius:8px;box-shadow:0 16px 48px rgba(0,0,0,.25);padding:8px}.fax-hover-inner{max-height:calc(100vh - 42px);overflow:hidden;background:#e8eaee;display:flex;justify-content:center}.fax-hover-inner .fax-doc-page{flex:none;transition:transform .05s linear}.fax-hover-footer{text-align:center;font-size:10px;color:#727d8d;padding-top:4px}
.fax-process-backdrop{padding:0;z-index:200}.fax-process-modal{width:95vw;height:93vh;display:grid;grid-template-columns:290px minmax(430px,1fr) 440px;background:#fff;border-radius:15px;overflow:hidden;box-shadow:0 28px 80px rgba(0,0,0,.38)}.fax-pages-panel,.fax-process-panel,.fax-center-preview{min-width:0;min-height:0}.fax-pages-panel{display:flex;flex-direction:column;border-right:1px solid #dfe3e9}.fax-pages-head{height:58px;display:flex;align-items:center;gap:13px;padding:0 13px;border-bottom:1px solid #e4e7ec}.fax-pages-head button{border:0;background:transparent;color:#687386;font-size:11px}.fax-pages-head button:last-child{margin-left:auto}.fax-page-picker{flex:1;overflow-y:auto;background:#f6f7f9;padding:9px}.fax-picker-page{position:relative;display:block;width:100%;height:270px;margin-bottom:8px;border:2px solid transparent;border-radius:8px;background:#fff;overflow:hidden}.fax-picker-page.selected{border-color:#45b98c;background:#eafbf4}.fax-picker-page.current{box-shadow:0 0 0 3px rgba(52,120,223,.22)}.fax-picker-scale{left:34px;top:9px;transform:scale(.25)}.fax-picker-check{position:absolute;left:7px;top:50%;z-index:3}.fax-picker-check input{width:16px;height:16px}.fax-cancel-bottom{margin:12px auto 16px;border:1px solid #d8dde5;background:#f5f6f8;border-radius:8px;padding:9px 22px;font-weight:700}.fax-center-preview{display:flex;flex-direction:column;background:#eef0f3}.fax-center-meta{height:65px;background:#f7f8fa;border-bottom:1px solid #e2e5ea;padding:12px 15px}.fax-center-meta strong,.fax-center-meta small{display:block}.fax-center-meta small{color:#8a94a4}.fax-view-toolbar{height:42px;display:flex;align-items:center;gap:8px;background:#fff;padding:5px 12px;border-bottom:1px solid #e1e5eb}.fax-view-toolbar span{color:#3478df;background:#edf4ff;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:750}.fax-view-toolbar button{border:1px solid #d8dde5;background:#fff;border-radius:6px;padding:4px 8px}.fax-main-page-wrap{flex:1;overflow:auto;padding:15px;display:flex;justify-content:center}.fax-main-page{min-width:500px;max-width:1100px;transform-origin:top center}.fax-main-page .fax-doc-page{width:100%;min-height:1100px}.fax-process-panel{position:relative;display:flex;flex-direction:column;border-left:1px solid #dfe3e9;background:#fff}.fax-process-head{min-height:66px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 5px;padding:10px 52px 10px 12px;border-bottom:1px solid #e5e8ed}.fax-process-head>strong{margin-right:auto;white-space:nowrap;font-size:13px}.fax-process-head button{white-space:nowrap}.fax-process-head button{border:1px solid #dde2e9;background:#f8f9fb;border-radius:7px;padding:5px 6px;font-size:10.5px;font-weight:700}
/* THE CLOSE BUTTON MUST ALWAYS BE REACHABLE (2026-08-23, David's ruling) —
   anchored to the PANEL, outside the header's own flex row, so it can never
   be squeezed off-screen by however many/wide the header's other buttons
   are. .fax-process-head's right padding above reserves its clear space. */
.fax-process-close-fixed{position:absolute;top:8px;right:8px;z-index:5;width:34px;height:34px;border:0;background:#f2f4f7;border-radius:9px;color:#4f5b70;font-size:18px;line-height:1}
.fax-process-close-fixed:hover{background:#e7eaee}.fax-test-ribbon{padding:5px 12px;background:#fff7dc;color:#806012;font-size:9px;text-align:center}.fax-process-scroll{flex:1;overflow-y:auto;padding:12px 16px 150px}.fax-process-scroll section{border-bottom:1px solid #e8ebef;padding:10px 0}.fax-process-scroll section>p{color:#8a94a4;font-size:11px;margin:7px 0}.fax-process-step-title{display:flex;align-items:center;gap:8px}.fax-process-step-title>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf0f4;color:#8791a0;font-weight:800}.fax-process-step-title>b{margin-left:auto;color:#b3790b;font-size:10px}.fax-process-scroll select,.fax-process-scroll input,.fax-process-scroll textarea{width:100%;border:1px solid #dce1e8;border-radius:8px;padding:9px;background:#fff}.fax-process-scroll textarea{min-height:66px}.fax-provider-request{border:2px solid #9a62f6!important;background:#fbf8ff;border-radius:9px;padding:12px!important;color:#7a35e6}.fax-provider-request button{display:block;width:100%;margin-top:8px;background:#7c35e9;color:#fff;border:0;border-radius:7px;padding:8px;font-weight:800}.fax-inline-actions{display:flex;gap:7px}.fax-inline-actions button,.fax-manual-file,.fax-warm-button{border:1px solid #dbe0e8;background:#fff;border-radius:7px;padding:6px 10px;font-size:10px;font-weight:720}.fax-link-order{border:2px solid #8f4cf2!important;background:#fbf8ff;border-radius:9px;padding:12px!important;color:#7741d1}.fax-link-order p{color:#697386!important}.fax-link-order em{font-size:11px;color:#9d96aa}.fax-link-flash{box-shadow:0 0 0 3px rgba(143,76,242,.35)}.fax-match-group{margin-top:9px}.fax-match-group-title{font-size:10px;font-weight:800;color:#7741d1;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.fax-match-item{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e5ddf7;border-radius:7px;padding:7px 9px;margin-bottom:5px}.fax-match-item-info{flex:1;min-width:0}.fax-match-item-summary{font-size:11.5px;font-weight:700;color:#2f3a4c}.fax-match-item-meta{font-size:10px;color:#8a94a4}.fax-match-link{border:0;background:#7c35e9;color:#fff;border-radius:6px;padding:5px 11px;font-size:10.5px;font-weight:800}.fax-linked-badge{background:#eafbf4;border:1px solid #45b98c;color:#12724f;border-radius:7px;padding:8px 10px;font-size:11.5px;font-weight:750}.fax-link-unrelated{background:#f5f6f8;border:1px solid #d8dde5;color:#687386;border-radius:7px;padding:8px 10px;font-size:11.5px;font-weight:650}.fax-link-actions{margin-top:7px}.fax-link-actions button{border:1px solid #d8dde5;background:#fff;color:#687386;border-radius:6px;padding:5px 10px;font-size:10.5px;font-weight:700}.fax-import-box{background:#f7f8fa;border:1px solid #dfe3e9!important;border-radius:9px;padding:11px!important}.fax-import-box>b{display:block;font-size:10px;color:#8a94a4}.fax-temp-ready{display:block;color:#18a174;font-size:10px;margin:4px 0 8px}
.fax-helper-pill{display:inline-block;font-size:10px;font-weight:750;border-radius:999px;padding:3px 9px;margin:4px 6px 8px 0}.fax-helper-pill.ready{background:#eafbf4;color:#12724f;border:1px solid #45b98c}.fax-helper-pill.down{background:#fff4e5;color:#a15d19;border:1px solid #e6b980}.fax-helper-pill.checking{background:#f1f3f6;color:#687386;border:1px solid #d8dde5}
.fax-helper-recheck{border:1px solid #d8dde5;background:#fff;border-radius:6px;padding:3px 8px;font-size:10px;font-weight:700;color:#687386}
.fax-import-armed{margin-top:8px;background:#fffaf0;border:1px solid #e6b980;color:#8a5a12;border-radius:7px;padding:7px 9px;font-size:11px;font-weight:700}.fax-import-armed button{margin-left:8px;border:1px solid #e6b980;background:#fff;border-radius:5px;padding:2px 8px;font-size:10px}
.fax-import-busy{margin-top:8px;color:#3478df;font-size:11px;font-weight:700}
.fax-import-status{margin-top:8px;color:#12724f;font-size:11px;line-height:1.5}
.fax-import-error{margin-top:8px;background:#fdf1f1;border:1px solid #e0a0a0;color:#a63b3b;border-radius:7px;padding:8px 9px;font-size:11px;line-height:1.5}
.fax-picker-img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}.fax-picker-pending,.fax-picker-empty{display:grid;place-items:center;height:100%;color:#8a94a4;font-size:11px}.fax-picker-empty{height:120px}
.fax-main-img{display:block;width:100%;height:auto;background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.15)}.fax-main-figure{margin:0 0 18px;scroll-margin-top:12px}.fax-main-figure.current .fax-main-img{outline:3px solid rgba(52,120,223,.45)}.fax-main-figure figcaption{text-align:center;color:#8a94a4;font-size:10px;padding:5px 0 0}.fax-main-pending{display:grid;place-items:center;min-height:400px;color:#8a94a4;font-size:12px}
.fax-ai-note{border-radius:7px;padding:7px 9px;font-size:10.5px;font-weight:650;margin-bottom:8px;line-height:1.45}.fax-ai-note.running{background:#eef4ff;color:#2b5bb8}.fax-ai-note.done{background:#eafbf4;color:#12724f}.fax-ai-note.uncertain,.fax-ai-note.failed{background:#fff4e5;color:#a15d19}
.fax-destination{margin:-2px 0 9px;font-size:10.5px;color:#687386}.fax-destination b{color:#2f3a4c}
.fax-original-note{color:#8a94a4;font-size:10.5px;font-style:italic}
.fax-quick-insert{margin:8px 0 6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.fax-quick-insert button{border:1px solid #d8cdf3;background:#f8f5ff;color:#5b3ba8;border-radius:999px;padding:4px 11px;font-size:10.5px;font-weight:750}.fax-quick-insert .fax-quick-manage{border-radius:50%;width:22px;height:22px;padding:0;display:grid;place-items:center;background:#f2f4f7;color:#687386;border-color:#dde2e9;font-size:11px}
.fax-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fax-source-tile{box-sizing:border-box;width:100%;height:64px;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;padding:0 10px;border:1px solid #dce1e8;background:#fff;border-radius:8px;text-align:left;overflow:hidden}.fax-source-tile.active{border-color:#7c35e9;box-shadow:0 0 0 2px #eee3ff}.fax-source-tile:disabled{opacity:.5}.fax-source-tile img{width:34px;height:34px;object-fit:contain;display:block}.fax-source-tile span{min-width:0;font-size:11px;font-weight:750;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.fax-manual-file{display:block;margin:8px auto 0;text-decoration:underline}.fax-ocr-found{display:flex;align-items:center;gap:8px;color:#19a477;font-size:10px;font-weight:720}.fax-ocr-found.fax-ocr-unwired{color:#a15d19}.fax-ocr-found button{margin-left:auto;border:1px solid #d7dee8;background:#fff;border-radius:6px;padding:4px 6px;font-size:9px}
.fax-process-actions{position:absolute;left:0;right:0;bottom:0;background:#fff;border-top:1px solid #dfe3e9;padding:11px 14px}.fax-process-actions>.primary{width:100%;margin-bottom:8px}.fax-process-actions>div{display:grid;grid-template-columns:1fr;gap:6px}.fax-process-actions>div button{border:1px solid #dce1e8;background:#fff;border-radius:7px;padding:8px;font-size:10px}
.fax-process-actions>.fax-final-name{display:block;font-size:12px;color:#334155;margin:0 0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fax-final-name b{color:#12325c}.fax-final-name small{color:#64748b;font-size:10.5px;margin-left:4px}.fax-final-name[data-empty] i{color:#b45309}
.fax-duplicate-foot{display:flex;align-items:center;gap:9px;border-bottom:0!important;padding-top:14px!important}.fax-duplicate-foot button{border:1px solid #dce1e8;background:#f7f8fa;color:#8a94a4;border-radius:6px;padding:4px 9px;font-size:10px;font-weight:700}.fax-duplicate-foot small{color:#a3abb8;font-size:9.5px}
/* IDEA 10 — THE DUPLICATE SENTINEL (2026-08-22) */
.fax-dup-modal{width:min(640px,96vw)}
.fax-dup-candidate{border:1px solid #e5e7eb;border-radius:12px;padding:14px;margin-bottom:12px;position:relative}
.fax-dup-candidate:last-child{margin-bottom:0}
.fax-dup-side{display:inline-block;vertical-align:top;width:44%}
.fax-dup-side strong{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#8a94a4;margin-bottom:3px}
.fax-dup-side span{display:block;font-size:13px;color:#1f2937;font-weight:650}
.fax-dup-side small{display:block;color:#8a94a4;font-size:11px;margin-top:2px}
.fax-dup-vs{display:inline-block;width:10%;text-align:center;color:#9ca3af;font-size:11px;font-weight:800}
.fax-dup-confidence{display:inline-block;margin-top:10px;padding:3px 9px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.fax-dup-confidence.high{background:#fde2e2;color:#a11d1d}
.fax-dup-confidence.medium{background:#fff0d3;color:#9b5c02}
.fax-dup-confidence.low{background:#eef2f7;color:#50617a}
.fax-dup-label{margin:8px 0 0;font-size:12px;color:#4b5563}
.fax-dup-actions{display:flex;gap:8px;margin-top:12px}
.fax-dup-actions button{border-radius:7px;padding:8px 12px;font-size:12px;font-weight:700}
.fax-dup-actions .danger{background:#dc2626;color:#fff;border:0}
.fax-dup-actions .ghost{background:#fff;border:1px solid #d1d5db;color:#374151}
.fax-process-scroll input.fax-filename-field{background:#eaf3ff;border-color:#9dc2f0;font-weight:700;color:#12325c}.fax-process-scroll input.fax-filename-field:focus{background:#fff;border-color:#3478df;outline:2px solid rgba(52,120,223,.25)}
.quick-fax-modal{display:flex;width:min(900px,96vw);max-height:96vh;overflow:hidden;border:3px solid #f06410;border-radius:15px;flex-direction:column}.modal-head.orange{background:#fff8ef}.quick-fax-head{padding:11px 18px}.quick-fax-head h3{font-size:19px}.quick-fax-head p{font-size:11px}.quick-fax-body{overflow:visible;padding:10px 20px 7px}.quick-fax-body .grid-2{gap:12px}.quick-fax-body .field{margin-bottom:8px}.quick-fax-body .field label,.quick-lookup label{margin-bottom:4px;font-size:9px}.quick-fax-body .field input,.quick-fax-body .field textarea{border-radius:8px;padding:8px 10px;font-size:12px}.quick-fax-body .field textarea{min-height:52px;height:52px}.quick-fax-body .field-note{margin-top:3px;font-size:9px}.quick-lookup{position:relative;margin-bottom:8px}.quick-lookup .search-picker{margin-top:0}.quick-lookup label{display:block;color:#5f6878;text-transform:uppercase;font-weight:820}.quick-lookup>button{position:absolute;z-index:3;right:0;top:0;border:0;border-radius:6px;background:#f06410;padding:5px 10px;color:#fff;font-size:10px;font-weight:800}.quick-lookup>small{display:block;margin-top:3px;color:#8b95a5;font-size:9px}.quick-double-check{border:1px solid #ee7777;border-radius:999px;padding:1px 5px;color:#b83e3e;font-size:7px}.quick-patient-field{margin-bottom:7px!important}.quick-note-field{margin-bottom:7px!important}.quick-attachment-field{margin-bottom:0!important}.quick-drop-zone{display:flex!important;min-height:55px!important;border:2px dashed #dce1e8!important;border-radius:8px;align-items:center;justify-content:center;gap:4px;color:#596477!important;text-transform:none!important;font-size:11px!important}.quick-drop-zone.dragging{border-color:#f06410!important;background:#fff8ef}.quick-drop-zone input{display:none}.quick-drop-zone small{margin-left:5px;color:#939cac;font-size:9px}.quick-file-list{display:flex;max-height:28px;overflow:auto;flex-wrap:wrap;gap:4px;margin-top:4px}.quick-file-list span{border-radius:999px;background:#eef4ff;padding:3px 7px;color:#3469bd;font-size:9px}.quick-fax-foot{position:static;background:#fff8ef;padding:9px 18px 11px}.quick-fax-foot button{padding:8px 13px}.orange-button{background:#f06410}.orange-button:hover{background:#d95308}.quick-fax-preview-modal{width:min(1080px,97vw)}.quick-fax-preview{display:grid;min-height:0;overflow:auto;grid-template-columns:minmax(0,1fr) 245px;gap:14px;padding:16px;background:#eef0f3}.quick-cover-wrap{display:flex;justify-content:center}.quick-cover-sheet{width:min(100%,680px);min-height:760px;background:#fff;padding:28px 34px;color:#000;box-shadow:0 4px 18px rgba(0,0,0,.13);font-family:Arial,sans-serif}.quick-cover-sheet header{display:flex;border-bottom:3px solid #000;padding-bottom:12px;margin-bottom:17px;flex-direction:column;align-items:center;font-size:10px}.quick-cover-sheet header h1{margin:0 0 4px;font-size:18px}.quick-cover-sheet h2{margin:0 0 17px;text-align:center;font-size:23px;letter-spacing:.04em}.quick-cover-sheet table{width:100%;margin-bottom:15px;border-collapse:collapse;font-size:11px}.quick-cover-sheet th,.quick-cover-sheet td{border:1px solid #000;padding:8px;text-align:left}.quick-cover-sheet th{width:180px}.quick-return-block{margin-top:18px;border:2px solid #000;padding:13px 15px;font-size:11px}.quick-return-block h3{margin:0 0 7px;font-size:13px}.quick-return-block>strong{display:block;margin-bottom:7px;font-size:14px}.quick-return-block p{margin:4px 0}.quick-cover-sheet footer{margin-top:17px;border-top:1px solid #000;padding-top:8px;font-size:9px}.quick-fax-preview aside{display:flex;height:max-content;border-radius:9px;background:#fff;padding:15px;flex-direction:column;gap:6px}.quick-fax-preview aside strong{color:#b94e09}.quick-fax-preview aside small{color:#667085}.quick-fax-preview aside ul{margin:4px 0;padding-left:18px;font-size:10px}
.search-picker{position:relative;width:100%;min-width:0}.search-picker>[data-picker-input]{width:100%}.search-picker-results{position:absolute;z-index:110;left:0;right:0;top:calc(100% + 4px);max-height:285px;overflow-y:auto;background:#fff;border:1px solid #b9c4d3;border-radius:9px;box-shadow:0 14px 34px rgba(24,38,61,.22);padding:5px}.search-picker-results[hidden]{display:none}.search-picker-option{display:block;width:100%;border:0;background:#fff;color:#182337;text-align:left;border-radius:7px;padding:9px 10px}.search-picker-option+ .search-picker-option{margin-top:2px}.search-picker-option strong,.search-picker-option small{display:block}.search-picker-option small{margin-top:2px;color:#788397;font-size:10px}.search-picker-option:hover,.search-picker-option.active{background:#e9f2ff;box-shadow:inset 3px 0 #3478df}.search-picker-option.custom{border-top:1px solid #e0e5ec;border-radius:0;margin-top:5px;color:#6d5d37}.search-picker-empty{padding:11px;color:#7a8494;font-size:11px}.fax-nonfax .search-picker{width:215px}.fax-nonfax .search-picker>[data-picker-input]{width:100%}.fax-nonfax .search-picker-results{min-width:360px}.quick-lookup .search-picker{width:100%}.quick-lookup .search-picker-results{right:0}.fax-process-scroll .search-picker>[data-picker-input]{width:100%;border:1px solid #dce1e8;border-radius:8px;padding:9px;background:#fff}
@media(max-width:1450px){.fax-command-bar{overflow-x:auto;padding-bottom:3px}.fax-process-modal{grid-template-columns:245px minmax(360px,1fr) 390px}.fax-picker-page{height:230px}.fax-picker-scale{left:27px;transform:scale(.21)}}
.records-list{overflow:visible}.record-row{display:grid;grid-template-columns:1fr 1.2fr 2fr .7fr auto;align-items:center;gap:16px;padding:15px 18px;border-bottom:1px solid #edf0f4}.record-row:last-child{border:0}.record-row.header{background:#f7f9fc;color:#7b8699;text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:850;border-radius:18px 18px 0 0}.record-row strong,.record-row small{display:block}.record-row small{color:var(--muted);font-size:11px;margin-top:2px}.record-request{color:#43516a;font-size:13px}
.detail-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#fff,#edf9f5);border:1px solid #cfe5db;border-radius:20px;padding:24px 26px;box-shadow:var(--shadow);margin-bottom:18px}.detail-hero h2{font-size:30px;margin:8px 0 3px}.detail-hero p{margin:0;color:var(--muted)}.detail-actions{display:flex;align-items:center;gap:10px}.back-link{border:0;background:transparent;color:var(--blue);font-weight:750;padding:0 0 12px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.detail-card{background:white;border:1px solid var(--line);border-radius:15px;padding:17px}.detail-card span{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:850}.detail-card strong{display:block;font-size:16px;margin:6px 0 2px}.detail-card small{color:var(--muted)}.completed-sections{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.completed-section{background:white;border:1px solid var(--line);border-radius:16px;padding:0 17px 14px}.completed-section .section-head{margin:16px 0 8px}.completed-item{border-top:1px solid #edf0f4;padding:11px 0}.completed-item strong{display:block}.completed-item p{color:var(--muted);font-size:12px;margin:3px 0 0}.completed-empty{color:var(--muted);border-top:1px solid #edf0f4;padding:13px 0}
.file-button{display:inline-flex;align-items:center}.file-button input{display:none}.pdf-queue{background:white;border:1px solid var(--line);border-radius:18px;padding:0 18px 8px}.pdf-file{display:flex;align-items:center;gap:14px;border-top:1px solid #edf0f4;padding:14px 0}.pdf-file>div{flex:1}.pdf-file strong,.pdf-file small{display:block}.pdf-file small{color:var(--muted);margin-top:2px}.pdf-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:12px;background:var(--red-soft);color:var(--red);font-size:10px;font-weight:900}
@media(max-width:1050px){.hero{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.content{padding:22px}.topbar{padding:0 22px}.sidebar{padding-left:12px;padding-right:12px}}
@media(max-width:1180px){.directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.record-row{grid-template-columns:1fr 1fr 1.4fr auto}.record-row>*:nth-child(4){display:none}}
@media(max-width:720px){.app-shell{display:block}.sidebar{display:none}.content{padding:18px}.topbar{padding:0 18px}.cards,.grid-2,.grid-3,.review-grid,.directory-grid,.detail-grid,.completed-sections{grid-template-columns:1fr}.step span{display:none}.stepper{padding-left:12px;padding-right:12px}.wizard-body,.wizard-head,.wizard-foot{padding-left:17px;padding-right:17px}.patient-strip{margin-left:17px;margin-right:17px}.wizard-foot{flex-wrap:wrap}.hero h2{font-size:27px}.list-row{grid-template-columns:1fr auto}.list-row>*:nth-child(n+3):not(:last-child){display:none}.workspace-head,.detail-hero{align-items:stretch;flex-direction:column}.directory-tools{align-items:stretch;flex-direction:column}.directory-search{min-width:0}.record-row{grid-template-columns:1fr auto}.record-row>*:nth-child(2),.record-row>*:nth-child(3),.record-row>*:nth-child(4){display:none}.detail-actions{justify-content:space-between}}
@media(max-width:720px){.directory-bar{align-items:flex-start;flex-direction:column}.sex-filters{flex-wrap:wrap}.directory-list{margin-left:-4px;margin-right:-4px}.patient-directory .directory-row{min-width:820px}.provider-directory .directory-row{min-width:980px}}
@media(max-width:900px){.action-heading{align-items:stretch;flex-direction:column}.action-heading .primary{align-self:flex-start}.fax-summary{grid-template-columns:repeat(2,1fr)}.fax-review-layout{grid-template-columns:1fr}.fax-document-preview{min-height:300px}}
@media(max-width:720px){.page-heading h2{font-size:27px}.page-filter-row{align-items:flex-start}.fax-summary{grid-template-columns:1fr 1fr}.fax-page:nth-child(n+3){display:none}.fax-modal .modal-foot{flex-wrap:wrap}}
/* #421 (David's ruling 2026-09-10): the PAGE print rule — Print PVT, Ctrl+P / File → Print, the Fax Center print — hides
   every piece of fixed chrome that used to print over the visit: the top banner, the pill nav, the Daily Records Review
   tab + slide-out, the toasts, the Needs-David beacon / lighthouse pills (inside the banner), the record viewer. */
@media print{body{background:white}.sidebar,.topbar,.notice,.back-link,.detail-actions,.toast,.p3-toast-error,.p3-toast-info,.pvt3-banner,.p3-pillnav,.lh-beacon,.nd-beacon,.rp-back-pill,.pvt3-name-tip,#p3RenewalToken,.ms-undo-bar,.fu-modal{display:none!important}.app-shell{display:block}.content{padding:0;max-width:none}.detail-hero{box-shadow:none}.completed-section,.detail-card{break-inside:avoid}}

/* PVT2 parity hardening: PVT3 never requires horizontal page or workspace scrolling. */
html,body,#app,.app-shell,.main,.content{max-width:100%}html,body{overflow-x:hidden}.content>*{min-width:0}
.fax-command-bar{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;align-items:center;gap:10px 16px;overflow:visible!important;padding-bottom:0!important;white-space:normal}
.fax-command-bar>*{min-width:0;flex-shrink:1}.fax-command-primary,.fax-command-sync{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.fax-command-primary .fax-tabs{margin:0;flex-wrap:wrap}.fax-command-sync{justify-content:flex-end}.fax-command-bar .fax-refresh-age{margin-left:0}.fax-nonfax{min-width:0}.fax-nonfax .search-picker{width:min(215px,100%)}
.fax-admin-wrap{position:relative;flex:0 0 auto}.fax-admin-popover{position:absolute;right:0;top:calc(100% + 5px);z-index:120;display:flex;min-width:190px;flex-direction:column;gap:2px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 12px 30px rgba(24,38,61,.18)}.fax-admin-popover[hidden]{display:none}.fax-admin-popover button{width:100%;border:0;border-radius:6px;background:#fff;padding:8px 10px;color:#4d586b;text-align:left;font-size:11px;font-weight:700}.fax-admin-popover button:hover{background:var(--blue-soft);color:var(--blue-dark)}
.fax-work-card{max-width:100%;overflow:hidden}.fax-list-toolbar{min-width:0;min-height:42px;flex-wrap:wrap}.fax-list-toolbar .fax-status-filters{margin-left:auto}.fax-rich-list,.fax-sent-list{min-width:0;max-width:100%}
.fax-rich-row{min-width:0;grid-template-columns:24px 96px 48px minmax(148px,190px) 115px minmax(130px,.8fr) minmax(230px,auto);grid-template-areas:"check tools count thumbs date sender actions" "check tools count thumbs triage triage actions";gap:5px 9px;min-height:72px;padding:7px 10px}.fax-rich-row>.fax-row-check{grid-area:check}.fax-rich-row>.fax-icon-tools{grid-area:tools}.fax-rich-row>.fax-page-count{grid-area:count}.fax-rich-row>.fax-page-thumbs{grid-area:thumbs}.fax-rich-row>.fax-date{grid-area:date}.fax-rich-row>.fax-sender{grid-area:sender}.fax-rich-row>.fax-triage{grid-area:triage}.fax-rich-row>.fax-row-actions{grid-area:actions}.fax-rich-row .fax-page-thumbs{max-width:100%;overflow:hidden}.fax-rich-row .fax-page-thumb{width:31px;height:41px;flex-basis:31px}.fax-rich-row .fax-thumb-scale{transform:scale(.044)}
.fax-triage-input{width:100%;min-width:0;border:1px solid transparent;border-radius:5px;background:transparent;padding:5px 7px;color:var(--ink);font-size:12px;outline:0}.fax-triage-input:hover{border-color:#cbd3df;background:#f6f7f9}.fax-triage-input:focus{border-color:#72a6ee;background:#fff;box-shadow:0 0 0 3px var(--blue-soft)}.fax-triage-input.has-value{font-weight:750}.fax-triage-input::placeholder{color:#8c95a3;font-style:italic;font-weight:400}
.fax-sent-row{min-width:0;grid-template-columns:24px 45px minmax(160px,1fr) minmax(145px,.85fr) minmax(210px,1fr);grid-template-areas:"sentcheck sentview sentpreview sentdate sentresult" "sentcheck sentpatient sentpatient sentdestination sentresult";gap:7px 12px;padding:9px 12px}.fax-sent-row>.fax-row-check{grid-area:sentcheck}.fax-sent-row>.fax-view-link{grid-area:sentview}.fax-sent-row>.fax-sent-preview{grid-area:sentpreview}.fax-sent-row>.fax-sent-date{grid-area:sentdate}.fax-sent-row>.fax-sent-patient{grid-area:sentpatient;min-width:0}.fax-sent-row>.fax-sent-destination{grid-area:sentdestination;min-width:0}.fax-sent-row>.fax-sent-result{grid-area:sentresult}.fax-sent-patient strong,.fax-sent-patient span,.fax-sent-destination strong,.fax-sent-destination small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fax-sent-preview{max-width:100%;overflow:hidden}.fax-sent-preview .fax-page-thumb{width:31px;height:41px;flex-basis:31px}.fax-sent-preview .fax-thumb-scale{transform:scale(.044)}
.fax-picker-page{position:relative}.fax-picker-preview{position:absolute;inset:0;width:100%;border:0;background:transparent;padding:0}.fax-picker-preview:focus-visible{outline:3px solid rgba(52,120,223,.45);outline-offset:-4px}.fax-picker-check{position:absolute;left:8px;top:8px;z-index:4;display:flex;align-items:center;gap:6px;width:max-content;max-width:calc(100% - 16px);border:1px solid #cad2df;border-radius:7px;background:rgba(255,255,255,.96);padding:5px 8px;color:#536079;font-weight:750;cursor:pointer;box-shadow:0 2px 8px rgba(24,38,61,.12)}.fax-picker-check input{width:18px;height:18px;accent-color:var(--mint);cursor:pointer}.fax-picker-check span{font-size:10px;white-space:nowrap}
@media(max-width:1500px){.fax-command-bar{grid-template-columns:minmax(0,1fr) auto}.fax-command-primary{flex-wrap:nowrap}.fax-command-sync{grid-column:1/-1;justify-content:flex-end}.fax-process-modal{grid-template-columns:245px minmax(0,1fr) 390px}}
@media(max-width:1100px){.fax-process-modal{width:100vw;height:100vh;border-radius:0;grid-template-columns:210px minmax(0,1fr) 340px}.fax-picker-page{height:210px}.fax-picker-scale{left:24px;transform:scale(.19)}}
@media(max-width:900px){.fax-command-bar{grid-template-columns:1fr}.fax-command-sync{grid-column:auto;justify-content:flex-start}.fax-rich-row{grid-template-columns:24px 88px 44px minmax(135px,1fr) minmax(130px,1fr);grid-template-areas:"check tools count thumbs date" "sender sender sender triage triage" "actions actions actions actions actions"}.fax-row-actions{justify-content:flex-end}.fax-sent-row{grid-template-columns:24px 45px minmax(140px,1fr) minmax(130px,1fr);grid-template-areas:"sentcheck sentview sentpreview sentdate" "sentpatient sentpatient sentdestination sentdestination" "sentresult sentresult sentresult sentresult"}.fax-sent-result{display:flex;align-items:center;gap:8px;flex-wrap:wrap;text-align:left}.fax-sent-result .pill{margin-left:0}.fax-process-modal{grid-template-columns:180px minmax(0,1fr) 310px}.fax-pages-head{gap:6px;padding:0 7px}.fax-pages-head button{font-size:9px}.fax-process-head button{font-size:9px;padding:5px}.fax-process-scroll{padding-left:10px;padding-right:10px}}
@media(max-width:720px){.directory-list{overflow:hidden}.patient-directory .directory-row,.provider-directory .directory-row{min-width:0;grid-template-columns:minmax(0,1fr) auto}.patient-directory .directory-row>*:nth-child(n+2):not(:last-child),.provider-directory .directory-row>*:nth-child(n+2):not(:last-child){display:none}.fax-command-primary{align-items:stretch;flex-direction:column}.fax-command-primary .fax-tabs{width:100%}.fax-command-primary .fax-tab{flex:1;padding-left:7px;padding-right:7px}.fax-quick{width:100%}.fax-nonfax{align-items:stretch;flex-direction:column}.fax-nonfax .search-picker{width:100%}.fax-command-sync{gap:6px}.fax-refresh-age{display:none}.fax-rich-row{grid-template-columns:24px 88px 44px minmax(0,1fr);grid-template-areas:"check tools count date" "thumbs thumbs thumbs thumbs" "sender sender triage triage" "actions actions actions actions"}.fax-rich-row>.fax-page-thumbs{justify-content:flex-start}.fax-sent-row{grid-template-columns:24px 45px minmax(0,1fr);grid-template-areas:"sentcheck sentview sentdate" "sentpreview sentpreview sentpreview" "sentpatient sentpatient sentpatient" "sentdestination sentdestination sentdestination" "sentresult sentresult sentresult"}.fax-process-modal{grid-template-columns:150px minmax(0,1fr) 280px}.fax-process-head>strong{display:none}}

/* PVT2 Global Settings + directory parity. The desktop tables always fit the
   content pane; no horizontal scrollbar is introduced. */
.settings-safety,.settings-migration{display:flex;align-items:center;gap:14px;margin-bottom:14px;border:1px solid #ebcf8b;border-radius:13px;background:#fff9e8;padding:13px 16px}.settings-safety>span:first-child{font-size:22px}.settings-safety>div{min-width:0;flex:1}.settings-safety strong,.settings-migration strong{display:block;color:#513b09}.settings-safety p,.settings-migration p{margin:3px 0 0;color:#745b20;font-size:12px}.settings-migration{border-color:#cfd9e7;background:#fff}.settings-migration>div:first-child{min-width:0;flex:1}.settings-migration>div:not(:first-child){min-width:110px;border-left:1px solid #e3e8ef;padding-left:15px;text-align:center}.settings-migration>div:not(:first-child) span{display:block;color:#1f3f72;font-size:23px;font-weight:850}.settings-migration>div:not(:first-child) small{color:#748096;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.settings-groups{display:grid;gap:10px}.settings-group{overflow:hidden;border:1px solid #dbe2eb;border-radius:13px;background:#fff;box-shadow:0 4px 14px rgba(25,42,68,.035)}.settings-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:13px 16px;color:#1d2b42;font-weight:800}.settings-group>summary::-webkit-details-marker{display:none}.settings-group>summary:after{content:'+';order:3;color:#6f7d92;font-size:17px}.settings-group[open]>summary:after{content:'−'}.settings-group>summary small{margin-left:auto;color:#8893a4;font-size:10px;font-weight:600}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 14px;border-top:1px solid #edf0f4;padding:15px 16px}.settings-field,.settings-secret,.settings-locked{min-width:0}.settings-field.wide{grid-column:1/-1}.settings-field label,.settings-secret label,.settings-locked label{display:block;margin-bottom:4px;color:#657187;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.settings-field input,.settings-field select,.settings-field textarea,.directory-form-section input,.directory-form-section select,.directory-form-section textarea{width:100%;min-width:0;border:1px solid #d5dde8;border-radius:9px;background:#fff;padding:9px 10px;color:#17243a;font:inherit;font-size:12px}.settings-field textarea,.directory-form-section textarea{min-height:72px;resize:vertical}.settings-field input[readonly]{background:#f3f5f8;color:#7f8999}.settings-secret,.settings-locked{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #ead394;border-radius:9px;background:#fff9e9;padding:9px 11px}.settings-secret strong,.settings-locked strong{display:block;color:#5b450c;font-size:12px}.settings-secret small,.settings-locked small{display:block;margin-top:2px;color:#8a7343;font-size:9px}.integration-status{display:block;margin-top:10px}.integration-status>summary:after{display:none}.integration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-top:1px solid #edf0f4;padding:14px}.integration-grid article{border:1px solid #e0e6ee;border-radius:10px;padding:11px}.integration-grid article>strong{display:inline-block;margin-right:7px}.integration-grid p{margin:7px 0 0;color:#6d7889;font-size:10px;line-height:1.45}.pill.gray{background:#edf0f4;color:#687386}.p3-patient-directory .directory-row{grid-template-columns:minmax(155px,1.25fr) minmax(82px,.62fr) minmax(112px,.76fr) minmax(92px,.64fr) minmax(70px,.48fr) minmax(110px,.75fr) minmax(262px,1.1fr);min-width:0;gap:10px;padding:10px 12px}.p3-provider-directory .directory-row{grid-template-columns:minmax(155px,1.15fr) minmax(105px,.76fr) minmax(150px,1fr) minmax(85px,.58fr) minmax(115px,.77fr) minmax(92px,.62fr) 72px;min-width:0;gap:10px;padding:10px 12px}.p3-patient-directory,.p3-provider-directory{overflow:hidden}.directory-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px}.directory-actions button{font-size:10px}.directory-editor{width:min(1040px,96vw)}.directory-form-section{margin-bottom:13px;border:1px solid #e0e5ed;border-radius:11px;padding:12px 14px}.directory-form-section:last-child{margin-bottom:0}.directory-form-section h4{margin:0 0 11px;color:#243653;font-size:14px}.directory-form-section .settings-grid{border:0;padding:0}.directory-form-section .field{margin:0}.directory-form-section .field.wide{grid-column:1/-1}.directory-form-section label{display:block;margin-bottom:4px;color:#647188;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}/* #295 (David, 2026-08-28) — provider Merge Into… / Delete section. Reuses .directory-form-section's
   own input/button styling; only the results list and the action-row spacing are new. */
.provider-merge-actions button,.provider-merge-picker>button,.provider-merge-confirm button{margin-right:8px;cursor:default}
.provider-merge-picker input{margin-bottom:9px}
.provider-merge-results{display:flex;flex-direction:column;gap:6px;margin-bottom:9px;max-height:180px;overflow-y:auto}
.provider-merge-result{text-align:left;border:1px solid #e0e5ed;border-radius:8px;background:#fff;padding:8px 10px;font-size:12px;color:#243653;cursor:default}
.provider-merge-result:hover{background:#f2f6fb;border-color:#b9d4fa}
.provider-merge-empty{color:#8893a4;font-size:11px;padding:4px 0}
.provider-merge-confirm p{margin:0 0 11px;font-size:12px;color:#374357}
/* #299 (David, 2026-08-28) — shared error banner + reset-confirm dialog for every decisive
   globalSettings save (Imaging Study Settings, the chip manager, #300's Visit Types). Reuses
   .mr-error's exact look (membership-renewals.css) so a "not saved" message reads the same
   everywhere in PVT3 — one style, not a new one per surface. */
.p3-settings-error{border:1px solid #eccaca;background:#fdf5f5;color:#7c2d2d;border-radius:8px;padding:8px 12px;font-size:12px;margin-bottom:12px}
.p3-settings-confirm{padding:6px 2px}
.p3-settings-confirm p{margin:0 0 13px;font-size:13px;color:#374357;line-height:1.5}
.p3-settings-confirm button{margin-right:8px;cursor:default}
.pf-link-preview,.consent-warning,.endpoint-warning{margin-top:9px;border-radius:8px;background:#f2f6fb;padding:9px 11px;color:#536178;font-size:10px}.pf-link-preview strong,.pf-link-preview small{display:block}.pf-link-preview small{margin-top:3px;color:#7d899b}.consent-warning,.endpoint-warning{border:1px solid #ebd08c;background:#fff9e7;color:#725512}
@media(max-width:1100px){.p3-patient-directory .directory-row{grid-template-columns:minmax(150px,1.2fr) 80px 105px 82px 62px minmax(155px,1fr)}.p3-patient-directory .directory-row>*:nth-child(6){display:none}.p3-provider-directory .directory-row{grid-template-columns:minmax(150px,1fr) 100px minmax(145px,1fr) 100px 88px 65px}.p3-provider-directory .directory-row>*:nth-child(4){display:none}.integration-grid{grid-template-columns:1fr}}
@media(max-width:720px){.settings-grid{grid-template-columns:1fr}.settings-field.wide,.directory-form-section .field.wide{grid-column:auto}.settings-migration{align-items:flex-start;flex-wrap:wrap}.settings-migration>div:not(:first-child){border-left:0;padding-left:0}.directory-search-actions{align-items:stretch;flex-direction:column}.directory-search-actions>button{align-self:flex-start}.p3-patient-directory .directory-row,.p3-provider-directory .directory-row{grid-template-columns:minmax(0,1fr) auto}.p3-patient-directory .directory-row>*:not(:first-child):not(:last-child),.p3-provider-directory .directory-row>*:not(:first-child):not(:last-child){display:none}.directory-actions .compact-button{display:none}}

/* Fax Center parity: desktop tools and every fax stay on one compact PVT2-style line. */
/* 2026-08-18 (David's order, Dr. Becker's report): the left nav NEVER collapses to icons-only. The old 1450px/1050px breakpoints hid every label on any window narrower than 1450 CSS px — her screen — while wider screens (David's) kept the words. Words always; on narrower windows the content pads down instead. */
@media(max-width:1450px) and (min-width:721px){.content{padding:25px}.topbar{padding:0 25px}}
.fax-command-bar{display:grid!important;grid-template-columns:max-content minmax(270px,1fr) max-content!important;align-items:center;gap:8px!important;margin-bottom:8px;overflow:visible!important;white-space:nowrap!important}
.fax-command-tabs,.fax-command-center,.fax-command-sync,.fax-command-tabs .fax-tabs{display:flex;align-items:center;min-width:0;gap:5px;flex-wrap:nowrap!important}.fax-command-center{justify-content:center;gap:8px}.fax-command-sync{grid-column:auto!important;justify-content:flex-end!important}.fax-command-bar .fax-tabs{margin:0}.fax-command-bar .fax-tab{padding:6px 8px;font-size:10.5px;border-radius:7px}.fax-command-bar .fax-tab span{margin-left:3px;padding:1px 4px;font-size:9px}
.fax-quick{min-width:104px;padding:8px 12px;border-radius:6px;background:#f06410;font-size:11px}.fax-quick:hover{background:#d95308}.fax-nonfax{gap:5px;font-size:10.5px;white-space:nowrap}.fax-nonfax .search-picker{width:140px}.fax-nonfax .search-picker>[data-picker-input]{padding:7px 8px;font-size:10.5px}.fax-nonfax .search-picker-results{min-width:310px}.fax-command-bar .fax-refresh-age{margin:0;font-size:9px}.fax-command-bar .fax-tool{padding:7px 8px;font-size:10px;border-radius:7px}.fax-command-bar .fax-refresh-icon{width:30px;padding-left:0;padding-right:0}.fax-command-bar .fax-last-pull{padding:6px 7px;font-size:9px}.fax-command-bar .fax-admin-tools{padding:6px 3px;font-size:9.5px}
.fax-list-toolbar{min-height:36px;flex-wrap:nowrap!important;padding:6px 10px;font-size:11px}.fax-list-toolbar .fax-status-filters{flex-wrap:nowrap}.fax-list-toolbar .fax-filter{padding:4px 8px;font-size:10px}
.fax-rich-row{display:flex!important;align-items:center;gap:6px;min-width:0!important;min-height:54px!important;padding:5px 8px!important}.fax-rich-row>*{min-width:0}.fax-rich-row>.fax-row-check{flex:0 0 16px;width:16px;height:16px}.fax-rich-row>.fax-icon-tools{flex:0 0 78px;gap:3px}.fax-rich-row .fax-icon-tools button{width:24px;height:24px;font-size:11px}.fax-rich-row>.fax-page-count{flex:0 0 38px;padding:4px 2px;font-size:9.5px}.fax-rich-row>.fax-page-thumbs{flex:0 0 142px;width:142px;height:43px;gap:3px;overflow:hidden}.fax-rich-row .fax-page-thumb{width:27px;height:36px;flex-basis:27px}.fax-rich-row .fax-thumb-scale{transform:scale(.038)}
.fax-rich-row>.fax-date{display:flex;align-items:baseline;gap:4px;flex:0 0 138px;white-space:nowrap}.fax-date b,.fax-date strong,.fax-date span{font-size:9.5px}.fax-rich-row>.fax-sender{flex:0 0 165px;padding-left:0;border-left:0}.fax-known-sender{display:flex;align-items:center;gap:4px;width:100%;min-width:0;border:0;background:transparent;padding:0;text-align:left;cursor:pointer}.fax-known-sender strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:3px solid #888780;padding-left:6px;font-size:10.5px}.fax-known-sender span{flex:0 0 auto;border-radius:999px;padding:2px 5px;font-size:8.5px;font-weight:750}.fax-sender.unknown{display:flex;align-items:center;gap:4px;white-space:nowrap}.fax-sender.unknown small{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:9.5px}.fax-name-sender{flex:0 0 auto;border:1px dashed rgba(184,134,11,.45);border-radius:999px;background:rgba(184,134,11,.1);padding:2px 5px;color:#9b7107;font-size:8.5px;font-weight:750;cursor:pointer}.fax-sender.manual strong,.fax-sender.manual small{font-size:9.5px}.fax-rich-row>.fax-triage{flex:1 1 160px}.fax-triage-input{padding:4px 5px;font-size:10.5px;line-height:1.2}.fax-triage>small{font-size:8.5px;margin-top:1px}.fax-rich-row>.fax-row-actions{flex:0 0 auto;gap:4px}.fax-row-actions .fax-provider-reply{padding:6px 7px;font-size:9.5px}.fax-row-actions .fax-process-btn{padding:7px 11px;font-size:10px}.fax-row-actions .fax-trash-icon,.fax-row-actions .fax-block-icon{padding:3px;font-size:14px}
.fax-sent-row{min-width:0!important;display:grid;grid-template-columns:18px 34px 140px 110px minmax(160px,1fr) minmax(120px,.7fr) minmax(165px,.85fr)!important;grid-template-areas:"sentcheck sentview sentpreview sentdate sentpatient sentdestination sentresult"!important;align-items:center;gap:6px!important;min-height:58px;padding:6px 9px}.fax-sent-row>.fax-sent-result{display:block;min-width:0;text-align:right}.fax-sent-row>.fax-sent-result b,.fax-sent-row>.fax-sent-result small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fax-sent-row>.fax-sent-preview{display:flex;align-items:center;gap:5px;overflow:hidden}.fax-sent-preview .fax-page-thumbs{height:40px}.fax-sent-preview .fax-page-thumb{width:27px;height:36px;flex-basis:27px}.fax-sent-preview .fax-thumb-scale{transform:scale(.038)}
.fax-sent-row>.fax-sent-result{display:flex!important;align-items:center;justify-content:flex-end;gap:4px;max-height:46px;overflow:hidden;white-space:nowrap}.fax-sent-result .pill{flex:0 0 auto;margin:0;padding:3px 6px;font-size:9px}.fax-sent-result>b{flex:1 1 55px;max-width:72px;color:#a12b2b;font-size:8.5px;line-height:1.15}.fax-sent-result>div{display:flex;flex:0 0 auto;gap:3px}.fax-sent-result>div button{padding:3px 5px;font-size:8.5px;white-space:nowrap}.fax-sent-result>small{flex:0 1 62px;font-size:8px}.fax-sent-result:has(.pill.red)>small{display:none}
.quick-lookup .search-picker{margin-top:0}.quick-fax-modal .quick-lookup>button{background:#f06410}
.sender-editor-modal{width:min(720px,94vw)}.sender-defaults-title{margin:5px 0 12px;border-top:1px solid var(--line);padding-top:15px;color:#667085;font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.sender-editor-foot{justify-content:space-between}.sender-editor-foot>div{display:flex;gap:8px}.danger-link{border:0;background:transparent;color:#a12b2b;font-weight:750}.sender-directory-modal{width:min(920px,96vw);max-height:88vh}.sender-directory-tools{display:flex;align-items:center;gap:16px;padding:14px 22px;border-bottom:1px solid var(--line)}.sender-directory-tools .directory-search{flex:1;min-width:0}.sender-directory-tools>span{color:var(--muted);font-size:11px}.sender-directory-table{min-height:240px;max-height:58vh;overflow-y:auto;padding:0 14px}.sender-directory-row{display:grid;grid-template-columns:minmax(170px,1.4fr) 90px 130px 140px 55px 80px;align-items:center;gap:10px;width:100%;min-height:43px;border:0;border-bottom:1px solid #edf0f4;background:#fff;padding:7px 9px;color:var(--ink);text-align:left;font-size:11px}.sender-directory-row:not(.head){cursor:pointer}.sender-directory-row:not(.head):hover{background:#f7f9fc}.sender-directory-row.head{position:sticky;top:0;z-index:2;min-height:34px;color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.sender-directory-row strong,.sender-directory-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1050px) and (min-width:721px){.fax-command-bar{grid-template-columns:max-content minmax(230px,1fr) max-content!important}.fax-command-bar .fax-tab{padding-left:6px;padding-right:6px}.fax-command-bar .fax-refresh-age,.fax-command-bar .fax-last-pull{display:none}.fax-rich-row>.fax-page-thumbs{flex-basis:115px;width:115px}.fax-rich-row>.fax-date{flex-basis:120px}.fax-rich-row>.fax-sender{flex-basis:145px}.fax-row-actions .fax-provider-reply{max-width:82px;overflow:hidden;text-overflow:ellipsis}.fax-sent-row{grid-template-columns:18px 32px 115px 95px minmax(145px,1fr) 110px 150px!important}}
@media(max-width:900px) and (min-width:721px){.fax-command-bar #refreshFaxStatusesText{display:none}.fax-rich-row>.fax-icon-tools{display:none}.fax-command-center{gap:5px}.fax-quick{min-width:90px}.fax-nonfax .search-picker{width:120px}.fax-sent-row{grid-template-columns:18px 32px 95px 85px minmax(120px,1fr) 95px 135px!important}}
@media(max-width:720px){.fax-command-bar{display:flex!important;align-items:center;gap:4px!important}.fax-command-tabs{flex:1}.fax-command-center{flex:1}.fax-command-sync{flex:0 0 auto}.fax-command-bar .fax-tab{padding:5px}.fax-command-bar .fax-tab span,.fax-nonfax,.fax-command-sync>*:not(.fax-admin-wrap){display:none}.fax-quick{min-width:80px}.fax-rich-row{gap:4px}.fax-rich-row>.fax-icon-tools,.fax-rich-row>.fax-page-count,.fax-rich-row>.fax-page-thumbs{display:none}.fax-rich-row>.fax-date{flex-basis:92px}.fax-rich-row>.fax-sender{flex-basis:110px}.fax-rich-row>.fax-triage{flex-basis:80px}.fax-row-actions .fax-provider-reply,.fax-row-actions .fax-trash-icon,.fax-row-actions .fax-block-icon{display:none}.fax-sent-row{grid-template-columns:18px 34px 80px minmax(120px,1fr) 120px!important;grid-template-areas:"sentcheck sentview sentdate sentpatient sentresult"!important}.fax-sent-preview,.fax-sent-destination{display:none!important}.sender-directory-row{grid-template-columns:minmax(150px,1fr) 100px 100px}.sender-directory-row>*:nth-child(2),.sender-directory-row>*:nth-child(5),.sender-directory-row>*:nth-child(6){display:none}}

/* Active PVT and module queues: compact PVT2-style operational surfaces. */
/* THE NAV MUST BE ABLE TO SCROLL TO ITS LAST ITEM.
   `overflow-y:auto` alone does nothing here: a grid/flex child's default
   min-height is `auto`, so the sidebar stretched to its 1262px of content
   inside a 950px viewport instead of scrolling, and Fax Center, Split & Save
   PDF, Readiness, Document AI and Settings sat permanently off-screen with no
   way to reach them. Measured in production, not guessed. `min-height:0` is
   what lets the box actually be shorter than its content and scroll. */
.sidebar{overflow-y:auto;min-height:0}.sidebar .nav-link{padding:9px 12px;margin:1px 0}.sidebar .nav-label{padding-top:6px;padding-bottom:4px}.compact-heading{align-items:flex-end;margin-bottom:12px}.compact-heading h2{font-size:27px;margin-top:4px}.compact-heading p{font-size:13px}.pvt-tabs{display:flex;align-items:center;gap:6px;margin-bottom:9px}.pvt-tabs button,.pvt-filterbar button,.queue-filterbar button{border:1px solid var(--line);border-radius:8px;background:#fff;color:#5b6679;font-size:10.5px;font-weight:760;white-space:nowrap}.pvt-tabs button{padding:7px 13px}.pvt-tabs button span,.pvt-filterbar button span,.queue-filterbar button span{margin-left:3px;border-radius:999px;background:#edf0f5;padding:1px 5px;font-size:9px}.pvt-tabs button.active{border-color:#c6d6b0;background:#e9f6d9;color:#416a1b}.pvt-tabs button.active span,.pvt-filterbar button.active span,.queue-filterbar button.active span{background:rgba(255,255,255,.64)}
.pvt-filterbar,.queue-filterbar{display:flex;align-items:center;gap:5px;min-width:0;margin-bottom:10px;white-space:nowrap}.pvt-filterbar button,.queue-filterbar button{padding:5px 7px}.pvt-filterbar button.active,.queue-filterbar button.active{border-color:#24344d;background:#24344d;color:#fff}.pvt-filterbar button.pinned:not(.active){border-color:#e5c982;color:#854f0b}.pvt-filterbar label,.queue-filterbar label{display:flex;align-items:center;gap:5px;min-width:0;margin-left:auto;color:var(--muted);font-size:10px;font-weight:750}.pvt-filterbar select,.queue-filterbar select{max-width:190px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:6px 25px 6px 7px;color:#475369;font-size:10px}
.pvt-table{width:100%;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 7px 22px rgba(45,58,87,.045)}.pvt-table-head,/* CLOSE THE DEAD GAP (David, 2026-08-09).
   The patient column was minmax(170px,1.45fr) — it took 1.45 shares of the free
   space while the doctor's visit text got 1.2. Measured at a 1600px viewport:
   the patient cell was 458px wide to hold a longest name of 99px of TEXT, so
   378px of dead run sat between the names and the date, while 21 of 63 rows
   truncated their visit text (one needed 1003px and was given 379px).
   The patient track is now FIXED at 170px: the longest name ends ~110px in, so
   the date column starts ~90px after it — close, not cramped — and every pixel
   reclaimed goes to the visit-type column via 1fr. It cannot be max-content:
   each ROW is its own grid, so a content-sized track would differ per row and
   the columns would stop lining up. */
.pvt-table-row{display:grid;grid-template-columns:170px 105px minmax(155px,1fr) repeat(4,68px);align-items:center;gap:8px;width:100%;min-width:0}.pvt-table-head{min-height:32px;padding:6px 11px;background:#f5f7fa;color:#7b8699;font-size:9px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.pvt-table-row{min-height:48px;border:0;border-top:1px solid #e7ebf1;background:#fff;padding:6px 11px;color:var(--ink);text-align:left;font-size:11px}.pvt-table-row:nth-child(odd){background:#fafbfc}.pvt-table-row:hover{background:#f0f6ff}.pvt-table-row.draft{border-left:3px solid var(--amber)}.pvt-table-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pvt-table-row>span:nth-child(n+4),.pvt-table-head>span:nth-child(n+4){text-align:center}.pvt-table-row small{display:block;overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.pvt-table-row em{display:inline-block;margin-left:6px;border-radius:999px;background:var(--amber-soft);padding:1px 5px;color:#8b580b;font-size:8px;font-style:normal;font-weight:800}.pvt-patient-cell{display:flex;align-items:center;gap:5px}.pvt-patient-cell strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.pvt-pin{flex:0 0 auto;color:#BA7517;font-size:10px;font-style:normal}.pvt-module-count{display:inline-grid;place-items:center;min-width:26px;height:23px;border-radius:6px;font-weight:850}.pvt-module-count.open{background:#fff1d6;color:#8b580b}.pvt-module-count.clear{background:#e8f8f1;color:#087b59}.pvt-module-zero{color:#9aa3b2}.pvt-table-empty{padding:35px;text-align:center;color:var(--muted);font-size:12px}
.queue-heading{margin-bottom:10px}.queue-filterbar{margin-bottom:9px}.queue-card{width:100%;min-width:0;overflow:hidden;border:1px solid #d9dee7;border-radius:12px;background:#fff;box-shadow:0 7px 22px rgba(45,58,87,.045)}.queue-banner{display:flex;align-items:center;justify-content:space-between;min-height:31px;padding:5px 11px;background:var(--queue-accent);color:#fff;font-size:10px}.queue-banner span{opacity:.85}.queue-grid-head,.queue-grid-row{display:grid;align-items:center;gap:7px;min-width:0}.queue-grid-head{min-height:31px;padding:5px 9px;background:#f5f6f8;color:#7b8699;font-size:8.5px;font-weight:850;letter-spacing:.055em;text-transform:uppercase}.queue-grid-row{min-height:49px;border-top:1px solid #e4e8ef;padding:5px 9px;color:#344054;font-size:10px}.queue-grid-row:nth-child(odd){background:#fafbfc}.queue-grid-row:hover{background:#f5f8fc}.queue-grid-row>*{min-width:0;overflow:hidden;text-overflow:ellipsis}.queue-grid-row strong,.queue-grid-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-grid-row small{color:var(--muted);font-size:8.5px}.queue-long{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal!important;line-height:1.25}.queue-status{width:100%;min-width:0;border:1px solid #d7dee9;border-radius:6px;background:#fff;padding:5px 21px 5px 6px;color:#475369;font-size:9px;font-weight:680}.queue-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0}.queue-actions .mini-btn{padding:5px 6px;font-size:8.5px;white-space:nowrap}.queue-age{font-weight:750}.queue-age.old,.queue-overdue{color:#b13232;font-weight:850}.queue-draft-tag{display:inline-block;margin-top:2px;border-radius:999px;background:var(--amber-soft);padding:1px 5px;color:#8b580b;font-size:7.5px;font-style:normal;font-weight:800}.stat-label{display:inline-block;border-radius:4px;background:#fee2e2;padding:1px 4px;color:#991b1b;font-size:8px}.queue-empty{padding:36px;text-align:center;color:var(--muted);font-size:12px}
.queue-card[data-queue-type="referrals"] .queue-grid-head,.queue-card[data-queue-type="referrals"] .queue-grid-row{grid-template-columns:minmax(118px,.85fr) minmax(140px,1.55fr) minmax(84px,.6fr) 72px minmax(118px,.8fr) 72px 30px 150px}.queue-card[data-queue-type="records"] .queue-grid-head,.queue-card[data-queue-type="records"] .queue-grid-row{grid-template-columns:minmax(118px,.82fr) minmax(122px,.86fr) minmax(175px,1.7fr) 72px 72px minmax(116px,.8fr) 30px 150px}.queue-card[data-queue-type="imaging"] .queue-grid-head,.queue-card[data-queue-type="imaging"] .queue-grid-row{grid-template-columns:minmax(120px,1fr) minmax(135px,1.1fr) minmax(105px,.85fr) 76px minmax(125px,1fr) 76px minmax(90px,.75fr) 114px}.queue-card[data-queue-type="labs"] .queue-grid-head,.queue-card[data-queue-type="labs"] .queue-grid-row{grid-template-columns:minmax(120px,1fr) minmax(145px,1.15fr) minmax(90px,.75fr) 76px minmax(120px,1fr) minmax(125px,1fr) 32px 114px}.queue-card[data-queue-type="nextvisits"] .queue-grid-head,.queue-card[data-queue-type="nextvisits"] .queue-grid-row{grid-template-columns:minmax(120px,1fr) minmax(110px,.9fr) minmax(130px,1.05fr) minmax(95px,.8fr) minmax(105px,.85fr) 80px minmax(130px,1.1fr) 114px}
.pvt-workspace-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:12px}.pvt-workspace-hero h2{margin:5px 0 2px;font-size:27px}.pvt-workspace-hero p{margin:0;color:var(--muted);font-size:12px}.pvt-workspace-actions{display:flex;align-items:center;gap:6px}.pvt-workspace-actions button{padding:7px 10px;border-radius:8px;font-size:10px;font-weight:760}.pin-active{border:1px solid #BA7517;background:#BA7517;color:#fff}.retire-button{border:1px solid #f1cb76;background:#fffbeb;color:#a15c08}.retired-notice{display:flex;align-items:center;gap:12px;margin-bottom:10px;border:1px solid #f1cb76;border-radius:10px;background:#fffbeb;padding:9px 12px;color:#854f0b;font-size:11px}.pvt-identity-strip{display:grid;grid-template-columns:1.5fr .65fr .8fr;gap:8px;margin-bottom:9px}.pvt-identity-strip>div{min-width:0;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 11px}.pvt-identity-strip small,.pvt-identity-strip strong,.pvt-identity-strip span{display:block}.pvt-identity-strip small{color:var(--muted);font-size:8px;font-weight:850;letter-spacing:.07em}.pvt-identity-strip strong{font-size:13px}.pvt-identity-strip span{color:var(--muted);font-size:9px}.pvt-add-strip{display:flex;align-items:center;gap:5px;margin-bottom:9px;border:1px solid #cfe0f7;border-radius:10px;background:#f2f7ff;padding:7px 9px}.pvt-add-strip>strong{margin-right:5px;color:#48617f;font-size:10px}.pvt-add-strip button{border:1px solid color-mix(in srgb,var(--add-color) 38%,white);border-radius:7px;background:#fff;padding:5px 7px;color:var(--add-color);font-size:9px;font-weight:760;white-space:nowrap}.pvt-workspace-sections{display:grid;gap:9px}.pvt-work-section,.pvt-next-card{overflow:hidden;border:1px solid #dfe4eb;border-left:4px solid var(--module-accent);border-radius:10px;background:#fff}.pvt-work-head{display:flex;align-items:center;gap:8px;min-height:34px;background:var(--module-soft);padding:5px 9px}.pvt-work-head h3{margin:0;color:var(--module-accent);font-size:11px}.pvt-work-head>span{border-radius:999px;background:#fff;padding:2px 6px;color:var(--module-accent);font-size:8px;font-weight:800}.pvt-work-head>button{margin-left:auto;padding:4px 7px;font-size:8.5px}.pvt-work-row{display:grid;grid-template-columns:minmax(0,1fr) 180px 112px;align-items:center;gap:8px;min-height:43px;border-top:1px solid #edf0f4;padding:5px 9px;font-size:10px}.pvt-work-row:nth-child(odd){background:#fafbfc}.pvt-work-row strong,.pvt-work-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pvt-work-row small{color:var(--muted);font-size:8.5px}.pvt-work-empty{padding:12px;color:var(--muted);font-size:10px}.danger-text{color:#a33131!important}.pvt-next-card{border-left-color:#0E7490;padding:0}.pvt-next-card.empty{display:flex;align-items:center;justify-content:space-between;padding:11px 13px}.pvt-next-card.empty h3,.pvt-next-card.empty p{margin:0}.pvt-next-card.empty h3{font-size:12px;color:#0E7490}.pvt-next-card.empty p{font-size:9px;color:var(--muted)}.pvt-next-head{display:flex;align-items:center;gap:8px;min-height:34px;background:#eaf6f8;padding:5px 9px}.pvt-next-head h3{margin:0;color:#0E7490;font-size:11px}.pvt-next-head .queue-actions{margin-left:auto}.pvt-next-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:9px}.pvt-next-grid small,.pvt-next-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pvt-next-grid small{color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase}.pvt-next-grid strong{font-size:9.5px}.wizard-final-summary{display:flex;align-items:center;justify-content:space-between;border:1px solid #cfe5db;border-radius:10px;background:#edf9f5;padding:11px 13px}.wizard-final-summary strong{color:#087b59}.wizard-final-summary span{color:var(--muted);font-size:11px}
@media(max-width:1100px) and (min-width:721px){.pvt-filterbar button,.queue-filterbar button{padding-left:5px;padding-right:5px;font-size:9px}.pvt-filterbar select,.queue-filterbar select{max-width:145px}.pvt-table-head,.pvt-table-row{grid-template-columns:150px 86px minmax(135px,1fr) repeat(4,54px)}.queue-grid-head,.queue-grid-row{font-size:9px;gap:5px}.queue-card[data-queue-type] .queue-grid-head,.queue-card[data-queue-type] .queue-grid-row{grid-template-columns:minmax(115px,1fr) minmax(120px,1fr) minmax(120px,1fr) 72px minmax(115px,.95fr) 72px 30px 68px}.queue-card[data-queue-type="imaging"] .queue-grid-head,.queue-card[data-queue-type="imaging"] .queue-grid-row,.queue-card[data-queue-type="nextvisits"] .queue-grid-head,.queue-card[data-queue-type="nextvisits"] .queue-grid-row{grid-template-columns:minmax(115px,1fr) minmax(120px,1fr) minmax(100px,.85fr) 72px minmax(115px,.95fr) 72px minmax(85px,.75fr) 68px}.queue-actions{flex-direction:column;gap:2px}.queue-actions .mini-btn{width:100%;padding:3px}.pvt-add-strip>strong{display:none}}
@media(max-width:820px){.pvt-filterbar button:nth-of-type(4),.pvt-filterbar button:nth-of-type(8),.pvt-filterbar button:nth-of-type(9),.queue-filterbar button:nth-last-of-type(1),.queue-filterbar button:nth-last-of-type(2){display:none}.pvt-table-head,.pvt-table-row{grid-template-columns:145px 82px minmax(120px,1fr) repeat(4,45px);gap:4px}.pvt-work-row{grid-template-columns:minmax(0,1fr) 150px 65px}.pvt-next-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Create PVT parity layer: translated directly from the PVT2 workflow. */
html,body{max-width:100%;overflow-x:hidden}.p3-wizard{min-height:0}.p3-wizard .wizard-head{padding-bottom:14px}.p3-road{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:17px 28px 15px}.p3-road-step{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;border:0;background:transparent;color:#8a94a5;font-size:10px;font-weight:760;cursor:pointer}.p3-road-step:before{content:"";position:absolute;left:-50%;right:50%;top:15px;height:2px;background:#e2e6ec}.p3-road-step:first-child:before{display:none}.p3-road-step>span{position:relative;z-index:1;display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border:2px solid #d8dee8;border-radius:50%;background:#fff;font-size:11px}.p3-road-step>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p3-road-step>em{display:grid;place-items:center;min-width:18px;height:18px;border-radius:999px;background:#eef1f5;font-size:9px;font-style:normal}.p3-road-step.done:before{background:#63b493}.p3-road-step.done>span{border-color:#49a47f;background:#49a47f;color:#fff}.p3-road-step.active{color:#24364f}.p3-road-step.active>span{color:#fff}.p3-road-step.s0.active>span{border-color:#3478df;background:#3478df}.p3-road-step.s1.active>span{border-color:#3b9b6f;background:#3b9b6f}.p3-road-step.s2.active>span{border-color:#8b6db5;background:#8b6db5}.p3-road-step.s3.active>span{border-color:#c68b2c;background:#c68b2c}.p3-road-step.s4.active>span{border-color:#cf5f5f;background:#cf5f5f}.p3-road-step.s5.active>span{border-color:#0e7490;background:#0e7490}.p3-road-step:disabled{cursor:not-allowed;opacity:.55}
.p3-patient-search{max-width:760px}.p3-visit-grid{display:grid;grid-template-columns:.9fr 1.1fr 2fr;gap:12px;align-items:start}.p3-required-panel{border:1px solid #f2dfa6;border-radius:9px;background:#fffcf4;padding:8px 10px}.p3-required-panel label,.p3-date-help{color:#7a5a0e}.p3-date-help{margin:-7px 0 14px;font-size:11px;line-height:1.45}.p3-backdate{display:flex;align-items:center;gap:12px;border-left:3px solid #ef9f27;border-radius:0 8px 8px 0;background:#faeeda;padding:11px 13px;color:#412402}.p3-backdate>span{font-size:20px}.p3-backdate>div{display:flex;flex:1;flex-direction:column}.p3-backdate small{margin-top:2px;color:#633806}.p3-backdate button{border:0;border-radius:6px;background:#ba7517;padding:6px 14px;color:#fff;font-weight:700}.p3-backdate button.active{background:#23795a}.p3-carryover{display:flex;align-items:center;gap:12px;margin-bottom:14px;border:1px solid #c9bae0;border-radius:9px;background:#f5f0fa;padding:10px 13px;color:#584373}.p3-carryover span{color:#716681;font-size:11px}
.p3-module-list{display:grid;gap:8px;margin-bottom:12px}.p3-module-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #cfe4da;border-left:4px solid #3b9b6f;border-radius:9px;background:#f3fbf7;padding:10px 12px}.p3-module-row.purple{border-color:#d8ccef;border-left-color:#8b6db5;background:#f8f5fc}.p3-module-row.amber{border-color:#e8cfa0;border-left-color:#c68b2c;background:#fdf9f1}.p3-module-row.red{border-color:#e8b5b5;border-left-color:#cf5f5f;background:#fff6f6}.p3-module-row strong,.p3-module-row small{display:block}.p3-module-row small{margin-top:2px;color:#687487;font-size:11px}.p3-module-row>div:last-child{display:flex;gap:5px}.p3-module-row button{border:1px solid #d6dde8;border-radius:7px;background:#fff;padding:5px 8px;color:#536076;font-size:10px;font-weight:700}.p3-add-zone{display:flex;flex-direction:column;align-items:center;padding:33px 15px;text-align:center;color:#2d7d56}.p3-add-zone>button{display:grid;place-items:center;width:58px;height:58px;border:2px solid #a8d9be;border-radius:50%;background:#e8f5ee;color:#3b9b6f;font-size:29px;line-height:1}.p3-add-zone>button:hover{border-color:#3b9b6f;background:#3b9b6f;color:#fff}.p3-add-zone strong{margin-top:9px}.p3-add-zone span{margin-top:3px;color:#8892a2;font-size:11px}.p3-add-zone.purple{color:#6b4f96}.p3-add-zone.purple>button{border-color:#c5b3da;background:#f1ecf8;color:#8b6db5}.p3-add-zone.purple>button:hover{background:#8b6db5;color:#fff}.p3-add-zone.amber{color:#9e6d1e}.p3-add-zone.amber>button{border-color:#e8cfa0;background:#fbf3e4;color:#c68b2c}.p3-add-zone.amber>button:hover{background:#c68b2c;color:#fff}.p3-add-zone.red{color:#a84444}.p3-add-zone.red>button{border-color:#e8b5b5;background:#fceeee;color:#cf5f5f}.p3-add-zone.red>button:hover{background:#cf5f5f;color:#fff}
.p3-editor-modal{width:min(900px,96vw)}.p3-editor-modal .modal-body{padding-top:16px}.p3-provider-field{position:relative}.p3-provider-picker{position:relative}.p3-provider-picker>input:first-child{width:100%;border:1px solid #d7dee9;border-radius:10px;padding:11px 12px}.p3-provider-results{position:absolute;z-index:50;top:calc(100% + 4px);right:0;left:0;overflow:auto;max-height:285px;border:1px solid #ccd5e2;border-radius:9px;background:#fff;box-shadow:0 12px 30px rgba(20,34,57,.18)}.p3-provider-results button{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;border-bottom:1px solid #edf0f4;background:#fff;padding:9px 11px;text-align:left}.p3-provider-results button:hover,.p3-provider-results button.active{background:#edf5ff}.p3-provider-results button.unknown{border-top:1px solid #d5dce7;background:#fff9ec;color:#80580c}.p3-provider-results strong,.p3-provider-results small{display:block}.p3-provider-results small{margin-top:2px;color:#7a8597;font-size:10px}.p3-provider-unknown,.p3-directory-match,.p3-research-summary{display:flex;align-items:center;gap:10px;border:1px solid #edcf88;border-radius:9px;background:#fff9e9;padding:10px 12px}.p3-provider-unknown>div{display:flex;flex:1;flex-direction:column}.p3-provider-unknown small{color:#8a5a09;font-size:10px}.p3-provider-unknown button,.p3-directory-match button{margin-left:auto;border:1px solid #d6dde8;border-radius:6px;background:#fff;padding:5px 8px}.p3-directory-match{margin:-7px 0 14px;border-color:#a8d9be;background:#eefaf4;color:#256a4a}.p3-directory-match span{font-size:11px}.p3-research-summary{margin:-7px 0 14px;flex-wrap:wrap;color:#704f09}.p3-research-summary span{flex:1;color:#7d6b45;font-size:11px}.p3-research-summary em{border-radius:999px;background:#faeeda;padding:3px 8px;font-size:9px;font-style:normal;font-weight:750}.p3-pf-hint{display:flex;align-items:center;gap:10px;margin:-7px 0 13px;border:1px solid #f2dfa6;border-radius:7px;background:#fff8e5;padding:8px 10px;color:#7a5a0e;font-size:11px}.p3-pf-hint span{flex:1}.p3-pf-hint button,.p3-pf-confirm button{border:1px solid #6b4f96;border-radius:6px;background:#6b4f96;padding:6px 10px;color:#fff;font-size:10px;font-weight:750}.p3-pf-confirm{display:flex;align-items:center;gap:10px;margin-top:12px;border:1px solid #c9bae0;border-radius:7px;background:#f1ecf8;padding:8px 10px;color:#4a3970;font-size:11px}.p3-pf-confirm label{flex:1}.p3-pf-confirm button{background:#fff;color:#6d28d9}.p3-status-pending{display:inline-flex;margin-top:8px;border:1px solid #f2dfa6;border-radius:999px;background:#fff8e5;padding:3px 9px;color:#7a5a0e;font-size:10px}.p3-field-help{margin:4px 0 12px;color:#7a8495;font-size:10px}.p3-chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:-9px 0 8px}.p3-chip-row button{border:1px solid #9bcdb7;border-radius:999px;background:#fff;padding:3px 9px;color:#2d6b4a;font-size:10px}.p3-chip-row button.manage{border-color:transparent;text-decoration:underline}.p3-on-fax input{border-color:#ba7517!important;background:#fffcf0!important;color:#412402;font-weight:600}.p3-on-fax label span{border-radius:999px;background:#faeeda;padding:2px 6px;color:#633806;font-size:8px}.p3-request-timing{display:flex;align-items:center;gap:16px;margin-bottom:13px;border:1px solid #e2e6ed;border-radius:8px;background:#f8f9fb;padding:8px 11px;font-size:11px}.p3-request-timing input[type=date]{margin-left:auto;border:1px solid #d7dee9;border-radius:7px;padding:6px}.p3-dormant,.p3-backfill-note,.p3-facility-note{border:1px solid #ead397;border-radius:8px;background:#fff9e8;padding:9px 12px;color:#73510b;font-size:11px}.p3-mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:15px;border-radius:9px;background:#f4f2ef;padding:4px}.p3-mode-toggle button{border:1px solid transparent;border-radius:7px;background:transparent;padding:9px 10px;color:#748094}.p3-mode-toggle button.active{border-color:#d3d9e2;background:#fff;color:#27364f;box-shadow:0 1px 3px rgba(20,34,57,.07)}.p3-mode-toggle strong,.p3-mode-toggle small{display:block}.p3-mode-toggle small{margin-top:2px;font-size:9px;font-weight:500}.p3-lab-grid{display:grid;grid-template-columns:1.4fr 1.5fr .8fr 1.4fr;gap:12px}.p3-radio-stack{display:grid;gap:7px;font-size:11px}.p3-date-pair{display:flex;gap:5px}.p3-date-pair>span{display:flex;flex:1;flex-direction:column;align-items:center}.p3-date-pair input{padding:8px 5px}.p3-date-pair small{color:#8892a2;font-size:9px}.p3-quest{border:0;border-radius:6px;background:#059669;padding:7px 14px;color:#fff;font-size:11px;font-weight:750}.p3-due-chips{display:flex;flex-wrap:wrap;align-content:center;gap:4px;padding-top:19px}.p3-due-chips button{border:1px solid #c9c2b0;border-radius:14px;background:#fff;padding:5px 9px;font-size:10px}
.p3-nv-group{margin-bottom:14px}.p3-nv-group>label{display:block;margin-bottom:5px;color:#5e687b;font-size:10px;font-weight:830;letter-spacing:.05em;text-transform:uppercase}.p3-pills{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.p3-pills button{border:1px solid #d3dae5;border-radius:7px;background:#fff;padding:7px 12px;color:#566278;font-size:11px;font-weight:700}.p3-pills button.active{border-color:#3478df;background:#3478df;color:#fff}.p3-pills.compact button{padding:7px 10px}.p3-nv-row{display:grid;grid-template-columns:1.2fr 1.2fr 1fr 1fr;gap:12px;align-items:start}.p3-chart-prep{margin-top:13px;border-top:1px solid #e2e6ed;padding-top:15px}.p3-chart-prep>.field:first-child{max-width:68%}.p3-empty-nudge{margin-top:12px;border:1px solid #dfe4eb;border-radius:8px;background:#f8f9fb;padding:9px 12px;color:#7d8797;text-align:center;font-size:11px}
.p3-unknown-modal{width:min(760px,95vw)}.p3-unknown-modal h4{margin:0 0 8px}.p3-type-pick{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.p3-type-pick button{border:1px solid #d8dfe9;border-radius:9px;background:#fff;padding:11px;text-align:left}.p3-type-pick button.active{border:2px solid #3478df;background:#eef5ff}.p3-type-pick strong,.p3-type-pick small{display:block}.p3-type-pick small{margin-top:3px;color:#788396;font-size:10px}.p3-inline-error{margin-top:7px;border:1px solid #efb3b3;border-radius:7px;background:#fff1f1;padding:8px 10px;color:#a33131;font-size:11px}.p3-chip-modal{width:min(560px,94vw)}.p3-chip-manage-list{display:grid;gap:6px}.p3-chip-manage-list>div{display:flex;gap:5px}.p3-chip-manage-list input,.p3-chip-add input{flex:1;border:1px solid #d7dee9;border-radius:7px;padding:8px 9px}.p3-chip-manage-list button{width:34px;border:1px solid #efb3b3;border-radius:7px;background:#fff;color:#a33131}.p3-chip-add{display:flex;gap:6px;margin-top:12px}.p3-chip-add button{border:0;border-radius:7px;background:#3478df;padding:7px 12px;color:#fff;font-weight:700}
.p3-imaging-backdrop{z-index:70}.p3-imaging-modal{width:min(1040px,97vw);max-height:96vh;border-radius:16px}.p3-image-head{border-top:4px solid #a85da0}.p3-image-primary{background:#a85da0}.p3-image-primary:hover{background:#8f4788}.p3-image-send{background:#138a61}.p3-image-card{margin-bottom:13px;border:1px solid #dfe4eb;border-radius:10px;background:#fff;padding:14px}.p3-image-card>h4,.p3-card-title h4{margin:0 0 11px}.p3-card-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.p3-card-title>button{border:1px solid #e3cedf;border-radius:6px;background:#f5ebf4;padding:4px 9px;color:#7b3f76;font-size:10px;font-weight:700}.p3-gear{display:grid!important;place-items:center;width:35px;height:35px;border:1px solid #d97706!important;background:#f59e0b!important;padding:0!important;color:#fff!important;font-size:20px!important}.p3-radio-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:11px}.p3-mod-tabs{display:flex;gap:4px;overflow:hidden;margin:9px 0}.p3-mod-tabs button{flex:1;min-width:0;border:1px solid #d8dfe9;border-radius:7px;background:#f8f9fb;padding:7px 5px;color:#657185;font-size:10px;font-weight:750;white-space:nowrap}.p3-mod-tabs button.active{border-color:#a85da0;background:#a85da0;color:#fff}.p3-mod-tabs span{margin-left:3px;border-radius:999px;background:rgba(255,255,255,.3);padding:1px 5px;font-size:8px}.p3-study-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.p3-study-grid h5{grid-column:1/-1;margin:8px 0 1px;color:#6b7280;font-size:9px;letter-spacing:.05em;text-transform:uppercase}.p3-study-grid label{display:flex;align-items:center;gap:5px;min-width:0;border:1px solid #dce2ea;border-radius:6px;background:#f9fafb;padding:6px 7px;color:#536076;font-size:10px}.p3-study-grid label:has(input:checked){border-color:#a85da0;background:#f5ebf4;color:#7b3f76;font-weight:700}.p3-side-block{margin:10px 0}.p3-side-block>label{display:block;margin-bottom:5px;color:#687487;font-size:9px;font-weight:800;text-transform:uppercase}.p3-order-summary{margin-top:12px;border:1px solid #c8e7db;border-radius:8px;background:#edf9f5;padding:9px 11px;color:#087b59;font-size:10px}.p3-order-summary strong,.p3-order-summary span{display:block}.p3-order-summary ul{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 0;padding:0;list-style:none}.p3-order-summary li{border-radius:999px;background:#fff;padding:3px 7px}.p3-review-studies{display:grid;gap:7px}.p3-review-studies article{display:grid;grid-template-columns:minmax(160px,1fr) 190px 1.5fr;align-items:center;gap:8px;border:1px solid #e0e5ec;border-radius:8px;background:#fafbfc;padding:8px}.p3-review-studies select,.p3-review-studies textarea{width:100%;border:1px solid #d7dee9;border-radius:6px;padding:7px;font-size:10px}.p3-review-studies textarea{min-height:48px;resize:vertical}.p3-destination{margin-top:13px;border:1px solid #dce2ea;border-radius:9px;background:#f7f8fa;padding:12px}.p3-destination h5{margin:0 0 9px;color:#5f6a7c;font-size:10px;letter-spacing:.05em;text-transform:uppercase}.p3-order-preview{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px}.p3-preview-sheet{min-height:560px;border:1px solid #cdd5e1;background:#fff;padding:30px;box-shadow:0 7px 22px rgba(45,58,87,.08)}.p3-preview-sheet header{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:3px solid #27364f;padding-bottom:10px}.p3-preview-sheet header strong{font-size:27px}.p3-preview-grid{display:grid;grid-template-columns:110px 1fr;margin:24px 0;border:1px solid #bfc8d6}.p3-preview-grid>*{border-bottom:1px solid #d4dbe5;padding:7px 9px}.p3-preview-grid b{border-right:1px solid #d4dbe5;background:#f3f5f8;font-size:10px}.p3-preview-sheet>article{border-bottom:1px solid #dfe4eb;padding:9px 0}.p3-preview-sheet>article strong,.p3-preview-sheet>article span{display:block}.p3-preview-sheet>article span{margin-top:2px;color:#667085;font-size:11px}.p3-preview-sheet footer{margin-top:55px;border-top:1px solid #d6dde7;padding-top:10px;color:#9098a6;font-size:9px;text-align:center}.p3-order-preview>aside{display:flex;flex-direction:column;gap:6px;align-self:start;border:1px solid #c8e7db;border-radius:10px;background:#edf9f5;padding:13px;color:#087b59}.p3-order-preview>aside small{color:#5c756d}.p3-settings-modal{width:min(980px,97vw)}.p3-settings-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.p3-settings-tabs section{border:1px solid #dfe4eb;border-radius:9px;background:#fafbfc;padding:11px}.p3-settings-tabs section.wide{grid-column:1/-1}.p3-settings-tabs h4{margin:0 0 7px}.p3-settings-tabs label{display:block;margin:8px 0 4px;color:#5f6a7c;font-size:10px;font-weight:750}.p3-settings-tabs textarea{width:100%;min-height:105px;border:1px solid #d7dee9;border-radius:7px;padding:8px;font-size:10px;line-height:1.4}.p3-settings-tabs section.wide textarea:first-of-type{min-height:170px}.p3-facility-modal{width:min(760px,96vw)}.p3-facility-head{background:#3b5b9d;color:#fff}.p3-facility-head p{color:#e7ecf7}.p3-facility-card{margin-top:10px;border:1px solid #dfe4eb;border-radius:9px;padding:12px}.p3-facility-card textarea{min-height:58px}
/* P0-MULTI-RECIPIENT (2026-08-14) — PVT2's per-recipient email fields */
.p3-facility-banner{margin-bottom:4px;border:1px solid #c8e7db;border-radius:8px;background:#edf9f5;padding:9px 12px;color:#087b59;font-size:11px;font-weight:600}
.p3-email-recipients{margin-top:10px}
.p3-email-recipients-heading{display:block;margin-bottom:6px;color:#5f6a7c;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.p3-email-recipient-row{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.p3-email-recipient-row input{flex:1;border:1px solid #d7dee9;border-radius:7px;padding:8px 9px;font-size:11px}
.p3-email-remove{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border:1px solid #e5c4c4;border-radius:6px;background:#fbf1f1;color:#b04a4a;font-size:15px;font-weight:700;cursor:pointer}
.p3-email-remove:hover{background:#f4dede}
.p3-email-add{border:none;background:none;padding:2px 0;color:#3b5b9d;font-size:11px;font-weight:700;cursor:pointer;text-align:left}
.p3-email-add:hover{text-decoration:underline}
@media(max-width:1000px){.p3-road{padding-left:14px;padding-right:14px}.p3-road-step{gap:3px}.p3-road-step>span{width:26px;height:26px;flex-basis:26px}.p3-road-step:before{top:13px}.p3-lab-grid{grid-template-columns:1fr 1fr}.p3-study-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.p3-nv-row{grid-template-columns:1fr 1fr}.p3-review-studies article{grid-template-columns:1fr 150px}.p3-review-studies textarea{grid-column:1/-1}}
@media(max-width:720px){.p3-road-step>strong,.p3-road-step>em{display:none}.p3-visit-grid,.p3-lab-grid,.p3-nv-row,.p3-settings-tabs,.p3-order-preview{grid-template-columns:1fr}.p3-study-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.p3-chart-prep>.field:first-child{max-width:none}.p3-pf-hint,.p3-pf-confirm{align-items:flex-start;flex-direction:column}.p3-order-preview>aside{order:-1}.p3-settings-tabs section.wide{grid-column:auto}}

/* Strict Create PVT parity corrections */
.p3-editor-modal textarea{width:100%;min-height:72px;border:1px solid #d7dee9;border-radius:10px;padding:11px 12px;font:inherit;resize:vertical}
.p3-pf-launch{margin-top:4px;border:0;border-radius:7px;background:#6b4f96;padding:8px 13px;color:#fff;font-size:11px;font-weight:750}
.p3-provider-resolved{display:flex;align-items:center;gap:12px;border:1px solid #9fd2b7;border-radius:9px;background:#eefaf4;padding:11px 12px;color:#205f44}
.p3-provider-resolved>div{display:flex;flex:1;flex-direction:column;gap:2px}.p3-provider-resolved span,.p3-provider-resolved small{font-size:11px}.p3-provider-resolved button{margin-left:auto;border:1px solid #b9c5d5;border-radius:6px;background:#fff;padding:6px 9px}
.p3-research-clues,.p3-research-resolution{margin-top:10px;border:1px solid #e1c26e;border-radius:10px;background:#fffaf0;padding:12px}
.p3-research-clues h4,.p3-research-resolution h4{margin:0;color:#67480b}.p3-research-clues p,.p3-research-resolution p{margin:3px 0 10px;color:#76684c;font-size:10px}.p3-research-clues .p3-card-title button{border:1px solid #c6aa60;border-radius:6px;background:#fff;padding:5px 8px;color:#67480b}
.p3-research-clues dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0}.p3-research-clues dl>div{min-width:0;border:1px solid #eee1bd;border-radius:6px;background:#fff;padding:6px 8px}.p3-research-clues dt{color:#8a7546;font-size:8px;font-weight:800;text-transform:uppercase}.p3-research-clues dd{overflow-wrap:anywhere;margin:2px 0 0;color:#27364f;font-size:11px}.p3-research-resolution{border-color:#aa8fe8;background:#faf7ff}.p3-research-resolution h4{color:#6037a5}
.p3-radio-row label,.p3-radio-stack label{display:inline-flex;align-items:center;gap:6px;margin:0;line-height:1.2}.p3-radio-row input[type=radio],.p3-radio-stack input[type=radio]{flex:0 0 auto;width:15px;height:15px;margin:0}.p3-radio-stack{align-content:start;padding-top:2px}
.p3-destination-contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px;margin-top:9px;border-radius:7px;background:#fff;padding:9px 11px;color:#566173;font-size:10px}.p3-destination-contact strong{grid-column:1/-1;color:#26364f;font-size:11px}
.p3-real-preview{grid-template-columns:minmax(0,1fr) 250px}.p3-pdf-frame{overflow:hidden;min-height:650px;border:1px solid #cdd5e1;border-radius:8px;background:#eef1f5}.p3-pdf-frame iframe,.p3-pdf-frame img{display:block;width:100%;height:650px;border:0;background:#fff;object-fit:contain}.p3-real-preview>aside a{margin-top:7px;border:1px solid #81c3aa;border-radius:6px;background:#fff;padding:7px 9px;color:#087b59;text-align:center;text-decoration:none;font-weight:750}.p3-real-preview>aside p{margin:8px 0 0;color:#526b62;font-size:10px;line-height:1.45}
.p3-pdf-frame{overflow:auto;padding:14px;background:#e8ebf0}.p3-imaging-pdf-page{box-sizing:border-box;width:min(100%,720px);min-height:930px;margin:0 auto;background:#fff;padding:38px 58px 28px;color:#222;font-family:Arial,sans-serif;box-shadow:0 2px 8px rgba(15,23,42,.12)}.p3-imaging-pdf-page header{display:flex;align-items:center;flex-direction:column;gap:3px;color:#333;font-size:10px}.p3-imaging-pdf-page header strong{font-size:11px}.p3-imaging-pdf-page h2{margin:23px 0 13px;color:#111;font-size:24px;text-align:center}.p3-pdf-recipient{text-align:center;color:#555;font-size:12px}.p3-pdf-recipient strong{color:#1f1f1f;font-size:13px}.p3-pdf-order-meta{display:flex;justify-content:center;gap:34px;margin:12px 0 14px;color:#333;font-size:11px}.p3-imaging-pdf-page hr{border:0;border-top:1px solid #cfd4db;margin:0 0 15px}.p3-pdf-flags{display:flex;gap:52px;margin-bottom:18px;font-size:12px}.p3-imaging-pdf-page .alert{color:#8b0000!important}.p3-pdf-patient{display:grid;gap:8px;margin:0 0 17px;font-size:12px}.p3-pdf-patient div{display:grid;grid-template-columns:105px 1fr}.p3-pdf-patient dt{color:#444}.p3-pdf-patient dd{margin:0;color:#111;font-weight:700}.p3-pdf-studies{display:grid;gap:13px}.p3-pdf-study{padding:0 14px}.p3-pdf-study h3{margin:0 0 8px;color:#0f2744;font-size:12px}.p3-pdf-study p{display:flex;align-items:flex-start;gap:7px;margin:5px 0;color:#333;font-size:12px;line-height:1.4}.p3-pdf-study p span{flex:0 0 auto}.p3-pdf-study p strong{color:#111}.p3-pdf-signature{display:flex;align-items:flex-start;flex-direction:column;gap:4px;margin-top:28px;color:#222;font-size:12px}.p3-pdf-signature img{width:210px!important;height:auto!important;margin-top:4px;background:transparent!important;object-fit:contain!important}.p3-imaging-pdf-page footer{margin-top:17px;border-top:1px solid #cfd4db;padding-top:9px;color:#555;font-size:8px;text-align:center}.p3-real-preview>aside small+small{margin-top:4px;color:#3e6255;font-weight:700}
@media(max-width:760px){.p3-research-clues dl,.p3-destination-contact{grid-template-columns:1fr}.p3-real-preview{grid-template-columns:1fr}.p3-real-preview>aside{order:-1}.p3-pdf-frame,.p3-pdf-frame iframe,.p3-pdf-frame img{min-height:520px;height:520px}}

/* The connector line belongs visually to the next step but must never intercept clicks on the previous step. */
.p3-road-step:before{pointer-events:none}
.p3-pf-hint .p3-provider-not-found{border:0;background:transparent;padding:0;color:#6b4f96;font:inherit;font-weight:800;text-decoration:underline}

/* PVT2 Split & Save PDF parity with visual, multi-source page ordering */
.p3-pdf-title{margin-bottom:10px}.p3-pdf-title p{max-width:760px}.p3-pdf-safety{margin-bottom:10px;padding:9px 12px}.p3-pdf-loading,.p3-pdf-error{display:flex;align-items:center;gap:9px;margin:8px 0;border-radius:8px;padding:10px 13px;font-size:12px}.p3-pdf-loading{border:1px solid #bcd5f6;background:#eff6ff;color:#1e4f91}.p3-pdf-loading span{width:15px;height:15px;border:2px solid #bdd4f2;border-top-color:#2f76d2;border-radius:50%;animation:spin .8s linear infinite}.p3-pdf-error{border:1px solid #efb5b2;background:#fff1f0;color:#9f2d26}.p3-pdf-drop{display:grid;place-items:center;min-height:380px;border:2px dashed #a9bdd7;border-radius:14px;background:#f8fbff;color:#233b60;cursor:pointer;text-align:center}.p3-pdf-drop.drag-over{border-color:#2475dc;background:#eaf3ff}.p3-pdf-drop input{position:absolute;opacity:0;pointer-events:none}.p3-pdf-drop strong{margin-top:70px;font-size:24px}.p3-pdf-drop span{margin-top:-75px;color:#66758b;font-size:14px}.p3-pdf-drop small{margin-top:-110px;color:#8490a1}
/* #455 (David's P1, 2026-09-16) — THE SAME DISEASE AS THE SIDEBAR ABOVE: the workspace is a fixed-height grid, but a grid item's default
   min-height is `auto`, so the composer aside (and the Pages column, and the reader) stretched to their content and the grid's
   overflow:hidden clipped everything below the fold — the ordered page list, PREPARED DOCUMENT PATIENT, NEW PDF NAME and the Create
   button were unreachable at any real screen height. `min-height:0` on every grid item AND on every inner scroll box is what lets
   them be shorter than their content and scroll; the row is minmax(0,1fr) so the grid never grows past its own height. */
.p3-pdf-workspace{display:grid;grid-template-columns:220px minmax(320px,1fr) 390px;grid-template-rows:minmax(0,1fr);overflow:hidden;height:calc(100vh - 220px);min-height:560px;border:1px solid #d7dee9;border-radius:12px;background:#fff;box-shadow:0 10px 30px rgba(36,54,80,.08)}.p3-pdf-workspace button{font:inherit}.p3-pdf-pages,.p3-pdf-composer{min-width:0;min-height:0;background:#fff}.p3-pdf-pages{display:flex;flex-direction:column;border-right:1px solid #dce2ea}.p3-pdf-pages>header,.p3-pdf-reader>header{display:flex;align-items:center;gap:7px;min-height:50px;border-bottom:1px solid #e3e8ef;padding:8px 10px}.p3-pdf-pages>header strong{margin-right:auto}.p3-pdf-pages>header button,.p3-pdf-reader>header button{border:1px solid #d6dde7;border-radius:6px;background:#fff;padding:5px 7px;color:#3d4d64;font-size:11px}.p3-pdf-sources{display:grid;gap:5px;border-bottom:1px solid #e5e9ef;padding:7px}.p3-pdf-source{display:grid;grid-template-columns:28px minmax(0,1fr) 24px;align-items:center;gap:6px;border:1px solid #dce3ec;border-radius:7px;background:#f8fafc;padding:6px}.p3-pdf-source>span{display:grid;place-items:center;width:27px;height:32px;border-radius:4px;background:#e14444;color:#fff;font-size:8px;font-weight:850}.p3-pdf-source strong,.p3-pdf-source small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p3-pdf-source strong{font-size:10px}.p3-pdf-source small{margin-top:2px;color:#7b8799;font-size:8px}.p3-pdf-source button{border:0;background:transparent;color:#8b96a5;font-size:17px}.p3-pdf-unassigned{display:flex;align-items:center;gap:6px;border-bottom:1px solid #e5e9ef;padding:8px 9px;color:#4f5d70;font-size:10px;font-weight:750}.p3-pdf-unassigned input{margin:0}.p3-pdf-thumb-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:6px;overflow:auto;min-height:0;flex:1;padding:7px}.p3-pdf-page-thumb{position:relative;min-width:0;border:1px solid #d8e0e9;border-radius:6px;background:#f7f9fb;padding:5px}.p3-pdf-page-thumb.active{border-color:#2f76d2;box-shadow:0 0 0 1px #2f76d2}.p3-pdf-page-thumb.selected{border-color:#12a272;background:#edfbf5}.p3-pdf-page-thumb.assigned{opacity:.78}.p3-pdf-page-thumb>label{display:flex;align-items:center;gap:4px;min-width:0;margin-bottom:4px;color:#47566b;font-size:8px;font-weight:750}.p3-pdf-page-thumb>label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p3-pdf-page-thumb>label input{width:13px;height:13px;margin:0}.p3-pdf-page-thumb>button{display:block;width:100%;border:0;background:transparent;padding:0;cursor:pointer}.p3-pdf-thumb-image{display:grid;place-items:center;overflow:hidden;height:105px;border:1px solid #d6dde6;background:#fff}.p3-pdf-thumb-image canvas:not(.fax-hover-canvas),.p3-pdf-thumb-image img{display:block;max-width:100%;max-height:100%;object-fit:contain}.p3-pdf-page-thumb>em{position:absolute;right:4px;bottom:4px;border-radius:999px;background:#dff5eb;padding:2px 5px;color:#087b59;font-size:7px;font-style:normal;font-weight:800}.p3-pdf-all-assigned{grid-column:1/-1;display:grid;gap:5px;padding:25px 10px;color:#526076;text-align:center}.p3-pdf-all-assigned span{font-size:9px}
.p3-pdf-reader{display:flex;min-width:0;min-height:0;flex-direction:column;background:#e9edf2}.p3-pdf-reader>header{justify-content:space-between;background:#fff}.p3-pdf-reader>header strong,.p3-pdf-reader>header small{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p3-pdf-reader>header small{margin-top:2px;color:#7c8798;font-size:9px}.p3-pdf-reader>header>div:last-child{display:flex;align-items:center;gap:5px}.p3-pdf-reader>header b{min-width:34px;color:#667286;font-size:10px;text-align:center}.p3-pdf-readable{display:flex;justify-content:center;overflow:auto;flex:1;min-height:0;padding:16px}.p3-pdf-readable canvas{display:block;align-self:flex-start;max-width:none;background:#fff;box-shadow:0 4px 16px rgba(24,35,53,.15)}.p3-pdf-readable>div{align-self:center;color:#6c7788}
.p3-pdf-composer{display:flex;min-width:0;min-height:0;flex-direction:column;border-left:1px solid #dce2ea}.p3-pdf-composer-scroll{overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;padding:11px;scroll-padding-bottom:calc(var(--p3-create-h,220px) + 8px)}.p3-pdf-composer-scroll>header{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;margin-bottom:9px}.p3-pdf-composer h3{margin:0;color:#172b49;font-size:15px}.p3-pdf-composer header small{display:block;margin-top:2px;color:#778397;font-size:9px}.p3-pdf-composer header>span{border-radius:999px;background:#eef3f9;padding:4px 7px;color:#5a687c;font-size:9px}.p3-pdf-patient,.p3-pdf-selection,.p3-pdf-create,.p3-pdf-prepared{margin-bottom:9px;border:1px solid #dfe5ed;border-radius:8px;padding:9px}.p3-pdf-patient>strong{display:block;margin-bottom:6px;color:#536076;font-size:10px;text-transform:uppercase}.p3-pdf-patient>strong small{text-transform:none}.p3-pdf-patient>.search-picker input{min-height:37px;padding:8px 9px;font-size:11px;width:100%;box-sizing:border-box}.p3-pdf-patient>.search-picker{display:block;grid-template-columns:none}.p3-pdf-patient>small{display:block;margin-top:5px;color:#8490a0;font-size:8px}.p3-pdf-selection{border-color:#bb9deb;background:#fbf9ff}.p3-pdf-selection>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.p3-pdf-selection>div:first-child strong{color:#673db0;font-size:10px}.p3-pdf-selection>div:first-child button{border:1px solid #cbb7eb;border-radius:5px;background:#fff;padding:4px 6px;color:#63459b;font-size:8px}.p3-pdf-selection>p{margin:5px 0 7px;color:#76698c;font-size:8px}.p3-pdf-order-empty{border:1px dashed #cbbbe5;border-radius:6px;padding:16px 8px;color:#84779a;font-size:9px;text-align:center}.p3-pdf-order-list{display:grid;gap:5px;max-height:min(38vh,300px);overflow-y:auto;padding-right:2px}   /* #455 sharpened: the list scrolls in its OWN bounded area — it can never push the controls below off-screen */.p3-pdf-order-page{display:grid;grid-template-columns:20px 42px minmax(0,1fr) auto;align-items:center;gap:6px;border:1px solid #d5c7eb;border-radius:6px;background:#fff;padding:5px;cursor:grab}.p3-pdf-order-page.dragging{opacity:.45}.p3-pdf-order-page.drag-over{border-color:#7c3aed;box-shadow:0 0 0 2px rgba(124,58,237,.15)}.p3-pdf-order-number{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#7c3aed;color:#fff;font-size:8px;font-weight:800}.p3-pdf-order-image{display:grid;place-items:center;overflow:hidden;width:42px;height:52px;border:1px solid #dce2ea;background:#f6f7f9;color:#8b94a3;font-size:7px}.p3-pdf-order-image img{max-width:100%;max-height:100%;object-fit:contain}.p3-pdf-order-page>strong{overflow:hidden;color:#4e405f;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.p3-pdf-order-page>div{display:flex;gap:2px}.p3-pdf-order-page>div button{border:1px solid #d9d0e8;border-radius:4px;background:#fff;padding:2px 4px;color:#6c527f;font-size:8px}.p3-pdf-create{background:#f8fafc;position:sticky;bottom:0;z-index:2;box-shadow:0 -6px 14px -8px rgba(36,54,80,.25)}.p3-pdf-created-ack{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding:7px 10px;border-radius:8px;background:#e7f6ee;border:1px solid #9fd8b8;color:#155c36;font-size:12px}.p3-pdf-created-ack strong{word-break:break-word}.p3-pdf-created-ack button,.p3-pdf-create .p3-pdf-created-ack button{flex:none;width:auto;min-height:0;border:1px solid #9fd8b8;background:#fff;color:#155c36;border-radius:7px;padding:4px 14px;font-weight:750}.p3-pdf-output.just-created{border-color:#63c08c;box-shadow:0 0 0 2px rgba(99,192,140,.35)}.p3-pdf-output.just-created>span{color:#157a45;font-weight:800}:root[data-theme="dark"] .p3-pdf-created-ack{background:#123524;border-color:#2d7a50;color:#bff0d3}:root[data-theme="dark"] .p3-pdf-created-ack button{background:#0f2a1c;color:#bff0d3;border-color:#2d7a50}   /* #455 sharpened: the name / type / date / Create block stays PINNED at the bottom of the composer's scroll box, whatever the list's length */.p3-pdf-create label{display:block;margin-bottom:7px;color:#606c7e;font-size:8px;font-weight:800;letter-spacing:.03em}.p3-pdf-create input,.p3-pdf-create select{box-sizing:border-box;width:100%;margin-top:3px;border:1px solid #d3dbe6;border-radius:6px;background:#fff;padding:8px;color:#27364f;font-size:10px}.p3-pdf-create button{width:100%;padding:9px;font-size:10px}.p3-pdf-prepared>div:first-child{display:flex;justify-content:space-between;color:#536076;font-size:10px}.p3-pdf-prepared-empty{margin-top:7px;border:1px dashed #d7dee8;border-radius:6px;padding:16px 8px;color:#7d8898;font-size:9px;text-align:center}.p3-pdf-output{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px;margin-top:7px;border:1px solid #b8dbc9;border-radius:7px;background:#f2fbf7;padding:7px}.p3-pdf-output>div{grid-column:1/-1}.p3-pdf-output strong,.p3-pdf-output small{display:block}.p3-pdf-output strong{color:#245c47;font-size:10px}.p3-pdf-output small{margin-top:2px;color:#65796f;font-size:8px;line-height:1.35}.p3-pdf-output>span{align-self:center;color:#078258;font-size:8px;font-weight:800}.p3-pdf-output>label{display:flex;align-items:center;gap:3px;color:#49675b;font-size:8px}.p3-pdf-output>button{border:1px solid #a9d3c1;border-radius:4px;background:#fff;padding:4px 5px;color:#176a4c;font-size:8px}.p3-pdf-replace{display:flex;align-items:flex-start;gap:6px;border:1px solid #f1cf88;border-radius:7px;background:#fff9eb;padding:8px;color:#7c5b18;font-size:9px;line-height:1.35}.p3-pdf-composer>footer{display:grid;grid-template-columns:1fr 1fr;gap:5px;border-top:1px solid #dce2ea;background:#f8fafc;padding:8px}.p3-pdf-composer>footer button{min-width:0;border:1px solid #cfd8e4;border-radius:6px;background:#fff;padding:7px 5px;color:#40516a;font-size:8px;font-weight:750}.p3-pdf-composer>footer button.primary{border-color:#2475dc;background:#2475dc;color:#fff}.p3-pdf-composer>footer button:disabled{cursor:not-allowed;opacity:.58}
@media(max-width:1280px){.p3-pdf-workspace{grid-template-columns:190px minmax(270px,1fr) 340px}.p3-pdf-thumb-list{grid-template-columns:1fr}.p3-pdf-thumb-image{height:125px}}
@media(max-width:980px){.p3-pdf-workspace{grid-template-columns:180px minmax(260px,1fr);height:auto;min-height:700px}.p3-pdf-composer{grid-column:1/-1;min-height:560px;border-top:1px solid #dce2ea;border-left:0}.p3-pdf-composer-scroll{max-height:none}.p3-pdf-composer>footer{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.p3-pdf-workspace{display:block}.p3-pdf-pages,.p3-pdf-reader,.p3-pdf-composer{height:580px;border:0;border-bottom:1px solid #dce2ea}.p3-pdf-thumb-list{grid-template-columns:repeat(2,minmax(0,1fr))}.p3-pdf-title{align-items:flex-start;flex-direction:column}.p3-pdf-safety .notice-spacer{display:none}}

/* Completed manual-organizer controls: lineage, metadata, merge/split, and in-app preview */
.p3-pdf-accounting{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px;border:1px solid #b9dcca;border-radius:8px;background:#f1fbf7;padding:8px 9px;color:#275f49;font-size:9px}.p3-pdf-accounting span{color:#61776d;font-size:8px;white-space:nowrap}
.p3-pdf-meta-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px}.p3-pdf-filename-preview{display:block;overflow:hidden;margin:-3px 0 7px;color:#748094;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.p3-pdf-filename-preview b{color:#41516a}
.p3-pdf-create.editing{border-color:#9c76da;background:#faf7ff}.p3-pdf-editing-note{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;margin-bottom:8px;border-radius:7px;background:#eee6fb;padding:7px 8px;color:#56318f}.p3-pdf-editing-note strong,.p3-pdf-editing-note span{display:block}.p3-pdf-editing-note span{font-size:8px;line-height:1.35}.p3-pdf-editing-note button{grid-column:2;grid-row:1/3;align-self:center;border:1px solid #b8a1dd;border-radius:5px;background:#fff;padding:5px 7px;color:#5e3a98;font-size:8px}
.p3-pdf-merge-bar{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:7px;border:1px solid #d8dfe9;border-radius:6px;background:#f7f9fc;padding:5px}.p3-pdf-merge-bar button{min-width:0;border:1px solid #bba5df;border-radius:5px;background:#fff;padding:5px 7px;color:#603c9b;font-size:8px;font-weight:750}.p3-pdf-merge-bar button:disabled{opacity:.45}.p3-pdf-merge-bar span{color:#7d8797;font-size:8px}
.p3-pdf-output{grid-template-columns:18px repeat(4,minmax(0,1fr));align-items:center}.p3-pdf-output.editing{border-color:#8b5fd0;box-shadow:0 0 0 1px rgba(123,74,190,.13)}.p3-pdf-output>.p3-pdf-output-select{grid-column:1;grid-row:1/4;align-self:start;margin-top:2px}.p3-pdf-output>.p3-pdf-output-select input{width:14px;height:14px;margin:0;accent-color:#7441bd}.p3-pdf-output>div{grid-column:2/-1}.p3-pdf-output>span{grid-column:2}.p3-pdf-output>label:not(.p3-pdf-output-select){grid-column:3/5}.p3-pdf-output>button{min-width:0;overflow:hidden;padding:4px 3px;text-overflow:ellipsis;white-space:nowrap}.p3-pdf-output>button[data-pdf-edit-output]{color:#624294}
.p3-pdf-workspace-actions{display:flex;align-items:center;gap:7px;margin-top:8px;color:#7b8798;font-size:9px}.p3-pdf-workspace-actions button{border:1px solid #d5dde8;border-radius:6px;background:#fff;padding:7px 9px;color:#4b596e;font-size:9px;font-weight:750}.p3-pdf-workspace-actions button.primary{border-color:#2475dc;background:#2475dc;color:#fff}.p3-pdf-workspace-actions span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.p3-pdf-preview-overlay{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;background:rgba(13,22,36,.72);padding:18px}.p3-pdf-preview-modal{display:flex;overflow:hidden;width:min(1050px,96vw);height:min(920px,94vh);border-radius:12px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.34);flex-direction:column}.p3-pdf-preview-modal>header,.p3-pdf-preview-modal>footer{display:flex;align-items:center;gap:9px;border-bottom:1px solid #dce2ea;padding:9px 12px}.p3-pdf-preview-modal>header div{min-width:0;flex:1}.p3-pdf-preview-modal>header strong,.p3-pdf-preview-modal>header small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p3-pdf-preview-modal>header small{margin-top:2px;color:#758195;font-size:9px}.p3-pdf-preview-modal>header button{border:0;border-radius:6px;background:#f1f4f8;padding:5px 9px;color:#536177;font-size:18px}.p3-pdf-preview-modal iframe{display:block;min-height:0;width:100%;border:0;background:#e7ebf0;flex:1}.p3-pdf-preview-modal>footer{justify-content:flex-end;border-top:1px solid #dce2ea;border-bottom:0}.p3-pdf-preview-modal>footer span{margin-right:auto;color:#657488;font-size:9px}.p3-pdf-preview-modal>footer button{border:1px solid #cdd6e2;border-radius:6px;background:#fff;padding:7px 10px;color:#40516a;font-size:9px;font-weight:750}.p3-pdf-preview-modal>footer button.primary{border-color:#2475dc;background:#2475dc;color:#fff}
@media(max-width:700px){.p3-pdf-meta-grid{grid-template-columns:1fr}.p3-pdf-workspace-actions{align-items:stretch;flex-direction:column}.p3-pdf-workspace-actions span{white-space:normal}.p3-pdf-preview-overlay{padding:0}.p3-pdf-preview-modal{width:100vw;height:100vh;border-radius:0}.p3-pdf-preview-modal>footer span{display:none}}

/* In-system, code-enforced production cutover checklist */
.readiness-blocked{border:1px solid #dc8d8d;border-radius:999px;background:#fff0f0;padding:8px 12px;color:#a52d2d;font-size:10px;font-weight:850;letter-spacing:.04em}.readiness-notice{border-color:#d6b16e;background:#fff9e9}.readiness-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px}.readiness-card{border:1px solid #dce3ec;border-radius:12px;background:#fff;box-shadow:0 8px 25px rgba(37,54,80,.06)}.readiness-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e1e6ed;padding:16px 18px}.readiness-card h3{margin:0;color:#172b49;font-size:17px}.readiness-card header p{margin:4px 0 0;color:#718095;font-size:11px}.readiness-card>header>strong{display:grid;place-items:center;min-width:58px;height:40px;border-radius:9px;background:#fff2e5;color:#a5550b;font-size:15px}.readiness-list{display:grid;gap:1px;background:#e8edf3}.readiness-list article{display:flex;align-items:center;gap:11px;background:#fff;padding:10px 15px}.readiness-list article>span{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:50%;font-size:11px;font-weight:900}.readiness-list article.pending>span{background:#fff0dc;color:#b8640a}.readiness-list article.done>span{background:#e3f7ed;color:#087b59}.readiness-list article strong,.readiness-list article small{display:block}.readiness-list article strong{color:#283950;font-size:11px}.readiness-list article small{margin-top:2px;color:#8a95a5;font-size:9px}.readiness-sequence{align-self:start;padding:17px}.readiness-sequence dl{display:grid;gap:8px;margin:15px 0}.readiness-sequence dl>div{border:1px solid #e2e7ee;border-radius:7px;background:#f8fafc;padding:8px 10px}.readiness-sequence dt{color:#7c899b;font-size:8px;font-weight:800;text-transform:uppercase}.readiness-sequence dd{overflow-wrap:anywhere;margin:3px 0 0;color:#27384f;font-size:10px;font-weight:750}.readiness-rule{border:1px solid #e9a7a7;border-radius:8px;background:#fff4f4;padding:11px;color:#963737}.readiness-rule p{margin:4px 0 0;font-size:10px;line-height:1.45}@media(max-width:850px){.readiness-layout{grid-template-columns:1fr}.readiness-sequence{order:-1}}

/* PVT2 Practice Fusion patient shortcuts */
.pf-link-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.pf-link-actions a{border:1px solid #bfd3ef;border-radius:7px;background:#fff;padding:6px 9px;color:#2d6fd1;font-size:10px;font-weight:800;text-decoration:none}.pf-link-actions a:hover{background:#eef5ff}

/* Protected PVT2 Shared Drive authorization and verification */
.drive-authorization-card{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;margin:14px 0;border:1px solid #b7d0f2;border-radius:12px;background:#f6faff;padding:18px;box-shadow:0 8px 24px rgba(33,82,145,.06)}.drive-authorization-card h3{margin:9px 0 5px;color:#172b49;font-size:18px}.drive-authorization-card p{margin:0;color:#586b84;font-size:11px;line-height:1.5}.drive-authorization-card dl{display:grid;gap:6px;margin:13px 0 0}.drive-authorization-card dl>div{display:grid;grid-template-columns:125px minmax(0,1fr);gap:8px}.drive-authorization-card dt{color:#7b8ca3;font-size:9px;font-weight:800;text-transform:uppercase}.drive-authorization-card dd{overflow-wrap:anywhere;margin:0;color:#263b59;font-size:10px;font-weight:750}.drive-authorization-actions{display:flex;align-items:stretch;flex-direction:column;gap:8px}.drive-authorization-actions a,.drive-authorization-actions button{box-sizing:border-box;width:100%;justify-content:center;text-align:center;text-decoration:none}.drive-authorization-actions p{border-radius:7px;background:#fff;padding:9px 10px;color:#61738b;font-size:9px}.drive-authorization-actions p strong{color:#087b59}@media(max-width:800px){.drive-authorization-card{grid-template-columns:1fr}.drive-authorization-card dl>div{grid-template-columns:1fr;gap:2px}}
.drive-authorization-card .workspace-scope-list code{display:block;border:1px solid #dce8f8;border-radius:7px;background:#fff;padding:8px;color:#29476f;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;font-weight:650;line-height:1.55;white-space:normal;word-break:break-all}

/* Dashboard purge (Master Work Order item C): the dashboard is heading +
   appointments only. .p3-dash-room is the deliberately EMPTY reserved space at
   the top of the Doctor dashboard for menu items David will specify later —
   it must stay empty and take no vertical space until it has content. */
.p3-dash-room:empty{display:none}
.p3-dash-actions{display:flex;justify-content:flex-start;margin:4px 0 18px}
.p3-dash-actions .primary{font-size:15px;padding:11px 18px}
/* DASHBOARD QUICK LINKS (David's order, 2026-08-19) — big, obvious, one
   click each, no captions law. */
.p3-quicklinks{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 18px}
.p3-quicklinks button{font-size:15px;padding:11px 18px}
.p3-role-previewbar{display:flex;justify-content:flex-end;margin:0 0 12px}

/* ── W4: David's CX convention, rendered ────────────────────────────
   A cancelled appointment is never deleted. It keeps its slot and goes gray,
   so the front desk can still see the visit was booked and then cancelled. */
.dc-cal-cancelled,
.dc-cal-event.dc-cal-cancelled,
.dc-cal-pvt2-event.dc-cal-cancelled {
  background: #f3f4f6 !important;
  color: #6b7280 !important;
  border-color: #d1d5db !important;
  text-decoration: line-through;
  opacity: .85;
}
.dc-cal-cancelled i { background: #9ca3af !important; }
.dc-cal-cx-tag { color: #6b7280; font-size: 12px; font-style: italic; align-self: center; }
.dc-cal-day-add { width: 100%; margin-top: 10px; }
.dc-cal-new-btn { font-size: 18px; font-weight: 700; line-height: 1; padding: 4px 10px; }
.dc-cal-outside { border: 1px solid #eab308; background: #fefce8; border-radius: 8px; padding: 10px; margin: 8px 0; }
.dc-cal-outside legend { font-size: 12px; font-weight: 700; color: #854d0e; padding: 0 6px; }
.dc-cal-note { font-size: 12px; color: #4b5563; background: #f9fafb; border-left: 3px solid #9ca3af; padding: 6px 8px; margin: 8px 0; }

/* ── R7 THE HOVER-NAME LAW ──────────────────────────────────────────
   Every record/document name in PVT3 shows its COMPLETE filename on hover.
   Fields and icons are narrower than the names they hold, so a truncated name
   is a mystery until you open it. `.pvt3-name-tip` is the one component that
   answers that, everywhere — processing screen now, PVT lines, Daily Records
   Review and Mission Control manifests as they are built.
   Instant (no delay), full width, readable, gone on mouse-away. Read-only:
   it never interferes with editing the field underneath. */
.fax-filename-wrap { position: relative; display: block; }
.pvt3-name-tip {
  position: absolute; left: 0; bottom: calc(100% + 6px); z-index: 60;
  display: none; max-width: min(760px, 90vw); width: max-content;
  background: #111827; color: #f9fafb; font-size: 13px; line-height: 1.45;
  font-weight: 600; padding: 7px 11px; border-radius: 6px;
  box-shadow: 0 6px 18px rgba(0,0,0,.28);
  white-space: normal; word-break: break-word; pointer-events: none;
}
.pvt3-name-tip::after {
  content: ''; position: absolute; top: 100%; left: 18px;
  border: 6px solid transparent; border-top-color: #111827;
}
/* Instant on hover AND on keyboard focus — no transition, no delay. */
.fax-filename-wrap:hover .pvt3-name-tip,
.fax-filename-wrap:focus-within .pvt3-name-tip { display: block; }
.pvt3-name-tip:empty { display: none !important; }
/* #364 (David, P0, 2026-09-02) — the hover-name law generalised: EVERY truncated text cell in PVT3 shows its
   complete text on hover (truncation-tip.js finds the ellipsis and paints this same component, fixed-positioned). */
.pvt3-name-tip.pvt3-trunc-tip { display: block; position: fixed; bottom: auto; left: auto; font-weight: 500; z-index: 2147483000; }

/* #387 — the Match Suggester chip (suggest, never auto-link) + the Undo bar. Same mini-btn family as the row it sits under. */
.ms-chip { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; padding: 4px 8px; border-radius: 8px; font-size: 12px; line-height: 1.3; background: #FFF7E6; border: 1px solid #F5D08A; color: #5C3D00; }
.ms-chip.ms-strong, .ms-chip.ms-certain { background: #EAF3FF; border-color: #A9CBF5; color: #123B6D; }
.ms-chip.ms-done { background: #EDF7EE; border-color: #A8D5B0; color: #1E5B2B; }
.ms-chip .ms-lbl { font-weight: 600; }
.ms-chip .ms-what { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 34ch; }
.ms-chip .mini-btn { padding: 2px 8px; font-size: 11.5px; cursor: default; }   /* law 5.21: the arrow, never the hand (mini-btn's convention is pointer) */
.ms-undo-bar .mini-btn { cursor: default; }
.ms-chip .ms-link { font-weight: 600; }
.ms-undo-bar { position: fixed; left: 18px; bottom: 18px; z-index: 2147482000; display: flex; align-items: center; gap: 10px; max-width: min(640px, calc(100vw - 36px)); padding: 10px 12px; border-radius: 10px; background: #1E2A3A; color: #F3F6FA; font-size: 13px; box-shadow: 0 10px 30px rgba(0,0,0,.28); }
.ms-undo-bar .mini-btn { background: #fff; color: #1E2A3A; font-weight: 600; }
.ms-undo-bar .ms-x { background: none; border: 0; color: inherit; font-size: 18px; line-height: 1; cursor: default; padding: 0 2px; }
:root[data-theme="dark"] .ms-chip { background: #3A2E12; border-color: #7A5B1E; color: #F5DEB0; }
:root[data-theme="dark"] .ms-chip.ms-strong, :root[data-theme="dark"] .ms-chip.ms-certain { background: #14283F; border-color: #2F5A8C; color: #CFE3FF; }
:root[data-theme="dark"] .ms-chip.ms-done { background: #17301C; border-color: #2F6B3A; color: #C9EBD0; }
/* #388 (2026-09-03): the tooltip sat at z-index 60 UNDER Mission Control's modal (backdrop 95) — the DOM said "visible",
   the screenshot showed nothing. A tooltip is pointer-events:none and must paint above every modal, dialog and toast. */
/* #367 (David, 2026-09-02) — every free-text Next Visit field is an auto-growing textarea (autogrow.js sizes it;
   field-sizing:content does the same natively). Never a single-line box that hides what she wrote. */
/* #400 (2026-09-04): EVERY textarea grows by default (law 5.46 made structural) — a box that must not opts out with
   data-no-autogrow. `max-height:none !important` beats the per-screen caps (the calendar card's 52 px cap clipped the
   This Visit Note to two lines); autogrow.js also writes the height inline. */
textarea:not([data-no-autogrow]) { field-sizing: content; min-height: 42px; max-height: none !important; overflow-y: hidden; resize: none; line-height: 1.4; white-space: pre-wrap; overflow-wrap: anywhere; }
.p3-nv-full { grid-column: 1 / -1; }
/* #367 + law 4.10 — the Next Visit modals grow with her text: the BODY scrolls, the Save footer stays pinned */
.modal.p3-nv-modal, .modal.p3-workboard-next-modal { display: flex; flex-direction: column; max-height: 92vh; overflow: hidden; }
.modal.p3-nv-modal .modal-body, .modal.p3-workboard-next-modal .modal-body { flex: 1 1 auto; overflow: auto; min-height: 0; }
.modal.p3-nv-modal .modal-foot, .modal.p3-workboard-next-modal .modal-foot { flex: 0 0 auto; }
/* #364 — Visit details spans the Next Visit card's full width */
.pvt-next-grid .pvt-next-wide { grid-column: 1 / -1; }
/* #364 — the Next Visit card wraps her words instead of cutting them at 9.5px */
.pvt-next-grid strong { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; font-size: 12px; line-height: 1.35; }
.pvt-next-grid small { font-size: 9px; }

/* ── #403 (David, 2026-09-05) LIST SIZING — Active PVTs +5%, Patients and Providers brought to the SAME sizes ──
   The numbers live in :root (--p3-list-fs family). Active PVTs rows were 11px (name 800 · date/type 400 · count chips 850 ·
   head 9px/850 · small 9px · Draft tag 8px). Patients/Providers rows inherited 15px (names 15/800 and 15/700, DOB/phone/
   specialty as 15/700 <strong>) — they come DOWN to the Active PVTs numbers: names 800, body 400, chips/pills 850, one line
   per cell with an ellipsis (the global truncation tip shows the whole text on hover — law 5.45). Part B: the provider
   Specialty cell is ONE line, never wrapped. */
.pvt-table-head { font-size: var(--p3-list-fs-head); }
.pvt-table-row { font-size: var(--p3-list-fs); }
.pvt-table-row small { font-size: var(--p3-list-fs-small); }
.pvt-table-row em { font-size: var(--p3-list-fs-tag); }
.pvt-pin { font-size: 10.5px; }
.pvt-module-count { min-width: 27px; height: 24px; }
.p3-patient-directory .directory-row, .p3-provider-directory .directory-row { font-size: var(--p3-list-fs); font-weight: 400; min-height: 48px; padding: 6px 11px; gap: 8px; }
.p3-patient-directory .directory-row-head, .p3-provider-directory .directory-row-head { font-size: var(--p3-list-fs-head); font-weight: 850; letter-spacing: .06em; min-height: 32px; padding: 6px 11px; }
.p3-patient-directory .directory-person, .p3-provider-directory .directory-person { gap: 7px; min-width: 0; }
.p3-patient-directory .directory-person > div { min-width: 0; }
.p3-patient-directory .directory-person > div > strong, .p3-provider-directory .directory-row > .directory-person > strong { display: block; min-width: 0; font-size: var(--p3-list-fs); font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.p3-patient-directory .directory-person > div > small { display: block; font-size: var(--p3-list-fs-small); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.p3-patient-directory .directory-row > div > strong, .p3-provider-directory .directory-row > div > strong { font-size: var(--p3-list-fs); font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.p3-patient-directory .directory-row > div > small, .p3-provider-directory .directory-row > div > small { font-size: var(--p3-list-fs-small); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.p3-patient-directory .directory-row > div, .p3-provider-directory .directory-row > div { min-width: 0; }
.p3-patient-directory .row-activity { font-size: var(--p3-list-fs); gap: 10px; }
.p3-patient-directory .directory-row .pill, .p3-provider-directory .directory-row .pill { font-size: var(--p3-list-fs); font-weight: 850; padding: 2px 7px; line-height: 1.5; }
.p3-patient-directory .directory-actions button, .p3-provider-directory .directory-row > .mini-btn { font-size: var(--p3-list-fs); font-weight: 750; padding: 4px 8px; }
.p3-patient-directory .directory-avatar, .p3-provider-directory .directory-avatar { width: 30px; height: 30px; min-width: 30px; font-size: var(--p3-list-fs); border-radius: 9px; }
.p3-provider-directory .directory-avatar.provider { font-size: 13px; }
.p3-patient-directory .directory-row .pill, .p3-provider-directory .directory-row .pill { display: block; max-width: 100%; width: max-content; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.p3-provider-directory .directory-row { grid-template-columns: minmax(155px, 1.15fr) minmax(105px, .76fr) minmax(150px, 1fr) minmax(85px, .58fr) minmax(115px, .77fr) minmax(92px, .62fr) 86px; }
.p3-provider-directory .directory-row > .mini-btn, .p3-patient-directory .directory-actions button { white-space: nowrap; }
/* Part B — Specialty on one line everywhere in the provider list (the column's own track, the cell never grows the row) */
.p3-provider-directory .provider-directory-row > div:nth-child(2) > strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }

/* ── SECTION A: CREATE-FORM SPEED PASS ──────────────────────────────
   Speed is the feature. Chips carry the common cases in one click; the full
   ten-type dropdown and the manual time field stay right there for the rest. */
.dc-cal-chiprow { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 8px 0; }
.dc-cal-chip {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid #d1d5db; background: #fff; color: #111827;
  border-radius: 999px; padding: 6px 12px; font-size: 13px; font-weight: 600;
  cursor: pointer; white-space: nowrap; line-height: 1.2;
}
.dc-cal-chip i { width: 9px; height: 9px; border-radius: 50%; background: var(--chip, #6b7280); flex: none; }
.dc-cal-chip:hover { border-color: var(--chip, #9ca3af); background: #f9fafb; }
.dc-cal-chip.on { border-color: var(--chip, #2563eb); box-shadow: inset 0 0 0 1px var(--chip, #2563eb); background: #f5f8ff; }
.dc-cal-chip.sub.on { border-color: #2563eb; box-shadow: inset 0 0 0 1px #2563eb; background: #eff6ff; }
.dc-cal-chip.time { font-variant-numeric: tabular-nums; }
.dc-cal-chip-manage {
  border: 1px dashed #9ca3af; background: #fff; color: #4b5563; border-radius: 999px;
  padding: 5px 10px; font-size: 13px; cursor: pointer; line-height: 1.2;
}
.dc-cal-chip-manage:hover { border-color: #2563eb; color: #2563eb; }
.dc-cal-subtype { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 8px; }
.dc-cal-sublabel { font-size: 12px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: .03em; }
.dc-cal-subother { flex: 1 1 220px; min-width: 200px; }
.dc-cal-alltypes select { width: 100%; }

/* The Next Visit note Dr. Becker already wrote — read-only, clearly sourced. */
.dc-cal-nextvisit { border: 1px solid #bfdbfe; background: #eff6ff; border-radius: 8px; padding: 10px 12px; margin: 8px 0; }
.dc-cal-nextvisit header { font-size: 12px; font-weight: 800; color: #1d4ed8; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.dc-cal-nextvisit dl { display: grid; grid-template-columns: max-content 1fr; gap: 3px 12px; margin: 0; font-size: 13px; }
.dc-cal-nextvisit dt { color: #475569; font-weight: 700; }
.dc-cal-nextvisit dd { margin: 0; color: #0f172a; }
.dc-cal-nextvisit small { display: block; margin-top: 7px; color: #64748b; font-size: 11px; }

/* Chip manager — plain language, no coding concepts. */
.dc-cal-chipmanager p { font-size: 13px; color: #4b5563; margin: 4px 0 10px; }
.dc-cal-chipedit { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.dc-cal-chipedit.column { flex-direction: column; flex-wrap: nowrap; gap: 2px; }
.dc-cal-chipedit .dc-cal-chip button { border: none; background: none; color: #6b7280; cursor: pointer; font-size: 15px; line-height: 1; padding: 0 0 0 4px; }
.dc-cal-chipedit .dc-cal-chip button:hover { color: #dc2626; }
.dc-cal-checkline { display: flex; align-items: center; gap: 8px; padding: 5px 2px; font-size: 14px; cursor: pointer; }
.dc-cal-checkline i { width: 11px; height: 11px; border-radius: 50%; flex: none; }

/* A8: never let this wrap into an ugly two-line button. */
.dc-cal-day-add { white-space: nowrap; }

/* ── Overlap law: inform, never forbid ──────────────────────────────
   Double-booking is a real clinic decision. Amber, not red — this is a
   heads-up, and red would read as "you cannot do this". */
.dc-cal-overlap { border: 1px solid #fbbf24; background: #fffbeb; border-radius: 8px; padding: 9px 12px; margin: 8px 0; }
.dc-cal-overlap strong { display: block; color: #92400e; font-size: 13px; }
.dc-cal-overlap ul { margin: 5px 0 4px; padding-left: 18px; font-size: 13px; color: #78350f; }
.dc-cal-overlap small { color: #92400e; font-size: 11px; }

/* Overlapping appointments share the slot side by side — both visible, never
   hidden behind each other. */
.dc-cal-pvt2-event.overlapped, .dc-cal-event.overlapped { min-width: 0; }

/* ── Global Settings ────────────────────────────────────────────────── */
.dc-cal-gear { font-size: 16px; line-height: 1; padding: 5px 9px; }
.dc-cal-settings p { font-size: 13px; color: #4b5563; margin: 4px 0 12px; }
.dc-cal-durations { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.dc-cal-durrow { display: grid; grid-template-columns: 12px 1fr 90px auto; align-items: center; gap: 10px; padding: 5px 2px; font-size: 14px; }
.dc-cal-durrow i { width: 11px; height: 11px; border-radius: 50%; }
.dc-cal-durrow input { width: 90px; text-align: right; }
.dc-cal-durrow em { color: #6b7280; font-style: normal; font-size: 12px; }


/* ── F1 NO-SCROLL LAW + F2 font reduction ───────────────────────────
   The create popup must fit entirely on David's screen with zero scrolling.
   Font sizes come down 1-2 steps; the popup is capped to the viewport and its
   body scrolls only if a small screen forces it, never on his. */
.dc-cal-create { font-size: 13px; max-height: 92vh; display: flex; flex-direction: column; padding: 14px 16px; gap: 2px; }
.dc-cal-create header h3 { font-size: 16px; margin: 0; }
.dc-cal-create header small { font-size: 11px; }
.dc-cal-create label > span { font-size: 11px; }
.dc-cal-create input, .dc-cal-create select, .dc-cal-create textarea { font-size: 13px; padding: 5px 7px; }
.dc-cal-create textarea { min-height: 44px; }
.dc-cal-create label { margin: 3px 0; }
.dc-cal-create footer { margin-top: 8px; }
.dc-cal-create .dc-cal-chip { font-size: 12px; padding: 4px 10px; }
.dc-cal-create .dc-cal-note { font-size: 11px; padding: 5px 7px; margin: 5px 0; }
.dc-cal-nextvisit { padding: 7px 10px; margin: 5px 0; }
.dc-cal-nextvisit dl { font-size: 12px; }
.dc-cal-overlap { padding: 6px 10px; margin: 5px 0; }
.dc-cal-chiprow { margin: 4px 0; gap: 5px; }

/* ── D1/D4 the day-square line: time + name + type, type a size up ── */
.dc-cal-pvt2-event time { font-size: 11px; font-weight: 700; flex: none; font-variant-numeric: tabular-nums; }
.dc-cal-ev-name { font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.dc-cal-ev-type { font-size: 12.5px; font-weight: 600; flex: none; opacity: .9; }
.dc-cal-pvt2-event { display: flex; align-items: center; gap: 4px; }
.dc-cal-pvt2-event > i { background: var(--event-color, #3174d7); width: 8px; height: 8px; border-radius: 50%; flex: none; }

/* ── D5 readiness dots ─────────────────────────────────────────────── */
.dc-cal-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex: none; margin-left: auto; }
.dc-cal-dot.green { background: #16a34a; }
.dc-cal-dot.amber { background: #f59e0b; }
.dc-cal-dot.red { background: #dc2626; }
.dc-cal-dot.none { background: transparent; border: 1px dashed #cbd5e1; }
.dc-cal-legend-list { list-style: none; margin: 6px 0 0; padding: 0; font-size: 13px; }
.dc-cal-legend-list li { display: flex; align-items: center; gap: 8px; padding: 5px 0; }

/* ── D7 Outside Appointment bands: thin, top, Google all-day style ── */
.dc-cal-bands { display: flex; flex-direction: column; gap: 2px; margin: 2px 0 3px; }
.dc-cal-outside-band {
  display: block; width: 100%; text-align: left;
  background: #FEF08A; border: 1px solid #EAB308; color: #713F12;
  border-radius: 3px; padding: 1px 5px; font-size: 11px; font-weight: 700;
  line-height: 1.35; cursor: pointer;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dc-cal-outside-band:hover { background: #FDE047; }

/* ── D2 the appointment view, as a real modal ──────────────────────── */
.dc-cal-detail-modal { max-width: 560px; }
.dc-cal-detail-body { overflow-y: auto; }
.dc-cal-detail-modal h4 { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #6b7280; margin: 10px 0 4px; }
.dc-cal-detail-modal dl { display: grid; grid-template-columns: max-content 1fr; gap: 3px 12px; margin: 0; font-size: 13px; }
.dc-cal-detail-modal dt { color: #6b7280; font-weight: 700; }
.dc-cal-detail-modal dd { margin: 0; color: #0f172a; }
.dc-cal-typedot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; margin-right: 5px; }

/* ── D8 continuous scroll: the grid keeps going, Google-style ─────── */
.dc-cal-canvas { overflow-y: auto; }

/* ── FAX THUMBNAILS: REAL PAGES, 20% LARGER (David's ruling) ──────────
   36×46 → 44×56 in the base row, 31×41 → 38×50 in the compact one. Big
   enough to recognise a patient header at a glance, which is the whole
   point of the strip. */
.fax-page-thumbs{height:60px}
.fax-page-thumb{width:44px;height:56px;flex:0 0 44px}
.fax-rich-row .fax-page-thumb{width:38px;height:50px;flex-basis:38px}
.fax-sent-preview .fax-page-thumb{width:38px;height:50px;flex-basis:38px}
.fax-thumb-canvas{display:block;width:100%;height:100%;object-fit:contain;object-position:top center;background:#fff}
.fax-page-thumb.is-real{border-color:#9aa4b2}
.fax-page-thumb.thumb-failed::after{content:'?';position:absolute;inset:0;display:grid;place-items:center;color:#9aa4b2;font-size:11px}

/* Hover on a real page: large enough to read the patient header without
   opening anything. Rule 4.9 bans hover cards on CALENDAR appointments;
   David explicitly wants them here for document triage. */
.fax-hover-preview.real-doc .fax-hover-inner{max-height:none;overflow:visible;background:#f1f3f6;padding:2px}
.fax-hover-canvas{display:block;max-width:none!important;max-height:none!important;object-fit:fill;box-shadow:0 2px 10px rgba(0,0,0,.18);background:#fff;will-change:transform}
.fax-hover-loading{padding:36px;color:#6b7280;font-size:12px;text-align:center}
/* HOVER v2 (David 2026-08-09) — no child of a thumbnail may swallow a pointer
   event. The canvas, the page-count pill and any icon inside the button were
   all hit-testable, so a pointermove that landed on one of them was reported
   against that child; combined with the clipped edges of the strip it read as
   the scrub cutting out and coming back. The button is the only pointer target
   now. The whole hover preview and its footer are inert for the same reason:
   if either ever sits under the cursor, hover exits and re-enters in a loop. */
/* A FAILED FAX IS LOUD (David, 2026-08-09). A silently failed medical fax is
   the worst outcome this feature can produce, so the whole row is marked, not
   just the pill. */
.fax-sent-row.fax-row-failed{border-left:4px solid #b91c1c;background:#fef4f4}
.fax-sent-row.fax-row-failed .fax-sent-result b{color:#b91c1c;font-weight:700}
.fax-page-thumb *{pointer-events:none}
.fax-hover-preview,.fax-hover-preview *{pointer-events:none!important}
/* #468 (repaired 2026-09-19): the chart browser's hover preview is INTERACTIVE — it turns pages in place (‹ ›) and
   must stay open while the pointer is on it, which is the whole mechanism that replaced "open the viewer to read
   it". The inherited rule above made the box refuse every pointer event, so those buttons were unclickable and the
   mouseenter that holds the box open never fired: the pager was dead from the day it shipped. The Fax Center's
   preview stays inert — it is purely passive — so this is scoped to the pageable one by its own class. */
.fax-hover-preview.p3-fcb-pageable,.fax-hover-preview.p3-fcb-pageable *{pointer-events:auto!important}

/* Trimmed chrome so more of the window is page (David: bigger hover). */
.fax-hover-preview.real-doc{padding:2px}
.fax-hover-preview.real-doc .fax-hover-footer{padding-top:1px;font-size:9px;line-height:1.1}

/* ── UNCHECK MUST HIDE (PVT2 parity) ──────────────────────────────────
   The centre pane shows only kept pages, so an excluded page has to be
   obvious in the left rail — that rail is the only way back. */
.fax-picker-page.excluded{opacity:.42;filter:grayscale(1)}
.fax-picker-page.excluded .fax-picker-preview{position:relative}
.fax-picker-page.excluded .fax-picker-preview::after{content:'';position:absolute;left:6%;right:6%;top:50%;height:2px;background:#b91c1c;transform:rotate(-18deg);opacity:.85}
.fax-picker-page.excluded .fax-picker-check span{text-decoration:line-through;color:#9aa4b2}
.fax-picker-page.excluded:hover{opacity:.8}
.fax-none-kept{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;min-height:220px;color:#6b7280;text-align:center}
.fax-none-kept strong{font-size:15px;color:#b45309}

/* A non-fax stub and a failed pull must both be unmistakable — neither may
   read as an ordinary empty fax row. */
.fax-rich-row[data-nonfax="1"]{background:#f8f7f2}
.fax-rich-row[data-nonfax="1"] .fax-sender{border-left-color:#c084fc}
.fax-rich-row[data-pull-failed="1"]{background:#fff5f5}
.fax-rich-row[data-pull-failed="1"] .fax-sender{border-left-color:#dc2626}

/* ── OUTGOING FAX PREVIEW — every page, scrollable ────────────────────
   An attachment he cannot page through is one he cannot verify. */
.quick-fax-sendbar{display:flex;align-items:baseline;gap:12px;padding:10px 14px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;margin-bottom:10px}
.quick-fax-sendbar strong{font-size:15px;color:#1d4ed8}
.quick-fax-sendbar span{font-size:12px;color:#475569}
.quick-fax-skipped{padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:10px;font-size:12px;color:#991b1b}
.quick-fax-pages{max-height:58vh;overflow-y:auto;background:#f1f3f6;border:1px solid #dde3ea;border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:14px;align-items:center}
.quick-fax-page{margin:0;display:flex;flex-direction:column;align-items:center;gap:5px}
.quick-fax-page-canvas{display:block;box-shadow:0 2px 10px rgba(0,0,0,.18);background:#fff;max-width:100%}
.quick-fax-page figcaption{font-size:11px;color:#64748b}
.quick-fax-building,.quick-fax-preview-error{padding:40px 16px;text-align:center;color:#64748b;font-size:13px}
.quick-fax-preview-error{color:#b91c1c}
.quick-fax-pages-inner{display:flex;flex-direction:column;gap:14px;align-items:center;width:100%}   /* #723: the painted pages live in here and survive a repaint */
.quick-fax-preview-error>div{margin-top:12px}
.quick-fax-verify{margin:10px 0 0;font-size:11.5px;color:#64748b;line-height:1.5}

/* Build marker — David reads this off the screen. A fix is not delivered
   until he can see the marker that carries it. */
.fax-build-marker{margin-left:10px;padding:3px 8px;border-radius:999px;background:#1f2937;color:#e5e7eb;font-family:ui-monospace,monospace;font-size:10px;letter-spacing:.02em}
/* A sent row with no stored copy says so in the row, greyed and non-clickable,
   rather than offering a View that can only disappoint. */
.fax-view-link.is-missing{display:inline-block;border:1px dashed #b6bfcc;border-radius:6px;background:#f6f7f9;padding:3px 7px;color:#8a94a3;font-size:10px;font-style:italic;cursor:default}
/* O-39 Part A — the system's own word on what happened, sitting above the
   manual override. Distinct from the dropdown so nobody mistakes a derived
   fact for a hand-set one. */
.queue-system-status{display:block;margin-bottom:4px;font-size:9px;font-weight:800;letter-spacing:.02em}
/* A tile that is waiting for bytes reads differently from one that has none. */
.fax-thumb-empty.is-loading{color:#5b6b82;font-style:italic;background:linear-gradient(90deg,#f4f7fb 25%,#e9eef6 50%,#f4f7fb 75%);background-size:200% 100%;animation:faxThumbWait 1.2s linear infinite}
/* #439 (2026-09-14) — the three honest tile states. A canvas waiting for its
   page shimmers (it used to be a bare white box); a row whose copy is gone says
   so in red words that fit the tile (law 5.42 — never a blank strip); a row with
   no document at all says "No PDF" / "On Drive" in grey, unscaled. */
.fax-page-thumb.is-pending{background:linear-gradient(90deg,#f4f7fb 25%,#e9eef6 50%,#f4f7fb 75%);background-size:200% 100%;animation:faxThumbWait 1.2s linear infinite}
.fax-page-thumb.is-pending .fax-thumb-canvas{background:transparent}
.fax-thumb-empty.is-missing,.fax-thumb-empty.is-nodoc{padding:2px;font-size:9px;line-height:1.1;font-weight:700;letter-spacing:0;overflow:hidden}
.fax-thumb-empty.is-missing{color:#b42318;background:#fff1f0}
.fax-page-thumb.is-missing{border-color:#f0b4ad}
.fax-thumb-empty.is-nodoc{color:#6b7280;background:#f3f4f6}
.fax-hover-preview.missing-doc{padding:10px 12px}
.fax-hover-missing{display:grid;gap:6px;padding:14px 16px;background:#fff1f0;border:1px solid #f0b4ad;border-radius:8px;color:#7a271a;font-size:13px;line-height:1.35;text-align:left}
.fax-hover-missing strong{font-size:14px;color:#b42318}
.fax-hover-missing p{margin:0}
/* #445 (2026-09-14) — the patient MESSAGE strip (Mission Control · Active PVT · anywhere a patient shows) + the compose bits.
   Same family as the e-mail compose (.pe-*), so it reads as the same tool. */
.pm-strip{border:1px solid #e3e6ec;border-radius:10px;padding:10px 12px;margin:8px 0 6px;background:#fbfcfd}
.pm-strip-head{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.4px;text-transform:uppercase;color:#5b6b82}
.pm-strip-head b{font-weight:700}.pm-count{background:#e8f1ff;color:#1d4ed8;border-radius:999px;padding:1px 8px;font-weight:700;text-transform:none;letter-spacing:0}
.pm-spacer{flex:1}.pm-quiet{color:#8c95a3;text-transform:none;letter-spacing:0}
.pm-send-btn{font-size:12px;padding:4px 10px;text-transform:none;letter-spacing:0}
.pm-empty{margin-top:6px;font-size:13px;color:#6b7280}
.pm-err{margin-top:6px;font-size:13px;color:#b42318}
.pm-thread{margin-top:8px;padding:8px 10px;border-radius:8px;background:#fff;border:1px solid #e8ebf0}
.pm-head{display:flex;align-items:center;gap:8px;font-size:12px;color:#5b6b82}
.pm-status{font-weight:700;border-radius:999px;padding:1px 8px;background:#eef2f7;color:#4f5b70}
.pm-status-replied{background:#fff4e5;color:#b45309}.pm-status-viewed{background:#e8f6ee;color:#15803d}.pm-status-closed{background:#f3f4f6;color:#6b7280}
.pm-close-thread{margin-left:auto;font-size:11px;padding:2px 8px;border:1px solid #d5dae2;border-radius:6px;background:#fff;color:#4f5b70;cursor:default}
.pm-note{margin-top:6px;font-size:13px;line-height:1.45;color:#1f2937;white-space:normal}
.pm-meta{margin-top:4px;font-size:11.5px;color:#8c95a3}
.pm-reply{margin-top:8px;padding:8px 10px;border-radius:8px;background:#fff7ed;border-left:3px solid #f59e0b}
.pm-reply b{font-size:12px;color:#b45309}.pm-reply small{color:#9a6b1f;margin-left:6px}.pm-reply p{margin:4px 0 0;font-size:13px;line-height:1.45;color:#1f2937;white-space:pre-wrap}
.pm-thread.pm-replied{border-color:#f5c98a}
.pm-prior{margin-top:12px;font-size:13px;color:#5b6b82}.pm-prior summary{cursor:default;font-weight:600}
/* #490 Part 4 — the reply switch on the Send Message screen */
.pm-reply-switch{display:flex;align-items:baseline;gap:8px;margin-top:10px;font-size:13.5px;font-weight:600;color:#22303f;flex-wrap:wrap}.pm-reply-switch small{font-weight:400;color:#5b6b82}.pm-reply-switch input{transform:translateY(1px)}
.pm-templates{display:flex;align-items:center;gap:10px;margin:0 0 8px}
.pm-modal .pe-text{min-height:120px}
[data-theme="dark"] .pm-strip{background:#1d2230;border-color:#2c3442}[data-theme="dark"] .pm-thread{background:#232a38;border-color:#2c3442}[data-theme="dark"] .pm-note{color:#e5e7eb}[data-theme="dark"] .pm-reply{background:#3a2a12}[data-theme="dark"] .pm-reply p{color:#f3e8d3}
.mc-messages{padding:0 18px}
[data-theme="dark"] .fax-thumb-empty.is-missing,[data-theme="dark"] .fax-hover-missing{background:#3a1512;color:#ffb4ab;border-color:#7a271a}
[data-theme="dark"] .fax-hover-missing strong{color:#ffb4ab}
[data-theme="dark"] .fax-thumb-empty.is-nodoc{background:#2a2f38;color:#aab2bf}
@keyframes faxThumbWait{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* O-51 — FAX CENTER HEADER: a working desktop, not a title page.
   Three stacked titles (eyebrow + h2 + "Firebase-backed test workspace") and a
   48px live-banner cost ~115px of vertical space on every visit, which is rows
   David cannot see. One compact heading, the build marker kept as a small pill
   in the corner because rule 4.14 requires it to be readable on screen. */
.fax-parity-head{align-items:center;margin-bottom:6px;min-height:0}
.fax-parity-head h2{margin:0;font-size:15px;line-height:1.2}
.fax-parity-head .fax-build-marker{margin-left:auto;font-size:9px;padding:2px 7px;opacity:.75}
.fax-safety{display:none}

/* O-50 — FIVE THUMBNAILS VISIBLE, ALWAYS. See the note in scratchpad/strip.mjs;
   26px content + 2px border = 28px box, 5 x 28 + 4 x 4 = 156px, strip 170px. */
/* +10% (David, 2026-08-14 post-flip order): 26x33 -> 29x36. */
.fax-page-thumb{width:29px;height:36px;flex:0 0 29px}
.fax-page-thumbs{min-width:170px;gap:4px}
/* Fewer than five pages renders fewer tiles — the strip is content-driven, so
   there is nothing to pad and no empty boxes to suppress. */
/* The 38px rule lives at .fax-rich-row .fax-page-thumb — two classes, so it
   outranks a single-class override no matter how late it appears. Matching its
   specificity is the fix; raising ours with !important would win the same
   argument while making the next one harder. */
.fax-rich-row .fax-page-thumb{width:29px;height:36px;flex:0 0 29px;flex-basis:29px}

/* O-48 — a pre-generated thumbnail is just an image. It fills the tile the
   same way the canvas did, so nothing else about the strip changes. */
.fax-thumb-img{display:block;width:100%;height:100%;object-fit:cover;background:#fff}
/* O-52 — bulk controls sit with the folder tabs, not in the rows. */
.fax-bulk-bar{display:flex;gap:7px;align-items:center;margin-left:10px}
.fax-bulk-bar button{border:1px solid #c9d3e0;border-radius:7px;background:#fff;padding:4px 10px;color:#31445f;font-size:10px;font-weight:750;cursor:pointer}
.fax-bulk-bar button:hover:not([disabled]){border-color:#8fb4e6;background:#f3f8ff}
.fax-bulk-bar button.danger{border-color:#e0a6a6;color:#a32b2b}
.fax-bulk-bar button.danger:hover:not([disabled]){background:#fff3f3}
.fax-bulk-bar button[disabled]{opacity:.45;cursor:default}
/* O-44 — AI suggestions must never look like entered data. Dashed outline,
   lighter ink, and a confidence figure on the ones that carry a risk. */
.fax-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}
.fax-chip.lighthouse{border-style:solid;border-color:#c7d7fe;background:#eef2ff;color:#1e40af}
.fax-chip{display:inline-flex;align-items:center;gap:4px;border:1px dashed #b3c2d6;border-radius:999px;background:#f7faff;padding:2px 8px;color:#43587a;font-size:9px;font-weight:750;line-height:1.5}
.fax-chip i{font-style:normal;opacity:.6;font-size:8px}
.fax-chip.patient,.fax-chip.sender{cursor:pointer}
.fax-chip.patient:hover,.fax-chip.sender:hover{border-style:solid;border-color:#6f9fe0;background:#eaf3ff}
.fax-chip.review{border-color:#e0b48f;background:#fff7ee;color:#93591d}
/* #640 — robot PF upload chip + the Quest list (plain, by David's ruling; above the Process window) */
.fax-pf-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.fax-chip.pf-ok{border-style:solid;border-color:#7cc59a;background:#eefaf2;color:#1d6b3c}
.quest-robot-backdrop{position:fixed;inset:0;z-index:20000;background:rgba(15,23,42,.38);display:flex;align-items:center;justify-content:center;padding:16px;cursor:default}
.quest-robot-panel{background:var(--surface,#fff);color:var(--text,#1f2a3a);border-radius:12px;box-shadow:0 18px 48px rgba(15,23,42,.3);width:min(760px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;min-height:0;overflow:hidden}
.quest-robot-panel .qr-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid #e3e8ef;font-size:15px}
.quest-robot-panel .qr-note{margin:10px 18px 4px;font-size:13px;color:#4a5a70}
.quest-robot-panel .qr-table{width:calc(100% - 36px);margin:6px 18px;border-collapse:collapse;font-size:13px}
.quest-robot-panel .qr-table-wrap{overflow:auto;min-height:0}
.quest-robot-panel .qr-table th{text-align:left;font-weight:700;color:#4a5a70;border-bottom:1px solid #e3e8ef;padding:6px 8px}
.quest-robot-panel .qr-table td{border-bottom:1px solid #eef1f5;padding:8px;vertical-align:top}
.quest-robot-panel .qr-table td small{display:block;color:#6a7a90;font-size:11px;margin-top:2px}
.quest-robot-panel .qr-bring{white-space:nowrap;font-weight:700}
/* #648 Part 3 — Quest Results Ready (Fax Center, under the command bar) */
.qready-card{background:var(--surface,#fff);border:1px solid #d7e0ec;border-left:4px solid #2563eb;border-radius:10px;margin:8px 0;padding:8px 12px}
.qready-head{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:4px}
.qready-head span{background:#2563eb;color:#fff;border-radius:999px;padding:0 7px;font-size:11px;font-weight:800}
.qready-test{margin-left:auto;color:#92400e;background:#fef3c7;border-radius:6px;padding:1px 6px;font-weight:700}
.qready-upd{display:inline-block;color:#1e3a8a;background:#dbeafe;border:1px solid #bfdbfe;border-radius:6px;padding:1px 6px;font-size:12px;font-weight:700;margin-right:4px}
.qready-table{width:100%;border-collapse:collapse;font-size:12px}
.qready-table td{border-top:1px solid #eef1f5;padding:6px 8px;vertical-align:top}
.qready-table td small{display:block;color:#6a7a90;font-size:11px}
.qready-table .qready-miss{color:#b45309}
.qready-flag{display:inline-block;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:800;background:#fee2e2;color:#b91c1c}
.qready-flag.crit{background:#b91c1c;color:#fff}
.qready-open{font-weight:700;white-space:nowrap}
:root[data-theme="dark"] .qready-card{background:#0f1a2b;border-color:#26364f}
:root[data-theme="dark"] .qready-table td{border-color:#1e2b40}
.quest-robot-panel .qr-ready{display:block;color:#15803d;font-size:11px;font-weight:700;text-align:center;min-height:13px}
.quest-robot-panel .qr-link{background:none;border:0;color:#1d4ed8;text-decoration:underline;padding:4px 18px;font-size:12px;align-self:flex-start}
.quest-robot-panel .qr-foot{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid #e3e8ef;margin-top:auto}
.quest-robot-panel .qr-foot .qr-link{margin-right:auto;padding-left:0}
.quest-robot-panel .qr-wait{display:flex;gap:14px;align-items:center;padding:28px 22px;font-size:14px}
.quest-robot-panel .qr-wait small{display:block;color:#6a7a90;margin-top:4px;font-size:12px}
.quest-robot-panel .qr-spin{width:22px;height:22px;border:3px solid #cdd8e8;border-top-color:#1d4ed8;border-radius:50%;animation:qr-spin 0.9s linear infinite;flex:none}
@keyframes qr-spin{to{transform:rotate(360deg)}}
.quest-robot-panel .qr-error{margin:18px;padding:12px 14px;border:1px solid #f0b4b4;background:#fff4f4;color:#8a1f1f;border-radius:8px;font-size:13px}
.quest-robot-panel button{cursor:default}
:root[data-theme="dark"] .quest-robot-panel{background:#1b2230;color:#e6ebf2}
:root[data-theme="dark"] .quest-robot-panel .qr-head,:root[data-theme="dark"] .quest-robot-panel .qr-foot{border-color:#2c3646}
:root[data-theme="dark"] .quest-robot-panel .qr-note,:root[data-theme="dark"] .quest-robot-panel .qr-table th{color:#a9b6c8}

/* BULK REVIEW (backlog one-time surface, David 2026-08-14). The list scrolls
   inside .modal-body; the Confirm button lives in the pinned .modal-foot, so
   no scrolling is ever needed to act (law 4.10). */
.bulk-review-open{border-color:#8fb4e6!important;background:#f3f8ff!important;color:#1d4f91!important}
.bulk-review-modal{max-width:1040px;width:min(1040px,94vw)}
.bulk-review-toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 18px;border-bottom:1px solid #e3e8ef;font-size:11px;font-weight:750;color:#43587a}
.bulk-review-toolbar label{display:flex;gap:7px;align-items:center;cursor:pointer}
.bulk-review-list{display:flex;flex-direction:column;gap:6px;max-height:min(560px,58vh);overflow-y:auto}
.bulk-review-row{display:grid;grid-template-columns:22px minmax(150px,1fr) 110px minmax(140px,1fr) minmax(200px,1.5fr) 66px;gap:10px;align-items:center;border:1px solid #e3e8ef;border-radius:8px;padding:6px 10px;font-size:11px;cursor:pointer}
.bulk-review-row:hover{border-color:#8fb4e6;background:#f8fbff}
.bulk-review-row.unchecked{opacity:.42}
.bulk-review-row .brr-patient{display:flex;flex-direction:column;min-width:0}
.bulk-review-row .brr-patient b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bulk-review-row .brr-patient small{color:#687386}
.bulk-review-row .brr-type{font-weight:750;color:#43587a}
.bulk-review-row .brr-sender{color:#31445f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bulk-review-row .brr-line{color:#687386;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bulk-review-row .brr-date{color:#8c95a3;text-align:right}
#bulkReviewConfirm{background:#1d6ef0;color:#fff;border:0;border-radius:8px;padding:8px 16px;font-weight:800;cursor:pointer}
#bulkReviewConfirm[disabled]{opacity:.5;cursor:default}
.bulk-review-divider{margin-top:8px;padding:6px 10px;border-radius:7px;background:#fff7ee;border:1px solid #e6b980;color:#93591d;font-size:10px;font-weight:750}
.bulk-review-row.sender-only{border-color:#e6cba5;background:#fffdf8}
.bulk-review-row .brr-eyes small{color:#93591d;font-weight:750}
.bulk-review-row .brr-conf{margin-left:6px;font-style:normal;font-weight:800;color:#8a5a12;font-size:10px}
/* One field, two seconds. Nothing else belongs in the naming flow. */
.sender-one-field{max-width:460px}
.sender-one-label{display:block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#7b8699}
.sender-one-label input{display:block;width:100%;margin-top:6px;border:1px solid #c9d3e0;border-radius:8px;padding:10px 12px;font-size:15px;color:#22303f}
.sender-one-label input:focus{outline:none;border-color:#6f9fe0;box-shadow:0 0 0 3px rgba(111,159,224,.18)}
.sender-one-label small{display:block;margin-top:7px;font-size:10.5px;font-weight:500;letter-spacing:0;text-transform:none;color:#8a95a5;line-height:1.45}

/* LAW 4.19 — envelopes and blanks are discarded by default, and SHOWN.
   Greyed enough to read as "not going in the chart" at a glance, legible
   enough to check the AI's call, with the rescue always visible. */
.di-segment-card.di-discarded{opacity:.55;background:repeating-linear-gradient(135deg,transparent,transparent 8px,rgba(120,120,120,.06) 8px,rgba(120,120,120,.06) 16px);border-style:dashed}
.di-segment-card.di-discarded strong{color:#6b7280;font-weight:600}
.di-segment-card.di-discarded .di-page-chips button{opacity:.7}
.di-segment-card.di-discarded:hover{opacity:.85}
.di-rescue{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid #9ca3af;background:#fff;color:#374151;cursor:pointer;white-space:nowrap}
.di-rescue:hover{border-color:#2563eb;color:#1d4ed8}

/* ── AI DOCUMENT REVIEW WIZARD (O-54) ────────────────────────────────
   LAW 4.10: the action row lives above the content and never moves. The
   two panes below are sized off the viewport and scroll internally, so
   Approve is on screen at every height David works at. */
.diw{display:flex;flex-direction:column;gap:10px;height:calc(100vh - 162px);min-height:480px;overflow:hidden}
.diw-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:0 0 auto}
.diw-progress strong{font-size:17px;display:block}
.diw-progress span{font-size:13px;color:#6b7280}
.diw-bar{height:4px;background:#e5e7eb;border-radius:99px;margin-top:6px;width:320px;max-width:40vw;overflow:hidden}
.diw-bar i{display:block;height:100%;background:#2563eb;transition:width .18s ease}
.diw-tabs{display:flex;gap:4px}
.diw-tabs button{padding:6px 14px;border:1px solid #d1d5db;background:#fff;border-radius:7px;font-size:13px;cursor:pointer}
.diw-tabs button.active{background:#111827;color:#fff;border-color:#111827}

.diw-actions{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px;flex:0 0 auto}
.diw-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:14px 10px;border-radius:11px;border:2px solid transparent;font-size:17px;font-weight:700;letter-spacing:.4px;cursor:pointer;transition:transform .08s ease,box-shadow .12s ease}
.diw-btn small{font-size:11px;font-weight:500;letter-spacing:0;opacity:.85}
.diw-btn:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.13)}
.diw-btn.approve{background:#059669;color:#fff}
.diw-btn.fix{background:#fff;color:#1f2937;border-color:#d1d5db}
.diw-btn.discard{background:#fff;color:#b91c1c;border-color:#fca5a5}
.diw-btn.discard.armed{background:#b91c1c;color:#fff;border-color:#b91c1c}

.diw-flag{flex:0 0 auto;padding:8px 12px;border-radius:8px;background:#f3f4f6;color:#374151;font-size:13px;border-left:3px solid #9ca3af}
.diw-flag.warn{background:#fef3c7;color:#92400e;border-left-color:#d97706}

.diw-body{display:grid;grid-template-columns:1.25fr 1fr;gap:12px;flex:1 1 auto;min-height:0}
.diw-pages,.diw-meta{border:1px solid #e5e7eb;border-radius:11px;background:#fff;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.diw-pages-head{flex:0 0 auto;padding:8px 12px;border-bottom:1px solid #f0f0f0;font-weight:600;font-size:13px;display:flex;justify-content:space-between;align-items:center}
.diw-pages-head span{font-weight:400;color:#6b7280}
.diw-frame{flex:1 1 auto;width:100%;border:0;min-height:0}
.diw-noframe{padding:24px;color:#6b7280;text-align:center}
.diw-meta{padding:14px 16px;gap:12px;overflow-y:auto}
.diw-field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:#6b7280;margin-bottom:3px}
.diw-name{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;word-break:break-all;line-height:1.45}
.diw-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.diw-conf{font-size:11px;color:#059669;font-weight:700;margin-left:7px}
.diw-summary{margin:0;font-size:13px;line-height:1.5;color:#374151}
.diw-patient.known strong{font-size:16px;font-weight:700}
.diw-patient small{display:block;font-size:11px;color:#6b7280;margin-top:2px}
.diw-patient.unmatched strong,.diw-patient.empty strong{color:#92400e;font-size:14px}
.diw-warnings{margin:0;padding-left:18px;font-size:12px;color:#92400e}

.diw-fix{display:flex;flex-direction:column;gap:10px}
.diw-fix label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:#6b7280}
.diw-fix input,.diw-fix select{width:100%;padding:7px 9px;border:1px solid #d1d5db;border-radius:7px;font-size:13px;margin-top:3px}
.diw-fix-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.diw-fix-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:2px}

.diw-foot{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.diw-foot .diw-spacer{flex:1 1 auto}
.diw-foot button{padding:7px 14px;border:1px solid #d1d5db;background:#fff;border-radius:7px;font-size:13px;cursor:pointer}
.diw-foot button:disabled{opacity:.45;cursor:not-allowed}
.diw-foot button.primary{background:#2563eb;color:#fff;border-color:#2563eb;font-weight:600}

/* O-55b — chrome compression, scoped to the AI review screen only. */
main:has(.diw) .topbar{height:44px;min-height:44px;padding-top:2px;padding-bottom:2px}
main:has(.diw) .topbar .page-title{font-size:15px}
main:has(.diw) .topbar .top-actions{transform:scale(.88);transform-origin:right center}
main:has(.diw) > .content,section.content:has(.diw){padding-top:8px;padding-bottom:10px}
.diw{height:calc(100vh - 68px)}
.diw-head{gap:12px}
.diw-progress strong{font-size:15px}
.diw-bar{margin-top:4px;height:3px}
.diw-actions{gap:8px}
.diw-btn{padding:10px 10px;font-size:16px}
.diw-flag{padding:5px 10px;font-size:12px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* O-55a — the per-document viewer. */
.diw-pages-head{gap:10px;flex-wrap:wrap;padding:6px 10px}
.diw-pagemap{display:flex;gap:3px;flex-wrap:wrap}
.diw-pagechip{display:inline-flex;flex-direction:column;align-items:center;line-height:1.05;font-size:10px;font-weight:700;padding:3px 6px;border:1px solid #d1d5db;border-radius:5px;background:#fff;cursor:pointer;color:#374151}
.diw-pagechip i{font-style:normal;font-weight:400;font-size:9px;color:#6b7280}
.diw-pagechip:hover{border-color:#2563eb;color:#1d4ed8}
.diw-pages-foot{flex:0 0 auto;padding:5px 10px;border-top:1px solid #f0f0f0;font-size:11px;color:#6b7280;background:#fafafa}

/* O-55d — the three facts that matter, at the top of the panel. */
.diw-keys{display:flex;flex-direction:column;gap:7px;padding-bottom:10px;border-bottom:1px solid #f0f0f0}
.diw-key{display:grid;grid-template-columns:78px 1fr auto;align-items:baseline;gap:8px}
.diw-key label{grid-column:1;font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:#6b7280;margin:0}
.diw-key strong{grid-column:2;font-size:17px;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.diw-key .diw-conf{grid-column:3;margin:0}
.diw-key small{grid-column:2/4;font-size:11px;color:#6b7280;margin-top:-2px}
.diw-key.warn strong{color:#b45309;font-size:15px}
.diw-key.warn small{color:#b45309}

/* O-55c — the approved tray. Collapsed by default, one click to see. */
.diw-tray-toggle{font-weight:600}
.diw-tray-toggle.has{border-color:#059669;color:#047857;background:#ecfdf5}
.diw-tray{position:absolute;left:0;right:0;bottom:52px;max-height:38vh;overflow-y:auto;background:#fff;border:1px solid #d1d5db;border-radius:11px;box-shadow:0 -6px 24px rgba(0,0,0,.13);padding:10px 14px;z-index:20}
.diw-tray-head{font-size:12px;color:#374151;margin-bottom:7px}
.diw-tray ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.diw-tray li{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}
.diw-tray li span{display:inline-block;min-width:64px;color:#6b7280;font-family:inherit}
.diw-tray-empty{margin:0;color:#6b7280;font-size:12px}
.diw{position:relative}

/* O-56 — split from the card. One button per page, meaning "this page starts
   a new document". It appears on hover so a 13-page strip stays readable, but
   is always focusable and always present in the DOM. */
.diw-pagewrap{display:inline-flex;flex-direction:column;align-items:stretch;gap:2px}
.diw-splithere{font-size:9px;padding:1px 4px;border:1px dashed #9ca3af;border-radius:4px;background:#fff;color:#6b7280;cursor:pointer;opacity:.35;transition:opacity .12s ease,border-color .12s ease,color .12s ease;white-space:nowrap}
.diw-pagewrap:hover .diw-splithere,.diw-splithere:focus{opacity:1;border-color:#2563eb;color:#1d4ed8;border-style:solid}
.diw-mergeback{font-size:10px;padding:2px 7px;border:1px solid #d1d5db;border-radius:5px;background:#fff;color:#374151;cursor:pointer;margin-left:6px}
.diw-mergeback:hover{border-color:#2563eb;color:#1d4ed8}
.diw-rereading{font-size:10px;color:#2563eb;margin-left:6px;font-weight:600}

/* Completion screen: what was filed, and what was deliberately not. */
.di-complete-dropped{margin-top:10px;padding-top:8px;border-top:1px solid #eee;opacity:.75}
.di-complete-dropped small{display:block;font-size:11px;color:#6b7280}

/* O-60 — the Practice Fusion handoff panel. Whose files, how many, and
   whether the count was checked against the folder. Blocked reads red and
   loud: the next thing the user does is drag files into a chart. */
.di-handoff{max-width:900px;margin:0 0 14px;padding:16px 18px;border:1px solid #9dd9c2;border-left:6px solid #11a780;border-radius:14px;background:#f2fbf7}
.di-handoff>strong{display:block;font-size:16px;color:#05775b}
.di-handoff>p{margin:6px 0 0;color:#41675c}
.di-handoff-rows{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:12px}
.di-handoff-rows>div{display:flex;flex-direction:column;min-width:150px}
.di-handoff-rows b{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#5d7d73}
.di-handoff-rows span{font-size:14px;color:#17342b}
.di-handoff-blocked{border-color:#e9a8a3;border-left-color:#c53b31;background:#fdf2f1}
.di-handoff-blocked>strong{color:#a52b22}
.di-handoff-blocked>p{color:#7c3b35}
.di-handoff-blocked .di-handoff-rows b{color:#a2635d}
.di-handoff-blocked .di-handoff-rows span{color:#4a1e1a}
.di-handoff-fix{margin:12px 0 0;padding:9px 11px;border-radius:9px;background:#fbe3e0;color:#8c2a22;font-weight:700}

/* O-62 - THE SECOND DOOR. Deliberately quieter than Process: it is the
   alternative route, not the headline. Same height so the row stays level. */
.fax-manual-btn{border:1px solid #b9c1cd;background:#f4f6f9;color:#4c5769;border-radius:7px;padding:8px 12px;font-size:11px;font-weight:760;white-space:nowrap}
.fax-manual-btn:hover{background:#e8ecf2;border-color:#8f9aab}
.fax-row-actions .fax-manual-btn{padding:7px 9px;font-size:9.5px}
/* Suggest name sits WITH the box it fills, not in a toolbar elsewhere. */
.p3-nfx-name-row{display:flex;align-items:center;gap:8px}
.p3-nfx-name-row input{flex:1 1 auto;min-width:0}
.p3-nfx-name-row .mini-btn{flex:0 0 auto;white-space:nowrap}

/* O-62 - Suggest name sits under the filename box it fills. */
.fax-suggest-row{display:flex;align-items:center;gap:8px;margin-top:6px}
.fax-suggest-note{color:#6f7989;font-size:10.5px;min-width:0;overflow:hidden;text-overflow:ellipsis}

/* O-64 - provenance. Three states, told apart at a glance: AI-drafted (amber
   underline), carried from triage (blue underline), typed by David (plain). */
.fax-aifill-bar{display:flex;align-items:center;gap:9px;margin:6px 0 9px}
/* #441: the provider row's red Delete, its confirm, and the Undo bar above the results */
.mini-btn.danger{border-color:#f2b8b5;color:#b42318;background:#fef2f1}.mini-btn.danger:hover{background:#fee4e2}
.provider-directory-row .directory-row-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center}.provider-directory-row .directory-row-actions .mini-btn{white-space:nowrap;flex:0 0 auto}
.provider-undo-bar{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:8px 12px;border:1px solid #cfe0f7;border-radius:10px;background:#f2f7ff;font-size:12px}
.provider-undo-bar.good{border-color:#bfe3d0;background:#edf9f5}.provider-undo-bar span{flex:1}.provider-undo-bar .provider-undo-x{margin-left:auto}
.provider-delete-modal{width:min(560px,94vw)}.provider-delete-modal .modal-foot{display:flex;justify-content:flex-end;gap:8px}
.provider-delete-modal .modal-foot button.danger,.provider-merge-confirm button.danger{border:1px solid #b42318;background:#b42318;color:#fff;border-radius:9px;padding:9px 16px;font-weight:800}
.provider-delete-modal .modal-foot button.danger:disabled{opacity:.5}
.provider-delete-refs{margin:0;font-size:13px;color:#43516a}.provider-delete-refs.muted{color:#6f7989}
.provider-delete-refs.warn{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:8px 10px}
/* #441: no dark variants on purpose — the Providers page and its modals have no dark skin (pre-existing, flagged), so a
   dark bar or box would sit as an island inside a light host */
/* #440: the AI Fill button above the classify block — the header buttons' exact weight */
.fax-aifill-bar .fax-aifill-button{white-space:nowrap;border:1px solid #dde2e9;background:#f8f9fb;border-radius:7px;padding:5px 6px;font-size:10.5px;font-weight:700;color:inherit}
.fax-aifill-bar .fax-aifill-button:disabled{opacity:.55}
/* #440 addendum: a date the AI could not settle — marked, never guessed */
.fax-process-panel input.is-needs-review{border-color:#d97706;background:#fffbeb;box-shadow:0 0 0 2px rgba(217,119,6,.18)}
.fax-aifill-bar .mini-btn.primary{background:#286be5;color:#fff;border:0;border-radius:7px;padding:7px 14px;font-weight:800;font-size:11px}
.fax-aifill-bar .mini-btn.primary:disabled{background:#b9c1cd}
.fax-aifill-note{color:#6f7989;font-size:10.5px;min-width:0}
/* #483 — law 4.27: a success is quiet, a FAILURE is loud and patient. 10.5px grey-red is the right weight for
   "AI drafted 8 fields" and far too quiet for "AI Fill couldn't read this document". The failed state gets real
   size and a warning surface, and it stays put until the next press (it renders from state, never a toast).
   Kept inside the existing row — no reflow, no scroll added to a panel law 4.10 governs. */
.fax-aifill-note.failed{
  color:#8c1d18;font-size:11.5px;font-weight:600;line-height:1.35;
  background:#fdeceb;border:1px solid #f3c9c6;border-radius:6px;padding:5px 8px;
}
.fax-aifill-note.done{color:#167553}
/* O-66 / law 4.19 — an auto-discarded page in the manual workbench's page rail.
   SHOWN, never hidden: greyed and labelled with the reason, with a one-click
   Keep rescue, because the classifier is sometimes wrong and David must be able
   to see and reverse it. */
.fax-picker-page.auto-discard{opacity:.5;background:#f4f5f7;border-color:#d7dbe2}
.fax-picker-page.auto-discard .fax-picker-img,
.fax-picker-page.auto-discard .fax-picker-scale{filter:grayscale(1)}
.fax-picker-why{font-size:9.5px;line-height:1.25;color:#8a6d1f;background:#fdf6e3;border-radius:4px;padding:2px 4px;margin:3px 2px 0;text-align:center}
.fax-picker-rescue{display:block;width:calc(100% - 4px);margin:3px 2px 2px;padding:3px 0;font-size:10px;font-weight:800;color:#1c4fa1;background:#eaf1fd;border:1px solid #b9cdf0;border-radius:5px;cursor:pointer}
.fax-picker-rescue:hover{background:#dbe8fb}

/* O-65 — the standalone non-fax intake carries the same AI Fill note as the
   fax workbench, so one surface never explains itself differently from the
   other. Same colours, same three states. */
.p3-nfx-aifill-note{display:block;color:#6f7989;font-size:10.5px;margin:-2px 0 7px}
.p3-nfx-aifill-note.failed{color:#b3261e}
.p3-nfx-aifill-note.done{color:#167553}
.is-ai-filled{border-bottom:2px solid #d9a41a!important;background:#fffdf5}
.is-triage-carried{border-bottom:2px solid #7aa7e8!important;background:#f7faff}
.fax-carried-patient{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;border:1px solid #cfd6e2;border-left:3px solid #286be5;border-radius:7px;background:#f6f9ff;padding:6px 9px;margin-bottom:7px}
.fax-carried-patient strong{font-size:12.5px}
.fax-carried-patient span{font-size:11px;color:#4c5769}
.fax-carried-patient em{font-size:10px;color:#7a8496;font-style:normal}
.fax-carried-patient.none{border-left-color:#d14545;background:#fff6f6;color:#9b2e2e;font-size:11.5px}

.fax-carried-patient.unconfirmed{border-left-color:#d9a41a;background:#fffdf5}
.fax-carried-patient.unconfirmed em{color:#8a6a09;font-weight:700}

/* O-66 — the page rail says what it is doing, in all three states. Pages that
   untick themselves with no explanation would be law 4.18's disease in
   reverse: the screen changing without saying why. */
.fax-discard-note{font-size:10.5px;line-height:1.35;padding:5px 8px;margin:0 6px 6px;border-radius:6px}
.fax-discard-note.running{color:#4c5769;background:#eef1f5;border:1px solid #dde2ea}
.fax-discard-note.done{color:#8a6d1f;background:#fdf6e3;border:1px solid #ecdcae}
.fax-discard-note.failed{color:#b3261e;background:#fdeceb;border:1px solid #f3c4c0}

/* O-69 — the confirm gate asks for what it needs. The suggested card is a
   button in its own right; the green control is there because "click the name"
   is not discoverable on its own. */
.fax-carried-patient.unconfirmed{cursor:pointer;border-left-color:#d9a41a;background:#fffdf5}
.fax-carried-patient.unconfirmed:hover{background:#fff8e8}
.fax-confirm-btn{margin-left:auto;padding:4px 11px;font-size:11px;font-weight:800;color:#fff;background:#1a7f4b;border:0;border-radius:6px;cursor:pointer;white-space:nowrap}
.fax-confirm-btn:hover{background:#15683d}
.fax-confirm-prompt{border:1px solid #b9cdf0;border-left:3px solid #286be5;background:#f6f9ff;border-radius:8px;padding:10px 12px;margin:0 0 9px}
.fax-confirm-prompt p{margin:0 0 3px;font-size:13px}
.fax-confirm-prompt small{display:block;color:#4c5769;font-size:10.5px;line-height:1.35;margin-bottom:8px}
.fax-confirm-actions{display:flex;gap:8px;flex-wrap:wrap}
.fax-confirm-go{padding:6px 14px;font-size:11.5px;font-weight:800;color:#fff;background:#1a7f4b;border:0;border-radius:6px;cursor:pointer}
.fax-confirm-go:hover{background:#15683d}
.fax-confirm-change{padding:6px 12px;font-size:11.5px;font-weight:700;color:#1c4fa1;background:#fff;border:1px solid #b9cdf0;border-radius:6px;cursor:pointer}

/* P0 item 4 — the AI analysis screen's way out. Always visible: David had to
   escape it through the nav because there was none. */
.diw-close{margin-left:8px;background:#fff;border:1px solid #d7dbe2;color:#4c5769;border-radius:6px;padding:5px 12px;font-weight:700;cursor:pointer}
.diw-close:hover{background:#f4f5f7;color:#1f2937}

/* O-39 Parts C and D — provider resolution controls on the queues. */
.queue-provider-flag{display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:14px;padding:0 4px;font-size:8.5px;font-weight:900;vertical-align:middle}
.queue-actions .p3-file-link{flex-shrink:0;padding:3px 4px}
.queue-actions .p3-file-link span{display:none}
.mini-btn.queue-resolve-needed{border-color:#d9a441;background:var(--amber-soft,#fdf3e0);color:#8b580b;font-weight:850}
.p3-resolve-modal{max-width:640px}
.p3-resolve-current{border-radius:8px;padding:7px 10px;margin-bottom:9px;font-size:11px}
.p3-resolve-current strong{display:block}
.p3-resolve-current small{color:var(--muted);font-size:10px}
.p3-resolve-current.good{background:#ecfdf5;border:1px solid #a7e8cd}
.p3-resolve-current.warn{background:#fdf3e0;border:1px solid #e6c887}
.p3-resolve-results{display:grid;gap:4px;margin:6px 0 9px}
.p3-resolve-results button{display:block;width:100%;text-align:left;border:1px solid #d9dee7;border-radius:7px;background:#fff;padding:6px 9px;cursor:pointer}
.p3-resolve-results button:hover{background:#f5f8fc;border-color:#9fb6d8}
.p3-resolve-results strong{display:block;font-size:11px}
.p3-resolve-results small{color:var(--muted);font-size:9.5px}
.p3-resolve-none{padding:8px;color:var(--muted);font-size:10.5px}
.p3-resolve-add summary{cursor:pointer;font-size:11px;font-weight:800;color:#475369;padding:4px 0}
.p3-resolve-note{margin:4px 0 0;color:var(--muted);font-size:9.5px}

.p3-workboard-build{position:absolute;right:14px;bottom:6px;font-size:9px;letter-spacing:.4px;color:#a8b3c4;pointer-events:none}
.p3-workboard{position:relative}

/* O-46 — MULTIPLE LABELED FAX NUMBERS on a provider profile. The directory
   had one fax slot; the SWFL import proved a practice can have several, one
   per office. Shown wherever the fax is being chosen, because a number
   nobody can see is a number nobody can use. */
.p3-resolve-faxes{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.p3-resolve-faxes b{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;width:100%}
.p3-resolve-faxes span{display:inline-flex;flex-direction:column;background:#fff;border:1px solid #d9e0ea;
  border-radius:8px;padding:4px 9px;font-size:12.5px;font-weight:600;color:#22303f}
.p3-resolve-faxes i{font-style:normal;font-weight:400;font-size:11px;color:#8a95a5;max-width:220px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


/* ── KILL LIST (David's ruling, 2026-08-15): success is never green. Every
   "success" class below is restyled to neutral slate -- the STATE stays
   readable (a badge still says what it says), the celebration color is gone.
   Appended last so it wins without editing the originals. ── */
.pill.green{background:#eef2f7;color:#334155}
.fax-linked-badge{background:#f3f6fa;border-color:#c9d3e0;color:#334155}
.p3-resolve-current.good{background:#f4f7fb;border-color:#d3dbe6}
.save-status,.save-status .save-dot{display:none!important}
.toast.good{background:#334155}

/* Dev-leak sweep 2026-08-15: the ONE build marker (law 4.14) lives here, tiny and muted, instead of as pills on working screens. */
.pvt3-build-stamp{display:block;margin-top:6px;font-size:9.5px;font-family:ui-monospace,Consolas,monospace;color:rgba(255,255,255,.28);letter-spacing:.02em}

/* FAX INBOX DECLUTTER (David 2026-08-17): one suggested triage line, grey italic until ✓ */
.fax-triage-suggested{display:flex;align-items:center;gap:6px;min-width:0}
.fax-triage-suggest{flex:1 1 auto;min-width:0;border:1px dashed #cbd5e1;background:#fbfcfe;border-radius:7px;padding:5px 8px;text-align:left;cursor:text;font:inherit;color:#6b7280;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.fax-triage-suggest em{font-style:italic;font-size:11px;color:#6b7280}
.fax-triage-suggest:hover{border-color:#94a3b8;color:#374151}
.fax-triage-confirm{flex:0 0 auto;width:26px;height:26px;border-radius:7px;border:1px solid #bfe6cc;background:#f0fdf4;color:#15803d;font-weight:900;font-size:13px;cursor:pointer;line-height:1}
.fax-triage-confirm:hover{background:#dcfce7;border-color:#86efac}
.fax-triage-hidden{display:none!important}
.fax-ai-read{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding:6px 12px;border-bottom:1px solid #e5eaf0;background:#fbfcfe;font-size:10.5px}
.fax-ai-read b{color:#64748b;letter-spacing:.06em;font-size:9.5px;margin-right:4px}

/* SMART PROVIDER SEARCH (2026-08-18): the gentle redirect note above the results */
.search-picker-note{padding:8px 12px;font-size:12px;line-height:1.4;color:#7c2d12;background:#fff7ed;border-bottom:1px solid #fed7aa}

/* D1 — "Records requests scheduled to send today" (PVT2 _renderMAWakeUpSection, index.txt:8975–9035, colours transcribed) */
.rrw-section{border:1px solid #FAC775;border-radius:8px;margin:0 0 16px;overflow:hidden;background:#fff}
.rrw-title{background:#854F0B;color:#fff;font-weight:600;display:flex;align-items:center;gap:8px;padding:10px 16px;font-size:14px}
.rrw-count{background:rgba(255,255,255,.22);font-size:11px;padding:2px 9px;border-radius:99px;font-weight:500;margin-left:auto}
.rrw-list{padding:12px;display:flex;flex-direction:column;gap:10px}
.rrw-card{border:1px solid #e5e7eb;border-left:3px solid #FAC775;border-radius:6px;background:#FFFCF6;padding:14px 16px}
.rrw-card.overdue{border-left-color:#A32D2D;background:#FFF6F6}
.rrw-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #e5e7eb}
.rrw-head>div{flex:1;min-width:0}
.rrw-name{font-size:15px;font-weight:600}
.rrw-sub{font-size:12px;color:#6b7280;margin-top:2px}
.rrw-tag{background:#FAEEDA;color:#854F0B;border:1px solid #FAC775;font-size:11px;font-weight:500;padding:4px 10px;border-radius:99px;white-space:nowrap}
.rrw-card.overdue .rrw-tag{background:#FCEBEB;color:#791F1F;border-color:#A32D2D}
.rrw-body{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:14px}
.rrw-k{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;font-weight:600;margin:0 0 3px}
.rrw-v{font-size:13px;line-height:1.45;margin-bottom:10px}
.rrw-fac{display:block;color:#6b7280}
.rrw-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px;border-top:1px solid #e5e7eb;font-size:11px;color:#6b7280}
.rrw-foot .p3-fax-action{background:#6B4F96;color:#fff;border:none;font-size:12px;font-weight:600;padding:8px 16px;border-radius:6px;cursor:pointer}
@media(max-width:760px){.rrw-body{grid-template-columns:1fr}}
.fax-refax-thread{display:block;color:#6b4f96;font-size:11px;margin-top:2px}
/* D3 — outbound fax failure banner (PVT2 .fax-fail-banner, index.txt:307–325, transcribed) */
.fax-fail-banner{background:#fef2f2;border:1px solid #fecaca;border-left:4px solid #b91c1c;border-radius:10px;padding:10px 14px;margin:0 0 12px;font-size:13px;color:#7f1d1d}
.fax-fail-banner .ffb-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.fax-fail-banner .ffb-label{font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.5px;background:#fecaca;color:#7f1d1d;padding:2px 8px;border-radius:4px}
.fax-fail-banner .ffb-title{font-weight:600;color:#7f1d1d}
.fax-fail-banner .ffb-actions{margin-left:auto;display:flex;gap:6px}
.fax-fail-banner .ffb-btn{background:#fff;color:#7f1d1d;border:1px solid #fca5a5;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.fax-fail-banner .ffb-btn:hover{background:#fee2e2}
.fax-fail-banner .ffb-btn-primary{background:#b91c1c;color:#fff;border-color:#b91c1c}
.fax-fail-banner .ffb-btn-primary:hover{background:#991b1b}
.fax-fail-banner .ffb-list{list-style:none;margin:0;padding:0;border-top:1px solid #fecaca}
.fax-fail-banner .ffb-row{padding:6px 0;border-bottom:1px dashed #fecaca;display:flex;align-items:flex-start;gap:10px;font-size:12px}
.fax-fail-banner .ffb-row:last-child{border-bottom:none}
.fax-fail-banner .ffb-row-main{flex:1;min-width:0}
.fax-fail-banner .ffb-row-patient{font-weight:600;color:#991b1b}
.fax-fail-banner .ffb-row-meta{color:#7f1d1d;opacity:.85}
.fax-fail-banner .ffb-row-reason{color:#991b1b;font-style:italic;margin-top:2px}
.fax-fail-banner .ffb-row-dismiss{background:transparent;border:none;color:#7f1d1d;opacity:.6;cursor:pointer;font-size:16px;line-height:1;padding:0 4px;font-family:inherit}
.fax-fail-banner .ffb-row-dismiss:hover{opacity:1}
.fax-fail-banner .ffb-more{font-size:11px;color:#991b1b;margin-top:6px}
/* P3 — referral doors (PVT2 detail block index.txt:19382–19405) + imaging inline appointment (index.txt:5111) */
.ref-doors{margin-top:14px;padding-top:14px;border-top:1px solid #e5e7eb}
.ref-doors .field textarea{width:100%;border:1px solid #d7dee9;border-radius:10px;padding:9px 11px;font:inherit}
.ref-notes-title{font-size:12px;font-weight:700;color:#6b7280;text-transform:uppercase;margin:6px 0 8px}
.ref-note{padding:10px 14px;margin-bottom:6px;border-left:3px solid #9098a4;background:#f9fafb;border-radius:0 8px 8px 0;font-size:13px}
.ref-note-head{display:flex;justify-content:space-between;margin-bottom:3px;font-size:12px}
.ref-note-head span:first-child{font-weight:700}
.ref-note-head span:last-child{font-size:11px;color:#6b7280}
.ref-notes-empty{color:#6b7280}
.img-appt{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.img-appt input[type=date]{border:1px solid #d7dee9;border-radius:7px;padding:4px 6px;font-size:12px;max-width:150px}
.img-appt small{color:#6b7280;font-size:10px}
.img-appt-chip{display:inline-block;background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600;white-space:nowrap}
.img-appt-chip.past{background:#fff7ed;color:#9a3412;border-color:#fed7aa}
.img-appt-edit{border:0;background:transparent;color:#6b7280;cursor:pointer;font-size:13px;padding:0 3px}
.pvt-work-row .img-appt{margin-right:8px}
/* Law 4.10 (no-scroll-to-act) for the module editor: the BODY scrolls, the Save footer stays pinned */
.p3-editor-modal{display:flex;flex-direction:column;max-height:92vh;overflow:hidden}
.p3-editor-modal .modal-head,.p3-editor-modal .modal-foot{flex:0 0 auto}
.p3-editor-modal .modal-body{flex:1 1 auto;overflow:auto;min-height:0}
.ref-doors .grid-2{gap:10px}
.ref-doors .field{margin-bottom:8px}
/* P3 — imaging queue: the Scheduled column now holds the inline date door (PVT2 index.txt:5111); give it room */
.queue-card[data-queue-type="imaging"] .queue-grid-head,.queue-card[data-queue-type="imaging"] .queue-grid-row{grid-template-columns:minmax(110px,.9fr) minmax(125px,1fr) minmax(95px,.75fr) 72px minmax(118px,.9fr) minmax(168px,1fr) minmax(84px,.7fr) 114px}
.queue-card[data-queue-type="imaging"] .img-appt input[type=date]{max-width:132px;font-size:11px;padding:3px 5px}
.queue-card[data-queue-type="imaging"] .img-appt small{display:block;width:100%}
.img-appt-chip{font-size:10px;padding:2px 7px}
/* P8 — filed-result icons on the imaging / labs queue rows (same icon + viewer as the PVT page) */
.queue-actions .queue-filed{display:inline-flex;align-items:center;gap:3px;margin-right:6px}
.queue-actions .queue-filed .pvt3-pdf{flex:0 0 auto}
/* P11 — Reminder admin (PVT2 .dd-rem-* index.txt:602–612, transcribed; sized down for the dashboard row) */
.dd-rem-admin{margin-top:6px;padding:7px 10px;background:#F5F2ED;border:1px solid #e5e7eb;border-radius:6px;font-size:11px}
.dd-rem-admin-lbl{font-size:10px;color:#5C6B73;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.dd-rem-admin-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.dd-rem-admin-pill{background:#fff;color:#92400E;border:1px solid #FCD34D;font-size:11px;padding:3px 9px;border-radius:5px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.dd-rem-admin-pill:hover{background:#FFFBEB}
.dd-rem-admin-empty{font-size:11px;color:#9CA3AF;font-style:italic}
.dd-rem-admin-help{font-size:11px;color:#6B7280;margin-top:5px;line-height:1.4}
.dd-rem-confirm{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11px;color:#92400E}
.dd-rem-confirm-yes{background:#DC2626;color:#fff;border:1px solid #B91C1C;font-size:11px;padding:3px 9px;border-radius:5px;font-weight:600;cursor:pointer}
.dd-rem-confirm-no{background:#fff;color:#374151;border:1px solid #D1D5DB;font-size:11px;padding:3px 9px;border-radius:5px;font-weight:500;cursor:pointer}
/* P18 — telehealth e-mail sent-status (PVT2 index.txt:7837 "✓ Sent …" / "Results email — not sent") */
.p3-telehealth-cell{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.th-sent-status{font-size:10px;line-height:1.3}
.th-sent-status.sent{color:#065f46;font-weight:600}
.th-sent-status.not-sent{color:#8a5a09}
button.th-sent-again{border-color:#a7f3d0;background:#f0fdf4}

/* PF Robot card — "last verified working" (David 2026-08-18) */
.pf-robot-verified{margin:2px 0 8px;font-size:13px;line-height:1.35}
.pf-robot-verified.ok{color:#1b5e20}
.pf-robot-verified.warn{color:#8a6d00}
.pf-robot-verified.bad{color:#b3261e;font-weight:600}

/* torture scorecard (David 2026-08-18) */
.ts-h{margin:14px 0 4px;font-size:14px}.ts-h small{font-weight:400;color:#5f6368;margin-left:6px}
.ts-line{font-size:13px;margin:4px 0}.ts-wrap{overflow-x:auto}.ts-table{border-collapse:collapse;font-size:12.5px;width:100%}.ts-table th,.ts-table td{border-bottom:1px solid #e3e6ea;padding:5px 8px;text-align:left;vertical-align:top;white-space:nowrap}.ts-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#5f6368}
.ts-ok{color:#1b5e20;font-weight:700}.ts-bad{color:#b3261e;font-weight:700}.ts-wait{color:#8a6d00}.ts-none{color:#9aa0a6}.ts-ok small,.ts-bad small,.ts-wait small{font-weight:400;color:#5f6368;margin-left:4px}.ts-deleted td{background:#fafafa}

/* THE REMINDER-STATUS LAW (David's order, 2026-08-24) — one component, reused
   on the dashboard rows and every Mission Control card tier. See reminder-status.js. */
.p3-remstat{display:inline-flex;align-items:center;gap:5px;line-height:1.3}
.p3-remstat .ck{font-weight:700}
.p3-remstat-notsent{font-size:11px;color:#9ca3af;font-style:italic}
.p3-remstat-sent{font-size:12px;color:#15803d;font-weight:500}
.p3-remstat-sent .ck{font-size:13px}
.p3-remstat-confirmed{background:#dcfce7;color:#15803d;border:1px solid #86efac;padding:4px 9px;border-radius:5px;font-weight:700;font-size:11px}
.p3-remstat-confirmed .ck{font-size:13px}

/* #334 — PILL NAV STRIP (David's design, mockup-approved 2026-08-29). Lives INSIDE the band above each page's header:
   the strip is pulled up into .content's top padding, so no page real estate is lost. Exact spec — do not restyle. */
.p3-pillnav{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:nowrap;overflow:hidden;margin:-32px -36px 6px;padding:3px 36px;background:#eef4fa;min-height:26px}
@media(max-width:1050px){.p3-pillnav{margin:-22px -22px 6px;padding:3px 22px}}
@media(max-width:900px){.p3-pillnav{gap:4px}.p3-pill{padding:1px 10px}}
.p3-pill{display:inline-block;font-size:12px;font-weight:500;line-height:1.35;padding:1px 14px;border-radius:999px;border:0.5px solid transparent;background:transparent;font-family:inherit;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}
.p3-pill:focus-visible{outline:2px solid #1A73E8;outline-offset:1px}
.p3-pill-active-pvts{color:#0F6E56;background:rgba(93,202,165,0.28);border-color:rgba(93,202,165,0.55)}
.p3-pill-dashboard{color:#3C3489;background:rgba(175,169,236,0.30);border-color:rgba(175,169,236,0.60)}
.p3-pill-fax{color:#854F0B;background:rgba(250,199,117,0.45);border-color:rgba(239,159,39,0.60)}
.p3-pill-patients{color:#993556;background:rgba(237,147,177,0.28);border-color:rgba(237,147,177,0.55)}
.p3-pill-providers{color:#3B6D11;background:rgba(151,196,89,0.28);border-color:rgba(151,196,89,0.55)}
/* the page you are ON: the same hue, ~0.2 deeper — location reads by depth, never by a hue change */
.p3-pill-active-pvts.is-here{background:rgba(93,202,165,0.48)}
.p3-pill-dashboard.is-here{background:rgba(175,169,236,0.50)}
.p3-pill-fax.is-here{background:rgba(250,199,117,0.65)}
.p3-pill-patients.is-here{background:rgba(237,147,177,0.48)}
.p3-pill-providers.is-here{background:rgba(151,196,89,0.48)}
/* dark theme — same hues, lifted text, same translucency on a deep strip (shown to David for approval) */
/* #334: PVT3 has NO app-wide dark theme today — the dark treatment below is DORMANT, bound only to an explicit data-theme="dark" on <html> (nothing sets it yet). It is deliberately NOT bound to the OS prefers-color-scheme: a dark strip on an otherwise light app (what David would see with OS dark mode) is worse than none. Shown to David for approval as a screenshot; it goes live with an app-wide dark theme, not before. */
:root[data-theme="dark"] body[data-page="calendar"] .p3-pillnav{background:#18212f}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-active-pvts{color:#8FE3C4;background:rgba(93,202,165,0.20);border-color:rgba(93,202,165,0.50)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-dashboard{color:#CBC6F7;background:rgba(175,169,236,0.22);border-color:rgba(175,169,236,0.55)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-fax{color:#F7CD7A;background:rgba(250,199,117,0.26);border-color:rgba(239,159,39,0.55)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-patients{color:#F5B3C8;background:rgba(237,147,177,0.20);border-color:rgba(237,147,177,0.50)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-providers{color:#C2E38C;background:rgba(151,196,89,0.20);border-color:rgba(151,196,89,0.50)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill.is-here{filter:none}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-active-pvts.is-here{background:rgba(93,202,165,0.40)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-dashboard.is-here{background:rgba(175,169,236,0.42)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-fax.is-here{background:rgba(250,199,117,0.46)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-patients.is-here{background:rgba(237,147,177,0.40)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-providers.is-here{background:rgba(151,196,89,0.40)}
/* #334 — the strip's pull-up must equal .content's top padding at every width (32 / 25 / 22) */
@media(max-width:1450px) and (min-width:721px){.p3-pillnav{margin:-25px -25px 6px;padding:3px 25px}}
@media(max-width:1050px){.p3-pillnav{margin:-22px -22px 6px;padding:3px 22px}}
/* #337 (David's ruling 2026-08-29): the #336 viewport-fit sizing of the calendar page is REVERTED — it squeezed the grid (truncated names, cut month label, narrowed columns). The calendar renders at its natural full size; a page a few pixels taller than a viewport is fine. The landing scroll is fixed by manual scroll restoration alone (app.js render). */
/* #338 — "Calendar" pill (the reserved sky), first on the strip; the PVT 3 logo goes home too */
.p3-pill-calendar{color:#185FA5;background:rgba(133,183,235,0.28);border-color:rgba(133,183,235,0.55)}
.p3-pill-calendar.is-here{background:rgba(133,183,235,0.48)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-calendar{color:#A9CDF2;background:rgba(133,183,235,0.20);border-color:rgba(133,183,235,0.50)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-calendar.is-here{background:rgba(133,183,235,0.40)}
/* #374 (David's order 2026-09-03): the pill strip is CLICKABLE and says so — pointer cursor (his explicit ruling; law 5.21 amended for this strip only) and a subtle hover brighten of the pill's own background, ~150 ms, background-color only (nothing moves, nothing shifts layout). Both themes. */
.p3-pill-calendar:hover{background:rgba(133,183,235,0.40)}.p3-pill-calendar.is-here:hover{background:rgba(133,183,235,0.58)}
.p3-pill-active-pvts:hover{background:rgba(93,202,165,0.40)}.p3-pill-active-pvts.is-here:hover{background:rgba(93,202,165,0.58)}
.p3-pill-dashboard:hover{background:rgba(175,169,236,0.42)}.p3-pill-dashboard.is-here:hover{background:rgba(175,169,236,0.60)}
.p3-pill-fax:hover{background:rgba(250,199,117,0.58)}.p3-pill-fax.is-here:hover{background:rgba(250,199,117,0.76)}
.p3-pill-patients:hover{background:rgba(237,147,177,0.40)}.p3-pill-patients.is-here:hover{background:rgba(237,147,177,0.58)}
.p3-pill-providers:hover{background:rgba(151,196,89,0.40)}.p3-pill-providers.is-here:hover{background:rgba(151,196,89,0.58)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-calendar:hover{background:rgba(133,183,235,0.30)}:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-calendar.is-here:hover{background:rgba(133,183,235,0.50)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-active-pvts:hover{background:rgba(93,202,165,0.30)}:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-active-pvts.is-here:hover{background:rgba(93,202,165,0.50)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-dashboard:hover{background:rgba(175,169,236,0.32)}:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-dashboard.is-here:hover{background:rgba(175,169,236,0.52)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-fax:hover{background:rgba(250,199,117,0.36)}:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-fax.is-here:hover{background:rgba(250,199,117,0.56)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-patients:hover{background:rgba(237,147,177,0.30)}:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-patients.is-here:hover{background:rgba(237,147,177,0.50)}
:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-providers:hover{background:rgba(151,196,89,0.30)}:root[data-theme="dark"] body[data-page="calendar"] .p3-pill-providers.is-here:hover{background:rgba(151,196,89,0.50)}
.sidebar .brand[data-nav]{cursor:default}

/* #80 — the Resolution sections folded into the Provider Desk: heading row keeps the directory button on the right */
.p3-resolution-folded{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:28px 0 12px;padding-top:18px;border-top:1px solid var(--line)}
.p3-resolution-folded h3{margin:0 0 4px;font-size:17px}
.p3-resolution-folded p{margin:0;color:var(--muted);max-width:70ch}
.p3-resolution-folded>button{flex:0 0 auto}

/* #345/#350 — New Patient Welcome Email sender (1:1 with the Apps Script page) */
/* #431 REVISED (law 4.10 sweep-as-you-touch, 2026-09-13): the BODY scrolls, the head and the footer stay — the footer
   (Close · Clear · Preview · Send, and the acknowledgment strip) is never below the fold, however long the preview or
   the Recent-sends list runs. Before this the whole .modal scrolled (styles.css .modal{overflow:auto}) and a failed send's
   footer sat half-clipped at 900 px. Same shape as .p3-editor-modal. */
.pvt3-welcome-modal{width:min(780px,94vw);display:flex;flex-direction:column;max-height:92vh;overflow:hidden}
.pvt3-welcome-modal .modal-head,.pvt3-welcome-modal .modal-foot{flex:0 0 auto}
.pvt3-welcome-modal .modal-body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;min-height:0;overflow:auto}
.pvt3-welcome-opt{color:var(--muted);font-weight:400;font-size:12px;margin-left:6px}
.pvt3-welcome-err{display:none;color:#dc2626;font-size:12.5px;margin-top:5px}
.pvt3-welcome-err.show{display:block}
.pvt3-welcome-modal input.err{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12)}
.pvt3-welcome-picked{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1.5px solid var(--line);border-radius:8px;background:#f8fafc}
.pvt3-welcome-hits{display:flex;flex-direction:column;border:1.5px solid #95CFDC;border-radius:8px;margin-top:4px;max-height:240px;overflow-y:auto;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.12)}
.pvt3-welcome-hits button{text-align:left;padding:9px 14px;border:0;border-bottom:1px solid var(--line);background:#fff;font-size:14.5px;color:#334155}
.pvt3-welcome-hits button:last-child{border-bottom:0}
.pvt3-welcome-hits button:hover{background:#EAF6F9;color:#125567}
.pvt3-welcome-hits button small{color:var(--muted);margin-left:8px}
.pvt3-welcome-error{border:1px solid #fca5a5;background:#fef2f2;color:#b91c1c;border-radius:8px;padding:9px 12px;font-size:13.5px}
.pvt3-welcome-preview{border-top:1px solid var(--line);padding-top:12px}
.pvt3-welcome-preview-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.pvt3-welcome-preview-head>span:first-child{font-size:13px;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.5px}
.pvt3-welcome-preview-head .meta{font-size:12.5px;color:var(--muted);flex:1}
.pvt3-welcome-editlink{font-size:12.5px;color:#2596A6;background:none;border:0;padding:0;text-decoration:underline}
.pvt3-welcome-frame{width:100%;min-height:600px;border:1px solid var(--line);border-radius:12px;background:#fff;display:block}
.pvt3-welcome-editnote{font-size:12px;color:var(--muted);margin-bottom:8px;font-style:italic}
.pvt3-welcome-textarea{width:100%;min-height:300px;padding:12px;border:1px solid var(--line);border-radius:8px;font-family:ui-monospace,Consolas,monospace;font-size:12px;color:#334155;background:#fff;resize:vertical;margin-bottom:10px}
.pvt3-welcome-editbtns{display:flex;gap:10px}
.pvt3-welcome-confirm{border:1px solid #f5d0a0;background:#fff7ed;border-radius:10px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.pvt3-welcome-confirm p{margin:0;color:#7c2d12}
.pvt3-welcome-confirm>div{display:flex;gap:10px}
.pvt3-welcome-log{border-top:1px solid var(--line);padding-top:12px}
.pvt3-welcome-log-head{font-size:14px;font-weight:600;color:#0f172a;margin-bottom:8px}
.pvt3-welcome-log-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f1f5f9;font-size:13.5px}
.pvt3-welcome-log-row:last-child{border-bottom:0}
.pvt3-welcome-log-row .name{font-weight:600;color:#0f172a}
.pvt3-welcome-log-row .name small{font-weight:400;color:var(--muted);margin-left:6px}
.pvt3-welcome-log-row .email{color:var(--muted);font-size:12.5px}
.pvt3-welcome-log-row .when{color:var(--muted);font-size:12.5px;text-align:right;flex:0 0 auto}
.pvt3-welcome-log-row .when small{display:block;font-size:11px}
/* #431 (2026-09-11) — the ONE working state for every primary press (press.js): a spinner in the button's own colour, the
   verb, the button held at its width; and the Welcome Email receipt — the row a send just added is lit for a few seconds. */
.p3-press-spin{display:inline-block;width:.85em;height:.85em;margin-right:.45em;vertical-align:-.1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:p3PressSpin .8s linear infinite}
@keyframes p3PressSpin{to{transform:rotate(360deg)}}
button.is-working,button.is-working:disabled{opacity:.88;cursor:progress}
@media (prefers-reduced-motion:reduce){.p3-press-spin{animation-duration:1.6s}}
/* #431 REVISED (David, 2026-09-13) — the acknowledgment strip (PVT3Press.done): the info tone (the same navy as the info
   toast, no celebration — law 4.27), it REPLACES the footer's buttons for ~1.5 s, then the modal dismisses itself. */
.p3-ack{flex:1 1 100%;display:flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:10px 16px;border-radius:10px;background:#17223a;color:#fff;font-weight:680;font-size:15px;letter-spacing:.01em;animation:toastin .22s ease}
.p3-ack .p3-ack-check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#fff;color:#17223a;font-size:13px;font-weight:800;flex:0 0 auto}
.modal.is-acked .modal-foot>:not(.p3-ack),.is-acked .modal-foot>:not(.p3-ack),.is-acked>footer>:not(.p3-ack),.is-acked .fu-modal-foot>:not(.p3-ack),.is-acked .pv-foot>:not(.p3-ack),.is-acked .mr-pop-foot>:not(.p3-ack){display:none}
.is-acked>footer,.is-acked .fu-modal-foot,.is-acked .mr-pop-foot{display:flex}
.is-acked>.p3-ack{margin:12px 16px 16px}
/* no pointer-events:none on the acked modal — every control is disabled by done(), and a pointer-events:none ancestor
   makes the strip invisible to elementFromPoint (the on-top hit test the proofs rely on, law 5.15) */
.is-acked>.p3-ack,.is-acked .modal-foot>.p3-ack{margin-top:0}
@media (prefers-reduced-motion:reduce){.p3-ack{animation:none}}
.pvt3-welcome-log-list{max-height:min(30vh,240px);overflow-y:auto}   /* #431 (law 4.10): the list scrolls, the footer buttons never leave the viewport — six sends had pushed them below the fold at 900 px */
.pvt3-welcome-log-empty{font-size:13.5px;color:var(--muted);font-style:italic;padding:8px 0}

/* ── #361 THE ONE TIME FIELD (window.PVT3TimeField) + the dedicated Reschedule screen ── */
.p3-timefield{position:relative;display:inline-block;min-width:132px}
.p3-tf-box{display:flex;align-items:center;border:1px solid #d1d5db;border-radius:8px;background:#fff}
.p3-tf-box:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.p3-tf-input{border:0;background:transparent;padding:8px 4px 8px 10px;font-size:15px;width:96px;outline:none;color:inherit}
.p3-tf-arrow{border:0;background:transparent;padding:8px 10px 8px 2px;color:#6b7280;font-size:12px}
.p3-tf-list{position:absolute;z-index:80;top:calc(100% + 4px);left:0;max-height:236px;overflow-y:auto;min-width:158px;background:#fff;border:1px solid #d1d5db;border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.16);padding:4px}
.p3-tf-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;border:0;background:transparent;padding:7px 10px;border-radius:6px;font-size:14px;color:inherit}
.p3-tf-item:hover{background:#f1f5f9}
.p3-tf-item.on{background:#e0ecff;font-weight:600}
.p3-tf-item.booked{text-decoration:line-through;color:#9ca3af}
.p3-tf-item.booked em{font-style:normal;font-size:11px;color:#b45309;text-decoration:none}
.p3-tf-err,.p3-tf-window-err{color:#b91c1c;font-size:12px;margin-top:4px}
.p3-tf-help{color:#6b7280;font-size:11.5px;display:block;margin-top:4px}
.dc-rs-root .dc-rs-backdrop{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.45)}
.dc-rs-screen{background:#fff;border-radius:14px;box-shadow:0 18px 48px rgba(15,23,42,.28);width:min(560px,94vw);padding:18px 20px 16px;display:flex;flex-direction:column;gap:12px}
.dc-rs-head{display:flex;justify-content:space-between;align-items:flex-start}
.dc-rs-head small{color:#6b7280}
.dc-rs-head h3{margin:2px 0 0;font-size:19px}
.dc-rs-grid{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start}
.dc-rs-right{display:flex;flex-direction:column;gap:6px;min-width:150px}
.dc-rs-confirm{margin:0;padding:8px 12px;background:#f0f6ff;border:1px solid #d6e6ff;border-radius:8px;font-size:14px}
.dc-rs-foot{display:flex;justify-content:flex-end;gap:10px}
.mc-rs-pill{margin-left:10px;border:1px solid #c7d7f5;background:#eef4ff;color:#1d4ed8;border-radius:999px;padding:2px 12px;font-size:12.5px;font-weight:600}
.mc-rs-pill:hover{background:#e0ecff}
/* #511 — the processing header names the matched patient; until confirmed it says where the match came from */
.fax-center-meta .fax-header-matched{font-style:normal;font-weight:500;font-size:12px;color:#8a94a4}

/* #513 (David, 2026-10-03) — ONE FORMAT EVERYWHERE: the Edit Details month grid + time box, mounted wherever a date or time is
   picked (PVT3TimeField.mountDate / mountDateTime / the .p3-pick auto-mount). The grid wears the Reschedule screen's own
   dc-resched-* classes (diamond-calendar.css), so it looks the same everywhere. */
.p3-pick{display:inline-block;vertical-align:top;max-width:100%}
.p3-pick-ui{display:block}
.p3-datefield{display:block;min-width:232px;max-width:280px}
.p3-datetimefield .p3-dtf-grid{display:grid;grid-template-columns:minmax(220px,260px) auto;gap:14px;align-items:start}
@media (max-width:640px){.p3-datetimefield .p3-dtf-grid{grid-template-columns:1fr}}
.dc-cal-pickfield{display:flex;flex-direction:column;gap:4px;min-width:0}
.dc-cal-pickfield>span:first-child{font-size:12px;font-weight:600;color:#475569}
.dc-cal-pickstack{display:flex;flex-direction:column;gap:12px}
.dc-cal-maddrow .dc-cal-maddlbl{align-self:center;font-size:13px;color:#475569}
.ap-override-row .p3-pick{margin-right:8px}
/* #516 item 4 — every staff date box: the time box's own look + the Edit Details month grid dropping down beneath it. The
   box resets win over any form's generic `input` rule (a .field input would otherwise draw a second border inside it). */
.p3-dp{display:inline-flex;flex-direction:column;vertical-align:middle;max-width:100%;min-width:150px}
.field .p3-dp,.lh-q .p3-dp{display:flex;width:100%!important}
.p3-dp .p3-dp-boxwrap{width:100%;box-sizing:border-box}   /* the copied height includes the original's border */
.p3-dp input.p3-dp-box{flex:1 1 auto;min-width:0;width:auto!important;border:0!important;background:transparent!important;box-shadow:none!important;outline:none;margin:0;padding:7px 4px 7px 10px;font:inherit;font-size:14px;color:inherit;min-height:0;height:auto}
.p3-dp input.p3-dp-box.p3-dp-bad{color:#b91c1c}
.p3-dp.is-disabled .p3-tf-box{background:#f3f4f6;opacity:.7}
/* the screen's own looks, carried to the visible box (audit 2026-10-03) */
.fax-process-panel .p3-dp .p3-dp-boxwrap.is-needs-review{border-color:#d97706;background:#fffbeb;box-shadow:0 0 0 2px rgba(217,119,6,.18)}
.p3-request-timing .p3-dp{margin-left:auto}
#p3MissionControl.mc-theme-dark .p3-dp .p3-tf-box{background:#1c212c;border-color:#34405a;color:#e6eaf0}
#p3MissionControl.mc-theme-dark .p3-dp .p3-dp-arrow{color:#aab4c4}
.p3-dp .p3-dp-arrow{cursor:default}
.p3-dp-pop{position:fixed;z-index:2147483000;background:#fff;border:1px solid #d1d5db;border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.22);padding:10px 12px 8px;width:260px}
.p3-dp-pop .p3-datefield{min-width:0;max-width:none}
.p3-dp-foot{display:flex;justify-content:space-between;margin-top:6px;padding-top:6px;border-top:1px solid #eef0f3}
.p3-dp-foot button{border:0;background:none;color:#1a73e8;font-size:12.5px;font-weight:600;padding:4px 6px;border-radius:6px}
.p3-dp-foot button:hover{background:#eef4ff}
.p3-dp-foot button:disabled{color:#9ca3af;background:none}
.p3-dp-pop.p3-dp-dark{background:#16233a;border-color:#24344d;color:#e5edf7}
.p3-dp-pop.p3-dp-dark .dc-resched-day{color:#d6e0ee}
.p3-dp-pop.p3-dp-dark .dc-resched-day.dim{color:#5b6b82}
.p3-dp-pop.p3-dp-dark .dc-resched-day:hover{background:#24344d}
.p3-dp-pop.p3-dp-dark .dc-resched-day.on{background:#1a73e8;color:#fff}
.p3-dp-pop.p3-dp-dark .dc-resched-monthhead button{color:#d6e0ee}
.p3-dp-pop.p3-dp-dark .p3-dp-foot{border-top-color:#24344d}
.p3-dp-pop.p3-dp-dark .p3-dp-foot button{color:#8ab4f8}

/* #545 imaging category editor (imaging-categories.js) */
.p3-ic-modal{width:min(1100px,96vw)}
.p3-ic-layout{display:grid;grid-template-columns:240px 1fr;gap:16px;min-height:0}
.p3-ic-cats{display:flex;flex-direction:column;gap:6px;min-height:0;overflow:auto;max-height:60vh}
.p3-ic-cat{display:flex;align-items:center;gap:4px;border:1px solid var(--line,#d8dee8);border-radius:8px;padding:2px 4px}
.p3-ic-cat.active{border-color:var(--brand,#2563eb);background:rgba(37,99,235,.08)}
.p3-ic-pick{flex:1;text-align:left;background:none;border:0;padding:6px;font-weight:600;cursor:default}
.p3-ic-pick small{color:var(--muted,#64748b);font-weight:400;margin-left:4px}
.p3-ic-edit{min-height:0;overflow:auto;max-height:60vh;padding-right:4px}
.p3-ic-group{margin:6px 0 10px}
.p3-ic-group-head{display:flex;gap:6px;margin-bottom:4px}
.p3-ic-group-head input{font-weight:700;flex:1}
.p3-ic-test{display:flex;gap:4px;align-items:center;margin:3px 0}
.p3-ic-test input{flex:1;min-width:0}
.p3-ic-check{display:flex;gap:6px;align-items:center;margin:6px 0 10px}
.p3-ic-danger{margin-top:12px;display:flex;gap:8px;align-items:center}

/* #544 F4 — the no-patient-read tag on a Fax Center row stays one line */
.fax-triage [data-no-patient-read]{white-space:nowrap;flex:0 0 auto;border-radius:999px;padding:2px 8px;font-size:11px;line-height:1.4}

/* #546 — warn (never block) when a staff-typed offer text asks for a reply */
.pv-sms-warn{margin:6px 0 2px;padding:6px 10px;border-radius:8px;background:#fff7e6;border:1px solid #f5c26b;color:#7a4a00;font-size:13px;font-weight:600}
.pv-sms-warn[hidden]{display:none}

/* #571 — Make Patient on the Meet & Greet card */
.mp-modal{width:min(560px,calc(100vw - 32px))}
.mp-modal .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mp-modal .field{margin-bottom:10px}
.mp-modal .field input{width:100%;box-sizing:border-box}
.mp-pick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;font-weight:600}
.mp-note{background:var(--soft,#f4f7fa);border:1px solid var(--line,#dde3ea);border-radius:10px;padding:8px 12px;font-size:13px;margin:4px 0 10px}
.mp-note p{margin:4px 0 0;white-space:pre-wrap;max-height:120px;overflow:auto}
.mp-choice{border:2px solid #f5c26b;background:#fff7e6;color:#5a3a00;border-radius:10px;padding:10px 12px;margin:6px 0}
.mp-choice p{margin:0 0 8px}
.mp-match{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid #f0d9a8}
.mp-match small{display:block;color:#6b5a3a}
.mp-choice-foot{display:flex;justify-content:flex-end;padding-top:8px;border-top:1px solid #f0d9a8}
@media (max-width:520px){.mp-modal .grid-2{grid-template-columns:1fr}}

/* #601 (law 5.80) - a Doctor/Admin-only control as an MA sees it: present, greyed, the hover note says why (role-gate.js) */
[data-p3-locked]{opacity:.42;filter:grayscale(1);cursor:not-allowed!important}
[data-p3-locked] *{cursor:not-allowed!important}
[data-p3-locked] a[href]{cursor:default!important}
