/* Kids' Island — Espace client : menu de verre et transitions « tuiles ».
   Chargée après portal_v3_ambitious.css : elle ne touche qu'à l'habillage.
   IDs, classes (.sidebar-link, .sidebar-section, .icon, .sidebar-badge), navPage()
   et le tiroir mobile existant sont conservés tels quels.
   Identité : vert profond, corail, sauge, soleil, ciel, lavande sur crème. */

#portal-dashboard{
  --kg-deep:#10362d;
  --kg-ink:#1A2E29;
  --kg-muted:rgba(16,54,45,.58);
  --kg-coral:#F47D60;
  --kg-sage:#7BAE8A;
  --kg-sun:#F6BF59;
  --kg-sky:#81BFE5;
  --kg-lav:#B9A4F5;
  --kg-glass:rgba(255,255,255,.52);
  --kg-glass-strong:rgba(255,255,255,.74);
  --kg-glass-edge:rgba(255,255,255,.82);
  --kg-blur:blur(22px) saturate(160%);
  --kg-blur-soft:blur(14px) saturate(140%);
  --kg-shadow:0 1px 0 rgba(255,255,255,.85) inset, 0 26px 60px -30px rgba(16,54,45,.38);
  --kg-ease:cubic-bezier(.16,1,.3,1);
  --kg-t:320ms;
}

/* ---------- Ambiance : le verre a besoin de couleurs à flouter ---------- */
#portal-dashboard.ki-glass-menu{
  background:
    radial-gradient(42vmax 34vmax at 4% 0%, rgba(129,191,229,.30), transparent 62%),
    radial-gradient(36vmax 30vmax at 96% 8%, rgba(244,125,96,.22), transparent 60%),
    radial-gradient(40vmax 34vmax at 60% 100%, rgba(123,174,138,.28), transparent 62%),
    radial-gradient(28vmax 24vmax at 28% 70%, rgba(185,164,245,.18), transparent 60%),
    radial-gradient(24vmax 20vmax at 80% 55%, rgba(246,191,89,.16), transparent 60%),
    linear-gradient(135deg,#FBF7F0 0%,#F4F1E8 50%,#EBF3EC 100%) !important;
}
#portal-dashboard.ki-glass-menu::before{ opacity:.55; filter:blur(30px); background:rgba(129,191,229,.28); }
#portal-dashboard.ki-glass-menu::after{ opacity:.5; filter:blur(30px); background:rgba(244,125,96,.2); }

/* ---------- Barre haute : verre léger ---------- */
#portal-dashboard.ki-glass-menu #topbar{
  background:var(--kg-glass) !important;
  -webkit-backdrop-filter:var(--kg-blur);
  backdrop-filter:var(--kg-blur);
  border-bottom:1px solid var(--kg-glass-edge) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 18px 44px -28px rgba(16,54,45,.35) !important;
}
#portal-dashboard.ki-glass-menu .topbar-user,
#portal-dashboard.ki-glass-menu .btn-logout,
#portal-dashboard.ki-glass-menu .topbar-icon-btn{
  background:rgba(255,255,255,.55) !important;
  border:1px solid rgba(255,255,255,.8) !important;
  -webkit-backdrop-filter:var(--kg-blur-soft);
  backdrop-filter:var(--kg-blur-soft);
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 12px 28px -16px rgba(16,54,45,.35);
}

/* ---------- Colonne de navigation : panneau de verre flottant ---------- */
#portal-dashboard.ki-glass-menu #layout{ padding:0 0 0 18px; }
#portal-dashboard.ki-glass-menu #sidebar-parent,
#portal-dashboard.ki-glass-menu #sidebar-equipe,
#portal-dashboard.ki-glass-menu #sidebar-admin{
  align-self:stretch;
  margin:18px 0 18px;
  width:272px !important;
  min-width:272px !important;
  padding:16px 12px 18px !important;
  gap:2px;
  border:1px solid var(--kg-glass-edge) !important;
  border-right:1px solid var(--kg-glass-edge) !important;
  border-radius:28px;
  background:linear-gradient(165deg,rgba(255,255,255,.74),rgba(255,255,255,.46)) !important;
  -webkit-backdrop-filter:var(--kg-blur);
  backdrop-filter:var(--kg-blur);
  box-shadow:var(--kg-shadow);
  color:var(--kg-ink);
  overflow-x:hidden;
  scrollbar-width:thin;
  scrollbar-color:rgba(16,54,45,.18) transparent;
}
/* Le ballon de la marque reste, en filigrane, dans le coin bas. */
#portal-dashboard.ki-glass-menu #sidebar-parent::before,
#portal-dashboard.ki-glass-menu #sidebar-equipe::before,
#portal-dashboard.ki-glass-menu #sidebar-admin::before{
  background:
    radial-gradient(circle at 12% 0%, rgba(244,125,96,.14), transparent 30%),
    url('balloons/balloon-1.png');
  background-repeat:no-repeat;
  background-size:auto,72px auto;
  background-position:center,92% 97%;
  opacity:.35;
  border-radius:inherit;
}

#portal-dashboard.ki-glass-menu .sidebar-section{
  color:var(--kg-muted) !important;
  font-size:.66rem !important;
  font-weight:800;
  letter-spacing:.18em !important;
  margin:16px 12px 6px !important;
}

/* ---------- Liens : tuiles de verre ---------- */
#portal-dashboard.ki-glass-menu .sidebar-link{
  position:relative;
  overflow:hidden;
  min-height:50px;
  margin:3px 0 !important;
  padding:8px 12px 8px 8px !important;
  gap:11px;
  border:1px solid rgba(255,255,255,.7) !important;
  border-radius:18px !important;
  background:rgba(255,255,255,.4) !important;
  color:var(--kg-deep) !important;
  font-size:.9rem;
  font-weight:600 !important;
  letter-spacing:0;
  text-align:left;
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
  transition:transform var(--kg-t) var(--kg-ease), background var(--kg-t) ease, border-color var(--kg-t) ease, box-shadow var(--kg-t) ease, color var(--kg-t) ease;
}
#portal-dashboard.ki-glass-menu .sidebar-link .icon{
  width:36px; height:36px;
  border-radius:12px;
  font-size:1.05rem;
  background:rgba(123,174,138,.22);
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset;
  transition:background var(--kg-t) ease, transform var(--kg-t) var(--kg-ease);
}
/* Famille de couleur par rubrique (les cinq couleurs des ballons). */
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="rapport"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="presences"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page="admin-site"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link.ki-pt-side .icon{ background:rgba(244,125,96,.22); }
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="messagerie"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="planning"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="events"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="borne"] .icon{ background:rgba(129,191,229,.26); }
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="document"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="avis"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="reviews"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="codes"] .icon{ background:rgba(246,191,89,.3); }
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="factures"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="link-child"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="parents"] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page*="demo"] .icon{ background:rgba(185,164,245,.28); }

#portal-dashboard.ki-glass-menu .sidebar-link:hover{
  background:rgba(255,255,255,.72) !important;
  border-color:#fff !important;
  color:var(--kg-deep) !important;
  transform:translateX(3px);
  box-shadow:0 1px 0 #fff inset, 0 14px 30px -18px rgba(16,54,45,.4);
}
#portal-dashboard.ki-glass-menu .sidebar-link:hover .icon{ transform:scale(1.06); }
#portal-dashboard.ki-glass-menu .sidebar-link:active{ transform:translateX(3px) scale(.985); }
#portal-dashboard.ki-glass-menu .sidebar-link:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px #fff, 0 0 0 5px var(--kg-coral);
}

#portal-dashboard.ki-glass-menu .sidebar-link.active,
#portal-dashboard.ki-glass-menu .sidebar-link[aria-current="page"]{
  background:linear-gradient(135deg,#1a4a3e,var(--kg-deep) 60%,#0a2b23) !important;
  border-color:rgba(255,255,255,.18) !important;
  color:#fff !important;
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset, 0 18px 36px -16px rgba(16,54,45,.6);
}
#portal-dashboard.ki-glass-menu .sidebar-link.active .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[aria-current="page"] .icon{
  background:rgba(255,255,255,.16) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.2) inset;
}
/* Point corail : repère de la page courante, lisible sans la couleur seule. */
#portal-dashboard.ki-glass-menu .sidebar-link.active::before,
#portal-dashboard.ki-glass-menu .sidebar-link[aria-current="page"]::before{
  content:"";
  position:absolute; left:-1px; top:50%;
  width:4px; height:22px; margin-top:-11px;
  border-radius:0 4px 4px 0;
  background:var(--kg-coral);
}

#portal-dashboard.ki-glass-menu .sidebar-badge{
  background:var(--kg-coral) !important;
  color:#fff !important;
  box-shadow:0 8px 18px -8px rgba(244,125,96,.7);
}

#portal-dashboard.ki-glass-menu .mobile-sidebar-logout{
  margin-top:14px !important;
  background:rgba(244,125,96,.1) !important;
  border-color:rgba(244,125,96,.35) !important;
  color:#b2452a !important;
}
#portal-dashboard.ki-glass-menu .ki-help-card{ margin-top:auto; }

/* ---------- Transition « tuile » : arrivée givrée puis reflet ---------- */
/* Appliquée par portal_glass_menu.js sur la colonne (ouverture) et sur le contenu de chaque page (changement). */
#portal-dashboard.ki-glass-menu .ki-tiles-pending > .sidebar-link,
#portal-dashboard.ki-glass-menu .ki-tiles-pending > .sidebar-section,
#portal-dashboard.ki-glass-menu .page.ki-tiles-pending > *{
  opacity:0;
  transform:translate3d(0,16px,0) scale(.965);
  filter:blur(12px);
}
#portal-dashboard.ki-glass-menu .ki-tiles-in > .sidebar-link,
#portal-dashboard.ki-glass-menu .ki-tiles-in > .sidebar-section,
#portal-dashboard.ki-glass-menu .page.ki-tiles-in > *{
  opacity:1;
  transform:none;
  filter:blur(0);
  will-change:transform,opacity,filter;
  transition:
    opacity .6s var(--kg-ease) calc(var(--i,0) * 45ms),
    transform .9s var(--kg-ease) calc(var(--i,0) * 45ms),
    filter .7s var(--kg-ease) calc(var(--i,0) * 45ms);
}
/* Reflet qui traverse chaque tuile du menu, dans ses coins arrondis. */
#portal-dashboard.ki-glass-menu .sidebar-link::after{
  content:"";
  position:absolute; inset:0; z-index:2;
  pointer-events:none;
  border-radius:inherit;
  opacity:0;
  background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.7) 50%,transparent 58%) no-repeat;
  background-size:280% 100%;
  background-position:120% 0;
}
#portal-dashboard.ki-glass-menu .ki-tiles-in > .sidebar-link::after{
  animation:kgSheen 1.1s cubic-bezier(.4,0,.2,1) calc(var(--i,0) * 45ms + 220ms) both;
}
@keyframes kgSheen{
  0%{ opacity:0; background-position:120% 0 }
  18%{ opacity:1 }
  100%{ opacity:0; background-position:-20% 0 }
}
/* L'ancienne animation de page est remplacée par la révélation des tuiles. */
#portal-dashboard.ki-glass-menu .page{ animation:none; }

/* ---------- Zone de contenu ---------- */
#portal-dashboard.ki-glass-menu #main{ padding:24px clamp(18px,3vw,40px) 48px !important; }

/* ---------- Mobile : tiroir de verre (reprend le tiroir de portal_v3) ---------- */
@media (max-width:980px){
  #portal-dashboard.ki-glass-menu #layout{ padding:0; }
  #portal-dashboard.ki-glass-menu #sidebar-parent,
  #portal-dashboard.ki-glass-menu #sidebar-equipe,
  #portal-dashboard.ki-glass-menu #sidebar-admin{
    margin:0;
    width:min(86vw,340px) !important;
    border:0 !important;
    border-right:1px solid var(--kg-glass-edge) !important;
    border-radius:0 30px 30px 0 !important;
    background:linear-gradient(165deg,rgba(251,246,238,.86),rgba(251,246,238,.72)) !important;
    -webkit-backdrop-filter:blur(26px) saturate(160%) !important;
    backdrop-filter:blur(26px) saturate(160%) !important;
    box-shadow:0 1px 0 rgba(255,255,255,.8) inset, 28px 0 70px -20px rgba(16,54,45,.35) !important;
  }
  #portal-dashboard.ki-glass-menu .sidebar-section{ color:var(--kg-muted) !important; }
  #portal-dashboard.ki-glass-menu .sidebar-link{
    padding:0 10px 0 7px !important;
    border-radius:16px !important;
  }
  #portal-dashboard.ki-glass-menu .sidebar-link .icon{ width:32px !important; height:32px !important; margin-right:0 !important; }
  #portal-dashboard.ki-glass-menu .mobile-sidebar-logout{
    background:rgba(244,125,96,.12) !important;
    border:1px solid rgba(244,125,96,.4) !important;
    color:#b2452a !important;
  }
  #portal-dashboard.ki-glass-menu .ki-mobile-nav-toggle{
    border:1px solid var(--kg-glass-edge) !important;
    background:rgba(255,255,255,.7) !important;
    -webkit-backdrop-filter:var(--kg-blur-soft);
    backdrop-filter:var(--kg-blur-soft);
    box-shadow:0 1px 0 #fff inset, 0 14px 30px -14px rgba(16,54,45,.45) !important;
    transition:background .2s ease, color .2s ease, transform .2s var(--kg-ease);
  }
  #portal-dashboard.ki-glass-menu .ki-mobile-nav-toggle:active{ transform:scale(.94); }
  #portal-dashboard.ki-glass-menu.ki-sidebar-open .ki-mobile-nav-toggle{ background:var(--kg-deep) !important; color:#fff !important; }
  #portal-dashboard.ki-glass-menu .ki-mobile-backdrop{
    background:rgba(16,54,45,.28) !important;
    -webkit-backdrop-filter:blur(6px) !important;
    backdrop-filter:blur(6px) !important;
  }
}
@media (max-width:980px){
  /* Un peu moins de flou en défilement sur téléphone. */
  #portal-dashboard.ki-glass-menu #topbar{ -webkit-backdrop-filter:var(--kg-blur-soft); backdrop-filter:var(--kg-blur-soft); }
}

/* ---------- Mode sombre du portail ---------- */
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu{
  background:
    radial-gradient(42vmax 34vmax at 4% 0%, rgba(129,191,229,.14), transparent 62%),
    radial-gradient(36vmax 30vmax at 96% 8%, rgba(244,125,96,.12), transparent 60%),
    radial-gradient(40vmax 34vmax at 60% 100%, rgba(123,174,138,.16), transparent 62%),
    #15181a !important;
}
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #topbar{
  background:rgba(23,28,26,.6) !important;
  border-bottom-color:rgba(255,255,255,.1) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset !important;
}
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .topbar-user,
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .btn-logout,
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .topbar-icon-btn{
  background:rgba(255,255,255,.07) !important;
  border-color:rgba(255,255,255,.12) !important;
  color:#e6e6e3 !important;
}
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #sidebar-parent,
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #sidebar-equipe,
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #sidebar-admin{
  background:linear-gradient(165deg,rgba(28,34,31,.72),rgba(20,24,22,.6)) !important;
  border-color:rgba(255,255,255,.12) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 26px 60px -30px rgba(0,0,0,.7);
}
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .sidebar-section{ color:rgba(230,230,227,.5) !important; }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .sidebar-link{
  background:rgba(255,255,255,.06) !important;
  border-color:rgba(255,255,255,.1) !important;
  color:#e6e6e3 !important;
  box-shadow:none;
}
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .sidebar-link:hover{ background:rgba(255,255,255,.12) !important; border-color:rgba(255,255,255,.18) !important; }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .sidebar-link.active,
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .sidebar-link[aria-current="page"]{
  background:linear-gradient(135deg,var(--kg-sage),#5f9671) !important;
  border-color:rgba(255,255,255,.2) !important;
  color:#0c2119 !important;
}
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .ki-mobile-nav-toggle{ background:rgba(28,34,31,.8) !important; color:#e6e6e3 !important; border-color:rgba(255,255,255,.12) !important; }

/* ---------- Mode calme ---------- */
@media (prefers-reduced-motion:reduce){
  #portal-dashboard.ki-glass-menu .ki-tiles-pending > .sidebar-link,
  #portal-dashboard.ki-glass-menu .ki-tiles-pending > .sidebar-section,
  #portal-dashboard.ki-glass-menu .page.ki-tiles-pending > *,
  #portal-dashboard.ki-glass-menu .ki-tiles-in > .sidebar-link,
  #portal-dashboard.ki-glass-menu .ki-tiles-in > .sidebar-section,
  #portal-dashboard.ki-glass-menu .page.ki-tiles-in > *{ opacity:1; transform:none; filter:none; transition:none; will-change:auto; }
  #portal-dashboard.ki-glass-menu .sidebar-link::after{ display:none; }
  #portal-dashboard.ki-glass-menu .sidebar-link,
  #portal-dashboard.ki-glass-menu .sidebar-link .icon{ transition:none; }
  #portal-dashboard.ki-glass-menu .sidebar-link:hover{ transform:none; }
}

/* =====================================================================
   v2 — Intuitivité : repère de rubrique, fil d'Ariane mobile, dock de
   raccourcis, squelettes de chargement, focus après navigation.
   ===================================================================== */

/* Repère de rubrique au-dessus du titre de page (« Documents », « Communication »…) */
#portal-dashboard.ki-glass-menu .kg-kicker{
  display:inline-flex; align-items:center; gap:8px;
  margin:0 0 10px;
  padding:5px 12px 5px 8px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:rgba(255,255,255,.88);
  font-size:.66rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
}
#portal-dashboard.ki-glass-menu .kg-kicker::before{
  content:""; width:8px; height:8px; border-radius:50%; background:var(--kg-coral); box-shadow:0 0 0 3px rgba(244,125,96,.25);
}
#portal-dashboard.ki-glass-menu .page-header h2:focus{ outline:none; }
#portal-dashboard.ki-glass-menu .page-header h2:focus-visible{ outline:none; text-decoration:underline; text-decoration-color:var(--kg-coral); text-underline-offset:6px; }

/* Fil d'Ariane dans la barre haute (téléphone : le titre de page remplace « Espace Parents ») */
#portal-dashboard.ki-glass-menu .kg-crumb{
  display:none; min-width:0; flex:1 1 auto;
  margin:0 8px;
  color:var(--kg-deep);
  font-weight:800; font-size:.95rem; letter-spacing:-.01em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
#portal-dashboard.ki-glass-menu .kg-crumb small{
  display:block; margin-bottom:1px;
  color:var(--kg-muted); font-size:.62rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
}

/* Squelettes de chargement à la place de « Chargement… » */
#portal-dashboard.ki-glass-menu .kg-skel{
  position:relative; overflow:hidden;
  min-height:76px;
  color:transparent !important;
  border-radius:18px;
  background:
    linear-gradient(rgba(16,54,45,.08),rgba(16,54,45,.08)) 16px 16px / 46% 12px no-repeat,
    linear-gradient(rgba(16,54,45,.06),rgba(16,54,45,.06)) 16px 38px / 78% 10px no-repeat,
    linear-gradient(rgba(16,54,45,.06),rgba(16,54,45,.06)) 16px 56px / 62% 10px no-repeat;
}
#portal-dashboard.ki-glass-menu .kg-skel::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%) no-repeat;
  background-size:220% 100%;
  animation:kgShimmer 1.4s ease-in-out infinite;
}
@keyframes kgShimmer{ from{ background-position:120% 0 } to{ background-position:-120% 0 } }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .kg-skel{
  background:
    linear-gradient(rgba(255,255,255,.1),rgba(255,255,255,.1)) 16px 16px / 46% 12px no-repeat,
    linear-gradient(rgba(255,255,255,.07),rgba(255,255,255,.07)) 16px 38px / 78% 10px no-repeat,
    linear-gradient(rgba(255,255,255,.07),rgba(255,255,255,.07)) 16px 56px / 62% 10px no-repeat;
}
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .kg-skel::after{ background-image:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.12) 50%,transparent 70%); }

/* Dock de raccourcis (téléphone et tablette) */
#portal-dashboard.ki-glass-menu .kg-dock{ display:none; }
@media (max-width:980px){
  #portal-dashboard.ki-glass-menu .kg-crumb{ display:block; }
  #portal-dashboard.ki-glass-menu .topbar-logo{ flex:0 0 auto; min-width:0 !important; }
  #portal-dashboard.ki-glass-menu .topbar-logo img{ max-height:36px !important; }

  #portal-dashboard.ki-glass-menu .kg-dock{
    position:fixed; left:10px; right:10px;
    bottom:calc(10px + env(safe-area-inset-bottom,0px));
    z-index:9990;
    display:flex; gap:2px; justify-content:space-around;
    padding:6px;
    border:1px solid var(--kg-glass-edge);
    border-radius:24px;
    background:linear-gradient(165deg,rgba(255,255,255,.78),rgba(251,246,238,.66));
    -webkit-backdrop-filter:blur(22px) saturate(160%);
    backdrop-filter:blur(22px) saturate(160%);
    box-shadow:0 1px 0 #fff inset, 0 22px 50px -18px rgba(16,54,45,.45);
    transition:transform .32s var(--kg-ease), opacity .24s ease;
  }
  #portal-dashboard.ki-glass-menu.ki-sidebar-open .kg-dock,
  #portal-dashboard.ki-glass-menu.kg-dock-hidden .kg-dock{ transform:translateY(calc(100% + 24px)); opacity:0; pointer-events:none; }
  #portal-dashboard.ki-glass-menu .kg-dock-item{
    position:relative;
    flex:1 1 0; min-width:0; min-height:54px;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
    padding:6px 4px;
    border:0; border-radius:18px;
    background:none;
    color:var(--kg-muted);
    font-family:inherit; font-size:.66rem; font-weight:700; line-height:1.1;
    cursor:pointer;
    transition:background .18s ease, color .18s ease, transform .18s var(--kg-ease);
  }
  #portal-dashboard.ki-glass-menu .kg-dock-item span:first-child{
    width:30px; height:30px; display:grid; place-items:center;
    border-radius:11px; font-size:1rem;
    background:rgba(255,255,255,.55);
    box-shadow:0 1px 0 #fff inset;
    transition:background .18s ease, transform .18s var(--kg-ease);
  }
  #portal-dashboard.ki-glass-menu .kg-dock-item span:nth-child(2){ max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #portal-dashboard.ki-glass-menu .kg-dock-item:active span:first-child{ transform:scale(.92); }
  #portal-dashboard.ki-glass-menu .kg-dock-item[aria-current="page"]{ color:var(--kg-deep); }
  #portal-dashboard.ki-glass-menu .kg-dock-item[aria-current="page"] span:first-child{ background:var(--kg-deep); color:#fff; box-shadow:0 10px 22px -10px rgba(16,54,45,.6); }
  #portal-dashboard.ki-glass-menu .kg-dock-item:focus-visible{ outline:none; box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--kg-coral); }
  #portal-dashboard.ki-glass-menu .kg-dock-badge{
    position:absolute; top:2px; right:calc(50% - 22px);
    min-width:17px; height:17px; padding:0 5px;
    border-radius:9px; background:var(--kg-coral); color:#fff;
    font-size:.6rem; font-weight:800; line-height:17px; text-align:center;
    box-shadow:0 6px 14px -6px rgba(244,125,96,.8);
  }
  /* Le contenu ne passe pas sous le dock */
  #portal-dashboard.ki-glass-menu #main{ padding-bottom:calc(96px + env(safe-area-inset-bottom,0px)) !important; }
  #portal-dashboard.ki-glass-menu.kg-dock-hidden #main{ padding-bottom:34px !important; }
  /* Le bouton ☰ flottant disparaît : le dock a son propre bouton Menu (il revient pour fermer le tiroir) */
  #portal-dashboard.ki-glass-menu .ki-mobile-nav-toggle{ display:none !important; }
  #portal-dashboard.ki-glass-menu.ki-sidebar-open .ki-mobile-nav-toggle{ display:grid !important; }
  #portal-dashboard.ki-glass-menu #topbar{ padding-left:14px !important; }
  html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .kg-dock{ background:linear-gradient(165deg,rgba(28,34,31,.82),rgba(20,24,22,.7)); border-color:rgba(255,255,255,.12); }
  html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .kg-dock-item{ color:rgba(230,230,227,.6); }
  html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .kg-dock-item span:first-child{ background:rgba(255,255,255,.08); box-shadow:none; }
  html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .kg-dock-item[aria-current="page"]{ color:#fff; }
  html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .kg-dock-item[aria-current="page"] span:first-child{ background:var(--kg-sage); color:#0c2119; }
  html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .kg-crumb{ color:#e6e6e3; }
}
html.ki-borne-mode #portal-dashboard .kg-dock,
html.ki-borne-mode #portal-dashboard .kg-crumb{ display:none !important; }

/* Messagerie (téléphone) : la zone de saisie reste au-dessus du dock */
@media (max-width:768px){
  #portal-dashboard.ki-glass-menu #page-messagerie-parent.active,
  #portal-dashboard.ki-glass-menu #page-messagerie-admin.active{
    height:calc(100dvh - 112px - 86px - env(safe-area-inset-bottom,0px)) !important;
  }
  #portal-dashboard.ki-glass-menu.kg-dock-hidden #page-messagerie-parent.active,
  #portal-dashboard.ki-glass-menu.kg-dock-hidden #page-messagerie-admin.active{
    height:calc(100dvh - 112px) !important;
  }
}

/* =====================================================================
   v3 — Menu plein écran façon écran d'accueil (bouton Menu du dock)
   ===================================================================== */
.kg-sheet{
  position:fixed; inset:0; z-index:10040;
  display:flex; flex-direction:column;
  padding:calc(14px + env(safe-area-inset-top,0px)) 16px calc(16px + env(safe-area-inset-bottom,0px));
  background:
    radial-gradient(60vmax 50vmax at 10% 0%, rgba(129,191,229,.22), transparent 60%),
    radial-gradient(50vmax 40vmax at 100% 100%, rgba(244,125,96,.2), transparent 60%),
    rgba(8,37,31,.66);
  -webkit-backdrop-filter:blur(30px) saturate(160%);
  backdrop-filter:blur(30px) saturate(160%);
  color:#fff;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .28s ease, visibility 0s linear .28s;
}
.kg-sheet.is-open{ opacity:1; visibility:visible; pointer-events:auto; transition:opacity .28s ease, visibility 0s; }
.kg-sheet-head{ display:flex; align-items:center; gap:12px; margin:4px 2px 22px; }
.kg-sheet-av{
  width:46px; height:46px; border-radius:50%; flex:0 0 auto;
  display:grid; place-items:center; overflow:hidden;
  background:linear-gradient(135deg,var(--kg-emerald,#1f6b57),var(--kg-sage));
  font-weight:800; font-size:1.1rem; color:#fff;
  box-shadow:0 1px 0 rgba(255,255,255,.3) inset, 0 10px 24px -10px rgba(0,0,0,.6);
}
.kg-sheet-av img{ width:100%; height:100%; object-fit:cover; }
.kg-sheet-head strong{ display:block; font-size:1.05rem; letter-spacing:-.01em; }
.kg-sheet-head small{ display:block; color:rgba(255,255,255,.66); font-size:.78rem; margin-top:2px; }
.kg-sheet-close{
  margin-left:auto; width:44px; height:44px; flex:0 0 auto;
  border:1px solid rgba(255,255,255,.2); border-radius:50%;
  background:rgba(255,255,255,.12); color:#fff;
  font-size:1.4rem; line-height:1; cursor:pointer;
  display:grid; place-items:center;
}
.kg-sheet-close:focus-visible,
.kg-app:focus-visible,
.kg-sheet-foot button:focus-visible{ outline:none; box-shadow:0 0 0 2px rgba(8,37,31,.8), 0 0 0 5px var(--kg-coral,#F47D60); }
.kg-sheet-grid{
  flex:1 1 auto; min-height:0; overflow:auto; overscroll-behavior:contain;
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px 8px; align-content:start;
  padding:6px 0 10px;
}
@media (min-width:600px){ .kg-sheet-grid{ grid-template-columns:repeat(6,minmax(0,1fr)); max-width:720px; margin:0 auto; width:100%; } }
.kg-app{
  --rgb:123,174,138;
  position:relative;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:0; border:0; background:none;
  color:#fff; font-family:inherit; font-size:.7rem; font-weight:600; line-height:1.15; text-align:center;
  cursor:pointer;
}
.kg-app[data-family="coral"]{ --rgb:244,125,96; }
.kg-app[data-family="sky"]{ --rgb:129,191,229; }
.kg-app[data-family="sun"]{ --rgb:246,191,89; }
.kg-app[data-family="lav"]{ --rgb:185,164,245; }
.kg-app-ic{
  width:64px; height:64px; border-radius:19px;
  display:grid; place-items:center;
  font-size:1.75rem;
  background:linear-gradient(145deg,rgba(var(--rgb),.98),rgba(var(--rgb),.72));
  box-shadow:0 1px 0 rgba(255,255,255,.55) inset, 0 -1px 0 rgba(0,0,0,.08) inset, 0 14px 28px -14px rgba(0,0,0,.6);
  transition:transform .2s var(--kg-ease,cubic-bezier(.16,1,.3,1));
}
.kg-app:active .kg-app-ic{ transform:scale(.9); }
.kg-app[aria-current="page"] .kg-app-ic{ box-shadow:0 0 0 3px rgba(8,37,31,.9), 0 0 0 5px #fff, 0 14px 28px -14px rgba(0,0,0,.6); }
.kg-app span:last-child{ max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-shadow:0 1px 8px rgba(0,0,0,.35); }
.kg-app-badge{
  position:absolute; top:-6px; right:calc(50% - 40px);
  min-width:20px; height:20px; padding:0 6px;
  border-radius:10px; background:#ff3b30; color:#fff;
  font-size:.66rem; font-weight:800; line-height:20px; text-align:center;
  box-shadow:0 0 0 2px rgba(8,37,31,.7);
}
.kg-sheet-foot{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:14px; }
.kg-sheet-foot button{
  min-height:46px; padding:0 20px;
  border:1px solid rgba(255,255,255,.22); border-radius:999px;
  background:rgba(255,255,255,.12); color:#fff;
  font-family:inherit; font-size:.88rem; font-weight:700; cursor:pointer;
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
}
.kg-sheet-foot button.kg-sheet-logout{ background:rgba(244,125,96,.28); border-color:rgba(244,125,96,.5); }
.kg-sheet-foot button{ display:inline-flex; align-items:center; gap:8px; }
.kg-sheet-foot button svg{ width:18px; height:18px; flex:0 0 auto; }
/* Commutateur clair / sombre dans la barre haute */
#portal-dashboard.ki-glass-menu #btnTopbarSettings[aria-pressed="true"]{ background:var(--kg-deep) !important; color:#fff !important; }
#portal-dashboard.ki-glass-menu #btnTopbarSettings[aria-pressed="true"] svg{ color:#F6BF59; }
/* Entrée des icônes : même tuile givrée que le reste du portail */
.kg-sheet-grid.ki-tiles-pending > .kg-app{ opacity:0; transform:translate3d(0,18px,0) scale(.9); filter:blur(10px); }
.kg-sheet-grid.ki-tiles-in > .kg-app{
  opacity:1; transform:none; filter:blur(0);
  transition:opacity .5s var(--kg-ease,cubic-bezier(.16,1,.3,1)) calc(var(--i,0) * 35ms), transform .7s var(--kg-ease,cubic-bezier(.16,1,.3,1)) calc(var(--i,0) * 35ms), filter .55s ease calc(var(--i,0) * 35ms);
}
html.portal-open body.dark-mode .kg-sheet{ background:rgba(10,12,11,.78); }
@media (prefers-reduced-motion:reduce){
  .kg-sheet, .kg-app-ic{ transition:none; }
  .kg-sheet-grid.ki-tiles-pending > .kg-app, .kg-sheet-grid.ki-tiles-in > .kg-app{ opacity:1; transform:none; filter:none; transition:none; }
}

/* =====================================================================
   v3 — Paramètres façon « Réglages » : contrôle segmenté, groupes
   arrondis, lignes séparées, interrupteurs, champs à fond gris.
   ===================================================================== */
#portal-dashboard.ki-glass-menu #page-settings .docs-tabs{
  display:flex; gap:2px; width:100%; max-width:560px;
  padding:4px;
  border:1px solid rgba(255,255,255,.7) !important;
  border-radius:14px !important;
  background:rgba(16,54,45,.08) !important;
  box-shadow:none !important;
}
#portal-dashboard.ki-glass-menu #page-settings .docs-tab{
  flex:1 1 0; min-width:0; min-height:38px;
  padding:8px 6px !important;
  border:0 !important; border-radius:11px !important;
  background:transparent !important;
  color:var(--kg-muted) !important;
  font-size:.8rem !important; font-weight:700 !important;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  transition:background .2s ease, color .2s ease, box-shadow .2s ease;
}
#portal-dashboard.ki-glass-menu #page-settings .docs-tab.active{
  background:#fff !important;
  color:var(--kg-deep) !important;
  box-shadow:0 1px 0 #fff inset, 0 6px 16px -8px rgba(16,54,45,.45) !important;
}
#portal-dashboard.ki-glass-menu #page-settings .settings-pane{ max-width:720px; }
#portal-dashboard.ki-glass-menu #page-settings .settings-pane .card{
  padding:4px 0 14px !important;
  margin-bottom:14px !important;
  border-radius:22px !important;
  background:rgba(255,255,255,.9) !important;
  border:1px solid rgba(255,255,255,.9) !important;
  box-shadow:0 1px 0 #fff inset, 0 14px 34px -24px rgba(16,54,45,.4) !important;
  transform:none !important;
}
#portal-dashboard.ki-glass-menu #page-settings .settings-pane .card:hover{ transform:none !important; }
/* Titre de groupe : petites capitales grises, comme un en-tête de section */
#portal-dashboard.ki-glass-menu #page-settings .settings-pane .card h3{
  margin:0 !important; padding:14px 18px 8px !important;
  font-family:'DM Sans',system-ui,sans-serif !important;
  font-size:.68rem !important; font-weight:800 !important;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--kg-muted) !important;
}
#portal-dashboard.ki-glass-menu #page-settings .settings-pane .card h3 span{ vertical-align:middle; letter-spacing:0; text-transform:none; }
#portal-dashboard.ki-glass-menu #page-settings .settings-pane .card > :not(h3):not(.settings-toggle-row):not(.profile-photo-section){ margin-left:18px; margin-right:18px; }
#portal-dashboard.ki-glass-menu #page-settings .settings-pane .card > p{ margin-top:0 !important; }
#portal-dashboard.ki-glass-menu #page-settings .settings-pane .card > hr{ display:none; }
#portal-dashboard.ki-glass-menu #page-settings .kig-settings{ display:flex; align-items:center; gap:14px; padding:14px 18px !important; }
#portal-dashboard.ki-glass-menu #page-settings .kig-settings > div{ flex:1 1 auto; min-width:0; }
#portal-dashboard.ki-glass-menu #page-settings .kig-settings h3{ padding:0 0 4px !important; }
#portal-dashboard.ki-glass-menu #page-settings .kig-settings > :not(h3){ margin-left:0; margin-right:0; }
/* Lignes avec interrupteur */
#portal-dashboard.ki-glass-menu #page-settings .settings-toggle-row{
  display:flex; align-items:center; gap:14px;
  padding:13px 18px !important; margin:0 !important;
  border-bottom:1px solid rgba(16,54,45,.08) !important;
}
#portal-dashboard.ki-glass-menu #page-settings .settings-toggle-row:last-of-type{ border-bottom:0 !important; }
#portal-dashboard.ki-glass-menu #page-settings .settings-toggle-row > div:first-child > div:first-child{ font-weight:600; color:var(--kg-ink); font-size:.95rem; }
#portal-dashboard.ki-glass-menu #page-settings .settings-toggle-row > div:first-child > div:last-child{ color:var(--kg-muted) !important; font-size:.78rem !important; margin-top:2px; }
#portal-dashboard.ki-glass-menu #page-settings .ki-switch-slider{ background:rgba(16,54,45,.18); }
#portal-dashboard.ki-glass-menu #page-settings .ki-switch input:checked + .ki-switch-slider{ background:#34c759; }
/* Photo de profil : avatar centré, façon compte */
#portal-dashboard.ki-glass-menu #page-settings .profile-photo-section{
  display:flex; align-items:center; gap:16px;
  padding:8px 18px 16px !important; margin:0 !important;
  border-bottom:1px solid rgba(16,54,45,.08);
}
#portal-dashboard.ki-glass-menu #page-settings .profile-photo-preview{
  width:72px !important; height:72px !important; border-radius:50% !important;
  box-shadow:0 0 0 3px #fff, 0 0 0 5px rgba(123,174,138,.5), 0 12px 24px -12px rgba(16,54,45,.5);
}
/* Champs : fond gris doux, sans bordure dure */
#portal-dashboard.ki-glass-menu #page-settings input[type="text"],
#portal-dashboard.ki-glass-menu #page-settings input[type="email"],
#portal-dashboard.ki-glass-menu #page-settings input[type="password"],
#portal-dashboard.ki-glass-menu #page-settings select{
  background:rgba(16,54,45,.06) !important;
  border:1.5px solid transparent !important;
  border-radius:12px !important;
  color:var(--kg-ink);
  transition:border-color .2s ease, background .2s ease;
}
#portal-dashboard.ki-glass-menu #page-settings input:focus,
#portal-dashboard.ki-glass-menu #page-settings select:focus{ outline:none; border-color:var(--kg-sage) !important; background:#fff !important; }
#portal-dashboard.ki-glass-menu #page-settings input[readonly]{ color:var(--kg-muted) !important; }
#portal-dashboard.ki-glass-menu #page-settings label[style]{ color:var(--kg-muted) !important; text-transform:uppercase; letter-spacing:.08em; font-size:.68rem !important; }
#portal-dashboard.ki-glass-menu #page-settings .auth-btn-primary,
#portal-dashboard.ki-glass-menu #page-settings .admin-quick-btn{ border-radius:999px !important; }
#portal-dashboard.ki-glass-menu #page-settings .theme-selector{ display:flex; gap:10px; flex-wrap:wrap; }
#portal-dashboard.ki-glass-menu #page-settings .theme-option{ flex:1 1 120px; }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #page-settings .settings-pane .card{ background:rgba(28,34,31,.9) !important; border-color:rgba(255,255,255,.1) !important; }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #page-settings .docs-tabs{ background:rgba(255,255,255,.08) !important; border-color:rgba(255,255,255,.1) !important; }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #page-settings .docs-tab.active{ background:rgba(255,255,255,.14) !important; color:#fff !important; }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #page-settings input,
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #page-settings select{ background:rgba(255,255,255,.07) !important; color:#e6e6e3; }

/* =====================================================================
   v3 — Connexion : fenêtre de verre arrondie posée sur l'arrière-plan
   ===================================================================== */
#portal-app-shell .login-right{
  background:linear-gradient(165deg,rgba(251,246,239,.82),rgba(251,246,239,.66)) !important;
  -webkit-backdrop-filter:blur(26px) saturate(150%);
  backdrop-filter:blur(26px) saturate(150%);
  border:1px solid rgba(255,255,255,.78) !important;
  border-radius:32px !important;
  box-shadow:0 1px 0 #fff inset, 0 44px 90px -34px rgba(13,31,26,.6) !important;
}
@media (max-width:900px){
  /* L'arrière-plan couvre tout l'écran de connexion ; la carte de verre flotte dessus. */
  /* Même spécificité que la règle crème d'origine (#portal-app-shell.show), chargée après : la photo couvre tout l'écran. */
  #portal-app-shell.show,
  #portal-app-shell[style*="display: flex"],
  #portal-app-shell[style*="display:flex"]{
    background:
      linear-gradient(180deg, rgba(5,57,45,.62), rgba(5,57,45,.22) 42%, rgba(5,57,45,.48)),
      url('login-pack/backgrounds/background-login-mobile.webp') center top / cover no-repeat !important;
  }
  #portal-app-shell .login-left{ background:transparent !important; flex:0 0 auto !important; height:auto !important; max-height:none !important; min-height:0 !important; overflow:visible !important; padding-bottom:26px !important; }
  #portal-app-shell .login-left::before{ display:none !important; }
  #portal-app-shell .login-right{
    position:relative !important;
    width:calc(100% - 24px) !important;
    margin:0 12px calc(18px + env(safe-area-inset-bottom,0px)) !important;
    border-radius:28px !important;
    box-shadow:0 1px 0 #fff inset, 0 30px 70px -30px rgba(13,31,26,.7) !important;
  }
}

/* =====================================================================
   v4 — Icônes SVG harmonisées
   ===================================================================== */
#portal-dashboard.ki-glass-menu .sidebar-link .icon svg{ width:19px; height:19px; color:var(--kg-deep); }
#portal-dashboard.ki-glass-menu .sidebar-link.active .icon svg,
#portal-dashboard.ki-glass-menu .sidebar-link[aria-current="page"] .icon svg{ color:#fff; }
#portal-dashboard.ki-glass-menu .mobile-sidebar-logout .icon svg{ color:#b2452a; }
#portal-dashboard.ki-glass-menu .topbar-icon-btn svg{ width:19px; height:19px; display:block; margin:auto; color:var(--kg-deep); }
#portal-dashboard.ki-glass-menu .ki-rf-ico{ display:inline-flex; }
#portal-dashboard.ki-glass-menu .kg-dock-item span:first-child svg{ width:19px; height:19px; }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .sidebar-link .icon svg,
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .topbar-icon-btn svg{ color:#e6e6e3; }

/* Menu : tuile de verre arrondie posée sur le fond assombri (plus de plein écran) */
.kg-sheet{
  padding:0;
  display:flex; flex-direction:row; align-items:flex-end; justify-content:center;
  background:rgba(8,37,31,.34);
  -webkit-backdrop-filter:blur(10px) saturate(130%);
  backdrop-filter:blur(10px) saturate(130%);
}
.kg-sheet-card{
  position:relative;
  width:min(100% - 20px, 560px);
  max-height:calc(100dvh - 24px - env(safe-area-inset-bottom,0px));
  margin:0 0 calc(12px + env(safe-area-inset-bottom,0px));
  display:flex; flex-direction:column;
  padding:16px 16px calc(14px + env(safe-area-inset-bottom,0px) * 0);
  border:1px solid rgba(255,255,255,.24);
  border-radius:32px;
  background:
    radial-gradient(60% 50% at 10% 0%, rgba(129,191,229,.24), transparent 60%),
    radial-gradient(50% 40% at 100% 100%, rgba(244,125,96,.22), transparent 60%),
    rgba(10,44,37,.64);
  -webkit-backdrop-filter:blur(30px) saturate(170%);
  backdrop-filter:blur(30px) saturate(170%);
  box-shadow:0 1px 0 rgba(255,255,255,.22) inset, 0 40px 90px -30px rgba(0,0,0,.65);
  color:#fff;
  transform:translate3d(0,28px,0) scale(.97);
  filter:blur(12px);
  transition:transform .42s var(--kg-ease,cubic-bezier(.16,1,.3,1)), filter .36s ease;
}
.kg-sheet.is-open .kg-sheet-card{ transform:none; filter:blur(0); }
@media (min-width:600px){ .kg-sheet{ align-items:center; } .kg-sheet-card{ margin:0; border-radius:34px; padding:20px; } }
.kg-sheet-head{ margin:2px 2px 14px; }
.kg-sheet-foot{ margin-top:12px; }

/* v5 — Icônes rangées par rubrique, une couleur par rubrique, glyphes larges (qualité app). */
.kg-sheet-grid{ display:block; padding:0 0 6px; }
.kg-sheet-group{ --rgb:123,174,138; margin:0 0 6px; padding:10px 6px 12px; border-radius:22px; }
.kg-sheet-group + .kg-sheet-group{ border-top:1px solid rgba(255,255,255,.1); }
.kg-sheet-group[data-family="sky"]{ --rgb:129,191,229; }
.kg-sheet-group[data-family="sun"]{ --rgb:246,191,89; }
.kg-sheet-group[data-family="lav"]{ --rgb:185,164,245; }
.kg-sheet-group[data-family="coral"]{ --rgb:244,125,96; }
.kg-sheet-group-title{
  display:flex; align-items:center; gap:8px;
  margin:0 6px 12px;
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:.66rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.72);
}
.kg-sheet-group-title::before{ content:""; width:8px; height:8px; border-radius:50%; background:rgb(var(--rgb)); box-shadow:0 0 0 3px rgba(var(--rgb),.25); }
.kg-sheet-apps{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px 6px; }
@media (min-width:600px){ .kg-sheet-apps{ grid-template-columns:repeat(5,minmax(0,1fr)); } }
.kg-app{ --rgb:inherit; gap:7px; font-size:.72rem; font-weight:600; letter-spacing:-.005em; }
.kg-app-ic{
  position:relative; overflow:hidden;
  width:66px; height:66px; border-radius:21px;
  background:
    radial-gradient(120% 90% at 20% 0%, rgba(255,255,255,.34), transparent 55%),
    linear-gradient(160deg, rgba(var(--rgb),1) 0%, rgba(var(--rgb),.86) 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,.55) inset,
    0 -2px 0 rgba(0,0,0,.08) inset,
    0 10px 22px -10px rgba(var(--rgb),.9),
    0 18px 32px -18px rgba(0,0,0,.5);
}
.kg-app-ic::after{ content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); }
.kg-app-ic svg{ width:34px; height:34px; stroke-width:2; color:#fff; filter:drop-shadow(0 2px 3px rgba(0,0,0,.22)); }
.kg-app span:last-child{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; white-space:normal; text-overflow:clip;
  max-width:100%; line-height:1.2; min-height:2.4em;
  color:rgba(255,255,255,.94); text-shadow:0 1px 6px rgba(0,0,0,.35);
}
.kg-app[aria-current="page"] .kg-app-ic{ box-shadow:0 0 0 3px rgba(10,44,37,.9), 0 0 0 5px #fff, 0 14px 28px -14px rgba(0,0,0,.6); }
.kg-app-badge{ right:calc(50% - 40px); top:-5px; }
/* Entrée en cascade : les icônes sont dans des sous-grilles */
.kg-sheet-grid.ki-tiles-pending .kg-app{ opacity:0; transform:translate3d(0,18px,0) scale(.9); filter:blur(10px); }
.kg-sheet-grid.ki-tiles-in .kg-app{
  opacity:1; transform:none; filter:blur(0);
  transition:opacity .5s var(--kg-ease,cubic-bezier(.16,1,.3,1)) calc(var(--i,0) * 35ms), transform .7s var(--kg-ease,cubic-bezier(.16,1,.3,1)) calc(var(--i,0) * 35ms), filter .55s ease calc(var(--i,0) * 35ms);
}
@media (prefers-reduced-motion:reduce){ .kg-sheet-grid.ki-tiles-pending .kg-app, .kg-sheet-grid.ki-tiles-in .kg-app{ opacity:1; transform:none; filter:none; transition:none; } }
.kg-dock-menu svg{ width:19px; height:19px; }
@media (prefers-reduced-motion:reduce){ .kg-sheet-card{ transition:none; transform:none; filter:none; } }

/* =====================================================================
   v4 — Paramètres façon « Réglages » (liste groupée, sous-pages, recherche)
   ===================================================================== */
#portal-dashboard.ki-glass-menu #page-settings.kg-ios-ready #settingsTabs{ display:none !important; }
#portal-dashboard.ki-glass-menu #page-settings.kg-ios-ready .settings-pane{ display:none !important; }
#portal-dashboard.ki-glass-menu #page-settings.kg-ios-ready .kg-ios-back{ display:none; }
#portal-dashboard.ki-glass-menu #page-settings.kg-ios-ready.kg-ios-sub .kg-ios{ display:none; }
#portal-dashboard.ki-glass-menu #page-settings.kg-ios-ready.kg-ios-sub .kg-ios-back{ display:flex; }
#portal-dashboard.ki-glass-menu #page-settings.kg-ios-ready.kg-ios-sub .settings-pane[style*="display: block"]{ display:block !important; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios{ max-width:640px; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-search{
  display:flex; align-items:center; gap:10px;
  min-height:44px; margin:0 0 16px; padding:0 14px;
  border-radius:14px;
  background:rgba(16,54,45,.08);
  color:var(--kg-muted);
}
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-search svg{ width:18px; height:18px; flex:0 0 auto; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-search input{
  flex:1 1 auto; min-width:0; border:0; background:transparent; font:inherit; font-size:1rem; color:var(--kg-ink); outline:none;
}
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-profile,
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-row{
  display:flex; align-items:center; gap:12px;
  width:100%; min-height:48px;
  padding:9px 12px 9px 14px;
  border:0; background:transparent;
  color:var(--kg-ink); font-family:inherit; font-size:1rem; text-align:left; cursor:pointer;
}
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-profile{
  margin:0 0 18px; padding:14px 14px 14px 14px;
  border-radius:20px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 1px 0 #fff inset, 0 14px 34px -24px rgba(16,54,45,.4);
}
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-avatar{
  width:56px; height:56px; border-radius:50%; flex:0 0 auto; overflow:hidden;
  display:grid; place-items:center;
  background:linear-gradient(135deg,#1f6b57,var(--kg-sage)); color:#fff; font-weight:800; font-size:1.3rem;
}
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-avatar img{ width:100%; height:100%; object-fit:cover; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-who{ flex:1 1 auto; min-width:0; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-who strong{ display:block; font-size:1.15rem; letter-spacing:-.01em; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-who small{ display:block; color:var(--kg-muted); font-size:.86rem; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-group{ margin:0 0 20px; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-group-title{
  margin:0 0 6px 16px;
  font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--kg-muted);
}
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-list{
  border-radius:20px; overflow:hidden;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 1px 0 #fff inset, 0 14px 34px -24px rgba(16,54,45,.4);
}
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-row + .kg-ios-row{ box-shadow:inset 0 1px 0 rgba(16,54,45,.08); }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-row:active{ background:rgba(16,54,45,.06); }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-row:focus-visible,
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-profile:focus-visible{ outline:none; box-shadow:inset 0 0 0 2px var(--kg-coral); }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-ic{
  --rgb:123,174,138;
  width:30px; height:30px; flex:0 0 auto;
  display:grid; place-items:center;
  border-radius:9px;
  background:linear-gradient(145deg,rgba(var(--rgb),1),rgba(var(--rgb),.78));
  color:#fff;
  box-shadow:0 1px 0 rgba(255,255,255,.4) inset, 0 4px 10px -5px rgba(var(--rgb),.8);
}
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-ic svg{ width:18px; height:18px; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-label{ flex:1 1 auto; min-width:0; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-row > svg,
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-profile > svg{ width:18px; height:18px; flex:0 0 auto; color:rgba(16,54,45,.35); }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-row.is-danger{ color:#c4472e; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-back{
  align-items:center; gap:12px; margin:0 0 16px;
}
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-back button{
  display:inline-flex; align-items:center; gap:2px;
  min-height:40px; padding:0 14px 0 8px;
  border:1px solid rgba(255,255,255,.8); border-radius:999px;
  background:rgba(255,255,255,.7); color:var(--kg-deep);
  font-family:inherit; font-size:.9rem; font-weight:700; cursor:pointer;
}
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-back button svg{ width:18px; height:18px; }
#portal-dashboard.ki-glass-menu #page-settings .kg-ios-back strong{ font-size:1.05rem; letter-spacing:-.01em; color:var(--kg-deep); }
/* En sous-page, seule la carte du réglage choisi est affichée. */
#portal-dashboard.ki-glass-menu #page-settings.kg-ios-sub .settings-pane > .card:not(.kg-ios-only){ display:none !important; }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #page-settings .kg-ios-profile,
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #page-settings .kg-ios-list{ background:rgba(28,34,31,.9); border-color:rgba(255,255,255,.1); color:#e6e6e3; }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #page-settings .kg-ios-row,
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #page-settings .kg-ios-profile{ color:#e6e6e3; }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #page-settings .kg-ios-search{ background:rgba(255,255,255,.08); }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu #page-settings .kg-ios-search input{ color:#e6e6e3; }

/* =====================================================================
   v6 — Barre latérale et tiroir : même verre vert profond que le menu,
   une couleur par rubrique, glyphes blancs sur carrés colorés.
   ===================================================================== */
#portal-dashboard.ki-glass-menu #sidebar-parent,
#portal-dashboard.ki-glass-menu #sidebar-equipe,
#portal-dashboard.ki-glass-menu #sidebar-admin{
  background:
    radial-gradient(60% 40% at 10% 0%, rgba(129,191,229,.22), transparent 60%),
    radial-gradient(50% 36% at 100% 100%, rgba(244,125,96,.2), transparent 60%),
    rgba(10,44,37,.66) !important;
  border-color:rgba(255,255,255,.2) !important;
  border-right-color:rgba(255,255,255,.2) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.2) inset, 0 28px 60px -30px rgba(0,0,0,.55);
  color:#fff;
  scrollbar-color:rgba(255,255,255,.25) transparent;
}
#portal-dashboard.ki-glass-menu #sidebar-parent::before,
#portal-dashboard.ki-glass-menu #sidebar-equipe::before,
#portal-dashboard.ki-glass-menu #sidebar-admin::before{ opacity:.22; }
#portal-dashboard.ki-glass-menu .sidebar-section{ color:rgba(255,255,255,.68) !important; }
#portal-dashboard.ki-glass-menu .sidebar-link{
  --rgb:123,174,138;
  background:rgba(255,255,255,.08) !important;
  border-color:rgba(255,255,255,.12) !important;
  color:#fff !important;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset;
}
#portal-dashboard.ki-glass-menu .sidebar-link[data-kg-family="sky"]{ --rgb:129,191,229; }
#portal-dashboard.ki-glass-menu .sidebar-link[data-kg-family="sun"]{ --rgb:246,191,89; }
#portal-dashboard.ki-glass-menu .sidebar-link[data-kg-family="lav"]{ --rgb:185,164,245; }
#portal-dashboard.ki-glass-menu .sidebar-link[data-kg-family="coral"]{ --rgb:244,125,96; }
#portal-dashboard.ki-glass-menu .sidebar-link:hover{
  background:rgba(255,255,255,.16) !important;
  border-color:rgba(255,255,255,.22) !important;
  color:#fff !important;
  box-shadow:0 1px 0 rgba(255,255,255,.12) inset, 0 14px 30px -18px rgba(0,0,0,.5);
}
#portal-dashboard.ki-glass-menu .sidebar-link .icon,
#portal-dashboard.ki-glass-menu .sidebar-link[data-page] .icon,
#portal-dashboard.ki-glass-menu .sidebar-link.ki-pt-side .icon{
  background:
    radial-gradient(120% 90% at 20% 0%, rgba(255,255,255,.34), transparent 55%),
    linear-gradient(160deg, rgba(var(--rgb),1), rgba(var(--rgb),.86)) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset, 0 6px 14px -8px rgba(var(--rgb),.9);
}
#portal-dashboard.ki-glass-menu .sidebar-link .icon svg{ color:#fff; stroke-width:2; filter:drop-shadow(0 1px 2px rgba(0,0,0,.2)); }
#portal-dashboard.ki-glass-menu .sidebar-link.active,
#portal-dashboard.ki-glass-menu .sidebar-link[aria-current="page"]{
  background:rgba(255,255,255,.96) !important;
  border-color:#fff !important;
  color:var(--kg-deep) !important;
  box-shadow:0 1px 0 #fff inset, 0 18px 36px -16px rgba(0,0,0,.55);
}
#portal-dashboard.ki-glass-menu .sidebar-link.active .icon svg,
#portal-dashboard.ki-glass-menu .sidebar-link[aria-current="page"] .icon svg{ color:#fff; }
#portal-dashboard.ki-glass-menu .sidebar-link:focus-visible{ box-shadow:0 0 0 2px rgba(10,44,37,.9), 0 0 0 5px var(--kg-coral); }
#portal-dashboard.ki-glass-menu .mobile-sidebar-logout{
  background:rgba(244,125,96,.22) !important;
  border-color:rgba(244,125,96,.45) !important;
  color:#fff !important;
}
#portal-dashboard.ki-glass-menu .mobile-sidebar-logout .icon{ background:rgba(244,125,96,.9) !important; }
#portal-dashboard.ki-glass-menu .mobile-sidebar-logout .icon svg{ color:#fff; }
@media (max-width:980px){
  #portal-dashboard.ki-glass-menu #sidebar-parent,
  #portal-dashboard.ki-glass-menu #sidebar-equipe,
  #portal-dashboard.ki-glass-menu #sidebar-admin{
    background:
      radial-gradient(60% 40% at 10% 0%, rgba(129,191,229,.22), transparent 60%),
      radial-gradient(50% 36% at 100% 100%, rgba(244,125,96,.2), transparent 60%),
      rgba(10,44,37,.74) !important;
    border-right-color:rgba(255,255,255,.2) !important;
    box-shadow:0 1px 0 rgba(255,255,255,.2) inset, 28px 0 70px -20px rgba(0,0,0,.5) !important;
  }
  #portal-dashboard.ki-glass-menu .sidebar-section{ color:rgba(255,255,255,.68) !important; }
  #portal-dashboard.ki-glass-menu .mobile-sidebar-logout{ background:rgba(244,125,96,.22) !important; border:1px solid rgba(244,125,96,.45) !important; color:#fff !important; }
}

/* =====================================================================
   v7 — Bandeaux de page : même verre vert profond que le menu et la barre latérale
   ===================================================================== */
#portal-dashboard.ki-glass-menu .page-header{
  background:
    radial-gradient(60% 40% at 10% 0%, rgba(129,191,229,.22), transparent 60%),
    radial-gradient(50% 36% at 100% 100%, rgba(244,125,96,.2), transparent 60%),
    rgba(10,44,37,.66) !important;
  -webkit-backdrop-filter:blur(26px) saturate(160%);
  backdrop-filter:blur(26px) saturate(160%);
  border:1px solid rgba(255,255,255,.2) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.2) inset, 0 28px 60px -30px rgba(0,0,0,.5) !important;
}
#portal-dashboard.ki-glass-menu .page-header::before{
  background:
    radial-gradient(circle at 14% 20%, rgba(255,255,255,.14), transparent 19%),
    radial-gradient(circle at 86% 12%, rgba(244,125,96,.2), transparent 22%),
    radial-gradient(circle at 72% 96%, rgba(129,191,229,.16), transparent 28%);
}
#portal-dashboard.ki-glass-menu .page-header::after{ opacity:.22; }
#portal-dashboard.ki-glass-menu .page-header .kg-kicker{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.22); }
html.portal-open body.dark-mode #portal-dashboard.ki-glass-menu .page-header{ background:rgba(28,34,31,.72) !important; border-color:rgba(255,255,255,.12) !important; }

/* Retour tactile sur les cartes et boutons d'action du contenu */
@media (prefers-reduced-motion:no-preference){
  #portal-dashboard.ki-glass-menu .kp-links button,
  #portal-dashboard.ki-glass-menu .admin-action-btn,
  #portal-dashboard.ki-glass-menu .ki-pt-cta{ transition:transform .18s var(--kg-ease), box-shadow .2s ease, background .2s ease; }
  #portal-dashboard.ki-glass-menu .kp-links button:active,
  #portal-dashboard.ki-glass-menu .admin-action-btn:active,
  #portal-dashboard.ki-glass-menu .ki-pt-cta:active{ transform:scale(.985); }
}
