/* Espace 360Hd : une seule feuille pour tous les sites. Les couleurs et les polices arrivent en variables (sites/<code>.json). */
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--fond);color:var(--texte);font-family:var(--police-corps);font-size:16px;line-height:1.45}
a{color:var(--lien)}
.page{min-height:100vh;display:flex;flex-direction:column;max-width:560px;margin:0 auto}
.entete{background:var(--entete);border-bottom:1px solid var(--bordure);padding:14px 20px;display:flex;flex-direction:column;gap:10px}
.logo{font-family:var(--police-titre);font-weight:800;font-size:23px;color:var(--logo);text-decoration:none;letter-spacing:-.01em}
.logo-accent{color:var(--accent-logo,var(--lien))}
.menu{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:15px;font-weight:600}
.menu a{color:var(--texte);text-decoration:none;padding:6px 0}
.menu a.actif{color:var(--lien)}
.contenu{flex-grow:1;padding:28px 20px 20px;display:flex;flex-direction:column;gap:22px}
.titre h1{margin:0;font-family:var(--police-titre);font-weight:800;font-size:30px;line-height:1.12;color:var(--titre)}
.titre .accent{color:var(--accent-titre)}
.sous-titre{margin:6px 0 0;font-size:15px;color:var(--attenue)}
.carte{background:var(--surface);border:1px solid var(--bordure);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:12px}
.carte h2{margin:0;font-family:var(--police-titre);font-size:20px;color:var(--titre)}
label{font-weight:700;font-size:15px;color:var(--titre)}
input{height:48px;border:1px solid var(--bordure-champ);border-radius:10px;padding:0 14px;font-size:16px;font-family:inherit;color:var(--titre);background:var(--champ);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--lien);outline-offset:1px}
select,textarea{border:1px solid var(--bordure-champ);border-radius:10px;padding:10px 14px;font-size:16px;font-family:inherit;color:var(--titre);background:var(--champ);width:100%}
select{height:48px}
input[type=checkbox]{accent-color:var(--bouton)}
input[type=file]{height:auto;padding:10px;font-size:15px}
.bouton-secondaire{display:flex;align-items:center;justify-content:center;min-height:48px;border:2px solid var(--bouton);border-radius:10px;color:var(--titre);font-weight:700;text-decoration:none;background:var(--surface)}
.photo-cheval{width:100%;max-height:260px;object-fit:cover;border-radius:14px;border:1px solid var(--bordure)}
label.case{display:flex;gap:10px;align-items:center;font-weight:600;min-height:44px}
label.case input{width:22px;height:22px;flex:0 0 22px}
.badges{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.badge{display:inline-block;font-size:13px;font-weight:700;line-height:1;padding:6px 10px;border-radius:14px;border:1px solid var(--bordure);color:var(--titre);background:var(--surface)}
.badge-ok{border-color:#2E8B57;color:var(--titre)}
.badge-ok::before{content:"";display:inline-block;width:8px;height:8px;border-radius:4px;background:#2E8B57;margin-right:6px}
.badge-a-faire,.badge-attention{border-color:#C98A12}
.badge-a-faire::before,.badge-attention::before{content:"";display:inline-block;width:8px;height:8px;border-radius:4px;background:#C98A12;margin-right:6px}
.badge-urgent{border-color:#D1495B}
.badge-urgent::before{content:"";display:inline-block;width:8px;height:8px;border-radius:4px;background:#D1495B;margin-right:6px}
.badge-recommandation::before{content:"";display:inline-block;width:8px;height:8px;border-radius:4px;background:var(--puce);margin-right:6px}
.rappels,.soins{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.rappels li,.soins li{display:flex;flex-direction:column;gap:4px;padding-bottom:10px;border-bottom:1px solid var(--bordure)}
.cheval-lien{display:flex;flex-wrap:wrap;gap:8px;align-items:center;text-decoration:none;color:var(--titre);min-height:44px}
button{font-family:inherit}
form > button,.carte > button:not(.lien){height:48px;border:0;border-radius:10px;background:var(--bouton);color:var(--texte-bouton);font-size:16px;font-weight:700;cursor:pointer}
button[disabled]{opacity:.6;cursor:wait}
button.lien{background:none;border:0;padding:0;color:var(--lien);text-decoration:underline;font-size:inherit;cursor:pointer;align-self:flex-start;min-height:44px}
.aide{margin:0;font-size:14px;color:var(--attenue)}
.erreur{margin:0;font-size:14px;font-weight:600;color:var(--titre);border-left:0;border-top:3px solid #D1495B;padding-top:8px}
form{display:flex;flex-direction:column;gap:12px}
.fonctions,.modules,.chevaux{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px;font-size:15px}
.fonctions li{display:flex;gap:10px;align-items:flex-start}
.puce{flex:0 0 8px;height:8px;margin-top:7px;border-radius:4px;background:var(--puce)}
.chevaux li{display:flex;flex-direction:column;gap:2px;padding-bottom:10px;border-bottom:1px solid var(--bordure)}
.modules li{font-weight:600;color:var(--titre)}
.pied{padding:14px 20px 20px;font-size:13px;color:var(--attenue);border-top:1px solid var(--bordure);display:flex;flex-direction:column;gap:4px}
/* Espace pro (module planning) : pensé pour un téléphone tenu dans une cabine. Couleurs = variables du site. */
.page.pro{max-width:1100px}
.onglets{flex-wrap:nowrap;overflow-x:auto;gap:8px;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.onglets a{white-space:nowrap;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--bordure);border-radius:22px;background:var(--surface);color:var(--texte)}
.onglets a.actif{border-color:var(--bouton);color:var(--titre);box-shadow:inset 0 0 0 1px var(--bouton)}
.compteur{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:var(--bordure);color:var(--titre);font-size:13px;font-weight:800}
.onglets a.actif .compteur{background:var(--bouton);color:var(--texte-bouton)}
.bouton-principal{display:flex;align-items:center;justify-content:center;gap:12px;min-height:62px;border-radius:14px;background:var(--bouton);color:var(--texte-bouton);font-size:20px;font-weight:800;text-decoration:none}
.bouton-principal::before{content:"";flex:0 0 12px;height:20px;border:3px solid currentColor;border-radius:8px}
.titre-onglet{margin:4px 0 -8px;font-family:var(--police-titre);font-size:18px;font-weight:800;color:var(--attenue)}
.cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.cartes.une{grid-template-columns:1fr}
.vide{padding:6px 0}
.transport{background:var(--surface);border:1px solid var(--bordure);border-top:4px solid var(--bordure);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}
.transport.statut-demande{border-top-color:#D1495B}
.transport.statut-proposee{border-top-color:#C98A12}
.transport.statut-prevue{border-top-color:var(--bouton)}
.transport.statut-faite{border-top-color:#2E8B57}
.t-haut{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.t-quand{display:flex;flex-direction:column;gap:2px}
.t-jour{font-family:var(--police-titre);font-size:22px;font-weight:800;line-height:1.1;color:var(--titre)}
.t-heure{font-size:32px;font-weight:800;line-height:1;color:var(--lien);letter-spacing:-.01em}
.t-trajet{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:21px;font-weight:700;line-height:1.2;color:var(--titre);text-decoration:none}
.t-fleche{color:var(--lien)}
.t-adresses{margin:0;font-size:14px;color:var(--attenue)}
.t-infos{margin:0;font-size:16px;font-weight:600;color:var(--texte)}
.t-actions{display:flex;flex-wrap:wrap;gap:8px}
.t-bouton{flex:1 1 120px;display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 14px;border:1px solid var(--bordure-champ);border-radius:10px;color:var(--titre);font-weight:700;text-decoration:none;text-align:center}
.t-principal{flex-basis:100%;background:var(--bouton);border-color:var(--bouton);color:var(--texte-bouton)}
.t-appel{border-color:#2E8B57}
details.carte summary{min-height:44px;display:flex;align-items:center;font-weight:700;color:var(--titre);cursor:pointer}
.dictee{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px dashed var(--bordure-champ);border-radius:12px}
.dictee-actions{display:flex;flex-wrap:wrap;gap:8px}
.dictee-actions>*{flex:1 1 150px}
button.micro{min-height:48px;border:0;border-radius:10px;background:var(--bouton);color:var(--texte-bouton);font-size:16px;font-weight:700;cursor:pointer}
button.micro.ecoute{background:#D1495B;color:#FFFFFF}
button.bouton-secondaire{font-family:inherit;font-size:16px;cursor:pointer}
.pre-rempli{outline:2px solid var(--lien);outline-offset:1px}
.pied button.lien{min-height:32px}
@media (min-width:900px){.page.pro .contenu{padding:28px}.page.pro .onglets{flex-wrap:wrap;overflow:visible}}
.t-haut .badge{white-space:nowrap;flex:0 0 auto}
.onglets{scrollbar-width:none}
.onglets::-webkit-scrollbar{display:none}
