/* ════════════════════════════════════════════════════════════════
   GMHSphere — Patient Docket Stylesheet
   patient_docket.css
   
   NAMESPACE CONVENTION:
   · Docket UI classes   → keep existing names (group-*, section-*, etc.)
   · html_schema classes → gmh_hs_ prefix (form fields, tickets, toasts)
   ════════════════════════════════════════════════════════════════ */

/* ── 1. DESIGN TOKENS ───────────────────────────────────────── */
:root {
  /* Surface & text */
  --gmh-bg:           #f4f7fb;
  --gmh-card:         #ffffff;
  --gmh-text:         #1f2937;
  --gmh-muted:        #6b7280;
  --gmh-border:       #d7dee8;
  --gmh-shadow:       0 8px 24px rgba(15,23,42,0.08);

  /* Brand */
  --gmh-primary:      #174ea6;
  --gmh-primary-dark: #0f3a7a;
  --gmh-danger:       #b91c1c;
  --gmh-warning:      #b45309;
  --gmh-success:      #15803d;

  /* Group color tokens */
  --gmh-core-color:     #174ea6;  --gmh-core-light:    #dbeafe;  --gmh-core-dark:     #0f3a7a;
  --gmh-order-color:    #92400e;  --gmh-order-light:   #fef3c7;  --gmh-order-dark:    #78350f;
  --gmh-medproc-color:  #14532d;  --gmh-medproc-light: #dcfce7;  --gmh-medproc-dark:  #052e16;
  --gmh-close-color:    #581c87;  --gmh-close-light:   #f3e8ff;  --gmh-close-dark:    #3b0764;
  --gmh-doc-color:      #0f5298;  --gmh-doc-light:     #e8f0fe;  --gmh-doc-dark:      #093370;
  --gmh-cds-color:      #7e0019;  --gmh-cds-light:     #ffe8ec;  --gmh-cds-dark:      #5c0012;
  --gmh-ai-color:       #0e7490;  --gmh-ai-light:      #ecfeff;  --gmh-ai-dark:       #0a5a70;
  --gmh-support-color:  #1e3a5f;  --gmh-support-light: #e8f0fe;  --gmh-support-dark:  #132740;
}

/* ── 2. RESET ───────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: Arial, Helvetica, sans-serif; background: var(--gmh-bg); color: var(--gmh-text); }

/* ── 3. STICKY HEADER ───────────────────────────────────────── */
#gmh-sticky-header { position: sticky; top: 0; z-index: 2000; box-shadow: var(--gmh-shadow); }

/* ── 4. PATIENT BANNER ──────────────────────────────────────── */
.patient-banner {
  background: linear-gradient(135deg, var(--gmh-primary), var(--gmh-primary-dark));
  color: #fff; padding: 14px 18px;
}
.patient-topline { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; flex-wrap: wrap; }
.patient-name  { font-size: 1.35rem; font-weight: 800; margin-bottom: 4px; }
.patient-meta  { font-size: 0.88rem; opacity: .95; line-height: 1.6; }
.risk-box      { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
.risk-badge    { border-radius: 999px; padding: 5px 11px; font-size: 0.8rem; font-weight: 800; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.35); }
.risk-critical { background: #7f1d1d; }
.risk-warning  { background: #92400e; }
.risk-ok       { background: #14532d; }

/* ── 5. ENCOUNTER STRIP ─────────────────────────────────────── */
.encounter-strip {
  background: #0f3a7a; padding: 7px 18px; display: flex; gap: 18px; flex-wrap: wrap;
  align-items: center; font-size: 0.8rem; color: #bfdbfe;
  border-top: 1px solid rgba(255,255,255,.12);
}
.encounter-strip span { display: flex; align-items: center; gap: 5px; }
.encounter-strip i    { opacity: .7; }
.enc-highlight        { color: #fde68a; font-weight: 700; }

/* ── 6. WORKFLOW PROGRESS BAR ───────────────────────────────── */
.progress-bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 28px; background: #fff; border-bottom: 1px solid var(--gmh-border); overflow-x: auto;
}
.prog-step             { display: flex; align-items: center; flex: 1; min-width: 0; }
.prog-step:last-child  { flex: 0 0 auto; }
.prog-dot {
  width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center;
  justify-content: center; font-size: 0.82rem; font-weight: 800;
  border: 2px solid var(--gmh-border); background: #fff; color: var(--gmh-muted);
  cursor: pointer; transition: all .2s; flex-shrink: 0;
}
.prog-dot.done    { background: var(--gmh-success); border-color: var(--gmh-success); color: #fff; }
.prog-dot.active  { background: var(--gmh-primary); border-color: var(--gmh-primary); color: #fff; box-shadow: 0 0 0 4px #bfdbfe; }
.prog-dot.pending { background: #fff; border-color: var(--gmh-border); color: var(--gmh-muted); }
.prog-dot:hover   { transform: scale(1.12); }
.prog-label { font-size: 0.74rem; font-weight: 700; color: var(--gmh-muted); white-space: nowrap; margin: 0 5px; flex-shrink: 0; }
.prog-line  { flex: 1; height: 3px; background: var(--gmh-border); min-width: 12px; }
.prog-line.done { background: var(--gmh-success); }

/* ── 7. ENCOUNTER TIMELINE ──────────────────────────────────── */
.timeline-strip      { max-width: 1100px; margin: 14px auto 0; padding: 0 14px; }
.timeline-card       { background: #fff; border: 1px solid var(--gmh-border); border-radius: 12px; box-shadow: var(--gmh-shadow); padding: 14px 16px; }
.timeline-card-header{ display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.timeline-title      { font-size: 0.86rem; font-weight: 900; color: var(--gmh-primary-dark); display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.timeline-events     { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 3px; }
.timeline-event      { flex: 0 0 auto; min-width: 142px; border: 1px solid var(--gmh-border); border-radius: 10px; padding: 8px 10px; background: #fbfdff; font-size: 0.78rem; }
.timeline-event strong{ display: block; color: var(--gmh-primary-dark); margin-bottom: 3px; }
.timeline-event.done    { border-left: 4px solid var(--gmh-success); }
.timeline-event.active  { border-left: 4px solid var(--gmh-primary);  background: #eef4ff; }
.timeline-event.pending { border-left: 4px solid var(--gmh-warning);  background: #fffbeb; }

/* ── 8. STATUS RULES STRIP ──────────────────────────────────── */
.status-rule-strip { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.rule-chip  { background: #fff; border: 1px solid var(--gmh-border); border-radius: 999px; padding: 6px 10px; font-size: 0.76rem; font-weight: 800; box-shadow: 0 3px 10px rgba(15,23,42,.05); }
.rule-red    { color: var(--gmh-danger);  border-color: #fecaca; background: #fff7f7; }
.rule-amber  { color: var(--gmh-warning); border-color: #fed7aa; background: #fffaf0; }
.rule-green  { color: var(--gmh-success); border-color: #bbf7d0; background: #f7fff9; }
.rule-purple { color: #6b21a8;            border-color: #d8b4fe; background: #faf5ff; }

/* ── 9. EDI CONTAINER + GROUP BLOCKS ────────────────────────── */
.edi-container { max-width: 1100px; margin: 20px auto 60px; padding: 0 14px; }
.group-block   { margin-bottom: 10px; }

.group-header {
  display: flex; align-items: center; gap: 12px; padding: 11px 16px;
  border-radius: 10px 10px 0 0; cursor: pointer; user-select: none;
  font-weight: 900; font-size: 0.95rem; letter-spacing: 0.04em;
  text-transform: uppercase; transition: filter .15s; color: #fff;
}
.group-header:hover  { filter: brightness(1.06); }
.gh-icon    { font-size: 1.1rem; }
.gh-label   { flex: 1; }
.gh-count   { font-size: 0.75rem; font-weight: 700; opacity: .8; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; padding: 2px 9px; }
.gh-chevron { font-size: 0.85rem; transition: transform .25s; }
.group-block.collapsed .gh-chevron { transform: rotate(-90deg); }

/* Group header backgrounds — each group has exactly one gradient */
.group-core    .group-header { background: linear-gradient(135deg, var(--gmh-core-color),    var(--gmh-core-dark)); }
.group-orders  .group-header { background: linear-gradient(135deg, var(--gmh-order-color),   var(--gmh-order-dark)); }
.group-medproc .group-header { background: linear-gradient(135deg, var(--gmh-medproc-color), var(--gmh-medproc-dark)); }
.group-close   .group-header { background: linear-gradient(135deg, var(--gmh-close-color),   var(--gmh-close-dark)); }
.group-docmgmt .group-header { background: linear-gradient(135deg, var(--gmh-doc-color),     var(--gmh-doc-dark)); }
.group-cds     .group-header { background: linear-gradient(135deg, var(--gmh-cds-color),     var(--gmh-cds-dark)); }
.group-ai      .group-header { background: linear-gradient(135deg, var(--gmh-ai-color),      var(--gmh-ai-dark)); }
.group-support .group-header { background: linear-gradient(135deg, var(--gmh-support-color), var(--gmh-support-dark)); }

/* ── 10. SECTION LIST ───────────────────────────────────────── */
.section-list { border: 1px solid var(--gmh-border); border-top: none; border-radius: 0 0 10px 10px; overflow: hidden; background: var(--gmh-card); }
.group-block.collapsed .section-list { display: none; }

/* ── 11. SECTION CARD ───────────────────────────────────────── */
.section-card            { border-bottom: 1px solid var(--gmh-border); overflow: hidden; transition: box-shadow .2s; }
.section-card:last-child { border-bottom: none; }
.section-card.open       { background: #fafcff; }

/* Accent left-border per group — single rule per group using CSS custom prop */
.section-card.open                 { box-shadow: inset 3px 0 0 var(--gmh-primary); }
.group-orders  .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-order-color); }
.group-medproc .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-medproc-color); }
.group-close   .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-close-color); }
.group-docmgmt .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-doc-color); }
.group-cds     .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-cds-color); }
.group-ai      .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-ai-color); }
.group-support .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-support-color); }

/* ── 12. SECTION BUTTON ─────────────────────────────────────── */
.section-btn {
  width: 100%; border: 0; background: transparent; padding: 14px 16px; text-align: left;
  cursor: pointer; display: flex; align-items: center; gap: 12px;
  font-size: 0.95rem; font-weight: 700; color: var(--gmh-text); transition: background .15s;
}
.section-btn:hover           { background: #f0f6ff; }
.group-orders  .section-btn:hover { background: #fffbeb; }
.group-medproc .section-btn:hover { background: #f0fdf4; }
.group-close   .section-btn:hover { background: #faf5ff; }
.group-docmgmt .section-btn:hover { background: #f0f4ff; }
.group-cds     .section-btn:hover { background: var(--gmh-cds-light); }
.group-ai      .section-btn:hover { background: var(--gmh-ai-light); }
.group-support .section-btn:hover { background: #f0f4fb; }

/* ── 13. SECTION BUTTON ICON ────────────────────────────────── */
.sb-icon {
  width: 34px; height: 34px; border-radius: 8px; display: flex; align-items: center;
  justify-content: center; font-size: 0.95rem; flex-shrink: 0;
}
.group-core    .sb-icon { background: var(--gmh-core-light);    color: var(--gmh-core-color); }
.group-orders  .sb-icon { background: var(--gmh-order-light);   color: var(--gmh-order-color); }
.group-medproc .sb-icon { background: var(--gmh-medproc-light); color: var(--gmh-medproc-color); }
.group-close   .sb-icon { background: var(--gmh-close-light);   color: var(--gmh-close-color); }
.group-docmgmt .sb-icon { background: var(--gmh-doc-light);     color: var(--gmh-doc-color); }
.group-cds     .sb-icon { background: var(--gmh-cds-light);     color: var(--gmh-cds-color); }
.group-ai      .sb-icon { background: var(--gmh-ai-light);      color: var(--gmh-ai-color); }
.group-support .sb-icon { background: var(--gmh-support-light); color: var(--gmh-support-color); }

.sb-text      { flex: 1; min-width: 0; }
.sb-title     { display: block; font-weight: 700; font-size: 0.95rem; }
.sb-sub       { display: block; font-weight: 400; font-size: 0.78rem; color: var(--gmh-muted); margin-top: 1px; }
.sb-chevron   { font-size: 0.75rem; color: var(--gmh-muted); transition: transform .25s; flex-shrink: 0; }
.section-card.open .sb-chevron { transform: rotate(180deg); }

/* ── 14. STATUS PILLS ───────────────────────────────────────── */
/* Base */
.status-pill { font-size: 0.72rem; font-weight: 700; padding: 3px 9px; border-radius: 999px; white-space: nowrap; flex-shrink: 0; }
/* Amber (pending/warn share same palette) */
.pill-pending,
.pill-warn     { background: #fef3c7; color: #92400e; }
/* Blue (draft/info share same palette) */
.pill-draft,
.pill-info     { background: #dbeafe; color: #1e40af; }
/* Green (final/ok share same palette) */
.pill-final,
.pill-ok       { background: #dcfce7; color: #14532d; }
.pill-alert    { background: #fee2e2; color: #991b1b; }
.pill-verified { background: #f3e8ff; color: #6b21a8; }

/* ── 15. SECTION CONTENT ────────────────────────────────────── */
.section-content { display: none; padding: 0 16px 16px 62px; animation: gmhSlideDown .2s ease; }
.section-card.open .section-content { display: block; }

@keyframes gmhSlideDown {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.sc-desc { font-size: 0.85rem; color: var(--gmh-muted); margin-bottom: 14px; line-height: 1.55; padding-top: 8px; }

/* ── 16. MINI GRID + CARDS ──────────────────────────────────── */
.mini-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; margin-bottom: 14px; }
.mini-card { background: var(--gmh-bg); border: 1px solid var(--gmh-border); border-radius: 8px; padding: 10px 12px; font-size: 0.82rem; }
.mini-card strong { display: block; font-size: 0.75rem; color: var(--gmh-muted); margin-bottom: 3px; text-transform: uppercase; letter-spacing: 0.03em; }
.mini-card.warn  { border-left: 3px solid var(--gmh-warning); background: #fffbeb; }
.mini-card.alert { border-left: 3px solid var(--gmh-danger);  background: #fef2f2; }
.mini-card.good  { border-left: 3px solid var(--gmh-success); background: #f0fdf4; }

/* ── 17. ACTION ROW + BUTTONS ───────────────────────────────── */
.action-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.btn {
  border: 1px solid var(--gmh-border); background: var(--gmh-card); color: var(--gmh-text);
  border-radius: 7px; padding: 7px 14px; font-size: 0.82rem; font-weight: 700;
  cursor: pointer; transition: background .12s, border-color .12s;
}
.btn:hover           { background: #f0f6ff; border-color: #93c5fd; }
.btn-primary         { background: var(--gmh-primary);       color: #fff; border-color: var(--gmh-primary); }
.btn-primary:hover   { background: var(--gmh-primary-dark);  border-color: var(--gmh-primary-dark); }
.btn-order           { background: var(--gmh-order-color);   color: #fff; border-color: var(--gmh-order-color); }
.btn-order:hover     { background: var(--gmh-order-dark); }
.btn-medproc         { background: var(--gmh-medproc-color); color: #fff; border-color: var(--gmh-medproc-color); }
.btn-medproc:hover   { background: var(--gmh-medproc-dark); }
.btn-close-g         { background: var(--gmh-close-color);   color: #fff; border-color: var(--gmh-close-color); }
.btn-close-g:hover   { background: var(--gmh-close-dark); }
.btn-danger          { background: var(--gmh-danger);        color: #fff; border-color: var(--gmh-danger); }
.btn-danger:hover    { background: #991b1b; }

/* ── 18. UTILITY ELEMENTS ───────────────────────────────────── */
.edi-badge {
  display: inline-flex; align-items: center; gap: 5px; font-size: 0.72rem; font-weight: 700;
  padding: 3px 8px; border-radius: 5px; background: #e0e7ff; color: #3730a3;
  margin-bottom: 10px; letter-spacing: 0.04em;
}
.expand-btn {
  border: 1px solid #93c5fd; background: #fff; color: var(--gmh-primary); border-radius: 999px;
  width: 28px; height: 28px; font-size: 0.75rem; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: background .12s, transform .12s;
}
.expand-btn:hover { background: #dbeafe; transform: scale(1.1); }

/* ── 19. LOCK STATE ─────────────────────────────────────────── */
.section-card.locked .section-btn       { opacity: 0.63; cursor: not-allowed; }
.section-card.locked .section-btn:hover { background: transparent; }
.lock-note { margin: 10px 0 12px; padding: 9px 11px; border-radius: 9px; background: #fff7ed; border: 1px solid #fed7aa; color: #92400e; font-size: 0.82rem; font-weight: 800; }

/* ── 20. SIGNED-BY BLOCKS ───────────────────────────────────── */
.signed-by  { margin-top: 13px; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px; }
.signed-box { border: 1px dashed var(--gmh-border); background: #fff; border-radius: 9px; padding: 9px 10px; font-size: 0.78rem; }
.signed-box strong { display: block; color: var(--gmh-primary-dark); margin-bottom: 3px; text-transform: uppercase; letter-spacing: 0.03em; font-size: 0.72rem; }

/* ── 21. DRAG AND DROP ──────────────────────────────────────── */
.group-block.drag-enabled .group-header { cursor: grab; }
.group-block.drag-enabled.dragging      { opacity: .45; }
.group-block.drag-enabled.drag-over     { outline: 3px dashed var(--gmh-primary); outline-offset: 3px; }
.group-core .group-header               { cursor: pointer; }

/* ── 22. MODAL ──────────────────────────────────────────────── */
.modal-overlay  { position: fixed; inset: 0; z-index: 9999; background: rgba(15,23,42,.45); display: none; align-items: stretch; justify-content: center; padding: 16px; }
.modal-overlay.open { display: flex; }
.modal-window   { width: min(1200px,98vw); height: min(900px,96vh); background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 24px 70px rgba(15,23,42,.35); border: 2px solid var(--gmh-primary); display: flex; flex-direction: column; }
.modal-header   { background: linear-gradient(135deg, var(--gmh-primary), var(--gmh-primary-dark)); color: #fff; padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-weight: 900; font-size: 1rem; }
.modal-close    { border: 1px solid #fff; background: #7f1d1d; color: #fff; border-radius: 999px; width: 36px; height: 36px; font-size: 1rem; cursor: pointer; font-weight: 900; }
.modal-body     { flex: 1; overflow: auto; padding: 20px; background: #f8fbff; }
/* Patient context bar inside modal */
.modal-patient-card { background: #f1f5f9; border-bottom: 1px solid #e2e8f0; padding: 8px 20px; font-size: .8rem; color: #334155; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-family: 'Segoe UI', system-ui, sans-serif; }
.modal-patient-card strong { color: #1e293b; }
.mpc-sep { color: #94a3b8; font-weight: 400; }
.mpc-val { font-weight: 800; color: #1e293b; }

/* ── 23. PREVIEW & PRINT PANEL (PPP) ────────────────────────── */
#ppp-panel              { max-width: 1100px; margin: 0 auto 8px; display: block; }
#ppp-panel .ppp-body    { display: none; }
#ppp-panel.ppp-open .ppp-body { display: block; }

.ppp-card { background: #fff; border: 1px solid var(--gmh-border); border-top: none; border-radius: 10px; overflow: hidden; }
.ppp-hdr  {
  background: linear-gradient(135deg, var(--gmh-primary), var(--gmh-primary-dark));
  color: #fff; padding: 11px 16px; display: flex; align-items: center; gap: 12px;
  cursor: pointer; user-select: none; font-weight: 900; font-size: 0.95rem;
  letter-spacing: 0.04em; border-radius: 10px;
}
#ppp-panel.ppp-open .ppp-hdr { border-radius: 10px 10px 0 0; }
.ppp-ttl     { flex: 1; font-weight: 900; font-size: 0.95rem; }
.ppp-sub     { font-size: .75rem; opacity: .9; font-weight: 700; }
.ppp-hdr-chev{ font-size: 1rem; transition: transform .25s; flex-shrink: 0; margin-left: auto; }
#ppp-panel.ppp-open .ppp-hdr-chev { transform: rotate(90deg); }
.ppp-body    { padding: 18px 20px 22px; }

.ppp-all-row { display: flex; align-items: center; gap: 10px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 9px; padding: 11px 14px; margin-bottom: 16px; cursor: pointer; }
.ppp-all-row input { width: 18px; height: 18px; accent-color: var(--gmh-primary); cursor: pointer; }
.ppp-all-row label { font-weight: 900; font-size: .95rem; color: var(--gmh-primary); cursor: pointer; }
.ppp-cnt     { margin-left: auto; font-size: .78rem; font-weight: 700; color: var(--gmh-muted); }

.ppp-groups  { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.ppp-grp     { border: 1px solid var(--gmh-border); border-radius: 9px; overflow: hidden; }
.ppp-ghdr    { display: flex; align-items: center; gap: 10px; padding: 9px 13px; background: #f8fafc; border-bottom: 1px solid transparent; cursor: pointer; }
.ppp-grp.ppp-x-expanded .ppp-ghdr { border-bottom-color: var(--gmh-border); }
.ppp-ghdr input { width: 16px; height: 16px; accent-color: var(--gmh-primary); cursor: pointer; flex-shrink: 0; }
.ppp-gicon { width: 28px; height: 28px; border-radius: 7px; display: flex; align-items: center; justify-content: center; font-size: .82rem; flex-shrink: 0; }
.ppp-gname { flex: 1; font-weight: 800; font-size: .88rem; }
.ppp-chev  { font-size: .72rem; color: var(--gmh-muted); transition: transform .2s; }
.ppp-grp.ppp-x-expanded .ppp-chev { transform: rotate(180deg); }

/* PPP group color bands — single rule each */
.ppp-g-core    .ppp-ghdr { border-left: 4px solid var(--gmh-core-color); }
.ppp-g-core    .ppp-gicon { background: var(--gmh-core-light); color: var(--gmh-core-color); }
.ppp-g-orders  .ppp-ghdr { border-left: 4px solid var(--gmh-order-color); }
.ppp-g-orders  .ppp-gicon { background: var(--gmh-order-light); color: var(--gmh-order-color); }
.ppp-g-medproc .ppp-ghdr { border-left: 4px solid var(--gmh-medproc-color); }
.ppp-g-medproc .ppp-gicon { background: var(--gmh-medproc-light); color: var(--gmh-medproc-color); }
.ppp-g-ai      .ppp-ghdr { border-left: 4px solid var(--gmh-primary); }
.ppp-g-ai      .ppp-gicon { background: #e0e7ff; color: #3730a3; }
.ppp-g-close   .ppp-ghdr { border-left: 4px solid var(--gmh-close-color); }
.ppp-g-close   .ppp-gicon { background: var(--gmh-close-light); color: var(--gmh-close-color); }
.ppp-g-cds     .ppp-ghdr { border-left: 4px solid var(--gmh-cds-color); }
.ppp-g-cds     .ppp-gicon { background: var(--gmh-cds-light); color: var(--gmh-cds-color); }
.ppp-g-docs    .ppp-ghdr { border-left: 4px solid var(--gmh-doc-color); }
.ppp-g-docs    .ppp-gicon { background: var(--gmh-doc-light); color: var(--gmh-doc-color); }
.ppp-g-support .ppp-ghdr { border-left: 4px solid var(--gmh-support-color); }
.ppp-g-support .ppp-gicon { background: var(--gmh-support-light); color: var(--gmh-support-color); }

.ppp-secs { display: none; padding: 4px 12px 10px 52px; }
.ppp-grp.ppp-x-expanded .ppp-secs { display: block; }
.ppp-srow { display: flex; align-items: center; gap: 9px; padding: 6px 0; border-bottom: 1px solid #f1f5f9; cursor: pointer; }
.ppp-srow:last-child { border-bottom: none; }
.ppp-srow input { width: 15px; height: 15px; accent-color: var(--gmh-primary); cursor: pointer; }
.ppp-srow label { flex: 1; font-size: .85rem; font-weight: 700; color: var(--gmh-text); cursor: pointer; }

/* Section status pills in PPP (collapsed — amber/green/blue share palette with status-pill above) */
.ppp-spill { font-size: .68rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.sp-final, .sp-ok    { background: #dcfce7; color: #15803d; }
.sp-draft            { background: #dbeafe; color: #1e40af; }
.sp-pending, .sp-warn{ background: #fef3c7; color: #92400e; }
.sp-alert            { background: #fef2f2; color: #b91c1c; }
.sp-info             { background: #e0e7ff; color: #3730a3; }
.sp-muted            { background: #f1f5f9; color: #6b7280; }

.ppp-actions  { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding-top: 14px; border-top: 1px solid var(--gmh-border); }
.ppp-gen-btn  { background: var(--gmh-primary); color: #fff; border: none; border-radius: 8px; padding: 10px 22px; font-size: .9rem; font-weight: 800; cursor: pointer; display: flex; align-items: center; gap: 8px; }
.ppp-gen-btn:hover    { background: var(--gmh-primary-dark); }
.ppp-gen-btn:disabled { opacity: .4; cursor: not-allowed; }
.ppp-none-btn { border: 1px solid var(--gmh-border); background: #fff; color: var(--gmh-muted); border-radius: 8px; padding: 9px 15px; font-size: .85rem; font-weight: 700; cursor: pointer; }
.ppp-none-btn:hover   { background: #f8fafc; }
#ppp-sel-label { margin-left: auto; font-size: .82rem; font-weight: 700; color: var(--gmh-muted); }

/* ── 24. HTML_SCHEMA FORM CLASSES (gmh_hs_ namespace) ──────── */
/* These classes are injected by html_schema form definitions
   rendered inside .modal-body. Prefix: gmh_hs_               */

.gmh_hs_form { background: #fff; border: 1px solid var(--gmh-border); border-radius: 10px; padding: 16px 18px; margin-top: 12px; }
.gmh_hs_form_grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin-bottom: 12px; }

.gmh_hs_field { display: flex; flex-direction: column; gap: 4px; }
.gmh_hs_field label    { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--gmh-muted); }
.gmh_hs_field input,
.gmh_hs_field select,
.gmh_hs_field textarea { border: 1px solid #cbd5e1; border-radius: 7px; padding: 8px 10px; font-size: .88rem; font-family: inherit; }
.gmh_hs_field input:focus,
.gmh_hs_field select:focus,
.gmh_hs_field textarea:focus { outline: 2px solid var(--gmh-primary); border-color: var(--gmh-primary); }
.gmh_hs_field.full { grid-column: 1 / -1; }

.gmh_hs_priority_bar { display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap; }
.gmh_hs_pri { border: 2px solid var(--gmh-border); border-radius: 8px; padding: 6px 14px; font-size: .78rem; font-weight: 800; cursor: pointer; background: #fff; color: var(--gmh-muted); transition: all .12s; }
.gmh_hs_pri.sel-routine   { background: #dcfce7; border-color: var(--gmh-success); color: var(--gmh-success); }
.gmh_hs_pri.sel-urgent    { background: #fef3c7; border-color: var(--gmh-warning); color: var(--gmh-warning); }
.gmh_hs_pri.sel-emergency { background: #fef2f2; border-color: var(--gmh-danger);  color: var(--gmh-danger); }

.gmh_hs_ticket_list  { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.gmh_hs_ticket_item  { background: #fff; border: 1px solid var(--gmh-border); border-radius: 9px; padding: 11px 14px; display: flex; align-items: center; gap: 12px; }
.gmh_hs_tick_status  { font-size: .72rem; font-weight: 800; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.gmh_hs_tick_open     { background: #fef3c7; color: #92400e; }
.gmh_hs_tick_progress { background: #dbeafe; color: #1e40af; }
.gmh_hs_tick_resolved { background: #dcfce7; color: #15803d; }

.gmh_hs_toast       { display: none; margin-top: 10px; background: #dcfce7; border: 1px solid #86efac; color: #14532d; border-radius: 8px; padding: 10px 14px; font-size: .85rem; font-weight: 700; align-items: center; gap: 8px; }
.gmh_hs_toast.show  { display: flex; }

.gmh_hs_fhir_panel  { background: #0f172a; color: #94a3b8; border-radius: 10px; padding: 14px; font-family: Consolas, 'Courier New', monospace; font-size: .78rem; line-height: 1.8; overflow: auto; max-height: 280px; margin-top: 10px; }

/* ── 25. RESPONSIVE ─────────────────────────────────────────── */
@media (max-width: 640px) {
  .patient-meta    { font-size: 0.78rem; }
  .section-content { padding-left: 16px; }
  .mini-grid       { grid-template-columns: 1fr; }
}

/* ── 26. PRINT ──────────────────────────────────────────────── */
@media print {
  .encounter-strip button, .expand-btn, .modal-overlay,
  .btn, .sb-chevron, .gh-chevron { display: none !important; }
  body           { background: #fff !important; color: #000 !important; }
  .patient-banner{ position: static !important; background: #fff !important; color: #000 !important; border-bottom: 2px solid #000 !important; }
  .section-content                    { display: block !important; }
  .group-block.collapsed .section-list{ display: block !important; }
}

/* ── 27. IPAD / PDF OVERFLOW + PRINT SAFETY OVERRIDES ─────────
   Added only as end-of-file overrides.
   Purpose:
   - Prevent iPad/WebKit from clipping docket to half screen.
   - Prevent PDF/print from being limited by hidden/scroll containers.
   - Do not change normal desktop layout.
   ───────────────────────────────────────────────────────────── */

/* iPad / tablet scrolling safety */
@media screen and (max-width: 1180px) {
  html,
  body {
    min-height: 100%;
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .edi-container,
  .timeline-strip,
  #ppp-panel {
    max-width: 100%;
  }

  .modal-overlay.open {
    align-items: flex-start !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .modal-window {
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
  }

  .modal-body {
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
}

/* PDF / browser print safety */
@page {
  size: auto;
  margin: 0.45in;
}

@media print {
  html,
  body {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    color: #000 !important;
  }

  #gmh-sticky-header {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    box-shadow: none !important;
  }

  .edi-container,
  .timeline-strip,
  #ppp-panel,
  .ppp-card,
  .group-block,
  .section-list,
  .section-card,
  .section-content,
  .modal-window,
  .modal-body,
  .gmh_hs_form {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .section-list,
  .section-card {
    overflow: visible !important;
  }

  .section-content {
    display: block !important;
    padding-left: 0 !important;
    animation: none !important;
  }

  .section-card,
  .group-block,
  .mini-card,
  .signed-box,
  .gmh_hs_form {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .progress-bar,
  .timeline-strip,
  #ppp-panel,
  .action-row,
  .btn,
  .expand-btn,
  .modal-overlay,
  .sb-chevron,
  .gh-chevron {
    display: none !important;
  }

  .patient-banner,
  .encounter-strip {
    position: static !important;
    color: #000 !important;
    background: #fff !important;
    border-bottom: 1px solid #000 !important;
  }

  .group-header {
    color: #000 !important;
    background: #fff !important;
    border: 1px solid #000 !important;
  }

  .section-btn {
    color: #000 !important;
    background: #fff !important;
    border-bottom: 1px solid #ccc !important;
  }

  .group-block.collapsed .section-list {
    display: block !important;
  }
}

/* ═══════════════════════════════════════════════════════
   INLINE ROW ICON COLOR UPGRADE — 3D commercial grade
   Only changes the small object-row icons.
═══════════════════════════════════════════════════════ */
.docket-sec-btn .dsb-icon{
  width:28px !important;
  height:28px !important;
  min-width:28px !important;
  border-radius:10px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  position:relative !important;
  overflow:hidden !important;
  font-size:.9rem !important;
  background:linear-gradient(145deg,#ffffff 0%,#edf6ff 44%,#d8e9f9 100%) !important;
  color:#0f3f5d !important;
  border:1px solid rgba(255,255,255,.92) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -2px 4px rgba(15,47,69,.10),
    0 5px 10px rgba(15,47,69,.16) !important;
  text-shadow:0 1px 0 rgba(255,255,255,.7) !important;
}
.docket-sec-btn .dsb-icon:before{
  content:'';
  position:absolute;
  left:4px;
  top:3px;
  width:15px;
  height:8px;
  border-radius:999px;
  background:rgba(255,255,255,.58);
  transform:rotate(-24deg);
  pointer-events:none;
}
.docket-sec-btn .dsb-icon i{
  position:relative;
  z-index:2;
  filter:drop-shadow(0 1px 1px rgba(15,47,69,.18));
}
.docket-section[data-objects-code="ENCOUNTER"] .dsb-icon{background:linear-gradient(145deg,#eff6ff,#dbeafe 48%,#bfdbfe) !important;color:#1d4ed8 !important;}
.docket-section[data-objects-code="TRIAGE"] .dsb-icon{background:linear-gradient(145deg,#fff1f2,#ffe4e6 48%,#fecdd3) !important;color:#be123c !important;}
.docket-section[data-objects-code="VITALS"] .dsb-icon{background:linear-gradient(145deg,#f0fdf4,#dcfce7 48%,#bbf7d0) !important;color:#15803d !important;}
.docket-section[data-objects-code="DIAGNOSIS"] .dsb-icon{background:linear-gradient(145deg,#ecfeff,#cffafe 48%,#a5f3fc) !important;color:#0e7490 !important;}
.docket-section[data-objects-code="LAB_ORDER"] .dsb-icon,
.docket-section[data-objects-code="LAB_RESULT"] .dsb-icon{background:linear-gradient(145deg,#f5f3ff,#ede9fe 48%,#ddd6fe) !important;color:#6d28d9 !important;}
.docket-section[data-objects-code="RADIOLOGY_ORDER"] .dsb-icon{background:linear-gradient(145deg,#f8fafc,#e2e8f0 48%,#cbd5e1) !important;color:#334155 !important;}
.docket-section[data-objects-code="MAR"] .dsb-icon,
.docket-section[data-objects-code="MED_RECON"] .dsb-icon{background:linear-gradient(145deg,#fff7ed,#ffedd5 48%,#fed7aa) !important;color:#c2410c !important;}
.docket-section[data-objects-code="PROGRESS_NOTE"] .dsb-icon,
.docket-section[data-objects-code="CLINICAL_NOTE"] .dsb-icon{background:linear-gradient(145deg,#fffbeb,#fef3c7 48%,#fde68a) !important;color:#a16207 !important;}
.docket-section[data-objects-code="CARE_PLAN"] .dsb-icon,
.docket-section[data-objects-code="QUALITY_MEASURES"] .dsb-icon{background:linear-gradient(145deg,#eef2ff,#e0e7ff 48%,#c7d2fe) !important;color:#4338ca !important;}
.docket-section[data-objects-code="ALERTS"] .dsb-icon{background:linear-gradient(145deg,#fff7ed,#ffedd5 48%,#fdba74) !important;color:#ea580c !important;}
.docket-section[data-objects-code="INTERFACES"] .dsb-icon{background:linear-gradient(145deg,#f0fdfa,#ccfbf1 48%,#99f6e4) !important;color:#0f766e !important;}
.docket-section[data-objects-code="DOCUMENTS"] .dsb-icon,
.docket-section[data-objects-code="IMAGES"] .dsb-icon,
.docket-section[data-objects-code="EXTERNAL_RECORDS"] .dsb-icon{background:linear-gradient(145deg,#f0f9ff,#e0f2fe 48%,#bae6fd) !important;color:#0369a1 !important;}
.docket-section[data-objects-code="DISCHARGE"] .dsb-icon{background:linear-gradient(145deg,#fef2f2,#fee2e2 48%,#fecaca) !important;color:#b91c1c !important;}
.docket-section[data-objects-code="ENV_SERVICES"] .dsb-icon,
.docket-section[data-objects-code="BED_MANAGEMENT"] .dsb-icon,
.docket-section[data-objects-code="NUTRITION"] .dsb-icon,
.docket-section[data-objects-code="TRANSPORT"] .dsb-icon,
.docket-section[data-objects-code="SECURITY"] .dsb-icon,
.docket-section[data-objects-code="HELP_DESK"] .dsb-icon{background:linear-gradient(145deg,#f1f5f9,#e2e8f0 48%,#cbd5e1) !important;color:#475569 !important;}



/* ═══════════════════════════════════════════════════════
   SURGICAL CLARITY FIX — Patient Locator / My Patients List only
   Keeps the inline panels crisp; no layout or function changes.
═══════════════════════════════════════════════════════ */
#ediInlinePanelHost,
#ediInlinePanelHost *{
  opacity:1 !important;
  filter:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  text-shadow:none !important;
}
#ediInlinePanelHost{
  background:#ffffff !important;
  color:#0f172a !important;
  isolation:isolate !important;
  position:relative !important;
  z-index:41 !important;
  -webkit-font-smoothing:antialiased !important;
  text-rendering:geometricPrecision !important;
}
#ediInlinePanelHost input,
#ediInlinePanelHost table,
#ediInlinePanelHost td,
#ediInlinePanelHost th,
#ediInlinePanelHost label,
#ediInlinePanelHost span,
#ediInlinePanelHost strong{
  color:inherit;
  -webkit-font-smoothing:antialiased !important;
  text-rendering:geometricPrecision !important;
}



/* ════════════════════════════════════════════════════════════════
   MIGRATED FROM patient_docket.html inline <style> blocks
   ════════════════════════════════════════════════════════════════ */

/* ── friday-css ─────────────────────────────────────────────── */

:root{--navy:#071e2e;--navy2:#102f45;--navy3:#153d59;--gold:#d6a72c;--gold2:#f2d779;--gold3:#fff1a8;--ice:#eef3f8;--text:#102f45;--muted:#557083;--line:#d6e2ec;--white:#fff}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--ice);color:var(--text);font-family:Georgia,'Times New Roman',serif}body:before{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 15% 10%,rgba(255,255,255,.85),transparent 30%),linear-gradient(90deg,rgba(214,226,236,.35),transparent 45%)}.topbar{height:96px;background:#fff;display:flex;align-items:center;gap:28px;padding:0 44px;box-shadow:0 12px 24px rgba(6,25,37,.12);position:sticky;top:0;z-index:40}.topbar h1{margin:0;font-size:34px;line-height:1;font-weight:900;letter-spacing:-.02em}.url-pill{margin-left:auto;width:min(520px,40vw);height:46px;border:1px solid #cfdce7;border-radius:15px;background:#f7fbff;display:flex;align-items:center;padding:0 28px;font:800 14px Arial,sans-serif;color:#496173}.json-pill{height:46px;border:0;border-radius:15px;padding:0 28px;background:linear-gradient(135deg,var(--gold3),var(--gold2) 28%,var(--gold) 58%,#9c6d05);font:900 14px Arial,sans-serif;color:var(--navy2);box-shadow:0 8px 20px rgba(156,109,5,.22)}.page-shell{width:100%;max-width:1250px;margin:0 auto;padding:34px 28px 70px}.edi-hero{position:relative;min-height:112px;border-radius:25px;background:linear-gradient(135deg,var(--navy3),var(--navy2) 52%,var(--navy));box-shadow:0 18px 30px rgba(6,25,37,.18);display:flex;align-items:center;padding:20px 36px 20px 82px;margin:0 0 48px}.edi-hero h2{margin:0 0 9px;color:white;font-size:28px;font-weight:900;letter-spacing:-.015em}.edi-hero p{margin:0 0 5px;color:#cfe1ee;font-size:15px;font-weight:700}.edi-hero strong{color:var(--gold);font-size:14px}.edi-actions{margin-left:auto;display:flex;gap:18px}.edi-actions button{width:100px;height:48px;border:0;border-radius:16px;background:white;color:var(--navy2);font:900 14px Arial,sans-serif}.edi-actions button.gold{background:linear-gradient(135deg,var(--gold3),var(--gold2),var(--gold),#9c6d05)}.hero-badge{position:absolute!important;left:-34px;top:-36px}.docket-stack{display:flex;flex-direction:column;gap:22px}.docket-group{position:relative}.group-face{width:100%;min-height:82px;border-radius:24px;border:2px solid var(--line);background:linear-gradient(135deg,#fff,#edf4fa);box-shadow:0 14px 24px rgba(6,25,37,.11);display:flex;align-items:center;text-align:left;padding:14px 70px 14px 118px;position:relative;cursor:pointer;font-family:inherit}.docket-group.open .group-face{border:3px solid var(--gold);background:linear-gradient(135deg,#fff,#fff5d7)}.group-title h3{margin:0 0 7px;font-size:25px;font-weight:900;letter-spacing:.015em;color:var(--text)}.group-title p{margin:0;font-size:15px;font-weight:700;color:var(--muted)}.chev{position:absolute;right:30px;top:50%;width:50px;height:50px;border-radius:50%;transform:translateY(-50%);background:linear-gradient(135deg,var(--gold3),var(--gold2),var(--gold),#9c6d05);box-shadow:0 7px 14px rgba(6,25,37,.22)}.chev:before{content:'';position:absolute;left:17px;top:20px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:12px solid var(--navy3)}.docket-group.open .chev:before{border-top:0;border-bottom:12px solid var(--navy3)}.group-body{display:none;margin:-2px 24px 0 24px;padding:22px 24px 28px;background:#fff;border:1px solid #e1ebf2;border-radius:0 0 24px 24px;box-shadow:0 10px 18px rgba(6,25,37,.08)}.docket-group.open .group-body{display:block}.render-note{font:800 12px Arial,sans-serif;color:#8aa0af;margin:0 0 12px}.placeholder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.placeholder-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.mini-card{min-height:86px;border-radius:18px;border:1.5px solid #d6e2ec;background:#f7fbff;padding:21px 20px}.mini-card.warm{background:#fff8e2;border-color:var(--gold)}.mini-card b{display:block;color:var(--navy3);font-size:15px;font-weight:900;margin-bottom:12px}.mini-card span{font:700 12px Arial,sans-serif;color:#60798b}.floating-badge{width:70px;height:70px;border-radius:50%;background:linear-gradient(135deg,var(--gold3),var(--gold2) 28%,var(--gold) 58%,#9c6d05);border:2px solid #fff2a8;box-shadow:0 8px 14px rgba(6,25,37,.25);position:absolute;left:38px;top:50%;transform:translateY(-50%);display:grid;place-items:center;overflow:hidden}.floating-badge:after{content:'';position:absolute;width:50px;height:50px;border-radius:50%;background:#16a34a;box-shadow:inset 0 2px 5px rgba(255,255,255,.25)}.floating-badge span{position:relative;z-index:2;width:44px;height:44px;display:block;transform:scale(.62);transform-origin:center center;filter:drop-shadow(0 3px 2px rgba(0,0,0,.38)) drop-shadow(0 -1px 1px rgba(255,255,255,.35))}.floating-badge span:before,.floating-badge span:after{content:'';position:absolute;filter:drop-shadow(0 1px 0 rgba(255,255,255,.35)) drop-shadow(0 3px 2px rgba(0,0,0,.32))}.blue:after{background:#2563eb}.purple:after{background:#7c3aed}.teal:after{background:#0891b2}.green:after{background:#0d9488}.orange:after{background:#f97316}.red:after{background:#dc2626}.amber:after{background:#b77908}.navy:after{background:#153d59}.icon-stetho span:before{left:9px;top:3px;width:17px;height:28px;border:5px solid #fff;border-top:0;border-radius:0 0 18px 18px}.icon-stetho span:after{left:25px;top:25px;width:18px;height:18px;border:5px solid #fff;border-radius:50%;box-shadow:-22px -23px 0 -6px #fff,14px -23px 0 -6px #fff}.icon-clipboard span:before{left:8px;top:4px;width:27px;height:36px;border:4px solid #fff;border-radius:5px}.icon-clipboard span:after{left:15px;top:15px;width:17px;height:3px;background:#fff;box-shadow:0 9px 0 #fff,0 18px 0 #fff}.icon-pills span:before{left:1px;top:19px;width:40px;height:17px;border:5px solid #fff;border-radius:13px;transform:rotate(-45deg)}.icon-pills span:after{right:1px;top:18px;width:26px;height:18px;border:5px solid #fff;border-radius:16px;transform:rotate(-25deg)}.icon-brain span:before{left:5px;top:7px;width:34px;height:28px;border:5px solid #fff;border-radius:18px}.icon-brain span:after{left:19px;top:3px;width:5px;height:40px;background:#fff;box-shadow:-14px 17px 0 -1px #fff,14px 17px 0 -1px #fff}.icon-user span:before{left:13px;top:5px;width:18px;height:18px;border:5px solid #fff;border-radius:50%}.icon-user span:after{left:5px;top:26px;width:34px;height:18px;border:5px solid #fff;border-radius:20px 20px 4px 4px}.icon-network span:before{left:6px;top:6px;width:12px;height:12px;border:5px solid #fff;border-radius:50%;box-shadow:20px 0 0 -1px #f97316,20px 0 0 4px #fff,10px 22px 0 -1px #f97316,10px 22px 0 4px #fff}.icon-network span:after{left:17px;top:20px;width:20px;height:5px;background:#fff;transform:rotate(-28deg);box-shadow:-7px 12px 0 #fff}.icon-shield span:before{left:9px;top:3px;width:26px;height:36px;border:5px solid #fff;clip-path:polygon(50% 0,100% 16%,90% 75%,50% 100%,10% 75%,0 16%)}.icon-shield span:after{left:20px;top:9px;width:5px;height:25px;background:#fff;transform:rotate(0deg);box-shadow:7px 11px 0 -1px #fff}.icon-audit span:before{left:10px;top:5px;width:25px;height:34px;border:4px solid #fff;border-radius:4px}.icon-audit span:after{left:17px;top:15px;width:16px;height:3px;background:#fff;box-shadow:0 8px 0 #fff,0 16px 0 #fff}.icon-print span:before{left:6px;top:15px;width:32px;height:20px;border:4px solid #fff;border-radius:5px}.icon-print span:after{left:11px;top:2px;width:22px;height:15px;border:4px solid #fff;border-bottom:0;border-radius:3px;box-shadow:0 31px 0 -1px #fff}.print-body{display:flex!important;align-items:center;gap:18px;flex-wrap:wrap}.print-body label{font:800 14px Arial,sans-serif;color:var(--navy2);background:#f7fbff;border:1px solid #d6e2ec;border-radius:14px;padding:12px 16px}.print-body input{accent-color:var(--gold);transform:scale(1.15);margin-right:8px}.print-btn{margin-left:auto;border:0;border-radius:16px;padding:14px 24px;background:linear-gradient(135deg,var(--gold3),var(--gold2),var(--gold),#9c6d05);font:900 14px Arial,sans-serif;color:var(--navy2);box-shadow:0 8px 18px rgba(156,109,5,.22)}@media(max-width:900px){.topbar{height:auto;align-items:flex-start;flex-direction:column;padding:20px}.url-pill{margin-left:0;width:100%}.page-shell{padding:24px 16px}.edi-hero{padding:70px 18px 20px}.hero-badge{left:20px;top:0}.edi-actions{margin-left:0}.group-face{padding-left:98px}.floating-badge{left:18px}.placeholder-grid,.placeholder-grid.four{grid-template-columns:1fr}.group-title h3{font-size:20px}}

/* ═══════════════════════════════════════════════════════
   FINAL ICON ALIGNMENT FIX — black centered raised glyphs only
   DO NOT alter layout, titles, colors, or group structure.
═══════════════════════════════════════════════════════ */
.floating-badge{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.floating-badge:after{
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  width:50px !important;
  height:50px !important;
}
.floating-badge span{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  z-index:4 !important;
  width:38px !important;
  height:38px !important;
  transform:translate(-50%,-50%) !important;
  transform-origin:center center !important;
  filter:
    drop-shadow(0 3px 2px rgba(255,255,255,.28))
    drop-shadow(0 4px 3px rgba(0,0,0,.42))
    drop-shadow(0 -1px 0 rgba(255,255,255,.5)) !important;
}
.floating-badge span:before,
.floating-badge span:after{
  box-sizing:border-box !important;
  filter:drop-shadow(0 2px 1px rgba(255,255,255,.24)) drop-shadow(0 3px 2px rgba(0,0,0,.35)) !important;
}

/* Core / EDI / stethoscope */
.icon-stetho span:before{
  left:7px !important;
  top:2px !important;
  width:15px !important;
  height:25px !important;
  border:4px solid #061923 !important;
  border-top:0 !important;
  border-radius:0 0 18px 18px !important;
}
.icon-stetho span:after{
  left:22px !important;
  top:22px !important;
  width:15px !important;
  height:15px !important;
  border:4px solid #061923 !important;
  border-radius:50% !important;
  box-shadow:-19px -21px 0 -6px #061923, 12px -21px 0 -6px #061923 !important;
}

/* Orders / clipboard */
.icon-clipboard span:before{
  left:8px !important;
  top:3px !important;
  width:23px !important;
  height:31px !important;
  border:4px solid #061923 !important;
  border-radius:5px !important;
}
.icon-clipboard span:after{
  left:14px !important;
  top:13px !important;
  width:13px !important;
  height:3px !important;
  background:#061923 !important;
  box-shadow:0 8px 0 #061923,0 16px 0 #061923 !important;
}

/* Meds / procedures */
.icon-pills span:before{
  left:0px !important;
  top:17px !important;
  width:35px !important;
  height:15px !important;
  border:4px solid #061923 !important;
  border-radius:13px !important;
  transform:rotate(-45deg) !important;
}
.icon-pills span:after{
  right:0px !important;
  top:17px !important;
  width:23px !important;
  height:15px !important;
  border:4px solid #061923 !important;
  border-radius:16px !important;
  transform:rotate(-25deg) !important;
}

/* AI */
.icon-brain span:before{
  left:4px !important;
  top:5px !important;
  width:30px !important;
  height:25px !important;
  border:4px solid #061923 !important;
  border-radius:18px !important;
}
.icon-brain span:after{
  left:17px !important;
  top:2px !important;
  width:4px !important;
  height:34px !important;
  background:#061923 !important;
  box-shadow:-12px 15px 0 -1px #061923,12px 15px 0 -1px #061923 !important;
}

/* Nursing / person */
.icon-user span:before{
  left:12px !important;
  top:4px !important;
  width:15px !important;
  height:15px !important;
  border:4px solid #061923 !important;
  border-radius:50% !important;
}
.icon-user span:after{
  left:5px !important;
  top:24px !important;
  width:28px !important;
  height:14px !important;
  border:4px solid #061923 !important;
  border-radius:20px 20px 4px 4px !important;
}

/* Care coordination / connected nodes */
.icon-network span:before{
  left:5px !important;
  top:5px !important;
  width:10px !important;
  height:10px !important;
  border:4px solid #061923 !important;
  border-radius:50% !important;
  background:transparent !important;
  box-shadow:18px 0 0 -1px transparent,18px 0 0 3px #061923,9px 20px 0 -1px transparent,9px 20px 0 3px #061923 !important;
}
.icon-network span:after{
  left:15px !important;
  top:18px !important;
  width:19px !important;
  height:4px !important;
  background:#061923 !important;
  transform:rotate(-28deg) !important;
  box-shadow:-6px 11px 0 #061923 !important;
}

/* Risk / shield */
.icon-shield span:before{
  left:8px !important;
  top:3px !important;
  width:23px !important;
  height:32px !important;
  border:4px solid #061923 !important;
  clip-path:polygon(50% 0,100% 16%,90% 75%,50% 100%,10% 75%,0 16%) !important;
}
.icon-shield span:after{
  left:18px !important;
  top:8px !important;
  width:4px !important;
  height:22px !important;
  background:#061923 !important;
  transform:rotate(0deg) !important;
  box-shadow:6px 10px 0 -1px #061923 !important;
}

/* Billing/audit */
.icon-audit span:before{
  left:9px !important;
  top:4px !important;
  width:22px !important;
  height:30px !important;
  border:4px solid #061923 !important;
  border-radius:4px !important;
}
.icon-audit span:after{
  left:15px !important;
  top:13px !important;
  width:13px !important;
  height:3px !important;
  background:#061923 !important;
  box-shadow:0 8px 0 #061923,0 16px 0 #061923 !important;
}

/* Print */
.icon-print span:before{
  left:5px !important;
  top:14px !important;
  width:28px !important;
  height:17px !important;
  border:4px solid #061923 !important;
  border-radius:5px !important;
}
.icon-print span:after{
  left:10px !important;
  top:2px !important;
  width:19px !important;
  height:13px !important;
  border:4px solid #061923 !important;
  border-bottom:0 !important;
  border-radius:3px !important;
  box-shadow:0 28px 0 -1px #061923 !important;
}


/* ═══════════════════════════════════════════════════════
   BEIGE CENTERED COLORED ICON FIX — icon-only change
   Beige inner medallion, colored SVG pictures, exact center.
═══════════════════════════════════════════════════════ */
.floating-badge{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
}
.floating-badge:after,
.floating-badge.blue:after,
.floating-badge.purple:after,
.floating-badge.teal:after,
.floating-badge.green:after,
.floating-badge.orange:after,
.floating-badge.red:after,
.floating-badge.amber:after,
.floating-badge.navy:after{
  content:'' !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  width:50px !important;
  height:50px !important;
  border-radius:50% !important;
  background:radial-gradient(circle at 35% 28%,#fffdf4 0%,#f7ead0 46%,#e8d2aa 100%) !important;
  box-shadow:inset 0 2px 5px rgba(255,255,255,.75), inset 0 -4px 8px rgba(120,82,12,.18) !important;
  z-index:1 !important;
}
.badge-svg{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  width:34px !important;
  height:34px !important;
  z-index:5 !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:5.2 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  color:#18a85d !important;
  filter:drop-shadow(0 3px 2px rgba(0,0,0,.30)) drop-shadow(0 -1px 0 rgba(255,255,255,.75)) !important;
}
.floating-badge.blue .badge-svg{color:#2563eb !important;}
.floating-badge.purple .badge-svg{color:#7c3aed !important;}
.floating-badge.teal .badge-svg{color:#0891b2 !important;}
.floating-badge.green .badge-svg{color:#0d9488 !important;}
.floating-badge.orange .badge-svg{color:#f97316 !important;}
.floating-badge.red .badge-svg{color:#dc2626 !important;}
.floating-badge.amber .badge-svg{color:#b77908 !important;}
.floating-badge.navy .badge-svg{color:#153d59 !important;}
.hero-badge .badge-svg{width:36px !important;height:36px !important;}
/* Disable previous CSS-drawn glyph rules when SVG icons are present. */
.floating-badge span{display:none !important;}


/* Requested fix: remove top bar and remove EDI circle only. Do not change anything else. */
.topbar{display:none !important;}
.page-shell{padding-top:34px !important;}
.edi-hero{padding-left:36px !important; margin-top:0 !important;}
.edi-hero .hero-badge{display:none !important;}

/* ═══════════════════════════════════════════════════════
   SURGICAL CLARITY FIX — Patient Locator / My Patients List only
   Keeps the inline panels crisp; no layout or function changes.
═══════════════════════════════════════════════════════ */
#ediInlinePanelHost,
#ediInlinePanelHost *{
  opacity:1 !important;
  filter:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  text-shadow:none !important;
}
#ediInlinePanelHost{
  background:#ffffff !important;
  color:#0f172a !important;
  isolation:isolate !important;
  position:relative !important;
  z-index:41 !important;
  -webkit-font-smoothing:antialiased !important;
  text-rendering:geometricPrecision !important;
}
#ediInlinePanelHost input,
#ediInlinePanelHost table,
#ediInlinePanelHost td,
#ediInlinePanelHost th,
#ediInlinePanelHost label,
#ediInlinePanelHost span,
#ediInlinePanelHost strong{
  color:inherit;
  -webkit-font-smoothing:antialiased !important;
  text-rendering:geometricPrecision !important;
}



/* ── pd-css ─────────────────────────────────────────────────── */

/* ════════════════════════════════════════════════════════════════
   GMHSphere — Patient Docket Stylesheet
   patient_docket.css
   
   NAMESPACE CONVENTION:
   · Docket UI classes   → keep existing names (group-*, section-*, etc.)
   · html_schema classes → gmh_hs_ prefix (form fields, tickets, toasts)
   ════════════════════════════════════════════════════════════════ */

/* ── 1. DESIGN TOKENS ───────────────────────────────────────── */
:root {
  /* Surface & text */
  --gmh-bg:           #f4f7fb;
  --gmh-card:         #ffffff;
  --gmh-text:         #1f2937;
  --gmh-muted:        #6b7280;
  --gmh-border:       #d7dee8;
  --gmh-shadow:       0 8px 24px rgba(15,23,42,0.08);

  /* Brand */
  --gmh-primary:      #174ea6;
  --gmh-primary-dark: #0f3a7a;
  --gmh-danger:       #b91c1c;
  --gmh-warning:      #b45309;
  --gmh-success:      #15803d;

  /* Group color tokens */
  --gmh-core-color:     #174ea6;  --gmh-core-light:    #dbeafe;  --gmh-core-dark:     #0f3a7a;
  --gmh-order-color:    #92400e;  --gmh-order-light:   #fef3c7;  --gmh-order-dark:    #78350f;
  --gmh-medproc-color:  #14532d;  --gmh-medproc-light: #dcfce7;  --gmh-medproc-dark:  #052e16;
  --gmh-close-color:    #581c87;  --gmh-close-light:   #f3e8ff;  --gmh-close-dark:    #3b0764;
  --gmh-doc-color:      #0f5298;  --gmh-doc-light:     #e8f0fe;  --gmh-doc-dark:      #093370;
  --gmh-cds-color:      #7e0019;  --gmh-cds-light:     #ffe8ec;  --gmh-cds-dark:      #5c0012;
  --gmh-ai-color:       #0e7490;  --gmh-ai-light:      #ecfeff;  --gmh-ai-dark:       #0a5a70;
  --gmh-support-color:  #1e3a5f;  --gmh-support-light: #e8f0fe;  --gmh-support-dark:  #132740;
}

/* ── 2. RESET ───────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: Arial, Helvetica, sans-serif; background: var(--gmh-bg); color: var(--gmh-text); }

/* ── 3. STICKY HEADER ───────────────────────────────────────── */
#gmh-sticky-header { position: sticky; top: 0; z-index: 2000; box-shadow: var(--gmh-shadow); }

/* ── 4. PATIENT BANNER ──────────────────────────────────────── */
.patient-banner {
  background: linear-gradient(135deg, var(--gmh-primary), var(--gmh-primary-dark));
  color: #fff; padding: 14px 18px;
}
.patient-topline { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; flex-wrap: wrap; }
.patient-name  { font-size: 1.35rem; font-weight: 800; margin-bottom: 4px; }
.patient-meta  { font-size: 0.88rem; opacity: .95; line-height: 1.6; }
.risk-box      { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
.risk-badge    { border-radius: 999px; padding: 5px 11px; font-size: 0.8rem; font-weight: 800; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.35); }
.risk-critical { background: #7f1d1d; }
.risk-warning  { background: #92400e; }
.risk-ok       { background: #14532d; }

/* ── 5. ENCOUNTER STRIP ─────────────────────────────────────── */
.encounter-strip {
  background: #0f3a7a; padding: 7px 18px; display: flex; gap: 18px; flex-wrap: wrap;
  align-items: center; font-size: 0.8rem; color: #bfdbfe;
  border-top: 1px solid rgba(255,255,255,.12);
}
.encounter-strip span { display: flex; align-items: center; gap: 5px; }
.encounter-strip i    { opacity: .7; }
.enc-highlight        { color: #fde68a; font-weight: 700; }

/* ── 6. WORKFLOW PROGRESS BAR ───────────────────────────────── */
.progress-bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 28px; background: #fff; border-bottom: 1px solid var(--gmh-border); overflow-x: auto;
}
.prog-step             { display: flex; align-items: center; flex: 1; min-width: 0; }
.prog-step:last-child  { flex: 0 0 auto; }
.prog-dot {
  width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center;
  justify-content: center; font-size: 0.82rem; font-weight: 800;
  border: 2px solid var(--gmh-border); background: #fff; color: var(--gmh-muted);
  cursor: pointer; transition: all .2s; flex-shrink: 0;
}
.prog-dot.done    { background: var(--gmh-success); border-color: var(--gmh-success); color: #fff; }
.prog-dot.active  { background: var(--gmh-primary); border-color: var(--gmh-primary); color: #fff; box-shadow: 0 0 0 4px #bfdbfe; }
.prog-dot.pending { background: #fff; border-color: var(--gmh-border); color: var(--gmh-muted); }
.prog-dot:hover   { transform: scale(1.12); }
.prog-label { font-size: 0.74rem; font-weight: 700; color: var(--gmh-muted); white-space: nowrap; margin: 0 5px; flex-shrink: 0; }
.prog-line  { flex: 1; height: 3px; background: var(--gmh-border); min-width: 12px; }
.prog-line.done { background: var(--gmh-success); }

/* ── 7. ENCOUNTER TIMELINE ──────────────────────────────────── */
.timeline-strip      { max-width: 1100px; margin: 14px auto 0; padding: 0 14px; }
.timeline-card       { background: #fff; border: 1px solid var(--gmh-border); border-radius: 12px; box-shadow: var(--gmh-shadow); padding: 14px 16px; }
.timeline-card-header{ display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.timeline-title      { font-size: 0.86rem; font-weight: 900; color: var(--gmh-primary-dark); display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.timeline-events     { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 3px; }
.timeline-event      { flex: 0 0 auto; min-width: 142px; border: 1px solid var(--gmh-border); border-radius: 10px; padding: 8px 10px; background: #fbfdff; font-size: 0.78rem; }
.timeline-event strong{ display: block; color: var(--gmh-primary-dark); margin-bottom: 3px; }
.timeline-event.done    { border-left: 4px solid var(--gmh-success); }
.timeline-event.active  { border-left: 4px solid var(--gmh-primary);  background: #eef4ff; }
.timeline-event.pending { border-left: 4px solid var(--gmh-warning);  background: #fffbeb; }

/* ── 8. STATUS RULES STRIP ──────────────────────────────────── */
.status-rule-strip { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.rule-chip  { background: #fff; border: 1px solid var(--gmh-border); border-radius: 999px; padding: 6px 10px; font-size: 0.76rem; font-weight: 800; box-shadow: 0 3px 10px rgba(15,23,42,.05); }
.rule-red    { color: var(--gmh-danger);  border-color: #fecaca; background: #fff7f7; }
.rule-amber  { color: var(--gmh-warning); border-color: #fed7aa; background: #fffaf0; }
.rule-green  { color: var(--gmh-success); border-color: #bbf7d0; background: #f7fff9; }
.rule-purple { color: #6b21a8;            border-color: #d8b4fe; background: #faf5ff; }

/* ── 9. EDI CONTAINER + GROUP BLOCKS ────────────────────────── */
.edi-container { max-width: 1100px; margin: 20px auto 60px; padding: 0 14px; }
.group-block   { margin-bottom: 10px; }

.group-header {
  display: flex; align-items: center; gap: 12px; padding: 11px 16px;
  border-radius: 10px 10px 0 0; cursor: pointer; user-select: none;
  font-weight: 900; font-size: 0.95rem; letter-spacing: 0.04em;
  text-transform: uppercase; transition: filter .15s; color: #fff;
}
.group-header:hover  { filter: brightness(1.06); }
.gh-icon    { font-size: 1.1rem; }
.gh-label   { flex: 1; }
.gh-count   { font-size: 0.75rem; font-weight: 700; opacity: .8; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; padding: 2px 9px; }
.gh-chevron { font-size: 0.85rem; transition: transform .25s; }
.group-block.collapsed .gh-chevron { transform: rotate(-90deg); }

/* Group header backgrounds — each group has exactly one gradient */
.group-core    .group-header { background: linear-gradient(135deg, var(--gmh-core-color),    var(--gmh-core-dark)); }
.group-orders  .group-header { background: linear-gradient(135deg, var(--gmh-order-color),   var(--gmh-order-dark)); }
.group-medproc .group-header { background: linear-gradient(135deg, var(--gmh-medproc-color), var(--gmh-medproc-dark)); }
.group-close   .group-header { background: linear-gradient(135deg, var(--gmh-close-color),   var(--gmh-close-dark)); }
.group-docmgmt .group-header { background: linear-gradient(135deg, var(--gmh-doc-color),     var(--gmh-doc-dark)); }
.group-cds     .group-header { background: linear-gradient(135deg, var(--gmh-cds-color),     var(--gmh-cds-dark)); }
.group-ai      .group-header { background: linear-gradient(135deg, var(--gmh-ai-color),      var(--gmh-ai-dark)); }
.group-support .group-header { background: linear-gradient(135deg, var(--gmh-support-color), var(--gmh-support-dark)); }

/* ── 10. SECTION LIST ───────────────────────────────────────── */
.section-list { border: 1px solid var(--gmh-border); border-top: none; border-radius: 0 0 10px 10px; overflow: hidden; background: var(--gmh-card); }
.group-block.collapsed .section-list { display: none; }

/* ── 11. SECTION CARD ───────────────────────────────────────── */
.section-card            { border-bottom: 1px solid var(--gmh-border); overflow: hidden; transition: box-shadow .2s; }
.section-card:last-child { border-bottom: none; }
.section-card.open       { background: #fafcff; }

/* Accent left-border per group — single rule per group using CSS custom prop */
.section-card.open                 { box-shadow: inset 3px 0 0 var(--gmh-primary); }
.group-orders  .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-order-color); }
.group-medproc .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-medproc-color); }
.group-close   .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-close-color); }
.group-docmgmt .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-doc-color); }
.group-cds     .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-cds-color); }
.group-ai      .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-ai-color); }
.group-support .section-card.open  { box-shadow: inset 3px 0 0 var(--gmh-support-color); }

/* ── 12. SECTION BUTTON ─────────────────────────────────────── */
.section-btn {
  width: 100%; border: 0; background: transparent; padding: 14px 16px; text-align: left;
  cursor: pointer; display: flex; align-items: center; gap: 12px;
  font-size: 0.95rem; font-weight: 700; color: var(--gmh-text); transition: background .15s;
}
.section-btn:hover           { background: #f0f6ff; }
.group-orders  .section-btn:hover { background: #fffbeb; }
.group-medproc .section-btn:hover { background: #f0fdf4; }
.group-close   .section-btn:hover { background: #faf5ff; }
.group-docmgmt .section-btn:hover { background: #f0f4ff; }
.group-cds     .section-btn:hover { background: var(--gmh-cds-light); }
.group-ai      .section-btn:hover { background: var(--gmh-ai-light); }
.group-support .section-btn:hover { background: #f0f4fb; }

/* ── 13. SECTION BUTTON ICON ────────────────────────────────── */
.sb-icon {
  width: 34px; height: 34px; border-radius: 8px; display: flex; align-items: center;
  justify-content: center; font-size: 0.95rem; flex-shrink: 0;
}
.group-core    .sb-icon { background: var(--gmh-core-light);    color: var(--gmh-core-color); }
.group-orders  .sb-icon { background: var(--gmh-order-light);   color: var(--gmh-order-color); }
.group-medproc .sb-icon { background: var(--gmh-medproc-light); color: var(--gmh-medproc-color); }
.group-close   .sb-icon { background: var(--gmh-close-light);   color: var(--gmh-close-color); }
.group-docmgmt .sb-icon { background: var(--gmh-doc-light);     color: var(--gmh-doc-color); }
.group-cds     .sb-icon { background: var(--gmh-cds-light);     color: var(--gmh-cds-color); }
.group-ai      .sb-icon { background: var(--gmh-ai-light);      color: var(--gmh-ai-color); }
.group-support .sb-icon { background: var(--gmh-support-light); color: var(--gmh-support-color); }

.sb-text      { flex: 1; min-width: 0; }
.sb-title     { display: block; font-weight: 700; font-size: 0.95rem; }
.sb-sub       { display: block; font-weight: 400; font-size: 0.78rem; color: var(--gmh-muted); margin-top: 1px; }
.sb-chevron   { font-size: 0.75rem; color: var(--gmh-muted); transition: transform .25s; flex-shrink: 0; }
.section-card.open .sb-chevron { transform: rotate(180deg); }

/* ── 14. STATUS PILLS ───────────────────────────────────────── */
/* Base */
.status-pill { font-size: 0.72rem; font-weight: 700; padding: 3px 9px; border-radius: 999px; white-space: nowrap; flex-shrink: 0; }
/* Amber (pending/warn share same palette) */
.pill-pending,
.pill-warn     { background: #fef3c7; color: #92400e; }
/* Blue (draft/info share same palette) */
.pill-draft,
.pill-info     { background: #dbeafe; color: #1e40af; }
/* Green (final/ok share same palette) */
.pill-final,
.pill-ok       { background: #dcfce7; color: #14532d; }
.pill-alert    { background: #fee2e2; color: #991b1b; }
.pill-verified { background: #f3e8ff; color: #6b21a8; }

/* ── 15. SECTION CONTENT ────────────────────────────────────── */
.section-content { display: none; padding: 0 16px 16px 62px; animation: gmhSlideDown .2s ease; }
.section-card.open .section-content { display: block; }

@keyframes gmhSlideDown {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.sc-desc { font-size: 0.85rem; color: var(--gmh-muted); margin-bottom: 14px; line-height: 1.55; padding-top: 8px; }

/* ── 16. MINI GRID + CARDS ──────────────────────────────────── */
.mini-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; margin-bottom: 14px; }
.mini-card { background: var(--gmh-bg); border: 1px solid var(--gmh-border); border-radius: 8px; padding: 10px 12px; font-size: 0.82rem; }
.mini-card strong { display: block; font-size: 0.75rem; color: var(--gmh-muted); margin-bottom: 3px; text-transform: uppercase; letter-spacing: 0.03em; }
.mini-card.warn  { border-left: 3px solid var(--gmh-warning); background: #fffbeb; }
.mini-card.alert { border-left: 3px solid var(--gmh-danger);  background: #fef2f2; }
.mini-card.good  { border-left: 3px solid var(--gmh-success); background: #f0fdf4; }

/* ── 17. ACTION ROW + BUTTONS ───────────────────────────────── */
.action-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.btn {
  border: 1px solid var(--gmh-border); background: var(--gmh-card); color: var(--gmh-text);
  border-radius: 7px; padding: 7px 14px; font-size: 0.82rem; font-weight: 700;
  cursor: pointer; transition: background .12s, border-color .12s;
}
.btn:hover           { background: #f0f6ff; border-color: #93c5fd; }
.btn-primary         { background: var(--gmh-primary);       color: #fff; border-color: var(--gmh-primary); }
.btn-primary:hover   { background: var(--gmh-primary-dark);  border-color: var(--gmh-primary-dark); }
.btn-order           { background: var(--gmh-order-color);   color: #fff; border-color: var(--gmh-order-color); }
.btn-order:hover     { background: var(--gmh-order-dark); }
.btn-medproc         { background: var(--gmh-medproc-color); color: #fff; border-color: var(--gmh-medproc-color); }
.btn-medproc:hover   { background: var(--gmh-medproc-dark); }
.btn-close-g         { background: var(--gmh-close-color);   color: #fff; border-color: var(--gmh-close-color); }
.btn-close-g:hover   { background: var(--gmh-close-dark); }
.btn-danger          { background: var(--gmh-danger);        color: #fff; border-color: var(--gmh-danger); }
.btn-danger:hover    { background: #991b1b; }

/* ── 18. UTILITY ELEMENTS ───────────────────────────────────── */
.edi-badge {
  display: inline-flex; align-items: center; gap: 5px; font-size: 0.72rem; font-weight: 700;
  padding: 3px 8px; border-radius: 5px; background: #e0e7ff; color: #3730a3;
  margin-bottom: 10px; letter-spacing: 0.04em;
}
.expand-btn {
  border: 1px solid #93c5fd; background: #fff; color: var(--gmh-primary); border-radius: 999px;
  width: 28px; height: 28px; font-size: 0.75rem; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: background .12s, transform .12s;
}
.expand-btn:hover { background: #dbeafe; transform: scale(1.1); }

/* ── 19. LOCK STATE ─────────────────────────────────────────── */
.section-card.locked .section-btn       { opacity: 0.63; cursor: not-allowed; }
.section-card.locked .section-btn:hover { background: transparent; }
.lock-note { margin: 10px 0 12px; padding: 9px 11px; border-radius: 9px; background: #fff7ed; border: 1px solid #fed7aa; color: #92400e; font-size: 0.82rem; font-weight: 800; }

/* ── 20. SIGNED-BY BLOCKS ───────────────────────────────────── */
.signed-by  { margin-top: 13px; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px; }
.signed-box { border: 1px dashed var(--gmh-border); background: #fff; border-radius: 9px; padding: 9px 10px; font-size: 0.78rem; }
.signed-box strong { display: block; color: var(--gmh-primary-dark); margin-bottom: 3px; text-transform: uppercase; letter-spacing: 0.03em; font-size: 0.72rem; }

/* ── 21. DRAG AND DROP ──────────────────────────────────────── */
.group-block.drag-enabled .group-header { cursor: grab; }
.group-block.drag-enabled.dragging      { opacity: .45; }
.group-block.drag-enabled.drag-over     { outline: 3px dashed var(--gmh-primary); outline-offset: 3px; }
.group-core .group-header               { cursor: pointer; }

/* ── 22. MODAL ──────────────────────────────────────────────── */
.modal-overlay  { position: fixed; inset: 0; z-index: 9999; background: rgba(15,23,42,.45); display: none; align-items: stretch; justify-content: center; padding: 16px; }
.modal-overlay.open { display: flex; }
.modal-window   { width: min(1200px,98vw); height: min(900px,96vh); background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 24px 70px rgba(15,23,42,.35); border: 2px solid var(--gmh-primary); display: flex; flex-direction: column; }
.modal-header   { background: linear-gradient(135deg, var(--gmh-primary), var(--gmh-primary-dark)); color: #fff; padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-weight: 900; font-size: 1rem; }
.modal-close    { border: 1px solid #fff; background: #7f1d1d; color: #fff; border-radius: 999px; width: 36px; height: 36px; font-size: 1rem; cursor: pointer; font-weight: 900; }
.modal-body     { flex: 1; overflow: auto; padding: 20px; background: #f8fbff; }
/* Patient context bar inside modal */
.modal-patient-card { background: #f1f5f9; border-bottom: 1px solid #e2e8f0; padding: 8px 20px; font-size: .8rem; color: #334155; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-family: 'Segoe UI', system-ui, sans-serif; }
.modal-patient-card strong { color: #1e293b; }
.mpc-sep { color: #94a3b8; font-weight: 400; }
.mpc-val { font-weight: 800; color: #1e293b; }

/* ── 23. PREVIEW & PRINT PANEL (PPP) ────────────────────────── */
#ppp-panel              { max-width: 1100px; margin: 0 auto 8px; display: block; }
#ppp-panel .ppp-body    { display: none; }
#ppp-panel.ppp-open .ppp-body { display: block; }

.ppp-card { background: #fff; border: 1px solid var(--gmh-border); border-top: none; border-radius: 10px; overflow: hidden; }
.ppp-hdr  {
  background: linear-gradient(135deg, var(--gmh-primary), var(--gmh-primary-dark));
  color: #fff; padding: 11px 16px; display: flex; align-items: center; gap: 12px;
  cursor: pointer; user-select: none; font-weight: 900; font-size: 0.95rem;
  letter-spacing: 0.04em; border-radius: 10px;
}
#ppp-panel.ppp-open .ppp-hdr { border-radius: 10px 10px 0 0; }
.ppp-ttl     { flex: 1; font-weight: 900; font-size: 0.95rem; }
.ppp-sub     { font-size: .75rem; opacity: .9; font-weight: 700; }
.ppp-hdr-chev{ font-size: 1rem; transition: transform .25s; flex-shrink: 0; margin-left: auto; }
#ppp-panel.ppp-open .ppp-hdr-chev { transform: rotate(90deg); }
.ppp-body    { padding: 18px 20px 22px; }

.ppp-all-row { display: flex; align-items: center; gap: 10px; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 9px; padding: 11px 14px; margin-bottom: 16px; cursor: pointer; }
.ppp-all-row input { width: 18px; height: 18px; accent-color: var(--gmh-primary); cursor: pointer; }
.ppp-all-row label { font-weight: 900; font-size: .95rem; color: var(--gmh-primary); cursor: pointer; }
.ppp-cnt     { margin-left: auto; font-size: .78rem; font-weight: 700; color: var(--gmh-muted); }

.ppp-groups  { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.ppp-grp     { border: 1px solid var(--gmh-border); border-radius: 9px; overflow: hidden; }
.ppp-ghdr    { display: flex; align-items: center; gap: 10px; padding: 9px 13px; background: #f8fafc; border-bottom: 1px solid transparent; cursor: pointer; }
.ppp-grp.ppp-x-expanded .ppp-ghdr { border-bottom-color: var(--gmh-border); }
.ppp-ghdr input { width: 16px; height: 16px; accent-color: var(--gmh-primary); cursor: pointer; flex-shrink: 0; }
.ppp-gicon { width: 28px; height: 28px; border-radius: 7px; display: flex; align-items: center; justify-content: center; font-size: .82rem; flex-shrink: 0; }
.ppp-gname { flex: 1; font-weight: 800; font-size: .88rem; }
.ppp-chev  { font-size: .72rem; color: var(--gmh-muted); transition: transform .2s; }
.ppp-grp.ppp-x-expanded .ppp-chev { transform: rotate(180deg); }

/* PPP group color bands — single rule each */
.ppp-g-core    .ppp-ghdr { border-left: 4px solid var(--gmh-core-color); }
.ppp-g-core    .ppp-gicon { background: var(--gmh-core-light); color: var(--gmh-core-color); }
.ppp-g-orders  .ppp-ghdr { border-left: 4px solid var(--gmh-order-color); }
.ppp-g-orders  .ppp-gicon { background: var(--gmh-order-light); color: var(--gmh-order-color); }
.ppp-g-medproc .ppp-ghdr { border-left: 4px solid var(--gmh-medproc-color); }
.ppp-g-medproc .ppp-gicon { background: var(--gmh-medproc-light); color: var(--gmh-medproc-color); }
.ppp-g-ai      .ppp-ghdr { border-left: 4px solid var(--gmh-primary); }
.ppp-g-ai      .ppp-gicon { background: #e0e7ff; color: #3730a3; }
.ppp-g-close   .ppp-ghdr { border-left: 4px solid var(--gmh-close-color); }
.ppp-g-close   .ppp-gicon { background: var(--gmh-close-light); color: var(--gmh-close-color); }
.ppp-g-cds     .ppp-ghdr { border-left: 4px solid var(--gmh-cds-color); }
.ppp-g-cds     .ppp-gicon { background: var(--gmh-cds-light); color: var(--gmh-cds-color); }
.ppp-g-docs    .ppp-ghdr { border-left: 4px solid var(--gmh-doc-color); }
.ppp-g-docs    .ppp-gicon { background: var(--gmh-doc-light); color: var(--gmh-doc-color); }
.ppp-g-support .ppp-ghdr { border-left: 4px solid var(--gmh-support-color); }
.ppp-g-support .ppp-gicon { background: var(--gmh-support-light); color: var(--gmh-support-color); }

.ppp-secs { display: none; padding: 4px 12px 10px 52px; }
.ppp-grp.ppp-x-expanded .ppp-secs { display: block; }
.ppp-srow { display: flex; align-items: center; gap: 9px; padding: 6px 0; border-bottom: 1px solid #f1f5f9; cursor: pointer; }
.ppp-srow:last-child { border-bottom: none; }
.ppp-srow input { width: 15px; height: 15px; accent-color: var(--gmh-primary); cursor: pointer; }
.ppp-srow label { flex: 1; font-size: .85rem; font-weight: 700; color: var(--gmh-text); cursor: pointer; }

/* Section status pills in PPP (collapsed — amber/green/blue share palette with status-pill above) */
.ppp-spill { font-size: .68rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.sp-final, .sp-ok    { background: #dcfce7; color: #15803d; }
.sp-draft            { background: #dbeafe; color: #1e40af; }
.sp-pending, .sp-warn{ background: #fef3c7; color: #92400e; }
.sp-alert            { background: #fef2f2; color: #b91c1c; }
.sp-info             { background: #e0e7ff; color: #3730a3; }
.sp-muted            { background: #f1f5f9; color: #6b7280; }

.ppp-actions  { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding-top: 14px; border-top: 1px solid var(--gmh-border); }
.ppp-gen-btn  { background: var(--gmh-primary); color: #fff; border: none; border-radius: 8px; padding: 10px 22px; font-size: .9rem; font-weight: 800; cursor: pointer; display: flex; align-items: center; gap: 8px; }
.ppp-gen-btn:hover    { background: var(--gmh-primary-dark); }
.ppp-gen-btn:disabled { opacity: .4; cursor: not-allowed; }
.ppp-none-btn { border: 1px solid var(--gmh-border); background: #fff; color: var(--gmh-muted); border-radius: 8px; padding: 9px 15px; font-size: .85rem; font-weight: 700; cursor: pointer; }
.ppp-none-btn:hover   { background: #f8fafc; }
#ppp-sel-label { margin-left: auto; font-size: .82rem; font-weight: 700; color: var(--gmh-muted); }

/* ── 24. HTML_SCHEMA FORM CLASSES (gmh_hs_ namespace) ──────── */
/* These classes are injected by html_schema form definitions
   rendered inside .modal-body. Prefix: gmh_hs_               */

.gmh_hs_form { background: #fff; border: 1px solid var(--gmh-border); border-radius: 10px; padding: 16px 18px; margin-top: 12px; }
.gmh_hs_form_grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin-bottom: 12px; }

.gmh_hs_field { display: flex; flex-direction: column; gap: 4px; }
.gmh_hs_field label    { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--gmh-muted); }
.gmh_hs_field input,
.gmh_hs_field select,
.gmh_hs_field textarea { border: 1px solid #cbd5e1; border-radius: 7px; padding: 8px 10px; font-size: .88rem; font-family: inherit; }
.gmh_hs_field input:focus,
.gmh_hs_field select:focus,
.gmh_hs_field textarea:focus { outline: 2px solid var(--gmh-primary); border-color: var(--gmh-primary); }
.gmh_hs_field.full { grid-column: 1 / -1; }

.gmh_hs_priority_bar { display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap; }
.gmh_hs_pri { border: 2px solid var(--gmh-border); border-radius: 8px; padding: 6px 14px; font-size: .78rem; font-weight: 800; cursor: pointer; background: #fff; color: var(--gmh-muted); transition: all .12s; }
.gmh_hs_pri.sel-routine   { background: #dcfce7; border-color: var(--gmh-success); color: var(--gmh-success); }
.gmh_hs_pri.sel-urgent    { background: #fef3c7; border-color: var(--gmh-warning); color: var(--gmh-warning); }
.gmh_hs_pri.sel-emergency { background: #fef2f2; border-color: var(--gmh-danger);  color: var(--gmh-danger); }

.gmh_hs_ticket_list  { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.gmh_hs_ticket_item  { background: #fff; border: 1px solid var(--gmh-border); border-radius: 9px; padding: 11px 14px; display: flex; align-items: center; gap: 12px; }
.gmh_hs_tick_status  { font-size: .72rem; font-weight: 800; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.gmh_hs_tick_open     { background: #fef3c7; color: #92400e; }
.gmh_hs_tick_progress { background: #dbeafe; color: #1e40af; }
.gmh_hs_tick_resolved { background: #dcfce7; color: #15803d; }

.gmh_hs_toast       { display: none; margin-top: 10px; background: #dcfce7; border: 1px solid #86efac; color: #14532d; border-radius: 8px; padding: 10px 14px; font-size: .85rem; font-weight: 700; align-items: center; gap: 8px; }
.gmh_hs_toast.show  { display: flex; }

.gmh_hs_fhir_panel  { background: #0f172a; color: #94a3b8; border-radius: 10px; padding: 14px; font-family: Consolas, 'Courier New', monospace; font-size: .78rem; line-height: 1.8; overflow: auto; max-height: 280px; margin-top: 10px; }

/* ── 25. RESPONSIVE ─────────────────────────────────────────── */
@media (max-width: 640px) {
  .patient-meta    { font-size: 0.78rem; }
  .section-content { padding-left: 16px; }
  .mini-grid       { grid-template-columns: 1fr; }
}

/* ── 26. PRINT ──────────────────────────────────────────────── */
@media print {
  .encounter-strip button, .expand-btn, .modal-overlay,
  .btn, .sb-chevron, .gh-chevron { display: none !important; }
  body           { background: #fff !important; color: #000 !important; }
  .patient-banner{ position: static !important; background: #fff !important; color: #000 !important; border-bottom: 2px solid #000 !important; }
  .section-content                    { display: block !important; }
  .group-block.collapsed .section-list{ display: block !important; }
}

/* ── 27. IPAD / PDF OVERFLOW + PRINT SAFETY OVERRIDES ─────────
   Added only as end-of-file overrides.
   Purpose:
   - Prevent iPad/WebKit from clipping docket to half screen.
   - Prevent PDF/print from being limited by hidden/scroll containers.
   - Do not change normal desktop layout.
   ───────────────────────────────────────────────────────────── */

/* iPad / tablet scrolling safety */
@media screen and (max-width: 1180px) {
  html,
  body {
    min-height: 100%;
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .edi-container,
  .timeline-strip,
  #ppp-panel {
    max-width: 100%;
  }

  .modal-overlay.open {
    align-items: flex-start !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .modal-window {
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
  }

  .modal-body {
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
}

/* PDF / browser print safety */
@page {
  size: auto;
  margin: 0.45in;
}

@media print {
  html,
  body {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    color: #000 !important;
  }

  #gmh-sticky-header {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    box-shadow: none !important;
  }

  .edi-container,
  .timeline-strip,
  #ppp-panel,
  .ppp-card,
  .group-block,
  .section-list,
  .section-card,
  .section-content,
  .modal-window,
  .modal-body,
  .gmh_hs_form {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .section-list,
  .section-card {
    overflow: visible !important;
  }

  .section-content {
    display: block !important;
    padding-left: 0 !important;
    animation: none !important;
  }

  .section-card,
  .group-block,
  .mini-card,
  .signed-box,
  .gmh_hs_form {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .progress-bar,
  .timeline-strip,
  #ppp-panel,
  .action-row,
  .btn,
  .expand-btn,
  .modal-overlay,
  .sb-chevron,
  .gh-chevron {
    display: none !important;
  }

  .patient-banner,
  .encounter-strip {
    position: static !important;
    color: #000 !important;
    background: #fff !important;
    border-bottom: 1px solid #000 !important;
  }

  .group-header {
    color: #000 !important;
    background: #fff !important;
    border: 1px solid #000 !important;
  }

  .section-btn {
    color: #000 !important;
    background: #fff !important;
    border-bottom: 1px solid #ccc !important;
  }

  .group-block.collapsed .section-list {
    display: block !important;
  }
}



/* ── hs-css ─────────────────────────────────────────────────── */

/* ════════════════════════════════════════════════════════════════
   GMHSphere — HTML Schema Shared Stylesheet
   patient_docket_gmh_hs.css

   PURPOSE
   ───────
   This file contains ALL shared CSS for html_schema forms rendered
   inside the docket modal (.modal-body). It is loaded ONCE by the
   browser and cached.

   Every html_schema record in objects_definitions MUST remove its
   inline <style> block entirely. This file replaces all of them.

   NAMESPACE: gmh_hs_  (GMHSphere HTML Schema)

   DEPLOY TO: /static/patient_docket_gmh_hs.css
   REFERENCE IN: patient_docket.html  (one <link> tag)
   ════════════════════════════════════════════════════════════════ */


/* ── 1. DESIGN TOKENS ───────────────────────────────────────────
   These mirror the docket tokens so schema forms stay visually
   consistent with the rest of GMHSphere. Only the gmh_hs_ prefix
   is used here — do NOT redeclare :root tokens in any html_schema.
──────────────────────────────────────────────────────────────── */
:root {
  /* Brand */
  --gmh-hs-primary:      #174ea6;
  --gmh-hs-primary-dark: #0f3a7a;
  --gmh-hs-primary-light:#dbeafe;

  /* Semantic */
  --gmh-hs-success:      #15803d;
  --gmh-hs-success-light:#dcfce7;
  --gmh-hs-warning:      #b45309;
  --gmh-hs-warning-light:#fef3c7;
  --gmh-hs-danger:       #b91c1c;
  --gmh-hs-danger-light: #fee2e2;
  --gmh-hs-info:         #1e40af;
  --gmh-hs-info-light:   #dbeafe;
  --gmh-hs-purple:       #6b21a8;
  --gmh-hs-purple-light: #f3e8ff;

  /* Surface */
  --gmh-hs-bg:           #f8fafc;
  --gmh-hs-card:         #ffffff;
  --gmh-hs-border:       #e2e8f0;
  --gmh-hs-border-focus: #174ea6;

  /* Text */
  --gmh-hs-text:         #1f2937;
  --gmh-hs-text-strong:  #0f172a;
  --gmh-hs-muted:        #64748b;
  --gmh-hs-label:        #374151;

  /* Spacing */
  --gmh-hs-radius:       8px;
  --gmh-hs-radius-sm:    5px;
  --gmh-hs-radius-lg:    12px;
  --gmh-hs-shadow:       0 2px 8px rgba(15,23,42,.08);
}


/* ── 2. FORM SHELL ──────────────────────────────────────────────
   Wraps the entire html_schema form injected into .modal-body
──────────────────────────────────────────────────────────────── */
.gmh_hs_form {
  font-family: 'Segoe UI', system-ui, Arial, sans-serif;
  padding: 24px 28px 32px;
  background: var(--gmh-hs-bg);
  min-height: 100%;
  color: var(--gmh-hs-text);
}

/* Form title / section headings inside a schema */
.gmh_hs_form h2,
.gmh_hs_title {
  font-size: 1rem;
  font-weight: 800;
  color: var(--gmh-hs-primary-dark);
  margin-bottom: 18px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--gmh-hs-primary-light);
  display: flex;
  align-items: center;
  gap: 8px;
}
.gmh_hs_section {
  margin-bottom: 24px;
}
.gmh_hs_section_title {
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gmh-hs-muted);
  margin-bottom: 10px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--gmh-hs-border);
}


/* ── 3. GRID LAYOUTS ────────────────────────────────────────────
   Responsive field grids used inside html_schema forms
──────────────────────────────────────────────────────────────── */
.gmh_hs_grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}
.gmh_hs_grid_2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-bottom: 16px;
}
.gmh_hs_grid_3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 16px;
}
.gmh_hs_grid_4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 16px;
}
/* Span helpers */
.gmh_hs_col_full  { grid-column: 1 / -1; }
.gmh_hs_col_2     { grid-column: span 2; }
.gmh_hs_col_3     { grid-column: span 3; }


/* ── 4. FORM FIELDS ─────────────────────────────────────────────
   Individual field containers, labels, inputs
──────────────────────────────────────────────────────────────── */
.gmh_hs_field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.gmh_hs_field label,
.gmh_hs_label {
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--gmh-hs-label);
}
.gmh_hs_field input,
.gmh_hs_field select,
.gmh_hs_field textarea,
.gmh_hs_input,
.gmh_hs_select,
.gmh_hs_textarea {
  border: 1.5px solid var(--gmh-hs-border);
  border-radius: var(--gmh-hs-radius);
  padding: 9px 11px;
  font-size: 0.88rem;
  font-family: inherit;
  color: var(--gmh-hs-text);
  background: var(--gmh-hs-card);
  transition: border-color 0.15s, box-shadow 0.15s;
  width: 100%;
}
.gmh_hs_field input:focus,
.gmh_hs_field select:focus,
.gmh_hs_field textarea:focus,
.gmh_hs_input:focus,
.gmh_hs_select:focus,
.gmh_hs_textarea:focus {
  outline: none;
  border-color: var(--gmh-hs-border-focus);
  box-shadow: 0 0 0 3px rgba(23,78,166,.12);
}
.gmh_hs_field input[readonly],
.gmh_hs_input[readonly] {
  background: #f1f5f9;
  color: var(--gmh-hs-muted);
  cursor: default;
}
.gmh_hs_field input[disabled],
.gmh_hs_input[disabled] {
  background: #f8fafc;
  color: #94a3b8;
  cursor: not-allowed;
  opacity: 0.7;
}
.gmh_hs_field textarea,
.gmh_hs_textarea {
  min-height: 88px;
  resize: vertical;
  line-height: 1.55;
}
.gmh_hs_field_hint {
  font-size: 0.72rem;
  color: var(--gmh-hs-muted);
  margin-top: 2px;
}
.gmh_hs_field_error {
  font-size: 0.72rem;
  color: var(--gmh-hs-danger);
  font-weight: 700;
  margin-top: 2px;
}
.gmh_hs_field.required label::after,
.gmh_hs_label.required::after {
  content: ' *';
  color: var(--gmh-hs-danger);
}


/* ── 5. PRIORITY / OPTION BAR ───────────────────────────────────
   Horizontal button-toggle row for priority, urgency, status
──────────────────────────────────────────────────────────────── */
.gmh_hs_priority_bar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.gmh_hs_pri {
  border: 2px solid var(--gmh-hs-border);
  border-radius: var(--gmh-hs-radius);
  padding: 7px 16px;
  font-size: 0.78rem;
  font-weight: 800;
  cursor: pointer;
  background: var(--gmh-hs-card);
  color: var(--gmh-hs-muted);
  transition: all 0.12s;
  user-select: none;
}
.gmh_hs_pri:hover                { background: #f1f5f9; }
.gmh_hs_pri.sel-routine          { background: var(--gmh-hs-success-light); border-color: var(--gmh-hs-success);  color: var(--gmh-hs-success); }
.gmh_hs_pri.sel-urgent           { background: var(--gmh-hs-warning-light); border-color: var(--gmh-hs-warning);  color: var(--gmh-hs-warning); }
.gmh_hs_pri.sel-emergency,
.gmh_hs_pri.sel-stat             { background: var(--gmh-hs-danger-light);  border-color: var(--gmh-hs-danger);   color: var(--gmh-hs-danger); }


/* ── 6. MINI INFO CARDS ─────────────────────────────────────────
   Read-only summary cards inside schema forms (vitals display, etc.)
──────────────────────────────────────────────────────────────── */
.gmh_hs_cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.gmh_hs_card {
  background: var(--gmh-hs-card);
  border: 1px solid var(--gmh-hs-border);
  border-radius: var(--gmh-hs-radius);
  padding: 10px 12px;
  font-size: 0.82rem;
}
.gmh_hs_card strong {
  display: block;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gmh-hs-muted);
  margin-bottom: 4px;
}
.gmh_hs_card.warn  { border-left: 3px solid var(--gmh-hs-warning); background: var(--gmh-hs-warning-light); }
.gmh_hs_card.alert { border-left: 3px solid var(--gmh-hs-danger);  background: var(--gmh-hs-danger-light); }
.gmh_hs_card.good  { border-left: 3px solid var(--gmh-hs-success); background: var(--gmh-hs-success-light); }
.gmh_hs_card.info  { border-left: 3px solid var(--gmh-hs-primary); background: var(--gmh-hs-primary-light); }


/* ── 7. BUTTONS ─────────────────────────────────────────────────
   Action buttons inside html_schema forms
──────────────────────────────────────────────────────────────── */
.gmh_hs_action_row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--gmh-hs-border);
}
.gmh_hs_btn {
  border: 1.5px solid var(--gmh-hs-border);
  background: var(--gmh-hs-card);
  color: var(--gmh-hs-text);
  border-radius: var(--gmh-hs-radius);
  padding: 9px 18px;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: background 0.12s, border-color 0.12s;
}
.gmh_hs_btn:hover                 { background: #f0f6ff; border-color: #93c5fd; }
.gmh_hs_btn.primary               { background: var(--gmh-hs-primary);       color: #fff; border-color: var(--gmh-hs-primary); }
.gmh_hs_btn.primary:hover         { background: var(--gmh-hs-primary-dark); }
.gmh_hs_btn.success               { background: var(--gmh-hs-success);       color: #fff; border-color: var(--gmh-hs-success); }
.gmh_hs_btn.success:hover         { background: #166534; }
.gmh_hs_btn.danger                { background: var(--gmh-hs-danger);        color: #fff; border-color: var(--gmh-hs-danger); }
.gmh_hs_btn.danger:hover          { background: #991b1b; }
.gmh_hs_btn.warning               { background: var(--gmh-hs-warning);       color: #fff; border-color: var(--gmh-hs-warning); }
.gmh_hs_btn.warning:hover         { background: #92400e; }
.gmh_hs_btn:disabled              { opacity: 0.45; cursor: not-allowed; }

/* ── Button icon colors ──────────────────────────────────────── */
/* Post Information — green-600 icon */
.gmh_hs_btn_primary i,
.gmh_hs_btn.gmh_hs_btn_primary i   { color: #16a34a; }

/* Save for Later — autumn orange icon */
.gmh_hs_btn_secondary i,
.gmh_hs_btn.gmh_hs_btn_secondary i { color: #c2410c; }


/* ── 8. STATUS PILLS ────────────────────────────────────────────
   Inline status badges used inside schema form displays
──────────────────────────────────────────────────────────────── */
.gmh_hs_pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.72rem;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: 999px;
  white-space: nowrap;
}
.gmh_hs_pill.pending,
.gmh_hs_pill.warn      { background: var(--gmh-hs-warning-light); color: var(--gmh-hs-warning); }
.gmh_hs_pill.final,
.gmh_hs_pill.ok        { background: var(--gmh-hs-success-light); color: var(--gmh-hs-success); }
.gmh_hs_pill.draft,
.gmh_hs_pill.info      { background: var(--gmh-hs-info-light);    color: var(--gmh-hs-info); }
.gmh_hs_pill.alert,
.gmh_hs_pill.critical  { background: var(--gmh-hs-danger-light);  color: var(--gmh-hs-danger); }
.gmh_hs_pill.verified  { background: var(--gmh-hs-purple-light);  color: var(--gmh-hs-purple); }
.gmh_hs_pill.muted     { background: #f1f5f9;                     color: #6b7280; }


/* ── 9. TICKET LIST ─────────────────────────────────────────────
   Help desk and support ticket displays inside schema
──────────────────────────────────────────────────────────────── */
.gmh_hs_ticket_list  {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 14px;
}
.gmh_hs_ticket_item  {
  background: var(--gmh-hs-card);
  border: 1px solid var(--gmh-hs-border);
  border-radius: var(--gmh-hs-radius);
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.85rem;
}
.gmh_hs_ticket_item:hover        { background: #f8faff; }
.gmh_hs_tick_status  {
  font-size: 0.72rem;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: 999px;
  white-space: nowrap;
  flex-shrink: 0;
}
.gmh_hs_tick_open     { background: var(--gmh-hs-warning-light); color: var(--gmh-hs-warning); }
.gmh_hs_tick_progress { background: var(--gmh-hs-info-light);    color: var(--gmh-hs-info); }
.gmh_hs_tick_resolved { background: var(--gmh-hs-success-light); color: var(--gmh-hs-success); }


/* ── 10. TOAST / INLINE ALERTS ──────────────────────────────────
   Submission confirmations and inline alerts inside schema forms
──────────────────────────────────────────────────────────────── */
.gmh_hs_toast {
  display: none;
  margin-top: 14px;
  border-radius: var(--gmh-hs-radius);
  padding: 12px 16px;
  font-size: 0.85rem;
  font-weight: 700;
  align-items: center;
  gap: 10px;
}
.gmh_hs_toast.show       { display: flex; }
.gmh_hs_toast.success    { background: var(--gmh-hs-success-light); border: 1px solid #86efac;  color: #14532d; }
.gmh_hs_toast.warning    { background: var(--gmh-hs-warning-light); border: 1px solid #fde68a;  color: #92400e; }
.gmh_hs_toast.danger     { background: var(--gmh-hs-danger-light);  border: 1px solid #fca5a5;  color: #991b1b; }
.gmh_hs_toast.info       { background: var(--gmh-hs-info-light);    border: 1px solid #93c5fd;  color: #1e40af; }


/* ── 11. FHIR / CODE PANELS ─────────────────────────────────────
   Monospace panels for FHIR bundles, JSON payloads, HL7 output
──────────────────────────────────────────────────────────────── */
.gmh_hs_fhir_panel,
.gmh_hs_code_panel {
  background: #0f172a;
  color: #94a3b8;
  border-radius: var(--gmh-hs-radius);
  padding: 16px;
  font-family: Consolas, 'Courier New', monospace;
  font-size: 0.78rem;
  line-height: 1.8;
  overflow: auto;
  max-height: 320px;
  margin-top: 12px;
}
.gmh_hs_fhir_panel .key,
.gmh_hs_code_panel .key   { color: #7dd3fc; }
.gmh_hs_fhir_panel .val,
.gmh_hs_code_panel .val   { color: #86efac; }
.gmh_hs_fhir_panel .str,
.gmh_hs_code_panel .str   { color: #fde68a; }


/* ── 12. SIGNATURE / ACCOUNTABILITY BLOCKS ──────────────────────
   Signed-by panels at the bottom of clinical schema forms
──────────────────────────────────────────────────────────────── */
.gmh_hs_signed_row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--gmh-hs-border);
}
.gmh_hs_signed_box {
  border: 1px dashed var(--gmh-hs-border);
  background: var(--gmh-hs-card);
  border-radius: var(--gmh-hs-radius);
  padding: 10px 12px;
  font-size: 0.8rem;
}
.gmh_hs_signed_box strong {
  display: block;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gmh-hs-primary-dark);
  margin-bottom: 4px;
}


/* ── 13. ICD-10 / CODE LOOKUP ROW ───────────────────────────────
   Inline diagnosis/code display rows in clinical forms
──────────────────────────────────────────────────────────────── */
.gmh_hs_icd_row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: var(--gmh-hs-card);
  border: 1px solid var(--gmh-hs-border);
  border-radius: var(--gmh-hs-radius);
  margin-bottom: 8px;
  font-size: 0.85rem;
}
.gmh_hs_icd_code {
  font-family: Consolas, 'Courier New', monospace;
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--gmh-hs-primary);
  background: var(--gmh-hs-primary-light);
  padding: 3px 9px;
  border-radius: var(--gmh-hs-radius-sm);
  white-space: nowrap;
  flex-shrink: 0;
}
.gmh_hs_icd_desc { flex: 1; color: var(--gmh-hs-text); }
.gmh_hs_icd_type { font-size: 0.72rem; color: var(--gmh-hs-muted); flex-shrink: 0; }


/* ── 14. VITALS DISPLAY GRID ────────────────────────────────────
   Specific layout for vitals values in VITALS schema
──────────────────────────────────────────────────────────────── */
.gmh_hs_vitals_grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.gmh_hs_vital {
  background: var(--gmh-hs-card);
  border: 1px solid var(--gmh-hs-border);
  border-radius: var(--gmh-hs-radius);
  padding: 12px;
  text-align: center;
}
.gmh_hs_vital .label {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--gmh-hs-muted);
  margin-bottom: 6px;
  display: block;
}
.gmh_hs_vital .value {
  font-size: 1.15rem;
  font-weight: 900;
  color: var(--gmh-hs-text-strong);
  display: block;
}
.gmh_hs_vital .unit  {
  font-size: 0.72rem;
  color: var(--gmh-hs-muted);
  display: block;
  margin-top: 2px;
}
.gmh_hs_vital.warn   { border-color: var(--gmh-hs-warning); background: var(--gmh-hs-warning-light); }
.gmh_hs_vital.alert  { border-color: var(--gmh-hs-danger);  background: var(--gmh-hs-danger-light); }
.gmh_hs_vital.good   { border-color: var(--gmh-hs-success); background: var(--gmh-hs-success-light); }


/* ── 15. TWO-ID VERIFICATION BLOCK ─────────────────────────────
   MAR two-patient-identifier safety check display
──────────────────────────────────────────────────────────────── */
.gmh_hs_two_id {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-radius: var(--gmh-hs-radius);
  border: 2px solid var(--gmh-hs-border);
  margin-bottom: 16px;
  font-size: 0.88rem;
  font-weight: 700;
  background: var(--gmh-hs-card);
}
.gmh_hs_two_id.verified   { border-color: var(--gmh-hs-success); background: var(--gmh-hs-success-light); color: #14532d; }
.gmh_hs_two_id.unverified { border-color: var(--gmh-hs-danger);  background: var(--gmh-hs-danger-light);  color: #991b1b; }
.gmh_hs_two_id i { font-size: 1.2rem; flex-shrink: 0; }


/* ── 16. LOCK / DEPENDENCY NOTE ────────────────────────────────
   Shown when a schema form is blocked by a prerequisite
──────────────────────────────────────────────────────────────── */
.gmh_hs_lock_note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 16px;
  padding: 12px 14px;
  border-radius: var(--gmh-hs-radius);
  background: var(--gmh-hs-warning-light);
  border: 1px solid #fde68a;
  color: #92400e;
  font-size: 0.85rem;
  font-weight: 700;
}
.gmh_hs_lock_note i { font-size: 1.1rem; flex-shrink: 0; margin-top: 1px; }


/* ── 17. AI / ASSISTIVE BLOCK ───────────────────────────────────
   AI synopsis and assistive content display
──────────────────────────────────────────────────────────────── */
.gmh_hs_ai_card {
  background: #ecfeff;
  border: 1px solid #a5f3fc;
  border-left: 4px solid #0e7490;
  border-radius: var(--gmh-hs-radius);
  padding: 14px 16px;
  margin-bottom: 14px;
  font-size: 0.88rem;
}
.gmh_hs_ai_card strong {
  display: block;
  color: #0a5a70;
  font-weight: 800;
  margin-bottom: 6px;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.gmh_hs_ai_disclaimer {
  font-size: 0.72rem;
  color: var(--gmh-hs-muted);
  font-style: italic;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--gmh-hs-border);
}

.gmh_hs_actions {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
}

.gmh_hs_btn_clear {
    background:#ffffff;
    color:#7f1d1d;
    border:2px solid #7f1d1d;
}

.gmh_hs_btn.gmh_hs_btn_clear {
    margin-left: auto;
}

.gmh_hs_btn_clear i {
    color:#7f1d1d;
}

.gmh_hs_btn_warning {
    background:#ffffff;
    color:#7f1d1d;
    border:2px solid #7f1d1d;
}

.gmh_hs_btn.gmh_hs_btn_warning {
    margin-left: auto;
}

.gmh_hs_btn_warning i {
    color:#7f1d1d;
}

.gmh_hs_pain_wrap {
    display:flex;
    align-items:center;
    gap:14px;
    padding:10px 0 4px;
}

.gmh_hs_pain_track {
    flex:1;
    display:flex;
    flex-direction:column;
    gap:4px;
}

.gmh_hs_pain_slider {
    -webkit-appearance:none;
    appearance:none;
    width:100%;
    height:8px;
    border-radius:999px;
    outline:none;
    cursor:pointer;
    background:linear-gradient(
        to right,
        #15803d 0%,
        #15803d 30%,
        #b45309 30%,
        #b45309 60%,
        #c2410c 60%,
        #c2410c 80%,
        #b91c1c 80%,
        #b91c1c 100%
    );
}

.gmh_hs_pain_slider::-webkit-slider-thumb {
    -webkit-appearance:none;
    width:22px;
    height:22px;
    border-radius:50%;
    background:#ffffff;
    border:3px solid #174ea6;
    box-shadow:0 2px 6px rgba(0,0,0,.2);
    cursor:pointer;
}

.gmh_hs_pain_slider::-moz-range-thumb {
    width:22px;
    height:22px;
    border-radius:50%;
    background:#ffffff;
    border:3px solid #174ea6;
    box-shadow:0 2px 6px rgba(0,0,0,.2);
    cursor:pointer;
}

.gmh_hs_pain_ticks {
    display:flex;
    justify-content:space-between;
    padding:0 3px;
    font-size:.65rem;
    color:#94a3b8;
    font-weight:700;
}

.gmh_hs_pain_display {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:74px;
    height:58px;
    border-radius:10px;
    border:2px solid #e2e8f0;
    background:#f8fafc;
    padding:4px 8px;
}

.gmh_hs_pain_display.pain-none,
.gmh_hs_pain_display.pain-mild {
    background:#f0fdf4;
    border-color:#86efac;
}

.gmh_hs_pain_display.pain-mod {
    background:#fffbeb;
    border-color:#fcd34d;
}

.gmh_hs_pain_display.pain-severe {
    background:#fff7ed;
    border-color:#fdba74;
}

.gmh_hs_pain_display.pain-worst {
    background:#fef2f2;
    border-color:#fca5a5;
}

.gmh_hs_pain_num {
    font-size:1.5rem;
    font-weight:900;
    line-height:1;
    color:#1f2937;
}

.gmh_hs_pain_label {
    font-size:.65rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:#64748b;
    white-space:nowrap;
    margin-top:2px;
}

.pain-none .gmh_hs_pain_num,
.pain-mild .gmh_hs_pain_num {
    color:#15803d;
}

.pain-mod .gmh_hs_pain_num {
    color:#b45309;
}

.pain-severe .gmh_hs_pain_num {
    color:#c2410c;
}

.pain-worst .gmh_hs_pain_num {
    color:#b91c1c;
}

/* ── 18. RESPONSIVE ─────────────────────────────────────────────
   Collapse multi-column grids on small screens
──────────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .gmh_hs_form          { padding: 16px; }
  .gmh_hs_grid,
  .gmh_hs_grid_2,
  .gmh_hs_grid_3,
  .gmh_hs_grid_4        { grid-template-columns: 1fr; }
  .gmh_hs_col_2,
  .gmh_hs_col_3         { grid-column: 1 / -1; }
  .gmh_hs_vitals_grid   { grid-template-columns: repeat(2, 1fr); }
  .gmh_hs_action_row    { flex-direction: column; }
  .gmh_hs_btn           { width: 100%; justify-content: center; }
}


/* ── v2-css ─────────────────────────────────────────────────── */

/* ── schema-body: bordered inline form container ── */
.schema-body{display:none;border:2px solid #d6a72c;border-top:none;border-radius:0 0 14px 14px;background:#fff;overflow:hidden;}
.schema-body.open{display:block;}

/* ── docket-section: each object row inside group-body ── */
.docket-section{border-bottom:1px solid #e5e7eb;overflow:hidden;}
.docket-section:last-child{border-bottom:none;}

/* ── section header button ── */
.docket-sec-btn{width:100%;background:transparent;border:none;padding:13px 18px;text-align:left;cursor:pointer;display:flex;align-items:center;gap:11px;font-family:inherit;font-size:.92rem;font-weight:700;color:#1f2937;transition:background .13s;}
.docket-sec-btn:hover{background:#f4f7fb;}
.dsb-icon{font-size:1.05rem;width:22px;text-align:center;flex-shrink:0;}
.dsb-text{flex:1;min-width:0;}
.dsb-title{display:block;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dsb-sub{display:block;font-size:.75rem;color:#6b7280;font-weight:500;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* status pills */
.status-pill{font-size:.7rem;font-weight:800;padding:3px 10px;border-radius:999px;white-space:nowrap;flex-shrink:0;}
.pill-final  {background:#dcfce7;color:#14532d;}
.pill-draft  {background:#fef3c7;color:#92400e;}
.pill-pending{background:#f1f5f9;color:#475569;}
.pill-ok     {background:#d1fae5;color:#065f46;}
.pill-info   {background:#dbeafe;color:#1e40af;}
.pill-alert  {background:#fee2e2;color:#991b1b;}

/* chevron */
.dsb-chev{font-size:.82rem;color:#9ca3af;transition:transform .22s;flex-shrink:0;}
.docket-section.open .dsb-chev{transform:rotate(180deg);}

/* mini summary grid */
.v2-mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;padding:10px 16px 12px;}
.v2-mini-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:8px 10px;font-size:.8rem;}
.v2-mini-card strong{display:block;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;margin-bottom:3px;}
.v2-mini-card.warn {border-left:3px solid #f59e0b;background:#fffbeb;}
.v2-mini-card.alert{border-left:3px solid #ef4444;background:#fef2f2;}
.v2-mini-card.good {border-left:3px solid #22c55e;background:#f0fdf4;}

/* action row */
.v2-action-row{display:flex;gap:8px;flex-wrap:wrap;padding:8px 16px 14px;}
.v2-btn{border:1.5px solid #d1d5db;background:#fff;color:#374151;border-radius:7px;padding:7px 14px;font-size:.8rem;font-weight:700;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;transition:background .12s,border-color .12s;}
.v2-btn:hover{background:#f0f6ff;border-color:#93c5fd;}
.v2-btn.primary{background:#174ea6;color:#fff;border-color:#174ea6;}
.v2-btn.primary:hover{background:#0f3a7a;}
.v2-btn.danger {background:#b91c1c;color:#fff;border-color:#b91c1c;}
.v2-btn.danger:hover{background:#991b1b;}
.v2-btn.order  {background:#92400e;color:#fff;border-color:#92400e;}
.v2-btn.order:hover{background:#78350f;}
.v2-btn.medproc{background:#14532d;color:#fff;border-color:#14532d;}
.v2-btn.medproc:hover{background:#052e16;}
.v2-btn.close-g{background:#581c87;color:#fff;border-color:#581c87;}
.v2-btn.close-g:hover{background:#3b0764;}

/* signed row */
.v2-signed-row{display:flex;flex-wrap:wrap;gap:8px;padding:6px 16px 12px;border-top:1px solid #f1f5f9;}
.v2-signed-box{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:7px;padding:6px 10px;font-size:.78rem;min-width:160px;}
.v2-signed-box strong{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;margin-bottom:2px;}

/* edi badge */
.v2-edi-badge{font-family:Consolas,'Courier New',monospace;font-size:.72rem;color:#6b7280;background:#f1f5f9;border-bottom:1px solid #e5e7eb;padding:5px 16px;}

/* modals */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:10000;align-items:center;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal-window{background:#fff;border-radius:12px;overflow:hidden;width:min(1050px,98vw);height:min(780px,96vh);display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.35);}
.modal-header{background:linear-gradient(135deg,#174ea6,#0f3a7a);color:#fff;padding:14px 18px;display:flex;align-items:center;gap:10px;font-weight:900;font-size:1rem;flex-shrink:0;}
.modal-header span{flex:1;}
.modal-close{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:6px;padding:4px 10px;cursor:pointer;font-size:1rem;line-height:1;}
.modal-body{flex:1;overflow-y:auto;padding:18px;}

/* accent gradients for groups not in friday.css */



/* GO .exe loading overlay + elapsed timer */
#emrLoadingOverlay{
  position:fixed;
  inset:0;
  z-index:2147483647;
  background:rgba(7,29,46,.72);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#071D2E;
  font-family:Arial,Helvetica,sans-serif;
  backdrop-filter:blur(1.5px);
}
#emrLoadingOverlay.emr-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,visibility .22s ease;
}
.emr-loading-card{
  width:min(514px,calc(100vw - 34px));
  border:4px solid #D4AF37;
  border-radius:20px;
  background:#fff;
  color:#071D2E;
  padding:24px 27px 23px;
  text-align:center;
  box-shadow:0 22px 70px rgba(0,0,0,.45);
}
.emr-loading-icon{
  font-size:43px;
  line-height:1;
  margin:0 auto 12px;
  color:#1f5faa;
}
.emr-loading-title{
  font-weight:900;
  font-size:23px;
  letter-spacing:.2px;
  margin-bottom:8px;
}
.emr-loading-sub{
  font-size:14px;
  font-weight:800;
  color:#475569;
  line-height:1.35;
  margin-bottom:14px;
}
.emr-loading-progress{
  height:14px;
  background:#e7ebef;
  border:1px solid #c8d0da;
  border-radius:999px;
  overflow:hidden;
  margin:0 0 9px;
}
.emr-loading-progress-fill{
  height:100%;
  width:10%;
  border-radius:999px;
  background:linear-gradient(90deg,#1f5faa 0%,#3a6692 42%,#8f8a58 70%,#d4af37 100%);
  transition:width .25s ease;
}
.emr-loading-note{
  font-size:12px;
  color:#475569;
}
#emrRuntimeTimer{position:fixed;right:14px;bottom:14px;z-index:90;background:#071D2E;color:#F2D779;border:1px solid rgba(212,175,55,.75);border-radius:999px;padding:8px 12px;font:900 12px Arial,Helvetica,sans-serif;box-shadow:0 8px 24px rgba(0,0,0,.22);}
@media(max-width:640px){.emr-loading-card{padding:22px 18px}.emr-loading-title{font-size:20px}.emr-loading-sub{font-size:13px}#emrRuntimeTimer{font-size:11px;right:8px;bottom:8px;}}

/* PDF modal */
#pdfModal{display:none;position:fixed;inset:0;background:#fff;z-index:999999;display:none;flex-direction:column;}
#pdfModal.open{display:flex;}
#pdfModal-header{height:56px;min-height:56px;background:#174ea6;display:flex;align-items:center;justify-content:space-between;padding:0 16px;color:#fff;font-weight:700;font-family:Arial,sans-serif;flex-shrink:0;}
#pdfFrame{flex:1;width:100%;border:none;background:#fff;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;}
@media (max-width:900px){
  #pdfModal-header{height:48px;min-height:48px;}
  #pdfFrame{height:calc(100dvh - 48px);overflow-y:auto;-webkit-overflow-scrolling:touch;}
}

/* ═══════════════════════════════════════════════════════
   INLINE ROW ICON COLOR UPGRADE — 3D commercial grade
   Only changes the small object-row icons.
═══════════════════════════════════════════════════════ */
.docket-sec-btn .dsb-icon{
  width:28px !important;
  height:28px !important;
  min-width:28px !important;
  border-radius:10px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  position:relative !important;
  overflow:hidden !important;
  font-size:.9rem !important;
  background:linear-gradient(145deg,#ffffff 0%,#edf6ff 44%,#d8e9f9 100%) !important;
  color:#0f3f5d !important;
  border:1px solid rgba(255,255,255,.92) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -2px 4px rgba(15,47,69,.10),
    0 5px 10px rgba(15,47,69,.16) !important;
  text-shadow:0 1px 0 rgba(255,255,255,.7) !important;
}
.docket-sec-btn .dsb-icon:before{
  content:'';
  position:absolute;
  left:4px;
  top:3px;
  width:15px;
  height:8px;
  border-radius:999px;
  background:rgba(255,255,255,.58);
  transform:rotate(-24deg);
  pointer-events:none;
}
.docket-sec-btn .dsb-icon i{
  position:relative;
  z-index:2;
  filter:drop-shadow(0 1px 1px rgba(15,47,69,.18));
}
.docket-section[data-objects-code="ENCOUNTER"] .dsb-icon{background:linear-gradient(145deg,#eff6ff,#dbeafe 48%,#bfdbfe) !important;color:#1d4ed8 !important;}
.docket-section[data-objects-code="TRIAGE"] .dsb-icon{background:linear-gradient(145deg,#fff1f2,#ffe4e6 48%,#fecdd3) !important;color:#be123c !important;}
.docket-section[data-objects-code="VITALS"] .dsb-icon{background:linear-gradient(145deg,#f0fdf4,#dcfce7 48%,#bbf7d0) !important;color:#15803d !important;}
.docket-section[data-objects-code="DIAGNOSIS"] .dsb-icon{background:linear-gradient(145deg,#ecfeff,#cffafe 48%,#a5f3fc) !important;color:#0e7490 !important;}
.docket-section[data-objects-code="LAB_ORDER"] .dsb-icon,
.docket-section[data-objects-code="LAB_RESULT"] .dsb-icon{background:linear-gradient(145deg,#f5f3ff,#ede9fe 48%,#ddd6fe) !important;color:#6d28d9 !important;}
.docket-section[data-objects-code="RADIOLOGY_ORDER"] .dsb-icon{background:linear-gradient(145deg,#f8fafc,#e2e8f0 48%,#cbd5e1) !important;color:#334155 !important;}
.docket-section[data-objects-code="MAR"] .dsb-icon,
.docket-section[data-objects-code="MED_RECON"] .dsb-icon{background:linear-gradient(145deg,#fff7ed,#ffedd5 48%,#fed7aa) !important;color:#c2410c !important;}
.docket-section[data-objects-code="PROGRESS_NOTE"] .dsb-icon,
.docket-section[data-objects-code="CLINICAL_NOTE"] .dsb-icon{background:linear-gradient(145deg,#fffbeb,#fef3c7 48%,#fde68a) !important;color:#a16207 !important;}
.docket-section[data-objects-code="CARE_PLAN"] .dsb-icon,
.docket-section[data-objects-code="QUALITY_MEASURES"] .dsb-icon{background:linear-gradient(145deg,#eef2ff,#e0e7ff 48%,#c7d2fe) !important;color:#4338ca !important;}
.docket-section[data-objects-code="ALERTS"] .dsb-icon{background:linear-gradient(145deg,#fff7ed,#ffedd5 48%,#fdba74) !important;color:#ea580c !important;}
.docket-section[data-objects-code="INTERFACES"] .dsb-icon{background:linear-gradient(145deg,#f0fdfa,#ccfbf1 48%,#99f6e4) !important;color:#0f766e !important;}
.docket-section[data-objects-code="DOCUMENTS"] .dsb-icon,
.docket-section[data-objects-code="IMAGES"] .dsb-icon,
.docket-section[data-objects-code="EXTERNAL_RECORDS"] .dsb-icon{background:linear-gradient(145deg,#f0f9ff,#e0f2fe 48%,#bae6fd) !important;color:#0369a1 !important;}
.docket-section[data-objects-code="DISCHARGE"] .dsb-icon{background:linear-gradient(145deg,#fef2f2,#fee2e2 48%,#fecaca) !important;color:#b91c1c !important;}
.docket-section[data-objects-code="ENV_SERVICES"] .dsb-icon,
.docket-section[data-objects-code="BED_MANAGEMENT"] .dsb-icon,
.docket-section[data-objects-code="NUTRITION"] .dsb-icon,
.docket-section[data-objects-code="TRANSPORT"] .dsb-icon,
.docket-section[data-objects-code="SECURITY"] .dsb-icon,
.docket-section[data-objects-code="HELP_DESK"] .dsb-icon{background:linear-gradient(145deg,#f1f5f9,#e2e8f0 48%,#cbd5e1) !important;color:#475569 !important;}


/* Requested fix: remove docket row status pills and darken/enlarge chevrons only. */
.docket-sec-btn > .status-pill{display:none !important;}
.docket-sec-btn > .dsb-chev{font-size:1.28rem !important;color:#111827 !important;font-weight:900 !important;}



/* ════════════════════════════════════════════════════════════════
   EDI HERO BANNER — fixed, always visible above page content
   ════════════════════════════════════════════════════════════════ */

.edi-hero {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 38 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  min-height: unset !important;
  box-shadow: 0 4px 16px rgba(6,25,37,.22) !important;
}

/* Push page content below fixed topbar (~96px) + fixed edi-hero (~100px) */
.page-shell {
  padding-top: 196px !important;
}

@media (max-width: 900px) {
  .edi-hero { padding: 14px 18px 10px !important; }
  .page-shell { padding-top: 240px !important; }
}


/* ── Drag and drop visual feedback for docket-group (v2) ───────── */
.docket-group.drag-enabled .group-face { cursor: grab; }
.docket-group.drag-enabled.dragging    { opacity: .45; }
.docket-group.drag-enabled.drag-over  {
  outline: 3px dashed var(--gmh-primary, #174ea6);
  outline-offset: 3px;
  transform: translateY(6px);
  transition: transform 0.15s ease;
}


/* ── PPP Generate button — opacity controlled by disabled state ── */
#ppp-gen-btn { transition: opacity 0.2s; }
#ppp-gen-btn:disabled { opacity: .35; cursor: not-allowed; }
#ppp-gen-btn:not(:disabled) { opacity: 1; cursor: pointer; }


/* ── PPP panel — hide status pills from checkbox rows ─────────── */
.ppp-srow .ppp-spill,
.ppp-srow span[style*="border-radius:999px"],
.ppp-srow span[style*="border-radius: 999px"] {
  display: none !important;
}


/* ════════════════════════════════════════════════════════════════
   EDI HERO BANNER — restructured 3-line layout, mobile-first
   ════════════════════════════════════════════════════════════════ */

.edi-hero {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 16px 10px 16px;
}

.edi-text {
  flex: 1;
  min-width: 0;
}

.edi-title {
  margin: 0 0 4px;
  font-size: 1.05rem;
  font-weight: 900;
  color: #fff;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.edi-line {
  margin: 0 0 3px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  font-size: .78rem;
  color: rgba(255,255,255,.85);
  line-height: 1.5;
}

.edi-line strong {
  color: #fff;
  font-weight: 800;
}

.edi-sep {
  color: rgba(255,255,255,.4);
  font-size: .7rem;
}

.edi-btn {
  background: rgba(23,78,166,.85);
  border: 1px solid #d4af37;
  color: #fff;
  padding: 2px 9px;
  border-radius: 5px;
  cursor: pointer;
  font-size: .72rem;
  font-weight: 800;
  box-shadow: 0 1px 2px rgba(0,0,0,.18);
  white-space: nowrap;
  line-height: 1.6;
}
.edi-btn:hover { background: #174ea6; }

.edi-actions {
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex-shrink: 0;
  align-items: flex-end;
}

.edi-action-btn {
  width: 90px;
  height: 34px;
  border-radius: 10px;
  font-size: .8rem;
  font-weight: 900;
  cursor: pointer;
  border: 2px solid transparent;
  white-space: nowrap;
}
.edi-action-close { border-color: #7f1d1d; color: #7f1d1d; background: #fff; }
.edi-action-home  { border-color: #0b2f47; color: #0b2f47; background: #fff; }
.edi-action-print { background: linear-gradient(135deg,var(--gold3,#fff1a8),var(--gold2,#f2d779),var(--gold,#d6a72c),#9c6d05); color: #071e2e; border: none; }

/* ── Mobile (≤ 640px) ── */
@media (max-width: 640px) {
  .edi-hero        { padding: 8px 12px; gap: 8px; }
  .edi-title       { font-size: .88rem; white-space: normal; }
  .edi-line        { font-size: .72rem; gap: 3px 5px; }
  .edi-sep         { display: none; }
  .edi-actions     { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
  .edi-action-btn  { width: auto; height: 28px; padding: 0 10px; font-size: .72rem; }
  .page-shell      { padding-top: 220px !important; }
}

/* ── Tablet (641–900px) ── */
@media (min-width: 641px) and (max-width: 900px) {
  .edi-title       { font-size: .95rem; }
  .edi-actions     { flex-direction: row; gap: 5px; }
  .edi-action-btn  { width: auto; padding: 0 12px; }
  .page-shell      { padding-top: 200px !important; }
}


/* ── EDI line 3 — encounter left, buttons right ─── */
.edi-line-3 { justify-content: space-between; flex-wrap: wrap; gap: 4px; }
.edi-line-3-left  { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.edi-line-3-right { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }


/* ── EDI line 1 — name/DOB left, risk badges right ─────────── */
.edi-line-1 { justify-content: space-between; flex-wrap: wrap; }
.edi-line-1-left  { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.edi-line-1-risks { display:flex; gap:4px; flex-wrap:wrap; justify-content:flex-end; }

.risk-badge {
  border-radius: 999px;
  padding: 2px 9px;
  font-size: .68rem;
  font-weight: 800;
  white-space: nowrap;
  color: #fff;
}
.risk-critical { background: #7f1d1d; border: 1px solid #991b1b; }
.risk-warning  { background: #92400e; border: 1px solid #b45309; }
.risk-ok       { background: #14532d; border: 1px solid #15803d; }
.risk-info     { background: #1e40af; border: 1px solid #1d4ed8; }
