*{box-sizing:border-box;margin:0;padding:0}body{font-family:Nunito,sans-serif;background-color:#dcfce7;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;position:relative;overflow-x:hidden;color:#1f2937;padding-top:2rem}.wave-top{position:fixed;top:-60px;left:-5%;width:110%;height:380px;background:#fff;border-bottom-right-radius:55% 45%;border-bottom-left-radius:18% 12%;z-index:0;box-shadow:0 8px 32px #22c55e14}.wave-bottom{position:fixed;bottom:-80px;left:-8%;width:124%;height:280px;background:#fff;border-top-left-radius:65% 85%;border-top-right-radius:100% 35%;z-index:0;opacity:.55}main{position:relative;z-index:10;width:100%;max-width:420px;padding:2rem 2rem 2.5rem;display:flex;flex-direction:column;align-items:center}.logo-title-wrap{display:flex;align-items:center;justify-content:center;margin-bottom:2.8rem;position:relative}.logo-wrap{width:60%;flex-shrink:0}.logo-wrap img{width:100%;height:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.08))}.brand-title{text-align:center;animation:fadeDown .7s .1s ease both;flex:none;position:relative;left:-40px}.brand-title h1{font-size:2.4rem;font-weight:800;letter-spacing:.04em;line-height:1}.brand-title h1 .green{color:#16a34a}.brand-title h1 .teal{color:#22c55e}form{width:100%}.field{margin-bottom:2rem;animation:fadeUp .6s .2s ease both}.field+.field{animation-delay:.3s}.input-row{display:flex;align-items:center;border-bottom:2px solid #d1d5db;padding:.45rem 0;transition:border-color .25s;position:relative}.input-row:focus-within{border-color:#22c55e}.input-row svg.icon{width:20px;height:20px;color:#374151;flex-shrink:0;margin-right:.75rem}.input-row input{flex:1;background:transparent;border:none;outline:none;font-family:Nunito,sans-serif;font-size:.95rem;color:#374151}.input-row input::-moz-placeholder{color:#9ca3af}.input-row input::placeholder{color:#9ca3af}input:-webkit-autofill{-webkit-box-shadow:0 0 0 40px #dcfce7 inset!important}.hint{font-size:.72rem;color:#9ca3af;margin-top:.45rem;padding-left:.1rem}.toggle-pw{position:absolute;right:2px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;color:#9ca3af;transition:color .2s}.toggle-pw:hover{color:#22c55e}.toggle-pw svg{width:20px;height:20px;display:block}.row-options{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;margin-bottom:2.8rem;animation:fadeUp .6s .4s ease both}.forgot-link{font-size:.82rem;font-weight:600;color:#0f766e;text-decoration:none;border-bottom:1px solid transparent;padding-bottom:1px;transition:border-color .2s,color .2s}.forgot-link:hover{color:#134e4a;border-color:#134e4a}.remember-label{display:flex;align-items:center;gap:.6rem;cursor:pointer}.remember-label span{font-size:.82rem;font-weight:600;color:#0f766e}.switch{position:relative;width:42px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;inset:0;background:#d1d5db;border-radius:99px;transition:background .3s}.slider:before{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 4px #0000002e;transition:transform .3s}.switch input:checked+.slider{background:#22c55e}.switch input:checked+.slider:before{transform:translate(18px)}.btn-wrap{display:flex;justify-content:center;animation:fadeUp .6s .5s ease both}.btn-login{width:260px;background:linear-gradient(135deg,#0d9488,#22c55e);color:#fff;font-family:Nunito,sans-serif;font-size:.9rem;font-weight:800;letter-spacing:.12em;border:none;border-radius:99px;padding:.85rem 1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 8px 20px #22c55e59;transition:box-shadow .25s,transform .2s}.btn-login:hover:not(:disabled){box-shadow:0 12px 28px #22c55e73;transform:translateY(-2px)}.btn-login:active:not(:disabled){transform:translateY(0)}.btn-login:disabled{opacity:.8;cursor:not-allowed}@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:spin .8s linear infinite;width:20px;height:20px}.hidden{display:none}footer{position:relative;width:100%;text-align:center;margin-top:auto;padding:2rem 0 1.5rem}footer .copy{font-size:.72rem;color:#6b7280;font-weight:600}footer .sub{font-size:.65rem;color:#9ca3af;margin-top:3px}@keyframes fadeDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
