:root{
  --login-bg:#07111f;
  --login-bg2:#0b1b33;
  --login-surface:#101d33;
  --login-surface-strong:#16243c;
  --login-soft:#0c1728;
  --login-text:#edf8ff;
  --login-strong:#ffffff;
  --login-muted:#a9bed2;
  --login-border:rgba(161,219,255,.18);
  --login-brand:#2ee6d6;
  --login-brand2:#5aa9ff;
  --login-danger:#ff6b80;
  --login-success:#37d399;
  --login-warning:#f6c76f;
  --login-shadow:0 20px 54px rgba(0,0,0,.34);
  --login-radius:24px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{min-height:100%;background:var(--login-bg)}
body.med-login-body{
  margin:0;min-height:100vh;color:var(--login-text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:
    radial-gradient(circle at 8% 8%,rgba(46,230,214,.13),transparent 28%),
    radial-gradient(circle at 88% 10%,rgba(90,169,255,.16),transparent 30%),
    linear-gradient(135deg,var(--login-bg),var(--login-bg2));
  padding:clamp(16px,2.4vw,28px);overflow-x:hidden;
}
body.med-login-body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent 88%);
}
.med-login-shell{
  width:min(1100px,100%);min-height:calc(100vh - clamp(32px,4.8vw,56px));margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.75fr);gap:clamp(16px,2.2vw,26px);align-items:stretch;
}
.med-login-brand,.med-login-card{
  position:relative;overflow:hidden;border:1px solid var(--login-border);border-radius:var(--login-radius);
  background:linear-gradient(145deg,rgba(16,29,51,.96),rgba(12,23,40,.94));
  box-shadow:var(--login-shadow);
}
.med-login-brand::after,.med-login-card::after{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 34%,rgba(46,230,214,.04));
}
.med-login-brand>* , .med-login-card>*{position:relative;z-index:1}
.med-login-brand{padding:clamp(26px,3.2vw,42px);display:grid;align-content:space-between;min-height:560px;}
.med-login-card{align-self:center;padding:clamp(24px,2.6vw,36px)}
.med-row{display:flex;gap:10px;align-items:center}.med-row-between{justify-content:space-between}.med-full-width{width:100%}
.med-brand-mark{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--login-brand),var(--login-brand2));color:#06111f;font-weight:950;font-size:22px;box-shadow:0 14px 32px rgba(46,230,214,.22)}
.med-eyebrow{margin:22px 0 9px;color:var(--login-brand);text-transform:uppercase;letter-spacing:.15em;font-size:11px;font-weight:900}.med-login-brand h1{max-width:670px;margin:.1rem 0 .65rem;font-size:clamp(2rem,4.2vw,4rem);line-height:.98;letter-spacing:-.065em;color:var(--login-strong)}.med-login-card h2{margin:.1rem 0 .3rem;font-size:clamp(1.55rem,2.3vw,2rem);letter-spacing:-.04em;color:var(--login-strong)}
.med-muted{color:var(--login-muted);line-height:1.58}.med-login-brand .med-muted{max-width:660px}.med-login-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.med-login-points span{border:1px solid rgba(46,230,214,.20);background:rgba(46,230,214,.08);border-radius:999px;padding:8px 11px;font-size:12px;font-weight:850;color:#cffff8}.med-login-scene{height:210px;position:relative;margin-top:26px}.med-login-stage{position:absolute;left:8%;right:9%;bottom:0;height:28px;border-radius:999px;background:linear-gradient(90deg,rgba(46,230,214,.18),rgba(90,169,255,.18));box-shadow:0 18px 50px rgba(46,230,214,.10)}.med-login-hospital{position:absolute;left:22%;bottom:24px;width:42%;height:132px;border-radius:24px 24px 14px 14px;background:linear-gradient(160deg,#183253,#0f2036);border:1px solid rgba(161,219,255,.18);box-shadow:0 22px 52px rgba(0,0,0,.22)}.med-login-hospital:before{content:"+";position:absolute;left:50%;top:18%;transform:translateX(-50%);font-size:40px;font-weight:950;color:var(--login-brand)}.med-login-orbit{position:absolute;right:10%;top:6%;width:136px;height:136px;border-radius:50%;border:1px solid rgba(90,169,255,.22);box-shadow:inset 0 0 32px rgba(46,230,214,.12)}
.med-form-header{margin-bottom:18px}.med-field{display:grid;gap:7px;margin:0 0 14px}.med-field label{font-size:12px;font-weight:900;color:var(--login-text)}.med-field input{width:100%;border:1px solid var(--login-border);border-radius:14px;background:#0b1526;color:var(--login-text);padding:12px 13px;font:inherit;font-weight:750;outline:none;box-shadow:none;min-height:42px}.med-field input::placeholder{color:rgba(169,190,210,.68)}.med-field input:focus{border-color:rgba(46,230,214,.58);box-shadow:0 0 0 4px rgba(46,230,214,.14)}.med-password-wrap{display:grid;grid-template-columns:1fr auto;gap:8px}.med-field-error{min-height:14px;color:var(--login-danger);font-size:12px;font-weight:800}.med-primary-button,.med-secondary-button,.med-ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:14px;padding:11px 14px;font-weight:900;text-decoration:none;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease;border:1px solid transparent;min-height:40px}.med-primary-button{background:linear-gradient(135deg,var(--login-brand),var(--login-brand2));color:#06111f;box-shadow:0 14px 32px rgba(46,230,214,.22)}.med-secondary-button,.med-ghost-button{border-color:var(--login-border);background:rgba(255,255,255,.06);color:var(--login-text)}.med-primary-button:hover,.med-secondary-button:hover,.med-ghost-button:hover{transform:translateY(-1px)}.med-primary-button[disabled]{opacity:.68;cursor:wait;transform:none}.med-login-options{margin:2px 0 15px}.med-check{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--login-muted)}.med-check input{width:auto;accent-color:var(--login-brand)}.med-link{color:var(--login-brand);font-weight:850}.med-inline-alert{border-radius:14px;border:1px solid rgba(255,107,128,.28);background:rgba(255,107,128,.10);color:var(--login-danger);padding:11px 13px;margin:0 0 13px;font-weight:850}.med-inline-alert.success{border-color:rgba(55,211,153,.28);background:rgba(55,211,153,.10);color:var(--login-success)}
body.med-login-body.med-ui-zoom-75{font-size:13px}.med-login-body.med-ui-zoom-75 .med-login-shell{width:min(1060px,100%);}.med-login-body.med-ui-zoom-75 .med-login-brand{min-height:520px}.med-login-body.med-ui-zoom-75 .med-login-scene{height:190px}.med-login-body.med-ui-zoom-75 .med-login-card{max-width:420px;justify-self:center;width:100%}
:focus-visible{outline:3px solid rgba(46,230,214,.38);outline-offset:3px}
@media(max-width:980px){.med-login-shell{grid-template-columns:1fr}.med-login-brand{min-height:auto}.med-login-scene{display:none}.med-login-card{max-width:none!important}}
@media(max-width:560px){body.med-login-body{padding:14px}.med-login-brand,.med-login-card{padding:22px;border-radius:22px}.med-row-between{align-items:flex-start}.med-password-wrap{grid-template-columns:1fr}.med-secondary-button,.med-ghost-button{width:auto}.med-login-options{align-items:flex-start;flex-direction:column}.med-login-brand h1{font-size:2.1rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}

/* i429: restore premium dark animated login and keep it independent from app-wide theme overrides. */
html[data-theme="clinical-midnight"] body.med-login-body,
body.med-login-body{
  background:
    radial-gradient(circle at 6% 10%,rgba(46,230,214,.18),transparent 30%),
    radial-gradient(circle at 88% 8%,rgba(90,169,255,.20),transparent 32%),
    radial-gradient(circle at 55% 88%,rgba(167,139,250,.13),transparent 34%),
    linear-gradient(135deg,#06101e,#0a1b33 48%,#07111f)!important;
  color:var(--login-text)!important;
  font-size:13px!important;
}
body.med-login-body .med-login-brand,
body.med-login-body .med-login-card{
  background:linear-gradient(145deg,rgba(16,29,51,.98),rgba(9,20,36,.96))!important;
  color:var(--login-text)!important;
  border-color:var(--login-border)!important;
  box-shadow:0 18px 46px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.06)!important;
}
body.med-login-body .med-login-card{max-width:410px;justify-self:center;width:100%;}
body.med-login-body .med-login-brand{min-height:500px;}
body.med-login-body .med-login-brand h1{font-size:clamp(2rem,3.6vw,3.35rem)!important;line-height:.99!important;}
body.med-login-body .med-login-card h2{font-size:clamp(1.4rem,2vw,1.8rem)!important;}
body.med-login-body .med-field input{min-height:38px!important;padding:10px 12px!important;font-size:13px!important;}
body.med-login-body .med-primary-button,
body.med-login-body .med-secondary-button,
body.med-login-body .med-ghost-button{min-height:37px!important;padding:9px 12px!important;font-size:12.5px!important;}
body.med-login-body::after{content:"";position:fixed;inset:-20%;z-index:-2;pointer-events:none;background:conic-gradient(from 180deg at 50% 50%,rgba(46,230,214,.0),rgba(46,230,214,.12),rgba(90,169,255,.10),rgba(167,139,250,.10),rgba(46,230,214,.0));filter:blur(18px);animation:loginAurora 18s linear infinite;}
.med-login-brand{animation:loginPanelIn .55s ease both;}
.med-login-card{animation:loginPanelIn .65s ease .08s both;}
.med-login-hospital{animation:loginHospitalFloat 4.8s ease-in-out infinite;}
.med-login-orbit{animation:loginOrbit 10s linear infinite;}
.med-login-stage{animation:loginStageGlow 3.8s ease-in-out infinite;}
.med-brand-mark{animation:loginMarkPulse 3.6s ease-in-out infinite;}
@keyframes loginAurora{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(180deg) scale(1.06)}100%{transform:rotate(360deg) scale(1)}}
@keyframes loginPanelIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes loginHospitalFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-10px,0)}}
@keyframes loginOrbit{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes loginStageGlow{0%,100%{opacity:.78;box-shadow:0 18px 48px rgba(46,230,214,.10)}50%{opacity:1;box-shadow:0 22px 64px rgba(90,169,255,.18)}}
@keyframes loginMarkPulse{0%,100%{box-shadow:0 14px 32px rgba(46,230,214,.22)}50%{box-shadow:0 18px 42px rgba(90,169,255,.34)}}
@media(prefers-reduced-motion:reduce){body.med-login-body::after,.med-login-brand,.med-login-card,.med-login-hospital,.med-login-orbit,.med-login-stage,.med-brand-mark{animation:none!important;}}

/* i432: explicit Northern Lights login animation restoration. */
html[data-theme="northern-lights"] body.med-login-body,
body.med-login-body{
  background:
    radial-gradient(circle at 10% 8%,rgba(139,255,220,.22),transparent 28%),
    radial-gradient(circle at 88% 6%,rgba(167,139,250,.25),transparent 30%),
    radial-gradient(circle at 54% 92%,rgba(56,189,248,.13),transparent 34%),
    linear-gradient(135deg,#07121f,#0d1b2e 54%,#0b1020)!important;
}
body.med-login-body .med-login-brand,
body.med-login-body .med-login-card{border-color:rgba(139,255,220,.20)!important;}
body.med-login-body .med-login-scene{overflow:visible!important;isolation:isolate;}
.med-login-aurora-ribbon{position:absolute;inset:auto auto 46px 5%;width:86%;height:70px;border-radius:999px;filter:blur(1px);opacity:.78;transform-origin:center;z-index:0;}
.med-login-aurora-ribbon.ribbon-a{background:linear-gradient(90deg,transparent,rgba(139,255,220,.42),rgba(103,232,249,.20),transparent);animation:loginRibbonA 6.5s ease-in-out infinite;}
.med-login-aurora-ribbon.ribbon-b{bottom:92px;left:14%;width:68%;background:linear-gradient(90deg,transparent,rgba(167,139,250,.38),rgba(139,255,220,.22),transparent);animation:loginRibbonB 8s ease-in-out infinite;}
.med-login-pulse-dot{position:absolute;width:11px;height:11px;border-radius:50%;background:#8bffdc;box-shadow:0 0 26px rgba(139,255,220,.90);z-index:2;}
.med-login-pulse-dot.dot-a{left:16%;top:38%;animation:loginDotFloat 4.2s ease-in-out infinite;}
.med-login-pulse-dot.dot-b{right:20%;top:22%;background:#a78bfa;box-shadow:0 0 26px rgba(167,139,250,.90);animation:loginDotFloat 5.1s ease-in-out infinite reverse;}
.med-login-orbit::after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;top:8px;left:50%;background:#8bffdc;box-shadow:0 0 24px rgba(139,255,220,.88);}
@keyframes loginRibbonA{0%,100%{transform:translateY(0) rotate(-4deg) scaleX(.88);opacity:.52}50%{transform:translateY(-18px) rotate(5deg) scaleX(1.08);opacity:.9}}
@keyframes loginRibbonB{0%,100%{transform:translateY(0) rotate(5deg) scaleX(.92);opacity:.48}50%{transform:translateY(16px) rotate(-6deg) scaleX(1.12);opacity:.82}}
@keyframes loginDotFloat{0%,100%{transform:translate3d(0,0,0) scale(.85);opacity:.62}50%{transform:translate3d(16px,-20px,0) scale(1.15);opacity:1}}
@media(prefers-reduced-motion:reduce){.med-login-aurora-ribbon,.med-login-pulse-dot,.med-login-orbit::after{animation:none!important;}}
