.page-container[data-theme=light]{--login-bg-image:url(/bg-light.png);--login-bg-overlay:#eff6ffb3;--card-bg:#fff;--card-shadow:#00000026;--glass-bg:#fffc;--glass-border:#fff6;--glass-shadow:0 8px 32px #0000001f,0 0 0 1px #fff3;--input-glow:#00569126;--divider-color:#00000014;--header-bg-start:#005691;--header-bg-end:#003768;--text-primary:#212529;--text-label:#005691;--text-placeholder:#6c757d;--text-link:#2563eb;--text-link-hover:#1d4ed8;--input-bg:#fff;--input-border:#ced4da;--input-border-focus:#005691;--input-shadow-focus:#00569140;--input-autofill-bg:#fff;--input-autofill-text:#212529;--button-bg:#005691;--button-bg-hover:#003d66;--button-text:#fff;--button-ms-bg:#2f2f2f;--button-ms-hover:#1a1a1a;--info-box-bg:#eff6ff;--info-box-border:#bfdbfe;--info-box-text:#1e40af;--info-icon-color:#2563eb;--sso-box-bg:#f0f9ff;--sso-box-border:#bae6fd;--sso-box-text:#0369a1;--error-bg:#ffebee;--error-text:#d32f2f;--error-suggestion:#b71c1c;--error-rate-bg:#fff3e0;--error-rate-border:#ffb74d;--error-rate-text:#e65100;--error-rate-suggestion:#bf360c;--error-box-bg:#fef2f2;--error-box-border:#fecaca;--error-box-title:#991b1b;--error-box-text:#b91c1c;--error-box-icon:#dc2626;--success-bg:#ecfdf5;--success-border:#a7f3d0;--success-title:#065f46;--success-text:#047857;--success-icon:#059669;--caps-lock-bg:#f59e0b;--caps-lock-text:#fff;--spinner-bg:#fff;--spinner-color:#005691}.page-container[data-theme=dark]{--login-bg-image:url(/bg-dark.png);--login-bg-overlay:#0a0a0a80;--card-bg:#1e1e1e;--card-shadow:#00000080;--glass-bg:#1e1e1ebf;--glass-border:#ffffff14;--glass-shadow:0 8px 32px #0006,0 0 0 1px #ffffff0d;--input-glow:#60a5fa33;--divider-color:#ffffff14;--header-bg-start:#2d2d2d;--header-bg-end:#1a1a1a;--text-primary:#e5e5e5;--text-label:#60a5fa;--text-placeholder:#9ca3af;--text-link:#60a5fa;--text-link-hover:#93c5fd;--input-bg:#2d2d2d;--input-border:#404040;--input-border-focus:#60a5fa;--input-shadow-focus:#60a5fa40;--input-autofill-bg:#2d2d2d;--input-autofill-text:#e5e5e5;--button-bg:#2563eb;--button-bg-hover:#1d4ed8;--button-text:#fff;--button-ms-bg:#3d3d3d;--button-ms-hover:#2a2a2a;--info-box-bg:#1e3a5f;--info-box-border:#2d5a8a;--info-box-text:#93c5fd;--info-icon-color:#60a5fa;--sso-box-bg:#1e3a5f;--sso-box-border:#2d5a8a;--sso-box-text:#93c5fd;--error-bg:#3d1a1a;--error-text:#ff6b6b;--error-suggestion:#ff8787;--error-rate-bg:#3d2a1a;--error-rate-border:#8b6914;--error-rate-text:#fbbf24;--error-rate-suggestion:#fcd34d;--error-box-bg:#3d1a1a;--error-box-border:#6b2626;--error-box-title:#ff6b6b;--error-box-text:#ff8787;--error-box-icon:#f55;--success-bg:#1a3d2a;--success-border:#2d6b44;--success-title:#86efac;--success-text:#a7f3d0;--success-icon:#4ade80;--caps-lock-bg:#f59e0b;--caps-lock-text:#1a1a1a;--spinner-bg:#2d2d2d;--spinner-color:#60a5fa}.page-container{box-sizing:border-box;background:linear-gradient(to bottom right,#eff6ff,#e0e7ff);background-image:var(--login-bg-image);background-position:50%;background-repeat:no-repeat;background-size:cover;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex;position:relative}.page-container:before{content:"";background:var(--login-bg-overlay);z-index:0;transition:background .4s ease-in-out;position:absolute;inset:0}.login-form-container{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);width:100%;max-width:420px;box-shadow:var(--glass-shadow);z-index:1;border-radius:24px;animation:.6s ease-out slideUp;position:relative;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-card{color:var(--text-primary);box-sizing:border-box;width:100%;padding:2.5rem;transition:color .4s ease-in-out}.logo-section{border-bottom:1px solid var(--divider-color);justify-content:center;align-items:center;width:100%;margin-bottom:1.5rem;padding-bottom:1.5rem;display:flex}.logo-section .logo{object-fit:contain;transition:opacity .4s ease-in-out}.login-card form{text-align:left;flex-direction:column;display:flex}.info-box{background-color:var(--info-box-bg);border:1px solid var(--info-box-border);border-radius:8px;margin-bottom:1.25rem;padding:.75rem;transition:background-color .4s ease-in-out,border-color .4s ease-in-out}.info-content{align-items:flex-start;gap:.5rem;display:flex}.info-icon{width:1.25rem;height:1.25rem;color:var(--info-icon-color);flex-shrink:0;margin-top:.125rem;transition:color .4s ease-in-out}.info-content p{color:var(--info-box-text);margin:0;font-size:.875rem;line-height:1.4;transition:color .4s ease-in-out}.input-group{flex-direction:column;gap:.25rem;margin-bottom:1.25rem;display:flex}.input-group label{color:var(--text-label);margin-bottom:0;font-weight:700;transition:color .4s ease-in-out;display:block}.input-group input[type=email],.input-group input[type=password],.input-group input[type=text]{border:1px solid var(--input-border);background-color:var(--input-bg);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:12px;padding:.875rem 1rem;font-size:1em;transition:all .3s ease-in-out;display:block}.input-group input::placeholder{color:var(--text-placeholder);opacity:1}.input-group input:focus{border-color:var(--input-border-focus);box-shadow:0 0 0 3px var(--input-shadow-focus),0 0 20px var(--input-glow);outline:none}.input-group input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--input-autofill-bg)inset!important;-webkit-text-fill-color:var(--input-autofill-text)!important;background-color:var(--input-autofill-bg)!important}.input-group input:-webkit-autofill:hover{-webkit-box-shadow:0 0 0 30px var(--input-autofill-bg)inset!important;-webkit-text-fill-color:var(--input-autofill-text)!important;background-color:var(--input-autofill-bg)!important}.input-group input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 30px var(--input-autofill-bg)inset!important;-webkit-text-fill-color:var(--input-autofill-text)!important;background-color:var(--input-autofill-bg)!important}.input-group input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px var(--input-autofill-bg)inset!important;-webkit-text-fill-color:var(--input-autofill-text)!important;background-color:var(--input-autofill-bg)!important}.password-input-wrapper{width:100%;display:block;position:relative}.password-toggle-btn{color:#6b7280;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:2rem;height:2rem;padding:.5rem;transition:color .2s,background-color .2s;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%);background-color:#0000!important;border:none!important}.password-toggle-btn:hover{color:#374151;background-color:#0000000d!important}.page-container[data-theme=dark] .password-toggle-btn{color:#9ca3af}.page-container[data-theme=dark] .password-toggle-btn:hover{color:#d1d5db;background-color:#ffffff1a!important}.password-toggle-btn:focus{box-shadow:0 0 0 2px var(--input-shadow-focus);outline:none}.password-toggle-btn:focus-visible{outline:2px solid var(--button-bg);outline-offset:1px}.password-toggle-btn svg{width:1.125rem;height:1.125rem}.password-input-wrapper input{padding-right:3rem}.password-footer{justify-content:space-between;align-items:center;margin-top:.5rem;display:flex}.remember-me-label{cursor:pointer;color:var(--text-primary);-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;margin-bottom:0;font-size:.875rem;transition:color .4s ease-in-out;font-weight:400!important;display:flex!important}.remember-me-checkbox{cursor:pointer;width:1em;height:1em;margin-right:.4rem}.remember-me-checkbox:checked+span{font-weight:700}.remember-me-label span{cursor:pointer;font-weight:400;transition:font-weight .1s}.forgot-password-link{color:var(--text-link);font-size:.875rem;text-decoration:none;transition:color .4s ease-in-out}.forgot-password-link:hover{color:var(--text-link-hover);text-decoration:underline}.login-btn{background-color:var(--button-bg);width:100%;color:var(--button-text);cursor:pointer;box-sizing:border-box;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;margin:1.5rem 0 0;padding:1rem;font-size:1.1em;font-weight:600;transition:all .3s ease-in-out;display:flex}.login-btn:hover:not(:disabled){background-color:var(--button-bg-hover);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.error-message{color:var(--error-text);background-color:var(--error-bg);border-radius:6px;flex-direction:column;gap:.25rem;margin-top:.5rem;padding:.75rem;font-size:.9rem;display:flex}.error-message strong{font-weight:600}.error-message .error-suggestion{color:var(--error-suggestion);font-size:.85rem;font-weight:400}.error-message.rate-limited{background-color:var(--error-rate-bg);border:1px solid var(--error-rate-border);color:var(--error-rate-text)}.error-message.rate-limited .error-suggestion{color:var(--error-rate-suggestion)}.caps-lock-tooltip{background-color:var(--caps-lock-bg);color:var(--caps-lock-text);white-space:nowrap;z-index:10;border-radius:6px;margin-bottom:.5rem;padding:.5rem .75rem;font-size:.875rem;animation:.2s ease-in fadeIn;position:absolute;bottom:100%;right:0;box-shadow:0 2px 8px #00000026}.caps-lock-tooltip:after{content:"";border:6px solid #0000;border-top-color:var(--caps-lock-bg);position:absolute;top:100%;right:1rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.trouble-login{text-align:center;margin-top:1rem}.trouble-link{color:var(--text-link);font-size:.875rem;font-weight:500;text-decoration:underline}.trouble-link:hover{color:var(--text-link-hover)}.spinner{border:2.5px solid var(--spinner-bg);border-top:2.5px solid var(--spinner-color);vertical-align:middle;border-radius:50%;width:1.2em;height:1.2em;margin:0 auto;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.success-container{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.success-box{background-color:var(--success-bg);border:1px solid var(--success-border);border-radius:8px;width:100%;padding:1rem}.success-content{align-items:flex-start;gap:.75rem;display:flex}.success-icon{width:1.5rem;height:1.5rem;color:var(--success-icon);flex-shrink:0;margin-top:.125rem}.success-title{color:var(--success-title);margin:0 0 .25rem;font-size:1rem;font-weight:600}.success-message{color:var(--success-text);margin:0;font-size:.875rem;line-height:1.4}.back-to-login-link{color:var(--text-link);font-size:.875rem;font-weight:500;text-decoration:none}.back-to-login-link:hover{color:var(--text-link-hover);text-decoration:underline}.error-container{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.error-box{background-color:var(--error-box-bg);border:1px solid var(--error-box-border);border-radius:8px;width:100%;padding:1rem}.error-box-content{align-items:flex-start;gap:.75rem;display:flex}.error-icon-large{width:1.5rem;height:1.5rem;color:var(--error-box-icon);flex-shrink:0;margin-top:.125rem}.error-title{color:var(--error-box-title);margin:0 0 .25rem;font-size:1rem;font-weight:600}.error-description{color:var(--error-box-text);margin:0;font-size:.875rem;line-height:1.4}.error-actions{flex-direction:column;align-items:center;gap:1rem;width:100%;display:flex}.error-actions .login-btn{text-align:center;text-decoration:none}.email-confirmed-row{background:var(--input-bg);border:1px solid var(--input-border);border-radius:12px;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding:.875rem 1rem;transition:background-color .4s ease-in-out,border-color .4s ease-in-out;display:flex}.confirmed-email{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.95rem;font-weight:500;transition:color .4s ease-in-out;overflow:hidden}.back-button{width:2rem;height:2rem;color:var(--text-link);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.back-button:hover{background:var(--input-border);color:var(--text-link-hover)}.back-button:focus{box-shadow:0 0 0 2px var(--input-shadow-focus);outline:none}.back-button svg{width:1.25rem;height:1.25rem}.sso-notice-box{background-color:var(--sso-box-bg);border:1px solid var(--sso-box-border);border-radius:12px;margin-bottom:1.25rem;padding:1rem;transition:background-color .4s ease-in-out,border-color .4s ease-in-out;animation:.3s ease-in fadeIn}.sso-notice-content{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.sso-icon{width:1.5rem;height:1.5rem;color:var(--info-icon-color);flex-shrink:0}.sso-notice-content p{color:var(--sso-box-text);margin:0;font-size:.875rem;line-height:1.4;transition:color .4s ease-in-out}.login-btn.microsoft-btn{background-color:var(--button-ms-bg);color:var(--button-text)}.login-btn.microsoft-btn:hover:not(:disabled){background-color:var(--button-ms-hover)}.theme-toggle{border:2px solid var(--text-label);background:var(--card-bg);width:2.5rem;height:2.5rem;color:var(--text-label);cursor:pointer;z-index:10;box-shadow:0 2px 8px var(--card-shadow);border-radius:50%;justify-content:center;align-items:center;transition:all .4s ease-in-out;display:flex;position:absolute;top:1rem;right:1rem}.theme-toggle:hover{border-color:var(--text-link);color:var(--text-link);transform:rotate(20deg)}.theme-toggle:active{transform:scale(.95)}.theme-icon{width:1.25rem;height:1.25rem}@media (max-width:480px){.login-form-container{border-radius:20px;max-width:100%}.login-card{padding:1.75rem}.logo-section{margin-bottom:1.25rem;padding-bottom:1.25rem}.page-container{padding:1rem}.theme-toggle{width:2.25rem;height:2.25rem;top:.75rem;right:.75rem}.theme-icon{width:1.1rem;height:1.1rem}.email-confirmed-row{gap:.5rem;padding:.75rem .875rem}.confirmed-email{font-size:.875rem}.back-button{width:2.25rem;min-width:44px;height:2.25rem;min-height:44px}}.demo-banner{color:var(--text-primary);background:linear-gradient(135deg,#fdb81326 0%,#2563eb26 100%);border:1px solid #fdb8134d;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;animation:2s ease-in-out infinite demo-banner-pulse;display:flex}.demo-banner-icon{font-size:1.1rem;animation:1s ease-in-out infinite demo-robot-wave}@keyframes demo-banner-pulse{0%,to{box-shadow:0 0 #fdb81333}50%{box-shadow:0 0 0 4px #fdb8131a}}@keyframes demo-robot-wave{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.login-btn.demo-highlight{animation:1.5s ease-in-out infinite demo-button-pulse;color:#036!important;background:linear-gradient(135deg,#fdb813 0%,#f5a623 100%)!important}.login-btn.demo-highlight:hover:not(:disabled){animation:none;transform:translateY(-2px)scale(1.02);box-shadow:0 8px 25px #fdb81380}@keyframes demo-button-pulse{0%,to{transform:scale(1);box-shadow:0 0 15px #fdb81366,0 0 30px #fdb81333}50%{transform:scale(1.02);box-shadow:0 0 25px #fdb81399,0 0 50px #fdb8134d}}.error-container .error-box{border-radius:12px;padding:1.5rem}.error-box-content-centered{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.error-box-content-centered .error-icon-large{width:3.5rem;height:3.5rem;margin-bottom:.75rem}.error-box-content-centered .error-title{margin-bottom:.75rem;font-size:1.375rem;font-weight:700}.error-box-content-centered .error-description{max-width:320px;padding:0 .5rem;font-size:1.0625rem;line-height:1.7}
