/* Clara Recrutement. Same design as Clara Diagnostic: light, Clara navy + green, Poppins + Roboto (hosted here). */
:root {
  --navy: #163669; --navy-dark: #0e2347; --navy-light: #1e4a8a; --navy-soft: #eef3fa; --navy-tint: #f5f8fd;
  --green: #3dd68c; --green-dark: #1f9d61; --green-soft: #e7f9f0;
  --bg: #f5f7fb; --card: #ffffff; --border: #e3e8ef; --border-strong: #cdd6e2;
  --text: #0f1b2d; --muted: #5b6b80; --subtle: #8a97a8;
  --red: #d93f45; --red-soft: #fdeced; --amber: #b86a00; --amber-soft: #fef3e0; --blue: #2459c8; --blue-soft: #e9f0fd;
  --radius: 14px; --radius-sm: 10px;
  --shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .05);
  --shadow-lg: 0 12px 32px rgba(14, 35, 71, .10), 0 2px 6px rgba(14, 35, 71, .05);
  --font-head: "Poppins", system-ui, sans-serif; --font-body: "Roboto", system-ui, sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: var(--font-body); color: var(--text); background: var(--bg); font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
a { color: var(--navy-light); text-decoration: none; } a:hover { text-decoration: underline; }
h1, h2, h3, h4 { font-family: var(--font-head); font-weight: 600; letter-spacing: -.01em; margin: 0; line-height: 1.25; }
h1 { font-size: 26px; } h2 { font-size: 19px; } h3 { font-size: 16px; } h4 { font-size: 14px; }
p { margin: 0 0 10px; }
.muted { color: var(--muted); } .subtle { color: var(--subtle); } .small { font-size: 13px; } .tiny { font-size: 12px; }
.hidden { display: none !important; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 42px; padding: 0 18px; border-radius: var(--radius-sm);
  border: 1px solid transparent; font: 500 14.5px var(--font-body); cursor: pointer; white-space: nowrap; transition: background .15s, border-color .15s; text-decoration: none !important; }
.btn-primary { background: var(--navy); color: #fff; } .btn-primary:hover { background: var(--navy-dark); }
.btn-green { background: var(--green); color: var(--navy-dark); } .btn-green:hover { background: #33c47e; }
.btn-ghost { background: #fff; color: var(--text); border-color: var(--border); } .btn-ghost:hover { border-color: var(--border-strong); background: var(--navy-tint); }
.btn-danger { background: #fff; color: var(--red); border-color: #f2c4c6; } .btn-danger:hover { background: var(--red-soft); }
.btn-red { background: var(--red); color: #fff; } .btn-red:hover { background: #c2343a; }
.btn-sm { height: 34px; padding: 0 12px; font-size: 13.5px; border-radius: 9px; }
.btn-lg { height: 50px; padding: 0 26px; font-size: 16px; }
.btn[disabled], .btn.loading { opacity: .6; pointer-events: none; }
.btn.loading::after { content: ""; width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.field > label, .field > .label { font-weight: 500; font-size: 13.5px; }
.field .hint { font-size: 12.5px; color: var(--subtle); }
.input, select.input, textarea.input { width: 100%; height: 44px; padding: 0 14px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: #fff;
  font: 15px var(--font-body); color: var(--text); outline: none; }
textarea.input { height: auto; padding: 12px 14px; resize: vertical; }
.input:focus { border-color: var(--navy-light); box-shadow: 0 0 0 3px rgba(30, 74, 138, .12); }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--muted); cursor: pointer; margin-bottom: 10px; }
.check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--navy); flex: none; }
.choices { display: flex; flex-wrap: wrap; gap: 8px; }
.choices label { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--border); border-radius: 999px; padding: 7px 14px; background: #fff; cursor: pointer; font-size: 14px; }
.choices input { accent-color: var(--navy); margin: 0; }
.form-error { display: none; background: var(--red-soft); color: var(--red); border-radius: var(--radius-sm); padding: 10px 14px; font-size: 14px; margin-bottom: 14px; }
.form-error.show { display: block; }
.row { display: flex; gap: 12px; } .row > * { flex: 1; min-width: 0; }

.card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.card-pad { padding: 22px; }
.chip { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px; border-radius: 999px; font-size: 12.5px; font-weight: 500; background: #eef1f5; color: var(--muted); white-space: nowrap; }
.chip-green { background: var(--green-soft); color: var(--green-dark); } .chip-blue { background: var(--blue-soft); color: var(--blue); }
.chip-amber { background: var(--amber-soft); color: var(--amber); } .chip-red { background: var(--red-soft); color: var(--red); }
.chip-navy { background: var(--navy-soft); color: var(--navy); }

/* Top bar */
.top { background: #fff; border-bottom: 1px solid var(--border); }
.top-in { max-width: 1080px; margin: 0 auto; padding: 12px 20px; display: flex; align-items: center; gap: 12px; }
.top .mark { width: 30px; height: 30px; border-radius: 8px; }
.top .co { display: flex; flex-direction: column; line-height: 1.2; }
.top .co b { font-family: var(--font-head); font-size: 15px; } .top .co span { font-size: 12.5px; color: var(--muted); }
.top .right { margin-left: auto; display: flex; gap: 10px; align-items: center; font-size: 13px; color: var(--muted); }
.wrap { max-width: 760px; margin: 0 auto; padding: 32px 20px 64px; }
.wrap-wide { max-width: 1180px; margin: 0 auto; padding: 28px 20px 64px; }
.foot { text-align: center; color: var(--subtle); font-size: 12px; padding: 0 20px 28px; }

/* Public */
.hero h1 { font-size: 28px; margin-bottom: 8px; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 20px 0; }
.steps .card { padding: 16px; } .steps b { display: block; font-family: var(--font-head); font-size: 14px; margin-bottom: 4px; } .steps span { font-size: 13px; color: var(--muted); }
.legal h2 { margin: 26px 0 8px; font-size: 17px; } .legal li { margin-bottom: 6px; }
.legal table { border-collapse: collapse; width: 100%; font-size: 14px; } .legal td, .legal th { border: 1px solid var(--border); padding: 8px 10px; text-align: left; vertical-align: top; }

/* Candidate: consent, checks, brief, call */
.privacy-box { background: var(--navy-tint); border: 1px solid var(--navy-soft); border-radius: var(--radius); padding: 18px 20px; margin: 18px 0; }
.privacy-box h3 { margin-bottom: 8px; }
.progress-steps { display: flex; gap: 6px; margin-bottom: 18px; }
.progress-steps span { flex: 1; height: 6px; border-radius: 99px; background: #e3e8ef; } .progress-steps span.done { background: var(--green); } .progress-steps span.now { background: var(--navy-light); }
.check-grid { display: grid; grid-template-columns: 260px 1fr; gap: 20px; align-items: start; }
.cam { width: 100%; aspect-ratio: 16/9; background: #0e2347; border-radius: var(--radius); object-fit: cover; transform: scaleX(-1); }
.meter { height: 10px; border-radius: 99px; background: #e9edf3; overflow: hidden; } .meter > span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--green), var(--green-dark)); transition: width .08s; }
.status-line { display: flex; align-items: center; gap: 8px; font-size: 14px; margin: 6px 0; } .status-line .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--border-strong); } .status-line.ok .dot { background: var(--green); } .status-line.ko .dot { background: var(--red); }
.fiche { border-left: 4px solid var(--navy); }
.fiche dl { display: grid; grid-template-columns: 120px 1fr; gap: 6px 14px; margin: 12px 0; font-size: 14px; } .fiche dt { color: var(--muted); } .fiche dd { margin: 0; }
.fiche ul { margin: 6px 0 0; padding-left: 18px; font-size: 14px; } .fiche li { margin-bottom: 4px; }
.objective { background: var(--green-soft); color: var(--navy-dark); border-radius: var(--radius-sm); padding: 10px 14px; font-size: 14px; margin: 12px 0; }
.call { text-align: center; padding: 34px 22px; }
.call .who { font-family: var(--font-head); font-size: 20px; margin: 14px 0 4px; }
.orb { width: 120px; height: 120px; margin: 0 auto; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #2a5fa8, var(--navy-dark)); position: relative; transition: transform .12s; }
.orb::after { content: ""; position: absolute; inset: -10px; border-radius: 50%; border: 3px solid var(--green); opacity: 0; transition: opacity .2s; }
.orb.talking::after { opacity: 1; animation: pulse 1.2s ease-in-out infinite; }
@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
.call .timer { font-variant-numeric: tabular-nums; color: var(--muted); font-size: 14px; }
.selfie { position: fixed; right: 18px; bottom: 18px; width: 180px; border-radius: 12px; box-shadow: var(--shadow-lg); transform: scaleX(-1); background: #0e2347; }
.rec { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--red); } .rec::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--red); animation: blink 1s infinite; }
@keyframes blink { 50% { opacity: .3; } }

/* Admin */
.kpis { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin: 16px 0 22px; }
.kpis .card { padding: 14px; } .kpis b { display: block; font: 600 22px var(--font-head); } .kpis span { font-size: 12.5px; color: var(--muted); }
.top3 { display: grid; gap: 18px; }
.cand { padding: 20px 22px; }
.cand-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.rank { width: 38px; height: 38px; border-radius: 50%; background: var(--navy); color: #fff; font: 600 16px var(--font-head); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.score { margin-left: auto; text-align: right; } .score b { font: 700 30px var(--font-head); color: var(--navy); } .score span { color: var(--subtle); font-size: 14px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; }
.videos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 16px 0; }
.videos figure { margin: 0; } .videos video, .videos audio { width: 100%; border-radius: 10px; background: #0e2347; } .videos video { aspect-ratio: 16/9; }
.videos figcaption { font-size: 12.5px; color: var(--muted); margin-top: 4px; }
.crit { width: 100%; border-collapse: collapse; font-size: 14px; }
.crit td { border-top: 1px solid var(--border); padding: 10px 8px; vertical-align: top; }
.crit td:first-child { width: 170px; font-weight: 500; } .crit td.n { width: 70px; white-space: nowrap; }
.dots { display: inline-flex; gap: 3px; } .dots i { width: 9px; height: 9px; border-radius: 50%; background: #e3e8ef; display: inline-block; } .dots i.on { background: var(--navy-light); }
.quote { display: block; background: var(--navy-tint); border-left: 3px solid var(--navy-light); border-radius: 6px; padding: 6px 10px; margin: 6px 0 0; font-size: 13.5px; color: var(--text); cursor: pointer; text-align: left; width: 100%; border-top: 0; border-right: 0; border-bottom: 0; font-family: inherit; }
.quote:hover { background: var(--navy-soft); } .quote small { color: var(--subtle); margin-left: 6px; white-space: nowrap; }
.flag { background: var(--red-soft); border-left-color: var(--red); }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 14px; font-size: 14px; } .two ul { margin: 4px 0 0; padding-left: 18px; }
.list { width: 100%; border-collapse: collapse; font-size: 14px; } .list th { text-align: left; font-weight: 500; color: var(--muted); font-size: 12.5px; padding: 8px; border-bottom: 1px solid var(--border); } .list td { padding: 10px 8px; border-bottom: 1px solid var(--border); }
.transcript { max-height: 420px; overflow: auto; font-size: 13.5px; } .transcript p { margin: 0 0 6px; } .transcript .t { color: var(--subtle); font-variant-numeric: tabular-nums; margin-right: 6px; } .transcript .ia { color: var(--muted); }
.actions { display: flex; gap: 8px; flex-wrap: wrap; }
.section-title { display: flex; align-items: baseline; gap: 10px; margin: 30px 0 12px; }
.metrics { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12.5px; color: var(--muted); margin-top: 4px; }

@media (max-width: 760px) {
  .steps, .videos, .two, .check-grid { grid-template-columns: 1fr; } .kpis { grid-template-columns: repeat(3, 1fr); }
  .selfie { width: 110px; } .fiche dl { grid-template-columns: 1fr; } .crit td:first-child { width: auto; }
}
