.loginPageLayout{min-height:100vh;display:flex;flex-direction:column;position:relative}.loginContainer{--medical-primary:#2563eb;--medical-primary-dark:#1d4ed8;--medical-primary-light:#3b82f6;--medical-secondary:#10b981;--medical-accent:#0891b2;--medical-success:#059669;--medical-warning:#d97706;--medical-error:#dc2626;--medical-info:#0284c7;--text-primary:#1f2937;--text-secondary:#6b7280;--text-light:#9ca3af;--text-muted:#d1d5db;--background:#ffffff;--background-light:#f8fafc;--background-gray:#f1f5f9;--background-medical:#f0f9ff;--border-color:#e2e8f0;--border-light:#f1f5f9;--shadow-sm:0 1px 2px 0 rgb(0 0 0/0.05);--shadow-md:0 4px 6px -1px rgb(0 0 0/0.1);--shadow-lg:0 10px 15px -3px rgb(0 0 0/0.1);--shadow-xl:0 20px 25px -5px rgb(0 0 0/0.1),0 10px 10px -5px rgb(0 0 0/0.04);--shadow-medical:0 8px 25px -5px rgba(37,99,235,0.15),0 8px 16px -8px rgba(37,99,235,0.1);--border-radius:12px;--border-radius-lg:16px;--border-radius-xl:20px;--transition:all 0.3s cubic-bezier(0.4,0,0.2,1);--transition-smooth:all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);position:relative;width:100%;flex:1 1 auto;margin:0;padding:clamp(1rem,3vw,2rem) clamp(1rem,3vw,2rem) clamp(80px,10vh,100px);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-x:hidden;overflow-y:auto;z-index:1000;background:linear-gradient(135deg,rgba(37,99,235,.12),rgba(16,185,129,.08) 50%,rgba(8,145,178,.1)),radial-gradient(circle at 20% 20%,rgba(37,99,235,.15) 0,transparent 50%),radial-gradient(circle at 80% 80%,rgba(16,185,129,.12) 0,transparent 50%),radial-gradient(circle at 50% 50%,rgba(8,145,178,.08) 0,transparent 60%),linear-gradient(90deg,transparent 48%,rgba(37,99,235,.05) 50%,transparent 52%),linear-gradient(0deg,transparent 48%,rgba(16,185,129,.05) 50%,transparent 52%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-opacity='0.03'%3E%3Cpolygon fill='%232563eb' points='50 0 60 40 100 50 60 60 50 100 40 60 0 50 40 40'/%3E%3C/g%3E%3C/svg%3E"),#f8fafc;background-size:100% 100%,600px 600px,500px 500px,400px 400px,60px 60px,60px 60px,100px 100px,100% 100%;background-position:0 0,0 0,100% 100%,50% 50%,0 0,0 0,0 0,0 0;background-attachment:fixed;min-height:100%}.loginTopActions{position:absolute;top:clamp(12px,2vw,18px);right:clamp(24px,3vw,32px);z-index:200}.loginContent{flex:1 1 auto;display:flex;justify-content:center;align-items:center;width:100%;position:relative;z-index:100;padding-top:clamp(1rem,5vh,2.5rem);padding-bottom:clamp(1rem,5vh,2.5rem)}body.login-page footer{display:none!important}.loginContainer:before{top:10%;left:5%;width:300px;height:300px;background:radial-gradient(circle,rgba(37,99,235,.15) 0,rgba(37,99,235,.05) 50%,transparent 100%);filter:blur(80px);animation:medicalFloat 12s ease-in-out infinite}.loginContainer:after,.loginContainer:before{content:"";position:absolute;border-radius:50%;z-index:1}.loginContainer:after{bottom:15%;right:8%;width:250px;height:250px;background:radial-gradient(circle,rgba(16,185,129,.12) 0,rgba(16,185,129,.04) 50%,transparent 100%);filter:blur(70px);animation:medicalFloat 15s ease-in-out infinite reverse}@keyframes medicalFloat{0%,to{transform:translateY(0) translateX(0) scale(1);opacity:.7}33%{transform:translateY(-15px) translateX(10px) scale(1.1);opacity:.9}66%{transform:translateY(10px) translateX(-8px) scale(.95);opacity:.8}}.loginCard{background:rgba(255,255,255,.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:clamp(2rem,5vw,3rem) clamp(1.5rem,4vw,2.5rem);margin:0 auto;border-radius:var(--border-radius-xl);box-shadow:0 20px 40px -12px rgba(37,99,235,.15),0 8px 16px -8px rgba(37,99,235,.1),0 0 0 1px rgba(37,99,235,.08),inset 0 1px 0 rgba(255,255,255,.8);width:100%;max-width:clamp(320px,90vw,420px);min-height:clamp(320px,50vh,550px);max-height:calc(100vh - 160px);overflow-y:auto;box-sizing:border-box;text-align:center;position:relative;z-index:10;transition:var(--transition-smooth);border:1px solid rgba(37,99,235,.12);display:flex;flex-direction:column;justify-content:space-between;overflow:visible}@media (min-width:1200px){.loginCard{max-height:calc(100vh - 220px);min-height:550px}}@media (min-width:768px) and (max-width:1199px){.loginCard{max-height:calc(100vh - 180px);min-height:500px}}@media (min-width:481px) and (max-width:767px){.loginCard{max-height:calc(100vh - 150px);min-height:auto}}@media (max-width:480px){.loginCard{max-height:calc(100vh - 120px);min-height:auto}}.loginCard:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--medical-primary) 0,var(--medical-secondary) 50%,var(--medical-accent) 100%);border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0;z-index:1}.loginCard:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 25px 50px -12px rgba(37,99,235,.25),0 0 0 1px rgba(37,99,235,.15),inset 0 1px 0 rgba(255,255,255,.9)}.subtitle{color:var(--text-secondary);font-size:clamp(.9375rem,2.2vw,1.125rem);margin-bottom:.5rem;font-weight:500;line-height:1.6;opacity:.85;position:relative}.subtitle:before{content:"Portal Médico Seguro";display:block;font-size:clamp(.8125rem,1.8vw,.9375rem);color:var(--medical-primary);font-weight:600;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.form{display:flex;flex-direction:column;gap:clamp(.75rem,2vw,1rem);padding:clamp(.5rem,1.5vw,.75rem) 0 clamp(1rem,4vw,1.5rem);box-sizing:border-box;margin:0;background:transparent;border:none;backdrop-filter:none;flex:1;min-height:clamp(250px,40vh,300px);justify-content:center}.inputGroup{min-height:clamp(40px,3.5vw,48px);margin-bottom:0}.inputGroup,.inputWithIcon{position:relative;width:100%}.inputWithIcon{display:flex;align-items:center;max-width:clamp(300px,78%,360px);margin:0 auto}.inputIcon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:16px;z-index:10;pointer-events:none;opacity:.6;transition:var(--transition)}.input{width:100%;min-height:clamp(40px,6vw,48px);padding:clamp(.5rem,1.5vw,.75rem) clamp(1rem,2vw,1.25rem) clamp(.5rem,1.5vw,.75rem) clamp(2.5rem,4vw,3rem);border:2px solid var(--border-color);border-radius:var(--border-radius);font-size:clamp(.8125rem,2vw,.9375rem);font-weight:500;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);transition:var(--transition-smooth);outline:none;color:var(--text-primary);position:relative;box-sizing:border-box;box-shadow:var(--shadow-sm)}.input:focus{border-color:var(--medical-primary);box-shadow:0 0 0 3px rgba(37,99,235,.12),var(--shadow-medical);background:rgba(255,255,255,1);transform:translateY(-2px)}.inputWithIcon:focus-within .inputIcon{opacity:1;color:var(--medical-primary);transform:translateY(-50%) scale(1.1)}.input:hover:not(:focus){border-color:var(--medical-primary-light);background:rgba(255,255,255,.98);transform:translateY(-1px);box-shadow:var(--shadow-md)}.input::placeholder{color:var(--text-light);font-weight:400;transition:var(--transition)}.input:focus::placeholder{opacity:.6;transform:translateY(-1px)}.input[type=email],.input[type=password]{font-size:clamp(.6875rem,1.5vw,.8125rem);line-height:1.2;font-weight:500}.input[type=email]::placeholder,.input[type=password]::placeholder{font-size:clamp(.625rem,1.2vw,.75rem);color:var(--text-light);font-weight:400}.forgotPassword{text-align:right;margin-bottom:.125rem}.forgotPasswordLink{color:var(--medical-accent);text-decoration:none;font-size:clamp(.8125rem,2vw,.9375rem);font-weight:600;transition:var(--transition);position:relative}.forgotPasswordLink:hover{color:var(--medical-primary)}.forgotPasswordLink:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--medical-accent),var(--medical-primary));transition:width .3s ease}.forgotPasswordLink:hover:after{width:100%}.loginButton{background:linear-gradient(135deg,var(--medical-primary) 0,var(--medical-secondary) 50%,var(--medical-accent) 100%);background-size:200% 200%;color:white;padding:clamp(.5rem,1.2vw,.75rem) clamp(1rem,2.2vw,1.25rem);border:none;border-radius:var(--border-radius);font-size:clamp(.8125rem,2vw,.9375rem);font-weight:700;cursor:pointer;transition:var(--transition-smooth);box-shadow:0 8px 25px -5px rgba(37,99,235,.3),0 8px 16px -8px rgba(37,99,235,.2),inset 0 1px 0 rgba(255,255,255,.2);position:relative;overflow:hidden;animation:medicalButtonGradient 6s ease infinite;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;justify-content:center;min-height:clamp(1rem,2vw,50px);line-height:1;width:100%;max-width:clamp(260px,70%,320px);margin:.5rem auto 0}@keyframes medicalButtonGradient{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.loginButton:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transition:left .6s ease}.loginButton:hover:before{left:100%}.loginButton:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 20px 40px rgba(37,99,235,.3),inset 0 1px 0 rgba(255,255,255,.3)}.loginButton:active{transform:translateY(-1px) scale(.98)}.divider{display:flex;align-items:center;margin:.5rem 0;color:var(--text-light);font-size:clamp(.75rem,1.8vw,.875rem);font-weight:500}.divider:after,.divider:before{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border-color),transparent)}.divider:before{margin-right:1rem}.divider:after{margin-left:1rem}.registerLink{color:var(--text-secondary);font-size:clamp(.75rem,1.8vw,.575rem);line-height:1.1;font-weight:500}.registerLink a{color:var(--medical-primary);text-decoration:none;font-weight:700;margin-left:.5rem;transition:var(--transition);position:relative}.registerLink a:hover{color:var(--medical-primary-dark)}.registerLink a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--medical-primary),var(--medical-secondary));transition:width .3s ease}.registerLink a:hover:after{width:100%}.homeLink{position:absolute;top:1.5rem;left:1.5rem;color:var(--medical-primary);background:rgba(255,255,255,.9);text-decoration:none;font-weight:600;padding:.75rem 1.5rem;border-radius:var(--border-radius);backdrop-filter:blur(20px);border:1px solid rgba(37,99,235,.15);transition:var(--transition);z-index:99999!important;pointer-events:auto!important;font-size:clamp(.75rem,1.8vw,.875rem);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:.5rem}.homeLink:before{content:"←";font-size:1.1em;font-weight:700}.homeLink:hover{background:rgba(255,255,255,.95);color:var(--medical-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:rgba(37,99,235,.25)}.loginCard{animation:medicalCardSlideIn 1s cubic-bezier(.34,1.56,.64,1)}@keyframes medicalCardSlideIn{0%{opacity:0;transform:translateY(60px) scale(.85) rotateX(20deg);filter:blur(10px)}to{opacity:1;transform:translateY(0) scale(1) rotateX(0deg);filter:blur(0)}}@media (min-width:768px){.loginContainer{position:relative}.loginContainer:before{animation-delay:-3s}.loginContainer:after{animation-delay:-5s}}.loginCard:after{content:"";position:absolute;top:1rem;right:1rem;width:12px;height:12px;background:var(--medical-success);border-radius:50%;box-shadow:0 0 10px rgba(5,150,105,.4),inset 0 1px 1px rgba(255,255,255,.5);animation:securityPulse 2s ease-in-out infinite;z-index:3}@keyframes securityPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.2);opacity:1}}.modalOverlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center;z-index:1000;backdrop-filter:blur(8px);animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:rgba(255,255,255,.95);backdrop-filter:blur(20px);padding:clamp(2rem,5vw,3rem);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-xl),0 0 0 1px rgba(255,255,255,.1);width:90%;max-width:28rem;text-align:center;animation:modalSlideIn .4s cubic-bezier(.34,1.56,.64,1);border:1px solid rgba(255,255,255,.2)}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.8) translateY(-50px)}to{opacity:1;transform:scale(1) translateY(0)}}.modalTitle{font-size:clamp(1.5rem,4vw,2rem);font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2 50%,#f093fb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem;line-height:1.2}@media (max-height:850px){.loginPageLayout{justify-content:center}.loginContent{padding-top:1rem;padding-bottom:1rem;flex:0 1 auto}.loginCard{padding:1.5rem;min-height:auto;max-height:90vh}.logo{font-size:1.5rem}.logo,.subtitle{margin-bottom:.5rem}.subtitle{font-size:.9rem}.subtitle:before{font-size:.75rem;margin-bottom:.25rem}.form{gap:.5rem;padding-bottom:.5rem;min-height:auto}.inputGroup{min-height:36px}.input{min-height:38px;padding:.4rem 1rem .4rem 2.5rem;font-size:.85rem}.inputIcon{font-size:14px;left:.8rem}.loginButton{padding:.5rem 1rem;margin-top:.25rem;min-height:36px;font-size:.85rem}.divider{margin:.25rem 0;font-size:.75rem}.forgotPasswordLink,.registerLink{font-size:.8rem}}.modalDescription{color:var(--text-secondary);margin-bottom:1rem;line-height:1.6}.modalDescription,.modalInput{font-size:clamp(1rem,2.5vw,1.125rem);font-weight:500}.modalInput{width:100%;padding:1.25rem 1.5rem;border:2px solid rgba(229,231,235,.8);border-radius:var(--border-radius);margin-bottom:.5rem;outline:none;transition:var(--transition);background:rgba(255,255,255,.8);backdrop-filter:blur(10px);color:var(--text-primary)}.modalInput:focus{border-color:var(--primary-color);box-shadow:0 0 0 4px rgba(37,99,235,.1),0 8px 16px rgba(37,99,235,.15);background:rgba(255,255,255,.95);transform:translateY(-2px)}.modalInput::placeholder{color:var(--text-light);font-weight:400}.modalButtons{display:flex;gap:1rem;flex-direction:column}.modalButton{padding:1.25rem 2rem;border:none;border-radius:var(--border-radius);font-size:clamp(1rem,2.5vw,1.125rem);font-weight:700;cursor:pointer;transition:var(--transition);position:relative;overflow:hidden}.modalButtonPrimary{background:linear-gradient(135deg,#667eea,#764ba2 25%,#f093fb 50%,#f5576c 75%,#4facfe);background-size:200% 200%;color:white;box-shadow:var(--shadow-lg),0 0 20px rgba(37,99,235,.3);animation:gradientButton 4s ease infinite}.modalButtonPrimary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .6s ease}.modalButtonPrimary:hover:before{left:100%}.modalButtonPrimary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 16px 32px rgba(37,99,235,.4),0 0 30px rgba(37,99,235,.3)}.modalButtonSecondary{background:rgba(255,255,255,.8);color:var(--text-secondary);border:2px solid rgba(229,231,235,.8);backdrop-filter:blur(10px)}.modalButtonSecondary:hover{background:rgba(243,244,246,.9);color:var(--text-primary);border-color:var(--border-color);transform:translateY(-2px)}.input:invalid{border-color:var(--border-color);box-shadow:none}.input:invalid:focus{border-color:var(--medical-primary);box-shadow:0 0 0 3px rgba(37,99,235,.12),var(--shadow-medical)}.loginButton:disabled{opacity:.5;cursor:not-allowed;transform:none;animation:none;background:var(--text-light)}.loginButton:disabled:hover{transform:none;box-shadow:var(--shadow-sm)}@media (min-width:1200px){.loginContainer{padding:2rem 2rem 100px!important}.loginCard{max-width:450px;min-height:550px;padding:3rem 2.5rem}.logo{font-size:2.5rem;margin-bottom:1rem}.subtitle{font-size:1rem;margin-bottom:2.5rem}.input{min-height:60px;padding:1.25rem 3rem;font-size:1rem}.loginButton{padding:1.25rem 2rem;font-size:1rem}.homeLink{top:2rem;left:2rem;padding:1rem 1.5rem;font-size:.875rem}}@media (min-width:768px) and (max-width:1199px){.loginContainer{padding:1.5rem 1.5rem 90px!important}.loginCard{max-width:400px;min-height:500px;padding:2.5rem 2rem}.logo{font-size:2.25rem;margin-bottom:.875rem}.subtitle{margin-bottom:2rem}.input,.subtitle{font-size:.9375rem}.input{min-height:56px;padding:1.125rem 2.75rem}.loginButton{padding:1.125rem 1.75rem;font-size:.9375rem}.homeLink{top:1.5rem;left:1.5rem;padding:.875rem 1.25rem;font-size:.8125rem}}@media (min-width:481px) and (max-width:767px){.loginContainer{padding:1rem 1rem 85px!important;align-items:center;justify-content:center}.loginCard{max-width:calc(100vw - 2rem);min-height:auto;padding:2rem 1.5rem;margin:0 auto}.logo{font-size:2rem;margin-bottom:.75rem}.subtitle{font-size:.875rem;margin-bottom:1.75rem}.form{gap:1.5rem;padding:.75rem 0}.input{min-height:52px;padding:1rem 2.5rem;font-size:.875rem}.loginButton{padding:1rem 1.5rem;font-size:.875rem}.homeLink{top:1rem;left:1rem;padding:.75rem 1rem;font-size:.75rem}.loginContainer:after,.loginContainer:before{width:200px;height:200px}}@media (max-width:480px){.loginContainer{padding:1.25rem 1.25rem 80px!important;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#f0f9ff,#e0f2fe)!important;background-size:cover!important;background-position:50%!important;background-attachment:fixed!important}.loginCard{max-width:100vw;min-height:auto;padding:2rem 1.5rem;margin:0 auto;border-radius:1rem;box-shadow:0 4px 16px rgba(37,99,235,.1)}.logo{font-size:2rem;margin-bottom:.75rem}.subtitle{font-size:.875rem;margin-bottom:1.5rem}.form{gap:1.5rem;padding:.75rem 0}.input,.inputGroup{min-height:52px}.input{padding:1rem 2.5rem;font-size:.875rem}.loginButton{padding:1rem 1.5rem;font-size:.875rem}.divider,.forgotPasswordLink{font-size:.8125rem}.divider{margin:1.25rem 0}.registerLink{font-size:.8125rem}.homeLink{top:1rem;left:1rem;padding:.75rem 1rem;font-size:.75rem}.loginContainer:after,.loginContainer:before{display:none}}.loginButton.loading{position:relative;cursor:not-allowed;pointer-events:none;display:flex;align-items:center;justify-content:center}.loginButton.loading:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:white;border-radius:50%;animation:medicalSpin 1s linear infinite}.loginButton.loading:hover{transform:none;box-shadow:0 8px 25px -5px rgba(37,99,235,.3),0 8px 16px -8px rgba(37,99,235,.2),inset 0 1px 0 rgba(255,255,255,.2)}@keyframes medicalSpin{to{transform:translate(-50%,-50%) rotate(1turn)}}.validationMessage{font-size:.75rem;color:var(--medical-error);margin-top:.5rem;padding:.5rem .75rem;background:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.2);border-radius:.375rem;display:none}.input:invalid+.validationMessage{display:block}.inputWithIcon:hover .inputIcon{opacity:.8;transform:translateY(-50%) scale(1.1)}@media (prefers-reduced-motion:reduce){.loginContainer *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast:high){.loginCard{border:2px solid var(--medical-primary);background:white}.input{border-width:3px;background:white}.loginButton{background:var(--medical-primary);border:2px solid var(--medical-primary-dark)}}.loginPage-footer{position:fixed;left:0;right:0;bottom:0;width:100%;margin-top:0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid rgba(37,99,235,.08);z-index:1000;box-shadow:0 -2px 10px rgba(37,99,235,.05)}.loginPage-footerContent{display:flex;justify-content:space-between;align-items:center;max-width:100vw;margin:0 auto}.loginPage-footerText{color:var(--text-secondary);font-size:clamp(.6875rem,1.5vw,.75rem);margin:0;font-weight:500;letter-spacing:.01em}.loginPage-footerLinks{display:flex;gap:clamp(1rem,2.5vw,1.5rem);align-items:center}.loginPage-footerLink{color:var(--medical-accent);text-decoration:none;font-size:clamp(.6875rem,1.5vw,.75rem);font-weight:600;transition:var(--transition);position:relative;padding:.25rem 0}.loginPage-footerLink:hover{color:var(--medical-primary);transform:translateY(-1px)}.loginPage-footerLink:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:linear-gradient(90deg,var(--medical-accent),var(--medical-primary));transition:width .3s ease}.loginPage-footerLink:hover:after{width:100%}@media (max-width:768px){.loginPage-footerContent{flex-direction:column;text-align:center;gap:.5rem}.loginPage-footerLinks{gap:1rem}.loginPage-footer{padding:.75rem 1rem}}@media (max-width:480px){.loginPage-footerLinks{flex-wrap:wrap;justify-content:center;gap:.75rem}.loginPage-footer{padding:.5rem .75rem}.loginPage-footerLink,.loginPage-footerText{font-size:.6875rem}}