/* Police Manrope hébergée sur le site (licence SIL Open Font License) : aucune requête vers Google Fonts */
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url("../fonts/manrope-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url("../fonts/manrope-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ==========================================================================
   Mercajob — landing page
   Palette: bleu / blanc uniquement (aucun vert, aucun violet).
   ========================================================================== */

:root {
  /* Brand */
  --blue: #2F6DF6;
  --blue-hover: #2259D8;
  --blue-ink: #1F57D6;        /* bleu légèrement plus sombre pour petits textes (contraste AA) */
  --blue-soft: #8FB2FF;       /* bleu clair pour textes sur fond navy */
  --navy: #101A2E;
  --navy-2: #17233B;
  --blue-50: #EAF1FF;
  --white: #FFFFFF;
  --neutral: #F7F9FC;
  --gray: #68707D;

  /* Derived */
  --text: var(--navy);
  --border: #E3E8F0;
  --border-strong: #D5DDEA;
  --on-dark-muted: #A9B3C7;
  --on-dark-border: rgba(255, 255, 255, 0.10);

  /* Type */
  --font: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* Shape */
  --r-sm: 12px;
  --r-md: 18px;
  --r-lg: 24px;
  --r-xl: 30px;
  --pill: 999px;

  --shadow-sm: 0 1px 2px rgba(16, 26, 46, 0.04), 0 2px 8px rgba(16, 26, 46, 0.04);
  --shadow-lg: 0 2px 4px rgba(16, 26, 46, 0.04), 0 24px 60px -12px rgba(16, 26, 46, 0.16);

  --container: 1200px;
  --gutter: clamp(20px, 5vw, 40px);
  --section-y: clamp(88px, 12vw, 152px);
  --header-h: 72px;

  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Base ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: calc(var(--header-h) + 16px);
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body {
  margin: 0;
  font-family: var(--font);
  font-size: 17px;
  line-height: 1.6;
  color: var(--text);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; }
[hidden] { display: none !important; }

::selection { background: var(--blue-50); color: var(--navy); }

:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
  border-radius: 6px;
}

.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  left: 16px; top: -60px;
  z-index: 100;
  padding: 10px 16px;
  border-radius: var(--r-sm);
  background: var(--navy);
  color: var(--white);
  font-weight: 600;
  transition: top 0.2s;
}
.skip-link:focus { top: 16px; }

.text-blue { color: var(--blue); }

/* ---------- Eyebrow ---------- */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blue-ink);
}
.eyebrow::before {
  content: "";
  width: 20px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
}
.eyebrow-light { color: var(--blue-soft); }
.eyebrow-on-blue { color: rgba(255, 255, 255, 0.85); }

/* ---------- Buttons ---------- */
.btn {
  --btn-h: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: var(--btn-h);
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: var(--pill);
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.2s var(--ease), border-color 0.2s var(--ease),
              color 0.2s var(--ease), transform 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.btn .arrow { transition: transform 0.25s var(--ease); }
.btn:hover .arrow { transform: translateX(3px); }

.btn-sm { --btn-h: 42px; padding: 0 18px; font-size: 15px; }
.btn-lg { --btn-h: 56px; padding: 0 30px; font-size: 17px; }

.btn-primary {
  background: var(--blue);
  color: var(--white);
  box-shadow: 0 8px 20px -8px rgba(47, 109, 246, 0.55);
}
.btn-primary:hover {
  background: var(--blue-hover);
  transform: translateY(-1px);
  box-shadow: 0 12px 24px -10px rgba(47, 109, 246, 0.6);
}

.btn-ghost {
  background: transparent;
  color: var(--navy);
  border-color: var(--border-strong);
}
.btn-ghost:hover { border-color: var(--navy); }

.btn-secondary {
  background: var(--white);
  color: var(--navy);
  border-color: var(--border-strong);
  font-weight: 600;
}
.btn-secondary:hover { border-color: var(--navy); }

.btn-white {
  background: var(--white);
  color: var(--blue-ink);
  box-shadow: 0 10px 30px -10px rgba(16, 26, 46, 0.35);
}
.btn-white:hover { background: var(--blue-50); transform: translateY(-1px); }

/* ---------- Header ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.82);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s, background-color 0.3s;
}
.site-header.is-scrolled { border-bottom-color: var(--border); }

.header-inner {
  display: flex;
  align-items: center;
  gap: 32px;
  height: var(--header-h);
}

.logo {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--navy);
}
.logo-dot { color: var(--blue); }

.main-nav { margin-left: auto; }
.main-nav ul { display: flex; gap: 32px; }
.main-nav a:not(.btn) {
  font-size: 15px;
  font-weight: 500;
  color: var(--gray);
  transition: color 0.2s;
}
.main-nav a:not(.btn):hover { color: var(--navy); }
.nav-cta-mobile { display: none; }

.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  width: 44px; height: 44px;
  margin-left: auto;
  padding: 0 11px;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  background: var(--white);
  cursor: pointer;
}
.nav-toggle-bar {
  display: block;
  height: 2px;
  border-radius: 2px;
  background: var(--navy);
  transition: transform 0.3s var(--ease);
}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2) { transform: translateY(4px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3) { transform: translateY(-4px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  padding: clamp(56px, 8vw, 104px) 0 clamp(80px, 10vw, 136px);
  overflow: hidden;
}
.hero::before {
  /* halo bleu très discret, seul "dégradé" de la page */
  content: "";
  position: absolute;
  top: -20%; right: -10%;
  width: 60vw; height: 60vw;
  max-width: 820px; max-height: 820px;
  background: radial-gradient(closest-side, var(--blue-50), rgba(234, 241, 255, 0));
  pointer-events: none;
  z-index: -1;
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  align-items: center;
  gap: clamp(48px, 6vw, 88px);
}

.hero-title {
  font-size: clamp(44px, 6.4vw, 84px);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -0.045em;
  text-wrap: balance;
}

.hero-lead {
  max-width: 560px;
  margin-top: 28px;
  font-size: clamp(17px, 1.5vw, 20px);
  line-height: 1.6;
  color: var(--gray);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 40px;
}

/* Profile card visual */
.hero-visual {
  position: relative;
  padding-bottom: 40px;
}

.profile-card {
  position: relative;
  padding: 28px;
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--white);
  box-shadow: var(--shadow-lg);
}

.pc-head {
  display: flex;
  align-items: center;
  gap: 16px;
}
.pc-avatar {
  display: grid;
  place-items: center;
  flex: none;
  width: 56px; height: 56px;
  border-radius: 18px;
  background: var(--navy);
  color: var(--white);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.02em;
}
.pc-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blue-ink);
}
.pc-name {
  margin-top: 2px;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
}
.pc-role { font-size: 14px; color: var(--gray); }

.badge-interview {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 24px 0 8px;
  padding: 10px 16px 10px 10px;
  border-radius: var(--pill);
  background: var(--blue-50);
  color: var(--blue-ink);
  font-size: 15px;
  font-weight: 700;
}
.badge-check {
  display: grid;
  place-items: center;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--blue);
  color: var(--white);
}

.pc-rows { margin-top: 8px; }
.pc-row {
  display: flex;
  gap: 16px;
  padding: 18px 0;
  border-top: 1px solid var(--border);
}
.pc-row:first-child { border-top: 0; }
.pc-num {
  flex: none;
  width: 36px; height: 36px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: var(--neutral);
  border: 1px solid var(--border);
  font-size: 12px;
  font-weight: 700;
  color: var(--navy);
}
.pc-row-body { min-width: 0; flex: 1; }
.pc-row-title { font-weight: 700; font-size: 16px; line-height: 1.3; }
.pc-row-sub { font-size: 14px; color: var(--gray); }

.chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.chip {
  padding: 5px 11px;
  border-radius: var(--pill);
  border: 1px solid var(--border);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--navy);
  background: var(--white);
}
.chip-verified {
  border-color: transparent;
  background: var(--blue-50);
  color: var(--blue-ink);
}
.chip-muted { color: var(--gray); }

.pc-proof {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: var(--r-sm);
  background: var(--neutral);
  font-size: 13px;
  font-weight: 600;
}
.pc-proof-line {
  flex: none;
  width: 3px; height: 18px;
  border-radius: 3px;
  background: var(--blue);
}

.pc-match {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 600;
}
.pc-match-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--blue);
}
.pc-match-dot:nth-child(2) { opacity: 0.6; }
.pc-match-dot:nth-child(3) { opacity: 0.3; }
.pc-match-text { margin-left: 8px; }

.float-card {
  position: absolute;
  left: -32px;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: 320px;
  padding: 14px 18px 14px 14px;
  border-radius: var(--r-md);
  background: var(--navy);
  color: var(--white);
  box-shadow: 0 20px 40px -16px rgba(16, 26, 46, 0.45);
  font-size: 14px;
  line-height: 1.35;
}
.float-card strong { display: block; font-weight: 700; }
.float-card small { display: block; color: var(--on-dark-muted); font-size: 13px; }
.float-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 36px; height: 36px;
  border-radius: 12px;
  background: var(--blue);
}

/* ---------- Sections ---------- */
.section { padding: var(--section-y) 0; }
.section-neutral { background: var(--neutral); }

.section-head { max-width: 820px; margin-bottom: clamp(48px, 6vw, 72px); }

.section-title {
  font-size: clamp(34px, 4.6vw, 60px);
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: -0.04em;
  text-wrap: balance;
}
.section-lead {
  max-width: 640px;
  margin-top: 24px;
  font-size: clamp(17px, 1.4vw, 19px);
  color: var(--gray);
}

/* Cards (section 1) */
.cards-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.card {
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 3vw, 40px);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--white);
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
}
.card:hover {
  transform: translateY(-4px);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-lg);
}
.card-num {
  font-size: 14px;
  font-weight: 700;
  color: var(--blue-ink);
  letter-spacing: 0.04em;
}
.card-title {
  margin-top: clamp(40px, 6vw, 72px);
  font-size: clamp(22px, 2vw, 26px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.025em;
}
.card-text { margin-top: 14px; color: var(--gray); font-size: 16px; }

/* Dark section (section 2) */
.section-dark {
  background: var(--navy);
  color: var(--white);
}
.section-dark .section-title { color: var(--white); }

.steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  counter-reset: step;
}
.step {
  position: relative;
  padding: 32px 32px 40px;
  border: 1px solid var(--on-dark-border);
  border-radius: var(--r-lg);
  background: var(--navy-2);
  transition: border-color 0.3s var(--ease), transform 0.35s var(--ease);
}
.step:hover { border-color: rgba(143, 178, 255, 0.35); transform: translateY(-4px); }
.step::after {
  /* connecteur horizontal entre les étapes */
  content: "";
  position: absolute;
  top: 50px;
  right: -21px;
  width: 21px;
  height: 1px;
  background: var(--blue);
}
.step:last-child::after { display: none; }

.step-label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blue-soft);
}
.step-num {
  display: grid;
  place-items: center;
  width: 36px; height: 36px;
  border-radius: 12px;
  background: var(--blue);
  color: var(--white);
  letter-spacing: 0;
}
.step-title {
  margin-top: 48px;
  font-size: clamp(22px, 2vw, 26px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.025em;
}
.step-text { margin-top: 14px; font-size: 16px; color: var(--on-dark-muted); }

/* Editorial (section 3) */
.editorial-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(48px, 7vw, 104px);
}
.editorial-title {
  font-size: clamp(40px, 5.6vw, 76px);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -0.045em;
  text-wrap: balance;
}
.editorial-copy .btn { margin-top: 40px; }

.evidence-card {
  padding: clamp(24px, 3vw, 36px);
  border-radius: var(--r-xl);
  background: var(--neutral);
  border: 1px solid var(--border);
}
.evidence-kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gray);
}
.evidence-heading {
  margin-top: 4px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.scale {
  display: grid;
  gap: 10px;
  margin-top: 24px;
  padding: 18px 20px;
  border-radius: var(--r-md);
  background: var(--white);
  border: 1px solid var(--border);
}
.scale-row {
  display: grid;
  grid-template-columns: 112px 1fr 52px;
  align-items: center;
  gap: 14px;
  font-size: 13px;
  font-weight: 600;
}
.scale-name { color: var(--gray); }
.scale-value { text-align: right; }
.scale-track {
  height: 8px;
  border-radius: var(--pill);
  background: var(--neutral);
  overflow: hidden;
}
.scale-bar {
  display: block;
  height: 100%;
  border-radius: inherit;
  transform-origin: left;
}
.scale-bar-short { width: 3%; background: var(--border-strong); }
.scale-bar-full { width: 100%; background: var(--blue); }

.timeline {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 24px;
  position: relative;
}
.timeline::before {
  content: "";
  position: absolute;
  top: 6px; left: 6px; right: 6px;
  height: 2px;
  background: var(--border-strong);
}
.timeline li {
  position: relative;
  padding-top: 24px;
  padding-right: 8px;
}
.timeline li::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--white);
  border: 2px solid var(--blue);
}
.timeline .tl-now::before { background: var(--blue); }
.tl-year { display: block; font-size: 12px; font-weight: 700; color: var(--gray); }
.tl-role { display: block; font-size: 13px; font-weight: 600; line-height: 1.35; margin-top: 2px; }

.proofs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 24px;
}
.proof {
  display: flex;
  flex-direction: column;
  padding: 16px;
  border-radius: var(--r-md);
  background: var(--white);
  border: 1px solid var(--border);
  transition: border-color 0.25s, transform 0.3s var(--ease);
}
.proof:hover { border-color: var(--blue); transform: translateY(-2px); }
.proof-value {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.2;
}
.proof-label { margin-top: 4px; font-size: 13px; line-height: 1.35; color: var(--gray); }

/* Companies (section 4 — volontairement secondaire) */
.section-companies { padding-top: 0; }
.companies {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
  padding: clamp(32px, 5vw, 56px);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--white);
}
.companies .eyebrow { color: var(--gray); }
.companies-title {
  font-size: clamp(26px, 2.8vw, 36px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.03em;
  text-wrap: balance;
}
.companies-text { margin-top: 16px; color: var(--gray); max-width: 520px; }
.companies-copy .btn { margin-top: 28px; white-space: normal; text-align: left; line-height: 1.3; padding-block: 12px; }

.companies-list {
  display: grid;
  gap: 2px;
  padding: 8px;
  border-radius: var(--r-lg);
  background: var(--neutral);
}
.companies-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-radius: var(--r-sm);
  font-size: 15px;
  font-weight: 600;
}
.companies-list li::before {
  content: "";
  flex: none;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--blue);
}

/* Final CTA */
.final-cta {
  background: var(--blue);
  color: var(--white);
  padding: clamp(96px, 13vw, 168px) 0;
  text-align: center;
}
.final-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.final-title {
  max-width: 960px;
  font-size: clamp(40px, 6vw, 80px);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -0.045em;
  text-wrap: balance;
}
.final-text {
  max-width: 560px;
  margin-top: 24px;
  font-size: clamp(17px, 1.5vw, 20px);
  color: rgba(255, 255, 255, 0.88);
}
.final-cta .btn { margin-top: 40px; }

/* Footer */
.site-footer {
  background: var(--white);
  border-top: 1px solid var(--border);
  padding: 56px 0 32px;
}
.footer-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 32px;
}
.footer-tagline { margin-top: 8px; font-size: 14px; color: var(--gray); }
.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
}
.footer-links a {
  font-size: 14px;
  font-weight: 500;
  color: var(--gray);
  transition: color 0.2s;
}
.footer-links a:hover { color: var(--navy); }
.footer-bottom {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
  font-size: 13px;
  color: var(--gray);
}

/* ---------- Entrance animations ---------- */
@media (prefers-reduced-motion: no-preference) {
  .js .reveal {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
    transition-delay: var(--delay, 0s);
  }
  .js .reveal.is-visible {
    opacity: 1;
    transform: none;
  }
  .js .evidence .scale-bar-full { transform: scaleX(0); transition: transform 1.4s var(--ease) 0.3s; }
  .js .evidence.is-visible .scale-bar-full { transform: scaleX(1); }
}

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .hero-grid,
  .editorial-grid { grid-template-columns: 1fr; }
  .hero-visual { max-width: 560px; margin-left: 32px; }
  .float-card { left: -32px; }
  .companies { grid-template-columns: 1fr; }
}

@media (max-width: 880px) {
  .cards-3,
  .steps { grid-template-columns: 1fr; }
  .card-title,
  .step-title { margin-top: 28px; }
  .step::after {
    top: auto; bottom: -21px;
    right: auto; left: 50px;
    width: 1px; height: 21px;
  }
}

@media (max-width: 960px) {
  .header-cta { display: none; }
  .nav-toggle { display: flex; }

  .main-nav {
    position: absolute;
    top: var(--header-h);
    left: 0; right: 0;
    padding: 16px var(--gutter) 24px;
    background: var(--white);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 20px 30px -20px rgba(16, 26, 46, 0.2);
    display: none;
  }
  .main-nav.is-open { display: block; }
  .main-nav ul { flex-direction: column; gap: 0; }
  .main-nav a:not(.btn) {
    display: block;
    padding: 14px 0;
    font-size: 17px;
    color: var(--navy);
    border-bottom: 1px solid var(--border);
  }
  .nav-cta-mobile { display: flex; width: 100%; margin-top: 20px; }
}

@media (max-width: 560px) {
  body { font-size: 16px; }
  .hero-actions .btn { width: 100%; }
  .hero-visual { margin-left: 0; padding-bottom: 64px; }
  .float-card { left: 12px; right: 12px; max-width: none; }
  .profile-card { padding: 22px; }
  .proofs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; }
  .timeline::before { display: none; }
  .scale-row { grid-template-columns: 96px 1fr 44px; gap: 10px; }
  .editorial-copy .btn,
  .final-cta .btn { width: 100%; }
  .companies-copy .btn { width: 100%; justify-content: space-between; }
  .footer-links { flex-direction: column; }
}

/* ==========================================================================
   Pages intérieures : inscription, entreprises, pages légales
   ========================================================================== */

.page-section { padding: clamp(56px, 8vw, 104px) 0 var(--section-y); }
.page-hero { padding-bottom: clamp(72px, 9vw, 120px); }

.page-title {
  font-size: clamp(36px, 4.8vw, 60px);
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: -0.04em;
  text-wrap: balance;
}
.page-title-xl { max-width: 980px; font-size: clamp(44px, 6.4vw, 84px); line-height: 1.02; letter-spacing: -0.045em; }
.page-lead {
  max-width: 620px;
  margin-top: 24px;
  font-size: clamp(17px, 1.5vw, 20px);
  color: var(--gray);
}
.section-lead-dark { color: var(--on-dark-muted); }
.step-title-first { margin-top: 0; }

.main-nav a[aria-current="page"] { color: var(--navy); }
.footer-links a[aria-current="page"] { color: var(--navy); }

/* Inscription / contact layout */
.signup-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(40px, 6vw, 96px);
  align-items: start;
}
.signup-intro .badge-interview { margin-top: 32px; }

.next-steps { display: grid; gap: 4px; margin-top: 40px; }
.next-steps li {
  display: flex;
  gap: 16px;
  padding: 18px 0;
  border-top: 1px solid var(--border);
}
.next-steps li:first-child { border-top: 0; padding-top: 0; }
.next-num {
  flex: none;
  display: grid;
  place-items: center;
  width: 36px; height: 36px;
  border-radius: 12px;
  background: var(--blue-50);
  color: var(--blue-ink);
  font-size: 12px;
  font-weight: 700;
}
.next-title { font-weight: 700; line-height: 1.3; }
.next-text { margin-top: 2px; font-size: 15px; color: var(--gray); }

.aside-note { margin-top: 32px; color: var(--gray); }
.hero-doc { margin-top: 18px; font-size: 15px; }
.hero-doc a { color: var(--blue-ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.aside-note a { color: var(--blue-ink); font-weight: 700; }
.aside-note a:hover { text-decoration: underline; }

/* Formulaires */
.form-card {
  padding: clamp(24px, 3.4vw, 40px);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--white);
  box-shadow: var(--shadow-lg);
}
.form { display: grid; gap: 20px; }
.form-head { margin-bottom: 4px; }
.form-title { font-size: 24px; font-weight: 700; letter-spacing: -0.025em; line-height: 1.2; }
.form-sub { margin-top: 6px; font-size: 15px; color: var(--gray); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.field { display: grid; gap: 8px; }
.field label { font-size: 14px; font-weight: 600; }
.field-optional { font-weight: 500; color: var(--gray); }
.field input:not([type="checkbox"]),
.field select,
.field textarea {
  width: 100%;
  min-height: 50px;
  padding: 12px 16px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  background: var(--white);
  color: var(--navy);
  font: inherit;
  font-size: 16px;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.field textarea { resize: vertical; min-height: 110px; }
.field select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2368707D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 12px 8px;
  padding-right: 40px;
}
.field input::placeholder,
.field textarea::placeholder { color: #9AA1AC; }
.field input:not([type="checkbox"]):hover,
.field select:hover,
.field textarea:hover { border-color: #B9C4D6; }
.field input:not([type="checkbox"]):focus,
.field select:focus,
.field textarea:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(47, 109, 246, 0.15);
}

.field-check {
  grid-template-columns: 20px 1fr;
  column-gap: 12px;
  align-items: start;
}
.field-check input {
  width: 20px; height: 20px;
  margin: 2px 0 0;
  accent-color: var(--blue);
}
.field-check label { font-weight: 500; font-size: 14px; color: var(--gray); line-height: 1.5; }
.field-check label a { color: var(--blue-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.field-check .field-error { grid-column: 2; }

/* Erreurs : rouge sobre, uniquement pour la validation */
.field-error { display: none; font-size: 13px; font-weight: 600; color: #C4312F; }
.field.is-invalid .field-error { display: block; }
.field.is-invalid input:not([type="checkbox"]),
.field.is-invalid select,
.field.is-invalid textarea { border-color: #C4312F; }

.btn-block { width: 100%; margin-top: 4px; }
.form-status:empty { display: none; }
.form-status { font-size: 14px; font-weight: 600; color: #C4312F; }

.form-success { text-align: left; }
.form-success:focus { outline: none; }
.form-success .btn { margin-top: 28px; }
.success-icon {
  display: grid;
  place-items: center;
  width: 52px; height: 52px;
  margin-bottom: 24px;
  border-radius: 16px;
  background: var(--blue);
  color: var(--white);
}

/* Liste de fonctionnalités (entreprises) */
.feature-list {
  display: grid;
  gap: 2px;
  padding: 8px;
  border-radius: var(--r-xl);
  background: var(--neutral);
  border: 1px solid var(--border);
}
.feature-list li {
  padding: 22px 24px 22px 48px;
  border-radius: var(--r-md);
  background: var(--white);
  position: relative;
}
.feature-list li::before {
  content: "";
  position: absolute;
  left: 24px; top: 31px;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--blue);
}
.feature-title { font-weight: 700; }
.feature-text { margin-top: 2px; font-size: 15px; color: var(--gray); }

/* Pages légales */
.prose { max-width: 800px; }
.prose-meta { margin-top: 16px; font-size: 14px; color: var(--gray); }
.prose > p:not(.eyebrow):not(.prose-meta),
.prose li { color: #3A4353; }
.prose > p:not(.eyebrow):not(.prose-meta) { margin-top: 16px; }
.prose h2 {
  margin-top: 56px;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
}
.prose h3 { margin-top: 28px; font-size: 17px; font-weight: 700; }
.prose ul { margin-top: 12px; display: grid; gap: 8px; }
.prose li { position: relative; padding-left: 22px; }
.prose li::before {
  content: "";
  position: absolute;
  left: 4px; top: 11px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--blue);
}
.prose a { color: var(--blue-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.prose strong { color: var(--navy); }
.todo {
  padding: 1px 6px;
  border-radius: 6px;
  background: var(--blue-50);
  color: var(--blue-ink);
  font-weight: 600;
}

@media (max-width: 1080px) {
  .signup-grid { grid-template-columns: 1fr; }
  .signup-grid .form-card { max-width: 640px; }
}
@media (max-width: 560px) {
  .form-row { grid-template-columns: 1fr; }
  .page-hero .hero-actions .btn { width: 100%; }
}

/* ---------- Import CV / LinkedIn (inscription) ---------- */
.source-picker {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
}
.source-option {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  background: var(--white);
  cursor: pointer;
  transition: border-color 0.2s, background-color 0.2s, box-shadow 0.2s;
}
.source-option:hover { border-color: #B9C4D6; }
.source-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.source-option:has(input:checked) {
  border-color: var(--blue);
  background: var(--blue-50);
  box-shadow: 0 0 0 1px var(--blue);
}
.source-option:has(input:focus-visible) { outline: 2px solid var(--blue); outline-offset: 3px; }
.source-icon {
  display: grid;
  place-items: center;
  width: 38px; height: 38px;
  border-radius: 12px;
  background: var(--neutral);
  color: var(--navy);
  transition: background-color 0.2s, color 0.2s;
}
.source-option:has(input:checked) .source-icon { background: var(--blue); color: var(--white); }
.source-text { display: grid; gap: 2px; }
.source-title { font-size: 15px; font-weight: 700; line-height: 1.25; }
.source-sub { font-size: 13px; color: var(--gray); }

.source-panel { display: grid; gap: 16px; }
.field-label { font-size: 14px; font-weight: 600; }

.dropzone {
  display: grid;
  place-items: center;
  min-height: 132px;
  padding: 20px;
  border: 1.5px dashed var(--border-strong);
  border-radius: var(--r-md);
  background: var(--neutral);
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s, background-color 0.2s;
}
.dropzone-sm { min-height: 96px; }
.dropzone:hover,
.dropzone.is-dragover { border-color: var(--blue); background: var(--blue-50); }
.dropzone:has(input:focus-visible) { outline: 2px solid var(--blue); outline-offset: 3px; }
.dropzone.has-file { border-style: solid; border-color: var(--blue); background: var(--blue-50); }
.dropzone-empty { display: grid; gap: 6px; }
.dropzone-title { font-size: 15px; font-weight: 700; }
.dropzone-or { font-weight: 500; color: var(--gray); }
.dropzone-link { color: var(--blue-ink); text-decoration: underline; text-underline-offset: 2px; }
.dropzone-hint { font-size: 13px; color: var(--gray); }
.dropzone-file {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 100%;
  font-size: 14px;
  font-weight: 700;
  color: var(--blue-ink);
  word-break: break-all;
}
.dropzone-file::before {
  content: "";
  flex: none;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.field.is-invalid .dropzone { border-color: #C4312F; }

.howto { font-size: 14px; color: var(--gray); }
.howto summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--blue-ink);
  width: fit-content;
}
.howto ol { margin-top: 10px; padding-left: 20px; list-style: decimal; display: grid; gap: 4px; }

.prefill-note {
  padding: 12px 16px;
  border-radius: var(--r-sm);
  background: var(--blue-50);
  color: var(--blue-ink);
  font-size: 14px;
  font-weight: 600;
}
.prefill-note.is-loading { color: var(--gray); background: var(--neutral); }

.field.is-prefilled input:not([type="checkbox"]) {
  border-color: var(--blue);
  background: #F6F9FF;
}

.form-divider {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 4px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gray);
}
.form-divider::before,
.form-divider::after { content: ""; flex: 1; height: 1px; background: var(--border); }

@media (max-width: 560px) {
  .source-picker { grid-template-columns: 1fr; }
  .source-option { flex-direction: row; align-items: center; padding: 14px; }
}
.final-note { margin-top: 16px; font-size: 15px; color: rgba(255, 255, 255, 0.8); }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* ==========================================================================
   Connexion et espace connecté
   ========================================================================== */
.auth-wrap { display: grid; place-items: center; }
.auth-card { width: 100%; max-width: 520px; }
.auth-title { font-size: clamp(28px, 3vw, 34px); letter-spacing: -0.03em; margin-top: -4px; }
.auth-foot { font-size: 14px; color: var(--gray); text-align: center; }
.auth-foot a, .field-hint a { color: var(--blue-ink); font-weight: 600; }
.form-success .form-sub + .form-sub { margin-top: 10px; }

.field-hint { font-size: 13px; color: var(--gray); }

.dash-page { padding-top: clamp(40px, 6vw, 72px); }
.dash-loading { display: grid; place-items: center; gap: 16px; min-height: 40vh; color: var(--gray); }
.spinner {
  width: 32px; height: 32px;
  border: 3px solid var(--blue-50);
  border-top-color: var(--blue);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.dash-head { max-width: 760px; margin-bottom: clamp(32px, 4vw, 48px); }
.dash-head .page-title { font-size: clamp(32px, 4vw, 48px); }
.dash-head .page-lead { font-size: 17px; margin-top: 16px; }

.dash-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 24px;
  align-items: start;
}
.dash-side { display: grid; gap: 16px; }
.dash-narrow { max-width: 640px; }
.dash-form .form-row { gap: 16px; }
.dash-form textarea { min-height: 0; }

.form-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; }
.save-status { font-size: 14px; font-weight: 600; color: var(--blue-ink); }
.save-status.is-error { color: #C4312F; }

.side-card {
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--white);
}
.side-title { font-size: 16px; font-weight: 700; line-height: 1.3; }
.side-text { margin-top: 8px; font-size: 14px; color: var(--gray); word-break: break-word; }
.side-hint { margin-top: 12px; font-size: 13px; color: var(--gray); }
.side-actions { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 16px; }

.link-btn {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  color: var(--blue-ink);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(31, 87, 214, 0.35);
}
.link-btn:hover { text-decoration-color: currentColor; }
.link-danger { color: #B42C2A; text-decoration-color: rgba(180, 44, 42, 0.35); }

/* Interrupteur visibilité */
.switch-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.switch-row .side-title { cursor: pointer; }
.switch { position: relative; flex: none; width: 48px; height: 28px; }
.switch-input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.switch-track {
  position: absolute; inset: 0;
  border-radius: 999px;
  background: var(--border-strong);
  transition: background-color 0.2s;
}
.switch-track::after {
  content: "";
  position: absolute; top: 3px; left: 3px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--white);
  box-shadow: 0 1px 3px rgba(16, 26, 46, 0.25);
  transition: transform 0.2s var(--ease);
}
.switch-input:checked + .switch-track { background: var(--blue); }
.switch-input:checked + .switch-track::after { transform: translateX(20px); }
.switch-input:focus-visible + .switch-track { outline: 2px solid var(--blue); outline-offset: 3px; }
.switch-input:disabled + .switch-track { opacity: 0.6; }

/* Documents */
.doc-list { display: grid; gap: 4px; margin-top: 12px; }
.doc-row {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 4px 12px;
  padding: 12px 0;
  border-top: 1px solid var(--border);
}
.doc-row:first-child { border-top: 0; }
.doc-icon {
  grid-row: span 2;
  display: grid; place-items: center;
  width: 36px; height: 36px;
  border-radius: 12px;
  background: var(--blue-50);
  color: var(--blue-ink);
  font-size: 11px;
  font-weight: 800;
}
.doc-title { font-size: 14px; font-weight: 700; }
.doc-name { font-size: 13px; color: var(--gray); word-break: break-all; }
.doc-actions { grid-column: 2; display: flex; gap: 16px; }

/* Choix du type de compte */
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: 900px; }
.choice-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(28px, 3vw, 40px);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--white);
  font: inherit;
  text-align: left;
  color: inherit;
  cursor: pointer;
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
}
.choice-card:hover { transform: translateY(-4px); border-color: var(--blue); box-shadow: var(--shadow-lg); }
.choice-card .card-title { margin-top: 28px; }
.choice-go { margin-top: 24px; font-weight: 700; color: var(--blue-ink); }

/* Entreprise : talents */
.filters {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 24px;
}
.filters input,
.filters select {
  width: 100%;
  min-height: 48px;
  padding: 10px 16px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  background: var(--white);
  font: inherit;
  font-size: 15px;
  color: var(--navy);
}
.filters select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2368707D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  padding-right: 36px;
}
.filters input:focus,
.filters select:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(47, 109, 246, 0.15); }
.talent-count { font-size: 14px; font-weight: 700; color: var(--gray); white-space: nowrap; }

.talent-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  align-items: start;
}
.talent-card {
  display: grid;
  gap: 14px;
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--white);
  transition: border-color 0.25s, box-shadow 0.25s;
}
.talent-card:hover { border-color: var(--border-strong); box-shadow: var(--shadow-sm); }
.talent-head { display: flex; align-items: center; gap: 14px; }
.talent-avatar { width: 48px; height: 48px; border-radius: 16px; font-size: 16px; }
.talent-name { font-size: 17px; font-weight: 700; line-height: 1.25; }
.talent-role { font-size: 14px; color: var(--gray); }
.talent-meta { font-size: 13px; font-weight: 600; color: var(--gray); }
.talent-meta:empty { display: none; }
.talent-card .chips { margin-top: 0; }
.talent-details { display: grid; gap: 14px; padding-top: 14px; border-top: 1px solid var(--border); }
.talent-pres { font-size: 14px; color: #3A4353; white-space: pre-line; }
.talent-dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; font-size: 14px; }
.talent-dl dt { color: var(--gray); }
.talent-dl dd { margin: 0; font-weight: 600; word-break: break-all; }
.talent-dl a { color: var(--blue-ink); }
.talent-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.talent-foot { display: flex; }

.dash-empty {
  display: grid;
  gap: 16px;
  justify-items: start;
  padding: 32px;
  border: 1px dashed var(--border-strong);
  border-radius: var(--r-lg);
  grid-column: 1 / -1;
}
.dash-foot { margin-top: 40px; }

@media (max-width: 960px) {
  .dash-grid { grid-template-columns: 1fr; }
  .dash-side { grid-row: 1; }
  .filters { grid-template-columns: 1fr 1fr; }
  .filters input[type="search"]:first-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .choice-grid { grid-template-columns: 1fr; }
  .filters { grid-template-columns: 1fr; }
  .talent-grid { grid-template-columns: 1fr; }
}

/* Onglets Candidat / Entreprise (connexion) */
.auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  padding: 4px;
  margin-bottom: 28px;
  border-radius: var(--pill);
  background: var(--neutral);
  border: 1px solid var(--border);
}
.auth-tabs button {
  min-height: 42px;
  border: 0;
  border-radius: var(--pill);
  background: transparent;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  color: var(--gray);
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;
}
.auth-tabs button:hover { color: var(--navy); }
.auth-tabs button[aria-selected="true"] {
  background: var(--white);
  color: var(--navy);
  box-shadow: var(--shadow-sm);
}
.auth-foot .link-btn { font-size: 14px; }

/* ==========================================================================
   Espace entreprise v2 : recherche anonyme, fiche profil, demandes d'échange
   ========================================================================== */
.dash-tabs {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  margin-bottom: 24px;
  border: 1px solid var(--border);
  border-radius: var(--pill);
  background: var(--neutral);
}
.dash-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 18px;
  border: 0;
  border-radius: var(--pill);
  background: transparent;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  color: var(--gray);
  cursor: pointer;
}
.dash-tab[aria-selected="true"] { background: var(--white); color: var(--navy); box-shadow: var(--shadow-sm); }
.tab-count {
  min-width: 22px;
  padding: 1px 7px;
  border-radius: var(--pill);
  background: var(--blue-50);
  color: var(--blue-ink);
  font-size: 12px;
  text-align: center;
}
.tab-count:empty { display: none; }

.search-panel {
  display: grid;
  gap: 14px;
  padding: 18px;
  margin-bottom: 20px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--white);
  box-shadow: var(--shadow-sm);
}
.search-row {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr) minmax(0, 0.9fr);
  gap: 10px;
}
.search-row input,
.search-row select {
  width: 100%;
  min-height: 50px;
  padding: 10px 16px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  background: var(--white);
  font: inherit;
  font-size: 15px;
  color: var(--navy);
}
.search-row select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2368707D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  padding-right: 36px;
}
.search-row input:focus,
.search-row select:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(47, 109, 246, 0.15); }
.search-field { position: relative; }
.search-field input { padding-left: 44px; font-size: 16px; }
.search-icon {
  position: absolute; left: 16px; top: 50%;
  width: 16px; height: 16px;
  transform: translateY(-50%);
  border: 2px solid var(--gray);
  border-radius: 50%;
}
.search-icon::after {
  content: "";
  position: absolute; right: -6px; bottom: -5px;
  width: 7px; height: 2px;
  background: var(--gray);
  transform: rotate(45deg);
  border-radius: 2px;
}
.search-row-2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}
.filter-label { font-size: 13px; font-weight: 700; color: var(--gray); }
.filter-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.filter-chip {
  padding: 7px 13px;
  border: 1px solid var(--border-strong);
  border-radius: var(--pill);
  background: var(--white);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--navy);
  cursor: pointer;
  transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}
.filter-chip:hover { border-color: var(--blue); }
.filter-chip[aria-pressed="true"] { background: var(--blue); border-color: var(--blue); color: var(--white); }
.filter-check { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; cursor: pointer; }
.filter-check input { width: 18px; height: 18px; accent-color: var(--blue); margin: 0; }
.search-row-2 .link-btn { margin-left: auto; }

.results-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 20px;
  margin-bottom: 16px;
}
.results-head .talent-count { font-size: 15px; color: var(--navy); }
.anon-note { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--gray); }
.anon-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--blue); flex: none; }

.anon-avatar {
  display: grid;
  place-items: center;
  flex: none;
  width: 48px; height: 48px;
  border-radius: 16px;
  background: var(--blue-50);
  position: relative;
  overflow: hidden;
}
.anon-avatar::before,
.anon-avatar::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  background: var(--blue);
  opacity: 0.55;
}
.anon-avatar::before { top: 11px; width: 16px; height: 16px; border-radius: 50%; }
.anon-avatar::after { bottom: -8px; width: 32px; height: 22px; border-radius: 16px 16px 0 0; }

.talent-card { gap: 12px; }
.talent-head { align-items: flex-start; }
.talent-id { flex: 1; min-width: 0; }
.talent-ref { font-size: 13px; font-weight: 600; color: var(--gray); letter-spacing: 0.02em; }
.talent-meta { display: flex; flex-wrap: wrap; gap: 4px 0; }
.talent-meta span + span::before { content: "·"; margin: 0 8px; color: var(--border-strong); }
.talent-excerpt {
  font-size: 14px;
  line-height: 1.55;
  color: #3A4353;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  white-space: pre-line;
}
.talent-foot { margin-top: 4px; }

.status-badge {
  flex: none;
  padding: 5px 10px;
  border-radius: var(--pill);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
.status-badge.is-pending { background: var(--neutral); color: var(--gray); border: 1px solid var(--border); }
.status-badge.is-accepted { background: var(--blue); color: var(--white); }
.status-badge.is-declined { background: var(--neutral); color: #8A919C; text-decoration: line-through; }

/* Fiche profil (fenêtre) */
.profile-dialog {
  width: min(640px, calc(100vw - 32px));
  max-height: calc(100vh - 48px);
  padding: 0;
  border: 0;
  border-radius: var(--r-xl);
  background: var(--white);
  color: var(--navy);
  box-shadow: 0 30px 80px -20px rgba(16, 26, 46, 0.45);
}
.profile-dialog::backdrop { background: rgba(16, 26, 46, 0.45); backdrop-filter: blur(3px); }
.dialog-head {
  position: sticky; top: 0; z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 28px 20px;
  border-bottom: 1px solid var(--border);
  background: var(--white);
}
.dialog-title { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
.dialog-close {
  flex: none;
  width: 40px; height: 40px;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--white);
  font-size: 22px;
  line-height: 1;
  color: var(--navy);
  cursor: pointer;
}
.dialog-close:hover { border-color: var(--navy); }
.dialog-body { display: grid; gap: 24px; padding: 24px 28px 28px; }
.profile-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}
.profile-facts div { padding: 14px; border-radius: var(--r-md); background: var(--neutral); }
.profile-facts dt { font-size: 12px; font-weight: 700; color: var(--gray); }
.profile-facts dd { margin: 4px 0 0; font-size: 15px; font-weight: 700; }
.dialog-kicker {
  margin-bottom: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--blue-ink);
}
.dialog-action {
  display: grid;
  gap: 14px;
  padding: 20px;
  border-radius: var(--r-lg);
  background: var(--blue-50);
}
.dialog-action .dialog-kicker { margin-bottom: 0; }
.dialog-action textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  font: inherit;
  font-size: 15px;
  resize: vertical;
  background: var(--white);
}
.dialog-action textarea:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(47, 109, 246, 0.15); }
.reveal-name { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }

/* Liste des demandes (entreprise et candidat) */
.requests-list { display: grid; gap: 10px; }
.request-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--white);
}
.request-body { flex: 1; min-width: 0; }
.request-title { font-weight: 700; line-height: 1.3; }

.requests-card {
  display: grid;
  gap: 14px;
  padding: clamp(22px, 3vw, 32px);
  margin-bottom: 24px;
  border: 1px solid var(--blue);
  border-radius: var(--r-xl);
  background: linear-gradient(0deg, var(--white), var(--white)) padding-box;
  box-shadow: 0 0 0 4px var(--blue-50);
}
.requests-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.request-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 18px;
  border-radius: var(--r-md);
  background: var(--neutral);
}
.request-main { display: grid; gap: 4px; min-width: 0; }
.request-site { font-size: 14px; font-weight: 600; color: var(--blue-ink); word-break: break-all; }
.request-message { margin-top: 6px; font-size: 14px; color: #3A4353; white-space: pre-line; }
.request-actions { display: flex; flex-wrap: wrap; gap: 8px; flex: none; }

@media (max-width: 760px) {
  .search-row { grid-template-columns: 1fr 1fr; }
  .search-row .search-field { grid-column: 1 / -1; }
  .search-row-2 .link-btn { margin-left: 0; }
  .profile-facts { grid-template-columns: 1fr 1fr; }
  .request-item { flex-direction: column; }
}
@media (max-width: 480px) {
  .search-row { grid-template-columns: 1fr; }
  .profile-facts { grid-template-columns: 1fr; }
  .dialog-head, .dialog-body { padding-left: 20px; padding-right: 20px; }
}

/* Menu du profil (en-tête de l'espace connecté) */
.account-menu { position: relative; margin-left: 8px; }
.account-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 4px 12px 4px 4px;
  border: 1px solid var(--border-strong);
  border-radius: var(--pill);
  background: var(--white);
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.account-button:hover,
.account-button[aria-expanded="true"] { border-color: var(--navy); }
.account-avatar {
  display: grid;
  place-items: center;
  width: 34px; height: 34px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--white);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.account-first { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-chevron {
  width: 8px; height: 8px;
  margin: 0 2px 3px 2px;
  border-right: 2px solid var(--gray);
  border-bottom: 2px solid var(--gray);
  transform: rotate(45deg);
  transition: transform 0.2s;
}
.account-button[aria-expanded="true"] .account-chevron { transform: rotate(-135deg); margin-bottom: -3px; }

.account-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 60;
  width: 280px;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--white);
  box-shadow: 0 20px 50px -12px rgba(16, 26, 46, 0.28);
}
.account-who { padding: 12px 12px 14px; border-bottom: 1px solid var(--border); margin-bottom: 6px; }
.account-name { font-weight: 800; line-height: 1.3; word-break: break-word; }
.account-sub { margin-top: 2px; font-size: 13px; color: var(--gray); word-break: break-all; }
.account-list { display: grid; gap: 2px; }
.account-item {
  width: 100%;
  padding: 11px 12px;
  border: 0;
  border-radius: var(--r-sm);
  background: none;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  text-align: left;
  color: var(--navy);
  cursor: pointer;
}
.account-item:hover,
.account-item:focus-visible { background: var(--neutral); outline: none; }
.account-item.is-danger { color: #B42C2A; }
.account-item.is-danger:hover,
.account-item.is-danger:focus-visible { background: #FDF1F1; }
.account-sep { height: 1px; margin: 6px 4px; background: var(--border); }

@media (max-width: 960px) {
  .account-menu { margin-left: auto; }
  .account-menu + .nav-toggle { margin-left: 8px; }
}
@media (max-width: 480px) {
  .account-first { display: none; }
  .account-panel { position: fixed; top: calc(var(--header-h) - 4px); left: 16px; right: 16px; width: auto; }
}

/* ==========================================================================
   Recherche v3 : barre intelligente, étiquettes, filtres compacts
   ========================================================================== */
.search-zone { display: grid; gap: 12px; margin-bottom: 28px; }
.search-wrap { position: relative; }
.smart-search {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-height: 60px;
  padding: 8px 14px 8px 46px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-lg);
  background: var(--white);
  box-shadow: var(--shadow-sm);
  cursor: text;
  position: relative;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.smart-search:focus-within { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(47, 109, 246, 0.14); }
.smart-search .search-icon { left: 18px; }
.smart-search input {
  flex: 1;
  min-width: 180px;
  min-height: 40px;
  border: 0;
  outline: none;
  background: transparent;
  font: inherit;
  font-size: 17px;
  color: var(--navy);
}
.smart-search input::placeholder { color: #9AA1AC; }
.search-tokens { display: contents; }

.token,
.tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: var(--pill);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
}
.token { padding: 6px 6px 6px 12px; font-size: 14px; }
.token-spec, .tag-spec { background: var(--blue); color: var(--white); }
.token-hard, .tag-hard { background: var(--blue-50); color: var(--blue-ink); }
.token-soft, .tag-soft { background: var(--neutral); color: var(--navy); box-shadow: inset 0 0 0 1px var(--border); }
.token-metier, .token-text { background: var(--navy); color: var(--white); }
.tag-soft::before, .token-soft::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); flex: none;
}
.tag.is-hit { box-shadow: 0 0 0 2px var(--navy); }
.tag-more { background: transparent; color: var(--gray); padding-left: 4px; }
.tag-x {
  display: grid;
  place-items: center;
  width: 20px; height: 20px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  color: inherit;
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
}
.token-hard .tag-x, .token-soft .tag-x, .tag-hard .tag-x, .tag-soft .tag-x { background: rgba(16, 26, 46, 0.08); }
.tag-x:hover { background: rgba(16, 26, 46, 0.2); }
.tags { display: flex; flex-wrap: wrap; gap: 6px; }

/* Liste de suggestions */
.suggest {
  position: absolute;
  top: calc(100% + 6px);
  left: 0; right: 0;
  z-index: 30;
  max-height: 360px;
  overflow-y: auto;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--white);
  box-shadow: 0 20px 50px -12px rgba(16, 26, 46, 0.25);
}
.suggest-group {
  padding: 10px 12px 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gray);
}
.suggest-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--r-sm);
  font-size: 15px;
  cursor: pointer;
}
.suggest-item[aria-selected="true"] { background: var(--blue-50); }
.suggest-text { flex: 1; min-width: 0; font-weight: 600; }
.suggest-n { font-size: 12px; color: var(--gray); white-space: nowrap; }
.suggest-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.dot-spec { background: var(--blue); }
.dot-hard { background: #8FB2FF; }
.dot-soft { background: var(--border-strong); }
.dot-metier { background: var(--navy); }
.suggest-free { margin-top: 4px; border-top: 1px solid var(--border); border-radius: 0 0 var(--r-sm) var(--r-sm); color: var(--gray); }
.suggest-free .suggest-text { font-weight: 500; }

/* Suggestions populaires */
.popular { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.popular-label { font-size: 13px; color: var(--gray); margin-right: 2px; }
.popular-chip {
  padding: 5px 11px;
  border: 1px solid var(--border);
  border-radius: var(--pill);
  background: var(--white);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--navy);
  cursor: pointer;
  transition: border-color 0.15s, background-color 0.15s;
}
.popular-chip:hover { border-color: var(--blue); background: var(--blue-50); }

/* Filtres compacts */
.filters-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.mini-select,
.mini-input {
  min-height: 38px;
  padding: 6px 12px;
  border: 1px solid var(--border);
  border-radius: var(--pill);
  background: var(--white);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--navy);
}
.mini-select {
  appearance: none;
  padding-right: 30px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2368707D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 10px 7px;
  cursor: pointer;
}
.mini-input { width: 170px; font-weight: 500; }
.mini-select:focus, .mini-input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47, 109, 246, 0.14); }
.mini-plain { border-color: transparent; background-color: transparent; padding-left: 4px; color: var(--blue-ink); }
.filters-line .link-btn { margin-left: auto; }

.results-right { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.sort-label { font-size: 13px; color: var(--gray); display: inline-flex; align-items: center; }

.talent-card .tags { margin-top: 2px; }
.talent-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }

/* Champ à étiquettes (profil candidat) */
.skills-block {
  display: grid;
  gap: 16px;
  padding: 20px;
  border-radius: var(--r-lg);
  background: var(--neutral);
}
.skills-block-title { font-size: 16px; font-weight: 700; }
.skills-block > .field-hint { margin-top: -10px; }
.tag-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-height: 50px;
  padding: 7px 10px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  background: var(--white);
  cursor: text;
}
.tag-box:focus-within { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(47, 109, 246, 0.15); }
.tag-chips { display: contents; }
.tag-box .tag { padding: 5px 5px 5px 11px; font-size: 14px; }
.tag-box input {
  flex: 1;
  min-width: 160px;
  min-height: 34px;
  border: 0 !important;
  outline: none;
  box-shadow: none !important;
  padding: 0 4px !important;
  background: transparent;
  font: inherit;
  font-size: 15px;
}

@media (max-width: 640px) {
  .smart-search { padding-left: 42px; }
  .smart-search input { min-width: 120px; font-size: 16px; }
  .mini-input { width: 100%; }
  .filters-line .link-btn { margin-left: 0; }
  .results-right { gap: 10px; }
}

/* Étiquettes allégées */
.tag-spec, .token-spec { background: var(--blue-50); color: var(--blue-ink); font-weight: 700; }
.tag-hard, .token-hard { background: var(--white); color: var(--navy); box-shadow: inset 0 0 0 1px var(--border-strong); }
.tag-soft, .token-soft { background: transparent; color: var(--gray); box-shadow: none; padding-left: 4px; }
.token-soft { background: var(--neutral); padding-left: 10px; }
.tag-soft::before, .token-soft::before { width: 5px; height: 5px; background: var(--border-strong); }
.tag.is-hit { box-shadow: inset 0 0 0 1.5px var(--blue); color: var(--blue-ink); background: var(--blue-50); }
.token-spec .tag-x { background: rgba(31, 87, 214, 0.12); }
.dot-hard { background: var(--white); box-shadow: inset 0 0 0 1.5px var(--border-strong); }
.talent-card .tags { gap: 5px; }
.talent-card .tag { font-size: 12.5px; padding: 4px 9px; }
.talent-card .tag-soft { padding-left: 2px; }

/* ==========================================================================
   Recherche v4 : barre + colonne de filtres + curseur d'expérience
   ========================================================================== */
.search-top { margin-bottom: 20px; }
.simple-search { position: relative; }
.simple-search .search-icon { left: 20px; }
.simple-search input {
  width: 100%;
  min-height: 58px;
  padding: 10px 20px 10px 50px;
  border: 1px solid var(--border-strong);
  border-radius: var(--pill);
  background: var(--white);
  font: inherit;
  font-size: 17px;
  color: var(--navy);
  box-shadow: var(--shadow-sm);
}
.simple-search input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(47, 109, 246, 0.14); }
.simple-search input::placeholder { color: #9AA1AC; }
.simple-search input::-webkit-search-cancel-button { cursor: pointer; }

.search-layout {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}
.filters-panel {
  position: sticky;
  top: calc(var(--header-h) + 16px);
  max-height: calc(100vh - var(--header-h) - 32px);
  overflow-y: auto;
  padding-right: 4px;
}
.facet { padding: 18px 0; border-top: 1px solid var(--border); }
.facet:first-child { border-top: 0; padding-top: 4px; }
.facet-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.facet-title { font-size: 14px; font-weight: 700; margin-bottom: 10px; }
.facet-head .facet-title { margin-bottom: 0; }
.facet-options { display: grid; gap: 2px; }
.facet-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 6px;
  margin: 0 -6px;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
}
.facet-option:hover { background: var(--neutral); }
.facet-option input { width: 16px; height: 16px; margin: 0; accent-color: var(--blue); flex: none; }
.facet-label { flex: 1; min-width: 0; line-height: 1.35; }
.facet-n { font-size: 12px; color: var(--gray); font-variant-numeric: tabular-nums; }
.facet-more { margin-top: 6px; font-size: 13px; }
.facet-input {
  width: 100%;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  font: inherit;
  font-size: 14px;
  color: var(--navy);
  background: var(--white);
}
.facet-input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47, 109, 246, 0.14); }
.facet-cv { margin-top: 10px; }

/* Curseur à deux poignées */
.range-out { font-size: 13px; font-weight: 700; color: var(--blue-ink); }
.range { position: relative; height: 28px; margin: 12px 2px 0; }
.range-track {
  position: absolute; left: 0; right: 0; top: 50%;
  height: 4px; margin-top: -2px;
  border-radius: 4px;
  background: var(--border);
}
.range-fill { position: absolute; top: 0; bottom: 0; border-radius: 4px; background: var(--blue); }
.range input[type="range"] {
  position: absolute; left: 0; right: 0; top: 0;
  width: 100%; height: 28px;
  margin: 0;
  background: none;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
}
.range input[type="range"]::-webkit-slider-runnable-track { background: none; height: 28px; }
.range input[type="range"]::-moz-range-track { background: none; }
.range input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  pointer-events: auto;
  width: 20px; height: 20px;
  margin-top: 4px;
  border: 2px solid var(--blue);
  border-radius: 50%;
  background: var(--white);
  box-shadow: 0 1px 4px rgba(16, 26, 46, 0.2);
  cursor: grab;
}
.range input[type="range"]::-moz-range-thumb {
  pointer-events: auto;
  width: 16px; height: 16px;
  border: 2px solid var(--blue);
  border-radius: 50%;
  background: var(--white);
  cursor: grab;
}
.range input[type="range"]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 4px rgba(47, 109, 246, 0.25); }
.range input[type="range"]:focus { outline: none; }
.range-scale { display: flex; justify-content: space-between; margin-top: 2px; font-size: 11px; color: var(--gray); }

/* Résultats */
.results { min-width: 0; }
.results .results-head { margin-bottom: 12px; }
.active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 16px; }
.active-filters .token { background: var(--navy); color: var(--white); font-size: 13px; }
.active-filters .tag-x { background: rgba(255, 255, 255, 0.2); }
.talent-grid-2 { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.talent-wants { font-size: 13px; color: var(--gray); }
.anon-foot { margin-top: 20px; }
.filters-toggle { display: none; }

/* Pastilles de choix (profil candidat, inscription) */
.choice-field { border: 0; padding: 0; margin: 0; min-width: 0; }
.choice-field legend { padding: 0; margin-bottom: 8px; font-size: 14px; font-weight: 600; }
.choice-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.pill { position: relative; cursor: pointer; }
.pill input { position: absolute; opacity: 0; pointer-events: none; }
.pill span {
  display: inline-block;
  padding: 8px 14px;
  border: 1px solid var(--border-strong);
  border-radius: var(--pill);
  background: var(--white);
  font-size: 14px;
  font-weight: 600;
  color: var(--navy);
  transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}
.pill:hover span { border-color: var(--blue); }
.pill input:checked + span { background: var(--blue); border-color: var(--blue); color: var(--white); }
.pill input:focus-visible + span { outline: 2px solid var(--blue); outline-offset: 2px; }

@media (max-width: 900px) {
  .search-layout { grid-template-columns: 1fr; }
  .filters-toggle { display: inline-flex; }
  .filters-panel {
    display: none;
    position: static;
    max-height: none;
    padding: 4px 18px;
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    background: var(--white);
  }
  .filters-panel.is-open { display: block; }
}

/* Ville avec suggestions */
.city-wrap { position: relative; }
.suggest-inline {
  position: static;
  margin-top: 6px;
  max-height: 260px;
  box-shadow: 0 10px 24px -12px rgba(16, 26, 46, 0.25);
}
.suggest-inline .suggest-item { padding: 8px 10px; font-size: 14px; }
.facet .facet-options + .city-wrap,
.facet .facet-options + .facet-input { margin-top: 8px; }

/* Champ avec unité (prétentions) */
.input-suffix { position: relative; }
.input-suffix input { padding-right: 110px !important; width: 100%; }
.input-suffix span {
  position: absolute;
  right: 14px; top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: var(--gray);
  pointer-events: none;
}

/* Saisie libre des prétentions (k€) */
.amount-row { display: flex; align-items: center; gap: 6px; margin-top: 8px; }
.amount-row .amount-input { width: 0; flex: 1; min-width: 0; min-height: 36px; padding: 6px 8px; text-align: center; }
.amount-sep, .amount-unit { font-size: 13px; color: var(--gray); }
.facet-compact { padding: 10px 0; }

/* Colonne de filtres : défilement vertical uniquement */
.filters-panel { overflow-x: hidden; overscroll-behavior: contain; }
.facet-option { margin: 0; padding: 6px 8px 6px 4px; }
.facet-option:hover { background: var(--neutral); }

/* Profil dans l'en-tête des pages publiques (connecté) */
.account-link { text-decoration: none; margin-left: 8px; }
.account-link .account-first { padding-right: 6px; }
@media (max-width: 960px) {
  .header-account { display: none; }
}

/* ==========================================================================
   Recherches enregistrées et alertes
   ========================================================================== */
.save-search { gap: 8px; }
.save-search:disabled { opacity: 1; cursor: default; color: var(--blue-ink); border-color: var(--blue-50); background: var(--blue-50); }
.bell {
  position: relative;
  width: 12px; height: 12px;
  border: 2px solid currentColor;
  border-bottom: 0;
  border-radius: 7px 7px 2px 2px;
  flex: none;
}
.bell::after {
  content: "";
  position: absolute;
  left: 50%; bottom: -5px;
  width: 4px; height: 3px;
  margin-left: -2px;
  border-radius: 0 0 3px 3px;
  background: currentColor;
}
.bell::before {
  content: "";
  position: absolute;
  left: -4px; right: -4px; bottom: -2px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
}

.searches-intro { max-width: 640px; margin-bottom: 20px; }
.searches-list { display: grid; gap: 12px; }
.search-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 22px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--white);
}
.search-main { display: grid; gap: 10px; min-width: 0; }
.search-title-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.search-title-row .request-title { font-size: 17px; }
.saved-crit { display: flex; flex-wrap: wrap; gap: 6px; }
.saved-crit .tag { font-size: 12.5px; padding: 4px 9px; }
.search-actions { display: flex; align-items: center; gap: 18px; flex: none; flex-wrap: wrap; justify-content: flex-end; }
.alert-switch { gap: 10px; }
.alert-switch .facet-label { font-size: 14px; font-weight: 600; cursor: pointer; }

.alert-option { align-items: flex-start; padding: 14px; background: var(--blue-50); border-radius: var(--r-md); }
.alert-option input { margin-top: 3px; }
.alert-option .facet-label { font-size: 14px; color: var(--navy); }

.toast {
  position: fixed;
  left: 50%; bottom: 28px;
  z-index: 100;
  transform: translateX(-50%);
  padding: 12px 18px;
  border-radius: var(--pill);
  background: var(--navy);
  color: var(--white);
  font-size: 14px;
  font-weight: 600;
  box-shadow: 0 16px 40px -12px rgba(16, 26, 46, 0.45);
  transition: opacity 0.4s, transform 0.4s;
}
.toast.is-error { background: #B42C2A; }
.toast.is-out { opacity: 0; transform: translate(-50%, 10px); }

@media (max-width: 760px) {
  .search-item { flex-direction: column; align-items: stretch; }
  .search-actions { justify-content: flex-start; }
}

/* ==========================================================================
   Règles inversées (accueil) et modèle économique (entreprises)
   ========================================================================== */
.section-flip { background: var(--white); }
.flip-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 20px;
  align-items: stretch;
}
.flip-card {
  padding: clamp(26px, 3vw, 36px);
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
}
.flip-before { background: var(--neutral); }
.flip-before .flip-steps li { color: var(--gray); }
.flip-after { background: var(--blue-50); border-color: var(--blue); box-shadow: 0 0 0 4px rgba(47, 109, 246, 0.08); }
.flip-label {
  margin-bottom: 18px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gray);
}
.flip-after .flip-label { color: var(--blue-ink); }
.flip-steps { display: grid; gap: 14px; counter-reset: flip; }
.flip-steps li {
  position: relative;
  padding-left: 40px;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.45;
  counter-increment: flip;
}
.flip-steps li::before {
  content: counter(flip);
  position: absolute;
  left: 0; top: -1px;
  display: grid; place-items: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--white);
  border: 1px solid var(--border-strong);
  font-size: 13px;
  font-weight: 700;
  color: var(--gray);
}
.flip-after .flip-steps li::before { background: var(--blue); border-color: var(--blue); color: var(--white); }
.flip-arrow {
  display: grid;
  place-items: center;
  width: 48px;
  font-size: 28px;
  font-weight: 700;
  color: var(--blue);
}

.offer-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.offer-badges li {
  padding: 10px 16px;
  border: 1px solid var(--border);
  border-radius: var(--pill);
  background: var(--white);
  font-size: 15px;
  color: var(--gray);
}
.offer-badges strong { color: var(--navy); }

.section-model { background: var(--white); }
.model-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.model-card {
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 3vw, 36px);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--white);
}
.model-card .card-title { margin-top: 20px; }
.model-value { font-size: clamp(32px, 3.4vw, 44px); font-weight: 800; letter-spacing: -0.04em; line-height: 1; color: var(--navy); }
.model-card-strong { background: var(--blue); border-color: var(--blue); color: var(--white); }
.model-card-strong .model-value,
.model-card-strong .card-title { color: var(--white); }
.model-card-strong .card-text { color: rgba(255, 255, 255, 0.85); }

@media (max-width: 880px) {
  .flip-grid { grid-template-columns: 1fr; }
  .flip-arrow { width: auto; height: 32px; transform: rotate(90deg); }
  .model-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Tests d'aptitude
   ========================================================================== */
.tests-section {
  display: grid;
  gap: 14px;
  padding: clamp(22px, 3vw, 32px);
  margin-bottom: 24px;
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--white);
}
.tests-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 4px; }
.test-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--neutral);
}
.test-card.is-done { background: var(--white); }
.test-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.test-title { font-size: 17px; font-weight: 700; line-height: 1.3; }
.test-duration { font-size: 12px; font-weight: 700; color: var(--gray); white-space: nowrap; }
.test-desc { font-size: 14px; color: var(--gray); line-height: 1.5; }
.test-foot { margin-top: auto; padding-top: 4px; }
.test-asked { font-size: 13px; font-weight: 700; color: var(--blue-ink); }
.test-share .facet-label { font-size: 13px; font-weight: 600; }

.score-block { display: grid; gap: 8px; }
.score-line { display: flex; align-items: baseline; gap: 10px; }
.score-value { font-size: 30px; font-weight: 800; letter-spacing: -0.03em; color: var(--navy); line-height: 1; }
.score-sub { font-size: 13px; color: var(--gray); }
.score-bar { display: block; height: 8px; border-radius: var(--pill); background: var(--border); overflow: hidden; }
.score-bar > span { display: block; height: 100%; border-radius: inherit; background: var(--blue); }
.score-bar-sm { height: 5px; }
.score-dims { display: grid; gap: 6px; margin-top: 4px; }
.score-dims li { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 40px; align-items: center; gap: 8px; font-size: 12.5px; }
.dim-name { color: var(--navy); font-weight: 600; }
.dim-val { text-align: right; color: var(--gray); font-variant-numeric: tabular-nums; }

/* Fenêtre de test */
.test-dialog { width: min(680px, calc(100vw - 32px)); }
.test-head-right { display: flex; align-items: center; gap: 12px; }
.test-timer {
  font-size: 16px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--navy);
  padding: 6px 12px;
  border-radius: var(--pill);
  background: var(--neutral);
}
.test-timer:empty { display: none; }
.test-timer.is-low { background: #FDF1F1; color: #B42C2A; }
.test-rules { display: grid; gap: 8px; margin: 4px 0 8px; }
.test-rules li { position: relative; padding-left: 20px; font-size: 15px; color: #3A4353; }
.test-rules li::before { content: ""; position: absolute; left: 4px; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); }
.test-progress { display: grid; gap: 8px; font-size: 13px; font-weight: 700; color: var(--gray); }
.test-question { border: 0; margin: 0; padding: 0; display: grid; gap: 8px; }
.test-enonce { font-size: 19px; font-weight: 700; line-height: 1.4; color: var(--navy); margin-bottom: 8px; padding: 0; }
.test-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-md);
  background: var(--white);
  font-size: 15px;
  line-height: 1.45;
  cursor: pointer;
  transition: border-color 0.15s, background-color 0.15s;
}
.test-option:hover { border-color: var(--blue); }
.test-option input { margin: 3px 0 0; width: 18px; height: 18px; accent-color: var(--blue); flex: none; }
.test-option:has(input:checked) { border-color: var(--blue); background: var(--blue-50); }
.test-dots { display: flex; flex-wrap: wrap; gap: 6px; }
.test-dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: var(--border-strong); cursor: pointer; }
.test-dot.is-answered { background: var(--blue); opacity: 0.5; }
.test-dot.is-current { outline: 2px solid var(--blue); outline-offset: 2px; opacity: 1; }
.test-nav { display: flex; justify-content: space-between; gap: 10px; }

/* Côté entreprise */
.test-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.test-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--pill);
  background: var(--neutral);
  font-size: 12.5px;
  color: var(--gray);
}
.test-badge strong { color: var(--navy); }
.test-badge-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--blue); }
.tests-panel { display: grid; gap: 4px; }
.tests-panel-list { display: grid; gap: 8px; }
.tests-panel-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
}
.tests-panel-main { min-width: 0; }
.test-score-pill {
  padding: 6px 12px;
  border-radius: var(--pill);
  background: var(--blue);
  color: var(--white);
  font-size: 14px;
  font-weight: 800;
}

@media (max-width: 960px) { .tests-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .tests-grid { grid-template-columns: 1fr; } .tests-panel-row { flex-direction: column; align-items: flex-start; } }
.tests-grid { align-items: start; }
.test-card .test-foot { margin-top: 4px; }

/* ---------- Messagerie ---------- */
.tab-count.is-unread { background: var(--blue); color: var(--white); }
.messages-card {
  display: grid;
  gap: 14px;
  padding: clamp(22px, 3vw, 32px);
  margin-bottom: 24px;
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--white);
  box-shadow: var(--shadow-sm);
}
.inbox {
  display: grid;
  grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
  height: min(620px, calc(100vh - 220px));
  min-height: 420px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--white);
  overflow: hidden;
}
.inbox.is-empty { grid-template-columns: 1fr; height: auto; min-height: 0; }
.inbox.is-empty .inbox-thread { display: none; }
.inbox-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px;
  border-right: 1px solid var(--border);
  background: var(--neutral);
  overflow-y: auto;
}
.inbox-empty { padding: 28px 20px; text-align: center; }
.conv-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px;
  border: 0;
  border-radius: var(--r-sm);
  background: transparent;
  font: inherit;
  color: var(--navy);
  text-align: left;
  cursor: pointer;
}
.conv-item:hover { background: var(--white); }
.conv-item.is-active { background: var(--white); box-shadow: var(--shadow-sm); }
.conv-avatar {
  display: grid;
  place-items: center;
  flex: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--blue-50);
  color: var(--blue-ink);
  font-size: 14px;
  font-weight: 800;
}
.conv-body { display: grid; gap: 2px; flex: 1; min-width: 0; }
.conv-top { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.conv-name { font-weight: 700; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conv-date { flex: none; font-size: 12px; color: var(--gray); }
.conv-preview { font-size: 13px; color: var(--gray); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conv-item.is-unread .conv-preview { color: var(--navy); font-weight: 600; }
.conv-badge {
  flex: none;
  min-width: 22px;
  padding: 2px 7px;
  border-radius: var(--pill);
  background: var(--blue);
  color: var(--white);
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}
.inbox-thread { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.thread-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
}
.thread-head:empty { display: none; }
.thread-who { flex: 1; min-width: 0; }
.thread-name { font-weight: 800; line-height: 1.3; }
.thread-back { display: none; }
.thread-messages {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.thread-messages:empty::before {
  content: "Choisissez une conversation.";
  margin: auto;
  color: var(--gray);
  font-size: 15px;
}
.thread-empty { margin: auto; max-width: 380px; text-align: center; }
.thread-loading { margin: auto; }
.thread-day {
  align-self: center;
  margin: 10px 0 4px;
  font-size: 12px;
  font-weight: 700;
  color: var(--gray);
  text-transform: capitalize;
}
.bubble-row { display: flex; }
.bubble-row.is-mine { justify-content: flex-end; }
.bubble {
  display: grid;
  gap: 4px;
  max-width: min(78%, 520px);
  padding: 10px 14px;
  border-radius: 18px 18px 18px 6px;
  background: var(--neutral);
  border: 1px solid var(--border);
}
.is-mine .bubble { border-radius: 18px 18px 6px 18px; background: var(--blue); border-color: var(--blue); color: var(--white); }
.bubble-text { font-size: 15px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.bubble-time { justify-self: end; font-size: 11px; color: var(--gray); }
.is-mine .bubble-time { color: rgba(255, 255, 255, 0.78); }
.inbox-thread > .save-status { margin: 0 18px 8px; }
.thread-composer {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  padding: 12px 14px;
  border-top: 1px solid var(--border);
  background: var(--white);
}
.thread-composer textarea {
  flex: 1;
  min-height: 46px;
  max-height: 160px;
  padding: 11px 14px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  font: inherit;
  font-size: 15px;
  resize: vertical;
}
.thread-composer textarea:focus { outline: 2px solid var(--blue); outline-offset: 0; border-color: var(--blue); }
.thread-composer .btn { flex: none; min-height: 46px; }

@media (max-width: 760px) {
  .dash-tabs { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
  .dash-tab { padding: 0 14px; flex: none; }
  .inbox { grid-template-columns: 1fr; height: min(600px, calc(100vh - 140px)); }
  .inbox-list { border-right: 0; }
  .inbox .inbox-thread { display: none; }
  .inbox.is-reading .inbox-list { display: none; }
  .inbox.is-reading .inbox-thread { display: flex; }
  .thread-back { display: inline-flex; flex: none; }
  .thread-head { flex-wrap: wrap; }
  .bubble { max-width: 88%; }
}

/* ---------- Statut des échanges en un coup d'œil ---------- */
.status-dot { display: inline-block; flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--border-strong); }
.status-dot.is-accepted { background: var(--blue); }
.status-dot.is-pending { background: var(--white); box-shadow: inset 0 0 0 2px var(--blue); }
.status-dot.is-declined { background: #B8BEC8; }
.status-dot.is-new { background: var(--blue-50); box-shadow: inset 0 0 0 1px var(--border-strong); }

.status-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.status-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: var(--pill);
  background: var(--white);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--navy);
  cursor: pointer;
}
.status-chip:hover:not(:disabled) { border-color: var(--border-strong); }
.status-chip:disabled { opacity: 0.45; cursor: default; }
.status-chip.is-on { background: var(--navy); border-color: var(--navy); color: var(--white); }
.status-chip-count { font-size: 12px; font-weight: 800; color: var(--gray); }
.status-chip.is-on .status-chip-count { color: var(--blue-soft); }

.talent-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-self: start;
  margin: -4px 0 2px;
  font-size: 13px;
  font-weight: 700;
  color: var(--gray);
}
.talent-status.is-accepted { color: var(--blue-ink); }
.talent-card.is-accepted { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-50); }
.talent-card.is-declined { background: var(--neutral); }
.talent-card.is-declined .talent-name,
.talent-card.is-declined .tags,
.talent-card.is-declined .test-badges { opacity: 0.6; }
.talent-real { font-size: 13px; font-weight: 800; color: var(--blue-ink); line-height: 1.2; margin-bottom: 2px; }
.talent-avatar:not(.anon-avatar) {
  display: grid;
  place-items: center;
  flex: none;
  background: var(--blue);
  color: var(--white);
  font-weight: 800;
}
.request-row .talent-avatar { width: 44px; height: 44px; border-radius: 14px; font-size: 15px; }
.talent-foot-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }

.request-group { display: grid; gap: 8px; margin-bottom: 18px; }
.request-group-head { display: flex; align-items: center; gap: 10px; }
.request-group-title { font-size: 17px; font-weight: 800; }
.request-group-list { display: grid; gap: 8px; margin-top: 4px; }
.request-group.is-accepted .request-row { border-color: var(--blue); }
.request-group.is-declined .request-row { background: var(--neutral); }
.request-group.is-declined .request-title { color: var(--gray); }

/* ---------- Conversation : suggestions et tests ---------- */
.thread-tools {
  display: flex;
  gap: 6px;
  padding: 10px 14px 0;
  border-top: 1px solid var(--border);
  overflow-x: auto;
  scrollbar-width: none;
}
.thread-tools + .thread-composer { border-top: 0; }
.suggest-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: none;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: var(--pill);
  background: var(--neutral);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--navy);
  white-space: nowrap;
  cursor: pointer;
}
.suggest-chip:hover { border-color: var(--blue); color: var(--blue-ink); }
.suggest-chip.is-test { background: var(--blue-50); border-color: var(--blue-50); color: var(--blue-ink); }
.suggest-chip.is-test[aria-expanded="true"] { background: var(--blue); border-color: var(--blue); color: var(--white); }
.chip-icon {
  width: 12px; height: 14px;
  border: 2px solid currentColor;
  border-radius: 3px;
  position: relative;
}
.chip-icon::after {
  content: "";
  position: absolute;
  left: 2px; right: 2px; top: 3px;
  height: 2px;
  background: currentColor;
  box-shadow: 0 3px 0 currentColor;
}
.test-picker {
  display: grid;
  gap: 8px;
  margin: 0 14px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--white);
  box-shadow: var(--shadow-lg);
}
.test-picker-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.test-picker-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; }
.test-pick {
  display: grid;
  gap: 2px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  background: var(--neutral);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.test-pick:hover { border-color: var(--blue); background: var(--blue-50); }
.test-pick-title { font-size: 14px; font-weight: 700; color: var(--navy); }
.test-pick-note { font-size: 12px; color: var(--gray); }

.bubble.has-test { gap: 8px; }
.msg-test {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--white);
  border: 1px solid var(--border);
  color: var(--navy);
}
.msg-test-main { display: grid; gap: 2px; min-width: 0; }
.msg-test-kicker { font-size: 11px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--blue-ink); }
.msg-test-title { font-size: 15px; font-weight: 800; }
.msg-test-dims { font-size: 12px; color: var(--gray); }

/* ---------- Inscription depuis LinkedIn : étapes ---------- */
.li-step {
  display: inline-grid;
  place-items: center;
  width: 22px; height: 22px;
  margin-right: 6px;
  border-radius: 50%;
  background: var(--blue);
  color: var(--white);
  font-size: 12px;
  font-weight: 800;
  vertical-align: 1px;
}
.li-fetch { gap: 10px; }
.li-steps {
  display: grid;
  gap: 6px;
  margin: 2px 0 4px;
  padding: 14px 16px 14px 34px;
  list-style: decimal;
  border-radius: var(--r-sm);
  background: var(--neutral);
  font-size: 14px;
  color: #3A4353;
}
.li-steps strong { color: var(--navy); }
.li-open { font-weight: 700; color: var(--blue-ink); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Expériences du candidat ---------- */
.dash-main { display: grid; gap: 24px; min-width: 0; align-content: start; }
.exp-card { display: grid; gap: 16px; }
.exp-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.exp-head .status-badge { flex: none; }
.exp-list { display: grid; gap: 10px; }
.exp-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--white);
}
.exp-main { display: grid; gap: 4px; min-width: 0; }
.exp-title { font-weight: 800; line-height: 1.3; }
.exp-company { font-weight: 600; color: var(--gray); }
.exp-desc { margin-top: 4px; font-size: 14px; line-height: 1.55; color: #3A4353; white-space: pre-line; }
.exp-actions { display: flex; gap: 12px; flex: none; }
.exp-empty-desc {
  justify-self: start;
  margin-top: 6px;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  color: var(--blue-ink);
  cursor: pointer;
}
.exp-empty-desc:hover { text-decoration: underline; }
.exp-add { justify-self: start; }
.exp-editor {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--blue);
  border-radius: var(--r-md);
  background: var(--neutral);
  box-shadow: 0 0 0 4px var(--blue-50);
}
.exp-date { display: grid; grid-template-columns: 1.3fr 1fr; gap: 8px; }
.exp-current { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 14px; font-weight: 600; cursor: pointer; }
.exp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.exp-chips .suggest-chip { background: var(--white); }
.exp-desc-foot { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 6px; }
.exp-counter { flex: none; font-size: 12px; color: var(--gray); }
.exp-example .exp-desc { margin-top: 8px; padding: 12px 14px; border-radius: var(--r-sm); background: var(--white); }
.exp-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }

.exp-view { display: grid; gap: 12px; }
.exp-item { display: grid; gap: 2px; padding-left: 14px; border-left: 2px solid var(--blue-50); }

@media (max-width: 760px) {
  .exp-row { flex-direction: column; }
  .exp-head { flex-direction: column; }
}

/* ---------- Tests : catégories et progression ---------- */
.tests-progress { margin: 2px 0 6px; }
.tests-cat { display: grid; gap: 10px; margin-top: 10px; }
.tests-cat-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; }
.tests-cat-title { font-size: 16px; font-weight: 800; }
.dash-narrow-wide { max-width: 880px; }
.exp-editor .form-row { align-items: start; }
.exp-editor .field { align-content: start; }
.request-actions { align-items: center; }
.test-score-pill { white-space: nowrap; }
[tabindex="-1"]:focus { outline: none; }

/* ---------- Recrutement dans la conversation ---------- */
.thread-recruit {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 10px 18px;
  border-bottom: 1px solid var(--border);
  background: var(--blue-50);
}
.recruit-text { flex: 1 1 260px; font-size: 14px; color: var(--navy); line-height: 1.45; }
.thread-recruit .status-badge { flex: none; }

/* ---------- Confiance : signaler, bloquer, entreprise vérifiée ---------- */
.link-muted { color: var(--gray); font-weight: 600; font-size: 13px; }
.link-muted:hover { color: var(--navy); }
.thread-actions { display: flex; align-items: center; gap: 14px; flex: none; }
.verified-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 4px;
  padding: 2px 8px 2px 6px;
  border-radius: var(--pill);
  background: var(--blue-50);
  color: var(--blue-ink);
  font-size: 11px;
  font-weight: 800;
  vertical-align: 2px;
}
.verified-badge::before {
  content: "";
  width: 10px; height: 6px;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg) translate(1px, -1px);
}
.request-about { margin-top: 4px; font-size: 14px; color: #3A4353; line-height: 1.5; }
.request-safety { display: flex; gap: 14px; margin-top: 6px; }
.dialog-report { margin-top: 4px; text-align: right; }

/* ---------- Conditions entreprises ---------- */
.conditions-card { display: grid; gap: 18px; }
.conditions-list { display: grid; gap: 10px; padding-left: 18px; list-style: disc; font-size: 15px; line-height: 1.55; color: #3A4353; }
.conditions-list strong { color: var(--navy); }
.conditions-check { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; font-weight: 600; cursor: pointer; }
.conditions-check input { margin-top: 3px; }
.conditions-check a { color: var(--blue-ink); }

/* ---------- Complétion et visibilité du profil ---------- */
.progress-card {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 24px;
  padding: 22px 26px;
  margin-bottom: 24px;
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--white);
  box-shadow: var(--shadow-sm);
}
.progress-main, .progress-stats { display: grid; gap: 10px; align-content: start; }
.progress-top { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.progress-title { font-size: 17px; font-weight: 800; }
.progress-hint { font-size: 13px; color: var(--gray); }
.progress-todo { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.progress-todo .link-btn { font-size: 14px; }
.progress-stats { padding-left: 24px; border-left: 1px solid var(--border); }
.progress-stats ul { display: grid; gap: 6px; font-size: 14px; color: #3A4353; }
.progress-stats strong { display: inline-block; min-width: 22px; font-size: 16px; color: var(--blue-ink); }
.progress-warn { font-size: 13px; font-weight: 700; color: var(--navy); }
@media (max-width: 760px) {
  .progress-card { grid-template-columns: 1fr; padding: 20px; }
  .progress-stats { padding-left: 0; padding-top: 16px; border-left: 0; border-top: 1px solid var(--border); }
}

/* ---------- Administration ---------- */
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; margin-bottom: 24px; }
.kpi { display: grid; gap: 4px; padding: 18px 20px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); }
.kpi.is-strong { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-50); }
.kpi-label { font-size: 13px; font-weight: 700; color: var(--gray); }
.kpi-value { font-size: 30px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; color: var(--navy); }
.kpi-sub { font-size: 13px; color: var(--gray); }
.admin-title { font-size: 18px; font-weight: 800; margin: 8px 0 12px; }
.admin-empty { margin-bottom: 24px; }
.admin-table-wrap { overflow-x: auto; margin-bottom: 28px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); }
.admin-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.admin-table th { padding: 10px 14px; text-align: left; font-size: 12px; font-weight: 800; letter-spacing: 0.03em; text-transform: uppercase; color: var(--gray); background: var(--neutral); border-bottom: 1px solid var(--border); white-space: nowrap; }
.admin-table td { padding: 12px 14px; vertical-align: top; border-bottom: 1px solid var(--border); line-height: 1.45; }
.admin-table tr:last-child td { border-bottom: 0; }
.admin-table tr.is-highlight td { background: var(--blue-50); }
.admin-table a { color: var(--blue-ink); }
.admin-long { max-width: 320px; white-space: pre-line; color: #3A4353; }
.admin-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.admin-chart { display: grid; gap: 12px; padding: 22px 24px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--white); }
.admin-chart-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
.admin-chart-head .admin-title { margin: 0; }
.chart-area { position: relative; display: grid; grid-template-columns: 44px 1fr; height: 180px; }
.chart-grid { display: flex; flex-direction: column; justify-content: space-between; padding-right: 8px; font-size: 11px; color: var(--gray); text-align: right; }
.chart-bars {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 100%;
  border-bottom: 1px solid var(--border-strong);
  background: linear-gradient(to bottom, var(--border) 1px, transparent 1px) 0 0 / 100% 50%;
}
.chart-col { flex: 1; display: flex; align-items: flex-end; height: 100%; cursor: default; outline: none; }
.chart-bar { width: 100%; border-radius: 4px 4px 0 0; background: var(--blue); transition: opacity 0.15s; }
.chart-bars:hover .chart-bar { opacity: 0.55; }
.chart-col:hover .chart-bar, .chart-col:focus-visible .chart-bar { opacity: 1; }
.chart-col:focus-visible { box-shadow: 0 0 0 2px var(--blue-50); }
.chart-tip {
  position: absolute;
  top: -8px;
  transform: translateX(calc(-50% + 44px));
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--navy);
  color: var(--white);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  pointer-events: none;
}
.chart-axis { display: flex; justify-content: space-between; margin-left: 44px; font-size: 11px; color: var(--gray); }
.admin-tops { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 8px; }
.admin-top { display: grid; gap: 6px; margin-top: 8px; font-size: 14px; }
.admin-top li { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
.admin-top span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 760px) { .admin-tops { grid-template-columns: 1fr; } }
/* Administration : audience */
.aud { display: grid; gap: 16px; }
.aud > .admin-chart-head { align-items: center; }
.aud .kpi-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); margin-bottom: 0; }
.aud-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; align-items: start; }
.aud-grid .admin-title { margin: 0; }
.aud-sub { margin-top: 12px !important; }
.aud-rank { display: grid; gap: 10px; margin-top: 4px; font-size: 14px; }
.aud-rank li { display: grid; grid-template-columns: 1fr auto 44px; gap: 2px 12px; align-items: baseline; }
.aud-rank-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aud-rank-pct { font-size: 13px; color: var(--gray); text-align: right; }
.aud-rank-bar { grid-column: 1 / -1; height: 6px; border-radius: 3px; background: var(--blue-50); overflow: hidden; }
.aud-rank-bar span { display: block; height: 100%; border-radius: 3px; background: var(--blue); }
.chart-bars.is-dense { gap: 0; }
@media (max-width: 760px) { .aud-grid { grid-template-columns: 1fr; } }
.admin-table td.nowrap { white-space: nowrap; }

/* ---------- FAQ ---------- */
.faq h2 { margin-top: 40px; }
.faq-list { display: grid; gap: 10px; margin-top: 16px; }
.faq-item { border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); }
.faq-item[open] { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-50); }
.faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  font-size: 16px;
  font-weight: 700;
  color: var(--navy);
  cursor: pointer;
  list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; flex: none; font-size: 22px; font-weight: 500; color: var(--blue); line-height: 1; }
.faq-item[open] summary::after { content: "–"; }
.faq-item p { margin: 0; padding: 0 20px 18px; color: #3A4353; line-height: 1.6; }
.faq-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; }

/* ---------- Page introuvable ---------- */
.notfound { max-width: 640px; }
.notfound .hero-actions { margin-top: 28px; }

/* ---------- Sélecteur de langue ---------- */
.main-nav .nav-lang a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  padding: 4px 10px;
  border: 1px solid var(--border-strong);
  border-radius: var(--pill);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
}
.main-nav .nav-lang a:hover { border-color: var(--blue); color: var(--blue-ink); }

/* ---------- Compléter automatiquement ---------- */
.autofill-btn { justify-self: start; gap: 8px; }
.form-head .autofill-btn { margin-top: 12px; }
.spark {
  width: 14px; height: 14px;
  background: currentColor;
  clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%);
}
.autofill-dialog { width: min(720px, calc(100vw - 32px)); }
.autofill-dialog .form { display: grid; gap: 16px; }
.field-hint.is-over { color: var(--navy); font-weight: 700; }

/* ---------- Fiche talent : synthèse visuelle ---------- */
.profile-dialog.is-wide { width: min(880px, calc(100vw - 32px)); }
.dlg-status { margin-left: 8px; vertical-align: 1px; }
.profile-summary { display: grid; gap: 14px; }
.sum-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.sum-kpi { padding: 14px 16px; border-radius: var(--r-md); background: var(--blue-50); }
.sum-kpi-label { font-size: 12px; font-weight: 700; color: var(--blue-ink); }
.sum-kpi-value { margin-top: 2px; font-size: 22px; font-weight: 800; letter-spacing: -0.01em; color: var(--navy); line-height: 1.2; }
.sum-kpi-sub { font-size: 12px; color: var(--gray); }
.sum-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.sum-chips span { padding: 4px 10px; border: 1px solid var(--border); border-radius: var(--pill); font-size: 13px; font-weight: 600; color: #3A4353; }
.sum-charts { display: grid; grid-template-columns: 1.25fr 1fr; gap: 12px; }
.sum-card { padding: 16px 18px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); }
.sum-card .dialog-kicker { margin-bottom: 12px; }
.sum-empty { font-size: 14px; color: var(--gray); line-height: 1.5; }

.career { display: grid; gap: 6px; }
.career-rows { display: grid; gap: 8px; }
.career-row { display: grid; grid-template-columns: minmax(0, 38%) 1fr; align-items: center; gap: 10px; }
.career-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; color: #3A4353; }
.career-track {
  position: relative;
  height: 14px;
  border-radius: 4px;
  background: repeating-linear-gradient(to right, var(--neutral) 0 1px, transparent 1px 100%) , var(--neutral);
}
.career-bar { position: absolute; top: 0; bottom: 0; border-radius: 4px; background: var(--blue); opacity: 0.55; }
.career-bar.is-current { opacity: 1; }
.career-axis { position: relative; height: 16px; margin-left: calc(38% + 10px); font-size: 11px; color: var(--gray); }
.career-axis span { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; }
.career-axis span:first-child { transform: none; }
.career-axis span.is-now { transform: translateX(-100%); }

.scores { display: grid; gap: 10px; }
.score-row { display: grid; grid-template-columns: minmax(0, 44%) 1fr 42px; align-items: center; gap: 10px; }
.score-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; color: #3A4353; }
.score-track { height: 10px; border-radius: 4px; background: var(--neutral); overflow: hidden; }
.score-fill { display: block; height: 100%; border-radius: 4px; background: var(--blue); }
.score-num { font-size: 13px; font-weight: 800; color: var(--navy); text-align: right; }

.sum-strengths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 16px 18px; border-radius: var(--r-md); background: var(--neutral); }
.sum-strength .dialog-kicker { margin-bottom: 8px; }
.sum-match { padding: 14px 18px; border: 1px dashed var(--border-strong); border-radius: var(--r-md); }
.sum-match .dialog-kicker { margin-bottom: 8px; }
.sum-match-list { display: flex; flex-wrap: wrap; gap: 6px; }
.match-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: var(--pill); background: var(--neutral); font-size: 13px; font-weight: 600; color: var(--gray); text-decoration: line-through; }
.match-chip.is-ok { background: var(--blue-50); color: var(--blue-ink); text-decoration: none; }
.match-icon { width: 8px; height: 5px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg) translateY(-1px); }
.match-chip:not(.is-ok) .match-icon { display: none; }

@media (max-width: 760px) {
  .sum-kpis { grid-template-columns: 1fr 1fr; }
  .sum-charts, .sum-strengths { grid-template-columns: 1fr; }
}
.profile-dialog.is-wide .dialog-title { line-height: 1.25; }
.profile-dialog.is-wide .talent-ref { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; }
.profile-dialog.is-wide .dlg-status { margin-left: 2px; }
.profile-dialog.is-wide .tests-panel-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.profile-dialog.is-wide .tests-panel-row { padding: 10px 12px; }
.profile-dialog.is-wide .tests-panel-row .request-title { font-size: 14px; }
.profile-dialog.is-wide .tests-panel-row .btn-sm { min-height: 34px; padding: 0 12px; font-size: 13px; }
@media (max-width: 760px) { .profile-dialog.is-wide .tests-panel-list { grid-template-columns: 1fr; } }
.ref-form { margin-top: 28px; display: grid; gap: 16px; }
.avis-link { flex: none; font-size: 13px; }
.avis-link.is-done { color: var(--gray); text-decoration: none; cursor: default; }
.stars { display: flex; gap: 6px; margin: 4px 0 12px; }
.star { width: 40px; height: 40px; border: 1px solid var(--border); border-radius: 10px; background: var(--white); font-size: 20px; color: var(--border-strong); cursor: pointer; }
.star.is-on { color: var(--blue); border-color: var(--blue); background: var(--blue-50); }
.admin-alert { font-weight: 800; color: var(--navy); text-decoration: underline wavy var(--blue); text-underline-offset: 4px; }
.funnel { margin-bottom: 24px; }
.funnel-rows { display: grid; gap: 8px; }
.funnel-row { display: grid; grid-template-columns: 190px 1fr 64px 52px; align-items: center; gap: 12px; font-size: 14px; }
.funnel-name { font-weight: 600; color: #3A4353; }
.funnel-track { height: 16px; border-radius: 4px; background: var(--neutral); overflow: hidden; }
.funnel-bar { display: block; height: 100%; border-radius: 4px; background: var(--blue); }
.funnel-num { font-weight: 800; text-align: right; }
.funnel-rate { font-size: 12px; color: var(--gray); text-align: right; }
.funnel-kpis { margin: 8px 0 0; }
@media (max-width: 760px) { .funnel-row { grid-template-columns: 1fr 52px; } .funnel-track { grid-column: 1 / -1; order: 3; } .funnel-rate { display: none; } }

/* ---------- Aperçu des talents, simulateur, pages métiers ---------- */
.section-tight { padding-top: clamp(48px, 7vw, 88px); padding-bottom: clamp(48px, 7vw, 88px); }
.pool-grid { display: grid; grid-template-columns: 1fr 1fr 0.9fr; gap: 16px; margin-top: 8px; }
.pool-card { padding: 20px 22px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--white); }
.pool-bars { display: grid; gap: 10px; }
.pool-row { display: grid; grid-template-columns: minmax(0, 46%) 1fr 40px; align-items: center; gap: 10px; font-size: 14px; }
.pool-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; color: #3A4353; }
.pool-track { height: 10px; border-radius: 4px; background: var(--neutral); overflow: hidden; }
.pool-fill { display: block; height: 100%; border-radius: 4px; background: var(--blue); }
.pool-num { font-weight: 800; text-align: right; color: var(--navy); }
.pool-preview { position: relative; overflow: hidden; }
.pool-ghost { display: grid; gap: 6px; padding: 12px; margin-bottom: 8px; border-radius: var(--r-sm); background: var(--neutral); filter: blur(1.5px); }
.pool-ghost span { height: 8px; border-radius: 4px; background: var(--border-strong); }
.pool-ghost span:nth-child(1) { width: 60%; height: 10px; background: var(--blue-soft); }
.pool-ghost span:nth-child(2) { width: 85%; }
.pool-ghost span:nth-child(3) { width: 40%; }
.pool-cta { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); }
.simulator { display: grid; gap: 10px; max-width: 760px; margin: 28px auto 0; padding: 22px 26px; border: 1px solid var(--blue); border-radius: var(--r-lg); background: var(--white); box-shadow: 0 0 0 4px var(--blue-50); }
.simulator-label { font-weight: 800; font-size: 16px; }
.simulator-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.simulator-row .input-suffix { max-width: 240px; }
.simulator-result { font-size: 15px; color: #3A4353; }
.simulator-result strong { font-size: 24px; color: var(--blue-ink); margin-right: 4px; }
@media (max-width: 860px) { .pool-grid { grid-template-columns: 1fr; } .pool-preview { display: none; } }

.metiers-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.metiers-strip a { padding: 8px 14px; border: 1px solid var(--border); border-radius: var(--pill); background: var(--white); font-size: 14px; font-weight: 700; color: var(--navy); }
.metiers-strip a:hover { border-color: var(--blue); color: var(--blue-ink); }
.famille-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 28px 0; }
.famille-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.famille-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin-top: 24px; }
.famille-card { display: grid; gap: 6px; padding: 20px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--white); color: var(--navy); }
.famille-card:hover { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-50); }
.famille-card strong { font-size: 17px; }
.famille-card span { font-size: 14px; color: var(--gray); }
@media (max-width: 860px) { .famille-stats, .famille-grid { grid-template-columns: 1fr; } }
.famille-more { margin-top: 48px; font-size: 22px; }

/* ---------- Marketplace : situation, besoins, correspondance, confiance ---------- */
.situation { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-bottom: 14px; border-bottom: 1px solid var(--border); }
.situation-label { font-size: 13px; font-weight: 800; color: var(--gray); margin-right: 4px; }
.situation-opt { min-height: 34px; padding: 0 14px; border: 1px solid var(--border); border-radius: var(--pill); background: var(--white); font: inherit; font-size: 14px; font-weight: 700; color: var(--navy); cursor: pointer; }
.situation-opt:hover { border-color: var(--blue); }
.situation-opt.is-on { background: var(--blue); border-color: var(--blue); color: var(--white); }
.situation-date { margin-left: auto; font-size: 12px; color: var(--gray); }
.needs-box { grid-column: 1 / -1; display: grid; gap: 8px; padding: 14px 16px; border-radius: var(--r-md); background: var(--blue-50); }
.needs-list { display: grid; gap: 6px; }
.needs-list li { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; font-size: 14px; }
.needs-title { font-weight: 700; color: var(--navy); }
.needs-score { font-weight: 800; color: var(--blue-ink); }
.needs-tip { grid-column: 1 / -1; font-size: 12px; color: var(--gray); }

.trust-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.trust-badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: var(--pill); background: var(--neutral); font-size: 12px; font-weight: 700; color: #3A4353; }
.trust-badge.is-active { background: var(--blue); color: var(--white); }
.trust-badge.is-check::before { content: ""; width: 8px; height: 5px; border-left: 2px solid var(--blue); border-bottom: 2px solid var(--blue); transform: rotate(-45deg) translateY(-1px); }

.besoins-panel { display: grid; gap: 18px; }
.besoins-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 16px; }
.besoins-list { display: grid; gap: 12px; }
.besoin-card { display: grid; gap: 16px; padding: 18px 20px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--white); }
.besoin-card.is-open { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-50); }
.besoin-card.is-paused { background: var(--neutral); }
.besoin-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; }
.besoin-main { display: grid; gap: 4px; min-width: 0; flex: 1 1 320px; }
.besoin-title { font-size: 17px; font-weight: 800; }
.besoin-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.besoin-switch { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: var(--gray); cursor: pointer; }
.reco-empty { padding: 4px 0; }
.talent-card.has-match { gap: 10px; }
.match-head { display: grid; gap: 8px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.match-score { display: flex; align-items: baseline; gap: 8px; }
.match-score-num { font-size: 24px; font-weight: 800; color: var(--blue-ink); }
.match-score-label { font-size: 13px; color: var(--gray); }
.match-bar { height: 6px; border-radius: 4px; background: var(--neutral); overflow: hidden; }
.match-bar span { display: block; height: 100%; border-radius: 4px; background: var(--blue); }

.referral-url { width: 100%; padding: 10px 12px; border: 1px solid var(--border-strong); border-radius: var(--r-sm); font: inherit; font-size: 13px; color: #3A4353; background: var(--neutral); }
.dash-narrow-wide { display: grid; gap: 24px; }
.refs-view { display: grid; gap: 10px; }
.besoin-card .reco-grid { grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); }
.request-item .trust-badge { background: var(--white); }
.simulator input {
  width: 100%;
  min-height: 50px;
  padding: 12px 16px;
  border: 1px solid var(--border-strong);
  border-radius: var(--r-sm);
  background: var(--white);
  color: var(--navy);
  font: inherit;
  font-size: 17px;
  font-weight: 700;
}
.simulator input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-50); }
.prefill-note.is-ai { border-color: var(--blue); background: var(--blue-50); }
.autofill-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.form-head .autofill-actions { margin-top: 12px; }
.ai-loading { display: grid; justify-items: center; gap: 14px; padding: 28px 0; text-align: center; }
.cv-exp-list { display: grid; gap: 6px; margin: 6px 0 8px; font-size: 14px; }
.cv-exp-list li { padding: 8px 12px; border-radius: var(--r-sm); background: var(--neutral); }
.cv-exp-list li.is-known { opacity: 0.6; }

/* ---------- Aperçu visuel du profil candidat ---------- */
.profil-panel { display: grid; gap: 24px; }
.profile-preview { display: grid; gap: 14px; padding: 24px 26px; border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--white); box-shadow: var(--shadow-sm); }
.preview-head { display: flex; align-items: center; gap: 16px; }
.preview-id { flex: 1; min-width: 0; display: grid; gap: 2px; }
.preview-kicker { font-size: 12px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--blue-ink); }
.preview-title { font-size: 24px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
@media (max-width: 760px) { .preview-head { flex-wrap: wrap; } .profile-preview { padding: 20px; } }

/* ---------- Espace entreprise : vue d'ensemble ---------- */
.overview { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 16px; margin-bottom: 24px; }
.overview:empty { display: none; }
.overview-pipe, .overview-todo { padding: 20px 22px; border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--white); box-shadow: var(--shadow-sm); display: grid; gap: 12px; align-content: start; }
.overview-title { font-size: 15px; font-weight: 800; }
.pipe { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.pipe-step { width: 100%; display: grid; gap: 6px; padding: 12px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--neutral); text-align: left; font: inherit; color: var(--navy); cursor: pointer; }
.pipe-step:hover { border-color: var(--blue); background: var(--blue-50); }
.pipe-num { font-size: 26px; font-weight: 800; line-height: 1; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.pipe-label { font-size: 12.5px; font-weight: 700; color: var(--gray); line-height: 1.3; min-height: 2.6em; }
.pipe-bar { height: 4px; border-radius: 4px; background: var(--border); overflow: hidden; }
.pipe-bar span { display: block; height: 100%; background: var(--blue); border-radius: 4px; }
.todo-list { display: grid; gap: 8px; }
.todo-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: var(--r-sm); background: var(--blue-50); font-size: 14px; font-weight: 600; color: var(--navy); }
.todo-list .link-btn { flex: none; font-size: 14px; }
@media (max-width: 960px) { .overview { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .pipe { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.overview-hint { font-size: 13.5px; color: var(--gray); }

/* ---------- Assistant (bulle en bas à droite) ---------- */
.asst { position: fixed; right: 24px; bottom: 24px; z-index: 60; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.asst-fab { display: inline-flex; align-items: center; gap: 10px; height: 52px; padding: 0 20px 0 16px; border: 0; border-radius: 999px; background: var(--navy); color: var(--white); font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; box-shadow: 0 10px 30px rgba(16, 26, 46, 0.25); transition: transform 0.15s ease; }
.asst-fab:hover { transform: translateY(-1px); }
.asst-fab .spark { background: var(--white); }
.asst-fab[aria-expanded="true"] { background: var(--blue); }
.asst-panel { width: 380px; height: min(600px, calc(100vh - 120px)); display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 20px; background: var(--white); box-shadow: 0 24px 60px rgba(16, 26, 46, 0.22); overflow: hidden; }
.asst-panel[hidden] { display: none; }
.asst-head { display: flex; align-items: center; gap: 12px; padding: 14px 14px 14px 18px; background: var(--navy); color: var(--white); }
.asst-avatar { width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--blue); }
.asst-avatar .spark { background: var(--white); }
.asst-id { flex: 1; min-width: 0; }
.asst-title { font-size: 15px; font-weight: 800; }
.asst-sub { font-size: 12.5px; color: rgba(255, 255, 255, 0.7); }
.asst-icon { width: 32px; height: 32px; flex: none; border: 0; border-radius: 50%; background: transparent; color: var(--white); font-size: 20px; line-height: 1; cursor: pointer; }
.asst-icon:hover { background: rgba(255, 255, 255, 0.12); }
.asst-messages { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; background: var(--neutral); }
.asst-msg { max-width: 88%; padding: 10px 14px; border-radius: 16px; font-size: 14.5px; line-height: 1.5; }
.asst-msg.is-user { align-self: flex-end; background: var(--blue); color: var(--white); border-bottom-right-radius: 4px; white-space: pre-wrap; }
.asst-msg.is-bot { align-self: flex-start; background: var(--white); color: var(--navy); border: 1px solid var(--border); border-bottom-left-radius: 4px; }
.asst-text { display: grid; gap: 6px; }
.asst-text ul { display: grid; gap: 4px; padding-left: 18px; list-style: disc; }
.asst-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.asst-action { padding: 6px 12px; border: 1px solid var(--blue); border-radius: 999px; background: var(--blue-50); color: var(--blue); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.asst-action:hover { background: var(--blue); color: var(--white); }
.asst-copy { margin-top: 8px; padding: 0; border: 0; background: none; color: var(--gray); font: inherit; font-size: 12.5px; font-weight: 600; text-decoration: underline; cursor: pointer; }
.asst-typing { display: flex; gap: 4px; padding: 14px; }
.asst-typing span { width: 7px; height: 7px; border-radius: 50%; background: var(--gray); opacity: 0.4; animation: asst-dot 1s infinite ease-in-out; }
.asst-typing span:nth-child(2) { animation-delay: 0.15s; }
.asst-typing span:nth-child(3) { animation-delay: 0.3s; }
@keyframes asst-dot { 0%, 100% { opacity: 0.25; transform: translateY(0); } 50% { opacity: 0.9; transform: translateY(-3px); } }
.asst-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 16px 0; background: var(--neutral); }
.asst-chips[hidden] { display: none; }
.asst-chip { padding: 7px 12px; border: 1px solid var(--border); border-radius: 999px; background: var(--white); color: var(--navy); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; text-align: left; }
.asst-chip:hover { border-color: var(--blue); color: var(--blue); }
.asst-form { display: flex; align-items: flex-end; gap: 8px; padding: 12px 12px 12px 16px; border-top: 1px solid var(--border); background: var(--white); }
.asst-form textarea { flex: 1; min-height: 40px; max-height: 120px; padding: 9px 12px; border: 1px solid var(--border); border-radius: 12px; font: inherit; font-size: 14.5px; resize: none; color: var(--navy); background: var(--white); }
.asst-form textarea:focus { outline: 2px solid var(--blue); outline-offset: 0; border-color: var(--blue); }
.asst-send { width: 40px; height: 40px; flex: none; border: 0; border-radius: 50%; background: var(--blue); color: var(--white); font-size: 18px; font-weight: 800; cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .asst-typing span { animation: none; } .asst-fab { transition: none; } }
@media (max-width: 640px) {
  .asst { right: 16px; bottom: 16px; }
  .asst-fab { height: 48px; padding: 0 14px; }
  .asst-open .asst-fab { display: none; }
  .asst-panel { position: fixed; inset: auto 0 0 0; width: auto; height: 85vh; border-radius: 20px 20px 0 0; }
}
@media print { .asst { display: none; } }

/* Inscription : renvoi du lien de connexion */
.signup-hint:empty { display: none; }
.signup-resend { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 12px; font-size: 14px; }
.signup-resend .link-btn:disabled { color: var(--gray); cursor: default; text-decoration: none; }
.signup-feedback { color: var(--gray); }

/* ---------- Parcours (espace candidat et entreprise) ---------- */
.journey-card { margin-bottom: 24px; padding: 22px 24px; border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--white); box-shadow: var(--shadow-sm); display: grid; gap: 16px; }
.journey-card:empty { display: none; }
.journey-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.journey-title { font-size: 16px; font-weight: 800; }
.journey-count { font-size: 13.5px; font-weight: 700; color: var(--blue); }
.journey-bar { height: 8px; border-radius: 8px; background: var(--blue-50); overflow: hidden; }
.journey-bar span { display: block; height: 100%; border-radius: 8px; background: var(--blue); transition: width 0.6s ease; }
.journey-steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; counter-reset: none; }
.journey-step { position: relative; display: grid; justify-items: center; gap: 8px; text-align: center; }
.journey-step:not(:last-child)::after { content: ""; position: absolute; top: 15px; left: calc(50% + 20px); right: calc(-50% + 20px); height: 2px; background: var(--border); }
.journey-step.is-done:not(:last-child)::after { background: var(--blue); }
.journey-dot { position: relative; z-index: 1; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; border: 2px solid var(--border); background: var(--white); color: var(--gray); font-size: 13px; font-weight: 800; }
.journey-step.is-done .journey-dot { background: var(--blue); border-color: var(--blue); color: var(--white); }
.journey-step.is-current .journey-dot { border-color: var(--blue); color: var(--blue); box-shadow: 0 0 0 4px var(--blue-50); }
.journey-label { font-size: 12.5px; font-weight: 700; line-height: 1.3; color: var(--gray); }
.journey-step.is-done .journey-label, .journey-step.is-current .journey-label { color: var(--navy); }
.journey-next { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 12px 16px; border-radius: var(--r-md); background: var(--blue-50); font-size: 14px; color: var(--navy); }
.journey-next p { flex: 1; min-width: 220px; }
@media (prefers-reduced-motion: reduce) { .journey-bar span { transition: none; } }
@media (max-width: 720px) {
  .journey-steps { grid-template-columns: 1fr; gap: 10px; }
  .journey-step { grid-template-columns: 32px 1fr; justify-items: start; align-items: center; text-align: left; gap: 12px; }
  .journey-step:not(:last-child)::after { top: 34px; bottom: -10px; left: 15px; right: auto; width: 2px; height: auto; }
}

/* ---------- Parcours type (pages publiques) ---------- */
.route { margin-top: 56px; padding: 28px; border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--white); }
.route-title { font-size: 13px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); margin-bottom: 24px; }
.route-steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.route-step { position: relative; display: grid; gap: 6px; align-content: start; }
.route-step:not(:last-child)::after { content: ""; position: absolute; top: 17px; left: 44px; right: -6px; height: 2px; background: linear-gradient(90deg, var(--blue), var(--blue-50)); }
.route-dot { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--blue); color: var(--white); font-size: 14px; font-weight: 800; margin-bottom: 8px; }
.route-step:last-child .route-dot { background: var(--navy); }
.route-label { font-size: 16px; font-weight: 800; color: var(--navy); }
.route-hint { font-size: 13.5px; line-height: 1.45; color: var(--gray); }
.route-dark { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.12); }
.route-dark .route-label { color: var(--white); }
.route-dark .route-hint { color: var(--on-dark-muted); }
.route-dark .route-step:not(:last-child)::after { background: linear-gradient(90deg, var(--blue), rgba(255, 255, 255, 0.15)); }
.route-dark .route-step:last-child .route-dot { background: var(--white); color: var(--navy); }
@media (max-width: 900px) {
  .route { padding: 22px; }
  .route-steps { grid-template-columns: 1fr; gap: 18px; }
  .route-step { grid-template-columns: 36px 1fr; column-gap: 14px; row-gap: 2px; }
  .route-dot { grid-row: span 2; margin-bottom: 0; }
  .route-step:not(:last-child)::after { top: 40px; bottom: -16px; left: 17px; right: auto; width: 2px; height: auto; background: var(--blue-50); }
  .route-dark .route-step:not(:last-child)::after { background: rgba(255, 255, 255, 0.15); }
}

/* Accueil : le visuel du profil se lit comme une illustration (fenêtre d'aperçu), pas comme une interface cliquable */
.hero-visual { --pc-pad: 28px; }
.hero-visual .profile-card { padding: var(--pc-pad); padding-top: 0; overflow: hidden; pointer-events: none; user-select: none; -webkit-user-select: none; cursor: default; }
.mockup-bar { display: flex; align-items: center; gap: 6px; margin: 0 calc(-1 * var(--pc-pad)) 24px; padding: 12px 16px; background: var(--neutral); border-bottom: 1px solid var(--border); }
.mockup-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--border); }
.mockup-url { flex: 1; margin-left: 10px; padding: 4px 12px; border-radius: 6px; background: var(--white); color: var(--gray); font-size: 12px; font-weight: 600; text-align: center; }
.hero-visual-caption { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 12px; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gray); }
.hero-visual-caption::before { content: ""; width: 24px; height: 1px; background: currentColor; }
/* éléments à plat : de simples étiquettes, sans contour ni forme de bouton */
.hero-visual .badge-interview { margin: 20px 0 4px; padding: 0; background: none; border-radius: 0; font-size: 14px; }
.hero-visual .badge-check { width: 20px; height: 20px; }
.hero-visual .chip { padding: 3px 8px; border: 0; border-radius: 6px; background: var(--neutral); font-size: 12px; }
.hero-visual .chip-verified { background: var(--blue-50); }
.hero-visual .chip-muted { background: none; padding-left: 2px; }
@media (max-width: 720px) { .hero-visual { --pc-pad: 22px; } }

/* Accueil : mise en scène d'illustration (fond décoratif, carte inclinée et empilée) */
.hero-visual { padding: 56px 40px 72px; isolation: isolate; }
.hero-visual::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 32px;
  background: radial-gradient(circle, rgba(47, 109, 246, 0.18) 1.2px, transparent 1.6px) 0 0 / 18px 18px, var(--blue-50);
}
.hero-visual-caption { position: absolute; top: 18px; left: 24px; margin: 0; padding: 5px 12px; border-radius: var(--pill); background: var(--white); color: var(--blue-ink); letter-spacing: 0.08em; box-shadow: var(--shadow-sm); }
.hero-visual-caption::before { display: none; }
.hero-visual .profile-card {
  transform: perspective(1600px) rotateY(-8deg) rotateX(3deg) rotate(-1deg);
  transform-origin: 60% 50%;
  box-shadow: 16px 16px 0 -1px var(--white), 16px 16px 0 0 var(--border), var(--shadow-lg);
}
.hero-visual .float-card { left: 8px; bottom: 24px; transform: rotate(-2deg); }
@media (max-width: 1080px) { .hero-visual { margin-left: 0; } }
@media (max-width: 560px) {
  .hero-visual { padding: 52px 16px 84px; }
  .hero-visual .profile-card { transform: rotate(-1deg); box-shadow: 8px 8px 0 -1px var(--white), 8px 8px 0 0 var(--border), var(--shadow-lg); }
  .hero-visual .float-card { left: 12px; right: 12px; bottom: 16px; }
}

/* Accueil : illustration épurée (lignes stylisées) et fond plus large */
.hero-visual { padding: 64px 48px 80px; }
.hero-visual::before { inset: 0 -56px 0 -24px; border-radius: 40px; }
.hero-visual-caption { top: 22px; left: 48px; }
.hero-visual .profile-card { transform: perspective(1800px) rotateY(-6deg) rotateX(2deg); transform-origin: 50% 50%; }
.hero-visual .float-card { left: 16px; bottom: 28px; transform: rotate(-1.5deg); }
.pc-avatar-blank { background: var(--blue-50); color: var(--blue); }
.pc-avatar-blank svg { margin-top: 6px; }
.sk { display: block; height: 10px; border-radius: 6px; background: #E3E8F0; }
.sk-name { width: 150px; height: 14px; margin-top: 8px; background: var(--navy); opacity: 0.85; }
.sk-role { width: 110px; margin-top: 8px; }
.sk-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.sk-chip { height: 22px; border-radius: 6px; }
.sk-blue { background: var(--blue-50); box-shadow: inset 0 0 0 1px rgba(47, 109, 246, 0.15); }
.sk-lines { flex: 1; display: grid; gap: 8px; }
.pc-match .sk { flex: none; }
@media (max-width: 1080px) { .hero-visual::before { inset: 0 -24px; } .hero-visual-caption { left: 24px; } }
@media (max-width: 560px) {
  .hero-visual { padding: 60px 14px 88px; }
  .hero-visual::before { inset: 0 -8px; border-radius: 28px; }
  .hero-visual-caption { left: 14px; }
  .hero-visual .profile-card { transform: none; }
  .hero-visual .float-card { transform: none; }
}

/* Accueil : panneau pointillé plus débordant */
.hero-visual::before { inset: -36px -28px -8px 0; border-radius: 48px; }
.hero-visual-caption { top: -14px; left: 48px; }
@media (max-width: 1080px) { .hero-visual::before { inset: -28px -48px; } .hero-visual-caption { top: -10px; } }
@media (max-width: 560px) { .hero-visual::before { inset: -16px -16px; border-radius: 28px; } .hero-visual-caption { top: 8px; left: 14px; } }

/* Accueil : contenu de l'illustration recentré dans le panneau */
@media (min-width: 1081px) {
  .hero-visual { padding-left: 72px; padding-right: 36px; }
  .hero-visual-caption { left: 72px; }
  .hero-visual .float-card { left: 44px; }
}

/* =====================================================================
   Séparation candidats / entreprises
   Site candidat par défaut (bleu) ; espace et pages entreprises en bleu nuit
   (bandeau, badge « Entreprises », boutons). Classe .theme-pro sur <body>.
   ===================================================================== */
/* Lien distinct vers l'espace entreprises (pages candidats) */
@media (min-width: 961px) { .main-nav ul { align-items: center; } }
.main-nav .nav-pro a {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 14px; border-radius: var(--pill);
  background: var(--navy); color: var(--white) !important; font-weight: 700; font-size: 14px;
}
.main-nav .nav-pro a:hover { background: #1F2B45; }
.main-nav .nav-pro svg { flex: none; }

/* Bandeau entreprises */
.pro-band { background: var(--navy); color: var(--white); font-size: 13.5px; }
.pro-band-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; padding-top: 6px; padding-bottom: 6px; }
.pro-band strong { font-weight: 800; letter-spacing: 0.02em; }
.pro-band-sub { color: var(--on-dark-muted); }
.pro-band a { color: var(--white); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255, 255, 255, 0.4); white-space: nowrap; }
.pro-band a:hover { text-decoration-color: var(--white); }

/* En-tête entreprises */
.logo-pro {
  display: inline-block; margin-left: 10px; padding: 3px 10px; border-radius: 6px;
  background: var(--navy); color: var(--white);
  font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; vertical-align: 4px;
}
.site-header-pro { border-bottom: 2px solid var(--navy); }
.site-header-pro.is-scrolled { border-bottom-color: var(--navy); }

/* Boutons principaux en bleu nuit sur les pages entreprises */
.btn-pro, .theme-pro .btn-primary { background: var(--navy); color: var(--white); box-shadow: 0 8px 20px -8px rgba(16, 26, 46, 0.5); }
.btn-pro:hover, .theme-pro .btn-primary:hover { background: #1F2B45; transform: translateY(-1px); box-shadow: 0 12px 24px -10px rgba(16, 26, 46, 0.55); }
.theme-pro .eyebrow:not(.eyebrow-light) { color: var(--navy); }
.theme-pro .eyebrow:not(.eyebrow-light)::before { background: var(--navy); }

@media (max-width: 960px) {
  .main-nav .nav-pro { margin-top: 12px; }
  .main-nav .nav-pro a { display: inline-flex; padding: 10px 16px; border-bottom: 0; }
}
@media (max-width: 560px) {
  .pro-band-sub { display: none; }
  .pro-band-inner { font-size: 12.5px; }
  .logo-pro { margin-left: 6px; padding: 2px 7px; font-size: 10.5px; }
}
.field-check .field-hint-inline { display: block; margin-top: 2px; font-size: 13px; }

/* Postes visés */
.postes-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 4px; font-size: 13.5px; color: var(--gray); }
.postes-line strong { color: var(--navy); font-weight: 700; }
.postes-similaires { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: var(--pill); background: var(--blue-50); color: var(--blue-ink); font-size: 12.5px; font-weight: 700; }
.postes-similaire-match { margin-top: 6px; font-size: 13px; font-weight: 700; color: var(--blue-ink); }

/* ---------- Suivi des talents (entreprise) ---------- */
.talent-card { position: relative; }
.talent-card.is-compared { outline: 2px solid var(--blue); outline-offset: 2px; }
.talent-tools { display: inline-flex; gap: 6px; }
.talent-card > .talent-tools { position: absolute; top: 14px; right: 14px; z-index: 1; }
.tool-btn { display: inline-flex; align-items: center; gap: 4px; height: 30px; padding: 0 10px; border: 1px solid var(--border); border-radius: var(--pill); background: var(--white); color: var(--gray); font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; }
.tool-btn:hover { border-color: var(--navy); color: var(--navy); }
.tool-btn.is-on { border-color: var(--navy); background: var(--navy); color: var(--white); }
.star-btn { width: 30px; padding: 0; justify-content: center; font-size: 16px; }
.star-btn.is-on { background: var(--blue-50); border-color: var(--blue); color: var(--blue); }
.etape-badge { display: inline-block; margin-bottom: 8px; padding: 3px 10px; border-radius: var(--pill); background: var(--navy); color: var(--white); font-size: 12px; font-weight: 800; }
.etape-badge.etape-ecarte { background: var(--neutral); color: var(--gray); }
.quota-line { margin-top: 8px; font-size: 13px; font-weight: 700; color: var(--navy); }
.quota-line.is-empty { color: var(--gray); }
.quota-why { font-weight: 500; color: var(--gray); }
.suivi-block { display: grid; gap: 12px; padding: 18px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--neutral); }
.suivi-block-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.suivi-note-foot { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.etape-select { min-width: 170px; }
.compare-bar { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 55; display: flex; align-items: center; gap: 14px; padding: 10px 12px 10px 20px; border-radius: var(--pill); background: var(--navy); color: var(--white); font-size: 14px; font-weight: 700; box-shadow: 0 16px 40px rgba(16, 26, 46, 0.3); }
.compare-bar[hidden] { display: none; }
.compare-bar .link-btn { color: var(--white); }
.compare-scroll { overflow-x: auto; }
.compare-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.compare-table th, .compare-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.compare-table tbody th { width: 170px; color: var(--gray); font-weight: 700; font-size: 13px; }
.compare-name { display: block; font-weight: 800; color: var(--navy); }
.compare-job { display: block; font-size: 13px; font-weight: 600; color: var(--gray); }
.compare-table .muted { color: var(--border-strong); }
.suivi-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.suivi-head .form-sub { max-width: 640px; }
.suivi-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.kanban { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 1fr); gap: 12px; overflow-x: auto; padding-bottom: 8px; }
.kanban-col { display: grid; align-content: start; gap: 10px; min-height: 160px; padding: 12px; border-radius: var(--r-md); background: var(--neutral); border: 1px solid var(--border); }
.kanban-title { display: flex; align-items: center; justify-content: space-between; font-size: 13.5px; font-weight: 800; color: var(--navy); }
.kanban-count { min-width: 22px; padding: 1px 7px; border-radius: var(--pill); background: var(--white); color: var(--gray); font-size: 12px; text-align: center; }
.kanban-hint { font-size: 12.5px; color: var(--gray); line-height: 1.4; }
.kanban-card { display: grid; gap: 8px; padding: 12px; border-radius: var(--r-sm); background: var(--white); border: 1px solid var(--border); box-shadow: var(--shadow-sm); }
.kanban-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.kanban-card-top .talent-tools .tool-btn:not(.star-btn) { display: none; }
.kanban-name { font-size: 14px; font-weight: 800; color: var(--navy); }
.kanban-job { font-size: 12.5px; color: var(--gray); }
.kanban-note { font-size: 12.5px; color: var(--navy); background: var(--blue-50); padding: 6px 8px; border-radius: 6px; }
.kanban-actions { display: flex; gap: 12px; font-size: 13px; }
.kanban .etape-select { width: 100%; min-width: 0; }
@media (max-width: 640px) { .compare-bar { left: 16px; right: 16px; transform: none; border-radius: var(--r-md); flex-wrap: wrap; } }
.talent-card > .talent-tools { position: static; justify-self: end; margin: -10px -8px -8px 0; }
.footer-contact { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--border-strong); }
.footer-contact:hover { color: var(--navy); text-decoration-color: currentColor; }
.bilan-row { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
.bilan-status { margin-left: 6px; font-size: 12.5px; font-weight: 700; color: var(--blue-ink); }

/* ---------- IA : propositions à choisir, avertissement (AI Act) ---------- */
.proposals, .ai-proposals { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.proposals[hidden], .ai-proposals[hidden] { display: none; }
.proposals-label, .ai-proposals-label { width: 100%; font-size: 13px; font-weight: 700; color: var(--blue-ink); }
.proposal-chip { padding: 5px 11px; border: 1px dashed var(--blue); border-radius: var(--pill); background: var(--white); color: var(--blue-ink); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.proposal-chip:hover { background: var(--blue-50); }
.proposal-chip.is-on { border-style: solid; background: var(--blue); color: var(--white); }
.ai-proposals { padding: 12px 14px; border-radius: var(--r-md); background: var(--blue-50); }
.ai-notice { display: grid; gap: 10px; padding-left: 20px; list-style: disc; font-size: 15px; line-height: 1.55; color: var(--navy); }
.ai-choice { margin-top: 20px; flex-wrap: wrap; gap: 10px; }
.ai-optin { margin-top: 4px; }
.form-legal { margin-top: 14px; font-size: 12.5px; line-height: 1.55; color: var(--gray); }
.form-legal a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Administration : candidats, données ---------- */
.admin-toolbar { margin-bottom: 16px; }
.admin-search { width: 100%; max-width: 520px; padding: 10px 14px; border: 1px solid var(--border-strong); border-radius: var(--r-sm); font: inherit; }
.admin-note { margin-bottom: 8px; font-size: 14px; font-weight: 700; color: var(--gray); }
.admin-pager { display: flex; align-items: center; gap: 12px; margin-top: 14px; font-size: 14px; }
.admin-h2 { margin: 28px 0 12px; font-size: 18px; }
.admin-viewer { margin-top: 20px; }
.admin-viewer-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.admin-viewer-head > div { display: flex; gap: 8px; }
.admin-actions { display: flex; gap: 10px; }

/* ---------- Page Contact ---------- */
.contact-page .hero-actions { margin-top: 28px; }
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 40px 0 24px; }
.contact-card { padding: 24px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--white); }
.contact-title { font-size: 18px; font-weight: 800; margin-bottom: 12px; }
.contact-card ul { display: grid; gap: 10px; padding-left: 18px; list-style: disc; color: var(--navy); line-height: 1.55; }
.contact-card a, .contact-page .aside-note a { color: var(--blue-ink); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) { .contact-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   Espaces connectés simplifiés (2026-10) : parcours en une ligne, onglets en tête,
   accueil candidat, profil en sections, vue d'ensemble entreprise compacte
   ========================================================================== */
.dash-head { margin-bottom: 20px; }
.dash-head .page-title { font-size: clamp(28px, 3.2vw, 38px); }
.dash-head .page-lead { font-size: 15.5px; margin-top: 8px; }

/* Parcours */
.journey-card { gap: 10px; padding: 16px 20px; margin-bottom: 16px; border-radius: var(--r-lg); }
.journey-line { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.journey-text { flex: 1; min-width: 220px; display: grid; gap: 2px; }
.journey-count { font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--blue-ink); }
.journey-now { font-size: 17px; font-weight: 800; color: var(--navy); }
.journey-hint { font-size: 14px; color: var(--gray); }
.journey-bar { height: 6px; }
.journey-more summary { cursor: pointer; font-size: 13px; font-weight: 700; color: var(--gray); list-style: none; width: max-content; }
.journey-more summary::-webkit-details-marker { display: none; }
.journey-more summary::after { content: " ↓"; }
.journey-more[open] summary::after { content: " ↑"; }
.journey-more .journey-steps { margin-top: 14px; }

/* Onglets en tête, collants */
.espace-tabs { position: sticky; top: calc(var(--header-h) + 8px); z-index: 20; margin-bottom: 20px; box-shadow: var(--shadow-sm); max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.espace-tabs::-webkit-scrollbar { display: none; }
.dash-tab { white-space: nowrap; }
.tab-count:empty { display: none; }
.tab-count { background: transparent; color: var(--gray); padding: 0 2px; min-width: 0; }
.tab-count.is-unread { background: var(--blue); color: var(--white); padding: 1px 7px; min-width: 20px; }
.sub-tabs { display: flex; gap: 20px; margin: -4px 0 20px; border-bottom: 1px solid var(--border); overflow-x: auto; }
.sub-tab { padding: 10px 0; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; background: none; font: inherit; font-size: 14.5px; font-weight: 700; color: var(--gray); cursor: pointer; white-space: nowrap; }
.sub-tab[aria-pressed="true"] { color: var(--navy); border-bottom-color: var(--blue); }
.sub-tab:hover { color: var(--navy); }

/* Cartes communes */
.box-title { font-size: 16px; font-weight: 800; color: var(--navy); }
.box-text { font-size: 14px; color: var(--gray); }
.card-hint { font-size: 13.5px; color: var(--gray); }
.card-label { font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gray); }

/* Accueil candidat */
.home-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }
.home-main { display: grid; gap: 16px; min-width: 0; }
.home-side { position: sticky; top: calc(var(--header-h) + 76px); }
.home-main .requests-card { margin: 0; }
.home-empty, .todo-card, .status-card, .needs-box { padding: 20px 22px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--white); }
.home-empty { display: flex; gap: 14px; align-items: flex-start; }
.home-empty[hidden] { display: none; }
.home-empty-icon { flex: none; width: 40px; height: 40px; border-radius: 12px; background: var(--blue-50); position: relative; }
.home-empty-icon::before { content: ""; position: absolute; inset: 12px 10px; border: 2px solid var(--blue); border-radius: 3px; }
.home-empty-icon::after { content: ""; position: absolute; left: 12px; right: 12px; top: 13px; height: 8px; border-bottom: 2px solid var(--blue); border-left: 2px solid transparent; border-right: 2px solid transparent; transform: skewY(0); clip-path: polygon(0 0, 50% 100%, 100% 0); background: var(--blue-50); }
.home-empty-title { font-weight: 800; }
.home-empty-text { font-size: 14px; color: var(--gray); margin-top: 2px; }
.todo-card { display: grid; gap: 12px; }
.todo-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.todo-pct { font-size: 15px; font-weight: 800; color: var(--blue-ink); }
.checklist { display: grid; gap: 4px; }
.check-row { width: 100%; display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--r-sm); background: var(--white); font: inherit; font-size: 14.5px; font-weight: 600; color: var(--navy); text-align: left; cursor: pointer; }
.check-row:hover { border-color: var(--blue); }
.check-row:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.check-box { flex: none; width: 18px; height: 18px; border: 2px solid var(--border-strong); border-radius: 6px; }
.check-label { flex: 1; min-width: 0; }
.check-gain { font-size: 13px; font-weight: 800; color: var(--blue-ink); }
.checklist-done summary { cursor: pointer; font-size: 13.5px; font-weight: 700; color: var(--gray); }
.checklist-done ul { margin-top: 6px; padding-left: 20px; font-size: 13.5px; color: var(--gray); list-style: disc; }
.status-card { display: grid; gap: 12px; }
.status-card .situation { display: grid; gap: 6px; padding: 0; border: 0; }
.status-card .situation-opt { width: 100%; justify-content: flex-start; text-align: left; }
.status-stats { display: grid; gap: 8px; padding-top: 12px; border-top: 1px solid var(--border); }
.status-stats p { display: flex; align-items: baseline; gap: 10px; font-size: 13.5px; color: var(--gray); }
.status-stats strong { font-size: 22px; font-weight: 800; color: var(--navy); min-width: 28px; }
.btn-block { width: 100%; justify-content: center; }
.needs-box { margin: 0; background: var(--blue-50); border-color: var(--blue-50); }

/* Demandes reçues : l'essentiel, le détail à la demande */
.request-more summary { cursor: pointer; font-size: 13px; font-weight: 700; color: var(--gray); margin-top: 6px; }
.request-more[open] { display: grid; gap: 8px; }
.request-more .trust-badge { background: var(--neutral); color: var(--navy); }

/* Profil en sections repliables */
.form-section { border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); }
.form-section + .form-section { margin-top: 10px; }
.form-section > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; cursor: pointer; list-style: none; }
.form-section > summary::-webkit-details-marker { display: none; }
.form-section > summary::before { content: ""; flex: none; width: 8px; height: 8px; border-right: 2px solid var(--gray); border-bottom: 2px solid var(--gray); transform: rotate(-45deg); transition: transform 0.2s; margin-right: 4px; }
.form-section[open] > summary::before { transform: rotate(45deg); }
.fsec-title { flex: 1; font-size: 15.5px; font-weight: 800; }
.section-pill { font-size: 12px; font-weight: 800; padding: 3px 10px; border-radius: var(--pill); }
.section-pill.is-ok { background: var(--blue-50); color: var(--blue-ink); }
.section-pill.is-todo { background: var(--white); color: var(--blue-ink); box-shadow: inset 0 0 0 1px var(--blue); }
.section-pill.is-optional { background: var(--neutral); color: var(--gray); }
.form-section-body { display: grid; gap: 18px; padding: 4px 18px 18px; }
.section-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; padding-top: 4px; }
.dash-form .form-head { margin-bottom: 16px; }
.dash-form > .save-status { margin-top: 12px; }

/* Aides affichées seulement pendant la saisie */
.dash-form .field-hint, .dash-form .field-hint-inline { display: none; }
.dash-form .field:focus-within .field-hint, .dash-form .field-check:focus-within .field-hint-inline, .dash-form .section-intro { display: block; }
.dash-form .tag-field:focus-within .field-hint { display: block; }

/* Entreprise : vue d'ensemble en une ligne */
.overview { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; margin-bottom: 16px; padding: 12px 16px 12px 20px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--white); }
.kpi-line { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.kpi-inline { display: inline-flex; align-items: baseline; gap: 8px; padding: 4px 0; border: 0; background: none; font: inherit; cursor: pointer; color: var(--gray); font-size: 14px; font-weight: 600; }
.kpi-inline strong { font-size: 22px; font-weight: 800; color: var(--navy); }
.kpi-inline:hover span { color: var(--navy); text-decoration: underline; }
.kpi-empty { font-size: 14px; color: var(--gray); }
.todo-pop { position: relative; }
.todo-pop > summary { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border: 1px solid var(--border-strong); border-radius: var(--pill); font-size: 14px; font-weight: 700; cursor: pointer; list-style: none; background: var(--white); }
.todo-pop > summary::-webkit-details-marker { display: none; }
.todo-pop[open] > summary { border-color: var(--navy); }
.todo-pop > ul, .todo-pop > p { position: absolute; right: 0; top: calc(100% + 8px); z-index: 30; width: min(420px, 86vw); padding: 10px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); box-shadow: var(--shadow-lg); }
.todo-pop .todo-list { display: grid; gap: 6px; }

/* Recherche : barre + filtres repliables, résultats pleine largeur */
.talent-search-row { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; }
.talent-search-row .search-wrap { flex: 1; min-width: 0; margin: 0; }
.filters-toggle { display: inline-flex; min-height: 52px; white-space: nowrap; }
.filters-panel, .filters-panel.is-open { position: static; max-height: none; overflow: visible; padding: 4px 20px; margin-bottom: 14px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--white); }
.filters-panel { display: none; }
.filters-panel.is-open { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); column-gap: 28px; }
.filters-panel .facet, .filters-panel .facet:first-child { border-top: 0; padding: 14px 0; }
.results .results-head { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; }
.results .results-right { margin-left: auto; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.status-filter { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; margin: 0; border-radius: var(--pill); background: var(--neutral); border: 1px solid var(--border); }
.status-filter[hidden] { display: none; }
.status-chip { border: 0; background: transparent; padding: 6px 12px; min-height: 0; }
.status-chip.is-on { background: var(--white); color: var(--navy); box-shadow: var(--shadow-sm); }
.status-chip.is-on .status-chip-count { color: var(--blue-ink); }
.view-switch { display: inline-flex; padding: 3px; border-radius: var(--pill); background: var(--neutral); border: 1px solid var(--border); }
.view-btn { border: 0; background: none; padding: 5px 12px; border-radius: var(--pill); font: inherit; font-size: 13px; font-weight: 700; color: var(--gray); cursor: pointer; }
.view-btn[aria-pressed="true"] { background: var(--white); color: var(--navy); box-shadow: var(--shadow-sm); }

/* Carte talent simplifiée */
.talent-card { gap: 10px; }
.talent-open { padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.talent-open:hover { color: var(--blue-ink); text-decoration: underline; }
.talent-facts { font-size: 13.5px; color: var(--gray); margin-top: 2px; }
.talent-signals { font-size: 12.5px; font-weight: 600; color: var(--gray); }
.talent-card .tag { background: var(--neutral); border-color: var(--neutral); color: var(--navy); padding-left: 9px; }
.talent-card .tag.is-hit { background: var(--blue-50); border-color: var(--blue-50); color: var(--blue-ink); }
.talent-card .talent-status { font-size: 12.5px; }
.talent-card.is-accepted { box-shadow: none; }

/* Affichage en liste : une ligne par talent */
.talent-grid.is-list { grid-template-columns: 1fr; gap: 8px; }
.talent-grid.is-list .talent-card { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.3fr) minmax(0, 0.8fr) auto; align-items: center; column-gap: 20px; row-gap: 6px; padding: 14px 18px; }
.talent-grid.is-list .talent-head { grid-column: 1; grid-row: 1 / span 2; }
.talent-grid.is-list .tags { grid-column: 2; grid-row: 1; }
.talent-grid.is-list .talent-signals { grid-column: 2; grid-row: 2; }
.talent-grid.is-list .talent-status { grid-column: 3; grid-row: 1 / span 2; margin: 0; }
.talent-grid.is-list .talent-tools { grid-column: 4; grid-row: 1; justify-self: end; }
.talent-grid.is-list .talent-foot { grid-column: 4; grid-row: 2; justify-self: end; margin: 0; }
.talent-grid.is-list .talent-ref { display: none; }

@media (max-width: 960px) {
  .home-grid { grid-template-columns: 1fr; }
  .home-side { position: static; }
  .talent-grid.is-list .talent-card { grid-template-columns: minmax(0, 1fr) auto; }
  .talent-grid.is-list .talent-head, .talent-grid.is-list .tags, .talent-grid.is-list .talent-signals, .talent-grid.is-list .talent-status { grid-column: 1; grid-row: auto; }
  .talent-grid.is-list .talent-tools { grid-column: 2; grid-row: 1; }
  .talent-grid.is-list .talent-foot { grid-column: 2; grid-row: 2; }
}

/* Mobile : barre d'onglets en bas de l'écran */
@media (max-width: 640px) {
  .espace-tabs { position: fixed; top: auto; bottom: 0; left: 0; right: 0; z-index: 40; margin: 0; display: flex; justify-content: space-around; border-radius: 0; border-width: 1px 0 0; padding: 6px 6px calc(6px + env(safe-area-inset-bottom, 0px)); background: var(--white); box-shadow: 0 -6px 20px rgba(16, 26, 46, 0.08); }
  .espace-tabs .dash-tab { flex: 1; min-height: 44px; padding: 0 8px; font-size: 12.5px; justify-content: center; flex-direction: column; gap: 0; }
  .dash-page { padding-bottom: 96px; }
  .talent-search-row { flex-direction: column; align-items: stretch; }
  .filters-toggle { min-height: 44px; justify-content: center; }
  .results .results-right { margin-left: 0; }
  .overview { padding: 12px 16px; }
  .todo-pop > ul, .todo-pop > p { right: auto; left: 0; }
}
@media (max-width: 640px) { .asst { bottom: 84px; } }
.status-card > * { min-width: 0; }
.status-card .situation { grid-column: auto; }
.status-card .situation-opt { box-sizing: border-box; display: flex; align-items: center; }
.tab-short { display: none; }
@media (max-width: 640px) {
  .espace-tabs .tab-long { display: none; }
  .espace-tabs .tab-short { display: inline; }
  .espace-tabs .dash-tab { padding: 0 4px; font-size: 12px; }
}

/* Postes de l'entreprise : vue globale ou vue d'un poste */
.poste-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.poste-label { font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gray); margin-right: 4px; }
.poste-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 14px; border: 1px solid var(--border-strong); border-radius: var(--pill); background: var(--white); font: inherit; font-size: 14px; font-weight: 700; color: var(--navy); cursor: pointer; max-width: 100%; }
.poste-chip:hover { border-color: var(--navy); }
.poste-chip.is-on { background: var(--navy); border-color: var(--navy); color: var(--white); }
.poste-count { font-size: 12px; font-weight: 800; color: var(--gray); }
.poste-chip.is-on .poste-count { color: var(--blue-soft); }
.poste-add { font-size: 14px; margin-left: 4px; }
.poste-note { margin: 0 0 14px; padding: 10px 14px; border-radius: var(--r-sm); background: var(--blue-50); font-size: 14px; color: var(--navy); }
.poste-note[hidden] { display: none; }
.poste-tag { display: inline-block; width: max-content; max-width: 100%; padding: 2px 10px; border-radius: var(--pill); background: var(--blue-50); color: var(--blue-ink); font-size: 12px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.talent-score { font-size: 13px; color: var(--gray); }
.talent-score strong { font-size: 15px; font-weight: 800; color: var(--blue-ink); }
.recap-card { margin-bottom: 20px; padding: 18px 20px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--white); display: grid; gap: 12px; }
.table-wrap { overflow-x: auto; }
.recap-table { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.recap-table th, .recap-table td { padding: 10px 12px; text-align: right; border-top: 1px solid var(--border); white-space: nowrap; }
.recap-table thead th { border-top: 0; font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gray); }
.recap-table th:first-child { text-align: left; }
.recap-table tbody th { font-weight: 700; }
.talent-grid.is-list .talent-score, .talent-grid.is-list .poste-tag { grid-column: 2; }
.request-poste { font-size: 14.5px; color: var(--navy); margin-top: 2px; }
.request-poste strong { font-weight: 800; }
.request-poste-details { color: var(--gray); font-size: 13.5px; }

/* Page seulement en français, visiteur ayant choisi l'anglais */
.lang-note { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px 14px; padding: 10px 48px 10px 16px; position: relative; background: var(--blue-50); color: var(--navy); font-size: 14px; font-weight: 600; text-align: center; }
.lang-note a { color: var(--blue-ink); font-weight: 800; }
.lang-note button { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border: 0; border-radius: 50%; background: transparent; font: inherit; font-size: 20px; line-height: 1; color: var(--gray); cursor: pointer; }
.lang-note button:hover { background: var(--white); color: var(--navy); }

/* Vue globale des postes (espace entreprise, « Tous les postes ») */
.journey-card[hidden] { display: none; }
.overview.is-global { display: grid; gap: 16px; padding: 18px 20px; }
.postes-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.postes-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 12px; }
.poste-card { display: grid; gap: 10px; align-content: start; padding: 16px 18px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); text-align: left; }
.poste-card:hover { border-color: var(--border-strong); }
.poste-card.is-paused { background: var(--neutral); }
.poste-card.is-orphan { background: var(--neutral); border-style: dashed; }
.pc-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pc-title { font-size: 16px; font-weight: 800; min-width: 0; }
.pc-step { font-size: 12.5px; font-weight: 700; color: var(--blue-ink); }
.pc-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.is-orphan .pc-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pc-metric { display: grid; gap: 0; }
.pc-metric strong { font-size: 20px; font-weight: 800; color: var(--navy); font-variant-numeric: tabular-nums; }
.pc-metric span { font-size: 11.5px; font-weight: 600; color: var(--gray); }
.pc-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 2px; }
.poste-new { font: inherit; cursor: pointer; border-style: dashed; background: var(--white); justify-items: start; color: var(--navy); }
.poste-new:hover { border-color: var(--blue); }
.poste-new-plus { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; background: var(--blue-50); color: var(--blue-ink); font-size: 20px; font-weight: 800; }
.overview.is-global { grid-template-columns: minmax(0, 1fr); }
.pc-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pc-step { color: var(--gray); }

/* Démo publique de l'espace (/demo) */
.demo-band { background: var(--blue); color: var(--white); font-size: 14px; }
.demo-band-inner { display: flex; align-items: center; justify-content: space-between; gap: 6px 18px; flex-wrap: wrap; padding-top: 9px; padding-bottom: 9px; }
.demo-band-links { display: flex; align-items: center; gap: 6px 16px; flex-wrap: wrap; }
.demo-band a { color: var(--white); font-weight: 700; }
.demo-band .demo-band-cta { padding: 5px 12px; border-radius: var(--pill); background: var(--white); color: var(--blue-ink); text-decoration: none; }

/* Contraste (audit 2026-10-11) : texte sur fond bleu clair ≥ 4,5:1 */
.asst-action { color: var(--blue-ink); }
.needs-box .needs-tip, .needs-box .card-hint { color: #4F5866; }

/* ==========================================================================
   Mise en situation avec IA (assets/js/simulation.js)
   ========================================================================== */
.sim-card { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 24px; padding: 22px 24px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--white); margin-top: 12px; }
.sim-card-main { display: grid; gap: 8px; align-content: start; }
.sim-card-side { display: grid; gap: 10px; align-content: start; }
.sim-points { margin: 6px 0 0; padding-left: 20px; display: grid; gap: 4px; font-size: 14.5px; color: var(--navy); list-style: disc; }
.sim-score { font-size: 15px; color: var(--gray); }
.sim-score strong { font-size: 40px; font-weight: 800; color: var(--navy); letter-spacing: -0.03em; }
.sim-panel-right { display: grid; justify-items: end; gap: 6px; }
@media (max-width: 760px) { .sim-card { grid-template-columns: 1fr; } }

.sim-criteres { display: grid; gap: 10px; }
.sim-critere { padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); display: grid; gap: 8px; }
.sim-critere-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.sim-critere-label { font-weight: 800; }
.sim-critere-score { font-size: 13px; color: var(--gray); white-space: nowrap; }
.sim-critere-score strong { font-size: 18px; color: var(--navy); }
.sim-suggere { font-size: 12px; color: var(--gray); }
.sim-raisons { display: grid; gap: 2px; font-size: 13.5px; color: #3A4353; }
.sim-raisons li.is-ok { color: var(--blue-ink); }
.sim-raisons li.is-ko { color: var(--navy); font-weight: 600; }
.sim-avis-edit { display: grid; grid-template-columns: auto 90px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding-top: 8px; border-top: 1px dashed var(--border); }
@media (max-width: 640px) { .sim-avis-edit { grid-template-columns: 1fr 1fr; } }

/* Poste de travail : plein écran */
.sim-dialog { width: min(1320px, 100vw); max-width: 100vw; height: min(900px, 100vh); max-height: 100vh; margin: auto; padding: 0; border: 0; border-radius: var(--r-lg); background: var(--neutral); color: var(--navy); display: flex; flex-direction: column; overflow: hidden; }
.sim-dialog:not([open]) { display: none; }
.sim-dialog::backdrop { background: rgba(16, 26, 46, 0.6); }
.sim-top { display: flex; align-items: center; gap: 14px; padding: 12px 18px; background: var(--white); border-bottom: 1px solid var(--border); }
.sim-top-main { flex: 1; min-width: 0; }
.sim-top-title { font-weight: 800; font-size: 16px; flex: 1; }
.sim-top-main .sim-top-title { flex: none; }
.sim-timer { font-weight: 800; font-variant-numeric: tabular-nums; padding: 6px 12px; border-radius: var(--pill); background: var(--blue-50); color: var(--blue-ink); white-space: nowrap; }
.sim-timer.is-late, .card-hint.is-late { background: var(--navy); color: var(--white); }
.card-hint.is-late { background: none; color: var(--navy); font-weight: 800; }
.sim-body { flex: 1; min-height: 0; overflow: auto; }
.sim-intro { max-width: 780px; margin: 0 auto; padding: 28px 20px; display: grid; gap: 14px; }
.sim-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.sim-themes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.sim-theme { display: grid; gap: 8px; align-content: start; text-align: left; padding: 16px 18px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); font: inherit; color: inherit; cursor: pointer; }
.sim-theme:hover { border-color: var(--blue); }
.sim-regles { margin: 4px 0 0; padding: 14px 18px 14px 32px; border-radius: var(--r-md); background: var(--blue-50); display: grid; gap: 4px; font-size: 14px; list-style: disc; }
.sim-grid { display: grid; grid-template-columns: 220px minmax(0, 1fr) 360px; height: 100%; }
.sim-taches { padding: 14px 10px; border-right: 1px solid var(--border); background: var(--white); overflow-y: auto; display: grid; gap: 4px; align-content: start; }
.sim-taches .dialog-kicker { margin: 4px 6px 4px; }
.sim-sep { margin-top: 14px !important; }
.sim-tache { display: flex; align-items: flex-start; gap: 10px; padding: 9px 10px; border: 0; border-radius: var(--r-sm); background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.sim-tache:hover:not(:disabled) { background: var(--neutral); }
.sim-tache.is-on { background: var(--blue-50); }
.sim-tache:disabled { opacity: 0.5; cursor: default; }
.sim-tache-n { flex: none; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 8px; background: var(--neutral); font-size: 12.5px; font-weight: 800; }
.sim-tache.is-done .sim-tache-n { background: var(--blue); color: var(--white); }
.sim-tache-titre { display: block; font-size: 14px; font-weight: 700; }
.sim-tache-niveau { display: block; font-size: 12px; color: var(--gray); }
.sim-centre { padding: 20px 24px; overflow-y: auto; display: grid; gap: 14px; align-content: start; }
.sim-h2 { font-size: 20px; font-weight: 800; }
.sim-h3 { font-size: 16px; font-weight: 800; margin-top: 8px; }
.sim-consigne { padding: 12px 14px; border-radius: var(--r-sm); background: var(--white); border: 1px solid var(--border); font-weight: 600; }
.sim-pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14.5px; line-height: 1.55; }
.sim-mail { padding: 14px 16px; border-radius: var(--r-md); background: var(--white); border: 1px solid var(--border); display: grid; gap: 6px; }
.sim-mail-objet { font-weight: 800; }
.sim-doc { border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); }
.sim-doc > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; cursor: pointer; font-weight: 700; }
.sim-doc > .sim-pre { padding: 0 14px 14px; }
.sim-tableau { display: grid; gap: 8px; }
.sim-tableau-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.sim-filtre { min-width: 240px; flex: 1; }
.sim-table td, .sim-table th { text-align: left; padding: 7px 10px; font-size: 13.5px; }
.sim-table tbody tr.is-on { background: var(--blue-50); }
.sim-th { padding: 0; border: 0; background: none; font: inherit; font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gray); cursor: pointer; }
.sim-mailform { display: grid; gap: 8px; }
.sim-mailform label { display: grid; grid-template-columns: 60px minmax(0, 1fr); align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; color: var(--gray); }
.sim-texte, .sim-saisie { width: 100%; padding: 10px 12px; border: 1px solid var(--border-strong); border-radius: var(--r-sm); background: var(--white); font: inherit; font-size: 14.5px; resize: vertical; }
.sim-texte:focus, .sim-saisie:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47, 109, 246, 0.14); }
.sim-nombre-row { display: flex; align-items: center; gap: 10px; }
.sim-nombre { width: 160px; font-size: 18px; font-weight: 700; }
.sim-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.sim-chat { border-left: 1px solid var(--border); background: var(--white); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-height: 0; position: relative; }
.sim-chat-tabs { margin: 0; padding: 0 14px; }
.sim-fil { overflow-y: auto; padding: 14px; display: grid; gap: 10px; align-content: start; }
.sim-bulle { max-width: 92%; padding: 10px 12px; border-radius: 14px; }
.sim-bulle.is-moi { justify-self: end; background: var(--blue); color: var(--white); border-bottom-right-radius: 4px; }
.sim-bulle.is-autre { justify-self: start; background: var(--neutral); border-bottom-left-radius: 4px; }
.sim-envoi { padding: 10px 14px 14px; border-top: 1px solid var(--border); display: grid; gap: 8px; }
.sim-envoi-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sim-avis { position: absolute; left: 14px; right: 14px; top: 52px; padding: 10px 12px; border-radius: var(--r-sm); background: var(--navy); color: var(--white); font-size: 14px; font-weight: 700; box-shadow: var(--shadow-lg); }
.sim-avis[hidden] { display: none; }
.sim-livrables { display: grid; gap: 10px; }
.sim-livrable { padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--neutral); display: grid; gap: 4px; }
.sim-journal { display: grid; gap: 6px; max-height: 420px; overflow-y: auto; padding-right: 4px; }
.sim-j { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 10px; font-size: 13.5px; }
.sim-j-t { font-variant-numeric: tabular-nums; color: var(--gray); font-weight: 700; }
.sim-j-lab { font-weight: 700; }
.sim-j-c { color: #3A4353; font-size: 13.5px; }
.sim-j-ia_question .sim-j-lab, .sim-j-coequipier_message .sim-j-lab { color: var(--blue-ink); }
@media (max-width: 980px) {
  .sim-grid { grid-template-columns: 1fr; height: auto; }
  .sim-taches { border-right: 0; border-bottom: 1px solid var(--border); grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; align-items: start; }
  .sim-taches .dialog-kicker { display: none; }
  .sim-chat { border-left: 0; border-top: 1px solid var(--border); min-height: 420px; }
  .sim-dialog { height: 100vh; border-radius: 0; }
}
.sim-mailform .mini-input { width: 100%; }

/* Mise en situation v2 : poste de travail à applications */
.sim-top { gap: 12px; }
.sim-logo { flex: none; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: var(--navy); color: var(--white); font-weight: 800; font-size: 14px; letter-spacing: 0.02em; }
.sim-clock { display: grid; grid-template-columns: auto auto; align-items: center; column-gap: 6px; row-gap: 4px; padding: 6px 12px; border-radius: var(--r-sm); background: var(--blue-50); color: var(--blue-ink); }
.sim-clock .sim-timer { padding: 0; background: none; font-size: 16px; }
.sim-clock-ico { display: inline-flex; }
.sim-clock-ico svg { width: 18px; height: 18px; }
.sim-timebar { grid-column: 1 / -1; height: 4px; border-radius: 4px; background: rgba(47, 109, 246, 0.18); overflow: hidden; width: 110px; }
.sim-timebar span { display: block; height: 100%; background: var(--blue); }
.sim-poste { display: grid; grid-template-columns: minmax(0, 1fr) 390px; height: 100%; min-height: 0; }
.sim-env { display: grid; grid-template-rows: auto minmax(0, 1fr); min-height: 0; position: relative; background: #EEF2F8; }
.sim-dock { display: flex; gap: 6px; padding: 10px 14px; background: var(--white); border-bottom: 1px solid var(--border); overflow-x: auto; }
.sim-dock-btn { position: relative; display: grid; justify-items: center; gap: 4px; min-width: 84px; padding: 8px 8px 6px; border: 1px solid transparent; border-radius: var(--r-sm); background: none; font: inherit; color: var(--gray); cursor: pointer; }
.sim-dock-btn:hover { background: var(--neutral); color: var(--navy); }
.sim-dock-btn.is-on { background: var(--neutral); border-color: var(--border); color: var(--navy); }
.sim-dock-ico, .sim-app-ico { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; color: var(--white); }
.sim-dock-lab { font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.sim-dock-badge { position: absolute; top: 4px; right: 18px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--blue); color: var(--white); font-size: 11px; font-weight: 800; display: grid; place-items: center; box-shadow: 0 0 0 2px var(--white); }
/* identité de chaque application */
.sim-ico-mails .sim-dock-ico, .sim-ico-mails .sim-app-ico { background: var(--blue); }
.sim-ico-donnees .sim-dock-ico, .sim-ico-donnees .sim-app-ico { background: var(--navy); }
.sim-ico-documents .sim-dock-ico, .sim-ico-documents .sim-app-ico { background: var(--white); color: var(--blue-ink); box-shadow: inset 0 0 0 2px var(--blue-ink); }
.sim-ico-calculatrice .sim-dock-ico, .sim-ico-calculatrice .sim-app-ico { background: #3A4353; }
.sim-ico-ia .sim-dock-ico, .sim-ico-ia .sim-app-ico { background: linear-gradient(135deg, #2F6DF6, #8FB2FF); }
.sim-ico-coequipier .sim-dock-ico, .sim-ico-coequipier .sim-app-ico { background: var(--blue-50); color: var(--blue-ink); }
.sim-app { min-height: 0; overflow: auto; padding: 16px 18px 20px; display: grid; gap: 12px; align-content: start; }
.sim-app-head { display: flex; align-items: center; gap: 12px; }
.sim-app-titre { font-size: 18px; font-weight: 800; color: var(--navy); }
.sim-app-sous { font-size: 13px; color: var(--gray); }
.sim-app-ia, .sim-app-coequipier { grid-template-rows: auto minmax(0, 1fr) auto; height: 100%; overflow: hidden; }
.sim-app-ia { grid-template-rows: auto auto auto minmax(0, 1fr) auto; }
/* messagerie */
.sim-mailapp { display: grid; grid-template-columns: 270px minmax(0, 1fr); min-height: 420px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); overflow: hidden; }
.sim-mail-liste { border-right: 1px solid var(--border); overflow-y: auto; background: var(--neutral); }
.sim-mail-item { width: 100%; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 11px 12px; border: 0; border-bottom: 1px solid var(--border); background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.sim-mail-item:hover { background: var(--white); }
.sim-mail-item.is-on { background: var(--white); box-shadow: inset 3px 0 0 var(--blue); }
.sim-mail-item.is-new .sim-mail-de { font-weight: 800; }
.sim-mail-item.is-new .sim-mail-de::after { content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 6px; border-radius: 50%; background: var(--blue); vertical-align: middle; }
.sim-mail-txt { display: grid; min-width: 0; }
.sim-mail-de { font-size: 13.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sim-mail-obj { font-size: 12.5px; color: var(--gray); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sim-mail-heure { font-size: 12px; color: var(--gray); align-self: start; }
.sim-mail-lecture { padding: 18px 22px; display: grid; gap: 12px; align-content: start; overflow-y: auto; }
.sim-mail-lecture .sim-mail-objet { font-size: 18px; }
.sim-mail-meta { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.sim-avatar { flex: none; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--blue-50); color: var(--blue-ink); font-weight: 800; font-size: 14px; }
.sim-avatar.is-ia { background: linear-gradient(135deg, #2F6DF6, #8FB2FF); color: var(--white); }
.sim-avatar svg { width: 18px; height: 18px; }
/* tableur */
.sim-bandeau { padding: 9px 12px; border-radius: var(--r-sm); background: var(--navy); color: var(--white); font-size: 14px; font-weight: 600; }
.sim-formule { display: flex; align-items: center; border: 1px solid var(--border-strong); border-radius: 8px; background: var(--white); overflow: hidden; }
.sim-fx { padding: 0 12px; font-style: italic; font-weight: 800; color: var(--gray); border-right: 1px solid var(--border); align-self: stretch; display: grid; place-items: center; }
.sim-formule-input { flex: 1; min-width: 0; border: 0; padding: 9px 12px; font: inherit; font-size: 14px; background: transparent; }
.sim-formule-input:focus { outline: none; }
.sim-formule:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47, 109, 246, 0.14); }
.sim-sheet { overflow: auto; max-height: 470px; border: 1px solid var(--border-strong); border-radius: 8px; background: var(--white); }
.sim-grille { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 13px; font-variant-numeric: tabular-nums; }
.sim-grille th, .sim-grille td { border-right: 1px solid #E6EAF1; border-bottom: 1px solid #E6EAF1; padding: 6px 10px; white-space: nowrap; text-align: left; }
.sim-grille thead th { position: sticky; top: 0; z-index: 1; background: #F1F4F9; font-weight: 700; color: var(--navy); }
.sim-grille thead th.is-col, .sim-grille td.is-col { background: var(--blue-50); }
.sim-corner, .sim-rownum { position: sticky; left: 0; background: #F1F4F9 !important; color: var(--gray); font-weight: 700; text-align: center !important; width: 36px; }
.sim-grille td.is-num { text-align: right; }
.sim-grille tbody tr:hover td { background: #FAFBFD; }
.sim-grille tbody tr.is-on td { background: var(--blue-50); }
.sim-col-btn { border: 0; background: none; padding: 0; font: inherit; font-weight: 700; color: inherit; cursor: pointer; display: inline-flex; align-items: baseline; gap: 6px; }
.sim-col-lettre { font-size: 11px; font-weight: 800; color: var(--gray); }
.sim-tri { border: 0; background: none; padding: 0 0 0 6px; color: var(--gray); cursor: pointer; font-size: 12px; }
.sim-cb { width: 34px; text-align: center !important; }
.sim-statut { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 7px 12px; border-radius: 8px; background: #3A4353; color: var(--white); font-size: 12.5px; font-weight: 600; }
/* documents */
.sim-docapp { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 14px; }
.sim-doc-liste { display: grid; gap: 6px; align-content: start; }
.sim-doc-item { width: 100%; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; align-items: start; padding: 10px; border: 1px solid var(--border); border-radius: var(--r-sm); background: var(--white); font: inherit; color: inherit; text-align: left; cursor: pointer; }
.sim-doc-item.is-on { border-color: var(--blue); box-shadow: 0 0 0 2px var(--blue-50); }
.sim-doc-ico { color: var(--blue-ink); }
.sim-doc-item .sim-mail-de { white-space: normal; }
.sim-doc-badge { display: inline-block; width: max-content; padding: 2px 8px; border-radius: var(--pill); background: var(--neutral); color: var(--gray); font-size: 11.5px; font-weight: 700; }
.sim-doc-badge.is-ia { background: var(--blue-50); color: var(--blue-ink); }
.sim-doc-badge.is-old { background: #E9ECF1; color: #3A4353; text-decoration: none; }
.sim-page-wrap { padding: 18px; border-radius: var(--r-md); background: #DDE3EC; }
.sim-page { max-width: 640px; margin: 0 auto; padding: 32px 36px; background: var(--white); box-shadow: 0 6px 24px rgba(16, 26, 46, 0.12); display: grid; gap: 12px; min-height: 380px; }
.sim-page-titre { font-size: 20px; font-weight: 800; }
/* calculatrice */
.sim-calcapp { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 16px; align-items: start; }
.sim-calc { padding: 16px; border-radius: 22px; background: var(--navy); display: grid; gap: 12px; box-shadow: var(--shadow-lg); }
.sim-calc-ecran { display: block; min-height: 58px; padding: 10px 14px; border-radius: 12px; background: #0A1220; color: var(--white); font-size: 28px; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.sim-calc-touches { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.sim-touche { height: 48px; border: 0; border-radius: 12px; background: #24314B; color: var(--white); font: inherit; font-size: 18px; font-weight: 700; cursor: pointer; }
.sim-touche:hover { background: #2E3D5C; }
.sim-touche.is-op { background: #33476E; color: var(--blue-soft); }
.sim-touche.is-egal { background: var(--blue); color: var(--white); }
.sim-calc-hist { padding: 14px 16px; border-radius: var(--r-md); background: var(--white); border: 1px solid var(--border); display: grid; gap: 8px; }
.sim-calc-hist ul { display: grid; gap: 4px; font-variant-numeric: tabular-nums; font-size: 14px; }
/* discussions */
.sim-fil { overflow-y: auto; display: grid; gap: 12px; align-content: start; padding: 4px 2px; }
.sim-fil-ia { background: transparent; }
.sim-msg { display: flex; gap: 8px; align-items: flex-end; max-width: 88%; }
.sim-msg.is-moi { justify-self: end; flex-direction: row-reverse; }
.sim-msg .sim-bulle { max-width: 100%; padding: 10px 13px; border-radius: 16px; background: var(--white); border: 1px solid var(--border); }
.sim-msg.is-moi .sim-bulle { background: var(--blue); border-color: var(--blue); color: var(--white); border-bottom-right-radius: 4px; }
.sim-msg.is-autre .sim-bulle { border-bottom-left-radius: 4px; }
.sim-fil-ia .sim-msg.is-autre .sim-bulle { background: linear-gradient(180deg, #FFFFFF, #F4F8FF); border-color: #D6E3FF; }
.sim-vide { display: grid; justify-items: center; gap: 8px; text-align: center; padding: 36px 20px; max-width: 420px; margin: 0 auto; }
.sim-vide-ico { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 16px; background: var(--white); color: var(--blue); box-shadow: var(--shadow-sm); }
.sim-vide-ico svg { width: 28px; height: 28px; }
.sim-app .sim-envoi { padding: 10px; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--white); }
.sim-envoi-foot .card-hint:first-child { flex: 1; }
/* panneau Ma tâche */
.sim-tache-panel { border-left: 1px solid var(--border); background: var(--white); overflow-y: auto; padding: 14px 18px 20px; display: grid; gap: 14px; align-content: start; }
.sim-steps { display: flex; gap: 6px; margin-top: 6px; }
.sim-step { width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--border-strong); background: var(--white); font: inherit; font-weight: 800; color: var(--navy); cursor: pointer; }
.sim-step.is-on { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-50); }
.sim-step.is-done { background: var(--blue); border-color: var(--blue); color: var(--white); }
.sim-step:disabled { opacity: 0.4; cursor: default; border-style: dashed; }
.sim-tache-carte { display: grid; gap: 12px; }
.sim-niveau { width: max-content; padding: 3px 10px; border-radius: var(--pill); font-size: 12px; font-weight: 800; }
.sim-niveau.is-rapide { background: var(--blue-50); color: var(--blue-ink); }
.sim-niveau.is-fond { background: var(--navy); color: var(--white); }
.sim-sel-info { display: grid; gap: 8px; padding: 12px; border-radius: var(--r-sm); background: var(--neutral); font-size: 14px; }
/* crédit IA et bilan de fin de séance (mise en situation, version 2) */
.sim-credit { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--r-sm); background: var(--white); font-size: 14px; }
.sim-credit-lab { font-weight: 700; color: var(--navy); }
.sim-credit-barre { flex: 1; height: 8px; border-radius: 4px; background: var(--blue-50); overflow: hidden; }
.sim-credit-barre span { display: block; height: 100%; border-radius: 4px; background: var(--blue); transition: width 0.3s; }
.sim-credit.is-bas .sim-credit-barre span { background: var(--navy); }
.sim-bilan { gap: 14px; }
.sim-bilan-q { display: grid; gap: 6px; }
.sim-env .sim-avis { top: 74px; left: auto; right: 18px; width: min(380px, 80%); display: flex; align-items: center; justify-content: space-between; gap: 10px; z-index: 5; }
.sim-env .sim-avis .link-btn { color: var(--blue-soft); }
@media (max-width: 1080px) {
  .sim-poste { grid-template-columns: 1fr; height: auto; }
  .sim-tache-panel { border-left: 0; border-top: 1px solid var(--border); }
  .sim-env { min-height: 560px; }
  .sim-mailapp, .sim-docapp, .sim-calcapp { grid-template-columns: 1fr; }
  .sim-mail-liste { max-height: 200px; border-right: 0; border-bottom: 1px solid var(--border); }
  .sim-timebar { width: 70px; }
}
body:has(dialog.sim-dialog[open]) .asst { display: none; }
.sim-page .sim-doc-badge, .sim-niveau { justify-self: start; }
