/* =====================================================================
   Affiche de connexion « terrain » — identité visuelle LFPL (cf. willy/login)
   Chargée UNIQUEMENT par les écrans de connexion GUW (login + login_admin),
   via leur bloc {% block stylesheets %}. N'affecte aucune autre page.
   Portée limitée à body.guw-auth et aux classes .tl-*.
   ===================================================================== */
body.guw-auth{background:#16234a;}
body.guw-auth #contenu{max-width:none;width:100%;padding:0;margin:0;}

.tl-page{--b:#2D427B;--b7:#202F58;--gold:#C19A2A;--text:#14172B;--muted:#55607A;--border:#D4D8E2;
  position:relative;min-height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;
  background:linear-gradient(165deg,#16234a 0%,#1D2B52 42%,#14306b 100%);
  font-family:'Barlow','Segoe UI',Arial,sans-serif;color:var(--text);}
.tl-page *,.tl-page *::before,.tl-page *::after{box-sizing:border-box;}
.tl-pelouse{position:absolute;inset:0;z-index:0;opacity:.5;background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 64px,rgba(255,255,255,0) 64px 128px);}
.tl-traces{position:absolute;inset:6vh 8vw;z-index:0;border:2px solid rgba(255,255,255,.10);border-radius:4px;}
.tl-traces::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;background:rgba(255,255,255,.10);transform:translateX(-50%);}
.tl-traces::after{content:'';position:absolute;left:50%;top:50%;width:26vh;height:26vh;max-width:260px;max-height:260px;border:2px solid rgba(255,255,255,.10);border-radius:50%;transform:translate(-50%,-50%);}
.tl-halo{position:absolute;z-index:0;top:-28vh;left:50%;transform:translateX(-50%);width:90vw;height:70vh;pointer-events:none;background:radial-gradient(ellipse at center,rgba(193,154,42,.20),transparent 62%);}
.tl-tete,.tl-corps,.tl-pied{position:relative;z-index:1;}
.tl-tete{padding:22px 28px;display:flex;align-items:center;gap:14px;}
.tl-tete img{height:52px;width:auto;}
.tl-tete-txt{color:#fff;line-height:1.25;}
.tl-eyebrow{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);}
.tl-tete-txt strong{display:block;font-size:15px;font-weight:800;letter-spacing:.01em;}
.tl-corps{display:grid;grid-template-columns:1fr 400px;gap:48px;align-items:center;padding:20px 28px 40px;max-width:1180px;margin:0 auto;width:100%;}
.tl-accroche{color:#fff;}
.tl-accroche h1{font-size:clamp(30px,4.4vw,48px);line-height:1.08;font-weight:800;letter-spacing:-.02em;margin:0 0 18px;text-shadow:0 3px 18px rgba(0,0,0,.3);}
.tl-accroche h1 em{font-style:normal;color:var(--gold);}
.tl-accroche p{font-size:16px;line-height:1.65;color:rgba(255,255,255,.8);max-width:46ch;margin:0;}
.tl-demarche{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 0;padding:0;}
.tl-demarche li{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:30px;padding:9px 16px 9px 12px;font-size:13.5px;font-weight:700;color:rgba(255,255,255,.94);}
.tl-demarche svg{width:16px;height:16px;color:var(--gold);flex-shrink:0;}
.tl-carte{background:#fff;border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.34);padding:34px 32px;}
.tl-carte h1{font-size:20px;font-weight:800;color:var(--text);margin:0 0 4px;}
.tl-carte .sous{font-size:13.5px;color:var(--muted);margin:0 0 20px;}
.tl-carte label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:6px;}
.tl-badge{display:inline-flex;align-items:center;gap:6px;background:#EEF2FB;color:var(--b);font-size:11.5px;font-weight:700;padding:5px 12px;border-radius:999px;margin:0 0 16px;}
.tl-alert{border-radius:8px;padding:12px 14px;font-size:14px;font-weight:600;margin-bottom:18px;display:flex;align-items:center;gap:9px;background:#FDE7E9;color:#C81E27;border:1px solid #F6B8BE;}
.tl-alert svg{width:18px;height:18px;flex-shrink:0;}
.tl-info{border-radius:8px;padding:12px 14px;font-size:13.5px;margin-bottom:18px;background:#EEF2FB;color:var(--b7);border:1px solid #C9D6F0;}
.tl-info a{color:var(--b);font-weight:700;}
.tl-group{position:relative;margin-bottom:18px;}
.tl-group > input{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:12px 46px 12px 42px;font-size:16px;min-height:46px;color:var(--text);background:#fff;}
.tl-group > input:focus{outline:none;border-color:var(--b);box-shadow:0 0 0 3px rgba(45,66,123,.16);}
.tl-ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);display:flex;pointer-events:none;}
.tl-ic svg{width:18px;height:18px;}
.tl-eye{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;color:var(--muted);cursor:pointer;padding:0;}
.tl-eye:hover{background:#F4F6F9;color:var(--b);}
.tl-eye i{font-size:18px;line-height:1;}
.tl-btn{width:100%;border:none;border-radius:8px;padding:14px 18px;font-size:15px;font-weight:700;min-height:48px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--b);color:#fff;transition:background .15s,box-shadow .15s,opacity .15s;}
.tl-btn:hover{background:var(--b7);box-shadow:0 6px 18px rgba(45,66,123,.35);color:#fff;}
.tl-btn i{font-size:17px;}
.tl-liens{text-align:center;margin:16px 0 0;font-size:13px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;}
.tl-liens a{color:var(--b);font-weight:600;text-decoration:none;}
.tl-liens a:hover{text-decoration:underline;}
.tl-sep{color:var(--border);}
.tl-note{font-size:12.5px;color:var(--muted);line-height:1.5;margin:14px 0 0;text-align:center;}
.tl-pied{padding:16px 28px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:rgba(255,255,255,.55);border-top:1px solid rgba(255,255,255,.10);}
@media (max-width:900px){.tl-corps{grid-template-columns:1fr;gap:28px;}}
@media (max-width:640px){.tl-traces{inset:3vh 4vw;}.tl-tete{padding:18px 20px;}.tl-corps{padding:16px 20px 32px;}.tl-carte{padding:28px 22px;}.tl-pied{padding:14px 20px;font-size:11.5px;}}
@media (prefers-reduced-motion:reduce){.tl-page *{animation:none!important;transition:none!important;}}

/* =====================================================================
   Portail d'accueil GUW — page de choix d'espace (route "home").
   Réutilise .tl-page/.tl-tete/.tl-pied de l'affiche ; ne redéfinit PAS
   .tl-corps (l'accueil utilise .acc-corps, centré). Variables héritées
   de .tl-page (--b,--b7,--gold,--text,--muted,--border) ; titres en
   --guw-titre (Anton, fourni par app.css).
   ===================================================================== */
.acc-corps{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:24px 28px 48px;max-width:1000px;margin:0 auto;width:100%;text-align:center;}
.acc-accroche{color:#fff;max-width:60ch;}
.acc-accroche h1{font-family:var(--guw-titre,'Barlow',sans-serif);font-weight:400;letter-spacing:.005em;font-size:clamp(30px,4.6vw,50px);line-height:1.04;margin:0 0 12px;text-transform:uppercase;text-wrap:balance;text-shadow:0 3px 18px rgba(0,0,0,.32);}
.acc-accroche h1 em{font-style:normal;color:var(--gold);}
.acc-accroche p{font-size:16px;line-height:1.6;color:rgba(255,255,255,.8);margin:0 auto;max-width:52ch;}
.acc-tuiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;width:100%;max-width:820px;}
.acc-tuile{display:flex;flex-direction:column;gap:16px;background:#fff;border-radius:18px;border-top:4px solid var(--b);box-shadow:0 24px 60px rgba(0,0,0,.34);padding:28px 28px 24px;text-align:left;text-decoration:none;color:var(--text);transition:transform .15s ease,box-shadow .15s ease;}
.acc-tuile--admin{border-top-color:var(--gold);}
.acc-tuile:hover{transform:translateY(-3px);box-shadow:0 30px 70px rgba(0,0,0,.4);}
.acc-tuile:focus-visible{outline:3px solid var(--gold);outline-offset:4px;}
.acc-tuile-ico{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:rgba(45,66,123,.1);color:var(--b);}
.acc-tuile-ico svg{width:26px;height:26px;}
.acc-tuile-txt{display:flex;flex-direction:column;gap:6px;flex:1;}
.acc-tuile-titre{font-family:var(--guw-titre,'Barlow',sans-serif);font-weight:400;letter-spacing:.01em;font-size:22px;line-height:1.1;text-transform:uppercase;}
.acc-tuile-desc{font-size:14px;line-height:1.5;color:var(--muted);}
.acc-tuile-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;padding:12px 18px;min-height:48px;font-size:15px;font-weight:700;color:#fff;background:var(--b);transition:background .15s ease;}
.acc-tuile:hover .acc-tuile-cta{background:var(--b7);}
.acc-tuile-cta svg{width:18px;height:18px;}
@media (max-width:700px){.acc-tuiles{grid-template-columns:1fr;gap:16px;}.acc-corps{padding:20px 20px 32px;}.acc-tuile{padding:22px 20px 20px;}}
@media (prefers-reduced-motion:reduce){.acc-tuile,.acc-tuile-cta{transition:none;}.acc-tuile:hover{transform:none;}}
