.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);background:#f5f7f6}.login-art{display:flex;flex-direction:column;justify-content:center;padding:clamp(52px,7vw,112px);background:linear-gradient(145deg,#0d1b2a,#1b4965);color:#fff}.login-art-clinical{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 82% 13%,#58b5a438 0,transparent 27%),radial-gradient(circle at 10% 92%,#ed6f5e25 0,transparent 26%),linear-gradient(145deg,#0b2531 0,#12475a 52%,#176f73 100%)}.login-art-clinical:before,.login-art-clinical:after{content:"";position:absolute;z-index:-1;border:1px solid #ffffff12;border-radius:50%}.login-art-clinical:before{right:-170px;top:-170px;width:490px;height:490px;box-shadow:0 0 0 75px #ffffff05,0 0 0 150px #ffffff03}.login-art-clinical:after{left:-150px;bottom:-250px;width:420px;height:420px;box-shadow:0 0 0 65px #ffffff04}.login-logo{display:flex;align-items:center;gap:15px;margin-bottom:clamp(34px,5vh,58px)}.login-logo img{width:72px;height:72px;filter:drop-shadow(0 14px 25px #06192355)}.login-logo strong,.login-logo small{display:block}.login-logo strong{color:#fff;font:700 23px/1.05 'Segoe Print','Bradley Hand','Comic Sans MS',cursive;letter-spacing:.01em}.login-logo small{margin-top:5px;color:#a8dcd3;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.login-art h1{font-size:clamp(38px,5vw,70px);line-height:1.02;letter-spacing:-.06em;margin:24px 0 18px}.login-art .welcome-handwritten{display:grid;gap:2px;margin:20px 0 22px;font-family:'Segoe Print','Bradley Hand','Comic Sans MS',cursive;font-weight:600;line-height:1.03;letter-spacing:-.045em;transform:rotate(-1deg);transform-origin:left}.welcome-handwritten span{color:#fff;font-size:.7em;font-weight:500}.login-art .welcome-handwritten em{color:#ffad9b;font-size:1.08em;font-style:normal;text-shadow:0 8px 28px #061c254f}.login-art p{max-width:590px;color:#d2e8e8;font-size:17px;line-height:1.68}.welcome-copy{margin-bottom:0}.light{color:#a9d8d4}.welcome-paths{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;max-width:650px}.welcome-paths span{padding:9px 12px;border:1px solid #ffffff1f;border-radius:999px;background:#ffffff0c;color:#e5f1f0;font-size:11px;font-weight:750;letter-spacing:.02em;backdrop-filter:blur(4px)}.welcome-paths span:before{content:"✦";margin-right:7px;color:#ff9b88}.welcome-signature{display:block;margin:27px 0 0 4px;color:#a7d9d1;font-family:'Segoe Print','Bradley Hand','Comic Sans MS',cursive;font-size:13px;font-style:italic;letter-spacing:.06em;transform:rotate(-2deg);transform-origin:left}.medical-symbol{width:82px;height:82px;margin-bottom:28px}.medical-symbol svg{fill:none;stroke:#9bd7e5;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.login-panel{display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 100% 0,#d9eee847 0,transparent 28%),#f5f7f6}.login-panel .login-card{width:min(410px,100%);padding:42px;background:#ffffffed;border:1px solid #fff;border-radius:28px;box-shadow:0 22px 65px #17374614;backdrop-filter:blur(12px)}.login-panel h2{font-size:32px;letter-spacing:-.05em;margin:12px 0 5px;color:#173746}.login-panel p{color:#6e777c;margin-bottom:25px;line-height:1.55}.login-panel label{display:block;font-size:13px;font-weight:700;margin:16px 0;color:#38505a}.login-panel input{display:block;width:100%;border:1px solid #d2deda;border-radius:11px;padding:13px;margin-top:7px;background:#fbfdfc;font:inherit;outline:none;transition:.18s}.login-panel input:focus{border-color:#58aa9c;background:#fff;box-shadow:0 0 0 4px #58aa9c1c}.login-panel button{width:100%;border:0;border-radius:12px;padding:14px;background:linear-gradient(100deg,#143b49,#176f73);color:#fff;font-weight:750;font-size:15px;margin-top:8px;cursor:pointer;box-shadow:0 10px 22px #176f7333}.login-panel button:hover{background:linear-gradient(100deg,#102f3a,#135f63)}.login-panel button span{float:right;font-size:20px;line-height:15px;color:#ffab98}.login-panel .error{background:#fff0f0;color:#c41e3a;border-radius:10px;padding:10px;font-size:13px;margin-bottom:12px}@media(max-width:950px){.login-layout{grid-template-columns:minmax(0,1fr) minmax(380px,.82fr)}.login-art{padding:52px}.welcome-paths span{padding:8px 10px}.login-logo{margin-bottom:34px}}@media(max-width:760px){.login-layout{grid-template-columns:1fr}.login-art{min-height:auto;padding:40px 28px 46px}.login-logo{margin-bottom:29px}.login-logo img{width:60px;height:60px}.login-art .welcome-handwritten{font-size:44px;margin:16px 0}.login-art p{font-size:15px}.welcome-paths{margin-top:19px}.welcome-signature{margin-top:20px}.login-panel{padding:26px 20px 36px}.login-panel .login-card{padding:32px 27px}}@media(max-width:390px){.welcome-paths span{font-size:10px}.login-art .welcome-handwritten{font-size:39px}.login-logo strong{font-size:20px}}
.register-link{display:block;text-align:center;margin-top:20px;color:#0071e3;text-decoration:none;font-weight:600}.success{padding:12px 14px;border-radius:12px;background:#e8f8ee;color:#20743a;margin-bottom:16px;font-size:13px}

/* ================================================================
   Iluminación "Apple / IA" de la página de acceso
   Auroras en movimiento, malla de datos, barrido de luz y pulso ECG.
   ================================================================ */
.login-layout{background:#f3f6f6}
.login-art-clinical{background:linear-gradient(152deg,#071A24 0,#0C3446 46%,#0F5C63 100%)}
.login-art-clinical>*{position:relative;z-index:2}

.ai-lights{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;border-radius:inherit}
.ai-orb{position:absolute;border-radius:50%;filter:blur(58px);opacity:.72;will-change:transform}
.ai-orb--a{width:56%;padding-bottom:56%;top:-16%;left:-12%;background:radial-gradient(circle at 32% 32%,#28E0D0 0,#28E0D000 68%);animation:aiDriftA 19s ease-in-out infinite alternate}
.ai-orb--b{width:52%;padding-bottom:52%;top:24%;right:-16%;background:radial-gradient(circle at 60% 40%,#7DB2FF 0,#7DB2FF00 68%);animation:aiDriftB 23s ease-in-out infinite alternate}
.ai-orb--c{width:46%;padding-bottom:46%;bottom:-18%;left:22%;background:radial-gradient(circle at 45% 55%,#FF9B88 0,#FF9B8800 68%);animation:aiDriftC 27s ease-in-out infinite alternate}
@keyframes aiDriftA{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(16%,12%,0) scale(1.18)}}
@keyframes aiDriftB{0%{transform:translate3d(0,0,0) scale(1.06)}100%{transform:translate3d(-14%,16%,0) scale(.92)}}
@keyframes aiDriftC{0%{transform:translate3d(0,0,0) scale(.95)}100%{transform:translate3d(12%,-14%,0) scale(1.2)}}

.ai-mesh{position:absolute;inset:-10%;opacity:.2;background-image:linear-gradient(#ffffff1f 1px,transparent 1px),linear-gradient(90deg,#ffffff1f 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(72% 62% at 30% 34%,#000 0,transparent 78%);mask-image:radial-gradient(72% 62% at 30% 34%,#000 0,transparent 78%);animation:aiMesh 34s linear infinite}
@keyframes aiMesh{to{background-position:44px 44px,44px 44px}}

.ai-scan{position:absolute;left:-40%;top:0;width:38%;height:100%;transform:skewX(-14deg);background:linear-gradient(90deg,transparent,#ffffff14 42%,#ffffff26 52%,transparent);animation:aiScan 9s ease-in-out infinite}
@keyframes aiScan{0%{left:-45%;opacity:0}12%{opacity:1}62%{left:112%;opacity:0}100%{left:112%;opacity:0}}

.ai-eyebrow{display:inline-flex;align-items:center;gap:9px}
.ai-dot{width:7px;height:7px;border-radius:50%;background:#5FE3D2;box-shadow:0 0 0 0 #5fe3d280;animation:aiPing 2.4s ease-out infinite}
@keyframes aiPing{0%{box-shadow:0 0 0 0 #5fe3d266}70%{box-shadow:0 0 0 11px #5fe3d200}100%{box-shadow:0 0 0 0 #5fe3d200}}

.ai-ecg{display:block;width:min(430px,100%);height:auto;margin:20px 0 -6px;opacity:.95}
.ai-ecg-line{stroke-dasharray:1400;stroke-dashoffset:1400;animation:aiTrace 5.6s cubic-bezier(.55,0,.2,1) infinite}
@keyframes aiTrace{0%{stroke-dashoffset:1400}45%{stroke-dashoffset:0}88%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-1400;opacity:.2}}
.ai-ecg-spark{stroke-dasharray:18 1382;stroke-dashoffset:1400;opacity:.95;filter:drop-shadow(0 0 8px #fff);animation:aiSpark 5.6s cubic-bezier(.55,0,.2,1) infinite}
@keyframes aiSpark{0%{stroke-dashoffset:1400}45%{stroke-dashoffset:0}46%,100%{opacity:0}}

.login-logo img{animation:aiFloat 7s ease-in-out infinite}
@keyframes aiFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

.login-art .welcome-handwritten em{background:linear-gradient(96deg,#FFC9BC 0,#FFAD9B 42%,#8FE7DC 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 8px 26px #0a1f2a55)}

.welcome-paths span{transition:transform .3s cubic-bezier(.22,1,.36,1),background .3s,border-color .3s;animation:aiRise .7s cubic-bezier(.22,1,.36,1) both}
.welcome-paths span:nth-child(1){animation-delay:.10s}
.welcome-paths span:nth-child(2){animation-delay:.18s}
.welcome-paths span:nth-child(3){animation-delay:.26s}
.welcome-paths span:nth-child(4){animation-delay:.34s}
.welcome-paths span:hover{transform:translateY(-3px);background:#ffffff1c;border-color:#ffffff40}
@keyframes aiRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ---- panel derecho: luz difusa y tarjeta con barrido ---- */
.login-panel{position:relative;isolation:isolate;background:#f3f6f6}
.panel-lights{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(46% 38% at 88% 6%,#7ce0d233 0,transparent 66%),radial-gradient(40% 34% at 8% 94%,#a9c6ff2e 0,transparent 66%);animation:aiPanel 16s ease-in-out infinite alternate}
@keyframes aiPanel{0%{transform:scale(1)}100%{transform:scale(1.14) translateY(-2%)}}
.login-panel>.login-card{position:relative;z-index:1}

.ai-card{position:relative;overflow:hidden;background:#fffffff2;border:1px solid #ffffff;box-shadow:0 26px 70px #12363f1c,0 1px 0 #ffffff inset;animation:aiCardIn .8s cubic-bezier(.22,1,.36,1) both}
@keyframes aiCardIn{from{opacity:0;transform:translateY(20px) scale(.985)}to{opacity:1;transform:none}}
.ai-card::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,#5FE3D2aa,#7DB2FF55 42%,transparent 72%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.ai-card-sheen{position:absolute;top:0;left:-60%;width:45%;height:100%;transform:skewX(-16deg);background:linear-gradient(90deg,transparent,#ffffffe6 50%,transparent);opacity:.55;pointer-events:none;animation:aiSheen 7.5s ease-in-out infinite}
@keyframes aiSheen{0%{left:-60%}30%{left:130%}100%{left:130%}}

.login-panel input{transition:border-color .2s,box-shadow .25s,background .2s}
.login-panel input:focus{border-color:#3FC6B4;box-shadow:0 0 0 4px #3fc6b41f,0 6px 18px #1763631a}
.login-panel button{position:relative;overflow:hidden;background:linear-gradient(100deg,#0E323E,#12626B 55%,#1A8A83);background-size:180% 100%;transition:background-position .5s cubic-bezier(.22,1,.36,1),transform .2s,box-shadow .3s}
.login-panel button:hover{background-position:100% 0;transform:translateY(-1px);box-shadow:0 14px 30px #176f7340}
.login-panel button::after{content:"";position:absolute;top:0;left:-45%;width:35%;height:100%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,#ffffff5c,transparent);animation:aiBtn 4.5s ease-in-out infinite}
@keyframes aiBtn{0%{left:-45%}45%{left:125%}100%{left:125%}}

@media(max-width:760px){.ai-ecg{width:100%;margin:14px 0 0}.ai-orb{filter:blur(46px)}}
@media(prefers-reduced-motion:reduce){.ai-orb,.ai-mesh,.ai-scan,.ai-dot,.ai-ecg-line,.ai-ecg-spark,.login-logo img,.welcome-paths span,.panel-lights,.ai-card,.ai-card-sheen,.login-panel button::after{animation:none}.ai-ecg-line{stroke-dashoffset:0}.ai-ecg-spark{opacity:0}}

/* ===== Acceso directo a NursIA en la pantalla de acceso ===== */
.login-panel{align-content:center}
.login-stack{position:relative;z-index:1;width:min(410px,100%);display:flex;flex-direction:column;gap:18px}
.login-stack .login-card{width:100%}
.nursia-login-card{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;padding:18px 20px;border-radius:24px;text-decoration:none;color:#EAF2FB;background:linear-gradient(140deg,#0A1018 0,#0D1622 48%,#102030 100%);border:1px solid #1d3244;box-shadow:0 18px 44px #06121e33,0 1px 0 #ffffff0d inset;transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s}
.nursia-login-card:hover{transform:translateY(-3px);box-shadow:0 26px 60px #06121e4d,0 1px 0 #ffffff14 inset}
.nursia-login-glow{position:absolute;inset:-60%;z-index:-1;pointer-events:none;background:radial-gradient(36% 48% at 18% 24%,#22d3ee4a 0,transparent 62%),radial-gradient(34% 44% at 82% 34%,#b99cff45 0,transparent 62%),radial-gradient(38% 52% at 56% 98%,#ff7ac62e 0,transparent 60%);filter:blur(12px);animation:nursiaAurora2 15s ease-in-out infinite alternate}
@keyframes nursiaAurora2{0%{transform:translate3d(-3%,-2%,0) scale(1)}50%{transform:translate3d(5%,3%,0) scale(1.1)}100%{transform:translate3d(-2%,4%,0) scale(1.04)}}
.nursia-login-icon{display:grid;place-items:center;width:54px;height:54px;flex:none;border-radius:17px;overflow:hidden;box-shadow:0 10px 24px #0a1a2a73,0 0 0 1px #2a4257}
.nursia-login-icon svg{width:100%;height:100%;display:block}
.nursia-login-ecg{filter:drop-shadow(0 0 10px #7db2ffaa);stroke-dasharray:1000;stroke-dashoffset:1000;animation:nursiaTrace2 3.6s cubic-bezier(.5,0,.2,1) infinite}
@keyframes nursiaTrace2{0%{stroke-dashoffset:1000}42%{stroke-dashoffset:0}82%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-1000;opacity:.15}}
.nursia-login-text{display:block;min-width:0}
.nursia-login-eyebrow{display:block;font-size:9.5px;font-weight:800;letter-spacing:.16em;color:#7fd7d0}
.nursia-login-card strong{display:block;margin:5px 0 3px;font-size:21px;letter-spacing:-.035em;line-height:1.1;font-weight:750;background:linear-gradient(96deg,#EAF4FF 8%,#A7D8FF 52%,#D7C2FF 96%);-webkit-background-clip:text;background-clip:text;color:transparent}
.nursia-login-card small{display:block;color:#a2bccf;font-size:12.5px;line-height:1.45}
.nursia-login-go{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;background:#ffffff10;border:1px solid #ffffff24;color:#9fe6dd;font-size:17px;transition:transform .3s,background .3s}
.nursia-login-card:hover .nursia-login-go{transform:translateX(4px);background:#ffffff1c}
@media(max-width:760px){.login-stack{width:100%}.nursia-login-card{padding:16px}.nursia-login-icon{width:48px;height:48px;border-radius:15px}.nursia-login-card strong{font-size:19px}}
@media(prefers-reduced-motion:reduce){.nursia-login-glow,.nursia-login-ecg{animation:none}.nursia-login-ecg{stroke-dashoffset:0}}
