Spaces:
Sleeping
Sleeping
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |
| <title>Reset Password — Vedangsoft Change Detection</title> | |
| <link rel="stylesheet" href="/static/css/style.css?v=32" /> | |
| <link rel="stylesheet" href="/static/css/dda.css?v=22" /> | |
| <style> | |
| .auth-page { | |
| min-height: 100vh; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| padding: 1.5rem; | |
| } | |
| .auth-card { width: 100%; max-width: 380px; } | |
| .auth-brand { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| margin-bottom: 1.5rem; | |
| color: var(--text); | |
| font-weight: 600; | |
| } | |
| .auth-sub { color: var(--text-muted); font-size: 0.85rem; margin: -0.35rem 0 1.1rem; } | |
| .field-hint { color: var(--text-dim); font-size: 0.78rem; margin-top: 0.35rem; } | |
| .field-error.hidden, .form-group.hidden { display: none; } | |
| .field-error { color: var(--danger); font-size: 0.78rem; margin-top: 0.35rem; } | |
| .auth-toggle { text-align: center; margin-top: 1rem; font-size: 0.85rem; color: var(--text-muted); } | |
| .auth-toggle a { color: var(--accent); cursor: pointer; text-decoration: none; font-weight: 500; } | |
| .auth-toggle a:hover { text-decoration: underline; } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="auth-page"> | |
| <div class="auth-card"> | |
| <div class="auth-brand"> | |
| <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z"/></svg> | |
| <span>Vedangsoft Change Detection</span> | |
| </div> | |
| <div class="card"> | |
| <div class="card-header"> | |
| <h3>Reset password</h3> | |
| </div> | |
| <div id="dda-error" class="alert alert-error hidden"></div> | |
| <div id="dda-success" class="alert alert-success hidden"></div> | |
| <form id="reset-form" novalidate> | |
| <div class="form-group"> | |
| <label for="new_password">New password</label> | |
| <input type="password" id="new_password" autocomplete="new-password" required /> | |
| <div class="field-hint">At least 8 characters</div> | |
| <div class="field-error hidden" id="err-new_password"></div> | |
| </div> | |
| <div class="form-group"> | |
| <label for="confirm_password">Confirm new password</label> | |
| <input type="password" id="confirm_password" autocomplete="new-password" required /> | |
| <div class="field-error hidden" id="err-confirm_password"></div> | |
| </div> | |
| <button type="submit" id="reset-submit" class="btn btn-primary btn-block">Reset password</button> | |
| </form> | |
| <div class="auth-toggle"> | |
| <a href="/login">← Back to sign in</a> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <script src="/static/js/dda/shared.js?v=3"></script> | |
| <script src="/static/js/dda/reset_password.js?v=1"></script> | |
| </body> | |
| </html> | |