/* ==========================================================
   FORMULAIRES
   Construits à partir des tokens déjà établis (variables.css,
   typography.css) — pas encore utilisés dans course_detail.php,
   mais nécessaires pour toutes les pages à venir (connexion,
   inscription, profil, paramétrage nutrition...).
========================================================== */

.mpr-form-group{
    margin-bottom:var(--mpr-space-sm);
}

.mpr-label{
    display:block;
    margin-bottom:6px;
    font-size:var(--mpr-font-sm);
    font-weight:var(--mpr-weight-semibold);
    color:var(--mpr-text);
}

.mpr-input,
.mpr-select,
.mpr-textarea{
    width:100%;
    padding:10px 14px;
    font-family:inherit;
    font-size:var(--mpr-font-base);
    color:var(--mpr-text);
    background:var(--mpr-surface);
    border:1px solid var(--mpr-border);
    border-radius:10px;
    transition:
        border-color .18s ease,
        box-shadow .18s ease;
}

.mpr-input::placeholder,
.mpr-textarea::placeholder{
    color:var(--mpr-text-light);
}

.mpr-input:focus,
.mpr-select:focus,
.mpr-textarea:focus{
    outline:none;
    border-color:var(--mpr-primary);
    box-shadow:0 0 0 3px rgba(46,125,50,.12);
}

.mpr-textarea{
    resize:vertical;
    min-height:96px;
}

/* <input type="file"> rendu par le navigateur (bouton natif + nom de
   fichier) hérite du même padding généreux que les champs texte, pensé
   pour du texte simple — sur mobile, ce padding grignote la place du
   bouton natif au point de le tronquer ("Parcourir"/"Choisir un
   fichier" coupé). ::file-selector-button (norme moderne, remplace
   l'ancien ::-webkit-file-upload-button) permet de reprendre la main
   sur ce bouton précis plutôt que sur tout le champ. Repéré lors du
   test mobile réel pré-panel sur prediction.php. */
.mpr-input[type="file"]{
    padding:8px 10px;
}

.mpr-input[type="file"]::file-selector-button{
    margin-right:10px;
    padding:7px 12px;
    border:0;
    border-radius:6px;
    background:var(--mpr-background);
    color:var(--mpr-text);
    font-family:inherit;
    font-size:var(--mpr-font-sm);
    font-weight:var(--mpr-weight-semibold);
    cursor:pointer;
}

.mpr-select{
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 12px center;
    padding-right:36px;
}

/* ---- États ---- */

.mpr-input.error,
.mpr-select.error,
.mpr-textarea.error{
    border-color:var(--mpr-danger);
}

.mpr-form-error{
    margin-top:6px;
    font-size:var(--mpr-font-xs);
    color:var(--mpr-danger);
}

.mpr-input:disabled,
.mpr-select:disabled,
.mpr-textarea:disabled{
    background:var(--mpr-background);
    color:var(--mpr-text-light);
    cursor:not-allowed;
}

/* ---- Cases à cocher / radios ---- */

.mpr-checkbox,
.mpr-radio{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:var(--mpr-font-sm);
    color:var(--mpr-text);
    cursor:pointer;
}

.mpr-checkbox input,
.mpr-radio input{
    accent-color:var(--mpr-primary);
    width:16px;
    height:16px;
}

/* ==========================================================
   GRILLE DE CHAMPS
   Regroupe plusieurs champs sur une même ligne. Utilisé sur
   profile.php, prediction.php, nutrition_product.php...
   (auparavant dupliqué/incomplet dans chacun de ces fichiers).
========================================================== */

.mpr-form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}

.mpr-form-row-4{
    grid-template-columns:repeat(4,1fr);
}

.mpr-form-row-6{
    grid-template-columns:repeat(6,1fr);
}

@media (max-width:768px){
    .mpr-form-row,
    .mpr-form-row-4,
    .mpr-form-row-6{
        grid-template-columns:1fr;
        /* Les widgets natifs <input type="date">/type="time"> ont sur
           certains navigateurs mobiles une hauteur de rendu interne qui
           ne suit pas toujours le CSS (le contrôle du système
           d'exploitation se dessine par-dessus), rapprochant les champs
           empilés au point de sembler se chevaucher — un peu plus
           d'espace vertical fiabilise la lecture (repéré lors du test
           mobile réel pré-panel, sur date_course/heure_depart de
           prediction.php). */
        row-gap:22px;
    }

    .mpr-form-group{
        min-width:0;
    }
}
