/* =============================================================================
   TerraTrack - Simulation visual completion
   Fidélité maquette Claude Design (section data-view="simulation") :
   espacement aéré, cartes KPI, graphe de projection.
   Ce fichier charge APRÈS design_v2.css -> il surcharge la couche partagée
   à spécificité égale sans la modifier.
   ============================================================================= */

/* -----------------------------------------------------------------------------
   Layout général : grille paramètres + résultats, gaps aérés de la maquette
   (maquette : grid-template-columns:340px 1fr ; gap:18px ; align-items:start)
   ----------------------------------------------------------------------------- */
#s-simulation #sim-body {
  padding: var(--tt-s-6);
}

.sim-page {
  max-width: var(--tt-content-max);
}

.sim-page .page-head {
  align-items: flex-start;
  gap: var(--tt-s-4);
  margin-bottom: var(--tt-s-5);
}

.sim-page .page-actions {
  display: flex;
  flex: 1 1 620px;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--tt-s-2);
}

.sim-page .page-actions .btn {
  min-height: 36px;
}

.sim-account-picker {
  max-width: 260px;
}

.sim-account-picker-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sim-layout {
  gap: 18px;
  align-items: start;
}

/* Colonnes internes (.col.gap-4) : la maquette empile les blocs en colonne
   flex avec gap:14px. Les utilitaires .col/.gap-4 n'ont pas de règle CSS
   globale -> on matérialise ici le flux colonne pour aérer les cartes. */
.sim-layout > .col {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* -----------------------------------------------------------------------------
   Bandeau KPI exécutif (3 cartes maquette : CA actuel / projeté / gain)
   L'app en expose 4 (le 4e = mensuel moyen) : grille fluide, gap 14px.
   ----------------------------------------------------------------------------- */
.sim-executive {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 14px;
}

.sim-exec-kpi {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--tt-border);
  border-radius: var(--tt-r-3);
  background: var(--tt-surface);
  box-shadow: var(--tt-shadow-1);
}

/* Libellé : 11px / 600 / uppercase / letter-spacing .05em (maquette) */
.sim-exec-kpi span,
.sim-exec-kpi em {
  display: block;
  color: var(--tt-fg-3);
  font-style: normal;
}

.sim-exec-kpi span {
  font-size: var(--tt-fs-11);
  font-weight: var(--tt-fw-semi);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Valeur : monospace 24px / 700 (maquette) */
.sim-exec-kpi strong {
  display: block;
  margin-top: 4px;
  color: var(--tt-fg);
  font-family: var(--tt-font-mono);
  font-size: 24px; /* maquette : valeur KPI exacte (pas de token --tt-fs-24) */
  line-height: 1.1;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.sim-exec-kpi em {
  margin-top: 5px;
  font-size: var(--tt-fs-11);
  font-weight: var(--tt-fw-medium);
}

/* Carte "Gain à capter" (3e) mise en avant comme la carte gain de la maquette :
   fond accent-soft, bordure accent, libellé + valeur en bleu info. */
.sim-exec-kpi:nth-child(3) {
  background: var(--tt-accent-soft);
  border-color: var(--tt-accent-border);
}

.sim-exec-kpi:nth-child(3) span,
.sim-exec-kpi:nth-child(3) strong {
  color: var(--tt-info);
}

/* -----------------------------------------------------------------------------
   Sous-titres / textes secondaires
   ----------------------------------------------------------------------------- */
.sim-total-sub,
.sim-chart-caption,
.sim-leveling-copy {
  font-size: var(--tt-fs-12);
}

.sim-total-sub {
  margin-top: 4px;
}

.sim-callout,
.sim-leveling-grid,
.sim-chart-caption {
  margin-top: var(--tt-s-3);
}

.sim-leveling-copy {
  margin-bottom: 10px;
}

/* -----------------------------------------------------------------------------
   Graphe de projection (maquette : svg width:100% ; height:170px,
   aire dégradée accent + courbe accent 2.5px)
   ----------------------------------------------------------------------------- */
.sim-chart {
  display: block;
  width: 100%;
  height: 170px;
}

.sim-chart-caption {
  color: var(--tt-fg-3);
}

/* -----------------------------------------------------------------------------
   Répartition (breakdown) : pastilles + barres tokenisées
   ----------------------------------------------------------------------------- */
.sim-break-row > div:first-child {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.sim-break-row > div:first-child span {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--tt-fg-2);
  flex-shrink: 0;
}

.sim-break-row--accent > div:first-child span,
.sim-break-row--accent .sim-break-fill {
  background: var(--tt-accent);
}

.sim-break-row--neutral > div:first-child span,
.sim-break-row--neutral .sim-break-fill {
  background: var(--tt-fg);
}

.sim-break-row--muted > div:first-child span,
.sim-break-row--muted .sim-break-fill {
  background: var(--tt-fg-3);
}

/* -----------------------------------------------------------------------------
   Responsive : la grille KPI se replie comme dans la maquette mobile
   ----------------------------------------------------------------------------- */
@media (max-width: 1100px) {
  .sim-layout {
    gap: var(--tt-s-4);
  }

  .sim-executive {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  #s-simulation #sim-body {
    padding: var(--tt-s-4);
  }

  .sim-page .page-head,
  .sim-page .page-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .sim-page .page-actions {
    flex-basis: auto;
  }

  .sim-page .page-actions .btn,
  .sim-account-picker {
    max-width: none;
    width: 100%;
  }

  .sim-executive {
    grid-template-columns: 1fr;
  }
}
