/* ========================================================
   PREMIUM UX/UI: Formulaires, Inputs & Textareas
   ======================================================== */

/* Transitions fluides et Box Sizing Global pour les inputs */
input[type="text"],
input[type="email"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="url"],
textarea,
select {
    box-sizing: border-box !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    border: 1px solid #d1d5db !important;
    border-radius: 6px !important;
    background-color: #ffffff !important;
    color: #374151 !important;
    font-size: 16px !important; /* 16px minimum prevents iOS Safari from zooming in automatically */
    padding: 12px 16px !important; /* Larger hit area */
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
    height: auto !important;
    line-height: normal !important;
}

/* Focus State (Glow Effect) */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
textarea:focus,
select:focus {
    outline: none !important;
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15) !important;
    background-color: #fefefe !important;
}

/* Hover State */
input[type="text"]:hover:not(:disabled),
input[type="email"]:hover:not(:disabled),
input[type="number"]:hover:not(:disabled),
input[type="password"]:hover:not(:disabled),
input[type="search"]:hover:not(:disabled),
input[type="tel"]:hover:not(:disabled),
input[type="url"]:hover:not(:disabled),
textarea:hover:not(:disabled),
select:hover:not(:disabled) {
    border-color: #9ca3af !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.08) !important;
}

/* Disabled State */
input:disabled,
textarea:disabled,
select:disabled {
    background-color: #f3f4f6 !important;
    color: #9ca3af !important;
    cursor: not-allowed !important;
    border-color: #e5e7eb !important;
    box-shadow: none !important;
}

/* Boutons de Formulaire (Submit) */
button[type="submit"],
input[type="submit"] {
    transition: all 0.3s ease !important;
    border-radius: 6px !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !important;
    padding: 12px 24px !important;
    font-weight: 600 !important;
}

button[type="submit"]:hover,
input[type="submit"]:hover {
    transform: translateY(-2px) scale(1.02) !important;
    box-shadow: 0 12px 20px -3px rgba(0, 0, 0, 0.15), 0 4px 8px -2px rgba(0, 0, 0, 0.1) !important;
    filter: brightness(1.05) !important;
}

button[type="submit"]:active,
input[type="submit"]:active {
    transform: translateY(1px) !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
}

/* Optimisation Spécifique Mobile */
@media (max-width: 768px) {
    input[type="text"],
    input[type="email"],
    input[type="number"],
    input[type="password"],
    input[type="search"],
    input[type="tel"],
    input[type="url"],
    textarea,
    select {
        padding: 14px 16px !important; /* Slightly larger on mobile for fat-finger taps */
        width: 100% !important; /* Ensure full width on mobile */
        height: auto !important;
        line-height: normal !important;
    }
}
