.p3-calendar-card,.p3-assistant-page{background:#fff;border:1px solid #dbe4ef;border-radius:18px;box-shadow:0 12px 34px rgba(30,56,92,.06)}
.p3-calendar-card{margin:24px 0;overflow:hidden}.p3-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid #e4eaf2}.p3-calendar-head h3{margin:0;color:#10213d;font-size:22px}.p3-calendar-head p{margin:5px 0 0;color:#6b7890}.p3-calendar-tools{display:flex;align-items:center;gap:10px}.p3-calendar-live{font-size:12px;color:#64748b;font-weight:600}.p3-calendar-tabs{display:flex;gap:8px;padding:14px 22px;background:#f7f9fc;border-bottom:1px solid #e4eaf2}.p3-calendar-tabs button{border:1px solid #d6e0ec;background:#fff;color:#56667e;border-radius:999px;padding:8px 14px;font-weight:800;cursor:pointer}.p3-calendar-tabs button.active{background:#1d2f4b;color:#fff;border-color:#1d2f4b}.p3-calendar-day{border-bottom:1px solid #e5ebf3}.p3-calendar-day:last-child{border-bottom:0}.p3-calendar-day-head{display:flex;justify-content:space-between;align-items:center;padding:12px 22px;background:#b4bbc6;color:#22314a;border-top:1px solid #9aa3b2;border-bottom:1px solid #9aa3b2}.p3-calendar-day-head strong{text-transform:uppercase;letter-spacing:.06em;font-size:12px}.p3-calendar-row{display:grid;grid-template-columns:90px minmax(200px,1.15fr) 96px 124px minmax(240px,1.5fr) 150px 150px;align-items:center;gap:14px;padding:15px 22px;border-top:1px solid #edf1f6}.p3-calendar-row>div{min-width:0}.p3-calendar-time{font-weight:900;color:#132641}.p3-calendar-patient strong,.p3-calendar-event strong{display:block;color:#12223b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p3-calendar-row small{display:block;margin-top:4px;color:#7a879b}.p3-reminder-channel{display:flex;flex-direction:column;align-items:flex-start;gap:6px;position:relative}/* Over-qualified on purpose: .p3-reminder-channel button (a class+tag
   selector, specificity 0,1,1) otherwise beats a bare .p3-remstat-pill-btn
   class rule (0,1,0) and silently re-applies the ordinary reminder button's
   border/background/padding — found live (a computed-style check on the
   button read border:solid/bg:#eff6ff/padding:5px 8px even after this rule
   was deployed, matching .p3-reminder-channel button exactly). Same fix
   pattern as the .p3-sign-rail specificity bug (combine-mode.js history). */
.p3-reminder-channel .p3-remstat-pill-btn{display:inline-flex;align-items:center;border:0;background:none;padding:0;margin:0;font:inherit;cursor:default}
/* CORRECTION ORDER (David, 2026-08-24, urgent) — the confirmed indicator on
   this row sits directly beside a plain button (e.g. "Send EMAIL") and must
   match its footprint: no border, no background box, no pill padding — just
   a compact checkmark + short label at the SAME font-size/weight as the
   adjacent button. This overrides the shared .p3-remstat-confirmed badge
   look ONLY inside this row's clickable-pill wrapper — Mission Control's
   read-only timeline (.mc-timeline li) keeps the original badge, unchanged,
   since it has no adjacent button to match and the badge look is correct
   there. */
.p3-remstat-pill-btn .p3-remstat-confirmed{background:none;border:0;padding:0;border-radius:0;font-size:11.5px;font-weight:800;color:#15803d}
.p3-remstat-pill-btn .p3-remstat-confirmed .ck{font-size:11.5px}.p3-remstat-pill-btn:hover .p3-remstat-confirmed,.p3-remstat-pill-btn:focus-visible .p3-remstat-confirmed{background:#c9f5d9;border-color:#5fce8c}.p3-remstat-resend-hint{margin-left:5px;font-size:11px;opacity:.6;font-weight:400}.p3-remstat-popover{position:absolute;top:100%;left:0;margin-top:6px;z-index:40;background:#fff;border:1px solid #d6dbe4;border-radius:9px;box-shadow:0 10px 26px rgba(15,23,42,.16);padding:10px 12px;display:flex;flex-direction:column;gap:8px;white-space:nowrap}.p3-remstat-popover span{font-size:12px;color:#334155;font-weight:600}.p3-remstat-popover-actions{display:flex;gap:8px}.p3-remstat-popover-actions button{border-radius:6px;padding:5px 10px;font-size:11.5px;font-weight:800;cursor:default;border:1px solid transparent}.p3-remstat-cancel{background:#f1f5f9;border-color:#dbe3ee;color:#475569}.p3-remstat-confirm{background:#1760ad;color:#fff}.p3-reminder-channel button{border:1px solid #9dc2ee;background:#eff6ff;color:#1760ad;border-radius:7px;padding:5px 8px;font-size:11.5px;line-height:1.25;font-weight:800;cursor:pointer}.p3-reminder-channel button:disabled{opacity:.45;cursor:not-allowed}.p3-calendar-empty,.p3-calendar-error{padding:28px 22px;color:#718098}.p3-calendar-error{color:#a34d27;background:#fff7ed}.p3-calendar-legend{font-size:11px;color:#3d4d64}.p3-calendar-unmatched{color:#a15d19!important}.p3-calendar-row small.p3-calendar-match-warn{color:#a15d19;font-weight:700}
.p3-reminder-modal{width:min(760px,94vw)}.p3-reminder-preview{display:grid;grid-template-columns:1fr 270px;gap:18px}.p3-reminder-message{border:1px solid #dce5f0;border-radius:12px;padding:16px;background:#f8fafc;white-space:pre-wrap;line-height:1.55}.p3-reminder-response-mini{border-radius:14px;background:#efebe2;padding:20px;text-align:center;color:#2a2a2a}.p3-reminder-response-mini h4{font-family:Georgia,serif;margin:6px 0}.p3-reminder-response-mini button{display:block;width:100%;border:0;border-radius:8px;background:#2d6e60;color:#fff;padding:10px;margin-top:12px;font-weight:800}.p3-reminder-safety{padding:10px 12px;border-radius:9px;background:#fff4de;color:#83500a;font-size:12px}.p3-reminder-edit{width:100%;min-height:72px;border:1px solid #cfd9e6;border-radius:9px;padding:10px;font:inherit}
.p3-assistant-page{padding:24px}.p3-assistant-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.p3-assistant-head h2{margin:4px 0 8px;color:#10213d}.p3-assistant-head p{margin:0;color:#687790;max-width:760px}.p3-assistant-run{border:0;border-radius:9px;background:#2f73df;color:#fff;padding:11px 16px;font-weight:800;cursor:pointer}.p3-assistant-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0}.p3-assistant-counts article{border:1px solid #dce4ef;border-radius:12px;padding:15px;background:#f9fbfd}.p3-assistant-counts strong{display:block;font-size:26px;color:#12223b}.p3-assistant-counts span{color:#6f7d91;font-size:12px;text-transform:uppercase;font-weight:800}.p3-assistant-compose{border:1px solid #dce4ef;border-radius:14px;padding:18px;margin-bottom:20px;background:#fbfcfe}.p3-assistant-compose h3{margin:0 0 10px}.p3-assistant-compose textarea{width:100%;box-sizing:border-box;min-height:80px;border:1px solid #cfd9e6;border-radius:9px;padding:11px;font:inherit}.p3-assistant-compose-row{display:grid;grid-template-columns:1fr 190px auto;gap:10px;margin-top:10px}.p3-assistant-compose-row select,.p3-assistant-compose-row input{border:1px solid #cfd9e6;border-radius:9px;padding:10px}.p3-assistant-compose-row button{border:0;border-radius:9px;background:#158663;color:#fff;padding:10px 16px;font-weight:800}.p3-assistant-list{border:1px solid #dce4ef;border-radius:14px;overflow:hidden}.p3-assistant-row{display:grid;grid-template-columns:120px 1fr 180px;gap:14px;padding:14px 16px;border-top:1px solid #e7ecf3;align-items:center}.p3-assistant-row:first-child{border-top:0}.p3-assistant-state{font-size:11px;font-weight:900;text-transform:uppercase;border-radius:999px;padding:6px 9px;text-align:center}.p3-assistant-state.overdue{background:#fee9e7;color:#ad3028}.p3-assistant-state.blocked{background:#fff1d6;color:#935d0b}.p3-assistant-state.due-today{background:#e5efff;color:#235eb0}.p3-assistant-state.upcoming{background:#e4f6ef;color:#137657}.p3-assistant-state.needs-information{background:#edf0f4;color:#5d6878}.p3-assistant-row strong{display:block;color:#142641}.p3-assistant-row small{display:block;margin-top:4px;color:#78869a}.p3-assistant-due{text-align:right;color:#687790}.p3-assistant-status{padding:16px;color:#75839a}
@media(max-width:1200px){.p3-calendar-row{grid-template-columns:76px minmax(160px,1fr) 84px 112px minmax(200px,1.2fr) 132px 132px;font-size:13px}}
@media(max-width:900px){.p3-calendar-row{grid-template-columns:72px 1fr 1fr}.p3-telehealth-cell{grid-column:auto}.p3-reminder-channel{grid-column:auto}.p3-calendar-row .p3-reminder-channel{font-size:12px}.p3-reminder-preview{grid-template-columns:1fr}.p3-assistant-counts{grid-template-columns:repeat(2,1fr)}.p3-assistant-compose-row{grid-template-columns:1fr}.p3-assistant-row{grid-template-columns:100px 1fr}.p3-assistant-due{grid-column:2;text-align:left}}

.p3-calendar-share{margin:0;padding:14px 22px;border-top:1px solid #f0d39f;background:#fffaf0;color:#725023;font-size:13px;line-height:1.55}.p3-calendar-share b{overflow-wrap:anywhere}
.p3-reminder-modal{width:min(920px,94vw)}.p3-reminder-preview{grid-template-columns:minmax(0,1fr) 300px}.p3-reminder-email-body{border:1px solid #dce5f0;border-radius:12px;padding:16px;background:#f8fafc;line-height:1.55;max-height:420px;overflow:auto}.p3-reminder-response-mini p{line-height:1.45}.p3-reminder-edit{box-sizing:border-box}.p3-refresh-preview{margin:8px 0 12px}.p3-reminder-weekend{padding:10px 12px;margin-bottom:12px;border-radius:9px;background:#fff0d6;color:#86540b}.p3-email-subject{margin-bottom:8px;padding:10px 12px;border:1px solid #dce5f0;border-radius:9px;background:#fff}
@media(max-width:900px){.p3-reminder-preview{grid-template-columns:1fr}}

/* Assistant task actions: manual instructions can be resolved or snoozed;
   workflow obligations always return staff to the source PVT. */
.p3-assistant-row{grid-template-columns:120px minmax(260px,1fr) 180px auto}
.p3-assistant-actions{display:flex;gap:7px;justify-content:flex-end}
.p3-assistant-actions button{white-space:nowrap;border:1px solid #c8d5e5;background:#fff;color:#3d5879;border-radius:8px;padding:7px 10px;font-weight:800;cursor:pointer}
.p3-assistant-actions .resolve{border-color:#9bd8c5;background:#edf9f5;color:#137657}
.p3-assistant-actions .open{border-color:#9dc2ee;background:#eff6ff;color:#1760ad}
@media(max-width:900px){.p3-assistant-row{grid-template-columns:100px 1fr}.p3-assistant-actions{grid-column:2;justify-content:flex-start}}

/* Telehealth email — third channel on telehealth appointment rows in the
   reminders widget, plus the preview modal. Live send is stubbed; the
   button is present so the UX is complete when Gmail wiring lands. */
/* Telehealth action: compact per-row column between the patient name and the
   appointment title. Replaces the full-width banner row (removed per David's
   revised spec) — the banner spanned every column and dominated the row. */
.p3-telehealth-cell{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.p3-tele-blocked{font-size:10.5px;color:#8a7ba8;line-height:1.2}
/* Patient's reply to the reminder — PVT2 shows a green confirmed badge. */
.p3-response-badge{display:inline-block;margin-top:6px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.3}
.p3-response-badge.reschedule{background:#fff1d6;color:#8a5a0b;border:1px solid #ecc98a}
.p3-response-badge small{display:block;font-weight:600;font-style:italic;margin-top:2px;white-space:normal}
.p3-telehealth-cell button{border:1px solid #b295e3;background:#f7f3ff;color:#5b2ec1;border-radius:7px;padding:5px 8px;font-size:11.5px;line-height:1.25;font-weight:800;cursor:pointer;white-space:nowrap}
.p3-telehealth-cell button:disabled{opacity:.45;cursor:not-allowed}
/* PVT2 visit-type dot — pvt2-reference/index.txt:8461-8491 (_visitTypeDot) */
.p3-visit-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle;flex:none}
.p3-telehealth-modal{width:min(760px,94vw)}
/* #381 D (2026-09-03): the three header rows (From / To / Subject) are each ONE div holding label + value; the old
   two-column grid put "From" in a 110 px cell and wrapped the sender address five lines deep. One row per header. */
.p3-telehealth-headers{display:flex;flex-direction:column;gap:6px;margin:0 0 14px;padding:12px 14px;border:1px solid #e2e7ef;border-radius:10px;background:#fbfcfe;font-size:13px}
.p3-telehealth-headers>div{display:grid;grid-template-columns:70px 1fr;gap:0 12px;align-items:baseline}
.p3-telehealth-headers label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#6c7994;font-weight:800}
.p3-telehealth-headers strong{color:#12213a;font-weight:600}
.p3-telehealth-body{margin:0 0 14px;padding:0;border:1px solid #dce5f0;border-radius:12px;background:#fff;overflow:hidden;zoom:.82}
.p3-telehealth-attach-list h4{margin:6px 0 8px;color:#3a4a63;font-size:13px}
.p3-telehealth-attach{display:flex;align-items:flex-start;gap:10px;padding:9px 11px;border:1px solid #e0e6ef;border-radius:9px;background:#fff;margin-bottom:6px;cursor:pointer}
.p3-telehealth-attach input{margin-top:3px}
.p3-telehealth-attach strong{display:block;color:#132641}
.p3-telehealth-attach small{display:block;margin-top:2px;color:#7a879b}
.p3-telehealth-empty{padding:12px;color:#78869a;background:#f7f9fc;border-radius:9px;border:1px dashed #cfd7e2}
.p3-credentials-pending{background:#eff6ff!important;color:#1e40af!important;border-color:#c6ddf7!important}
.p3-credentials-pending small{display:block;margin-top:6px;color:#4b6a8f;font-size:11px}

/* Needs-review bucket — calendar rows we could not confidently categorize or
   match to a patient. Deliberately visible rather than dropped (David's
   calendar-parsing rules, 2026-08-05). */
.p3-calendar-tabs button.p3-tab-review{border-color:#e2c9a4;color:#8a5a1c}
.p3-calendar-tabs button.p3-tab-review.active{background:#8a5a1c;border-color:#8a5a1c;color:#fff}
.p3-calendar-review-row{grid-template-columns:90px minmax(260px,1.6fr) minmax(220px,1fr) 170px}
.p3-calendar-review-title strong{white-space:normal}
.p3-calendar-review-why{display:flex;flex-wrap:wrap;gap:6px}
.p3-review-flag{display:inline-block;padding:4px 9px;border-radius:999px;background:#fdf3e4;border:1px solid #ecd6b4;color:#8a5a1c;font-size:11px;font-weight:800}
.p3-calendar-review-act button{border:1px solid #bfd0e5;background:#fff;color:#315f99;border-radius:8px;padding:7px 10px;font-weight:800;cursor:pointer}
.p3-review-explain{margin:0 0 14px;color:#56667e;font-size:13px;line-height:1.6}
@media(max-width:900px){.p3-calendar-review-row{grid-template-columns:72px 1fr}}

.p3-telehealth-folders{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;padding-top:10px;border-top:1px solid #e6ecf4}.p3-telehealth-folders a{font-size:12.5px;font-weight:700;color:#1760ad;text-decoration:none}.p3-telehealth-folders a:hover{text-decoration:underline}.p3-telehealth-warnings{margin:10px 0 0;padding-left:18px;color:#8a5a1c;font-size:12px;line-height:1.5}.p3-telehealth-sent{margin-top:12px;padding:10px 12px;border-radius:9px;background:#eefaf4;border:1px solid #bfe6d5;color:#166148;font-size:13px}

/* COMPOSE MODAL: ONE SCROLL CONTEXT, AND SEND ALWAYS REACHABLE.
   Previously .modal (max-height:92vh; overflow:auto) wrapped
   .p3-telehealth-body (max-height:340px; overflow:auto) — two nested
   scrollbars, and the footer scrolled away with the content so David had to
   scroll to reach Send. Now the modal is a flex column: head and foot are
   pinned, exactly ONE region scrolls, and the preview is scaled down so the
   whole compose fits a laptop screen. The zoom affects only what David sees;
   the email the patient receives is built server-side and is untouched. */
.modal.p3-telehealth-modal{display:flex;flex-direction:column;max-height:92vh;overflow:hidden;width:min(760px,96vw)}
.modal.p3-telehealth-modal>.modal-head,.modal.p3-telehealth-modal>.modal-foot{flex:0 0 auto}
.modal.p3-telehealth-modal>.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}
.modal.p3-telehealth-modal .p3-telehealth-headers{gap:6px}
.modal.p3-telehealth-modal .p3-telehealth-attach-list h4{margin:10px 0 6px}
.modal.p3-telehealth-modal .p3-reminder-safety{margin:10px 0 0;font-size:11.5px;line-height:1.45}

/* Background-send failure notice on the dashboard (item 2). The modal closes
   immediately after Send, so a failure must be impossible to miss here. */
.p3-send-alerts{margin:0;padding:0}
.p3-send-alert{display:flex;align-items:flex-start;gap:10px;padding:12px 22px;background:#fff5f2;border-bottom:1px solid #f2c7b8;color:#9a3412;font-size:13px;line-height:1.5}
.p3-send-alert.ok{background:#eefaf4;border-bottom-color:#bfe6d5;color:#166148}
.p3-send-alert strong{display:block}
.p3-send-alert button{margin-left:auto;border:0;background:transparent;color:inherit;font-size:16px;line-height:1;cursor:pointer;padding:0 4px}


/* ── 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. ── */
.p3-send-alert.ok{background:#f4f7fb;border-bottom-color:#d3dbe6;color:#334155}

/* Calendar sweep 2026-08-17 — D1: send screens opened from the cheat sheet stack ABOVE the calendar detail modal (z 100) so David returns to the card after sending. D6: the reminder modal caps at 88vh with the body scrolling and the Send footer pinned (law 4.10). */
.modal-backdrop:has(.p3-reminder-modal){z-index:120}.modal.p3-reminder-modal{display:flex;flex-direction:column;max-height:88vh;overflow:hidden}.modal.p3-reminder-modal>.modal-head,.modal.p3-reminder-modal>.modal-foot{flex:0 0 auto}.modal.p3-reminder-modal>.modal-body{flex:1 1 auto;min-height:0;overflow:auto}

/* #244 Part 3 — results-email picker inside the shared reminder modal; rows reuse .p3-telehealth-attach */
.p3-results-arm{margin-top:14px;padding:12px 14px;border:1px solid #e0e6ef;border-radius:10px;background:#f8fafc}
.p3-results-arm h4{margin:0 0 4px;font-size:13px;color:#132641}
.p3-results-arm-help{margin:0 0 10px;font-size:12px;color:#5f6f8a}
.p3-results-arm .p3-telehealth-attach{margin-bottom:6px}
.p3-results-arm .p3-telehealth-attach strong{white-space:normal;overflow-wrap:anywhere;line-height:1.35}   /* full name always visible — the date at the end is what tells twins apart */
.p3-results-arm-docs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.p3-results-doc{font-size:12px;padding:3px 8px;border-radius:999px;background:#fff;border:1px solid #d7dfea;color:#132641;max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p3-remstat-armed{color:#7c3aed}

.p3-results-add{margin-top:6px}

/* #275 (David, 2026-08-27) — the bottom half of Arm & Send: the REAL rendered email, PDF cards, not
   filenames in a checklist. The email preview reuses the exact HTML the envelope modal (dc-envelope-
   snapshot) already renders — same look, deliberately, so a staff member recognizes it as "the real
   thing" in both places. */
.p3-results-email-preview{margin:10px 0;border:1px solid #dfe3e9;border-radius:10px;background:#fff;max-height:340px;overflow:auto;padding:4px}
.p3-results-email-preview>div{pointer-events:none}   /* static preview — never an editable surface */
.p3-results-cards{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.p3-results-card{position:relative;display:flex;flex-direction:column;align-items:center;width:76px}
.p3-results-card .pvt3-pdf{margin:0}
.p3-results-card-name{margin-top:4px;font-size:10px;color:#5f6f8a;text-align:center;line-height:1.25;overflow-wrap:anywhere;max-height:2.6em;overflow:hidden}
.p3-results-card-remove{position:absolute;top:-7px;right:6px;width:20px;height:20px;border-radius:50%;border:1px solid #d8dde5;background:#fff;color:#687386;font-size:13px;line-height:1;font-weight:800;display:grid;place-items:center;cursor:default}
.p3-results-card-remove:hover{background:#fdeceb;border-color:#f0b8b3;color:#b3261e}

/* The "Are the attachments correct?" confirmation modal — fires every time Arm & Send is pressed. */
.modal.p3-attach-confirm-modal{max-width:440px}
.p3-attach-confirm-list{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.p3-attach-confirm-item{font-size:13px;color:#132641;padding:8px 11px;border:1px solid #e0e6ef;border-radius:8px;background:#f8fafc;overflow-wrap:anywhere}
.p3-attach-confirm-empty{font-size:13px;color:#5f6f8a}
.p3-attach-confirm-count{font-size:12px;color:#5f6f8a;margin:0 0 6px}
#p3AttachConfirmSend{background:var(--mint);border-color:var(--mint);color:#fff}
#p3AttachConfirmSend:hover{background:#128260}

/* #251 — the reminder-admin toggle lives in the card header, off by default */
.p3-admin-toggle{display:inline-flex;align-items:center;gap:6px;margin-left:14px;font-size:12px;color:#5f6f8a;cursor:default;user-select:none}
.p3-admin-toggle input{margin:0}

/* #318 — Tomorrow's Telehealth checklist (dashboard card above the reminders). READY / NOT READY / nothing ordered. */
.p3-tth-card .p3-calendar-head h3{font-size:20px}
.p3-tth-group{border-top:1px solid #e5ebf3}
.p3-tth-group-head{display:flex;align-items:center;gap:10px;padding:10px 22px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#22314a;background:#f4f6fa}
.p3-tth-group-head .p3-tth-n{font-weight:700;color:#6b7890;letter-spacing:0;text-transform:none;font-size:12px}
.p3-tth-group-head.is-ready{color:#166534;background:#ecfdf3}
.p3-tth-group-head.is-not{color:#9a3412;background:#fff4ec}
.p3-tth-row{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:6px 16px;align-items:start;padding:12px 22px;border-top:1px solid #eef2f7}
.p3-tth-time{font-weight:800;color:#10213d;padding-top:2px}
.p3-tth-name{font-weight:700;color:#10213d;font-size:15px}
.p3-tth-lines{margin:4px 0 0;padding:0;list-style:none;color:#3b4a63;font-size:13px;line-height:1.45}
.p3-tth-lines li{display:flex;gap:8px;align-items:baseline}
.p3-tth-lines li b{font-weight:700;color:#22314a;flex:0 0 auto}
.p3-tth-lines .p3-tth-days{color:#6b7890;white-space:nowrap}
.p3-tth-lines .p3-tth-days.is-overdue{color:#b42318;font-weight:800}
.p3-tth-lines li.is-also{color:#6b7890}
.p3-tth-file{color:#1A73E8;text-decoration:none}
.p3-tth-file:hover{text-decoration:underline}
.p3-tth-actions{display:flex;gap:8px;align-items:center;padding-top:1px}
.p3-tth-actions button{border:1px solid #cfdaea;background:#fff;color:#2b4a78;border-radius:9px;padding:8px 12px;font-weight:750;cursor:pointer;white-space:nowrap}
.p3-tth-actions button.p3-tth-primary{background:#1A73E8;border-color:#1A73E8;color:#fff}
.p3-tth-actions button.p3-tth-primary:hover{background:#1565d8}
.p3-tth-actions button:disabled{opacity:.55;cursor:default}
.p3-tth-note{padding:10px 22px 14px;color:#6b7890;font-size:12.5px}
.p3-tth-status{font-size:12px;color:#166534;font-weight:700}
.p3-calendar-card.p3-tth-card{display:block;width:100%}
.p3-tth-group{display:block;width:100%}
.p3-tth-row{background:#fff}

/* #320 — Schedule Send: Gmail-style split button on the SMS preview, presets menu, ET quarter-hour picker, pending state */
.p3-split{display:inline-flex;align-items:stretch;position:relative}
.p3-split>.primary{border-top-right-radius:0;border-bottom-right-radius:0}
.p3-split>.p3-split-arrow{border:1px solid #1A73E8;border-left:1px solid rgba(255,255,255,.35);background:#1A73E8;color:#fff;border-radius:0 9px 9px 0;padding:0 11px;font-size:12px;cursor:pointer}
.p3-split>.p3-split-arrow:hover{background:#1565d8}
.p3-split>.p3-split-arrow[disabled]{opacity:.55;cursor:default}
.p3-split-menu{position:absolute;right:0;bottom:calc(100% + 6px);min-width:280px;background:#fff;border:1px solid #d7dce6;border-radius:12px;box-shadow:0 14px 34px rgba(16,33,61,.18);padding:6px;z-index:5;text-align:left}
.p3-split-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:9px 12px;font-size:14px;color:#10213d;cursor:pointer}
.p3-split-menu button:hover{background:#eef3fb}
.p3-split-menu button small{display:block;color:#6b7890;font-size:12px;margin-top:2px}
.p3-split-menu .p3-split-sep{border-top:1px solid #e6e9f0;margin:4px 6px}
.p3-ss-head{display:flex;justify-content:flex-end;margin:-4px 0 10px}
.p3-ss-state{display:flex;align-items:center;gap:10px;background:#eef6ff;border:1px solid #bcd6f8;border-radius:10px;padding:8px 12px;font-size:13px;color:#10213d}
.p3-ss-state b{color:#1656B3}
.p3-ss-state button{margin-left:auto;border:1px solid #cfdaea;background:#fff;color:#2b4a78;border-radius:8px;padding:6px 10px;font-weight:700;cursor:pointer;white-space:nowrap}
.p3-ss-picker{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;margin:0 0 12px;padding:12px;border:1px solid #d7dce6;border-radius:12px;background:#fff}
.p3-ss-cal{width:238px}
.p3-ss-cal-head{display:flex;align-items:center;justify-content:space-between;font-weight:700;color:#10213d;margin-bottom:6px}
.p3-ss-cal-head button{border:0;background:transparent;font-size:18px;line-height:1;cursor:pointer;color:#5F6368;padding:2px 8px}
.p3-ss-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.p3-ss-grid span{font-size:11px;font-weight:700;color:#6b7890;text-align:center;padding:2px 0}
.p3-ss-grid button{border:0;background:transparent;border-radius:50%;width:32px;height:32px;font-size:13px;color:#10213d;cursor:pointer;justify-self:center}
.p3-ss-grid button:hover{background:#eef3fb}
.p3-ss-grid button.dim{color:#b4bbc6}
.p3-ss-grid button.on{background:#1A73E8;color:#fff;font-weight:700}
.p3-ss-grid button.today{box-shadow:inset 0 0 0 1px #1A73E8}
.p3-ss-grid button[disabled]{color:#c9ced8;cursor:default;background:transparent}
.p3-ss-times{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start;max-height:236px;overflow:auto;padding-right:4px}
.p3-ss-times button{border:1px solid #d7dce6;background:#fff;border-radius:16px;padding:5px 11px;font-size:13px;font-weight:600;color:#10213d;cursor:pointer}
.p3-ss-times button:hover{background:#eef3fb}
.p3-ss-times button.on{background:#1A73E8;border-color:#1A73E8;color:#fff}
.p3-ss-times button[disabled]{color:#c9ced8;cursor:default}
.p3-ss-summary{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#3b4a63;border-top:1px solid #eef2f7;padding-top:8px}
.p3-ss-summary b{color:#10213d}
.p3-ss-summary button{border:1px solid #cfdaea;background:#fff;border-radius:8px;padding:5px 10px;font-weight:700;color:#2b4a78;cursor:pointer}
.p3-sched-card{margin:24px 0}
.p3-sched-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;padding:12px 22px;border-top:1px solid #eef2f7;align-items:center}
.p3-sched-row b{color:#10213d}
.p3-sched-row small{color:#6b7890;display:block;margin-top:2px}
.p3-sched-row button{border:1px solid #cfdaea;background:#fff;color:#2b4a78;border-radius:9px;padding:8px 12px;font-weight:750;cursor:pointer;white-space:nowrap}

/* #320 — Scheduled (N) pill beside Needs David (same pill family as .nd-pill) */
.ss-pill{position:relative;border-color:#e2e8f0;color:#334155}
.ss-pill.ss-empty{color:#94a3b8}
.ss-pill svg{margin-right:4px}
.ss-modal .modal-body{max-height:70vh;overflow:auto}

/* #322 — Attach from Computer: link under Add Document…; the only distinction is the small source tag */
.p3-linklike{border:0;background:transparent;color:#1A73E8;font-size:13px;font-weight:600;padding:4px 0;cursor:default;text-decoration:none}
.p3-linklike:hover{text-decoration:underline}
.p3-linklike[disabled]{opacity:.6}
.p3-attach-computer{display:inline-block;margin-left:12px}
.p3-results-card-tag,.p3-attach-source-tag{display:inline-block;margin-top:3px;font-size:10px;font-weight:700;letter-spacing:.02em;color:#6b7890;background:#eef2f7;border-radius:6px;padding:1px 6px;white-space:nowrap}
.dc-envelope-attachments .p3-attach-source-tag{margin-left:4px;vertical-align:middle}

/* #330 (2026-08-29) — Schedule Send picker is a POPOVER on the split button (it used to sit at the top of the scrolling body, out of view) */
.p3-split .p3-ss-picker{position:absolute;right:0;bottom:calc(100% + 8px);z-index:6;width:640px;max-width:min(640px,92vw);margin:0;padding:12px 14px 12px;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;gap:10px 16px;box-shadow:0 18px 40px rgba(16,33,61,.22);text-align:left}
.p3-ss-picker-head{grid-column:1 / -1;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid #e6e9f0}
.p3-ss-picker-head>span{font-weight:800;font-size:15px;color:#10213d}
.p3-ss-picker-head>span small{display:block;font-weight:500;font-size:12px;color:#6b7890;margin-top:2px}
.p3-ss-picker-head .close-x{border:0;background:transparent;font-size:22px;line-height:1;color:#5F6368;padding:0 4px;cursor:default}
.p3-ss-times-wrap{min-width:0}
.p3-ss-times-day{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#6b7890;margin:2px 0 8px}
.p3-split .p3-ss-times{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-height:262px;overflow:auto;padding-right:4px}
.p3-split .p3-ss-times button{border-radius:8px;padding:6px 4px;text-align:center;white-space:nowrap}
.p3-ss-summary{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#10213d;padding-top:6px;border-top:1px solid #e6e9f0}
.p3-ss-summary b{color:#1656B3}

/* #467 (David, 2026-09-17) — SEND NOW sits BESIDE Arm & Send, never inside its dropdown: both choices visible at
   once was the point of the order. It reads as a real, equal-weight action (not a ghost), while the blue primary
   stays the primary — the split button keeps every pixel of its own styling. Wrapping is allowed so that on a
   narrow modal the two drop to two lines rather than overlapping or pushing off the edge (law 4.10 — the action
   is always reachable without scrolling). */
.modal.p3-reminder-modal>.modal-foot{flex-wrap:wrap;gap:8px}
.p3-sendnow{border:1px solid #1A73E8;background:#fff;color:#1257b8;border-radius:9px;padding:9px 16px;font-weight:750;font-size:14px;white-space:nowrap}
.p3-sendnow:hover:not(:disabled){background:#eef4fe}
.p3-sendnow:disabled{opacity:.5}
/* the confirm: the patient and the exact words, because a text has no undo */
.p3-sendnow-confirm{max-width:560px}
.p3-sendnow-confirm .p3-sendnow-msg{white-space:pre-wrap;border:1px solid #d7dce6;border-radius:10px;background:#f8fafc;padding:12px 14px;font-size:14px;line-height:1.5;color:#253653}
:root:not([data-theme="light"]) .p3-sendnow,:root[data-theme="dark"] .p3-sendnow{background:#16233a;border-color:#2f6fd0;color:#cfe2ff}
:root:not([data-theme="light"]) .p3-sendnow:hover:not(:disabled),:root[data-theme="dark"] .p3-sendnow:hover:not(:disabled){background:#1b2d4c}
:root:not([data-theme="light"]) .p3-sendnow-confirm .p3-sendnow-msg,:root[data-theme="dark"] .p3-sendnow-confirm .p3-sendnow-msg{background:#141b26;border-color:#2c3648;color:#d8e2f0}
