/* O-62-RR — the proposal review screen, the six badges, the one-press fax.
   Colour alone tells the story (David's ruling): green fine, amber needs a
   human, red broken, grey waiting on his press. */

.o62-build { align-self: center; font: 600 11px/1 ui-monospace, monospace; color: #6B7280; background: #F3F4F6; border: 1px solid #E5E7EB; border-radius: 6px; padding: 5px 8px; letter-spacing: .02em; }
.o62-tabs .spacer { flex: 1; }

.o62-card { background: #fff; border: 1px solid #E5E7EB; border-radius: 12px; overflow: hidden; }
.o62-row { display: grid; grid-template-columns: minmax(230px, 1fr) 26px minmax(280px, 1.3fr) minmax(190px, auto); gap: 14px; align-items: center; padding: 14px 16px; border-bottom: 1px solid #F1F2F4; }
.o62-row:last-child { border-bottom: 0; }
.o62-row.busy { opacity: .55; pointer-events: none; }
.o62-row.plain { background: #FCFCFD; }

.o62-said small, .o62-found small { display: block; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: #9AA1AC; margin-bottom: 3px; }
.o62-said strong { display: block; font-size: 15px; color: #111827; line-height: 1.25; }
.o62-said span { display: block; font-size: 12px; color: #6B7280; margin-top: 3px; }
.o62-arrow { text-align: center; font-size: 20px; color: #C4C9D2; }
.o62-found strong { display: block; font-size: 15px; color: #0F172A; }
.o62-found span { display: block; font-size: 12px; color: #6B7280; }
.o62-found b { display: block; font: 600 13px/1.5 ui-monospace, monospace; color: #0E7490; }
.o62-found em { display: block; font-size: 11.5px; color: #8A93A0; font-style: normal; margin-top: 3px; }

.o62-candidate { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 0; border-top: 1px dashed #E9EBEF; }
.o62-candidate button { border: 1px solid #CBD5E1; background: #fff; border-radius: 6px; padding: 5px 10px; font-size: 12px; cursor: pointer; }
.o62-candidate button:hover { border-color: #0E7490; color: #0E7490; }

.o62-choice { display: flex; flex-direction: column; gap: 6px; }
.o62-choice button { border-radius: 8px; padding: 9px 12px; font-size: 13px; font-weight: 600; cursor: pointer; border: 1px solid transparent; }
.o62-yes { background: #15803D; color: #fff; }
.o62-yes:hover { background: #166534; }
.o62-no, .o62-open { background: #fff; border-color: #D5D9E0; color: #4B5563; }
.o62-no:hover { border-color: #9AA1AC; }

/* ── THE SIX BADGES ── */
.o62-badge { display: inline-block; padding: 4px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 700; white-space: nowrap; border: 1px solid transparent; }
.o62-badge.green { background: #DCFCE7; color: #14532D; border-color: #BBF7D0; }
.o62-badge.amber { background: #FEF3C7; color: #78350F; border-color: #FDE68A; }
.o62-badge.red   { background: #FEE2E2; color: #7F1D1D; border-color: #FECACA; }
.o62-badge.grey  { background: #F1F3F6; color: #374151; border-color: #E2E5EA; }

/* ── THE ONE-PRESS BUTTON ── */
.o62-fax-btn { background: #0E7490; color: #fff; border: 0; border-radius: 7px; padding: 6px 13px; font-size: 12px; font-weight: 700; letter-spacing: .03em; cursor: pointer; }
.o62-fax-btn:hover { background: #0C5F76; }
.o62-fax-btn.warn { background: #B45309; }
.o62-fax-btn.warn:hover { background: #92400E; }
.o62-fax-btn.needs { background: #fff; color: #92400E; border: 1px solid #FDE68A; font-weight: 600; }

/* ── ROOM FOR THE BUTTON, OR IT IS NOT A BUTTON ──────────────────────
   The records row's actions cell is 150px with `overflow:hidden`, and it
   already carried Open PVT · Edit · PF · Resolve. Adding FAX pushed it outside
   the clip: the button rendered, reported a bounding box, and the pixel at its
   centre belonged to the containing div — so a press landed on nothing. The
   journey prover caught it by verifying what was under the cursor before
   clicking. A button that looks present and cannot be pressed is exactly the
   lie rule 1.4 forbids. */
.queue-card[data-queue-type="records"] .queue-grid-head,
.queue-card[data-queue-type="records"] .queue-grid-row {
  grid-template-columns: minmax(110px, .76fr) minmax(112px, .78fr) minmax(150px, 1.4fr) 68px 68px minmax(110px, .76fr) 30px 232px;
}
.queue-card[data-queue-type="records"] .queue-grid-row > .queue-actions { overflow: visible; flex-wrap: wrap; row-gap: 3px; }

.pvt-work-row .o62-cell { display: flex; align-items: center; gap: 8px; min-width: 0; overflow: visible; }
.pvt-work-row .o62-badge { flex: 0 0 auto; }

/* ── THE CONFIRM ── */
/* Law 4.10: everything here fits above the fold; the action button is never
   scrolled to. The facts list is short by design. */
.o62-fax-modal { max-width: 560px; }
.o62-checking { padding: 22px 4px; color: #4B5563; font-size: 14px; }
.o62-facts { margin: 0; display: grid; gap: 8px; }
.o62-facts > div { display: grid; grid-template-columns: 150px 1fr; gap: 10px; align-items: baseline; }
.o62-facts dt { font-size: 11px; letter-spacing: .07em; text-transform: uppercase; color: #9AA1AC; }
.o62-facts dd { margin: 0; font-size: 14px; color: #111827; }
.o62-auth { margin-top: 14px; border-radius: 9px; padding: 11px 13px; border: 1px solid; }
.o62-auth b { display: block; font-size: 13px; }
.o62-auth span { display: block; font-size: 12px; margin-top: 3px; line-height: 1.45; }
.o62-auth.ok { background: #F0FDF4; border-color: #BBF7D0; color: #14532D; }
.o62-auth.warn { background: #FFFBEB; border-color: #FDE68A; color: #78350F; }
.o62-fail { margin-top: 12px; background: #FEF2F2; border: 1px solid #FECACA; color: #7F1D1D; border-radius: 9px; padding: 11px 13px; font-size: 13px; line-height: 1.5; }
.queue-empty.bad { color: #7F1D1D; }

/* ── O-63 — REFERRAL FOLLOW-UPS ────────────────────────────────────── */
.o63-row { display: grid; grid-template-columns: minmax(240px, 1.4fr) minmax(190px, .9fr) minmax(230px, auto); gap: 14px; align-items: center; padding: 13px 16px; border-bottom: 1px solid #F1F2F4; }
.o63-row:last-child { border-bottom: 0; }
.o63-row.busy { opacity: .55; pointer-events: none; }
.o63-who strong { display: block; font-size: 14.5px; color: #111827; }
.o63-who span { display: block; font-size: 12.5px; color: #374151; margin-top: 2px; }
.o63-who small { display: block; font-size: 11.5px; color: #8A93A0; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.o63-clock small { display: block; font-size: 11px; color: #6B7280; margin-top: 4px; }
.o63-actions { display: flex; gap: 6px; justify-content: flex-end; flex-wrap: wrap; }
.o63-actions button { border-radius: 8px; padding: 7px 11px; font-size: 12px; font-weight: 600; cursor: pointer; }
.o63-fax-modal { max-width: 620px; }
.o63-preview { margin-top: 12px; border: 1px solid #E5E7EB; border-radius: 9px; padding: 11px 13px; background: #FAFBFC; }
.o63-preview b { display: block; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: #6B7280; }
.o63-preview p { margin: 5px 0 0; font-size: 13px; line-height: 1.5; color: #111827; }
.o63-preview.instructions p { font-size: 12px; color: #374151; }
/* The referral action column gains a button too — same clipping trap as the
   records one, fixed the same way rather than discovered a second time. */
.queue-card[data-queue-type="referrals"] .queue-grid-head,
.queue-card[data-queue-type="referrals"] .queue-grid-row {
  grid-template-columns: minmax(112px,.8fr) minmax(132px,1.45fr) minmax(80px,.56fr) 68px minmax(112px,.76fr) 68px 30px 216px;
}
.queue-card[data-queue-type="referrals"] .queue-grid-row > .queue-actions { overflow: visible; flex-wrap: wrap; row-gap: 3px; }

/* ══ O-62 POLISH ROUND ONE — David's live-review rulings, 2026-08-12 ══ */

/* ITEM 7 — the column widths. Provider sits tight against the patient, the
   records text is deliberately narrow (it truncates with "Read more"), and the
   space that buys goes to the action column so its buttons never wrap. */
.queue-card[data-queue-type="records"] .queue-grid-head,
.queue-card[data-queue-type="records"] .queue-grid-row {
  grid-template-columns: minmax(150px, .95fr) minmax(126px, .82fr) minmax(140px, 1fr) 74px 74px 268px 48px 132px 62px;
  gap: 6px;
  align-items: center;
}
/* ITEM 7 — patient names 20% bigger (10px base -> 12px). */
.o62-patient strong { font-size: 12px; line-height: 1.25; }
.o62-provider strong { font-size: 10.5px; }
.o62-provider small { font-size: 8.5px; }

/* ITEM 7 — the records text truncates rather than sprawling. */
.o62-records { font-size: 10px; line-height: 1.3; min-width: 0; overflow: hidden; }
.o62-records.open { white-space: normal; }
.o62-readmore { border: 0; background: transparent; color: #0E7490; font-size: 9.5px; font-weight: 700; cursor: pointer; padding: 0 0 0 4px; }
.o62-readmore:hover { text-decoration: underline; }

/* ITEM 6 — one size, one family, one straight column. The cell is a fixed
   grid so button N of every row starts at the same x, and an absent button
   holds its place instead of sliding the next one left. */
.queue-actions.o62-actions {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px;
  justify-content: stretch; overflow: visible;
}
.o62-actions .o62-btn,
.o62-actions .o62-btn-gap { width: 100%; min-width: 0; }
.mini-btn.o62-btn {
  padding: 5px 4px; font-size: 8.5px; font-weight: 700; white-space: nowrap;
  border: 1px solid #d3d9e2; border-radius: 6px; background: #f6f7f9; color: #3c4658;
  text-align: center; text-decoration: none; line-height: 1.35; cursor: pointer;
}
.mini-btn.o62-btn:hover { border-color: #0E7490; color: #0E7490; background: #f0fbfd; }
/* The blocked state keeps the family and says so in words instead of colour
   — an amber button here was the outlier David's ruling forbids. */
.mini-btn.o62-btn.needs { font-style: italic; }
.o62-btn-gap { display: block; }

/* ITEM 8 — the row ends [days] -> [badge] -> [linked docs], icon larger. */
.o62-status { display: flex; justify-content: flex-start; min-width: 0; }
.o62-status .o62-badge { font-size: 9.5px; padding: 3px 7px; }
.o62-docs { display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.o62-docs.empty { color: #c9ced7; font-size: 12px; justify-content: center; }
.o62-docs button, .o62-docs a { font-size: 16px; line-height: 1; }
.o62-docs svg, .o62-docs img { width: 19px; height: 19px; }

.o62-row-records.archived { opacity: .62; }
.o62-row-records.archived .o62-patient strong::after { content: ' · archived'; font-size: 9px; color: #8A93A0; font-weight: 600; }

/* DOOR PARITY — the PVT-page row carries the identical cells. */
.pvt-work-row.o62-row-pvt { display: grid; grid-template-columns: minmax(0, 1fr) 268px 132px 62px; gap: 8px; align-items: center; }
.pvt-work-row.o62-row-pvt.archived { opacity: .62; }

/* ITEM 2 — PREVIEW FAX. The document is the confirm dialog, so it gets the
   room: law 4.10 keeps Send pinned in the footer while the pages scroll. */
.o62-preview-modal { width: min(940px, 94vw); max-width: none; }
.o62-preview-body { display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.o62-preview-frame { width: 100%; height: min(62vh, 720px); border: 1px solid #d6dae2; border-radius: 8px; background: #f3f4f6; }
.o62-preview-meta { display: flex; gap: 14px; font-size: 11px; color: #6B7280; }
.o62-preview-meta span { white-space: nowrap; }

/* ITEM 9 — the link candidates. */
.o62-link-modal { width: min(680px, 94vw); max-width: none; }
.o62-candidate-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid #F1F2F4; }
.o62-candidate-row:last-child { border-bottom: 0; }
.o62-candidate-row strong { display: block; font-size: 13px; color: #111827; }
.o62-candidate-row span { display: block; font-size: 11.5px; color: #6B7280; }
.o62-candidate-row em { display: block; font-size: 11px; color: #0E7490; font-style: normal; margin-top: 2px; }
.o62-candidate-row .o62-btn { width: auto; padding: 6px 12px; font-size: 11px; }

/* ══ O-62 POLISH ROUND TWO — David's column order, 2026-08-12 ══════════
   PATIENT · PROVIDER · RECORDS REQUESTED · REQUESTED · LAST SENT · DAYS ·
   STATUS · DOCS · ACTIONS. Status directly after the days; docs directly
   after status; the action block last and identical on every row. */
.queue-card[data-queue-type="records"] .queue-grid-head,
.queue-card[data-queue-type="records"] .queue-grid-row {
  grid-template-columns: minmax(148px, .95fr) minmax(124px, .8fr) minmax(136px, 1fr) 74px 74px 46px 126px 64px 268px;
}
/* NOTHING BLEEDS OFF THE ROW (item 1). The clipped "zation" came from a label
   wider than its cell; belt and braces, every cell is bounded here too. */
.queue-card[data-queue-type="records"] .queue-grid-row > * { min-width: 0; overflow: hidden; }
.queue-card[data-queue-type="records"] .queue-grid-row > .queue-actions { overflow: visible; }
.o62-docs, .o62-status { overflow: hidden; }
.o62-docs .p3-file-link span, .o62-row-pvt .p3-file-link span { display: none !important; }

/* ITEM 3 — the recognisable red PDF icon, one per attached document. */
.o62-docs { display: flex; align-items: center; justify-content: flex-start; gap: 3px; flex-wrap: nowrap; }
.o62-docs.empty { min-height: 21px; }

/* ══ O-63a ITEM 1 — the referral row joins the records layout laws ══════
   PATIENT · SPECIALIST · RECORDS NEEDED · PF SENT · SCHEDULED · DAYS ·
   STATUS · DOCS · ACTIONS — the records grid with referral columns. */
.queue-card[data-queue-type="referrals"] .queue-grid-head,
.queue-card[data-queue-type="referrals"] .queue-grid-row {
  grid-template-columns: minmax(148px, .95fr) minmax(124px, .8fr) minmax(136px, 1fr) 74px 74px 46px 126px 64px 268px;
  gap: 6px;
  align-items: center;
}
.queue-card[data-queue-type="referrals"] .queue-grid-row > * { min-width: 0; overflow: hidden; }
.queue-card[data-queue-type="referrals"] .queue-grid-row > .queue-actions { overflow: visible; }
/* The quiet PF marker — provenance in small type, never a second badge. */
.o63-sent { display: flex; flex-direction: column; }
.o63-pf-quiet { font-size: 8.5px; font-weight: 700; color: #8A93A0; letter-spacing: .02em; }
/* The PVT-door referral row has three controls, not four. */
.queue-actions.o62-actions.o63-pvt-actions { grid-template-columns: repeat(3, 1fr); }
.o63-row-referral.archived { opacity: .62; }
.o63-row-referral.archived .o62-patient strong::after { content: ' · archived'; font-size: 9px; color: #8A93A0; font-weight: 600; }

/* O-63a ITEM 2 — the "Did you mean" rescue strip and its chips. */
.o63-rescue-strip { grid-column: 1 / -1; padding: 6px 16px 8px; font-size: 10.5px; color: #374151; background: #f8fafc; border-bottom: 1px solid #F1F2F4; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.o63-chip { border: 1px solid #0E7490; border-radius: 12px; background: #f0fbfd; color: #0E7490; font-size: 10px; font-weight: 700; padding: 3px 10px; cursor: pointer; }
.o63-chip:hover { background: #0E7490; color: #fff; }

/* O-63a ITEM 3 — the Edit-modal fallback block. */
.o63-edit-fallback { margin-top: 12px; padding: 10px 12px; border: 1px dashed #cbd5e1; border-radius: 8px; background: #fafbfc; }
.o63-edit-fallback-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; font-size: 12px; }
.o63-check { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; color: #374151; }


/* ── 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. ── */
.o62-badge.green{background:#eef2f7;color:#334155;border-color:#cbd5e1}
.o62-auth.ok{background:#f4f7fb;border-color:#d3dbe6;color:#334155}

/* ══ 2026-08-17 INTERRUPT — BUTTONS READABLE, NOTHING UNDER THE ORANGE TAB ══
   David: "the action buttons at the end of each row are crushed together and
   unreadable, and the orange Daily Records side tab overlaps them."
   Four 64px buttons at 8.5px in a 268px cell was the crush. Same fixed slots,
   same family, same order (item 6) — now a 2 × 2 grid at a readable 11px, so
   button N of every row still starts at the same x. The fixed review tab gets a
   reserved gutter on the two queues it was covering (D2 clipping family). */
.queue-actions.o62-actions { grid-template-columns: repeat(2, 1fr); gap: 5px 6px; }
.mini-btn.o62-btn { font-size: 11px; padding: 6px 8px; line-height: 1.25; }
.queue-card[data-queue-type="records"] .queue-grid-row > .queue-actions,
.queue-card[data-queue-type="referrals"] .queue-grid-row > .queue-actions { align-self: center; }
.queue-card[data-queue-type="records"], .queue-card[data-queue-type="referrals"] { width: calc(100% - 56px); }

/* ══ 2026-08-17 — DAVID'S STATUS LADDER for Records Requests ══
   Request created (grey) → Faxed – awaiting records (pale light green) →
   ✓ Records received (FULL green — David's explicit order supersedes the
   08-15 "success is never green" restyle for THIS badge only) →
   Overdue – no response (amber, auto after 14 days faxed). */
.o62-badge.pale { background: #EDFBEF; color: #1F6B36; border-color: #C9EFD3; }
.o62-badge.green.received { background: #16A34A; color: #fff; border-color: #15803D; font-weight: 800; }

/* ══ 2026-08-17 (second press) — THE ROW MUST FIT THE CARD AT DAVID'S WIDTH ══
   The 9-column grid above has fixed pixel columns whose minimum sum is ~1,126px;
   the card is overflow:hidden, so at any narrower window the ACTIONS column was
   pushed past the card's edge and the labels were amputated ("Refa", "Dismi").
   Fix the cause, not the symptom: the flexible columns get smaller minimums and
   the fixed ones shrink, so the row's minimum is ~950px; below 1180px viewport
   the four buttons stack in ONE column (136px) so the row minimum is ~820px.
   Same fixed slots and order — nothing moves out of place, it only fits. */
.queue-card[data-queue-type="records"] .queue-grid-head,
.queue-card[data-queue-type="records"] .queue-grid-row {
  grid-template-columns: minmax(100px, .95fr) minmax(96px, .8fr) minmax(110px, 1fr) 62px 66px 34px minmax(112px, .75fr) 44px 268px;
}
.queue-card[data-queue-type="referrals"] .queue-grid-head,
.queue-card[data-queue-type="referrals"] .queue-grid-row {
  grid-template-columns: minmax(100px, .95fr) minmax(96px, .8fr) minmax(110px, 1fr) 62px 66px 34px minmax(112px, .75fr) 44px 268px;
}
@media (max-width: 1180px) {
  .queue-card[data-queue-type="records"] .queue-grid-head,
  .queue-card[data-queue-type="records"] .queue-grid-row,
  .queue-card[data-queue-type="referrals"] .queue-grid-head,
  .queue-card[data-queue-type="referrals"] .queue-grid-row {
    grid-template-columns: minmax(96px, .95fr) minmax(90px, .8fr) minmax(104px, 1fr) 58px 62px 32px minmax(108px, .75fr) 40px 136px;
  }
  .queue-actions.o62-actions { grid-template-columns: 1fr; }
}

/* ══ 2026-08-17 (THIRD press — David's screen is the PVT page, not the queue) ══
   The records rows INSIDE A PVT (`.pvt-work-row.o62-row-pvt`) had
   grid columns  minmax(0,1fr) 268px 132px 62px  — the ACTIONS cell was 62px
   wide with four buttons in it, so the block spilled past the card edge and
   the labels were amputated. That is the row David has been photographing.
   Same shared component fix as the queue: actions get a real column (268px,
   2×2 buttons; 136px single column below 1180px), status takes its natural
   width, docs 64px, the text column shrinks. Nothing may extend past the card. */
.pvt-work-row.o62-row-pvt {
  grid-template-columns: minmax(0, 1fr) minmax(120px, auto) 64px 268px;
  gap: 8px; align-items: center; min-width: 0;
}
.pvt-work-row.o62-row-pvt > * { min-width: 0; }
.pvt-work-row.o62-row-pvt > div:first-child strong,
.pvt-work-row.o62-row-pvt > div:first-child small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pvt-work-row.o62-row-pvt .queue-actions.o62-actions { grid-template-columns: repeat(2, 1fr); overflow: visible; }
@media (max-width: 1180px) {
  .pvt-work-row.o62-row-pvt { grid-template-columns: minmax(0, 1fr) minmax(112px, auto) 56px 136px; }
  .pvt-work-row.o62-row-pvt .queue-actions.o62-actions { grid-template-columns: 1fr; }
}
/* the status pill wraps to a second line rather than clipping at narrow widths */
.o62-status .o62-badge { white-space: normal; line-height: 1.2; text-align: center; }

/* PROVIDER RE-MATCH REVIEW (2026-08-17) — page + the amber dashboard tile */
.o62-tile{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:12px 16px;border-radius:12px;background:#fff4e0;border:1px solid #f5d9a8;color:#78350F;font-size:13px}
.o62-tile b{color:#5c2a00}
.o62-tile-go{border:1px solid #d9a441;background:#fff;color:#7a5a12;font-weight:800;font-size:12.5px;padding:8px 14px;border-radius:9px;cursor:pointer;white-space:nowrap}
.o62-section-title{display:flex;align-items:center;gap:8px;padding:9px 16px;background:#F5F6F8;color:#5b6678;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;border-bottom:1px solid #e5eaf0}
.o62-section-title span{background:#e5eaf0;color:#334155;border-radius:999px;padding:1px 8px}
.o62-section-title small{text-transform:none;letter-spacing:0;font-weight:600;color:#94a3b8;margin-left:auto}
.o62-count{font-size:12px;color:#5b6678;padding:5px 9px;border:1px solid #e5eaf0;border-radius:999px;background:#fff}
.o62-count b{color:#17233b;margin-left:4px}
.o62-alt{display:flex;gap:6px;align-items:center;font-size:12px;color:#5b6678;margin:4px 0 8px}
.o62-alt select{font:inherit;font-size:12px;border:1px solid #d3d9e2;border-radius:7px;padding:4px 6px;max-width:420px}
.o62-sent{font-size:12px;font-weight:700;color:#334155;padding:6px 10px;border-radius:8px;background:#eef2f7;border:1px solid #cbd5e1;white-space:normal}
.o62-sent.ok{background:#eef2f7;color:#334155}
.o62-sent.failed{background:#fde8e8;border-color:#fca5a5;color:#7b1e1e}
.o62-sent.declined{background:#fff;color:#94a3b8}

.o62-tile.o62-holding{align-items:flex-start;background:#fff7ed;border-color:#fdba74;color:#7c2d12}
.o62-holding-list{display:grid;gap:4px;margin-top:8px;font-size:12px}
.o62-holding-row{display:grid;grid-template-columns:150px 1fr 90px 26px auto;gap:10px;align-items:center;padding:4px 0;border-top:1px dashed #fed7aa}
.o62-btn-done{background:#eef2f7;color:#334155;border-color:#e2e5ea;cursor:default}

/* ══ 2026-08-17 — DAVID'S COLOR LAW: amber = waiting/stuck · green = done · BLUE = news arrived.
   The unrequested chip is the ONLY blue on records/referral rows; the row gets a thin blue
   left stripe until Reviewed ✓, then both settle to the quiet grey done-state. */
.o62-badge.blue { background: #DBEAFE; color: #1E40AF; border-color: #93C5FD; }
.pvt-work-row.o62-row-pvt.o62-unreq, .queue-grid-row.o62-row-records.o62-unreq { box-shadow: inset 4px 0 0 #2563EB; }
.pvt-work-row.o62-row-pvt.o62-unreq-done, .queue-grid-row.o62-row-records.o62-unreq-done { box-shadow: inset 4px 0 0 #CBD5E1; }

/* ── PROVIDER DESK workbench (David 2026-08-18) ─────────────────────────── */
.o62-workbench{margin:-6px 0 14px;padding:12px 16px 14px;border:1px solid #f0c36d;border-top:0;border-radius:0 0 12px 12px;background:#fffbf3}
.o62-wb-head{display:flex;align-items:center;gap:10px;font-size:13px;color:#7c2d12;margin-bottom:8px}
.o62-wb-head .o62-link{margin-left:auto;background:none;border:0;color:#2563eb;cursor:pointer;font-size:12px}
.o62-wb-tag{font-size:11px;background:#fee2e2;color:#991b1b;border-radius:999px;padding:1px 8px}
.o62-wb-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}
@media (max-width:1100px){.o62-wb-grid{grid-template-columns:1fr}}
.o62-wb-col label{display:block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b;margin:8px 0 3px}
.o62-wb-col input[type=text],.o62-wb-col input:not([type]),.o62-wb-search{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font:inherit;font-size:13px}
.o62-wb-hits{display:flex;flex-direction:column;gap:4px;margin:6px 0}
.o62-wb-hit{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:6px 10px;cursor:pointer;font:inherit}
.o62-wb-hit b{font-size:13px;color:#0f172a}.o62-wb-hit small{font-size:11.5px;color:#64748b}
.o62-wb-hit.on{border-color:#2563eb;background:#eff6ff}
.o62-wb-hit.ai{border-style:dashed}
.o62-wb-err{display:block;color:#b91c1c;font-size:12px;margin-top:4px}
.o62-wb-check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#334155;margin:10px 0 6px;text-transform:none;letter-spacing:0;font-weight:600}
.o62-wb-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.o62-park{border:1px solid #cbd5e1;background:#fff;color:#475569;border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer}
.o62-park:hover{background:#f1f5f9}
.o62-btn{border:1px solid #cbd5e1;background:#fff;color:#1e3a8a;border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer;margin-top:6px}

/* ── REFERRAL OUTCOMES (David 2026-08-18) ────────────────────────────────── */
.ref-outcome{margin:6px 0 10px;padding:10px 12px;border:1px solid #fecaca;border-left:5px solid #dc2626;border-radius:10px;background:#fef2f2}
.ref-outcome[hidden]{display:none}
.ref-outcome>label{display:block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#7f1d1d;margin-bottom:4px}
.ref-outcome .req{background:#dc2626;color:#fff;border-radius:999px;padding:1px 7px;font-size:10px;margin-left:6px;text-transform:none;letter-spacing:0}
.ref-outcome textarea{width:100%;box-sizing:border-box;border:1px solid #fca5a5;border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;background:#fff}
.ref-outcome-stamp{font-size:11px;color:#7f1d1d;margin-top:4px}
.ref-outcome-also{display:flex;gap:8px;align-items:center;margin-top:8px;font-size:12.5px;color:#0f172a;text-transform:none;letter-spacing:0;font-weight:500}
.ref-outcome-prior{margin-top:8px;padding-top:8px;border-top:1px dashed #fca5a5;font-size:12.5px;color:#0f172a}
.ref-outcome-prior small{display:block;color:#64748b;margin-top:2px}
.ref-attention{margin:0 0 18px;padding:12px 14px;border:1px solid #fecaca;border-left:5px solid #dc2626;border-radius:12px;background:#fff5f5}
.ref-attention .section-head{margin-bottom:8px}
.ref-attention-card{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid #fee2e2}
.ref-attn-main{min-width:0;flex:1 1 auto}.ref-attn-top{font-size:13.5px;color:#0f172a}.ref-attn-top .o62-badge{margin-left:6px}
.ref-attn-note{margin-top:3px;font-size:13px;color:#1f2937;white-space:pre-wrap}
.ref-attn-stamp{margin-top:3px;font-size:11.5px;color:#64748b}
.ref-attn-acts{display:flex;gap:6px;flex:none}
.ref-attn-acts button{border:1px solid #cbd5e1;background:#fff;border-radius:8px;padding:7px 12px;font:inherit;font-size:12.5px;cursor:pointer}
.ref-attn-acts button.primary{background:#2563eb;border-color:#2563eb;color:#fff;font-weight:600}
.ref-news{margin-top:4px;font-size:11.5px;color:#1e3a8a;background:#dbeafe;border-left:3px solid #2563eb;border-radius:6px;padding:2px 8px;display:inline-block;max-width:420px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ref-news .ref-news-tag{font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:10px;margin-right:4px}
.ref-news.done{background:#f1f5f9;color:#475569;border-left-color:#cbd5e1}

/* ── PF ROBOT settings card (David 2026-08-18) ─────────────────────────── */
.pf-robot-card{border:1px solid #cbd5e1;border-left:5px solid #0f172a;border-radius:12px;background:#fff;padding:0 0 10px;margin-bottom:14px}
.pf-robot-card>summary{display:flex;justify-content:space-between;align-items:baseline;padding:12px 16px;font-weight:800;list-style:none;cursor:default}
.pf-robot-card>summary small{color:#64748b;font-weight:600}
.pf-robot-body{padding:0 16px}
.pf-robot-status{margin:0 0 10px;padding:8px 10px;border-radius:8px;font-size:13px}
.pf-robot-status.ok{background:#f1f5f9;color:#0f172a}.pf-robot-status.warn{background:#fff7ed;color:#7c2d12}.pf-robot-status.down{background:#fef2f2;color:#7f1d1d}
.pf-robot-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}
.pf-robot-form label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b}
.pf-robot-form input{border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font:inherit;font-size:13px}
.pf-robot-form button{border:1px solid #cbd5e1;background:#fff;border-radius:8px;padding:9px 14px;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}
.pf-robot-form button.primary{background:#0f172a;border-color:#0f172a;color:#fff;font-weight:700}
.pf-robot-form button:disabled{opacity:.55;cursor:default}
.pf-robot-msg{margin-top:8px;padding:8px 10px;border-radius:8px;font-size:13px}
.pf-robot-msg.bad{background:#fef2f2;color:#7f1d1d;border:1px solid #fecaca}.pf-robot-msg.ok{background:#f0fdf4;color:#14532d}
.pf-robot-note{display:block;margin-top:8px;color:#64748b;font-size:11.5px;line-height:1.4}
@media(max-width:900px){.pf-robot-form{grid-template-columns:1fr}}
