/* HealthDoor shared visual layer: typography, loading states, forms and notifications. */
:root{
  --hd-blue:#0f86c8;
  --hd-blue-deep:#096ca8;
  --hd-green:#42ba8b;
  --hd-green-deep:#258965;
  --hd-ink:#102033;
  --hd-muted:#66758a;
  --hd-line:#e3eaf1;
  --hd-soft:#f5f8fb;
  --hd-card:#ffffff;
  --hd-shadow:0 1px 2px rgba(15,23,42,.03),0 12px 32px rgba(15,39,64,.06);
}
html{font-family:'Plus Jakarta Sans','Aptos','Segoe UI',Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body,button,input,select,textarea{font-family:'Plus Jakarta Sans','Aptos','Segoe UI',Arial,sans-serif!important}
body{letter-spacing:-.01em}
button,input,select,textarea{letter-spacing:0}
::selection{background:rgba(15,134,200,.17)}
*{scrollbar-color:#c9d6e2 transparent;scrollbar-width:thin}
*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:#c9d6e2;border-radius:999px}*::-webkit-scrollbar-track{background:transparent}

/* Page loader. Super Admin uses the branded DOM loader; other portals get a quiet fallback. */
html.hd-app-loading{overflow:hidden}
html.hd-app-loading body:before{content:'';position:fixed;inset:0;background:rgba(248,251,253,.985);z-index:2147482998}
html.hd-app-loading body:after{content:'';position:fixed;left:50%;top:50%;width:42px;height:42px;margin:-21px 0 0 -21px;border-radius:50%;border:3px solid rgba(15,134,200,.11);border-top-color:var(--hd-blue);border-right-color:var(--hd-green);animation:hdSpin .72s linear infinite;z-index:2147482999}
html.hd-branded-page.hd-app-loading body:after{display:none}
@keyframes hdSpin{to{transform:rotate(360deg)}}

.hd-page-loader{position:fixed;inset:0;z-index:2147483000;background:rgba(248,251,253,.985);display:flex;align-items:center;justify-content:center;transition:opacity .24s ease,visibility .24s ease}
.hd-page-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.hd-page-loader-card{width:260px;background:#fff;border:1px solid #e2e9f0;border-radius:20px;padding:25px 25px 20px;box-shadow:0 22px 70px rgba(15,39,64,.13);text-align:center}
.hd-page-loader-card img{width:172px;height:48px;object-fit:contain;display:block;margin:0 auto 18px}
.hd-page-loader-track{height:4px;border-radius:999px;background:#edf2f6;overflow:hidden;position:relative}
.hd-page-loader-track span{display:block;height:100%;width:38%;border-radius:999px;background:linear-gradient(90deg,var(--hd-blue),var(--hd-green));animation:hdLoadTrack 1.1s ease-in-out infinite}
.hd-page-loader-copy{font-size:11px;color:#8291a2;font-weight:700;margin-top:11px;letter-spacing:.01em}
@keyframes hdLoadTrack{0%{transform:translateX(-115%)}55%{transform:translateX(118%)}100%{transform:translateX(245%)}}

/* Saving/action loader: intentionally compact and calmer than a full-screen spinner. */
.hd-action-loader{position:fixed;inset:0;background:rgba(248,251,253,.72);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2147482500;opacity:0;pointer-events:none;transition:opacity .18s ease}
.hd-action-loader.show{opacity:1;pointer-events:auto}
.hd-action-card{width:min(330px,calc(100vw - 30px));background:#fff;border:1px solid var(--hd-line);border-radius:17px;padding:17px 18px;box-shadow:0 22px 65px rgba(15,39,64,.14);display:grid;grid-template-columns:42px 1fr;gap:13px;align-items:center;color:var(--hd-ink);position:relative;overflow:hidden}
.hd-action-orb{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,rgba(15,134,200,.12),rgba(66,186,139,.16));display:grid;place-items:center;position:relative}
.hd-action-orb:before{content:'';width:15px;height:15px;border-radius:50%;border:2.5px solid rgba(15,134,200,.18);border-top-color:var(--hd-blue);border-right-color:var(--hd-green);animation:hdSpin .65s linear infinite}
.hd-action-copy strong{display:block;font-size:12.5px;line-height:1.3;font-weight:800}.hd-action-copy span{display:block;margin-top:4px;font-size:10.8px;color:var(--hd-muted);font-weight:600;line-height:1.45}
.hd-action-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:#edf2f6;overflow:hidden}.hd-action-progress:before{content:'';display:block;width:38%;height:100%;background:linear-gradient(90deg,var(--hd-blue),var(--hd-green));animation:hdActionTrack .95s ease-in-out infinite}
@keyframes hdActionTrack{0%{transform:translateX(-120%)}100%{transform:translateX(365%)}}

/* Toasts */
.flash.hd-toast{position:fixed!important;right:22px;top:88px;z-index:2147482000!important;width:min(390px,calc(100vw - 30px));margin:0!important;padding:14px 42px 14px 48px!important;border-radius:14px!important;background:#fff!important;color:var(--hd-ink)!important;border:1px solid var(--hd-line)!important;box-shadow:0 18px 50px rgba(15,39,64,.15)!important;font-size:12px!important;font-weight:700!important;line-height:1.5;animation:hdToastIn .25s ease both}
.flash.hd-toast:before{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:25px;height:25px;border-radius:8px;display:grid;place-items:center;color:#fff;font:900 12px/1 Arial}
.flash.hd-toast.success:before{content:'✓';background:var(--hd-green)}.flash.hd-toast.error:before{content:'!';background:#df4962}.flash.hd-toast.info:before{content:'i';background:var(--hd-blue)}
.flash.hd-toast .hd-toast-close{position:absolute;right:10px;top:9px;border:0;background:transparent;color:#9aa8b7;font-size:18px;line-height:1;cursor:pointer;padding:4px}
.flash.hd-toast.hd-toast-out{animation:hdToastOut .2s ease both}
@keyframes hdToastIn{from{opacity:0;transform:translateY(-7px) translateX(8px)}to{opacity:1;transform:none}}@keyframes hdToastOut{to{opacity:0;transform:translateY(-6px) translateX(8px)}}

/* Shared low-risk UI refinement for clinic portals. */
.sidebar,.topbar,.panel,.card,.stat-card,.kpi,.modal-content,.table-container,.content-card{border-color:var(--hd-line)!important}
.panel,.card,.stat-card,.kpi,.content-card{box-shadow:var(--hd-shadow)}
.btn,button[class*='btn']{transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease}
.btn:hover,button[class*='btn']:hover{transform:translateY(-1px)}
input:not([type='checkbox']):not([type='radio']),select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}
input:not([type='checkbox']):not([type='radio']):focus,select:focus,textarea:focus{border-color:rgba(15,134,200,.7)!important;box-shadow:0 0 0 4px rgba(15,134,200,.09)!important;outline:none!important}
.table th,table th{font-weight:800}.table td,table td{font-weight:500}

@media(max-width:720px){.flash.hd-toast{right:14px;top:76px;width:calc(100vw - 28px)}.hd-action-card{padding:16px}.hd-page-loader-card{width:235px;padding:22px 22px 18px}.hd-page-loader-card img{width:155px}}
@media print{html.hd-app-loading body:before,html.hd-app-loading body:after,.hd-page-loader,.hd-action-loader,.flash.hd-toast{display:none!important}}
