/* Foot-Occitanie 5.4.1 — couche UX commune */
:root{
  --fo-ux-primary:#d71920;
  --fo-ux-primary-dark:#a91318;
  --fo-ux-text:#20242a;
  --fo-ux-muted:#667085;
  --fo-ux-border:#dfe3e8;
  --fo-ux-surface:#fff;
  --fo-ux-surface-soft:#f6f7f9;
  --fo-ux-success:#18794e;
  --fo-ux-warning:#9a6700;
  --fo-ux-danger:#b42318;
  --fo-ux-info:#175cd3;
  --fo-ux-radius:14px;
  --fo-ux-shadow:0 10px 30px rgba(15,23,42,.08);
}

/* Accessibilité et focus */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid rgba(215,25,32,.28);
  outline-offset:2px;
}
:where(button,input,select,textarea){font:inherit}
:where(button,[type="submit"],[type="button"]){touch-action:manipulation}

/* Boutons communs */
.fo-primary-btn,.fo-secondary-btn,.fo-ux-button{
  min-height:42px;
  box-sizing:border-box;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease,opacity .16s ease;
}
.fo-primary-btn:hover,.fo-ux-button--primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(215,25,32,.18)}
.fo-secondary-btn:hover,.fo-ux-button--secondary:hover{transform:translateY(-1px);border-color:#aeb5bf;background:#f9fafb}
:where(button,.fo-primary-btn,.fo-secondary-btn)[disabled],.is-loading{
  cursor:wait!important;
  opacity:.72;
}
.fo-ux-button__spinner{
  width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;
  animation:foUxSpin .65s linear infinite;flex:0 0 auto;
}
@keyframes foUxSpin{to{transform:rotate(360deg)}}

/* Formulaires */
.fo-ux-form :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea),
.content-page form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea){
  box-sizing:border-box;
  max-width:100%;
}
.content-page form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea):focus{
  border-color:var(--fo-ux-primary)!important;
  box-shadow:0 0 0 3px rgba(215,25,32,.10);
  outline:0;
}
.fo-field-error{display:block;margin-top:6px;color:var(--fo-ux-danger);font-size:.78rem;font-weight:750}
.fo-has-error{border-color:var(--fo-ux-danger)!important;box-shadow:0 0 0 3px rgba(180,35,24,.08)!important}
form[aria-busy="true"]{cursor:progress}

/* Messages homogènes */
.fo-alert{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:11px;
  align-items:start;
  border:1px solid var(--fo-ux-border);
  border-radius:var(--fo-ux-radius);
  padding:14px 16px;
  background:var(--fo-ux-surface);
  color:var(--fo-ux-text);
  box-shadow:0 7px 20px rgba(15,23,42,.045);
}
.fo-alert::before{content:"ⓘ";font-size:1.05rem;font-weight:900;color:var(--fo-ux-info)}
.fo-alert--success{border-color:#b7e1ce!important;background:#edf9f3!important;color:#145a3b!important}
.fo-alert--success::before{content:"✓";color:var(--fo-ux-success)}
.fo-alert--error{border-color:#f4c2be!important;background:#fff2f1!important;color:#8f2018!important}
.fo-alert--error::before{content:"!";display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:var(--fo-ux-danger);color:#fff;font-size:.78rem}
.fo-alert--warning{border-color:#efd99d!important;background:#fffae8!important;color:#754f00!important}
.fo-alert--warning::before{content:"⚠";color:var(--fo-ux-warning)}
.fo-alert--info{border-color:#bfd5ff!important;background:#f1f6ff!important;color:#1849a9!important}
.fo-alert--info::before{content:"ⓘ";color:var(--fo-ux-info)}

/* États vides et erreurs */
.fo-empty,.fo-panel-empty,.fo-ux-empty{
  box-sizing:border-box;
  border:1px dashed #ccd2da;
  border-radius:var(--fo-ux-radius);
  background:linear-gradient(145deg,#fff,#f8f9fb);
  color:var(--fo-ux-muted);
}
.fo-empty{padding:30px;text-align:center}
.fo-empty::before,.fo-ux-empty::before{content:"○";display:block;margin-bottom:8px;color:#a7afb9;font-size:2rem;line-height:1}
.fo-empty strong{display:block;color:var(--fo-ux-text);font-size:1.05rem}
.fo-empty p{margin:6px 0 0}
.fo-error-page{display:grid;place-items:center;min-height:55vh;padding:40px 0;text-align:center}
.fo-error-page__card{width:min(620px,100%);padding:42px;border:1px solid var(--fo-ux-border);border-radius:24px;background:#fff;box-shadow:var(--fo-ux-shadow)}
.fo-error-page__code{display:block;color:var(--fo-ux-primary);font-size:4rem;font-weight:950;line-height:1}
.fo-error-page h1{margin:12px 0 8px}.fo-error-page p{color:var(--fo-ux-muted)}
.fo-error-page__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}

/* Fil d’Ariane opt-in */
.fo-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 18px;color:var(--fo-ux-muted);font-size:.82rem}
.fo-breadcrumbs a{color:var(--fo-ux-text);font-weight:750;text-decoration:none}.fo-breadcrumbs a:hover{color:var(--fo-ux-primary)}
.fo-breadcrumbs span[aria-current="page"]{font-weight:750}.fo-breadcrumbs i{font-style:normal;color:#a8afb8}

/* Toasts et chargement */
.fo-ux-toast-region{position:fixed;right:18px;bottom:18px;z-index:12000;display:grid;gap:10px;width:min(390px,calc(100vw - 36px));pointer-events:none}
.fo-ux-toast{display:flex;align-items:flex-start;gap:11px;padding:14px 16px;border-radius:14px;background:#17191d;color:#fff;box-shadow:0 18px 55px rgba(0,0,0,.25);pointer-events:auto;animation:foUxToastIn .22s ease both}
.fo-ux-toast.is-leaving{animation:foUxToastOut .18s ease both}.fo-ux-toast strong{display:block}.fo-ux-toast small{display:block;margin-top:3px;color:#d4d8dd}
@keyframes foUxToastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes foUxToastOut{to{opacity:0;transform:translateY(7px)}}

/* Dashboard MonFoot : verrouillage du flux, strictement limité à MonFoot.
   Ne jamais cibler .fo-dashboard-grid globalement : cette classe est aussi utilisée
   par le Tableau de bord des compétitions, qui doit rester en CSS Grid. */
.fo-monfoot-page .fo-dashboard-grid{display:flex!important;align-items:flex-start!important;gap:20px!important;clear:both!important}
.fo-monfoot-page .fo-dashboard-main{flex:2 1 0!important;min-width:0!important}
.fo-monfoot-page .fo-dashboard-side{flex:1 1 300px!important;min-width:0!important;display:flex!important;flex-direction:column!important;gap:20px!important;align-self:flex-start!important}
.fo-monfoot-page .fo-dashboard-side>.fo-panel{width:100%!important;box-sizing:border-box!important;position:static!important;height:auto!important;min-height:0!important;overflow:visible!important}
.fo-monfoot-page .fo-dashboard-results{position:relative!important;clear:both!important;margin-top:20px!important}

@media(max-width:900px){
  .fo-monfoot-page .fo-dashboard-grid{flex-direction:column!important}
  .fo-monfoot-page .fo-dashboard-main,.fo-monfoot-page .fo-dashboard-side{width:100%!important;flex-basis:auto!important}
}
@media(max-width:560px){
  .fo-alert{grid-template-columns:1fr}.fo-alert::before{margin-bottom:-3px}
  .fo-error-page__card{padding:28px 20px}.fo-error-page__actions{display:grid}
  .fo-ux-toast-region{right:10px;bottom:10px;width:calc(100vw - 20px)}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.fo-ux-button__spinner,.fo-ux-toast{animation:none!important}.fo-primary-btn,.fo-secondary-btn{transition:none!important}}

/* Foot-Occitanie 5.4.2 — moteur média */
.fo-media-preview{margin-top:10px;padding:10px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc}
.fo-media-preview[hidden]{display:none!important}
.fo-media-preview img{display:block;width:100%;max-height:320px;object-fit:cover;border-radius:10px}
.fo-media-remove{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px;color:#991b1b!important}
.fo-media-remove input{width:auto!important;margin:0!important}

.fo-admin-media{margin:14px 0;overflow:hidden;border-radius:14px;background:#eef1f4}
.fo-admin-media img{display:block;width:100%;max-height:360px;object-fit:cover}
.fo-media-orphans{display:grid;gap:7px;margin:15px 0 20px}.fo-media-orphans code{padding:9px 11px;border-radius:8px;background:#f3f4f6;overflow-wrap:anywhere}

/* Foot-Occitanie 5.6.6 — finitions globales */
.footer{padding:34px 0;background:#111;color:rgba(255,255,255,.68)}
.footer p{margin:0;font-size:.85rem}
.content-page img,.content-page video,.content-page iframe{max-width:100%}
.content-page img{height:auto}
.content-page :where(table){max-width:100%}
.fo-table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:760px){
  .content-page :where(table){display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .content-page :where(th,td){white-space:nowrap}
  .content-page :where(button,a,.fo-primary-btn,.fo-secondary-btn){touch-action:manipulation}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
