/* The patient portal and the staff phone pages of phase 15 (R15, R16, R17.1): one column, large tap targets, no
   horizontal scrolling at 390 px. */
.hms-portal { max-width: 46rem; }
.hms-portal .portal-head { justify-content: space-between; align-items: center; }
.portal-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.portal-list .card-body { overflow-wrap: anywhere; }
.portal-link { display: block; color: inherit; text-decoration: none; min-height: 2.75rem; }
.portal-docs { display: grid; gap: .5rem; }
.portal-docs li { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: space-between; }
.portal-row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.portal-reply { border-inline-start: 3px solid var(--color-border, #ccc); padding-inline-start: .5rem; }
.portal-copy { width: 100%; font-family: monospace; font-size: .85rem; }
.portal-grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); }
.portal-grid .input, .hms-portal .input, .hms-portal select, .hms-portal textarea { max-width: 100%; box-sizing: border-box; }
.hms-my .badge-danger { font-weight: 600; }
.hms-my li { overflow-wrap: anywhere; }
@media (max-width: 30rem) {
  .hms-portal .btn, .hms-portal .btn-lg { width: 100%; justify-content: center; }
  .portal-docs li { flex-direction: column; align-items: stretch; }
}
/* Phase 15b: the copies on this phone (R15.8) in a sandboxed frame; the deposit and booking forms. */
.portal-saved-frame { width: 100%; min-height: 70vh; border: 1px solid var(--border, #d1d5db); border-radius: 8px; background: #fff; }
/* Phase 16 — ABDM: the Scan & Share QRs (drawn by hms-certificate.js) and long ids / URLs that must wrap at 390 px. */
.abdm-qr .qr { width: 160px; height: 160px; overflow-wrap: anywhere; font-size: .75rem; }
.abdm-qr .qr svg { width: 100%; height: 100%; display: block; }
[data-abdm-log] code, [data-abdm-status] .portal-copy, [data-abdm-consents] li, [data-abdm-requests] li { overflow-wrap: anywhere; }
