:root{
  --gg-bg: #ffffff;
  --gg-bg-soft: #f7f8fb;
  --gg-bg-tint: #f3f7ff;
  --gg-surface: rgba(255,255,255,.92);
  --gg-surface-2: rgba(255,255,255,.70);
  --gg-border: rgba(15,23,42,.10);
  --gg-ink: #0b1220;
  --gg-ink-2: rgba(15,23,42,.72);
  --gg-ink-3: rgba(15,23,42,.54);

  --gg-brand: #0ea5e9;
  --gg-brand-2: #2563eb;
  --gg-success: #22c55e;
  --gg-warn: #f59e0b;
  --gg-danger: #ef4444;

  --gg-radius-xl: 22px;
  --gg-radius-lg: 18px;
  --gg-radius-md: 14px;

  --gg-shadow-sm: 0 10px 22px rgba(15,23,42,.06);
  --gg-shadow-md: 0 18px 44px rgba(15,23,42,.08);
  --gg-shadow-lg: 0 30px 70px rgba(15,23,42,.10);

  --gg-ring: 0 0 0 4px rgba(14,165,233,.14);
}

/* Base */
body.gg-saas{
  background:
    radial-gradient(1200px circle at 8% 10%, rgba(14,165,233,.08), transparent 44%),
    radial-gradient(900px circle at 90% 16%, rgba(37,99,235,.06), transparent 48%),
    radial-gradient(900px circle at 70% 92%, rgba(15,23,42,.035), transparent 48%),
    linear-gradient(180deg, var(--gg-bg-tint) 0%, var(--gg-bg) 55%, var(--gg-bg) 100%);
  color: var(--gg-ink);
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.gg-saas a{
  text-decoration: none;
}

body.gg-saas .container,
body.gg-saas .container-fluid{
  --bs-gutter-x: 1.25rem;
}

/* Authenticated shell tweaks (same nav/pages, different feel) */
body.gg-saas.gg-auth .container-fluid{
  padding-top: 18px;
  padding-bottom: 28px;
}

body.gg-saas.gg-auth .gg-navbar .container{
  max-width: 1280px;
}

body.gg-saas.gg-auth .navbar-nav{
  gap: 2px;
}

body.gg-saas.gg-auth .gg-navbar .btn-danger{
  background: rgba(15,23,42,.08);
  border: 1px solid rgba(15,23,42,.10);
  color: rgba(15,23,42,.76);
  box-shadow: none;
}

body.gg-saas.gg-auth .gg-navbar .btn-danger:hover{
  background: rgba(15,23,42,.12);
  color: rgba(15,23,42,.86);
}

/* Public pages: slightly larger hero spacing */
body.gg-saas.gg-public .container-fluid{
  padding-top: 0;
}

/* Navbar */
body.gg-saas .gg-navbar{
  background: rgba(255,255,255,.82) !important;
  border-bottom: 1px solid rgba(15,23,42,.08) !important;
  backdrop-filter: blur(14px);
}

body.gg-saas .gg-navbar .navbar-brand{
  font-weight: 900;
  letter-spacing: -0.03em;
}

body.gg-saas .gg-navbar .nav-link{
  color: rgba(15,23,42,.72);
  font-weight: 700;
}

body.gg-saas .gg-navbar .nav-link:hover{
  background: rgba(14,165,233,.08);
  color: rgba(7,89,133,.95);
  transform: translateY(-1px);
}

/* ── Nova nav link ── */
body.gg-saas .gg-navbar .nova-nav-link{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding-left:4px;
  padding-right:4px;
}

body.gg-saas .gg-navbar .nova-text{
  background: linear-gradient(90deg,
    #6366f1 0%,
    #8b5cf6 20%,
    #06b6d4 45%,
    #a855f7 70%,
    #6366f1 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: nova-sweep 3s linear infinite;
  font-weight: 800;
  letter-spacing: 0.04em;
}

body.gg-saas .gg-navbar .nova-nav-link:hover .nova-text{
  animation-duration: 1.2s;
}

.nova-dot{
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #8b5cf6;
  box-shadow: 0 0 6px 2px rgba(139,92,246,.5);
  animation: nova-pulse 1.8s ease-in-out infinite;
  flex-shrink: 0;
  margin-bottom: 1px;
}

@keyframes nova-sweep{
  0%  { background-position: 0% center }
  100%{ background-position: 200% center }
}

@keyframes nova-pulse{
  0%,100%{ opacity:1; transform:scale(1);   box-shadow:0 0 6px 2px rgba(139,92,246,.5) }
  50%    { opacity:.5; transform:scale(0.7); box-shadow:0 0 3px 1px rgba(139,92,246,.25) }
}

/* Dropdowns */
body.gg-saas .dropdown-menu{
  border-radius: var(--gg-radius-lg);
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: var(--gg-shadow-md);
  padding: 8px;
}

body.gg-saas .dropdown-item{
  border-radius: 12px;
  font-weight: 650;
}

body.gg-saas .dropdown-item:hover{
  background: rgba(14,165,233,.08);
}

/* Tables / list groups */
body.gg-saas .list-group-item{
  border-color: rgba(15,23,42,.10);
}

body.gg-saas .table{
  color: rgba(15,23,42,.78);
}

body.gg-saas .btn-nav-cta{
  background: linear-gradient(100deg, #0ea5e9, #2563eb, #0ea5e9);
  background-size: 200% auto;
  animation: ggShimmer 3s linear infinite;
  box-shadow: 0 14px 28px rgba(37,99,235,.22);
}

@keyframes ggShimmer{
  0%{ background-position: -200% center; }
  100%{ background-position: 200% center; }
}

body.gg-saas .btn,
body.gg-saas .btn:focus{
  box-shadow: none;
}

body.gg-saas .btn:focus-visible{
  outline: none;
  box-shadow: var(--gg-ring);
}

/* Cards */
body.gg-saas .card{
  border: 1px solid var(--gg-border);
  border-radius: var(--gg-radius-xl);
  box-shadow: var(--gg-shadow-sm);
}

body.gg-saas .card:hover{
  box-shadow: var(--gg-shadow-md);
}

body.gg-saas .shadow,
body.gg-saas .shadow-sm,
body.gg-saas .shadow-lg{
  box-shadow: var(--gg-shadow-sm) !important;
}

/* Buttons */
body.gg-saas .btn{
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: -0.01em;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
}

body.gg-saas .btn:hover{
  transform: translateY(-1px);
}

body.gg-saas .btn-primary{
  background: linear-gradient(90deg, #0284c7, #2563eb);
  border-color: rgba(37,99,235,.25);
  box-shadow: 0 16px 28px rgba(37,99,235,.18);
}

body.gg-saas .btn-outline-primary{
  border-color: rgba(37,99,235,.22);
  color: rgba(37,99,235,.95);
}

body.gg-saas .btn-danger{
  background: linear-gradient(90deg, #ef4444, #f97316);
  border-color: rgba(239,68,68,.25);
  box-shadow: 0 16px 28px rgba(239,68,68,.16);
}

/* Inputs */
body.gg-saas .form-control,
body.gg-saas .form-select{
  border-radius: var(--gg-radius-md);
  border-color: rgba(15,23,42,.12);
  background: rgba(255,255,255,.88);
  box-shadow: none;
}

body.gg-saas .form-control:focus,
body.gg-saas .form-select:focus{
  border-color: rgba(14,165,233,.35);
  box-shadow: var(--gg-ring);
}

/* Tabs / pills */
body.gg-saas .nav-pills .nav-link{
  border-radius: 999px;
  font-weight: 900;
  padding: .55rem 1rem;
  color: rgba(15,23,42,.72);
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(15,23,42,.10);
}

body.gg-saas .nav-pills .nav-link:hover{
  background: rgba(14,165,233,.08);
  border-color: rgba(14,165,233,.22);
}

body.gg-saas .nav-pills .nav-link.active{
  color: #061b2a;
  background: rgba(14,165,233,.14);
  border-color: rgba(14,165,233,.32);
  box-shadow: 0 18px 34px rgba(14,165,233,.14);
}

/* Progress bars */
body.gg-saas .progress{
  border-radius: 999px;
  background: rgba(15,23,42,.06);
  overflow: hidden;
}

body.gg-saas .progress-bar{
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(34,197,94,.95), rgba(14,165,233,.95));
  transform-origin: left center;
  animation: ggBarIn .7s cubic-bezier(.16,1,.3,1) both;
}

@keyframes ggBarIn{
  from{ transform: scaleX(.35); filter: saturate(.8); }
  to{ transform: scaleX(1); filter: saturate(1); }
}

/* Modal */
body.gg-saas .modal-content{
  border-radius: calc(var(--gg-radius-xl) + 4px);
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: var(--gg-shadow-lg);
}

/* Alerts */
body.gg-saas .alert{
  border-radius: var(--gg-radius-lg);
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: var(--gg-shadow-sm);
}

/* Page transitions */
body.gg-saas .page-route-overlay{
  background:
    radial-gradient(circle at 20% 20%, rgba(14,165,233,.16), transparent 28%),
    radial-gradient(circle at 80% 18%, rgba(37,99,235,.12), transparent 24%),
    linear-gradient(180deg, rgba(248,250,252,.6), rgba(255,255,255,.98));
  backdrop-filter: blur(10px);
}

body.gg-saas.gg-route-transitioning .page-route-overlay{
  opacity: 1;
  transform: scaleY(1);
}

/* Section-specific overrides */
body.gg-saas.fin-hero-active .gg-navbar{
  background: rgba(255,255,255,.82) !important;
  border-bottom: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: none !important;
}

body.gg-saas.fin-hero-active .gg-navbar .nav-link,
body.gg-saas.fin-hero-active .gg-navbar .navbar-brand{
  color: rgba(15,23,42,.72) !important;
}

/* Habit Tracker hero illustration */
body.gg-saas .habit-hero{
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(900px circle at 18% 22%, rgba(14,165,233,.12), transparent 52%),
    radial-gradient(780px circle at 84% 10%, rgba(37,99,235,.08), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.76)) !important;
  border: 1px solid rgba(15,23,42,.08) !important;
}

body.gg-saas .habit-hero::after{
  content: "";
  position: absolute;
  right: -6px;
  top: -10px;
  width: min(520px, 44vw);
  height: 220px;
  background-image: url("/static/img/gg_laptop_dashboard.ac22a28a429c.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: right top;
  opacity: .90;
  pointer-events: none;
  filter: saturate(1.02);
}

@media (max-width: 767.98px){
  body.gg-saas .habit-hero::after{
    opacity: .0;
    display: none;
  }
}

/* Motion safety */
@media (prefers-reduced-motion: reduce){
  body.gg-saas *{
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ──────────────────────────────────────────────────────────────
   THEME SWITCHER — s'applique uniquement aux pages authentifiées
   hors: home publique, login/register, questionnaire, digital self.
   La barre noire (.gg-ds-side-nav) n'est PAS affectée — elle reste
   toujours sombre, comme demandé.
   ────────────────────────────────────────────────────────────── */
/* Thème "Violet" (anciennement "Clair") — fond violet dégradé + cartes blanches 80% */
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page){
  --gg-bg: #1e6ed6;
  --gg-bg-soft: rgba(255,255,255,.80);
  --gg-bg-tint: rgba(255,255,255,.70);
  --gg-surface: rgba(255,255,255,.80);
  --gg-ink: #1e1b4b;
  --gg-ink-2: rgba(30,27,75,.78);
  --gg-ink-3: rgba(30,27,75,.58);
  /* Body transparent : le fond animé est sur ::before pour qu'on voie le mouvement */
  background: transparent !important;
  background-color: transparent !important;
  color: #1e1b4b !important;
}
/* Couche fond Tahoe (bleu animé, bien visible) derrière le contenu */
/* ── Fond d'écran Tahoe animé (identique à Digital Self) ── */
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page)::before{
  content: "";
  position: fixed;
  inset: -8%;
  z-index: -2;
  pointer-events: none;
  background:
    url("/static/img/theme_blue_bg.aa69878fe42c.jpg") center center / cover no-repeat,
    linear-gradient(180deg, #1e6ed6 0%, #4aa9ff 60%, #a9d8ff 100%);
  /* Mouvement lent de flottement : panoramique + zoom doux */
  animation: ggTahoeFloat 28s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes ggTahoeFloat{
  0%   { transform: translate3d(-1.5%, -1%, 0) scale(1.02); }
  50%  { transform: translate3d(1%, 1.5%, 0) scale(1.05); }
  100% { transform: translate3d(1.5%, -0.5%, 0) scale(1.03); }
}
/* ── Couche de brillance / reflets animés par-dessus ── */
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page)::after{
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    /* Halo lumineux haut-droite */
    radial-gradient(52vw 48vw at 82% 12%, rgba(255,255,255,.32) 0%, rgba(255,245,210,.14) 28%, transparent 62%),
    /* Reflet froid bas-gauche */
    radial-gradient(42vw 44vw at 16% 88%, rgba(170,220,255,.28) 0%, rgba(74,169,255,.12) 40%, transparent 72%),
    /* Ruban de brillance diagonal qui balaie */
    linear-gradient(115deg,
      transparent 0%, transparent 35%,
      rgba(255,255,255,.22) 48%, rgba(255,255,255,.32) 52%, rgba(255,255,255,.22) 56%,
      transparent 70%, transparent 100%);
  background-size: auto, auto, 300% 100%;
  background-position: 0 0, 0 0, 0% 50%;
  mix-blend-mode: screen;
  animation: ggTahoeShine 16s ease-in-out infinite alternate;
}
@keyframes ggTahoeShine{
  0%   { background-position: 0 0, 0 0, -40% 50%; opacity: .85; }
  50%  { opacity: 1; }
  100% { background-position: 0 0, 0 0, 140% 50%; opacity: .9; }
}
@media (prefers-reduced-motion: reduce){
  body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page)::before,
  body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page)::after{ animation: none; }
}
@media (prefers-reduced-motion: reduce){
  body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page)::before,
  body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page)::after{ animation: none; }
}
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .settings-hero,
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .settings-card,
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .sub-hero{
  background: rgba(255,255,255,.80) !important;
  border-color: rgba(255,255,255,.72) !important;
  box-shadow:
    0 18px 48px rgba(49,46,129,.22),
    inset 0 1px 0 rgba(255,255,255,.92) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .settings-hero h1,
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .settings-card h2,
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .settings-card strong{
  color: #1e1b4b !important;
}
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .settings-hero p,
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .settings-card p,
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .settings-card .text-muted{
  color: rgba(30,27,75,.68) !important;
}
body.gg-auth[data-theme="light"].gg-settings-page{
  background: url("/static/img/theme_blue_bg.aa69878fe42c.jpg") center center / cover no-repeat, linear-gradient(125deg, #0b3a7a 0%, #1e6ed6 60%, #4aa9ff 100%) !important;
  background-attachment: fixed !important;
}
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .card,
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .modal-content,
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) .dropdown-menu{
  background-color: rgba(255,255,255,.80) !important;
  color: #1e1b4b !important;
  border-color: rgba(255,255,255,.72) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

/* Cartes génériques : toute classe finissant par -card, -tile, -box, -panel (sauf gg-theme-card et notif Discord) */
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) [class*="-card"]:not(.gg-theme-card):not(.int-card-icon):not(.int-card-bar):not(.int-card-name):not(.int-card-status):not(.int-card-desc):not(.int-card-connected-at):not(.int-card-top):not(.int-card-actions):not(.ggn-card):not(.ggn-card-avatar):not(.ggn-card-head):not(.ggn-card-body):not(.ggn-card-meta):not(.ggn-card-close):not(.ggn-card-name):not(.ggn-card-sub):not(.ggn-card-msg):not(.ggn-card-time):not(.ggn-card-actions):not(.ct-card-sub),
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) [class*="-tile"],
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) [class*="-box"]:not(.fa-box):not(.btn-box),
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) [class*="-panel"]{
  background: rgba(255,255,255,.25) !important;
  background-color: rgba(255,255,255,.25) !important;
  border-color: rgba(255,255,255,.45) !important;
  color: #0f172a !important;
  box-shadow:
    0 14px 36px rgba(15,23,42,.14),
    inset 0 1px 0 rgba(255,255,255,.6) !important;
  backdrop-filter: blur(18px) saturate(130%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(130%) !important;
}

/* Texte à l'intérieur des cartes : indigo pour la lisibilité */
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) [class*="-card"]:not(.gg-theme-card) *:not(a):not(button):not(.badge):not([class*="-bar"]):not([class*="-icon"]),
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) [class*="-tile"] *:not(a):not(button):not(.badge):not([class*="-bar"]):not([class*="-icon"]),
body.gg-auth[data-theme="light"]:not(.gg-home-public):not(.gg-auth-public):not(.digital-self-page) [class*="-panel"] *:not(a):not(button):not(.badge):not([class*="-bar"]):not([class*="-icon"]){
  color: #1e1b4b;
}

/* ── Thème Violet : overrides explicites pour app_dashboard (glass transparent) ── */
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-kpi,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-card,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-mini{
  background: rgba(255,255,255,.25) !important;
  border: 1px solid rgba(255,255,255,.42) !important;
  box-shadow:
    0 14px 36px rgba(15,23,42,.14),
    inset 0 1px 0 rgba(255,255,255,.6) !important;
  backdrop-filter: blur(18px) saturate(130%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(130%) !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-kpi:hover,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-card:hover{
  background: rgba(255,255,255,.32) !important;
  border-color: rgba(255,255,255,.58) !important;
}
/* Barre de progression des habitudes : couleur pleine pour rester visible */
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-habit-bar-bg{
  background: rgba(15,23,42,.10) !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-habit-bar-fill{
  background: linear-gradient(90deg, #6366f1, #8b5cf6) !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-kpi,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-kpi-val,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-kpi-label,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-kpi-note,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-card-title,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-card-badge,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-habit-name,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-habit-pct,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-greeting,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-greeting span{
  color: #1e1b4b !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-kpi-label,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-kpi-note,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-greeting span{
  color: rgba(30,27,75,.62) !important;
}

/* Panneau gauche (noir) → blanc 60% avec texte indigo */
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-left{
  background: rgba(255,255,255,.60) !important;
  border-right: 1px solid rgba(255,255,255,.55) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  box-shadow: 0 2px 12px rgba(15,23,42,.08) !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-left-section-title{
  color: rgba(30,27,75,.55) !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-online-name,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-app-label{
  color: rgba(30,27,75,.82) !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-online-empty,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-app-empty{
  color: rgba(30,27,75,.5) !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-avatar{
  background: rgba(30,27,75,.12) !important;
  color: #1e1b4b !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-avatar::after{
  border-color: rgba(255,255,255,.80) !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-online-item:hover,
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-app-item:hover{
  background: rgba(30,27,75,.06) !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-toggle-btn{
  color: rgba(30,27,75,.55) !important;
}
body.gg-auth[data-theme="light"].gg-app-dashboard .dash-toggle-btn:hover{
  color: #1e1b4b !important;
}

/* ── Thème Violet : page Applications (intégrations) — cartes glass transparentes ── */
body.gg-auth[data-theme="light"].gg-integrations-page .int-card{
  background: rgba(255,255,255,.22) !important;
  border: 1px solid rgba(255,255,255,.38) !important;
  box-shadow:
    0 14px 36px rgba(15,23,42,.18),
    inset 0 1px 0 rgba(255,255,255,.55) !important;
  backdrop-filter: blur(20px) saturate(130%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(130%) !important;
  transition: background .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease !important;
}
body.gg-auth[data-theme="light"].gg-integrations-page .int-card:hover{
  background: rgba(255,255,255,.32) !important;
  border-color: rgba(255,255,255,.55) !important;
  transform: translateY(-2px);
  box-shadow:
    0 22px 50px rgba(15,23,42,.22),
    inset 0 1px 0 rgba(255,255,255,.7) !important;
}
/* Textes : indigo pour rester lisibles sur le flou bleu */
body.gg-auth[data-theme="light"].gg-integrations-page .int-card-name,
body.gg-auth[data-theme="light"].gg-integrations-page .int-card-status{
  color: #0f172a !important;
}
body.gg-auth[data-theme="light"].gg-integrations-page .int-card-desc{
  color: rgba(15,23,42,.72) !important;
}
body.gg-auth[data-theme="light"].gg-integrations-page .int-card-connected-at{
  color: rgba(15,23,42,.48) !important;
}
/* Icônes : fond blanc presque opaque pour garder les logos nets */
body.gg-auth[data-theme="light"].gg-integrations-page .int-card-icon{
  border-color: rgba(15,23,42,.10) !important;
  box-shadow: 0 4px 10px rgba(15,23,42,.08);
}
/* Badge "Bientôt" plus doux sur le glass */
body.gg-auth[data-theme="light"].gg-integrations-page .badge-soon{
  background: rgba(255,255,255,.55) !important;
  color: #4338ca !important;
  border: 1px solid rgba(67,56,202,.22) !important;
}

/* ── Thème Violet : page Notifications (gg-notif-page) — glass transparent léger ── */
body.gg-auth[data-theme="light"].gg-notif-page .ntf-card{
  background: rgba(255,255,255,.22) !important;
  border: 1px solid rgba(255,255,255,.38) !important;
  box-shadow:
    0 10px 28px rgba(15,23,42,.14),
    inset 0 1px 0 rgba(255,255,255,.55) !important;
  backdrop-filter: blur(18px) saturate(130%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(130%) !important;
}
body.gg-auth[data-theme="light"].gg-notif-page .ntf-card:hover{
  background: rgba(255,255,255,.30) !important;
  border-color: rgba(255,255,255,.55) !important;
}
/* Textes des cartes en indigo pour rester lisibles sur bleu flouté */
body.gg-auth[data-theme="light"].gg-notif-page .ntf-title,
body.gg-auth[data-theme="light"].gg-notif-page .ntf-heading,
body.gg-auth[data-theme="light"].gg-notif-page .ntf-kind{
  color: #0f172a !important;
}
body.gg-auth[data-theme="light"].gg-notif-page .ntf-title-sub,
body.gg-auth[data-theme="light"].gg-notif-page .ntf-text{
  color: rgba(15,23,42,.72) !important;
}
body.gg-auth[data-theme="light"].gg-notif-page .ntf-date,
body.gg-auth[data-theme="light"].gg-notif-page .ntf-empty-title,
body.gg-auth[data-theme="light"].gg-notif-page .ntf-empty-sub{
  color: rgba(15,23,42,.48) !important;
}
/* Pills et boutons action (Tout marquer / compteurs) : verre blanc léger, pas plein */
body.gg-auth[data-theme="light"].gg-notif-page .ntf-pill,
body.gg-auth[data-theme="light"].gg-notif-page .ntf-btn-mark,
body.gg-auth[data-theme="light"].gg-notif-page .ntf-open,
body.gg-auth[data-theme="light"].gg-notif-page .ntf-read-btn{
  background: rgba(255,255,255,.30) !important;
  border-color: rgba(255,255,255,.45) !important;
  color: #1e1b4b !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}
body.gg-auth[data-theme="light"].gg-notif-page .ntf-btn-mark:hover,
body.gg-auth[data-theme="light"].gg-notif-page .ntf-open:hover,
body.gg-auth[data-theme="light"].gg-notif-page .ntf-read-btn:hover{
  background: rgba(255,255,255,.5) !important;
  color: #0f172a !important;
}
/* Onglets : texte indigo + barre active plus visible */
body.gg-auth[data-theme="light"].gg-notif-page .ntf-tabs{
  border-bottom-color: rgba(15,23,42,.12) !important;
}
body.gg-auth[data-theme="light"].gg-notif-page .ntf-tab{
  color: rgba(15,23,42,.55) !important;
}
body.gg-auth[data-theme="light"].gg-notif-page .ntf-tab:hover{
  color: #0f172a !important;
}
body.gg-auth[data-theme="light"].gg-notif-page .ntf-tab.active{
  color: #0f172a !important;
  border-bottom-color: #4338ca !important;
}
body.gg-auth[data-theme="light"].gg-notif-page .ntf-tab-count{
  background: rgba(15,23,42,.10) !important;
  color: rgba(15,23,42,.72) !important;
}
body.gg-auth[data-theme="light"].gg-notif-page .ntf-tab.active .ntf-tab-count{
  background: rgba(67,56,202,.18) !important;
  color: #4338ca !important;
}
/* État vide "aucune notification" : fond verre léger */
body.gg-auth[data-theme="light"].gg-notif-page .ntf-empty{
  background: rgba(255,255,255,.22) !important;
  border: 1px dashed rgba(15,23,42,.18) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

/* ── Thème Violet : page Astra Link (astra-full-page) — verre transparent + textes lisibles ── */
/* Panneau gauche (historique) en verre */
body.gg-auth[data-theme="light"].astra-full-page .astra-left{
  background: rgba(255,255,255,.22) !important;
  border-right: 1px solid rgba(255,255,255,.35) !important;
  backdrop-filter: blur(18px) saturate(130%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(130%) !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-new-btn{
  background: rgba(255,255,255,.35) !important;
  border-color: rgba(15,23,42,.12) !important;
  color: #1e1b4b !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-new-btn:hover{
  background: rgba(255,255,255,.55) !important;
  color: #0f172a !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-conv-item{
  color: #1e1b4b !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-conv-item:hover{
  background: rgba(255,255,255,.28) !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-conv-title{
  color: #0f172a !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-conv-date{
  color: rgba(15,23,42,.55) !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-conv-dots{
  color: rgba(15,23,42,.45) !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-conv-dots:hover{
  background: rgba(15,23,42,.08) !important;
  color: #0f172a !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-conv-empty{
  color: rgba(15,23,42,.5) !important;
}

/* Placeholder rotator (textes qui défilent) : passe en indigo foncé pour être visible */
body.gg-auth[data-theme="light"].astra-full-page .astra-placeholder-rotator{
  color: rgba(15,23,42,.60) !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-welcome-box textarea{
  color: #0f172a !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-welcome-box textarea::placeholder{
  color: rgba(15,23,42,.45) !important;
}

/* Badge "Astra Link" en bas-gauche : texte indigo foncé */
body.gg-auth[data-theme="light"].astra-full-page .astra-toolbar-badge{
  background: rgba(255,255,255,.55) !important;
  border-color: rgba(15,23,42,.14) !important;
  color: #1e1b4b !important;
}

/* Texte des boutons rapides (Organiser ma journée, Finances…) en indigo */
body.gg-auth[data-theme="light"].astra-full-page .astra-quick{
  background: rgba(255,255,255,.30) !important;
  border-color: rgba(255,255,255,.45) !important;
  color: #1e1b4b !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}
body.gg-auth[data-theme="light"].astra-full-page .astra-quick:hover{
  background: rgba(255,255,255,.50) !important;
  color: #0f172a !important;
  border-color: rgba(67,56,202,.35) !important;
}

/* ── Thème Violet : page Plans & Tarifs (checkout / .ck-page) — glass transparent ── */
/* Le grand rectangle blanc de fond devient transparent (on voit le fond Tahoe) */
body.gg-auth[data-theme="light"] .ck-page{
  background: transparent !important;
}
/* Header : titre et descriptions en indigo */
body.gg-auth[data-theme="light"] .ck-header h1{ color: #0f172a !important; }
body.gg-auth[data-theme="light"] .ck-header p{ color: rgba(15,23,42,.72) !important; }
body.gg-auth[data-theme="light"] .ck-header-kicker{
  background: rgba(124,58,237,.18) !important;
  color: #4338ca !important;
}
/* Toggle Mensuel / Annuel : verre */
body.gg-auth[data-theme="light"] .ck-toggle{
  background: rgba(255,255,255,.55) !important;
  border-color: rgba(255,255,255,.6) !important;
  color: #1e1b4b !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}
/* Cartes de plan (Standard / Premium / Elite) : verre transparent */
body.gg-auth[data-theme="light"] .ck-card{
  background: rgba(255,255,255,.25) !important;
  border: 1px solid rgba(255,255,255,.45) !important;
  box-shadow:
    0 14px 36px rgba(15,23,42,.14),
    inset 0 1px 0 rgba(255,255,255,.6) !important;
  backdrop-filter: blur(18px) saturate(130%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(130%) !important;
  color: #0f172a !important;
}
body.gg-auth[data-theme="light"] .ck-card:hover{
  background: rgba(255,255,255,.34) !important;
  border-color: rgba(255,255,255,.65) !important;
}
/* Carte "Populaire" (featured) : garde une identité plus affirmée, violet légèrement opaque */
body.gg-auth[data-theme="light"] .ck-card.ck-featured{
  background: linear-gradient(165deg, rgba(67,56,202,.78) 0%, rgba(109,40,217,.72) 100%) !important;
  border-color: rgba(255,255,255,.32) !important;
  box-shadow: 0 22px 50px rgba(49,46,129,.36), inset 0 1px 0 rgba(255,255,255,.24) !important;
  color: #ffffff !important;
}
body.gg-auth[data-theme="light"] .ck-card.ck-featured *{ color: inherit !important; }
body.gg-auth[data-theme="light"] .ck-card.ck-featured .ck-plan-name{ color: #ffffff !important; }
body.gg-auth[data-theme="light"] .ck-card.ck-featured .ck-price{ color: #ffffff !important; }

/* Textes dans les cartes standards */
body.gg-auth[data-theme="light"] .ck-card:not(.ck-featured) .ck-plan-name{ color: #0f172a !important; }
body.gg-auth[data-theme="light"] .ck-card:not(.ck-featured) .ck-plan-sub,
body.gg-auth[data-theme="light"] .ck-card:not(.ck-featured) .ck-feature-item,
body.gg-auth[data-theme="light"] .ck-card:not(.ck-featured) .ck-period{
  color: rgba(15,23,42,.75) !important;
}
body.gg-auth[data-theme="light"] .ck-card:not(.ck-featured) .ck-price{ color: #0f172a !important; }
body.gg-auth[data-theme="light"] .ck-card:not(.ck-featured) .ck-currency{ color: rgba(15,23,42,.55) !important; }
body.gg-auth[data-theme="light"] .ck-card:not(.ck-featured) .ck-divider{
  border-color: rgba(15,23,42,.10) !important;
}

/* Dark theme (défaut du site — on ré-affirme pour cohérence avec la barre noire) */
body.gg-auth[data-theme="dark"].gg-settings-page{
  background:#111318 !important;
  color: rgba(255,255,255,.9);
}

/* ── Theme selector cards dans Paramètres ── */
.gg-theme-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
  max-width: 640px;
}
.gg-theme-card{
  appearance: none;
  border: 2px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
  border-radius: 14px;
  padding: 14px;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-align: center;
  color: inherit;
}
.gg-theme-card:hover{ transform: translateY(-2px); border-color: rgba(255,255,255,.18); }
.gg-theme-card.is-active{
  border-color: #60a5fa;
  box-shadow: 0 0 0 3px rgba(96,165,250,.18);
}
.gg-theme-preview{
  aspect-ratio: 16 / 10;
  border-radius: 10px;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
}
.gg-theme-preview .tp-side{ position:absolute; top:8px; left:8px; bottom:8px; width:18px; border-radius:4px; background:#0b0f16; }
.gg-theme-preview .tp-line{ position:absolute; left:34px; right:14px; height:6px; border-radius:3px; background: rgba(15,23,42,.35); }
.gg-theme-preview .tp-line.l1{ top:14px; width:60%; }
.gg-theme-preview .tp-line.l2{ top:26px; width:42%; }
.gg-theme-preview .tp-chip{ position:absolute; left:34px; bottom:10px; width:46%; height:12px; border-radius:5px; background:#e5e7eb; }
.gg-theme-preview.is-light{ background: url("/static/img/theme_blue_bg.aa69878fe42c.jpg") center center / cover no-repeat, linear-gradient(125deg, #0b3a7a 0%, #1e6ed6 60%, #4aa9ff 100%); }
.gg-theme-preview.is-light .tp-line{ background: rgba(255,255,255,.72); }
.gg-theme-preview.is-light .tp-chip{ background: rgba(255,255,255,.80); }
.gg-theme-preview.is-dark{ background: linear-gradient(180deg,#1c1f26 0%, #0b0f16 100%); }
.gg-theme-preview.is-dark .tp-line{ background: rgba(255,255,255,.22); }
.gg-theme-preview.is-dark .tp-chip{ background: #374151; }
.gg-theme-preview.is-auto{ background: linear-gradient(90deg, #4338ca 0 50%, #0b0f16 50% 100%); }
.gg-theme-preview.is-auto .tp-chip{ background: linear-gradient(90deg, rgba(255,255,255,.80) 0 50%, #374151 50% 100%); }
.gg-theme-preview.is-auto .tp-line{ background: linear-gradient(90deg, rgba(255,255,255,.72) 0 50%, rgba(255,255,255,.22) 50% 100%); }
.gg-theme-card .gg-theme-label{
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .01em;
}
body.gg-auth[data-theme="light"] .gg-theme-card{
  background: #ffffff;
  border-color: rgba(15,23,42,.10);
  color: #0b1220;
}
body.gg-auth[data-theme="light"] .gg-theme-card:hover{ border-color: rgba(15,23,42,.22); }
body.gg-auth[data-theme="light"] .gg-theme-card.is-active{
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37,99,235,.16);
}
