.patient-portal:has(.patient-login-layout){background:linear-gradient(135deg,#fcf5fa,#f7f2fa);padding:56px 0 64px}
.patient-login-layout{max-width:1060px;margin:0 auto;gap:0;align-items:stretch;background:#fff;border:1px solid #eddfeb;border-radius:30px 0 30px 0;overflow:hidden;box-shadow:0 18px 50px #4816410d}
.patient-login-layout .portal-auth-intro{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:48px 40px;background:linear-gradient(135deg,#481641,#80206f 65%,#a71e91);color:#fff}
.patient-login-layout .portal-auth-intro::after{content:'';position:absolute;z-index:-1;right:-110px;bottom:-130px;width:330px;height:330px;border:50px solid #ffffff08;border-radius:50%;pointer-events:none}
.patient-login-layout .portal-auth-intro .portal-eyebrow{color:#f0cde8;font-size:10px;letter-spacing:2px}
.patient-login-layout .portal-auth-intro h1{color:#fff;font-size:clamp(32px,3.4vw,44px);line-height:1.2;letter-spacing:-1px;margin:8px 0 18px}
.patient-login-layout .portal-auth-intro h1 span{color:#f4acd9}
.patient-login-layout .portal-auth-intro>p{font-size:14px;line-height:1.85;color:#f0dbea;margin:0}
.patient-login-layout .portal-auth-intro ul{display:grid;gap:20px;margin:30px 0}
.patient-login-layout .portal-auth-intro li{gap:14px}
.patient-login-layout .portal-auth-intro li i{flex:0 0 42px;width:42px;height:42px;background:#ffffff12;border:1px solid #ffffff25;color:#fff;border-radius:12px 0 12px 0;font-size:18px}
.patient-login-layout .portal-auth-intro li strong{display:block;color:#fff;font-size:13px;margin-bottom:5px}
.patient-login-layout .portal-auth-intro li span{display:block;color:#edd4e9;font-size:12px;line-height:1.6}
.patient-login-layout .portal-auth-intro>a{align-self:flex-start;color:#fff;font-size:12px;padding-bottom:8px;border-bottom:1px solid #ffffff50}
.patient-login-layout .portal-auth-card{padding:44px 40px;border:0;border-radius:0;box-shadow:none;align-self:center}
.patient-login-icon{display:grid;place-items:center;width:52px;height:52px;background:#faf0f8;border:1px solid #eddfeb;border-radius:16px 0 16px 0;color:#a71e91;font-size:23px;margin-bottom:22px}
.patient-login-layout .portal-auth-card .portal-eyebrow{font-size:10px;letter-spacing:1.8px;margin-bottom:8px}
.patient-login-layout .portal-auth-card h2{color:#35243d;font-size:30px;line-height:1.2;letter-spacing:-.6px;margin-bottom:12px}
.patient-login-layout .portal-auth-card h2 span{color:#a71e91}
.patient-login-layout .portal-auth-card>p{font-size:13px;color:#78647f;line-height:1.8;margin-bottom:26px}
.patient-login-layout label{color:#35243d;font-size:12px;margin-bottom:8px}
.patient-login-field{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:0 14px;border:1px solid #eddfeb;border-radius:10px;background:#fcf9fc}
.patient-login-field>i{color:#a71e91;font-size:14px;flex-shrink:0}
.patient-login-layout .patient-login-field input{height:48px;min-width:0;border:0;box-shadow:none;background:transparent;padding:12px 0;color:#35243d;font-size:13px}
.patient-login-field:focus-within{border-color:#a71e91;box-shadow:0 0 0 3px #a71e9110}
.patient-login-field button{border:0;background:transparent;color:#92799a;padding:10px 0 10px 5px;cursor:pointer}
.patient-login-layout .portal-button{margin-top:4px;min-height:48px;border-radius:12px 0 12px 0;background:linear-gradient(115deg,#80206f,#a71e91);border-color:#80206f;font-size:13px}
.patient-login-layout .portal-button:hover{background:#641658}
.patient-login-layout .portal-auth-switch{padding-top:22px;margin-top:24px;border-color:#eddfeb;color:#78647f;font-size:12px;line-height:1.8}
.patient-login-layout .portal-auth-switch a{display:inline-flex;align-items:center;gap:6px;color:#80206f}
.patient-login-layout .portal-auth-intro a:focus-visible{outline-color:#fff}
@media(max-width:991px){.patient-login-layout{grid-template-columns:1fr 1fr;max-width:900px}.patient-login-layout .portal-auth-intro,.patient-login-layout .portal-auth-card{padding:32px 26px}}
@media(max-width:650px){.patient-portal:has(.patient-login-layout){padding:30px 0 40px}.patient-login-layout{grid-template-columns:1fr;max-width:440px}.patient-login-layout .portal-auth-intro{padding:28px}.patient-login-layout .portal-auth-intro h1{font-size:30px}.patient-login-layout .portal-auth-intro h1 br{display:none}.patient-login-layout .portal-auth-intro ul{display:none}.patient-login-layout .portal-auth-intro>a{margin-top:18px}.patient-login-layout .portal-auth-card{padding:28px}.patient-login-icon{width:44px;height:44px;font-size:20px;margin-bottom:18px}.patient-login-layout .portal-auth-card h2{font-size:27px}}
/* Switch sides between sign-in and registration. */
.patient-register-layout{max-width:1120px;grid-template-columns:1.25fr 1fr}
.patient-register-layout .portal-auth-intro{order:2}
.patient-register-layout .portal-auth-card{order:1}
.patient-register-layout .portal-auth-intro>a{margin-top:24px}
.patient-register-layout .portal-auth-card input,.patient-register-layout .portal-auth-card select{background:#fcf9fc;border-color:#eddfeb;color:#35243d}
.patient-register-layout .portal-auth-card .portal-button{margin-top:24px}
.patient-login-layout{view-transition-name:patient-auth-shell}
.patient-login-layout .portal-auth-intro{view-transition-name:patient-auth-welcome}
.patient-login-layout .portal-auth-card{view-transition-name:patient-auth-form}
@view-transition{navigation:auto}
::view-transition-group(patient-auth-shell),::view-transition-group(patient-auth-welcome),::view-transition-group(patient-auth-form){animation-duration:.6s;animation-timing-function:cubic-bezier(.22,1,.36,1)}
.patient-login-layout.auth-leaving{animation:patient-auth-leave .22s ease forwards;pointer-events:none}
.patient-login-layout.auth-entering{animation:patient-auth-enter .4s ease both}
@keyframes patient-auth-leave{to{opacity:0;transform:translateX(-24px)}}
@keyframes patient-auth-enter{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:650px){.patient-register-layout{grid-template-columns:1fr}.patient-register-layout .portal-auth-intro{order:0}.patient-register-layout .portal-auth-card{order:1}}
@media(prefers-reduced-motion:reduce){.patient-login-layout.auth-leaving,.patient-login-layout.auth-entering{animation:none}::view-transition-group(*){animation-duration:0s!important}}
/* Compact patient registration panel. */
.patient-register-layout .portal-auth-card{padding:28px 32px}
.patient-register-layout .portal-auth-intro{padding:32px}
.patient-register-layout .portal-auth-card h2{font-size:27px;margin-bottom:8px}
.patient-register-layout .portal-auth-card>p{margin-bottom:18px}
.patient-register-layout .portal-auth-card .row{--bs-gutter-y:12px;--bs-gutter-x:16px}
.patient-register-layout label{font-size:11px;margin-bottom:5px}
.patient-register-layout .portal-auth-card input,.patient-register-layout .portal-auth-card select{height:42px;padding:9px 11px;font-size:12px}
.patient-register-layout .portal-auth-card .portal-button{min-height:42px;margin-top:16px;padding:10px 16px}
.patient-register-layout .portal-auth-switch{margin-top:16px;padding-top:16px}
@media(max-width:650px){.patient-register-layout .portal-auth-card,.patient-register-layout .portal-auth-intro{padding:24px}.patient-register-layout .portal-auth-intro h1{font-size:27px;margin-bottom:12px}.patient-register-layout .portal-auth-intro>p{font-size:13px}.patient-register-layout .portal-auth-intro>a{margin-top:14px}}