/* GenSPORT – page de l'application : indépendante du thème du site. */
@font-face{font-family:Outfit;font-weight:100 900;font-style:normal;font-display:swap;src:url(fonts/outfit-latin-wght-normal.woff2) format("woff2")}
@font-face{font-family:Montserrat;font-weight:100 900;font-style:normal;font-display:swap;src:url(fonts/montserrat-latin-wght-normal.woff2) format("woff2")}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.gsp-app{margin:0;min-height:100vh;background:#F3F3F3;color:#343338;font:400 16px/1.55 Montserrat,"Helvetica Neue",Arial,sans-serif}
.gsp-app h1,.gsp-app h2,.gsp-app h3,.gsp-app h4{font-family:Outfit,"Segoe UI",system-ui,sans-serif;color:#0C3F6B;line-height:1.2}
.gsp-app a{color:#1679CC}
.gsp-app a:hover{color:#0C3F6B}
.gsp-app :focus-visible{outline:3px solid #FF5253;outline-offset:2px}
.gsp-app img{max-width:100%;height:auto}

/* bandeau des espaces personnels */
.gsp-app__top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:12px clamp(16px,4vw,32px);background:#fff;border-bottom:4px solid #1679CC}
.gsp-app__top img{display:block}
.gsp-app__top nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px 18px}
.gsp-app__top nav a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:#0C3F6B;text-decoration:none}
.gsp-app__top nav a:hover{text-decoration:underline}
.gsp-app__main{max-width:980px;margin:0 auto;padding:20px clamp(14px,4vw,32px) 40px;background:#fff;min-height:calc(100vh - 72px)}
.gsp-app__main h3{font-size:1.25rem;margin:1.6em 0 .6em}
.gsp-app__main h4{font-size:1.05rem}
.gsp-app__main input,.gsp-app__main select,.gsp-app__main textarea,.gsp-app__main button{font:inherit}
.gsp-app--gestion main{padding-top:10px}

/* écran « Se connecter » */
.gsp-app--login{background:linear-gradient(160deg,#E8F2FB 0%,#F3F3F3 60%)}
.gsp-app--login main{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.gsp-app__card{width:min(420px,100%);background:#fff;border-radius:16px;border-top:6px solid #1679CC;box-shadow:0 14px 40px rgba(12,63,107,.14);padding:28px clamp(20px,6vw,36px) 24px}
.gsp-app__card img{display:block;margin:0 auto 18px}
.gsp-app__card h1{margin:0 0 6px;font-size:1.7rem;text-align:center}
.gsp-app__lead{margin:0 0 18px;text-align:center;color:#5b6570;font-size:.95rem}
.gsp-app__card form p{margin:0 0 14px}
.gsp-app__card label{display:block;font-weight:600;color:#0C3F6B;margin-bottom:4px}
.gsp-app__card input[type=text],.gsp-app__card input[type=password]{width:100%;min-height:48px;padding:10px 12px;border:1.5px solid #c9d3dd;border-radius:10px;font:inherit;background:#fff;color:inherit}
.gsp-app__card input[type=text]:focus,.gsp-app__card input[type=password]:focus{border-color:#1679CC}
.gsp-app__check label{display:flex;align-items:center;gap:8px;font-weight:400;color:inherit;min-height:44px;margin:0}
.gsp-app__check input{width:20px;height:20px;flex:none}
.gsp-app__btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:0 24px;border:0;border-radius:999px;background:#D2383A;color:#fff;font:700 1.05rem Outfit,"Segoe UI",system-ui,sans-serif;text-decoration:none;cursor:pointer}
.gsp-app__btn:hover,.gsp-app__btn:focus-visible{background:#0C3F6B;color:#fff}
.gsp-app__error{margin:0 0 16px;padding:10px 14px;border-radius:8px;background:#fde3e1;color:#8c1717;font-weight:600}
.gsp-app__links{margin:14px 0 0;text-align:center;font-size:.95rem}
@media print{.gsp-app__top{display:none}}
