/* Patient hub — same visual family as the telemedicine staff surfaces (navy #16334d, gold #c3a052, bg #f2f5f8). */
:root{--ph-bg:#f2f5f8;--ph-ink:#14273a;--ph-ink-2:#3f5468;--ph-muted:#61768a;--ph-navy:#16334d;--ph-navy-2:#1f4a6e;--ph-gold:#c3a052;--ph-gold-2:#e0c78a;--ph-line:#e2e8ee;--ph-line-2:#cfd9e3;--ph-teal:#0f6e60;--ph-teal-soft:#e4f3ef;--ph-red:#8c2020;--ph-red-soft:#fdeeee;--ph-amber:#6b5220;--ph-amber-soft:#fbf4e3;--ph-r:18px;--ph-r-sm:10px;--ph-shadow:0 6px 18px rgba(20,39,58,.08)}
.ph-page{margin:0;background:var(--ph-bg);color:var(--ph-ink);direction:rtl;font:17px/1.75 "IBM Plex Sans Arabic","Tajawal","Segoe UI",system-ui,-apple-system,Arial,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh}
.ph-shell{max-width:1080px;margin:0 auto;padding:24px 20px 60px}
.ph-appbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--ph-navy);color:#fff;border-radius:var(--ph-r);padding:16px 22px;box-shadow:var(--ph-shadow);border-bottom:3px solid var(--ph-gold)}
.ph-appbar h1{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:.01em}.ph-appbar p{margin:2px 0 0;color:#d5e0ea;font-size:.9rem}
.ph-appbar .ph-user{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.9rem}
.ph-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:999px;font-size:.82rem;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);color:#fff}
.ph-pill.gold{border-color:var(--ph-gold);color:var(--ph-gold-2);background:rgba(195,160,82,.14)}
.ph-appbar button{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45);border-radius:9px;padding:6px 12px;font:inherit;cursor:pointer}
.ph-appbar button:hover{background:rgba(255,255,255,.12)}
.ph-nav{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 6px}
.ph-nav a{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:12px;border:1px solid var(--ph-line-2);background:#fff;color:var(--ph-navy);text-decoration:none;font-weight:600;transition:all .15s ease}
.ph-nav a:hover{transform:translateY(-1px);box-shadow:var(--ph-shadow)}.ph-nav a[aria-current=page]{background:var(--ph-navy);color:#fff;border-color:var(--ph-navy)}
.ph-panel{position:relative;background:#fff;border:1px solid var(--ph-line);border-radius:var(--ph-r);padding:26px 28px;margin:16px 0;box-shadow:var(--ph-shadow);overflow:hidden;animation:ph-rise .22s cubic-bezier(.2,.7,.2,1)}
.ph-panel::before{content:'';position:absolute;top:0;inset-inline:0;height:3px;background:linear-gradient(90deg,var(--ph-gold),var(--ph-gold-2))}
.ph-panel h1,.ph-panel h2{margin:0 0 8px;color:var(--ph-navy);font-weight:700;line-height:1.5}.ph-panel h1{font-size:1.5rem}.ph-panel h2{font-size:1.2rem}
.ph-panel p{margin:4px 0 12px;line-height:1.8}.ph-muted{color:var(--ph-muted);font-size:.9rem}
.ph-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 18px}
.ph-field{display:grid;gap:6px}.ph-field label,.ph-field .ph-label{font-weight:600;font-size:1rem;color:var(--ph-ink-2)}
.ph-field small{font-size:.9rem}
.ph-match{display:flex;align-items:center;gap:8px;min-height:24px;font-weight:600;font-size:.95rem}.ph-match[data-tone=ok]{color:var(--ph-teal)}.ph-match[data-tone=error]{color:var(--ph-red)}.ph-match[data-tone=muted]{color:var(--ph-muted);font-weight:400}
.ph-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ph-inline input{flex:1;min-width:160px}
.ph-details{margin-top:14px;color:var(--ph-muted);font-size:.9rem}.ph-details summary{cursor:pointer}
.ph-candidate[data-restricted]{border-style:dashed}.ph-field small{color:var(--ph-muted)}
.ph-field input,.ph-field select{font:inherit;font-size:1.05rem;padding:12px 14px;border:1px solid var(--ph-line-2);border-radius:var(--ph-r-sm);background:#fff;color:var(--ph-ink);min-height:50px}
.ph-field input:focus,.ph-field select:focus{outline:0;border-color:var(--ph-navy);box-shadow:0 0 0 3px rgba(195,160,82,.35)}
.ph-field input[aria-invalid=true]{border-color:#d08080;background:#fff8f8}
.ph-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;align-items:center}
.ph-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:12px 22px;font-size:1.02rem;border:1px solid var(--ph-line-2);background:#fff;color:var(--ph-navy);border-radius:var(--ph-r-sm);font:inherit;font-weight:700;cursor:pointer;text-decoration:none;transition:all .15s ease}
.ph-btn:hover{background:#f3f7fb;border-color:#b9c9d8;transform:translateY(-1px);box-shadow:var(--ph-shadow)}.ph-btn:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}
.ph-btn.primary{background:var(--ph-navy);color:#fff;border-color:var(--ph-navy)}.ph-btn.primary:hover{background:var(--ph-navy-2)}
.ph-btn.gold{background:var(--ph-gold);color:#1f1a0e;border-color:var(--ph-gold)}
.ph-btn:focus-visible,.ph-field input:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(195,160,82,.45)}
.ph-search{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}
.ph-kinds{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 0}.ph-kinds label{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--ph-line-2);border-radius:999px;cursor:pointer;font-size:.9rem;background:#fff}
.ph-kinds input{accent-color:var(--ph-navy)}.ph-kinds label:has(input:checked){background:var(--ph-navy);color:#fff;border-color:var(--ph-navy)}
.ph-table{width:100%;border-collapse:collapse;margin-top:14px;font-size:1rem}.ph-table th{text-align:right;font-weight:600;color:var(--ph-muted);font-size:.85rem;padding:8px 10px;border-bottom:1px solid var(--ph-line)}
.ph-table td{padding:12px 10px;border-bottom:1px solid var(--ph-line);vertical-align:top}.ph-table tr:hover td{background:#f7fafc}
.ph-table a{color:var(--ph-navy);font-weight:700;text-decoration:none}.ph-table a:hover{text-decoration:underline}
.ph-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;background:#eef3f8;padding:2px 8px;border-radius:6px;direction:ltr;display:inline-block;unicode-bidi:isolate}
.ph-status{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:.82rem;font-weight:600;border:1px solid var(--ph-line-2);background:#f3f7fb;color:var(--ph-ink-2)}
.ph-status[data-tone=ok]{background:var(--ph-teal-soft);color:var(--ph-teal);border-color:#9fd0bf}.ph-status[data-tone=warn]{background:var(--ph-amber-soft);color:var(--ph-amber);border-color:#ecd9a8}.ph-status[data-tone=off]{background:#eef1f4;color:var(--ph-muted)}
.ph-alert{padding:12px 16px;border-radius:12px;line-height:1.7;margin:10px 0;animation:ph-rise .22s ease}
.ph-alert[data-tone=error]{background:var(--ph-red-soft);border:1px solid #efc7c7;color:var(--ph-red)}
.ph-alert[data-tone=success]{background:var(--ph-teal-soft);border:1px solid #9fd0bf;color:var(--ph-teal)}
.ph-alert[data-tone=info]{background:#eef3f8;border:1px solid var(--ph-line-2);color:var(--ph-ink-2)}
.ph-alert[data-tone=warn]{background:var(--ph-amber-soft);border:1px solid #ecd9a8;color:var(--ph-amber)}
.ph-candidates{display:grid;gap:10px;margin:8px 0}.ph-candidate{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-radius:12px;border:1px solid #ecd9a8;background:var(--ph-amber-soft)}
.ph-candidate[data-blocking=true]{border-color:#efc7c7;background:var(--ph-red-soft)}.ph-candidate strong{font-size:1rem}
.ph-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 22px;margin:8px 0 4px}
.ph-summary div{padding:10px 0;border-bottom:1px solid var(--ph-line)}.ph-summary dt{color:var(--ph-muted);font-size:.82rem;margin:0 0 3px}.ph-summary dd{margin:0;font-weight:600;font-size:1.08rem}
.ph-idcard{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px 20px;border-radius:14px;background:linear-gradient(135deg,#16334d,#234a6c);color:#fff;margin:6px 0 16px}
.ph-idcard .ph-code{background:rgba(255,255,255,.14);color:#fff;font-size:1rem;padding:6px 12px}
.ph-skeleton{height:14px;border-radius:7px;background:linear-gradient(90deg,#eef1f4,#f7f9fb,#eef1f4);background-size:200% 100%;animation:ph-shimmer 1.2s linear infinite;margin:10px 0}
.ph-empty{padding:26px;text-align:center;color:var(--ph-muted);border:1px dashed var(--ph-line-2);border-radius:12px;margin-top:12px}
.ph-toast{position:fixed;bottom:22px;inset-inline-start:22px;background:var(--ph-navy);color:#fff;padding:12px 18px;border-radius:12px;box-shadow:0 10px 30px rgba(20,39,58,.25);z-index:9;animation:ph-rise .25s ease;max-width:min(92vw,420px)}
.ph-local{border:1px dashed var(--ph-gold);background:#fffaf0}.ph-local h2::before{content:'🧪 '}
@keyframes ph-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes ph-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@media(max-width:640px){.ph-shell{padding:14px 12px 50px}.ph-panel{padding:18px;border-radius:14px}.ph-search{grid-template-columns:1fr}.ph-actions .ph-btn{width:100%}}
@media(prefers-reduced-motion:reduce){.ph-page *{transition:none!important;animation:none!important}}

/* N1 — internal notes thread (staff only) */
.ph-notes { list-style: none; margin: 8px 0 12px; padding: 0; display: grid; gap: 8px; }
.ph-notes li { padding: 10px 12px; border: 1px solid var(--ph-line); border-radius: 12px; background: #fbfcfd; line-height: 1.55; }
