/* ============================================================
   ADMIN CONSOLE
   ============================================================ */
.adm-brand{background:var(--fg-navy-800);color:#fff;border-radius:var(--r-md);padding:16px 18px;display:grid;gap:3px}
.adm-brand span{font-size:11.5px;text-transform:uppercase;letter-spacing:.11em;color:var(--fg-steel-400)}
html[dir="rtl"] .adm-brand span{letter-spacing:0;text-transform:none;font-size:13px}
.adm-brand b{font-size:15px;font-weight:500}

.role-pick{display:grid;gap:7px;background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-md);padding:14px 16px}
.role-pick > span{font-size:11.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-steel-500)}
html[dir="rtl"] .role-pick > span{letter-spacing:0;text-transform:none;font-size:13px}
.role-pick select{border:1px solid var(--fg-hairline);border-radius:var(--r-sm);padding:9px 11px;font-size:14px;
  background:#fff;font-family:inherit;width:100%}
.dash-nav button[hidden]{display:none}

.adm-alert{background:#FDF6E7;border:1px solid #F0DFB8;color:#8A5D0F;border-radius:var(--r-md);
  padding:14px 16px;font-size:13.5px;line-height:1.5}
.adm-select{width:100%;border:1px solid var(--fg-hairline);border-radius:var(--r-sm);padding:11px 13px;
  font-size:14.5px;background:#fff;font-family:inherit;margin-bottom:12px}

/* SLA cells */
.sla{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.sla__dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--fg-steel-400)}
.sla--warn{color:var(--fg-warning);font-weight:500}
.sla--warn .sla__dot{background:var(--fg-warning)}
.sla--late{color:var(--fg-danger);font-weight:500}
.sla--late .sla__dot{background:var(--fg-danger)}
.unassigned{color:var(--fg-steel-500);font-style:italic}

/* workspace */
.dfiles--box{background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-md);padding:18px 20px;margin-bottom:30px}
.produce{display:grid;gap:12px;margin-bottom:30px}
.upbox{border:1.5px dashed var(--fg-steel-200);border-radius:var(--r-md);padding:20px;background:#fff;
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.upbox b{font-weight:500;font-size:15px;display:block}
.upbox span{font-size:13.5px;color:var(--fg-steel-500)}
.upbox.filled{border-style:solid;border-color:var(--fg-success);background:#F5FBF8}
.notes{display:grid;gap:10px;margin-bottom:14px}
.note{background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-sm);padding:14px 16px}
.note b{display:block;font-size:13px;color:var(--fg-steel-500);font-weight:400;margin-bottom:5px}
.note p{font-size:14.5px;line-height:1.55}
.notes-add{display:grid;gap:10px;justify-items:start}
.notes-add textarea{width:100%;border:1px solid var(--fg-hairline);border-radius:var(--r-sm);padding:12px 14px;
  font-size:14.5px;font-family:inherit;resize:vertical}
.notes-add textarea:focus{border-color:var(--fg-navy-600)}

/* payments */
.pay-list{display:grid;gap:16px}
.pcard{background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-md);padding:22px 24px;
  display:grid;grid-template-columns:120px 1fr auto;gap:22px;align-items:start}
@media (max-width:820px){ .pcard{grid-template-columns:1fr} }
.pcard.flagged{border-color:#F0DFB8;background:#FFFDF8}
.receipt-thumb{border:1px solid var(--fg-hairline);border-radius:var(--r-sm);background:var(--fg-mist-100);
  height:96px;display:grid;place-items:center;gap:5px;font-size:11.5px;color:var(--fg-steel-500);text-align:center;padding:8px}
.receipt-thumb svg{width:20px;height:20px;stroke:var(--fg-steel-400);fill:none;stroke-width:1.5}
.pcard__body b{font-size:16px;font-weight:500;display:block;margin-bottom:8px}
.pmeta{display:grid;gap:6px;font-size:14px;color:var(--fg-ink-muted)}
.pmeta div{display:flex;gap:8px}
.pmeta em{font-style:normal;color:var(--fg-ink);font-variant-numeric:tabular-nums}
.pflag{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--fg-warning);margin-top:10px;font-weight:500}
.pcard__act{display:grid;gap:8px;min-width:150px}
.pcard__act .btn{justify-content:center}
.pdone{font-size:14px;line-height:1.5}
.pdone.ok{color:var(--fg-success)}
.pdone.no{color:var(--fg-danger)}

/* doctors */
.doc-list{display:grid;gap:14px}
.doccard{background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-md);padding:20px 24px;
  display:grid;grid-template-columns:1fr auto;gap:16px 24px;align-items:center}
@media (max-width:760px){ .doccard{grid-template-columns:1fr} }
.doccard b{font-size:16px;font-weight:500;display:block;margin-bottom:6px}
.doccard .dmeta{font-size:14px;color:var(--fg-ink-muted);display:flex;gap:8px;flex-wrap:wrap}
.doccard .dmeta span::after{content:"·";margin-inline-start:8px;color:var(--fg-steel-200)}
.doccard .dmeta span:last-child::after{content:""}
.nolic{color:var(--fg-warning)}
/* The action column holds four buttons in the active list, and on a narrow
   screen four buttons in a row is four buttons nobody can hit. Wrapping is
   the whole fix; the card already drops to one column under 760px. */
.docact{display:flex;gap:8px;flex-wrap:wrap}

/* who is signed in — replaces the demo role picker on the real console */
.adm-who{display:grid;gap:5px;background:var(--fg-white);border:1px solid var(--fg-hairline);
  border-radius:var(--r-md);padding:14px 16px}
.adm-who__k{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-steel-500)}
.adm-who b{font-size:15px;font-weight:500}
.adm-who__mail{font-size:13px;color:var(--fg-ink-muted);word-break:break-all}
.adm-who__badge{justify-self:start;margin-top:3px;font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;background:var(--fg-navy-800);color:#fff;border-radius:999px;padding:3px 10px}

/* the console link, only ever shown to an administrator */
.acctlink--adm{color:var(--fg-navy-700);font-weight:500}

/* pricing */
.todo-banner{display:flex;align-items:center;gap:10px;background:#FFF8F8;border:1px solid #F0C9C5;
  border-radius:var(--r-sm);padding:13px 16px;font-size:14px;color:var(--fg-ink);margin-bottom:22px}
.ptable{display:grid;gap:1px;background:var(--fg-hairline);border:1px solid var(--fg-hairline);border-radius:var(--r-sm);overflow:hidden}
.ptable > div{background:#fff;display:grid;grid-template-columns:1fr 130px;gap:16px;align-items:center;padding:13px 16px;font-size:14.5px}
.ptable input{border:1px solid var(--fg-hairline);border-radius:4px;padding:8px 10px;font-size:14px;
  font-family:inherit;font-variant-numeric:tabular-nums;text-align:end;width:100%}
.ptable input.todo{border-color:#F0C9C5;background:#FFF8F8;color:var(--fg-danger)}
.codes{display:grid;gap:10px}
.code{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--fg-hairline);
  border-radius:var(--r-sm);padding:13px 16px;font-size:14.5px;flex-wrap:wrap}
.code code{font-family:var(--font-mono);font-size:13.5px;background:var(--fg-mist-100);padding:4px 9px;border-radius:4px}
.code span{color:var(--fg-ink-muted);font-size:13.5px}

/* settings */
.sett{display:grid;gap:14px;max-width:520px}
.sett label{display:grid;grid-template-columns:1fr 110px 120px;gap:14px;align-items:center;font-size:14.5px}
@media (max-width:560px){ .sett label{grid-template-columns:1fr 90px} .sett em{grid-column:2} }
.sett input{border:1px solid var(--fg-hairline);border-radius:var(--r-sm);padding:9px 12px;font-size:14px;
  font-family:inherit;font-variant-numeric:tabular-nums;text-align:end}
.sett em{font-style:normal;font-size:13px;color:var(--fg-steel-500)}
.todo-field input{border-color:#F0C9C5;background:#FFF8F8;color:var(--fg-danger);font-family:var(--font-mono);font-size:12.5px;text-align:start}

/* ---------- the chat inbox ----------
   Two panes on a desktop, stacked on a phone. The list keeps a fixed height
   and scrolls inside itself so the reply box never walks off the bottom of a
   long thread — the one control that has to stay reachable is the one that
   answers the person waiting. */
.inbox{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}
@media (max-width:860px){ .inbox{grid-template-columns:1fr} }
.inbox__list{border:1px solid var(--fg-hairline);border-radius:var(--r-sm);
  max-height:520px;overflow-y:auto;background:#fff}
.inbox__item{display:block;width:100%;text-align:start;border:0;background:none;
  border-block-end:1px solid var(--fg-hairline);padding:12px 14px;cursor:pointer;font:inherit}
.inbox__item:hover{background:var(--fg-mist,#F7F9FB)}
.inbox__item.is-on{background:var(--fg-mist,#F7F9FB);box-shadow:inset 3px 0 0 var(--fg-navy,#0E2A47)}
.inbox__item b{display:block;font-size:14px;margin-block-end:2px}
.inbox__item span{display:block;font-size:12.5px;color:var(--fg-steel-500)}
/* A dot, not a word. The list is scanned, not read, and "open" repeated
   fifteen times down a column is noise the eye has to filter every time. */
.inbox__dot{display:inline-block;width:7px;height:7px;border-radius:50%;
  margin-inline-end:6px;vertical-align:1px;background:var(--fg-steel-400,#8CA0B3)}
.inbox__dot--open{background:var(--fg-danger,#C0392B)}
.inbox__dot--waiting{background:#E0A800}
.inbox__dot--closed{background:var(--fg-ok,#2E7D52)}
.inbox__thread{border:1px solid var(--fg-hairline);border-radius:var(--r-sm);
  background:#fff;padding:16px;min-height:320px}
.inbox__meta{font-size:12.5px;color:var(--fg-steel-500);margin-block-end:12px}
.inbox__log{max-height:360px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.inbox__msg{max-width:82%;padding:9px 12px;border-radius:var(--r-sm);font-size:14px;line-height:1.55;white-space:pre-wrap}
.inbox__msg--visitor{align-self:flex-start;background:var(--fg-mist,#F2F5F8)}
.inbox__msg--bot{align-self:flex-start;background:#fff;border:1px solid var(--fg-hairline)}
.inbox__msg--human{align-self:flex-end;background:var(--fg-navy,#0E2A47);color:#fff}
.inbox__msg em{display:block;font-style:normal;font-size:11px;opacity:.65;margin-block-end:3px}
.inbox__reply{margin-block-start:14px;border-block-start:1px solid var(--fg-hairline);padding-block-start:12px}
.inbox__reply textarea{width:100%;border:1px solid var(--fg-hairline);border-radius:var(--r-sm);
  padding:10px 12px;font:inherit;font-size:14px;resize:vertical}
.inbox__actions{display:flex;align-items:center;gap:10px;margin-block-start:10px;flex-wrap:wrap}
.inbox__warn{flex:1 1 auto;font-size:12px;color:var(--fg-danger)}
/* The refusal from the PHI filter, shown where the reply would have gone. */
.inbox__blocked{margin-block-start:10px;padding:10px 12px;border-radius:var(--r-sm);
  background:#FFF8F8;border:1px solid #F0C9C5;color:var(--fg-danger);font-size:13px;line-height:1.55}

/* ============================================================
   REPORTS — charts
   Single series per chart · one hue · hairline solid grid
   ============================================================ */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}
@media (max-width:820px){ .tiles{grid-template-columns:1fr} }
.tile{background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-md);padding:22px 24px}
.tile__label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-steel-500);display:block;margin-bottom:12px}
html[dir="rtl"] .tile__label{letter-spacing:0;text-transform:none;font-size:13.5px}
.tile__val{font-size:38px;font-weight:600;letter-spacing:-.025em;line-height:1;color:var(--fg-ink);
  font-variant-numeric:proportional-nums}
html[dir="rtl"] .tile__val{letter-spacing:0}
.tile__sub{font-size:13.5px;color:var(--fg-ink-muted);margin-top:10px;display:block}

.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:900px){ .chart-grid{grid-template-columns:1fr} }
.chartcard{background:#fff;border:1px solid var(--fg-hairline);border-radius:var(--r-md);padding:22px 24px 18px}
.chartcard__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.chartcard h4,.chartcard h3{font-size:15px;font-weight:500;letter-spacing:-.01em}
html[dir="rtl"] .chartcard h4,html[dir="rtl"] .chartcard h3{letter-spacing:0}
.tview{background:transparent;border:1px solid var(--fg-hairline);border-radius:var(--r-sm);
  padding:5px 11px;font-size:12.5px;color:var(--fg-ink-muted);cursor:pointer;transition:border-color .15s,color .15s}
.tview:hover{border-color:var(--fg-steel-400);color:var(--fg-ink)}
.tview[aria-pressed="true"]{background:var(--fg-navy-800);color:#fff;border-color:var(--fg-navy-800)}

.chartsvg{width:100%;height:auto;display:block;overflow:visible;direction:ltr}
.grid-line{stroke:var(--fg-hairline);stroke-width:1}
.axis-txt{font-family:var(--font-en);font-size:11px;fill:var(--fg-steel-500);font-variant-numeric:tabular-nums}
.bar{fill:var(--fg-navy-700);transition:fill .13s}
.barhit{fill:transparent;cursor:default}
.bargroup:hover .bar{fill:var(--fg-navy-800)}

.hbar-row{display:grid;grid-template-columns:150px 1fr 56px;gap:14px;align-items:center;padding:9px 0}
@media (max-width:520px){ .hbar-row{grid-template-columns:110px 1fr 48px;gap:10px} }
.hbar-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar-track{display:block;height:10px;background:var(--fg-mist-100);border-radius:5px;overflow:hidden}
.hbar-fill{display:block;height:100%;min-width:3px;background:var(--fg-navy-700);border-radius:5px;transition:background .13s}
.hbar-row:hover .hbar-fill{background:var(--fg-navy-800)}
.hbar-val{font-size:14px;text-align:end;font-variant-numeric:tabular-nums;color:var(--fg-ink)}

.tview-box table{width:100%;border-collapse:collapse;font-size:14px}
.tview-box th{text-align:start;font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--fg-steel-500);padding:9px 10px;border-bottom:1px solid var(--fg-hairline)}
html[dir="rtl"] .tview-box th{letter-spacing:0;text-transform:none;font-size:13px}
.tview-box td{padding:9px 10px;border-bottom:1px solid var(--fg-hairline);font-variant-numeric:tabular-nums}
.tview-box tr:last-child td{border-bottom:0}

.chart-tip{
  position:fixed;z-index:200;background:var(--fg-navy-900);color:#fff;border-radius:var(--r-sm);
  padding:8px 12px;font-size:12.5px;pointer-events:none;opacity:0;transition:opacity .12s;
  white-space:nowrap;font-variant-numeric:tabular-nums;
}
.chart-tip.show{opacity:1}
