/* Expert Dashboard (R10) — extracted verbatim from the canonical mockup
   (app/views/mockups/expert/dashboard.html.erb <style> block). Zero inline CSS:
   dynamic values (profile completion width) are set via data-attrs + Stimulus. */

/* ══ CSS VARS ══ */
.ed-page {
  --ed-gold: #D4BC7A;
  --ed-gold-d: #9E7E3F;
  --ed-gold-l: #E5D4A0;
  --ed-gold-4: #EFE2B8;
  --ed-gold-grad: linear-gradient(135deg, #C4A559 0%, #D4BC7A 40%, #E5D4A0 70%, #EFE2B8 100%);
  --ed-gold-btn: linear-gradient(135deg, #C4A559 0%, #D4BC7A 40%, #E5D4A0 70%, #EFE2B8 100%);
  --ed-amb: #9B4A6B;
  --ed-amb-l: #F5EFF2;
  --ed-amb-b: #E0C0CE;
  --ed-ok: #2D7A4E;
  --ed-okl: #F0FAF4;
  --ed-okb: #BFE0CE;
  --ed-warn: #D97706;
  --ed-warnl: #FEF3C7;
  --ed-bd: #E8E4DE;
  --ed-bd2: #F0EDE8;
  --ed-t2: #6B6560;
  --ed-t3: #A09890;
  --ed-sh: 0 1px 8px rgba(0,0,0,.05), 0 2px 16px rgba(0,0,0,.04);
  --ed-shg: 0 4px 20px rgba(201,165,74,.28);
}

/* ══ PAGE RESET ══ */
.ed-page { font-family: 'Geist', system-ui, sans-serif; color: #1a1a1a; }
.ed-page button { cursor: pointer; border: none; background: none; font-family: inherit; }
/* restaure la bordure des boutons DS (ecrasee par le reset ci-dessus), comme sur le talent dashboard */
.ed-page .ds-btn-outline { border: 1px solid hsl(var(--brand-neutral-300)); background: transparent; }
.ed-page a { text-decoration: none; color: inherit; }

/* ══ MAIN ══ */
.ed-main { max-width: 1200px; margin: 0 auto; padding: 28px 32px 28px; }

/* ══ TOP ROW: hero (reduced) + performance side by side ══ */
.ed-top-grid { display: grid; grid-template-columns: 1.7fr 1fr; gap: 16px; align-items: stretch; margin-bottom: 16px; }
.ed-top-grid .ed-welcome-hero { margin-bottom: 0; }
.ed-top-grid .ed-stats-card { margin: 0; }

/* Availability cluster inside hero top-right (talent-aligned) */
.ed-wh-avail { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.ed-wh-avail-status { display: flex; align-items: center; gap: 10px; }
.ed-wh-avail-text { font-size: 14px; font-weight: 600; color: #1a1a1a; line-height: 1; }
.ed-wh-avail-sub { font-size: 11px; color: var(--ed-t2); }

/* ══ WELCOME HERO (with profile strength) ══ */
.ed-welcome-hero {
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(255,244,194,0.06) 0%, rgba(255,255,255,0) 55%),
    radial-gradient(120% 80% at 100% 100%, rgba(189,151,51,0.04) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(180deg, #FFFFFF 0%, #FBFAF7 60%, #F6F4EE 100%);
  border-radius: 18px;
  padding: 24px 28px;
  margin-bottom: 16px;
  border: 1px solid rgba(0,0,0,0.05);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.9) inset,
    0 0 0 1px rgba(255,255,255,0.5) inset,
    0 1px 2px rgba(20,16,8,0.03),
    0 6px 20px -10px rgba(120,98,40,0.08);
}
.ed-wh-top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}
.ed-wh-left { display: flex; align-items: center; gap: 18px; }
.ed-wh-avatar {
  width: 56px; height: 56px; border-radius: 50%;
  background: linear-gradient(145deg, var(--ed-amb), #7B3A58);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Geist',system-ui,sans-serif;
  font-size: 20px; font-weight: 700; color: #fff;
  flex-shrink: 0; overflow: hidden;
}
.ed-wh-avatar img { width: 100%; height: 100%; object-fit: cover; }
.ed-wh-name {
  font-family: 'Geist',system-ui,sans-serif;
  font-size: 22px; font-weight: 700; color: #1a1a1a; margin-bottom: 2px;
}
.ed-wh-role { font-size: 12px; color: var(--ed-t2); font-weight: 500; }
.ed-wh-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.ed-wh-badge {
  display: inline-flex; align-items: center; gap: 4px; white-space: nowrap;
  font-size: 9px; font-weight: 700; padding: 3px 8px;
  border-radius: 5px; letter-spacing: .3px; text-transform: uppercase;
}
.ed-wh-badge.amb { background: var(--ed-amb-l); color: var(--ed-amb); border: 1px solid var(--ed-amb-b); }
.ed-wh-badge.verified { background: var(--ed-okl); color: var(--ed-ok); border: 1px solid var(--ed-okb); }
.ed-wh-badge.new { background: var(--ed-warnl); color: var(--ed-warn); border: 1px solid #FDE68A; }
.ed-wh-right { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; flex-shrink: 0; }
.ed-wh-buttons { display: flex; gap: 10px; }
.ed-btn-gold {
  padding: 10px 20px; border-radius: 9px; font-size: 12px; font-weight: 700;
  color: #1a1208; background: var(--ed-gold-btn);
  box-shadow: 0 1px 0 rgba(255,255,255,.4) inset, var(--ed-shg);
  transition: all .2s; cursor: pointer; border: none; font-family: inherit;
}
.ed-btn-gold:hover { transform: translateY(-1px); }
.ed-btn-outline {
  padding: 10px 18px; border-radius: 9px; font-size: 12px; font-weight: 600;
  color: #1a1a1a; background: #fff; border: 1.5px solid var(--ed-bd);
  transition: all .2s; cursor: pointer; font-family: inherit;
}
.ed-btn-outline:hover { border-color: var(--ed-gold); color: var(--ed-gold-d); transform: translateY(-1px); }

/* Profile Completion (inside welcome hero — aligned on talent "Complétion du profil") */
.ed-profile-strength {
  border-top: 1px solid var(--ed-bd2);
  padding-top: 16px;
  display: flex; flex-direction: column; gap: 8px;
}
.ed-ps-header {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 2px;
}
.ed-ps-label {
  font-family: 'Geist',system-ui,sans-serif;
  font-size: 18px; font-weight: 600; color: #1a1a1a; line-height: 1.2;
}
.ed-ps-pct {
  font-family: 'Geist',system-ui,sans-serif;
  font-weight: 600; color: var(--ed-gold-d); line-height: 1;
}
.ed-ps-pct-num { font-size: 32px; }
.ed-ps-pct-sign { font-size: 18px; margin-left: 1px; }
.ed-ps-bar {
  height: 6px; background: rgba(0,0,0,.04); border-radius: 4px;
  overflow: hidden;
}
.ed-ps-bar-fill {
  height: 100%;
  background: var(--ed-gold-btn);
  border-radius: 4px; transition: width .4s ease;
}
.ed-ps-missing-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; flex-wrap: wrap;
}
.ed-ps-missing-left { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ed-ps-missing-label { font-size: 11px; color: #888; font-weight: 500; line-height: 1.3; }
.ed-ps-missing-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.ed-ps-miss-badge {
  font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 100px;
  background: rgba(184,151,90,.1); color: var(--ed-gold-d);
  border: 1px solid rgba(184,151,90,.2); text-decoration: none;
  line-height: 1.3; transition: all .15s;
}
.ed-ps-miss-badge:hover { background: rgba(184,151,90,.18); color: #1a1a1a; }
.ed-ps-cta {
  font-size: 12px; font-weight: 500; color: var(--ed-gold-d);
  text-decoration: none; cursor: pointer; white-space: nowrap; transition: color .15s;
}
.ed-ps-cta:hover { color: #8C6D34; }

/* ══ AVAILABILITY BANNER ══ */
.ed-avail-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 20px;
  background: hsl(42 38% 95%);
  border: 1px solid hsl(42 38% 85%);
  border-radius: 12px;
  margin-bottom: 16px;
}
.ed-avail-banner-left {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; font-weight: 600; color: #1a1a1a;
}
.ed-avail-dot { width: 8px; height: 8px; border-radius: 50%; animation: ed-pulse 2s infinite; }
.ed-avail-dot.on { background: #4ade80; box-shadow: 0 0 0 3px rgba(74,222,128,.2); }
.ed-avail-banner-right { display: flex; align-items: center; gap: 12px; }
.ed-avail-toggle {
  width: 42px; height: 24px; border-radius: 13px;
  position: relative; cursor: pointer; transition: background .2s;
  background: linear-gradient(135deg, #4CAF50, #2E7D32);
}
.ed-avail-thumb {
  position: absolute; top: 3px; left: 21px;
  width: 18px; height: 18px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2);
  transition: left .2s;
}
.ed-avail-sub { font-size: 11px; color: var(--ed-t2); }

/* ══ KPI STRIP (3 columns) ══ */
.ed-kpi-strip { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)) minmax(190px, 0.85fr); gap: 14px; margin-bottom: 20px; align-items: stretch; }
.ed-kpi {
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(255,244,194,0.06) 0%, rgba(255,255,255,0) 55%),
    radial-gradient(120% 80% at 100% 100%, rgba(189,151,51,0.04) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(180deg, #FFFFFF 0%, #FBFAF7 60%, #F6F4EE 100%);
  border: 1px solid rgba(0,0,0,0.05); border-radius: 14px; padding: 16px 18px;
  display: flex; align-items: center; gap: 14px; text-decoration: none; color: inherit;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; cursor: pointer;
  box-shadow: 0 1px 0 rgba(255,255,255,0.9) inset, 0 0 0 1px rgba(255,255,255,0.5) inset, 0 1px 2px rgba(20,16,8,0.03), 0 6px 20px -10px rgba(120,98,40,0.08);
}
.ed-kpi:hover { transform: translateY(-1px); border-color: var(--ed-gold);
  box-shadow: 0 1px 0 rgba(255,255,255,0.9) inset, 0 0 0 1px rgba(255,255,255,0.6) inset, 0 2px 4px rgba(20,16,8,0.04), 0 14px 32px -14px rgba(120,98,40,0.14);
}
.ed-kpi-icon { width: 44px; height: 44px; border-radius: 50%; background: rgba(184,145,42,.08); color: var(--ed-gold-d); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ed-kpi-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ed-kpi-label { font-size: 12px; font-weight: 500; color: #888; }
.ed-kpi-val { font-family: 'Geist', system-ui, sans-serif; font-size: 26px; font-weight: 600; color: #1a1a1a; line-height: 1.05; letter-spacing: -0.01em; }
.ed-kpi-sub { font-size: 11px; color: #9A9A9A; font-weight: 500; margin-top: 2px; }
.ed-kpi-sub.ed-kpi-pos { color: #2E7D32; font-weight: 600; }
.ed-kpi-sub.ed-kpi-validating { display: inline-flex; align-items: center; gap: 5px; color: #B07A12; font-weight: 600; background: #FBF3DC; border: 1px solid #EBD9A4; border-radius: 20px; padding: 2px 9px; margin-top: 4px; }
.ed-kpi-sub.ed-kpi-validating::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: linear-gradient(135deg,#CDB563,#B19136); flex-shrink: 0; }

/* Proposals banner (aligne sur le talent) */
.ed-proposals-banner { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: 14px; background: linear-gradient(99deg,#FFF8E8 0%,#F8E8B8 100%); border: 1px solid #E8D49A; text-decoration: none; color: #3a2f12; margin: 0 0 18px; font-weight: 600; }
.ed-proposals-banner > svg { color: #8C6D34; flex-shrink: 0; }
.ed-proposals-text { flex: 1; font-size: 14px; }
.ed-proposals-cta { font-size: 12px; color: #8C6D34; font-weight: 700; white-space: nowrap; }

/* Recherche IA mini, integree en bas de "Actions rapides" (aligne sur le talent) */
.ed-quick-ai-mini { margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: linear-gradient(135deg,rgba(196,165,89,0.06),rgba(248,226,122,0.10)); border: 1px solid rgba(196,165,89,0.22); display: flex; flex-direction: column; gap: 8px; }
.ed-quick-ai-mini-header { display: inline-flex; align-items: center; gap: 6px; color: #A38543; font-weight: 700; font-size: 11px; }
.ed-quick-ai-mini-form { display: flex; gap: 6px; align-items: stretch; background: #FAF7F0; border: 1px solid #EADFC4; border-radius: 9999px; padding: 3px 3px 3px 12px; }
.ed-quick-ai-mini-input { flex: 1; border: none; background: transparent; outline: none; font-size: 11px; color: #18140C; min-width: 0; font-family: inherit; }
.ed-page .ed-quick-ai-mini-btn { padding: 5px 13px; font-size: 10px; font-weight: 700; display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; border-radius: 9999px; background: linear-gradient(135deg,#C4A559 0%,#D4BC7A 40%,#E5D4A0 70%,#EFE2B8 100%); color: #1a1208; border: 1px solid rgba(196,165,89,.4); box-shadow: 0 2px 8px rgba(184,145,42,.18); cursor: pointer; }
.ed-page .ed-quick-ai-mini-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(184,145,42,.28); }

/* ══ AI QUICK SEARCH ══ */
.ed-quick-ai-card {
  margin: 0 0 18px; padding: 14px 18px; border-radius: 14px;
  background: #FFFFFF;
  border: 1.5px solid #E8DCB6;
  display: flex; flex-direction: column; gap: 10px;
  box-shadow: 0 1px 0 rgba(255,255,255,0.9) inset, 0 1px 2px rgba(20,16,8,0.03), 0 6px 20px -10px rgba(120,98,40,0.08);
}
.ed-quick-ai-header {
  display: inline-flex; align-items: center; gap: 8px;
  color: #A38543; font-weight: 700; font-size: 14px;
}
.ed-quick-ai-sub {
  font-size: 11px; font-weight: 500; color: var(--ed-t2); margin-top: -4px;
}
.ed-quick-ai-form {
  display: flex; gap: 8px; align-items: stretch;
  background: #FAF7F0; border: 1px solid #EADFC4;
  border-radius: 9999px; padding: 4px 4px 4px 14px;
}
.ed-quick-ai-input {
  flex: 1; border: none; background: transparent; outline: none;
  font-size: 13px; color: #18140C; min-width: 0; font-family: inherit;
}
.ed-quick-ai-input::placeholder { color: #A09890; }
.ed-quick-ai-submit {
  padding: 6px 14px; font-size: 12px; font-weight: 700;
  display: inline-flex; align-items: center; gap: 6px;
  white-space: nowrap; border-radius: 9999px;
  color: #1a1208; background: var(--ed-gold-btn);
  border: 1px solid rgba(196,165,89,.4);
  box-shadow: 0 2px 8px rgba(184,145,42,.18);
  transition: all .2s; cursor: pointer; font-family: inherit;
}
.ed-quick-ai-submit:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(184,145,42,.28); }
.ed-quick-ai-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ed-quick-ai-chip {
  border: 1px solid #EADFC4; background: #fff; color: #A38543;
  font-size: 11px; font-weight: 500; padding: 4px 10px;
  border-radius: 9999px; cursor: pointer; font-family: inherit;
  transition: all .15s;
}
.ed-quick-ai-chip:hover { background: #FAF6EC; border-color: #D4BC7A; }

/* ══ GRID LAYOUT ══ */
.ed-dash-grid { display: grid; grid-template-columns: 1fr 340px; gap: 20px; align-items: start; }
.ed-dash-left { display: flex; flex-direction: column; gap: 20px; }
.ed-dash-right { display: flex; flex-direction: column; gap: 16px; }

/* ══ SECTION CARD ══ */
.ed-sc {
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(255,244,194,0.06) 0%, rgba(255,255,255,0) 55%),
    radial-gradient(120% 80% at 100% 100%, rgba(189,151,51,0.04) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(180deg, #FFFFFF 0%, #FBFAF7 60%, #F6F4EE 100%);
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,0.05);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.9) inset,
    0 0 0 1px rgba(255,255,255,0.5) inset,
    0 1px 2px rgba(20,16,8,0.03),
    0 6px 20px -10px rgba(120,98,40,0.08);
}
.ed-sc:hover {
  box-shadow:
    0 1px 0 rgba(255,255,255,0.9) inset,
    0 0 0 1px rgba(255,255,255,0.6) inset,
    0 2px 4px rgba(20,16,8,0.04),
    0 14px 32px -14px rgba(120,98,40,0.14);
}
.ed-sc-head { padding: 18px 20px 0; display: flex; align-items: center; justify-content: space-between; }
.ed-sc-title {
  font-family: 'Geist',system-ui,sans-serif;
  font-size: 15px; font-weight: 700; color: #1a1a1a;
  display: flex; align-items: center; gap: 8px;
}
.ed-sc-title-icon { display: inline-flex; align-items: center; color: var(--ed-gold-d); }
.ed-sc-action {
  font-size: 11px; font-weight: 600; color: var(--ed-gold-d);
  cursor: pointer; padding: 4px 10px; border-radius: 6px;
  transition: all .15s; text-decoration: none;
}
.ed-sc-action:hover { background: var(--ed-warnl); }
.ed-sc-body { padding: 16px 20px 20px; }

/* ══ OPPORTUNITY CARDS ══ */
.ed-opp-card {
  display: block; /* la carte est un <a> ; sans ça l'inline casse bordure + badge */
  border: 1.5px solid var(--ed-bd2); border-radius: 12px;
  padding: 14px 16px; margin-bottom: 10px; transition: all .2s;
  cursor: pointer; position: relative;
}
.ed-opp-card:last-child { margin-bottom: 0; }
.ed-opp-card:hover { border-color: var(--ed-gold); box-shadow: 0 4px 18px rgba(184,145,42,.42); transform: translateY(-1px); }
.ed-opp-card.new-opp { border-color: rgba(201,165,74,.3); background: linear-gradient(to right, rgba(255,244,194,.2), transparent); }
.ed-opp-badge {
  position: absolute; top: 12px; right: 14px;
  font-size: 8px; font-weight: 800; padding: 2px 8px;
  border-radius: 100px; letter-spacing: .5px; text-transform: uppercase;
}
.ed-opp-badge.new { background: var(--ed-warnl); color: var(--ed-warn); border: 1px solid #FDE68A; }
.ed-opp-badge.match { background: var(--ed-okl); color: var(--ed-ok); border: 1px solid var(--ed-okb); }
.ed-opp-estab {
  font-size: 11px; font-weight: 700; color: var(--ed-gold-d);
  margin-bottom: 3px; display: flex; align-items: center; gap: 5px;
}
.ed-opp-title {
  font-family: 'Geist',system-ui,sans-serif;
  font-size: 14px; font-weight: 700; color: #1a1a1a; margin-bottom: 5px;
}
.ed-opp-meta { display: flex; gap: 12px; font-size: 10px; color: var(--ed-t3); font-weight: 500; }
.ed-opp-meta span { display: flex; align-items: center; gap: 3px; }
.ed-opp-tags { display: flex; gap: 5px; margin-top: 8px; flex-wrap: wrap; }
.ed-opp-tag {
  font-size: 9px; font-weight: 600; padding: 2px 8px;
  border-radius: 100px; background: var(--ed-bd2); color: var(--ed-t2);
}
.ed-opp-tag.gold { background: rgba(201,165,74,.1); color: var(--ed-gold-d); }

/* ══ MISSION CARDS ══ */
.ed-mission-card {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid var(--ed-bd2);
}
.ed-mission-card:last-child { border-bottom: none; padding-bottom: 0; }
.ed-mission-avatar {
  width: 38px; height: 38px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; flex-shrink: 0;
}
.ed-mission-avatar.hotel { background: linear-gradient(135deg, #1a1a2e, #16213e); }
.ed-mission-avatar.resto { background: linear-gradient(135deg, #2d1b00, #5a3800); }
.ed-mission-avatar.private { background: linear-gradient(135deg, #1a0a2e, #3d1f60); }
.ed-mission-info { flex: 1; min-width: 0; }
.ed-mission-title {
  font-size: 12.5px; font-weight: 700; color: #1a1a1a;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ed-mission-sub { font-size: 10px; color: var(--ed-t3); margin-top: 1px; }
.ed-mission-status {
  font-size: 9px; font-weight: 800; padding: 3px 8px; border-radius: 5px;
  flex-shrink: 0; letter-spacing: .3px; text-transform: uppercase;
}
.ed-mission-status.active { background: var(--ed-okl); color: var(--ed-ok); border: 1px solid var(--ed-okb); }
.ed-mission-status.pending { background: var(--ed-warnl); color: var(--ed-warn); border: 1px solid #FDE68A; }
.ed-mission-status.done { background: var(--ed-bd2); color: var(--ed-t2); }

/* ══ MESSAGES (notification items) ══ */
.ed-msg-item {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 12px 0; border-bottom: 1px solid var(--ed-bd2);
  cursor: pointer; transition: background .15s;
}
.ed-msg-item:last-child { border-bottom: none; padding-bottom: 0; }
.ed-msg-item:hover { background: rgba(0,0,0,.01); }
.ed-msg-av {
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, #2d2d2d, #1a1a1a);
  display: flex; align-items: center; justify-content: center;
  color: var(--ed-gold); font-size: 12px; font-weight: 700; flex-shrink: 0;
}
.ed-msg-content { flex: 1; min-width: 0; }
.ed-msg-from {
  font-size: 12px; font-weight: 700; color: #1a1a1a;
  display: flex; align-items: center; justify-content: space-between;
}
.ed-msg-time { font-size: 10px; color: var(--ed-t3); font-weight: 400; }
.ed-msg-preview {
  font-size: 11px; color: var(--ed-t2);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px;
}
.ed-msg-unread {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--ed-gold); flex-shrink: 0; margin-top: 5px;
}

/* ══ ACTIONS RAPIDES ══ */
.ed-quick-card {
  background: #fff; border-radius: 14px;
  border: 1px solid var(--ed-bd2); box-shadow: var(--ed-sh);
  padding: 16px 18px;
}
.ed-quick-title {
  font-size: 10px; font-weight: 700; letter-spacing: 1.2px;
  text-transform: uppercase; color: var(--ed-t3); margin-bottom: 10px;
  display: flex; align-items: center; gap: 6px;
}
.ed-quick-item {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 10px; border-radius: 8px; transition: all .15s;
  cursor: pointer; font-size: 13px; font-weight: 600; color: #1a1a1a;
}
.ed-quick-item:hover { background: var(--ed-bd2); }
.ed-quick-item-icon {
  width: 28px; height: 28px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; flex-shrink: 0;
  background: hsl(42 38% 95%); color: var(--ed-gold-d);
}
.ed-quick-chevron {
  margin-left: auto; font-size: 14px; color: var(--ed-t3); font-weight: 400;
}

/* ══ STATS RING ══ */
.ed-stats-card {
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(255,244,194,0.06) 0%, rgba(255,255,255,0) 55%),
    radial-gradient(120% 80% at 100% 100%, rgba(189,151,51,0.04) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(180deg, #FFFFFF 0%, #FBFAF7 60%, #F6F4EE 100%);
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,0.05);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.9) inset,
    0 0 0 1px rgba(255,255,255,0.5) inset,
    0 1px 2px rgba(20,16,8,0.03),
    0 6px 20px -10px rgba(120,98,40,0.08);
  padding: 20px;
  display: flex; flex-direction: column; justify-content: space-between; gap: 14px;
}
.ed-stats-head {
  font-size: 9px; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; color: var(--ed-t3); margin-bottom: 14px;
}
.ed-stats-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.ed-stat-mini { text-align: center; }
.ed-stat-mini-val {
  font-family: 'Geist',system-ui,sans-serif;
  font-size: 20px; font-weight: 700; color: #1a1a1a;
}
.ed-stat-mini-lbl { font-size: 9px; color: var(--ed-t3); font-weight: 600; margin-top: 1px; }
.ed-stats-divider { width: 1px; height: 40px; background: var(--ed-bd2); }
.ed-rating-row {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; background: var(--ed-bd2); border-radius: 10px;
}
.ed-rating-stars { display: flex; gap: 2px; }
.ed-rating-star { color: var(--ed-gold); font-size: 13px; }
.ed-rating-val { font-size: 14px; font-weight: 800; color: #1a1a1a; }
.ed-rating-count { font-size: 10px; color: var(--ed-t3); }

/* ══ RIGHT COLUMN DS CARDS — font aligned (slightly larger) with left feed.
   Scoped to .ed-page only → shared DS partials untouched (recruiter/talent unaffected). ══ */
.ed-page .ds-messages-card h3 { font-size: 15px !important; }
.ed-page .ds-card h3 { font-size: 13px !important; }
.ed-page .ds-messages-card .text-body-lg,
.ed-page .ds-card .text-body-lg { font-size: 14px !important; }
.ed-page .ds-messages-card .text-body-md,
.ed-page .ds-card .text-body-md { font-size: 13px !important; }
.ed-page .ds-card .text-title-lg { font-size: 22px !important; }

/* CV status block (was inline in the mockup — now a named class). */
.ed-cv-head { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.ed-cv-head-label { color: hsl(var(--brand-gold-main)); }
.ed-cv-icon { color: hsl(var(--brand-gold-main)); }
.ed-cv-body { font-size:13px; color:#6B6B6B; }
.ed-cv-body strong { color:#1a1a1a; }
.ed-cv-actions { margin-top:10px; }

/* ══ FUTURE-BRICK (grayed + annotated) ══ */
.ed-future { position: relative; filter: grayscale(0.9); opacity: .55; pointer-events: none; }
.ed-future-badge { position: absolute; top: 8px; right: 8px; z-index: 3; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 3px 8px; border-radius: 100px; background: #1C1A17; color: #E8D49A; border: 1px solid rgba(196,165,89,.35); box-shadow: 0 1px 4px rgba(0,0,0,.15); pointer-events: auto; white-space: nowrap; }

/* Grisage des sous-éléments illustratifs (analytics, note/avis) trop petits
   pour porter un badge dédié : on grise seul, sans badge. */
.ed-soon { filter: grayscale(0.9); opacity: .5; pointer-events: none; }
/* Badge « À venir » inline (placé dans un titre, pas en absolu). */
.ed-soon-badge { display: inline-flex; align-items: center; margin-left: 7px; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 2px 8px; border-radius: 100px; background: #1C1A17; color: #E8D49A; border: 1px solid rgba(196,165,89,.35); white-space: nowrap; vertical-align: middle; }

/* ══ ANIMATIONS ══ */
@keyframes ed-pulse { 0%,100% { opacity: 1; } 50% { opacity: .4; } }
@keyframes ed-fadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.ed-anim-1 { animation: ed-fadeUp .4s ease .05s both; }
.ed-anim-2 { animation: ed-fadeUp .4s ease .1s both; }
.ed-anim-3 { animation: ed-fadeUp .4s ease .15s both; }
.ed-anim-4 { animation: ed-fadeUp .4s ease .2s both; }

/* ══ RESPONSIVE ══ */
@media (max-width: 900px) {
  .ed-top-grid { grid-template-columns: 1fr; }
  .ed-dash-grid { grid-template-columns: 1fr; }
  /* Let the stacked columns/cards shrink below content width (min-width:auto
     otherwise lets cards overflow a few px and clip). */
  .ed-dash-left, .ed-dash-right, .ed-sc { min-width: 0; }
  .ed-kpi-strip { grid-template-columns: repeat(2, 1fr); }
  .ed-welcome-hero .ed-wh-top-row { flex-direction: column; align-items: flex-start; }
  .ed-wh-right { width: 100%; }
  .ed-avail-banner { flex-direction: column; align-items: flex-start; }
  .ed-ps-checklist { flex-direction: column; }
}
@media (max-width: 640px) {
  .ed-main { padding: 16px; }
  .ed-kpi-strip { grid-template-columns: 1fr 1fr; }
}
