/**
 * 注册页面表单验证样式
 */

/* ===== 表单验证状态样式 ===== */

/* 有效状态 */
.form-control.is-valid {
    border-color: #198754 !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
    padding-right: 2.5rem;
}

/* 无效状态 */
.form-control.is-invalid {
    border-color: #dc3545 !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
    padding-right: 2.5rem;
}

/* 聚焦状态覆盖 */
.form-control.is-valid:focus {
    border-color: #198754 !important;
    box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25) !important;
}

.form-control.is-invalid:focus {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25) !important;
}

/* ===== 错误提示样式 ===== */

.invalid-feedback {
    display: block;
    width: 100%;
    margin-top: 0.25rem;
    font-size: 0.875em;
    color: #dc3545;
    font-weight: 500;
}

.invalid-feedback:not(.d-none) {
    animation: shakeError 0.5s ease-in-out;
}

/* 邮箱错误提示特殊样式 */
#email-error {
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    border-radius: 0.375rem;
    font-size: 0.9rem;
}

#email-error:not(.d-none) {
    animation: slideDown 0.3s ease-out;
}

/* ===== 手机号字段特殊样式 ===== */

.field-phone .form-control {
    font-family: 'Courier New', monospace;
    letter-spacing: 0.05em;
    font-size: 1.1rem;
}

.field-phone .form-text {
    font-size: 0.85rem;
    color: #6c757d;
    margin-top: 0.375rem;
}

/* 手机号输入时的视觉反馈 */
.field-phone .form-control:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

/* ===== 必填标记样式 ===== */

.form-label .text-danger {
    font-weight: bold;
    margin-left: 0.25rem;
}

/* ===== 动画效果 ===== */

@keyframes shakeError {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
    20%, 40%, 60%, 80% { transform: translateX(5px); }
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===== 注册表单整体优化 ===== */

.oe_signup_form,
form[action*="/web/signup"] {
    max-width: 450px;
    margin: 0 auto;
}

.oe_signup_form .form-group,
form[action*="/web/signup"] .form-group {
    margin-bottom: 1.25rem;
}

.oe_signup_form .form-label,
form[action*="/web/signup"] .form-label {
    font-weight: 500;
    color: #495057;
    margin-bottom: 0.5rem;
}

.oe_signup_form .form-control,
form[action*="/web/signup"] .form-control {
    padding: 0.625rem 0.875rem;
    font-size: 1rem;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.oe_signup_form .form-control::placeholder,
form[action*="/web/signup"] .form-control::placeholder {
    color: #adb5bd;
    opacity: 1;
}

/* 提交按钮样式 */
.oe_signup_form button[type="submit"],
form[action*="/web/signup"] button[type="submit"] {
    width: 100%;
    padding: 0.75rem 1.5rem;
    font-size: 1.1rem;
    font-weight: 500;
    margin-top: 1rem;
}

/* ===== 邮箱提示信息样式 ===== */

.field-email-hint {
    color: #6c757d;
    font-size: 0.85rem;
    margin-top: -0.5rem;
    margin-bottom: 0.75rem;
    padding-left: 0.25rem;
}

.field-email-hint i {
    color: #0d6efd;
}

/* ===== 响应式调整 ===== */

@media (max-width: 576px) {
    .oe_signup_form,
    form[action*="/web/signup"] {
        padding: 0 1rem;
    }

    .form-control.is-valid,
    .form-control.is-invalid {
        background-position: right 0.5rem center;
        padding-right: 2rem;
        background-size: 0.875rem;
    }

    .field-phone .form-control {
        font-size: 1rem;
    }
}

/* ===== 登录页面和注册页面通用样式 ===== */

.o_login_auth,
.o_database_list {
    max-width: 450px;
    margin: 2rem auto;
}

/* 错误提示框样式（Odoo 原生错误） */
.o_database_list .alert-danger,
.oe_signup_form .alert-danger {
    border: none;
    border-radius: 0.5rem;
    padding: 1rem;
}

.o_database_list .alert-danger .fa,
.oe_signup_form .alert-danger .fa {
    margin-right: 0.5rem;
}
