﻿*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --font-sans: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-brand: "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
  --teal: #0F6E56;
  --teal-dark: #085041;
  --teal-mid: #1D9E75;
  --teal-light: #E1F5EE;
  --teal-pale: #F0FAF6;
  --gold: #BA7517;
  --gold-light: #FAEEDA;
  --gold-mid: #EF9F27;
  --red-dz: #C0392B;
  --red-light: #FCEBEB;
  --purple: #534AB7;
  --purple-light: #EEEDFE;
  --blue: #185FA5;
  --blue-light: #E6F1FB;
  --cream: #FAFAF8;
  --white: #ffffff;
  --text: #1a1a1a;
  --text-muted: #6b7280;
  --text-light: #9ca3af;
  --border: rgba(0,0,0,0.08);
  --border-md: rgba(0,0,0,0.12);
  --shadow-sm: 0 1px 4px rgba(0,0,0,0.06);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.08);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.12);
  --bg: #FAFAF8;
  --card-bg: #ffffff;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --nav-h: 60px;
}

/* Dark Mode */
.dark {
  --bg: #1a1a1a;
  --card-bg: #2d2d2d;
  --text: #ffffff;
  --text-muted: #b0b0b0;
  --text-light: #808080;
  --border: rgba(255,255,255,0.1);
  --border-md: rgba(255,255,255,0.15);
  --shadow-sm: 0 1px 4px rgba(0,0,0,0.3);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.4);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.5);
  --cream: #2d2d2d;
  --white: #2d2d2d;
}

html { scroll-behavior: smooth; }
body { font-family: var(--font-sans); background: var(--bg); color: var(--text); font-size: 14px; line-height: 1.6; }
body.modal-open { overflow: hidden; }

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--cream); }
::-webkit-scrollbar-thumb { background: var(--teal-light); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--teal-mid); }

/* ─── TYPOGRAPHY ─── */
h1,h2,h3,h4,h5 { font-weight: 600; line-height: 1.3; color: var(--text); }
h1 { font-size: 28px; }
h2 { font-size: 22px; }
h3 { font-size: 18px; }
h4 { font-size: 15px; }
h5 { font-size: 13px; }
p { line-height: 1.7; }
a { text-decoration: none; color: var(--teal); }
a:hover { color: var(--teal-dark); }

/* ─── UTILITIES ─── */
.hidden { display: none !important; }
.flex { display: flex; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.gap-4 { gap: 4px; }
.gap-8 { gap: 8px; }
.gap-12 { gap: 12px; }
.gap-16 { gap: 16px; }
.mb-8 { margin-bottom: 8px; }
.mb-12 { margin-bottom: 12px; }
.mb-16 { margin-bottom: 16px; }
.text-muted { color: var(--text-muted); }
.text-teal { color: var(--teal); }
.text-sm { font-size: 12px; }
.text-xs { font-size: 11px; }
.fw-600 { font-weight: 600; }
.w-100 { width: 100%; }

/* ─── BUTTONS ─── */
.btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 18px; border-radius: var(--radius-md);
  font-size: 13px; font-weight: 600; font-family: var(--font-sans);
  border: none; cursor: pointer; transition: all .2s;
}
.btn-primary { background: var(--teal); color: #fff; }
.btn-primary:hover { background: var(--teal-dark); transform: translateY(-1px); box-shadow: var(--shadow-md); }
.btn-outline { background: none; border: 1px solid var(--teal); color: var(--teal); }
.btn-outline:hover { background: var(--teal-light); }
.btn-ghost { background: none; border: 1px solid var(--border-md); color: var(--text-muted); }
.btn-ghost:hover { background: var(--cream); border-color: var(--teal); color: var(--teal); }
.btn-gold { background: var(--gold); color: #fff; }
.btn-gold:hover { background: #9a6010; }
.btn-danger { background: var(--red-dz); color: #fff; }
.btn-sm { padding: 5px 12px; font-size: 12px; }
.btn-lg { padding: 12px 28px; font-size: 15px; }
.btn-block { width: 100%; justify-content: center; }

/* ─── BADGE ─── */
.badge {
  display: inline-block; padding: 2px 8px; border-radius: 20px;
  font-size: 10px; font-weight: 600; letter-spacing: .4px;
}
.badge-teal { background: var(--teal-light); color: var(--teal); }
.badge-blue { background: var(--blue-light); color: var(--blue); }
.badge-gold { background: var(--gold-light); color: var(--gold); }
.badge-purple { background: var(--purple-light); color: var(--purple); }
.badge-red { background: var(--red-light); color: var(--red-dz); }
.badge-gray { background: #f3f4f6; color: var(--text-muted); }

/* ─── TAG CHIPS ─── */
.tag { display: inline-block; padding: 3px 10px; background: var(--cream); border: 1px solid var(--border); border-radius: 20px; font-size: 11px; color: var(--text-muted); }

/* ─── CARD ─── */
.card {
  background: var(--card-bg); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: 18px;
  transition: box-shadow .2s, border-color .2s;
}
.card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.card-flat { background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px; }

/* Skeleton Loader */
.skeleton {
  background: linear-gradient(90deg, var(--border) 25%, var(--border-md) 50%, var(--border) 75%);
  background-size: 200% 100%;
  animation: loading 1.5s infinite;
}
@keyframes loading {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ─── FORM ELEMENTS ─── */
.input, .textarea, .select {
  width: 100%; padding: 10px 14px; background: var(--card-bg);
  border: 1px solid var(--border-md); border-radius: var(--radius-md);
  font-size: 13px; font-family: var(--font-sans); color: var(--text);
  transition: border-color .2s, box-shadow .2s;
}
.input:focus, .textarea:focus, .select:focus {
  outline: none; border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(15,110,86,.1);
}
.input.is-invalid, .textarea.is-invalid, .select.is-invalid { border-color: #C0392B; }
.input::placeholder, .textarea::placeholder { color: var(--text-light); }
.textarea { resize: vertical; min-height: 100px; }
.form-group { margin-bottom: 16px; }
.form-label { display: block; font-size: 12px; font-weight: 600; color: var(--text-muted); margin-bottom: 6px; letter-spacing: .3px; text-transform: uppercase; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

/* ─── AVATAR ─── */
.avatar {
  border-radius: 50%; display: flex; align-items: center;
  justify-content: center; font-weight: 600; flex-shrink: 0;
  background: var(--teal-light); color: var(--teal); font-size: 14px;
}
.avatar-sm { width: 32px; height: 32px; font-size: 12px; }
.avatar-md { width: 42px; height: 42px; font-size: 15px; }
.avatar-lg { width: 56px; height: 56px; font-size: 20px; }
.avatar-xl { width: 80px; height: 80px; font-size: 28px; }
.avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }

/* ─── DIVIDER ─── */
.divider { height: 1px; background: var(--border); margin: 16px 0; }

/* ─── ALERT ─── */
.alert { padding: 12px 16px; border-radius: var(--radius-md); font-size: 13px; display: flex; gap: 10px; align-items: flex-start; }
.alert-info { background: var(--blue-light); color: var(--blue); border: 1px solid rgba(24,95,165,.15); }
.alert-success { background: var(--teal-light); color: var(--teal); border: 1px solid rgba(15,110,86,.15); }
.alert-warning { background: var(--gold-light); color: var(--gold); border: 1px solid rgba(186,117,23,.15); }
.alert-danger { background: var(--red-light); color: var(--red-dz); border: 1px solid rgba(192,57,43,.15); }

/* ─── NAVIGATION ─── */
.navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: var(--nav-h); background: var(--card-bg);
  border-bottom: 1px solid var(--border);
  display: flex; align-items: center; padding: 0 24px; gap: 20px;
  box-shadow: var(--shadow-sm);
}
.navbar.scrolled { box-shadow: 0 2px 16px rgba(0,0,0,.1); }
.navbar-brand {
  font-family: var(--font-brand); font-size: 24px; font-weight: 700;
  color: var(--teal); display: flex; align-items: center; gap: 8px;
  text-decoration: none; min-width: 180px;
}
.navbar-brand .dz-badge {
  font-family: var(--font-sans); font-size: 10px; font-weight: 700;
  background: var(--red-dz); color: #fff; padding: 2px 6px;
  border-radius: 4px; letter-spacing: 1px;
}
.navbar-search {
  flex: 1; max-width: 360px; position: relative;
}
.navbar-search input {
  width: 100%; padding: 8px 44px 8px 38px; background: var(--card-bg);
  border: 1px solid var(--border); border-radius: 24px;
  font-size: 13px; font-family: var(--font-sans);
  transition: all .2s;
}
.navbar-search input:focus { outline: none; border-color: var(--teal); background: var(--card-bg); box-shadow: 0 0 0 3px rgba(15,110,86,.08); }
.navbar-search .search-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--text-muted); font-size: 14px; }
.search-filter-btn { position:absolute; right:6px; top:50%; transform:translateY(-50%); width:30px; height:30px; border:0; border-radius:50%; background:transparent; cursor:pointer; font-size:16px; line-height:1; color:var(--text-muted); display:flex; align-items:center; justify-content:center; font-family:Arial,sans-serif; }
.search-filter-btn:hover { background:var(--teal-light); }
.search-filter-menu { display:none; position:absolute; top:42px; right:0; width:220px; padding:10px; background:#fff; border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:var(--shadow-lg); z-index:650; }
.search-filter-menu.open { display:flex; flex-direction:column; gap:8px; }
.search-filter-menu label { display:grid; grid-template-columns:18px 1fr; align-items:center; gap:8px; font-size:12px; font-weight:600; color:var(--text); cursor:pointer; line-height:1.35; }
.search-filter-menu input { width:16px; height:16px; margin:0; }
.search-dropdown { display:none; position:absolute; top:42px; left:0; right:0; background:#fff; border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:var(--shadow-lg); z-index:600; max-height:360px; overflow-y:auto; }
.navbar-nav { display: flex; gap: 4px; flex: 1; justify-content: center; }
.nav-item {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 14px;
  color: var(--text-muted);
  cursor: pointer; border: 1px solid transparent; background: transparent;
  transition: background .15s, color .15s, border-color .15s, box-shadow .15s;
  text-decoration: none; position: relative;
}
.nav-item:hover {
  color: var(--teal);
  background: rgba(15,143,140,.09);
  border-color: rgba(15,143,140,.14);
}
.nav-item.active {
  color: #0b746f;
  background: rgba(209,250,229,.82);
  border-color: rgba(15,143,140,.18);
  box-shadow: 0 6px 16px rgba(15,143,140,.12);
}
.nav-item .nav-icon { font-size: 20px; line-height: 1; }
.nav-text { display: none; }
.nav-item .nav-badge {
  position: absolute; top: 4px; right: 4px; background: var(--red-dz);
  color: #fff; font-size: 9px; font-weight: 700; padding: 1px 4px;
  border-radius: 8px; line-height: 1.2;
}
/* Tooltip au survol */
.nav-item::after {
  content: attr(data-tip);
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: #102331;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
  padding: 5px 10px;
  border-radius: 8px;
  pointer-events: none;
  opacity: 0;
  transition: opacity .14s;
  z-index: 100;
}
.nav-item:hover::after { opacity: 1; }
.nav-more-trigger {
  font-family: inherit;
}
.nav-more-menu {
  display: none;
  position: fixed;
  top: calc(var(--nav-h) - 4px);
  left: 50%;
  transform: translateX(-50%);
  width: min(520px, calc(100vw - 28px));
  padding: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-lg);
  z-index: 1200;
}
.nav-more-menu.open {
  display: grid;
}
.nav-more-menu a {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 11px;
  border-radius: 12px;
  color: var(--text);
  border: 1px solid transparent;
  background: transparent;
  text-decoration: none;
}
.nav-more-menu a:hover {
  background: var(--teal-pale);
  border-color: rgba(15,110,86,.12);
  color: var(--teal);
}
.nav-more-menu a span {
  width: 24px;
  text-align: center;
  font-size: 17px;
}
.nav-more-menu a strong {
  font-size: 12px;
  font-weight: 800;
}
.navbar-actions { display: flex; align-items: center; gap: 8px; min-width: 180px; justify-content: flex-end; }
.icon-btn {
  width: 38px; height: 38px; border-radius: 50%;
  border: none; background: var(--cream); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 17px; position: relative; transition: all .15s;
}
.icon-btn:hover { background: var(--teal-light); }
.icon-btn .badge-dot {
  width: 9px; height: 9px; background: var(--red-dz); border-radius: 50%;
  position: absolute; top: 6px; right: 6px; border: 2px solid #fff;
}

/* ─── PAGE WRAPPER ─── */
.page-wrapper { margin-top: var(--nav-h); min-height: calc(100vh - var(--nav-h)); }

/* ─── 3-COL LAYOUT ─── */
.layout-3col {
  display: grid;
  grid-template-columns: 230px 1fr 250px;
  gap: 18px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 18px;
}
.layout-2col {
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: 18px;
  max-width: 1000px;
  margin: 0 auto;
  padding: 20px 18px;
}
.layout-center {
  max-width: 720px;
  margin: 0 auto;
  padding: 20px 18px;
}
.layout-wide {
  max-width: 1100px;
  margin: 0 auto;
  padding: 20px 18px;
}

/* ─── SIDEBAR ─── */
.sidebar { display: flex; flex-direction: column; gap: 14px; }
#right-sidebar-placeholder .sidebar {
  position: sticky;
  top: 80px;
}
#left-sidebar-placeholder .sidebar {
  position: static;
  top: auto;
}
.sidebar-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.sidebar-card-body { padding: 16px; }
.sidebar-title { font-size: 11px; font-weight: 700; color: var(--text-muted); letter-spacing: .8px; text-transform: uppercase; margin-bottom: 12px; }
.sidebar-link {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 8px 10px; border-radius: var(--radius-sm); font-size: 13px;
  font-weight: 500; color: var(--text); border: none; background: none;
  cursor: pointer; transition: all .15s; text-align: left; text-decoration: none;
}
.sidebar-link:hover { background: var(--teal-pale); color: var(--teal); }
.sidebar-link.active { background: var(--teal-light); color: var(--teal); }
.sidebar-link .sl-icon { width: 22px; text-align: center; font-size: 15px; }
.sidebar-link .sl-count { margin-left: auto; font-size: 11px; font-weight: 700; background: var(--red-dz); color: #fff; padding: 1px 6px; border-radius: 10px; }

/* ─── PROFILE CARD (sidebar) ─── */
.profile-sidebar-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.profile-banner { height: 56px; background: linear-gradient(135deg, var(--teal) 0%, var(--teal-mid) 55%, var(--gold-mid) 100%); }
.profile-sidebar-body { padding: 0 16px 16px; }
.profile-sidebar-avatar { width: 52px; height: 52px; border-radius: 50%; background: var(--white); border: 3px solid var(--white); margin-top: -26px; display: flex; align-items: center; justify-content: center; font-size: 22px; box-shadow: var(--shadow-sm); }
.profile-sidebar-name { font-size: 14px; font-weight: 700; margin-top: 8px; }
.profile-sidebar-spec { font-size: 12px; color: var(--teal); font-weight: 500; }
.profile-sidebar-loc { font-size: 11px; color: var(--text-muted); display: flex; align-items: center; gap: 4px; margin-top: 2px; }
.profile-sidebar-stats { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 4px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.pstat { text-align: center; }
.pstat-n { font-size: 15px; font-weight: 700; color: var(--teal); }
.pstat-l { font-size: 10px; color: var(--text-muted); }

/* ─── POST / FEED ─── */
.feed { display: flex; flex-direction: column; gap: 14px; max-width: 650px; margin: 0 auto; }
.composer { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px; }
.composer-row { display: flex; gap: 12px; align-items: center; }
.composer-fake-input {
  flex: 1; padding: 10px 16px; background: var(--cream); border: 1px solid var(--border);
  border-radius: 24px; font-size: 13px; color: var(--text-muted); cursor: pointer;
  transition: all .15s;
}
.composer-fake-input:hover { border-color: var(--teal); background: #fff; }
.composer-btns { display: flex; gap: 6px; padding-top: 12px; border-top: 1px solid var(--border); margin-top: 12px; }
.composer-btn {
  display: flex; align-items: center; gap: 5px; padding: 6px 12px;
  border-radius: var(--radius-sm); font-size: 12px; font-weight: 500;
  color: var(--text-muted); border: none; background: none; cursor: pointer;
  transition: all .15s; font-family: var(--font-sans);
}
.composer-btn:hover { background: var(--teal-light); color: var(--teal); }

.feed-filters { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 4px; display: flex; gap: 4px; }
.feed-filter { flex: 1; padding: 8px; font-size: 12px; font-weight: 600; border-radius: var(--radius-md); border: none; background: none; cursor: pointer; color: var(--text-muted); transition: all .15s; font-family: var(--font-sans); }
.feed-filter.active { background: var(--teal); color: #fff; }
.feed-filter:hover:not(.active) { background: var(--teal-pale); color: var(--teal); }

.feed-control-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 10px 0 12px;
}
.feed-control-title {
  font-size: 14px;
  font-weight: 800;
  color: var(--text);
}
.feed-filter-menu-wrap {
  position: relative;
  display: flex;
  justify-content: flex-end;
  margin-bottom: 0;
}
.feed-filter-trigger {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--text);
  cursor: pointer;
  font-family: var(--font-sans);
  font-size: 12px;
  box-shadow: none;
}
.feed-filter-menu-wrap .feed-filters {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: min(260px, calc(100vw - 32px));
  z-index: 80;
  margin: 0;
  padding: 8px;
  flex-direction: column;
  gap: 5px;
  overflow: visible;
  box-shadow: var(--shadow-lg);
}
.feed-filter-menu-wrap .feed-filters.open {
  display: flex;
}
.feed-filter-menu-wrap .feed-filter {
  width: 100%;
  flex: none;
  text-align: left;
  justify-content: flex-start;
  border-radius: var(--radius-md);
}

.post-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px; transition: all .2s; cursor: pointer; }
.post-card:hover { border-color: var(--teal-mid); box-shadow: var(--shadow-md); }
.post-header { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 12px; }
.post-meta { flex: 1; }
.post-author { font-size: 14px; font-weight: 700; }
.post-spec { font-size: 12px; color: var(--teal); font-weight: 500; }
.post-time { font-size: 11px; color: var(--text-muted); margin-top: 1px; }
.post-content { font-size: 13px; line-height: 1.65; color: var(--text); margin-bottom: 12px; }
.post-tags { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 12px; }
.post-actions { display: flex; gap: 6px; padding-top: 12px; border-top: 1px solid var(--border); flex-wrap: wrap; }
.post-action-btn {
  display: flex; align-items: center; gap: 5px; padding: 6px 10px;
  border-radius: var(--radius-sm); font-size: 12px; color: var(--text-muted);
  border: none; background: none; cursor: pointer; transition: all .15s;
  font-family: var(--font-sans);
}
.post-action-btn:hover { color: var(--teal); background: var(--teal-light); }
.post-action-btn.liked { color: var(--teal); }

.feed-comments-inline {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 8px;
}
.feed-load-comments-btn {
  align-self: flex-start;
  border: 0;
  background: transparent;
  color: var(--teal);
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
  padding: 4px 0;
  font-family: inherit;
}
.feed-inline-comment {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.feed-inline-comment-bubble {
  flex: 1;
  min-width: 0;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 8px 10px;
}
.feed-inline-comment-author {
  font-size: 12px;
  font-weight: 800;
  color: var(--text);
}
.feed-inline-comment-text {
  font-size: 12px;
  line-height: 1.5;
  color: var(--text);
  margin-top: 2px;
  white-space: pre-wrap;
}
.feed-inline-comment-meta,
.feed-inline-empty {
  font-size: 10px;
  color: var(--text-muted);
  margin-top: 3px;
}
.feed-inline-composer {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border);
  margin-top: 8px;
}
.feed-inline-input {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--cream);
  color: var(--text);
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
  font-family: inherit;
}
.feed-inline-input:focus {
  border-color: var(--teal);
  background: var(--white);
}
.feed-inline-send {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 0;
  background: var(--teal);
  color: #fff;
  cursor: pointer;
  font-weight: 800;
  flex-shrink: 0;
}
.comment-reply-btn {
  border: 0;
  background: transparent;
  color: var(--teal);
  font: inherit;
  font-weight: 750;
  cursor: pointer;
  padding: 0;
}
.comment-replies {
  margin-top: 8px;
  padding-left: 12px;
  border-left: 2px solid var(--border);
}
.comment-reply-slot { margin-top: 8px; }
.comment-reply-composer {
  display: flex;
  align-items: center;
  gap: 8px;
}
.mention-link {
  color: var(--teal);
  font-weight: 800;
  background: var(--teal-pale);
  border-radius: 6px;
  padding: 0 3px;
}
.mention-anchor { position: relative; }
.mention-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 2000;
  width: min(280px, calc(100vw - 24px));
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: var(--shadow-lg);
  padding: 6px;
}
.mention-menu button {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  border: 0;
  background: transparent;
  color: var(--text);
  border-radius: 7px;
  padding: 8px 9px;
  cursor: pointer;
  font-family: inherit;
  font-size: 12px;
  font-weight: 800;
}
.mention-menu button:hover { background: var(--teal-pale); color: var(--teal); }
.mention-menu small { color: var(--text-muted); font-weight: 600; }

/* ─── CASE CARD ─── */
.case-card {
  background: var(--white); border: 1px solid var(--border);
  border-left: 3px solid var(--teal); border-radius: var(--radius-lg); padding: 18px;
  transition: all .2s; cursor: pointer;
}
.case-card:hover { box-shadow: var(--shadow-md); }
.case-stats { display: flex; gap: 16px; margin-top: 10px; flex-wrap: wrap; }
.case-stat { font-size: 12px; color: var(--text-muted); display: flex; align-items: center; gap: 4px; }

/* ─── PROFILE PAGE ─── */
.profile-cover { height: 200px; background: linear-gradient(135deg, var(--teal) 0%, var(--teal-mid) 50%, var(--gold-mid) 100%); border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.profile-hero { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 16px; }
.profile-hero-body { padding: 0 28px 24px; display: flex; gap: 20px; align-items: flex-end; }
.profile-hero-avatar { width: 96px; height: 96px; border-radius: 50%; border: 4px solid var(--white); margin-top: -48px; background: var(--teal-light); display: flex; align-items: center; justify-content: center; font-size: 36px; flex-shrink: 0; box-shadow: var(--shadow-md); }
.profile-hero-info { flex: 1; padding-top: 12px; }
.profile-hero-name { font-size: 22px; font-weight: 700; }
.profile-hero-spec { font-size: 14px; color: var(--teal); font-weight: 600; margin-top: 2px; }
.profile-hero-loc { font-size: 13px; color: var(--text-muted); margin-top: 4px; }
.profile-hero-stats { display: flex; gap: 24px; margin-top: 12px; }
.profile-stat-n { font-size: 18px; font-weight: 700; color: var(--teal); }
.profile-stat-l { font-size: 11px; color: var(--text-muted); }

/* ─── JOB CARD ─── */
.job-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px; transition: all .2s; }
.job-card:hover { box-shadow: var(--shadow-md); border-color: var(--teal-mid); }
.job-card-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.job-title { font-size: 15px; font-weight: 700; color: var(--text); }
.job-company { font-size: 13px; color: var(--teal); font-weight: 500; margin-top: 2px; }
.job-location { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.job-tags { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 10px; }
.job-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }

/* ─── FORMATION CARD ─── */
.formation-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px; transition: all .2s; }
.formation-card:hover { box-shadow: var(--shadow-md); }
.formation-date-badge { min-width: 54px; background: var(--teal-light); border-radius: var(--radius-md); padding: 10px; text-align: center; flex-shrink: 0; }
.formation-date-n { font-size: 22px; font-weight: 700; color: var(--teal); line-height: 1; }
.formation-date-m { font-size: 11px; color: var(--teal); font-weight: 600; letter-spacing: .5px; }

/* ─── BIBLIO CARD ─── */
.biblio-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px; transition: all .2s; }
.biblio-card:hover { box-shadow: var(--shadow-md); }
.biblio-title { font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--text); margin-bottom: 5px; }
.biblio-authors { font-size: 12px; color: var(--text-muted); margin-bottom: 8px; }

/* ─── SUGGEST USER ─── */
.suggest-user { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.suggest-user:last-child { border-bottom: none; padding-bottom: 0; }
.suggest-user-info { flex: 1; min-width: 0; }
.suggest-user-name { font-size: 13px; font-weight: 600; white-space: normal; line-height: 1.35; overflow-wrap: anywhere; }
.suggest-user-spec { font-size: 11px; color: var(--teal); }
.suggest-user-loc { font-size: 11px; color: var(--text-muted); }

/* ─── TRENDING ─── */
.trend-item { padding: 9px 0; border-bottom: 1px solid var(--border); cursor: pointer; }
.trend-item:last-child { border-bottom: none; }
.trend-tag { font-size: 13px; font-weight: 600; color: var(--teal); }
.trend-count { font-size: 11px; color: var(--text-muted); margin-top: 2px; }

/* ─── EVENT ─── */
.event-item { padding: 10px 0; border-bottom: 1px solid var(--border); }
.event-item:last-child { border-bottom: none; }
.event-date { font-size: 11px; font-weight: 700; color: var(--gold); text-transform: uppercase; letter-spacing: .5px; }
.event-title { font-size: 13px; font-weight: 600; margin-top: 2px; line-height: 1.3; }
.event-loc { font-size: 11px; color: var(--text-muted); margin-top: 2px; }

/* ─── MODAL ─── */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 2000;
  display: flex; align-items: center; justify-content: center; padding: 20px;
  opacity: 0; pointer-events: none; transition: opacity .2s;
}
.modal-overlay.open { opacity: 1; pointer-events: all; }
.modal-overlay.active { opacity: 1; pointer-events: all; }
.modal { background: var(--white); border-radius: var(--radius-xl); padding: 28px; max-width: 560px; width: 100%; max-height: 90vh; overflow-y: auto; transform: scale(.96); transition: transform .2s; box-shadow: var(--shadow-lg); }
.modal-overlay.open .modal { transform: scale(1); }
.modal-overlay.active .modal { transform: scale(1); }
.modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.modal-title { font-size: 18px; font-weight: 700; }
.modal-close { width: 32px; height: 32px; border-radius: 50%; border: none; background: var(--cream); cursor: pointer; font-size: 18px; display: flex; align-items: center; justify-content: center; transition: all .15s; }
.modal-close:hover { background: var(--red-light); color: var(--red-dz); }

/* ─── NOTIFICATION PANEL ─── */
.notif-panel {
  position: fixed; top: calc(var(--nav-h) + 8px); right: 16px;
  width: 340px; background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);
  z-index: 1500; display: none; max-height: 480px; overflow-y: auto;
}
.notif-panel.open { display: block; }
.notif-panel-header { padding: 14px 16px; border-bottom: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; }
.notif-item { padding: 12px 16px; border-bottom: 1px solid var(--border); display: flex; gap: 10px; cursor: pointer; transition: background .15s; }
.notif-item:hover { background: var(--teal-pale); }
.notif-item.unread { background: var(--teal-light); }
.notif-item:last-child { border-bottom: none; }
.notif-text { font-size: 13px; line-height: 1.5; }
.notif-time { font-size: 11px; color: var(--text-muted); margin-top: 3px; }

/* ─── TOAST ─── */
.toast-container { position: fixed; top: 96px; right: 22px; z-index: 4000; display: flex; flex-direction: column; gap: 10px; width: min(390px, calc(100vw - 28px)); pointer-events: none; }
.toast {
  background: rgba(255,255,255,.98); color: #172033; padding: 13px 12px;
  border: 1px solid #dce8e5; border-left: 4px solid var(--teal);
  border-radius: 8px; font-size: 13px; font-weight: 700; line-height: 1.45;
  display: grid; grid-template-columns: 30px minmax(0,1fr) 24px; align-items: center; gap: 10px; max-width: 390px;
  animation: slideInToast .22s ease; box-shadow: 0 18px 40px rgba(15,23,42,.16); pointer-events: auto;
}

/* CSP cleanup utilities */
.u-hidden { display: none !important; }
.u-center-muted { text-align: center; padding: 40px; color: var(--text-muted); }
.u-center-muted-lg { text-align: center; padding: 60px; color: var(--text-muted); }
.u-filter-gap { margin-bottom: 16px; }
.u-filter-gap-lg { margin-bottom: 20px; }
.u-flex-1 { flex: 1; }
.u-card-actions-end { justify-content: flex-end; }
.u-center-small-muted { font-size: 12px; color: var(--text-muted); }
.u-pagination-center { margin-top: 16px; text-align: center; }
.u-load-more-center { text-align: center; margin-top: 16px; }
.u-avatar-teal { background: var(--teal); color: #fff; }
.u-loading-icon { font-size: 32px; margin-bottom: 10px; }
.u-inline-top { margin-top: 16px; }
.u-row-wrap { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.u-row-between { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 8px; }
.u-row-between-loose { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.u-actions-column { display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }
.u-meta-xs { font-size: 11px; color: var(--text-muted); }
.u-meta-sm { font-size: 12px; color: var(--text-muted); }
.u-meta-teal { font-size: 12px; color: var(--teal); }
.u-card-gap { margin-bottom: 12px; }
.u-card-gap-lg { margin-bottom: 14px; }
.u-title-sm { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.u-text-preview { font-size: 13px; color: var(--text-muted); line-height: 1.6; margin: 0 0 10px; }
.u-text-preview-tight { font-size: 13px; color: var(--text-muted); line-height: 1.6; margin: 0 0 8px; }
.u-danger-text { color: #ef4444; }
.u-inline-cta { margin-top: 16px; display: inline-flex; }
.saved-offer-card { margin-bottom: 12px; border-left: 3px solid var(--teal); }
.bp-meta-actions { margin-top: 8px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.bp-detail-meta { margin-bottom: 12px; }
.bp-detail-desc { white-space: pre-line; color: var(--text); font-size: 14px; line-height: 1.7; }
.resource-empty-actions { justify-content: center; margin-top: 14px; }
.resource-alert-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.resource-alert-title { font-size: 16px; margin: 0 0 6px; }
.resource-alert-score { font-size: 12px; color: var(--text-muted); }
.resource-alert-desc { margin: 8px 0; color: var(--text); }
.resource-alert-foot { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; }
.resource-alert-source { color: var(--text-muted); }
.resource-comment-loading { padding: 14px; }
.watch-meta-row { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.watch-actions-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding-top: 10px; border-top: 1px solid var(--border); }
.watch-source-row { font-size: 12px; color: var(--text-muted); display: flex; gap: 10px; flex-wrap: wrap; }
.watch-button-row { display: flex; gap: 6px; flex-wrap: wrap; }
.watch-date { font-size: 11px; color: var(--text-muted); }
.watch-empty-title { font-weight: 600; }
.watch-empty-help { font-size: 13px; margin-top: 8px; }
.watch-sidebar-item { padding: 6px 0; border-bottom: 1px solid rgba(10,124,92,.15); }
.watch-sidebar-title { font-weight: 600; font-size: 12px; }
.watch-sidebar-source { color: var(--teal); font-size: 11px; }
.weekly-date { font-size: 13px; color: var(--text-muted); margin-bottom: 20px; }
.weekly-item { padding: 8px 0; border-bottom: 1px solid var(--border); }
.weekly-item.compact { padding: 6px 0; border-bottom-color: rgba(10,124,92,.15); }
.weekly-link, .weekly-title { font-weight: 600; font-size: 13px; }
.weekly-title.red { color: var(--red-dz); }
.weekly-meta { font-size: 11px; color: var(--text-muted); }
.weekly-card { margin-bottom: 14px; }
.weekly-card-title { font-weight: 700; margin-bottom: 10px; }
.weekly-card-title.empty { margin-bottom: 8px; }
.staff-case-card { margin-bottom: 14px; cursor: pointer; }
.badge-demo-small { font-size: 9px; }
.staff-sidebar-item { padding: 8px 0; border-bottom: 1px solid var(--border); }
.staff-sidebar-link { font-size: 12px; font-weight: 600; color: var(--text); }
.staff-sidebar-danger { font-size: 11px; color: var(--red-dz); }
.staff-sidebar-empty { font-size: 12px; color: var(--text-muted); }
.staff-spec-filter-btn { width: 100%; justify-content: space-between; margin-bottom: 6px; }
.u-flex-min { flex: 1; min-width: 0; }
.u-title-compact { font-size: 15px; font-weight: 700; margin: 0 0 2px; }
.char-counter { font-size: 11px; color: var(--text-muted); text-align: right; margin-top: 4px; }
.char-counter.warning { color: var(--red-dz); }
.contact-alert { display: none; }
.contact-alert.show { display: flex; }
.agenda-calendar.is-hidden,
.agenda-list.is-hidden { display: none; }
.academy-detail-link.is-hidden { display: none; }
.onboarding-empty.spaced { margin-bottom: 10px; }
.community-file-input { display: none; }
.community-action-avatar { cursor: pointer; background: var(--teal-light); }
.community-skeleton-lg { height: 200px; border: none; }
.community-skeleton-md { height: 180px; border: none; }
.community-skeleton-xl { height: 220px; border: none; }
.community-empty-icon { font-size: 40px; margin-bottom: 12px; }
.community-empty-title { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.staff-anonymization-card { background: var(--red-light); border-color: rgba(192,57,43,.2); }
.staff-anonymization-title { font-size: 13px; font-weight: 700; color: var(--red-dz); margin-bottom: 8px; }
.staff-anonymization-rules { font-size: 12px; color: var(--text-muted); line-height: 1.7; }
.search-page-shell { max-width: 800px; margin: 0 auto; padding: 24px 18px; }
.search-query-display { font-size: 13px; color: var(--text-muted); margin-bottom: 16px; }
.search-empty-icon { font-size: 40px; margin-bottom: 12px; }
.search-section-title { font-size: 11px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 1px; margin: 16px 0 8px; }
.search-result-card { margin-bottom: 8px; cursor: pointer; }
.search-user-card { margin-bottom: 8px; display: flex; align-items: center; gap: 12px; cursor: pointer; }
.search-result-avatar { background: var(--teal-light); }
.search-result-main { flex: 1; min-width: 0; }
.search-result-name { font-weight: 700; }
.search-result-title-compact { font-size: 14px; font-weight: 700; margin: 6px 0; }
.search-result-title-line { font-size: 14px; font-weight: 700; }
.search-result-meta-line { font-size: 12px; color: var(--text-muted); }
.search-result-meta-line.teal { color: var(--teal); }
.academy-ms-promo-card { display:block;text-decoration:none;background:linear-gradient(135deg,var(--teal) 0%,var(--teal-dark,#0d7377) 100%);border-radius:14px;padding:20px;margin-bottom:16px;color:#fff;transition:opacity .2s; }
.academy-ms-promo-eyebrow { font-size:11px;font-weight:700;letter-spacing:.08em;opacity:.82;text-transform:uppercase;margin-bottom:8px; }
.academy-ms-promo-title { font-size:18px;font-weight:800;margin-bottom:6px; }
.academy-ms-promo-copy { font-size:13px;opacity:.88;line-height:1.5;margin-bottom:14px; }
.academy-ms-promo-cta { display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:8px;padding:6px 14px;font-size:13px;font-weight:700; }
.academy-agenda-link { margin-top:8px; }
.nav-create-wrap,
.nav-profile-wrap { position: relative; }
.nav-admin-btn { background: var(--teal-light); color: var(--teal); }
.nav-profile-avatar { cursor: pointer; background: var(--teal); color: #fff; }
.avatar-img-cover { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.search-dropdown.open { display: block; }
.search-result-section { padding: 8px 12px; font-size: 11px; color: var(--text-muted); font-weight: 700; text-transform: uppercase; }
.search-result-link { display: block; padding: 10px 14px; text-decoration: none; color: var(--text); border-bottom: 1px solid var(--border); }
.search-result-link.user { display: flex; gap: 10px; align-items: center; }
.search-result-title { font-size: 13px; font-weight: 600; }
.search-result-meta { font-size: 11px; color: var(--text-muted); }
.search-result-meta.teal { color: var(--teal); }
.search-result-empty { padding: 20px; text-align: center; color: var(--text-muted); font-size: 13px; }
.chat-popup.open,
.chat-widget-open .chat-popup { display: block; }
.chat-widget-open .chat-float-btn,
.chat-float-btn.u-hidden { display: none; }
.profile-sidebar-action-spaced { margin-top: 10px; }
.sidebar-link-admin { color: var(--teal); font-weight: 700; }
.right-sidebar-avatar-action { cursor: pointer; }
.footer-medical-note { font-size: 11px; }
.toast-icon { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: #e8f7f4; color: var(--teal); font-size: 11px; font-weight: 900; }
.toast-message { min-width: 0; overflow-wrap: anywhere; }
.toast-close, .ui-dialog-x { border: 0; background: transparent; color: #64748b; cursor: pointer; font: 800 18px/1 var(--font-sans); }
.toast.success { border-left-color: var(--teal); }
.toast.error { border-left-color: var(--red-dz); }
.toast.error .toast-icon { background: #fee2e2; color: var(--red-dz); }
.toast.warning { border-left-color: var(--gold-mid); }
.toast.warning .toast-icon { background: #fff7d6; color: #9a6a00; }
.toast.info { border-left-color: #2563eb; }
.toast.info .toast-icon { background: #dbeafe; color: #2563eb; }
.toast-actionable { cursor: pointer; }
@keyframes slideInToast { from { transform: translateY(-8px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

.ui-dialog-backdrop { position: fixed; inset: 0; z-index: 4200; display: none; align-items: center; justify-content: center; padding: 18px; background: rgba(15,23,42,.52); backdrop-filter: blur(10px); }
.ui-dialog-backdrop.active { display: flex; }
.ui-dialog { width: min(460px, 100%); background: rgba(255,255,255,.98); border: 1px solid rgba(15,118,110,.16); border-radius: 22px; box-shadow: 0 32px 90px rgba(15,23,42,.26); overflow: hidden; animation: uiDialogIn .18s ease; }
.ui-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px 12px; border-bottom: 1px solid rgba(226,232,240,.86); }
.ui-dialog-head strong { font-size: 18px; color: #0f172a; font-weight: 900; letter-spacing: 0; }
.ui-dialog-body { padding: 18px 20px; color: #334155; font-size: 15px; line-height: 1.65; font-weight: 650; }
.ui-dialog-body p { margin: 0; white-space: pre-line; }
.ui-dialog-input { width: 100%; margin-top: 12px; padding: 12px 14px; border: 1px solid #d7e4e1; border-radius: 12px; resize: vertical; font: inherit; }
.ui-dialog-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 20px 20px; border-top: 1px solid rgba(226,232,240,.86); background: linear-gradient(180deg,#fbfdfc,#f8fbff); }
.ui-dialog-actions .btn { min-height: 42px; border-radius: 14px; padding-inline: 18px; font-weight: 900; }
@keyframes uiDialogIn { from { transform: translateY(8px) scale(.98); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }

/* ─── LANDING / AUTH ─── */
.auth-page { min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr; }
.auth-left { background: linear-gradient(160deg, var(--teal-dark) 0%, var(--teal) 40%, var(--teal-mid) 70%, var(--gold-mid) 100%); display: flex; flex-direction: column; justify-content: center; padding: 60px; color: #fff; }
.auth-logo { font-family: var(--font-brand); font-size: 36px; font-weight: 700; display: flex; align-items: center; gap: 10px; margin-bottom: 40px; }
.auth-logo .dz-badge { font-family: var(--font-sans); font-size: 12px; font-weight: 700; background: var(--red-dz); padding: 3px 8px; border-radius: 4px; letter-spacing: 1px; }
.auth-tagline { font-size: 28px; font-weight: 600; line-height: 1.3; margin-bottom: 20px; }
.auth-sub { font-size: 15px; opacity: .85; line-height: 1.7; margin-bottom: 40px; }
.auth-feature { display: flex; align-items: center; gap: 12px; font-size: 14px; margin-bottom: 16px; opacity: .9; }
.auth-feature-icon { width: 36px; height: 36px; background: rgba(255,255,255,.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0; }
.auth-right { display: flex; align-items: center; justify-content: center; padding: 60px 50px; background: var(--cream); }
.auth-form-box { width: 100%; max-width: 420px; }
.auth-form-title { font-size: 26px; font-weight: 700; margin-bottom: 6px; }
.auth-form-sub { font-size: 14px; color: var(--text-muted); margin-bottom: 32px; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 20px 0; color: var(--text-muted); font-size: 12px; }
.auth-divider::before, .auth-divider::after { content: ''; flex: 1; height: 1px; background: var(--border); }
.auth-switch { text-align: center; font-size: 13px; color: var(--text-muted); margin-top: 20px; }

/* ─── PREMIUM BANNER ─── */
.premium-banner { background: var(--teal-light); border: 1px solid rgba(15,110,86,.2); border-radius: var(--radius-lg); padding: 16px; }
.premium-banner-title { font-size: 13px; font-weight: 700; color: var(--teal); margin-bottom: 5px; }
.premium-banner-text { font-size: 12px; color: var(--teal); line-height: 1.5; margin-bottom: 12px; }

/* ─── DZ FLAG ─── */
.dz-flag { width: 18px; height: 12px; border-radius: 2px; overflow: hidden; display: inline-flex; flex-shrink: 0; }
.dz-flag-g { width: 50%; background: #006233; }
.dz-flag-w { width: 50%; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 7px; color: #d21034; }

/* ─── TABS ─── */
.tabs { display: flex; gap: 0; border-bottom: 2px solid var(--border); margin-bottom: 20px; }
.tab-btn { padding: 10px 18px; font-size: 13px; font-weight: 600; color: var(--text-muted); border: none; background: none; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; transition: all .15s; font-family: var(--font-sans); }
.tab-btn:hover { color: var(--teal); }
.tab-btn.active { color: var(--teal); border-bottom-color: var(--teal); }
.tab-panel { display: none; }
.tab-panel.active { display: block; }

/* ─── PAGINATION ─── */
.pagination { display: flex; gap: 4px; justify-content: center; margin-top: 24px; }
.page-btn { width: 36px; height: 36px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--white); font-size: 13px; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all .15s; color: var(--text-muted); }
.page-btn:hover { border-color: var(--teal); color: var(--teal); }
.page-btn.active { background: var(--teal); color: #fff; border-color: var(--teal); }

/* ─── HERO SECTION (landing) ─── */
.hero-section { background: linear-gradient(135deg, var(--teal-dark) 0%, var(--teal) 50%, var(--gold-mid) 100%); color: #fff; padding: 80px 24px; text-align: center; }
.hero-title { font-family: var(--font-brand); font-size: 48px; font-weight: 700; margin-bottom: 16px; }
.hero-sub { font-size: 18px; opacity: .9; max-width: 600px; margin: 0 auto 32px; line-height: 1.6; }
.hero-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.hero-stats { display: flex; gap: 48px; justify-content: center; margin-top: 60px; flex-wrap: wrap; }
.hero-stat-n { font-size: 36px; font-weight: 700; }
.hero-stat-l { font-size: 14px; opacity: .8; margin-top: 4px; }

/* ─── FOOTER ─── */
footer { background: var(--teal-dark); color: rgba(255,255,255,.8); padding: 48px 24px 24px; margin-top: 60px; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; max-width: 1100px; margin: 0 auto 40px; }
.footer-brand { font-family: var(--font-brand); font-size: 26px; font-weight: 700; color: #fff; margin-bottom: 12px; }
.footer-desc { font-size: 13px; line-height: 1.7; opacity: .7; margin-bottom: 16px; }
.footer-features { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 7px; }
.footer-features li { font-size: 12.5px; color: rgba(255,255,255,.55); padding-left: 14px; position: relative; }
.footer-features li::before { content: '✓'; position: absolute; left: 0; color: #6ee7d4; font-size: 11px; font-weight: 700; }
.footer-col-title { font-size: 13px; font-weight: 700; color: #fff; margin-bottom: 14px; letter-spacing: .5px; }
.footer-link { display: block; font-size: 13px; color: rgba(255,255,255,.65); margin-bottom: 8px; text-decoration: none; transition: color .15s; }
.footer-link:hover { color: #fff; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.15); padding-top: 20px; display: flex; justify-content: space-between; align-items: center; max-width: 1100px; margin: 0 auto; font-size: 12px; opacity: .6; flex-wrap: wrap; gap: 8px; }

/* ─── PAGE HEADER ─── */
.page-header { background: var(--white); border-bottom: 1px solid var(--border); padding: 24px; }
.page-header-inner { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; }
.page-header-title { font-size: 22px; font-weight: 700; }
.page-header-sub { font-size: 13px; color: var(--text-muted); margin-top: 2px; }

/* ─── FILTER BAR ─── */
.filter-bar { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 14px 18px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 16px; }
.filter-chip { padding: 5px 14px; border-radius: 20px; font-size: 12px; font-weight: 600; border: 1px solid var(--border); background: none; color: var(--text-muted); cursor: pointer; transition: all .15s; font-family: var(--font-sans); }
.filter-chip:hover { border-color: var(--teal); color: var(--teal); }
.filter-chip.active { background: var(--teal-light); border-color: var(--teal); color: var(--teal); }

/* ─── SEARCH BAR ─── */
.search-bar { position: relative; flex: 1; min-width: 200px; }
.search-bar input { width: 100%; padding: 9px 14px 9px 38px; border: 1px solid var(--border-md); border-radius: 24px; font-size: 13px; font-family: var(--font-sans); background: var(--cream); }
.search-bar input:focus { outline: none; border-color: var(--teal); background: #fff; box-shadow: 0 0 0 3px rgba(15,110,86,.08); }
.search-bar .si { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--text-muted); }

/* ─── STATS GRID ─── */
.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); gap: 14px; margin-bottom: 24px; }
.stat-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px; }
.stat-card-n { font-size: 28px; font-weight: 700; color: var(--teal); }
.stat-card-l { font-size: 12px; color: var(--text-muted); margin-top: 4px; font-weight: 500; }
.stat-card-delta { font-size: 12px; color: var(--teal-mid); font-weight: 600; margin-top: 6px; }

/* ─── RESPONSIVE ─── */
@media (max-width: 1024px) {
  .layout-3col { grid-template-columns: 200px 1fr; }
  .layout-3col > :last-child { display: none; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .layout-3col, .layout-2col { grid-template-columns: 1fr; }
  .layout-3col > :first-child, .layout-2col > :first-child { display: none; }
  .navbar-nav { display: none; }
  .auth-page { grid-template-columns: 1fr; }
  .auth-left { display: none; }
  .hero-title { font-size: 32px; }
  .hero-stats { gap: 24px; }
  .footer-grid { grid-template-columns: 1fr; gap: 24px; }
  .form-row { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .navbar { padding: 0 14px; }
  .layout-wide, .layout-center { padding: 12px; }
}

/* ─── EXTRA UI COMPONENTS ─── */
.tab-btn { padding: 10px 18px; border: none; background: none; cursor: pointer; font-family: var(--font-sans); font-size: 13px; font-weight: 600; color: var(--text-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; transition: all .15s; }
.tab-btn.active { color: var(--teal); border-bottom-color: var(--teal); }
.tab-btn:hover { color: var(--teal); }

.user-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; transition: box-shadow .15s, transform .15s; display: flex; flex-direction: column; }
.user-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.user-card > div:first-child { flex: 1; }

.user-card-actions {
  padding: 12px 14px;
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 66px;
  margin-top: auto;
}
.relationship-btn {
  min-width: 132px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 14px !important;
  border-radius: 14px !important;
  font-size: 13px !important;
  line-height: 1 !important;
}
.user-card-actions > a .btn,
.user-card-actions > .btn-ghost {
  width: 42px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 14px !important;
  padding: 0 !important;
}
.request-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}
.request-actions .request-btn {
  min-width: 92px !important;
  height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 12px !important;
  border-radius: 12px !important;
  font-size: 12px !important;
  line-height: 1 !important;
}
.connection-menu-wrap {
  position: relative;
  display: inline-flex;
}
.connected-btn {
  background: var(--white) !important;
  color: var(--teal) !important;
  border-color: var(--teal) !important;
  font-weight: 800 !important;
  justify-content: center;
}
.connected-btn:hover {
  background: var(--teal-light) !important;
  color: var(--teal-dark) !important;
}
.connection-menu {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  min-width: 160px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow-lg);
  padding: 6px;
  z-index: 120;
  display: none;
}
.connection-menu.open {
  display: block;
}
.connection-menu button {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--red-dz);
  border-radius: 8px;
  padding: 8px 10px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  text-align: left;
}
.connection-menu button:hover {
  background: var(--red-light);
}

.avatar-lg { width: 64px; height: 64px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; flex-shrink: 0; }

.profile-hero { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 16px; }
.profile-cover { height: 120px; background: linear-gradient(135deg, var(--teal-dark), var(--teal), var(--teal-mid)); }
.profile-hero-body { padding: 0 24px 24px; }
.profile-hero-avatar { width: 88px; height: 88px; border-radius: 50%; border: 4px solid #fff; background: var(--teal-light); display: flex; align-items: center; justify-content: center; font-size: 32px; margin-top: -44px; margin-bottom: 12px; overflow: hidden; }
.profile-hero-name { font-size: 22px; font-weight: 700; margin-bottom: 4px; }
.profile-hero-spec { font-size: 14px; color: var(--teal); font-weight: 600; margin-bottom: 4px; }
.profile-hero-loc { font-size: 13px; color: var(--text-muted); display: flex; align-items: center; gap: 6px; }
.profile-hero-stats { display: flex; gap: 32px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border); }
.profile-stat-n { font-size: 20px; font-weight: 700; color: var(--teal); }
.profile-stat-l { font-size: 11px; color: var(--text-muted); margin-top: 2px; }

.card-flat { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px; }

.feed-filters { display: flex; gap: 6px; margin-bottom: 14px; overflow-x: auto; padding-bottom: 4px; }
.feed-filter { padding: 7px 16px; border: 1px solid var(--border); border-radius: 20px; font-size: 13px; font-weight: 600; cursor: pointer; background: var(--white); color: var(--text-muted); white-space: nowrap; transition: all .15s; font-family: var(--font-sans); }
.feed-filter.active, .feed-filter:hover { background: var(--teal); color: #fff; border-color: var(--teal); }

.notif-panel { position: fixed; top: 62px; right: 16px; width: 360px; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-xl); z-index: 1000; max-height: 480px; overflow-y: auto; display: none; }
.notif-panel.open { display: block; }
.notif-panel-header { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--border); }
.notif-item { display: flex; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--border); cursor: pointer; transition: background .15s; }
.notif-item:hover { background: var(--teal-pale); }
.notif-item.unread { background: var(--teal-light); }
.notif-text { font-size: 13px; line-height: 1.5; }
.notif-time { font-size: 11px; color: var(--text-muted); margin-top: 3px; }

.badge-dot { width: 8px; height: 8px; background: var(--red-dz); border-radius: 50%; position: absolute; top: 6px; right: 6px; }

.stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 14px; }
.stat-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 14px; text-align: center; }
.stat-card-n { font-size: 24px; font-weight: 700; color: var(--teal); }
.stat-card-l { font-size: 11px; color: var(--text-muted); margin-top: 3px; }

.pagination { display: flex; gap: 6px; justify-content: center; }
.page-btn { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--border); background: var(--white); cursor: pointer; font-size: 13px; font-weight: 600; font-family: var(--font-sans); transition: all .15s; }
.page-btn.active, .page-btn:hover { background: var(--teal); color: #fff; border-color: var(--teal); }

.badge-blue { background: #dbeafe; color: #1d4ed8; }
.badge-purple { background: #ede9fe; color: #7c3aed; }
.badge-red { background: #fee2e2; color: #dc2626; }

.btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.btn-danger:hover { background: #b91c1c; }

.icon-btn { position: relative; }

/* ─── VOTE BUTTONS ─── */
.active-vote { color: var(--teal) !important; background: var(--teal-light) !important; }
.vote-score { display: inline-flex; align-items: center; }

/* ─── PAGES BIENTOT DISPO ─── */
.coming-soon { text-align: center; padding: 80px 20px; }
.coming-soon-icon { font-size: 60px; margin-bottom: 20px; }
.coming-soon-title { font-size: 20px; font-weight: 700; margin-bottom: 10px; }
.coming-soon-sub { font-size: 14px; color: var(--text-muted); }

/* ═══════════════════════════════════════════
   NOUVELLES RÈGLES v3 — NAVIGATION & COMPOSANTS
═══════════════════════════════════════════ */

/* Bouton Créer dans navbar */
.btn-create {
  display: flex; align-items: center; gap: 6px;
  padding: 7px 16px; border-radius: 20px;
  background: var(--teal); color: #fff;
  font-size: 13px; font-weight: 700; border: none; cursor: pointer;
  transition: all .2s; white-space: nowrap; font-family: var(--font-sans);
}
.btn-create:hover { background: var(--teal-dark); transform: translateY(-1px); box-shadow: 0 3px 12px rgba(10,124,92,.3); }
.btn-create:active { transform: translateY(0); }

/* Menu Créer dropdown */
.create-menu {
  position: absolute; top: calc(100% + 10px); right: 0;
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-xl);
  min-width: 220px; z-index: 2000; overflow-x: hidden; overflow-y: auto;
  max-height: calc(100vh - 80px);
  opacity: 0; pointer-events: none; transform: translateY(-8px);
  transition: all .2s cubic-bezier(.4,0,.2,1);
}
.create-menu.open { opacity: 1; pointer-events: all; transform: translateY(0); }
.create-menu-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 18px; font-size: 13px; font-weight: 600;
  color: var(--text); cursor: pointer; transition: background .12s;
  border-bottom: 1px solid var(--border); text-decoration: none;
}
.create-menu-item:last-child { border-bottom: none; }
.create-menu-item:hover { background: var(--teal-pale); color: var(--teal); }
.create-menu-icon { font-size: 20px; width: 28px; text-align: center; flex-shrink: 0; }

/* Menu Profil dropdown */
.profile-menu {
  position: absolute; top: calc(100% + 10px); right: 0;
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-xl);
  min-width: 180px; z-index: 2000; overflow: hidden;
  opacity: 0; pointer-events: none; transform: translateY(-8px);
  transition: all .2s cubic-bezier(.4,0,.2,1);
}
.profile-menu.open { opacity: 1; pointer-events: all; transform: translateY(0); }
.profile-menu-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 18px; font-size: 13px; font-weight: 600;
  color: var(--text); cursor: pointer; transition: background .12s;
  border-bottom: 1px solid var(--border); text-decoration: none;
}
.profile-menu-item:last-child { border-bottom: none; }
.profile-menu-item:hover { background: var(--teal-pale); color: var(--teal); }
.profile-menu-icon {
  width:34px;
  height:34px;
  display:inline-grid;
  place-items:center;
  border-radius:12px;
  text-align:center;
  flex-shrink:0;
  font-size:16px;
  line-height:1;
  color:var(--primary);
  background:linear-gradient(135deg,#eef2ff,#f8fbff);
  border:1px solid rgba(99,102,241,.12);
}
.profile-menu-icon-profile {
  color:#5b5cf6;
  background:linear-gradient(135deg,#ede9fe,#f5f3ff);
}
.profile-menu-icon-settings {
  color:#0f766e;
  background:linear-gradient(135deg,#dff7f2,#f0fdfa);
}
.profile-menu-icon-contact {
  color:#2563eb;
  background:linear-gradient(135deg,#dbeafe,#eff6ff);
}
.profile-menu-icon-logout {
  color:#dc2626;
  background:linear-gradient(135deg,#fee2e2,#fff7ed);
}

/* Fiabilité contributions */
.fiabilite-badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 700; }
.fiabilite-low { background: #fff3cd; color: #856404; }
.fiabilite-med { background: var(--gold-light); color: var(--gold); }
.fiabilite-high { background: var(--teal-light); color: var(--teal); }

/* Mention légale alerte */
.mention-alerte {
  background: var(--gold-light); border: 1px solid rgba(196,123,18,.2);
  border-radius: var(--radius-md); padding: 10px 14px;
  font-size: 11px; color: var(--gold); line-height: 1.6;
  margin-bottom: 16px;
}

/* Bouton signalement données patient - rouge urgent */
.btn-report-patient {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 12px; border-radius: var(--radius-sm);
  font-size: 11px; font-weight: 700; color: var(--red-dz);
  background: var(--red-light); border: 1px solid rgba(192,57,43,.2);
  cursor: pointer; transition: all .15s; font-family: var(--font-sans);
}
.btn-report-patient:hover { background: var(--red-dz); color: #fff; }

/* Case anonymisation obligatoire */
.anon-check-box {
  background: #fff8e1; border: 2px solid #f9a825;
  border-radius: var(--radius-md); padding: 14px 16px; margin-bottom: 16px;
}
.anon-check-box label { display: flex; gap: 10px; align-items: flex-start; font-size: 12px; line-height: 1.6; cursor: pointer; font-weight: 600; color: #5d4037; }
.anon-check-box input[type=checkbox] { margin-top: 2px; width: 16px; height: 16px; flex-shrink: 0; accent-color: var(--teal); }
.anon-check-notice { font-size: 11px; color: var(--text-muted); margin-top: 6px; line-height: 1.6; padding-left: 26px; }

/* Attachments display */
.attachments-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px,1fr)); gap: 8px; margin-top: 12px; }
.attachment-item { border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; background: #f8f9fa; transition: all .15s; }
.attachment-item:hover { box-shadow: var(--shadow-sm); border-color: var(--teal); }
.attachment-img { width: 100%; height: 100px; object-fit: cover; display: block; }
.attachment-pdf { padding: 16px 12px; text-align: center; }
.attachment-link { padding: 12px; font-size: 12px; }
.attachment-actions { display: flex; gap: 4px; padding: 6px; border-top: 1px solid var(--border); }
.attachment-hidden { opacity: .5; }
.attachment-masked { background: #f5f5f5; padding: 12px; text-align: center; font-size: 11px; color: var(--text-muted); }

.post-attachments { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; margin: 12px 0 4px; }
.post-attachment-img-wrap, .post-attachment-pdf, .post-attachment-link {
  display: block; overflow: hidden; border: 1px solid var(--border); border-radius: 10px; background: #fff; color: var(--text); text-decoration: none;
}
.post-attachment-img { width: 100%; max-height: 360px; object-fit: cover; display: block; background: #f8fafc; }
.post-attachment-pdf { min-height: 190px; position: relative; }
.post-pdf-preview { width: 100%; height: 170px; display: block; border: 0; background: #f8fafc; pointer-events: none; }
.post-pdf-info { display: flex; align-items: center; gap: 8px; padding: 8px 10px; font-size: 12px; font-weight: 700; border-top: 1px solid var(--border); }
.post-pdf-icon { background: var(--red-dz); color: #fff; border-radius: 5px; padding: 3px 6px; font-size: 10px; font-weight: 900; }
.post-attachment-link { padding: 12px; font-size: 13px; font-weight: 700; }
.post-attachment-more { display: flex; align-items: center; justify-content: center; min-height: 90px; border: 1px dashed var(--border); border-radius: 10px; color: var(--teal); font-weight: 800; text-decoration: none; background: var(--teal-pale); }

/* Pilliers de navigation - sidebar gauche */
.nav-section-label { font-size: 9px; font-weight: 800; color: var(--text-light); letter-spacing: 1.2px; text-transform: uppercase; padding: 10px 10px 5px; margin-top: 4px; }

/* Mobile bottom nav */
.mobile-nav {
  display: none; position: fixed; bottom: 0; left: 0; right: 0;
  background: rgba(255,255,255,.97); backdrop-filter: blur(20px);
  border-top: 1px solid var(--border); z-index: 1000;
  padding: 6px 0 env(safe-area-inset-bottom);
  box-shadow: 0 -2px 12px rgba(0,0,0,.06);
}
.mobile-nav-items { display: flex; justify-content: space-around; align-items: center; }
.mobile-nav-item { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 12px; font-size: 10px; font-weight: 600; color: var(--text-muted); cursor: pointer; border: none; background: none; font-family: var(--font-sans); min-width: 52px; }
.mobile-nav-item.active { color: var(--teal); }
.mobile-nav-item .nav-icon { font-size: 22px; }

/* Score card compact */
.score-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.score-item { display: flex; align-items: center; gap: 3px; font-size: 12px; color: var(--text-muted); font-weight: 500; }
.score-item.positive { color: var(--teal); font-weight: 700; }
.score-item.negative { color: var(--red-dz); }

/* Demo banner */
.demo-banner {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
  color: #fff; padding: 10px 24px; font-size: 12px; text-align: center;
  position: sticky; top: var(--nav-h); z-index: 999; font-weight: 600;
  display: flex; align-items: center; justify-content: center; gap: 12px;
}
.demo-banner a { color: #ffd700; text-decoration: underline; }

/* Priorité indicator */
.priorite-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.priorite-dot.faible { background: #10b981; }
.priorite-dot.moderee { background: #f59e0b; }
.priorite-dot.elevee { background: #ef4444; animation: pulse-red 1.5s infinite; }
@keyframes pulse-red { 0%,100%{opacity:1;} 50%{opacity:.5;} }

/* Upload zone améliorée */
.upload-zone-advanced { border: 2px dashed var(--border-md); border-radius: var(--radius-lg); padding: 20px; text-align: center; cursor: pointer; transition: all .2s; background: #f8f9fa; }
.upload-zone-advanced:hover, .upload-zone-advanced.dragover { border-color: var(--teal); background: var(--teal-pale); }
.upload-zone-advanced.error { border-color: var(--red-dz); background: var(--red-light); }

/* Responsive */
@media (max-width: 768px) {
  .mobile-nav { display: block; }
  .page-wrapper { padding-bottom: 70px; }
  .navbar-nav { display: none; }
}

.btn,
.btn-create,
.feed-filter,
.filter-chip,
.page-btn,
.composer-btn,
.post-action-btn,
.sidebar-link {
  border-radius: 8px;
}

.btn {
  min-height: 34px;
  justify-content: center;
}

.btn-primary:hover,
.btn-create:hover {
  transform: none;
  box-shadow: 0 6px 18px rgba(15,110,86,.16);
}

.btn-ghost {
  background: #fff;
}

.btn-ghost:hover {
  background: var(--teal-pale);
}

.card,
.card-flat,
.sidebar-card,
.composer,
.post-card,
.case-card,
.job-card,
.formation-card,
.biblio-card,
.profile-hero,
.profile-sidebar-card,
.filter-bar {
  border-radius: 10px;
  border-color: rgba(8,80,65,.09);
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}

.card:hover,
.post-card:hover,
.case-card:hover,
.job-card:hover,
.formation-card:hover,
.biblio-card:hover,
.user-card:hover {
  transform: none;
  box-shadow: 0 10px 28px rgba(8,80,65,.08);
}

.page-header {
  padding: 20px 24px;
  background: linear-gradient(180deg,#fff 0%,#fbfcfb 100%);
}

.page-header-inner {
  gap: 14px;
  flex-wrap: wrap;
}

.page-header-title {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 0;
}

.page-header-sub {
  max-width: 720px;
  line-height: 1.55;
}

.layout-3col {
  max-width: 1240px;
}

.filter-bar {
  align-items: stretch;
}

.filter-bar .select,
.filter-bar .input,
.filter-bar .search-bar input {
  min-height: 38px;
}

.feed-filters,
.composer-btns,
.post-actions {
  scrollbar-width: thin;
}

.feed-filter {
  flex: 0 0 auto;
}

.badge,
.fiabilite-badge,
.tag {
  border-radius: 999px;
}

.badge {
  font-weight: 700;
}

.mention-alerte,
.alert {
  border-radius: 8px;
}

.modal {
  border-radius: 12px;
}

.modal-close {
  border-radius: 8px;
}

.empty-state {
  border-radius: 10px;
}

@media (max-width: 768px) {
  .page-header {
    padding: 18px;
  }
  .page-header-inner {
    align-items: flex-start;
  }
  .page-header-title {
    font-size: 22px;
  }
  .filter-bar {
    padding: 12px;
  }
  .filter-bar .select,
  .filter-bar .search-bar {
    width: 100% !important;
    min-width: 0;
  }
  .composer-btns,
  .feed-filters {
    overflow-x: auto;
    padding-bottom: 6px;
  }
}

/* ─── HOME LAYOUT RAILS ─── */
.layout-3col {
  grid-template-columns: minmax(220px,250px) minmax(0,680px) minmax(300px,320px);
  justify-content: center;
  align-items: start;
  gap: 22px;
  max-width: 1320px;
}

.layout-3col > #left-sidebar-placeholder,
.layout-3col > #right-sidebar-placeholder {
  min-width: 0;
  align-self: start;
}

#left-sidebar-placeholder .sidebar,
#right-sidebar-placeholder .sidebar {
  width: 100%;
  padding-bottom: 12px;
}

.feed {
  width: 100%;
  max-width: none;
  margin: 0;
  min-width: 0;
}

#right-sidebar-placeholder .sidebar-card {
  width: 100%;
}

#right-sidebar-placeholder .suggest-user .btn {
  flex-shrink: 0;
}

#right-sidebar-placeholder .right-feed-card {
  border: 1px solid rgba(16,35,49,.08);
  border-radius: 20px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 16px 42px rgba(16,35,49,.07);
}

#right-sidebar-placeholder .right-feed-card .sidebar-card-body {
  padding: 18px;
}

.right-sidebar-head {
  margin-bottom: 12px;
}

.right-sidebar-head h3 {
  margin: 7px 0 0;
  color: #102331;
  font-size: 18px;
  line-height: 1.15;
  font-weight: 900;
  letter-spacing: 0;
}

.right-sidebar-note {
  margin: -2px 0 12px;
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1.45;
  font-weight: 650;
}

#right-sidebar-placeholder .suggest-user {
  align-items: center;
  gap: 10px;
  padding: 10px;
  margin: 0 -4px;
  border: 0;
  border-radius: 14px;
  transition: background .15s, transform .15s;
}

#right-sidebar-placeholder .suggest-user:hover {
  background: #f6fbff;
  transform: translateX(2px);
}

#right-sidebar-placeholder .suggest-user .avatar {
  width: 36px;
  height: 36px;
  box-shadow: 0 8px 20px rgba(16,35,49,.08);
}

#right-sidebar-placeholder .suggest-user-name {
  color: #102331;
  font-size: 13px;
  font-weight: 850;
}

#right-sidebar-placeholder .suggest-user-spec {
  margin-top: 2px;
  color: var(--teal);
  font-size: 11px;
  font-weight: 750;
}

#right-sidebar-placeholder .suggest-user-loc {
  color: var(--text-muted);
  font-size: 10.5px;
  font-weight: 650;
}

#right-sidebar-placeholder .suggest-user .btn {
  min-height: 32px;
  padding: 6px 10px;
  border-radius: 12px;
  font-weight: 850;
}

.right-insight-list {
  display: grid;
  gap: 8px;
}

.right-group-list {
  display: grid;
  gap: 8px;
}

.right-group-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  margin: 0 -4px;
  border-radius: 14px;
  transition: background .15s, transform .15s;
}

.right-group-item:hover {
  background: #f6fbff;
  transform: translateX(2px);
}

.right-group-avatar {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(15,143,140,.12), rgba(47,111,237,.1));
  color: #0f8f8c;
  font-size: 18px;
  font-weight: 900;
  cursor: pointer;
  overflow: hidden;
}

.right-group-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.right-group-info {
  flex: 1;
  min-width: 0;
  cursor: pointer;
}

.right-group-name {
  color: #102331;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.3;
}

.right-group-meta {
  margin-top: 2px;
  color: var(--text-muted);
  font-size: 10.5px;
  font-weight: 650;
}

.right-group-item .btn {
  min-height: 30px;
  padding: 5px 9px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 850;
  flex-shrink: 0;
}

.right-insight-item {
  display: block;
  padding: 11px 12px;
  border: 1px solid rgba(16,35,49,.07);
  border-radius: 14px;
  background: #fbfdff;
  color: var(--text);
  text-decoration: none;
  transition: border-color .15s, box-shadow .15s, transform .15s, background .15s;
}

.right-insight-item:hover {
  background: #fff;
  border-color: rgba(47,111,237,.18);
  box-shadow: 0 10px 24px rgba(16,35,49,.07);
  transform: translateY(-1px);
}

.right-insight-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 6px;
  color: var(--text-muted);
  font-size: 10.5px;
  font-weight: 750;
}

.right-insight-meta .badge {
  padding: 3px 8px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .2px;
}

.right-insight-item strong {
  display: block;
  color: #102331;
  font-size: 12.5px;
  line-height: 1.35;
  font-weight: 900;
}

.right-insight-item small {
  display: block;
  margin-top: 5px;
  color: var(--text-muted);
  font-size: 11.5px;
  line-height: 1.4;
  font-weight: 600;
}

.right-sidebar-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin-top: 14px;
  border: 1px solid rgba(47,111,237,.12);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(47,111,237,.08), rgba(15,143,140,.07));
  color: #2f6fed;
  font-size: 12px;
  font-weight: 900;
  text-decoration: none;
}

.right-sidebar-link:hover {
  background: linear-gradient(135deg, #0f8f8c, #2f6fed);
  color: #fff;
}

.right-sidebar-empty {
  padding: 12px;
  border: 1px dashed rgba(16,35,49,.12);
  border-radius: 14px;
  background: #fbfdff;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 650;
}

/* Communaute dark mode contrast pass */
.dark .community-return-card h1 {
  color: #f8fafc !important;
}

.dark .community-return-card p,
.dark .community-return-card span {
  color: rgba(255,255,255,.92) !important;
}

.dark .community-hero-action.primary {
  background: rgba(241,245,249,.92) !important;
  color: #111827 !important;
}

.dark .composer,
.dark .feed-control-bar,
.dark .feed-filter-menu-wrap .feed-filters,
.dark .post-card,
.dark #right-sidebar-placeholder .right-feed-card {
  background: #151b2d !important;
  border-color: rgba(148,163,184,.18) !important;
  box-shadow: 0 18px 44px rgba(0,0,0,.20) !important;
}

.dark .composer-fake-input,
.dark .feed-filter-trigger,
.dark .feed-filter,
.dark .feed-inline-input {
  background: rgba(30,41,59,.74) !important;
  border-color: rgba(148,163,184,.20) !important;
  color: #cbd5e1 !important;
}

.dark .composer-btn,
.dark .post-action-btn {
  color: #94a3b8 !important;
}

.dark .composer-btn:hover,
.dark .post-action-btn:hover {
  background: rgba(99,102,241,.16) !important;
  color: #c7d2fe !important;
}

.dark .feed-control-title,
.dark .post-card-title,
.dark .post-author-name,
.dark .post-content,
.dark .right-sidebar-head h3,
.dark #right-sidebar-placeholder .suggest-user-name,
.dark .right-group-name,
.dark .right-insight-item strong {
  color: #f8fafc !important;
}

.dark .post-author-meta,
.dark .post-time,
.dark .post-card .post-text,
.dark .right-sidebar-note,
.dark #right-sidebar-placeholder .suggest-user-loc,
.dark .right-group-meta,
.dark .right-insight-meta,
.dark .right-insight-item small,
.dark .right-sidebar-empty {
  color: #94a3b8 !important;
}

.dark #right-sidebar-placeholder .suggest-user,
.dark .right-group-item {
  background: transparent !important;
}

.dark #right-sidebar-placeholder .suggest-user:hover,
.dark .right-group-item:hover {
  background: rgba(99,102,241,.12) !important;
}

.dark #right-sidebar-placeholder .suggest-user-spec {
  color: #818cf8 !important;
}

.dark .right-insight-item,
.dark .right-sidebar-empty {
  background: rgba(241,245,249,.96) !important;
  border-color: rgba(148,163,184,.22) !important;
  color: #111827 !important;
}

.dark .right-insight-item strong {
  color: #111827 !important;
}

.dark .right-insight-item small,
.dark .right-insight-meta {
  color: #64748b !important;
}

.dark .right-sidebar-link {
  background: linear-gradient(135deg, rgba(47,111,237,.16), rgba(15,143,140,.14)) !important;
  border-color: rgba(99,102,241,.24) !important;
  color: #818cf8 !important;
}

.dark .right-sidebar-link:hover {
  background: linear-gradient(135deg, #0f8f8c, #2f6fed) !important;
  color: #fff !important;
}

.watch-load-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 16px;
  border: 1px solid rgba(47,111,237,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 850;
  box-shadow: 0 10px 24px rgba(16,35,49,.05);
}

.watch-load-more.done {
  border-color: rgba(15,143,140,.14);
  background: rgba(15,143,140,.07);
  color: var(--teal);
}

.case-urgent-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.case-urgent-btn {
  min-height: 42px;
  padding: 9px 12px;
  border: 1.5px solid var(--border-md);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--text-muted);
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  transition: all .15s;
}

.case-urgent-btn:hover {
  border-color: var(--teal);
  color: var(--teal);
}

.case-urgent-btn.active {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
}

.case-urgent-btn.urgent.active {
  background: var(--red-dz);
  border-color: var(--red-dz);
  color: #fff;
}

.case-attachment-note {
  margin-bottom: 8px;
  padding: 9px 11px;
  border: 1px solid rgba(224,75,87,.16);
  border-radius: 12px;
  background: rgba(224,75,87,.07);
  color: #7f1d1d;
  font-size: 12px;
  line-height: 1.45;
  font-weight: 700;
}

.case-attachment-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

@media (min-width: 1025px) {
  .feed-filters {
    overflow-x: visible;
    flex-wrap: wrap;
  }
  .feed-filter {
    flex: 1 1 auto;
  }
}

@media (max-width: 1024px) {
  .layout-3col {
    grid-template-columns: 230px minmax(0, 650px);
    max-width: 940px;
  }
  .layout-3col > #right-sidebar-placeholder {
    display: none;
  }
}

@media (max-width: 768px) {
  .layout-3col {
    grid-template-columns: 1fr;
    max-width: 720px;
    gap: 14px;
  }
  .layout-3col > #left-sidebar-placeholder,
  .layout-3col > #right-sidebar-placeholder {
    display: none;
  }
}

/* Claude v4 inspired safe polish: visual layer only, no layout rewrite */
:root {
  --primary: #2563eb;
  --primary-dark: #1d4ed8;
  --primary-light: rgba(37,99,235,.09);
  --accent: #10b981;
  --accent-light: rgba(16,185,129,.1);
  --surface: #ffffff;
  --surface2: #f8fafc;
  --surface3: #eef6ff;
  --soft-border: rgba(15,23,42,.08);
  --blue-shadow: 0 14px 36px rgba(37,99,235,.11);
  --card-shadow: 0 8px 26px rgba(15,23,42,.07);
  --grad-ui: linear-gradient(135deg, #0f6e56 0%, #2563eb 100%);
}

body {
  font-family: var(--font-sans);
  background:
    radial-gradient(circle at top left, rgba(16,185,129,.08), transparent 28rem),
    linear-gradient(180deg, #f8fbff 0%, #f5f7fb 45%, #ffffff 100%);
}

.navbar {
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid var(--soft-border);
  box-shadow: 0 8px 24px rgba(15,23,42,.06);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.navbar-brand {
  font-family: var(--font-sans);
  letter-spacing: -.4px;
}

.navbar-search input {
  min-height: 38px;
  background: #fff;
  border-color: rgba(15,23,42,.1);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}

.navbar-search input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(37,99,235,.1);
}

.search-filter-btn {
  color: var(--text-muted);
  font-size: 15px;
}

.search-filter-btn:hover,
.search-filter-btn:focus {
  background: var(--primary-light);
  color: var(--primary);
}

.search-filter-menu {
  direction: ltr;
  text-align: left;
  background: #fff;
  border-color: rgba(15,23,42,.1);
  border-radius: 12px;
  box-shadow: 0 18px 45px rgba(15,23,42,.14);
}

.search-filter-menu label {
  grid-template-columns: 18px minmax(0,1fr);
  justify-items: start;
  text-align: left;
  gap: 10px;
  white-space: normal;
}

.search-filter-menu input {
  accent-color: var(--primary);
}

.search-dropdown {
  border-color: rgba(15,23,42,.1);
  border-radius: 12px;
  box-shadow: 0 18px 45px rgba(15,23,42,.14);
}

.nav-item {
  border-radius: 14px;
}

.nav-item.active {
  color: var(--teal);
  background: linear-gradient(180deg, rgba(16,185,129,.13), rgba(37,99,235,.08));
  box-shadow: inset 0 0 0 1px rgba(16,185,129,.08);
}

.nav-icon,
.sl-icon,
.create-menu-icon,
.profile-menu-icon {
  color: inherit;
}

.btn-create {
  background: var(--grad-ui);
  border-radius: 14px;
  box-shadow: 0 10px 22px rgba(15,110,86,.18);
}

.btn-create:hover {
  box-shadow: 0 12px 28px rgba(37,99,235,.18);
}

.icon-btn {
  background: var(--surface2);
  color: var(--text-muted);
  border: 1px solid rgba(15,23,42,.06);
}

.icon-btn:hover {
  color: var(--primary);
  background: var(--primary-light);
}

.sidebar-card,
.profile-sidebar-card,
.composer,
.post-card,
.case-card,
.job-card,
.formation-card,
.biblio-card,
.filter-bar,
.admin-card,
.stat-card,
.table-wrap,
.modal {
  background: rgba(255,255,255,.96);
  border-color: rgba(15,23,42,.08);
  box-shadow: var(--card-shadow);
}

.profile-banner {
  background: linear-gradient(135deg, #0f6e56 0%, #1d9e75 45%, #2563eb 100%);
}

.composer-fake-input,
.input,
.select,
.textarea {
  background: #fff;
  border-color: rgba(15,23,42,.1);
}

.composer-fake-input:hover,
.input:focus,
.select:focus,
.textarea:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(37,99,235,.08);
}

.feed-filter.active,
.btn-primary {
  background: var(--grad-ui);
}

.post-card:hover,
.case-card:hover,
.job-card:hover,
.formation-card:hover,
.biblio-card:hover,
.user-card:hover {
  border-color: rgba(37,99,235,.22);
  box-shadow: var(--blue-shadow);
}

.tag,
.badge {
  letter-spacing: 0;
}

.empty-state,
.alert {
  border-color: rgba(15,23,42,.08);
  background: rgba(255,255,255,.9);
}

@media (max-width: 1280px) {
  .navbar {
    padding-left: 16px;
    padding-right: 16px;
    gap: 12px;
  }
  .navbar-brand {
    min-width: 160px;
  }
  .navbar-search {
    max-width: 330px;
  }
}

@media (max-width: 720px) {
  .navbar {
    padding: 0 10px;
    gap: 8px;
  }
  .navbar-brand {
    min-width: auto;
    font-size: 18px;
    flex: 0 0 auto;
  }
  .navbar-brand .dz-badge {
    display: none;
  }
  .navbar-nav {
    display: none;
  }
  .navbar-search {
    flex: 1 1 auto;
    min-width: 0;
    max-width: none;
  }
  .navbar-search input {
    padding-left: 34px;
    padding-right: 42px;
    font-size: 12px;
  }
  .navbar-actions {
    min-width: auto;
    gap: 4px;
    flex: 0 0 auto;
  }
  .navbar-actions > div:first-child,
  #adminNavLink {
    display: none;
  }
  .nav-more-menu {
    grid-template-columns: 1fr;
    left: 10px;
    right: 10px;
    width: auto;
    transform: none;
  }
  .icon-btn {
    width: 34px;
    height: 34px;
  }
}

/* Post reactions and action menu */
.post-header {
  position: relative;
}

.post-menu-wrap {
  position: relative;
  margin-left: auto;
  flex-shrink: 0;
}

.post-menu-trigger {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--text-muted);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.post-menu-trigger:hover {
  background: var(--surface2);
  color: var(--text);
}

.post-menu {
  display: none;
  position: absolute;
  top: 40px;
  right: 0;
  width: 220px;
  padding: 6px;
  background: #fff;
  border: 1px solid rgba(15,23,42,.1);
  border-radius: 12px;
  box-shadow: 0 18px 45px rgba(15,23,42,.15);
  z-index: 60;
}

.post-menu.open,
.post-menu-wrap:focus-within .post-menu {
  display: block;
}

.post-menu button {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--text);
  padding: 10px 12px;
  border-radius: 8px;
  text-align: left;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
}

.post-menu button:hover {
  background: var(--surface2);
  color: var(--teal);
}

.post-menu button.danger {
  color: var(--red-dz);
}

.post-reaction-summary {
  min-height: 28px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0 10px;
  color: var(--text-muted);
  font-size: 12px;
}

.post-reaction-summary.is-empty {
  color: var(--text-light);
}

.reaction-bubbles {
  display: inline-flex;
  align-items: center;
}

.reaction-bubbles span {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #fff;
  box-shadow: 0 4px 10px rgba(15,23,42,.12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  margin-left: -5px;
}

.reaction-bubbles span:first-child {
  margin-left: 0;
}

.reaction-action {
  position: relative;
}

.reaction-picker {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  display: flex;
  gap: 6px;
  padding: 8px;
  background: #fff;
  border: 1px solid rgba(15,23,42,.1);
  border-radius: 999px;
  box-shadow: 0 14px 38px rgba(15,23,42,.18);
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
  transition: opacity .16s ease, transform .16s ease;
  z-index: 50;
}

.reaction-action:hover .reaction-picker,
.reaction-action:focus-within .reaction-picker {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.reaction-picker button {
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  transition: transform .14s ease, background .14s ease;
}

.reaction-picker button:hover {
  background: var(--surface2);
  transform: translateY(-4px) scale(1.08);
}

.reaction-picker span {
  font-size: 22px;
  line-height: 1;
}

.reaction-picker small {
  display: none;
}

.like-btn.liked {
  color: var(--primary) !important;
  background: var(--primary-light) !important;
}

.vote-up.active-vote {
  color: #0f8f5f !important;
  background: rgba(16,185,129,.13) !important;
}

.vote-dn.active-vote {
  color: var(--red-dz) !important;
  background: var(--red-light) !important;
}

.vote-score {
  min-width: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  font-size: 12px;
  font-weight: 800;
  color: var(--text-muted);
}

.vote-score.score-positive {
  color: #0f8f5f;
}

.vote-score.score-negative {
  color: var(--red-dz);
}

@media (max-width: 560px) {
  .reaction-picker {
    left: -12px;
    gap: 2px;
    padding: 6px;
  }
  .reaction-picker button {
    width: 40px;
    height: 40px;
  }
  .reaction-picker span {
    font-size: 19px;
  }
}

/* Onboarding feed */
.welcome-back-card {
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(15,23,42,.08);
  border-left: 4px solid var(--teal);
  border-radius: 18px;
  padding: 18px;
  margin-bottom: 16px;
  box-shadow: 0 12px 30px rgba(15,23,42,.08);
}

.welcome-back-card::after {
  content: '';
  position: absolute;
  width: 180px;
  height: 180px;
  right: -70px;
  top: -80px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(15,110,86,.12), rgba(37,99,235,.1));
}

.welcome-back-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 1;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 50%;
  background: #fff;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 18px;
}

.welcome-back-main {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 14px;
  align-items: center;
  padding-right: 32px;
}

.welcome-back-avatar {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--teal-light);
  color: var(--teal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 18px;
  flex-shrink: 0;
  overflow: hidden;
}

.welcome-back-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.welcome-back-kicker {
  font-size: 11px;
  font-weight: 900;
  color: var(--teal);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-bottom: 3px;
}

.welcome-back-main h2 {
  font-size: 20px;
  margin-bottom: 4px;
}

.welcome-back-main p {
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.55;
}

.welcome-back-stats {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 16px 0 14px;
}

.welcome-back-stats div {
  background: var(--surface2);
  border: 1px solid rgba(15,23,42,.06);
  border-radius: 12px;
  padding: 10px;
}

.welcome-back-stats strong,
.welcome-back-stats span {
  display: block;
}

.welcome-back-stats strong {
  font-size: 18px;
  color: var(--teal);
  line-height: 1;
}

.welcome-back-stats span {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 4px;
}

.welcome-back-actions {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.onboarding-card {
  background: linear-gradient(135deg, #4F46E5 0%, #0EA5E9 62%, #10B981 100%);
  color: #fff;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 20px;
  padding: 20px;
  margin-bottom: 16px;
  box-shadow: 0 18px 42px rgba(99,102,241,.18);
  overflow: hidden;
  position: relative;
}

.onboarding-card::after {
  content: '';
  position: absolute;
  width: 220px;
  height: 220px;
  right: -90px;
  top: -90px;
  background: rgba(255,255,255,.12);
  border-radius: 50%;
}

.onboarding-head {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}

.onboarding-kicker {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .5px;
  text-transform: uppercase;
  opacity: .82;
  margin-bottom: 6px;
}

.onboarding-head h2 {
  color: #fff;
  font-size: 20px;
  line-height: 1.25;
  margin-bottom: 6px;
}

.onboarding-head p {
  color: rgba(255,255,255,.82);
  font-size: 13px;
  line-height: 1.6;
  max-width: 620px;
}

.onboarding-close {
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  color: #fff;
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  flex-shrink: 0;
}

.profile-progress {
  position: relative;
  z-index: 1;
  margin: 16px 0;
}

.profile-progress-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 7px;
}

.profile-progress-track {
  height: 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.22);
  overflow: hidden;
}

.profile-progress-track div {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #bbf7d0, #fef08a);
  transition: width .35s ease;
}
.profile-progress-native {
  width: 100%;
  height: 10px;
  border: 0;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,.22);
  display: block;
}
.profile-progress-native::-webkit-progress-bar { background: rgba(255,255,255,.22); border-radius: 999px; }
.profile-progress-native::-webkit-progress-value { background: linear-gradient(90deg, #bbf7d0, #fef08a); border-radius: 999px; }
.profile-progress-native::-moz-progress-bar { background: linear-gradient(90deg, #bbf7d0, #fef08a); border-radius: 999px; }

.onboarding-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(240px,300px);
  gap: 14px;
}

.onboarding-steps {
  display: grid;
  gap: 8px;
}

.onboarding-step {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.1);
  color: #fff;
  border-radius: 12px;
  padding: 10px;
  cursor: pointer;
  text-align: left;
  font-family: var(--font-sans);
  transition: background .15s, transform .15s;
}

.onboarding-step:hover {
  background: rgba(255,255,255,.16);
  transform: translateY(-1px);
}

.onboarding-step.done {
  background: rgba(16,185,129,.24);
  border-color: rgba(187,247,208,.36);
}

.step-index {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff;
  color: var(--teal);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  flex-shrink: 0;
}

.onboarding-step strong,
.onboarding-step small {
  display: block;
}

.onboarding-step small {
  color: rgba(255,255,255,.75);
  font-size: 11px;
  margin-top: 2px;
}

.onboarding-suggestions {
  background: rgba(255,255,255,.92);
  color: var(--text);
  border-radius: 14px;
  padding: 12px;
  box-shadow: 0 10px 24px rgba(15,23,42,.08);
}

.suggestions-title {
  font-size: 12px;
  font-weight: 900;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-bottom: 8px;
}

.onboarding-user {
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 8px 0;
  border-top: 1px solid rgba(15,23,42,.08);
  min-width: 0;
}

.onboarding-user:first-of-type {
  border-top: 0;
}

.onboarding-user strong,
.onboarding-user small {
  display: block;
}

.onboarding-user strong {
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.onboarding-user small,
.onboarding-empty {
  font-size: 11px;
  color: var(--text-muted);
}

.onboarding-user .btn {
  white-space: nowrap;
}

@media (max-width: 760px) {
  .onboarding-grid {
    grid-template-columns: 1fr;
  }
  .onboarding-head {
    align-items: flex-start;
  }
}

/* =====================================================
   V4 PREMIUM VISUAL SKIN — added on top of stable V3
   Scope: visual only. No backend/API behavior changed.
   ===================================================== */
:root{
  --primary:#6366F1;
  --primary-dark:#4F46E5;
  --primary-light:rgba(99,102,241,0.10);
  --primary-glow:rgba(99,102,241,0.22);
  --secondary:#0EA5E9;
  --secondary-light:rgba(14,165,233,0.10);
  --accent:#10B981;
  --accent-light:rgba(16,185,129,0.10);
  --grad:linear-gradient(135deg,#6366F1,#0EA5E9);
  --grad-full:linear-gradient(135deg,#6366F1 0%,#0EA5E9 62%,#10B981 100%);
  --grad-subtle:linear-gradient(135deg,rgba(99,102,241,0.08),rgba(14,165,233,0.08));
  --teal:#6366F1;
  --teal-dark:#4F46E5;
  --teal-mid:#0EA5E9;
  --teal-light:rgba(99,102,241,0.10);
  --teal-pale:rgba(99,102,241,0.05);
  --gold:#F59E0B;
  --gold-light:rgba(245,158,11,0.10);
  --gold-mid:#FBBF24;
  --red-dz:#EF4444;
  --red-light:rgba(239,68,68,0.08);
  --purple:#8B5CF6;
  --purple-light:rgba(139,92,246,0.10);
  --blue:#3B82F6;
  --blue-light:rgba(59,130,246,0.10);
  --green:#10B981;
  --green-light:rgba(16,185,129,0.10);
  --bg:#F0F4FF;
  --cream:#F8F9FF;
  --white:#FFFFFF;
  --card-bg:#FFFFFF;
  --surface:#FFFFFF;
  --surface2:#F8F9FF;
  --surface3:#F0F4FF;
  --text:#0F172A;
  --text-muted:#475569;
  --text-light:#94A3B8;
  --border:rgba(99,102,241,0.10);
  --border-md:rgba(99,102,241,0.18);
  --border-strong:rgba(99,102,241,0.30);
  --shadow-sm:0 1px 4px rgba(99,102,241,0.06);
  --shadow-md:0 4px 16px rgba(99,102,241,0.10);
  --shadow-lg:0 8px 32px rgba(99,102,241,0.14);
  --shadow-xl:0 16px 48px rgba(99,102,241,0.18);
  --font:var(--font-sans);
}
.dark{
  --bg:#0B0F1A;
  --cream:#1E2640;
  --white:#161D2F;
  --card-bg:#161D2F;
  --surface:#161D2F;
  --surface2:#1E2640;
  --surface3:#232B42;
  --text:#F1F5F9;
  --text-muted:#94A3B8;
  --text-light:#64748B;
  --border:rgba(255,255,255,0.07);
  --border-md:rgba(255,255,255,0.12);
  --shadow-sm:0 1px 4px rgba(0,0,0,0.30);
  --shadow-md:0 4px 16px rgba(0,0,0,0.40);
  --shadow-lg:0 8px 32px rgba(0,0,0,0.50);
}
body{
  font-family:var(--font)!important;
  background:
    radial-gradient(circle at 15% 0%,rgba(99,102,241,0.08),transparent 28%),
    radial-gradient(circle at 85% 0%,rgba(14,165,233,0.10),transparent 30%),
    var(--bg)!important;
  color:var(--text);
  letter-spacing:-0.01em;
}
h1,h2,h3,h4,h5{font-family:var(--font)!important;font-weight:700;letter-spacing:-0.025em}
a{color:var(--primary)}a:hover{color:var(--primary-dark)}
.navbar{
  background:rgba(255,255,255,0.92)!important;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border)!important;
  box-shadow:var(--shadow-sm)!important;
}
.dark .navbar{background:rgba(22,29,47,0.92)!important}
.navbar-brand{font-weight:800!important;letter-spacing:-0.04em!important;color:var(--text)!important;gap:9px!important}
.logo-icon{
  width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,#4f6cff,#11a8f5);
  display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:800;
  box-shadow:0 12px 24px rgba(47,134,255,.26);flex-shrink:0;
}
.logo-text .brand-ff{color:#2f86ff!important;background:none!important;-webkit-text-fill-color:#2f86ff!important}
.dz-badge{background:var(--red-dz)!important;color:#fff!important;border-radius:5px!important;font-size:10px!important;padding:2px 6px!important}
.navbar-search input,.input,.textarea,.select{
  background:var(--surface2)!important;border-color:var(--border)!important;color:var(--text)!important;border-radius:11px!important;font-family:var(--font)!important;
}
.navbar-search input:focus,.input:focus,.textarea:focus,.select:focus{
  border-color:var(--primary)!important;box-shadow:0 0 0 3px var(--primary-light)!important;
}
.nav-item{border-radius:10px!important;font-weight:700!important;color:var(--text-muted)!important}
.nav-item:hover,.nav-item.active{background:var(--primary-light)!important;color:var(--primary)!important}
.nav-icon,.sl-icon,.create-menu-icon{filter:saturate(1.12)}
.icon-btn{
  background:var(--surface2)!important;border:1px solid var(--border)!important;color:var(--text-muted)!important;
  border-radius:12px!important;box-shadow:none!important;
}
.icon-btn:hover{background:var(--primary-light)!important;color:var(--primary)!important;border-color:var(--border-md)!important;transform:translateY(-1px)}
.btn{font-family:var(--font)!important;border-radius:12px!important;font-weight:700!important;transition:transform .15s, box-shadow .15s, background .15s!important}
.btn-primary,.mobile-nav-item[style*="background"]{background:var(--grad)!important;color:#fff!important;box-shadow:0 10px 22px var(--primary-glow)!important}
.btn-primary:hover{background:var(--grad)!important;filter:brightness(1.03);transform:translateY(-1px);box-shadow:var(--shadow-lg)!important}
.btn-outline{border-color:var(--primary)!important;color:var(--primary)!important;background:transparent!important}
.btn-outline:hover{background:var(--primary-light)!important}
.btn-ghost{background:var(--surface2)!important;border-color:var(--border)!important;color:var(--text-muted)!important}
.btn-ghost:hover{background:var(--primary-light)!important;color:var(--primary)!important;border-color:var(--border-md)!important}
.card,.card-flat,.sidebar-card,.right-card,.post-card,.profile-card,.admin-card,.formation-card,.biblio-card,.job-card{
  background:var(--card-bg)!important;border:1px solid var(--border)!important;border-radius:18px!important;
  box-shadow:var(--shadow-sm)!important;
}
.card:hover,.post-card:hover,.formation-card:hover,.biblio-card:hover,.job-card:hover{box-shadow:var(--shadow-md)!important;border-color:var(--border-md)!important}
.sidebar-card,.right-card{position:relative;overflow:hidden}
.sidebar-card::before,.right-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad);opacity:.9;
}
.badge-teal,.badge-primary{background:var(--primary-light)!important;color:var(--primary)!important}
.badge-blue{background:var(--secondary-light)!important;color:var(--secondary)!important}
.badge-gold{background:var(--gold-light)!important;color:var(--gold)!important}
.badge-purple{background:var(--purple-light)!important;color:var(--purple)!important}
.badge-red{background:var(--red-light)!important;color:var(--red-dz)!important}
.avatar{background:var(--grad-subtle)!important;color:var(--primary)!important;border:1px solid var(--border)!important;font-weight:800!important}
.sidebar-link{border-radius:12px!important;color:var(--text-muted)!important;font-weight:650!important}
.sidebar-link:hover,.sidebar-link.active{background:var(--primary-light)!important;color:var(--primary)!important;transform:translateX(2px)}
.nav-section-label{color:var(--text-light)!important;font-weight:800!important;letter-spacing:.08em!important}
.create-menu,.profile-menu,.notif-dropdown,.search-dropdown{
  background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:16px!important;box-shadow:var(--shadow-xl)!important;
}
.create-menu-item,.profile-menu-item{border-radius:10px!important;color:var(--text)!important;font-weight:650!important}
.create-menu-item:hover,.profile-menu-item:hover{background:var(--primary-light)!important;color:var(--primary)!important}
.post-action-btn,.reaction-action,.vote-btn{
  border-radius:12px!important;border-color:var(--border)!important;background:var(--surface2)!important;color:var(--text-muted)!important;
}
.post-action-btn:hover,.reaction-action:hover,.vote-btn:hover{background:var(--primary-light)!important;color:var(--primary)!important;border-color:var(--border-md)!important}
.post-vote-score,.score-positive,.positive,.pos{color:var(--green)!important;font-weight:800!important}
.score-negative,.negative,.neg{color:var(--red-dz)!important;font-weight:800!important}
.empty-state,.coming-soon{background:var(--grad-subtle)!important;border:1px dashed var(--border-md)!important;border-radius:20px!important}
.hero-section,.auth-page{background:radial-gradient(circle at top left,rgba(99,102,241,.11),transparent 35%),radial-gradient(circle at top right,rgba(14,165,233,.12),transparent 30%),var(--bg)!important}
.hero-title,.auth-form-title{letter-spacing:-.055em!important}
.hero-title span,.text-teal{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:var(--primary)!important}
.footer{background:var(--surface)!important;border-top:1px solid var(--border)!important;color:var(--text-muted)!important}
.footer-brand{font-weight:800!important;color:var(--text)!important}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-md);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--primary)}
@media(max-width:768px){
  .mobile-nav{background:rgba(255,255,255,0.94)!important;border-top:1px solid var(--border)!important;backdrop-filter:blur(18px)}
  .dark .mobile-nav{background:rgba(22,29,47,0.94)!important}
  .mobile-nav-item{color:var(--text-muted)!important}
  .mobile-nav-item:hover{color:var(--primary)!important}
}

/* ------------------------------------------------------------
   Post action bar update — closer to V4, visual-only change
   ------------------------------------------------------------ */
.post-actions.post-actions-v4{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  border-top:1px solid var(--border)!important;
  padding-top:10px!important;
  margin-top:10px!important;
  flex-wrap:wrap!important;
}
.post-actions-v4 .reaction-wrap{position:relative!important;display:inline-flex!important;align-items:center!important}
.post-actions-v4 .post-action-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-height:34px!important;
  padding:7px 11px!important;
  border-radius:10px!important;
  border:0!important;
  background:transparent!important;
  color:var(--text-light)!important;
  font-family:var(--font)!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1!important;
  cursor:pointer!important;
  transition:all .16s ease!important;
  text-decoration:none!important;
}
.post-actions-v4 .post-action-btn:hover{
  background:var(--surface2)!important;
  color:var(--primary)!important;
  transform:translateY(-1px)!important;
}
.post-actions-v4 .like-btn.liked,
.post-actions-v4 .like-btn.active-like{
  color:var(--primary)!important;
  background:var(--primary-light)!important;
}
.post-actions-v4 .reaction-current{font-size:16px;line-height:1!important}
.post-actions-v4 .reaction-label{font-weight:750!important}
.post-actions-v4 .reaction-picker{
  position:absolute!important;
  bottom:44px!important;
  left:0!important;
  background:var(--surface)!important;
  border:1px solid var(--border)!important;
  border-radius:999px!important;
  box-shadow:var(--shadow-xl)!important;
  padding:8px 10px!important;
  display:flex!important;
  gap:4px!important;
  z-index:200!important;
  opacity:0!important;
  pointer-events:none!important;
  transform:translateY(6px) scale(.92)!important;
  transition:all .20s cubic-bezier(.34,1.56,.64,1)!important;
  white-space:nowrap!important;
}
.post-actions-v4 .reaction-action:hover .reaction-picker,
.post-actions-v4 .reaction-action:focus-within .reaction-picker{
  opacity:1!important;
  pointer-events:auto!important;
  transform:translateY(0) scale(1)!important;
}
.post-actions-v4 .reaction-picker button.react-option{
  width:auto!important;
  height:auto!important;
  min-width:42px!important;
  padding:5px 7px!important;
  border-radius:11px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  transition:all .15s ease!important;
}
.post-actions-v4 .reaction-picker button.react-option:hover{
  background:var(--surface2)!important;
  transform:scale(1.22) translateY(-5px)!important;
}
.post-actions-v4 .react-emoji{font-size:22px!important;line-height:1!important}
.post-actions-v4 .react-label{font-size:9px!important;font-weight:800!important;color:var(--text-light)!important;display:block!important}
.post-actions-v4 .vote-group{
  display:inline-flex!important;
  align-items:center!important;
  border:1px solid var(--border)!important;
  border-radius:14px!important;
  overflow:hidden!important;
  background:#fff!important;
  margin-left:2px!important;
  min-height:42px!important;
  box-shadow:0 10px 24px rgba(15,23,42,.06)!important;
}
.post-actions-v4 .vote-group .vote-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  border-radius:0!important;
  width:58px!important;
  min-width:58px!important;
  min-height:42px!important;
  padding:0 12px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  font-weight:800!important;
  font-variant-numeric:tabular-nums!important;
}
.post-actions-v4 .vote-group .vote-arrow{
  font-size:13px!important;
  line-height:1!important;
  font-weight:900!important;
}
.post-actions-v4 .vote-group .vote-btn.up{color:var(--green)!important}
.post-actions-v4 .vote-group .vote-btn.up:hover{background:rgba(16,185,129,.10)!important;color:var(--green)!important}
.post-actions-v4 .vote-group .vote-btn.up.active,
.post-actions-v4 .vote-group .vote-btn.up.active-vote{
  background:linear-gradient(135deg,#10b981,#34d399)!important;
  color:#fff!important;
  box-shadow:0 6px 16px rgba(16,185,129,.24)!important;
}
.post-actions-v4 .vote-group .vote-btn.dn{color:var(--red-dz)!important}
.post-actions-v4 .vote-group .vote-btn.dn:hover{background:rgba(239,68,68,.09)!important;color:var(--red-dz)!important}
.post-actions-v4 .vote-group .vote-btn.dn.active,
.post-actions-v4 .vote-group .vote-btn.dn.active-vote{
  background:linear-gradient(135deg,#ef4444,#fb7185)!important;
  color:#fff!important;
  box-shadow:0 6px 16px rgba(239,68,68,.26)!important;
}
.post-actions-v4 .vote-divider{width:1px!important;height:22px!important;background:#e6e9f5!important;flex-shrink:0!important}
.post-actions-v4 .vote-score{
  min-width:46px!important;
  height:42px!important;
  padding:0 12px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:13px!important;
  font-weight:900!important;
  color:var(--text)!important;
  font-variant-numeric:tabular-nums!important;
}
.post-actions-v4 .vote-score.score-positive,
.post-actions-v4 .vote-score.pos{color:var(--text)!important}
.post-actions-v4 .vote-score.score-negative,
.post-actions-v4 .vote-score.neg{color:var(--text)!important}
.post-actions-v4 .comment-action{margin-left:auto!important}
.post-actions-v4 .admin-edit-action{color:var(--primary)!important;background:var(--primary-light)!important}
.post-reaction-summary{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  margin-bottom:8px!important;
  padding:2px 0 10px!important;
  border-bottom:1px solid var(--border)!important;
  color:var(--text-muted)!important;
  font-size:11px!important;
  font-weight:650!important;
}
.post-reaction-summary.is-empty{border-bottom:0!important;color:var(--text-light)!important}
.post-reaction-summary .reaction-bubbles{display:flex!important;align-items:center!important}
.post-reaction-summary .reaction-bubbles span{
  width:21px!important;height:21px!important;border-radius:50%!important;
  background:var(--surface2)!important;border:2px solid var(--surface)!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  font-size:11px!important;margin-left:-5px!important;
  box-shadow:0 3px 9px rgba(15,23,42,.10)!important;
}
.post-reaction-summary .reaction-bubbles span:first-child{margin-left:0!important}
@media(max-width:640px){
  .post-actions.post-actions-v4{gap:5px!important}
  .post-actions-v4 .post-action-btn{padding:7px 9px!important;font-size:11px!important}
  .post-actions-v4 .comment-action{margin-left:0!important}
  .post-actions-v4 .vote-score{min-width:32px!important;padding:0 7px!important}
}


/* Bonjour Docteur hero card — V4 visual integration on stable V3 */
.doctor-hero-card{
  position:relative;
  overflow:hidden;
  margin:0 0 16px;
  padding:24px 26px;
  border-radius:24px;
  background:var(--grad-full, linear-gradient(135deg,#6366F1 0%,#0EA5E9 62%,#10B981 100%));
  color:#fff;
  box-shadow:0 18px 42px rgba(99,102,241,.22);
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  align-items:end;
  gap:22px;
  border:1px solid rgba(255,255,255,.24);
}
.doctor-hero-card::before{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  border-radius:50%;
  right:-92px;
  top:-120px;
  background:rgba(255,255,255,.16);
  pointer-events:none;
}
.doctor-hero-card::after{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  border-radius:50%;
  left:-86px;
  bottom:-100px;
  background:rgba(255,255,255,.10);
  pointer-events:none;
}
.doctor-hero-content,.doctor-hero-actions{position:relative;z-index:1}
.doctor-hero-content{min-width:0}
.doctor-hero-kicker{
  font-size:11px;
  font-weight:800;
  color:rgba(255,255,255,.74);
  letter-spacing:.09em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.doctor-hero-card h1{
  color:#fff;
  font-size:24px;
  line-height:1.15;
  letter-spacing:-.04em;
  margin:0 0 10px;
  font-weight:850;
}
.doctor-hero-card p{
  color:rgba(255,255,255,.88);
  margin:0;
  max-width:560px;
  font-size:13px;
  line-height:1.65;
}
.doctor-hero-badges{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:8px;margin-top:16px}
.doctor-hero-badges span{
  background:rgba(255,255,255,.18);
  backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.25);
  color:#fff;
  border-radius:999px;
  padding:5px 12px;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.doctor-hero-actions{
  display:grid;
  gap:10px;
  justify-items:stretch;
  align-self:center;
}
.doctor-hero-actions > .btn{
  width:100%;
  justify-content:center;
  min-height:44px;
}
.doctor-hero-secondary-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.doctor-hero-secondary-actions .btn{
  width:100%;
  justify-content:center;
  min-height:40px;
}
.doctor-hero-card .btn{border-color:rgba(255,255,255,.28)!important}
.doctor-hero-card .doctor-hero-ghost{
  background:rgba(255,255,255,.14)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.24)!important;
  box-shadow:none!important;
}
.doctor-hero-card .doctor-hero-ghost:hover{background:rgba(255,255,255,.22)!important}
@media(max-width:900px){
  .doctor-hero-card{grid-template-columns:1fr;padding:20px}
  .doctor-hero-actions{width:100%;grid-template-columns:1fr}
  .doctor-hero-secondary-actions{grid-template-columns:1fr 1fr}
  .doctor-hero-badges{grid-template-columns:1fr}
  .doctor-hero-card h1{font-size:21px}
}


/* Hover reactions — V4-like natural behavior: open on hover, stays open while moving to picker */
.post-actions-v4 .reaction-wrap{position:relative!important}
.post-actions-v4 .reaction-wrap::before{
  content:"";
  position:absolute;
  left:-8px;
  right:-8px;
  bottom:30px;
  height:28px;
  background:transparent;
  pointer-events:auto;
}
.post-actions-v4 .reaction-wrap.is-hovering .reaction-picker,
.post-actions-v4 .reaction-wrap:hover .reaction-picker,
.post-actions-v4 .reaction-wrap:focus-within .reaction-picker{
  opacity:1!important;
  pointer-events:auto!important;
  transform:translateY(0) scale(1)!important;
}
.post-actions-v4 .reaction-picker{
  transition:opacity .16s ease, transform .18s cubic-bezier(.34,1.56,.64,1)!important;
}
.post-actions-v4 .reaction-picker::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-14px;
  height:16px;
  background:transparent;
}
@media (hover:none){
  .post-actions-v4 .reaction-wrap::before{display:none}
}

/* ─── GROUPES ─── */
.groupes-page { max-width: 1100px; margin: 0 auto; padding: 24px 16px; }
.groupes-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.groupes-header h1 { font-size: 22px; font-weight: 800; color: var(--text); }

.groupes-search-bar { display: flex; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.groupes-search-bar input { flex: 1; min-width: 200px; padding: 10px 14px; border: 1px solid var(--border-md); border-radius: var(--radius-md); font-size: 14px; background: var(--white); color: var(--text); outline: none; }
.groupes-search-bar input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(15,110,86,.08); }
.groupes-search-bar select { padding: 10px 14px; border: 1px solid var(--border-md); border-radius: var(--radius-md); font-size: 13px; background: var(--white); color: var(--text); cursor: pointer; }

.groupes-tabs { display: flex; gap: 4px; margin-bottom: 20px; background: var(--teal-pale); border-radius: var(--radius-md); padding: 4px; width: fit-content; }
.groupes-tab { padding: 8px 18px; border: none; background: transparent; border-radius: var(--radius-md); font-size: 13px; font-weight: 600; color: var(--text-muted); cursor: pointer; transition: all .15s; }
.groupes-tab.active { background: var(--white); color: var(--teal); box-shadow: var(--shadow-sm); }

.groupes-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }

.groupe-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .15s, transform .15s; }
.groupe-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.groupe-card-header { padding: 18px 18px 12px; display: flex; align-items: flex-start; gap: 14px; }
.groupe-avatar { width: 52px; height: 52px; border-radius: var(--radius-md); background: var(--teal-light); display: flex; align-items: center; justify-content: center; font-size: 24px; flex-shrink: 0; }
.groupe-avatar img { width: 100%; height: 100%; border-radius: var(--radius-md); object-fit: cover; }
.groupe-card-info { flex: 1; min-width: 0; }
.groupe-card-name { font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.groupe-card-cat { font-size: 11px; font-weight: 600; color: var(--teal); margin-bottom: 4px; }
.groupe-card-desc { font-size: 12px; color: var(--text-muted); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.groupe-card-meta { padding: 10px 18px; border-top: 1px solid var(--border); display: flex; align-items: center; gap: 12px; font-size: 11px; color: var(--text-muted); font-weight: 600; }
.groupe-card-meta span { display: flex; align-items: center; gap: 4px; }
.badge-groupe-type { padding: 2px 8px; border-radius: 20px; font-size: 10px; font-weight: 700; }
.badge-groupe-type.public { background: var(--teal-light); color: var(--teal); }
.badge-groupe-type.prive { background: var(--gold-light); color: var(--gold); }
.groupe-card-actions { padding: 12px 18px; border-top: 1px solid var(--border); display: flex; gap: 8px; margin-top: auto; }
.groupe-card-actions .btn { flex: 1; font-size: 13px; }

/* Groupe détail */
.groupe-detail-hero { background: linear-gradient(135deg, var(--teal-dark) 0%, var(--teal) 100%); color: #fff; padding: 28px 24px 24px; border-radius: var(--radius-xl); margin-bottom: 20px; position: relative; overflow: visible; }
.groupe-detail-hero::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); pointer-events: none; }
.groupe-detail-top { display: flex; align-items: flex-start; gap: 18px; position: relative; flex-wrap: wrap; z-index: 1; }
.groupe-detail-avatar { width: 70px; height: 70px; border-radius: var(--radius-lg); background: rgba(255,255,255,0.2); display: flex; align-items: center; justify-content: center; font-size: 32px; flex-shrink: 0; border: 2px solid rgba(255,255,255,0.3); }
.groupe-detail-info { flex: 1; }
.groupe-detail-name { font-size: 22px; font-weight: 800; margin-bottom: 4px; }
.groupe-detail-cat { font-size: 12px; opacity: 0.85; margin-bottom: 8px; font-weight: 600; }
.groupe-detail-stats { display: flex; gap: 16px; font-size: 12px; opacity: 0.9; font-weight: 600; flex-wrap: wrap; }
.groupe-detail-stats span { display: flex; align-items: center; gap: 5px; }
.groupe-detail-actions { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; position: relative; z-index: 1; }

/* Force hero action buttons to be visible — overrides V4 !important rules via higher specificity */
.groupe-detail-actions .btn,
.membre-dropdown > .btn { background: rgba(255,255,255,.22) !important; color: #fff !important; border-color: rgba(255,255,255,.45) !important; font-weight: 600 !important; }
.groupe-detail-actions .btn:hover,
.membre-dropdown > .btn:hover { background: rgba(255,255,255,.36) !important; color: #fff !important; }

/* Dropdown Membre */
.membre-dropdown { position: relative; display: inline-block; }
.membre-dropdown-menu { position: absolute; top: calc(100% + 6px); left: 0; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); min-width: 190px; box-shadow: var(--shadow-lg); z-index: 500; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: all .15s; }
.membre-dropdown-menu.open { opacity: 1; visibility: visible; transform: translateY(0); }
.membre-dropdown-menu button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 10px 14px; background: none; border: none; font-size: 13px; font-weight: 500; color: var(--text); cursor: pointer; text-align: left; transition: background .1s; font-family: inherit; }
.membre-dropdown-menu button:hover { background: var(--teal-pale); color: var(--teal); }
.membre-dropdown-menu button.danger { color: var(--red-dz); }
.membre-dropdown-menu button.danger:hover { background: rgba(220,38,38,.06); }

/* Group post attachments */
.gpost-image { max-width: 100%; max-height: 320px; border-radius: var(--radius-md); margin: 10px 0 2px; display: block; cursor: pointer; }
.gpost-doc-link { display: inline-flex; align-items: center; gap: 7px; margin-top: 10px; padding: 8px 14px; border-radius: var(--radius-md); background: var(--teal-pale); color: var(--teal); font-size: 13px; font-weight: 600; text-decoration: none; border: 1px solid var(--teal-light); transition: background .12s; }
.gpost-doc-link:hover { background: var(--teal-light); color: var(--teal-dark); }
.dark .gpost-doc-link { background: rgba(15,110,86,.15); border-color: rgba(15,110,86,.3); }

/* Barre de recherche dans le groupe */
.groupe-post-search { margin-bottom: 14px; }
.groupe-post-search input { width: 100%; padding: 10px 16px; border: 1px solid var(--border); border-radius: var(--radius-lg); font-size: 13px; background: var(--white); color: var(--text); outline: none; transition: border .15s; font-family: inherit; box-sizing: border-box; }
.groupe-post-search input:focus { border-color: var(--teal); }

/* Emoji avatar picker */
.avatar-emoji-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.avatar-emoji-btn { width: 34px; height: 34px; border-radius: var(--radius-sm); border: 2px solid transparent; background: var(--teal-pale); font-size: 17px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all .12s; padding: 0; }
.avatar-emoji-btn:hover { border-color: var(--teal-mid); }
.avatar-emoji-btn.selected { border-color: var(--teal); background: var(--teal-light); }

/* Sélecteur de type dans modal post */
.gpost-type-pills { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.gpost-type-pill { padding: 5px 12px; border: 1.5px solid var(--border-md); border-radius: 20px; font-size: 12px; font-weight: 600; background: none; color: var(--text-muted); cursor: pointer; transition: all .15s; font-family: inherit; }
.gpost-type-pill:hover { border-color: var(--teal); color: var(--teal); }
.gpost-type-pill.active { background: var(--teal); color: #fff; border-color: var(--teal); }

/* Dark mode */
.dark .membre-dropdown-menu { background: var(--card-bg); border-color: var(--border); }

.comment-reaction-action {
  position: relative;
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}
.comment-reaction-action::before {
  content: "";
  position: absolute;
  left: -10px;
  right: -10px;
  bottom: 14px;
  height: 24px;
  background: transparent;
  pointer-events: auto;
}
.comment-reaction-action:hover .comment-reaction-picker,
.comment-reaction-action:focus-within .comment-reaction-picker,
.comment-reaction-action.is-hovering .comment-reaction-picker {
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateY(0) scale(1) !important;
}
.comment-reaction-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 0;
  background: transparent;
  color: var(--text-muted);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  padding: 0 2px;
  cursor: pointer;
}
.comment-reaction-btn:hover,
.comment-reaction-btn.is-liked {
  color: var(--primary);
}
.comment-reaction-count {
  min-width: 10px;
  color: inherit;
}
.comment-reaction-picker {
  bottom: calc(100% + 6px);
  left: -8px;
}
.comment-reaction-picker::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -14px;
  height: 16px;
  background: transparent;
}
.comment-reaction-picker button.react-option {
  width: 42px;
  height: 42px;
}
.comment-reaction-picker .react-emoji {
  font-size: 20px;
}
.comment-reaction-picker .react-label {
  font-size: 8px;
}
.dark .groupe-post-search input { background: var(--card-bg); color: var(--text); border-color: var(--border); }
.dark .avatar-emoji-btn { background: rgba(255,255,255,.07); }

.groupe-detail-body { display: grid; grid-template-columns: 1fr 300px; gap: 20px; align-items: start; }
.groupe-detail-main { min-width: 0; }
.groupe-detail-side { display: flex; flex-direction: column; gap: 16px; }

.groupe-side-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px; }
.groupe-side-card h3 { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 12px; }

.groupe-member-item { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 13px; }
.groupe-member-item .avatar { flex-shrink: 0; }
.groupe-member-name { font-weight: 600; color: var(--text); }
.groupe-member-spec { font-size: 11px; color: var(--text-muted); }
.groupe-member-role { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 20px; }
.groupe-member-role.admin { background: var(--teal-light); color: var(--teal); }
.groupe-member-role.moderateur { background: var(--purple-light); color: var(--purple); }

.groupe-composer { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px; margin-bottom: 16px; }
.groupe-composer textarea { width: 100%; min-height: 80px; padding: 10px 14px; border: 1px solid var(--border-md); border-radius: var(--radius-md); font-size: 14px; resize: vertical; font-family: inherit; color: var(--text); background: var(--white); outline: none; transition: border .15s; }
.groupe-composer textarea:focus { border-color: var(--teal); }
.groupe-composer-actions { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; gap: 8px; flex-wrap: wrap; }
.groupe-composer-actions select { padding: 7px 12px; border: 1px solid var(--border-md); border-radius: var(--radius-md); font-size: 12px; background: var(--white); color: var(--text); }

.groupe-post-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px; margin-bottom: 12px; }
.groupe-post-header { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.groupe-post-author { flex: 1; }
.groupe-post-author-name { font-size: 13px; font-weight: 700; color: var(--text); }
.groupe-post-author-spec { font-size: 11px; color: var(--text-muted); }
.groupe-post-time { font-size: 11px; color: var(--text-light); }
.groupe-post-type-badge { font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 20px; background: var(--teal-light); color: var(--teal); }
.groupe-post-content { font-size: 14px; color: var(--text); line-height: 1.6; margin-bottom: 12px; white-space: pre-wrap; word-break: break-word; overflow-wrap: break-word; }
.groupe-post-actions { display: flex; align-items: center; gap: 8px; padding-top: 10px; border-top: 1px solid var(--border); }
.groupe-post-action-btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: none; background: transparent; border-radius: var(--radius-md); font-size: 12px; font-weight: 600; color: var(--text-muted); cursor: pointer; transition: all .12s; }
.groupe-post-action-btn:hover { background: var(--teal-pale); color: var(--teal); }
.groupe-post-action-btn.liked { color: var(--teal); }
.groupe-post-action-btn.danger:hover { background: var(--red-light); color: var(--red-dz); }

/* Groupe post: override post-actions-v4 to use teal instead of blue */
.groupe-post-card .post-actions.post-actions-v4 { margin-top: 0 !important; }
.groupe-post-card .post-actions-v4 .post-action-btn { color: var(--text-muted) !important; font-size: 13px !important; font-weight: 600 !important; gap: 7px !important; }
.groupe-post-card .post-actions-v4 .post-action-btn:hover { color: var(--teal) !important; background: var(--teal-pale) !important; transform: none !important; }
.groupe-post-card .post-actions-v4 .like-btn.liked,
.groupe-post-card .post-actions-v4 .like-btn.active-like { color: var(--teal) !important; background: var(--teal-light) !important; }
.groupe-post-card .post-reaction-summary { padding: 6px 0 8px !important; border-top: none !important; }
.groupe-post-card .reaction-total { color: var(--text-muted) !important; font-size: 12px !important; }

.feed-post-as-group {
  cursor: pointer;
  padding: 16px !important;
  margin-bottom: 12px;
}
.feed-post-as-group .groupe-post-header {
  align-items: flex-start;
}
.feed-post-as-group .post-author {
  color: inherit;
  text-decoration: none;
}
.feed-post-as-group .post-author:hover {
  color: var(--teal);
}
.feed-post-as-group .feed-post-badges {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.feed-post-as-group .post-card-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--text);
  margin: 4px 0 8px;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.feed-post-as-group .post-tags {
  margin: -2px 0 10px;
}
.feed-post-as-group .post-actions.post-actions-v4 {
  border-top: 1px solid var(--border);
  padding-top: 10px;
}
.feed-post-as-group .feed-inline-composer {
  border-top: 1px solid var(--border);
}
.feed-post-as-group .groupe-post-author,
.group-feed-card .post-meta {
  min-width: 0;
}
.feed-post-as-group .groupe-post-author-name,
.feed-post-as-group .groupe-post-author-spec,
.group-feed-card .post-author-row,
.group-feed-card .post-spec,
.group-feed-card .post-time {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.feed-post-as-group .groupe-post-content,
.group-feed-card .post-content {
  max-width: 100%;
  overflow-wrap: anywhere !important;
  word-break: break-word;
}
.group-feed-card {
  overflow: hidden;
}

.groupe-comments { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); display: none; }
.groupe-comments.open { display: block; }
.groupe-comment-item { display: flex; gap: 8px; margin-bottom: 10px; font-size: 13px; }
.groupe-comment-item .avatar { flex-shrink: 0; }
.groupe-comment-bubble { background: var(--teal-pale); border-radius: 0 var(--radius-md) var(--radius-md) var(--radius-md); padding: 8px 12px; flex: 1; }
.groupe-comment-author { font-weight: 700; font-size: 12px; margin-bottom: 2px; color: var(--text); }
.groupe-comment-text { color: var(--text); line-height: 1.5; }
.groupe-comment-input { display: flex; gap: 8px; margin-top: 10px; }
.groupe-comment-input input { flex: 1; padding: 8px 12px; border: 1px solid var(--border-md); border-radius: var(--radius-md); font-size: 13px; background: var(--white); color: var(--text); outline: none; }
.groupe-comment-input input:focus { border-color: var(--teal); }

/* Demandes en attente */
.pending-request-item { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.pending-request-item:last-child { border-bottom: none; }
.pending-request-actions { display: flex; gap: 6px; margin-left: auto; }

/* Modal créer groupe */
.form-group { margin-bottom: 16px; }
.form-group label { display: block; font-size: 13px; font-weight: 600; color: var(--text); margin-bottom: 6px; }
.form-group input, .form-group select, .form-group textarea { width: 100%; padding: 10px 14px; border: 1px solid var(--border-md); border-radius: var(--radius-md); font-size: 14px; color: var(--text); background: var(--white); font-family: inherit; outline: none; transition: border .15s; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(15,110,86,.08); }
.form-group textarea { resize: vertical; min-height: 80px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Empty state */
.groupes-empty { text-align: center; padding: 48px 24px; color: var(--text-muted); }
.groupes-empty .empty-icon { font-size: 48px; margin-bottom: 12px; }
.groupes-empty h3 { font-size: 16px; font-weight: 700; margin-bottom: 6px; color: var(--text); }

/* Inline comments on group post cards */
.gpost-read-more { background: none; border: none; padding: 0; color: var(--teal); font-size: 14px; font-weight: 600; cursor: pointer; font-family: inherit; }
.gpost-read-more:hover { text-decoration: underline; }
.gpost-comments-inline { padding: 8px 0 4px; }
.gpost-load-comments-btn { background: none; border: none; padding: 4px 0; color: var(--teal); font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit; display: block; }
.gpost-load-comments-btn:hover { text-decoration: underline; }
.gpost-inline-composer { display: flex; align-items: center; gap: 8px; padding: 8px 0 4px; border-top: 1px solid var(--border); margin-top: 4px; }
.gpost-inline-input { flex: 1; padding: 7px 12px; border: 1px solid var(--border-md); border-radius: 20px; font-size: 13px; background: var(--teal-pale); color: var(--text); outline: none; font-family: inherit; transition: border .15s; }
.gpost-inline-input:focus { border-color: var(--teal); background: var(--white); }
.gpost-inline-send { background: var(--teal); color: #fff; border: none; border-radius: 50%; width: 30px; height: 30px; font-size: 14px; cursor: pointer; flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: background .15s; }
.gpost-inline-send:hover { background: var(--teal-dark); }
.dark .gpost-inline-input { background: rgba(255,255,255,.06); border-color: var(--border); color: var(--text); }
.dark .gpost-inline-input:focus { background: var(--card-bg); border-color: var(--teal); }

/* Dark mode */
.dark .groupe-card, .dark .groupe-side-card, .dark .groupe-composer, .dark .groupe-post-card { background: var(--card-bg); border-color: var(--border); }
.dark .groupe-comment-bubble { background: rgba(255,255,255,0.05); }
.dark .groupes-search-bar input, .dark .groupes-search-bar select, .dark .form-group input, .dark .form-group select, .dark .form-group textarea { background: var(--card-bg); color: var(--text); border-color: var(--border); }
.dark .groupe-composer textarea, .dark .groupe-comment-input input { background: var(--card-bg); color: var(--text); }

@media (max-width: 768px) {
  .groupe-detail-body { grid-template-columns: 1fr; }
  .groupe-detail-side { order: -1; }
  .groupes-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .groupes-header { flex-direction: column; align-items: flex-start; }
}

/* Cockpit accueil */
.cockpit-shell {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 22px 0 42px;
}
.cockpit-view-switch {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.cockpit-switch-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 16px;
  border: 1px solid var(--border-md);
  border-radius: 10px;
  color: var(--text-muted);
  background: var(--card-bg);
  font-weight: 800;
  font-size: 12px;
}
.cockpit-switch-btn.active {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
}
.cockpit-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr);
  gap: 18px;
  padding: 28px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(15,110,86,.11), rgba(24,95,165,.07)),
    var(--card-bg);
  box-shadow: var(--shadow-sm);
}
.cockpit-kicker,
.community-return-card span {
  display: inline-flex;
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 8px;
}
.cockpit-hero h1 {
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 900;
  letter-spacing: 0;
}
.cockpit-hero p {
  max-width: 760px;
  color: var(--text-muted);
  font-size: 16px;
  margin-top: 8px;
}
.cockpit-hero-sub { font-size: 14px !important; }
.cockpit-hero-actions,
.cockpit-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.cockpit-hero-actions { margin-top: 22px; justify-content: flex-start; }
.cockpit-hero-panel {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgba(255,255,255,.72);
}
.dark .cockpit-hero-panel { background: rgba(255,255,255,.05); }
.cockpit-pulse-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  color: var(--text-muted);
  font-weight: 700;
}
.cockpit-pulse-row strong {
  font-size: 38px;
  color: var(--blue);
}
.cockpit-pulse-list {
  display: grid;
  gap: 10px;
}
.cockpit-pulse-list div,
.cockpit-pulse-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid var(--border);
  text-decoration: none;
  color: inherit;
}
.cockpit-pulse-list strong { color: var(--teal); font-size: 22px; }
.cockpit-pulse-list span { color: var(--text-muted); font-size: 12px; text-align: right; }
.cockpit-section {
  margin-top: 18px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card-bg);
  box-shadow: var(--shadow-sm);
}
.cockpit-section-head { margin-bottom: 16px; }
.cockpit-section h2 { font-size: 20px; font-weight: 850; }
.cockpit-section p { color: var(--text-muted); font-size: 13px; margin-top: 2px; }
.quick-actions-grid,
.must-see-grid,
.module-grid {
  display: grid;
  gap: 12px;
}
.quick-actions-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.must-see-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.module-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.quick-action-card,
.cockpit-mini-card,
.module-card,
.cockpit-preview-row {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--white);
  color: var(--text);
  transition: border-color .16s, box-shadow .16s, transform .16s;
}
.quick-action-card:hover,
.cockpit-mini-card:hover,
.module-card:hover,
.cockpit-preview-row:hover {
  border-color: var(--teal-mid);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}
.quick-action-card {
  min-height: 138px;
  padding: 14px;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
}
.quick-action-card span,
.module-card span,
.cockpit-preview-type {
  display: inline-flex;
  width: fit-content;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--blue-light);
  color: var(--blue);
  font-size: 10px;
  font-weight: 850;
  margin-bottom: 10px;
}
.quick-action-card strong,
.module-card strong,
.cockpit-mini-card strong {
  display: block;
  font-size: 14px;
  line-height: 1.35;
}
.quick-action-card small {
  display: block;
  color: var(--text-muted);
  font-size: 11px;
  line-height: 1.45;
  margin-top: 8px;
}
.cockpit-mini-card {
  display: block;
  min-height: 116px;
  padding: 14px;
}
.cockpit-mini-card span {
  display: block;
  color: var(--gold);
  font-size: 11px;
  font-weight: 900;
  margin-bottom: 8px;
}
.module-card {
  display: block;
  min-height: 130px;
  padding: 18px;
}
.cockpit-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.cockpit-list {
  display: grid;
  gap: 10px;
}
.cockpit-preview-row {
  display: block;
  padding: 12px;
}
.cockpit-preview-row strong {
  display: block;
  color: var(--text);
  font-size: 13px;
  line-height: 1.4;
}
.cockpit-preview-row small {
  display: block;
  color: var(--text-muted);
  margin-top: 4px;
  font-size: 11px;
}
.cockpit-empty {
  display: grid;
  gap: 8px;
  padding: 22px;
  border: 1px dashed var(--border-md);
  border-radius: 8px;
  color: var(--text-muted);
  background: var(--cream);
  text-align: center;
}
.skeleton-card {
  min-height: 110px;
  border: none;
  background: linear-gradient(90deg, var(--border) 25%, var(--border-md) 50%, var(--border) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}
@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.community-return-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
  border: 0;
  border-radius: 24px;
  overflow: hidden;
  position: relative;
  background:
    radial-gradient(circle at 88% 8%, rgba(255,255,255,.26) 0 82px, transparent 84px),
    radial-gradient(circle at 99% 92%, rgba(255,255,255,.18) 0 64px, transparent 66px),
    linear-gradient(135deg, #0f8f8c 0%, #2f6fed 56%, #7c3aed 100%);
  box-shadow: 0 18px 48px rgba(16,35,49,.13);
}

.community-return-card > div:first-child {
  position: relative;
  z-index: 1;
}

.community-return-card span {
  color: rgba(255,255,255,.82);
  margin-bottom: 6px;
}

.community-return-card h1 {
  margin: 0 0 5px;
  color: #0b1328;
  font-size: clamp(26px, 3.5vw, 34px);
  line-height: 1.02;
  font-weight: 900;
  letter-spacing: 0;
}

.community-return-card p {
  max-width: 540px;
  margin: 0;
  color: rgba(255,255,255,.9);
  font-size: 14px;
  line-height: 1.4;
  font-weight: 650;
}

.community-hero-panel {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
}

.community-hero-action {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 44px;
  padding: 9px 14px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 16px;
  background: rgba(255,255,255,.14);
  color: #fff;
  text-align: left;
  text-decoration: none;
  font-family: inherit;
  cursor: pointer;
  transition: transform .15s, background .15s, border-color .15s;
}

.community-hero-action:hover {
  transform: translateY(-1px);
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.42);
}

.community-hero-action.primary {
  background: rgba(255,255,255,.92);
  color: #102331;
  border-color: transparent;
}

.community-hero-action strong {
  font-size: 12.5px;
  font-weight: 900;
  line-height: 1.15;
}

.community-hero-action small {
  margin-top: 2px;
  color: currentColor;
  opacity: .72;
  font-size: 10.5px;
  font-weight: 750;
}

@media (max-width: 1120px) {
  .quick-actions-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .must-see-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .cockpit-shell { width: min(100% - 22px, 720px); padding-bottom: 86px; }
  .cockpit-hero,
  .cockpit-columns,
  .module-grid {
    grid-template-columns: 1fr;
  }
  .cockpit-hero { padding: 20px; }
  .cockpit-hero-actions .btn,
  .cockpit-section-head .btn {
    width: 100%;
    justify-content: center;
  }
  .quick-actions-grid,
  .must-see-grid {
    grid-template-columns: 1fr;
  }
  .cockpit-section { padding: 16px; }
  .cockpit-view-switch { position: sticky; top: calc(var(--nav-h) + 6px); z-index: 20; }
  .cockpit-switch-btn { flex: 1; }
}
@media (max-width: 720px) {
  .navbar-actions > div:first-child { display: block; }
  .btn-create {
    min-width: 42px;
    padding: 8px 10px !important;
    white-space: nowrap;
  }
  #themeToggle { display: none; }
}
@media (max-width: 520px) {
  .logo-text { display: none; }
  .navbar-search { max-width: 42vw; }
  .navbar-search .search-filter-btn { display: none; }
  .navbar-search input { padding-right: 12px; }
  .btn-create {
    font-size: 0 !important;
    width: 38px;
    height: 34px;
    justify-content: center;
  }
  .btn-create::before {
    content: "+";
    font-size: 18px;
    line-height: 1;
  }
}

#cookie-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 14px 20px;
  border-top: 1px solid rgba(255,255,255,.08);
  background: #1a2332;
  color: #e2e8f0;
  box-shadow: 0 -2px 16px rgba(0,0,0,.35);
  font-size: 13px;
}
#cookie-banner .cookie-banner-text { flex: 1; min-width: 200px; }
#cookie-banner .cookie-link { color: #60a5fa; text-decoration: underline; margin-left: 4px; }
#cookie-banner .cookie-accept-btn {
  flex-shrink: 0;
  padding: 8px 20px;
  border: none;
  border-radius: 8px;
  background: #3b82f6;
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
}
@media (max-width: 520px) {
  #cookie-banner { padding: 10px 12px; gap: 10px; align-items: center; flex-wrap: nowrap; font-size: 12px; line-height: 1.35; }
  #cookie-banner .cookie-banner-text { min-width: 0; }
  #cookie-banner .cookie-full { display: none; }
  #cookie-banner .cookie-short { display: inline; }
  #cookie-banner .cookie-accept-btn { padding: 8px 12px; min-width: 82px; }
}
@media (min-width: 521px) {
  #cookie-banner .cookie-short { display: none; }
}
@media (min-width: 721px) {
  .navbar { gap: 12px; }
  .nav-item { padding-left: 9px; padding-right: 9px; min-width: 64px; }
  .navbar-actions { min-width: 210px; }
}

/* Createur unifie */
.create-modal {
  width: min(920px, calc(100vw - 28px));
  max-width: 920px !important;
  max-height: calc(100vh - 42px);
  overflow-y: auto;
}
.create-modal-subtitle {
  margin-top: 3px;
  color: var(--text-muted);
  font-size: 12px;
}
.create-type-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.create-type-card {
  min-height: 74px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--white);
  color: var(--text);
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  transition: border-color .16s, box-shadow .16s, transform .16s;
}
.create-type-card:hover,
.create-type-card.active {
  border-color: var(--teal);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}
.create-type-card.active {
  background: var(--teal-pale);
}
.create-type-card span {
  display: inline-flex;
  width: fit-content;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--blue-light);
  color: var(--blue);
  font-size: 10px;
  font-weight: 850;
  margin-bottom: 6px;
}
.create-type-card strong {
  display: block;
  font-size: 13px;
  line-height: 1.25;
}
.create-type-card small {
  display: block;
  color: var(--text-muted);
  font-size: 11px;
  line-height: 1.35;
  margin-top: 5px;
}
.create-form-panel {
  display: none;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--cream);
}
.create-form-panel.is-active { display: block; }
.create-form-panel .form-group:last-child { margin-bottom: 0; }
.create-org-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.create-org-tag {
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--text-muted);
  border-radius: 999px;
  padding: 7px 12px;
  font: 700 12px/1 var(--font-sans);
  cursor: pointer;
  transition: background .16s, border-color .16s, color .16s, transform .16s;
}
.create-org-tag:hover,
.create-org-tag.active {
  border-color: var(--teal);
  background: var(--teal-pale);
  color: var(--teal);
  transform: translateY(-1px);
}
.create-modal.direct-create .create-form-panel {
  margin-top: 0;
}
.create-modal.direct-create {
  max-width: 760px !important;
}
.create-alert { display: flex; gap: 8px; margin-bottom: 14px; }
.create-anon-check {
  display: block;
  margin: 6px 0 14px;
}
.create-textarea-post { min-height: 110px; }
.create-textarea-short { min-height: 58px; }
.create-textarea-job { min-height: 100px; }
.create-textarea-event { min-height: 86px; }
.create-file-label { cursor: pointer; }
.create-file-input { display: none; }
.create-field-spaced { margin-bottom: 14px; }
.create-job-contact-row { display: flex; gap: 8px; margin-top: 6px; }
.create-label-muted { text-transform: none; color: var(--text-light); font-weight: 600; }
.create-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
  flex-wrap: wrap;
}
.qcm-builder-head,
.qcm-question-block-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.qcm-question-builder-list {
  display: grid;
  gap: 14px;
}
.qcm-question-block {
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(248,250,252,.94);
}
.qcm-question-block-head strong {
  color: var(--text-dark);
  font-size: 15px;
  font-weight: 900;
}
.qcm-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.qcm-choice-editor {
  display: grid;
  gap: 6px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
}
.qcm-choice-editor > span {
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 850;
}
.qcm-correct-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--teal-dark);
  font-size: 12px;
  font-weight: 850;
}
.modal-wide { max-width: 640px; }
.modal-medium { max-width: 520px; }
.modal-narrow { max-width: 480px; }
.legacy-type-row { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.legacy-anon-warning { display: flex; gap: 8px; margin-bottom: 14px; }
.legacy-textarea-main { min-height: 120px; }
.legacy-textarea-short { min-height: 60px; }
.legacy-upload-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.legacy-link-field { margin-top: 8px; }
.legacy-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.apply-job-title { font-size: 13px; color: var(--text-muted); margin-bottom: 18px; }
.modal-title-danger { color: var(--red-dz); }
.report-patient-alert { margin-bottom: 16px; font-size: 12px; }
.report-patient-textarea { min-height: 70px; }
.avatar-soft { background: var(--teal-light); }
.badge-demo { font-size: 9px; }
.post-author-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.post-card-title { font-size: 15px; font-weight: 700; margin-bottom: 8px; }
.post-read-more { color: var(--teal); font-weight: 600; }
.feed-inline-user-avatar { background: var(--teal); color: #fff; width: 28px; height: 28px; font-size: 12px; min-width: 28px; flex-shrink: 0; }
.feed-comment-avatar { background: var(--teal-light); color: var(--teal); width: 28px; height: 28px; font-size: 11px; min-width: 28px; flex-shrink: 0; }
.inline-post-overlay { position: fixed; inset: 0; z-index: 1300; display: none; align-items: flex-start; justify-content: center; padding: 34px 14px; overflow: auto; background: rgba(15,23,42,.48); }
.inline-post-overlay.open { display: flex; }
.inline-post-modal { width: min(760px, 100%); max-height: calc(100vh - 68px); display: flex; flex-direction: column; overflow: hidden; background: var(--white); border: 1px solid var(--border); border-radius: 14px; box-shadow: 0 24px 80px rgba(15,23,42,.28); }
.inline-post-head { height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--border); background: var(--white); }
.inline-post-title { font-size: 14px; font-weight: 800; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inline-post-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.inline-post-close { width: 34px; height: 34px; border: 0; border-radius: 50%; background: var(--teal-pale); color: var(--text); font-size: 20px; cursor: pointer; }
.inline-post-close:hover { background: var(--teal-light); color: var(--teal); }
.inline-post-body { overflow: auto; padding: 16px; background: var(--bg, #f8fafc); }
.inline-post-loading { text-align: center; padding: 34px; color: var(--text-muted); }
.inline-post-content { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 16px; margin-bottom: 12px; }
.inline-post-author { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; }
.inline-post-author-name { font-size: 14px; font-weight: 800; color: var(--text); }
.inline-post-author-meta { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.inline-post-content-title { font-size: 18px; font-weight: 800; margin-bottom: 10px; }
.inline-post-text { font-size: 14px; line-height: 1.75; color: var(--text); white-space: pre-wrap; }
.inline-comments { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 14px; }
.inline-comments-title { font-size: 12px; font-weight: 800; color: var(--teal); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 10px; }
.inline-comment { display: flex; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--border); }
.inline-comment:last-child { border-bottom: 0; }
.inline-comment-avatar { background: var(--teal-light); flex-shrink: 0; }
.inline-comment-main,
.inline-reply-main { flex: 1; min-width: 0; }
.inline-comment-author-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.inline-comment-author { font-size: 13px; }
.inline-comment-meta { font-size: 11px; color: var(--text-muted); }
.inline-comment-text { font-size: 13px; line-height: 1.65; color: var(--text); margin-top: 5px; white-space: pre-wrap; }
.inline-comment-empty { text-align: center; padding: 18px; color: var(--text-muted); font-size: 13px; }
.inline-reply { display: flex; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.inline-reply textarea { min-height: 74px; }
.inline-reply-avatar { background: var(--teal); color: #fff; flex-shrink: 0; }
.inline-reply-actions { display: flex; justify-content: flex-end; margin-top: 8px; }
@media (max-width: 640px) {
  .inline-post-overlay { padding: 0; }
  .inline-post-modal { min-height: 100vh; max-height: none; border-radius: 0; }
  .inline-post-head { height: auto; align-items: flex-start; }
  .inline-post-actions { flex-wrap: wrap; justify-content: flex-end; }
}
.chat-widget-shell { position: fixed; right: 20px; bottom: 20px; z-index: 1000; font-family: var(--font-sans); }
.chat-fab { position: relative; width: 58px; height: 58px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--teal); color: #fff; font-size: 23px; cursor: pointer; box-shadow: 0 14px 34px rgba(15,110,86,.28); transition: transform .18s, box-shadow .18s, background .18s; }
.chat-fab:hover { transform: translateY(-2px); background: var(--teal-dark); box-shadow: 0 18px 42px rgba(15,110,86,.34); }
.chat-badge { position: absolute; top: 7px; right: 7px; min-width: 18px; height: 18px; display: none; align-items: center; justify-content: center; padding: 0 5px; border: 2px solid #fff; border-radius: 999px; background: var(--red-dz); color: #fff; font-size: 10px; font-weight: 800; }
.chat-badge.visible { display: flex; }
.chat-popup { display: none; position: fixed; right: 22px; bottom: 0; width: 355px; height: 490px; max-height: calc(100vh - 80px); overflow: hidden; background: #fff; border: 1px solid #dbe2ea; border-bottom: 0; border-radius: 20px 20px 0 0; box-shadow: 0 20px 50px rgba(15,23,42,.22); }
.chat-popup.open { display: block; }
.chat-popup.expanded { width: 420px; height: 540px; }
.chat-popup-header { height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 14px; border-bottom: 1px solid rgba(13,148,136,.12); background: linear-gradient(135deg,#f0fdfa 0%,#fff 70%); color: #1f2937; }
.chat-header-main { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; }
.chat-header-avatar { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; border-radius: 50%; background: linear-gradient(135deg,#ccfbf1,#dbeafe); border: 2px solid rgba(13,148,136,.25); font-size: 14px; font-weight: 800; color: #0f766e; }
.chat-header-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.chat-header-text { min-width: 0; }
.chat-title { min-width: 0; font-size: 14px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-subtitle { display: flex; align-items: center; gap: 5px; margin-top: 2px; color: #6b7280; font-size: 11px; font-weight: 600; }
.chat-status-dot { width: 8px; height: 8px; display: inline-block; border-radius: 50%; background: #d1d5db; flex-shrink: 0; }
.chat-status-dot.online { background: #16a34a; box-shadow: 0 0 0 3px rgba(22,163,74,.18); }
.chat-status-dot-spaced { margin-right: 5px; }
.chat-header-actions { display: flex; align-items: center; gap: 2px; position: relative; flex-shrink: 0; }
.chat-menu-btn, .chat-open-full-btn, .chat-top-btn { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: transparent; color: #6b7280; font-size: 16px; font-weight: 700; cursor: pointer; text-decoration: none; transition: background .15s, color .15s; }
.chat-menu-btn:hover, .chat-open-full-btn:hover, .chat-top-btn:hover { background: rgba(13,148,136,.1); color: var(--teal); }
.chat-options-menu { display: none; position: absolute; top: 36px; right: 0; z-index: 2; width: 178px; padding: 6px; background: #fff; color: var(--text); border: 1px solid var(--border); border-radius: 12px; box-shadow: 0 16px 42px rgba(15,23,42,.18); }
.chat-options-menu.open { display: block; }
.chat-option { width: 100%; border: 0; border-radius: 8px; background: transparent; color: var(--text); cursor: pointer; font: inherit; font-size: 12px; font-weight: 700; padding: 9px 10px; text-align: left; }
.chat-option:hover { background: var(--teal-pale); color: var(--teal); }
.chat-option.danger { color: #b91c1c; }
.chat-option.danger:hover { background: #fef2f2; color: #991b1b; }
.chat-list-tools { padding: 10px 12px 8px; background: #fff; }
.chat-search-box { display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border-radius: 6px; background: #edf3f8; color: #475569; }
.chat-search-box input { width: 100%; border: 0; outline: 0; background: transparent; color: #1f2937; font: inherit; font-size: 13px; }
.chat-conv-list { height: calc(100% - 110px); overflow-y: auto; padding: 6px 8px 12px; background: #fff; }
.chat-conv-item { display: flex; align-items: center; gap: 12px; padding: 10px 8px; border-bottom: 1px solid #edf0f3; border-radius: 8px; cursor: pointer; transition: background .15s; }
.chat-conv-item:hover { background: #f3f6f8; }
.chat-conv-item .avatar { width: 52px; height: 52px; min-width: 52px; font-size: 18px; }
.chat-conv-item .avatar img { width: 100%; height: 100%; display: block; border-radius: 50%; object-fit: cover; }
.chat-conv-main { flex: 1; min-width: 0; }
.chat-conv-avatar { cursor: pointer; }
.chat-conv-name { font-size: 14px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #1f2937; }
.chat-conv-preview { margin-top: 3px; color: #6b7280; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-unread-badge { font-size: 9px; }
.chat-thread { display: none; height: calc(100% - 66px); flex-direction: column; background: linear-gradient(180deg,#f0fdfa 0%,#f5f9fb 100%); }
.chat-thread.open { display: flex; }
.chat-messages { flex: 1; overflow-y: auto; padding: 14px 14px 6px; scroll-behavior: smooth; background: transparent; display: flex; flex-direction: column; gap: 5px; }
.chat-messages::-webkit-scrollbar { width: 3px; }
.chat-messages::-webkit-scrollbar-track { background: transparent; }
.chat-messages::-webkit-scrollbar-thumb { background: rgba(13,148,136,.25); border-radius: 99px; }
.chat-messages-spacer { flex: 1; min-height: 0; }
.chat-reply-quote { font-size: 11px; line-height: 1.35; border-left: 3px solid rgba(255,255,255,.6); padding: 4px 8px; margin-bottom: 6px; background: rgba(0,0,0,.10); border-radius: 7px; display: block; }
.chat-bubble.theirs .chat-reply-quote { border-left-color: var(--teal); background: rgba(13,148,136,.09); color: #374151; }
.chat-reply-quote strong { display: block; font-size: 10px; font-weight: 700; margin-bottom: 2px; opacity: .75; letter-spacing: .01em; }
.chat-scroll-instant { scroll-behavior: auto; }
.chat-messages-invisible { visibility: hidden; }
.chat-message-row { display: flex; align-items: flex-end; gap: 8px; width: 100%; margin: 1px 0; }
.chat-message-row.mine { justify-content: flex-end; flex-direction: row; }
.chat-message-row.theirs { justify-content: flex-start; flex-direction: row; }
.chat-message-row.mine .chat-message-avatar { display: none; }
.chat-message-row.mine .chat-message-stack { order: 2; margin-left: auto; align-items: flex-end; }
.chat-message-row.theirs .chat-message-avatar { order: 1; }
.chat-message-row.theirs .chat-message-stack { order: 2; margin-right: auto; align-items: flex-start; }
.chat-msg-more { position: absolute; top: 4px; right: -28px; width: 24px; height: 24px; border: none; border-radius: 999px; background: transparent; color: #94a3b8; cursor: pointer; font-size: 15px; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .15s; padding: 0; }
.chat-message-row.mine .chat-msg-more { right: auto; left: -28px; }
.chat-message-row:hover .chat-msg-more { opacity: 1; }
.chat-msg-more:hover { background: rgba(13,148,136,.14); color: var(--teal); }
.chat-message-avatar { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; border-radius: 50%; background: linear-gradient(135deg,#ccfbf1,#dbeafe); border: 2px solid #fff; box-shadow: 0 2px 6px rgba(15,23,42,.12); font-size: 11px; font-weight: 800; color: #0f766e; }
.chat-message-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.chat-message-avatar.is-hidden { visibility: hidden; }
.chat-message-stack { display: flex; flex-direction: column; max-width: 78%; min-width: 0; position: relative; }
.chat-bubble { max-width: 100%; padding: 9px 14px; border-radius: 20px; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; word-break: normal; }
.chat-bubble.mine { background: linear-gradient(135deg,#0d9488,#0f766e); color: #fff; border-bottom-right-radius: 5px; box-shadow: 0 3px 12px rgba(13,148,136,.30); }
.chat-bubble.theirs { background: #fff; color: #111827; border: 1px solid rgba(15,23,42,.08); border-bottom-left-radius: 5px; box-shadow: 0 1px 4px rgba(15,23,42,.07); }
.chat-message-meta { margin-top: 4px; padding: 0 4px; color: #9ca3af; font-size: 10px; display: flex; align-items: center; gap: 3px; }
.chat-tick-sent { color: #9ca3af; font-size: 11px; letter-spacing: -1px; }
.chat-tick-read { color: #0d9488; font-size: 11px; letter-spacing: -1px; }
/* Context menu */
.msg-ctx-menu { position: fixed; z-index: 9999; background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 16px; box-shadow: 0 12px 40px rgba(15,23,42,.16); padding: 5px; min-width: 168px; display: none; backdrop-filter: blur(8px); }
.msg-ctx-menu.open { display: block; }
.msg-ctx-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 13px; border: 0; border-radius: 10px; background: transparent; color: #1f2937; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; text-align: left; white-space: nowrap; transition: background .12s; }
.msg-ctx-item:hover { background: #f3f4f6; }
.msg-ctx-item.danger { color: #dc2626; }
.msg-ctx-item.danger:hover { background: #fef2f2; }
.msg-ctx-sep { height: 1px; background: #f1f5f9; margin: 4px 4px; }
/* Reaction picker */
.msg-reaction-picker { position: fixed; z-index: 9998; background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 999px; box-shadow: 0 8px 28px rgba(15,23,42,.15); padding: 7px 10px; display: none; gap: 2px; }
.msg-reaction-picker.open { display: flex; animation: rxPickerIn .14s cubic-bezier(.34,1.56,.64,1); }
@keyframes rxPickerIn { from { opacity:0; transform:scale(.7) translateY(8px); } to { opacity:1; transform:scale(1) translateY(0); } }
.msg-reaction-btn { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: transparent; font-size: 20px; cursor: pointer; transition: transform .12s; }
.msg-reaction-btn:hover { transform: scale(1.4); background: #f3f4f6; }
/* Reaction pills */
.msg-reactions { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.msg-reactions.end { justify-content: flex-end; }
.msg-reaction-pill { display: inline-flex; align-items: center; gap: 3px; padding: 2px 8px; border-radius: 999px; background: rgba(255,255,255,.85); border: 1px solid #e5e7eb; font-size: 14px; cursor: pointer; transition: background .12s; }
.msg-reaction-pill:hover { background: #f3f4f6; }
.msg-reaction-pill.mine { border-color: rgba(13,148,136,.4); background: rgba(13,148,136,.08); }
.msg-reaction-pill span { font-size: 11px; color: #6b7280; font-weight: 700; }
/* Typing dots (widget) */
.chat-typing-line { min-height: 22px; padding: 2px 14px 4px; font-size: 12px; color: var(--teal); }
.chat-typing-dots { display: inline-flex; gap: 4px; align-items: center; padding: 2px 0; }
.chat-typing-dots span { width: 6px; height: 6px; border-radius: 50%; background: var(--teal); opacity: .3; animation: tdot 1.2s infinite; }
.chat-typing-dots span:nth-child(2) { animation-delay: .2s; }
.chat-typing-dots span:nth-child(3) { animation-delay: .4s; }
@keyframes tdot { 0%,60%,100%{opacity:.25;transform:scale(.8)} 30%{opacity:1;transform:scale(1)} }
/* Reply preview bar */
.chat-reply-preview { display: none; padding: 7px 14px; background: rgba(13,148,136,.06); border-top: 1px solid rgba(13,148,136,.15); font-size: 11px; color: var(--text-muted); align-items: center; gap: 8px; }
.chat-reply-preview.open { display: flex; }
.chat-reply-preview-inner { flex: 1; min-width: 0; }
.chat-reply-preview-inner strong { display: block; font-size: 10px; color: var(--teal); font-weight: 700; margin-bottom: 2px; }
.chat-reply-preview-inner span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-reply-cancel { border: 0; background: transparent; color: #94a3b8; font-size: 17px; cursor: pointer; line-height: 1; padding: 0 2px; flex-shrink: 0; }
.chat-reply-cancel:hover { color: #ef4444; }
/* Input bar */
.chat-reply-bar { display: flex; align-items: flex-end; gap: 7px; padding: 8px 10px 10px; border-top: 1px solid rgba(15,23,42,.07); background: #fff; }
.chat-tool-btn { width: 36px; height: 38px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; border: none; border-radius: 50%; background: transparent; color: #64748b; cursor: pointer; font-size: 18px; transition: background .15s, color .15s; }
.chat-tool-btn:hover { background: rgba(13,148,136,.10); color: var(--teal); }
.chat-reply-tools { position: relative; display: flex; align-items: center; }
.chat-emoji-menu { display: none; position: absolute; left: 0; bottom: 46px; z-index: 5; width: 224px; padding: 8px; background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 16px; box-shadow: 0 16px 40px rgba(15,23,42,.16); }
.chat-emoji-menu.open { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.chat-emoji-menu button { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 8px; background: transparent; cursor: pointer; font-size: 17px; }
.chat-emoji-menu button:hover { background: var(--teal-pale); }
.chat-file-input { display: none; }
.chat-reply-input { flex: 1; min-height: 38px; max-height: 90px; resize: none; border: 1px solid rgba(15,23,42,.10); border-radius: 22px; padding: 9px 15px; background: #f3f6f8; color: var(--text); font: inherit; font-size: 13px; line-height: 1.4; transition: border-color .15s, box-shadow .15s, background .15s; }
.chat-reply-input:focus { outline: none; border-color: var(--teal); background: #fff; box-shadow: 0 0 0 3px rgba(13,148,136,.10); }
.chat-send-btn { width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; border-radius: 50%; padding: 0; flex-shrink: 0; background: linear-gradient(135deg,#0d9488,#0f766e); box-shadow: 0 2px 8px rgba(13,148,136,.28); border: none; color: #fff; cursor: pointer; font-size: 17px; transition: transform .15s, box-shadow .15s; }
.chat-send-btn:hover { transform: scale(1.06); box-shadow: 0 4px 14px rgba(13,148,136,.38); }
.chat-send-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.chat-footer { display: none; }
.chat-empty-state { text-align: center; padding: 20px; color: var(--text-muted); font-size: 12px; }
.chat-loading-state { text-align: center; padding: 20px; color: var(--text-muted); font-size: 13px; }
.chat-attachment-img { max-width: 170px; max-height: 120px; display: block; border-radius: 12px; }
.chat-attachment-link { color: inherit; font-weight: 700; }
.chat-error-state { padding: 16px; color: #be123c; font-size: 12px; }
@media (max-width: 520px) {
  .chat-widget-shell { right: 14px; bottom: 18px; }
  .chat-popup { right: 8px; bottom: 0; width: calc(100vw - 16px); height: 64vh; max-height: 64vh; }
  .chat-conv-list { height: calc(64vh - 110px); }
  .chat-thread { height: calc(64vh - 66px); }
}

@media (max-width: 900px) {
  .create-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .create-modal { width: calc(100vw - 18px); }
  .create-type-grid { grid-template-columns: 1fr; }
  .create-modal-actions .btn { flex: 1; justify-content: center; }
}

/* Cockpit style inspire de la reference fournie */
body:has(.cockpit-shell) {
  background:
    linear-gradient(135deg, #E9F8FC 0%, #F5FBFF 42%, #EFF2FF 100%) !important;
}

body:has(.cockpit-shell) .page-wrapper {
  background:
    radial-gradient(circle at 8% 8%, rgba(130, 218, 238, .30), transparent 30%),
    radial-gradient(circle at 92% 2%, rgba(78, 59, 196, .16), transparent 28%),
    transparent !important;
  padding: 24px 0 58px;
}

/* Cockpit alt design - repris du fichier de reference */
body:has(.cockpit-shell) {
  background:
    radial-gradient(circle at top left, rgba(11, 143, 134, 0.18), transparent 34%),
    radial-gradient(circle at top right, rgba(47, 111, 237, 0.12), transparent 34%),
    linear-gradient(180deg, #f6fbfc, #eef4f6) !important;
  color: #102331;
}

body:has(.cockpit-shell) .page-wrapper {
  background: transparent !important;
  padding: 22px 0 64px;
}

body:has(.cockpit-shell) .navbar {
  width: min(1480px, calc(100% - 44px));
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  top: 14px;
  height: 66px;
  border: 1px solid rgba(16, 35, 49, 0.10) !important;
  border-radius: 24px;
  background: rgba(255,255,255,.78) !important;
  backdrop-filter: blur(18px);
  box-shadow: 0 12px 26px rgba(16, 35, 49, 0.05) !important;
}

body:has(.cockpit-shell) .page-wrapper {
  margin-top: 96px;
}

body:has(.cockpit-shell) .navbar-brand {
  min-width: fit-content;
}

body:has(.cockpit-shell) .logo-icon {
  width: 42px;
  height: 42px;
  border-radius: 15px;
  background: linear-gradient(135deg,#4f6cff,#11a8f5);
  box-shadow: 0 12px 24px rgba(47,134,255,.26);
}

body:has(.cockpit-shell) .navbar-search {
  max-width: 650px;
}

body:has(.cockpit-shell) .navbar-search input {
  height: 52px;
  border-radius: 20px;
  background: rgba(255,255,255,.78) !important;
  box-shadow: 0 12px 26px rgba(16, 35, 49, 0.05);
}

body:has(.cockpit-shell) .nav-item {
  border-radius: 18px !important;
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(16, 35, 49, 0.10);
  color: #6f8190 !important;
}

body:has(.cockpit-shell) .nav-item.active,
body:has(.cockpit-shell) .nav-item:hover {
  color: #fff !important;
  background: linear-gradient(135deg, #0b8f86, #0eaaa0) !important;
  border-color: transparent;
  box-shadow: 0 14px 30px rgba(11, 143, 134, 0.24);
}

body:has(.cockpit-shell) .btn-create {
  height: 50px;
  border-radius: 18px !important;
  background: #102331 !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(16, 35, 49, 0.10) !important;
}

body:has(.cockpit-shell) .icon-btn {
  width: 50px;
  height: 50px;
  border-radius: 18px !important;
  background: rgba(255,255,255,.78) !important;
  border: 1px solid rgba(16, 35, 49, 0.10) !important;
  box-shadow: 0 10px 24px rgba(16, 35, 49, 0.05) !important;
}

.cockpit-shell {
  width: min(1480px, calc(100% - 44px));
  max-width: 1480px;
  margin: 0 auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  gap: 22px;
}

.cockpit-shell::before,
.cockpit-shell::after {
  display: none;
}

.cockpit-shell > * {
  position: relative;
  z-index: 1;
}

.cockpit-view-switch {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.cockpit-switch-btn {
  min-height: 48px;
  border: 1px solid rgba(16, 35, 49, 0.10);
  border-radius: 18px;
  background: rgba(255,255,255,.62);
  color: #6f8190;
  backdrop-filter: blur(18px);
  box-shadow: none;
}

.cockpit-switch-btn.active {
  color: #fff;
  background: linear-gradient(135deg, #0b8f86, #0eaaa0);
  border-color: transparent;
  box-shadow: 0 14px 30px rgba(11, 143, 134, 0.24);
}

.cockpit-hero {
  grid-column: 1;
  grid-row: 2;
  min-height: 300px;
  display: block;
  border: 0;
  border-radius: 34px;
  padding: 32px;
  overflow: hidden;
  background:
    radial-gradient(circle at 85% 28%, rgba(255,255,255,.16), transparent 26%),
    linear-gradient(135deg, #102331, #0b6f6b 62%, #0eaaa0);
  color: #fff;
  box-shadow: 0 20px 60px rgba(16, 35, 49, 0.12);
}

.cockpit-hero::before {
  content: "";
  display: block;
  position: absolute;
  right: -120px;
  top: -110px;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  border: 42px solid rgba(255,255,255,.10);
  background: transparent;
}

.cockpit-hero::after {
  content: "";
  display: block;
  position: absolute;
  right: 90px;
  bottom: -70px;
  width: 210px;
  height: 210px;
  border-radius: 50%;
  background: rgba(255,255,255,.10);
  opacity: 1;
  filter: none;
}

.cockpit-hero-copy {
  max-width: 720px;
  position: relative;
  z-index: 2;
}

.cockpit-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.20);
  color: #fff;
  font-size: 13px;
  font-weight: 850;
  text-transform: none;
  letter-spacing: 0;
  margin-bottom: 18px;
}

.cockpit-hero h1 {
  margin: 0 0 12px;
  max-width: 720px;
  color: #fff;
  font-size: clamp(34px, 4vw, 54px);
  letter-spacing: -2px;
  line-height: 1.02;
}

.cockpit-hero p,
.cockpit-hero-sub {
  max-width: 620px !important;
  margin: 0;
  color: rgba(255,255,255,.82) !important;
  font-size: 17px !important;
  line-height: 1.55;
  font-weight: 600;
}

.cockpit-hero-sub {
  margin-top: 8px;
}

.cockpit-hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 26px;
}

.cockpit-hero-actions .btn {
  border-radius: 16px !important;
  padding: 13px 16px;
  font-weight: 900 !important;
}

.cockpit-hero-actions .btn-primary {
  background: #fff !important;
  color: #102331 !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

.cockpit-hero-actions .btn-ghost {
  background: rgba(255,255,255,.13) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.20) !important;
  box-shadow: none !important;
}

.cockpit-hero-panel {
  width: min(330px, 44%);
  margin-top: 24px;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 24px;
  background: rgba(255,255,255,.13);
  backdrop-filter: blur(18px);
  color: #fff;
}

.cockpit-pulse-row span,
.cockpit-pulse-list span {
  color: rgba(255,255,255,.78);
}

.cockpit-pulse-row strong,
.cockpit-pulse-list strong {
  color: #fff;
}

.cockpit-shell > .cockpit-section:nth-of-type(1) {
  grid-column: 2;
  grid-row: 2;
  align-self: stretch;
}

.cockpit-shell > .cockpit-section:nth-of-type(2) {
  grid-column: 1;
  grid-row: 3;
}

.cockpit-shell > .cockpit-columns:nth-of-type(1) {
  grid-column: 1;
  grid-row: 4;
  grid-template-columns: 1fr;
}

.cockpit-shell > .cockpit-columns:nth-of-type(2) {
  grid-column: 2;
  grid-row: 3 / span 2;
  grid-template-columns: 1fr;
  align-content: start;
}

.cockpit-shell > .cockpit-section:nth-of-type(3) {
  grid-column: 1 / -1;
  grid-row: 5;
}

.cockpit-section {
  border-radius: 30px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(16, 35, 49, 0.10);
  box-shadow: 0 16px 42px rgba(16, 35, 49, 0.07);
  backdrop-filter: blur(18px);
  overflow: hidden;
  margin-top: 0;
  padding: 0;
}

.cockpit-section-head {
  padding: 20px 20px 0;
  margin: 0;
}

.cockpit-section-head h2 {
  margin: 0;
  font-size: 21px;
  letter-spacing: -.45px;
  color: #102331;
}

.cockpit-section-head p {
  color: #6f8190;
  font-size: 13px;
  font-weight: 650;
}

.quick-actions-grid,
.must-see-grid,
.module-grid,
.cockpit-list {
  padding: 20px;
}

.quick-actions-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.must-see-grid {
  grid-template-columns: 1fr;
  gap: 12px;
}

.module-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
}

.quick-action-card {
  min-height: 158px;
  border-radius: 24px;
  padding: 18px;
  background: #fff;
  border: 1px solid rgba(16,35,49,.08);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: none;
}

.quick-action-card span {
  width: 54px;
  height: 54px;
  border-radius: 20px;
  display: grid;
  place-items: center;
  padding: 0;
  font-size: 12px;
  font-weight: 950;
}

.quick-action-card strong {
  margin-top: 16px;
  font-size: 16px;
  letter-spacing: -.2px;
}

.quick-action-card small {
  color: #6f8190;
  line-height: 1.35;
  font-size: 13px;
  font-weight: 650;
}

.quick-action-card:hover,
.cockpit-mini-card:hover,
.module-card:hover,
.cockpit-preview-row:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgba(16, 35, 49, 0.10);
}

.cockpit-mini-card {
  min-height: 0;
  border-radius: 20px;
  padding: 12px;
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 12px;
  align-items: center;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(16,35,49,.07);
  box-shadow: none;
}

.cockpit-mini-card span {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  margin: 0;
  background: rgba(11,143,134,.11);
  color: #0b8f86;
  font-weight: 950;
  font-size: 10px;
  overflow: hidden;
}

.cockpit-mini-card strong {
  font-size: 14px;
  margin: 0;
}

.cockpit-preview-row {
  display: grid;
  grid-template-columns: 70px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border-radius: 24px;
  background: #fff;
  border: 1px solid rgba(16,35,49,.08);
}

.cockpit-preview-type {
  width: 70px;
  height: 70px;
  border-radius: 22px;
  display: grid;
  place-items: center;
  padding: 0 8px;
  margin: 0;
  color: #fff;
  background: linear-gradient(135deg, #0b8f86, #0eaaa0);
  text-align: center;
}

.cockpit-preview-row strong {
  font-size: 16px;
  line-height: 1.25;
  letter-spacing: -.2px;
}

.cockpit-preview-row small {
  color: #6f8190;
  font-weight: 650;
}

.module-card {
  min-height: 0;
  border-radius: 22px;
  background: #fff;
  border: 1px solid rgba(16,35,49,.08);
  padding: 15px;
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 12px;
  align-items: center;
}

.module-card span {
  width: 48px;
  height: 48px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  padding: 0;
  margin: 0;
  font-size: 11px;
}

.module-card strong {
  font-size: 15px;
}

.cockpit-empty {
  border-radius: 22px;
  border: 1px dashed rgba(16, 35, 49, 0.10);
  background: rgba(255,255,255,.72);
}

.quick-action-card:nth-child(1) span,
.cockpit-mini-card:nth-child(1) span {
  background: rgba(224,75,87,.12);
  color: #e04b57;
}

.quick-action-card:nth-child(2) span {
  background: rgba(47,111,237,.11);
  color: #2f6fed;
}

.quick-action-card:nth-child(3) span {
  background: rgba(24,160,94,.12);
  color: #18a05e;
}

.quick-action-card:nth-child(4) span,
.module-card:nth-child(3) span {
  background: rgba(124,58,237,.12);
  color: #7c3aed;
}

.quick-action-card:nth-child(5) span,
.module-card:nth-child(5) span {
  background: rgba(47,111,237,.11);
  color: #2f6fed;
}

.quick-action-card:nth-child(6) span,
.module-card:nth-child(6) span {
  background: rgba(11,143,134,.11);
  color: #0b8f86;
}

.module-card:nth-child(2) span {
  background: rgba(24,160,94,.12);
  color: #18a05e;
}

.module-card:nth-child(4) span,
.cockpit-mini-card:nth-child(3) span {
  background: rgba(245,158,11,.13);
  color: #f59e0b;
}

@media (max-width: 1180px) {
  body:has(.cockpit-shell) .navbar {
    position: fixed;
    width: calc(100% - 24px);
  }
  .cockpit-shell {
    grid-template-columns: 1fr;
  }
  .cockpit-view-switch,
  .cockpit-hero,
  .cockpit-shell > .cockpit-section:nth-of-type(1),
  .cockpit-shell > .cockpit-section:nth-of-type(2),
  .cockpit-shell > .cockpit-columns:nth-of-type(1),
  .cockpit-shell > .cockpit-columns:nth-of-type(2),
  .cockpit-shell > .cockpit-section:nth-of-type(3) {
    grid-column: 1;
    grid-row: auto;
  }
  .cockpit-shell > .cockpit-columns:nth-of-type(2) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 920px) {
  .cockpit-view-switch {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .quick-actions-grid,
  .module-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cockpit-hero-panel {
    width: 100%;
  }
}

@media (max-width: 680px) {
  body:has(.cockpit-shell) .navbar {
    top: 8px;
    width: calc(100% - 14px);
    border-radius: 18px;
  }
  body:has(.cockpit-shell) .page-wrapper {
    margin-top: 78px;
    padding-top: 12px;
  }
  .cockpit-shell {
    width: calc(100% - 18px);
    gap: 16px;
  }
  .cockpit-hero {
    min-height: auto;
    padding: 24px;
    border-radius: 26px;
  }
  .cockpit-hero h1 {
    font-size: 34px;
    letter-spacing: -1px;
  }
  .cockpit-hero p,
  .cockpit-hero-sub {
    font-size: 14px !important;
  }
  .cockpit-hero::before,
  .cockpit-hero::after {
    opacity: .55;
  }
  .quick-actions-grid,
  .module-grid,
  .cockpit-shell > .cockpit-columns:nth-of-type(2) {
    grid-template-columns: 1fr;
  }
  .cockpit-preview-row {
    grid-template-columns: 54px 1fr;
  }
  .cockpit-preview-type {
    width: 54px;
    height: 54px;
    border-radius: 18px;
  }
}

/* Organisation cockpit : acces visuels simples et complets */
.cockpit-hero {
  grid-column: 1 / -1;
  grid-row: 2;
}

.cockpit-access-section {
  grid-column: 1 / -1;
  grid-row: 3;
}

.cockpit-shell > .cockpit-section:nth-of-type(2) {
  grid-column: 2;
  grid-row: 4;
}

.cockpit-shell > .cockpit-section:nth-of-type(3) {
  grid-column: 1;
  grid-row: 4;
}

.cockpit-shell > .cockpit-columns:nth-of-type(1) {
  grid-column: 1;
  grid-row: 5;
}

.cockpit-shell > .cockpit-columns:nth-of-type(2) {
  grid-column: 2;
  grid-row: 5;
}

.cockpit-access-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.cockpit-access-grid .module-card {
  min-height: 122px;
  border-radius: 26px;
  padding: 16px;
  background:
    radial-gradient(circle at 88% 18%, rgba(255,255,255,.72), transparent 26%),
    #fff;
  box-shadow: 0 14px 32px rgba(16, 35, 49, .07);
}

.cockpit-access-grid .module-card span {
  width: 58px;
  height: 58px;
  border-radius: 22px;
  font-size: 13px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.36);
}

.cockpit-access-grid .module-card strong {
  display: block;
  margin-bottom: 4px;
  font-size: 16px;
  color: #102331;
}

.cockpit-access-grid .module-card small {
  display: block;
  color: #6f8190;
  font-size: 12.5px;
  line-height: 1.35;
  font-weight: 650;
}

.access-community span { background: rgba(11,143,134,.11) !important; color: #0b8f86 !important; }
.access-jobs span { background: rgba(24,160,94,.12) !important; color: #18a05e !important; }
.access-academy span { background: rgba(124,58,237,.12) !important; color: #7c3aed !important; }
.access-tools span { background: rgba(245,158,11,.13) !important; color: #f59e0b !important; }
.access-base span { background: rgba(47,111,237,.11) !important; color: #2f6fed !important; }
.access-agenda span { background: rgba(11,143,134,.11) !important; color: #0b8f86 !important; }
.access-messages span { background: rgba(47,111,237,.11) !important; color: #2f6fed !important; }
.access-profile span { background: rgba(224,75,87,.12) !important; color: #e04b57 !important; }

.cockpit-access-grid .module-card:hover {
  transform: translateY(-4px) scale(1.01);
}

@media (max-width: 1180px) {
  .cockpit-hero,
  .cockpit-access-section,
  .cockpit-shell > .cockpit-section:nth-of-type(2),
  .cockpit-shell > .cockpit-section:nth-of-type(3),
  .cockpit-shell > .cockpit-columns:nth-of-type(1),
  .cockpit-shell > .cockpit-columns:nth-of-type(2) {
    grid-column: 1;
    grid-row: auto;
  }
  .cockpit-access-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .cockpit-access-grid {
    grid-template-columns: 1fr;
  }
  .cockpit-access-grid .module-card {
    min-height: 104px;
  }
}

/* ===== COCKPIT BASE LAYOUT ===== */
body:has(.cockpit-shell) .page-wrapper {
  margin-top: 92px !important;
  padding: 22px 0 72px !important;
}

.cockpit-shell {
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
  width: min(1360px, calc(100% - 48px)) !important;
}

.cockpit-section {
  border-radius: 24px !important;
  background: rgba(255,255,255,.82) !important;
  border: 1px solid rgba(16,35,49,.09) !important;
  box-shadow: 0 16px 42px rgba(16,35,49,.07) !important;
}

.cockpit-section-head { padding: 22px 22px 0 !important; }
.cockpit-section-head h2 { font-size: 23px !important; letter-spacing: -.45px !important; color: #102331 !important; }
.cockpit-section-head p { color: #6F8190 !important; font-size: 14px !important; }

.cockpit-access-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(210px, 1fr)) !important;
  gap: 14px !important;
  padding: 22px !important;
}

.cockpit-access-grid .module-card {
  display: grid !important;
  grid-template-columns: 58px minmax(0, 1fr) !important;
  align-items: center !important;
  min-height: 124px !important;
  border-radius: 20px !important;
  padding: 16px !important;
  border: 0 !important;
  box-shadow: 0 10px 26px rgba(16,35,49,.05) !important;
}

.cockpit-access-grid .module-card::after { display: none !important; }
.cockpit-access-grid .module-card span { width: 58px !important; height: 58px !important; border-radius: 18px !important; font-size: 22px !important; }
.cockpit-access-grid .module-card strong { font-size: 16px !important; color: #fff !important; }
.cockpit-access-grid .module-card small { color: rgba(255,255,255,.84) !important; font-size: 12.4px !important; line-height: 1.33 !important; }

.cockpit-access-grid .access-community  { background: linear-gradient(135deg,#0F8F8C,#2F6FED) !important; }
.cockpit-access-grid .access-jobs       { background: linear-gradient(135deg,#18A05E,#0B8F86) !important; }
.cockpit-access-grid .access-academy    { background: linear-gradient(135deg,#7C3AED,#4F46E5) !important; }
.cockpit-access-grid .access-tools      { background: linear-gradient(135deg,#F59E0B,#F97316) !important; }
.cockpit-access-grid .access-base       { background: linear-gradient(135deg,#2F6FED,#06B6D4) !important; }
.cockpit-access-grid .access-procedures { background: linear-gradient(135deg,#E04B57,#F59E0B) !important; }
.cockpit-access-grid .access-agenda     { background: linear-gradient(135deg,#14B8A6,#0F8F8C) !important; }
.cockpit-access-grid .access-messages   { background: linear-gradient(135deg,#4338CA,#7C3AED) !important; }

.must-see-grid { gap: 12px !important; padding: 22px !important; }

.cockpit-mini-card {
  display: grid !important;
  grid-template-columns: 62px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 12px !important;
  min-height: 112px !important;
  border-radius: 20px !important;
  border: 0 !important;
  box-shadow: 0 10px 24px rgba(16,35,49,.05) !important;
  padding: 16px !important;
}

.cockpit-mini-card span { width: 62px !important; height: 62px !important; border-radius: 18px !important; font-size: 11px !important; }

.cockpit-columns {
  display: grid !important;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr) !important;
  gap: 18px !important;
}

.cockpit-list { padding: 18px 22px 22px !important; }

.cockpit-preview-row {
  border-radius: 20px !important;
  border: 0 !important;
  box-shadow: 0 9px 22px rgba(16,35,49,.045) !important;
}

.cockpit-preview-type {
  width: 58px !important;
  height: 58px !important;
  border-radius: 18px !important;
}

@media (max-width: 1180px) {
  .cockpit-access-grid, .must-see-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)) !important; }
  .cockpit-columns { grid-template-columns: 1fr !important; }
}

@media (max-width: 680px) {
  .cockpit-shell { width: calc(100% - 18px) !important; gap: 14px !important; }
  .cockpit-access-grid, .must-see-grid { grid-template-columns: 1fr !important; }
  .cockpit-access-grid .module-card, .cockpit-mini-card, .cockpit-preview-row {
    grid-template-columns: 54px minmax(0, 1fr) !important;
  }
}

/* Cockpit vivant: colore, reactif et adapte a l'usage */
body:has(.cockpit-shell) {
  overflow-x: hidden;
  background:
    radial-gradient(circle at 18% 12%, rgba(124,58,237,.16), transparent 28%),
    radial-gradient(circle at 82% 4%, rgba(47,111,237,.15), transparent 26%),
    radial-gradient(circle at 72% 74%, rgba(15,143,140,.16), transparent 30%),
    linear-gradient(135deg, #F7FBFF 0%, #EFF6FF 44%, #F7F4FF 100%) !important;
}

.cockpit-hero {
  background:
    radial-gradient(circle at 82% 24%, rgba(255,255,255,.26), transparent 23%),
    linear-gradient(125deg, #221B6E 0%, #4B2EF0 42%, #0F8F8C 100%) !important;
  overflow: hidden !important;
}

.cockpit-hero::before {
  display: block !important;
  width: 280px !important;
  height: 280px !important;
  right: 8% !important;
  bottom: -88px !important;
  background: rgba(255,255,255,.16) !important;
  border-radius: 42% !important;
  animation: cockpitFloat 7s ease-in-out infinite !important;
}

.cockpit-hero::after {
  display: block !important;
  width: 165px !important;
  height: 165px !important;
  right: 28% !important;
  top: 28px !important;
  background: rgba(255,255,255,.09) !important;
  border-radius: 34px !important;
  transform: rotate(14deg) !important;
  animation: cockpitDrift 9s ease-in-out infinite !important;
}

.cockpit-pulse-list div {
  position: relative;
  overflow: hidden;
}

.cockpit-pulse-list div::after {
  content: "";
  position: absolute;
  inset: auto 10px 8px 10px;
  height: 4px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
}

.cockpit-pulse-list div::before {
  content: "";
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 8px;
  height: 4px;
  border-radius: 999px;
  transform: scaleX(var(--cockpit-activity, .24));
  transform-origin: left;
  background: linear-gradient(90deg, #7DD3FC, #A7F3D0, #FDE68A);
  z-index: 1;
}

.cockpit-live-note {
  display: grid;
  gap: 8px;
  margin-top: 14px;
  padding: 14px;
  border-radius: 18px;
  color: #fff;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14);
}

.cockpit-live-note strong {
  font-size: 12px;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.cockpit-live-note span {
  color: rgba(255,255,255,.88);
  font-size: 13px;
  line-height: 1.45;
  font-weight: 700;
}

.cockpit-meter {
  height: 7px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,.18);
}

.cockpit-meter i {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  transform: scaleX(var(--cockpit-activity, .24));
  transform-origin: left;
  background: linear-gradient(90deg, #38BDF8, #34D399, #FBBF24);
  transition: transform .35s ease;
}
.cockpit-activity-1 .cockpit-meter i,
.cockpit-activity-1 .cockpit-pulse-list div::before { transform: scaleX(.16); }
.cockpit-activity-2 .cockpit-meter i,
.cockpit-activity-2 .cockpit-pulse-list div::before { transform: scaleX(.28); }
.cockpit-activity-3 .cockpit-meter i,
.cockpit-activity-3 .cockpit-pulse-list div::before { transform: scaleX(.42); }
.cockpit-activity-4 .cockpit-meter i,
.cockpit-activity-4 .cockpit-pulse-list div::before { transform: scaleX(.56); }
.cockpit-activity-5 .cockpit-meter i,
.cockpit-activity-5 .cockpit-pulse-list div::before { transform: scaleX(.72); }
.cockpit-activity-6 .cockpit-meter i,
.cockpit-activity-6 .cockpit-pulse-list div::before { transform: scaleX(.88); }
.cockpit-activity-7 .cockpit-meter i,
.cockpit-activity-7 .cockpit-pulse-list div::before { transform: scaleX(1); }

.cockpit-access-grid {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important;
}

.cockpit-access-grid .module-card,
.quick-action-card,
.cockpit-mini-card,
.cockpit-preview-row {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease !important;
}

.cockpit-access-grid .module-card:hover,
.quick-action-card:hover,
.cockpit-mini-card:hover,
.cockpit-preview-row:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 20px 48px rgba(16,35,49,.12) !important;
}

.cockpit-access-grid .module-card::before,
.quick-action-card::before,
.cockpit-mini-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .68;
  background: radial-gradient(circle at 86% 16%, var(--card-glow, rgba(15,143,140,.16)), transparent 38%);
  transition: opacity .2s ease, transform .2s ease;
}

.cockpit-access-grid .module-card:hover::before,
.quick-action-card:hover::before,
.cockpit-mini-card:hover::before {
  opacity: 1;
  transform: scale(1.08);
}

.access-community { --card-glow: rgba(47,111,237,.18); }
.access-jobs { --card-glow: rgba(24,160,94,.18); }
.access-academy { --card-glow: rgba(124,58,237,.20); }
.access-tools { --card-glow: rgba(245,158,11,.22); }
.access-base { --card-glow: rgba(15,143,140,.18); }
.access-agenda { --card-glow: rgba(20,184,166,.18); }
.access-messages { --card-glow: rgba(99,102,241,.18); }
.access-profile { --card-glow: rgba(224,75,87,.16); }

.cockpit-access-grid .module-card.is-recommended {
  border-color: rgba(15,143,140,.26) !important;
  box-shadow: 0 18px 45px rgba(15,143,140,.13) !important;
}

.cockpit-access-grid .module-card.is-recommended div {
  padding-right: 56px;
}

.cockpit-access-grid .module-card.is-used {
  transform: translateY(-2px);
}
.cockpit-access-grid .module-card.access-rank-1 { order: -1; }
.cockpit-access-grid .module-card.access-rank-2 { order: -2; }
.cockpit-access-grid .module-card.access-rank-3 { order: -3; }
.cockpit-access-grid .module-card.access-rank-4 { order: -4; }
.cockpit-access-grid .module-card.access-rank-5 { order: -5; }
.cockpit-access-grid .module-card.access-rank-6 { order: -6; }
.cockpit-access-grid .module-card.access-rank-7 { order: -7; }
.cockpit-access-grid .module-card.access-rank-8 { order: -8; }

.adaptive-chip,
.signal-label {
  position: absolute;
  right: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: calc(100% - 24px);
  min-height: 24px;
  padding: 4px 9px;
  border-radius: 999px;
  white-space: nowrap;
  font-style: normal;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .01em;
}

.adaptive-chip {
  top: 12px;
  color: #0B746F;
  background: rgba(209,250,229,.92);
  border: 1px solid rgba(15,143,140,.16);
}

.signal-label {
  bottom: 12px;
  color: #4338CA;
  background: rgba(237,233,254,.92);
  border: 1px solid rgba(124,58,237,.14);
}

.signal-dot {
  position: absolute;
  right: 14px;
  bottom: 46px;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #34D399;
  box-shadow: 0 0 0 8px rgba(52,211,153,.16);
  animation: cockpitPulse 1.8s ease-in-out infinite;
}

.must-see-grid {
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important;
}

.cockpit-mini-card:nth-child(1) { --card-glow: rgba(224,75,87,.18); }
.cockpit-mini-card:nth-child(2) { --card-glow: rgba(24,160,94,.18); }
.cockpit-mini-card:nth-child(3) { --card-glow: rgba(245,158,11,.20); }
.cockpit-mini-card:nth-child(4) { --card-glow: rgba(20,184,166,.18); }
.cockpit-mini-card:nth-child(5) { --card-glow: rgba(47,111,237,.17); }

.quick-actions-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
}

.quick-action-card {
  flex: initial !important;
  align-items: flex-start !important;
}

.quick-action-card span,
.cockpit-mini-card span,
.cockpit-preview-type,
.cockpit-access-grid .module-card span {
  box-shadow: inset 0 -10px 22px rgba(255,255,255,.34), 0 10px 22px rgba(16,35,49,.08) !important;
}

@keyframes cockpitPulse {
  0%, 100% { transform: scale(1); opacity: .86; }
  50% { transform: scale(1.18); opacity: 1; }
}

@keyframes cockpitFloat {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
  50% { transform: translate3d(-18px, -16px, 0) rotate(6deg); }
}

@keyframes cockpitDrift {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(14deg); }
  50% { transform: translate3d(18px, 12px, 0) rotate(22deg); }
}

@media (max-width: 760px) {
  .cockpit-access-grid,
  .quick-actions-grid,
  .must-see-grid {
    grid-template-columns: 1fr !important;
  }

  .adaptive-chip,
  .signal-label {
    position: static;
    justify-self: start;
    margin-top: 6px;
    max-width: 100%;
  }

  .cockpit-access-grid .module-card.is-recommended div {
    padding-right: 0;
  }

  .signal-dot {
    right: 12px;
    bottom: 12px;
  }

  .cockpit-live-note {
    padding: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cockpit-hero::before,
  .cockpit-hero::after,
  .signal-dot {
    animation: none !important;
  }

  .cockpit-access-grid .module-card,
  .quick-action-card,
  .cockpit-mini-card,
  .cockpit-preview-row,
  .cockpit-meter i {
    transition: none !important;
  }
}

/* Cockpit command center: priorite, acces, creation en une vue */
.cockpit-command-center {
  order: 3 !important;
  display: grid;
  grid-template-columns: minmax(280px, .9fr) minmax(440px, 1.45fr) minmax(260px, .8fr);
  gap: 18px;
  align-items: stretch;
}

.cockpit-panel {
  min-width: 0;
  border-radius: 26px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(16,35,49,.08);
  box-shadow: 0 18px 44px rgba(16,35,49,.075);
  overflow: hidden;
  position: relative;
}

.cockpit-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 88% 16%, var(--panel-glow, rgba(15,143,140,.12)), transparent 36%),
    linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,0));
}

.cockpit-panel > * {
  position: relative;
  z-index: 1;
}

.cockpit-panel-priority { --panel-glow: rgba(245,158,11,.18); }
.cockpit-panel-spaces { --panel-glow: rgba(47,111,237,.16); }
.cockpit-panel-create { --panel-glow: rgba(124,58,237,.16); }

.panel-label {
  display: inline-flex;
  align-items: center;
  width: max-content;
  margin-bottom: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  color: #0B746F;
  background: rgba(209,250,229,.72);
  border: 1px solid rgba(15,143,140,.13);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.cockpit-command-center .cockpit-section-head {
  padding: 20px 20px 0 !important;
}

.cockpit-command-center .cockpit-section-head h2 {
  font-size: 24px !important;
  line-height: 1.05 !important;
}

.cockpit-command-center .must-see-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  padding: 18px 20px 20px !important;
}

.cockpit-command-center .cockpit-mini-card {
  min-height: 92px !important;
  grid-template-columns: 58px minmax(0,1fr) !important;
  align-items: center !important;
  padding: 14px !important;
}

.cockpit-command-center .cockpit-mini-card span {
  width: 58px !important;
  height: 58px !important;
  font-size: 10.5px !important;
}

.cockpit-command-center .cockpit-access-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  padding: 18px 20px 20px !important;
}

.cockpit-command-center .cockpit-access-grid .module-card {
  min-height: 104px !important;
  padding: 14px !important;
  border-radius: 22px !important;
  grid-template-columns: 54px minmax(0,1fr) !important;
}

.cockpit-command-center .cockpit-access-grid .module-card span,
.cockpit-command-center .quick-action-card span {
  width: 54px !important;
  height: 54px !important;
  border-radius: 18px !important;
  font-size: 13px !important;
  font-weight: 950 !important;
  letter-spacing: .01em !important;
}

.cockpit-command-center .cockpit-access-grid .module-card strong {
  font-size: 15px !important;
}

.cockpit-command-center .cockpit-access-grid .module-card small {
  font-size: 12px !important;
}

.cockpit-command-center .quick-actions-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  padding: 18px 20px 20px !important;
}

.cockpit-command-center .quick-action-card {
  min-height: 78px !important;
  display: grid !important;
  grid-template-columns: 54px minmax(0,1fr) !important;
  grid-template-rows: auto auto !important;
  column-gap: 12px !important;
  row-gap: 3px !important;
  align-items: center !important;
  align-content: center !important;
  text-align: left !important;
  padding: 12px !important;
}

.cockpit-command-center .quick-action-card strong,
.cockpit-command-center .quick-action-card small {
  grid-column: 2;
}

.cockpit-command-center .quick-action-card span {
  grid-row: 1 / span 2;
}

.cockpit-command-center .quick-action-card small {
  display: block !important;
  margin-top: 0 !important;
  color: #6F8190 !important;
  font-size: 12px !important;
  line-height: 1.28 !important;
  opacity: 1 !important;
}

.cockpit-command-center + .cockpit-columns {
  order: 5 !important;
}

.cockpit-command-center + .cockpit-columns + .cockpit-columns {
  order: 6 !important;
}

.cockpit-shell > .cockpit-section:nth-of-type(2),
.cockpit-shell > .cockpit-section:nth-of-type(3),
.cockpit-access-section {
  order: initial !important;
}

@media (max-width: 1280px) {
  .cockpit-command-center {
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  }

  .cockpit-panel-spaces {
    grid-column: span 2;
    order: -1;
  }

  .cockpit-command-center .cockpit-access-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 920px) {
  .cockpit-command-center {
    grid-template-columns: 1fr;
  }

  .cockpit-panel-spaces {
    grid-column: auto;
  }

  .cockpit-command-center .cockpit-access-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  .cockpit-command-center {
    gap: 14px;
  }

  .cockpit-panel {
    border-radius: 22px;
  }

  .cockpit-command-center .cockpit-access-grid,
  .cockpit-command-center .quick-actions-grid,
  .cockpit-command-center .must-see-grid {
    grid-template-columns: 1fr !important;
    padding: 14px !important;
  }

  .cockpit-command-center .cockpit-section-head {
    padding: 16px 16px 0 !important;
  }

  .cockpit-command-center .cockpit-section-head h2 {
    font-size: 22px !important;
  }
}

/* Public launch polish: first screen must expose value fast */
body:has(.cockpit-shell) .page-wrapper {
  margin-top: 78px !important;
  padding-top: 12px !important;
}

.cockpit-shell {
  gap: 18px !important;
}

.cockpit-hero {
  min-height: 0 !important;
  padding: 34px !important;
  gap: 24px !important;
  align-items: center !important;
}

.cockpit-hero h1 {
  max-width: 760px !important;
  font-size: clamp(34px, 4.2vw, 54px) !important;
  line-height: .98 !important;
}

.cockpit-hero p,
.cockpit-hero-sub {
  max-width: 720px !important;
}

.cockpit-hero-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}

.cockpit-hero-actions .btn {
  flex: 0 1 auto !important;
  min-width: 220px !important;
  min-height: 48px !important;
  padding: 13px 20px !important;
}

.cockpit-hero-panel {
  max-width: 410px !important;
  padding: 18px !important;
}

.cockpit-pulse-row {
  margin-bottom: 12px !important;
}

.cockpit-pulse-row strong {
  font-size: 46px !important;
}

.cockpit-pulse-list {
  gap: 10px !important;
}

.cockpit-pulse-list div {
  min-height: 62px !important;
  padding: 11px 12px 15px !important;
}

.cockpit-pulse-list strong {
  font-size: 22px !important;
}

.cockpit-live-note {
  margin-top: 10px !important;
  padding: 12px !important;
}

.cockpit-trust-strip {
  gap: 10px !important;
}

.cockpit-trust-strip div {
  padding: 13px 15px !important;
}

.cockpit-command-center {
  margin-top: 0 !important;
}

.cockpit-command-center .cockpit-access-grid .module-card,
.cockpit-command-center .quick-action-card,
.cockpit-command-center .cockpit-mini-card {
  transform: translateZ(0);
}

@media (min-width: 1181px) {
  .cockpit-hero {
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr) !important;
  }
}

@media (max-width: 900px) {
  body:has(.cockpit-shell) .page-wrapper {
    margin-top: 76px !important;
    padding-top: 10px !important;
  }

  .cockpit-hero {
    padding: 24px !important;
    gap: 16px !important;
  }

  .cockpit-hero h1 {
    font-size: clamp(30px, 7vw, 42px) !important;
  }

  .cockpit-hero p {
    font-size: 13.5px !important;
    line-height: 1.45 !important;
  }

  .cockpit-hero-panel {
    max-width: none !important;
    width: 100% !important;
  }

  .cockpit-pulse-list {
    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  }

  .cockpit-pulse-list div {
    min-width: 0 !important;
  }

  .cockpit-pulse-list span {
    font-size: 10.5px !important;
    text-align: left !important;
  }
}

@media (max-width: 680px) {
  body:has(.cockpit-shell) .page-wrapper {
    margin-top: 74px !important;
    padding-top: 8px !important;
  }

  .cockpit-view-switch {
    margin-bottom: 4px !important;
  }

  .cockpit-hero {
    padding: 16px !important;
    border-radius: 22px !important;
    gap: 12px !important;
  }

  .cockpit-kicker {
    margin-bottom: 10px !important;
    padding: 7px 10px !important;
    font-size: 11px !important;
  }

  .cockpit-hero h1 {
    font-size: 28px !important;
    max-width: 100% !important;
  }

  .cockpit-hero p {
    margin-top: 10px !important;
  }

  .cockpit-hero-sub {
    display: none !important;
  }

  .cockpit-hero-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 9px !important;
    margin-top: 14px !important;
  }

  .cockpit-hero-actions .btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 11px 10px !important;
    border-radius: 15px !important;
    font-size: 12.5px !important;
  }

  .cockpit-hero-panel {
    display: grid !important;
    grid-template-columns: 78px minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 8px !important;
    padding: 12px !important;
    border-radius: 18px !important;
  }

  .cockpit-pulse-row {
    display: grid !important;
    align-content: center !important;
    gap: 2px !important;
    margin-bottom: 8px !important;
  }

  .cockpit-pulse-row span {
    font-size: 10px !important;
  }

  .cockpit-pulse-row strong {
    font-size: 31px !important;
  }

  .cockpit-pulse-list {
    gap: 7px !important;
    align-self: stretch !important;
  }

  .cockpit-pulse-list div {
    min-height: 54px !important;
    padding: 8px 8px 13px !important;
    border-radius: 14px !important;
  }

  .cockpit-pulse-list strong {
    font-size: 18px !important;
  }

  .cockpit-pulse-list span {
    font-size: 9.5px !important;
    line-height: 1.15 !important;
  }

  .cockpit-live-note {
    display: none !important;
  }
}

body:has(.cockpit-shell) .cockpit-trust-strip {
  order: 4 !important;
}

@media (max-width: 390px) {
  .cockpit-hero-actions {
    grid-template-columns: 1fr !important;
  }

  .cockpit-pulse-list {
    grid-template-columns: 1fr !important;
  }

  .cockpit-pulse-list div {
    min-height: 48px !important;
  }
}

/* MedStaff public palette: cartes colorees, lisibles et differenciees */
.cockpit-command-center .module-card,
.cockpit-command-center .quick-action-card,
.cockpit-command-center .cockpit-mini-card {
  border: 0 !important;
  color: #102331 !important;
  box-shadow: 0 18px 42px rgba(16,35,49,.10) !important;
}

/* Banniere statut verification */
.cockpit-verification-banner {
  order: 0;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 20px;
  border-radius: 18px;
  background: #fffbea;
  border: 1px solid rgba(245,158,11,.28);
  box-shadow: 0 10px 28px rgba(245,158,11,.10);
  --verif-color: #b45309;
  --verif-bg: #fffbea;
}
.cockpit-verification-banner.is-suspended {
  background: #fef2f2;
  border-color: rgba(239,68,68,.26);
  box-shadow: 0 10px 28px rgba(239,68,68,.10);
}
.cockpit-verification-banner.is-suspended .cockpit-verif-body strong { color: #ef4444; }
.cockpit-verification-banner.is-suspended .cockpit-verif-body span { color: #991b1b; }

.cockpit-verif-icon {
  font-size: 24px;
  flex: 0 0 24px;
  line-height: 1.2;
  margin-top: 1px;
}

.cockpit-verif-body {
  flex: 1;
  min-width: 0;
}

.cockpit-verif-body strong {
  display: block;
  color: var(--verif-color, #b45309);
  font-size: 15px;
  font-weight: 800;
  margin-bottom: 4px;
}

.cockpit-verif-body span {
  display: block;
  color: #92400e;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 600;
}

@media (max-width: 680px) {
  .cockpit-verification-banner {
    flex-wrap: wrap;
    padding: 14px;
    border-radius: 16px;
  }
  .cockpit-verification-banner .btn {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* Couleurs differenciees cockpit-mini-card (cas, job, alerte, formation, question) */
.cockpit-command-center .cockpit-mini-card:nth-child(1) span { background: rgba(224,75,87,.12) !important; color: #e04b57 !important; }
.cockpit-command-center .cockpit-mini-card:nth-child(2) span { background: rgba(24,160,94,.12) !important; color: #18a05e !important; }
.cockpit-command-center .cockpit-mini-card:nth-child(3) span { background: rgba(245,158,11,.14) !important; color: #d97706 !important; }
.cockpit-command-center .cockpit-mini-card:nth-child(4) span { background: rgba(124,58,237,.11) !important; color: #7c3aed !important; }
.cockpit-command-center .cockpit-mini-card:nth-child(5) span { background: rgba(47,111,237,.11) !important; color: #2f6fed !important; }

.cockpit-command-center .module-card::after,
.cockpit-command-center .quick-action-card::after,
.cockpit-command-center .cockpit-mini-card::after {
  content: "";
  position: absolute;
  right: -34px;
  bottom: -38px;
  width: 112px;
  height: 112px;
  border-radius: 999px;
  background: rgba(255,255,255,.24);
  box-shadow: -34px -22px 0 rgba(255,255,255,.13);
  pointer-events: none;
}

.cockpit-command-center .module-card span,
.cockpit-command-center .quick-action-card span,
.cockpit-command-center .cockpit-mini-card span,
.cockpit-preview-type {
  color: #fff !important;
  background: rgba(16,35,49,.16) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.25), 0 12px 24px rgba(16,35,49,.12) !important;
}

.cockpit-command-center .module-card strong,
.cockpit-command-center .module-card small,
.cockpit-command-center .quick-action-card strong,
.cockpit-command-center .quick-action-card small,
.cockpit-command-center .cockpit-mini-card strong {
  color: #fff !important;
  text-shadow: 0 1px 10px rgba(16,35,49,.14);
}

.cockpit-command-center .module-card small,
.cockpit-command-center .quick-action-card small {
  color: rgba(255,255,255,.84) !important;
}

.cockpit-command-center .access-community {
  background: linear-gradient(135deg, #0F8F8C 0%, #2F6FED 100%) !important;
}

.cockpit-command-center .access-jobs {
  background: linear-gradient(135deg, #18A05E 0%, #0B8F86 100%) !important;
}

.cockpit-command-center .access-academy {
  background: linear-gradient(135deg, #7C3AED 0%, #4F46E5 100%) !important;
}

.cockpit-command-center .access-tools {
  background: linear-gradient(135deg, #F59E0B 0%, #F97316 100%) !important;
}

.cockpit-command-center .access-base {
  background: linear-gradient(135deg, #2F6FED 0%, #06B6D4 100%) !important;
}

.cockpit-command-center .access-agenda {
  background: linear-gradient(135deg, #14B8A6 0%, #0F8F8C 100%) !important;
}

.cockpit-command-center .access-messages {
  background: linear-gradient(135deg, #4338CA 0%, #7C3AED 100%) !important;
}

.cockpit-command-center .access-profile {
  background: linear-gradient(135deg, #E04B57 0%, #FB7185 100%) !important;
}

.cockpit-command-center .quick-action-card:nth-child(1),
.cockpit-command-center .cockpit-mini-card:nth-child(1) {
  background: linear-gradient(135deg, #E04B57 0%, #FB7185 100%) !important;
}

.cockpit-command-center .quick-action-card:nth-child(2) {
  background: linear-gradient(135deg, #2F6FED 0%, #60A5FA 100%) !important;
}

.cockpit-command-center .quick-action-card:nth-child(3),
.cockpit-command-center .cockpit-mini-card:nth-child(2) {
  background: linear-gradient(135deg, #18A05E 0%, #34D399 100%) !important;
}

.cockpit-command-center .quick-action-card:nth-child(4) {
  background: linear-gradient(135deg, #7C3AED 0%, #A78BFA 100%) !important;
}

.cockpit-command-center .quick-action-card:nth-child(5),
.cockpit-command-center .cockpit-mini-card:nth-child(5) {
  background: linear-gradient(135deg, #0F8F8C 0%, #22D3EE 100%) !important;
}

.cockpit-command-center .quick-action-card:nth-child(6),
.cockpit-command-center .cockpit-mini-card:nth-child(4) {
  background: linear-gradient(135deg, #14B8A6 0%, #2F6FED 100%) !important;
}

.cockpit-command-center .cockpit-mini-card:nth-child(3) {
  background: linear-gradient(135deg, #F59E0B 0%, #FB923C 100%) !important;
}

.cockpit-command-center .adaptive-chip,
.cockpit-command-center .signal-label {
  color: #102331 !important;
  background: rgba(255,255,255,.82) !important;
  border-color: rgba(255,255,255,.35) !important;
  text-shadow: none !important;
}

.cockpit-command-center .signal-dot {
  background: #FFFFFF !important;
  box-shadow: 0 0 0 8px rgba(255,255,255,.20) !important;
}

.cockpit-command-center .module-card:hover,
.cockpit-command-center .quick-action-card:hover,
.cockpit-command-center .cockpit-mini-card:hover {
  transform: translateY(-7px) rotate(-.35deg) !important;
  box-shadow: 0 26px 54px rgba(16,35,49,.17) !important;
}

.cockpit-command-center .module-card:hover::after,
.cockpit-command-center .quick-action-card:hover::after,
.cockpit-command-center .cockpit-mini-card:hover::after {
  transform: translate(-8px, -8px) scale(1.08);
}

@media (max-width: 680px) {
  .cockpit-command-center .module-card,
  .cockpit-command-center .quick-action-card,
  .cockpit-command-center .cockpit-mini-card {
    box-shadow: 0 14px 30px rgba(16,35,49,.12) !important;
  }
}

/* Hero utilise: modules integres pour reduire la longueur du cockpit */
.cockpit-hero {
  align-items: stretch !important;
}

.cockpit-hero-panel {
  align-self: stretch !important;
  display: grid !important;
  grid-template-rows: auto auto auto auto !important;
  gap: 10px !important;
  max-width: 520px !important;
}

.hero-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.hero-quick-grid a {
  min-width: 0;
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 7px 8px;
  border-radius: 999px;
  text-decoration: none;
  color: #fff;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  transition: transform .18s ease, background .18s ease;
}

.hero-quick-grid a:nth-child(1) { background: linear-gradient(135deg, rgba(47,111,237,.64), rgba(15,143,140,.52)); }
.hero-quick-grid a:nth-child(2) { background: linear-gradient(135deg, rgba(24,160,94,.70), rgba(11,143,134,.50)); }
.hero-quick-grid a:nth-child(3) { background: linear-gradient(135deg, rgba(124,58,237,.72), rgba(79,70,229,.54)); }
.hero-quick-grid a:nth-child(4) { background: linear-gradient(135deg, rgba(245,158,11,.76), rgba(249,115,22,.56)); }

.hero-quick-grid a:hover {
  transform: translateY(-3px);
  background: rgba(255,255,255,.20);
}

.hero-quick-grid span {
  width: auto;
  height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #fff;
  background: transparent;
  border: 0;
  font-size: 10px;
  font-weight: 950;
}

.hero-quick-grid strong {
  min-width: 0;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  text-align: center;
  overflow-wrap: anywhere;
}

.hero-action-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.hero-action-strip button {
  min-width: 0;
  min-height: 40px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 14px;
  color: #fff;
  background: rgba(255,255,255,.14);
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease;
}

.hero-action-strip button:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.22);
}

@media (min-width: 1181px) {
  .cockpit-hero {
    grid-template-columns: minmax(0, 1fr) minmax(430px, .72fr) !important;
  }
}

@media (max-width: 900px) {
  .cockpit-hero-panel {
    grid-template-rows: auto auto auto auto !important;
  }
}

@media (max-width: 680px) {
  .hero-quick-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
  }

  .hero-quick-grid a {
    min-height: 34px;
    gap: 4px;
    padding: 6px 4px;
    border-radius: 999px;
  }

  .hero-quick-grid span {
    font-size: 10px;
  }

  .hero-quick-grid strong {
    display: none;
  }

  .hero-quick-grid span {
    white-space: nowrap;
    line-height: 1;
  }

  .hero-action-strip {
    gap: 6px;
  }

  .hero-action-strip button {
    min-height: 34px;
    border-radius: 12px;
    font-size: 11px;
  }
}

/* Correction layout hero: utiliser vraiment l'espace lateral */
.cockpit-hero {
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(390px, .62fr) !important;
  align-items: stretch !important;
  gap: 28px !important;
}

.cockpit-hero-copy,
.cockpit-hero-panel {
  position: relative;
  z-index: 2;
  min-width: 0;
}

.cockpit-hero-copy {
  grid-column: 1 !important;
  align-self: center !important;
}

.cockpit-hero-panel {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 100% !important;
}

@media (min-width: 1440px) {
  .cockpit-hero {
    grid-template-columns: minmax(0, 1fr) minmax(470px, .52fr) !important;
  }
}

@media (max-width: 1100px) {
  .cockpit-hero {
    grid-template-columns: 1fr !important;
  }

  .cockpit-hero-panel {
    grid-column: 1 !important;
    grid-row: auto !important;
    min-height: 0 !important;
  }
}

/* Reorganisation finale: pas de doublons, bas de page plus premium */
.cockpit-hero-panel {
  grid-template-rows: auto auto auto !important;
  align-content: center !important;
}

.cockpit-command-center {
  grid-template-columns: minmax(280px, .95fr) minmax(420px, 1.35fr) minmax(280px, .9fr) !important;
}

.cockpit-panel-priority {
  order: -3 !important;
}

.cockpit-panel-spaces {
  order: -2 !important;
}

.cockpit-panel-create {
  order: -1 !important;
}

.cockpit-command-center .cockpit-access-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.cockpit-command-center .quick-actions-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.cockpit-command-center .quick-action-card {
  min-height: 94px !important;
}

.cockpit-columns .cockpit-section {
  position: relative;
  overflow: hidden;
  border: 0 !important;
  background: var(--preview-bg, rgba(255,255,255,.88)) !important;
  box-shadow: 0 18px 48px rgba(16,35,49,.09) !important;
}

.cockpit-columns .cockpit-section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 88% 10%, var(--preview-glow, rgba(15,143,140,.16)), transparent 34%),
    linear-gradient(90deg, var(--preview-bar, rgba(15,143,140,.18)) 0 6px, transparent 6px);
  opacity: .95;
}

.cockpit-columns .cockpit-section::after {
  content: "";
  position: absolute;
  right: -46px;
  bottom: -58px;
  width: 150px;
  height: 150px;
  border-radius: 999px;
  background: rgba(255,255,255,.46);
  box-shadow: -42px -30px 0 rgba(255,255,255,.28);
  pointer-events: none;
}

.cockpit-columns .cockpit-section > * {
  position: relative;
  z-index: 1;
}

.cockpit-preview-community {
  --preview-bg: linear-gradient(135deg, #EFF8FF 0%, #F8FBFF 100%);
  --preview-glow: rgba(47,111,237,.18);
  --preview-bar: #2F6FED;
}

.cockpit-preview-jobs {
  --preview-bg: linear-gradient(135deg, #EFFBF5 0%, #FAFFFC 100%);
  --preview-glow: rgba(24,160,94,.20);
  --preview-bar: #18A05E;
}

.cockpit-preview-agenda {
  --preview-bg: linear-gradient(135deg, #ECFEFC 0%, #F9FFFE 100%);
  --preview-glow: rgba(20,184,166,.22);
  --preview-bar: #0F8F8C;
}

.cockpit-preview-base {
  --preview-bg: linear-gradient(135deg, #F4F0FF 0%, #FCFAFF 100%);
  --preview-glow: rgba(124,58,237,.18);
  --preview-bar: #7C3AED;
}

.cockpit-preview-watch {
  --preview-bg: linear-gradient(135deg, #FFF7E6 0%, #FFFDF7 100%);
  --preview-glow: rgba(245,158,11,.24);
  --preview-bar: #F59E0B;
}

.cockpit-columns .cockpit-section-head h2 {
  color: #102331 !important;
}

.cockpit-columns .cockpit-section-head .btn {
  background: rgba(255,255,255,.72) !important;
  border-color: rgba(16,35,49,.08) !important;
  backdrop-filter: blur(8px);
}

.cockpit-columns .cockpit-preview-row {
  background: rgba(255,255,255,.74) !important;
  border: 1px solid rgba(16,35,49,.06) !important;
  box-shadow: 0 12px 28px rgba(16,35,49,.055) !important;
  backdrop-filter: blur(10px);
}

@media (max-width: 1280px) {
  .cockpit-command-center {
    grid-template-columns: 1fr 1fr !important;
  }

  .cockpit-panel-spaces {
    grid-column: span 2;
    order: -2 !important;
  }

  .cockpit-command-center .cockpit-access-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 900px) {
  .cockpit-command-center {
    grid-template-columns: 1fr !important;
  }

  .cockpit-panel-spaces {
    grid-column: auto;
  }

  .cockpit-command-center .cockpit-access-grid,
  .cockpit-command-center .quick-actions-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  .cockpit-command-center .cockpit-access-grid,
  .cockpit-command-center .quick-actions-grid {
    grid-template-columns: 1fr !important;
  }

  .cockpit-command-center .quick-action-card {
    min-height: 78px !important;
  }
}

/* Creation rapide dans l'espace vide du hero */
.hero-stats-card {
  display: grid;
  grid-template-columns: 94px minmax(0, 1fr);
  align-items: stretch;
  gap: 12px;
  margin-top: 24px;
  padding: 14px;
  border-radius: 22px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.13);
}

.hero-stats-card .cockpit-pulse-row,
.hero-stats-card .cockpit-pulse-list {
  margin: 0 !important;
}

.hero-stats-card .cockpit-pulse-row {
  display: grid;
  align-content: center;
  gap: 4px;
}

.hero-stats-card .cockpit-pulse-row strong {
  font-size: 42px !important;
}

.hero-stats-card .cockpit-pulse-list {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.hero-stats-card .cockpit-pulse-list div {
  min-height: 66px !important;
  padding: 10px 10px 15px !important;
}

.hero-create-panel {
  display: block !important;
  color: #102331 !important;
  background:
    radial-gradient(circle at 86% 16%, rgba(124,58,237,.14), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(246,250,255,.88)) !important;
  border: 1px solid rgba(255,255,255,.58) !important;
  box-shadow: 0 28px 70px rgba(16,35,49,.18) !important;
  backdrop-filter: blur(12px);
  padding: 20px !important;
}

.hero-create-panel .cockpit-section-head {
  display: block !important;
  padding: 0 0 14px !important;
  margin: 0 !important;
}

.hero-create-panel .cockpit-section-head h2 {
  color: #102331 !important;
  font-size: 28px !important;
  line-height: 1.08 !important;
}

.hero-create-panel .cockpit-section-head p {
  color: #6F8190 !important;
}

.hero-create-panel .quick-actions-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  padding: 0 !important;
  margin-top: 10px !important;
}

.hero-create-panel .quick-action-card {
  min-height: 96px !important;
  display: grid !important;
  grid-template-columns: 56px minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  align-content: center !important;
  column-gap: 12px !important;
  row-gap: 4px !important;
  padding: 14px !important;
  border: 0 !important;
  border-radius: 20px !important;
  text-align: left !important;
  color: #fff !important;
  box-shadow: 0 18px 38px rgba(16,35,49,.12) !important;
}

.hero-create-panel .quick-action-card::before {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -34px;
  width: 106px;
  height: 106px;
  border-radius: 999px;
  background: rgba(255,255,255,.22);
  box-shadow: -30px -20px 0 rgba(255,255,255,.12);
}

.hero-create-panel .quick-action-card span {
  grid-row: 1 / span 2;
  width: 56px !important;
  height: 56px !important;
  border-radius: 17px !important;
  color: #fff !important;
  background: rgba(16,35,49,.12) !important;
  border: 1px solid rgba(255,255,255,.26) !important;
  font-size: 13px !important;
  font-weight: 950 !important;
}

.hero-create-panel .quick-action-card strong,
.hero-create-panel .quick-action-card small {
  grid-column: 2;
  color: #fff !important;
  text-shadow: 0 1px 10px rgba(16,35,49,.12);
}

.hero-create-panel .quick-action-card strong {
  font-size: 17px !important;
}

.hero-create-panel .quick-action-card small {
  display: block !important;
  font-size: 12.5px !important;
  line-height: 1.25 !important;
  opacity: .88 !important;
}

.hero-create-panel .quick-action-card:nth-child(1) { background: linear-gradient(135deg, #E04B57 0%, #FB7185 100%) !important; }
.hero-create-panel .quick-action-card:nth-child(2) { background: linear-gradient(135deg, #2F6FED 0%, #60A5FA 100%) !important; }
.hero-create-panel .quick-action-card:nth-child(3) { background: linear-gradient(135deg, #18A05E 0%, #34D399 100%) !important; }
.hero-create-panel .quick-action-card:nth-child(4) { background: linear-gradient(135deg, #7C3AED 0%, #A78BFA 100%) !important; }
.hero-create-panel .quick-action-card:nth-child(5) { background: linear-gradient(135deg, #0F8F8C 0%, #22D3EE 100%) !important; }
.hero-create-panel .quick-action-card:nth-child(6) { background: linear-gradient(135deg, #14B8A6 0%, #2F6FED 100%) !important; }

.cockpit-command-center {
  grid-template-columns: minmax(300px, .95fr) minmax(520px, 1.45fr) !important;
}

.cockpit-panel-spaces {
  grid-column: auto !important;
}

.cockpit-panel-create {
  display: none !important;
}

@media (max-width: 1280px) {
  .hero-create-panel .quick-action-card {
    min-height: 86px !important;
  }
}

@media (max-width: 1100px) {
  .hero-create-panel {
    padding: 18px !important;
  }

  .hero-create-panel .cockpit-section-head {
    padding-bottom: 12px !important;
  }

  .hero-create-panel .quick-actions-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    margin-top: 0 !important;
  }

  .hero-create-panel .quick-action-card {
    grid-template-columns: 48px minmax(0, 1fr) !important;
  }

  .hero-create-panel .quick-action-card span {
    width: 48px !important;
    height: 48px !important;
  }
}

@media (max-width: 760px) {
  .hero-stats-card {
    grid-template-columns: 1fr;
  }

  .hero-create-panel .quick-actions-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .hero-create-panel .quick-action-card {
    min-height: 68px !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    padding: 10px !important;
  }

  .hero-create-panel .quick-action-card span {
    width: 42px !important;
    height: 42px !important;
    font-size: 11px !important;
  }

  .hero-create-panel .quick-action-card strong {
    font-size: 14px !important;
  }

  .hero-create-panel .quick-action-card small {
    font-size: 11px !important;
  }
}

@media (max-width: 430px) {
  .hero-create-panel .quick-actions-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 340px) {
  .hero-create-panel .quick-actions-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Cockpit simplifie: clair, court, actionnable */
.cockpit-shell {
  gap: 14px !important;
}

.cockpit-hero {
  padding: 26px !important;
  gap: 20px !important;
}

.cockpit-hero h1 {
  font-size: clamp(30px, 3.6vw, 46px) !important;
}

.cockpit-hero p {
  font-size: 14.5px !important;
  line-height: 1.45 !important;
}

.hero-stats-card {
  margin-top: 18px !important;
}

.hero-create-panel {
  padding: 16px !important;
}

.hero-create-panel .cockpit-section-head h2 {
  font-size: 24px !important;
}

.hero-create-panel .quick-actions-grid {
  gap: 9px !important;
}

.hero-create-panel .quick-action-card {
  min-height: 78px !important;
  border-radius: 17px !important;
  grid-template-columns: 48px minmax(0,1fr) !important;
}

.hero-create-panel .quick-action-card span {
  width: 48px !important;
  height: 48px !important;
  border-radius: 15px !important;
}

.cockpit-command-center {
  grid-template-columns: minmax(320px, .78fr) minmax(560px, 1.22fr) !important;
  gap: 14px !important;
}

.cockpit-panel {
  border-radius: 22px !important;
}

.cockpit-command-center .cockpit-section-head {
  padding: 18px 18px 0 !important;
}

.cockpit-command-center .must-see-grid,
.cockpit-command-center .cockpit-access-grid {
  padding: 16px 18px 18px !important;
}

.cockpit-command-center .must-see-grid {
  gap: 9px !important;
}

.cockpit-command-center .cockpit-mini-card {
  min-height: 78px !important;
  border-radius: 17px !important;
}

.cockpit-command-center .cockpit-access-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.cockpit-command-center .cockpit-access-grid .module-card {
  min-height: 92px !important;
  border-radius: 18px !important;
  grid-template-columns: 48px minmax(0,1fr) !important;
}

.cockpit-command-center .cockpit-access-grid .module-card span {
  width: 48px !important;
  height: 48px !important;
  border-radius: 15px !important;
}

.cockpit-trust-strip {
  order: 6 !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.cockpit-trust-strip div {
  padding: 11px 14px !important;
  border-radius: 16px !important;
}

.cockpit-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

.cockpit-columns .cockpit-section {
  border-radius: 22px !important;
}

.cockpit-list {
  padding: 14px 18px 18px !important;
}

.cockpit-preview-row {
  min-height: 74px !important;
  border-radius: 17px !important;
}

@media (max-width: 1180px) {
  .cockpit-command-center {
    grid-template-columns: 1fr !important;
  }

  .cockpit-panel-spaces {
    grid-column: auto !important;
  }
}

@media (max-width: 760px) {
  .cockpit-hero {
    padding: 16px !important;
  }

  .cockpit-hero h1 {
    font-size: 27px !important;
  }

  .hero-stats-card {
    grid-template-columns: 1fr !important;
  }

  .hero-create-panel .quick-actions-grid,
  .cockpit-command-center .cockpit-access-grid,
  .cockpit-columns,
  .cockpit-trust-strip {
    grid-template-columns: 1fr !important;
  }
}

/* Organisation finale utilisateur: priorites > acces > creation > apercus */
.cockpit-hero {
  grid-template-columns: minmax(0, 1.12fr) minmax(330px, .55fr) !important;
}

.hero-stats-card {
  grid-column: 2 !important;
  align-self: stretch !important;
  margin-top: 0 !important;
}

.cockpit-command-center {
  grid-template-columns: minmax(320px, .82fr) minmax(560px, 1.18fr) !important;
  align-items: stretch !important;
}

.cockpit-panel-priority { order: 1 !important; }
.cockpit-panel-spaces { order: 2 !important; }
.cockpit-panel-create {
  display: none !important;
}

.cockpit-command-center .cockpit-access-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.cockpit-command-center + .cockpit-columns {
  order: 3 !important;
}

.cockpit-command-center + .cockpit-columns + .cockpit-columns {
  order: 4 !important;
}

.cockpit-trust-strip {
  order: 6 !important;
}

@media (max-width: 1280px) {
  .cockpit-command-center {
    grid-template-columns: 1fr 1fr !important;
  }

  .cockpit-panel-priority {
    grid-column: 1 / -1 !important;
  }

  .cockpit-panel-spaces,
  .cockpit-panel-create {
    grid-column: auto !important;
  }
}

@media (max-width: 900px) {
  .cockpit-hero,
  .cockpit-command-center {
    grid-template-columns: 1fr !important;
  }

  .hero-stats-card,
  .cockpit-panel-priority,
  .cockpit-panel-spaces,
  .cockpit-panel-create {
    grid-column: auto !important;
  }

  .cockpit-command-center .quick-actions-grid,
  .cockpit-command-center .cockpit-access-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  .cockpit-command-center .quick-actions-grid,
  .cockpit-command-center .cockpit-access-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Recommandations sous forme de cartes, comme les acces principaux */
.cockpit-panel-priority .must-see-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

.cockpit-panel-priority .cockpit-mini-card {
  min-height: 138px !important;
  display: grid !important;
  grid-template-columns: 76px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 18px !important;
  border-radius: 24px !important;
  color: #fff !important;
  text-decoration: none !important;
}

.cockpit-panel-priority .cockpit-mini-card span {
  width: 76px !important;
  height: 76px !important;
  border-radius: 22px !important;
  color: #fff !important;
  background: rgba(16,35,49,.12) !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  font-size: 12px !important;
  font-weight: 950 !important;
  line-height: 1.08 !important;
  text-align: center !important;
  padding: 8px !important;
}

.cockpit-panel-priority .cockpit-mini-card div {
  min-width: 0;
}

.cockpit-panel-priority .cockpit-mini-card strong {
  display: block;
  color: #fff !important;
  font-size: 18px !important;
  line-height: 1.16 !important;
  margin-bottom: 8px;
}

.cockpit-panel-priority .cockpit-mini-card small {
  display: block;
  color: rgba(255,255,255,.86) !important;
  font-size: 13px !important;
  line-height: 1.32 !important;
  font-weight: 750 !important;
}

.cockpit-panel-priority .cockpit-mini-card:nth-child(1) {
  background: linear-gradient(135deg, #E04B57 0%, #FB7185 100%) !important;
}

.cockpit-panel-priority .cockpit-mini-card:nth-child(2) {
  background: linear-gradient(135deg, #18A05E 0%, #34D399 100%) !important;
}

.cockpit-panel-priority .cockpit-mini-card:nth-child(3) {
  background: linear-gradient(135deg, #F59E0B 0%, #FB923C 100%) !important;
}

.cockpit-panel-priority .cockpit-mini-card:nth-child(3):last-child {
  grid-column: 1 / -1;
}

@media (max-width: 760px) {
  .cockpit-panel-priority .must-see-grid {
    grid-template-columns: 1fr !important;
  }

  .cockpit-panel-priority .cockpit-mini-card:nth-child(3):last-child {
    grid-column: auto;
  }
}

@media (max-width: 430px) {
  .cockpit-panel-priority .cockpit-mini-card {
    grid-template-columns: 62px minmax(0, 1fr) !important;
    min-height: 112px !important;
    padding: 14px !important;
  }

  .cockpit-panel-priority .cockpit-mini-card span {
    width: 62px !important;
    height: 62px !important;
    border-radius: 18px !important;
    font-size: 10px !important;
  }

  .cockpit-panel-priority .cockpit-mini-card strong {
    font-size: 15px !important;
  }

  .cockpit-panel-priority .cockpit-mini-card small {
    font-size: 11.5px !important;
  }
}

/* Placement final: recommandations a gauche, acces a droite pour raccourcir */
.cockpit-command-center {
  grid-template-columns: minmax(340px, .82fr) minmax(520px, 1.18fr) !important;
  align-items: start !important;
}

.cockpit-panel-priority {
  grid-column: auto !important;
  order: 1 !important;
}

.cockpit-panel-spaces {
  grid-column: auto !important;
  order: 2 !important;
}

.cockpit-panel-create {
  display: none !important;
}

.cockpit-panel-priority .must-see-grid {
  grid-template-columns: 1fr !important;
}

.cockpit-panel-priority .cockpit-mini-card {
  min-height: 118px !important;
  grid-template-columns: 68px minmax(0, 1fr) !important;
  border-radius: 22px !important;
}

.cockpit-panel-priority .cockpit-mini-card span {
  width: 68px !important;
  height: 68px !important;
  border-radius: 20px !important;
}

.cockpit-panel-priority .cockpit-mini-card strong {
  font-size: 16px !important;
}

.cockpit-panel-priority .cockpit-mini-card small {
  font-size: 12px !important;
}

.cockpit-command-center .cockpit-access-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

@media (max-width: 860px) {
  .cockpit-command-center {
    grid-template-columns: minmax(240px, .88fr) minmax(0, 1.12fr) !important;
    gap: 10px !important;
  }

  .cockpit-command-center .cockpit-access-grid {
    grid-template-columns: 1fr !important;
  }

  .cockpit-panel-priority .cockpit-mini-card {
    grid-template-columns: 58px minmax(0, 1fr) !important;
    min-height: 96px !important;
    padding: 12px !important;
  }

  .cockpit-panel-priority .cockpit-mini-card span {
    width: 58px !important;
    height: 58px !important;
    font-size: 9.5px !important;
  }

  .cockpit-panel-priority .cockpit-mini-card strong {
    font-size: 14px !important;
  }

  .cockpit-panel-priority .cockpit-mini-card small {
    font-size: 11px !important;
  }
}

/* Finition cockpit: moins haut, plus lisible, sections compactes */
.cockpit-hero {
  padding: 22px !important;
  gap: 18px !important;
}

.cockpit-kicker {
  margin-bottom: 8px !important;
}

.cockpit-hero h1 {
  font-size: clamp(28px, 3.2vw, 40px) !important;
  line-height: 1 !important;
}

.cockpit-hero p {
  max-width: 620px !important;
  font-size: 13.5px !important;
}

.cockpit-hero-sub {
  display: none !important;
}

.cockpit-hero-actions {
  margin-top: 16px !important;
}

.cockpit-hero-actions .btn {
  min-height: 44px !important;
  padding: 11px 18px !important;
}

.hero-stats-card {
  padding: 12px !important;
  border-radius: 20px !important;
}

.hero-stats-card .cockpit-pulse-row strong {
  font-size: 34px !important;
}

.hero-stats-card .cockpit-pulse-list div {
  min-height: 54px !important;
  padding: 8px 10px 13px !important;
}

.cockpit-command-center,
.cockpit-columns,
.cockpit-trust-strip {
  scroll-margin-top: 98px;
}

.cockpit-panel-priority .cockpit-mini-card {
  grid-template-columns: 54px minmax(0, 1fr) !important;
  min-height: 92px !important;
  padding: 12px !important;
  gap: 10px !important;
}

.cockpit-panel-priority .cockpit-mini-card span {
  width: 54px !important;
  height: 54px !important;
  border-radius: 17px !important;
  font-size: 9.5px !important;
}

.cockpit-panel-priority .cockpit-mini-card strong {
  font-size: 14px !important;
  line-height: 1.12 !important;
  margin-bottom: 4px !important;
}

.cockpit-panel-priority .cockpit-mini-card small {
  font-size: 11px !important;
  line-height: 1.22 !important;
}

.cockpit-columns .cockpit-section {
  min-height: auto !important;
}

.cockpit-columns .cockpit-section-head {
  padding: 18px 18px 0 !important;
}

.cockpit-columns .cockpit-section-head h2 {
  font-size: 22px !important;
}

.cockpit-list {
  padding: 12px 18px 18px !important;
}

.cockpit-preview-row {
  min-height: 68px !important;
  padding: 11px 12px !important;
}

.cockpit-empty {
  min-height: 82px !important;
  display: grid !important;
  align-content: center !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.68) !important;
  border: 1px dashed rgba(16,35,49,.12) !important;
}

@media (max-width: 680px) {
  .cockpit-hero {
    padding: 14px !important;
  }

  .cockpit-hero h1 {
    font-size: 25px !important;
  }

  .cockpit-hero p {
    font-size: 12.5px !important;
  }

  .hero-stats-card .cockpit-pulse-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Navbar cockpit: plus sobre, medicale et coherente avec le cockpit */
body:has(.cockpit-shell) .navbar {
  width: min(1360px, calc(100% - 28px)) !important;
  height: 66px !important;
  top: 10px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  padding: 8px 12px !important;
  gap: 10px !important;
  border-radius: 24px !important;
  background: rgba(255,255,255,.86) !important;
  border: 1px solid rgba(16,35,49,.08) !important;
  box-shadow: 0 18px 46px rgba(16,35,49,.10) !important;
  backdrop-filter: blur(18px) saturate(1.18) !important;
}

body:has(.cockpit-shell) .navbar-brand {
  min-width: 170px !important;
  gap: 9px !important;
}

body:has(.cockpit-shell) .logo-icon {
  width: 42px !important;
  height: 42px !important;
  border-radius: 15px !important;
  background: linear-gradient(135deg,#4f6cff,#11a8f5) !important;
  box-shadow: 0 12px 24px rgba(47,134,255,.26) !important;
}

body:has(.cockpit-shell) .logo-text {
  font-size: 20px !important;
  letter-spacing: -0.04em !important;
}

body:has(.cockpit-shell) .dz-badge {
  display: inline-flex !important;
}

body:has(.cockpit-shell) .navbar-search {
  max-width: 340px !important;
  flex: 0 1 340px !important;
}

body:has(.cockpit-shell) .navbar-search input {
  height: 44px !important;
  border-radius: 16px !important;
  background: rgba(244,247,251,.82) !important;
  border: 1px solid rgba(16,35,49,.08) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72) !important;
}

body:has(.cockpit-shell) .search-filter-btn {
  color: #6F8190 !important;
}

body:has(.cockpit-shell) .navbar-nav {
  gap: 4px !important;
  justify-content: center !important;
}

body:has(.cockpit-shell) .nav-item {
  width: 46px !important;
  height: 46px !important;
  border-radius: 16px !important;
  color: #6F8190 !important;
  background: rgba(255,255,255,.64) !important;
  border: 1px solid rgba(16,35,49,.09) !important;
  backdrop-filter: blur(12px);
}

body:has(.cockpit-shell) .nav-item .nav-icon {
  font-size: 20px !important;
}

body:has(.cockpit-shell) .nav-item .nav-icon::before {
  display: none !important;
}

body:has(.cockpit-shell) .nav-item.active,
body:has(.cockpit-shell) .nav-item:hover {
  color: #fff !important;
  background: linear-gradient(135deg, #0b8f86, #0eaaa0) !important;
  border-color: transparent !important;
  box-shadow: 0 10px 24px rgba(11,143,134,.22) !important;
}

body:has(.cockpit-shell) .btn-create {
  height: 44px !important;
  padding: 0 16px !important;
  border-radius: 16px !important;
  background: #102331 !important;
  color: #FFFFFF !important;
  box-shadow: 0 14px 28px rgba(16,35,49,.18) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
}

body:has(.cockpit-shell) .btn-create:hover {
  background: #0F8F8C !important;
}

body:has(.cockpit-shell) .icon-btn {
  width: 44px !important;
  height: 44px !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.74) !important;
  border: 1px solid rgba(16,35,49,.08) !important;
  box-shadow: 0 10px 22px rgba(16,35,49,.06) !important;
  font-size: 15px !important;
}

body:has(.cockpit-shell) .icon-btn:hover {
  background: rgba(209,250,229,.78) !important;
  color: #0B746F !important;
}

body:has(.cockpit-shell) .avatar.avatar-sm {
  width: 44px !important;
  height: 44px !important;
  border-radius: 16px !important;
  box-shadow: 0 10px 24px rgba(15,143,140,.16) !important;
}

@media (max-width: 1180px) {
  body:has(.cockpit-shell) .navbar-nav {
    display: none !important;
  }

  body:has(.cockpit-shell) .navbar-search {
    max-width: none !important;
    flex: 1 1 auto !important;
  }
}

@media (max-width: 680px) {
  body:has(.cockpit-shell) .navbar {
    width: calc(100% - 16px) !important;
    height: 62px !important;
    padding: 7px 8px !important;
  }

  body:has(.cockpit-shell) .logo-text {
    font-size: 17px !important;
  }

  body:has(.cockpit-shell) .navbar-brand {
    min-width: 132px !important;
  }

  body:has(.cockpit-shell) .navbar-search {
    display: none !important;
  }

  body:has(.cockpit-shell) .icon-btn,
  body:has(.cockpit-shell) .avatar.avatar-sm,
  body:has(.cockpit-shell) .btn-create {
    width: 42px !important;
    height: 42px !important;
    border-radius: 15px !important;
  }

  body:has(.cockpit-shell) .btn-create {
    padding: 0 !important;
    font-size: 0 !important;
  }

  body:has(.cockpit-shell) .btn-create::before {
    content: "+";
    font-size: 22px;
  }
}

@media (max-width: 520px) {
  .cockpit-command-center {
    grid-template-columns: 1fr !important;
  }
}

/* Hero stats: suggestion pleine largeur + titre lisible */
.hero-stats-card .cockpit-live-note {
  grid-column: 1 / -1 !important;
  margin-top: 6px !important;
}

.cockpit-live-note strong {
  text-transform: none !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: normal !important;
}

/* Acces principaux: texte blanc sur fonds sombres (appliqués via inline style) */
.cockpit-command-center .cockpit-access-grid .module-card strong,
.cockpit-command-center .cockpit-access-grid .module-card small {
  color: #fff !important;
  text-shadow: 0 1px 8px rgba(16,35,49,.18);
}

.cockpit-command-center .cockpit-access-grid .module-card strong {
  opacity: 1 !important;
}

.cockpit-command-center .cockpit-access-grid .module-card small {
  opacity: .88 !important;
}

.cockpit-command-center .cockpit-access-grid .module-card span {
  background: rgba(255,255,255,.18) !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  color: #fff !important;
  font-size: 24px !important;
}
/* Pages simples MedStaffDZ: Agenda, Jobs, Procedures */
.msd-simple-page {
  width: min(1220px, calc(100% - 32px));
  margin: 0 auto;
  padding: 28px 0 64px;
}

.msd-page-with-sidebar {
  width: min(1500px, calc(100% - 32px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding: 0 0 64px;
}

.msd-page-with-sidebar > .msd-simple-page,
.msd-page-with-sidebar > .agenda-shell {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.msd-page-with-sidebar > #left-sidebar-placeholder {
  position: static;
  padding-top: 28px;
}

@media (max-width: 980px) {
  .msd-page-with-sidebar {
    display: block;
    width: min(1220px, calc(100% - 32px));
  }
  .msd-page-with-sidebar > #left-sidebar-placeholder {
    display: none;
  }
}

.msd-page-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  min-height: 0;
  padding: 28px;
  border-radius: 28px;
  color: #fff;
  overflow: hidden;
  position: relative;
  box-shadow: 0 22px 55px rgba(16, 35, 49, .12);
}

.msd-page-hero::before,
.msd-page-hero::after,
.msd-feature-card::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  background: rgba(255, 255, 255, .18);
  pointer-events: none;
}

.msd-page-hero::before {
  width: 150px;
  height: 150px;
  right: 7%;
  top: -54px;
}

.msd-page-hero::after {
  width: 112px;
  height: 112px;
  right: -34px;
  bottom: -36px;
}

.msd-page-hero h1 {
  max-width: 760px;
  margin: 6px 0 8px;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.05;
  letter-spacing: 0;
}

.msd-page-hero p {
  max-width: 680px;
  margin: 0;
  font-size: 16px;
  line-height: 1.45;
  color: rgba(255, 255, 255, .88);
  font-weight: 650;
}

.agenda-hero {
  background: linear-gradient(135deg, #14b8a6 0%, #2f6fed 52%, #7c3aed 100%);
}

.jobs-hero {
  background: linear-gradient(135deg, #18a05e 0%, #0f8f8c 48%, #2f6fed 100%);
}

.procedures-hero {
  background: linear-gradient(135deg, #e04b57 0%, #f59e0b 45%, #7c3aed 100%);
}

.procedures-hero {
  padding: 24px 28px !important;
  align-items: flex-end;
}

.procedures-hero h1 {
  max-width: 620px;
  font-size: clamp(26px, 3.3vw, 38px) !important;
}

.procedures-hero p {
  max-width: 660px;
  font-size: 15px !important;
}

.procedures-hero .procedure-actions {
  max-width: 390px;
  justify-content: flex-end;
}

.procedures-hero .procedure-actions .btn {
  min-height: 42px;
  padding: 10px 16px;
  font-size: 13px;
  border-radius: 14px;
}

.msd-toolbar-card {
  display: flex;
  gap: 14px;
  align-items: center;
  margin: 18px 0;
  padding: 14px;
  border-radius: 24px;
  background: rgba(255, 255, 255, .82);
  border: 1px solid rgba(16, 35, 49, .08);
  box-shadow: 0 16px 40px rgba(16, 35, 49, .07);
  backdrop-filter: blur(14px);
}

.msd-toolbar-card .search-bar {
  flex: 1;
  min-width: 220px;
  margin: 0;
}

.msd-toolbar-card.academy-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, .95fr) minmax(300px, 1.15fr);
  gap: 12px 14px;
  align-items: stretch;
}

.academy-segment {
  display: grid;
  grid-template-columns: repeat(2, minmax(210px, 1fr));
  gap: 10px;
  grid-column: 1 / -1;
  min-width: 0;
}

.academy-segment-btn {
  min-height: 74px;
  border: 1px solid rgba(16, 35, 49, .08);
  border-radius: 20px;
  padding: 12px 14px;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 12px;
  align-items: center;
  text-align: left;
  min-width: 0;
  background: #fff;
  color: #102331;
  cursor: pointer;
  transition: transform .18s, box-shadow .18s, border-color .18s;
}

.academy-segment-btn span {
  grid-row: 1 / span 2;
  width: 46px;
  height: 46px;
  border-radius: 15px;
  display: grid;
  place-items: center;
  background: rgba(124, 58, 237, .12);
  color: #7c3aed;
  font-weight: 900;
}

.academy-segment-btn strong {
  font-size: 14px;
  line-height: 1.2;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.academy-segment-btn small {
  color: #6f8190;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.academy-segment-btn:nth-child(2) span {
  background: rgba(47, 111, 237, .12);
  color: #2f6fed;
}

.academy-segment-btn.active {
  border-color: rgba(124, 58, 237, .24);
  background: linear-gradient(135deg, #7c3aed 0%, #2f6fed 100%);
  color: #fff;
  box-shadow: 0 18px 38px rgba(47, 111, 237, .20);
  transform: translateY(-1px);
}

.academy-segment-btn.active span {
  background: rgba(255, 255, 255, .18);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .22);
}

.academy-segment-btn.active small {
  color: rgba(255, 255, 255, .82);
}

.msd-split-page {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 18px;
  align-items: start;
}

.msd-main-list,
.msd-side-panel {
  border-radius: 30px;
  border: 1px solid rgba(16, 35, 49, .08);
  background: linear-gradient(135deg, #fff 0%, #f7fbff 100%);
  box-shadow: 0 16px 44px rgba(16, 35, 49, .08);
}

.msd-main-list {
  padding: clamp(18px, 3vw, 28px);
}

.msd-side-panel {
  padding: 24px;
}

.msd-side-panel h3,
.msd-section-title h2 {
  margin: 8px 0 6px;
  color: #102331;
  letter-spacing: 0;
}

.msd-side-panel p,
.msd-section-title p {
  margin: 0;
  color: #6f8190;
  font-weight: 700;
  line-height: 1.45;
}

.msd-card-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.msd-feature-card {
  position: relative;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  min-height: 146px;
  padding: 20px;
  border-radius: 26px;
  overflow: hidden;
  color: #fff;
  box-shadow: 0 14px 30px rgba(16, 35, 49, .1);
  transition: transform .18s ease, box-shadow .18s ease;
}

.msd-feature-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 42px rgba(16, 35, 49, .14);
}

.msd-feature-card::after {
  width: 170px;
  height: 170px;
  right: -42px;
  bottom: -54px;
}

.msd-feature-card h3 {
  margin: 8px 0 5px;
  font-size: clamp(20px, 2.2vw, 28px);
  line-height: 1.05;
  color: #fff;
}

.msd-feature-card p,
.msd-feature-card small {
  display: block;
  margin: 0;
  color: rgba(255, 255, 255, .86);
  font-weight: 700;
  line-height: 1.45;
}

.msd-card-icon {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  border-radius: 22px;
  border: 2px solid rgba(255, 255, 255, .24);
  background: rgba(16, 35, 49, .12);
  color: #fff;
  font-weight: 900;
  z-index: 1;
}

.msd-card-topline,
.msd-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.msd-card-topline {
  color: rgba(255, 255, 255, .84);
  font-size: 12px;
  font-weight: 800;
}

.msd-card-actions {
  margin-top: 14px;
}

.msd-feature-card .btn-primary {
  background: #fff;
  color: #102331;
  border-color: transparent;
}

.msd-feature-card .btn-ghost {
  background: rgba(255, 255, 255, .16);
  color: #fff;
  border-color: rgba(255, 255, 255, .24);
}

.job-card {
  background: linear-gradient(135deg, #18a05e 0%, #10a37f 52%, #2f6fed 100%);
}

.job-opportunity-card {
  background: linear-gradient(135deg, #18a05e 0%, #0f8f8c 48%, #2f6fed 100%) !important;
  grid-template-columns: 62px minmax(0, 1fr) !important;
  gap: 14px !important;
  min-height: 116px !important;
  padding: 16px 18px !important;
  border-radius: 20px !important;
}

.job-opportunity-card h3,
.job-opportunity-card p,
.job-opportunity-card small,
.job-opportunity-card .msd-card-topline {
  color: #fff !important;
}

.job-opportunity-card h3 {
  margin: 5px 0 3px !important;
  font-size: clamp(18px, 1.8vw, 23px) !important;
  line-height: 1.08 !important;
}

.job-opportunity-card p {
  font-size: 13px !important;
  line-height: 1.35 !important;
}

.job-opportunity-card small {
  font-size: 12px !important;
  line-height: 1.35 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.job-opportunity-card .msd-card-icon {
  width: 56px !important;
  height: 56px !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.16) !important;
  color: #fff !important;
  font-size: 14px !important;
}

.job-opportunity-card .msd-card-topline {
  gap: 6px !important;
  font-size: 11px !important;
}

.job-opportunity-card .badge {
  padding: 2px 7px !important;
  font-size: 9px !important;
}

.job-opportunity-card .msd-card-actions {
  margin-top: 10px !important;
  gap: 7px !important;
}

.job-opportunity-card .msd-card-actions .btn {
  white-space: normal;
  min-height: 34px;
  padding: 6px 12px;
  font-size: 12px;
}

@media (max-width: 640px) {
  .job-opportunity-card {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 14px !important;
  }

  .job-opportunity-card .msd-card-icon {
    display: none !important;
  }

  .job-opportunity-card .msd-card-actions .btn {
    flex: 1 1 calc(50% - 8px);
  }
}

.job-opportunity-card.is-interested {
  border-color: rgba(255,255,255,.34) !important;
  box-shadow: 0 22px 52px rgba(24,160,94,.18) !important;
}

.job-opportunity-card .interest-btn.is-interested,
.job-detail-actions .is-interested {
  background: rgba(255,255,255,.94) !important;
  color: #0f8f8c !important;
  border-color: transparent !important;
}

.sidebar-link-saved {
  font-weight: 900 !important;
}

.job-detail-modal.active {
  display: flex;
}

.job-detail-box {
  max-width: 620px;
}

.job-detail-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin: 6px 0 16px;
  color: var(--muted, #6f8190);
  font-weight: 800;
}

/* ── Profile page v3 — premium design ───────────────────────────── */

/* Page wrapper */
.prf-page {
  max-width: 980px;
  margin: 0 auto;
  padding: 20px 16px;
}

/* ── Hero v2 ──────────────────────────────────────────────────────── */
.prf-hero-v2 {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  margin-bottom: 14px;
  box-shadow: var(--shadow-md);
}

.prf-cover-v2 {
  height: 210px;
  background: linear-gradient(135deg, var(--teal-dark) 0%, var(--teal) 40%, var(--teal-mid) 72%, var(--gold-mid) 100%);
  position: relative;
  overflow: hidden;
  cursor: pointer;
}
.prf-cover-v2 > img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
}

/* Decorative circles like doctor-hero-card */
.prf-cover-decoration {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  pointer-events: none;
}
.prf-deco-1 { width: 220px; height: 220px; top: -60px; right: -40px; }
.prf-deco-2 { width: 140px; height: 140px; bottom: -30px; left: 60px; background: rgba(255,255,255,0.05); }

.prf-cover-edit-btn {
  position: absolute; bottom: 12px; right: 14px;
  background: rgba(0,0,0,0.45);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #fff; border: 1px solid rgba(255,255,255,0.2);
  border-radius: 8px; padding: 5px 12px;
  font-size: 12px; font-weight: 600;
  cursor: pointer; display: flex; align-items: center; gap: 5px;
  transition: background .2s; z-index: 2;
}
.prf-cover-edit-btn:hover { background: rgba(0,0,0,0.65); }

/* Identity row */
.prf-identity-row {
  display: flex;
  align-items: flex-end;
  gap: 18px;
  padding: 0 28px 22px;
  flex-wrap: wrap;
}

/* Avatar */
.prf-avatar-wrap {
  margin-top: -52px;
  position: relative;
  flex-shrink: 0;
}
.prf-avatar-ring {
  width: 108px; height: 108px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--teal), var(--gold-mid));
  padding: 3px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.18);
}
.prf-avatar-inner {
  width: 100%; height: 100%;
  border-radius: 50%;
  border: 3px solid var(--white);
  overflow: hidden;
  background: var(--teal-light);
  display: flex; align-items: center; justify-content: center;
  font-size: 38px;
}
.prf-camera-btn {
  position: absolute; bottom: 2px; right: 2px;
  width: 26px; height: 26px;
  background: var(--white);
  border: 2px solid var(--border);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: transform .15s;
}
.prf-camera-btn:hover { transform: scale(1.1); }

/* Name / spec / loc */
.prf-identity-text { flex: 1; padding-top: 16px; min-width: 180px; }
.prf-name { font-size: 22px; font-weight: 800; color: var(--text); line-height: 1.2; }
.prf-spec { font-size: 14px; color: var(--teal); font-weight: 600; margin-top: 3px; }
.prf-grade-sep { color: var(--text-muted); font-weight: 400; }
.prf-loc {
  font-size: 12px; color: var(--text-muted); margin-top: 4px;
  display: flex; align-items: center; gap: 5px;
}
.prf-badges-row { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 8px; }

/* Badges */
.prf-badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 10px; border-radius: 20px;
  font-size: 11px; font-weight: 700;
}
.prf-badge-verified { background: var(--teal-light); color: var(--teal); }
.prf-badge-pending  { background: var(--gold-light);  color: var(--gold);  }
.prf-badge-available{ background: #d1fae5; color: #065f46; }
.prf-badge-mentor   { background: var(--blue-light);  color: var(--blue);  }

/* Action buttons */
.prf-actions {
  display: flex; gap: 7px; flex-wrap: wrap;
  align-items: flex-start; padding-top: 16px;
}
.prf-action-btn { white-space: nowrap; }

/* Stats bar */
.prf-stats-bar {
  display: flex;
  border-top: 1px solid var(--border);
}
.prf-stat-item {
  flex: 1; padding: 14px 8px; text-align: center;
  border-right: 1px solid var(--border);
  cursor: default; transition: background .15s;
}
.prf-stat-item:last-child { border-right: none; }
.prf-stat-item:hover { background: var(--teal-pale); }
.prf-stat-clickable { cursor: pointer; }
.prf-stat-clickable:hover .prf-stat-l { color: var(--teal); }
.follow-modal-row { display:flex; align-items:center; gap:12px; padding:10px 20px; text-decoration:none; color:inherit; transition:background .15s; }
.follow-modal-row:hover { background:var(--bg-alt); }
.follow-modal-avatar { width:40px; height:40px; border-radius:50%; overflow:hidden; background:var(--teal-pale); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.follow-modal-avatar img { width:100%; height:100%; object-fit:cover; }
.follow-modal-name { font-size:14px; font-weight:600; color:var(--text); }
.follow-modal-spec { font-size:12px; color:var(--text-muted); margin-top:2px; }
.follow-modal-info { flex:1; min-width:0; }

/* Two-button groups for connect + follow */
.net-btn-group { display:flex; gap:6px; flex-wrap:wrap; justify-content:center; }
.net-btn-group-sm { display:flex; gap:4px; flex-wrap:wrap; align-items:center; }

/* Sidebar suggestion dropdown menu */
.prf-rside-menu-wrap { position:relative; flex-shrink:0; }
.prf-rside-menu-btn { font-size:12px; font-weight:600; color:var(--teal); background:transparent; border:1.5px solid var(--teal); border-radius:20px; padding:4px 10px; cursor:pointer; white-space:nowrap; transition:background .15s,color .15s; }
.prf-rside-menu-btn:hover { background:var(--teal); color:#fff; }
.prf-rside-menu { display:none; position:absolute; right:0; bottom:calc(100% + 6px); background:var(--bg,#fff); border:1px solid var(--border,#e2e8f0); border-radius:10px; box-shadow:0 -4px 20px rgba(0,0,0,.12); z-index:200; min-width:150px; overflow:hidden; }
.prf-rside-menu.open { display:block; }
.prf-rside-menu button { display:block; width:100%; text-align:left; padding:10px 16px; background:none; border:none; cursor:pointer; font-size:13px; font-weight:500; color:var(--text,#1a202c); transition:background .15s; white-space:nowrap; }
.prf-rside-menu button:hover { background:var(--bg-alt,#f7fafc); color:var(--teal); }

.prf-stat-n { font-size: 20px; font-weight: 800; color: var(--teal); }
.prf-stat-l { font-size: 10px; color: var(--text-muted); margin-top: 2px; font-weight: 600; text-transform: uppercase; letter-spacing: .3px; }

/* Bio under stats bar */
.prf-hero-bio {
  padding: 12px 28px 14px;
  font-size: 14px;
  line-height: 1.65;
  color: var(--text-muted);
  border-top: 1px solid var(--border);
  white-space: pre-wrap;
}

/* Completeness in hero */
.prf-completeness-bar-wrap {
  padding: 12px 28px 16px;
  border-top: 1px solid var(--border);
  background: var(--teal-pale);
}
.prf-completeness-meta {
  display: flex; justify-content: space-between;
  font-size: 12px; color: var(--text-muted); font-weight: 600;
  margin-bottom: 6px;
}
.prf-completeness-pct { color: var(--teal); font-weight: 800; }
.prf-completeness-track {
  height: 7px; background: rgba(0,0,0,0.08); border-radius: 4px; overflow: hidden;
}
.prf-completeness-fill {
  height: 100%; background: linear-gradient(90deg, var(--teal), var(--teal-mid));
  border-radius: 4px; transition: width .5s ease;
}
.prf-completeness-hint { font-size: 11px; color: var(--text-muted); margin-top: 5px; }

/* ── 2-column layout — main LEFT, suggestions RIGHT ──────────────── */
.prf-2col {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 14px;
  align-items: start;
}
@media (max-width: 860px) {
  .prf-2col { grid-template-columns: 1fr; }
  .prf-aside { display: none; }
  .prf-page { padding: 12px 10px; }
  .prf-identity-row { padding: 0 16px 16px; }
  .prf-completeness-bar-wrap { padding: 10px 16px 14px; }
  .prf-stats-bar { flex-wrap: wrap; }
  .prf-stat-item { min-width: 50%; border-bottom: 1px solid var(--border); }
}

/* Right sidebar */
.prf-aside {
  position: sticky;
  top: calc(var(--nav-h, 60px) + 84px);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.prf-sidebar-verified {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px;
  background: var(--teal-light);
  border: 1px solid rgba(15,110,86,.15);
  border-radius: var(--radius-lg);
  font-size: 13px; font-weight: 700; color: var(--teal);
}
.prf-sidebar-pending {
  background: var(--gold-light);
  border-color: rgba(186,117,23,.15);
  color: var(--gold);
}

.prf-sidebar-widget {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.prf-widget-label {
  font-size: 10px; font-weight: 800;
  color: var(--text-muted); text-transform: uppercase;
  letter-spacing: .6px; padding: 10px 14px 6px;
  border-bottom: 1px solid var(--border);
}
.prf-sidebar-contrib {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px;
}

.prf-avail-badge {
  padding: 5px 10px; border-radius: 20px;
  font-size: 11px; font-weight: 700;
}
.prf-avail-green  { background: #d1fae5; color: #065f46; }
.prf-avail-teal   { background: var(--teal-light); color: var(--teal); }
.prf-avail-blue   { background: var(--blue-light); color: var(--blue); }

.prf-share-input-wrap {
  display: flex; gap: 6px; align-items: center;
}
.prf-share-input {
  flex: 1; font-size: 11px; color: var(--text-muted);
  background: var(--cream); border: 1px solid var(--border);
  border-radius: 6px; padding: 6px 8px;
  min-width: 0;
}
.prf-share-copy-btn {
  background: var(--teal-light); color: var(--teal);
  border: 1px solid var(--teal-light); border-radius: 6px;
  padding: 6px 10px; cursor: pointer; font-size: 13px;
  transition: background .15s; flex-shrink: 0;
}
.prf-share-copy-btn:hover { background: var(--teal); color: #fff; }

/* ── Main column ──────────────────────────────────────────────────── */
.prf-main { min-width: 0; }

/* Tabs */
.prf-tabs-bar {
  display: flex; gap: 2px;
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: 4px;
  margin-bottom: 12px; overflow-x: auto;
}
.prf-tab {
  flex: 1; padding: 9px 14px;
  font-size: 13px; font-weight: 700;
  color: var(--text-muted); background: none;
  border: none; border-radius: var(--radius-md);
  cursor: pointer; white-space: nowrap;
  transition: all .15s;
}
.prf-tab.active {
  background: linear-gradient(135deg, var(--teal-light), rgba(29,158,117,.1));
  color: var(--teal);
  box-shadow: inset 0 1px 2px rgba(15,110,86,.1);
}
.prf-tab:hover:not(.active) { background: var(--cream); color: var(--text); }

/* ── Content cards ────────────────────────────────────────────────── */
.prf-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-left: 3px solid var(--teal);
  border-radius: var(--radius-lg);
  padding: 20px;
  margin-bottom: 12px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow .2s;
}
.prf-card:hover { box-shadow: var(--shadow-md); }
.prf-card-teal   { border-left-color: var(--teal); }
.prf-card-blue   { border-left-color: var(--blue); }
.prf-card-gold   { border-left-color: var(--gold); }
.prf-card-purple { border-left-color: var(--purple); }

.prf-section-head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 14px;
}
.prf-section-icon {
  width: 30px; height: 30px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; flex-shrink: 0;
}
.prf-icon-teal   { background: var(--teal-light); }
.prf-icon-blue   { background: var(--blue-light); }
.prf-icon-gold   { background: var(--gold-light); }
.prf-icon-purple { background: var(--purple-light); }
.prf-section-title-text { font-size: 14px; font-weight: 700; color: var(--text); }

/* Info grid */
.prf-info-grid { display: flex; flex-direction: column; gap: 8px; }
.prf-info-row {
  display: flex; gap: 10px;
  padding: 7px 0; border-bottom: 1px solid var(--border);
}
.prf-info-row:last-child { border-bottom: none; padding-bottom: 0; }
.prf-info-label {
  min-width: 120px; font-size: 12px;
  color: var(--text-muted); font-weight: 600;
}
.prf-info-val { font-size: 13px; color: var(--text); text-transform: capitalize; }

/* Bio text */
.prf-bio-text { font-size: 13px; line-height: 1.8; color: var(--text); }

/* ── Timeline ─────────────────────────────────────────────────────── */
.prf-timeline {
  position: relative;
  padding-left: 22px;
}
.prf-timeline::before {
  content: '';
  position: absolute;
  left: 6px; top: 8px; bottom: 8px;
  width: 2px;
  background: linear-gradient(to bottom, var(--teal), var(--border));
  border-radius: 1px;
}
.prf-tl-item {
  position: relative;
  padding: 0 0 20px 14px;
}
.prf-tl-item:last-child { padding-bottom: 0; }
.prf-tl-dot {
  position: absolute;
  left: -10px; top: 5px;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--teal);
  border: 2px solid var(--white);
  box-shadow: 0 0 0 2px var(--teal);
}
.prf-tl-dot-gold {
  background: var(--gold);
  box-shadow: 0 0 0 2px var(--gold-light);
}
.prf-tl-content { background: var(--cream); border-radius: 10px; padding: 12px 14px; }
.prf-tl-title  { font-size: 13px; font-weight: 700; color: var(--text); }
.prf-tl-org    { font-size: 12px; color: var(--teal); font-weight: 600; margin-top: 2px; }
.prf-tl-period { font-size: 11px; color: var(--text-muted); margin-top: 3px; }
.prf-tl-desc   { font-size: 12px; color: var(--text); margin-top: 6px; line-height: 1.5; }

/* ── Skills / tags ────────────────────────────────────────────────── */
.prf-skill-tag {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 11px;
  background: var(--teal-light); color: var(--teal);
  border-radius: 20px; font-size: 12px; font-weight: 600;
}
.prf-tag-blue   { background: var(--blue-light);   color: var(--blue);   }
.prf-tag-gold   { background: var(--gold-light);   color: var(--gold);   }
.prf-tag-purple { background: var(--purple-light); color: var(--purple); }
.prf-tags-cloud { display: flex; flex-wrap: wrap; gap: 6px; }

/* ── Availability section ─────────────────────────────────────────── */
.prf-avail-rows { display: flex; flex-direction: column; gap: 2px; }
.prf-avail-row {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--border);
}
.prf-avail-row:last-child { border-bottom: none; }
.prf-avail-label { font-size: 13px; font-weight: 600; color: var(--text); }
.prf-avail-sub   { font-size: 11px; color: var(--text-muted); margin-top: 1px; }

/* Toggle switch */
.prf-toggle {
  position: relative; display: inline-block;
  width: 42px; height: 24px; flex-shrink: 0; cursor: pointer;
}
.prf-toggle input { opacity: 0; width: 0; height: 0; }
.prf-toggle-slider {
  position: absolute; cursor: pointer; inset: 0;
  background: var(--border-md); border-radius: 24px; transition: .3s;
}
.prf-toggle-slider:before {
  content: ''; position: absolute;
  height: 18px; width: 18px; left: 3px; bottom: 3px;
  background: #fff; border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0,0,0,.2); transition: .3s;
}
.prf-toggle input:checked + .prf-toggle-slider { background: var(--teal); }
.prf-toggle input:checked + .prf-toggle-slider:before { transform: translateX(18px); }

/* Mentor buttons */
.prf-mentor-btn {
  padding: 7px 16px; border-radius: 20px;
  border: 1.5px solid var(--border-md); background: var(--cream);
  color: var(--text-muted); font-size: 12px; font-weight: 700;
  cursor: pointer; transition: all .2s;
}
.prf-mentor-btn:hover { border-color: var(--teal); color: var(--teal); }
.prf-mentor-btn.active {
  border-color: var(--teal); background: var(--teal-light); color: var(--teal);
}

/* ── Publication cards ────────────────────────────────────────────── */
.prf-post-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 18px;
  margin-bottom: 12px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow .2s;
}
.prf-post-card:hover { box-shadow: var(--shadow-md); }
.prf-post-pinned-label {
  font-size: 11px; font-weight: 700; color: var(--teal);
  background: var(--teal-pale); border-radius: 6px;
  padding: 3px 8px; margin-bottom: 10px; display: inline-block;
}
.prf-post-header {
  display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px;
}
.prf-post-body { font-size: 13px; line-height: 1.7; color: var(--text); }
.prf-post-footer {
  display: flex; gap: 16px; font-size: 12px; color: var(--text-muted);
  padding-top: 10px; margin-top: 10px; border-top: 1px solid var(--border);
}
.prf-post-stat { display: flex; align-items: center; gap: 4px; font-weight: 600; }
.prf-post-menu-btn {
  background: none; border: none; cursor: pointer;
  font-size: 16px; color: var(--text-muted);
  padding: 2px 6px; border-radius: 6px;
  transition: background .15s;
}
.prf-post-menu-btn:hover { background: var(--cream); }
.prf-post-type-badge {
  padding: 2px 8px; border-radius: 10px;
  font-size: 10px; font-weight: 700;
}
.prf-type-cas      { background: #fce7f3; color: #9d174d; }
.prf-type-question { background: var(--blue-light); color: var(--blue); }
.prf-type-article  { background: var(--purple-light); color: var(--purple); }

/* ── Réseau tab ───────────────────────────────────────────────────── */
.prf-contact-row {
  display: flex; gap: 10px; align-items: center;
  padding: 8px 0; border-bottom: 1px solid var(--border);
}
.prf-contact-row:last-child { border-bottom: none; }
.prf-suggestions-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.prf-suggestion-card {
  display: flex; gap: 8px; align-items: center;
  padding: 10px; background: var(--cream);
  border-radius: 10px; border: 1px solid var(--border);
  transition: border-color .15s;
}
.prf-suggestion-card:hover { border-color: var(--teal-mid); }

/* ── Empty / loading states ───────────────────────────────────────── */
.prf-empty-state {
  text-align: center; padding: 48px 20px;
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius-lg);
}
.prf-empty-icon  { font-size: 40px; margin-bottom: 10px; }
.prf-empty-title { font-size: 15px; font-weight: 700; color: var(--text); }
.prf-empty-msg   { font-size: 13px; color: var(--text-muted); margin: 0; }
.prf-loading-state { text-align: center; padding: 40px; color: var(--text-muted); }

.prf-error-state {
  text-align: center; padding: 80px 20px;
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius-xl);
}

/* Skeleton loaders */
.prf-skeleton-hero {
  height: 320px; background: var(--border);
  border-radius: var(--radius-xl);
  animation: loading 1.5s infinite;
}
.prf-skeleton-sidebar {
  height: 400px; background: var(--border);
  border-radius: var(--radius-lg);
  animation: loading 1.5s infinite;
}
.prf-skeleton-main {
  height: 400px; background: var(--border);
  border-radius: var(--radius-lg);
  animation: loading 1.5s infinite;
}

.job-detail-description {
  color: #102331;
  font-weight: 700;
  line-height: 1.65;
  margin: 0 0 18px;
}

.detail-facts-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 18px;
}

.detail-facts-grid div {
  padding: 12px;
  border-radius: 16px;
  background: rgba(47,111,237,.07);
  border: 1px solid rgba(16,35,49,.08);
}

.detail-facts-grid strong,
.detail-facts-grid span {
  display: block;
}

.detail-facts-grid strong {
  color: #6f8190;
  font-size: 11px;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.detail-facts-grid span {
  color: #102331;
  font-weight: 900;
}

.job-detail-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

/* ── Emploi : bouton hero secondaire ── */
.emploi-hero-secondary {
  background: rgba(255,255,255,.15);
  border: 1.5px solid rgba(255,255,255,.55);
  color: #fff !important;
  backdrop-filter: blur(8px);
  font-weight: 700;
}
.emploi-hero-secondary:hover { background: rgba(255,255,255,.28); border-color: rgba(255,255,255,.8); }

/* ── Emploi : toolbar restructurée ── */
.emploi-toolbar-v2 {
  flex-direction: column !important;
  gap: 12px !important;
  align-items: stretch !important;
  padding: 16px 20px !important;
}
.emploi-toolbar-top { display: flex; align-items: center; gap: 10px; }
.emploi-tab-group { display: flex; gap: 4px; background: var(--teal-pale); border-radius: var(--radius-md); padding: 4px; }
.emploi-filter-row { display: flex; gap: 10px; align-items: center; }
.emploi-filter-row .search-bar { flex: 1; margin: 0; min-width: 0; }
.emploi-filter-select { width: 200px; flex-shrink: 0; }

/* ── Emploi : onglets Offres / Candidats ── */
.emploi-tab {
  padding: 7px 16px;
  border: none;
  border-radius: var(--radius-md);
  font-size: 13px;
  font-weight: 600;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
  white-space: nowrap;
}
.emploi-tab:hover { color: var(--teal); }
.emploi-tab.active { background: var(--white); color: var(--teal); box-shadow: 0 1px 6px rgba(16,35,49,.10); }

/* ── Formulaire offre : boutons rôle ── */
.job-role-btn {
  flex: 1;
  padding: 10px 14px;
  border: 1.5px solid var(--border-md);
  border-radius: var(--radius-md);
  font-size: 13px;
  font-weight: 600;
  background: var(--white);
  color: var(--text-muted);
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
}
.job-role-btn:hover { border-color: var(--teal); color: var(--teal); }
.job-role-btn.active { background: var(--teal); color: #fff; border-color: var(--teal); }

/* ── Avertissement offre relayée ── */
.job-relay-notice {
  margin-top: 8px;
  padding: 9px 12px;
  background: #FEF3C7;
  border-radius: var(--radius-md);
  font-size: 12px;
  color: #92400E;
  line-height: 1.5;
}
.dark .job-relay-notice { background: rgba(251,191,36,.12); color: #FCD34D; }

/* ── Badge offre relayée sur la carte ── */
.badge-relay {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 700;
  background: rgba(255,255,255,.22);
  color: #fff;
  border: 1px solid rgba(255,255,255,.35);
  letter-spacing: .3px;
}

/* ── Cartes candidats ── */
.candidat-card {
  background: linear-gradient(135deg, #2f6fed 0%, #0f8f8c 55%, #14b8a6 100%) !important;
  grid-template-columns: 64px minmax(0,1fr) !important;
  gap: 14px !important;
  align-items: flex-start !important;
}
.candidat-card h3 { font-size: 16px !important; }
.candidat-avatar-wrap { display:flex; align-items:center; justify-content:center; }
.candidat-card .badge-blue {
  background: rgba(255,255,255,.20) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.35) !important;
}
.candidat-card p, .candidat-card small, .candidat-card .msd-card-topline { color: rgba(255,255,255,.92) !important; }

@media (max-width: 680px) {
  .detail-facts-grid { grid-template-columns: 1fr; }
  .job-detail-actions .btn { width: 100%; }
  .job-role-btn { font-size: 12px; padding: 8px 10px; }
}

.agenda-card {
  background: linear-gradient(135deg, #14b8a6 0%, #2f6fed 56%, #7c3aed 100%);
}

.academy-hero {
  background: linear-gradient(135deg, #7c3aed 0%, #2f6fed 52%, #0f8f8c 100%);
}

.jobs-hero,
.academy-hero {
  min-height: 0;
  align-items: flex-end;
  gap: 18px;
  padding: 28px;
  border-radius: 28px;
}

.jobs-hero h1,
.academy-hero h1 {
  margin: 6px 0 8px;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.05;
}

.jobs-hero p,
.academy-hero p {
  max-width: 680px;
  font-size: 16px;
  line-height: 1.45;
  font-weight: 650;
}

.jobs-hero::before,
.academy-hero::before {
  width: 150px;
  height: 150px;
  top: -54px;
}

.jobs-hero::after,
.academy-hero::after {
  width: 112px;
  height: 112px;
  right: -34px;
  bottom: -36px;
}

.academy-card {
  background: linear-gradient(135deg, #7c3aed 0%, #5b6df7 56%, #14b8a6 100%);
}

#academyList.msd-card-list {
  grid-auto-rows: 1fr;
}

#academyList .academy-card {
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 12px;
  min-height: 158px;
  padding: 15px 16px;
  border-radius: 20px;
  align-items: stretch;
}

#academyList .academy-card > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
}

#academyList .academy-card .msd-card-icon {
  align-self: center;
  width: 54px;
  height: 54px;
  border-radius: 16px;
  font-size: 13px;
}

#academyList .academy-card .msd-card-topline {
  font-size: 11px;
  gap: 6px;
}

#academyList .academy-card h3 {
  min-height: 0;
  margin: 6px 0 3px;
  font-size: 19px;
  line-height: 1.12;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

#academyList .academy-card p {
  min-height: 0;
  font-size: 13px;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#academyList .academy-card small {
  min-height: 2.5em;
  font-size: 12px;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

#academyList .academy-card .msd-card-actions {
  margin-top: auto;
  padding-top: 9px;
  gap: 6px;
}

#academyList .academy-card .btn-sm {
  min-height: 34px;
  padding: 8px 12px;
  font-size: 12px;
}

.procedure-card {
  background: linear-gradient(135deg, #e04b57 0%, #f59e0b 55%, #7c3aed 100%);
}

/* ══════════════════════════════════════════════════════════════
   PROFIL — 9 design improvements
   ══════════════════════════════════════════════════════════════ */

/* ① Sticky mini-header ───────────────────────────────────────── */
.prf-sticky-bar {
  position: fixed;
  top: var(--nav-h, 60px);
  left: 0; right: 0;
  z-index: 200;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
  padding: 8px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  transform: translateY(-100%);
  transition: transform 0.28s cubic-bezier(0.4,0,0.2,1);
  box-shadow: 0 4px 16px rgba(16,35,49,.10);
}
.prf-sticky-bar.visible { transform: translateY(0); }
.dark .prf-sticky-bar {
  background: rgba(15,28,40,0.94);
  border-bottom-color: rgba(255,255,255,.08);
}
.prf-sticky-left {
  display: flex; align-items: center; gap: 10px;
  min-width: 0;
}
.prf-sticky-avatar {
  width: 36px; height: 36px; border-radius: 50%;
  overflow: hidden; flex-shrink: 0;
  border: 2px solid var(--teal-mid);
}
.prf-sticky-avatar img { width: 100%; height: 100%; object-fit: cover; }
.prf-sticky-name {
  font-size: 14px; font-weight: 700;
  color: var(--text); white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
.prf-sticky-spec {
  font-size: 12px; color: var(--text-muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.prf-sticky-actions {
  display: flex; gap: 8px; flex-shrink: 0;
}

/* ② Counter animation — data-target on .prf-stat-n already handles this
   (JS side uses requestAnimationFrame; no extra CSS needed beyond stat base) */

/* ③ Smooth tab transition ────────────────────────────────────── */
@keyframes prfTabIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.prf-tab-entering {
  animation: prfTabIn 0.28s cubic-bezier(0.4,0,0.2,1) both;
}

/* ⑧ Staggered card entrance ─────────────────────────────────── */
@keyframes prfCardEnter {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
.prf-card-enter {
  animation: prfCardEnter 0.32s cubic-bezier(0.4,0,0.2,1) both;
}

/* ④ Presence indicator ──────────────────────────────────────── */
.prf-presence-dot {
  position: absolute;
  bottom: 4px; right: 4px;
  width: 13px; height: 13px;
  border-radius: 50%;
  border: 2.5px solid var(--white);
  z-index: 2;
}
.prf-presence-online { background: #22c55e; }
.prf-presence-recent { background: #f59e0b; }
.dark .prf-presence-dot { border-color: var(--dark-surface); }

/* ⑤ Cover gradient theme picker ─────────────────────────────── */
.prf-theme-picker {
  position: absolute;
  bottom: 14px; left: 14px;
  display: flex; gap: 7px;
  z-index: 5;
}
.prf-theme-swatch {
  width: 26px; height: 26px;
  border-radius: 50%;
  cursor: pointer;
  border: 2.5px solid rgba(255,255,255,0.5);
  transition: border-color .18s, transform .18s;
  box-shadow: 0 2px 6px rgba(0,0,0,.22);
}
.prf-theme-swatch:hover { transform: scale(1.18); border-color: #fff; }
.prf-theme-swatch.active {
  border-color: #fff;
  box-shadow: 0 0 0 3px rgba(255,255,255,.55), 0 2px 8px rgba(0,0,0,.3);
  transform: scale(1.12);
}

/* ⑥ Contribution level progress bar ─────────────────────────── */
.prf-contrib-progress {
  margin-top: 10px;
}
.prf-contrib-level-row {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 5px;
}
.prf-contrib-name {
  font-size: 12px; font-weight: 700; color: var(--teal);
}
.prf-contrib-score {
  font-size: 11px; color: var(--text-muted);
}
.prf-contrib-track {
  height: 6px;
  background: var(--border);
  border-radius: 99px;
  overflow: hidden;
}
.prf-contrib-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--teal) 0%, var(--gold-mid) 100%);
  border-radius: 99px;
  transition: width 0.7s cubic-bezier(0.4,0,0.2,1);
}
.prf-contrib-next {
  font-size: 11px; color: var(--text-muted);
  margin-top: 4px;
}
.prf-contrib-next strong { color: var(--text); }

/* ⑦ Featured pinned post ────────────────────────────────────── */
.prf-post-featured {
  background: linear-gradient(135deg, rgba(8,80,65,.06) 0%, rgba(239,159,39,.06) 100%);
  border: 1.5px solid rgba(8,80,65,.18);
  border-radius: var(--radius-lg);
  padding: 16px;
  margin-bottom: 12px;
  position: relative;
  overflow: hidden;
}
.prf-post-featured::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 4px; height: 100%;
  background: linear-gradient(180deg, var(--teal) 0%, var(--gold-mid) 100%);
  border-radius: 4px 0 0 4px;
}
.dark .prf-post-featured {
  background: linear-gradient(135deg, rgba(8,80,65,.14) 0%, rgba(239,159,39,.08) 100%);
  border-color: rgba(8,80,65,.35);
}
.prf-featured-label {
  font-size: 11px; font-weight: 800;
  color: var(--teal);
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-bottom: 10px;
}
.prf-featured-content {
  font-size: 14px; line-height: 1.6;
  color: var(--text);
}

/* ⑨ Share FAB ───────────────────────────────────────────────── */
.prf-share-fab {
  position: fixed;
  bottom: 28px; right: 24px;
  z-index: 150;
  width: 50px; height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--teal) 0%, var(--teal-mid) 100%);
  color: #fff;
  font-size: 20px;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(8,80,65,.38);
  display: flex; align-items: center; justify-content: center;
  transition: transform .18s, box-shadow .18s;
}
.prf-share-fab:hover {
  transform: scale(1.10);
  box-shadow: 0 6px 24px rgba(8,80,65,.50);
}

/* ⑨ QR overlay ──────────────────────────────────────────────── */
.prf-qr-overlay {
  position: fixed;
  inset: 0;
  z-index: 900;
  background: rgba(10,20,30,.6);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .22s;
}
.prf-qr-overlay.active {
  opacity: 1; pointer-events: auto;
}
.prf-qr-box {
  background: var(--white);
  border-radius: var(--radius-xl);
  padding: 28px 24px 20px;
  width: min(340px, 90vw);
  text-align: center;
  box-shadow: 0 24px 64px rgba(0,0,0,.22);
  transform: scale(.94);
  transition: transform .22s cubic-bezier(0.34,1.56,0.64,1);
}
.prf-qr-overlay.active .prf-qr-box { transform: scale(1); }
.dark .prf-qr-box { background: var(--dark-surface); }
.prf-qr-box-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 16px;
}
.prf-qr-box-header h3 { margin: 0; font-size: 16px; }
.prf-qr-box-close {
  background: none; border: none; cursor: pointer;
  font-size: 20px; color: var(--text-muted);
  padding: 2px 6px; border-radius: 6px;
  transition: background .15s;
}
.prf-qr-box-close:hover { background: var(--cream); }
.prf-qr-img {
  width: 180px; height: 180px;
  border-radius: var(--radius-md);
  margin: 0 auto 14px;
  display: block;
  border: 3px solid var(--border);
}
.prf-qr-link-box {
  display: flex; gap: 8px; align-items: center;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 8px 10px;
  margin-top: 4px;
}
.prf-qr-link-text {
  flex: 1; font-size: 12px; color: var(--text-muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  text-align: left;
}

@media (max-width: 480px) {
  .prf-sticky-bar { padding: 7px 14px; }
  .prf-sticky-name { font-size: 13px; }
  .prf-share-fab { bottom: 18px; right: 14px; width: 44px; height: 44px; font-size: 17px; }
  .prf-theme-picker { bottom: 8px; left: 8px; gap: 5px; }
  .prf-theme-swatch { width: 22px; height: 22px; }
}

/* ── Avatar crop modal (Cropper.js overrides) ────────────────── */
#avatarCropModal .cropper-view-box,
#avatarCropModal .cropper-face {
  border-radius: 50%;
}
#avatarCropModal .cropper-view-box {
  outline: 3px solid var(--teal);
  outline-color: rgba(15,110,86,.85);
}
#avatarCropModal .cropper-face {
  background-color: inherit;
  opacity: 1;
}
#avatarCropModal .cropper-dashed,
#avatarCropModal .cropper-point,
#avatarCropModal .cropper-line {
  display: none;
}
#avatarCropModal .cropper-wrap-box { background: #0a0a0a; }

/* ══════════════════════════════════════════════════════════════
   PROFIL — theme color variables (set via JS on .prf-page)
   ══════════════════════════════════════════════════════════════ */

/* Defaults (teal theme) — overridden by JS when user picks a theme */
.prf-page {
  --prf-p1: #0F6E56;
  --prf-p2: #EF9F27;
}

/* Active tab */
.prf-page .prf-tab.active {
  background: linear-gradient(90deg, var(--prf-p1) 0%, var(--prf-p2) 100%) !important;
  color: #fff !important;
  box-shadow: 0 2px 14px rgba(0,0,0,.18) !important;
}

/* Progress bars */
.prf-page .prf-contrib-fill,
.prf-page .prf-completeness-fill {
  background: linear-gradient(90deg, var(--prf-p1), var(--prf-p2)) !important;
}

/* Stats numbers */
.prf-page .prf-stat-n {
  color: var(--prf-p1);
}

/* Contribution level name */
.prf-page .prf-contrib-name {
  color: var(--prf-p1);
}

/* Card left-border accents all follow p1 */
.prf-page .prf-card-teal { border-left-color: var(--prf-p1) !important; }
.prf-page .prf-card-blue { border-left-color: var(--prf-p1) !important; }
.prf-page .prf-card-purple { border-left-color: var(--prf-p2) !important; }
.prf-page .prf-card-gold { border-left-color: var(--prf-p2) !important; }

/* Section icon backgrounds */
.prf-page .prf-icon-teal,
.prf-page .prf-icon-blue {
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--prf-p1) 18%, transparent),
    color-mix(in srgb, var(--prf-p2) 22%, transparent)) !important;
}
.prf-page .prf-icon-gold,
.prf-page .prf-icon-purple {
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--prf-p2) 18%, transparent),
    color-mix(in srgb, var(--prf-p1) 22%, transparent)) !important;
}

/* Right sidebar connect button */
.prf-page .prf-rside-connect {
  border-color: var(--prf-p1) !important;
  color: var(--prf-p1) !important;
}
.prf-page .prf-rside-connect:hover {
  background: var(--prf-p1) !important;
  color: #fff !important;
}

/* Sticky bar bottom accent line */
.prf-page ~ .prf-sticky-bar.visible,
.prf-sticky-bar.visible {
  border-bottom-color: var(--prf-p1, var(--teal));
}

/* Skill tags teal variant */
.prf-page .prf-skill-tag {
  border-color: color-mix(in srgb, var(--prf-p1) 35%, transparent);
  color: var(--prf-p1);
  background: color-mix(in srgb, var(--prf-p1) 8%, transparent);
}

/* Featured post left border */
.prf-page .prf-post-featured {
  border-color: color-mix(in srgb, var(--prf-p1) 30%, transparent);
}
.prf-page .prf-post-featured::before {
  background: linear-gradient(180deg, var(--prf-p1), var(--prf-p2));
}
.prf-page .prf-featured-label { color: var(--prf-p1); }

/* Timeline dot */
.prf-page .prf-tl-dot {
  border-color: var(--prf-p1);
  background: color-mix(in srgb, var(--prf-p1) 15%, white);
}
.prf-page .prf-tl-dot-gold {
  border-color: var(--prf-p2) !important;
  background: color-mix(in srgb, var(--prf-p2) 15%, white) !important;
}

/* Completeness hint */
.prf-page .prf-completeness-pct { color: var(--prf-p1); }

/* Verified badge adapts */
.prf-page .prf-badge-verified {
  background: color-mix(in srgb, var(--prf-p1) 15%, transparent) !important;
  color: var(--prf-p1) !important;
  border-color: color-mix(in srgb, var(--prf-p1) 30%, transparent) !important;
}

/* Smooth transition when theme changes */
.prf-page .prf-tab.active,
.prf-page .prf-contrib-fill,
.prf-page .prf-completeness-fill,
.prf-page .prf-stat-n,
.prf-page .prf-card-teal,
.prf-page .prf-card-blue,
.prf-page .prf-card-gold,
.prf-page .prf-card-purple,
.prf-page .prf-skill-tag {
  transition: background 0.4s ease, border-color 0.4s ease, color 0.4s ease !important;
}

/* Fallback for browsers without color-mix */
@supports not (background: color-mix(in srgb, red 10%, white)) {
  .prf-page .prf-icon-teal,
  .prf-page .prf-icon-blue { background: rgba(15,110,86,.12) !important; }
  .prf-page .prf-skill-tag { border-color: rgba(15,110,86,.3); color: var(--prf-p1); background: rgba(15,110,86,.07); }
  .prf-page .prf-post-featured { border-color: rgba(15,110,86,.25); }
  .prf-page .prf-badge-verified { background: rgba(15,110,86,.12) !important; color: var(--prf-p1) !important; }
  .prf-page .prf-tl-dot { border-color: var(--prf-p1); background: rgba(15,110,86,.1); }
}

/* ══════════════════════════════════════════════════════════════
   PROFIL — right sidebar + premium enhancements
   ══════════════════════════════════════════════════════════════ */

/* ── Cover overlay gradient ──────────────────────────────────── */
.prf-cover-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 55%;
  background: linear-gradient(to top, rgba(0,0,0,.28) 0%, transparent 100%);
  pointer-events: none;
  z-index: 1;
}

/* ── Grade chip inline ───────────────────────────────────────── */
.prf-grade-chip {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  background: rgba(8,80,65,.10);
  color: var(--teal);
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  vertical-align: middle;
}
.dark .prf-grade-chip { background: rgba(29,158,117,.18); }

/* ── Stats bar premium ───────────────────────────────────────── */
.prf-stat-sep {
  width: 1px;
  height: 28px;
  background: var(--border);
  align-self: center;
  flex-shrink: 0;
}

/* ── Post footer link ────────────────────────────────────────── */
.prf-post-view-link {
  margin-left: auto;
  font-size: 11px;
  color: var(--teal);
  text-decoration: none;
  font-weight: 600;
  white-space: nowrap;
}
.prf-post-view-link:hover { text-decoration: underline; }

/* ── Right sidebar cards ─────────────────────────────────────── */
.prf-rside-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 2px 12px rgba(16,35,49,.05);
  transition: box-shadow .18s;
}
.prf-rside-card:hover { box-shadow: 0 4px 20px rgba(16,35,49,.09); }
.dark .prf-rside-card { background: var(--dark-surface); border-color: rgba(255,255,255,.07); }

.prf-rside-title {
  font-size: 13px;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
  letter-spacing: -.15px;
}
.dark .prf-rside-title { border-bottom-color: rgba(255,255,255,.07); }

.prf-rside-user {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
  transition: background .12s;
}
.prf-rside-user:last-child { border-bottom: none; padding-bottom: 0; }
.dark .prf-rside-user { border-bottom-color: rgba(255,255,255,.06); }

.prf-rside-avatar {
  width: 38px; height: 38px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--cream);
  display: flex; align-items: center; justify-content: center;
  font-size: 17px;
  border: 2px solid var(--border);
  text-decoration: none;
  transition: border-color .15s, transform .15s;
}
.prf-rside-avatar:hover { border-color: var(--teal-mid); transform: scale(1.06); }
.prf-rside-avatar img { width: 100%; height: 100%; object-fit: cover; }

.prf-rside-info {
  flex: 1;
  min-width: 0;
}
.prf-rside-name {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
  line-height: 1.3;
  transition: color .12s;
}
.prf-rside-name:hover { color: var(--teal); }
.prf-rside-spec {
  font-size: 11px;
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 1px;
}

.prf-rside-connect {
  flex-shrink: 0;
  padding: 5px 13px;
  font-size: 12px;
  font-weight: 700;
  background: transparent;
  border: 1.5px solid var(--teal);
  color: var(--teal);
  border-radius: 20px;
  cursor: pointer;
  font-family: inherit;
  transition: all .15s;
  text-decoration: none;
  white-space: nowrap;
  display: inline-block;
  line-height: 1.4;
}
.prf-rside-connect:hover {
  background: var(--teal);
  color: #fff;
  transform: scale(1.04);
}

.prf-rside-more {
  font-size: 12px;
  color: var(--teal);
  font-weight: 700;
  cursor: pointer;
  padding-top: 4px;
  text-decoration: none;
  display: block;
  transition: opacity .15s;
}
.prf-rside-more:hover { opacity: .75; }

/* ── Premium card hover lift ─────────────────────────────────── */
.prf-card {
  transition: box-shadow .20s, transform .20s;
}
.prf-card:hover {
  box-shadow: 0 6px 24px rgba(16,35,49,.09);
  transform: translateY(-1px);
}

/* ── Premium post card ───────────────────────────────────────── */
.prf-post-card {
  transition: box-shadow .20s, transform .20s;
}
.prf-post-card:hover {
  box-shadow: 0 6px 22px rgba(16,35,49,.10);
  transform: translateY(-1px);
}

/* ── Premium section icon backgrounds ───────────────────────── */
.prf-section-icon {
  width: 32px; height: 32px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}
.prf-icon-teal   { background: linear-gradient(135deg,rgba(8,80,65,.12),rgba(29,158,117,.18)); }
.prf-icon-blue   { background: linear-gradient(135deg,rgba(47,111,237,.12),rgba(56,189,248,.18)); }
.prf-icon-gold   { background: linear-gradient(135deg,rgba(186,117,23,.12),rgba(239,159,39,.20)); }
.prf-icon-purple { background: linear-gradient(135deg,rgba(124,58,237,.12),rgba(168,85,247,.18)); }

@media (max-width: 860px) {
  .prf-rside-card { border-radius: 12px; padding: 14px; }
}

.access-procedures,
.cockpit-command-center .access-procedures {
  background: linear-gradient(135deg, #E04B57 0%, #F59E0B 100%) !important;
  color: #fff !important;
}

.access-procedures span {
  background: rgba(255, 255, 255, .16) !important;
  color: #fff !important;
}

/* Hero cockpit: indicateurs alignes avec les sections reelles */
.hero-stats-card .cockpit-pulse-row span {
  max-width: 120px;
}

.hero-stats-card .cockpit-pulse-list div {
  min-width: 0;
  overflow: hidden;
}

.hero-stats-card .cockpit-pulse-list a,
.hero-stats-card .cockpit-pulse-list .cockpit-pulse-link {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 8px;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
}

.hero-stats-card .cockpit-pulse-list span {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: clip;
  white-space: normal;
  text-align: left;
  font-size: clamp(11px, 1.2vw, 14px);
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.hero-stats-card .cockpit-pulse-list strong {
  line-height: 1;
}

.hero-stats-card .cockpit-pulse-link:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, .34);
}

.hero-stats-card .cockpit-pulse-link:focus-visible,
.hero-stats-card .cockpit-live-note:focus-visible {
  outline: 3px solid rgba(255, 255, 255, .7);
  outline-offset: 3px;
}

.hero-stats-card .cockpit-live-note {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.hero-stats-card .cockpit-live-note em {
  display: inline-flex;
  width: fit-content;
  margin-top: 10px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .18);
  color: #fff;
  font-style: normal;
  font-weight: 900;
  font-size: 12px;
  border: 1px solid rgba(255, 255, 255, .22);
}

.hero-stats-card .cockpit-pulse-link {
  min-height: 82px !important;
  padding: 14px 16px 16px !important;
  border-radius: 18px !important;
  background: rgba(255, 255, 255, .13) !important;
  border: 1px solid rgba(255, 255, 255, .18) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  position: relative;
}

.hero-stats-card .cockpit-pulse-link::after {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 12px;
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, #54d8ff, #55e2a0, #ffe86b);
}

.hero-stats-card .cockpit-pulse-link strong {
  color: #fff !important;
  font-size: clamp(26px, 3.3vw, 38px) !important;
}

.hero-stats-card .cockpit-pulse-link span {
  color: rgba(255, 255, 255, .92) !important;
  font-weight: 900 !important;
  letter-spacing: 0;
}

@media (max-width: 760px) {
  .hero-stats-card .cockpit-pulse-list {
    grid-template-columns: repeat(3, minmax(88px, 1fr)) !important;
  }
  .hero-stats-card .cockpit-pulse-link {
    min-height: 76px !important;
    padding: 12px 12px 15px !important;
  }
  .hero-stats-card .cockpit-pulse-link span {
    font-size: 11px !important;
  }
}

@media (max-width: 980px) {
  .msd-split-page {
    grid-template-columns: 1fr;
  }
  .msd-toolbar-card.academy-toolbar {
    grid-template-columns: 1fr;
  }
  .academy-segment {
    min-width: 100%;
  }
  .msd-side-panel {
    position: static;
  }
}

@media (max-width: 680px) {
  .msd-simple-page {
    width: min(100% - 20px, 1220px);
    padding-top: 16px;
  }
  .msd-page-hero,
  .msd-toolbar-card {
    align-items: stretch;
    flex-direction: column;
  }
  .academy-segment {
    grid-template-columns: 1fr;
  }
  .academy-segment-btn {
    min-height: 68px;
  }
  .msd-feature-card {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  #academyList .academy-card {
    min-height: auto;
  }
  #academyList .academy-card h3,
  #academyList .academy-card p,
  #academyList .academy-card small {
    min-height: 0;
  }
  .msd-card-icon {
    width: 66px;
    height: 66px;
  }
  .msd-card-actions .btn {
    width: 100%;
  }
}

/* Anciens headers de section: meme langage visuel compact que Jobs */
.page-wrapper > .page-header,
.msd-simple-page > .page-header {
  width: min(1220px, calc(100% - 32px));
  margin: 24px auto 18px !important;
  padding: 28px !important;
  min-height: 0;
  border: 0 !important;
  border-radius: 28px;
  color: #fff;
  overflow: hidden;
  position: relative;
  background:
    radial-gradient(circle at 82% 6%, rgba(255,255,255,.24) 0 120px, transparent 122px),
    radial-gradient(circle at 98% 96%, rgba(255,255,255,.18) 0 92px, transparent 94px),
    linear-gradient(135deg, #18a05e 0%, #0f8f8c 48%, #2f6fed 100%) !important;
  box-shadow: 0 22px 55px rgba(16, 35, 49, .12);
}

.page-wrapper > .page-header::before,
.page-wrapper > .page-header::after,
.msd-simple-page > .page-header::before,
.msd-simple-page > .page-header::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  background: rgba(255, 255, 255, .16);
  pointer-events: none;
}

.page-wrapper > .page-header::before,
.msd-simple-page > .page-header::before {
  width: 150px;
  height: 150px;
  right: 7%;
  top: -54px;
}

.page-wrapper > .page-header::after,
.msd-simple-page > .page-header::after {
  width: 112px;
  height: 112px;
  right: -34px;
  bottom: -36px;
}

.page-wrapper > .page-header .page-header-inner,
.msd-simple-page > .page-header .page-header-inner {
  max-width: none !important;
  min-height: 0;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.page-wrapper > .page-header .page-header-title,
.msd-simple-page > .page-header .page-header-title {
  max-width: 760px;
  margin: 6px 0 8px;
  color: #0b1328;
  font-size: clamp(28px, 4vw, 42px) !important;
  font-weight: 900 !important;
  line-height: 1.05;
  letter-spacing: 0;
}

.page-wrapper > .page-header .page-header-sub,
.msd-simple-page > .page-header .page-header-sub {
  max-width: 680px;
  margin: 0;
  color: rgba(255, 255, 255, .9) !important;
  font-size: 16px !important;
  font-weight: 650;
  line-height: 1.45;
}

.page-wrapper > .page-header .btn,
.msd-simple-page > .page-header .btn {
  min-height: 44px;
  border-radius: 16px;
  font-weight: 900;
  box-shadow: none;
}

.page-wrapper > .page-header .btn-primary,
.msd-simple-page > .page-header .btn-primary {
  background: rgba(255,255,255,.92) !important;
  border-color: transparent !important;
  color: #102331 !important;
}

.page-wrapper > .page-header .btn-outline,
.page-wrapper > .page-header .btn-ghost,
.msd-simple-page > .page-header .btn-outline,
.msd-simple-page > .page-header .btn-ghost {
  background: rgba(255,255,255,.16) !important;
  border-color: rgba(255,255,255,.28) !important;
  color: #fff !important;
}

@media (max-width: 760px) {
  .page-wrapper > .page-header,
  .msd-simple-page > .page-header {
    width: min(100% - 20px, 1220px);
    min-height: 168px;
    margin-top: 16px !important;
    border-radius: 26px;
  }

  .page-wrapper > .page-header .page-header-inner,
  .msd-simple-page > .page-header .page-header-inner {
    min-height: auto;
    align-items: flex-start;
    flex-direction: column;
  }

  .page-wrapper > .page-header .page-header-title,
  .msd-simple-page > .page-header .page-header-title {
    font-size: clamp(30px, 10vw, 42px) !important;
  }

  .page-wrapper > .page-header .page-header-sub,
  .msd-simple-page > .page-header .page-header-sub {
    font-size: 15px !important;
  }
}

/* Staff medical: UX visuel proche de la page Jobs, contenu inchange */
.staff-page {
  background:
    radial-gradient(circle at 8% 18%, rgba(224,75,87,.08), transparent 24%),
    radial-gradient(circle at 92% 26%, rgba(47,111,237,.10), transparent 26%),
    linear-gradient(180deg, #eef6fb 0%, #f6f9fc 42%, #eef4f6 100%);
}

.staff-page .staff-safety-banner {
  width: min(1080px, calc(100% - 40px));
  margin: 12px auto 0;
  padding: 9px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(245, 158, 11, .22);
  border-radius: 14px;
  background: rgba(255, 251, 235, .78);
  color: #7c2d12;
  box-shadow: 0 8px 22px rgba(16, 35, 49, .045);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
}

.staff-page .staff-safety-icon {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  background: rgba(245, 158, 11, .14);
  color: #b45309;
  font-size: 13px;
  font-weight: 900;
}

.staff-page .staff-safety-text {
  max-width: 980px;
}

.staff-page .page-wrapper > .page-header {
  background:
    radial-gradient(circle at 82% 6%, rgba(255,255,255,.22) 0 120px, transparent 122px),
    radial-gradient(circle at 98% 96%, rgba(255,255,255,.16) 0 92px, transparent 94px),
    linear-gradient(135deg, #e04b57 0%, #0f8f8c 48%, #2f6fed 100%) !important;
}

.staff-page .page-wrapper > .page-header:not(.staff-inline-hero) {
  display: none;
}

.staff-page .layout-3col > #left-sidebar-placeholder {
  grid-row: 1 / span 2;
}

.staff-page .staff-inline-hero {
  grid-column: 2 / -1;
  width: 100%;
  margin: 0 0 6px !important;
  padding: 22px 28px !important;
  min-height: 0;
  border: 0 !important;
  border-radius: 26px;
  color: #fff;
  overflow: hidden;
  position: relative;
  background:
    radial-gradient(circle at 82% 6%, rgba(255,255,255,.20) 0 96px, transparent 98px),
    radial-gradient(circle at 98% 96%, rgba(255,255,255,.15) 0 78px, transparent 80px),
    linear-gradient(135deg, #e04b57 0%, #0f8f8c 48%, #2f6fed 100%) !important;
  box-shadow: 0 22px 55px rgba(16, 35, 49, .12);
}

.staff-page .staff-inline-hero::before,
.staff-page .staff-inline-hero::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  pointer-events: none;
}

.staff-page .staff-inline-hero::before {
  width: 150px;
  height: 150px;
  right: 7%;
  top: -54px;
}

.staff-page .staff-inline-hero::after {
  width: 112px;
  height: 112px;
  right: -34px;
  bottom: -36px;
}

.staff-page .staff-inline-hero .page-header-inner {
  max-width: none !important;
  position: relative;
  z-index: 1;
}

.staff-page .page-wrapper > .page-header .page-header-title {
  color: #0b1328;
}

.staff-page .page-wrapper > .page-header .page-header-sub {
  color: rgba(255,255,255,.92) !important;
}

.staff-page .staff-inline-hero .btn-primary {
  background: rgba(255,255,255,.92) !important;
  border-color: transparent !important;
  color: #102331 !important;
}

@media (max-width: 820px) {
  .staff-page .staff-inline-hero {
    grid-column: 1;
  }
}

.staff-page .layout-3col {
  align-items: start;
  gap: 22px;
}

.staff-page .layout-3col > div:nth-child(2),
.staff-page .staff-main {
  min-width: 0;
}

.staff-page .staff-control-bar {
  position: relative;
  z-index: 40;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 24px;
  padding: 14px 18px;
  border-radius: 24px;
  background:
    linear-gradient(135deg, rgba(248,251,253,.96), rgba(236,245,248,.90));
  border: 1px solid rgba(83, 114, 131, .11);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.82), 0 12px 28px rgba(16,35,49,.045);
  backdrop-filter: blur(12px);
}

.staff-page .staff-publish-panel {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin: -8px 0 22px;
  padding: 14px 16px;
  border: 1px solid rgba(15, 143, 140, .14);
  border-radius: 20px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 12px 28px rgba(16,35,49,.055);
  backdrop-filter: blur(10px);
}

.staff-page .staff-publish-icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg,#0f8f8c,#2f6fed);
  color: #fff;
  font-size: 22px;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(47,111,237,.22);
}

.staff-page .staff-publish-trigger {
  min-width: 0;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid rgba(83,114,131,.16);
  border-radius: 999px;
  background: #f8fafc;
  color: var(--text-muted);
  text-align: left;
  font-family: inherit;
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
  transition: all .15s;
}

.staff-page .staff-publish-trigger:hover {
  background: #fff;
  border-color: rgba(15,143,140,.28);
  color: var(--teal);
}

.staff-page .staff-publish-btn {
  min-height: 42px;
  padding-inline: 20px;
}

.staff-page .staff-work-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  padding: 6px;
  margin-bottom: 14px;
  border: 1px solid rgba(47,111,237,.12);
  border-radius: 20px;
  background: #eef6ff;
  box-shadow: 0 10px 24px rgba(16,35,49,.06);
}

.staff-page .staff-work-tab {
  min-height: 44px;
  border: 1px solid transparent;
  border-radius: 15px;
  background: rgba(255,255,255,.58);
  color: #334155;
  font-family: inherit;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  transition: all .15s;
}

.staff-page .staff-work-tab:hover {
  background: #fff;
  color: var(--teal);
  border-color: rgba(15,143,140,.22);
}

.staff-page .staff-work-tab.active {
  background: linear-gradient(135deg,#0f8f8c,#2f6fed);
  color: #fff;
  box-shadow: 0 12px 26px rgba(47,111,237,.22);
}

.staff-list-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin: 4px 0 12px;
}

.staff-list-heading h2 {
  margin: 0;
  color: #102331;
  font-size: 20px;
  font-weight: 900;
}

.staff-list-heading p {
  margin: 0;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 800;
}

.staff-page .staff-control-bar .search-bar {
  max-width: none !important;
  width: 100%;
  min-width: 0;
  margin: 0;
  height: 52px;
  min-height: 52px;
  display: flex;
  align-items: center;
  border-radius: 18px !important;
  background: rgba(255,255,255,.92) !important;
  border-color: rgba(93, 113, 138, .15) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 1px 0 rgba(16,35,49,.03);
}

.staff-page .staff-control-bar .search-bar input {
  height: 100%;
  padding-top: 0;
  padding-bottom: 0;
}

.staff-page .staff-filter-menu-wrap {
  position: relative;
  z-index: 41;
  flex: 0 0 auto;
}

.staff-page .staff-filter-trigger {
  height: 52px;
  min-height: 52px;
  padding: 10px 18px;
  border-radius: 18px;
  border-color: transparent;
  background: rgba(255,255,255,.96);
  box-shadow: 0 1px 0 rgba(16,35,49,.04);
  font-weight: 800;
}

.staff-page .staff-filter-menu {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: min(320px, calc(100vw - 32px));
  z-index: 90;
  max-height: min(360px, calc(100vh - var(--nav-h) - 150px));
  overflow-y: auto;
  padding: 12px;
  border: 1px solid rgba(16,35,49,.10);
  border-radius: 20px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 48px rgba(16,35,49,.16);
}

.staff-page .staff-filter-menu.open {
  display: grid;
  gap: 10px;
}

.staff-page .staff-filter-menu label {
  display: grid;
  gap: 5px;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 900;
}

.staff-page .staff-filter-menu .select {
  width: 100% !important;
  min-height: 38px;
  padding: 7px 11px;
  border-radius: 12px !important;
  background: #fff !important;
  border-color: rgba(16,35,49,.1) !important;
  color: var(--text);
  font-weight: 800;
}

.staff-page .case-card {
  position: relative;
  z-index: 1;
  overflow: hidden;
  margin-bottom: 16px !important;
  padding: 20px !important;
  border: 1px solid rgba(16,35,49,.08) !important;
  border-radius: 26px !important;
  background:
    radial-gradient(circle at 94% 12%, rgba(224,75,87,.08), transparent 24%),
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(248,252,255,.94)) !important;
  box-shadow: 0 16px 38px rgba(16,35,49,.08) !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.staff-page .case-card:hover {
  transform: translateY(-2px);
  border-color: rgba(224,75,87,.24) !important;
  box-shadow: 0 22px 48px rgba(16,35,49,.12) !important;
}

.staff-page .case-card .badge {
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 900;
}

.staff-page .case-card .avatar {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(224,75,87,.12), rgba(47,111,237,.12)) !important;
}

.staff-case-body {
  display: flex;
  gap: 12px;
}

.staff-case-copy {
  flex: 1;
  min-width: 0;
}

.staff-case-title {
  color: #102331;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.3;
  margin-bottom: 4px;
}

.staff-case-meta {
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 6px;
}

.staff-case-summary {
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.5;
}

.staff-case-question {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(47,111,237,.12);
  border-radius: 14px;
  background: #f8fbff;
}

.staff-case-question strong {
  display: block;
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 4px;
}

.staff-case-question span {
  color: #102331;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.4;
}

.staff-case-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.staff-page .staff-post-actions {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(16,35,49,.08);
  justify-content: flex-start;
}

.staff-page .staff-post-actions .post-action-btn {
  min-height: 34px;
  border-radius: 999px;
}

.staff-page .staff-post-actions .btn-report-patient {
  margin-left: auto;
}

.staff-page .staff-vote-group .vote-score {
  display: none;
}

.staff-comments-zone {
  display: block;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(16,35,49,.08);
}

.staff-comments-zone.open {
  display: block;
}

.staff-comments-zone .feed-comments-inline {
  margin-bottom: 10px;
}

.staff-page .case-stats {
  margin-top: 14px !important;
  padding-top: 12px;
  border-top: 1px solid rgba(16,35,49,.08);
}

.staff-page .case-stat {
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(47,111,237,.08);
  color: #102331;
  font-weight: 800;
}

.staff-page .btn-report-patient {
  min-height: 32px;
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid rgba(224,75,87,.18);
  background: rgba(224,75,87,.08);
  color: #be123c;
  font-weight: 900;
}

.staff-page .sidebar .sidebar-card {
  border-radius: 24px;
  border: 1px solid rgba(16,35,49,.08);
  box-shadow: 0 16px 38px rgba(16,35,49,.07);
}

.staff-page .sidebar .sidebar-card:first-child {
  background: linear-gradient(135deg, rgba(255,241,242,.96), rgba(255,255,255,.94)) !important;
}

.staff-page .sidebar-title {
  color: #102331;
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
}

@media (max-width: 760px) {
  .staff-page .staff-safety-banner {
    width: min(100% - 20px, 1080px);
    align-items: flex-start;
    padding: 9px 12px;
  }

  .staff-page .staff-control-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .staff-page .staff-publish-panel {
    grid-template-columns: 36px minmax(0, 1fr);
    padding: 12px;
  }

  .staff-page .staff-publish-icon {
    width: 36px;
    height: 36px;
    font-size: 19px;
  }

  .staff-page .staff-publish-btn {
    grid-column: 1 / -1;
    width: 100%;
  }

  .staff-page .staff-work-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .staff-page .staff-filter-menu-wrap,
  .staff-page .staff-filter-trigger {
    width: 100%;
  }

  .staff-page .staff-filter-menu {
    left: 0;
    right: auto;
    width: 100%;
    max-height: 300px;
  }

  .staff-page .case-stats {
    gap: 10px;
  }

  .staff-page .case-stats > div {
    width: 100%;
    flex-wrap: wrap;
    gap: 8px !important;
  }

  .staff-page .btn-report-patient {
    width: 100%;
  }
}

/* Anciennes sections: UX visuel aligne avec Jobs/Staff, sans changer le contenu */
.section-modern-page {
  background:
    radial-gradient(circle at 8% 18%, rgba(15,143,140,.08), transparent 24%),
    radial-gradient(circle at 92% 24%, rgba(47,111,237,.10), transparent 28%),
    linear-gradient(180deg, #eef6fb 0%, #f7fafc 48%, #eef4f6 100%);
}

.section-modern-page.clinical-section-page .page-wrapper > .page-header {
  background:
    radial-gradient(circle at 82% 6%, rgba(255,255,255,.22) 0 120px, transparent 122px),
    radial-gradient(circle at 98% 96%, rgba(255,255,255,.16) 0 92px, transparent 94px),
    linear-gradient(135deg, #e04b57 0%, #0f8f8c 48%, #2f6fed 100%) !important;
}

.section-modern-page.network-section-page .page-wrapper > .page-header {
  width: min(1320px, calc(100% - 56px));
  margin: 28px auto 28px !important;
  padding: 22px 28px !important;
  border-radius: 26px;
  background:
    radial-gradient(circle at 82% 6%, rgba(255,255,255,.20) 0 96px, transparent 98px),
    radial-gradient(circle at 98% 96%, rgba(255,255,255,.15) 0 78px, transparent 80px),
    linear-gradient(135deg, #2f6fed 0%, #7c3aed 48%, #0f8f8c 100%) !important;
}

.section-modern-page.network-section-page .page-wrapper > .page-header .page-header-title {
  font-size: clamp(30px, 3.6vw, 42px) !important;
  margin-bottom: 6px;
}

.section-modern-page.network-section-page .page-wrapper > .page-header .page-header-sub {
  font-size: 15px !important;
}

.section-modern-page.network-section-page .page-wrapper > .page-header:not(.network-inline-hero) {
  display: none;
}

.network-section-page .layout-3col > #left-sidebar-placeholder {
  grid-row: 1 / span 2;
}

.network-section-page .network-inline-hero {
  grid-column: 2 / -1;
  width: 100%;
  margin: 0 0 6px !important;
  padding: 22px 28px !important;
  min-height: 0;
  border: 0 !important;
  border-radius: 26px;
  color: #fff;
  overflow: hidden;
  position: relative;
  background:
    radial-gradient(circle at 82% 6%, rgba(255,255,255,.20) 0 96px, transparent 98px),
    radial-gradient(circle at 98% 96%, rgba(255,255,255,.15) 0 78px, transparent 80px),
    linear-gradient(135deg, #2f6fed 0%, #7c3aed 48%, #0f8f8c 100%) !important;
  box-shadow: 0 22px 55px rgba(16, 35, 49, .12);
}

.network-section-page .network-inline-hero::before,
.network-section-page .network-inline-hero::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  pointer-events: none;
}

.network-section-page .network-inline-hero::before {
  width: 150px;
  height: 150px;
  right: 7%;
  top: -54px;
}

.network-section-page .network-inline-hero::after {
  width: 112px;
  height: 112px;
  right: -34px;
  bottom: -36px;
}

.network-section-page .network-inline-hero .page-header-inner {
  max-width: none !important;
  position: relative;
  z-index: 1;
}

.network-section-page .network-inline-hero .page-header-title {
  margin: 6px 0 6px;
  color: #0b1328;
  font-size: clamp(30px, 3.6vw, 42px) !important;
  line-height: 1.05;
  font-weight: 900 !important;
  letter-spacing: 0;
}

.network-section-page .network-inline-hero .page-header-sub {
  margin: 0;
  color: rgba(255,255,255,.9) !important;
  font-size: 15px !important;
  line-height: 1.45;
  font-weight: 650;
}

.network-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  padding-bottom: 0;
  border-bottom: 1px solid var(--border);
}

.network-search { flex: 1; min-width: 180px; }
.network-filter-select { width: auto; padding: 9px 14px; }
.network-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
}
.network-empty,
.network-loading {
  grid-column: 1 / -1;
  padding: 40px;
  color: var(--text-muted);
  text-align: center;
}
.network-load-more { margin-top: 16px; text-align: center; }
.network-panel.is-hidden,
.network-load-more.is-hidden { display: none; }
.network-card { cursor: pointer; }
.network-card-body { padding: 20px 16px 14px; text-align: center; }
.network-avatar {
  margin: 0 auto 10px;
  background: var(--teal-light);
}
.network-avatar img,
.network-pending-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.network-name { font-size: 13px; font-weight: 700; }
.network-specialty { margin: 3px 0; color: var(--teal); font-size: 11px; }
.network-muted { color: var(--text-muted); font-size: 11px; }
.network-establishment { margin-top: 2px; color: var(--text-muted); font-size: 11px; }
.network-stats-row {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 10px 0;
  color: var(--text-muted);
  font-size: 11px;
}
.network-verified { font-size: 10px; }
.network-pending-item {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
}
.network-pending-avatar { background: var(--teal-light); }
.network-pending-main { flex: 1; }
.network-pending-name { font-size: 14px; font-weight: 700; }
.network-pending-meta { color: var(--teal); font-size: 12px; }
.network-pending-time { color: var(--text-muted); font-size: 11px; }

@media (max-width: 820px) {
  .network-section-page .network-inline-hero {
    grid-column: 1;
  }
}

.section-modern-page.tools-section-page .page-wrapper > .page-header {
  background:
    radial-gradient(circle at 82% 6%, rgba(255,255,255,.22) 0 120px, transparent 122px),
    radial-gradient(circle at 98% 96%, rgba(255,255,255,.16) 0 92px, transparent 94px),
    linear-gradient(135deg, #f59e0b 0%, #0f8f8c 48%, #2f6fed 100%) !important;
}

.section-modern-page.resources-section-page .page-wrapper > .page-header {
  background:
    radial-gradient(circle at 82% 6%, rgba(255,255,255,.22) 0 120px, transparent 122px),
    radial-gradient(circle at 98% 96%, rgba(255,255,255,.16) 0 92px, transparent 94px),
    linear-gradient(135deg, #0f8f8c 0%, #2f6fed 48%, #7c3aed 100%) !important;
}

.section-modern-page.jobs-legacy-page .page-wrapper > .page-header {
  background:
    radial-gradient(circle at 82% 6%, rgba(255,255,255,.22) 0 120px, transparent 122px),
    radial-gradient(circle at 98% 96%, rgba(255,255,255,.16) 0 92px, transparent 94px),
    linear-gradient(135deg, #18a05e 0%, #0f8f8c 48%, #2f6fed 100%) !important;
}

.section-modern-page .layout-3col {
  align-items: start;
  gap: 22px;
}

.section-modern-page .layout-3col > div,
.section-modern-page .layout-3col > main {
  min-width: 0;
}

.section-modern-page .filter-bar {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px;
  border-radius: 26px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(16,35,49,.08);
  box-shadow: 0 16px 40px rgba(16,35,49,.07);
  backdrop-filter: blur(12px);
}

.section-modern-page .filter-bar .search-bar {
  max-width: none !important;
  min-width: 220px;
}

.section-modern-page .filter-bar .search-bar,
.section-modern-page .filter-bar .select,
.section-modern-page .filter-bar .input {
  min-height: 48px;
  border-radius: 16px !important;
  background: #fff !important;
  border-color: rgba(16,35,49,.1) !important;
  font-weight: 800;
}

.section-modern-page .filter-chip,
.section-modern-page .feed-filter,
.section-modern-page .tab-btn {
  min-height: 42px;
  border-radius: 16px !important;
  font-size: 13px;
  font-weight: 900;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.section-modern-page .filter-chip.active,
.section-modern-page .feed-filter.active,
.section-modern-page .tab-btn.active {
  background: linear-gradient(135deg, #0f8f8c, #2f6fed) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow: 0 12px 24px rgba(47,111,237,.16);
}

.section-modern-page .filter-chip:hover,
.section-modern-page .feed-filter:hover,
.section-modern-page .tab-btn:hover {
  transform: translateY(-1px);
}

.section-modern-page .feed-filters,
.section-modern-page .tabs,
.section-modern-page .page-header + div[style*="border-bottom"] {
  margin: 14px auto 18px;
  padding: 8px !important;
  border: 1px solid rgba(16,35,49,.08) !important;
  border-radius: 24px !important;
  background: rgba(255,255,255,.84) !important;
  box-shadow: 0 12px 30px rgba(16,35,49,.06);
}

.section-modern-page .page-header + div[style*="border-bottom"] > div {
  gap: 8px !important;
}

.section-modern-page .stats-grid {
  gap: 12px;
}

.section-modern-page .stat-card {
  position: relative;
  overflow: hidden;
  min-height: 96px;
  padding: 18px !important;
  border: 0;
  border-radius: 24px;
  text-align: left;
  color: #fff;
  background: linear-gradient(135deg, #0f8f8c, #2f6fed);
  box-shadow: 0 16px 34px rgba(16,35,49,.09);
}

.section-modern-page .stat-card:nth-child(2) {
  background: linear-gradient(135deg, #18a05e, #0f8f8c);
}

.section-modern-page .stat-card:nth-child(3) {
  background: linear-gradient(135deg, #7c3aed, #2f6fed);
}

.section-modern-page .stat-card:nth-child(4) {
  background: linear-gradient(135deg, #f59e0b, #e04b57);
}

.section-modern-page .stat-card::after {
  content: "";
  position: absolute;
  width: 104px;
  height: 104px;
  right: -24px;
  bottom: -34px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
}

.section-modern-page .stat-card-n,
.section-modern-page .stat-card-l,
.section-modern-page .stat-card-delta {
  color: #fff !important;
}

.section-modern-page .stat-card-n {
  font-size: 34px;
  font-weight: 900;
}

.section-modern-page .stat-card-l {
  font-weight: 900;
  opacity: .9;
}

.section-modern-page .case-card,
.section-modern-page .post-card,
.section-modern-page .user-card,
.section-modern-page .formation-card,
.section-modern-page .biblio-card,
.section-modern-page .card,
.section-modern-page .card-flat,
.section-modern-page .alert-card,
.section-modern-page .opp-card,
.section-modern-page .offre-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(16,35,49,.08) !important;
  border-radius: 26px !important;
  background:
    radial-gradient(circle at 94% 12%, rgba(47,111,237,.08), transparent 24%),
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(248,252,255,.94)) !important;
  box-shadow: 0 16px 38px rgba(16,35,49,.08) !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.section-modern-page.clinical-section-page .case-card,
.section-modern-page.clinical-section-page .post-card {
  background:
    radial-gradient(circle at 94% 12%, rgba(224,75,87,.08), transparent 24%),
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(248,252,255,.94)) !important;
}

.section-modern-page .case-card:hover,
.section-modern-page .post-card:hover,
.section-modern-page .user-card:hover,
.section-modern-page .formation-card:hover,
.section-modern-page .biblio-card:hover,
.section-modern-page .card:hover,
.section-modern-page .card-flat:hover,
.section-modern-page .alert-card:hover,
.section-modern-page .opp-card:hover,
.section-modern-page .offre-card:hover {
  transform: translateY(-2px);
  border-color: rgba(47,111,237,.22) !important;
  box-shadow: 0 22px 48px rgba(16,35,49,.12) !important;
}

.section-modern-page .badge,
.section-modern-page .tag,
.section-modern-page .pill {
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 900;
}

.section-modern-page .avatar {
  border-radius: 16px;
}

.section-modern-page .case-stats,
.section-modern-page .post-actions,
.section-modern-page .job-card-actions,
.section-modern-page .user-card-actions,
.section-modern-page .actions-row {
  gap: 10px;
  flex-wrap: wrap;
}

.section-modern-page .case-stat {
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(47,111,237,.08);
  color: #102331;
  font-weight: 800;
}

.section-modern-page .sidebar-card,
.section-modern-page #right-sidebar-placeholder .sidebar-card,
.section-modern-page #left-sidebar-placeholder .sidebar-card {
  border-radius: 24px !important;
  border: 1px solid rgba(16,35,49,.08) !important;
  background: rgba(255,255,255,.9) !important;
  box-shadow: 0 16px 38px rgba(16,35,49,.07) !important;
}

.section-modern-page .sidebar-title {
  color: #102331;
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
}

.section-modern-page .empty-state,
.section-modern-page .alert,
.section-modern-page .mention-alerte {
  border-radius: 22px !important;
  border: 1px solid rgba(16,35,49,.08) !important;
  background: rgba(255,255,255,.9) !important;
  box-shadow: 0 12px 30px rgba(16,35,49,.06);
}

.section-modern-page .pagination {
  display: inline-flex;
  gap: 8px;
  padding: 8px;
  border-radius: 18px;
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(16,35,49,.08);
}

@media (max-width: 1100px) {
  .section-modern-page .filter-bar {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 760px) {
  .section-modern-page .filter-bar,
  .section-modern-page .stats-grid {
    grid-template-columns: 1fr !important;
  }

  .section-modern-page .filter-bar .search-bar,
  .section-modern-page .filter-bar .select,
  .section-modern-page .filter-bar .input {
    width: 100% !important;
    min-width: 0;
  }

  .section-modern-page .feed-filters,
  .section-modern-page .tabs,
  .section-modern-page .page-header + div[style*="border-bottom"] > div {
    overflow-x: auto;
    scrollbar-width: thin;
  }

  .section-modern-page .feed-filter,
  .section-modern-page .tab-btn,
  .section-modern-page .filter-chip {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .section-modern-page .case-stats > div,
  .section-modern-page .post-actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .section-modern-page .actions-row .btn {
    width: 100%;
  }
}

/* Page sauvegardes: corrige l'alignement du contenu principal */
.saved-tabs-shell {
  width: min(1220px, calc(100% - 32px));
  margin: 0 auto 18px;
  padding: 8px;
  border-radius: 24px;
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(16,35,49,.08);
  box-shadow: 0 12px 30px rgba(16,35,49,.06);
}

.saved-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.saved-layout {
  margin-top: 0 !important;
}

.saved-main {
  min-width: 0;
}

.saved-main .card-flat {
  margin-bottom: 14px !important;
}

.saved-main .card-flat > div {
  align-items: stretch !important;
}

/* Cas cliniques */
.clinical-section-page .clinical-main {
  min-width: 0;
}

.clinical-section-page .clinical-filter-bar {
  display: grid !important;
  grid-template-columns: minmax(220px, 1fr) minmax(170px, max-content) minmax(150px, max-content);
  gap: 10px;
  margin-bottom: 16px;
}

.clinical-section-page .clinical-filter-bar .search-bar {
  width: 100%;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0;
}

.clinical-section-page .clinical-filter-bar .select {
  width: 100% !important;
  min-width: 0;
  padding: 9px 14px;
}

@media (max-width: 1180px) {
  .clinical-section-page .clinical-filter-bar {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .saved-tabs-shell {
    width: min(100% - 20px, 1220px);
  }

  .saved-tabs .tab-btn {
    flex: 0 0 auto;
  }
}

/* Refined left sidebar profile card */
#left-sidebar-placeholder .profile-sidebar-card {
  background:
    linear-gradient(180deg, rgba(248,252,253,.98), rgba(255,255,255,.98)) !important;
  border: 1px solid rgba(83,114,131,.13) !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  box-shadow: 0 12px 30px rgba(16,35,49,.07) !important;
}
#left-sidebar-placeholder .profile-sidebar-body {
  display: grid !important;
  grid-template-columns: 150px minmax(0, 1fr) 28px;
  column-gap: 14px;
  align-items: start;
  padding: 20px 14px 14px !important;
}
#left-sidebar-placeholder .profile-sidebar-top {
  display: contents !important;
}
#left-sidebar-placeholder .profile-sidebar-avatar {
  grid-column: 1;
  grid-row: 1 / span 4;
  align-self: center;
  justify-self: center;
  margin-top: 0;
  width: 84px !important;
  height: 84px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #0F6E56, #EF9F27) !important;
  border: none !important;
  padding: 3px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--teal) !important;
  font-size: 28px !important;
  font-weight: 800 !important;
  box-shadow: 0 4px 16px rgba(15,110,86,.25) !important;
  cursor: pointer;
  overflow: hidden;
}
#left-sidebar-placeholder .profile-sidebar-avatar img {
  border-radius: 50% !important;
  object-fit: cover !important;
  background: var(--white) !important;
}
#left-sidebar-placeholder .profile-sidebar-status {
  grid-column: 3;
  grid-row: 1 / span 4;
  align-self: start;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 28px;
  height: 28px;
  min-height: 28px;
  padding: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(83,114,131,.13);
  color: var(--text-muted);
  font-size: 0;
  font-weight: 800;
  box-shadow: none;
}
#left-sidebar-placeholder .profile-sidebar-status span {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 10px;
}
#left-sidebar-placeholder .profile-sidebar-status.verified { color: var(--teal); }
#left-sidebar-placeholder .profile-sidebar-status.verified span { background: rgba(15,110,86,.10); }
#left-sidebar-placeholder .profile-sidebar-status.pending { color: var(--gold); }
#left-sidebar-placeholder .profile-sidebar-status.pending span { background: var(--gold-light); }
#left-sidebar-placeholder .profile-sidebar-name {
  grid-column: 2;
  grid-row: 1;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  margin-top: 0 !important;
  color: var(--text) !important;
  min-width: 0;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}
#left-sidebar-placeholder .profile-sidebar-spec {
  grid-column: 2;
  grid-row: 2;
  font-size: 12px !important;
  color: var(--teal) !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  margin-top: 2px !important;
}
#left-sidebar-placeholder .profile-sidebar-account-badge {
  grid-column: 2;
  grid-row: 3;
  display: flex;
  justify-content: center;
  margin-top: 6px;
}
#left-sidebar-placeholder .profile-sidebar-account-badge .badge {
  text-align: center;
  max-width: 100%;
}
#left-sidebar-placeholder .profile-sidebar-loc {
  grid-column: 2;
  grid-row: 4;
  font-size: 11px !important;
  color: var(--text-muted) !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin-top: 5px !important;
}
#left-sidebar-placeholder .profile-sidebar-level {
  grid-column: 1 / -1;
  margin-top: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 12px;
  padding: 7px 0 0;
  border: 0;
  border-top: 1px solid rgba(83,114,131,.12);
  border-radius: 0;
  background: transparent;
}
#left-sidebar-placeholder .profile-sidebar-level span {
  min-width: 0;
  color: var(--text);
  font-size: 11px;
  font-weight: 750;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#left-sidebar-placeholder .profile-sidebar-level strong {
  color: #5b63f6;
  font-size: 11px;
  white-space: nowrap;
}
#left-sidebar-placeholder .profile-sidebar-stats {
  grid-column: 1 / -1;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  margin-top: 10px !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}
#left-sidebar-placeholder .pstat {
  text-align: center !important;
  padding: 9px 6px !important;
  border: 1px solid rgba(83,114,131,.12) !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.72) !important;
}
#left-sidebar-placeholder .pstat-n { font-size: 15px !important; font-weight: 850 !important; color: #5b63f6 !important; line-height: 1.1 !important; }
#left-sidebar-placeholder .pstat-l { font-size: 9px !important; color: var(--text-muted) !important; font-weight: 700 !important; margin-top: 3px !important; white-space: nowrap; }
#left-sidebar-placeholder .profile-sidebar-action {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 10px;
  height: 36px;
  border: 1px solid rgba(83,114,131,.14);
  border-radius: 14px;
  background: #fff;
  color: #5b63f6;
  font-size: 12px;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  transition: background .15s, transform .15s;
}
#left-sidebar-placeholder .profile-sidebar-action:hover {
  background: rgba(91,99,246,.08);
  transform: translateY(-1px);
}
.dark #left-sidebar-placeholder .profile-sidebar-card,
.dark #left-sidebar-placeholder .profile-sidebar-status,
.dark #left-sidebar-placeholder .pstat,
.dark #left-sidebar-placeholder .profile-sidebar-action {
  background: var(--card-bg) !important;
  border-color: var(--border) !important;
}
.dark #left-sidebar-placeholder .profile-sidebar-level { background: rgba(15,110,86,.14); }

/* Profile sidebar: coherent compact card */
#left-sidebar-placeholder .profile-sidebar-card {
  position: relative !important;
  border-radius: 20px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,251,252,.96)) !important;
  border: 1px solid rgba(83,114,131,.14) !important;
  box-shadow: 0 14px 34px rgba(16,35,49,.075) !important;
}

#left-sidebar-placeholder .profile-sidebar-body {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  padding: 18px 16px 16px !important;
}

#left-sidebar-placeholder .profile-sidebar-top {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin: 0 0 12px !important;
}

#left-sidebar-placeholder .profile-sidebar-avatar {
  width: 84px !important;
  height: 84px !important;
  margin: 0 !important;
  padding: 3px !important;
  border-radius: 50% !important;
  border: none !important;
  background: linear-gradient(135deg, #0F6E56, #EF9F27) !important;
  box-shadow: 0 4px 16px rgba(15,110,86,.25) !important;
  overflow: hidden !important;
}

#left-sidebar-placeholder .profile-sidebar-avatar img {
  width: 100% !important;
  height: 100% !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  background: var(--white) !important;
}

#left-sidebar-placeholder .profile-sidebar-status {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  width: auto !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 10px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(83,114,131,.13) !important;
  color: var(--teal) !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  box-shadow: 0 6px 16px rgba(16,35,49,.07) !important;
}

#left-sidebar-placeholder .profile-sidebar-status span {
  width: 16px !important;
  height: 16px !important;
  font-size: 10px !important;
  background: rgba(15,110,86,.10) !important;
}

#left-sidebar-placeholder .profile-sidebar-name,
#left-sidebar-placeholder .profile-sidebar-spec,
#left-sidebar-placeholder .profile-sidebar-loc {
  grid-column: auto !important;
  grid-row: auto !important;
  text-align: center !important;
}

#left-sidebar-placeholder .profile-sidebar-name {
  margin-top: 0 !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
  white-space: normal !important;
}

#left-sidebar-placeholder .profile-sidebar-spec {
  margin-top: 4px !important;
}

#left-sidebar-placeholder .profile-sidebar-loc {
  justify-content: center !important;
  margin-top: 7px !important;
}

#left-sidebar-placeholder .profile-sidebar-level,
#left-sidebar-placeholder .profile-sidebar-stats,
#left-sidebar-placeholder .profile-sidebar-action {
  grid-column: auto !important;
}

/* Refined left sidebar navigation */
#left-sidebar-placeholder .sidebar-card:not(.profile-sidebar-card) {
  background: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(15,110,86,.10) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 24px rgba(15,23,42,.045) !important;
  overflow: hidden !important;
}
#left-sidebar-placeholder .sidebar-card:not(.profile-sidebar-card)::before {
  height: 0 !important;
  display: none !important;
}
#left-sidebar-placeholder .sidebar-card-body {
  padding: 10px !important;
}
#left-sidebar-placeholder .nav-section-label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 8px 6px !important;
  margin: 2px 0 4px !important;
  color: var(--text-light) !important;
  font-size: 9px !important;
  font-weight: 850 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase;
}
#left-sidebar-placeholder .nav-section-label::after {
  content: "";
  height: 1px;
  flex: 1;
  background: linear-gradient(90deg, var(--border), transparent);
}
#left-sidebar-placeholder .sidebar-link {
  position: relative;
  min-height: 38px;
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  padding: 7px 9px !important;
  margin: 1px 0 !important;
  border-radius: 10px !important;
  color: var(--text-muted) !important;
  font-size: 12px !important;
  font-weight: 720 !important;
  line-height: 1.25 !important;
  transition: background .16s ease, color .16s ease, box-shadow .16s ease !important;
}
#left-sidebar-placeholder .sidebar-link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  bottom: 9px;
  width: 3px;
  border-radius: 0 999px 999px 0;
  background: var(--teal);
  opacity: 0;
  transition: opacity .16s ease;
}
#left-sidebar-placeholder .sidebar-link .sl-icon {
  width: 28px !important;
  height: 28px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 28px !important;
  border-radius: 9px !important;
  background: var(--teal-pale) !important;
  border: 1px solid rgba(15,110,86,.08) !important;
  color: var(--teal) !important;
  font-size: 14px !important;
  line-height: 1 !important;
}
#left-sidebar-placeholder .sidebar-link:hover {
  background: rgba(15,110,86,.065) !important;
  color: var(--teal) !important;
  transform: none !important;
  box-shadow: inset 0 0 0 1px rgba(15,110,86,.08);
}
#left-sidebar-placeholder .sidebar-link:hover .sl-icon {
  background: var(--white) !important;
  border-color: rgba(15,110,86,.14) !important;
}
#left-sidebar-placeholder .sidebar-link.active,
#left-sidebar-placeholder .sidebar-link[aria-current="page"] {
  background: var(--teal-light) !important;
  color: var(--teal) !important;
  box-shadow: inset 0 0 0 1px rgba(15,110,86,.12);
}
#left-sidebar-placeholder .sidebar-link.active::before,
#left-sidebar-placeholder .sidebar-link[aria-current="page"]::before {
  opacity: 1;
}
#left-sidebar-placeholder .sidebar-link.active .sl-icon,
#left-sidebar-placeholder .sidebar-link[aria-current="page"] .sl-icon {
  background: var(--white) !important;
  border-color: rgba(15,110,86,.18) !important;
}
#left-sidebar-placeholder .sidebar-link .sl-count {
  margin-left: auto;
  min-width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--red-dz);
  color: #fff;
  font-size: 10px;
  font-weight: 850;
}
.dark #left-sidebar-placeholder .sidebar-card:not(.profile-sidebar-card),
.dark #left-sidebar-placeholder .sidebar-link:hover .sl-icon,
.dark #left-sidebar-placeholder .sidebar-link.active .sl-icon {
  background: var(--card-bg) !important;
  border-color: var(--border) !important;
}
.dark #left-sidebar-placeholder .sidebar-link .sl-icon {
  background: rgba(15,110,86,.14) !important;
}
.dark #left-sidebar-placeholder .sidebar-link:hover,
.dark #left-sidebar-placeholder .sidebar-link.active {
  background: rgba(15,110,86,.18) !important;
}

/* Repost */
.post-repost-header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 0 10px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--border);
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 700;
}
.post-repost-header .repost-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--teal-pale);
  color: var(--teal);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
}
.post-repost-header a {
  color: var(--teal);
  font-weight: 800;
}
.post-repost-header small {
  margin-left: auto;
  color: var(--text-light);
  font-size: 11px;
}
.post-repost-note {
  margin: -2px 0 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--teal-pale);
  color: var(--text);
  font-size: 13px;
  line-height: 1.55;
  white-space: pre-wrap;
}
.repost-action { color: var(--teal) !important; }
.repost-modal { max-width: 560px; }
.repost-modal-body { padding: 16px; }
.repost-modal-body textarea {
  min-height: 68px;
  max-height: 110px;
}
.repost-preview {
  margin-top: 12px;
  min-height: 160px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--cream);
}
.repost-preview-label {
  font-size: 10px;
  font-weight: 850;
  color: var(--text-light);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.repost-preview-author {
  font-size: 13px;
  font-weight: 850;
  color: var(--text);
}
.repost-preview-spec {
  font-size: 11px;
  color: var(--teal);
  font-weight: 700;
  margin-top: 1px;
}
.repost-preview-title {
  font-size: 13px;
  font-weight: 800;
  color: var(--text);
  margin-top: 8px;
}
.repost-preview-text {
  font-size: 12px;
  line-height: 1.55;
  color: var(--text-muted);
  margin-top: 8px;
  white-space: pre-wrap;
}
.repost-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
  flex-wrap: wrap;
}

/* Notifications */
.notif-panel {
  position: fixed !important;
  top: calc(var(--nav-h) + 10px) !important;
  right: 18px !important;
  width: min(390px, calc(100vw - 24px)) !important;
  max-height: min(470px, calc(100vh - var(--nav-h) - 34px)) !important;
  overflow: hidden !important;
  border: 1px solid rgba(16, 35, 49, .10) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.98) !important;
  box-shadow: 0 24px 70px rgba(16,35,49,.18) !important;
}
.notif-panel.open {
  display: flex !important;
  flex-direction: column;
}
.notif-panel-header {
  padding: 14px 16px !important;
  border-bottom: 1px solid var(--border) !important;
  gap: 12px;
}
.notif-panel-header strong {
  font-size: 15px;
  font-weight: 850;
  color: var(--text);
}
.notif-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  margin-left: 7px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--red-dz);
  color: #fff;
  font-size: 11px;
  font-weight: 850;
}
.notif-mark-btn {
  border: 1px solid var(--border);
  background: var(--cream);
  color: var(--text-muted);
  border-radius: 999px;
  padding: 8px 11px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}
.notif-mark-btn:hover {
  color: var(--teal);
  border-color: rgba(15,110,86,.22);
  background: var(--teal-pale);
}
.notif-panel-list {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
}
.notif-item {
  position: relative;
  display: grid !important;
  grid-template-columns: 38px 1fr auto;
  align-items: flex-start;
  gap: 10px !important;
  padding: 12px 14px !important;
  border-bottom: 1px solid rgba(16,35,49,.07) !important;
  background: #fff;
}
.notif-item:hover {
  background: rgba(15,110,86,.055) !important;
}
.notif-item.unread {
  background: linear-gradient(90deg, rgba(15,110,86,.095), rgba(255,255,255,.98)) !important;
}
.notif-avatar {
  width: 38px;
  height: 38px;
  border-radius: 14px;
  overflow: hidden;
  background: var(--teal-pale);
  color: var(--teal);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  font-size: 15px;
  font-weight: 900;
}
.notif-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.notif-avatar-icon {
  border: 1px solid rgba(15,110,86,.12);
}
.notif-content {
  min-width: 0;
}
.notif-text {
  font-size: 13.5px !important;
  line-height: 1.38 !important;
  font-weight: 650;
  color: var(--text);
}
.notif-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 5px;
  color: var(--text-muted);
  font-size: 11.5px;
  font-weight: 650;
}
.notif-meta span + span::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--border-md);
  vertical-align: middle;
}
.notif-unread-dot {
  width: 8px;
  height: 8px;
  margin-top: 6px;
  border-radius: 50%;
  background: var(--red-dz);
  box-shadow: 0 0 0 4px rgba(224,75,87,.10);
}
.notif-panel-footer {
  flex: 0 0 auto;
  padding: 11px 14px;
  background: var(--cream);
  border-top: 1px solid var(--border);
  text-align: center;
}
.notif-panel-footer a {
  color: var(--teal);
  font-size: 13px;
  font-weight: 850;
  text-decoration: none;
}
.notif-empty {
  padding: 34px 18px;
  text-align: center;
  color: var(--text-muted);
}
.notif-empty span {
  display: block;
  font-size: 28px;
  margin-bottom: 8px;
}
.notif-empty strong {
  display: block;
  color: var(--text);
  font-size: 14px;
  margin-bottom: 3px;
}
.notif-empty small {
  font-size: 12px;
}

.notifications-page {
  background: linear-gradient(180deg, #f5f9ff 0%, #f9fbfd 45%, #fff 100%);
}
.notifications-shell {
  width: min(940px, calc(100vw - 32px));
  margin: 0 auto 60px;
  padding-top: calc(var(--nav-h) + 34px);
}
.notifications-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin-bottom: 18px;
}
.notifications-title {
  font-size: 28px;
  line-height: 1.15;
  font-weight: 900;
  color: var(--text);
}
.notifications-subtitle {
  margin-top: 6px;
  color: var(--text-muted);
  font-size: 14px;
  font-weight: 650;
}
.notifications-card {
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(16,35,49,.09);
  border-radius: 20px;
  box-shadow: 0 18px 54px rgba(16,35,49,.08);
  overflow: hidden;
}
.notifications-toolbar {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}
.notifications-filter {
  display: inline-flex;
  gap: 6px;
  padding: 4px;
  border-radius: 999px;
  background: var(--cream);
  border: 1px solid var(--border);
}
.notifications-filter button {
  border: 0;
  border-radius: 999px;
  padding: 8px 13px;
  background: transparent;
  color: var(--text-muted);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.notifications-filter button.active {
  background: #fff;
  color: var(--teal);
  box-shadow: 0 6px 18px rgba(16,35,49,.08);
}
.notifications-list .notif-item {
  grid-template-columns: 44px 1fr auto;
  padding: 16px 18px !important;
}
.notifications-list .notif-avatar {
  width: 44px;
  height: 44px;
  border-radius: 16px;
}
.notifications-list .notif-text {
  font-size: 14px !important;
}
@media (max-width: 640px) {
  .notif-panel {
    right: 12px !important;
    max-height: min(430px, calc(100vh - var(--nav-h) - 42px)) !important;
  }
  .notifications-head,
  .notifications-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Agenda */
.agenda-page {
  background:
    radial-gradient(circle at 8% 18%, rgba(15,110,86,.08), transparent 24%),
    radial-gradient(circle at 92% 22%, rgba(47,111,237,.10), transparent 28%),
    linear-gradient(180deg, #eef6fb 0%, #f7fafc 50%, #eef4f6 100%);
}
.agenda-shell {
  width: min(1220px, calc(100% - 32px));
  margin: 0 auto;
  padding: 28px 0 60px;
}
.agenda-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
  padding: 28px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 86% 0%, rgba(255,255,255,.20), transparent 28%),
    linear-gradient(135deg, #0f6e56, #0f8f8c 52%, #2f6fed);
  color: #fff;
  box-shadow: 0 22px 54px rgba(16,35,49,.13);
}
.agenda-head h1 {
  margin: 6px 0 8px;
  color: #fff;
  font-size: clamp(28px, 4vw, 42px);
  letter-spacing: 0;
}
.agenda-head p {
  max-width: 680px;
  margin: 0;
  color: rgba(255,255,255,.86);
  font-weight: 650;
}
.agenda-toolbar {
  display: grid;
  grid-template-columns: auto minmax(260px, 1fr) 190px;
  gap: 12px;
  align-items: center;
  margin: 18px 0;
  padding: 14px;
  border-radius: 24px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(83,114,131,.12);
  box-shadow: 0 14px 34px rgba(16,35,49,.06);
}
.agenda-toolbar .search-bar {
  margin: 0;
  width: 100%;
  max-width: none;
}
.agenda-view-switch {
  display: inline-flex;
  gap: 6px;
  padding: 6px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(83,114,131,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 8px 20px rgba(16,35,49,.06);
}
.agenda-view-switch button {
  border: 0;
  min-width: 92px;
  border-radius: 14px;
  padding: 10px 14px;
  background: transparent;
  color: var(--text);
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}
.agenda-view-switch button.active {
  background: linear-gradient(135deg, #0f8f8c, #2f6fed);
  color: #fff;
  box-shadow: 0 10px 22px rgba(47,111,237,.18);
}
.agenda-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 18px;
  align-items: start;
}
.agenda-main-card,
.agenda-side-card {
  border-radius: 24px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(83,114,131,.12);
  box-shadow: 0 16px 42px rgba(16,35,49,.07);
}
.agenda-main-card {
  overflow: hidden;
}
.agenda-calendar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--border);
}
.agenda-calendar-head h2 {
  margin: 0;
  color: var(--text);
  font-size: 21px;
  text-transform: capitalize;
}
.agenda-calendar-head p {
  margin: 3px 0 0;
  color: var(--text-muted);
  font-size: 13px;
  font-weight: 650;
}
.agenda-nav-btn {
  width: 38px;
  height: 38px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fff;
  color: var(--text);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
.agenda-calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  background: var(--border);
  gap: 1px;
}
.agenda-day-name,
.agenda-day {
  background: rgba(255,255,255,.98);
}
.agenda-day-name {
  padding: 10px;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 900;
  text-align: center;
  text-transform: uppercase;
}
.agenda-day {
  min-height: 118px;
  padding: 10px;
}
.agenda-day.muted {
  background: rgba(248,250,252,.72);
  color: var(--text-light);
}
.agenda-day.today {
  box-shadow: inset 0 0 0 2px rgba(15,110,86,.22);
}
.agenda-day-number {
  font-size: 12px;
  font-weight: 900;
  color: var(--text);
  margin-bottom: 7px;
}
.agenda-day-events {
  display: grid;
  gap: 5px;
}
.agenda-day-events button {
  width: 100%;
  border: 0;
  border-radius: 8px;
  padding: 5px 7px;
  background: rgba(15,110,86,.10);
  color: var(--teal);
  font-size: 11px;
  font-weight: 800;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.agenda-day-events small {
  color: var(--text-muted);
  font-size: 10px;
  font-weight: 800;
}
.agenda-list {
  display: grid;
  gap: 12px;
  padding: 16px;
}
.agenda-event-card {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  gap: 14px;
  padding: 14px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(83,114,131,.12);
}
.agenda-event-card.compact {
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 10px;
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
.agenda-event-card.compact:last-child {
  border-bottom: 0;
}
.agenda-event-card.compact .agenda-event-date {
  min-height: 58px;
  border-radius: 14px;
}
.agenda-event-card.compact .agenda-event-date strong {
  font-size: 18px;
}
.agenda-event-card.compact .agenda-event-date span {
  font-size: 9px;
  text-align: center;
}
.agenda-event-card.compact .agenda-event-body h3 {
  font-size: 14px;
  margin: 5px 0 3px;
}
.agenda-event-card.compact .agenda-event-actions {
  margin-top: 8px;
}
.agenda-event-card.compact .agenda-event-actions .btn-primary {
  display: none;
}
.agenda-event-card.compact .agenda-event-actions .btn {
  min-height: 30px;
  padding: 6px 10px;
}
.agenda-event-date {
  display: grid;
  place-items: center;
  align-content: center;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(15,110,86,.10), rgba(47,111,237,.10));
  color: var(--teal);
  min-height: 64px;
}
.agenda-event-date strong {
  font-size: 22px;
  line-height: 1;
}
.agenda-event-date span {
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
}
.agenda-event-topline {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 800;
}
.agenda-type-pill {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--teal-pale);
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
}
.agenda-event-body h3 {
  margin: 7px 0 4px;
  color: var(--text);
  font-size: 16px;
  line-height: 1.25;
}
.agenda-event-body p {
  margin: 0;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.45;
}
.agenda-event-desc {
  margin-top: 8px !important;
}
.agenda-event-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.agenda-side {
  display: grid;
  gap: 14px;
}
.agenda-side-card {
  padding: 18px;
}
.agenda-side-card h3 {
  margin: 6px 0 8px;
  color: var(--text);
}
.agenda-side-card p {
  margin: 0 0 12px;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.55;
}
.agenda-empty {
  padding: 28px;
  border-radius: 18px;
  background: rgba(248,250,252,.8);
  color: var(--text-muted);
  text-align: center;
  font-weight: 700;
}
.agenda-empty.small {
  padding: 16px 0;
  text-align: left;
  background: transparent;
}
.agenda-details-modal {
  max-width: 560px;
}
.agenda-details-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.agenda-details-grid div {
  padding: 12px;
  border-radius: 14px;
  background: var(--cream);
  border: 1px solid var(--border);
}
.agenda-details-grid span {
  display: block;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 850;
  margin-bottom: 4px;
}
.agenda-details-grid strong {
  color: var(--text);
  font-size: 13px;
}
.agenda-details-desc {
  margin: 0 0 14px;
  color: var(--text-muted);
  line-height: 1.6;
  white-space: pre-wrap;
}
@media (max-width: 980px) {
  .agenda-toolbar,
  .agenda-layout {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .agenda-shell {
    width: min(100% - 20px, 1220px);
  }
  .agenda-head {
    align-items: stretch;
    flex-direction: column;
  }
  .agenda-calendar {
    display: block !important;
    background: transparent;
  }
  .agenda-day-name,
  .agenda-day.muted {
    display: none;
  }
  .agenda-day {
    min-height: 0;
    margin-bottom: 8px;
    border: 1px solid var(--border);
    border-radius: 16px;
  }
}

.academy-register-box,
.academy-registrants-box {
  max-width: 520px;
  width: 100%;
}

.academy-register-hint {
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.5;
  margin-bottom: 14px;
}

.academy-register-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.academy-register-grid label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 700;
}

.academy-register-grid input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--border-md);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  font: inherit;
  color: var(--text);
  background: var(--white);
  outline: none;
}

.academy-register-grid input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(91, 101, 255, .12);
}

.academy-register-wide {
  grid-column: 1 / -1;
}

.academy-registrants-list {
  display: grid;
  gap: 10px;
  max-height: 62vh;
  overflow: auto;
}

.academy-registrant-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.academy-registrant-name {
  font-weight: 800;
  color: var(--text);
}

.academy-registrant-meta,
.academy-registrant-phone,
.academy-registrant-date {
  color: var(--text-muted);
  font-size: 12px;
  margin-top: 3px;
}

.academy-manage-inscriptions {
  border-color: rgba(15, 110, 86, .24);
  color: var(--teal);
}

@media (max-width: 640px) {
  .academy-register-grid {
    grid-template-columns: 1fr;
  }
}
.platform-module-off .left-sidebar,
.platform-module-off .right-sidebar,
.platform-module-off .page-wrapper,
.platform-module-off footer {
  display:none !important;
}

.platform-unavailable {
  min-height:calc(100vh - 92px);
  display:grid;
  place-items:center;
  padding:48px 18px;
  background:
    linear-gradient(135deg, rgba(15,118,110,.10), rgba(37,99,235,.10)),
    radial-gradient(circle at 15% 20%, rgba(20,184,166,.16), transparent 28%),
    radial-gradient(circle at 80% 15%, rgba(99,102,241,.14), transparent 30%),
    #f8fbff;
}

.platform-unavailable-card {
  width:min(620px,100%);
  text-align:center;
  padding:42px 34px;
  border:1px solid rgba(15,118,110,.18);
  border-radius:24px;
  background:rgba(255,255,255,.88);
  box-shadow:0 28px 80px rgba(15,23,42,.12);
  backdrop-filter:blur(14px);
}

.platform-unavailable-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:0 14px;
  border-radius:999px;
  background:#dff7f2;
  color:#0f766e;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.platform-unavailable-card h1 {
  margin:18px 0 10px;
  color:#0f172a;
  font-size:clamp(32px,4vw,54px);
  line-height:1;
  letter-spacing:0;
}

.platform-unavailable-card p {
  margin:0 auto 24px;
  max-width:460px;
  color:#64748b;
  font-size:18px;
  line-height:1.55;
  font-weight:700;
}
