:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*,:before,:after{box-sizing:border-box}html{width:100%;height:100%;margin:0;padding:0;overflow-x:hidden}body{width:100%;min-height:100vh;margin:0;padding:0;overflow-x:hidden}h1{margin:0}button{cursor:pointer;font-family:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.twofactor-dialog-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;animation:.2s ease-in fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.twofactor-dialog{background:#fff;border-radius:8px;width:90%;max-width:450px;animation:.3s ease-out slideUp;box-shadow:0 4px 20px #0000004d}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dialog-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.dialog-header h2{color:#333;margin:0;font-size:1.25rem}.close-button{color:#999;cursor:pointer;background:0 0;border:none;width:2rem;height:2rem;padding:0;font-size:2rem;line-height:1;transition:color .2s}.close-button:hover{color:#333}.dialog-body{padding:1.5rem}.dialog-message{color:#555;margin:0 0 1.5rem}.code-input{text-align:center;letter-spacing:.75rem;box-sizing:border-box;border:2px solid #ddd;border-radius:6px;width:100%;margin-bottom:1rem;padding:1rem;font-family:Courier New,monospace;font-size:2rem;transition:border-color .3s}.code-input:focus{border-color:#4caf50;outline:none;box-shadow:0 0 0 3px #4caf501a}.code-input:disabled{cursor:not-allowed;background:#f5f5f5}.error-message{color:#c62828;background:#ffebee;border-left:4px solid #c62828;border-radius:4px;margin-bottom:1rem;padding:.75rem;font-size:.9rem}.dialog-actions{gap:1rem;margin-bottom:1rem;display:flex}.dialog-actions button{cursor:pointer;border:none;border-radius:4px;flex:1;padding:.75rem;font-size:1rem;transition:all .3s}.cancel-button{color:#666;background:#f5f5f5}.cancel-button:hover:not(:disabled){background:#e0e0e0}.verify-button{color:#fff;background:#4caf50}.verify-button:hover:not(:disabled){background:#45a049}.verify-button:disabled,.cancel-button:disabled{opacity:.5;cursor:not-allowed}.dialog-hint{text-align:center;background:#f9f9f9;border-radius:4px;padding:1rem}.dialog-hint small{color:#666;line-height:1.5}.login-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-form{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:2.5rem;box-shadow:0 10px 40px #0003}.login-form h2{color:#333;text-align:center;margin:0 0 2rem;font-size:1.75rem}.error-banner{color:#c62828;background:#ffebee;border-left:4px solid #c62828;border-radius:4px;margin-bottom:1.5rem;padding:1rem;font-size:.9rem;line-height:1.5}.form-group{margin-bottom:1.5rem}.form-group label{color:#555;margin-bottom:.5rem;font-size:.9rem;font-weight:500;display:block}.form-group input{box-sizing:border-box;border:2px solid #ddd;border-radius:6px;width:100%;padding:.75rem;font-size:1rem;transition:all .3s}.form-group input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{cursor:not-allowed;background:#f5f5f5}.login-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:6px;width:100%;padding:.875rem;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed}
