:root{
  --site-max:1840px;
  --site-gutter:clamp(24px,3.4vw,72px);
  --green:#A6C80F;
  --green-dark:#8DB300;
  --green-soft:#EEF7C7;
  --green-ultra:#F7FBE7;
  --ink:#172033;
  --ink-2:#26324A;
  --muted:#637083;
  --line:#e4ead2;
  --bg:#f8faf3;
  --card:#fff;
  --danger:#b42318;
  --warning:#a15c00;
  --success:#2e7d32;
  --shadow:0 24px 70px rgba(23,32,51,.10);
  --shadow-soft:0 14px 38px rgba(23,32,51,.07);
  --radius:28px;
  --radius-lg:36px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:
    radial-gradient(circle at 12% 0%, rgba(166,200,15,.18), transparent 34%),
    radial-gradient(circle at 92% 10%, rgba(238,247,199,.95), transparent 32%),
    linear-gradient(180deg,#fbfcf5 0%,var(--bg) 48%,#fff 100%);
  color:var(--ink);
  line-height:1.55;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}


body.is-pwa-standalone{
  overscroll-behavior-y:contain;
}

@media (display-mode: standalone){
  body{
    background:
      radial-gradient(circle at 12% 0%, rgba(166,200,15,.20), transparent 34%),
      radial-gradient(circle at 92% 10%, rgba(238,247,199,.98), transparent 32%),
      linear-gradient(180deg,#fbfcf5 0%,var(--bg) 48%,#fff 100%);
  }

  .site-header{
    top:0;
  }
}

a{color:inherit}
img{max-width:100%;height:auto}
::selection{background:var(--green);color:#111827}

.container{width:min(var(--site-max),calc(100% - var(--site-gutter)));margin-inline:auto}

.skip-link{
  position:fixed;
  left:16px;
  top:12px;
  z-index:999;
  transform:translateY(-140%);
  padding:10px 14px;
  border-radius:999px;
  background:#172033;
  color:#fff;
  text-decoration:none;
  font-weight:900;
  box-shadow:var(--shadow-soft);
  transition:transform .18s ease;
}

.skip-link:focus{transform:translateY(0)}

:focus-visible{
  outline:3px solid rgba(166,200,15,.72);
  outline-offset:3px;
}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(22px) saturate(1.2);
  -webkit-backdrop-filter:blur(22px) saturate(1.2);
  border-bottom:1px solid rgba(228,234,210,.78);
  box-shadow:0 10px 32px rgba(23,32,51,.045);
}

.header-inner{
  height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.brand{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  border-radius:22px;
  transition:.2s ease;
}

.brand:hover{transform:translateY(-1px)}

.brand img{
  height:56px;
  display:block;
  filter:drop-shadow(0 10px 18px rgba(23,32,51,.10));
}

.main-nav{display:flex;align-items:center;gap:8px}

.main-nav a{
  text-decoration:none;
  font-weight:800;
  font-size:14px;
  color:#29344a;
  padding:10px 12px;
  border-radius:999px;
  transition:.18s ease;
}

.main-nav a:hover{
  color:#111827;
  background:var(--green-soft);
}

.main-nav a[aria-current="page"]{
  color:#111827;
  background:#eef7c7;
  box-shadow:inset 0 0 0 1px rgba(166,200,15,.34);
}

.menu-toggle{
  display:none;
  border:0;
  background:var(--green-soft);
  border-radius:16px;
  padding:10px 14px;
  font-size:22px;
  box-shadow:0 10px 24px rgba(23,32,51,.06);
}

.btn,button.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg,var(--green),#c9e84d);
  color:#111827;
  text-decoration:none;
  font-weight:950;
  padding:14px 21px;
  box-shadow:0 14px 30px rgba(166,200,15,.30), inset 0 1px 0 rgba(255,255,255,.55);
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}

.btn:hover{
  background:linear-gradient(135deg,var(--green-dark),var(--green));
  transform:translateY(-2px);
  box-shadow:0 18px 34px rgba(141,179,0,.30);
}

.btn:active{transform:translateY(0)}
.btn-small{padding:10px 15px;font-size:13px}

.btn-secondary{
  background:rgba(255,255,255,.84);
  border:1px solid var(--line);
  box-shadow:0 10px 24px rgba(23,32,51,.06);
  color:var(--ink);
}

.btn-secondary:hover{
  background:#fff;
  border-color:#d3ddb0;
}

.btn-danger{
  background:#fee2e2;
  color:#7f1d1d;
  box-shadow:none;
}

.hero{
  padding:84px 0 54px;
  position:relative;
  overflow:hidden;
}

.hero:before{
  content:"";
  position:absolute;
  inset:24px auto auto 50%;
  width:520px;
  height:520px;
  transform:translateX(-8%);
  background:radial-gradient(circle,rgba(166,200,15,.22),transparent 66%);
  pointer-events:none;
}

.hero-grid{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:48px;
  align-items:center;
  position:relative;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(238,247,199,.92);
  border:1px solid rgba(166,200,15,.26);
  border-radius:999px;
  padding:8px 14px;
  font-weight:950;
  color:#425300;
  margin-bottom:18px;
  box-shadow:0 10px 24px rgba(166,200,15,.10);
}

.eyebrow:before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 5px rgba(166,200,15,.18);
}

.hero h1,.page-hero h1{
  font-size:clamp(40px,5vw,72px);
  line-height:1;
  margin:0 0 20px;
  letter-spacing:-.06em;
  color:#111827;
}

.lead{
  font-size:clamp(17px,2vw,21px);
  color:var(--muted);
  max-width:740px;
  margin:0;
}

.hero-card{
  position:relative;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(238,247,199,.88));
  border:1px solid rgba(228,234,210,.92);
  border-radius:var(--radius-lg);
  padding:16px;
  box-shadow:var(--shadow);
  overflow:hidden;
}

.hero-card:before{
  content:"";
  position:absolute;
  inset:-55% -45% auto auto;
  width:260px;
  height:260px;
  border-radius:999px;
  background:rgba(166,200,15,.24);
}

.hero-card img{
  position:relative;
  display:block;
  width:100%;
  border-radius:26px;
  aspect-ratio:4/3;
  object-fit:cover;
  box-shadow:0 16px 32px rgba(23,32,51,.12);
}

.section{padding:58px 0}

.section-title{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:24px;
}

.section-title h2{
  font-size:clamp(28px,3vw,42px);
  letter-spacing:-.045em;
  margin:0;
  color:#111827;
}

.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}

.card{
  position:relative;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(228,234,210,.92);
  border-radius:var(--radius);
  padding:28px;
  box-shadow:var(--shadow-soft);
  overflow:hidden;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.card:before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:5px;
  background:linear-gradient(90deg,var(--green),rgba(166,200,15,0));
}

.card:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 52px rgba(23,32,51,.10);
  border-color:#d8e5a8;
}

.card h2,.card h3{
  margin:0 0 12px;
  color:#111827;
  letter-spacing:-.03em;
}

.card h2{
  font-size:clamp(28px,3vw,40px);
  line-height:1.08;
}

.card h3{font-size:22px}
.card p{margin-top:0}
.card .btn{margin-top:8px}

.muted{color:var(--muted)}

.pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  background:var(--green-soft);
  padding:6px 12px;
  font-weight:850;
  font-size:13px;
  color:#425300;
}

.price{
  font-size:28px;
  font-weight:950;
  letter-spacing:-.04em;
}

.form{display:grid;gap:14px}
.field{display:grid;gap:7px}
.field label{font-weight:850}

.input,select,textarea{
  width:100%;
  border:1px solid #dfe5cf;
  background:#fff;
  border-radius:18px;
  padding:13px 15px;
  font:inherit;
  color:var(--ink);
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease;
}

.input:focus,select:focus,textarea:focus{
  border-color:var(--green);
  box-shadow:0 0 0 4px rgba(166,200,15,.18);
}

textarea{
  min-height:140px;
  resize:vertical;
}

.table-wrap{
  overflow:auto;
  border-radius:22px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:var(--shadow-soft);
}

table{
  width:100%;
  border-collapse:collapse;
  min-width:760px;
}

th,td{
  text-align:left;
  padding:14px 16px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}

th{
  background:#f5f8e9;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#465167;
}

tr:hover td{background:#fcfdf5}

.alert{
  margin:18px 0;
  border-radius:18px;
  padding:14px 16px;
  font-weight:850;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 10px 24px rgba(23,32,51,.05);
}

.alert-success{
  border-color:#b7e4bc;
  background:#effaf0;
  color:var(--success);
}

.alert-danger{
  border-color:#fecaca;
  background:#fff1f2;
  color:var(--danger);
}

.alert-warning{
  border-color:#fed7aa;
  background:#fff7ed;
  color:var(--warning);
}

.page-hero{padding:58px 0 24px}

.admin-strip{
  background:#172033;
  color:#fff;
  box-shadow:0 12px 34px rgba(17,24,39,.18);
}

.admin-strip-inner{
  display:flex;
  gap:10px;
  align-items:center;
  overflow:auto;
  padding-block:10px;
}

.admin-strip a{
  color:#fff;
  text-decoration:none;
  background:rgba(255,255,255,.10);
  border-radius:999px;
  padding:8px 12px;
  white-space:nowrap;
  font-size:13px;
  font-weight:800;
}

.admin-strip a:hover{background:rgba(166,200,15,.26)}

.stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.stat{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:20px;
  box-shadow:var(--shadow-soft);
}

.stat strong{
  display:block;
  font-size:34px;
  letter-spacing:-.04em;
  color:#111827;
}

.actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.site-footer{
  margin-top:70px;
  background:linear-gradient(145deg,#111827,#172033);
  color:#f9fafb;
  padding:30px 0 22px;
}

.footer-grid{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);
  gap:28px;
  align-items:start;
}

.footer-grid strong{
  display:block;
  font-size:18px;
  margin-bottom:6px;
}

.footer-grid p{
  margin:0;
  max-width:620px;
  color:#d1d5db;
  font-weight:650;
}

.footer-logo{
  height:54px;
  background:#fff;
  border-radius:16px;
  padding:8px;
  box-shadow:0 12px 30px rgba(0,0,0,.20);
}

.site-footer a{
  display:block;
  color:#d1d5db;
  text-decoration:none;
  margin:8px 0;
  transition:.18s ease;
}

.site-footer a:hover{
  color:#fff;
  transform:translateX(2px);
}

.footer-bottom{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.10);
  color:#d1d5db;
  text-align:center;
  display:flex;
  justify-content:center;
  align-items:center;
}

.empty{
  padding:28px;
  border:1px dashed #ccd6a4;
  border-radius:22px;
  background:#fbfdf3;
  color:var(--muted);
}

.badge{
  border-radius:999px;
  padding:5px 10px;
  background:#eef2ff;
  font-weight:850;
  font-size:12px;
}

.badge.ok{
  background:#dcfce7;
  color:#166534;
}

.badge.ko{
  background:#fee2e2;
  color:#991b1b;
}

.badge.wait{
  background:#fef3c7;
  color:#92400e;
}

@media (max-width:900px){
  .hero{padding:58px 0 34px}

  .hero-grid,
  .grid-2,
  .grid-3,
  .grid-4,
  .stats,
  .footer-grid{
    grid-template-columns:1fr;
  }

  .menu-toggle{display:block}

  .main-nav{
    display:none;
    position:absolute;
    left:16px;
    right:16px;
    top:78px;
    background:rgba(255,255,255,.96);
    border:1px solid var(--line);
    border-radius:24px;
    padding:16px;
    box-shadow:var(--shadow);
    flex-direction:column;
    align-items:stretch;
    backdrop-filter:blur(18px);
  }

  .main-nav.open{display:flex}
  .main-nav a{padding:11px 12px}
  .header-inner{height:72px}
  .brand img{height:46px}
  .section{padding:38px 0}
  .card{padding:22px}
}

@media (max-width:560px){
  .container{width:calc(100% - 22px)}

  .hero h1,.page-hero h1{
    font-size:clamp(34px,12vw,48px);
  }

  .actions{align-items:stretch}
  .actions .btn{width:100%}
  .hero-card{padding:12px;border-radius:26px}
  .hero-card img{border-radius:20px}
}

/* Layout global : garde le footer en bas de l'écran quand la page est courte */
main,
.site-main{
  flex:1 0 auto;
}

.site-footer{
  margin-top:auto;
  flex-shrink:0;
}



/* Logo CSE arrondi dans le header */
.brand{
  border-radius:24px;
  overflow:hidden;
}

.brand img{
  background:#fff;
  border-radius:22px;
  padding:6px;
  box-shadow:0 12px 28px rgba(23,32,51,.10);
}


/* ==========================================================
   CSE Sonéo — DA unifiée pages salariés + admin utilisateurs
   Patch 2026-05-23
   ========================================================== */
.da-page-hero{
  position:relative;
  overflow:hidden;
  padding:64px 0 34px;
}

.da-page-hero:before{
  content:"";
  position:absolute;
  right:-120px;
  top:-160px;
  width:420px;
  height:420px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(166,200,15,.24),rgba(238,247,199,.08) 50%,transparent 72%);
  pointer-events:none;
}

.da-page-hero:after{
  content:"";
  position:absolute;
  left:4%;
  bottom:-130px;
  width:300px;
  height:300px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(238,247,199,.78),transparent 68%);
  pointer-events:none;
}

.da-page-hero .container{
  position:relative;
  z-index:1;
}

.da-page-hero h1{
  margin:12px 0 10px;
  max-width:820px;
  color:#111827;
  font-size:clamp(38px,6vw,70px);
  line-height:.96;
  letter-spacing:-.065em;
}

.da-page-hero .lead{
  max-width:760px;
  color:#526075;
  font-size:clamp(16px,2vw,20px);
  line-height:1.55;
}

.da-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(210px,270px);
  gap:28px;
  align-items:end;
}

.da-hero-stat{
  position:relative;
  overflow:hidden;
  min-height:158px;
  display:grid;
  align-content:center;
  padding:24px;
  border:1px solid rgba(228,234,210,.95);
  border-radius:30px;
  background:rgba(255,255,255,.88);
  box-shadow:var(--shadow-soft);
}

.da-hero-stat:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:6px;
  background:linear-gradient(180deg,var(--green),rgba(166,200,15,.2));
}

.da-hero-stat span,
.da-hero-stat small{
  color:var(--muted);
  font-size:13px;
  font-weight:850;
}

.da-hero-stat strong{
  margin:8px 0;
  color:#111827;
  font-size:clamp(34px,5vw,52px);
  line-height:1;
  letter-spacing:-.06em;
}

.da-library-section{
  padding-top:28px;
}

.da-document-stack{
  display:grid;
  gap:22px;
}

.da-pdf-card,
.document-card.da-pdf-card{
  position:relative;
  overflow:hidden;
  padding:24px;
  border:1px solid rgba(228,234,210,.95);
  border-radius:32px;
  background:rgba(255,255,255,.9);
  box-shadow:var(--shadow-soft);
}

.da-pdf-card:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:5px;
  background:linear-gradient(90deg,var(--green),rgba(238,247,199,.4));
}

.da-document-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:20px;
}

.da-document-title h2,
.da-pdf-card h2,
.document-card h2{
  margin:10px 0 6px;
  color:#111827;
  font-size:clamp(22px,3vw,34px);
  line-height:1.06;
  letter-spacing:-.045em;
}

.da-document-title .muted{
  margin:0;
  font-size:14px;
  font-weight:750;
}

.da-pdf-viewer-container,
.pdf-viewer-container,
.document-viewer{
  width:100%;
  height:min(76vh,820px);
  min-height:560px;
  overflow:hidden;
  border:1px solid rgba(228,234,210,.95);
  border-radius:26px;
  background:linear-gradient(145deg,#fff 0%,#f8fbec 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 16px 38px rgba(23,32,51,.055);
}

.da-pdf-viewer,
.pdf-viewer,
.document-viewer iframe{
  width:100%;
  height:100%;
  display:block;
  border:0;
  background:#fff;
}

.da-document-note,
.document-note{
  margin:14px 0 0;
  color:var(--muted);
  font-size:14px;
  font-weight:800;
}

.da-empty,
.empty{
  border:1px solid rgba(228,234,210,.95);
  border-radius:28px;
  background:rgba(255,255,255,.86);
  box-shadow:var(--shadow-soft);
}

/* Mon espace */
.profile-page .profile-identity-card,
.profile-full-card,
.profile-page .card.form{
  border:1px solid rgba(228,234,210,.95);
  background:rgba(255,255,255,.9);
  box-shadow:var(--shadow-soft);
}

.profile-page .profile-identity-card{
  position:relative;
  overflow:hidden;
}

.profile-page .profile-identity-card:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,var(--green),rgba(166,200,15,.2));
}

.profile-page .profile-full-card h2,
.profile-page .card.form h2{
  color:#111827;
  font-size:clamp(24px,3vw,36px);
  line-height:1.08;
  letter-spacing:-.045em;
}

.profile-page .profile-dl{
  padding-top:8px;
}

.profile-page .profile-dl dt{
  color:#667085;
  font-size:14px;
  text-transform:none;
}

.profile-page .profile-dl dd{
  color:#111827;
}

.profile-page .profile-separator{
  border-top-color:rgba(228,234,210,.95);
}

/* Admin utilisateurs */
.users-page .lead{
  max-width:760px;
}

.admin-user-panels{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}

.da-admin-form{
  position:relative;
  overflow:hidden;
  padding:26px;
  border:1px solid rgba(228,234,210,.95);
  border-radius:30px;
  background:rgba(255,255,255,.9);
  box-shadow:var(--shadow-soft);
}

.da-admin-form:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:5px;
  background:linear-gradient(90deg,var(--green),rgba(238,247,199,.55));
}

.da-admin-form h2{
  margin:0 0 18px;
  color:#111827;
  font-size:clamp(22px,2.5vw,34px);
  line-height:1.08;
  letter-spacing:-.045em;
}

.da-search-card{
  order:-1;
}

.da-list-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:4px;
}

.da-list-heading h2{
  margin:8px 0 0;
  color:#111827;
  font-size:clamp(24px,3vw,36px);
  line-height:1.1;
  letter-spacing:-.045em;
}

.users-admin-list{
  display:grid;
  gap:18px;
}

.user-admin-card{
  position:relative;
  overflow:hidden;
  gap:18px;
  padding:24px;
  border:1px solid rgba(228,234,210,.95);
  border-radius:30px;
  background:rgba(255,255,255,.9);
  box-shadow:var(--shadow-soft);
}

.user-admin-card:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,var(--green),rgba(166,200,15,.15));
}

.user-admin-head{
  position:relative;
  z-index:1;
  padding-bottom:14px;
  border-bottom:1px solid rgba(228,234,210,.82);
}

.user-admin-head h2{
  color:#111827;
  font-size:clamp(20px,2.2vw,30px);
  line-height:1.08;
  letter-spacing:-.04em;
}

.user-edit-form{
  position:relative;
  z-index:1;
}

.user-admin-photo-line{
  border-color:rgba(228,234,210,.95);
  border-radius:22px;
  background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(247,251,231,.78));
}

.badge.ok{
  background:rgba(46,125,50,.12);
  color:#1b5e20;
}

.badge.wait{
  background:rgba(161,92,0,.12);
  color:#7a4400;
}

@media (max-width:900px){
  .da-hero-grid{
    grid-template-columns:1fr;
    align-items:start;
  }

  .da-hero-stat{
    min-height:132px;
  }

  .da-document-header{
    flex-direction:column;
  }

  .da-pdf-viewer-container,
  .pdf-viewer-container,
  .document-viewer{
    height:72vh;
    min-height:500px;
    border-radius:20px;
  }
}

@media (max-width:640px){
  .da-page-hero{
    padding:46px 0 24px;
  }

  .da-pdf-card,
  .document-card.da-pdf-card,
  .da-admin-form,
  .user-admin-card{
    padding:18px;
    border-radius:24px;
  }

  .da-pdf-viewer-container,
  .pdf-viewer-container,
  .document-viewer{
    min-height:430px;
  }
}

/* ==========================================================
   CSE Sonéo — Correctif dashboard administration
   Patch 2026-05-23
   ========================================================== */
.admin-body{
  background:
    radial-gradient(circle at 12% 0%, rgba(166,200,15,.18), transparent 34%),
    radial-gradient(circle at 88% 12%, rgba(238,247,199,.95), transparent 32%),
    linear-gradient(180deg,#fbfcf5 0%,#f8faf3 52%,#fff 100%);
}

.main-nav a{
  border-radius:14px;
}

.main-nav .btn,
.btn.btn-small{
  border-radius:16px;
}

.admin-strip{
  background:linear-gradient(135deg,#111827,#1e293b);
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 14px 34px rgba(17,24,39,.18);
}

.admin-strip-inner{
  gap:8px;
  padding-block:10px;
}

.admin-strip-inner strong{
  margin-right:4px;
  color:#f8fafc;
  font-weight:950;
}

.admin-strip a{
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}

.admin-strip a:hover{
  background:rgba(166,200,15,.22);
  border-color:rgba(166,200,15,.42);
}


/* Back-office — état permanence dans la navigation
   Le lien reflète l’état : ouvert = vert ; fermeture récente = alerte rouge temporaire. */
.admin-strip a.admin-permanence-link.is-open{
  color:#111827;
  background:linear-gradient(135deg,var(--green),#daf06d);
  border-color:rgba(166,200,15,.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.36),0 0 0 1px rgba(166,200,15,.18),0 10px 26px rgba(166,200,15,.20);
}
.admin-strip a.admin-permanence-link.is-open:hover{
  background:linear-gradient(135deg,#b7dc20,#e0f47a);
  border-color:rgba(166,200,15,.86);
}
.admin-strip a.admin-permanence-link.is-just-closed{
  animation:cse-permanence-closed-pulse .72s ease-in-out 3;
}
@keyframes cse-permanence-closed-pulse{
  0%,100%{color:#fff;background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.12)}
  35%,65%{color:#fff;background:rgba(239,68,68,.86);border-color:rgba(248,113,113,.92);box-shadow:0 0 0 5px rgba(239,68,68,.18),0 10px 26px rgba(239,68,68,.24)}
}

.admin-dashboard-page{
  position:relative;
  overflow:hidden;
}

.admin-dashboard-page:before{
  content:"";
  position:absolute;
  right:-190px;
  top:-120px;
  width:520px;
  height:520px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(166,200,15,.22),rgba(238,247,199,.10) 48%,transparent 72%);
  pointer-events:none;
}

.admin-dashboard-hero{
  position:relative;
  padding:64px 0 34px;
}

.admin-dashboard-hero-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(230px,310px);
  gap:28px;
  align-items:end;
}

.admin-dashboard-hero h1{
  max-width:900px;
  margin:12px 0 0;
  color:#111827;
  font-size:clamp(42px,5.8vw,76px);
  line-height:.96;
  letter-spacing:-.065em;
}

.admin-dashboard-hero-card{
  position:relative;
  overflow:hidden;
  display:grid;
  align-content:center;
  min-height:150px;
  padding:24px;
  border:1px solid rgba(228,234,210,.95);
  border-radius:26px;
  background:rgba(255,255,255,.88);
  box-shadow:var(--shadow-soft);
}

.admin-dashboard-hero-card:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:6px;
  background:linear-gradient(180deg,var(--green),rgba(166,200,15,.2));
}

.admin-dashboard-hero-card span,
.admin-dashboard-hero-card small{
  position:relative;
  z-index:1;
  color:var(--muted);
  font-size:13px;
  font-weight:850;
}

.admin-dashboard-hero-card strong{
  position:relative;
  z-index:1;
  margin:6px 0;
  color:#111827;
  font-size:46px;
  line-height:1;
  letter-spacing:-.06em;
}

.admin-dashboard-section{
  position:relative;
  z-index:1;
  padding-top:24px;
}

.admin-kpi-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
  margin-bottom:24px;
}

.admin-kpi-card{
  position:relative;
  overflow:hidden;
  min-height:150px;
  display:grid;
  align-content:space-between;
  gap:12px;
  padding:20px;
  border:1px solid rgba(228,234,210,.95);
  border-radius:24px;
  background:rgba(255,255,255,.9);
  box-shadow:var(--shadow-soft);
}

.admin-kpi-card:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:5px;
  background:linear-gradient(90deg,var(--green),rgba(238,247,199,.5));
}

.admin-kpi-card span{
  color:#334155;
  font-size:13px;
  font-weight:950;
}

.admin-kpi-card strong{
  color:#111827;
  font-size:clamp(34px,4vw,48px);
  line-height:.95;
  letter-spacing:-.06em;
}

.admin-kpi-card small{
  color:var(--muted);
  font-size:13px;
  font-weight:750;
  line-height:1.35;
}

.admin-kpi-card-warning:before{
  background:linear-gradient(90deg,#f59e0b,rgba(254,243,199,.7));
}

.admin-module-panel{
  position:relative;
  overflow:hidden;
  padding:26px;
  border:1px solid rgba(228,234,210,.95);
  border-radius:30px;
  background:rgba(255,255,255,.9);
  box-shadow:var(--shadow);
}

.admin-module-panel:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:6px;
  background:linear-gradient(90deg,var(--green),rgba(238,247,199,.55));
}

.admin-module-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}

.admin-module-heading h2{
  margin:0;
  color:#111827;
  font-size:clamp(26px,3vw,40px);
  line-height:1.08;
  letter-spacing:-.045em;
}

.admin-module-list{
  display:grid;
  gap:14px;
}

.admin-module-row{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:17px;
  border:1px solid rgba(228,234,210,.95);
  border-radius:22px;
  background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(247,251,231,.72));
  color:inherit;
  text-decoration:none;
  box-shadow:0 12px 28px rgba(23,32,51,.045);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;
}

.admin-module-row:hover{
  transform:translateY(-2px);
  border-color:rgba(166,200,15,.48);
  background:linear-gradient(135deg,#fff,rgba(238,247,199,.92));
  box-shadow:0 18px 42px rgba(23,32,51,.08);
}

.admin-module-tag{
  display:inline-flex;
  width:54px;
  height:54px;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  background:linear-gradient(135deg,var(--green),#d9ef6d);
  color:#111827;
  font-weight:950;
  box-shadow:0 12px 24px rgba(166,200,15,.24), inset 0 1px 0 rgba(255,255,255,.5);
}

.admin-module-copy{
  display:grid;
  gap:4px;
  min-width:0;
}

.admin-module-copy strong{
  color:#111827;
  font-size:18px;
  line-height:1.15;
  letter-spacing:-.02em;
}

.admin-module-copy small{
  color:var(--muted);
  font-size:14px;
  font-weight:750;
  line-height:1.35;
}

.admin-module-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:86px;
  padding:10px 14px;
  border:1px solid rgba(166,200,15,.35);
  border-radius:16px;
  background:rgba(238,247,199,.86);
  color:#111827;
  font-size:13px;
  font-weight:950;
}

@media (max-width:1100px){
  .admin-kpi-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:900px){
  .admin-dashboard-hero{
    padding:46px 0 24px;
  }

  .admin-dashboard-hero-grid{
    grid-template-columns:1fr;
    align-items:start;
  }

  .admin-dashboard-hero-card{
    min-height:126px;
  }

  .admin-kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .admin-module-panel{
    padding:20px;
    border-radius:26px;
  }
}

@media (max-width:640px){
  .admin-kpi-grid{
    grid-template-columns:1fr;
  }

  .admin-module-row{
    grid-template-columns:48px minmax(0,1fr);
    gap:14px;
    padding:15px;
  }

  .admin-module-tag{
    width:48px;
    height:48px;
    border-radius:16px;
  }

  .admin-module-action{
    grid-column:1 / -1;
    width:100%;
  }
}

/* ==========================================================
   CSE Sonéo — Harmonisation des titres de blocs transversaux
   Objectif : unifier les titres du type
   "Une question, une permanence ou une demande ?"
   Patch 2026-05-25
   ========================================================== */

.cse-section-heading,
.cse-info-heading,
.cse-question-heading,
.cse-contact-heading,
.contact-heading,
.help-heading,
.info-heading{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink,#172033);
  font-size:clamp(24px,2.4vw,34px);
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.045em;
}

.cse-section-intro,
.cse-info-intro,
.cse-question-intro,
.cse-contact-intro,
.contact-intro,
.help-intro,
.info-intro{
  margin:.65rem 0 0;
  max-width:760px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--muted,#637083);
  font-size:clamp(15px,1.15vw,17px);
  line-height:1.65;
  font-weight:650;
}

/* Pont visuel : applique la même DA aux titres de cards/blocs déjà existants,
   sans toucher aux grands titres de page ou aux héros. */
.card .cse-section-heading,
.card .cse-info-heading,
.card .cse-question-heading,
.card .cse-contact-heading,
.da-admin-form .cse-section-heading,
.da-admin-form .cse-info-heading,
.da-admin-form .cse-question-heading,
.da-admin-form .cse-contact-heading,
.profile-full-card .cse-section-heading,
.profile-full-card .cse-info-heading,
.profile-full-card .cse-question-heading,
.profile-full-card .cse-contact-heading,
.da-pdf-card .cse-section-heading,
.da-pdf-card .cse-info-heading,
.da-pdf-card .cse-question-heading,
.da-pdf-card .cse-contact-heading{
  color:var(--ink,#172033);
  font-size:clamp(24px,2.4vw,34px);
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.045em;
}

/* Cas fréquent : bloc d'aide/contact placé dans une card.
   À utiliser avec une card dédiée en ajoutant class="cse-question-card" sur la card. */
.cse-question-card h2,
.cse-contact-card h2,
.cse-info-card h2{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink,#172033);
  font-size:clamp(24px,2.4vw,34px);
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.045em;
}

.cse-question-card p,
.cse-contact-card p,
.cse-info-card p{
  color:var(--muted,#637083);
  font-size:clamp(15px,1.15vw,17px);
  line-height:1.65;
  font-weight:650;
}

@media (max-width:640px){
  .cse-section-heading,
  .cse-info-heading,
  .cse-question-heading,
  .cse-contact-heading,
  .contact-heading,
  .help-heading,
  .info-heading,
  .cse-question-card h2,
  .cse-contact-card h2,
  .cse-info-card h2{
    font-size:22px;
    line-height:1.14;
    letter-spacing:-.032em;
  }

  .cse-section-intro,
  .cse-info-intro,
  .cse-question-intro,
  .cse-contact-intro,
  .contact-intro,
  .help-intro,
  .info-intro,
  .cse-question-card p,
  .cse-contact-card p,
  .cse-info-card p{
    font-size:15px;
    line-height:1.58;
  }
}



/* ==========================================================
   CSE Sonéo — Titres principaux harmonisés public + admin
   Patch 2026-05-25
   Objectif : même police, même taille et même couleur que
   « Une question, une permanence ou une demande ? » partout.
   ========================================================== */
:root{
  --cse-main-title-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --cse-main-title-color: var(--ink, #172033);
  --cse-main-title-size: clamp(36px, 5vw, 62px);
  --cse-main-title-line-height: .95;
  --cse-main-title-letter-spacing: -.06em;
  --cse-main-title-weight: 950;
}

.cse-page-heading,
.page-hero .cse-page-heading,
.hero .cse-page-heading,
.home-hero .cse-page-heading,
.da-page-hero .cse-page-heading,
.admin-dashboard-hero .cse-page-heading,
.contact-hero-grid .cse-page-heading,
.benefits-hero-grid .cse-page-heading,
.admin-benefits-hero-grid .cse-page-heading,
.profile-hero-title.cse-page-heading,
.login-main-card .cse-page-heading{
  max-width: 860px;
  margin-top: 14px;
  margin-bottom: 18px;
  font-family: var(--cse-main-title-font) !important;
  color: var(--cse-main-title-color) !important;
  font-size: var(--cse-main-title-size) !important;
  line-height: var(--cse-main-title-line-height) !important;
  letter-spacing: var(--cse-main-title-letter-spacing) !important;
  font-weight: var(--cse-main-title-weight) !important;
}

.login-main-card .cse-page-heading{
  margin-top: 0;
}

@media (max-width:640px){
  .cse-page-heading,
  .page-hero .cse-page-heading,
  .hero .cse-page-heading,
  .home-hero .cse-page-heading,
  .da-page-hero .cse-page-heading,
  .admin-dashboard-hero .cse-page-heading,
  .contact-hero-grid .cse-page-heading,
  .benefits-hero-grid .cse-page-heading,
  .admin-benefits-hero-grid .cse-page-heading,
  .profile-hero-title.cse-page-heading,
  .login-main-card .cse-page-heading{
    font-size: clamp(32px, 10vw, 44px) !important;
    line-height: 1 !important;
    letter-spacing: -.052em !important;
  }
}

/* ==========================================================
   CSE Sonéo — Accordéons premium globaux
   Sprint harmonisation finale 2026-05-25
   ========================================================== */
.cse-collapsible-stack{
  display:grid;
  gap:22px;
}

.cse-collapsible-card{
  display:block;
}

.cse-collapsible-card > summary,
.cse-collapsible-summary{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:100%;
  cursor:pointer;
  list-style:none;
  user-select:none;
}

.cse-collapsible-card > summary::-webkit-details-marker,
.cse-collapsible-summary::-webkit-details-marker{
  display:none;
}

.cse-collapsible-title{
  display:grid;
  gap:5px;
  min-width:0;
}

.cse-collapsible-title strong{
  color:var(--ink,#172033);
  font-size:clamp(20px,2.2vw,30px);
  line-height:1.08;
  font-weight:950;
  letter-spacing:-.04em;
}

.cse-collapsible-title small{
  color:var(--muted,#637083);
  font-size:14px;
  line-height:1.45;
  font-weight:750;
}

.cse-collapsible-meta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
}

.cse-collapsible-indicator{
  flex:0 0 auto;
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid rgba(166,200,15,.45);
  background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(238,247,199,.9));
  box-shadow:0 10px 22px rgba(23,32,51,.07);
  position:relative;
}

.cse-collapsible-indicator:before,
.cse-collapsible-indicator:after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:14px;
  height:2px;
  border-radius:999px;
  background:var(--green-dark,#8DB300);
  transform:translate(-50%,-50%);
  transition:transform .18s ease,opacity .18s ease;
}

.cse-collapsible-indicator:after{
  transform:translate(-50%,-50%) rotate(90deg);
}

.cse-collapsible-card[open] .cse-collapsible-indicator:after{
  opacity:0;
  transform:translate(-50%,-50%) rotate(0deg);
}

.cse-collapsible-body{
  position:relative;
  z-index:1;
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid rgba(228,234,210,.88);
}

.cse-collapsible-body.form,
form.cse-collapsible-body{
  display:grid;
  gap:14px;
}

.cse-action-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}

.cse-check-row,
.admin-mail-toggle,
.check-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px;
  border-radius:20px;
  border:1px solid var(--line,#e4ead2);
  background:rgba(247,251,231,.58);
  color:var(--ink,#172033);
  font-weight:900;
  line-height:1.35;
}

.cse-check-row input,
.admin-mail-toggle input,
.check-row input{
  width:18px;
  height:18px;
  flex:0 0 auto;
}

.cse-admin-panel-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  align-items:start;
}

.cse-admin-full{
  grid-column:1 / -1;
}

.cse-table-note{
  margin:0 0 14px;
  color:var(--muted,#637083);
  font-weight:700;
}

@media (max-width:900px){
  .cse-admin-panel-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .cse-collapsible-card > summary,
  .cse-collapsible-summary{
    align-items:flex-start;
  }

  .cse-collapsible-meta{
    justify-content:flex-start;
  }

  .cse-collapsible-title strong{
    font-size:22px;
    letter-spacing:-.032em;
  }

  .cse-collapsible-title small{
    font-size:13px;
  }
}


/* ==========================================================
   CSE Sonéo — Sprint UX mobile + PWA + package final
   Version 20260525-pwa-final-1
   ========================================================== */
html{
  -webkit-text-size-adjust:100%;
}

body{
  overflow-x:hidden;
}

button,
a,
summary,
input,
select,
textarea{
  -webkit-tap-highlight-color:rgba(166,200,15,.18);
}

.menu-toggle{
  min-width:48px;
  min-height:48px;
  line-height:1;
}

.main-nav.open{
  max-height:calc(100vh - 92px);
  overflow:auto;
}

.admin-strip-inner{
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}

.table-wrap{
  -webkit-overflow-scrolling:touch;
}

.pwa-install-fab{
  position:fixed;
  right:max(18px,env(safe-area-inset-right));
  bottom:max(18px,env(safe-area-inset-bottom));
  z-index:90;
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(166,200,15,.45);
  border-radius:999px;
  padding:11px 15px;
  background:linear-gradient(135deg,var(--green),#d9ef6d);
  color:#111827;
  font:inherit;
  font-size:13px;
  font-weight:950;
  box-shadow:0 18px 38px rgba(23,32,51,.18), inset 0 1px 0 rgba(255,255,255,.58);
  cursor:pointer;
}

.pwa-install-fab[hidden]{
  display:none !important;
}

.pwa-install-fab strong{line-height:1;}

.pwa-install-fab span{
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:999px;
  background:rgba(255,255,255,.7);
  font-weight:950;
}

.pwa-help-overlay{
  position:fixed;
  inset:0;
  z-index:120;
  display:grid;
  place-items:center;
  padding:22px;
  background:rgba(17,24,39,.48);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.pwa-help-panel{
  position:relative;
  width:min(520px,100%);
  border:1px solid rgba(228,234,210,.96);
  border-radius:30px;
  padding:28px;
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,251,231,.96));
  box-shadow:0 28px 80px rgba(17,24,39,.24);
}

.pwa-help-close{
  position:absolute;
  right:14px;
  top:14px;
  width:38px;
  height:38px;
  border:0;
  border-radius:999px;
  background:#fff;
  color:#172033;
  font-size:22px;
  box-shadow:0 8px 20px rgba(23,32,51,.10);
  cursor:pointer;
}

.pwa-help-icon{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  margin-bottom:14px;
  border-radius:18px;
  background:var(--green-soft);
  color:#425300;
  font-size:25px;
  font-weight:950;
}

.pwa-help-panel h2{
  margin:0 0 10px;
  color:#111827;
  font-size:clamp(24px,4vw,34px);
  line-height:1.05;
  letter-spacing:-.045em;
}

.pwa-help-panel p{
  margin:0 0 12px;
  color:var(--muted);
  font-weight:700;
}

.pwa-help-warning{
  padding:12px 14px;
  border:1px solid #fed7aa;
  border-radius:18px;
  background:#fff7ed;
  color:#9a3412 !important;
}

.pwa-help-note{
  font-size:14px;
}

@media (max-width:900px){
  .site-header{
    position:sticky;
  }

  .main-nav{
    top:74px;
  }

  .admin-strip-inner{
    width:100%;
    padding-inline:0;
  }

  .section-title,
  .da-list-heading{
    align-items:flex-start;
    flex-direction:column;
  }

  .field{
    min-width:0;
  }
}

@media (max-width:640px){
  .container{
    width:min(100% - 22px,1160px);
  }

  .header-inner{
    height:70px;
    gap:10px;
  }

  .brand img{
    height:42px;
    padding:5px;
    border-radius:18px;
  }

  .main-nav{
    left:11px;
    right:11px;
    top:70px;
    border-radius:22px;
  }

  .main-nav a,
  .main-nav .btn{
    width:100%;
    justify-content:center;
    min-height:46px;
    text-align:center;
  }

  .page-hero,
  .da-page-hero,
  .admin-dashboard-hero{
    padding-top:36px;
  }

  .card,
  .stat,
  .da-admin-form,
  .user-admin-card,
  .admin-module-panel,
  .admin-dashboard-hero-card{
    border-radius:22px;
  }

  .card{
    padding:18px;
  }

  .btn,
  button.btn{
    min-height:46px;
    padding:12px 15px;
  }

  .form .actions,
  form .actions,
  .cse-action-row{
    align-items:stretch;
    flex-direction:column;
  }

  .form .actions .btn,
  form .actions .btn,
  .cse-action-row .btn,
  .cse-action-row button{
    width:100%;
  }

  .input,
  select,
  textarea{
    min-height:46px;
    border-radius:16px;
    font-size:16px;
  }

  .admin-strip-inner{
    gap:7px;
    padding-block:9px;
  }

  .admin-strip a{
    padding:8px 11px;
    font-size:12px;
  }

  .table-wrap{
    margin-inline:-2px;
    border-radius:18px;
  }

  th,
  td{
    padding:12px 13px;
  }

  .da-pdf-viewer-container,
  .pdf-viewer-container,
  .document-viewer{
    height:68vh;
    min-height:360px;
  }

  .pwa-install-fab{
    right:max(12px,env(safe-area-inset-right));
    bottom:max(12px,env(safe-area-inset-bottom));
    padding:10px 12px;
  }

  .pwa-help-overlay{
    padding:14px;
    align-items:end;
  }

  .pwa-help-panel{
    border-radius:24px;
    padding:24px 20px 20px;
  }
}

/* ==========================================================
   CSE Sonéo — Dashboard admin : KPI cliquables
   Patch 2026-05-26
   ========================================================== */
.admin-kpi-card-link{
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.admin-kpi-card-link:hover,
.admin-kpi-card-link:focus-visible{
  transform:translateY(-2px);
  border-color:rgba(166,200,15,.52);
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(238,247,199,.78));
  box-shadow:0 18px 42px rgba(23,32,51,.10);
  outline:none;
}

.admin-kpi-card-link:focus-visible{
  box-shadow:0 0 0 4px rgba(166,200,15,.24), 0 18px 42px rgba(23,32,51,.10);
}

.admin-kpi-card-link small::after{
  content:"  →";
  color:#111827;
  font-weight:950;
}

/* ==========================================================
   CSE Sonéo — Back-office permanence / stocks externes
   Patch 2026-05-26
   ========================================================== */
.stock-hero{padding:56px 0 28px}
.stock-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,460px);
  gap:22px;
  align-items:start;
}
.stock-hero-side{display:grid;gap:14px;align-items:start}
.stock-status-card,
.stock-kpi-card,
.stock-control-card,
.stock-filter-card,
.stock-sale-card,
.stock-products-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(17,24,39,.09);
  box-shadow:0 20px 60px rgba(23,32,51,.09);
}
.stock-status-card{
  border-radius:30px;
  padding:24px;
  background:linear-gradient(135deg,#fff,rgba(238,247,199,.70));
}
.stock-status-card:before,
.stock-kpi-card:before,
.stock-products-card:before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:9px;
  height:100%;
  background:var(--green);
}
.stock-status-card.is-closed:before{background:#f59e0b}
.stock-status-card span,
.stock-kpi-card span{
  display:block;
  color:var(--muted);
  font-weight:850;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.stock-status-card strong{
  display:block;
  margin-top:8px;
  color:var(--ink);
  font-size:26px;
  letter-spacing:-.04em;
}
.stock-status-card small{display:block;margin-top:8px;color:var(--muted)}
.stock-layout{display:grid;gap:22px}
.stock-kpi-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.stock-kpi-card{
  border-radius:24px;
  padding:20px 22px 20px 28px;
  background:#fff;
}
.stock-kpi-card strong{
  display:block;
  margin-top:8px;
  font-size:34px;
  letter-spacing:-.05em;
  color:var(--ink);
}
.stock-kpi-warning:before{background:#ef4444}
.stock-control-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:18px;
}
.stock-control-grid-single{grid-template-columns:minmax(0,1fr)}
.stock-card-heading{margin-bottom:14px}
.stock-card-heading h2{margin:4px 0 0;font-size:25px;letter-spacing:-.04em}
.stock-card-heading-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.stock-permanence-form{display:grid;grid-template-columns:minmax(160px,220px) auto;gap:14px;align-items:end;margin-top:16px}
.stock-low-list{display:grid;gap:9px;max-height:220px;overflow:auto;padding-right:4px}
.stock-low-item{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:11px 12px;
  border-radius:16px;
  background:#fff7ed;
  border:1px solid #fed7aa;
}
.stock-low-item strong{font-size:13px}
.stock-low-item span{font-size:13px;color:#9a3412;font-weight:900;white-space:nowrap}
.stock-muted{color:var(--muted);font-weight:750}
.stock-filter-card summary,
.stock-sale-card summary,
.stock-products-card summary{cursor:pointer;list-style:none}
.stock-filter-card summary::-webkit-details-marker,
.stock-sale-card summary::-webkit-details-marker,
.stock-products-card summary::-webkit-details-marker{display:none}
.stock-summary-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.stock-summary-title em{
  display:block;
  color:var(--green-dark);
  font-style:normal;
  font-size:12px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.stock-summary-title strong{display:block;margin-top:2px;font-size:21px;letter-spacing:-.03em}
.stock-summary-title-row{align-items:center}
.stock-summary-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.stock-filter-card[open] .cse-collapsible-indicator:after,
.stock-products-card[open] .cse-collapsible-indicator:after{opacity:0;transform:translate(-50%,-50%) rotate(0deg)}
.stock-filter-form{margin-top:18px}
.stock-filter-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:14px;
}
.stock-pill{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:9px 13px;
  font-size:12px;
  font-weight:950;
  border:1px solid transparent;
}
.stock-pill-open{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}
.stock-pill-closed{background:#fffbeb;color:#92400e;border-color:#fde68a}
.stock-help-text{
  margin:8px 0 0;
  color:var(--muted);
  font-weight:750;
  max-width:920px;
}
.stock-help-text strong{color:var(--ink);font-weight:950}
.stock-table-wrap{margin-top:12px;max-height:72vh;overflow:auto}
.stock-table th{position:sticky;top:0;background:#fff;z-index:2}
.stock-table td{vertical-align:top}
.stock-table td:first-child strong{display:block;font-size:14px;color:var(--ink)}
.stock-table td:first-child small{display:block;margin-top:4px;color:var(--muted)}
.stock-table-consolidated{min-width:1120px}
.stock-row-low td{background:#fff7ed}
.stock-badge-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.stock-badge-ok,
.stock-badge-muted{
  display:inline-flex;
  padding:4px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
}
.stock-badge-ok{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.stock-badge-muted{background:#f3f4f6;color:#6b7280}
.stock-source-note{
  color:#92400e !important;
  font-weight:850;
}
.stock-balance-stack{display:grid;gap:8px;min-width:140px}
.stock-balance{
  min-width:120px;
  padding:12px;
  border:1px solid rgba(17,24,39,.08);
  border-radius:18px;
  background:linear-gradient(135deg,#fff,#f8fafc);
}
.stock-balance span{display:block;color:var(--muted);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.stock-balance strong{display:block;margin-top:3px;font-size:26px;letter-spacing:-.05em;color:var(--ink)}
.stock-balance small{display:block;color:var(--muted);font-weight:850}
.stock-balance.is-low{border-color:#fdba74;background:#fff7ed}
.stock-balance.is-low strong{color:#c2410c}
.stock-price-stack{display:grid;gap:10px;min-width:190px}
.stock-price-block{
  padding:12px;
  border:1px solid rgba(17,24,39,.08);
  border-radius:18px;
  background:linear-gradient(135deg,#fff,#f8fafc);
}
.stock-price-block span{display:block;color:var(--muted);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.stock-price-block strong{display:block;margin-top:3px;font-size:18px;color:var(--ink)}
.stock-price-block small{display:block;margin-top:3px;color:var(--muted);font-weight:850}
.stock-price-empty{background:#f8fafc}
.stock-price-form{display:grid;grid-template-columns:96px auto;gap:7px;margin-top:8px;align-items:center}
.stock-price-form .input{min-height:38px;border-radius:13px;padding:8px 10px;font-size:13px}
.stock-move-stack{display:grid;gap:10px;min-width:220px}
.stock-move-form{
  display:grid;
  grid-template-columns:minmax(92px,1fr) auto;
  gap:8px;
  align-items:center;
}
.stock-move-form .input{min-height:40px;border-radius:14px;padding:8px 10px;font-size:13px}
.stock-move-buttons{display:flex;gap:6px;align-items:center}
.stock-move-buttons .btn,
.stock-price-form .btn{min-height:38px;padding:8px 10px;font-size:12px}
.btn-danger{background:#991b1b;color:#fff;border-color:#991b1b}
.btn-danger:hover{background:#7f1d1d;color:#fff}

@media (max-width:1100px){
  .stock-hero-grid,
  .stock-control-grid{grid-template-columns:1fr}
  .stock-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stock-filter-grid{grid-template-columns:1fr 1fr}
}

@media (max-width:760px){
  .stock-kpi-grid,
  .stock-filter-grid,
  .stock-permanence-form{grid-template-columns:1fr}
  .stock-card-heading-row{align-items:flex-start;flex-direction:column}
  .stock-table-wrap{max-height:none}
  .stock-move-form{grid-template-columns:1fr}
  .stock-move-buttons{display:grid;grid-template-columns:1fr 1fr}
}


/* Permanence — panier multi-articles */
.stock-sale-card{position:relative;overflow:hidden}
.stock-sale-card:before,
.stock-session-sales:before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:6px;
  height:100%;
  background:linear-gradient(180deg,var(--green),var(--green-dark));
}
.stock-sale-alert{margin:16px 0 0}
.stock-sale-form{margin-top:18px;display:grid;gap:18px}
.stock-sale-options-grid{
  display:grid;
  margin-top:2px;
  grid-template-columns:minmax(260px,1.4fr) minmax(220px,1fr) minmax(250px,1.1fr);
  gap:14px;
  align-items:stretch;
}
.stock-choice-field{
  border:1px solid rgba(17,24,39,.08);
  border-radius:22px;
  padding:14px;
  background:linear-gradient(135deg,#fff,#f8fafc);
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-content:flex-start;
}
.stock-choice-field legend{
  width:100%;
  padding:0;
  color:var(--muted);
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.stock-radio-card{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(17,24,39,.09);
  border-radius:999px;
  padding:9px 12px;
  background:#fff;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
}
.stock-radio-card input{accent-color:var(--green-dark)}
.stock-radio-card:has(input:checked){border-color:rgba(141,179,0,.45);background:var(--green-ultra);color:var(--green-dark)}
.stock-sale-table-wrap{max-height:none;overflow-x:auto;overflow-y:visible;border:1px solid rgba(17,24,39,.06);border-radius:24px}
.stock-sale-table{min-width:1180px}
.stock-sale-table th{position:sticky;top:0;background:#fff;z-index:2}
.stock-sale-table td{vertical-align:middle}
.stock-sale-price-list{display:grid;gap:6px;font-size:13px;color:var(--muted);font-weight:850;min-width:150px}
.stock-sale-price-list strong{color:var(--ink);font-size:13px}
.stock-mini-balance{
  display:inline-grid;
  gap:2px;
  min-width:78px;
  padding:8px 10px;
  margin:2px;
  border-radius:15px;
  background:#f8fafc;
  border:1px solid rgba(17,24,39,.06);
}
.stock-mini-balance span{font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.stock-mini-balance strong{font-size:13px;color:var(--ink);line-height:1.1;letter-spacing:0}
.stock-sale-qty-input{max-width:105px;min-height:42px;text-align:center;font-weight:950;border-radius:15px}
.stock-sale-total-bar{
  position:sticky;
  bottom:12px;
  z-index:5;
  display:grid;
  grid-template-columns:1fr 1.2fr auto;
  gap:12px;
  align-items:center;
  padding:14px;
  border:1px solid rgba(141,179,0,.28);
  border-radius:24px;
  background:rgba(255,255,255,.94);
  box-shadow:0 20px 45px rgba(17,24,39,.12);
  backdrop-filter:blur(14px);
}
.stock-sale-total-bar div{
  padding:12px 14px;
  border-radius:18px;
  background:linear-gradient(135deg,var(--green-ultra),#fff);
  border:1px solid rgba(141,179,0,.16);
}
.stock-sale-total-bar span{display:block;color:var(--muted);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}
.stock-sale-total-bar strong{display:block;margin-top:3px;font-size:24px;letter-spacing:-.04em;color:var(--ink)}
.stock-session-sales{
  position:relative;
  margin-top:22px;
  padding:20px;
  border-radius:26px;
  border:1px solid rgba(17,24,39,.08);
  background:linear-gradient(135deg,#fff,#f8fafc);
  overflow:hidden;
}
.stock-session-sales h3{margin:4px 0 0;font-size:21px;letter-spacing:-.03em}
.stock-session-total{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:10px 14px;
  background:var(--green-ultra);
  color:var(--green-dark);
  border:1px solid rgba(141,179,0,.22);
}
.stock-session-table{min-width:760px}

@media (max-width:1100px){
  .stock-sale-options-grid{grid-template-columns:1fr}
  .stock-summary-actions{justify-content:flex-start}
  .stock-sale-total-bar{grid-template-columns:1fr 1fr}
  .stock-sale-total-bar .btn{grid-column:1/-1}
}

@media (max-width:760px){
  .stock-sale-total-bar{position:static;grid-template-columns:1fr}
  .stock-sale-table-wrap{max-height:none}
}


.stock-category-groups{display:grid;gap:18px}
.stock-category-group{padding:22px}
.stock-category-table-wrap{margin-top:14px;max-height:none;overflow-x:auto;overflow-y:visible}
.stock-category-table{min-width:1040px}
.stock-sale-heading{cursor:default}
.stock-session-sales-top{margin-top:0;padding:18px;border-radius:28px;background:linear-gradient(135deg,#fff,rgba(238,247,199,.56))}
.stock-session-sales-top .stock-card-heading{margin-bottom:10px}
.stock-session-sales-top h3{font-size:18px}
.stock-session-top-table-wrap{max-height:240px;overflow:auto;border-radius:18px;border:1px solid rgba(17,24,39,.06)}
.stock-session-sales-top .stock-session-table{min-width:620px}
.stock-session-sales-top .stock-session-total{font-size:13px;padding:8px 12px;white-space:nowrap}

.stock-session-sales-wide{
  margin-top:0;
  width:100%;
  padding:22px;
  border-radius:30px;
  background:linear-gradient(135deg,#fff,rgba(238,247,199,.62));
}
.stock-session-sales-wide .stock-card-heading{margin-bottom:12px}
.stock-session-sales-wide h2{margin:4px 0 0;font-size:25px;letter-spacing:-.04em}
.stock-auto-close-note{margin:7px 0 0}
.stock-auto-close-timer{
  margin-top:14px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:9px 13px;
  background:#fff7ed;
  border:1px solid #fed7aa;
  color:#9a3412;
  font-size:12px;
  font-weight:900;
}
.stock-auto-close-timer strong{font-weight:950;color:#7c2d12}

/* ==========================================================
   CSE Sonéo — Coin jeux
   Module salariés + back-office — 2026-05-26
   ========================================================== */
.games-hero,
.games-admin-hero{
  position:relative;
  overflow:hidden;
}

.games-hero:before,
.games-admin-hero:before{
  content:"";
  position:absolute;
  inset:-120px -80px auto auto;
  width:360px;
  height:360px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(166,200,15,.24),transparent 68%);
  pointer-events:none;
}

.games-hero-grid{
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:32px;
  align-items:center;
  position:relative;
  z-index:1;
}

.games-hero-actions,
.games-card-heading,
.games-puzzle-toolbar,
.games-tabs{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
}

.games-hero-actions{margin-top:24px}

.games-hero-card{
  min-height:240px;
  display:grid;
  align-content:end;
  gap:8px;
  padding:30px;
  border-radius:var(--radius-lg);
  border:1px solid rgba(228,234,210,.92);
  background:
    radial-gradient(circle at 25% 20%,rgba(255,255,255,.84),transparent 34%),
    linear-gradient(145deg,#172033,#30410e 62%,#A6C80F);
  color:#fff;
  box-shadow:var(--shadow);
  overflow:hidden;
  position:relative;
}

.games-hero-card:before{
  content:"";
  position:absolute;
  inset:22px 22px auto auto;
  width:92px;
  height:92px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.24);
  background:
    linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px),
    linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px);
  background-size:18px 18px;
  transform:rotate(8deg);
}

.games-hero-photo-card{
  min-height:clamp(280px,32vw,430px);
  margin:0;
  border-radius:var(--radius-lg);
  border:1px solid rgba(166,200,15,.34);
  box-shadow:0 26px 80px rgba(23,32,51,.16);
  overflow:hidden;
  position:relative;
  background:#172033;
  isolation:isolate;
}

.games-hero-photo-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.03);
  filter:saturate(1.04) contrast(1.02);
}

.games-hero-photo-card:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg,rgba(23,32,51,.12),rgba(23,32,51,.74)),
    radial-gradient(circle at 15% 15%,rgba(166,200,15,.32),transparent 34%);
  pointer-events:none;
}

.games-hero-photo-card:after{
  content:"";
  position:absolute;
  inset:18px;
  z-index:1;
  border-radius:calc(var(--radius-lg) - 14px);
  border:1px solid rgba(255,255,255,.24);
  pointer-events:none;
}

.games-hero-photo-glow{
  position:absolute;
  inset:auto -18% -28% auto;
  z-index:1;
  width:280px;
  height:280px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(166,200,15,.44),transparent 68%);
  filter:blur(4px);
  pointer-events:none;
}

.games-hero-photo-caption{
  position:absolute;
  left:28px;
  right:28px;
  bottom:28px;
  z-index:2;
  display:grid;
  gap:8px;
  color:#fff;
}

.games-hero-photo-caption span,
.games-hero-photo-stats span{
  width:max-content;
  max-width:100%;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(166,200,15,.92);
  color:#172033;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:950;
}

.games-hero-photo-caption strong{
  max-width:13ch;
  font-size:clamp(34px,4.4vw,62px);
  line-height:.92;
  letter-spacing:-.06em;
  text-shadow:0 12px 26px rgba(0,0,0,.30);
}

.games-hero-photo-caption small{
  max-width:36ch;
  color:rgba(255,255,255,.88);
  font-weight:850;
  text-shadow:0 8px 18px rgba(0,0,0,.28);
}

.games-hero-photo-stats{
  position:absolute;
  top:20px;
  right:20px;
  left:auto;
  z-index:3;
  width:min(240px,calc(100% - 40px));
  display:grid;
  gap:8px;
  justify-items:center;
  align-content:center;
  text-align:center;
  padding:16px;
  border-radius:26px;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(23,32,51,.56);
  color:#fff;
  backdrop-filter:blur(16px);
  box-shadow:0 18px 44px rgba(23,32,51,.22);
}


.games-hero-photo-stats .games-live-clock{
  position:static;
  justify-self:center;
  width:max-content;
  background:rgba(255,255,255,.14);
}

.games-hero-photo-stats strong{
  font-size:clamp(24px,2.4vw,34px);
  letter-spacing:-.045em;
  line-height:1;
}

.games-hero-photo-stats small{
  text-align:center;
  color:rgba(255,255,255,.86);
  font-weight:850;
}

.games-hero-card span,
.games-dashboard-card span{
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:950;
  opacity:.78;
}

.games-hero-card strong{
  font-size:clamp(34px,4vw,54px);
  letter-spacing:-.055em;
  line-height:1;
}

.games-hero-card small{font-weight:850;opacity:.86}

.games-live-clock{
  position:absolute;
  top:20px;
  right:22px;
  z-index:1;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  font-weight:950;
  font-variant-numeric:tabular-nums;
  letter-spacing:.04em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}

.games-stack{display:grid;gap:26px}

.games-dashboard{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.games-dashboard-card{
  display:grid;
  gap:8px;
  text-decoration:none;
  padding:24px;
  border-radius:28px;
  border:1px solid rgba(228,234,210,.92);
  background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(247,251,231,.88));
  box-shadow:var(--shadow-soft);
  transition:.2s ease;
}

.games-dashboard-card:hover{
  transform:translateY(-3px);
  border-color:#d5e5a1;
  box-shadow:0 20px 50px rgba(23,32,51,.10);
}

.games-dashboard-card strong{
  font-size:22px;
  letter-spacing:-.03em;
  color:#111827;
}

.games-dashboard-card small{color:var(--muted);font-weight:750}

.games-card-heading{
  justify-content:space-between;
  align-items:flex-start;
  margin-bottom:24px;
}

.games-card-heading h2{
  margin:10px 0 8px;
}

.games-tabs{
  justify-content:flex-end;
  background:#f5f8e9;
  border:1px solid var(--line);
  border-radius:999px;
  padding:6px;
}

.games-tab{
  border:0;
  border-radius:999px;
  background:transparent;
  padding:10px 14px;
  font:inherit;
  font-weight:950;
  color:#465167;
  cursor:pointer;
  transition:.18s ease;
}

.games-tab.is-active,
.games-tab:hover{
  background:#fff;
  color:#111827;
  box-shadow:0 10px 22px rgba(23,32,51,.08);
}

.games-puzzle-layout,
.games-retro-layout{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
  gap:24px;
  align-items:start;
}

.games-puzzle-toolbar{
  justify-content:flex-start;
  margin-bottom:16px;
}

.games-timer{
  min-width:104px;
  text-align:center;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(166,200,15,.34);
  background:#172033;
  color:#fff;
  font-weight:950;
  font-variant-numeric:tabular-nums;
  box-shadow:0 12px 28px rgba(23,32,51,.12);
}

.games-grid-wrap{
  overflow:auto;
  border-radius:22px;
  border:1px solid rgba(228,234,210,.92);
  background:
    linear-gradient(90deg,rgba(166,200,15,.10) var(--puzzle-progress,0%),transparent 0),
    linear-gradient(145deg,#fff,#f7fbe7);
  padding:16px;
  box-shadow:var(--shadow-soft);
}

.games-grid{
  --puzzle-cell-size:clamp(28px,calc((100vw - 96px) / var(--game-cols,10)),52px);
  display:grid;
  grid-template-columns:repeat(var(--game-cols,10),var(--puzzle-cell-size));
  gap:clamp(3px,.7vw,5px);
  width:max-content;
  max-width:100%;
}

.games-cell{
  position:relative;
  display:block;
  width:var(--puzzle-cell-size,52px);
  height:var(--puzzle-cell-size,52px);
  border-radius:10px;
  border:1px solid #dce6c7;
  background:#fff;
  overflow:hidden;
  box-shadow:0 1px 0 rgba(17,24,39,.04);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease;
}

.games-cell input{
  width:100%;
  height:100%;
  border:0;
  outline:0;
  text-align:center;
  background:transparent;
  font:950 clamp(17px,3.6vw,24px)/1 Inter,system-ui,sans-serif;
  color:#111827;
  text-transform:uppercase;
}

.games-cell span{
  position:absolute;
  top:3px;
  left:5px;
  z-index:1;
  font-size:10px;
  font-weight:950;
  color:#6b7a20;
  pointer-events:none;
}

.games-cell.is-blocked{
  border-color:#101827;
  background:
    linear-gradient(135deg,rgba(255,255,255,.08),transparent 42%),
    linear-gradient(145deg,#111827,#263247);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 1px 0 rgba(17,24,39,.12);
}

.games-cell.is-selected{
  border-color:var(--green);
  background:#fffef6;
  box-shadow:0 0 0 4px rgba(166,200,15,.22),0 10px 22px rgba(23,32,51,.08);
  transform:translateY(-1px);
}

.games-cell.is-word{background:#fbfdf3;border-color:#d5e5a1}
.games-cell.is-filled input{color:#172033}
.games-cell.is-filled:after{
  content:"";
  position:absolute;
  inset:auto 6px 6px auto;
  width:6px;
  height:6px;
  border-radius:999px;
  background:rgba(166,200,15,.78);
}
.games-cell.is-correct{background:#effaf0;border-color:#86c98f}
.games-cell.is-wrong{background:#fff1f2;border-color:#fda4af;animation:games-shake .18s ease}

@keyframes games-shake{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(-2px)}
}

.games-puzzle-status{
  display:grid;
  gap:8px;
  margin-top:12px;
  padding:14px;
  border:1px solid rgba(228,234,210,.92);
  border-radius:18px;
  background:#fff;
  color:#465167;
  font-weight:850;
  box-shadow:var(--shadow-soft);
}

.games-puzzle-status p{
  margin:0;
  color:#172033;
  font-weight:850;
}

.games-puzzle-progress{
  height:8px;
  border-radius:999px;
  overflow:hidden;
  background:#eef3dc;
}

.games-puzzle-progress span{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#A6C80F,#7dd3fc);
}

.games-clues-card{
  position:sticky;
  top:108px;
  border:1px solid rgba(228,234,210,.92);
  border-radius:28px;
  background:rgba(255,255,255,.88);
  box-shadow:var(--shadow-soft);
  padding:22px;
}

.games-clues-card h3{margin-top:0}
.games-clues{display:grid;gap:16px;margin-top:16px;max-height:520px;overflow:auto;padding-right:4px}

.games-clue-group{
  display:grid;
  gap:10px;
}

.games-clue-group h4{
  margin:0;
  color:#172033;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:950;
}

.games-clue{
  display:grid;
  gap:4px;
  text-align:left;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:12px;
  cursor:pointer;
  font:inherit;
  transition:.16s ease;
}

.games-clue:hover,
.games-clue.is-active{
  border-color:rgba(166,200,15,.72);
  background:linear-gradient(145deg,#fff,#fbfdf3);
  box-shadow:0 10px 22px rgba(23,32,51,.06);
}

.games-clue strong{color:#111827;font-size:14px}
.games-clue span{color:#465167;font-weight:750}
.games-clue small{color:var(--muted);font-weight:850}

.games-puzzle-message{
  min-height:44px;
  margin-top:14px;
  font-weight:900;
  color:var(--muted);
}

.games-puzzle-message.is-success{color:var(--success)}
.games-puzzle-message.is-error{color:var(--danger)}
.games-puzzle-message.is-info{color:#425300}

.games-retro-card{
  background:
    radial-gradient(circle at 12% 0%,rgba(125,211,252,.14),transparent 30%),
    radial-gradient(circle at 84% 12%,rgba(255,218,107,.16),transparent 28%),
    rgba(255,255,255,.92);
}

.games-arcade-panel{
  border-radius:22px;
  border:1px solid rgba(125,211,252,.18);
  background:linear-gradient(145deg,#071524,#172033);
  padding:14px;
  box-shadow:0 24px 70px rgba(17,24,39,.24);
}

.games-canvas{
  display:block;
  width:100%;
  max-height:540px;
  aspect-ratio:3/2;
  border-radius:16px;
  background:#071524;
  image-rendering:auto;
  cursor:grab;
  touch-action:none;
  user-select:none;
}

.games-canvas:active{
  cursor:grabbing;
}

.games-touch-controls{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:8px;
  margin-top:12px;
}

.games-touch-controls[hidden]{
  display:none;
}

.games-touch-controls button{
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:18px;
  font-weight:950;
  min-height:44px;
  touch-action:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}

.games-touch-controls button:active{
  transform:translateY(1px);
  background:rgba(166,200,15,.24);
}

.games-arcade-sidebar{
  border:1px solid rgba(228,234,210,.92);
  border-radius:22px;
  background:#fff;
  box-shadow:var(--shadow-soft);
  padding:22px;
}

.games-scoreboard-mini{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:16px 0;
}

.games-scoreboard-mini span{
  display:grid;
  gap:4px;
  padding:14px;
  border-radius:20px;
  background:#f7fbe7;
  color:var(--muted);
  font-weight:850;
}

.games-scoreboard-mini strong{
  color:#111827;
  font-size:24px;
  line-height:1;
}

.games-best-list{
  display:grid;
  gap:8px;
  margin-top:18px;
}

.games-best-row,
.games-empty-score{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid var(--line);
  background:#fbfdf3;
  border-radius:16px;
  padding:10px 12px;
  font-weight:850;
}

.games-empty-score{
  color:var(--muted);
  justify-content:center;
}

.games-best-row strong{color:#111827}

.games-cube-coach{
  display:grid;
  gap:12px;
  margin-top:16px;
  padding:14px;
  border:1px solid rgba(166,200,15,.24);
  border-radius:16px;
  background:linear-gradient(145deg,#fff,#fbfdf3);
}

.games-cube-coach[hidden]{display:none}

.games-cube-coach-head,
.games-cube-coach-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.games-cube-coach button{
  border:1px solid rgba(166,200,15,.34);
  border-radius:999px;
  background:#fff;
  color:#172033;
  font:inherit;
  font-size:12px;
  font-weight:950;
  padding:8px 10px;
  cursor:pointer;
}

.games-cube-lesson{
  display:grid;
  gap:6px;
}

.games-cube-lesson span{
  color:#6b7a20;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
}

.games-cube-lesson h4{
  margin:0;
  color:#111827;
  font-size:15px;
}

.games-cube-lesson p,
.games-cube-lesson small{
  margin:0;
  color:#465167;
  font-weight:750;
}

.games-cube-lesson small{
  color:#637083;
}

@media (max-width:980px){
  .games-hero-grid,
  .games-puzzle-layout,
  .games-retro-layout,
  .games-dashboard{
    grid-template-columns:1fr;
  }

  .games-clues-card{
    position:static;
  }
}

@media (max-width:760px){
  .games-hero-photo-card{
    min-height:430px;
  }

  .games-hero-photo-caption{
    left:20px;
    right:20px;
    bottom:22px;
  }

  .games-hero-photo-stats{
    top:18px;
    right:18px;
    left:auto;
    width:min(220px, calc(100% - 36px));
    justify-items:center;
    text-align:center;
  }


  .games-hero-photo-stats .games-live-clock,
  .games-hero-photo-stats small{
    justify-self:center;
    text-align:center;
  }
}

@media (max-width:640px){
  .footer-grid{
    grid-template-columns:1fr;
  }

  .games-tabs{
    width:100%;
    border-radius:22px;
    justify-content:stretch;
  }

  .games-tab{
    flex:1 1 100%;
  }

  .games-puzzle-toolbar .btn,
  .games-puzzle-toolbar .games-timer{
    width:100%;
  }

  .games-grid{
    --puzzle-cell-size:clamp(22px,calc((100vw - 62px) / var(--game-cols,10)),42px);
  }

  .games-cell{border-radius:8px}

  .games-cell span{font-size:8px;top:2px;left:3px}
  .games-touch-controls{grid-template-columns:repeat(3,1fr)}
}

/* ==========================================================
   CSE Sonéo — Memory Match premium
   Patch V4 — remplacement des mots croisés
   ========================================================== */
.games-memory-card{
  position:relative;
  overflow:hidden;
}

.games-memory-card:after{
  content:"";
  position:absolute;
  right:-120px;
  top:-120px;
  width:300px;
  height:300px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(166,200,15,.18),transparent 68%);
  pointer-events:none;
}

.games-best-inline{
  min-width:min(100%,260px);
  position:relative;
  z-index:1;
}

.games-best-inline > strong{
  display:block;
  margin-bottom:8px;
  color:#111827;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.memory-shell{
  position:relative;
  z-index:1;
  display:grid;
  gap:22px;
}

.memory-menu{
  display:grid;
  gap:20px;
}

.memory-difficulty{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.memory-diff-card{
  border:1px solid rgba(228,234,210,.95);
  border-radius:24px;
  padding:18px;
  background:linear-gradient(145deg,#fff,#f8fbec);
  text-align:left;
  cursor:pointer;
  box-shadow:0 14px 34px rgba(23,32,51,.06);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.memory-diff-card:hover,
.memory-diff-card.is-selected{
  transform:translateY(-2px);
  border-color:rgba(166,200,15,.72);
  box-shadow:0 20px 46px rgba(23,32,51,.10),0 0 0 4px rgba(166,200,15,.12);
}

.memory-diff-card span{
  display:block;
  color:#111827;
  font-weight:950;
  font-size:20px;
  letter-spacing:-.03em;
}

.memory-diff-card small{
  color:var(--muted);
  font-weight:800;
}

.memory-howto{
  border:1px solid rgba(228,234,210,.95);
  border-radius:26px;
  padding:20px;
  background:rgba(255,255,255,.82);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}

.memory-howto h3{
  margin:0 0 6px;
  color:#111827;
  letter-spacing:-.03em;
}

.memory-howto p{margin:0;color:var(--muted);font-weight:750}

.memory-board[hidden],
.memory-menu[hidden]{display:none!important}

.memory-board{
  display:grid;
  gap:18px;
}

.memory-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

.memory-stats span{
  display:grid;
  gap:2px;
  min-height:72px;
  align-content:center;
  padding:12px 14px;
  border:1px solid rgba(228,234,210,.95);
  border-radius:20px;
  background:rgba(255,255,255,.9);
  color:var(--muted);
  font-size:13px;
  font-weight:850;
  box-shadow:0 10px 24px rgba(23,32,51,.055);
}

.memory-stats strong{
  color:#111827;
  font-size:24px;
  line-height:1;
  letter-spacing:-.04em;
}

.memory-grid{
  --memory-cols:4;
  display:grid;
  grid-template-columns:repeat(var(--memory-cols),minmax(0,1fr));
  gap:12px;
  width:min(100%,560px);
  margin-inline:auto;
}

.memory-grid.cols-4{--memory-cols:4;max-width:520px}
.memory-grid.cols-5{--memory-cols:5;max-width:620px}

.memory-card{
  border:0;
  background:transparent;
  padding:0;
  aspect-ratio:1;
  perspective:900px;
  cursor:pointer;
}

.memory-card-inner{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  transform-style:preserve-3d;
  transition:transform .46s cubic-bezier(.2,.8,.2,1.15);
}

.memory-card:hover .memory-card-inner{transform:translateY(-3px) rotateY(8deg)}
.memory-card.is-flipped .memory-card-inner,
.memory-card.is-matched .memory-card-inner{transform:rotateY(180deg)}
.memory-card.is-flipped:hover .memory-card-inner,
.memory-card.is-matched:hover .memory-card-inner{transform:rotateY(180deg) translateY(-2px)}

.memory-card-face{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  border-radius:20px;
  backface-visibility:hidden;
  overflow:hidden;
}

.memory-card-back{
  color:#fff;
  background:
    radial-gradient(circle at 24% 20%,rgba(255,255,255,.42),transparent 28%),
    linear-gradient(135deg,#172033,#8DB300 52%,#A6C80F);
  box-shadow:0 16px 36px rgba(23,32,51,.16),inset 0 1px 0 rgba(255,255,255,.42);
}

.memory-card-back:before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.16;
  background:radial-gradient(circle,#fff 2px,transparent 2px);
  background-size:16px 16px;
}

.memory-card-back span{
  position:relative;
  font-size:clamp(24px,7vw,46px);
  font-weight:950;
  text-shadow:0 8px 18px rgba(0,0,0,.22);
}

.memory-card-front{
  transform:rotateY(180deg);
  background:linear-gradient(145deg,#fff,#fbfdf3);
  border:1px solid rgba(228,234,210,.95);
  box-shadow:0 18px 42px rgba(23,32,51,.11);
}

.memory-card-front span{
  font-size:clamp(30px,7vw,54px);
  filter:drop-shadow(0 8px 10px rgba(23,32,51,.12));
}

.memory-card.is-matched .memory-card-front{
  border-color:rgba(46,125,50,.45);
  box-shadow:0 0 0 4px rgba(46,125,50,.11),0 18px 42px rgba(23,32,51,.10);
}

.memory-card.is-wrong .memory-card-inner{
  animation:memory-shake .36s ease;
}

@keyframes memory-shake{
  0%,100%{transform:rotateY(180deg) translateX(0)}
  25%{transform:rotateY(180deg) translateX(-7px)}
  50%{transform:rotateY(180deg) translateX(7px)}
  75%{transform:rotateY(180deg) translateX(-4px)}
}

.memory-message{
  min-height:28px;
  color:var(--muted);
  font-weight:850;
  text-align:center;
}

.memory-message.is-success{color:var(--success)}
.memory-message.is-error{color:var(--danger)}
.memory-message.is-info{color:#425300}
.memory-actions{justify-content:center}

@media (max-width:900px){
  .memory-difficulty,
  .memory-stats{grid-template-columns:1fr 1fr}
  .games-best-inline{width:100%}
}

@media (max-width:560px){
  .memory-difficulty,
  .memory-stats{grid-template-columns:1fr}
  .memory-grid{gap:7px;width:100%}
  .memory-grid.cols-5{gap:6px}
  .memory-card-face{border-radius:13px}
  .memory-stats span{min-height:58px}
  .memory-stats strong{font-size:20px}
}


/* Patch permanence — recherche salarié, clôture commentée et footer compact */
.site-footer{
  padding:18px 0;
}
.footer-bottom{
  margin-top:0;
  padding-top:0;
  border-top:0;
  min-height:22px;
}
.stock-buyer-field{gap:8px}
.stock-buyer-search{min-height:44px}
.stock-buyer-help{color:var(--muted);font-weight:800;font-size:12px}
.stock-close-dialog{
  width:min(560px,calc(100vw - 28px));
  border:0;
  padding:0;
  border-radius:28px;
  background:transparent;
  color:var(--ink);
}
.stock-close-dialog::backdrop{
  background:rgba(17,24,39,.48);
  backdrop-filter:blur(8px);
}
.stock-close-dialog-card{
  padding:26px;
  border-radius:28px;
  background:linear-gradient(145deg,#fff,#f8fbec);
  border:1px solid rgba(228,234,210,.95);
  box-shadow:0 30px 90px rgba(17,24,39,.28);
}
.stock-close-dialog-card h3{
  margin:10px 0 8px;
  font-size:24px;
  letter-spacing:-.04em;
}
.stock-close-dialog-card textarea{
  min-height:132px;
}
.stock-close-dialog-actions{
  justify-content:flex-end;
  margin-top:8px;
}
@media (max-width:560px){
  .stock-close-dialog-actions .btn{width:100%}
}

/* Patch V8 — prix locaux pour articles sans tarif Inter CEA / standard */
.stock-price-local-editor{
  border-color:rgba(166,200,15,.38);
  background:linear-gradient(135deg,#ffffff,#f7fbe7);
}
.stock-price-local-editor .stock-source-note{
  display:block;
  margin-top:8px;
  color:#637083 !important;
  font-size:11px;
  line-height:1.35;
}
.stock-price-local-editor .stock-price-form{
  grid-template-columns:minmax(90px,1fr) auto;
}


/* ==========================================================
   Back-office — hubs métiers et navigation centrée
   Patch 2026-05-27
   ========================================================== */
.admin-strip-inner{
  justify-content:center;
  flex-wrap:wrap;
  overflow:visible;
  text-align:center;
}

.admin-strip-inner strong{
  flex:0 0 auto;
}

.admin-hub-layout{
  max-width:980px;
  margin-inline:auto;
}

.admin-hub-card-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.admin-hub-card{
  min-height:148px;
  align-content:center;
}

.admin-hub-card .admin-module-tag{
  width:62px;
  height:62px;
}

@media (max-width:760px){
  .admin-hub-card-grid{
    grid-template-columns:1fr;
  }

  .admin-strip-inner{
    justify-content:flex-start;
    overflow:auto;
    flex-wrap:nowrap;
    text-align:left;
  }
}


/* ==========================================================
   CSE Sonéo — Mode écran large & mobile plein cadre
   Patch 2026-05-28
   Objectif : exploiter la largeur PC/mobile sans créer de débordement horizontal.
   ========================================================== */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

main{
  width:100%;
  min-width:0;
  flex:1 0 auto;
}

.container{
  width:min(var(--site-max),calc(100% - var(--site-gutter)));
  margin-inline:auto;
}

.admin-body .container{
  --site-max:1920px;
}

.site-header,
.admin-strip,
.site-footer,
.hero,
.home-hero,
.page-hero,
.da-page-hero,
.admin-dashboard-page,
.admin-dashboard-hero,
.stock-hero,
.section{
  width:100%;
}

.header-inner,
.footer-grid,
.admin-strip-inner{
  max-width:none;
}

.grid,
.stats,
.admin-kpi-grid,
.admin-module-list,
.cse-admin-panel-grid,
.stock-layout,
.stock-category-groups{
  min-width:0;
}

.card,
.da-admin-form,
.user-admin-card,
.admin-module-panel,
.admin-kpi-card,
.admin-dashboard-hero-card,
.stock-status-card,
.stock-kpi-card,
.stock-control-card,
.stock-filter-card,
.stock-sale-card,
.stock-products-card,
.table-wrap,
.stock-table-wrap,
.stock-sale-table-wrap,
.stock-category-table-wrap{
  max-width:100%;
}

.table-wrap,
.stock-table-wrap,
.stock-sale-table-wrap,
.stock-category-table-wrap{
  -webkit-overflow-scrolling:touch;
}

@media (min-width:1280px){
  .grid-2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .grid-4{grid-template-columns:repeat(4,minmax(0,1fr));}

  .admin-dashboard-section,
  .stock-layout{
    padding-bottom:clamp(20px,3vw,46px);
  }
}

@media (max-width:900px){
  .container{
    width:calc(100% - 24px);
  }

  .site-header{
    width:100%;
  }

  .admin-strip-inner{
    width:100%;
    padding-inline:12px;
  }
}

@media (max-width:560px){
  :root{
    --site-gutter:18px;
  }

  .container{
    width:calc(100% - 18px);
  }

  .section{
    padding:30px 0;
  }

  .page-hero,
  .da-page-hero,
  .admin-dashboard-hero,
  .stock-hero{
    padding-top:34px;
    padding-bottom:18px;
  }

  .card,
  .da-admin-form,
  .user-admin-card,
  .admin-module-panel,
  .stock-status-card,
  .stock-control-card,
  .stock-filter-card,
  .stock-sale-card,
  .stock-products-card{
    border-radius:22px;
  }
}

/* ==========================================================
   CSE Sonéo — Sprint Polish Visuel Fullscreen V2
   Version 20260528-polish-v2
   Objectif : rendu plus premium, plus large, plus lisible, sans changer la DA.
   ========================================================== */
:root{
  --site-max:1880px;
  --site-gutter:clamp(24px,3.8vw,84px);
  --glass:rgba(255,255,255,.78);
  --glass-strong:rgba(255,255,255,.92);
  --shadow-premium:0 30px 90px rgba(23,32,51,.13);
  --shadow-hover:0 28px 72px rgba(23,32,51,.16);
}

body{
  position:relative;
  background:
    radial-gradient(circle at 8% -4%, rgba(166,200,15,.22), transparent 34%),
    radial-gradient(circle at 94% 4%, rgba(238,247,199,.92), transparent 31%),
    linear-gradient(180deg,#fbfcf4 0%,#f7faf0 42%,#fff 100%);
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background-image:
    linear-gradient(rgba(166,200,15,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(166,200,15,.035) 1px, transparent 1px);
  background-size:52px 52px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.82), transparent 72%);
}

.container{width:min(var(--site-max),calc(100% - var(--site-gutter)));}
.admin-body .container{--site-max:1940px;}

.site-header{
  background:rgba(255,255,255,.82);
  border-bottom:1px solid rgba(228,234,210,.78);
  box-shadow:0 12px 34px rgba(23,32,51,.052);
  transition:background .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.site-header.is-scrolled{
  background:rgba(255,255,255,.92);
  box-shadow:0 16px 42px rgba(23,32,51,.075);
  border-bottom-color:rgba(166,200,15,.22);
}

.header-inner{
  height:86px;
  gap:20px;
}

.brand{
  isolation:isolate;
  flex:0 0 auto;
}

.brand img{
  height:58px;
  border:1px solid rgba(228,234,210,.9);
  background:linear-gradient(145deg,#fff,#f7fadf);
}

.main-nav{
  gap:7px;
  min-width:0;
}

.main-nav a:not(.btn){
  position:relative;
  overflow:hidden;
  border:1px solid transparent;
  background:transparent;
}

.main-nav a:not(.btn)::before{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:6px;
  height:3px;
  border-radius:999px;
  background:var(--green);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .18s ease;
}

.main-nav a:not(.btn):hover,
.main-nav a:not(.btn)[aria-current="page"]{
  border-color:rgba(166,200,15,.25);
  background:rgba(238,247,199,.78);
}

.main-nav a:not(.btn):hover::before,
.main-nav a:not(.btn)[aria-current="page"]::before{
  transform:scaleX(1);
}

.menu-toggle{
  position:relative;
  width:48px;
  height:48px;
  padding:0;
  border:1px solid rgba(166,200,15,.28);
  background:linear-gradient(145deg,#fff,#eef7c7);
}

.menu-toggle span,
.menu-toggle span::before,
.menu-toggle span::after{
  content:"";
  position:absolute;
  left:50%;
  width:22px;
  height:2px;
  border-radius:999px;
  background:#172033;
  transform:translateX(-50%);
  transition:transform .18s ease, opacity .18s ease, top .18s ease;
}

.menu-toggle span{top:50%;}
.menu-toggle span::before{top:-7px;}
.menu-toggle span::after{top:7px;}
.menu-toggle[aria-expanded="true"] span{background:transparent;}
.menu-toggle[aria-expanded="true"] span::before{top:0;transform:translateX(-50%) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span::after{top:0;transform:translateX(-50%) rotate(-45deg);}

.btn,button.btn{
  letter-spacing:-.015em;
  box-shadow:0 16px 34px rgba(166,200,15,.32), inset 0 1px 0 rgba(255,255,255,.66);
}

.btn-secondary{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

.page-hero,
.da-page-hero,
.admin-dashboard-hero,
.stock-hero{
  position:relative;
  isolation:isolate;
}

.page-hero::before,
.da-page-hero::before,
.admin-dashboard-hero::before,
.stock-hero::before{
  opacity:.92;
}

.section-title{
  align-items:center;
}

.section-title h2{
  max-width:980px;
}

.card,
.da-admin-form,
.user-admin-card,
.admin-module-panel,
.admin-kpi-card,
.admin-dashboard-hero-card,
.stock-status-card,
.stock-kpi-card,
.stock-control-card,
.stock-filter-card,
.stock-sale-card,
.stock-products-card,
.games-dashboard-card,
.games-clues-card,
.games-retro-card,
.games-memory-card,
.profile-full-card,
.profile-page .profile-identity-card{
  background:linear-gradient(145deg,rgba(255,255,255,.95),rgba(255,255,255,.82));
  border-color:rgba(228,234,210,.92);
  box-shadow:0 18px 54px rgba(23,32,51,.085);
}

.card:hover,
.user-admin-card:hover,
.admin-module-panel:hover,
.admin-kpi-card-link:hover,
.games-dashboard-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-hover);
}

.table-wrap,
.stock-table-wrap,
.stock-sale-table-wrap,
.stock-category-table-wrap{
  border-color:rgba(228,234,210,.96);
  box-shadow:0 16px 44px rgba(23,32,51,.075);
}

th{
  background:linear-gradient(180deg,#f8fbe8,#eef7c7);
  color:#344017;
}

tr:hover td{background:#fbfdef;}

.admin-strip{
  background:
    radial-gradient(circle at 4% 0%, rgba(166,200,15,.28), transparent 32%),
    linear-gradient(135deg,#121a2a,#1d2a42 62%,#172033);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.admin-strip-inner{
  min-height:54px;
}

.admin-strip-inner strong{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-right:4px;
  font-weight:950;
  letter-spacing:-.02em;
}

.admin-strip-inner strong::before{
  content:"";
  width:9px;
  height:9px;
  border-radius:999px;
  background:var(--green);
  box-shadow:0 0 0 6px rgba(166,200,15,.14);
}

.admin-strip a{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.095);
  transition:background .18s ease, transform .18s ease, border-color .18s ease, color .18s ease;
}

.admin-strip a:hover,
.admin-strip a[aria-current="page"]{
  color:#111827;
  background:linear-gradient(135deg,var(--green),#daf06d);
  border-color:rgba(255,255,255,.22);
  transform:translateY(-1px);
}

.admin-permanence-link.is-open{
  color:#111827 !important;
  background:linear-gradient(135deg,var(--green),#daf06d) !important;
  border-color:rgba(166,200,15,.78) !important;
  box-shadow:0 10px 26px rgba(166,200,15,.22),inset 0 1px 0 rgba(255,255,255,.42) !important;
}

.admin-permanence-link.is-just-closed{
  color:#fff !important;
  background:rgba(239,68,68,.86) !important;
  border-color:rgba(248,113,113,.92) !important;
  animation:cse-permanence-closed-pulse .72s ease-in-out 3 !important;
}

.admin-hub-card-grid{
  gap:22px;
}

.admin-hub-card{
  position:relative;
  overflow:hidden;
  border-radius:30px;
}

.admin-hub-card::after{
  content:"";
  position:absolute;
  right:-40px;
  bottom:-60px;
  width:170px;
  height:170px;
  border-radius:999px;
  background:rgba(166,200,15,.14);
  pointer-events:none;
}

.site-footer{
  margin-top:clamp(56px,6vw,96px);
  padding:30px 0 22px;
  background:
    radial-gradient(circle at 8% 0%, rgba(166,200,15,.22), transparent 30%),
    linear-gradient(145deg,#111827,#172033 58%,#1e2d48);
}

.footer-shell{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding-bottom:22px;
  border-bottom:1px solid rgba(255,255,255,.10);
}

.footer-brand-block{
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0;
}

.footer-brand-block strong{
  display:block;
  color:#fff;
  font-size:20px;
  letter-spacing:-.03em;
}

.footer-brand-block p{
  margin:4px 0 0;
  max-width:760px;
  color:#d1d5db;
  font-weight:650;
}

.footer-links{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
}

.footer-links a{
  display:inline-flex;
  margin:0;
  padding:9px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  color:#f9fafb;
  font-weight:800;
}

.footer-links a:hover{
  background:rgba(166,200,15,.2);
  transform:translateY(-1px);
}

.footer-bottom{
  margin-top:0;
  padding-top:18px;
  border-top:0;
}



/* Affichage / masquage global des mots de passe */
.cse-password-field{
  position:relative;
  display:flex;
  align-items:center;
  width:100%;
}

.cse-password-field .input{
  padding-right:118px;
}

.cse-password-toggle{
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:36px;
  padding:8px 12px;
  border:1px solid rgba(141,179,0,.24);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(238,247,199,.82));
  color:#425300;
  font:inherit;
  font-size:12px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(17,24,39,.08);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;
}

.cse-password-toggle:hover,
.cse-password-toggle:focus-visible{
  border-color:rgba(141,179,0,.55);
  background:linear-gradient(135deg,#fff,var(--green-soft));
  box-shadow:0 14px 30px rgba(17,24,39,.12);
}

.cse-password-toggle:focus-visible{
  outline:3px solid rgba(166,200,15,.28);
  outline-offset:2px;
}

.cse-password-toggle:active{
  transform:translateY(-50%) scale(.98);
}

.cse-password-toggle-icon{
  position:relative;
  width:16px;
  height:10px;
  border:2px solid currentColor;
  border-radius:999px / 760px;
}

.cse-password-toggle-icon::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:5px;
  height:5px;
  border-radius:999px;
  background:currentColor;
  transform:translate(-50%,-50%);
}

.cse-password-toggle[aria-pressed="true"] .cse-password-toggle-icon::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:22px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transform:translate(-50%,-50%) rotate(-38deg);
  box-shadow:0 0 0 2px rgba(255,255,255,.9);
}

.cse-password-match-hint{
  margin:2px 0 0;
  font-size:13px;
  font-weight:850;
}

.cse-password-match-hint.is-ok{color:#3f7a08;}
.cse-password-match-hint.is-ko{color:#b42318;}

@media (max-width:420px){
  .cse-password-field .input{padding-right:98px;}
  .cse-password-toggle{right:6px;padding:7px 9px;font-size:11px;}
  .cse-password-toggle-icon{display:none;}
}

@media (min-width:1500px){
  .grid{gap:28px;}
  .section{padding:clamp(58px,4.4vw,84px) 0;}
}

@media (max-width:1100px){
  .main-nav a{font-size:13px;padding:9px 10px;}
}

@media (max-width:900px){
  .header-inner{height:74px;}
  .brand img{height:46px;}
  .main-nav{
    top:76px;
    left:12px;
    right:12px;
    padding:14px;
    border-radius:26px;
    background:rgba(255,255,255,.97);
    box-shadow:0 28px 80px rgba(17,24,39,.18);
  }
  .main-nav a:not(.btn)::before{display:none;}
  .main-nav a{font-size:15px;}
  .footer-shell{align-items:flex-start;flex-direction:column;}
  .footer-links{justify-content:flex-start;}
}

@media (max-width:640px){
  :root{--site-gutter:18px;}
  .container{width:calc(100% - 18px);}
  .header-inner{height:70px;}
  .brand img{height:42px;}
  .menu-toggle{width:46px;height:46px;border-radius:16px;}
  .section-title{align-items:flex-start;}
  .footer-brand-block{align-items:flex-start;}
  .footer-logo{height:46px;}
  .footer-links a{width:100%;justify-content:center;}
}

/* Coin jeux — extension ludothèque premium */
.games-premium-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.games-premium-card:before{
  content:"";
  position:absolute;
  inset:-140px -120px auto auto;
  width:340px;
  height:340px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(166,200,15,.22),transparent 68%);
  z-index:-1;
}
.games-premium-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,340px);
  gap:22px;
  align-items:stretch;
}
.games-premium-stage{
  min-width:0;
  display:grid;
  gap:14px;
}
.games-premium-canvas{
  width:100%;
  max-height:min(74vh,680px);
  background:linear-gradient(135deg,#f7fbe7,#fff);
}
.games-premium-sidebar{
  align-self:stretch;
}
.games-ai-field{
  margin:8px 0 2px;
}
.games-ai-field select{
  width:100%;
}
.games-premium-touch{
  display:grid;
}
.games-premium-tabs .games-tab{
  white-space:nowrap;
}
@media (max-width:980px){
  .games-premium-layout{grid-template-columns:1fr}
  .games-premium-sidebar{min-height:auto}
}
@media (max-width:680px){
  .games-premium-canvas{max-height:70vh}
  .games-premium-tabs{justify-content:flex-start;overflow-x:auto;padding-bottom:6px}
}

/* Coin jeux — V2 qualitative des jeux premium */
.games-premium-card{
  border-color:rgba(166,200,15,.36);
  box-shadow:0 34px 100px rgba(23,32,51,.13);
}
.games-premium-card .games-card-heading{
  gap:18px;
}
.games-premium-layout{
  grid-template-columns:minmax(0,1.08fr) minmax(290px,340px);
}
.games-premium-stage{
  position:relative;
}
.games-premium-canvas{
  border:1px solid rgba(166,200,15,.30);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 18px 60px rgba(23,32,51,.10);
  aspect-ratio:900/620;
  object-fit:contain;
}
.games-premium-sidebar{
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(247,251,231,.78));
  border:1px solid rgba(166,200,15,.28);
}
.games-premium-sidebar h3{
  letter-spacing:-.03em;
}
.games-premium-sidebar .games-scoreboard-mini{
  background:rgba(255,255,255,.72);
  border:1px solid rgba(166,200,15,.22);
}
.games-premium-tabs{
  align-items:center;
}
.games-premium-tabs .games-tab{
  border:1px solid rgba(166,200,15,.28);
  box-shadow:0 10px 24px rgba(23,32,51,.06);
}
.games-premium-tabs .games-tab.is-active{
  box-shadow:0 14px 30px rgba(166,200,15,.22);
}
.games-premium-touch button{
  box-shadow:0 10px 24px rgba(23,32,51,.08);
}
@media (max-width:760px){
  .games-premium-layout{gap:16px;}
  .games-premium-canvas{max-height:62vh;}
  .games-premium-sidebar{order:-1;}
}

/* Coin jeux — V3 Mini Arcade CSE Premium */
.games-premium-card{
  background:
    radial-gradient(circle at 12% 10%, rgba(166,200,15,.16), transparent 34%),
    radial-gradient(circle at 88% 4%, rgba(255,243,199,.52), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,251,231,.88));
}
.games-premium-card .pill{
  box-shadow:0 10px 24px rgba(166,200,15,.16);
}
.games-premium-layout{
  align-items:start;
}
.games-premium-canvas{
  touch-action:none;
  cursor:crosshair;
  border-radius:28px;
  background:
    radial-gradient(circle at 20% 15%, rgba(166,200,15,.22), transparent 24%),
    linear-gradient(135deg,#f7fbe7,#ffffff 68%);
}
.games-premium-sidebar{
  position:sticky;
  top:calc(var(--header-h, 86px) + 18px);
  border-radius:28px;
  padding:22px;
}
.games-premium-sidebar .actions{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
}
.games-premium-sidebar .actions .btn{
  width:100%;
  justify-content:center;
}
.games-premium-tabs{
  gap:8px;
}
.games-premium-tabs .games-tab{
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.games-premium-tabs .games-tab:hover{
  transform:translateY(-1px);
}
.games-premium-tabs .games-tab.is-active{
  transform:translateY(-2px);
}
@media (max-width:760px){
  .games-premium-sidebar{
    position:static;
    padding:18px;
  }
  .games-premium-canvas{
    min-height:440px;
    max-height:66vh;
    border-radius:22px;
  }
  .games-premium-tabs .games-tab{
    flex:0 0 auto;
  }
}


/* Coin jeux — Patch V6 Mobile Fit & Mahjong lisible
   Corrige l'intégration mobile observée en recette vidéo :
   - la ludothèque premium passe en une seule colonne,
   - le canvas conserve son ratio sans grande zone vide,
   - le panneau de score descend sous le jeu,
   - le cartouche horaire reste ancré dans la photo,
   - les meilleurs scores restent lisibles sans étirer la page. */
@media (max-width:760px){

  .games-premium-card{
    padding-inline:clamp(14px,4vw,20px);
  }

  .games-premium-card .games-card-heading{
    gap:14px;
  }

  .games-premium-layout{
    grid-template-columns:1fr !important;
    gap:14px;
    align-items:stretch;
    overflow:visible;
  }

  .games-premium-stage{
    order:1;
    width:100%;
    min-width:0;
  }

  .games-premium-sidebar{
    order:2;
    position:static !important;
    width:100%;
    max-width:100%;
    padding:16px;
    border-radius:22px;
  }

  .games-premium-canvas{
    display:block;
    width:100%;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:900 / 620;
    border-radius:20px;
  }

  .games-premium-touch{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:6px;
  }

  .games-premium-touch button{
    min-height:42px;
    font-size:16px;
    border-radius:12px;
  }

  .games-premium-sidebar .games-scoreboard-mini{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin:12px 0;
  }

  .games-premium-sidebar .games-scoreboard-mini span{
    min-width:0;
    padding:10px 8px;
    border-radius:16px;
  }

  .games-premium-sidebar .games-scoreboard-mini strong{
    font-size:18px;
    overflow-wrap:anywhere;
  }

  .games-premium-sidebar .actions{
    grid-template-columns:1fr;
  }

  .games-premium-sidebar .games-best-list{
    max-height:260px;
    overflow:auto;
    padding-right:2px;
  }
}

@media (max-width:430px){
  .games-premium-sidebar .games-scoreboard-mini{
    grid-template-columns:1fr 1fr;
  }

  .games-premium-tabs .games-tab{
    font-size:13px;
    padding-inline:12px;
  }
}

/* ==========================================================
   CSE Sonéo — Patch DA unifiée + dashboard admin propre
   Version 20260528-da-admin-games-v3
   Objectif : corriger la card admin/index.php, harmoniser les cards
   et sécuriser l’affichage responsive du Coin jeux.
   ========================================================== */
:root{
  --cse-glass-card:linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,255,255,.84));
  --cse-glass-soft:linear-gradient(145deg,rgba(255,255,255,.94),rgba(247,251,231,.78));
  --cse-card-border:rgba(228,234,210,.94);
  --cse-card-shadow:0 22px 64px rgba(23,32,51,.095);
  --cse-card-shadow-hover:0 30px 82px rgba(23,32,51,.145);
}

body,
.admin-body{
  background:
    radial-gradient(circle at 8% -4%, rgba(166,200,15,.22), transparent 34%),
    radial-gradient(circle at 94% 4%, rgba(238,247,199,.92), transparent 31%),
    linear-gradient(180deg,#fbfcf4 0%,#f7faf0 42%,#fff 100%);
}

.page-hero,
.da-page-hero,
.admin-dashboard-hero,
.stock-hero,
.games-hero,
.games-admin-hero{
  overflow:hidden;
}

.card,
.da-admin-form,
.user-admin-card,
.admin-module-panel,
.admin-kpi-card,
.admin-dashboard-hero-card,
.stock-status-card,
.stock-kpi-card,
.stock-control-card,
.stock-filter-card,
.stock-sale-card,
.stock-products-card,
.games-dashboard-card,
.games-clues-card,
.games-retro-card,
.games-memory-card,
.games-premium-card,
.profile-full-card,
.profile-page .profile-identity-card{
  background:var(--cse-glass-card);
  border:1px solid var(--cse-card-border);
  box-shadow:var(--cse-card-shadow);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

.card:hover,
.user-admin-card:hover,
.admin-module-panel:hover,
.admin-kpi-card-link:hover,
.games-dashboard-card:hover,
.admin-compact-card:hover,
.admin-validation-card:hover,
.admin-validation-mini-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--cse-card-shadow-hover);
  border-color:rgba(166,200,15,.40);
}

.admin-dashboard-layout{
  display:grid;
  gap:24px;
  align-items:start;
}

.page-admin-index .admin-dashboard-layout{
  max-width:1180px;
  margin-inline:auto;
}

.admin-dashboard-topline{
  display:grid;
  grid-template-columns:minmax(220px,.36fr) minmax(0,1fr);
  gap:18px;
  align-items:stretch;
}

.admin-compact-card,
.admin-validation-card{
  position:relative;
  overflow:hidden;
  display:grid;
  min-height:142px;
  padding:22px;
  border-radius:28px;
  border:1px solid var(--cse-card-border);
  background:var(--cse-glass-soft);
  box-shadow:var(--cse-card-shadow);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.admin-compact-card:before,
.admin-validation-card:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:6px;
  background:linear-gradient(90deg,var(--green),rgba(238,247,199,.58));
}

.admin-compact-card{
  align-content:space-between;
}

.admin-compact-card span,
.admin-validation-title span,
.admin-validation-mini-card span{
  color:#425300;
  font-size:12px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.admin-compact-card strong{
  display:block;
  color:#111827;
  font-size:clamp(46px,5vw,68px);
  line-height:.88;
  letter-spacing:-.07em;
}

.admin-validation-card{
  gap:16px;
}

.admin-validation-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
}

.admin-validation-title:after{
  content:"À traiter";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(238,247,199,.86);
  border:1px solid rgba(166,200,15,.28);
  color:#425300;
  font-size:12px;
  font-weight:950;
}

.admin-validation-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.admin-validation-mini-card{
  position:relative;
  display:grid;
  align-content:center;
  min-height:78px;
  gap:5px;
  padding:16px;
  border-radius:22px;
  border:1px solid rgba(166,200,15,.22);
  background:rgba(255,255,255,.78);
  color:inherit;
  text-decoration:none;
  box-shadow:0 12px 28px rgba(23,32,51,.055);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.admin-validation-mini-card:hover{
  background:#fff;
}

.admin-validation-mini-card strong{
  color:#111827;
  font-size:clamp(30px,3.2vw,44px);
  line-height:.92;
  letter-spacing:-.055em;
}

.admin-module-panel{
  border-radius:32px;
}

.admin-module-heading{
  align-items:flex-start;
}

.admin-module-heading-note{
  max-width:360px;
  margin:8px 0 0;
  text-align:right;
  font-size:14px;
  font-weight:750;
}

.admin-module-row{
  min-height:92px;
}

.admin-module-action{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}

.admin-hub-layout{
  width:min(1180px, calc(100% - var(--site-gutter)));
  max-width:1180px;
}

.games-premium-card,
.games-retro-card,
.games-memory-card{
  border-radius:32px;
}

.games-premium-tabs{
  max-width:100%;
  overflow-x:auto;
  scrollbar-width:thin;
}

.games-premium-tabs .games-tab{
  flex:0 0 auto;
}

.games-premium-stage,
.games-premium-sidebar,
.games-retro-stage,
.games-arcade-sidebar{
  min-width:0;
}

.games-premium-canvas,
.games-canvas{
  max-width:100%;
  display:block;
}

.games-premium-sidebar .actions{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

.games-hero-photo-stats{
  z-index:4;
}


@media (min-width:1180px){
  .page-admin-index .admin-module-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .page-admin-index .admin-module-row{
    grid-template-columns:64px minmax(0,1fr) auto;
    min-height:124px;
  }

  .page-admin-index .admin-module-tag{
    width:64px;
    height:64px;
    border-radius:20px;
  }
}

@media (max-width:900px){
  .admin-dashboard-topline{
    grid-template-columns:1fr;
  }

  .admin-module-heading{
    display:grid;
  }

  .admin-module-heading-note{
    max-width:none;
    text-align:left;
  }
}

@media (max-width:640px){
  .admin-compact-card,
  .admin-validation-card,
  .admin-module-panel,
  .games-premium-card,
  .games-retro-card,
  .games-memory-card{
    border-radius:24px;
    padding:18px;
  }

  .admin-validation-grid{
    grid-template-columns:1fr;
  }

  .admin-module-row{
    min-height:0;
  }

}

/* ==========================================================
   CSE Sonéo — Sprint Polish Visuel Fullscreen V4
   Patch final 2026-05-28
   Objectif : harmonisation premium globale, densité utile,
   meilleure lecture desktop/mobile, admin plus professionnel
   et page Coin jeux plus stable.
   ========================================================== */
:root{
  --site-max:1900px;
  --site-gutter:clamp(20px,3.6vw,78px);
  --cse-section-y:clamp(34px,4vw,58px);
  --cse-card-radius:clamp(22px,2.1vw,32px);
  --cse-tight-gap:clamp(14px,1.8vw,24px);
  --cse-premium-line:rgba(228,234,210,.92);
  --cse-premium-shadow:0 18px 54px rgba(23,32,51,.088);
  --cse-premium-shadow-hover:0 26px 74px rgba(23,32,51,.14);
}

body{
  background:
    radial-gradient(circle at 7% -8%, rgba(166,200,15,.24), transparent 33%),
    radial-gradient(circle at 94% 2%, rgba(238,247,199,.94), transparent 30%),
    radial-gradient(circle at 48% 105%, rgba(166,200,15,.09), transparent 36%),
    linear-gradient(180deg,#fbfcf4 0%,#f7faf0 44%,#fff 100%);
}

.container{
  width:min(var(--site-max),calc(100% - var(--site-gutter)));
}

.section{
  padding:var(--cse-section-y) 0;
}

.page-hero,
.da-page-hero,
.admin-dashboard-hero,
.stock-hero,
.games-hero,
.games-admin-hero{
  padding:clamp(38px,4.4vw,68px) 0 clamp(18px,2.2vw,30px);
}

.hero h1,
.page-hero h1,
.admin-dashboard-hero h1{
  max-width:1050px;
  text-wrap:balance;
}

.lead,
.muted,
.card p,
.admin-module-copy small,
.games-dashboard-card small{
  text-wrap:pretty;
}

.card,
.da-admin-form,
.user-admin-card,
.admin-module-panel,
.admin-kpi-card,
.admin-dashboard-hero-card,
.admin-compact-card,
.admin-validation-card,
.stock-status-card,
.stock-kpi-card,
.stock-control-card,
.stock-filter-card,
.stock-sale-card,
.stock-products-card,
.games-dashboard-card,
.games-clues-card,
.games-retro-card,
.games-memory-card,
.games-premium-card,
.benefits-feature-card,
.benefits-category-card,
.contact-info-card,
.contact-form-card,
.profile-full-card,
.profile-page .profile-identity-card,
.legal-main-card,
.legal-aside-card,
.cgu-main-card,
.cgu-aside-card{
  border-radius:var(--cse-card-radius);
  border-color:var(--cse-premium-line);
  box-shadow:var(--cse-premium-shadow);
}

.card:hover,
.da-admin-form:hover,
.user-admin-card:hover,
.admin-module-panel:hover,
.admin-kpi-card-link:hover,
.admin-compact-card:hover,
.admin-validation-card:hover,
.admin-validation-mini-card:hover,
.games-dashboard-card:hover,
.benefits-code-card:hover,
.benefits-info-card:hover{
  box-shadow:var(--cse-premium-shadow-hover);
  border-color:rgba(166,200,15,.42);
}

/* Densité utile : moins de vide, plus de lecture immédiate */
.section-title,
.games-card-heading,
.stock-card-heading,
.admin-module-heading{
  margin-bottom:clamp(14px,2vw,22px);
}

.grid,
.cse-admin-panel-grid,
.admin-dashboard-layout,
.stock-layout,
.games-stack,
.benefits-stack,
.contact-stack{
  gap:var(--cse-tight-gap);
}

.cse-collapsible-card > summary,
.cse-collapsible-summary{
  min-height:0;
  padding-block:clamp(14px,1.8vw,20px);
}

.cse-collapsible-body,
.cse-collapsible-body.form,
form.cse-collapsible-body{
  padding-top:clamp(12px,1.8vw,20px);
}

.input,
select,
textarea,
.btn,
button.btn{
  max-width:100%;
}

/* Admin : tableau de bord plus net, plus large, sans card perdue */
.page-admin-index .admin-dashboard-hero-grid{
  grid-template-columns:minmax(0,1fr) minmax(280px,380px);
  align-items:center;
  gap:clamp(22px,3vw,42px);
}

.page-admin-index .admin-dashboard-layout{
  width:min(1480px,100%);
  max-width:1480px;
}

.page-admin-index .admin-dashboard-topline{
  grid-template-columns:minmax(250px,.34fr) minmax(0,.66fr);
  gap:clamp(14px,1.8vw,22px);
}

.page-admin-index .admin-compact-card,
.page-admin-index .admin-validation-card{
  min-height:132px;
  padding:clamp(18px,2vw,24px);
}

.page-admin-index .admin-compact-card strong{
  font-size:clamp(44px,4.2vw,66px);
}

.page-admin-index .admin-validation-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.page-admin-index .admin-module-panel{
  padding:clamp(20px,2.4vw,30px);
}

.page-admin-index .admin-module-list{
  gap:clamp(12px,1.5vw,18px);
}

.page-admin-index .admin-module-row{
  min-height:104px;
  border-radius:24px;
}

.admin-hub-layout{
  width:min(1320px,calc(100% - var(--site-gutter)));
  max-width:1320px;
}

.admin-hub-card-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

/* Admin formulaires : meilleur équilibre visuel sur écrans larges */
@media (min-width:1180px){
  .cse-admin-panel-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
  }

  .cse-admin-full,
  .da-search-card,
  .admin-benefit-list-card{
    grid-column:1 / -1;
  }
}

/* Tables : lisibilité + scroll maîtrisé */
.table-wrap,
.stock-table-wrap,
.stock-sale-table-wrap,
.stock-category-table-wrap{
  max-width:100%;
  overscroll-behavior-x:contain;
}

th,
td{
  line-height:1.38;
}

/* Accueil : la tuile Coin jeux utilise désormais le visuel dédié */
.home-module-card-game{
  background-position:center;
}

.home-module-card,
.home-floating-card,
.home-hero-card{
  will-change:transform;
}

/* Coin jeux : photo dédiée plus lisible avec les overlays existants */
.games-hero-grid{
  grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);
  gap:clamp(24px,3vw,48px);
  align-items:center;
}

.games-hero-photo-card{
  min-height:clamp(330px,31vw,470px);
  border-radius:clamp(26px,2.2vw,38px);
}

.games-hero-photo-card img{
  object-position:center 54%;
  transform:scale(1.018);
}

.games-hero-photo-card:before{
  background:
    linear-gradient(180deg,rgba(23,32,51,.08),rgba(23,32,51,.70)),
    radial-gradient(circle at 18% 20%,rgba(166,200,15,.24),transparent 32%),
    linear-gradient(90deg,rgba(23,32,51,.42),transparent 48%);
}

.games-hero-photo-caption{
  left:clamp(20px,2.2vw,34px);
  right:clamp(20px,2.2vw,34px);
  bottom:clamp(20px,2.2vw,34px);
}

.games-hero-photo-caption strong{
  max-width:12ch;
}

.games-hero-photo-stats{
  top:clamp(16px,1.8vw,24px);
  right:clamp(16px,1.8vw,24px);
  width:min(230px,calc(100% - 36px));
  padding:clamp(13px,1.4vw,17px);
  z-index:5;
}


.games-retro-layout,
.games-premium-layout{
  gap:clamp(16px,2vw,24px);
}

.games-arcade-panel,
.games-premium-stage{
  min-width:0;
}

.games-canvas,
.games-premium-canvas{
  max-width:100%;
  min-width:0;
}

.games-arcade-sidebar,
.games-premium-sidebar{
  align-self:start;
}

.games-scoreboard-mini span{
  min-width:0;
}

/* Avantages / Contact / Documents : cards moins hautes et plus homogènes */
.benefits-feature-card,
.benefits-category-card,
.contact-info-card,
.contact-form-card,
.da-pdf-card,
.document-card.da-pdf-card{
  padding:clamp(18px,2.3vw,30px);
}

.da-pdf-viewer-container,
.pdf-viewer-container,
.document-viewer{
  height:min(72vh,760px);
}

/* Mobile web-app : le site respire, mais ne déborde jamais */
@media (max-width:1100px){
  .games-hero-grid,
  .page-admin-index .admin-dashboard-hero-grid{
    grid-template-columns:1fr;
  }

  .games-hero-photo-card{
    min-height:clamp(320px,52vw,440px);
  }

  .page-admin-index .admin-dashboard-topline{
    grid-template-columns:1fr;
  }
}

@media (max-width:900px){
  :root{
    --site-gutter:24px;
    --cse-section-y:34px;
  }

  .admin-strip-inner{
    justify-content:flex-start;
    flex-wrap:nowrap;
    overflow:auto;
  }

  .admin-hub-card-grid{
    grid-template-columns:1fr;
  }

  .games-tabs,
  .games-premium-tabs{
    justify-content:flex-start;
    overflow-x:auto;
    border-radius:22px;
  }

  .games-tab{
    flex:0 0 auto;
  }
}

@media (max-width:640px){
  :root{
    --site-gutter:18px;
    --cse-section-y:28px;
  }

  .container,
  .admin-hub-layout{
    width:calc(100% - var(--site-gutter));
  }

  .page-hero,
  .da-page-hero,
  .admin-dashboard-hero,
  .stock-hero,
  .games-hero,
  .games-admin-hero{
    padding-top:28px;
    padding-bottom:14px;
  }

  .hero h1,
  .page-hero h1,
  .admin-dashboard-hero h1{
    font-size:clamp(34px,11vw,46px);
    letter-spacing:-.055em;
  }

  .lead{
    font-size:16px;
  }

  .card,
  .da-admin-form,
  .user-admin-card,
  .admin-module-panel,
  .admin-compact-card,
  .admin-validation-card,
  .stock-status-card,
  .stock-control-card,
  .stock-filter-card,
  .stock-sale-card,
  .stock-products-card,
  .games-memory-card,
  .games-retro-card,
  .games-premium-card,
  .benefits-feature-card,
  .benefits-category-card,
  .contact-info-card,
  .contact-form-card{
    padding:16px;
    border-radius:22px;
  }

  .page-admin-index .admin-validation-grid{
    grid-template-columns:1fr;
  }

  .admin-module-row{
    grid-template-columns:46px minmax(0,1fr);
    padding:14px;
    border-radius:20px;
  }

  .admin-module-tag{
    width:46px;
    height:46px;
    border-radius:15px;
    font-size:12px;
  }

  .admin-module-copy strong{
    font-size:16px;
  }

  .admin-module-action{
    grid-column:1 / -1;
  }

  .games-hero-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .games-hero-actions .btn{
    width:100%;
  }

  .games-hero-photo-card{
    min-height:360px;
  }

  .games-hero-photo-caption small{
    max-width:28ch;
  }

  .games-hero-photo-stats{
    width:min(190px,calc(100% - 32px));
    padding:12px;
    border-radius:22px;
  }

  .games-hero-photo-stats strong{
    font-size:24px;
  }

  .games-hero-photo-stats small{
    font-size:12px;
  }

  .games-retro-layout,
  .games-premium-layout{
    grid-template-columns:1fr !important;
  }

  .games-touch-controls,
  .games-premium-touch{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }

  .games-touch-controls button,
  .games-premium-touch button{
    min-height:42px;
  }

  .da-pdf-viewer-container,
  .pdf-viewer-container,
  .document-viewer{
    height:66vh;
    min-height:340px;
  }
}

@media (max-width:430px){
  .games-touch-controls,
  .games-premium-touch{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .games-hero-photo-card{
    min-height:330px;
  }

  .games-hero-photo-caption strong{
    font-size:34px;
  }
}


/* ==========================================================
   Correctif 2026-05-29 — Coin jeux : cartouche horaire fixe dans la photo
   Le système de décrochage/flottement est désactivé pour éviter les
   superpositions et dysfonctionnements au scroll.
   ========================================================== */
.games-hero-photo-card{
  position:relative;
}

.games-hero-photo-stats,
.games-hero-photo-stats.is-floating{
  position:absolute !important;
  top:clamp(16px,1.8vw,24px) !important;
  right:clamp(16px,1.8vw,24px) !important;
  left:auto !important;
  width:min(230px,calc(100% - 36px)) !important;
  max-width:calc(100% - 36px) !important;
  z-index:5 !important;
  pointer-events:auto !important;
}

@media (max-width:760px){
  .games-hero-photo-stats,
  .games-hero-photo-stats.is-floating{
    top:16px !important;
    right:16px !important;
    width:min(190px,calc(100% - 32px)) !important;
    padding:12px;
  }
}


/* Navigation Inter C.E.A. */
.main-nav .nav-logo-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.main-nav .nav-logo-link img{
  width:34px;
  max-width:none;
  height:22px;
  object-fit:contain;
  border-radius:6px;
  background:#fff;
  padding:2px 3px;
  box-shadow:0 6px 16px rgba(23,32,51,.08);
}
.main-nav .nav-intercea-link:hover,
.main-nav .nav-intercea-link[aria-current="page"]{
  border-color:rgba(192,0,91,.22)!important;
  background:rgba(255,235,246,.88)!important;
}
.main-nav .nav-intercea-link::before{
  background:#c0005b!important;
}
@media(max-width:900px){
  .main-nav .nav-logo-link{
    justify-content:flex-start;
  }
  .main-nav .nav-logo-link img{
    width:42px;
    height:26px;
  }
}

/* ==========================================================
   CSE Sonéo — V3.5 nettoyage heroes + cards harmonisées
   Objectif : conserver les pages épurées et rapprocher les cards
   du rendu admin/comptes-hub.php, sans impacter index.php, jeux.php
   ni intercea.php.
   ========================================================== */
body.page-contact .contact-section,
body.page-mon-espace main > .section,
body.page-avantages .benefits-section,
body.page-evenements .da-library-section,
body.page-documents .da-library-section,
body.page-admin-index .admin-dashboard-section,
body.page-admin-comptes-hub .admin-dashboard-section,
body.page-admin-documents-hub .admin-dashboard-section,
body.page-admin-permanence-hub .admin-dashboard-section,
body.page-admin-jeux main > .section,
body.page-admin-documents main > .section,
body.page-admin-evenements main > .section,
body.page-admin-avantages main > .section,
body.page-admin-avantages-contenu .admin-benefits-section,
body.page-admin-registrations main > .section,
body.page-admin-users main > .section{
  padding-top:clamp(22px,3.2vw,46px) !important;
}

body.page-mon-espace .profile-identity-card-inline{
  max-width:430px;
  margin:0 0 clamp(18px,2.4vw,28px) auto;
  min-height:92px;
}

body.page-mon-espace .profile-collapsible-stack{
  max-width:980px;
}

@media (max-width:760px){
  body.page-mon-espace .profile-identity-card-inline{
    max-width:none;
    margin-inline:0;
  }
}

body.page-admin-comptes-hub .admin-module-panel,
body.page-admin-documents-hub .admin-module-panel,
body.page-admin-permanence-hub .admin-module-panel,
body.page-admin-index .admin-module-panel,
body.page-admin-jeux .card,
body.page-admin-documents .cse-admin-panel-grid > .card,
body.page-admin-evenements .cse-admin-panel-grid > .card,
body.page-admin-avantages .cse-admin-panel-grid > .card,
body.page-admin-registrations .cse-collapsible-stack > .card,
body.page-admin-users .admin-user-panels > .card,
body.page-admin-users .users-admin-list > .card,
body.page-admin-avantages-contenu .admin-benefit-list-card,
body.page-admin-avantages-contenu .admin-benefit-editor-details,
body.page-contact .contact-info-card,
body.page-contact .contact-form-card,
body.page-mon-espace .profile-full-card,
body.page-mon-espace .card.form,
body.page-avantages .benefits-category-card,
body.page-avantages .benefits-feature-card,
body.page-avantages .da-pdf-card,
body.page-evenements .da-pdf-card,
body.page-documents .da-pdf-card{
  position:relative;
  overflow:hidden;
  border-radius:clamp(28px,3vw,38px) !important;
  border:1px solid rgba(219,228,193,.98) !important;
  background:linear-gradient(135deg,rgba(255,255,255,.97),rgba(255,255,255,.91) 56%,rgba(247,251,231,.78)) !important;
  box-shadow:0 26px 70px rgba(15,23,42,.10) !important;
}

body.page-admin-comptes-hub .admin-module-panel:before,
body.page-admin-documents-hub .admin-module-panel:before,
body.page-admin-permanence-hub .admin-module-panel:before,
body.page-admin-index .admin-module-panel:before,
body.page-admin-jeux .card:before,
body.page-admin-documents .cse-admin-panel-grid > .card:before,
body.page-admin-evenements .cse-admin-panel-grid > .card:before,
body.page-admin-avantages .cse-admin-panel-grid > .card:before,
body.page-admin-registrations .cse-collapsible-stack > .card:before,
body.page-admin-users .admin-user-panels > .card:before,
body.page-admin-users .users-admin-list > .card:before,
body.page-admin-avantages-contenu .admin-benefit-list-card:before,
body.page-admin-avantages-contenu .admin-benefit-editor-details:before,
body.page-contact .contact-info-card:before,
body.page-contact .contact-form-card:before,
body.page-mon-espace .profile-full-card:before,
body.page-mon-espace .card.form:before,
body.page-avantages .benefits-category-card:before,
body.page-avantages .benefits-feature-card:before,
body.page-avantages .da-pdf-card:before,
body.page-evenements .da-pdf-card:before,
body.page-documents .da-pdf-card:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:6px;
  background:linear-gradient(90deg,var(--green),rgba(238,247,199,.62));
  pointer-events:none;
}

body.page-admin-documents .cse-admin-panel-grid,
body.page-admin-evenements .cse-admin-panel-grid,
body.page-admin-avantages .cse-admin-panel-grid,
body.page-admin-registrations .cse-collapsible-stack,
body.page-admin-users .admin-user-panels,
body.page-admin-avantages-contenu .admin-benefits-layout,
body.page-contact .contact-stack,
body.page-mon-espace .profile-collapsible-stack,
body.page-avantages .benefits-stack,
body.page-evenements .da-document-stack,
body.page-documents .da-document-stack{
  gap:clamp(18px,2.3vw,28px) !important;
}

body.page-admin-documents .cse-collapsible-card > summary,
body.page-admin-evenements .cse-collapsible-card > summary,
body.page-admin-avantages .cse-collapsible-card > summary,
body.page-admin-registrations .cse-collapsible-card > summary,
body.page-admin-users .admin-collapse-summary,
body.page-admin-avantages-contenu .admin-benefit-list-summary,
body.page-admin-avantages-contenu .admin-benefit-editor-summary,
body.page-contact .contact-collapsible-summary,
body.page-avantages .benefits-category-summary,
body.page-avantages .benefits-documents-summary,
body.page-avantages .benefits-codes-summary,
body.page-documents .cse-collapsible-summary,
body.page-evenements .cse-collapsible-summary{
  padding-top:clamp(18px,2vw,24px);
}

body.page-admin-documents .cse-collapsible-title strong,
body.page-admin-evenements .cse-collapsible-title strong,
body.page-admin-avantages .cse-collapsible-title strong,
body.page-admin-registrations .cse-collapsible-title strong,
body.page-admin-users .admin-collapse-summary strong,
body.page-admin-avantages-contenu .admin-benefit-list-summary strong,
body.page-admin-avantages-contenu .admin-benefit-editor-summary strong,
body.page-contact .contact-form-heading h2,
body.page-avantages .benefits-category-summary strong,
body.page-documents .da-document-title strong,
body.page-evenements .da-document-title strong{
  letter-spacing:-.045em;
}


/* ==========================================================
   Correctif PWA tactile — scroll au doigt / souris en mode application
   Patch 2026-05-30
   Objectif : conserver le comportement web-app tout en laissant le site
   défiler naturellement au toucher sur mobile, tablette et écran tactile PC.
   ========================================================== */
html,
body{
  overflow-y:auto;
  overscroll-behavior-y:auto;
  touch-action:pan-y pinch-zoom;
}

body.is-pwa-standalone{
  overscroll-behavior-y:auto;
}

main,
.site-header,
.site-footer,
.section,
.container,
.card,
.admin-body,
.admin-strip,
.admin-strip-inner,
.page-shell,
.admin-dashboard-page,
.admin-hub-layout{
  touch-action:pan-y pinch-zoom;
}

button,
a,
summary,
label,
input,
select,
textarea,
[role="button"]{
  touch-action:manipulation;
}

.table-wrap,
.stock-table-wrap,
.stock-sale-table-wrap,
.stock-category-table-wrap,
.stock-session-top-table-wrap,
.admin-strip-inner,
.main-nav.open,
.games-tabs,
.games-premium-tabs,
.board-scroll,
.da-pdf-viewer-container,
.pdf-viewer-container,
.document-viewer{
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:auto;
  touch-action:pan-x pan-y pinch-zoom;
}

.cse-scrollable-drag{
  cursor:grab;
  scroll-behavior:auto;
}

.cse-scrollable-drag.is-dragging,
body.cse-page-dragging{
  cursor:grabbing;
  user-select:none;
  -webkit-user-select:none;
}

body.cse-page-dragging *{
  cursor:grabbing !important;
}

/* Les zones réellement jouables gardent un contrôle précis du geste.
   Le reste de la page redevient scrollable normalement. */
.games-canvas,
.games-premium-canvas,
.games-touch-controls button,
.games-premium-touch button,
.ws-cell{
  touch-action:none;
}

@media (pointer:coarse){
  .admin-strip-inner,
  .main-nav.open,
  .table-wrap,
  .stock-table-wrap,
  .stock-sale-table-wrap,
  .stock-category-table-wrap,
  .stock-session-top-table-wrap,
  .games-tabs,
  .games-premium-tabs{
    scrollbar-width:thin;
  }
}

/* ==========================================================
   Correctif 2026-05-30 — Header responsive V4.2
   Diagnostic DOM réel : une seule source de vérité pour le hamburger.
   - CSS mobile <= 900px / desktop >= 901px.
   - JS synchronisé sur window.matchMedia('(min-width: 901px)').
   - Menu mobile positionné en absolu sous le header pour éviter les bugs
     de fixed + backdrop-filter en PWA et sur fenêtres redimensionnées.
   ========================================================== */
:root{
  --cse-vw:100vw;
  --cse-header-h:74px;
}

html,
body{
  min-width:320px;
  max-width:none;
}

.site-header{
  z-index:20000 !important;
  overflow:visible !important;
  contain:none !important;
}

.site-header .header-inner{
  position:relative !important;
  overflow:visible !important;
  contain:none !important;
}

.site-header .menu-toggle{
  touch-action:manipulation;
  user-select:none;
  -webkit-user-select:none;
}

.site-header .main-nav{
  will-change:opacity,transform;
}

body.cse-menu-open,
body[data-menu-open="true"]{
  overflow-x:hidden !important;
}

@media (min-width:901px){
  html,
  body,
  body.cse-menu-open,
  body.cse-mobile-nav-ready,
  body.cse-force-desktop-nav,
  body.menu-open,
  body.nav-open,
  body.is-open,
  body[data-menu-open="true"]{
    width:100% !important;
    min-width:320px !important;
    max-width:none !important;
    min-height:100% !important;
    position:relative !important;
    inset:auto !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    touch-action:pan-y pinch-zoom !important;
  }

  .site-header,
  .site-header.is-menu-open,
  .site-header[data-menu-open="true"],
  body.cse-menu-open .site-header,
  body.cse-mobile-nav-ready .site-header,
  body.cse-force-desktop-nav .site-header{
    position:sticky !important;
    top:0 !important;
    left:auto !important;
    right:auto !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    overflow:visible !important;
  }

  .site-header .header-inner,
  body.cse-menu-open .site-header .header-inner,
  body.cse-mobile-nav-ready .site-header .header-inner,
  body.cse-force-desktop-nav .site-header .header-inner{
    width:min(var(--site-max),calc(100% - var(--site-gutter))) !important;
    max-width:none !important;
    height:86px !important;
    overflow:visible !important;
  }

  .site-header .menu-toggle,
  .site-header .menu-toggle.is-active,
  .site-header.is-menu-open .menu-toggle,
  .site-header[data-menu-open="true"] .menu-toggle,
  body.cse-menu-open .site-header .menu-toggle,
  body.cse-mobile-nav-ready .site-header .menu-toggle,
  body.cse-force-desktop-nav .site-header .menu-toggle{
    display:none !important;
    pointer-events:none !important;
  }

  .site-header .main-nav,
  .site-header .main-nav.open,
  .site-header .main-nav.is-open,
  .site-header .main-nav[aria-hidden="true"],
  .site-header .main-nav[aria-hidden="false"],
  .site-header.is-menu-open .main-nav,
  .site-header[data-menu-open="true"] .main-nav,
  body.cse-menu-open .site-header .main-nav,
  body.cse-mobile-nav-ready .site-header .main-nav,
  body.cse-force-desktop-nav .site-header .main-nav{
    display:flex !important;
    position:static !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:8px !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    pointer-events:auto !important;
    overflow:visible !important;
    overscroll-behavior:auto !important;
    transition:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  .site-header .main-nav a,
  .site-header .main-nav .btn,
  body.cse-menu-open .site-header .main-nav a,
  body.cse-menu-open .site-header .main-nav .btn,
  body.cse-mobile-nav-ready .site-header .main-nav a,
  body.cse-mobile-nav-ready .site-header .main-nav .btn,
  body.cse-force-desktop-nav .site-header .main-nav a,
  body.cse-force-desktop-nav .site-header .main-nav .btn{
    width:auto !important;
    min-width:0 !important;
    min-height:0 !important;
    justify-content:center !important;
    text-align:center !important;
    white-space:nowrap !important;
  }
}

@media (max-width:900px){
  .site-header{
    position:sticky !important;
    top:0 !important;
    width:100% !important;
    min-width:0 !important;
    overflow:visible !important;
    isolation:isolate;
  }

  .site-header .header-inner{
    height:74px !important;
    width:min(var(--site-max),calc(100% - var(--site-gutter))) !important;
    max-width:none !important;
    overflow:visible !important;
  }

  .site-header .brand img{
    height:46px;
  }

  .site-header .menu-toggle{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    position:relative !important;
    z-index:2 !important;
    width:48px !important;
    height:48px !important;
    pointer-events:auto !important;
  }

  .site-header .main-nav{
    display:flex !important;
    position:absolute !important;
    top:calc(100% + 8px) !important;
    left:0 !important;
    right:0 !important;
    bottom:auto !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    max-height:calc(100dvh - var(--cse-header-h,74px) - 26px - env(safe-area-inset-bottom)) !important;
    margin:0 !important;
    padding:14px !important;
    z-index:1 !important;
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:8px !important;
    border:1px solid rgba(228,234,210,.92) !important;
    border-radius:26px !important;
    background:linear-gradient(145deg,rgba(255,255,255,.992),rgba(247,251,231,.982)) !important;
    box-shadow:0 30px 90px rgba(23,32,51,.20) !important;
    opacity:0 !important;
    visibility:hidden !important;
    transform:translateY(-8px) scale(.985) !important;
    pointer-events:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain !important;
    -webkit-overflow-scrolling:touch !important;
    transition:opacity .16s ease, transform .16s ease, visibility .16s ease !important;
    backdrop-filter:blur(18px) saturate(1.08) !important;
    -webkit-backdrop-filter:blur(18px) saturate(1.08) !important;
  }

  .site-header[data-menu-open="true"] .main-nav,
  .site-header.is-menu-open .main-nav,
  .site-header .main-nav.open,
  .site-header .main-nav.is-open,
  body.cse-menu-open .site-header .main-nav,
  body[data-menu-open="true"] .site-header .main-nav{
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(0) scale(1) !important;
    pointer-events:auto !important;
  }

  .site-header .main-nav a,
  .site-header .main-nav .btn{
    width:100% !important;
    min-height:46px !important;
    justify-content:center !important;
    text-align:center !important;
  }

  body.cse-menu-open,
  body[data-menu-open="true"]{
    overflow-y:auto !important;
  }
}


/* ==========================================================
   Correctif urgence 2026-05-30 — Header responsive V4.3 stable
   Objectif : supprimer les états concurrents qui pouvaient figer Chrome
   après ouverture du hamburger et retour desktop.
   ========================================================== */
.site-header,
.site-header .header-inner{
  overflow:visible !important;
  contain:none !important;
}

.site-header .menu-toggle{
  touch-action:manipulation !important;
}

@media (min-width:901px){
  html,
  body,
  body.cse-menu-open,
  body.cse-mobile-nav-ready,
  body[data-menu-open="true"]{
    overflow-x:hidden !important;
    overflow-y:auto !important;
    position:relative !important;
    width:100% !important;
    min-width:320px !important;
  }

  .site-header .menu-toggle{
    display:none !important;
    pointer-events:none !important;
  }

  .site-header .main-nav,
  .site-header .main-nav.open,
  .site-header .main-nav.is-open,
  .site-header[data-menu-open="true"] .main-nav,
  .site-header.is-menu-open .main-nav,
  body.cse-menu-open .site-header .main-nav,
  body[data-menu-open="true"] .site-header .main-nav{
    display:flex !important;
    position:static !important;
    inset:auto !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:8px !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    pointer-events:auto !important;
    overflow:visible !important;
    transition:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
}

@media (max-width:900px){
  .site-header{
    position:sticky !important;
    top:0 !important;
    z-index:20000 !important;
    width:100% !important;
  }

  .site-header .header-inner{
    position:relative !important;
    height:74px !important;
  }

  .site-header .menu-toggle{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    position:relative !important;
    z-index:3 !important;
    width:48px !important;
    height:48px !important;
    pointer-events:auto !important;
  }

  .site-header .main-nav{
    display:flex !important;
    position:absolute !important;
    top:calc(100% + 8px) !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    max-height:calc(100dvh - var(--cse-header-h,74px) - 26px) !important;
    margin:0 !important;
    padding:14px !important;
    z-index:2 !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:8px !important;
    border:1px solid rgba(228,234,210,.92) !important;
    border-radius:26px !important;
    background:linear-gradient(145deg,rgba(255,255,255,.992),rgba(247,251,231,.982)) !important;
    box-shadow:0 30px 90px rgba(23,32,51,.20) !important;
    opacity:0 !important;
    visibility:hidden !important;
    transform:translateY(-8px) scale(.985) !important;
    pointer-events:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain !important;
    -webkit-overflow-scrolling:touch !important;
    transition:opacity .16s ease, transform .16s ease, visibility .16s ease !important;
  }

  .site-header[data-menu-open="true"] .main-nav,
  .site-header.is-menu-open .main-nav,
  .site-header .main-nav.open,
  .site-header .main-nav.is-open,
  body.cse-menu-open .site-header .main-nav,
  body[data-menu-open="true"] .site-header .main-nav{
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(0) scale(1) !important;
    pointer-events:auto !important;
  }

  .site-header .main-nav a,
  .site-header .main-nav .btn{
    width:100% !important;
    min-height:46px !important;
    justify-content:center !important;
    text-align:center !important;
  }

  body.cse-menu-open,
  body[data-menu-open="true"]{
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }
}

/* ==========================================================
   CSE Sonéo — Harmonisation verticale ciblée V4.4
   Patch 2026-05-30
   Objectif : stabiliser le footer en bas et aligner les pages courtes
   sans toucher aux pages validées ni à la logique hamburger V4.3.
   ========================================================== */
html{
  min-height:100%;
}

body:not(.page-index):not(.page-intercea):not(.page-arcade-soneo):not(.page-jeux-mots-soneo){
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}

body:not(.page-index):not(.page-intercea):not(.page-arcade-soneo):not(.page-jeux-mots-soneo) > main#contenu-principal{
  flex:1 0 auto;
  width:100%;
  min-width:0;
  display:flex;
  flex-direction:column;
}

body:not(.page-index):not(.page-intercea):not(.page-arcade-soneo):not(.page-jeux-mots-soneo) > .site-footer{
  margin-top:auto;
  flex-shrink:0;
}

.layout-harmony-section{
  flex:1 0 auto;
  display:flex;
  align-items:flex-start;
  padding:clamp(28px,3.8vw,58px) 0 clamp(48px,6vw,88px) !important;
}

.layout-harmony-section > .container{
  width:min(1180px,calc(100% - var(--site-gutter)));
  margin-inline:auto;
}

.admin-body .layout-harmony-section > .container{
  width:min(1180px,calc(100% - var(--site-gutter)));
}

.layout-page-head{
  position:relative;
  z-index:1;
  margin:0 0 clamp(20px,2.6vw,34px);
}

.layout-page-head .eyebrow{
  margin-bottom:12px;
}

.layout-page-head h1{
  margin:0;
  color:#111827;
  font-size:clamp(34px,4.6vw,62px);
  line-height:.98;
  letter-spacing:-.065em;
}

.layout-page-head .lead{
  max-width:820px;
  margin:12px 0 0;
  color:var(--muted);
  font-size:clamp(16px,1.35vw,19px);
  font-weight:750;
}

.admin-layout-page-head{
  margin-bottom:clamp(18px,2.4vw,28px);
}

.admin-layout-page-head .eyebrow{
  color:#425300;
}

.admin-layout-page-head h1{
  max-width:920px;
}

.admin-harmony-panel,
.admin-harmony-card{
  width:100%;
}

body.page-evenements .layout-harmony-section,
body.page-documents .layout-harmony-section,
body.page-admin-comptes-hub .layout-harmony-section,
body.page-admin-documents-hub .layout-harmony-section,
body.page-admin-permanence-hub .layout-harmony-section,
body.page-admin-registrations .layout-harmony-section{
  min-height:clamp(420px,calc(100dvh - 260px),760px);
}

body.page-admin-comptes-hub .admin-hub-layout,
body.page-admin-documents-hub .admin-hub-layout,
body.page-admin-permanence-hub .admin-hub-layout{
  display:grid;
  gap:clamp(18px,2.4vw,28px);
  max-width:1180px;
}

body.page-admin-registrations .cse-collapsible-stack,
body.page-evenements .da-document-stack,
body.page-documents .da-document-stack{
  width:100%;
}

body.page-admin-registrations .table-wrap{
  border-radius:24px;
}

@media (max-width:760px){
  .layout-harmony-section{
    padding:clamp(22px,7vw,36px) 0 clamp(42px,10vw,68px) !important;
  }

  .layout-page-head h1{
    font-size:clamp(32px,10vw,46px);
  }

  .layout-page-head .lead{
    font-size:15px;
  }
}



/* ==========================================================
   CSE Sonéo — Correctif footer / page courte V4.5
   Patch 2026-05-30
   Diagnostic : admin/avantages.php utilisait une grille courte sans shell
   vertical dédié et le cache gardait l'ancien style via la version V4.3.
   Correction : cache-bump + shell stable + footer poussé en bas.
   ========================================================== */
html{
  min-height:100%;
  min-height:100vh;
}

body:not(.page-index):not(.page-intercea):not(.page-arcade-soneo):not(.page-jeux-mots-soneo){
  min-height:100vh;
  min-height:100svh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}

body:not(.page-index):not(.page-intercea):not(.page-arcade-soneo):not(.page-jeux-mots-soneo) > main#contenu-principal{
  flex:1 0 auto;
  width:100%;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
}

body:not(.page-index):not(.page-intercea):not(.page-arcade-soneo):not(.page-jeux-mots-soneo) > main#contenu-principal > .section:last-child{
  flex:1 0 auto;
}

body:not(.page-index):not(.page-intercea):not(.page-arcade-soneo):not(.page-jeux-mots-soneo) > footer.site-footer{
  margin-top:auto !important;
  flex:0 0 auto;
}

body.page-admin-avantages .admin-avantages-harmony-section{
  min-height:clamp(460px,calc(100dvh - 260px),820px);
}

body.page-admin-avantages .admin-avantages-layout-shell{
  width:min(var(--site-max),calc(100% - var(--site-gutter)));
}

body.page-admin-avantages .admin-avantages-grid{
  width:100%;
}

body.page-admin-avantages .admin-layout-page-head{
  max-width:1120px;
}

body.page-admin-avantages .admin-layout-page-head .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#425300;
}

body.page-admin-avantages .admin-layout-page-head .eyebrow:before{
  content:"";
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--green);
  box-shadow:0 0 0 6px rgba(166,200,15,.18);
}

body.page-admin-avantages .cse-admin-panel-grid > .card{
  min-height:0;
}

@media (max-width:900px){
  body.page-admin-avantages .admin-avantages-harmony-section{
    min-height:auto;
  }
}


/* ==========================================================
   CSE Sonéo — Harmonisation admin documents globale V4.6
   Patch 2026-05-30
   Objectif : traiter les pages admin de gestion documentaire qui peuvent
   devenir très courtes quand les cards sont repliées, sans toucher aux pages
   validées ni à la logique responsive V4.3.
   ========================================================== */
body:not(.page-index):not(.page-intercea):not(.page-arcade-soneo):not(.page-jeux-mots-soneo){
  min-height:100vh;
  min-height:100svh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}

body:not(.page-index):not(.page-intercea):not(.page-arcade-soneo):not(.page-jeux-mots-soneo) > main#contenu-principal{
  flex:1 0 auto;
  display:flex;
  flex-direction:column;
  width:100%;
  min-width:0;
  min-height:0;
}

body:not(.page-index):not(.page-intercea):not(.page-arcade-soneo):not(.page-jeux-mots-soneo) > main#contenu-principal > .section:last-child{
  flex:1 0 auto;
}

body:not(.page-index):not(.page-intercea):not(.page-arcade-soneo):not(.page-jeux-mots-soneo) > footer.site-footer{
  margin-top:auto !important;
  flex:0 0 auto;
}

body.page-admin-avantages .admin-avantages-harmony-section,
body.page-admin-documents .admin-documents-harmony-section,
body.page-admin-evenements .admin-evenements-harmony-section{
  min-height:clamp(460px,calc(100dvh - 260px),820px);
}

.admin-doc-workspace-section{
  align-items:flex-start;
}

.admin-doc-workspace-shell,
body.page-admin-avantages .admin-avantages-layout-shell{
  width:min(var(--site-max),calc(100% - var(--site-gutter)));
  margin-inline:auto;
}

.admin-doc-workspace-grid,
body.page-admin-avantages .admin-avantages-grid{
  width:100%;
}

body.page-admin-documents .admin-layout-page-head,
body.page-admin-evenements .admin-layout-page-head,
body.page-admin-avantages .admin-layout-page-head{
  max-width:1120px;
}

body.page-admin-documents .admin-layout-page-head .eyebrow,
body.page-admin-evenements .admin-layout-page-head .eyebrow,
body.page-admin-avantages .admin-layout-page-head .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#425300;
}

body.page-admin-documents .admin-layout-page-head .eyebrow:before,
body.page-admin-evenements .admin-layout-page-head .eyebrow:before,
body.page-admin-avantages .admin-layout-page-head .eyebrow:before{
  content:"";
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--green);
  box-shadow:0 0 0 6px rgba(166,200,15,.18);
}

body.page-admin-documents .cse-admin-panel-grid > .card,
body.page-admin-evenements .cse-admin-panel-grid > .card,
body.page-admin-avantages .cse-admin-panel-grid > .card{
  min-height:0;
}

@media (max-width:900px){
  body.page-admin-avantages .admin-avantages-harmony-section,
  body.page-admin-documents .admin-documents-harmony-section,
  body.page-admin-evenements .admin-evenements-harmony-section{
    min-height:auto;
  }
}


/* ==========================================================
   CSE Sonéo — Harmonisation admin avantages-contenu V4.7
   Patch 2026-05-30
   Objectif : aligner admin/avantages-contenu.php avec les pages
   admin documentaires V4.6, stabiliser le footer sur contenu court
   et conserver la logique responsive V4.3 sans ajout JavaScript.
   ========================================================== */
body.page-admin-avantages-contenu .admin-benefits-content-harmony-section{
  flex:1 0 auto;
  min-height:clamp(520px,calc(100dvh - 260px),900px);
  display:flex;
  flex-direction:column;
}

body.page-admin-avantages-contenu .admin-benefits-content-shell{
  width:min(1120px,calc(100% - var(--site-gutter)));
  margin-inline:auto;
}

body.page-admin-avantages-contenu .admin-benefits-content-head{
  max-width:1120px;
  margin-bottom:4px;
}

body.page-admin-avantages-contenu .admin-layout-page-head .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#425300;
}

body.page-admin-avantages-contenu .admin-layout-page-head .eyebrow:before{
  content:"";
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--green);
  box-shadow:0 0 0 6px rgba(166,200,15,.18);
}

body.page-admin-avantages-contenu .admin-benefits-layout{
  align-content:start;
}

body.page-admin-avantages-contenu .admin-benefit-editor-details,
body.page-admin-avantages-contenu .admin-benefit-list-card{
  min-height:0;
}

body.page-admin-avantages-contenu .admin-benefit-editor-details:not([open]),
body.page-admin-avantages-contenu .admin-benefit-list-details:not([open]){
  padding-block:34px;
}

@media (max-width:900px){
  body.page-admin-avantages-contenu .admin-benefits-content-harmony-section{
    min-height:auto;
  }
}


/* ==========================================================
   CSE Sonéo — Header Coin jeux premium
   Ajoute les deux visuels de la page jeux autour du CTA sans toucher
   à la logique responsive V4.3 du menu hamburger.
   ========================================================== */
.main-nav a.nav-games-link{
  --games-cta-gold:#e8a838;
  --games-cta-green:#a6c80f;
  --games-cta-red:#d45e3b;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:38px;
  padding:5px 9px;
  color:#fff;
  border:1px solid rgba(255,255,255,.34);
  background:
    radial-gradient(circle at 12% 20%, rgba(232,168,56,.95), transparent 34%),
    radial-gradient(circle at 88% 80%, rgba(166,200,15,.95), transparent 36%),
    linear-gradient(135deg,#15120e 0%,#2b2118 42%,#101812 100%);
  box-shadow:
    0 12px 28px rgba(17,24,39,.17),
    inset 0 1px 0 rgba(255,255,255,.22);
  isolation:isolate;
  overflow:hidden;
}

.main-nav a.nav-games-link::before{
  display:none;
}

.main-nav a.nav-games-link::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  background:linear-gradient(90deg,rgba(255,255,255,.18),transparent 36%,rgba(255,255,255,.14));
  opacity:.74;
  pointer-events:none;
}

.main-nav a.nav-games-link:hover,
.main-nav a.nav-games-link[aria-current="page"]{
  color:#fff;
  border-color:rgba(232,168,56,.7);
  background:
    radial-gradient(circle at 12% 20%, rgba(232,168,56,1), transparent 36%),
    radial-gradient(circle at 88% 78%, rgba(166,200,15,1), transparent 38%),
    linear-gradient(135deg,#21180f 0%,#3a2717 44%,#102116 100%);
  box-shadow:
    0 16px 34px rgba(17,24,39,.22),
    0 0 0 3px rgba(232,168,56,.14),
    inset 0 1px 0 rgba(255,255,255,.28);
  transform:translateY(-1px);
}

.nav-games-link__label{
  position:relative;
  z-index:2;
  line-height:1;
  white-space:nowrap;
  text-shadow:0 1px 8px rgba(0,0,0,.34);
}

.nav-games-link__media{
  position:relative;
  z-index:2;
  width:25px;
  height:25px;
  flex:0 0 25px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.42);
  background:#111827;
  box-shadow:0 4px 12px rgba(0,0,0,.25);
}

.nav-games-link__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.42);
}

.nav-games-link__media--arcade img{
  object-position:27% 50%;
}

.nav-games-link__media--words img{
  object-position:28% 52%;
}

@media (max-width:1180px) and (min-width:901px){
  .main-nav a.nav-games-link{
    gap:5px;
    padding-inline:7px;
  }
  .nav-games-link__media{
    width:21px;
    height:21px;
    flex-basis:21px;
  }
}

@media (max-width:980px) and (min-width:901px){
  .main-nav a.nav-games-link .nav-games-link__media{
    display:none;
  }
}

@media (max-width:900px){
  .main-nav a.nav-games-link{
    width:100%;
    min-height:46px;
    gap:10px;
    padding:10px 12px;
    border-radius:18px;
  }
  .nav-games-link__media{
    width:30px;
    height:30px;
    flex-basis:30px;
  }
}

/* ==========================================================
   CSE Sonéo — Polish visuel cards & permanence V4.9
   Patch 2026-05-30
   ========================================================== */
body.page-admin-documents-hub .admin-dashboard-section,
body.page-admin-permanence-hub .admin-dashboard-section,
body.page-admin-comptes-hub .admin-dashboard-section,
body.page-admin-registrations .admin-registrations-section,
body.page-admin-documents .admin-doc-workspace-section{
  padding-top:clamp(18px,2vw,30px) !important;
}

body.page-admin-documents-hub .admin-hub-layout,
body.page-admin-permanence-hub .admin-hub-layout,
body.page-admin-comptes-hub .admin-hub-layout{
  gap:0 !important;
  align-content:start;
}

body.page-admin-documents-hub .admin-module-panel,
body.page-admin-permanence-hub .admin-module-panel,
body.page-admin-comptes-hub .admin-module-panel{
  max-width:1180px;
  margin-inline:auto;
  padding:clamp(22px,2.4vw,34px) !important;
}

body.page-admin-documents-hub .admin-module-heading,
body.page-admin-permanence-hub .admin-module-heading,
body.page-admin-comptes-hub .admin-module-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:clamp(18px,2vw,24px);
}

body.page-admin-documents-hub .admin-module-heading h2,
body.page-admin-permanence-hub .admin-module-heading h2,
body.page-admin-comptes-hub .admin-module-heading h2{
  margin:0;
  font-size:clamp(26px,2.7vw,42px);
  line-height:1;
  letter-spacing:-.055em;
}

body.page-admin-documents-hub .admin-module-list,
body.page-admin-permanence-hub .admin-module-list,
body.page-admin-comptes-hub .admin-module-list{
  display:grid;
  gap:14px !important;
}

body.page-admin-documents-hub .admin-module-row,
body.page-admin-permanence-hub .admin-module-row,
body.page-admin-comptes-hub .admin-module-row{
  min-height:74px;
  padding:14px 16px !important;
  border-radius:24px !important;
  background:
    radial-gradient(circle at 100% 50%, rgba(166,200,15,.18), transparent 21%),
    linear-gradient(135deg,rgba(255,255,255,.96),rgba(247,251,231,.78)) !important;
  border:1px solid rgba(219,228,193,.98) !important;
  box-shadow:0 14px 34px rgba(15,23,42,.07) !important;
}

body.page-admin-documents-hub .admin-module-tag,
body.page-admin-permanence-hub .admin-module-tag,
body.page-admin-comptes-hub .admin-module-tag{
  width:56px !important;
  height:56px !important;
  min-width:56px !important;
  border-radius:18px !important;
  font-size:16px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.48),0 10px 24px rgba(166,200,15,.20);
}

body.page-admin-documents-hub .admin-module-copy small,
body.page-admin-permanence-hub .admin-module-copy small,
body.page-admin-comptes-hub .admin-module-copy small{
  max-width:660px;
  line-height:1.35;
}

body.page-admin-documents-hub .admin-module-action,
body.page-admin-permanence-hub .admin-module-action,
body.page-admin-comptes-hub .admin-module-action,
body.page-admin-registrations .profile-collapsible-indicator,
body.page-admin-registrations .cse-collapsible-indicator{
  min-width:92px;
  min-height:38px;
  border-radius:999px !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(238,247,199,.72) !important;
  border:1px solid rgba(166,200,15,.34) !important;
  color:#111827 !important;
  font-weight:950;
}

body.page-admin-registrations .cse-collapsible-stack{
  width:min(1180px,calc(100% - var(--site-gutter))) !important;
  margin-inline:auto;
  align-content:start;
}

body.page-admin-registrations .admin-harmony-card,
body.page-admin-documents .cse-admin-panel-grid > .card{
  min-height:0 !important;
}

body.page-admin-registrations .cse-collapsible-card > summary,
body.page-admin-documents .cse-collapsible-card > summary{
  min-height:72px;
}

body.page-admin-documents .admin-doc-workspace-shell{
  align-content:start;
}

body.page-admin-permanence .stock-section-compact-admin{
  padding-top:clamp(18px,2vw,30px) !important;
}

.stock-status-row{
  display:flex;
  justify-content:flex-end;
  width:100%;
}

.stock-status-row .stock-status-card{
  width:min(100%,460px);
}

.stock-status-card.is-open:before{background:#22c55e !important}
.stock-status-card.is-closed:before{background:#ef4444 !important}
.stock-status-card.is-open{border-color:rgba(34,197,94,.28)}
.stock-status-card.is-closed{border-color:rgba(239,68,68,.25)}
.stock-pill-open{background:#ecfdf5 !important;color:#065f46 !important;border-color:#86efac !important}
.stock-pill-closed{background:#fef2f2 !important;color:#991b1b !important;border-color:#fecaca !important}
#stock-permanence-toggle-form .btn:not(.btn-danger){
  background:linear-gradient(135deg,#a6c80f,#d9ef6d) !important;
  color:#111827 !important;
  box-shadow:0 16px 34px rgba(166,200,15,.30),inset 0 1px 0 rgba(255,255,255,.52) !important;
}
#stock-permanence-toggle-form .btn-danger{
  background:linear-gradient(135deg,#b42318,#ef4444) !important;
  color:#fff !important;
  border-color:rgba(185,28,28,.72) !important;
  box-shadow:0 16px 34px rgba(239,68,68,.24),inset 0 1px 0 rgba(255,255,255,.18) !important;
}

body.page-mon-espace .profile-identity-card-inline{
  margin:0 auto clamp(18px,2.4vw,28px) !important;
  max-width:min(100%,500px) !important;
  align-items:center;
}

body.page-mon-espace .profile-identity-card-inline > div:last-child{
  display:grid;
  gap:3px;
}

.cse-permanence-status-card{
  display:flex;
  align-items:flex-start;
  gap:10px;
  width:100%;
  margin-top:12px;
  padding:12px 13px;
  border-radius:18px;
  border:1px solid rgba(219,228,193,.95);
  background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(247,251,231,.72));
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}

.cse-permanence-status-card--profile{
  max-width:320px;
  margin-top:9px;
  padding:9px 11px;
  border-radius:16px;
}

.cse-permanence-status-dot{
  width:12px;
  height:12px;
  min-width:12px;
  margin-top:3px;
  border-radius:999px;
  background:#ef4444;
  box-shadow:0 0 0 5px rgba(239,68,68,.12);
}

.cse-permanence-status-card.is-open .cse-permanence-status-dot{
  background:#22c55e;
  box-shadow:0 0 0 5px rgba(34,197,94,.14);
}

.cse-permanence-status-card.is-unavailable .cse-permanence-status-dot{
  background:#94a3b8;
  box-shadow:0 0 0 5px rgba(148,163,184,.14);
}

.cse-permanence-status-copy{
  display:grid !important;
  gap:2px;
  min-width:0;
}

.cse-permanence-status-copy strong{
  display:block;
  color:var(--ink);
  font-size:13px;
  line-height:1.1;
  letter-spacing:-.02em;
  font-weight:950;
}

.cse-permanence-status-copy small,
.cse-permanence-status-copy em{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  line-height:1.3;
  font-style:normal;
}

.cse-permanence-status-card.is-open .cse-permanence-status-copy small{
  color:#047857;
}
.cse-permanence-status-card.is-closed .cse-permanence-status-copy small{
  color:#991b1b;
}
.cse-permanence-status-card.is-unavailable .cse-permanence-status-copy small{
  color:#475569;
}

.contact-info-item-local .cse-permanence-status-card{
  margin-top:14px;
}

@media (min-width:900px){
  body.page-admin-permanence-hub .admin-hub-card-grid,
  body.page-admin-comptes-hub .admin-hub-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:760px){
  body.page-admin-documents-hub .admin-module-heading,
  body.page-admin-permanence-hub .admin-module-heading,
  body.page-admin-comptes-hub .admin-module-heading{
    align-items:flex-start;
    flex-direction:column;
  }

  body.page-admin-documents-hub .admin-module-row,
  body.page-admin-permanence-hub .admin-module-row,
  body.page-admin-comptes-hub .admin-module-row{
    align-items:flex-start;
    grid-template-columns:auto minmax(0,1fr);
  }

  body.page-admin-documents-hub .admin-module-action,
  body.page-admin-permanence-hub .admin-module-action,
  body.page-admin-comptes-hub .admin-module-action{
    grid-column:1 / -1;
    width:100%;
  }

  .stock-status-row{
    justify-content:stretch;
  }

  .stock-status-row .stock-status-card{
    width:100%;
  }

  .cse-permanence-status-card--profile{
    max-width:none;
  }
}



/* ==========================================================
   CSE Sonéo — Correctif V5.1 stocks + bouton permanence
   - suppression visuelle du cockpit stocks trop haut
   - bouton de permanence aligné sur l'état réel : ouvert = vert, fermé = rouge
   ========================================================== */
body.page-admin-stocks .stock-section{
  padding-top:clamp(22px,2.6vw,38px) !important;
}

#stock-permanence-toggle-form .btn.btn-permanence-toggle{
  border:1px solid transparent !important;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease !important;
}

#stock-permanence-toggle-form .btn.btn-permanence-toggle.is-open{
  background:linear-gradient(135deg,#22c55e,#a6c80f,#d9ef6d) !important;
  color:#10210f !important;
  border-color:rgba(34,197,94,.42) !important;
  box-shadow:0 18px 38px rgba(34,197,94,.28), inset 0 1px 0 rgba(255,255,255,.56) !important;
}

#stock-permanence-toggle-form .btn.btn-permanence-toggle.is-closed{
  background:linear-gradient(135deg,#b42318,#ef4444,#fb7185) !important;
  color:#fff !important;
  border-color:rgba(185,28,28,.68) !important;
  box-shadow:0 18px 38px rgba(239,68,68,.24), inset 0 1px 0 rgba(255,255,255,.18) !important;
}

#stock-permanence-toggle-form .btn.btn-permanence-toggle.is-closed.is-just-closed{
  animation:cse-permanence-toggle-closed-pulse .72s ease-in-out 5 !important;
}

@keyframes cse-permanence-toggle-closed-pulse{
  0%,100%{
    background:linear-gradient(135deg,#b42318,#ef4444,#fb7185);
    box-shadow:0 18px 38px rgba(239,68,68,.24), inset 0 1px 0 rgba(255,255,255,.18);
    transform:translateY(0);
  }
  50%{
    background:linear-gradient(135deg,#7f1d1d,#dc2626,#ef4444);
    box-shadow:0 0 0 7px rgba(239,68,68,.16),0 20px 44px rgba(239,68,68,.34), inset 0 1px 0 rgba(255,255,255,.20);
    transform:translateY(-1px);
  }
}

/* V5.2 — Stocks par article et permanence compacte */
.stock-section-compact-admin .stock-status-row,
.stock-section-compact-admin .stock-hero-grid,
.stock-section .stock-control-grid:empty{display:none!important}
.stock-section-compact-admin .stock-control-card{padding:24px 28px}
.stock-permanence-inline-state{
  display:inline-flex;
  align-items:center;
  gap:10px;
  width:fit-content;
  margin-bottom:14px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(17,24,39,.08);
  background:#fff;
  box-shadow:0 12px 30px rgba(17,24,39,.06);
  font-weight:950;
}
.stock-permanence-inline-state .status-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:#ef4444;
  box-shadow:0 0 0 5px rgba(239,68,68,.12);
}
.stock-permanence-inline-state.is-open .status-dot{
  background:#22c55e;
  box-shadow:0 0 0 5px rgba(34,197,94,.14);
}
.stock-permanence-inline-state small{color:var(--muted);font-weight:850}
.stock-section-compact-admin .stock-permanence-form{grid-template-columns:minmax(220px,1fr);max-width:100%}
.stock-section-compact-admin .stock-permanence-form .btn-permanence-toggle{width:100%}
.stock-filter-grid-clean{grid-template-columns:2fr 1fr 1fr!important}
.stock-threshold-stack{display:grid;gap:10px;min-width:160px}
.stock-threshold-form{
  padding:12px;
  border:1px solid rgba(17,24,39,.08);
  border-radius:18px;
  background:linear-gradient(135deg,#fff,#f8fafc);
}
.stock-threshold-form label{display:block;margin:0 0 6px;color:var(--muted);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.stock-inline-form-row{display:grid;grid-template-columns:minmax(70px,1fr) auto;gap:7px;align-items:center}
.stock-inline-form-row .input{min-height:38px;border-radius:13px;padding:8px 10px;font-size:13px}
.stock-add-article-panel{
  margin-top:16px;
  border:1px dashed rgba(141,179,0,.35);
  border-radius:22px;
  background:rgba(247,251,231,.62);
  padding:14px 16px;
}
.stock-add-article-panel summary{cursor:pointer;list-style:none;font-weight:950;color:var(--ink)}
.stock-add-article-panel summary::-webkit-details-marker{display:none}
.stock-add-article-summary:before{content:'+';display:inline-grid;place-items:center;width:24px;height:24px;margin-right:8px;border-radius:999px;background:var(--green);color:#111827;font-weight:950}
.stock-add-article-form{margin-top:16px}
.stock-add-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end}
.stock-checkbox-inline{display:flex;align-items:center;gap:9px;min-height:48px;padding:12px 14px;border:1px solid rgba(17,24,39,.08);border-radius:18px;background:#fff;font-weight:900;color:var(--ink)}
.stock-checkbox-inline input{width:18px;height:18px;accent-color:var(--green)}
.stock-category-table{min-width:1280px}
@media (max-width:1100px){.stock-add-grid{grid-template-columns:1fr 1fr}.stock-filter-grid-clean{grid-template-columns:1fr 1fr!important}}
@media (max-width:760px){.stock-add-grid,.stock-filter-grid-clean{grid-template-columns:1fr!important}.stock-inline-form-row{grid-template-columns:1fr}.stock-permanence-inline-state{width:100%;justify-content:center;flex-wrap:wrap}}


/* V5.4 — Préférences email salarié */
.profile-mail-prefs-card {
  max-width: 980px;
  margin-inline: auto;
}

.profile-mail-prefs-form {
  display: grid;
  gap: 18px;
}

.profile-mail-prefs-note {
  margin: 0;
}

.profile-mail-prefs-list {
  display: grid;
  gap: 12px;
}

.profile-mail-pref-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid rgba(166, 200, 15, .26);
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(247,251,231,.78));
  box-shadow: 0 14px 34px rgba(15, 23, 42, .055);
  cursor: pointer;
}

.profile-mail-pref-row input {
  width: 20px;
  height: 20px;
  margin-top: 2px;
  accent-color: var(--green);
  flex: 0 0 auto;
}

.profile-mail-pref-row span {
  display: grid;
  gap: 4px;
}

.profile-mail-pref-row strong {
  color: var(--ink);
  font-size: .98rem;
}

.profile-mail-pref-row small {
  color: var(--muted);
  line-height: 1.45;
  font-weight: 700;
}

@media (max-width: 720px) {
  .profile-mail-pref-row {
    padding: 14px;
    border-radius: 18px;
  }
}

/* V5.5 — Annulation des commandes de permanence en cours */
.stock-session-action-cell {
  width: 1%;
  white-space: nowrap;
  text-align: right;
}

.stock-cancel-sale-form {
  margin: 0;
  display: inline-flex;
  justify-content: flex-end;
}

.stock-cancel-sale-btn,
.btn-xs {
  min-height: 34px;
  padding: 8px 13px;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1;
}

.stock-session-table th:last-child,
.stock-session-table td:last-child {
  text-align: right;
}


/* V5.7 — Pages événements/documents : PDF ajusté à la largeur du document */
.da-pdf-only-section {
  padding-top: clamp(12px, 2vw, 28px);
  padding-bottom: clamp(24px, 4vw, 52px);
}

.da-pdf-only-container {
  width: min(100% - 20px, 1800px);
  max-width: 1800px;
}

.da-pdf-only-stack {
  display: grid;
  gap: clamp(18px, 2.4vw, 30px);
}

.da-pdf-only-card {
  overflow: hidden;
  width: 100%;
  min-height: clamp(760px, 84vh, 1280px);
  border: 1px solid rgba(166, 200, 15, .18);
  border-radius: clamp(16px, 2.2vw, 28px);
  background: #fff;
  box-shadow: 0 22px 56px rgba(15, 23, 42, .10);
}

.da-pdf-only-frame {
  display: block;
  width: 100%;
  min-width: 100%;
  height: clamp(760px, 84vh, 1280px);
  border: 0;
  background: #fff;
}

@media (min-width: 1600px) {
  .da-pdf-only-container {
    width: min(100% - 32px, 1900px);
    max-width: 1900px;
  }
}

@media (max-width: 720px) {
  .da-pdf-only-section {
    padding-top: 8px;
    padding-bottom: 24px;
  }

  .da-pdf-only-container {
    width: 100%;
    padding-left: 6px;
    padding-right: 6px;
  }

  .da-pdf-only-card,
  .da-pdf-only-frame {
    min-height: 76vh;
    height: 76vh;
    border-radius: 14px;
  }
}


/* ==========================================================
   CSE Sonéo — V5.8 avantages.php cards compactes
   Objectif : aligner la largeur et la densité des cards Avantages
   sur mon-espace.php, sans modifier la logique métier.
   ========================================================== */
body.page-avantages .benefits-stack{
  width:min(980px,100%) !important;
  max-width:980px !important;
  margin-inline:auto !important;
  gap:clamp(18px,2.3vw,28px) !important;
}
body.page-avantages .benefits-feature-card,
body.page-avantages .benefits-category-card{
  width:100% !important;
  max-width:980px !important;
  margin-inline:auto !important;
  padding:clamp(24px,2.6vw,32px) clamp(26px,3vw,40px) !important;
  min-height:0 !important;
}
body.page-avantages .benefits-codes-summary,
body.page-avantages .benefits-category-summary,
body.page-avantages .benefits-documents-summary{
  min-height:64px !important;
  align-items:center !important;
}
body.page-avantages .benefits-codes-summary strong,
body.page-avantages .benefits-category-summary strong,
body.page-avantages .benefits-documents-summary strong{
  font-size:22px !important;
  line-height:1.15 !important;
  letter-spacing:-.035em !important;
}
body.page-avantages .benefits-codes-summary small,
body.page-avantages .benefits-category-summary small,
body.page-avantages .benefits-documents-summary small{
  margin-top:0 !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1.35 !important;
}
@media(max-width:760px){
  body.page-avantages .benefits-stack{width:100% !important;max-width:none !important;}
  body.page-avantages .benefits-feature-card,
  body.page-avantages .benefits-category-card{padding:22px !important;border-radius:28px !important;}
}

/* ==========================================================
   CSE Sonéo — Harmonisation largeur cards V5.9
   Patch 2026-05-30
   Objectif : aligner jeux.php, mon-espace.php, avantages.php
   et le back-office admin sur la largeur de référence contact.php
   (Venir au CSE / Transmettre une demande), sans toucher à
   admin/permanence.php, admin/stocks.php, au header responsive
   ni au service worker.
   ========================================================== */
:root{
  --cse-reference-card-width:1180px;
  --cse-reference-card-gutter:var(--site-gutter);
}

/* Référence commune : même largeur que contact.php */
body.page-contact .layout-harmony-section > .container,
body.page-jeux .games-section > .container,
body.page-mon-espace main#contenu-principal > .section > .container,
body.page-avantages .benefits-section > .container,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) main#contenu-principal > .section > .container,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .layout-harmony-section > .container,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-doc-workspace-shell,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-benefits-content-shell,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-avantages-layout-shell,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-hub-layout,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-dashboard-layout{
  width:min(var(--cse-reference-card-width),calc(100% - var(--cse-reference-card-gutter))) !important;
  max-width:var(--cse-reference-card-width) !important;
  margin-inline:auto !important;
}

/* Les stacks et grilles héritent du shell commun sans s'étirer au-delà. */
body.page-jeux .games-hub-grid,
body.page-jeux .games-leaderboards,
body.page-jeux .games-leaderboard-filters,
body.page-jeux .games-leaderboard-grid,
body.page-mon-espace .profile-collapsible-stack,
body.page-avantages main#contenu-principal .benefits-stack,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .cse-admin-panel-grid,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .cse-collapsible-stack,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-user-panels,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .users-admin-list,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-benefits-layout,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-module-list{
  width:100% !important;
  max-width:100% !important;
  margin-inline:auto !important;
}

/* Cards principales côté salarié */
body.page-jeux .games-hub-card,
body.page-jeux .games-leaderboard-card,
body.page-mon-espace .profile-full-card,
body.page-mon-espace .card.form,
body.page-avantages main#contenu-principal .benefits-feature-card,
body.page-avantages main#contenu-principal .benefits-category-card,
body.page-avantages main#contenu-principal .da-pdf-card{
  width:100% !important;
  max-width:var(--cse-reference-card-width) !important;
  margin-inline:auto !important;
}

/* Cards principales admin, hors permanence/stocks */
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .card,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .da-admin-form,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .user-admin-card,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-module-panel,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-kpi-card,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-dashboard-hero-card,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-compact-card,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-validation-card,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-benefit-list-card,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-benefit-editor-details{
  max-width:var(--cse-reference-card-width) !important;
}

/* Grilles : garder une lecture premium sans forcer des cards gigantesques. */
body.page-jeux .games-hub-grid,
body.page-jeux .games-leaderboard-grid,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .cse-admin-panel-grid,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-benefits-layout,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-dashboard-topline,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-hub-card-grid{
  gap:clamp(18px,2.3vw,28px) !important;
}

body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-dashboard-topline{
  grid-template-columns:minmax(240px,.34fr) minmax(0,.66fr) !important;
}

body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-module-panel,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .da-admin-form,
body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .user-admin-card,
body.page-jeux .games-leaderboard-card,
body.page-mon-espace .profile-full-card,
body.page-mon-espace .card.form,
body.page-avantages main#contenu-principal .benefits-feature-card,
body.page-avantages main#contenu-principal .benefits-category-card{
  border-radius:clamp(28px,3vw,38px) !important;
}

/* Responsive : sur mobile, pleine largeur utile avec respiration identique à contact.php. */
@media (max-width:900px){
  body.page-jeux .games-section > .container,
  body.page-mon-espace main#contenu-principal > .section > .container,
  body.page-avantages .benefits-section > .container,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) main#contenu-principal > .section > .container,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .layout-harmony-section > .container,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-doc-workspace-shell,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-benefits-content-shell,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-avantages-layout-shell,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-hub-layout,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-dashboard-layout{
    width:calc(100% - 24px) !important;
    max-width:var(--cse-reference-card-width) !important;
  }

  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-dashboard-topline,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .cse-admin-panel-grid,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-benefits-layout{
    grid-template-columns:1fr !important;
  }
}

@media (max-width:560px){
  body.page-jeux .games-section > .container,
  body.page-mon-espace main#contenu-principal > .section > .container,
  body.page-avantages .benefits-section > .container,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) main#contenu-principal > .section > .container,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .layout-harmony-section > .container,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-doc-workspace-shell,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-benefits-content-shell,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-avantages-layout-shell,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-hub-layout,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-dashboard-layout{
    width:calc(100% - 18px) !important;
  }

  body.page-jeux .games-hub-card,
  body.page-jeux .games-leaderboard-card,
  body.page-mon-espace .profile-full-card,
  body.page-mon-espace .card.form,
  body.page-avantages main#contenu-principal .benefits-feature-card,
  body.page-avantages main#contenu-principal .benefits-category-card,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .card,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .da-admin-form,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .user-admin-card,
  body.admin-body:not(.page-admin-permanence):not(.page-admin-stocks) .admin-module-panel{
    border-radius:24px !important;
  }
}

