/* =============================================================================
   SIGNALNEST — SUPERPOSITIONS & ÉTATS
   .sn-scrim · .sn-bottom-sheet · .sn-empty-state
   ============================================================================= */

/* ---- sn-scrim -------------------------------------------------------------------
   Voile d'arrière-plan commun à toute superposition modale.            */
.sn-scrim {
  position: fixed; inset: 0;
  background: var(--sn-color-bg-scrim);
  z-index: var(--sn-z-scrim);
}

/* ---- sn-bottom-sheet --------------------------------------------------------------
   Tiroir modal glissant depuis le bas.
   Écran source : sélecteur "Bots populaires" (Grille / DCA / Iceberg / TWAP). */
.sn-bottom-sheet {
  position: fixed; left: 0; right: 0; bottom: 0;
  max-width: var(--sn-viewport-max);
  margin-inline: auto;
  background: var(--sn-color-bg-canvas);
  border-radius: var(--sn-radius-md) var(--sn-radius-md) 0 0;
  box-shadow: var(--sn-shadow-sheet);
  z-index: var(--sn-z-sheet);
  max-height: 85dvh;
  overflow-y: auto;
  padding-bottom: env(safe-area-inset-bottom);
}
.sn-sheet-enter { transition: transform var(--sn-duration-slow) var(--sn-ease-decel), opacity var(--sn-duration-slow) var(--sn-ease-decel); }
.sn-sheet-enter-start { transform: translateY(100%); opacity: 0; }
.sn-sheet-enter-end { transform: translateY(0); opacity: 1; }
.sn-sheet-leave { transition: transform var(--sn-duration-base) var(--sn-ease-accel), opacity var(--sn-duration-base) var(--sn-ease-accel); }
.sn-sheet-leave-start { transform: translateY(0); opacity: 1; }
.sn-sheet-leave-end { transform: translateY(100%); opacity: 0; }

.sn-bottom-sheet__handle { display: flex; justify-content: center; padding: var(--sn-space-3) 0 var(--sn-space-2); }
.sn-bottom-sheet__handle span { width: 36px; height: 4px; border-radius: var(--sn-radius-xs); background: var(--sn-color-border-strong); }
.sn-bottom-sheet__title { font-size: var(--sn-text-md); font-weight: var(--sn-weight-semibold); padding: 0 var(--sn-space-4) var(--sn-space-4); }
.sn-bottom-sheet__body { padding: 0 var(--sn-space-4) var(--sn-space-5); }

/* ---- sn-empty-state ------------------------------------------------------------------
   État vide standard : illustration, titre, description, CTA.
   Écran source : "Vos bots en cours apparaîtront ici", "Ordres ouverts". */
.sn-empty-state { display: flex; flex-direction: column; align-items: center; text-align: center; padding: var(--sn-space-8) var(--sn-space-5); }
.sn-empty-state__illustration { width: 88px; height: 88px; margin-bottom: var(--sn-space-5); color: var(--sn-color-text-tertiary); }
.sn-empty-state__title { font-weight: var(--sn-weight-semibold); font-size: var(--sn-text-md); }
.sn-empty-state__body { color: var(--sn-color-text-secondary); font-size: var(--sn-text-sm); margin-top: var(--sn-space-1); max-width: 26ch; }
.sn-empty-state__cta { margin-top: var(--sn-space-5); }
