/* ── Flash messages ── */
.flash {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 10px;
  font-size: .88rem;
  margin: 12px 0;
  line-height: 1.5;
}
.flash--success { background: #e6f9f0; border: 1px solid #38A169; color: #276749; }
.flash--error   { background: #fff0f0; border: 1px solid #e53e3e; color: #c53030; }
.flash--warning { background: #fff3cd; border: 1px solid #ffc107; color: #7d5a00; }

/* ── Badges statut ── */
.badge-statut {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: .75rem;
  font-weight: 600;
}
.badge-statut--active,
.badge-statut--active     { background: #e6f9f0; color: #276749; }
.badge-statut--en_attente { background: #fff3cd; color: #7d5a00; }
.badge-statut--expiree    { background: #f1f5f9; color: #64748b; }
.badge-statut--suspendue  { background: #fff0f0; color: #c53030; }
.badge-statut--envoyee    { background: #EBF4FD; color: #185FA5; }
.badge-statut--vue        { background: #faf5ff; color: #553C9A; }
.badge-statut--retenue    { background: #e6f9f0; color: #276749; }
.badge-statut--refusee    { background: #fff0f0; color: #c53030; }
.badge-statut--en_cours   { background: #fff3cd; color: #7d5a00; }
.badge-statut--livree     { background: #e6f9f0; color: #276749; }
.badge-statut--publie     { background: #e6f9f0; color: #276749; }
.badge-statut--brouillon  { background: #f1f5f9; color: #64748b; }
.badge-statut--archive    { background: #f1f5f9; color: #64748b; }

/* ── Badges rôle ── */
.badge-role { display:inline-block; padding:3px 10px; border-radius:20px; font-size:.75rem; font-weight:600; }
.badge-role--candidat  { background:#EBF4FD; color:#185FA5; }
.badge-role--recruteur { background:#faf5ff; color:#553C9A; }
.badge-role--talent    { background:#e6f9f0; color:#276749; }
.badge-role--admin     { background:#042C53; color:#fff; }

/* ── Dashboard layout ── */
.dash-wrap       { display:flex; min-height:calc(100vh - 60px); }
.dash-sidebar    { width:240px; min-height:100%; background:#fff; border-right:1px solid #f1f5f9; flex-shrink:0; padding:20px 0; transition:transform .25s; }
.dash-main       { flex:1; padding:24px 28px; background:#f8fafc; overflow-x:hidden; }
.dash-nav        { list-style:none; padding:0; margin:16px 0 0; }
.dash-nav__item  { }
.dash-nav__item a{ display:flex; align-items:center; gap:10px; padding:10px 20px; font-size:.87rem; color:#64748b; text-decoration:none; transition:background .15s,color .15s; }
.dash-nav__item a:hover, .dash-nav__item.active a { background:#EBF4FD; color:#185FA5; font-weight:600; }
.dash-sidebar__logo  { display:block; padding:0 20px 16px; font-weight:700; font-size:.9rem; color:#042C53; text-decoration:none; border-bottom:1px solid #f1f5f9; }
.dash-sidebar__logo small { display:block; font-size:.72rem; color:#64748b; font-weight:400; }
.dash-sidebar__user  { display:flex; align-items:center; gap:10px; padding:14px 20px; }
.dash-sidebar__avatar{ width:36px; height:36px; border-radius:50%; background:#042C53; color:#fff; font-weight:700; font-size:.85rem; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.dash-sidebar__name  { font-size:.85rem; font-weight:600; color:#042C53; }
.dash-sidebar__role  { font-size:.75rem; color:#64748b; }
.dash-content        { max-width:1100px; }
.dash-content__header{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:28px; }
.dash-content__title { font-size:1.5rem; font-weight:700; color:#042C53; margin:0; }
.dash-content__sub   { color:#64748b; font-size:.92rem; margin:4px 0 0; }
.dash-stats          { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:16px; margin-bottom:28px; }
.dash-stat-card      { background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:20px 18px; }
.dash-stat-card__num { font-size:1.8rem; font-weight:800; color:#042C53; line-height:1; }
.dash-stat-card__label{ font-size:.8rem; color:#64748b; margin-top:6px; }
.dash-stat-card--green  .dash-stat-card__num { color:#38A169; }
.dash-stat-card--yellow .dash-stat-card__num { color:#d4a00a; }
.dash-stat-card--blue   .dash-stat-card__num { color:#185FA5; }
.dash-section        { background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:20px 22px; margin-bottom:24px; }
.dash-section__header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.dash-section__title { font-size:1rem; font-weight:700; color:#042C53; margin:0; }
.dash-section__link  { font-size:.82rem; color:#185FA5; text-decoration:none; }
.dash-table-wrap     { overflow-x:auto; }
.dash-table          { width:100%; border-collapse:collapse; font-size:.87rem; }
.dash-table th       { text-align:left; padding:10px 12px; font-weight:600; color:#64748b; border-bottom:2px solid #f1f5f9; white-space:nowrap; }
.dash-table td       { padding:10px 12px; border-bottom:1px solid #f8fafc; color:#334155; vertical-align:middle; }
.dash-table tr:hover td { background:#fafbfc; }
.dash-table a        { color:#185FA5; text-decoration:none; }
.dash-quick          { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.dash-quick__btn     { display:flex; flex-direction:column; align-items:center; gap:8px; background:#fff; border:1.5px solid #e2e8f0; border-radius:14px; padding:18px 12px; text-decoration:none; color:#042C53; font-size:.82rem; font-weight:600; transition:border-color .2s,box-shadow .2s; }
.dash-quick__btn:hover { border-color:#378ADD; box-shadow:0 2px 12px rgba(55,138,221,.12); }
.dash-empty          { text-align:center; padding:32px; color:#64748b; }
.dash-empty .btn     { margin-top:16px; }

/* ── Admin ── */
.adm-wrap   { display:flex; min-height:calc(100vh - 60px); }
.adm-sidebar{ width:250px; background:#042C53; color:#fff; flex-shrink:0; padding:0; }
.adm-sidebar__logo { display:block; padding:20px 20px 16px; font-weight:700; color:#fff; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.1); }
.adm-sidebar__logo small { display:block; font-size:.72rem; color:rgba(255,255,255,.55); font-weight:400; }
.adm-sidebar__user { display:flex; align-items:center; gap:10px; padding:14px 20px; border-bottom:1px solid rgba(255,255,255,.1); }
.adm-sidebar__avatar { width:36px; height:36px; border-radius:50%; background:#378ADD; color:#fff; font-weight:700; font-size:.85rem; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.adm-sidebar__name   { font-size:.85rem; font-weight:600; color:#fff; }
.adm-sidebar__role   { font-size:.72rem; color:rgba(255,255,255,.55); }
.adm-nav             { list-style:none; padding:8px 0; margin:0; }
.adm-nav__section    { padding:12px 20px 4px; font-size:.68rem; font-weight:700; color:rgba(255,255,255,.4); letter-spacing:.08em; text-transform:uppercase; }
.adm-nav__item a     { display:flex; align-items:center; gap:10px; padding:9px 20px; font-size:.85rem; color:rgba(255,255,255,.75); text-decoration:none; transition:background .15s,color .15s; }
.adm-nav__item a:hover, .adm-nav__item.active a { background:rgba(255,255,255,.1); color:#fff; }
.adm-main            { flex:1; padding:24px 28px; background:#f8fafc; overflow-x:hidden; }
.adm-content         { max-width:1200px; }
.adm-kpi-grid        { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; margin-bottom:24px; }
.adm-kpi             { background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:18px 16px; }
.adm-kpi__num        { font-size:1.5rem; font-weight:800; color:#042C53; line-height:1; display:block; }
.adm-kpi__label      { font-size:.78rem; color:#64748b; display:block; margin-top:5px; }
.adm-kpi--green .adm-kpi__num { color:#38A169; }
.adm-card            { background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:18px 20px; }
.adm-card__header    { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.adm-card__header h3 { font-size:.95rem; font-weight:700; color:#042C53; margin:0; }
.adm-card__header a  { font-size:.82rem; color:#185FA5; text-decoration:none; }

/* ── Forms ── */
.aform__input--error { border-color: #e53e3e !important; }
.aform__error        { color: #e53e3e; font-size: .8rem; margin-top: 4px; }

/* ── Tags ── */
.tag { display:inline-block; padding:3px 10px; border-radius:20px; font-size:.75rem; font-weight:600; background:#f1f5f9; color:#475569; }
.tag--type  { background:#EBF4FD; color:#185FA5; }
.tag--green { background:#e6f9f0; color:#276749; }
.tag--secteur { background:#faf5ff; color:#553C9A; }

/* ── Btn outline ── */
.btn--outline { background:transparent; border:1.5px solid #e2e8f0; color:#334155; }
.btn--outline:hover { border-color:#378ADD; color:#185FA5; }

/* ── Page hero ── */
.page-hero { background:linear-gradient(135deg,#042C53 0%,#185FA5 100%); padding:60px 0 40px; text-align:center; }
.page-hero__title { font-size:2rem; font-weight:800; color:#fff; margin:0 0 10px; }
.page-hero__sub   { color:rgba(255,255,255,.8); font-size:1rem; margin:0; }

/* ── Blog ── */
.blog-categories { display:flex; flex-wrap:wrap; gap:8px; }
.blog-cat { padding:6px 16px; border-radius:20px; font-size:.85rem; font-weight:500; background:#f1f5f9; color:#475569; text-decoration:none; transition:all .15s; }
.blog-cat:hover, .blog-cat.active { background:#042C53; color:#fff; }

/* ── Offre detail ── */
.offre-detail-layout { display:grid; grid-template-columns:1fr 320px; gap:32px; }
.offre-detail-header { display:flex; gap:20px; align-items:flex-start; margin-bottom:32px; }
.offre-detail-logo   { width:64px; height:64px; border-radius:14px; background:#EBF4FD; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.2rem; color:#185FA5; flex-shrink:0; }
.offre-detail-title  { font-size:1.5rem; font-weight:800; color:#042C53; margin:0 0 6px; }
.offre-detail-company{ color:#185FA5; font-weight:600; margin:0 0 10px; }
.offre-detail-tags   { display:flex; flex-wrap:wrap; gap:8px; }
.offre-detail-section{ margin-bottom:28px; }
.offre-detail-section h2 { font-size:1.05rem; font-weight:700; color:#042C53; margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid #f1f5f9; }
.offre-detail-content{ color:#334155; line-height:1.75; }
.offre-detail-aside  { }
.offre-aside-card    { background:#fff; border:1px solid #e2e8f0; border-radius:16px; padding:22px; position:sticky; top:80px; }
.offre-aside-info    { margin-top:20px; display:flex; flex-direction:column; gap:10px; }
.offre-aside-row     { display:flex; justify-content:space-between; font-size:.85rem; }
.offre-aside-label   { color:#64748b; font-weight:500; }

/* ── Offre list ── */
.offre-layout        { display:grid; grid-template-columns:280px 1fr; gap:28px; }
.offre-filters       { background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:20px; height:fit-content; position:sticky; top:80px; }
.filter-group        { margin-bottom:16px; }
.filter-group label  { display:block; font-size:.82rem; font-weight:600; color:#475569; margin-bottom:6px; }
.filter-input        { width:100%; padding:9px 12px; border:1px solid #e2e8f0; border-radius:8px; font-size:.87rem; font-family:inherit; }
.offre-card          { background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:20px 22px; margin-bottom:14px; transition:box-shadow .2s; }
.offre-card:hover    { box-shadow:0 4px 20px rgba(55,138,221,.12); }
.offre-card__header  { display:flex; gap:14px; align-items:flex-start; margin-bottom:12px; }
.offre-card__logo-wrap { flex-shrink:0; }
.offre-card__logo    { width:50px; height:50px; border-radius:12px; background:#EBF4FD; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.95rem; color:#185FA5; }
.offre-card__title   { font-size:1rem; font-weight:700; color:#042C53; margin:0 0 4px; }
.offre-card__title a { color:inherit; text-decoration:none; }
.offre-card__title a:hover { color:#185FA5; }
.offre-card__company { font-size:.87rem; color:#185FA5; font-weight:600; margin:0 0 4px; }
.offre-card__loc     { font-size:.82rem; color:#6b7280; margin:0; display:flex; align-items:center; gap:4px; }
.offre-card__tags    { margin-left:auto; display:flex; flex-direction:column; gap:4px; align-items:flex-end; }
.offre-card__desc    { font-size:.87rem; color:#64748b; line-height:1.6; margin-bottom:14px; }
.offre-card__footer  { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.offre-card__date    { font-size:.78rem; color:#6b7280; flex:1; }
.offre-card__deadline{ font-size:.78rem; color:#e53e3e; }
.offre-card__btn     { padding:7px 16px; border-radius:8px; font-size:.82rem; font-weight:600; }

@media (max-width:768px) {
  .dash-sidebar { position:fixed; z-index:100; transform:translateX(-100%); height:100vh; overflow-y:auto; }
  .dash-sidebar.open { transform:translateX(0); }
  .adm-sidebar  { position:fixed; z-index:100; transform:translateX(-100%); height:100vh; overflow-y:auto; }
  .adm-sidebar.open { transform:translateX(0); }
  .offre-detail-layout { grid-template-columns:1fr; }
  .offre-layout { grid-template-columns:1fr; }
  .offre-filters { position:static; }
}

/* ── À propos : entête section fondateur (classes manquantes dans a-propos.css) ── */
.founder__header {
  text-align: center;
  margin-bottom: 48px;
}
.founder__header-badge {
  display: inline-block;
  font-family: var(--font-body, 'Jost', sans-serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #378ADD;
  margin-bottom: 8px;
}
.founder__header-title {
  font-family: var(--font-body, 'Jost', sans-serif);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 700;
  color: #042C53;
  margin: 0;
}
.founder__header-title em {
  font-style: normal;
  color: #378ADD;
}

/* ── Page hero variants ── */
.page-hero__inner {
  text-align: center;
  padding: 20px 0 10px;
}
.page-hero__subtitle {
  font-size: 1.05rem;
  color: rgba(255,255,255,.82);
  max-width: 620px;
  margin: 12px auto 0;
  line-height: 1.7;
}

/* ── Section founder (fond gradient) ── */
.founder-section {
  background: linear-gradient(160deg, #f4f8ff 0%, #eaf1fb 100%);
  padding: 100px 0;
}

/* ── Recruteur stat-card stat-grid (a-propos partage avec recruteur dashboard) ── */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 64px;
}
@media (max-width: 900px) { .stats-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .stats-grid { grid-template-columns: 1fr 1fr; gap: 16px; } }

/* ════════════════════════════════════════
   NOTIFICATION BELL
════════════════════════════════════════ */
.notif-bell {
  position: relative;
}
.notif-bell__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.75);
  cursor: pointer;
  transition: background 0.18s, color 0.18s, border-color 0.18s;
  flex-shrink: 0;
}
.notif-bell__btn:hover {
  background: rgba(255,255,255,0.14);
  color: #fff;
  border-color: rgba(255,255,255,0.3);
}
.notif-bell__badge {
  position: absolute;
  top: -3px;
  right: -3px;
  background: #ef4444;
  color: #fff;
  font-family: var(--font-body, 'Jost', sans-serif);
  font-size: 9.5px;
  font-weight: 800;
  min-width: 16px;
  height: 16px;
  border-radius: 99px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
  line-height: 1;
}
.notif-bell__dropdown {
  display: none;
  position: fixed;
  top: 70px;
  right: 24px;
  width: 340px;
  max-height: calc(100vh - 80px);
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(4,44,83,0.18), 0 2px 8px rgba(0,0,0,0.10);
  z-index: 99999;
  overflow: hidden;
  border: 1px solid #e8edf4;
  flex-direction: column;
}
.notif-bell__dropdown.open {
  display: flex;
}
.notif-bell__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 16px 10px;
  border-bottom: 1px solid #f0f2f5;
}
.notif-bell__header-title {
  font-family: var(--font-body, 'Jost', sans-serif);
  font-size: 13px;
  font-weight: 700;
  color: #042C53;
}
.notif-bell__markall {
  font-family: var(--font-body, 'Jost', sans-serif);
  font-size: 11.5px;
  color: #378ADD;
  font-weight: 600;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
.notif-bell__markall:hover { text-decoration: underline; }
.notif-bell__list { flex: 1; overflow-y: auto; max-height: calc(100vh - 160px); }
.notif-bell__item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 11px 16px;
  text-decoration: none;
  border-bottom: 1px solid #f8fafc;
  transition: background 0.15s;
}
.notif-bell__item:last-child { border-bottom: none; }
.notif-bell__item:hover { background: #f8fafc; }
.notif-bell__item--unread { background: rgba(55,138,221,0.04); }
.notif-bell__item--unread:hover { background: rgba(55,138,221,0.08); }
.notif-bell__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #e2e8f0;
  flex-shrink: 0;
  margin-top: 5px;
}
.notif-bell__dot--active { background: #378ADD; }
.notif-bell__body { flex: 1; min-width: 0; }
.notif-bell__titre {
  font-family: var(--font-body, 'Jost', sans-serif);
  font-size: 12.5px;
  font-weight: 700;
  color: #042C53;
  margin: 0 0 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.notif-bell__contenu {
  font-family: var(--font-body, 'Jost', sans-serif);
  font-size: 12px;
  color: #64748b;
  margin: 0 0 3px;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.notif-bell__time {
  font-family: var(--font-body, 'Jost', sans-serif);
  font-size: 11px;
  color: #94a3b8;
}
.notif-bell__empty {
  padding: 24px 16px;
  text-align: center;
  font-family: var(--font-body, 'Jost', sans-serif);
  font-size: 13px;
  color: #94a3b8;
}
.notif-bell__seeall {
  display: block;
  text-align: center;
  padding: 11px 16px;
  font-family: var(--font-body, 'Jost', sans-serif);
  font-size: 12.5px;
  font-weight: 600;
  color: #378ADD;
  text-decoration: none;
  border-top: 1px solid #f0f2f5;
  background: #fafbfc;
  transition: background 0.15s;
}
.notif-bell__seeall:hover { background: #f0f7ff; }

@media (max-width: 480px) {
  .notif-bell__dropdown {
    width: calc(100vw - 20px);
    right: 10px !important;
    left: 10px !important;
  }
}

/* ── Messagerie chat ─────────────────────────────────── */
.msg-wrap { display:flex;flex-direction:column;margin-bottom:2px }
.msg-wrap--mine  { align-items:flex-end }
.msg-wrap--their { align-items:flex-start }

.msg-bubble {
  padding:10px 16px;
  border-radius:14px;
  max-width:72%;
  font-size:13.5px;
  line-height:1.55;
  word-break:break-word;
}
.msg-bubble--mine  { background:#185FA5;color:#fff;border-bottom-right-radius:4px }
.msg-bubble--their { background:#f1f5f9;color:#1e293b;border-bottom-left-radius:4px }

.msg-img {
  display:block;max-width:240px;border-radius:10px;
  margin-top:6px;cursor:zoom-in;
}
.msg-file {
  display:inline-flex;align-items:center;gap:6px;
  margin-top:6px;padding:7px 12px;
  background:rgba(255,255,255,.18);border-radius:8px;
  text-decoration:none;font-size:12.5px;font-weight:600;color:inherit;
}
.msg-bubble--their .msg-file { background:rgba(0,0,0,.07) }
.msg-time { font-size:11px;color:#94a3b8;margin:3px 8px 0 }

/* ── Zone saisie messagerie ─────────────────────────── */
.msg-form { display:flex;flex-direction:column;gap:8px }
.msg-form__row { display:flex;gap:10px;align-items:flex-end }
.msg-form__input {
  flex:1;padding:11px 16px;
  border:1.5px solid #d1d5db;border-radius:10px;
  font-size:14px;resize:none;
  transition:border-color .15s;
  font-family:inherit;
}
.msg-form__input:focus { outline:none;border-color:#378ADD }
.msg-form__attach-btn {
  width:42px;height:42px;border:1.5px solid #d1d5db;border-radius:10px;
  background:#fff;display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;transition:border-color .15s;
}
.msg-form__attach-btn:hover { border-color:#378ADD }
.msg-form__preview {
  display:flex;align-items:center;gap:8px;
  padding:7px 12px;background:#f0f7ff;border-radius:8px;
  font-size:13px;color:#185FA5;
}
.msg-form__preview-remove {
  margin-left:auto;background:none;border:none;
  cursor:pointer;color:#94a3b8;font-size:18px;line-height:1;
}

/* ── Archive btn ────────────────────────────────────── */
.msg-archive-btn {
  background:none;border:none;cursor:pointer;
  color:#94a3b8;font-size:11.5px;padding:3px 8px;border-radius:6px;
  transition:color .15s,background .15s;
  white-space:nowrap;flex-shrink:0;
}
.msg-archive-btn:hover { color:#e53e3e;background:#fef2f2 }
