*{box-sizing:border-box;margin:0;padding:0}.login-page{background:linear-gradient(135deg,#667eea 0%,#764ba2 50%,#667eea 100%) 0 0/400% 400%;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;animation:15s infinite gradientBG;position:relative;overflow:hidden}@keyframes gradientBG{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.ripple-canvas{z-index:1!important;pointer-events:auto!important;width:100%!important;height:100%!important;position:fixed!important;top:0!important;left:0!important}.login-wrapper{z-index:2;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative}.glass-container{-webkit-backdrop-filter:blur(20px)saturate(180%);background:#ffffff14;border:1px solid #ffffff26;border-radius:24px;width:100%;max-width:440px;padding:20px 40px;animation:6s ease-in-out infinite float;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000026,inset 0 1px #fff3}.glass-container:before{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);height:1px;position:absolute;top:0;left:0;right:0}.login-header{text-align:center;margin-bottom:40px}.logo-container{justify-content:center;display:flex}.logo-circle{background:0 0;border-radius:50%;justify-content:center;align-items:center;width:fit-content;height:fit-content;display:flex;box-shadow:0 4px 20px #0000001a,inset 0 2px #ffffff1a}.logo-image{object-fit:contain;width:40px;height:40px}.logo-icon{background:linear-gradient(135deg,#fff,#fffc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:24px;font-weight:700}.login-title{color:#fff;letter-spacing:-.5px;text-shadow:0 2px 4px #0003;margin-bottom:8px;font-size:28px;font-weight:700}.login-subtitle{color:#fffc;font-size:15px;font-weight:400}.login-form{flex-direction:column;gap:20px;display:flex}.error-message{color:#ff6b6b;background:#ff63631a;border:1px solid #ff63634d;border-radius:12px;align-items:center;gap:10px;padding:14px 16px;font-size:14px;animation:.3s slideIn;display:flex}.error-icon{color:#fff;background:#ff6b6b;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:700;display:flex}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.form-group{flex-direction:column;gap:10px;display:flex}.form-label{color:#fffffff2;align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.form-label svg{color:#fffc}.input-wrapper{position:relative}.form-input{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff12;border:1px solid #ffffff26;border-radius:14px;width:100%;padding:16px 50px 16px 20px;font-size:15px;font-weight:400;transition:all .3s}.form-input:focus{background:#ffffff1f;border-color:#fff6;outline:none;box-shadow:0 0 0 3px #ffffff1a,inset 0 1px 2px #ffffff1a}.form-input::placeholder{color:#ffffff80}.form-input:disabled{opacity:.6;cursor:not-allowed}.password-toggle{color:#fff9;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.password-toggle:hover:not(:disabled){color:#fff;background:#ffffff1a}.password-toggle:disabled{opacity:.5;cursor:not-allowed}.form-options{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.checkbox-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.checkbox-input{display:none}.checkbox-custom{border:1.5px solid #fff6;border-radius:5px;width:18px;height:18px;transition:all .2s;position:relative}.checkbox-input:checked+.checkbox-custom{background:#ffffffe6;border-color:#ffffffe6}.checkbox-input:checked+.checkbox-custom:after{content:"✓";color:#667eea;font-size:12px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.checkbox-text{color:#ffffffe6;font-size:14px;font-weight:400}.forgot-password-link{color:#fffc;font-size:14px;font-weight:400;text-decoration:none;transition:all .2s}.forgot-password-link:hover{color:#fff;text-decoration:underline}.login-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.3px;background:linear-gradient(135deg,#fff3,#ffffff1a);border:1px solid #ffffff40;border-radius:14px;justify-content:center;align-items:center;gap:10px;margin-top:10px;padding:17px;font-size:16px;font-weight:600;transition:all .3s;display:flex}.login-button:hover:not(:disabled){background:linear-gradient(135deg,#ffffff40,#ffffff26);border-color:#ffffff59;transform:translateY(-2px);box-shadow:0 8px 24px #0003,0 2px 8px #ffffff1a}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.attendance-mode-note{color:#ffffffbf;text-align:center;margin-top:-8px;font-size:13px;line-height:1.45}.spinner{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.demo-section{text-align:center;margin-top:8px}.demo-button{color:#ffffffb3;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:400;transition:all .2s}.demo-button:hover:not(:disabled){color:#fff;background:#ffffff1a}.demo-button:disabled{opacity:.5;cursor:not-allowed}.signup-section{text-align:center;border-top:1px solid #ffffff1a;margin-top:24px;padding-top:24px}.signup-section p{color:#ffffffb3;margin-bottom:8px;font-size:14px}.signup-link{color:#fff;border-bottom:1px solid #0000;padding:4px 0;font-size:15px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-block}.signup-link:hover{border-bottom-color:#fff}.signup-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.signup-separator{color:#ffffff80;font-size:13px}.signup-link-button{cursor:pointer;background:0 0}.signup-link-button:disabled{opacity:.6;cursor:not-allowed}.login-footer{text-align:center;margin-top:32px}.footer-text{color:#fff9;margin-bottom:8px;font-size:12px}.footer-links{justify-content:center;align-items:center;gap:12px;display:flex}.footer-links a{color:#fff9;font-size:12px;text-decoration:none;transition:color .2s}.footer-links a:hover{color:#ffffffe6}.separator{color:#fff6;font-size:10px}@media (max-width:480px){.login-wrapper{padding:16px}.glass-container{border-radius:20px;padding:36px 24px}.login-title{font-size:24px}.login-subtitle{font-size:14px}.form-input{padding:14px 46px 14px 16px}.login-button{padding:16px;font-size:15px}.form-options{flex-direction:row;justify-content:space-between;align-items:center;gap:10px}.signup-separator{display:none}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading{animation:1.5s ease-in-out infinite pulse}.register-page{background:#0f172a;min-height:100vh;position:relative;overflow:hidden}.register-wrapper{z-index:2;perspective:1000px;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative}@keyframes flipInRight{0%{opacity:0;transform:rotateY(90deg)}to{opacity:1;transform:rotateY(0)}}@keyframes flipOutLeft{0%{opacity:1;transform:rotateY(0)}to{opacity:0;transform:rotateY(-90deg)}}.glass-container{animation:.6s ease-out forwards flipInRight}.register-header{text-align:center;margin-bottom:30px}.register-title{color:#fff;letter-spacing:-.5px;text-shadow:0 2px 4px #0003;text-align:center;margin-bottom:8px;font-size:28px;font-weight:700}.register-subtitle{color:#fffc;text-align:center;margin-bottom:10px;font-size:15px;font-weight:400}.register-form{flex-direction:column;gap:20px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:480px){.form-row{grid-template-columns:1fr;gap:16px}}.success-message{color:#2ecc71;background:#2ecc711a;border:1px solid #2ecc714d;border-radius:12px;align-items:center;gap:10px;padding:14px 16px;font-size:14px;animation:.3s slideIn;display:flex}.success-icon{color:#fff;background:#2ecc71;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:700;display:flex}.password-requirements{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;margin-top:8px;padding:16px}.requirements-title{color:#ffffffe6;margin-bottom:8px;font-size:14px;font-weight:500}.requirements-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;padding-left:0;list-style:none;display:grid}.requirements-list li{color:#fff9;align-items:center;gap:6px;font-size:13px;display:flex}.requirements-list li:before{content:"○";font-size:10px}.requirements-list li.met{color:#2ecc71}.requirements-list li.met:before{content:"✓";color:#2ecc71}.register-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.3px;background:linear-gradient(135deg,#667eeacc,#764ba2cc);border:1px solid #ffffff40;border-radius:14px;justify-content:center;align-items:center;gap:10px;margin-top:10px;padding:17px;font-size:16px;font-weight:600;transition:all .3s;display:flex}.register-button:hover:not(:disabled){background:linear-gradient(135deg,#667eea,#764ba2);border-color:#ffffff59;transform:translateY(-2px);box-shadow:0 8px 24px #0000004d,0 2px 8px #ffffff1a}.register-button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.login-section{text-align:center;border-top:1px solid #ffffff1a;margin-top:24px;padding-top:24px}.login-section p{color:#ffffffb3;margin-bottom:8px;font-size:14px}.login-link{color:#fff;border-bottom:1px solid #0000;padding:4px 0;font-size:15px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-block}.login-link:hover{border-bottom-color:#fff}.terms-agreement{text-align:center;margin-top:16px}.terms-text{color:#fff9;font-size:13px;line-height:1.5}.terms-link{color:#fffc;text-decoration:none;transition:color .2s}.terms-link:hover{color:#fff;text-decoration:underline}.form-input[type=select],select.form-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;background-size:16px;padding-right:44px}select.form-input option{color:#fff;background-color:#0f172a}@media (max-width:480px){.glass-container{padding:32px 24px}.register-title{font-size:24px}.register-subtitle{font-size:14px}.requirements-list{grid-template-columns:1fr}}
