.patient-portal{--b-bright:#19c8fa;--b-mid:#00affa;--b-deep:#0096e1;--bg:#000814;--surface:hsla(0,0%,100%,.04);--surface-2:hsla(0,0%,100%,.08);--border:rgba(25,200,250,.18);--border-2:rgba(25,200,250,.35);--text:#f5fafd;--text-mute:rgba(245,250,253,.65);--text-dim:rgba(245,250,253,.42);--danger:#ff6b6b;--warning:#f59e0b;--success:#34d399;background:var(--bg);color:var(--text);font-family:var(--font-dm-sans),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;letter-spacing:-.005em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}body:has(.patient-portal),html:has(.patient-portal){background:#000814}.patient-portal a{color:var(--b-bright);text-decoration-color:rgba(25,200,250,.55)}.patient-portal a:hover{color:var(--b-mid);text-decoration-color:var(--b-mid)}.patient-portal a:focus-visible{outline:2px solid var(--b-bright);outline-offset:2px;border-radius:4px}.patient-bg-glow{position:fixed;inset:-10vh -10vw;pointer-events:none;z-index:0;background:radial-gradient(60vw 60vw at 50% 30%,rgba(25,200,250,.18),transparent 70%),radial-gradient(40vw 40vw at 80% 80%,rgba(0,150,225,.1),transparent 70%);filter:blur(40px)}.patient-auth-glow .patient-bg-glow{animation:patient-pulse 7s ease-in-out infinite}@keyframes patient-pulse{0%,to{opacity:1}50%{opacity:.55}}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;padding:14px 20px;border:none;border-radius:14px;background:linear-gradient(135deg,var(--b-bright),var(--b-deep));color:#001828;font-family:var(--font-outfit),inherit;font-size:16px;font-weight:600;letter-spacing:.01em;cursor:pointer;box-shadow:0 14px 40px -18px rgba(25,200,250,.6);transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.btn-primary:hover{transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;padding:14px 20px;border:1px solid var(--border-2);border-radius:14px;background:var(--surface);color:var(--text);font-family:var(--font-outfit),inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background .18s ease,border-color .18s ease}.btn-secondary:hover{background:var(--surface-2);border-color:var(--b-mid)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.btn-link{background:none;border:none;color:var(--b-bright);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:8px 4px}.btn-link:disabled{color:var(--text-dim);cursor:not-allowed}.field{width:100%;min-height:52px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--text);font-size:16px;outline:none;transition:border-color .18s ease,background .18s ease}.field:focus{border-color:var(--b-bright);background:var(--surface-2)}.field::-moz-placeholder{color:var(--text-dim)}.field::placeholder{color:var(--text-dim)}.field:disabled{opacity:.7;cursor:not-allowed}.label{display:block;font-size:13px;font-weight:500;color:var(--text-mute);margin-bottom:6px}.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:24px}.overline{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--b-bright)}.h-display{font-family:var(--font-outfit),inherit;font-weight:600;font-size:clamp(24px,6vw,30px);letter-spacing:-.02em;line-height:1.2;color:var(--text)}.text-muted{color:var(--text-mute)}.text-dim{color:var(--text-dim)}.error-banner{background:hsla(0,100%,71%,.1);border:1px solid hsla(0,100%,71%,.35);border-radius:12px;color:var(--danger)}.error-banner,.warn-banner{padding:12px 14px;font-size:14px}.warn-banner{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.35);border-radius:12px;color:var(--warning)}.success-banner{background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.35);border-radius:12px;padding:12px 14px;color:var(--success);font-size:14px}.otp-row{display:flex;gap:10px;justify-content:center}.otp-cell{width:48px;height:60px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--text);font-family:var(--font-outfit),inherit;font-size:22px;font-weight:600;outline:none;transition:border-color .18s ease}.otp-cell:focus{border-color:var(--b-bright)}@media (prefers-reduced-motion:reduce){.patient-auth-glow .patient-bg-glow{animation:none}.btn-primary{transition:none}}