*{box-sizing:border-box}html{height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--primary-dark);background-image:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-color) 50%,var(--primary-light) 100%);background-attachment:fixed;background-size:cover;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem;position:relative;overflow:auto}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 60% 50% at 20% 80%,rgba(15,157,143,.753) 0%,transparent 70%),radial-gradient(ellipse 55% 45% at 80% 20%,rgba(5,126,116,.76) 0%,transparent 70%),radial-gradient(ellipse 50% 40% at 40% 40%,rgba(10,138,125,.25) 0%,transparent 70%);animation:float 20s ease-in-out infinite;pointer-events:none;z-index:10}@keyframes float{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(20px,-20px) rotate(120deg)}66%{transform:translate(-15px,15px) rotate(240deg)}}.card-login{background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:24px;box-shadow:0 25px 50px #00000026,0 0 0 1px #ffffff1a,inset 0 1px #fff9;animation:slideInUp 1s cubic-bezier(.16,1,.3,1);position:relative;z-index:10;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1);width:100%;max-width:420px;padding:2rem 1.5rem}.card-login:hover{transform:translateY(-4px);box-shadow:0 35px 70px #0003,0 0 0 1px #ffffff26,inset 0 1px #ffffffb3}.card-login h2{font-weight:700;font-size:clamp(1.3rem,5vw,1.75rem);line-height:1.3;margin-bottom:1.75rem;text-align:center;background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:fadeInDown .8s cubic-bezier(.16,1,.3,1) .2s both}.form-label{font-weight:600;color:var(--text-primary);font-size:.875rem;margin-bottom:.5rem;letter-spacing:.025em;animation:fadeInLeft .6s cubic-bezier(.16,1,.3,1) .4s both}.input-group{position:relative;animation:fadeInUp .6s cubic-bezier(.16,1,.3,1) .5s both;flex-wrap:nowrap}.input-group-text{background:linear-gradient(135deg,#e6f4f1,#f0f9f7);border:2px solid var(--border-color);border-right:none;color:var(--primary-color);border-radius:12px 0 0 12px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center;flex-shrink:0}.form-control.input-custom{border:2px solid var(--border-color);border-left:none;border-radius:0 12px 12px 0;padding:.75rem .875rem;font-size:1rem;font-weight:500;transition:all .3s cubic-bezier(.16,1,.3,1);background:#fffc;min-width:0;width:100%}.form-control.input-custom:focus{border-color:var(--primary-color);box-shadow:0 0 0 4px #05564f1a,0 4px 12px #05564f26;background:#fff;transform:translateY(-1px);outline:none}.input-group:focus-within .input-group-text{border-color:var(--primary-color);background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-light) 100%);color:#fff;transform:translateY(-1px)}.password-toggle{background:linear-gradient(135deg,#e6f4f1,#f0f9f7);border:2px solid var(--border-color);border-left:none;border-radius:0 12px 12px 0;color:var(--primary-color);transition:all .3s cubic-bezier(.16,1,.3,1);cursor:pointer;position:relative;overflow:hidden;flex-shrink:0}.password-toggle:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .5s}.password-toggle:hover:before{left:100%}.password-toggle:hover{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-light) 100%);color:#fff;transform:translateY(-1px)}.password-toggle:active{transform:translateY(0) scale(.98)}.btn-primary-custom{background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary-light) 100%);border:none;border-radius:16px;padding:.875rem 2rem;font-size:1.05rem;font-weight:700;color:#fff;letter-spacing:.025em;width:100%;position:relative;overflow:hidden;transition:all .4s cubic-bezier(.16,1,.3,1);animation:fadeInUp .6s cubic-bezier(.16,1,.3,1) .8s both}.btn-primary-custom:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .6s}.btn-primary-custom:hover:before{left:100%}.btn-primary-custom:hover{background:linear-gradient(135deg,var(--primary-light) 0%,var(--success-color) 100%);transform:translateY(-3px) scale(1.02);box-shadow:0 15px 35px #05564f66,0 5px 15px #0000001a;color:#fff}.btn-primary-custom:active{transform:translateY(-1px) scale(1.01);transition:all .1s}.alert-danger{border-radius:12px;background:linear-gradient(135deg,#fed7d7,#feb2b2);color:#c53030;font-weight:600;border:2px solid #fc8181;animation:shake .5s ease-in-out,fadeInDown .6s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;margin-bottom:1.25rem}.alert-danger:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#c53030,#e53e3e,#c53030);animation:shimmer 2s infinite}@keyframes slideInUp{0%{transform:translateY(80px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes fadeInDown{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeInUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeInLeft{0%{transform:translate(-30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(min-width:480px){.card-login{padding:2.5rem 2.25rem}}@media(max-width:359px){.card-login{padding:1.5rem 1rem;border-radius:16px}.card-login h2{font-size:1.2rem;margin-bottom:1.25rem}.form-control.input-custom{font-size:.9rem;padding:.65rem .75rem}.btn-primary-custom{font-size:.95rem;padding:.75rem 1rem}}.btn-primary-custom:focus,.form-control:focus,.password-toggle:focus{outline:2px solid var(--primary-color);outline-offset:2px}.input-group{width:100%;overflow:hidden}.input-group-text,.password-toggle{flex-shrink:0}.form-control.input-custom{min-width:0;flex:1 1 auto}.form-label{display:block;width:100%;min-width:0;overflow-wrap:break-word;word-break:break-word;white-space:normal}
