/* Login-related pages — linked from login/*.php after css/geral.css. */

html, body { overflow-x: hidden; overflow-y: auto; height: auto; }
body { padding: 40px 20px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; min-height: 100vh; background: #383431; }
.page-card { max-width: 480px; width: 100%; background: rgba(255,255,255,0.05); border-radius: 16px; padding: 40px; text-align: left; backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.08); }
.page-card.narrow { max-width: 420px; }
.page-card h1 { font-size: 1.75rem; margin-bottom: 8px; color: #fff; }
.page-card .subtitle { color: #aaa; margin-bottom: 28px; font-size: 0.95rem; }
.form-group { margin-bottom: 20px; }
.form-group label { display: block; color: #ccc; font-size: 0.9rem; margin-bottom: 6px; }
.field-label { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.field-label label { margin-bottom: 0; }
.pw-toggle { background: none; border: none; color: #93c5fd; cursor: pointer; font-size: 0.8rem; text-decoration: underline; padding: 0 8px; min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.pw-toggle:hover { color: #fff; }
.form-group input { width: 100%; padding: 12px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: 8px; color: #fff; font-family: inherit; font-size: 0.95rem; outline: none; box-sizing: border-box; }
.form-group input:focus { border-color: #60a5fa; }
.btn-submit { width: 100%; padding: 12px; background: #2563eb; color: #fff; border: none; border-radius: 8px; font-family: inherit; font-size: 1rem; font-weight: 500; cursor: pointer; min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; box-sizing: border-box; }
.btn-submit:hover { background: #1d4ed8; }
.btn-submit:disabled { opacity: 0.7; cursor: not-allowed; }
.spinner { width: 20px; height: 20px; border: 2px solid rgba(255,255,255,0.3); border-top-color: #fff; border-radius: 50%; animation: spin 0.6s linear infinite; display: inline-block; }
@keyframes spin { to { transform: rotate(360deg); } }
.forgot-link { display: inline-flex; align-items: center; justify-content: center; margin-top: 20px; color: #888; text-decoration: none; font-size: 0.85rem; min-height: 44px; width: 100%; }
.forgot-link:hover { color: #fff; }
.back-link { display: inline-flex; align-items: center; justify-content: center; margin-top: 24px; color: #aaa; text-decoration: none; font-size: 0.9rem; min-height: 44px; width: 100%; }
.back-link.compact { margin-top: 8px; }
.back-link:hover { color: #fff; }
.error-message { color: #f87171; margin-bottom: 16px; font-size: 0.9rem; text-align: center; }
.success-message { text-align: center; padding: 20px; color: #4ade80; }
.btn-cancel { display: inline-flex; align-items: center; justify-content: center; margin-top: 12px; padding: 12px; width: 100%; background: transparent; color: #aaa; border: 1px solid rgba(255,255,255,0.12); border-radius: 8px; font-family: inherit; font-size: 1rem; text-decoration: none; cursor: pointer; min-height: 44px; box-sizing: border-box; }
.btn-cancel:hover { background: rgba(255,255,255,0.06); color: #fff; border-color: rgba(255,255,255,0.25); }

/* Password strength meter */
.strength-track { height: 4px; background: rgba(255,255,255,0.1); border-radius: 4px; margin-top: 8px; overflow: hidden; }
.strength-fill { height: 100%; width: 0; border-radius: 4px; transition: width 0.3s, background 0.3s; }
.strength-text { font-size: 0.8rem; color: #888; margin-top: 4px; }
