.overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--backdrop); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: var(--space-5); animation: fadeIn 0.2s ease-in; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .overlay-content { background: var(--surface); border-radius: 12px; box-shadow: var(--shadow-overlay); width: 100%; max-width: 480px; max-height: 90vh; overflow-y: auto; animation: slideUp 0.3s ease-out; } @keyframes slideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .overlay-header { padding: var(--space-6) var(--space-6) var(--space-4); border-bottom: 2px solid var(--accent); display: flex; justify-content: space-between; align-items: center; } .overlay-header h2 { margin: 0; color: var(--accent); font-size: var(--fs-2xl); } .close-button { background: none; border: none; font-size: var(--fs-display); color: var(--text-muted); cursor: pointer; padding: 0; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 4px; transition: background 0.2s, color 0.2s; } .close-button:hover { background: var(--surface-sunken); color: var(--text); } .password-form { padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-5); } .form-group { display: flex; flex-direction: column; gap: var(--space-2); } .form-group label { font-weight: var(--fw-semibold); color: var(--text); font-size: var(--fs-md); } .form-group input { padding: var(--space-3) var(--space-4); border: 2px solid var(--border); border-radius: 8px; font-size: var(--fs-lg); transition: border-color 0.3s; } .form-group input:focus { outline: none; border-color: var(--accent); } .form-group input:disabled { background-color: var(--surface-sunken); cursor: not-allowed; } .form-actions { display: flex; gap: var(--space-3); margin-top: var(--space-2); } .cancel-button, .submit-button { flex: 1; padding: var(--space-3) var(--space-6); border-radius: 8px; font-size: var(--fs-lg); font-weight: var(--fw-semibold); cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; } .cancel-button { background: var(--surface); border: 2px solid var(--border); color: var(--text-muted); } .cancel-button:hover:not(:disabled) { border-color: var(--border-strong); color: var(--text); } .submit-button { background: var(--accent-gradient); border: none; color: var(--accent-contrast); } .submit-button:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 4px 12px var(--accent-soft); } .cancel-button:disabled, .submit-button:disabled { opacity: 0.6; cursor: not-allowed; } .error-message { background-color: var(--danger-soft); color: var(--danger); padding: var(--space-3) var(--space-4); border-radius: 8px; border: 1px solid var(--danger); font-size: var(--fs-md); } .success-message { padding: var(--space-10) var(--space-6); text-align: center; } .success-icon { width: 64px; height: 64px; border-radius: 50%; background: var(--accent-gradient); color: var(--accent-contrast); display: flex; align-items: center; justify-content: center; font-size: var(--fs-display); margin: 0 auto var(--space-4); animation: scaleIn 0.4s ease-out; } @keyframes scaleIn { from { transform: scale(0); } to { transform: scale(1); } } .success-message p { margin: 0; color: var(--text); font-size: var(--fs-xl); font-weight: var(--fw-medium); } @media (max-width: 540px) { .overlay-content { max-width: 100%; } .password-form { padding: var(--space-5); } .form-actions { flex-direction: column; } }