/* ============================================================
   GESTACLIC — Consultation flow styles
   ============================================================ */

.consult{ padding:32px 0 0; }

/* Sub-header / context bar */
.consult-bar{ background:var(--surface); border-bottom:1px solid var(--line); }
.consult-bar .wrap{ padding-top:22px; padding-bottom:22px; }
.crumb{ display:flex; align-items:center; gap:8px; font-size:.84rem; color:var(--ink-faint); margin-bottom:12px; }
.crumb a{ color:var(--ink-soft); font-weight:600; }
.crumb a:hover{ color:var(--teal-700); }
.crumb .sep{ color:var(--line); }
.consult-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.consult-head .titles h1{ font-size:2.1rem; margin-bottom:6px; }
.consult-head .titles .sub{ color:var(--ink-soft); font-size:1rem; }
.sa-badge{
  display:inline-flex; flex-direction:column; align-items:center; gap:2px;
  background:var(--teal-800); color:#fff; border-radius:var(--r-md); padding:12px 20px; text-align:center;
}
.sa-badge .v{ font-family:var(--font-head); font-size:1.5rem; line-height:1; }
.sa-badge .l{ font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--teal-300); }

/* Stepper */
.stepper{ display:flex; gap:0; margin-top:26px; }
.stepper .stp{
  flex:1; display:flex; align-items:center; gap:12px; padding-bottom:16px;
  border-bottom:3px solid var(--line); color:var(--ink-faint); font-size:.9rem;
}
.stepper .stp .b{
  width:30px; height:30px; border-radius:50%; flex:none; display:grid; place-items:center;
  background:var(--surface-2); color:var(--ink-faint); font-weight:700; font-size:.86rem; border:1px solid var(--line);
}
.stepper .stp.done{ color:var(--teal-700); border-color:var(--teal-300); }
.stepper .stp.done .b{ background:var(--teal-100); color:var(--teal-700); border-color:var(--teal-300); }
.stepper .stp.current{ color:var(--ink); border-color:var(--teal-700); font-weight:700; }
.stepper .stp.current .b{ background:var(--teal-700); color:#fff; border-color:var(--teal-700); }

/* Layout */
.consult-grid{ display:grid; grid-template-columns:1fr 340px; gap:40px; padding-top:44px; align-items:start; }

/* Question card */
.qcard{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); padding:34px 36px; }
.qcard-head{ display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.qcard-head .eyebrow{ color:var(--rose-600); }
.qcard h2{ font-size:1.5rem; margin-bottom:8px; }
.qcard .intro{ color:var(--ink-soft); margin-bottom:30px; max-width:54ch; }

.question{ padding:26px 0; border-top:1px solid var(--line-soft); }
.question:first-of-type{ border-top:0; padding-top:6px; }
.qnum{ font-family:ui-monospace,Menlo,monospace; font-size:.78rem; color:var(--teal-700); font-weight:700; }
.qtext{ font-size:1.08rem; font-weight:600; margin:6px 0 18px; max-width:58ch; line-height:1.45; }
.qhint{ display:inline-flex; align-items:center; gap:.4em; font-size:.82rem; color:var(--ink-faint); margin-left:8px; font-weight:400; }

/* Segmented Oui / Non / Ne sait pas */
.opts{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; max-width:560px; }
.opt{ position:relative; }
.opt input{ position:absolute; opacity:0; inset:0; cursor:pointer; }
.opt label{
  display:flex; align-items:center; justify-content:center; gap:.5em;
  padding:.85em 1em; border-radius:var(--r-md); border:1.5px solid var(--line);
  background:var(--surface); font-weight:700; font-size:.95rem; color:var(--ink-soft);
  cursor:pointer; transition:.15s ease; text-align:center;
}
.opt label .mk{ width:16px; height:16px; border-radius:50%; border:2px solid var(--line); flex:none; transition:.15s; }
.opt:hover label{ border-color:var(--teal-300); background:var(--teal-50); }
.opt input:checked + label{ border-color:var(--teal-700); background:var(--teal-50); color:var(--teal-800); box-shadow:0 0 0 3px var(--teal-100); }
.opt input:checked + label .mk{ border-color:var(--teal-700); background:var(--teal-700); box-shadow:inset 0 0 0 3px #fff; }
/* "Oui" answers carry the warning tone (flag a risk to assess) */
.opt.flag input:checked + label{ border-color:var(--warn); background:var(--warn-bg); color:#8a5d12; box-shadow:0 0 0 3px #f3e3c6; }
.opt.flag input:checked + label .mk{ border-color:var(--warn); background:var(--warn); }

.qcard-foot{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:34px; padding-top:26px; border-top:1px solid var(--line); }
.qcard-foot .save{ font-size:.84rem; color:var(--ink-faint); display:flex; align-items:center; gap:.5em; }

/* Sidebar */
.aside{ display:flex; flex-direction:column; gap:18px; position:sticky; top:96px; }
.panel{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); padding:22px; }
.panel h3{ font-family:var(--font-body); font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; margin-bottom:16px; }
.kv{ display:flex; justify-content:space-between; align-items:baseline; padding:9px 0; border-top:1px solid var(--line-soft); font-size:.92rem; }
.kv:first-of-type{ border-top:0; }
.kv .k{ color:var(--ink-soft); }
.kv .v{ font-weight:700; }
.kv .v.mono{ font-family:ui-monospace,Menlo,monospace; font-size:.86rem; }

/* Risk meter — level-driven */
.risk-panel{ transition:.25s; }
.risk-panel .risk-level{ display:flex; align-items:flex-start; gap:11px; margin-bottom:16px; }
.risk-dot{ width:13px; height:13px; border-radius:50%; flex:none; margin-top:5px; transition:.25s; }
.risk-level .t{ font-family:var(--font-head); font-size:1.18rem; line-height:1.2; transition:.25s; }
.risk-track{ height:8px; border-radius:99px; background:rgba(0,0,0,.07); overflow:hidden; }
.risk-track i{ display:block; height:100%; border-radius:99px; transition:width .35s cubic-bezier(.2,.7,.3,1), background .25s; }
.risk-scale{ display:flex; justify-content:space-between; margin-top:8px; font-size:.7rem; letter-spacing:.03em; opacity:.7; }
.risk-note{ margin-top:14px; font-size:.82rem; line-height:1.5; }
.risk-count{ margin-top:12px; font-size:.8rem; font-weight:700; }
.risk-count [data-risk-count]{ font-family:ui-monospace,Menlo,monospace; }

/* level: OK */
.risk-panel.lvl-ok{ background:var(--ok-bg); border-color:#cfe3d6; }
.risk-panel.lvl-ok h3{ color:#3c7a5b; }
.lvl-ok .risk-dot{ background:var(--ok); box-shadow:0 0 0 4px rgba(79,138,107,.18); }
.lvl-ok .risk-level .t,.lvl-ok .risk-note,.lvl-ok .risk-scale,.lvl-ok .risk-count{ color:#2f6347; }
.lvl-ok .risk-track i{ background:var(--ok); }
/* level: WARN */
.risk-panel.lvl-warn{ background:var(--warn-bg); border-color:#e8d3a6; }
.risk-panel.lvl-warn h3{ color:#8a5d12; }
.lvl-warn .risk-dot{ background:var(--warn); box-shadow:0 0 0 4px rgba(201,138,46,.18); }
.lvl-warn .risk-level .t,.lvl-warn .risk-note,.lvl-warn .risk-scale,.lvl-warn .risk-count{ color:#8a5d12; }
.lvl-warn .risk-track i{ background:var(--warn); }
/* level: RISK */
.risk-panel.lvl-risk{ background:var(--risk-bg); border-color:#e6b8b0; }
.risk-panel.lvl-risk h3{ color:#9a3f34; }
.lvl-risk .risk-dot{ background:var(--risk); box-shadow:0 0 0 4px rgba(192,88,75,.18); }
.lvl-risk .risk-level .t,.lvl-risk .risk-note,.lvl-risk .risk-scale,.lvl-risk .risk-count{ color:#9a3f34; }
.lvl-risk .risk-track i{ background:var(--risk); }

/* Synthèse flags */
.flags{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.flags li{ font-size:.85rem; line-height:1.4; padding:9px 12px; border-radius:10px; background:var(--warn-bg); color:#7a5310; font-weight:600; display:flex; gap:8px; }
.flags li::before{ content:"!"; font-weight:800; color:var(--warn); flex:none; width:18px; height:18px; border-radius:50%; background:#fff; display:grid; place-items:center; font-size:.72rem; }
.flags li.flag-none{ background:var(--ok-bg); color:#3c7a5b; }
.flags li.flag-none::before{ content:"✓"; color:var(--ok); }

/* Alert link panel */
.alert{ background:var(--rose-50); border-color:var(--rose-300); }
.alert h3{ color:var(--rose-600); }
.alert p{ font-size:.86rem; color:var(--ink-soft); margin:0 0 14px; line-height:1.5; }
.alert a.lnk{ font-size:.86rem; font-weight:700; color:var(--rose-600); display:inline-flex; align-items:center; gap:.4em; }

.mini-links{ display:flex; flex-direction:column; gap:2px; }
.mini-links a{ display:flex; align-items:center; gap:10px; padding:10px 8px; border-radius:10px; font-size:.9rem; font-weight:600; color:var(--ink); transition:.12s; }
.mini-links a:hover{ background:var(--teal-50); color:var(--teal-800); }
.mini-links a .mi{ width:30px;height:30px;border-radius:9px;background:var(--teal-100);color:var(--teal-700);display:grid;place-items:center;flex:none; }

@media (max-width:980px){
  .consult-grid{ grid-template-columns:1fr; }
  .aside{ position:static; }
  .stepper{ flex-wrap:wrap; gap:14px; }
  .stepper .stp{ flex:1 1 45%; }
}
