/* ============================================================
   LexJob — Feuille de style principale
   Reproduit fidèlement le design des captures d'écran fournies.
   Couleur principale : #930022 (bordeaux)
   Police : système (system-ui / sans-serif)
   ============================================================ */

/* ── Variables CSS ─────────────────────────────────────────── */
:root {
  --color-primary:       #930022;
  --color-primary-dark:  #7a001c;
  --color-primary-light: #b5003a;
  --color-green:         #28a745;
  --color-green-dark:    #1e7e34;
  --color-text:          #333333;
  --color-text-light:    #666666;
  --color-text-muted:    #999999;
  --color-bg:            #ffffff;
  --color-bg-light:      #f8f8f8;
  --color-bg-grey:       #f2f2f2;
  --color-border:        #e0e0e0;
  --color-border-dark:   #cccccc;
  --color-success:       #28a745;
  --color-error:         #dc3545;
  --color-warning:       #ffc107;
  --font-family:         'Segoe UI', system-ui, -apple-system, sans-serif;
  --font-size-base:      15px;
  --line-height:         1.6;
  --radius:              6px;
  --radius-lg:           10px;
  --shadow-sm:           0 1px 3px rgba(0,0,0,.08);
  --shadow:              0 2px 8px rgba(0,0,0,.12);
  --shadow-lg:           0 4px 20px rgba(0,0,0,.15);
  --transition:          0.2s ease;
  --container-max:       1160px;
  --container-narrow:    720px;
}

/* ── Reset & Base ───────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: var(--font-size-base); scroll-behavior: smooth; overflow-x: hidden; }
body {
  font-family: var(--font-family);
  color: var(--color-text);
  background: var(--color-bg);
  line-height: var(--line-height);
  -webkit-font-smoothing: antialiased;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  overflow-x: hidden;
}
.site-main { flex: 1; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--color-primary); }
img { max-width: 100%; height: auto; display: block; }
button { cursor: pointer; font-family: inherit; }
ul { list-style: none; }
svg { flex-shrink: 0; }
input, select, textarea {
  font-family: inherit;
  font-size: inherit;
}

/* ── Utilitaires ────────────────────────────────────────────── */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 20px;
}
.container--narrow { max-width: var(--container-narrow); }
.hidden { display: none !important; }
.screen-reader-text {
  position: absolute; width: 1px; height: 1px;
  padding: 0; overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
.required { color: var(--color-primary); }
.form-help { font-size: 13px; color: var(--color-text-muted); margin-top: 3px; }
.form-link { color: var(--color-primary); text-decoration: underline; }

/* ── Boutons ────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 6px;
  padding: 10px 20px;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  border: 2px solid transparent;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
  white-space: nowrap;
  cursor: pointer;
}
.btn--primary {
  background: var(--color-primary);
  color: white;
  border-color: var(--color-primary);
}
.btn--primary:hover {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  color: white;
}
.btn--outline {
  background: transparent;
  color: var(--color-primary);
  border-color: var(--color-primary);
}
.btn--outline:hover {
  background: var(--color-primary);
  color: white;
}
.btn--ghost {
  background: transparent;
  color: var(--color-text-light);
  border-color: var(--color-border);
}
.btn--ghost:hover { background: var(--color-bg-light); }
.btn--publish {
  background: var(--color-green);
  color: white;
  border-color: var(--color-green);
  padding: 9px 16px;
}
.btn--publish:hover {
  background: var(--color-green-dark);
  border-color: var(--color-green-dark);
  color: white;
}
.btn--apply {
  background: var(--color-primary);
  color: white;
  border-color: var(--color-primary);
  justify-content: center;
  padding: 12px 20px;
  font-size: 15px;
}
.btn--apply:hover { background: var(--color-primary-dark); color: white; }
.btn--danger { background: var(--color-error); color: white; border-color: var(--color-error); }
.btn--danger:hover { background: #bd2130; color: white; }
.btn--sm { padding: 6px 12px; font-size: 13px; }
.btn--full { width: 100%; justify-content: center; }
.btn--lg { padding: 14px 24px; font-size: 16px; }
.btn-link {
  background: none;
  border: none;
  color: var(--color-primary);
  font-size: inherit;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
}
.btn-link--danger { color: var(--color-error); }
.signal-btn {
  background: none;
  border: none;
  color: var(--color-text-muted);
  font-size: 12px;
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
  cursor: pointer;
}
.signal-btn:hover { color: var(--color-error); }

/* ── Modal signalement ──────────────────────────────────────── */
.signal-modal__box { max-width: 480px; padding: 28px; }
.signal-modal__header {
  display: flex; align-items: flex-start; gap: 14px; margin-bottom: 20px;
}
.signal-modal__icon {
  width: 44px; height: 44px; border-radius: 50%; flex-shrink: 0;
  background: #fff5f5; display: flex; align-items: center; justify-content: center;
  color: var(--color-error);
}
.signal-modal__title { font-size: 17px; font-weight: 700; margin: 0 0 3px; }
.signal-modal__subtitle { font-size: 13px; color: var(--color-text-muted); margin: 0; }
.signal-modal__label { font-size: 13px; font-weight: 600; margin-bottom: 10px; display: block; }
.signal-options { display: flex; flex-direction: column; gap: 7px; }
.signal-option {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  border: 1.5px solid var(--color-border); border-radius: var(--radius);
  cursor: pointer; font-size: 13.5px;
  transition: border-color .15s, background .15s;
}
.signal-option:hover { border-color: var(--color-primary); background: #fff8f9; }
.signal-option:has(input:checked) { border-color: var(--color-primary); background: #fff0f3; }
.signal-option input[type="radio"] { accent-color: var(--color-primary); flex-shrink: 0; }
.signal-option__icon { font-size: 16px; flex-shrink: 0; }
.signal-option__label { flex: 1; }
.signal-modal__form { }
.signal-modal__textarea {
  width: 100%; border: 1.5px solid var(--color-border); border-radius: var(--radius);
  padding: 10px 12px; font-size: 13.5px; font-family: var(--font-family);
  resize: vertical; outline: none; transition: border-color var(--transition);
  min-height: 80px;
}
.signal-modal__textarea:focus { border-color: var(--color-primary); }

/* ── Boutons dans la table mes-annonces ─────────────────────── */
.my-listings-table .listing-actions .btn {
  padding: 4px 10px; font-size: 12px; border-width: 1.5px;
}

/* ── Header ─────────────────────────────────────────────────── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: white;
  border-bottom: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
}
/* Décale le header sous la barre d'admin WordPress */
html.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
  html.admin-bar .site-header { top: 46px; }
}
.site-header__inner {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 72px;
  min-width: 0;
}
.site-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}
.site-logo__img {
  height: 54px;
  width: auto;
  display: block;
}
.site-logo__img--footer {
  height: 40px;
  filter: brightness(0) invert(1);
}
@media (max-width: 640px) {
  .site-logo__img { height: 38px; }
  .site-logo__img--footer { height: 34px; }
}

/* Navigation */
.site-nav { flex: 1; min-width: 0; overflow: visible; }
.site-nav__list {
  display: flex;
  align-items: center;
  gap: 2px;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: nowrap;
}
.site-nav__link {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 7px 10px;
  border-radius: var(--radius);
  font-size: 15px;
  font-weight: 500;
  color: var(--color-text);
  transition: color var(--transition), background var(--transition);
  background: none;
  border: none;
  cursor: pointer;
  white-space: nowrap;
}
.site-nav__link:hover,
.site-nav__item--active .site-nav__link { color: var(--color-primary); }
.site-nav__link--login {
  color: var(--color-text-light);
  display: flex;
  align-items: center;
  gap: 6px;
}
.site-nav__link--login:hover { color: var(--color-primary); }

.site-nav__link--exclusive {
  color: var(--color-primary);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}
.site-nav__link--exclusive:hover { opacity: 0.8; }
.site-nav__item--exclusive { border-left: 2px solid var(--color-primary); padding-left: 12px; margin-left: 4px; }

/* Dropdown */
.site-nav__item--dropdown,
.user-menu { position: relative; }
.dropdown-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  min-width: 210px;
  z-index: 200;
  padding: 6px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity var(--transition), visibility var(--transition), transform var(--transition);
}
.dropdown-menu--right { left: auto; right: 0; }
/* Ouverture au hover (desktop) et via classe .is-open (JS/mobile) */
.site-nav__item--dropdown:hover > .dropdown-menu,
.user-menu:hover > .dropdown-menu,
.site-nav__item--dropdown.is-open > .dropdown-menu,
.user-menu.is-open > .dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.dropdown-menu__link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  font-size: 14px;
  color: var(--color-text);
  transition: background var(--transition);
  white-space: nowrap;
}
.dropdown-menu__link:hover { background: var(--color-bg-light); color: var(--color-primary); }
.dropdown-menu__link--danger { color: var(--color-error); }
.dropdown-menu__link--danger:hover { background: #fff5f5; color: var(--color-error); }
.dropdown-menu__separator {
  height: 1px;
  background: var(--color-border);
  margin: 4px 0;
}

/* Actions header */
.site-header__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.user-menu__trigger {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: none;
  border: none;
  font-size: 15px;
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer;
  border-radius: var(--radius);
}
.user-menu__trigger:hover { color: var(--color-primary); }
.user-menu__avatar {
  border-radius: 50%;
  border: 2px solid var(--color-border);
  object-fit: cover;
}
.user-menu__avatar-wrap {
  position: relative;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
}
.user-menu__avatar-wrap .user-menu__avatar {
  width: 28px;
  height: 28px;
  display: block;
}
.user-menu__notif {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 20px;
  background: var(--color-primary);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  border: 1.5px solid #fff;
  pointer-events: none;
}

/* Mobile toggle */
.mobile-menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 28px;
  height: 20px;
  background: none;
  border: none;
  cursor: pointer;
  margin-left: auto;
}
.mobile-menu-toggle__bar {
  display: block;
  height: 2px;
  background: var(--color-text);
  border-radius: 2px;
  transition: transform var(--transition), opacity var(--transition);
}

/* ── Hero ───────────────────────────────────────────────────── */
.hero {
  position: relative;
  min-height: 400px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-bottom: 48px;
  background: #1a1a1a; /* fond de secours si image pas encore chargée */
  /* pas d'isolation ici : évite de couper le z-index du header sticky */
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      to bottom,
      rgba(20,10,10,0.55) 0%,
      rgba(20,10,10,0.70) 100%
    ),
    url('https://lexjob.fr/wp-content/uploads/2026/05/cropped-Mener-lentretien-scaled-1-e1759525385202.jpg') center 30% / cover no-repeat;
  z-index: 0;
}
.hero__overlay { display: none; }
.hero__content {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 60px 20px 32px;
  color: white;
}
.hero__title {
  font-size: clamp(28px, 5vw, 52px);
  font-weight: 800;
  text-shadow: 0 2px 12px rgba(0,0,0,.5);
  margin-bottom: 14px;
  line-height: 1.15;
  letter-spacing: -.01em;
}
.hero__subtitle {
  font-size: clamp(15px, 2vw, 18px);
  opacity: 0.88;
  text-shadow: 0 1px 6px rgba(0,0,0,.4);
}

/* ── Barre de recherche (en bas du hero) ───────────────────── */
.hero__search {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 28px 20px 0;
  display: flex;
  justify-content: center;
}
.hero__search-wrap {
  position: relative;
  width: 100%;
  max-width: 860px;
}
.hero__search-wrap .search-bar {
  width: 100%;
  max-width: 100%;
}
/* Suggestions hero : positionnées sous la barre de recherche entière */
.hero-suggestions {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  width: 46%;
  z-index: 300;
  border-top: 1px solid var(--color-border);
  border-radius: 0 0 var(--radius) var(--radius);
}
.search-bar {
  display: flex;
  align-items: stretch;
  gap: 0;
  background: white;
  border-radius: 12px;
  box-shadow: 0 8px 40px rgba(0,0,0,.22);
  overflow: hidden;
  max-width: 860px;
  width: 100%;
}
.search-bar__field {
  display: flex;
  align-items: center;
  flex: 1;
  border-right: 1px solid var(--color-border);
  padding: 0 12px;
  position: relative;
}
.search-bar__field--location { min-width: 220px; }
.search-bar__field--category { min-width: 200px; }
@media (max-width: 768px) {
  .search-bar__field--location,
  .search-bar__field--category { min-width: 0; width: 100%; }
}
.search-bar__icon {
  color: var(--color-text-muted);
  flex-shrink: 0;
  margin-right: 8px;
}
.search-bar input {
  border: none;
  outline: none;
  width: 100%;
  padding: 14px 0;
  font-size: 14px;
  color: var(--color-text);
}
.search-bar input::placeholder { color: var(--color-text-muted); }
.search-bar select {
  border: none;
  outline: none;
  width: 100%;
  padding: 14px 4px;
  font-size: 14px;
  color: var(--color-text);
  background: transparent;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.search-bar__geolocate {
  background: none;
  border: none;
  color: var(--color-text-muted);
  padding: 4px;
  cursor: pointer;
  flex-shrink: 0;
}
.search-bar__geolocate:hover { color: var(--color-primary); }
.search-bar .btn { border-radius: 0; border: none; padding: 14px 24px; }
.search-bar--archive {
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--color-border);
}

/* Barre archive */
.archive-search {
  background: white;
  border-bottom: 1px solid var(--color-border);
  padding: 16px 0;
}

/* ── Sections ────────────────────────────────────────────────── */
.section {
  padding: 60px 0;
}
.section--recent { background: var(--color-bg); }
.section--alert  { background: var(--color-bg-light); padding: 36px 0; }
.section__title {
  text-align: center;
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 12px;
}
.section__divider {
  width: 40px;
  height: 3px;
  background: var(--color-primary);
  margin: 0 auto 32px;
  border-radius: 2px;
}
.section__cta {
  text-align: center;
  margin-top: 36px;
}

/* ── Grille d'annonces ──────────────────────────────────────── */
.listings-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
}
.listings-grid--archive {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

/* ── Carte d'annonce ────────────────────────────────────────── */
.listing-card {
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: box-shadow var(--transition), transform var(--transition);
}
.listing-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}
.listing-card__link { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.listing-card__image {
  height: 160px;
  overflow: hidden;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.listing-card__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 16px;
}
.listing-card__placeholder {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  font-weight: 700;
  color: white;
}
.listing-card__body {
  padding: 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.listing-card__title {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-text);
  margin: 4px 0;
}
.listing-card:hover .listing-card__title { color: var(--color-primary); }
.listing-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
}
.listing-card__meta-item {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: var(--color-text-light);
}
.listing-card__meta-item--domain { flex-basis: 100%; }

/* ── Badges styled (nouveau style) ───────────────────────── */
.listing-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 8px 0 6px;
}
.lc-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #f4f5f7;
  border: 1px solid #e8eaed;
  border-radius: 20px;
  padding: 3px 10px 3px 7px;
  font-size: 12px;
  font-weight: 500;
  color: #3d3d3d;
  line-height: 1.4;
  white-space: nowrap;
}
.lc-badge svg { color: var(--color-primary); }
.lc-badge--full { flex-shrink: 1; min-width: 0; white-space: normal; }
.lc-badge--full span { white-space: normal; word-break: break-word; }
.lc-badge--date { color: #7a4200; background: #fff8ee; border-color: #ffe0aa; }
.lc-badge--date svg { color: #e07b00; }
.listing-card__location {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: var(--color-text-muted);
}
.listing-card__footer {
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid var(--color-bg-grey);
}
.listing-card__date {
  font-size: 12px;
  color: var(--color-text-muted);
}

/* ── Badges de catégorie ────────────────────────────────────── */
.badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
.badge--stages-juridiques  { background: #e8f4f8; color: #1a6a8a; }
.badge--alternances         { background: #eaf4e8; color: #1a6a3a; }
.badge--emplois-juridiques  { background: #f8eee8; color: #8a3a1a; }
.badge--default             { background: var(--color-bg-grey); color: var(--color-text-light); }

/* ── CTA Banner ─────────────────────────────────────────────── */
.cta-banner {
  background: var(--color-primary);
  padding: 18px 0;
}
.cta-banner .container { text-align: center; }
.cta-banner__link {
  color: white;
  font-size: 15px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}
.cta-banner__link:hover { opacity: 0.9; color: white; }

/* ── Formulaire d'alerte ────────────────────────────────────── */
.alert-promo {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 16px;
}
.alert-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 20px 24px;
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
}
.alert-form__full { grid-column: 1 / -1; }
.alert-form__types {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.alert-form__types label { display: flex; align-items: center; gap: 6px; font-size: 14px; cursor: pointer; }
.alert-form__submit { grid-column: 1 / -1; }
.alert-form .form-group { margin: 0; }
.alert-form select,
.alert-form input[type="email"] {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  font-size: 14px;
  background: var(--color-bg-light);
}
.alert-form .lex-type-error { grid-column: 1 / -1; font-size: 13px; color: #c62828; }

/* ── Layout Archive ─────────────────────────────────────────── */
.archive-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 32px;
  padding-top: 32px;
  padding-bottom: 48px;
  align-items: start;
}
.archive-sidebar {
  position: sticky;
  top: 80px;
}
.filter-group {
  margin-bottom: 24px;
}
.filter-group__title {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--color-text-light);
  margin-bottom: 10px;
}
.filter-group__subheading {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
  margin: 12px 0 6px;
}
.filter-group__sub-item { padding-left: 8px; }
.filter-map { margin-top: 20px; }
.archive-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.archive-header__title {
  font-size: 20px;
  font-weight: 700;
}
.archive-header__meta { display: flex; align-items: center; gap: 12px; }
.archive-count { font-size: 13px; color: var(--color-text-muted); }
.sort-form select {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 6px 10px;
  font-size: 13px;
  background: white;
}

/* Aucun résultat */
.empty-results-wrap { padding: 24px 0 40px; }
.empty-results-hero {
  text-align: center;
  padding: 48px 24px 36px;
  background: var(--color-bg-light);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  margin-bottom: 28px;
}
.empty-results-hero__icon {
  width: 64px; height: 64px;
  background: rgba(147,0,34,.08);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 20px;
  color: var(--color-primary);
}
.empty-results-hero__title {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 10px;
  color: var(--color-text);
}
.empty-results-hero__desc {
  color: var(--color-text-light);
  font-size: 15px;
  max-width: 480px;
  margin: 0 auto;
}

/* ── Alert card dans empty-results ─────────────────────────── */
.empty-results-wrap .alert-card {
  display: block;
  padding: 24px 28px;
}
.alert-card__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--color-border);
  font-size: 15px;
  font-weight: 600;
}
.empty-results-wrap .alert-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}
.empty-results-wrap .alert-form .form-row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 12px;
}
.empty-results-wrap .alert-form .form-row select,
.empty-results-wrap .alert-form .form-row > * {
  width: 100%;
  min-width: 0;
}
/* ── Page Mes alertes ───────────────────────────────────────── */
.alerts-empty {
  background: #f9f9fb;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 48px 32px;
  text-align: center;
  color: #aaa;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.alerts-empty p { margin: 0; font-size: 15px; color: #888; }
.alerts-list { display: flex; flex-direction: column; gap: 12px; }
.alert-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  box-shadow: var(--shadow-sm);
  transition: box-shadow .15s;
}
.alert-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.alert-card__body { flex: 1; min-width: 0; }
.alert-card__title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.alert-card__badge {
  background: #930022;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 10px;
  border-radius: 20px;
  letter-spacing: .3px;
}
.alert-card__dept { font-size: 13px; color: #555; font-weight: 500; }
.alert-card__meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 13px; color: #666; }
.alert-card__date { color: #aaa; margin-left: auto; }
.alert-card__actions { flex-shrink: 0; }
.alert-card__delete {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1px solid #e5e5e7;
  border-radius: 8px;
  padding: 7px 14px;
  font-size: 13px;
  color: #c62828;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.alert-card__delete:hover { background: #fff1f1; border-color: #c62828; }
.no-results { text-align: center; color: var(--color-text-muted); padding: 20px 0; }

/* ── Page single annonce ────────────────────────────────────── */
.breadcrumb {
  background: var(--color-bg-light);
  border-bottom: 1px solid var(--color-border);
  padding: 10px 0;
}
.breadcrumb nav {
  font-size: 13px;
  color: var(--color-text-muted);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.breadcrumb nav a { color: var(--color-primary); }
.breadcrumb nav a:hover { text-decoration: underline; }
.breadcrumb__sep { color: var(--color-border-dark); }

.single-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 32px;
  padding-top: 32px;
  padding-bottom: 48px;
  align-items: start;
}
.single-header { margin-bottom: 24px; }
.single-header__title {
  font-size: clamp(20px, 3vw, 28px);
  font-weight: 700;
  margin: 12px 0 10px;
  line-height: 1.3;
}
.single-header__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-bottom: 8px;
}
.single-meta-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 14px;
  color: var(--color-text-light);
}
.single-meta-item--primary { color: var(--color-text); font-weight: 500; }
.single-header__location {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 14px;
  color: var(--color-text-muted);
  margin-bottom: 6px;
}
.single-header__added { font-size: 12px; color: var(--color-text-muted); }
.single-header__admin-actions { display: flex; gap: 8px; align-items: center; margin-top: 12px; }
.admin-badge {
  display: inline-block;
  background: var(--color-bg-grey);
  border: 1px solid var(--color-border);
  color: var(--color-text-light);
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 20px;
}

/* Onglets */
.tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--color-border);
  margin-bottom: 24px;
}
.tab {
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text-light);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  transition: color var(--transition), border-color var(--transition);
  white-space: nowrap;
}
.tab:hover { color: var(--color-primary); }
.tab--active { color: var(--color-primary); border-bottom-color: var(--color-primary); }

.tab-content { display: none; }
.tab-content--active { display: block; }

.date-limite-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff8e1;
  border: 1px solid #ffe082;
  color: #7a5c00;
  padding: 8px 14px;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 20px;
}
.single-section { margin-bottom: 24px; overflow-wrap: break-word; word-break: break-word; }
.single-section__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--color-primary);
}
.single-section__subtitle {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 8px;
}
.single-section__content { font-size: 14px; line-height: 1.7; color: var(--color-text); }
.conditions-grid { display: flex; flex-direction: column; gap: 10px; }
.condition-item { display: flex; gap: 12px; font-size: 14px; }
.condition-item__label { font-weight: 600; min-width: 140px; color: var(--color-text-light); }
.condition-item__value { color: var(--color-text); }

/* Sidebar single */
.single-sidebar { position: sticky; top: 80px; }
.single-sidebar__apply { background: white; border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 16px; margin-bottom: 16px; }
.single-sidebar__signal { text-align: center; margin-bottom: 8px; }
.applied-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--color-success);
  font-weight: 600;
  font-size: 14px;
  padding: 12px;
  background: #f0fff4;
  border: 1px solid #b2dfdb;
  border-radius: var(--radius);
}
.single-sidebar__map { margin-bottom: 16px; }
.employer-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex; flex-direction: column; gap: 0;
}
/* Identité : avatar + nom — lien cliquable sur toute la zone */
.employer-card__identity-link {
  display: flex; align-items: center; gap: 14px;
  padding: 18px 18px 14px;
  border-bottom: 1px solid var(--color-bg-grey);
  text-decoration: none; color: inherit;
  transition: background var(--transition);
}
.employer-card__identity-link:hover { background: var(--color-bg-grey); }
.employer-card__avatar {
  width: 56px; height: 56px; border-radius: 50%; object-fit: cover;
  flex-shrink: 0; border: 2px solid var(--color-bg-grey);
}
.employer-card__identity-info { min-width: 0; flex: 1; }
.employer-card__name {
  font-size: 15px; font-weight: 700;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.employer-card__since-inline {
  display: block; font-size: 11.5px; color: var(--color-text-muted); margin-top: 3px;
}
.employer-card__identity-arrow {
  flex-shrink: 0; color: var(--color-text-muted); opacity: .5;
  transition: opacity var(--transition), transform var(--transition);
}
.employer-card__identity-link:hover .employer-card__identity-arrow {
  opacity: 1; transform: translateX(2px);
}
/* Bio */
.employer-card__bio {
  padding: 12px 18px 0; font-size: 13px; color: var(--color-text-light);
  line-height: 1.5;
}
/* Stats */
.employer-card__stats {
  display: flex; flex-direction: column; gap: 6px;
  padding: 12px 18px;
}
.employer-card__stat {
  display: flex; align-items: center; gap: 7px;
  font-size: 12.5px; color: var(--color-text-muted);
}
.employer-card__stat svg { flex-shrink: 0; color: var(--color-primary); opacity: .7; }
/* Bouton voir la page */
.employer-card__cta {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin: 0 18px 12px;
  padding: 10px 16px;
  background: var(--color-primary); color: #fff;
  border-radius: var(--radius); font-size: 13.5px; font-weight: 600;
  text-decoration: none;
  transition: background var(--transition), transform .1s;
}
.employer-card__cta:hover { background: var(--color-primary-dark, #7b0024); color: #fff; }
.employer-card__cta:active { transform: scale(.98); }
/* Lien LinkedIn */
.employer-card__linkedin {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin: 0 18px 16px;
  padding: 8px 16px;
  border: 1.5px solid #0077b5; color: #0077b5;
  border-radius: var(--radius); font-size: 13px; font-weight: 500;
  text-decoration: none;
  transition: background var(--transition), color var(--transition);
}
.employer-card__linkedin:hover { background: #0077b5; color: #fff; }

/* ── Formulaires globaux ────────────────────────────────────── */
.form-group { display: flex; flex-direction: column; gap: 5px; }
.form-group label {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="url"],
.form-group input[type="date"],
.form-group input[type="password"],
.form-group textarea,
.form-group select {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 10px 12px;
  font-size: 14px;
  transition: border-color var(--transition);
  background: white;
  color: var(--color-text);
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(147,0,34,.08);
}
.form-group textarea { resize: vertical; min-height: 80px; }
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.checkbox-group { display: flex; flex-direction: column; gap: 6px; }
.checkbox-group--horizontal { flex-direction: row; gap: 16px; flex-wrap: wrap; }
.checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  cursor: pointer;
  user-select: none;
}
.checkbox-label input { margin: 0; accent-color: var(--color-primary); }
.input-password { position: relative; }
.input-password input { padding-right: 42px; width: 100%; }
.toggle-password {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--color-text-muted);
  cursor: pointer;
}
.toggle-password:hover { color: var(--color-text); }
/* ── Indicateurs de robustesse du mot de passe ── */
.pwd-strength { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 3px; }
.pwd-rule {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 11px 4px 8px; border-radius: 99px;
  font-size: 11.5px; font-weight: 500; line-height: 1.3;
  background: #f3f4f6; color: #9ca3af; border: 1.5px solid #e5e7eb;
  transition: background .2s, color .2s, border-color .2s;
  user-select: none;
}
.pwd-rule .r-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: currentColor; flex-shrink: 0;
  transition: background .2s;
}
.pwd-rule.ok   { background: #f0fdf4; color: #16a34a; border-color: #bbf7d0; }
.pwd-rule.fail { background: #fff1f2; color: #e11d48; border-color: #fecdd3; }
@media (max-width: 480px) {
  .pwd-strength { flex-wrap: nowrap; gap: 4px; }
  .pwd-rule { font-size: 10px; padding: 3px 7px 3px 6px; gap: 3px; }
  .pwd-rule .r-dot { width: 6px; height: 6px; }
}

/* Location autocomplete */
.location-input-wrap { position: relative; }
.location-suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: white;
  border: 1px solid var(--color-border);
  border-top: none;
  border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: var(--shadow);
  z-index: 200;
  max-height: 240px;
  overflow-y: auto;
  display: none;
}
.location-suggestions.is-visible { display: block; }
.location-suggestions:not(:empty) { display: block; }
.location-suggestion-item {
  padding: 10px 12px;
  font-size: 13px;
  cursor: pointer;
  border-bottom: 1px solid var(--color-bg-grey);
}
.location-suggestion-item:hover { background: var(--color-bg-light); color: var(--color-primary); }
.location-suggestion-item:last-child { border-bottom: none; }

/* ── Formulaire de dépôt d'offre ─────────────────────────────── */
.submit-page { padding: 32px 0 60px; }
.submit-page__title { font-size: 24px; font-weight: 700; margin-bottom: 28px; }
.form-card {
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 20px;
  margin-bottom: 16px;
}
.form-card--highlight { border: 2px solid var(--color-primary); }
.form-card__label {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--color-text-light);
  margin-bottom: 10px;
  display: block;
}
.form-card input, .form-card select, .form-card textarea {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 10px 12px;
  font-size: 14px;
  width: 100%;
  background: white;
}
.form-card input[type="radio"],
.form-card input[type="checkbox"] {
  width: auto;
  padding: 0;
  border: none;
  flex-shrink: 0;
}
.form-card input:focus, .form-card select:focus, .form-card textarea:focus {
  outline: none;
  border-color: var(--color-primary);
}
.form-card textarea { min-height: 120px; resize: vertical; }
.file-upload-label {
  display: inline-block;
  cursor: pointer;
}
.file-upload-label input[type="file"] { display: none; }
.file-upload-label__text {
  display: inline-block;
  padding: 8px 16px;
  border: 1px solid var(--color-border-dark);
  border-radius: var(--radius);
  font-size: 14px;
  background: var(--color-bg-light);
  color: var(--color-text);
}
.file-upload-label:hover .file-upload-label__text { border-color: var(--color-primary); }

/* ── Zone upload CV ─────────────────────────────────────────────────────── */
.cv-current {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: #f0fdf4;
  border: 1px solid #86efac;
  border-radius: var(--radius);
  margin-bottom: 10px;
  font-size: 13px;
}
.cv-upload-zone {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border: 2px dashed var(--color-border-dark);
  border-radius: var(--radius);
  cursor: pointer;
  background: var(--color-bg-light);
  transition: border-color .18s, background .18s;
}
.cv-upload-zone:hover,
.cv-upload-zone--selected {
  border-color: var(--color-primary);
  background: #fff5f7;
}
.cv-upload-zone__icon {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-primary);
}
.cv-upload-zone--selected .cv-upload-zone__icon {
  background: #fef2f5;
  border-color: #f9a8c0;
}
.cv-upload-zone__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cv-upload-zone__main {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text);
}
.cv-upload-zone--selected .cv-upload-zone__main {
  color: var(--color-primary);
}
.cv-upload-zone__sub {
  font-size: 12px;
  color: var(--color-text-muted);
}
.diffusion-info {
  font-size: 13px;
  color: var(--color-text-light);
  background: var(--color-bg-light);
  border-radius: var(--radius);
  padding: 10px 14px;
  margin-bottom: 12px;
  line-height: 1.6;
}

/* ── Authentification ───────────────────────────────────────── */
.auth-page { padding: 48px 0 60px; }
.auth-tabs {
  display: flex;
  border-bottom: 2px solid var(--color-border);
  margin-bottom: 28px;
}
.auth-tab {
  padding: 10px 24px;
  font-size: 15px;
  font-weight: 600;
  background: none;
  border: none;
  color: var(--color-text-light);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color var(--transition), border-color var(--transition);
}
.auth-tab--active { color: var(--color-primary); border-bottom-color: var(--color-primary); }
.auth-form-wrap { display: block; margin-top: 32px; }
.auth-form-wrap.hidden { display: none !important; }
.auth-form { display: flex; flex-direction: column; gap: 16px; }
.auth-switch { text-align: center; margin-top: 20px; font-size: 14px; color: var(--color-text-light); }
.account-type-selector { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.account-type-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 20px 16px;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-lg);
  cursor: pointer;
  text-align: center;
  transition: border-color var(--transition), background var(--transition);
  font-weight: 600;
}
.account-type-option input { display: none; }
.account-type-option:hover,
.account-type-option--active { border-color: var(--color-primary); background: #fff5f7; }
.account-type-option__desc { font-size: 12px; font-weight: 400; color: var(--color-text-muted); }

/* ── Espace compte ──────────────────────────────────────────── */
.account-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 32px;
  padding: 32px 20px 60px;
}
.account-sidebar {
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  height: fit-content;
  position: sticky;
  top: 80px;
}
.account-sidebar__list { list-style: none; padding: 8px 0; }
.account-sidebar__link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  font-size: 14px;
  color: var(--color-text);
  transition: background var(--transition), color var(--transition);
}
.account-sidebar__link:hover { background: var(--color-bg-light); color: var(--color-primary); }
.account-sidebar__link--active { color: var(--color-primary); font-weight: 600; background: #fff0f3; }
.account-sidebar__link--active::before { content:''; width:3px; background:var(--color-primary); position:absolute; left:0; top:0; bottom:0; }
.account-sidebar li { position: relative; }
.account-sidebar__link--logout { color: var(--color-error); }
.account-sidebar__link--logout:hover { background: #fff5f5; }
@keyframes accountFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.account-main {
  animation: accountFadeIn .22s ease both;
}
.account-main--leaving {
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .15s ease, transform .15s ease;
  pointer-events: none;
}
.account-main__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}
.account-main__title { font-size: 22px; font-weight: 700; }

/* Settings form */
.settings-form { display: flex; flex-direction: column; gap: 20px; }
.settings-label { font-size: 13px; font-weight: 700; color: var(--color-text-light); margin-bottom: 6px; display: block; }
.settings-avatar { flex-direction: row; gap: 16px; align-items: flex-start; }

/* ── Avatar upload ─────────────────────────────────────────── */
.avatar-upload { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.avatar-upload__preview {
  position: relative;
  flex-shrink: 0;
  width: 88px;
  height: 88px;
  border-radius: 14px;
  overflow: visible;
  border: 2px solid var(--color-border);
  background: #f0f0f0;
}
.avatar-upload__preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 12px;
}
.avatar-upload__remove {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #374151;
  color: #fff;
  border: 2px solid #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: background .15s;
  z-index: 2;
}
.avatar-upload__remove svg { display: block; }
.avatar-upload__remove:hover { background: #c0392b; }
.avatar-upload__controls { display: flex; flex-direction: column; gap: 6px; }
.avatar-upload__btn {
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
  cursor: pointer;
  padding: 8px 16px;
  border: 1.5px solid var(--color-primary);
  border-radius: 8px;
  transition: background .15s;
  white-space: nowrap;
}
.avatar-upload__btn:hover { background: #f0f4ff; }
.settings-divider { border: none; border-top: 1px solid var(--color-border); margin: 8px 0; }
.settings-section-title { font-size: 17px; font-weight: 700; }
.settings-form__footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.cv-preview {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f0fff4;
  border: 1px solid #b2dfdb;
  border-radius: var(--radius);
  padding: 8px 12px;
  margin-bottom: 8px;
  font-size: 13px;
}

/* Table annonces */
.my-listings-table { overflow-x: auto; }
.my-listings-table table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.my-listings-table th {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-text-muted);
  text-align: left;
  padding: 10px 12px;
  border-bottom: 2px solid var(--color-border);
  white-space: nowrap;
}
/* Répartition explicite des colonnes */
.my-listings-table th:nth-child(1) { width: 30% !important; }
.my-listings-table th:nth-child(2) { width: 11% !important; }
.my-listings-table th:nth-child(3) { width: 13% !important; }
.my-listings-table th:nth-child(4) { width: 13% !important; }
.my-listings-table th:nth-child(5) { width: 33% !important; }
.my-listings-table td { padding: 12px; border-bottom: 1px solid var(--color-bg-grey); vertical-align: middle; }
/* Tronquer le titre + localisation si trop long */
.my-listings-table td:nth-child(1) small {
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.my-listing-row:hover td { background: var(--color-bg-light); }
.listing-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.new-badge {
  display: inline-block;
  background: var(--color-primary);
  color: white;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  margin-left: 4px;
}
.status-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
}
.status-badge--publish { background: #e8f5e9; color: #2e7d32; }
.status-badge--draft   { background: #e3f2fd; color: #1565c0; }
.status-badge--pending { background: #fff8e1; color: #f57f17; }
.status-badge--envoyee { background: #e3f2fd; color: #1565c0; }
.status-badge--vue     { background: #fff8e1; color: #f57f17; }
.status-badge--retenue { background: #e8f5e9; color: #2e7d32; }
.status-badge--refusee { background: #fce4ec; color: #c62828; }

/* Badge candidature compact (mes-annonces) */
.cand-count {
  display: flex; align-items: baseline; gap: 5px;
  font-size: 14px; font-weight: 600; color: #1a1a1a; white-space: nowrap;
}
.cand-count__new {
  font-size: 11.5px; font-weight: 500; color: var(--color-primary);
  white-space: nowrap;
}

/* Candidatures */
.candidatures-row td { padding: 0; }
.candidatures-list { padding: 16px 20px; background: var(--color-bg-light); }
.candidatures-list__title { font-size: 14px; font-weight: 700; margin-bottom: 12px; }
.candidature-item {
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 12px 16px;
  margin-bottom: 8px;
}
.candidature-item__info { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.candidature-item__email { font-size: 13px; color: var(--color-text-muted); }
.candidature-item__date { font-size: 12px; color: var(--color-text-muted); }
.candidature-item__message { font-size: 13px; color: var(--color-text-light); margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--color-bg-grey); }

/* Applications candidat */
.application-card {
  background: white;
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-border);
  border-radius: var(--radius);
  padding: 16px;
  margin-bottom: 12px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
}
.application-card--envoyee { border-left-color: #1565c0; }
.application-card--vue     { border-left-color: #f57f17; }
.application-card--retenue { border-left-color: #2e7d32; }
.application-card--refusee { border-left-color: #c62828; }
.application-card--deleted { border-left-color: #bbb; background: #fafafa; opacity: .85; }
.status-badge--deleted { background: #f0f0f0; color: #888; }
.badge--deleted { background: #eee; color: #888; font-size: 10px; }
.application-card__title--deleted { font-size: 15px; font-weight: 600; color: #999; }
.application-card__title { font-size: 15px; font-weight: 600; }
.application-card__title:hover { color: var(--color-primary); }
.application-card__title-wrap { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.application-card__meta { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--color-text-muted); }
.application-card__meta span { display: flex; align-items: center; gap: 4px; }

/* Empty state */
.empty-state { text-align: center; padding: 48px 20px; }
.empty-state p { color: var(--color-text-muted); margin: 16px 0; }

/* ── Modal ──────────────────────────────────────────────────── */
.modal { position: fixed; inset: 0; z-index: 500; display: flex; align-items: center; justify-content: center; }
.modal[hidden] { display: none; }
.modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.5); }
.modal__box {
  position: relative;
  background: white;
  border-radius: var(--radius-lg);
  padding: 28px;
  max-width: 540px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: var(--shadow-lg);
}
.modal__close {
  position: absolute;
  top: 14px;
  right: 16px;
  background: none;
  border: none;
  font-size: 22px;
  color: var(--color-text-muted);
  cursor: pointer;
}
.modal__close:hover { color: var(--color-text); }
.modal__title { font-size: 20px; font-weight: 700; margin-bottom: 20px; }
.apply-form { display: flex; flex-direction: column; gap: 16px; }

/* ── Auth modal (alerte) ────────────────────────────────────── */
.auth-modal__intro { font-size: 14px; color: var(--color-text-muted); text-align: center; margin: -8px 0 18px; line-height: 1.5; }
.modal .auth-tabs { display: flex; border-bottom: 2px solid #e5e7eb; margin-bottom: 20px; gap: 0; }
.modal .auth-tab {
  flex: 1;
  background: none;
  border: none;
  padding: 10px 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-text-muted);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color .15s, border-color .15s;
}
.modal .auth-tab.is-active { color: var(--color-primary); border-bottom-color: var(--color-primary); }
.auth-panel { display: flex; flex-direction: column; gap: 10px; }
.auth-panel[hidden] { display: none; }
.auth-panel .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.auth-panel input[type="text"],
.auth-panel input[type="email"],
.auth-panel input[type="password"],
.auth-panel select {
  width: 100%; padding: 13px 16px; border: 1.5px solid #e5e7eb;
  border-radius: 10px; font-size: 14px; background: #f8f9fb;
  transition: border-color .15s, box-shadow .15s;
  box-sizing: border-box;
  display: block;
}
.auth-panel input:focus, .auth-panel select:focus { outline: none; border-color: var(--color-primary); background: #fff; box-shadow: 0 0 0 3px rgba(147,0,34,.09); }
.auth-panel .btn { margin-top: 6px; padding: 14px; font-size: 15px; font-weight: 700; }
.auth-panel form { display: flex; flex-direction: column; gap: 10px; }
.auth-panel__error { font-size: 13px; color: #c62828; background: #fef2f2; border: 1px solid #fecaca; border-radius: 6px; padding: 8px 12px; }
/* Card-selector étudiant / diplômé dans le modal */
.auth-type-radios { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.auth-type-radios--three { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 480px) {
  .auth-type-radios--three { grid-template-columns: 1fr; }
}
.auth-type-radios--three label { padding: 10px 8px; font-size: 12px; gap: 4px; }
.auth-type-radios--three .auth-type-icon { font-size: 18px; }
.auth-type-radios label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 14px 10px;
  border: 2px solid #e5e7eb;
  border-radius: 10px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  color: #555;
  transition: border-color .15s, background .15s, color .15s;
  text-align: center;
  line-height: 1.2;
}
.auth-type-radios label:hover { border-color: #930022; color: #930022; background: #fff8f9; }
.auth-type-radios input[type="radio"] { display: none; }
.auth-type-radios input[type="radio"]:checked + span,
.auth-type-radios label:has(input:checked) {
  border-color: #930022;
  background: #fff0f2;
  color: #930022;
}
.auth-type-radios label .auth-type-icon { font-size: 22px; line-height: 1; }
.auth-univ-row { display: none; }
.auth-univ-row.is-visible { display: block; }
.auth-panel__switch { font-size: 13px; color: var(--color-text-muted); text-align: center; margin-top: 4px; }
.auth-panel__switch a { color: var(--color-primary); cursor: pointer; text-decoration: underline; }

/* ── Alertes flash ──────────────────────────────────────────── */
.alert {
  padding: 12px 16px;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.alert--success { background: #e8f5e9; border: 1px solid #a5d6a7; color: #2e7d32; }
.alert--error   { background: #fce4ec; border: 1px solid #f48fb1; color: #c62828; }

/* ── Pagination ─────────────────────────────────────────────── */
.pagination { margin-top: 32px; }
.pagination .page-numbers {
  display: flex;
  list-style: none;
  gap: 6px;
  flex-wrap: wrap;
}
.pagination .page-numbers li a,
.pagination .page-numbers li span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 14px;
  color: var(--color-text);
  transition: background var(--transition), color var(--transition);
}
.pagination .page-numbers li a:hover { background: var(--color-bg-light); color: var(--color-primary); border-color: var(--color-primary); }
.pagination .page-numbers li .current { background: var(--color-primary); color: white; border-color: var(--color-primary); }

/* ── Page de contenu ────────────────────────────────────────── */
.page-content { padding: 40px 0 60px; max-width: 760px; }
.page-article__title { font-size: 28px; font-weight: 700; margin-bottom: 24px; }
.page-article__body {
  font-size: 15px;
  line-height: 1.8;
  color: var(--color-text);
}
.page-article__body h2 { font-size: 20px; margin: 24px 0 12px; }
.page-article__body h3 { font-size: 17px; margin: 20px 0 8px; }
.page-article__body p { margin-bottom: 14px; }
.page-article__body ul, .page-article__body ol { padding-left: 20px; margin-bottom: 14px; }
.page-article__body a { color: var(--color-primary); text-decoration: underline; }

/* ── Contact ────────────────────────────────────────────────── */
.contact-page { padding: 40px 0 60px; }
.contact-page__title { font-size: 26px; font-weight: 700; margin-bottom: 20px; }
.contact-info { margin-bottom: 28px; color: var(--color-text-light); }
.contact-info a { color: var(--color-primary); }
.contact-form { display: flex; flex-direction: column; gap: 16px; }

/* ── Footer ─────────────────────────────────────────────────── */
.site-footer { background: #f4f4f5; color: #444; border-top: 1px solid #e5e5e7; }
.site-footer__inner {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 40px;
  padding: 48px 20px 32px;
}
.site-footer__brand { grid-column: 1; }
.site-footer__tagline {
  font-size: 14px;
  color: #777;
  margin-top: 12px;
  line-height: 1.6;
}
.site-footer__title {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #222;
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--color-primary);
  display: inline-block;
}
.site-footer__links { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.site-footer__links a {
  font-size: 14px;
  color: #555;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color var(--transition);
}
.site-footer__links a:hover { color: #111; }
.site-footer__links a::before { content:'›'; opacity: .5; }
.site-footer__links--social a::before { content: none; }
.site-footer__bottom {
  border-top: 1px solid #e0e0e2;
  padding: 16px 0;
}
.site-footer__bottom-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 0 20px;
}
.site-footer__copy { font-size: 13px; color: #888; }
.site-footer__legal { display: flex; gap: 16px; flex-wrap: wrap; }
.site-footer__legal a { font-size: 12px; color: #888; }
.site-footer__legal a:hover { color: #222; }
/* Logo footer en noir */
.site-logo__img--footer { filter: brightness(0); }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 900px) {
  .archive-layout { display: block; }
  .archive-sidebar { position: static; display: none; margin-bottom: 16px; }
  .archive-sidebar.is-open { display: block; }
  .archive-filter-toggle { display: flex; }
  .single-layout { grid-template-columns: 1fr; }
  .single-sidebar { position: static; }
  .site-footer__inner { grid-template-columns: 1fr 1fr; }
  .account-layout { grid-template-columns: 1fr; }
  .account-sidebar { position: static; }
}

@media (max-width: 768px) {
  .site-nav,
  .site-header__actions { display: none; }
  .site-nav.is-open,
  .site-header__actions.is-open { display: flex; }
  .mobile-menu-toggle { display: flex; }
  .site-header__inner { flex-wrap: wrap; }

  /* Menu mobile plein écran */
  .site-nav.is-open {
    position: fixed;
    top: 64px;
    left: 0;
    right: 0;
    bottom: 0;
    background: white;
    flex-direction: column;
    align-items: flex-start;
    padding: 20px;
    overflow-y: auto;
    z-index: 99;
    border-top: 1px solid var(--color-border);
  }
  .site-nav.is-open .site-nav__list { flex-direction: column; width: 100%; }
  .site-nav.is-open .site-nav__link { padding: 12px 4px; font-size: 16px; border-bottom: 1px solid var(--color-bg-grey); }
  .site-nav.is-open .dropdown-menu { position: static; visibility: visible; opacity: 1; transform: none; box-shadow: none; border: none; padding-left: 20px; }

  .search-bar { flex-direction: column; border-radius: var(--radius-lg); }
  .search-bar__field { border-right: none; border-bottom: 1px solid var(--color-border); }
  .search-bar .btn { border-radius: 0 0 var(--radius-lg) var(--radius-lg); }

  .form-row { grid-template-columns: 1fr; }
  .account-type-selector { grid-template-columns: 1fr; }
  .site-footer__inner { grid-template-columns: 1fr; gap: 24px; }
  .site-footer__bottom-inner { flex-direction: column; align-items: flex-start; }
  .listings-grid { grid-template-columns: 1fr; }
  .my-listings-table td, .my-listings-table th { font-size: 12px; padding: 8px; }
  .tabs { flex-wrap: wrap; }
  .tab { padding: 8px 14px; font-size: 13px; }
}

@media (max-width: 480px) {
  .hero__title { font-size: 22px; }
  .container { padding: 0 14px; }
  .modal__box { padding: 20px; }
  .archive-header { flex-direction: column; align-items: flex-start; }
  .hero { min-height: 280px; padding-bottom: 24px; }
  .hero__search { padding: 16px 12px 0; }
}

/* ── Messagerie ─────────────────────────────────────────────── */
.messaging-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 520px;
}
.conversations-list {
  border-right: 1px solid var(--color-border);
  background: var(--color-bg-light);
  overflow-y: auto;
}
.conversations-list__title {
  padding: 16px;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--color-text-muted);
  border-bottom: 1px solid var(--color-border);
}
.conversation-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--color-border);
  cursor: pointer;
  transition: background var(--transition);
  text-decoration: none;
  color: inherit;
}
.conversation-item:hover { background: #fff; }
.conversation-item--active { background: #fff; border-left: 3px solid var(--color-primary); }
.conversation-item__avatar { position: relative; flex-shrink: 0; }
.conversation-item__avatar img { border-radius: 50%; width: 36px; height: 36px; }
.conversation-item__badge {
  position: absolute; top: -4px; right: -4px;
  background: var(--color-primary); color: #fff;
  font-size: 10px; font-weight: 700;
  width: 16px; height: 16px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.conversation-item__info { flex: 1; min-width: 0; }
.conversation-item__name { display: block; font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.conversation-item__preview { display: block; font-size: 12px; color: var(--color-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.conversation-item__date { font-size: 11px; color: var(--color-text-muted); flex-shrink: 0; }

.messages-pane { display: flex; flex-direction: column; }
.messages-pane__header {
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border);
  display: flex; align-items: center; gap: 10px;
  font-size: 15px;
}
.messages-list {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 380px;
}
.messages-empty { color: var(--color-text-muted); font-size: 14px; text-align: center; margin: auto; }
.message-bubble {
  max-width: 70%;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
}
.message-bubble--mine {
  align-self: flex-end;
  background: var(--color-primary);
  color: #fff;
  border-bottom-right-radius: 4px;
}
.message-bubble--theirs {
  align-self: flex-start;
  background: var(--color-bg-grey);
  color: var(--color-text);
  border-bottom-left-radius: 4px;
}
.message-bubble__meta { font-size: 11px; opacity: .7; margin-top: 4px; text-align: right; }
.message-bubble--theirs .message-bubble__meta { text-align: left; }

.message-form {
  padding: 14px 20px;
  border-top: 1px solid var(--color-border);
  background: var(--color-bg-light);
}
.message-form__input-wrap { display: flex; gap: 10px; align-items: flex-end; }
.message-form textarea {
  flex: 1;
  padding: 10px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  resize: none;
  font-size: 14px;
  line-height: 1.5;
}
.message-form textarea:focus { outline: none; border-color: var(--color-primary); }

@media (max-width: 768px) {
  .messaging-layout { grid-template-columns: 1fr; }
  .conversations-list { max-height: 200px; }
}

/* ── Page fade-in ────────────────────────────────────────────── */
body {
  animation: lexjob-fadein 0.3s ease;
}
@keyframes lexjob-fadein {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Loading overlay ────────────────────────────────────────── */
#lexjob-loading-overlay {
  position: fixed;
  inset: 0;
  background: rgba(255,255,255,.9);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 99999;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}
#lexjob-loading-overlay.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.lexjob-loader__logo {
  width: 140px;
  animation: lexjob-bounce .8s ease infinite alternate;
}
@keyframes lexjob-bounce {
  from { transform: translateY(0); }
  to   { transform: translateY(-12px); }
}

/* ── Message verrou utilisateur ─────────────────────────────── */
.lexjob-user-lock-msg {
  background: #fdf9f6;
  border: 1px solid #e0d8d0;
  border-left: 4px solid #930022;
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 16px;
  font-size: 13px;
  color: #666;
  text-align: center;
}

/* ── Bouton LinkedIn profil recruteur ───────────────────────── */
.lexjob-linkedin-btn {
  display: inline-block;
  background: #0077B5;
  color: #fff !important;
  padding: 10px 20px;
  border-radius: 6px;
  font-weight: 600;
  text-decoration: none !important;
  transition: background .3s ease;
  font-size: 15px;
  margin-bottom: 16px;
}
.lexjob-linkedin-btn:hover { background: #005f91; color: #fff !important; }

/* ── Formulaire alerte — encadrement ────────────────────────── */
.lexjob-alert-container {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 0 0 3px #930022;
  padding: 40px 50px;
  margin: 60px auto;
  max-width: 720px;
  text-align: center;
  transition: box-shadow .3s ease, transform .2s ease;
  box-sizing: border-box;
}
.lexjob-alert-container:hover {
  box-shadow: 0 10px 28px rgba(0,0,0,.08);
  transform: translateY(-2px);
}
.lexjob-alert-container h2 {
  color: #930022;
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 15px;
}
.lexjob-alert-container p {
  color: #444;
  font-size: 1.05rem;
  margin-bottom: 20px;
}
@media (max-width: 768px) {
  .lexjob-alert-container {
    margin: 40px 15px;
    padding: 30px 18px;
    max-width: 100%;
  }
  .lexjob-alert-container h2 { font-size: 1.5rem; }
}

/* Masquer le formulaire alerte sur les pages compte/annonces */
.page-mon-compte .lexjob-alert-container,
.page-mes-annonces .lexjob-alert-container,
.page-mes-candidatures .lexjob-alert-container { display: none !important; }

/* ── Modal de chat ─────────────────────────────────────────── */
.chat-modal {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: flex-end; justify-content: flex-end;
  padding: 0 24px 24px;
  pointer-events: none;
}
.chat-modal:not([hidden]) { pointer-events: all; }
.chat-modal__overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.45);
  opacity: 0; transition: opacity var(--transition);
}
.chat-modal:not([hidden]) .chat-modal__overlay { opacity: 1; }
.chat-modal__window {
  position: relative;
  width: 480px; max-width: calc(100vw - 48px);
  height: 560px; max-height: calc(100vh - 90px);
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  display: flex; flex-direction: column; overflow: hidden;
  transform: translateY(24px); opacity: 0;
  transition: transform var(--transition), opacity var(--transition);
}
.chat-modal:not([hidden]) .chat-modal__window {
  transform: translateY(0); opacity: 1;
}
.chat-modal__header {
  padding: 12px 16px;
  background: var(--color-primary); color: #fff;
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  flex-shrink: 0;
}
.chat-modal__header-identity { display: flex; align-items: center; gap: 10px; min-width: 0; }
.chat-modal__header-avatar {
  width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 700; color: #fff;
  background: rgba(255,255,255,.25);
}
.chat-modal__header-info { min-width: 0; }
.chat-modal__title-link {
  display: block; font-size: 1rem; font-weight: 700;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  color: #fff; text-decoration: none;
}
.chat-modal__title-link:hover { color: #fff; text-decoration: underline; text-decoration-color: rgba(255,255,255,.6); }
.chat-modal__subtitle {
  font-size: .72rem; opacity: .75; display: block;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 260px;
}
.chat-modal__close {
  background: none; border: none; color: #fff;
  font-size: 1.6rem; line-height: 1; cursor: pointer;
  padding: 0 2px; flex-shrink: 0; opacity: .8;
  transition: opacity var(--transition);
}
.chat-modal__close:hover { opacity: 1; }
.chat-modal__messages {
  flex: 1; overflow-y: auto; padding: 14px 16px;
  display: flex; flex-direction: column; gap: 8px;
  scroll-behavior: smooth;
}
.chat-modal__loading,
.chat-modal__empty {
  text-align: center; color: var(--color-text-muted);
  font-size: .85rem; padding: 28px 0; align-self: center;
}
.chat-msg { max-width: 82%; }
.chat-msg--mine  { align-self: flex-end; }
.chat-msg--theirs { align-self: flex-start; }
.chat-msg__bubble {
  padding: 8px 13px; border-radius: 14px; font-size: .87rem; line-height: 1.5;
  word-break: break-word;
}
.chat-msg--mine .chat-msg__bubble {
  background: var(--color-primary); color: #fff;
  border-bottom-right-radius: 3px;
}
.chat-msg--theirs .chat-msg__bubble {
  background: var(--color-bg-grey); color: var(--color-text);
  border-bottom-left-radius: 3px;
}
.chat-msg__meta {
  font-size: .72rem; color: var(--color-text-muted); margin-top: 3px;
}
.chat-msg--mine .chat-msg__meta  { text-align: right; }
.chat-msg--theirs .chat-msg__meta { text-align: left; }
.chat-modal__form {
  border-top: 1px solid var(--color-border);
  display: flex; flex-direction: column; flex-shrink: 0; background: #fff;
  padding: 8px 12px 10px;
  gap: 0;
}

/* Prévisualisation du fichier sélectionné */
.chat-modal__file-preview[hidden] { display: none !important; }
.chat-modal__file-preview {
  display: flex; align-items: center; gap: 6px;
  background: #f0f2ff; border: 1px solid #dde3ff; border-radius: 8px;
  padding: 5px 10px; margin-bottom: 6px;
  font-size: .76rem; color: var(--color-primary);
}
.chat-modal__file-name {
  flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.chat-modal__file-remove {
  background: none; border: none; cursor: pointer;
  color: var(--color-text-muted); font-size: 1.1rem; line-height: 1;
  padding: 0; flex-shrink: 0; transition: color var(--transition);
}
.chat-modal__file-remove:hover { color: #dc2626; }

/* Rangée principale : [📎] [textarea] [→] */
.chat-modal__input-row {
  display: flex; align-items: center; gap: 2px;
  background: var(--color-bg-grey);
  border: 1.5px solid var(--color-border);
  border-radius: 24px;
  padding: 3px 3px 3px 4px;
  transition: border-color var(--transition);
}
.chat-modal__input-row:focus-within {
  border-color: var(--color-primary);
  background: #fff;
}

/* Bouton pièce jointe */
.chat-modal__attach-label {
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  color: var(--color-text-muted);
  transition: color var(--transition), background var(--transition);
}
.chat-modal__attach-label:hover { color: var(--color-primary); background: rgba(0,0,0,.06); }

/* Textarea sans bordure (intégrée dans la pill) */
.chat-modal__form textarea {
  flex: 1; resize: none; border: none; outline: none; background: transparent;
  padding: 8px 6px; font-size: .87rem; font-family: var(--font-family);
  line-height: 1.4; min-height: 20px; max-height: 110px;
  overflow-y: auto;
}

/* Bouton envoyer — cercle coloré */
.chat-modal__send-btn {
  width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%;
  border: none; cursor: pointer;
  background: var(--color-primary); color: #fff;
  display: flex; align-items: center; justify-content: center;
  transition: background var(--transition), transform .1s;
}
.chat-modal__send-btn:hover  { background: var(--color-primary-dark, #7b0024); }
.chat-modal__send-btn:active { transform: scale(.92); }

/* Pièces jointes dans les bulles */
.chat-msg__attach { display: block; margin-top: 6px; text-decoration: none; }
.chat-msg__attach--img { display: inline-block; }
.chat-msg__attach-img {
  display: block; max-width: 220px; max-height: 180px; border-radius: 8px;
  object-fit: cover; border: 2px solid rgba(255,255,255,.3);
}
.chat-msg--theirs .chat-msg__attach-img { border-color: var(--color-border); }
.chat-msg__attach--doc {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 10px; border-radius: 8px; font-size: .82rem;
  background: rgba(255,255,255,.2); color: inherit;
  transition: background var(--transition);
}
.chat-msg--theirs .chat-msg__attach--doc {
  background: rgba(0,0,0,.07); color: var(--color-text);
}
.chat-msg__attach--doc:hover { background: rgba(255,255,255,.35); }
.chat-msg--theirs .chat-msg__attach--doc:hover { background: rgba(0,0,0,.13); }

/* ── Bloc pièces jointes candidature (haut du modal) ───────── */
.chat-modal__attachments {
  margin: 10px 12px 4px;
  background: #fff;
  border: 1px solid #e8eaed;
  border-radius: 10px;
  padding: 10px 12px 10px;
  flex-shrink: 0;
}
.chat-modal__attachments-title {
  font-size: 10.5px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: #aaa; margin-bottom: 8px;
}
.chat-modal__attachments-list { display: flex; gap: 8px; flex-wrap: wrap; }
.chat-modal__attach-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px; border-radius: 8px;
  background: #f8f9fb; border: 1px solid #e0e2e6;
  color: #222; font-size: 13px; font-weight: 500;
  text-decoration: none; transition: background .15s, border-color .15s;
  min-width: 0;
}
.chat-modal__attach-btn:hover { background: #f0f1f4; border-color: #c8cad0; color: #222; }
.chat-modal__attach-btn__icon {
  display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 6px;
  background: #fff0f0; color: var(--color-primary);
  flex-shrink: 0;
}
.chat-modal__attach-btn__body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.chat-modal__attach-btn__label { font-size: 13px; font-weight: 600; color: #222; }
.chat-modal__attach-btn__sub { font-size: 11px; color: #999; }

/* ── Messages page inline styles ───────────────────────────── */
.messages-pane__offre {
  display: block; font-size: .78rem;
  color: rgba(255,255,255,.75); margin-top: 1px;
}
.conversation-item__offre {
  display: block; font-size: .72rem;
  color: var(--color-primary); font-weight: 500;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

@media (max-width: 640px) {
  .chat-modal {
    padding: 0; align-items: stretch; justify-content: stretch;
  }
  .chat-modal__window {
    width: 100%; max-width: 100%;
    height: 100%; max-height: 100%;
    border-radius: 0;
  }
}

/* ── Profil public ─────────────────────────────────────────────────────────── */
.profil-card {
  background: #fff;
  border-radius: 14px;
  border: 1px solid #e8e8e8;
  overflow: hidden;
  margin-bottom: 32px;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.profil-card__header {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  padding: 32px 32px 24px;
}
.profil-card__avatar-wrap { flex-shrink: 0; }
.profil-avatar {
  width: 96px !important; height: 96px !important;
  border-radius: 50% !important; object-fit: cover;
  border: 3px solid #e8e8e8;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
}
.profil-card__identity { flex: 1; min-width: 0; }
.profil-card__name {
  font-size: 24px; font-weight: 700;
  margin: 0 0 12px; color: var(--color-text); line-height: 1.2;
}
.profil-card__badges {
  display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 10px;
}
.badge--verified {
  background: #e8f5e9;
  color: #2e7d32;
  border: 1px solid #a5d6a7;
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 20px;
  font-weight: 600;
}
.badge--spontanee {
  background: #f3e8fd;
  color: #7c3aed;
  border: 1px solid #d8b4fe;
  font-size: 11px;
  padding: 2px 9px;
  border-radius: 20px;
  font-weight: 700;
  letter-spacing: .03em;
}
.badge--univ {
  background: #f3f4f6;
  color: #555;
  border: 1px solid #ddd;
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 20px;
}
/* ── Formation label — élément identitaire principal ── */
.profil-card__formation {
  display: flex;
  align-items: center;
  font-size: 18px;
  font-weight: 700;
  color: #312e81;
  margin: 4px 0 14px;
  line-height: 1.3;
  letter-spacing: -.01em;
}
.profil-card__formation svg { color: #6366f1; flex-shrink: 0; }

/* ── Distinctions Paris 1 (Collège de Droit / Magistère) — pills compactes ── */
.profil-card__distinctions-section {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  padding: 10px 28px 14px !important;
  border-top: 1px solid #f0f0f0;
  /* reset any gradient/shadow from previous styles */
  background: none !important;
  box-shadow: none !important;
}
.distinction-card {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 10px 22px 10px 12px !important;
  border-radius: 28px !important;
  /* override old gradient */
  background: #eef2ff !important;
  border: 1px solid #c7d2fe !important;
  box-shadow: none !important;
  transform: none !important;
  transition: background .15s !important;
}
.distinction-card:hover {
  background: #e0e7ff !important;
  transform: none !important;
  box-shadow: none !important;
}
.distinction-card--college  { background: #eff6ff !important; border-color: #bfdbfe !important; }
.distinction-card--magistere { background: #f5f3ff !important; border-color: #ddd6fe !important; }
.distinction-card--college:hover  { background: #dbeafe !important; }
.distinction-card--magistere:hover { background: #ede9fe !important; }

.distinction-card__logo-wrap {
  width: 42px !important; height: 42px !important;
  flex-shrink: 0;
  border-radius: 50% !important; overflow: hidden;
  background: rgba(55,48,163,.1) !important;
  display: flex; align-items: center; justify-content: center;
}
.distinction-card__logo {
  width: 42px !important; height: 42px !important;
  max-width: 42px !important; max-height: 42px !important;
  object-fit: cover !important; border-radius: 50% !important; display: block;
}
.distinction-card__text {
  display: flex; flex-direction: column; gap: 2px;
}
.distinction-card__title {
  font-size: 14px !important; font-weight: 700 !important;
  color: #3730a3 !important; line-height: 1.2 !important;
}
.distinction-card--college .distinction-card__title  { color: #1d4ed8 !important; }
.distinction-card--magistere .distinction-card__title { color: #5b21b6 !important; }
.distinction-card__sub {
  font-size: 12px !important; color: #6b7280 !important; line-height: 1.3 !important;
  display: block !important;
}

/* ── Modal bienvenue — compléter le profil ── */
.lex-welcome-modal {
  position: fixed; inset: 0; z-index: 99999;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .25s;
}
.lex-welcome-modal--visible {
  opacity: 1; pointer-events: auto;
}
.lex-welcome-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(15,15,30,.55);
  backdrop-filter: blur(3px);
}
.lex-welcome-modal__box {
  position: relative; z-index: 1;
  background: #fff; border-radius: 20px;
  padding: 44px 40px 36px;
  max-width: 500px; width: 92%;
  text-align: center;
  box-shadow: 0 24px 80px rgba(0,0,0,.2);
  animation: lex-modal-in .3s ease;
}
@keyframes lex-modal-in {
  from { transform: translateY(24px) scale(.97); opacity: 0; }
  to   { transform: translateY(0) scale(1);      opacity: 1; }
}
.lex-welcome-modal__icon { margin-bottom: 20px; }
.lex-welcome-modal__title {
  font-size: 22px; font-weight: 800; color: #111;
  margin: 0 0 14px; line-height: 1.2;
}
.lex-welcome-modal__text {
  font-size: 15px; color: #555; line-height: 1.65; margin: 0 0 6px;
}
.lex-welcome-modal__actions {
  display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 28px;
}
.btn--ghost {
  background: none; border: none; cursor: pointer;
  padding: 8px 16px; border-radius: 8px;
  transition: color .15s;
}
.btn--ghost:hover { color: #555 !important; }

.profil-card__since {
  font-size: 12px; color: #aaa; margin: 0 0 16px; letter-spacing: .02em;
}
.profil-card__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.profil-btn-linkedin { color: #0077b5 !important; border-color: #0077b5 !important; }
.profil-btn-linkedin:hover { background: #0077b5 !important; color: #fff !important; }
.profil-card__section {
  border-top: 1px solid #f0f0f0;
  padding: 24px 32px 28px;
}
.profil-card__section-title {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 12px;
  color: var(--color-text);
}
.profil-card__bio {
  color: #555;
  line-height: 1.7;
  margin: 0;
}
.profil-offres { margin-top: 16px; }
.profil-offres__title {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 20px;
  color: var(--color-text);
}
@media (max-width: 600px) {
  .profil-card__header { flex-direction: column; align-items: center; text-align: center; }
  .profil-card__badges { justify-content: center; }
  .profil-card__actions { justify-content: center; }
}

/* ── Profil public — En-tête annonces ──────────────────────── */
.profil-offres__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}
.profil-offres__title {
  font-size: 20px;
  font-weight: 700;
  margin: 0;
  color: var(--color-text);
}
.profil-offres__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  border-radius: 20px;
  padding: 1px 8px;
  min-width: 22px;
}

/* ── Profil public — Grille annonces ───────────────────────── */
.profil-offres__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}
.profil-offres__empty {
  text-align: center;
  padding: 40px 20px;
  color: #bbb;
  font-size: 14px;
}
.profil-offres__empty p { margin: 10px 0 0; }

/* ── Carte offre profil ─────────────────────────────────────── */
.profil-offre-card {
  display: flex;
  align-items: center;
  gap: 0;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: var(--color-text);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  position: relative;
}
.profil-offre-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,.10);
  border-color: transparent;
  color: var(--color-text);
}
/* Barre d'accent gauche */
.profil-offre-card__accent {
  width: 5px;
  align-self: stretch;
  flex-shrink: 0;
  background: #ccc;
}
.profil-offre-card__accent--stage,
.profil-offre-card__accent--stages { background: #10b981; }
.profil-offre-card__accent--alternance,
.profil-offre-card__accent--alternances { background: #3b82f6; }
.profil-offre-card__accent--emploi,
.profil-offre-card__accent--emplois { background: var(--color-primary); }

.profil-offre-card__body {
  flex: 1;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 12px 14px 16px;
  min-width: 0;
}
.profil-offre-card__logo {
  flex-shrink: 0;
}
.profil-offre-card__logo img {
  width: 40px;
  height: 40px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid #eee;
}
.profil-offre-card__content { min-width: 0; flex: 1; }
.profil-offre-card__badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .05em;
  padding: 2px 7px;
  border-radius: 4px;
  margin-bottom: 5px;
  background: #f0fdf4;
  color: #059669;
}
.profil-offre-card__badge--alternance,
.profil-offre-card__badge--alternances {
  background: #eff6ff;
  color: #2563eb;
}
.profil-offre-card__badge--emploi,
.profil-offre-card__badge--emplois {
  background: #fff1f2;
  color: var(--color-primary);
}
.profil-offre-card__title {
  font-size: 14px;
  font-weight: 600;
  margin: 0 0 6px;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.profil-offre-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.profil-offre-card__meta-item {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 12px;
  color: var(--color-text-muted);
}
.profil-offre-card__arrow {
  padding: 0 14px;
  color: #ccc;
  flex-shrink: 0;
  transition: color .18s, transform .18s;
}
.profil-offre-card:hover .profil-offre-card__arrow {
  color: var(--color-primary);
  transform: translateX(3px);
}

/* ── Modal de contact ───────────────────────────────────────── */
.contact-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  pointer-events: none;
  opacity: 0;
  transition: opacity .2s ease;
}
.contact-modal--open {
  pointer-events: auto;
  opacity: 1;
}
.contact-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.5);
  backdrop-filter: blur(2px);
}
.contact-modal__box {
  position: relative;
  background: #fff;
  border-radius: 14px;
  width: 100%;
  max-width: 480px;
  box-shadow: 0 20px 60px rgba(0,0,0,.2);
  overflow: hidden;
  transform: translateY(16px) scale(.97);
  transition: transform .22s ease;
}
.contact-modal--open .contact-modal__box {
  transform: translateY(0) scale(1);
}
.contact-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  background: none;
  border: none;
  cursor: pointer;
  color: #999;
  padding: 4px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  transition: background .15s, color .15s;
}
.contact-modal__close:hover { background: #f5f5f5; color: #333; }
.contact-modal__header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 22px 24px 16px;
  border-bottom: 1px solid #f0f0f0;
}
.contact-modal__header img,
.contact-modal__avatar img { border-radius: 50%; }
.contact-modal__title {
  font-size: 17px;
  font-weight: 700;
  margin: 0 0 5px;
  color: var(--color-text);
}
.contact-modal__tag {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  color: #7c3aed;
  background: #f5f3ff;
  border-radius: 20px;
  padding: 3px 10px;
}
.contact-modal__body { padding: 18px 24px; }
.contact-modal__hint {
  font-size: 13px;
  color: #888;
  margin: 0 0 14px;
  line-height: 1.5;
}
.contact-modal__textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1.5px solid var(--color-border);
  border-radius: 8px;
  padding: 12px;
  font-size: 14px;
  font-family: inherit;
  resize: vertical;
  transition: border-color .15s;
  color: var(--color-text);
}
.contact-modal__textarea:focus {
  outline: none;
  border-color: var(--color-primary);
}
.contact-modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 0 24px 20px;
}
.contact-modal__status {
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
}
.contact-modal__status--success {
  background: #f0fdf4;
  color: #166534;
  border: 1px solid #bbf7d0;
}
.contact-modal__status--error {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
}

/* ── Badge Invitation dans la liste des conversations ───────── */
.conv-tag {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 20px;
  letter-spacing: .02em;
}
.conv-tag--invitation {
  background: #f5f3ff;
  color: #7c3aed;
}

/* ── Badge dans le header du panneau messages ───────────────── */
.messages-pane__offre--invitation {
  background: #f5f3ff !important;
  color: #7c3aed !important;
  border-radius: 20px;
  padding: 2px 10px;
  font-size: 11px;
  font-weight: 600;
}

@media (max-width: 600px) {
  .profil-offres__grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════════
   CAREERS PAGE (profil public recruteur)
   ═══════════════════════════════════════════════════════════════════ */

.careers-page { background: #f8f9fb; min-height: 80vh; }

.careers-page__edit-bar {
  background: #fff;
  border-bottom: 1px solid var(--color-border);
  padding: 10px 20px;
  text-align: right;
}

/* ── Hero ───────────────────────────────────────────────────── */
.careers-hero {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 60%, #0f3460 100%);
  color: #fff;
  padding-bottom: 0;
}
.careers-hero__inner {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  padding: 40px 20px 32px;
  flex-wrap: wrap;
}
.careers-hero__logo { flex-shrink: 0; }
.careers-hero__avatar {
  border-radius: 16px !important;
  border: 3px solid rgba(255,255,255,.15);
  width: 90px !important;
  height: 90px !important;
  object-fit: cover;
  display: block;
}
.careers-hero__identity { flex: 1 1 260px; }
.careers-hero__name {
  font-size: 26px;
  font-weight: 800;
  margin: 0 0 10px;
  color: #fff;
  line-height: 1.2;
}
.careers-hero__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.careers-hero__since { font-size: 13px; color: rgba(255,255,255,.55); }
.careers-badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.careers-badge--recruiter {
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.85);
  border: 1px solid rgba(255,255,255,.2);
}
.careers-hero__tagline {
  font-size: 14px;
  color: rgba(255,255,255,.7);
  margin: 0;
  line-height: 1.6;
  max-width: 480px;
}
.careers-hero__actions {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-start;
  padding-top: 4px;
}
.careers-hero__btn {
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  padding: 9px 18px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity .15s, transform .15s;
}
.careers-hero__btn:hover { opacity: .88; transform: translateY(-1px); }
.careers-hero__btn--primary { background: var(--color-primary); color: #fff; }
.careers-hero__btn--outline {
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.9);
  border: 1px solid rgba(255,255,255,.25);
}
.careers-hero__btn--outline:hover { background: rgba(255,255,255,.18); }

/* Stats bar */
.careers-hero__stats {
  background: rgba(0,0,0,.25);
  border-top: 1px solid rgba(255,255,255,.08);
}
.careers-hero__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 14px 28px;
  border-right: 1px solid rgba(255,255,255,.08);
  gap: 2px;
}
.careers-hero__stat:last-child { border-right: none; }
.careers-hero__stat strong { font-size: 20px; font-weight: 800; color: #fff; line-height: 1; }
.careers-hero__stat span { font-size: 11px; color: rgba(255,255,255,.5); text-transform: uppercase; letter-spacing: .04em; }
.careers-hero__stat--text { flex-direction: row; align-items: center; flex: 1; padding: 14px 24px; }
.careers-hero__stat--text span { font-size: 13px; color: rgba(255,255,255,.55); text-transform: none; letter-spacing: 0; }

/* ── Tabs nav ────────────────────────────────────────────────── */
.careers-nav {
  background: #fff;
  border-bottom: 2px solid var(--color-border);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.careers-nav > div { display: flex; gap: 0; }
.careers-nav__tab {
  display: inline-flex;
  align-items: center;
  padding: 16px 22px;
  font-size: 14px;
  font-weight: 600;
  color: #666;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  transition: color .15s, border-color .15s;
}
.careers-nav__tab:hover { color: var(--color-primary); }
.careers-nav__tab--active { color: var(--color-primary); border-bottom-color: var(--color-primary); }
.careers-nav__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 20px;
  background: var(--color-primary);
  color: #fff;
  margin-left: 6px;
}

/* ── Tab panes ───────────────────────────────────────────────── */
.careers-tab-pane { display: none; }
.careers-tab-pane--active { display: block; }

/* ── Job cards ───────────────────────────────────────────────── */
.careers-jobs-list { display: flex; flex-direction: column; gap: 16px; }

.careers-job {
  display: block;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--color-border);
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
  transition: box-shadow .18s, transform .18s;
}
.careers-job:hover { box-shadow: 0 8px 28px rgba(0,0,0,.10); transform: translateY(-2px); }

.careers-job__cat {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
  color: #fff;
  display: flex;
  align-items: center;
  padding: 0 18px;
  height: 28px;
}
.careers-job__cat--stage,
.careers-job__cat--stages    { background: #1e7b4b; }
.careers-job__cat--alternance { background: #1a5ba8; }
.careers-job__cat--emploi,
.careers-job__cat--cdi,
.careers-job__cat--cdd       { background: #8b1a3e; }
.careers-job__cat--freelance  { background: #7c3aed; }
.careers-job__cat--autre      { background: #555; }

.careers-job__body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
}
.careers-job__left { display: flex; align-items: flex-start; gap: 14px; flex: 1; min-width: 0; }
.careers-job__thumb {
  width: 52px;
  height: 52px;
  border-radius: 10px;
  object-fit: cover;
  flex-shrink: 0;
  border: 1px solid var(--color-border);
}
.careers-job__title { font-size: 16px; font-weight: 700; color: var(--color-text); margin: 0 0 8px; line-height: 1.3; }
.careers-job__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 8px; }
.careers-job__meta-item { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: #666; }
.careers-job__meta-item--remun { font-weight: 600; color: #1e7b4b; background: #f0fdf4; padding: 2px 8px; border-radius: 20px; }
.careers-job__excerpt { font-size: 13px; color: #777; margin: 0; line-height: 1.5; }
.careers-job__cta {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--color-primary);
  white-space: nowrap;
  padding: 10px 16px;
  border: 1.5px solid var(--color-primary);
  border-radius: 8px;
  transition: background .15s, color .15s;
}
.careers-job:hover .careers-job__cta { background: var(--color-primary); color: #fff; }

/* ── Empty state ──────────────────────────────────────────────── */
.careers-empty { text-align: center; padding: 40px 20px 24px; color: #aaa; }
.careers-empty p { margin-top: 16px; font-size: 15px; }

/* ── Candidature spontanée banner ─────────────────────────────── */
.careers-spontaneous {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 40px;
  padding: 28px 32px;
  background: linear-gradient(135deg, #f5f3ff, #ede9fe);
  border: 1.5px solid #c4b5fd;
  border-radius: 16px;
  flex-wrap: wrap;
}
.careers-spontaneous__icon {
  width: 56px;
  height: 56px;
  background: #fff;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #7c3aed;
  box-shadow: 0 4px 14px rgba(124,58,237,.15);
}
.careers-spontaneous__text { flex: 1 1 240px; }
.careers-spontaneous__text h3 { font-size: 16px; font-weight: 700; color: #4c1d95; margin: 0 0 6px; }
.careers-spontaneous__text p { font-size: 13px; color: #6d28d9; margin: 0; line-height: 1.5; }
.careers-spontaneous__btn {
  display: inline-flex;
  align-items: center;
  padding: 12px 22px;
  background: #7c3aed;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  flex-shrink: 0;
  transition: background .15s, transform .15s;
}
.careers-spontaneous__btn:hover { background: #6d28d9; transform: translateY(-1px); }

/* ── À propos tab ─────────────────────────────────────────────── */
.careers-about {
  background: #fff;
  border-radius: 14px;
  border: 1px solid var(--color-border);
  padding: 32px 36px;
  max-width: 760px;
}
.careers-about__title { font-size: 20px; font-weight: 700; margin: 0 0 18px; color: var(--color-text); }
.careers-about__body { font-size: 15px; line-height: 1.75; color: #444; white-space: pre-wrap; margin-bottom: 0; }
/* Grille de méta-infos (site, LinkedIn, employés) */
.careers-about__meta {
  display: flex; flex-wrap: wrap; gap: 10px;
  margin-top: 24px; padding-top: 20px;
  border-top: 1px solid var(--color-border);
}
.careers-about__meta-item {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 14px;
  background: var(--color-bg-grey);
  border: 1px solid var(--color-border);
  border-radius: 999px;
  font-size: 13.5px; font-weight: 500; color: var(--color-text);
  text-decoration: none;
  transition: background var(--transition), border-color var(--transition);
}
.careers-about__meta-item--link:hover {
  background: #fff; border-color: var(--color-primary); color: var(--color-primary);
}
.careers-about__meta-item--linkedin { color: #0a66c2; }
.careers-about__meta-item--linkedin:hover { border-color: #0a66c2; color: #0a66c2; background: #f0f6ff; }
.careers-about__meta-icon { display: flex; align-items: center; flex-shrink: 0; opacity: .65; }
.careers-about__meta-item--link:hover .careers-about__meta-icon { opacity: 1; }
.careers-about__meta-ext { flex-shrink: 0; opacity: .4; margin-left: 2px; }

/* ── Apply modal header (sender identity) ─────────────────────── */
.apply-modal__header { position: relative; }
.apply-modal__sender {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 40px 10px 12px; border-radius: 10px;
  background: #f8f9fb; border: 1px solid #eee;
  text-decoration: none; color: inherit;
  transition: background .15s;
}
.apply-modal__sender:hover { background: #f0f4ff; }
.apply-modal__sender-avatar { border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.apply-modal__sender-info { display: flex; flex-direction: column; min-width: 0; }
.apply-modal__sender-name { font-size: 13px; font-weight: 700; color: #1d2327; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.apply-modal__sender-label { font-size: 11px; color: var(--color-primary); }

/* ── Apply / contact modal — validation error ─────────────────── */
.apply-validation-error[hidden] { display: none !important; }
.apply-validation-error {
  background: #fff5f5; border: 1px solid #fed7d7; border-radius: 8px;
  padding: 10px 14px; margin-bottom: 12px; color: #c53030;
  font-size: 13px; display: flex; flex-direction: column; gap: 4px;
}
.apply-validation-error__item { display: flex; align-items: flex-start; gap: 5px; }

/* ── Contact modal — file attachment ──────────────────────────── */
.apply-modal__files { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.contact-modal__file-wrap { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.contact-modal__file-label {
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
  cursor: pointer;
  padding: 7px 12px;
  border: 1.5px dashed var(--color-primary);
  border-radius: 8px;
  transition: background .15s;
}
.contact-modal__file-label:hover { background: #f0f4ff; }

/* ── Color picker bannière (page Réglages) ────────────────────── */
.banner-color-wrap { display: flex; flex-direction: column; gap: 10px; }
.banner-color-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  cursor: pointer;
  user-select: none;
}
.banner-color-field { display: flex; flex-direction: column; gap: 10px; }
.banner-color-picker {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.banner-color-picker input[type="color"] {
  width: 46px;
  height: 46px;
  border: 2px solid var(--color-border);
  border-radius: 10px;
  padding: 2px;
  cursor: pointer;
  background: none;
  flex-shrink: 0;
}
.banner-color-preview {
  flex: 1;
  min-width: 200px;
  height: 56px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  padding: 0 18px;
  transition: background .2s;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.15);
}
.banner-color-preview span {
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  text-shadow: 0 1px 3px rgba(0,0,0,.4);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Offres réservées (profil recruteur) ─────────────────────── */
.careers-reserved-block { margin-top: 36px; }
.careers-reserved-block__header {
  display: flex;
  align-items: center;
  font-size: 13px;
  font-weight: 700;
  color: #7c3aed;
  background: #f5f3ff;
  border: 1.5px solid #c4b5fd;
  border-radius: 10px 10px 0 0;
  padding: 10px 16px;
  margin-bottom: 0;
}
.careers-reserved-block .careers-jobs-list { margin-top: 0; }
.careers-reserved-block .careers-job {
  border-radius: 0;
  border-top: none;
}
.careers-reserved-block .careers-job:last-child { border-radius: 0 0 10px 10px; }
.careers-job--reserved { border-left: 3px solid #7c3aed !important; }

/* ── Responsive careers ───────────────────────────────────────── */
@media (max-width: 760px) {
  .careers-hero__inner { padding: 24px 16px 20px; gap: 16px; }
  .careers-hero__actions { flex-direction: row; flex-wrap: wrap; }
  .careers-hero__stat { padding: 12px 16px; }
  .careers-hero__name { font-size: 20px; }
  .careers-job__body { flex-direction: column; align-items: flex-start; }
  .careers-job__cta { align-self: flex-end; }
  .careers-spontaneous { padding: 20px; }
  .careers-about { padding: 22px 18px; }
}

/* ── Candidatures spontanées (mes-annonces) ─────────────────── */
.spontaneous-section { margin-top: 48px; }
.spontaneous-section__title {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 16px;
  color: var(--color-text);
  display: flex;
  align-items: center;
  gap: 10px;
}
.spontaneous-section__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 20px;
  background: #7c3aed;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
}
.spontaneous-list { display: flex; flex-direction: column; gap: 10px; }
.spontaneous-item {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 14px 18px;
  transition: box-shadow .15s;
}
.spontaneous-item:hover { box-shadow: 0 4px 14px rgba(0,0,0,.06); }
.spontaneous-item__avatar img { border-radius: 50%; width: 42px; height: 42px; display: block; }
.spontaneous-item__info { flex: 1; min-width: 0; }
.spontaneous-item__name { font-size: 14px; font-weight: 700; color: var(--color-text); margin: 0 0 4px; }
.spontaneous-item__preview { font-size: 13px; color: #777; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.spontaneous-item__date { font-size: 11px; color: #aaa; white-space: nowrap; }
.spontaneous-item__actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

/* ── "En savoir plus" accordion (page d'accueil) ─────────────── */
.seo-accordion {
  background: transparent;
  color: #fff;
  padding: 40px 16px;
  display: flex;
  justify-content: center;
}
.seo-accordion details {
  width: 100%;
  max-width: 860px;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #e0e0e0;
  box-shadow: 0 2px 12px rgba(0,0,0,.07);
}
.seo-accordion summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 28px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  user-select: none;
  color: #fff;
  background: #930022;
  transition: background .2s;
}
.seo-accordion summary::-webkit-details-marker { display: none; }
.seo-accordion summary:hover { background: #7a001c; }
.seo-accordion summary .seo-accordion__arrow {
  flex-shrink: 0;
  transition: transform .3s;
}
.seo-accordion details[open] summary .seo-accordion__arrow { transform: rotate(180deg); }
.seo-accordion__body {
  padding: 28px 32px 36px;
  border-top: none;
  background: #fff;
}
.seo-accordion__body h2 {
  font-size: 18px;
  font-weight: 700;
  margin: 28px 0 8px;
  color: #1a1a1a;
  border-bottom: 2px solid #930022;
  padding-bottom: 6px;
}
.seo-accordion__body h2:first-child { margin-top: 0; }
.seo-accordion__body p {
  color: #444;
  font-size: 15px;
  line-height: 1.75;
  margin-bottom: 14px;
}
.seo-accordion__body ul {
  list-style: disc;
  padding-left: 24px;
  margin-bottom: 14px;
}
.seo-accordion__body ul li {
  list-style: disc;
  color: #444;
  font-size: 15px;
  line-height: 1.7;
  margin-bottom: 6px;
}

/* ── Bannière université (offres-reservees + verification) ──── */
.univ-page-hero {
  position: relative;
  width: 100%;
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #1a1a2e;
}
.univ-page-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.univ-page-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,.45) 0%, rgba(0,0,0,.62) 100%);
}
.univ-page-hero__content {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 48px 20px;
}
.univ-page-hero__eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  margin-bottom: 10px;
}
.univ-page-hero__title {
  font-size: clamp(22px, 4vw, 38px);
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  margin: 0;
  text-shadow: 0 2px 12px rgba(0,0,0,.4);
}
.univ-page-hero__sub {
  margin-top: 10px;
  font-size: 15px;
  color: rgba(255,255,255,.8);
}

/* ── Filtre localisation rayon (archive) ─────────────────────── */
.location-autocomplete { position: relative; }
.location-autocomplete input {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 14px;
  background: #fff;
}
.location-autocomplete input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(147,0,34,.1);
}
.location-suggestions {
  position: absolute;
  top: calc(100% + 4px);
  left: 0; right: 0;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  list-style: none;
  padding: 4px 0;
  z-index: 200;
  max-height: 220px;
  overflow-y: auto;
}
.location-suggestions li {
  padding: 9px 14px;
  font-size: 13px;
  cursor: pointer;
  color: var(--color-text);
  line-height: 1.4;
}
.location-suggestions li:hover { background: var(--color-bg-light); }
.location-clear {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-text-muted);
  font-size: 16px;
  line-height: 1;
  padding: 2px;
}
.filter-group__radius-label {
  font-size: 12px;
  color: var(--color-text-muted);
  margin-top: 6px;
  display: block;
}

/* ── Sender name link in chat modal ──────────────────────────── */
.chat-msg__sender-link {
  color: var(--color-text-light);
  font-weight: 600;
  transition: color .15s;
}
.chat-msg__sender-link:hover { color: #333; }

/* ── Page récapitulatif candidatures ─────────────────────────── */
/* ── Récapitulatif candidatures — design moderne ─────────────── */
.recap-page-title { font-size: 22px; font-weight: 800; margin-bottom: 4px; }
.recap-page-sub { font-size: 14px; color: var(--color-text-muted); margin-bottom: 24px; }

/* Segmented control tabs */
.recap-switcher {
  display: flex;
  width: 100%;
  background: var(--color-bg-grey);
  border-radius: 10px;
  padding: 4px;
  gap: 2px;
  margin-bottom: 24px;
}
.recap-switcher__btn { flex: 1; justify-content: center; }
.recap-switcher__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 7px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text-light);
  transition: background .18s, color .18s, box-shadow .18s;
  white-space: nowrap;
}
.recap-switcher__btn:hover { color: var(--color-text); }
.recap-switcher__btn--active {
  background: #fff;
  color: var(--color-text);
  box-shadow: 0 1px 4px rgba(0,0,0,.10);
}
.recap-switcher__count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 20px; height: 20px;
  border-radius: 10px;
  font-size: 11px; font-weight: 700;
  padding: 0 6px;
  background: var(--color-border);
  color: var(--color-text-muted);
  transition: background .18s, color .18s;
}
.recap-switcher__btn--active .recap-switcher__count {
  background: var(--color-primary);
  color: #fff;
}
.recap-switcher__count--purple {
  background: #ede9fe;
  color: #7c3aed;
}
.recap-switcher__btn--active .recap-switcher__count--purple {
  background: #7c3aed;
  color: #fff;
}

/* Panel */
.recap-panel { display: none; }
.recap-panel--active { display: block; }

/* Conversation list */
.recap-inbox {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.recap-inbox__row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 13px 18px;
  border-bottom: 1px solid var(--color-border);
  cursor: pointer;
  transition: background .15s;
  position: relative;
}
.recap-inbox__row:last-child { border-bottom: none; }
.recap-inbox__row:hover { background: var(--color-bg-light); }
.recap-inbox__row--unread { background: #fdfaf9; }
.recap-inbox__row--unread .recap-inbox__name { font-weight: 800; }
.recap-inbox__row--unread .recap-inbox__preview { color: var(--color-text); font-weight: 500; }

.recap-inbox__avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  background: var(--color-bg-grey);
}
.recap-inbox__body { flex: 1; min-width: 0; }
.recap-inbox__top {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 3px;
}
.recap-inbox__name {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}
.recap-inbox__tag {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; font-weight: 700;
  padding: 2px 7px;
  border-radius: 10px;
  white-space: nowrap;
  flex-shrink: 0;
}
.recap-inbox__tag--offre  { background: rgba(147,0,34,.08);  color: var(--color-primary); }
.recap-inbox__tag--spon   { background: #ede9fe; color: #7c3aed; }
.recap-inbox__preview {
  font-size: 13px;
  color: var(--color-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.recap-inbox__right {
  display: flex; flex-direction: column;
  align-items: flex-end; gap: 5px;
  flex-shrink: 0;
}
.recap-inbox__date { font-size: 11px; color: var(--color-text-muted); }
.recap-inbox__unread {
  background: var(--color-primary);
  color: #fff;
  font-size: 10px; font-weight: 700;
  min-width: 18px; height: 18px;
  border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 5px;
}
.recap-inbox__unread--purple { background: #7c3aed; }

/* ── Ligne archivée ─────────────────────────────────── */
.recap-inbox__row--archived { opacity: .85; }
.recap-inbox__row--archived:hover { opacity: 1; }
.recap-inbox__tag--archived {
  background: #f3f4f6; color: #777; border-radius: 20px;
  padding: 2px 7px; font-size: 10.5px; font-weight: 500;
  display: inline-flex; align-items: center; gap: 3px;
}

/* ── Section candidatures archivées (page dédiée) ───── */
.archived-rgpd-notice {
  display: flex; align-items: flex-start; gap: 8px;
  background: #f0f4ff; border: 1px solid #d0d9f0; border-radius: 8px;
  padding: 10px 14px; font-size: 12.5px; color: #444; line-height: 1.55;
  margin: 12px 0 24px;
}
.archived-offer-group { margin-bottom: 28px; }
.archived-offer-group__header {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; color: #333;
  padding: 8px 12px; background: #f6f7f8; border-radius: 8px 8px 0 0;
  border: 1px solid #e4e6ea;
}
.archived-offer-group__count {
  margin-left: auto; font-size: 11.5px; font-weight: 500;
  color: #888; background: #ececec; border-radius: 10px; padding: 1px 8px;
}
.archived-candidates {
  border: 1px solid #e4e6ea; border-top: none; border-radius: 0 0 8px 8px; overflow: hidden;
}
.archived-candidate-card {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px; border-bottom: 1px solid #f0f0f0; background: #fff;
  transition: background .12s;
}
.archived-candidate-card:last-child { border-bottom: none; }
.archived-candidate-card:hover { background: #fafafa; }
.archived-candidate-card__initials {
  width: 44px; height: 44px; border-radius: 50%;
  background: linear-gradient(135deg,#7a001a,#b00028);
  color: #fff; font-size: 15px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.archived-candidate-card__info { flex: 1; min-width: 0; }
.archived-candidate-card__name-link {
  display: inline-flex; align-items: center; gap: 2px;
  font-size: 14px; font-weight: 600; color: #1a1a1a; text-decoration: none;
}
.archived-candidate-card__name-link:hover { color: var(--color-primary); }
.archived-candidate-card__email {
  display: block; font-size: 12.5px; color: var(--color-primary);
  text-decoration: none; margin-top: 2px;
}
.archived-candidate-card__email:hover { text-decoration: underline; }
.archived-candidate-card__meta { font-size: 11.5px; color: #aaa; margin-top: 3px; }
.archived-candidate-card__attachments {
  display: flex; gap: 8px; flex-wrap: wrap; flex-shrink: 0;
}
.archived-attach-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 12px; border-radius: 7px;
  background: #fff0f0; border: 1px solid #f0d0d0; color: #222;
  font-size: 12px; text-decoration: none; transition: background .12s, border-color .12s;
}
.archived-attach-btn:hover { background: #ffe8e8; border-color: var(--color-primary); }
.archived-attach-btn--lm {
  background: #f5f5ff; border-color: #d8d8f0;
}
.archived-attach-btn--lm:hover { background: #ebebff; border-color: #7c3aed; }
.archived-attach-btn__icon {
  display: flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 5px;
  background: rgba(147,0,34,.1); color: var(--color-primary); flex-shrink: 0;
}
.archived-attach-btn--lm .archived-attach-btn__icon { background: rgba(124,58,237,.1); color: #7c3aed; }
.archived-attach-btn--conv { border-color: #d0e4ff; }
.archived-attach-btn--conv:hover { background: #e8f2ff; border-color: #3b82f6; }
.archived-attach-btn--conv .archived-attach-btn__icon { background: rgba(59,130,246,.1); color: #3b82f6; }
.archived-attach-btn__label { font-weight: 600; font-size: 12px; color: #222; }
.archived-attach-btn__sub { font-size: 10.5px; color: #999; }
.archived-no-attach { font-size: 12px; color: #bbb; align-self: center; }

/* ── Lien candidatures archivées (recapitulatif) ────── */
.recap-archived-link { margin-top: 28px; border-top: 1px solid #eee; padding-top: 20px; }
.recap-archived-link__btn {
  display: flex; align-items: center; gap: 10px;
  padding: 13px 16px; border-radius: 10px;
  border: 1px solid #e4e6ea; background: #fafafa;
  color: #333; text-decoration: none; font-size: 14px; font-weight: 600;
  transition: background .12s, border-color .12s;
}
.recap-archived-link__btn:hover { background: #f3f4f6; border-color: #ccc; color: #333; }
.recap-archived-link__count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 22px; height: 22px; border-radius: 11px;
  background: #e8e8e8; color: #555; font-size: 11.5px; font-weight: 700; padding: 0 7px;
}
.recap-archived-link__desc {
  font-size: 12px; color: #aaa; margin: 6px 0 0 2px;
}

.recap-inbox__open {
  opacity: 0;
  transition: opacity .15s;
  pointer-events: none;
}
.recap-inbox__row:hover .recap-inbox__open { opacity: 1; pointer-events: auto; }

.recap-empty {
  text-align: center;
  padding: 56px 20px;
  color: var(--color-text-muted);
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.recap-empty__icon {
  width: 52px; height: 52px;
  background: var(--color-bg-grey);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 16px;
  opacity: .5;
}
.recap-empty p { font-size: 14px; margin-top: 6px; }

/* Spontanées désactivées */
.recap-spontanee-disabled {
  display: flex; gap: 18px; align-items: flex-start;
  padding: 28px 24px;
  background: #fff8f0; border: 1.5px solid #f59e0b;
  border-radius: var(--radius-lg);
}
.recap-spontanee-disabled__icon {
  flex-shrink: 0; width: 52px; height: 52px;
  background: #fef3c7; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #d97706;
}
.recap-spontanee-disabled__body { flex: 1; }
.recap-spontanee-disabled__body strong { font-size: 15px; font-weight: 700; color: var(--color-text); }
.recap-spontanee-disabled__body p { font-size: 13.5px; color: var(--color-text-muted); margin-top: 5px; line-height: 1.55; }

/* Toggle label dans les réglages */
.toggle-label {
  display: flex !important; align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 10px; cursor: pointer; font-weight: 500 !important;
}
.toggle-label input[type="checkbox"] { margin-top: 2px; flex-shrink: 0; accent-color: var(--color-primary); width: 16px; height: 16px; cursor: pointer; }
.toggle-label__text { font-size: 14px; font-weight: 500; color: var(--color-text); }

@media (max-width: 640px) {
  .recap-switcher { width: 100%; }
  .recap-switcher__btn { flex: 1; justify-content: center; }
  .recap-inbox__name { max-width: 120px; }
}

/* ══════════════════════════════════════════════════════════════
   CVthèque EDS
══════════════════════════════════════════════════════════════ */

/* Hero bannière */
/* Transition fluide sur le filtrage AJAX */
#cvtheque-results {
  transition: opacity 0.18s ease;
}
#cvtheque-results.cvtheque-loading {
  opacity: 0.35;
  pointer-events: none;
}

.cvtheque-hero {
  position: relative;
  background: url('/wp-content/uploads/2026/05/universite-paris-1-pantheon-sorbonne.webp') center/cover no-repeat;
  padding: 64px 0 48px;
  color: #fff;
}
.cvtheque-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(147,0,34,.75) 0%, rgba(30,10,10,.6) 100%);
}
.cvtheque-hero__content { position: relative; z-index: 1; }
.cvtheque-hero__badge {
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(255,255,255,.15); backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 30px; padding: 6px 16px 6px 8px;
  font-size: 13px; font-weight: 500; margin-bottom: 16px;
}
.cvtheque-hero__badge-logo {
  display: flex; align-items: center; justify-content: center;
  background: #fff; border-radius: 20px;
  padding: 3px 8px; flex-shrink: 0;
}
.cvtheque-hero__title { font-size: 36px; font-weight: 800; margin: 0 0 8px; line-height: 1.1; }
.cvtheque-hero__sub { font-size: 16px; opacity: .85; margin: 0; }

/* Filtres */
.cvtheque-filters {
  background: #fff; border: 1px solid var(--color-border);
  border-radius: var(--radius-lg); padding: 20px 24px;
  margin-bottom: 24px; display: flex; flex-direction: column; gap: 16px;
}
.cvtheque-filters__group { display: flex; flex-direction: column; gap: 8px; }
.cvtheque-filters__subgroup {
  display: flex; flex-direction: column; gap: 8px;
  padding: 14px 16px; background: #fafafa;
  border: 1px solid var(--color-border); border-radius: 10px;
}
.cvtheque-filters__toggles {
  display: flex; flex-wrap: wrap; gap: 20px; align-items: center;
  padding-top: 4px; border-top: 1px solid var(--color-border);
  padding-top: 16px;
}
.cvtheque-filters__label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--color-text-muted); }
.cvtheque-filters__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.cvtheque-filters__select { padding: 8px 12px; border: 1.5px solid var(--color-border); border-radius: 8px; font-size: 14px; background: #f8f9fb; min-width: 220px; }
@media (max-width: 640px) {
  .cvtheque-filters__select { min-width: 0; width: 100%; }
}

/* Chips radio */
.cvtheque-chip {
  display: inline-block; padding: 6px 14px;
  border: 1.5px solid var(--color-border); border-radius: 20px;
  font-size: 13px; font-weight: 600; color: #555;
  cursor: pointer; transition: border-color .15s, background .15s, color .15s;
  background: #fafafa;
}
.cvtheque-chip input { display: none; }
.cvtheque-chip:hover { border-color: var(--color-primary); color: var(--color-primary); background: #fff5f7; }
.cvtheque-chip--active { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }

/* Toggle AFJE */
.cvtheque-toggle {
  display: inline-flex; align-items: center; gap: 10px;
  cursor: pointer; font-size: 14px; font-weight: 500;
}
.cvtheque-toggle input { display: none; }
.cvtheque-toggle__track {
  width: 36px; height: 20px; border-radius: 10px;
  background: #d1d5db; transition: background .2s; flex-shrink: 0;
  position: relative;
}
.cvtheque-toggle__track::after {
  content: ''; position: absolute; top: 3px; left: 3px;
  width: 14px; height: 14px; border-radius: 50%;
  background: #fff; transition: transform .2s;
}
.cvtheque-toggle input:checked ~ .cvtheque-toggle__track { background: var(--color-primary); }
.cvtheque-toggle input:checked ~ .cvtheque-toggle__track::after { transform: translateX(16px); }
.cvtheque-toggle__text { color: var(--color-text); }
.cvtheque-toggle:has(input:checked) .cvtheque-toggle__text { color: var(--color-primary); font-weight: 600; }

/* Compteur */
.cvtheque-meta { font-size: 13px; color: var(--color-text-muted); margin-bottom: 20px; }

/* Grille de cartes */
.cvtheque-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 20px;
}
.cvtheque-card {
  background: #fff; border: 1px solid var(--color-border);
  border-radius: var(--radius-lg); padding: 28px 16px 20px;
  display: flex; flex-direction: column; align-items: center;
  text-align: center; position: relative;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
  transition: box-shadow .2s, transform .15s;
}
.cvtheque-card:hover { box-shadow: 0 6px 20px rgba(147,0,34,.12); transform: translateY(-2px); }
.cvtheque-card__overlay { position: absolute; inset: 0; border-radius: var(--radius-lg); z-index: 1; }
.cvtheque-card__avatar {
  width: 78px; height: 78px; border-radius: 50%; object-fit: cover;
  border: 3px solid var(--color-primary); margin-bottom: 12px; position: relative; z-index: 0;
}
.cvtheque-card__name {
  font-size: 15px; font-weight: 700; color: var(--color-primary);
  margin-bottom: 8px; line-height: 1.3; position: relative; z-index: 0;
}
.cvtheque-card__badge {
  display: inline-block; background: var(--color-primary); color: #fff;
  font-size: 11px; font-weight: 700; letter-spacing: .03em;
  border-radius: 20px; padding: 3px 10px; margin-bottom: 8px;
  position: relative; z-index: 0;
}
.cvtheque-card__master {
  font-size: 12px; color: var(--color-text-muted); margin: 0 0 10px;
  line-height: 1.4; position: relative; z-index: 0;
}
.cvtheque-card__tags { display: flex; flex-wrap: wrap; gap: 5px; justify-content: center; margin-bottom: 14px; position: relative; z-index: 0; }
.cvtheque-card__tag {
  font-size: 10px; font-weight: 700; border-radius: 4px;
  padding: 2px 7px; border: 1px solid;
}
.cvtheque-card__tag--magistere { background: #f0f4ff; color: #3730a3; border-color: #c7d2fe; }
.cvtheque-card__tag--college   { background: #fef9ec; color: #92400e; border-color: #fde68a; }
.cvtheque-card__actions { display: flex; align-items: center; gap: 10px; margin-top: auto; position: relative; z-index: 2; }
.cvtheque-card__cv-btn {
  background: var(--color-primary); color: #fff;
  padding: 8px 16px; border-radius: 8px;
  font-size: 13px; font-weight: 600; text-decoration: none;
  transition: background .15s;
}
.cvtheque-card__cv-btn:hover { background: #7a001c; }
.cvtheque-card__linkedin { display: inline-flex; align-items: center; }
.cvtheque-card__no-cv { font-size: 12px; color: #ccc; }

/* Nav "CVthèque EDS" */
.site-nav__link--cvtheque { color: var(--color-primary) !important; font-weight: 700; }
.site-nav__item--cvtheque .site-nav__link--cvtheque { border-bottom: 2px solid var(--color-primary); }

/* Responsive */
@media (max-width: 640px) {
  .cvtheque-hero__title { font-size: 26px; }
  .cvtheque-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .cvtheque-card { padding: 20px 10px 16px; }
  .cvtheque-filters { padding: 16px; }
  .cvtheque-filters__row--toggles { flex-direction: column; gap: 12px; }
}

/* ── Profile completion widget ── */
.profile-completion {
  background: #fff;
  border: 1.5px solid #e8e8e8;
  border-radius: 16px;
  padding: 20px 24px;
  margin-bottom: 28px;
}
.profile-completion__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.profile-completion__label {
  font-size: 14px;
  font-weight: 600;
  color: #111;
}
.profile-completion__pct {
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
}
.profile-completion__bar-track {
  height: 8px;
  background: #f0f0f0;
  border-radius: 99px;
  overflow: hidden;
  margin-bottom: 16px;
}
.profile-completion__bar-fill {
  height: 100%;
  border-radius: 99px;
  transition: width .6s ease;
}
.profile-completion__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
}
.profile-completion__step {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #999;
}
.profile-completion__step--done {
  color: #333;
  font-weight: 500;
}

/* ── Profil public recruteur — domaines + pourquoi rejoindre ── */
.careers-about__domaines {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}
.careers-about__domaine-tag {
  background: #f5f0f2;
  color: #930022;
  border: 1px solid #f0d0d8;
  border-radius: 20px;
  padding: 4px 12px;
  font-size: 13px;
  font-weight: 500;
}
.careers-about__pourquoi {
  margin-top: 28px;
  background: #fafafa;
  border-left: 3px solid #930022;
  border-radius: 0 12px 12px 0;
  padding: 20px 22px;
}
.careers-about__pourquoi-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  color: #111;
  margin: 0 0 12px;
}
.careers-about__pourquoi-body {
  font-size: 14px;
  color: #444;
  line-height: 1.7;
}

/* ════════════════════════════════════════
   SYSTÈME D'ENTRETIENS
════════════════════════════════════════ */

.status-badge--entretien_propose { background:#fff7ed;color:#c05621;border:1px solid #fed7aa; }
.status-badge--entretien_confirme { background:#f0fdf4;color:#166534;border:1px solid #bbf7d0; }
.status-badge--entretien_refuse { background:#fef2f2;color:#991b1b;border:1px solid #fecaca; }

.entretien-modal { display:none;position:fixed;inset:0;z-index:11000;align-items:center;justify-content:center; }
.entretien-modal.is-open { display:flex; }
.entretien-modal__backdrop { position:absolute;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(2px); }
.entretien-modal__box { position:relative;z-index:1;background:#fff;border-radius:16px;padding:32px;max-width:520px;width:calc(100% - 32px);max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.18); }
.entretien-modal__title { font-size:1.1rem;font-weight:700;color:#111;margin:0 0 20px; }
.entretien-modal__close { position:absolute;top:16px;right:16px;background:none;border:none;cursor:pointer;color:#888;padding:4px;line-height:1; }

.entretien-type-toggle { display:flex;gap:8px;margin-bottom:20px; }
.entretien-type-btn { flex:1;padding:10px;border:2px solid #e5e7eb;border-radius:10px;background:#fff;cursor:pointer;font-size:14px;font-weight:500;color:#555;transition:.15s; }
.entretien-type-btn.active { border-color:var(--color-primary);background:#fff5f7;color:var(--color-primary); }

.entretien-field { margin-bottom:14px; }
.entretien-field label { display:block;font-size:13px;font-weight:600;color:#333;margin-bottom:5px; }
.entretien-field input, .entretien-field select, .entretien-field textarea { width:100%;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;color:#111;box-sizing:border-box;transition:.15s; }
.entretien-field input:focus, .entretien-field select:focus, .entretien-field textarea:focus { outline:none;border-color:var(--color-primary); }
.entretien-row { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
@media (max-width: 600px) {
  .entretien-row { grid-template-columns: 1fr; }
}
.entretien-modal__actions { display:flex;gap:10px;margin-top:20px; }
.entretien-modal__error { background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:14px;display:none; }

.btn-proposer-entretien { display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:500;color:var(--color-primary);background:#fff5f7;border:1px solid #ffd6e0;border-radius:6px;cursor:pointer;transition:.15s;white-space:nowrap; }
.btn-proposer-entretien:hover { background:#ffe4ec; }

.entretien-card { margin-top:8px;border:1.5px solid #e5e7eb;border-radius:10px;padding:14px 16px;background:#fafafa; }
.entretien-card--propose { border-color:#fed7aa;background:#fffbf5; }
.entretien-card--confirme { border-color:#bbf7d0;background:#f0fdf4; }
.entretien-card--refuse { border-color:#fecaca;background:#fef2f2; }
.entretien-card__header { display:flex;align-items:center;gap:8px;margin-bottom:10px; }
.entretien-card__icon { width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center; }
.entretien-card--propose .entretien-card__icon { background:#fed7aa; }
.entretien-card--confirme .entretien-card__icon { background:#bbf7d0; }
.entretien-card--refuse .entretien-card__icon { background:#fecaca; }
.entretien-card__label { font-size:13px;font-weight:700; }
.entretien-card--propose .entretien-card__label { color:#c05621; }
.entretien-card--confirme .entretien-card__label { color:#166534; }
.entretien-card--refuse .entretien-card__label { color:#991b1b; }
.entretien-card__details { font-size:13px;color:#555;line-height:1.6; }
.entretien-card__detail { display:flex;align-items:flex-start;gap:6px;margin-bottom:4px; }
.entretien-card__actions { display:flex;gap:8px;margin-top:12px; }
.btn-accept-entretien { padding:7px 16px;background:#166534;color:#fff;border:none;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;transition:.15s; }
.btn-accept-entretien:hover { background:#14532d; }
.btn-refuse-entretien { padding:7px 16px;background:#fff;color:#991b1b;border:1.5px solid #fecaca;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;transition:.15s; }
.btn-refuse-entretien:hover { background:#fef2f2; }

.entretiens-list { display:flex;flex-direction:column;gap:12px; }
.entretien-row-card { background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;padding:18px 20px;transition:.15s; }
.entretien-row-card:hover { box-shadow:0 2px 12px rgba(0,0,0,.07); }
.entretien-row-card__top { display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap; }
.entretien-row-card__name { font-weight:700;font-size:15px;color:#111; }
.entretien-row-card__offre { font-size:13px;color:#888;margin-top:2px; }
.entretien-row-card__meta { display:flex;gap:14px;margin-top:10px;flex-wrap:wrap;font-size:13px;color:#555; }
.entretien-row-card__meta-item { display:flex;align-items:center;gap:5px; }
/* Badge vert "X à venir" pour les entretiens (sidebar + header dropdown) */
.rdv-badge {
  display: inline-flex; align-items: center;
  padding: 2px 8px; border-radius: 20px;
  font-size: 11px; font-weight: 700; white-space: nowrap;
  background: #dcfce7; color: #166534; border: 1px solid #bbf7d0;
}
.entretien-badge { display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600; }
.entretien-badge--propose { background:#fff7ed;color:#c05621;border:1px solid #fed7aa; }
.entretien-badge--confirme { background:#f0fdf4;color:#166534;border:1px solid #bbf7d0; }
.entretien-badge--refuse { background:#fef2f2;color:#991b1b;border:1px solid #fecaca; }
.entretien-badge--passe  { background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb; }
.entretien-badge--annule { background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb; }
.entretien-row-card__actions { margin-top:12px;display:flex;gap:8px;flex-wrap:wrap; }
.entretien-row-card__top-right { display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0; }

/* ── Chat : timeline d'évènements entretien ──────────────────── */
.chat-event {
  display: flex; flex-direction: column; align-items: center;
  gap: 5px; margin: 18px 0; text-align: center;
}
.chat-event__meta { font-size: 11px; color: #9ca3af; margin-bottom: 2px; }

/* Badge seul (sans message) */
.chat-event__badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 14px; border-radius: 20px;
  font-size: 12px; font-weight: 600; border: 1px solid transparent;
}
.chat-event__badge--propose  { background:#eff6ff; color:#2563eb; border-color:#bfdbfe; }
.chat-event__badge--confirme { background:#f0fdf4; color:#16a34a; border-color:#bbf7d0; }
.chat-event__badge--refuse   { background:#fef2f2; color:#dc2626; border-color:#fecaca; }
.chat-event__badge--annule   { background:#f3f4f6; color:#6b7280; border-color:#e5e7eb; }
.chat-event__badge--report   { background:#fff7ed; color:#d97706; border-color:#fed7aa; }

/* Carte unifiée badge + message */
.chat-event__card {
  border-radius: 14px; border: 1px solid transparent;
  overflow: hidden; min-width: 200px; max-width: 320px; text-align: left;
}
.chat-event__badge-row {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 14px; font-size: 12px; font-weight: 600;
  border-bottom: 1px solid transparent;
}
.chat-event__message-row {
  padding: 8px 14px 10px; font-size: 13px;
  font-style: italic; line-height: 1.5;
}
.chat-event__card--propose  { background:#eff6ff; border-color:#bfdbfe; }
.chat-event__card--propose  .chat-event__badge-row { color:#2563eb; border-bottom-color:#bfdbfe; }
.chat-event__card--propose  .chat-event__message-row { color:#1e40af; }
.chat-event__card--confirme { background:#f0fdf4; border-color:#bbf7d0; }
.chat-event__card--confirme .chat-event__badge-row { color:#16a34a; border-bottom-color:#bbf7d0; }
.chat-event__card--confirme .chat-event__message-row { color:#166534; }
.chat-event__card--refuse   { background:#fef2f2; border-color:#fecaca; }
.chat-event__card--refuse   .chat-event__badge-row { color:#dc2626; border-bottom-color:#fecaca; }
.chat-event__card--refuse   .chat-event__message-row { color:#991b1b; }
.chat-event__card--annule   { background:#f3f4f6; border-color:#e5e7eb; }
.chat-event__card--annule   .chat-event__badge-row { color:#6b7280; border-bottom-color:#e5e7eb; }
.chat-event__card--annule   .chat-event__message-row { color:#4b5563; }
.chat-event__card--report   { background:#fff7ed; border-color:#fed7aa; }
.chat-event__card--report   .chat-event__badge-row { color:#d97706; border-bottom-color:#fed7aa; }
.chat-event__card--report   .chat-event__message-row { color:#92400e; }

/* ── Chat : bouton proposer entretien ────────────────────────── */
.chat-modal__secondary-actions {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 0 0; border-top: 1px solid var(--color-border);
  margin-top: 6px;
}
.chat-modal__propose-btn {
  display: flex; align-items: center; gap: 6px;
  padding: 0 14px; height: 34px; border-radius: 8px;
  background: #f0fdf4; border: 1.5px solid #bbf7d0;
  color: #166534; font-size: 12px; font-weight: 600;
  cursor: pointer; white-space: nowrap; flex-shrink: 0;
  transition: background .15s, border-color .15s;
}
.chat-modal__propose-btn:hover { background: #dcfce7; border-color: #86efac; }

/* ── Modal gestion rendez-vous ───────────────────────────────── */
.gestion-rdv-modal {
  position: fixed; inset: 0; z-index: 10500;
  display: flex; align-items: center; justify-content: center;
  padding: 16px; pointer-events: none; opacity: 0;
  transition: opacity .2s;
}
.gestion-rdv-modal.is-open { opacity: 1; pointer-events: all; }
.gestion-rdv-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.45); cursor: pointer;
}
.gestion-rdv-modal__box {
  position: relative; background: #fff; border-radius: 14px;
  padding: 28px 28px 24px; max-width: 460px; width: 100%;
  box-shadow: 0 8px 40px rgba(0,0,0,.18);
  transform: scale(.96); transition: transform .2s;
}
.gestion-rdv-modal.is-open .gestion-rdv-modal__box { transform: scale(1); }
.gestion-rdv-modal__close {
  position: absolute; top: 14px; right: 14px;
  background: none; border: none; cursor: pointer;
  color: #888; padding: 4px; line-height: 1;
}
.gestion-rdv-modal__close:hover { color: #333; }
.gestion-rdv-modal__title { font-size: 17px; font-weight: 700; margin: 0 0 18px; }
.gestion-rdv-modal__options { display: flex; gap: 10px; margin-bottom: 18px; }
.gestion-rdv-modal__opt-btn {
  flex: 1; padding: 10px 0; border-radius: 8px;
  border: 1.5px solid #e5e7eb; background: #fff;
  font-size: 14px; font-weight: 600; cursor: pointer;
  color: #333; transition: .15s;
}
.gestion-rdv-modal__opt-btn:hover,
.gestion-rdv-modal__opt-btn.active { border-color: #930022; color: #930022; background: #fff8f9; }
.gestion-rdv-modal__opt-btn--annuler.active { border-color: #dc2626; color: #dc2626; background: #fef2f2; }
.gestion-rdv-modal__message-wrap { display: none; }
.gestion-rdv-modal__message-wrap.visible { display: block; }
.gestion-rdv-modal__message-wrap label { font-size: 13px; font-weight: 600; display: block; margin-bottom: 6px; }
.gestion-rdv-modal__message-wrap textarea {
  width: 100%; border: 1.5px solid #e5e7eb; border-radius: 8px;
  padding: 10px 12px; font-size: 13px; resize: vertical; min-height: 80px;
  font-family: inherit; transition: border-color .15s;
}
.gestion-rdv-modal__message-wrap textarea:focus { border-color: #930022; outline: none; }
.gestion-rdv-modal__actions { display: flex; gap: 10px; margin-top: 16px; }
.gestion-rdv-modal__error { color: #dc2626; font-size: 13px; margin-top: 8px; display: none; }

/* ── Bouton gérer rendez-vous sur la page mes entretiens ─────── */
.btn-gerer-rdv {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 6px 14px; border-radius: 8px;
  border: 1.5px solid #e5e7eb; background: #fff;
  font-size: 12px; font-weight: 600; color: #555;
  cursor: pointer; transition: .15s; margin-top: 10px;
}
.btn-gerer-rdv:hover { border-color: #930022; color: #930022; background: #fff8f9; }

/* ── Add to calendar ─────────────────────────────────────────── */
.cal-trigger {
  cursor: pointer; display: inline-flex; align-items: center; gap: 4px;
  color: #555; text-decoration: none;
  border-bottom: 1px dashed #ccc; padding-bottom: 1px;
  transition: color .15s;
}
.cal-trigger:hover { color: #930022; border-color: #930022; }
.cal-dropdown {
  position: absolute; background: #fff; border: 1px solid #e5e7eb;
  border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,.12);
  min-width: 200px; z-index: 9000; overflow: hidden;
  opacity: 0; pointer-events: none; transform: translateY(4px);
  transition: opacity .15s, transform .15s;
}
.cal-dropdown.is-open { opacity: 1; pointer-events: all; transform: translateY(0); }
.cal-dropdown a {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; font-size: 13px; color: #333;
  text-decoration: none; transition: background .1s;
}
.cal-dropdown a:hover { background: #f9f9f9; color: #930022; }
.cal-wrap { position: relative; display: inline-block; }

/* ── Modale de confirmation Lexjob ───────────────────────────── */
.lj-confirm { position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .2s; }
.lj-confirm.is-open { pointer-events:auto;opacity:1; }
.lj-confirm__backdrop { position:absolute;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(2px); }
.lj-confirm__box {
  position:relative;background:#fff;border-radius:16px;padding:32px 28px 24px;
  max-width:420px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,.2);
  transform:translateY(12px);transition:transform .2s;text-align:center;
}
.lj-confirm.is-open .lj-confirm__box { transform:translateY(0); }
.lj-confirm__icon { width:52px;height:52px;border-radius:50%;background:#fff5f5;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;color:#930022; }
.lj-confirm__msg { font-size:15px;color:#1a1a2e;line-height:1.5;margin:0 0 24px; }
.lj-confirm__actions { display:flex;gap:10px;justify-content:center;flex-wrap:wrap; }
.lj-confirm__actions .btn { min-width:130px; }

/* ── Recap : sections par offre ──────────────────────────────── */
.recap-offer-section { margin-bottom: 24px; }
.recap-offer-section__header {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  background: #f8f8fc;
  border: 1px solid #e5e7eb;
  border-radius: 10px 10px 0 0;
  font-size: 13px; font-weight: 700; color: #1a1a2e;
}
.recap-offer-section__header svg { flex-shrink: 0; color: #930022; }
.recap-offer-section__header span:first-of-type { flex: 1; }
.recap-offer-section__count {
  background: #930022; color: #fff;
  font-size: 10px; font-weight: 700;
  min-width: 18px; height: 18px; line-height: 18px;
  border-radius: 9px; text-align: center; padding: 0 5px;
}
.recap-offer-section .recap-inbox { border-top: none; border-radius: 0 0 10px 10px; overflow: hidden; }
.recap-offer-section .recap-inbox__row:last-child { border-bottom: none; }

/* ── Entretien notification badges ───────────────────────────── */
.entretien-notif-badge {
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 700;
  min-width: 18px; height: 18px; line-height: 1;
  border-radius: 9px; padding: 0 5px;
  margin-left: 6px; flex-shrink: 0;
}
.entretien-notif-badge--orange {
  background: #fed7aa; color: #9a3412; border: 1px solid #fdba74;
}
.entretien-notif-badge--red {
  background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5;
}

/* ── Chips entretien par ligne recap-inbox ───────────────────── */
.entretien-status-chip {
  display: inline-flex; align-items: center;
  font-size: 10px; font-weight: 600; line-height: 1;
  padding: 3px 8px; border-radius: 20px; border: 1px solid;
  margin-top: 5px; white-space: nowrap;
}
.entretien-status-chip--green  { background: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.entretien-status-chip--orange { background: #fff7ed; color: #9a3412; border-color: #fed7aa; }
.entretien-status-chip--red    { background: #fef2f2; color: #991b1b; border-color: #fecaca; }

/* ── Favoris : bouton étoile sur les cartes ─────────────────── */
.listing-card { position: relative; }
.listing-card__fav-btn {
  position: absolute; top: 10px; right: 10px; z-index: 2;
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(255,255,255,0.92); border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: #c8a020; transition: .15s; box-shadow: 0 1px 4px rgba(0,0,0,.12);
}
.listing-card__fav-btn:hover { background: #fff; transform: scale(1.1); }
.listing-card__fav-btn.is-active { color: #d97706; }

/* ── Badge "Archivée" (annonces expirées) ───────────────────── */
.status-badge--archivee {
  background: #f3f4f6; color: #6b7280; border: 1px solid #e5e7eb;
}

/* ── Banners vérification email (page connexion) ─────────────── */
.verify-banner {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 18px 20px; border-radius: 10px; margin-bottom: 24px;
  border: 1px solid; font-size: 14px; line-height: 1.5;
}
.verify-banner__icon { flex-shrink: 0; margin-top: 2px; }
.verify-banner--sent {
  background: #f0fdf4; border-color: #86efac; color: #14532d;
}
.verify-banner--sent .verify-banner__icon { color: #16a34a; }
.verify-banner--warning {
  background: #fffbeb; border-color: #fcd34d; color: #78350f;
}
.verify-banner--warning .verify-banner__icon { color: #d97706; }
.verify-banner--error {
  background: #fef2f2; border-color: #fca5a5; color: #7f1d1d;
}
.verify-banner--error .verify-banner__icon { color: #dc2626; }

/* ── Pagination ─────────────────────────────────────────────── */
.lexjob-pagination {
  display: flex; align-items: center; justify-content: center;
  gap: 4px; margin: 28px 0 8px; flex-wrap: wrap;
}
.lexjob-pagination__btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 8px;
  border: 1px solid #e5e7eb; background: #fff; color: #374151;
  text-decoration: none; transition: .15s;
}
.lexjob-pagination__btn:hover { background: #f9fafb; border-color: #d1d5db; }
.lexjob-pagination__btn--disabled { opacity: .4; cursor: default; pointer-events: none; }
.lexjob-pagination__page {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 36px; height: 36px; padding: 0 6px; border-radius: 8px;
  border: 1px solid #e5e7eb; background: #fff; color: #374151;
  font-size: 14px; font-weight: 500; text-decoration: none; transition: .15s;
}
.lexjob-pagination__page:hover { background: #f9fafb; border-color: #d1d5db; }
.lexjob-pagination__page--active {
  background: var(--color-primary); border-color: var(--color-primary);
  color: #fff; cursor: default;
}
.lexjob-pagination__ellipsis {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 36px; height: 36px; color: #9ca3af; font-size: 14px;
}

/* ── Entretiens archivés ────────────────────────────────────── */
.entretiens-archived-section { margin-top: 32px; border-top: 1px solid #f3f4f6; padding-top: 8px; }
.entretiens-archived-toggle {
  display: flex; align-items: center; gap: 8px; width: 100%;
  background: none; border: none; padding: 12px 4px; cursor: pointer;
  font-size: 14px; font-weight: 600; color: #6b7280; text-align: left;
}
.entretiens-archived-toggle:hover { color: #374151; }
.entretiens-archived-toggle__count {
  display: inline-flex; align-items: center; justify-content: center;
  background: #f3f4f6; color: #6b7280; font-size: 11px; font-weight: 700;
  border-radius: 20px; padding: 2px 8px; min-width: 22px;
}
.entretiens-archived-toggle__chevron {
  margin-left: auto; transition: transform .2s; flex-shrink: 0;
}
.entretiens-archived-toggle.is-open .entretiens-archived-toggle__chevron {
  transform: rotate(180deg);
}
.entretiens-archived-list { padding-top: 12px; }
.entretien-row-card--archived { opacity: .7; }

/* ── Settings cards (page Réglages / Mon compte) ────────────── */
.settings-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 24px;
  padding: 24px;
}
.settings-card__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: -24px -24px 24px -24px;
  padding: 14px 24px;
  border-bottom: 1px solid #f3f4f6;
  background: #f9fafb;
}
.settings-card__header > svg,
.settings-card__header > img {
  flex-shrink: 0;
  color: var(--color-primary, #930022);
  opacity: .75;
}
.settings-card__title {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #374151;
  margin: 0;
}
/* Vertical rhythm — all direct non-header children get spacing between them */
.settings-card > *:not(.settings-card__header) + *:not(.settings-card__header) { margin-top: 20px; }
/* Same inside nested wrappers (paris1-block, etc.) */
.settings-card .form-group + .form-group { margin-top: 20px; }
/* Exception : inside .form-row the two columns sit side-by-side, no top margin */
.form-row .form-group + .form-group { margin-top: 0; }
/* Toggle labels and help text floating inside cards (AFJE, Candidatures) */
.settings-card > .toggle-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 10px;
}
.settings-card > p.form-help { margin-top: 4px; margin-bottom: 0; }

/* Accent card — AFJE */
.settings-card--afje { border-color: #bfdbfe; }
.settings-card--afje .settings-card__header {
  background: #dbeafe;
  border-bottom-color: #bfdbfe;
}
.settings-card--afje .settings-card__header > img { opacity: 1; }

/* Sub-title separator inside a card (e.g. "Changer le mot de passe") */
.settings-card__sub-title {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #6b7280;
  margin: 24px -24px 20px;
  padding: 18px 24px 0;
  border-top: 1px solid #f3f4f6;
}

/* ── Modal "Modifications non enregistrées" ─────────────────── */
.lexjob-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9000;
  align-items: center;
  justify-content: center;
}
.lexjob-modal.is-open { display: flex; }
.lexjob-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.5);
}
.lexjob-modal__box {
  position: relative;
  background: #fff;
  border-radius: 16px;
  padding: 32px 28px 28px;
  max-width: 420px;
  width: 92%;
  box-shadow: 0 20px 60px rgba(0,0,0,.18);
  z-index: 1;
  text-align: center;
}
.unsaved-modal__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #fff7ed;
  color: #ea580c;
  margin-bottom: 16px;
}
.unsaved-modal__title {
  font-size: 17px;
  font-weight: 700;
  color: #111827;
  margin-bottom: 10px;
}
.unsaved-modal__text {
  font-size: 14px;
  color: #6b7280;
  line-height: 1.55;
  margin-bottom: 24px;
}
.unsaved-modal__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.unsaved-modal__actions .btn { width: 100%; justify-content: center; }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE MOBILE — Audit complet
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  /* Hero */
  .hero { min-height: 320px; padding-bottom: 32px; }
  .hero__subtitle { font-size: 14px; padding: 0 16px; }

  /* Archive */
  .archive-header { flex-direction: column; align-items: flex-start; gap: 8px; }
  .archive-header__count { font-size: 13px; }
  .archive-header__meta { flex-wrap: wrap; gap: 8px; }

  /* Single offre — conditions */
  .condition-item { flex-direction: column; gap: 2px; }
  .condition-item__label { min-width: 0; font-size: 12px; }

  /* Profil public */
  .profil-card__name { font-size: 20px; }
  .careers-hero__title { font-size: 22px; }
  .careers-hero__inner { padding: 24px 16px; }
  .careers-job__meta { gap: 8px; }

  /* Compte / settings */
  .account-main__title { font-size: 18px; }
  .settings-card { padding: 16px; }
  .settings-card__header { margin: -16px -16px 16px -16px; padding: 12px 16px; }
  .settings-card__sub-title { margin: 16px -16px 16px; padding: 14px 16px 0; }

  /* Pages statiques */
  .page-article__title { font-size: 22px; }
  .contact-page__title { font-size: 20px; }
  .submit-page__title { font-size: 20px; }

  /* Messagerie : liste au-dessus du chat */
  .messaging-layout { grid-template-columns: 1fr; min-height: auto; }
  .conversations-list { border-right: none; border-bottom: 1px solid var(--color-border); max-height: 240px; }

  /* CVthèque */
  .cvtheque-hero { padding: 32px 0 24px; }
  .cvtheque-filters { flex-direction: column; gap: 8px; }

  /* Footer */
  .site-footer { padding: 32px 0 20px; }
  .site-footer__inner { gap: 20px; }
  .site-footer__legal { gap: 10px; }

  /* Tables */
  .my-listings-table { font-size: 12px; }
  .my-listings-table td, .my-listings-table th { padding: 6px 8px; }

  /* Bouton publier une offre dans le header */
  .site-header__publish { display: none; }

  /* Auth radios 2 col → 1 col */
  .auth-type-radios { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  /* Hero */
  .hero { min-height: 260px; padding-bottom: 20px; }
  .hero__title { font-size: 20px; line-height: 1.25; }
  .hero__search { padding: 12px 0 0; }

  /* Listing card */
  .listing-card__image { height: 130px; }

  /* Profil public hero */
  .profil-card__header { padding: 24px 16px; }
  .profil-card__name { font-size: 18px; }
  .profil-card__stats { gap: 16px; }
  .profil-card__stat-value { font-size: 20px; }

  /* Single offre */
  .single-header { padding: 20px 0; }
  .single-header__title { font-size: 20px; }
  .apply-btn-wrapper .btn { width: 100%; justify-content: center; }

  /* Modals */
  .lexjob-modal__box { padding: 20px 16px; border-radius: 12px; }
  .modal__title, .unsaved-modal__title { font-size: 16px; }

  /* Account sidebar : affichage horizontal scrollable */
  .account-sidebar { overflow-x: auto; white-space: nowrap; padding-bottom: 4px; }
  .account-nav { display: flex; flex-direction: row; gap: 4px; }
  .account-nav__item { flex-shrink: 0; }
  .account-nav__link { padding: 8px 12px; font-size: 13px; border-radius: 20px; }
  .account-nav__link.is-active { background: var(--color-primary); color: #fff; }

  /* Badges listing card */
  .lc-badge { font-size: 11px; padding: 3px 7px; }
  .badge { font-size: 10px; padding: 3px 8px; }

  /* Forms */
  .form-group label { font-size: 13px; }
  .form-group input,
  .form-group textarea,
  .form-group select { font-size: 14px; }

  /* Submit page */
  .submit-page__title { font-size: 18px; }
  .submit-section__title { font-size: 15px; }

  /* CVthèque hero */
  .cvtheque-hero__title { font-size: 22px; }

  /* Page contact */
  .contact-page__title { font-size: 18px; }
  .contact-form-wrapper { padding: 20px 16px; }

  /* Footer */
  .site-footer__inner { gap: 16px; }
  .site-footer__logo { margin-bottom: 8px; }
  .site-footer__col-title { font-size: 12px; }

  /* Annonces récentes section */
  .section--recent { padding: 40px 0; }
  .section__title { font-size: 22px; }

  /* Tabs */
  .tabs { gap: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .tab { padding: 10px 8px; font-size: 11px; flex: 1; white-space: nowrap; }
}

/* ── Mobile header right zone ───────────────────────────────── */
.mobile-header-right {
  display: none;
  align-items: center;
  margin-left: auto;
}

.mobile-account-toggle {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 28px;
  height: 20px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
/* Force les barres en couleur sombre quel que soit le contexte */
.mobile-account-toggle .mobile-menu-toggle__bar {
  background: #333333;
}

.mobile-account-notif {
  position: absolute;
  top: -6px;
  right: -8px;
  background: var(--color-primary);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
}

.btn--mobile-login {
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  background: var(--color-primary);
  color: #fff;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.btn--mobile-login:hover { background: var(--color-primary-dark, #1a3fa6); color: #fff; }

/* ── Modal navigation mobile 2 niveaux ───────────────────────── */
.mobile-nav-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: #fff;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.mobile-nav-panel {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

/* Barre haute : retour / titre / fermer */
.mobile-nav-panel__bar {
  display: flex;
  align-items: center;
  height: 56px;
  padding: 0 16px;
  border-bottom: 1px solid var(--color-border);
  gap: 8px;
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 1;
}

.mobile-nav-panel__back {
  display: flex;
  align-items: center;
  gap: 4px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 15px;
  font-weight: 500;
  color: var(--color-primary);
  padding: 0;
  white-space: nowrap;
}
.mobile-nav-panel__back svg { flex-shrink: 0; }

.mobile-nav-panel__title {
  flex: 1;
  font-size: 17px;
  font-weight: 700;
  color: var(--color-text);
  text-align: center;
}

/* Quand il y a un bouton retour, le titre doit être centré
   visuellement entre le bouton retour et le bouton fermer.
   On utilise margin-left: auto sur le close pour compenser. */
.mobile-nav-panel__close {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-text-muted);
  padding: 4px;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  transition: background var(--transition), color var(--transition);
  margin-left: auto;
  flex-shrink: 0;
}
/* quand le bouton back est visible, le close ne bouge pas */
.mobile-nav-panel__close:hover { background: var(--color-bg-grey); color: var(--color-text); }

/* Niveaux */
.mobile-nav-level {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.mobile-nav-level--sub { display: none; }
.mobile-nav-level--sub.is-active { display: flex; }

/* En-tête utilisateur dans le sous-menu profil */
.mobile-nav-user {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 20px 16px;
  border-bottom: 1px solid var(--color-border);
}
.mobile-nav-user__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--color-border);
  flex-shrink: 0;
}
.mobile-nav-user__name {
  font-weight: 700;
  font-size: 16px;
  color: var(--color-text);
}

/* Items */
.mobile-nav-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 17px 20px;
  font-size: 16px;
  font-weight: 500;
  color: var(--color-text);
  text-decoration: none;
  border-bottom: 1px solid var(--color-border);
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  width: 100%;
  text-align: left;
  cursor: pointer;
  transition: background var(--transition);
  gap: 12px;
}
.mobile-nav-item:hover,
.mobile-nav-item:active { background: var(--color-bg-grey, #f7f8fa); }
.mobile-nav-item svg { flex-shrink: 0; opacity: .6; }

.mobile-nav-item__left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}
.mobile-nav-item__avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  border: 1.5px solid var(--color-border);
  flex-shrink: 0;
}
.mobile-nav-item__chevron { opacity: .4; flex-shrink: 0; }

.mobile-nav-item--highlight {
  color: var(--color-primary);
  font-weight: 700;
}
.mobile-nav-item--highlight svg { opacity: 1; color: var(--color-primary); }

.mobile-nav-item--exclusive {
  color: var(--color-primary);
}
.mobile-nav-item--danger { color: #e53e3e; border-top: 1px solid var(--color-border); }
.mobile-nav-item--danger svg { opacity: 1; }

/* Bouton d'action (Publier une offre) en bas du niveau 1 */
.mobile-nav-level__action {
  padding: 20px 20px 0;
  margin-top: auto;
}

@media (max-width: 768px) {
  .mobile-header-right { display: flex; }
}

/* ── Archive : toggle filtres mobile ────────────────────────── */
.archive-filter-toggle {
  /* display géré par les media queries */
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 12px 16px;
  margin-bottom: 12px;
  background: #fff;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 15px;
  font-weight: 600;
  color: var(--color-text);
  cursor: pointer;
  text-align: left;
  transition: border-color var(--transition), background var(--transition);
}
.archive-filter-toggle:hover { border-color: var(--color-primary); }
.archive-filter-toggle svg { flex-shrink: 0; color: var(--color-primary); }
.archive-filter-toggle__label { flex: 1; }
.archive-filter-toggle__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  min-width: 20px;
  height: 20px;
  border-radius: 10px;
  padding: 0 5px;
}
.archive-filter-toggle__chevron {
  transition: transform 0.2s ease;
  opacity: 0.5;
}
.archive-filter-toggle[aria-expanded="true"] .archive-filter-toggle__chevron {
  transform: rotate(180deg);
}

/* ── Archive : filtres instantanés — état loading ─────────────── */
.archive-main--loading {
  opacity: 0.5;
  pointer-events: none;
  transition: opacity 0.15s;
}

/* ── Overrides prioritaires (résolution conflits cascade) ──── */
/* Barres hamburger : toujours visibles en sombre */
.mobile-account-toggle .mobile-menu-toggle__bar {
  background: #333333 !important;
}

/* Bouton "Filtrer les offres" : caché sur desktop, visible sur mobile */
@media (min-width: 769px) {
  .archive-filter-toggle { display: none !important; }
}
@media (max-width: 768px) {
  .archive-filter-toggle { display: flex !important; }
  .mobile-header-right   { display: flex !important; }
}

/* Garantit que l'attribut HTML hidden fonctionne même si un display est défini */
[hidden] { display: none !important; }

/* Map archive : cachée sur mobile (inutile sans sidebar) */
@media (max-width: 768px) {
  .filter-map { display: none !important; }
}

/* ══════════════════════════════════════════════════════════════
   MOBILE — Mes annonces + Récapitulatif candidatures
══════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {

  /* ── Mes annonces : tableau 5 colonnes → cards ─────────── */
  .my-listings-table table,
  .my-listings-table tbody,
  .my-listings-table tr,
  .my-listings-table td { display: block !important; width: 100% !important; box-sizing: border-box; }
  .my-listings-table thead { display: none !important; }

  .my-listing-row {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    margin-bottom: 10px;
  }
  .my-listing-row td {
    padding: 4px 12px !important;
    border-bottom: none !important;
    font-size: 13px;
  }
  .my-listing-row td:first-child { padding-top: 12px !important; }
  .my-listing-row td:last-child  { padding-bottom: 12px !important; }

  /* Labels devant chaque cellule */
  .my-listings-table td:nth-child(2)::before,
  .my-listings-table td:nth-child(3)::before,
  .my-listings-table td:nth-child(4)::before {
    font-size: 11px; font-weight: 700; color: #888;
    text-transform: uppercase; letter-spacing: .3px; margin-right: 4px;
  }
  .my-listings-table td:nth-child(2)::before { content: 'Statut · '; }
  .my-listings-table td:nth-child(3)::before { content: 'Date limite · '; }
  .my-listings-table td:nth-child(4)::before { content: 'Candidatures · '; }

  /* Accordéon candidatures (ligne colspan) */
  .candidatures-row td { padding: 0 !important; }

  /* ── Récapitulatif : onglets trop larges → cause racine du débordement ── */
  /* Les boutons "Candidatures reçues" + "Spontanées" dépassent 335px et font
     déborder toute la page. On réduit padding + font pour qu'ils rentrent. */
  .recap-switcher__btn {
    padding: 6px 8px;
    font-size: 12px;
    gap: 5px;
  }
  .recap-switcher__count {
    min-width: 16px; height: 16px;
    font-size: 10px; padding: 0 4px;
  }

  /* ── Titre offre tronqué → bouton export toujours visible ── */
  .recap-offer-section__header span:first-of-type {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex-shrink: 1;
  }
  .recap-export-btn { font-size: 11px; padding: 3px 7px; gap: 4px; }

  /* ── Chips statut (À réexaminer, Intéressante…) ────────── */
  .cand-statut-chip {
    white-space: normal; text-align: right;
    line-height: 1.3; max-width: 76px; font-size: 10px;
  }
  .entretien-status-chip {
    white-space: normal; text-align: right;
    line-height: 1.3; max-width: 76px; font-size: 9px;
  }

  /* ── Barre de tri → wrap si l'écran est trop étroit ──────── */
  .recap-sort-bar { flex-wrap: wrap; gap: 6px; }
}

/* Espacement header/footer et contenu sur mobile */
@media (max-width: 768px) {
  .site-main { padding-top: 20px; }
  .site-footer { margin-top: 32px; }
}
