
/* v23 final site fixes: correct portraits, single flag switch, account icon menu and stable contrast. */

/* Remove the duplicated hero logo if any old markup remains cached. */
.hero-logo-lockup.logo-lockup-hero,
.logo-lockup-hero {
  display:none !important;
}

/* Keep page geometry identical between light and dark. */
.hero-premium {
  padding-top: clamp(78px, 9vw, 150px) !important;
}
html[data-theme="light"] .hero-premium,
html[data-theme="dark"] .hero-premium {
  margin-top: 0 !important;
}

/* Single language flag, no FR/EN text. */
.language-switcher-v23 {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  padding: 0 !important;
  display: inline-grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  border: 1px solid rgba(148,163,184,.24) !important;
  background: rgba(255,255,255,.08) !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.language-switcher-v23 img {
  width: 22px !important;
  height: 15px !important;
  display: block !important;
  object-fit: cover !important;
  border-radius: 3px !important;
  box-shadow: 0 0 0 1px rgba(0,0,0,.18) !important;
}
html[data-theme="light"] .language-switcher-v23 {
  background: #fff !important;
  border-color: rgba(15,23,42,.12) !important;
}
.language-switcher-v20 { display:none !important; }

/* Top-right bubbles: centered content, no tiny off-center icons. */
.header-tools-v23 {
  display:flex !important;
  align-items:center !important;
  gap: 7px !important;
}
.theme-switch-v23,
.account-button-v23,
.menu-button-v23 {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  display: inline-grid !important;
  place-items: center !important;
  padding: 0 !important;
  line-height: 1 !important;
  border-radius: 999px !important;
}
.theme-switch-v23 .theme-toggle-icon {
  display:block !important;
  width: 100% !important;
  text-align:center !important;
  font-size: 1.15rem !important;
  line-height: 1 !important;
  transform: none !important;
}
.account-button-v23 {
  background: linear-gradient(135deg, #2563eb, #7c3aed) !important;
  color: #fff !important;
  border: 0 !important;
}
.account-button-v23 b {
  color:#fff !important;
  display:grid !important;
  place-items:center !important;
  width:100% !important;
  height:100% !important;
  font-size:.74rem !important;
  font-weight:950 !important;
  letter-spacing:.03em !important;
}
html[data-theme="light"] .account-button-v23,
html[data-theme="light"] .account-button-v23 b {
  color:#fff !important;
}

/* Desktop: no burger/camembert. Mobile only. */
.menu-button-v23 { display:none !important; }
@media (max-width: 980px) {
  .menu-button-v23 { display:inline-grid !important; }
}

/* Account menu: icons first, text only on hover/focus. */
.account-menu-v20 { position: relative !important; }
.account-dropdown-v23 {
  position:absolute !important;
  right:0 !important;
  top:calc(100% + 10px) !important;
  width:auto !important;
  min-width: 172px !important;
  padding: 10px !important;
  border-radius: 18px !important;
  border: 1px solid rgba(148,163,184,.22) !important;
  background: #061123 !important;
  box-shadow: 0 28px 80px rgba(0,0,0,.45) !important;
  z-index: 1600 !important;
}
.account-dropdown-v23[hidden] { display:none !important; }
html[data-theme="light"] .account-dropdown-v23 {
  background: #fff !important;
  border-color: rgba(15,23,42,.12) !important;
  box-shadow: 0 24px 70px rgba(15,23,42,.18) !important;
}
.account-dropdown-v23 > strong {
  display:block !important;
  color:#f8fbff !important;
  font-size:.86rem !important;
  line-height:1.2 !important;
  margin: 2px 4px 0 !important;
}
.account-dropdown-v23 > small {
  display:block !important;
  color:#9fb0c8 !important;
  font-size:.72rem !important;
  margin: 2px 4px 10px !important;
}
html[data-theme="light"] .account-dropdown-v23 > strong { color:#071426 !important; }
html[data-theme="light"] .account-dropdown-v23 > small { color:#64748b !important; }
.account-actions-v23 {
  display:flex !important;
  gap:8px !important;
  align-items:center !important;
}
.account-actions-v23 form { margin:0 !important; }
.account-actions-v23 a,
.account-actions-v23 button {
  position:relative !important;
  width:38px !important;
  height:38px !important;
  border-radius:999px !important;
  border:1px solid rgba(148,163,184,.22) !important;
  background:rgba(255,255,255,.07) !important;
  color:#eaf4ff !important;
  display:grid !important;
  place-items:center !important;
  padding:0 !important;
  cursor:pointer !important;
  text-decoration:none !important;
  font:inherit !important;
}
html[data-theme="light"] .account-actions-v23 a,
html[data-theme="light"] .account-actions-v23 button {
  background:#f6f9ff !important;
  color:#071426 !important;
  border-color:rgba(15,23,42,.10) !important;
}
.account-actions-v23 svg {
  width:19px !important;
  height:19px !important;
  fill: currentColor !important;
  display:block !important;
}
.account-actions-v23 span {
  position:absolute !important;
  top:calc(100% + 8px) !important;
  left:50% !important;
  transform:translateX(-50%) translateY(-4px) !important;
  opacity:0 !important;
  pointer-events:none !important;
  white-space:nowrap !important;
  padding:5px 8px !important;
  border-radius:999px !important;
  background:#071426 !important;
  color:#fff !important;
  font-size:.70rem !important;
  font-weight:850 !important;
  box-shadow:0 12px 30px rgba(0,0,0,.24) !important;
  transition: opacity .16s ease, transform .16s ease !important;
  z-index:5 !important;
}
.account-actions-v23 a:hover span,
.account-actions-v23 a:focus-visible span,
.account-actions-v23 button:hover span,
.account-actions-v23 button:focus-visible span {
  opacity:1 !important;
  transform:translateX(-50%) translateY(0) !important;
}

/* Force readable light/dark contrast. */
html[data-theme="light"] :where(.hero-lead, .hero-content p, .section p, .page-hero p, .card p, .product-card p, .team-card-copy p, .vision-copy-v19 p, .vision-copy-v20 p) {
  color:#24364f !important;
  text-shadow:none !important;
}
html[data-theme="light"] :where(.eyebrow, .hero-content .eyebrow) {
  color:#075db4 !important;
  text-shadow:none !important;
}
html[data-theme="dark"] :where(.hero-lead, .hero-content p, .section p, .page-hero p, .card p, .product-card p, .team-card-copy p, .vision-copy-v19 p, .vision-copy-v20 p) {
  color:#c9d7ea !important;
}

/* Team portraits: validated v23 images, stable and not blurred. */
.team-card-v18 img,
.team-card img,
.team-modal-card-v18 img {
  object-fit: cover !important;
  object-position: center center !important;
  filter: grayscale(1) contrast(1.04) brightness(1.02) !important;
}

/* Partner logos: consistent visual size and zoom stays inside. */
.partner-logo-card-v18,
.partner-logo-card {
  overflow:hidden !important;
  background:#fff !important;
}
.partner-logo-card-v18 img,
.partner-logo-card img {
  width: 100% !important;
  max-width: 78% !important;
  height: 72px !important;
  max-height: 72px !important;
  object-fit: contain !important;
  display:block !important;
  margin:auto !important;
  transform-origin:center !important;
}
.partner-logo-card-v18:hover img,
.partner-logo-card:hover img {
  transform: scale(1.06) !important;
}
.partner-logo-card-v18 img[src*="uvsq"],
.partner-logo-card img[src*="uvsq"] {
  max-width: 68% !important;
  max-height: 62px !important;
}

/* Dashboard/admin: renamed visually and light initials contrast. */
html[data-theme="light"] .user-avatar-v20,
html[data-theme="light"] .user-pill-v20 b,
html[data-theme="light"] .dashboard-page .user-pill-v20 b {
  color:#fff !important;
  background: linear-gradient(135deg, #2563eb, #7c3aed) !important;
}
html[data-theme="light"] .dashboard-page .dashboard-topbar,
html[data-theme="light"] .dashboard-page .dashboard-card,
html[data-theme="light"] .admin-hero-v20,
html[data-theme="light"] .admin-list-card-v20,
html[data-theme="light"] .admin-form-card-v20 {
  background:#fff !important;
  color:#071426 !important;
}
html[data-theme="light"] .dashboard-page :where(h1,h2,h3,h4,strong,label,legend,th,td,a,button) {
  color:#071426 !important;
}
html[data-theme="light"] .dashboard-page :where(p,small,em,span,li) {
  color:#44546a !important;
}
html[data-theme="light"] .permission-pills-v20 span {
  color:#075db4 !important;
}

/* Mobile admin: ensure cards, not a wide table. */
@media (max-width: 760px) {
  .users-table-wrap-v20 { overflow:visible !important; }
  .users-table-v20, .users-table-v20 tbody, .users-table-v20 tr, .users-table-v20 td {
    display:block !important;
    width:100% !important;
    min-width:0 !important;
  }
  .users-table-v20 thead { display:none !important; }
  .users-table-v20 tr {
    margin:0 0 14px !important;
    padding:14px !important;
    border-radius:20px !important;
    background:#081325 !important;
    border:1px solid rgba(180,210,255,.14) !important;
  }
  html[data-theme="light"] .users-table-v20 tr {
    background:#fff !important;
    border-color:rgba(15,23,42,.10) !important;
  }
  .users-table-v20 td {
    padding:9px 0 !important;
    border:0 !important;
    background:transparent !important;
    display:grid !important;
    grid-template-columns: 120px minmax(0,1fr) !important;
    gap:10px !important;
  }
  .users-table-v20 td::before {
    content:attr(data-label);
    color:#67ddff !important;
    font-weight:950 !important;
    text-transform:uppercase !important;
    font-size:.70rem !important;
    letter-spacing:.08em !important;
  }
  html[data-theme="light"] .users-table-v20 td::before { color:#075db4 !important; }
}
