/* ════════════════════════════════════════════════════════════
   zen-feel.css — ZEN Assurance (logged-in dashboard feel)
   Structure unchanged; motion, color, and calm feedback only.
════════════════════════════════════════════════════════════ */

:root {
  --feel-up: #2ebd85;
  --feel-down: #7a8fa8;
  --feel-progress: #4a9eff;
  --feel-settled: #94a3b8;
  --feel-calibrating: #c9a227;
  --t-assured: 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── Dashboard-scoped: calm motion, no alarm pulses ───────── */
#app .fm-pending-pulse {
  animation: feelAccruePulse 3s ease-in-out infinite;
}

@keyframes feelAccruePulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.82; }
}

#app .neon-flicker,
#app .ticker-label {
  animation: none !important;
}

#app .crisis-banner,
#app #crisis-mode-banner {
  animation: none !important;
  border-color: rgba(74, 158, 255, 0.25) !important;
  background: rgba(8, 14, 24, 0.92) !important;
}

#app .crisis-banner.feel-stable,
#app #crisis-mode-banner.feel-stable {
  box-shadow: 0 0 0 1px rgba(74, 158, 255, 0.12);
}

/* ── Semantic text helpers ────────────────────────────────── */
#app .feel-up,
#app .up.feel-metric { color: var(--feel-up) !important; }

#app .feel-down,
#app .down.feel-metric { color: var(--feel-down) !important; }

#app .feel-settled { color: var(--feel-settled) !important; }

#app .feel-progress { color: var(--feel-progress) !important; }

#app .feel-confirm-flash {
  animation: feelConfirmFlash 0.4s ease forwards;
}

@keyframes feelConfirmFlash {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}

/* ── Boot progress bar (smooth width) ─────────────────────── */
#loading-screen .boot-progress-fill,
#loading-screen .progress-bar-fill {
  transition: width 0.4s ease;
}

/* ── Toasts inside app context ────────────────────────────── */
#app ~ #toast-container .toast-progress,
#toast-container .toast-progress {
  border-color: rgba(74, 158, 255, 0.35);
  background: rgba(8, 14, 24, 0.95);
  color: #b8d4f0;
}

#toast-container .toast-progress i {
  color: var(--feel-progress);
}

#app ~ #toast-container .toast-warning,
#toast-container .toast-warning {
  border-color: rgba(201, 162, 39, 0.35);
  color: #d4c4a0;
}

/* ── Copy trader: steady active badge ─────────────────────── */
#app .ct-live-badge {
  animation: none !important;
  color: var(--feel-up);
  font-weight: 600;
  letter-spacing: 0.02em;
}

#app .ct-live-badge::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--feel-up);
  margin-right: 6px;
  vertical-align: middle;
  opacity: 0.9;
}

/* ── Admin / portfolio status strip ───────────────────────── */
#app .feel-status-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 500;
  color: #94a3b8;
  background: rgba(8, 14, 24, 0.85);
  border: 1px solid rgba(74, 158, 255, 0.15);
  border-radius: 8px;
}

#app .feel-status-bar i {
  color: var(--feel-progress);
}

/* ── Chart data badge states ──────────────────────────────── */
.chart-data-indicator.feel-calibrating {
  color: var(--feel-calibrating) !important;
  border-color: rgba(201, 162, 39, 0.35) !important;
}

.chart-data-indicator.feel-live {
  color: var(--feel-up) !important;
  border-color: rgba(46, 189, 133, 0.3) !important;
}

.chart-data-indicator.feel-loading {
  color: var(--feel-settled) !important;
  border-color: rgba(122, 143, 168, 0.25) !important;
}
