/* ══ Workspace Compte Assisté ══ */

/*
 * position:fixed + overflow-y:auto : contourne le html,body{overflow:hidden}
 * du SPA principal qui bloquait tout scroll dans ce workspace.
 */
#assiste-workspace {
  position: fixed;
  inset: 0;
  overflow-y: auto;
  overflow-x: hidden;
  z-index: 900;
  background: var(--bg);
  -webkit-overflow-scrolling: touch;
}
#assiste-workspace.hidden { display: none !important; }

/* ── Container ── */
.assiste-container {
  max-width: 960px;
  width: 100%;
  margin: 0 auto;
  padding: 0 16px 56px;
  box-sizing: border-box;
}

/* ── Header ── */
.assiste-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
  margin-bottom: 24px;
  gap: 12px;
  flex-wrap: wrap;
}
.assiste-header-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* ── Bannière statut ── */
.assiste-statut-banner {
  border-radius: var(--radius);
  padding: 12px 16px;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
}
.assiste-statut-banner.hidden { display: none; }
.assiste-statut-banner.statut-actif       { background:rgba(16,185,129,.1);  border:1px solid rgba(16,185,129,.25);  color:#10b981; }
.assiste-statut-banner.statut-preparation { background:rgba(59,130,246,.1);  border:1px solid rgba(59,130,246,.25);  color:#3b82f6; }
.assiste-statut-banner.statut-attente     { background:rgba(245,158,11,.1);  border:1px solid rgba(245,158,11,.25);  color:var(--amber); }
.assiste-statut-banner.statut-suspendu    { background:rgba(107,114,128,.1); border:1px solid rgba(107,114,128,.25); color:#9ca3af; }
.assiste-statut-banner.statut-termine     { background:rgba(139,92,246,.1);  border:1px solid rgba(139,92,246,.25);  color:#8b5cf6; }
.assiste-statut-banner.statut-clos        { background:rgba(239,68,68,.1);   border:1px solid rgba(239,68,68,.25);   color:var(--red); }
/* Alias rétrocompat */
.assiste-statut-banner.statut-pause       { background:rgba(107,114,128,.1); border:1px solid rgba(107,114,128,.25); color:#9ca3af; }

/* ── Cards ── */
.assiste-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px;
  margin-bottom: 16px;
}
.assiste-card-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 4px;
}

/* ── Carte conseiller (compact) ── */
.assiste-conseiller-sticky {
  margin-bottom: 20px;
}

/* ── Tab navigation ── */
.assiste-tabs {
  display: flex;
  gap: 2px;
  border-bottom: 2px solid var(--border);
  margin-bottom: 20px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.assiste-tabs::-webkit-scrollbar { display: none; }

.assiste-tab {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  font-size: 13px;
  font-weight: 500;
  color: var(--muted);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  white-space: nowrap;
  transition: color .15s, border-color .15s;
  position: relative;
}
.assiste-tab:hover { color: var(--fg); }
.assiste-tab.active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.assiste-tab-badge {
  background: var(--red, #ef4444);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  padding: 0 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.assiste-tab-badge.hidden { display: none; }

/* ── Tab panels ── */
.assiste-tab-panel { display: block; }
.assiste-tab-panel.hidden { display: none; }

/* ── Stats grid ── */
.assiste-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(120px, 100%), 1fr));
  gap: 12px;
  margin-bottom: 20px;
}
.assiste-stat-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px;
  text-align: center;
}
.assiste-stat-value {
  font-size: 28px;
  font-weight: 700;
  color: var(--accent);
  line-height: 1;
}
.assiste-stat-label {
  font-size: 11px;
  color: var(--muted);
  margin-top: 4px;
}

/* ── Grille 2 colonnes (Suivi) ── */
.assiste-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* ── Log activité ── */
.assiste-log-item {
  display: flex;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  align-items: flex-start;
}
.assiste-log-item:last-child { border-bottom: none; }
.assiste-log-icon {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(0,201,141,.1);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  flex-shrink: 0;
}
.assiste-log-titre { font-size: 13px; font-weight: 500; }
.assiste-log-date  { font-size: 11px; color: var(--muted); margin-top: 2px; }

/* ── Candidatures ── */
.assiste-cand-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
}
.assiste-cand-item:last-child { border-bottom: none; }
.assiste-cand-body { flex: 1; min-width: 0; overflow: hidden; }
.assiste-cand-poste {
  font-size: 13px;
  font-weight: 500;
  word-break: break-word;
  line-height: 1.4;
}
.assiste-cand-meta {
  font-size: 11px;
  color: var(--muted);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Offres matching ── */
.assiste-offres-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr));
  gap: 12px;
}
.assiste-offre-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px;
  transition: border-color .15s;
}
.assiste-offre-card:hover { border-color: var(--accent); }
.assiste-offre-titre {
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.assiste-offre-meta {
  font-size: 12px;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
}
.assiste-offre-tag {
  background: rgba(0,201,141,.08);
  color: var(--accent);
  border-radius: 4px;
  padding: 2px 7px;
  font-size: 11px;
}
.assiste-offre-actions {
  margin-top: 10px;
  display: flex;
  gap: 8px;
}

/* ── Documents / CVs ── */
.assiste-cvs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(160px, 100%), 1fr));
  gap: 12px;
}
.assiste-cv-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  transition: border-color .15s;
}
.assiste-cv-card:hover { border-color: var(--accent); }
.assiste-cv-icon {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: rgba(0,201,141,.1);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
}
.assiste-cv-nom  { font-weight: 600; font-size: 13px; word-break: break-word; }
.assiste-cv-date { font-size: 11px; color: var(--muted); }

/* ── Forfait ── */
.assiste-forfait-header {
  background: linear-gradient(135deg, rgba(0,201,141,.12), rgba(0,201,141,.04));
  border: 1px solid rgba(0,201,141,.25);
  border-radius: var(--radius);
  padding: 24px;
  text-align: center;
  margin-bottom: 16px;
}
.assiste-forfait-name {
  font-size: 22px;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 4px;
}
.assiste-forfait-dates { font-size: 12px; color: var(--muted); }

.assiste-forfait-features {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(190px, 100%), 1fr));
  gap: 10px;
  margin-bottom: 4px;
}
.assiste-forfait-feature {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.assiste-forfait-feature-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(0,201,141,.1);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.assiste-forfait-feature-val   { font-size: 16px; font-weight: 700; }
.assiste-forfait-feature-label { font-size: 11px; color: var(--muted); }

/* ── Messages ── */
.assiste-messages-container {
  display: flex;
  flex-direction: column;
  height: clamp(360px, 60vh, 560px);
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}
.assiste-messages-list {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  scroll-behavior: smooth;
}
.assiste-messages-form {
  display: flex;
  gap: 8px;
  padding: 12px;
  border-top: 1px solid var(--border);
  align-items: flex-end;
  background: var(--card-bg);
}
.assiste-msg-input {
  flex: 1;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  color: var(--fg);
  resize: none;
  font-family: inherit;
  line-height: 1.5;
  transition: border-color .15s;
}
.assiste-msg-input:focus { outline: none; border-color: var(--accent); }
.assiste-msg-send {
  flex-shrink: 0;
  height: 38px;
  padding: 0 16px;
  align-self: flex-end;
}

.assiste-msg-item {
  display: flex;
  flex-direction: column;
  max-width: 75%;
}
.assiste-msg-item.from-client     { align-self: flex-end;  align-items: flex-end; }
.assiste-msg-item.from-conseiller { align-self: flex-start; align-items: flex-start; }

.assiste-msg-bubble {
  border-radius: 14px;
  padding: 10px 14px;
  font-size: 13px;
  line-height: 1.55;
  word-break: break-word;
}
.from-client .assiste-msg-bubble {
  background: var(--accent);
  color: #fff;
  border-bottom-right-radius: 4px;
}
.from-conseiller .assiste-msg-bubble {
  background: var(--surface2, rgba(255,255,255,.07));
  color: var(--fg);
  border-bottom-left-radius: 4px;
}
.assiste-msg-meta {
  font-size: 11px;
  color: var(--muted);
  margin-top: 4px;
  padding: 0 4px;
}

/* ── Progression ── */
.assiste-etapes {
  display: flex;
  align-items: flex-start;
  gap: 0;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none;
}
.assiste-etapes::-webkit-scrollbar { display: none; }

.assiste-etape {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.assiste-etape-dot {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--border);
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  transition: background .2s, color .2s;
}
.assiste-etape.done  .assiste-etape-dot { background: var(--accent); color: #fff; }
.assiste-etape.active .assiste-etape-dot { background: rgba(0,201,141,.15); color: var(--accent); border: 2px solid var(--accent); }
.assiste-etape-label {
  font-size: 10px;
  color: var(--muted);
  text-align: center;
  max-width: 70px;
  line-height: 1.3;
}
.assiste-etape.done  .assiste-etape-label { color: var(--fg); }
.assiste-etape.active .assiste-etape-label { color: var(--accent); font-weight: 600; }

.assiste-etape-line {
  flex: 1;
  height: 2px;
  background: var(--border);
  min-width: 20px;
  margin-top: 15px;
  transition: background .2s;
}
.assiste-etape-line.done { background: var(--accent); }

/* ── Responsive ── */
@media (max-width: 700px) {
  .assiste-grid           { grid-template-columns: 1fr; }
  .assiste-stats-grid     { grid-template-columns: repeat(3, 1fr); }
  .assiste-offres-grid    { grid-template-columns: 1fr; }
  .assiste-cvs-grid       { grid-template-columns: repeat(2, 1fr); }
  .assiste-forfait-features { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  .assiste-container      { padding: 0 12px 48px; }
  .assiste-tab span:not(.assiste-tab-badge) { display: none; }
  .assiste-tab            { padding: 10px 12px; }
  .assiste-stats-grid     { grid-template-columns: repeat(2, 1fr); }
  .assiste-cvs-grid       { grid-template-columns: repeat(2, 1fr); }
  .assiste-forfait-features { grid-template-columns: 1fr; }
  .assiste-msg-item       { max-width: 90%; }
  .assiste-offre-card     { padding: 12px; }
  .assiste-stat-value     { font-size: 22px; }
  .assiste-etape-label    { font-size: 9px; max-width: 58px; }
  .assiste-etape-dot      { width: 28px; height: 28px; font-size: 11px; }
  .assiste-etape-line     { margin-top: 13px; min-width: 12px; }
}
