/* =====================================================================
   CALENDAR V3 — IMPLEMENTAÇÃO REAL (substitui pageCalendar)
   Namespace: .cv-* (não vaza pra resto da plataforma)
   Plugado em: /calendar/data + /calendar/news + /calendar/assessment +
              /calendar/crypto. ZERO MOCK no fallback (empty state honesto).
===================================================================== */

:root {
  --cv-bg-deep: #050715;
  --cv-bg-darker: #08091e;
  --cv-bg-card: rgba(15,18,48,0.55);
  --cv-bg-card-strong: rgba(20,24,58,0.78);
  --cv-glass: rgba(255,255,255,0.08);
  --cv-glass-bright: rgba(255,255,255,0.16);
  --cv-primary: #a78bfa;
  --cv-primary-bright: #c4b5fd;
  --cv-primary-deep: #7c3aed;
  --cv-accent: #22d3ee;
  --cv-accent-bright: #67e8f9;
  --cv-green: #34d399;
  --cv-green-bright: #6ee7b7;
  --cv-amber: #fbbf24;
  --cv-amber-bright: #fcd34d;
  --cv-gold: #f59e0b;
  --cv-red: #f87171;
  --cv-red-deep: #dc2626;
  --cv-red-glow: #ef4444;
  --cv-blue: #60a5fa;
  --cv-blue-bright: #93c5fd;
  --cv-t1: #f1f5f9;
  --cv-t2: #cbd5e1;
  --cv-t3: #94a3b8;
  --cv-t4: #64748b;
  --cv-t5: #475569;
  --cv-r-md: 12px;
  --cv-r-lg: 18px;
  --cv-r-xl: 22px;
  --cv-r-2xl: 28px;
  --cv-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --cv-smooth: cubic-bezier(0.4, 0, 0.2, 1);
}

.cv-page {
  color: var(--cv-t1);
  -webkit-font-smoothing: antialiased;
}
.cv-page * { box-sizing: border-box; }
/* Animação só na PRIMEIRA aparição (one-shot) — evita piscada nos rerenders */
.cv-page.cv-first-paint { animation: cvFadeIn 0.22s ease-out; }
@keyframes cvFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ─── HEADER PREMIUM (substitui pageHdrPremium azul) ─── */
.cv-hdr {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 22px; padding: 18px 24px; gap: 18px; flex-wrap: wrap;
  background: linear-gradient(135deg, rgba(124,58,237,0.10), rgba(34,211,238,0.06));
  border: 1px solid var(--cv-glass-bright); border-radius: var(--cv-r-xl);
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);
  position: relative; overflow: hidden;
}
.cv-hdr::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle 320px at 100% 0%, rgba(167,139,250,0.16), transparent 70%);
  pointer-events: none;
}
.cv-hdr-left { display: flex; align-items: center; gap: 16px; position: relative; min-width: 0; }
.cv-hdr-ic {
  width: 48px; height: 48px; flex-shrink: 0;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--cv-primary-deep), var(--cv-primary));
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 24px rgba(124,58,237,0.45), inset 0 1px 0 rgba(255,255,255,0.2);
  position: relative;
}
.cv-hdr-ic::after {
  content: ""; position: absolute; inset: -1px;
  border-radius: 15px; padding: 1px;
  background: linear-gradient(135deg, var(--cv-primary-bright), var(--cv-accent-bright));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity: 0.5; pointer-events: none;
}
.cv-hdr-text { min-width: 0; }
.cv-hdr-title {
  font-size: 1.4rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.1;
  color: var(--cv-t1);
}
.cv-hdr-title span {
  background: linear-gradient(135deg, var(--cv-primary-bright), var(--cv-accent-bright));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
}
.cv-hdr-sub {
  font-size: 0.7rem; color: var(--cv-t3); margin-top: 4px;
  letter-spacing: 0.02em;
}
.cv-hdr-right { display: flex; align-items: center; gap: 10px; position: relative; flex-wrap: wrap; }
.cv-hdr-pill {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px; border-radius: 999px;
  font-size: 0.66rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
}
.cv-hdr-pill .pd { width: 8px; height: 8px; border-radius: 50%; background: currentColor;
  box-shadow: 0 0 10px currentColor; animation: cvPulse 1.6s infinite; }
.cv-hdr-pill.ok { background: rgba(52,211,153,0.16); color: var(--cv-green-bright); border: 1px solid rgba(52,211,153,0.32); }
.cv-hdr-pill.warn { background: rgba(245,158,11,0.16); color: var(--cv-amber-bright); border: 1px solid rgba(245,158,11,0.32); }
.cv-hdr-pill.danger { background: rgba(248,113,113,0.16); color: var(--cv-red); border: 1px solid rgba(248,113,113,0.32); }
.cv-hdr-pill.weekend { background: rgba(96,165,250,0.16); color: var(--cv-blue-bright); border: 1px solid rgba(96,165,250,0.32); }

/* ─── HERO ─── */
.cv-hero {
  position: relative; padding: 30px 36px;
  background: linear-gradient(135deg, rgba(220,38,38,0.14), rgba(124,58,237,0.10));
  border: 1px solid rgba(248,113,113,0.32);
  border-radius: var(--cv-r-2xl); overflow: hidden; margin-bottom: 22px;
  backdrop-filter: blur(40px) saturate(180%);
  -webkit-backdrop-filter: blur(40px) saturate(180%);
}
.cv-hero.calm { background: linear-gradient(135deg, rgba(52,211,153,0.10), rgba(34,211,238,0.08)); border-color: rgba(52,211,153,0.32); }
.cv-hero.weekend { background: linear-gradient(135deg, rgba(96,165,250,0.14), rgba(34,211,238,0.10)); border-color: rgba(96,165,250,0.32); }
.cv-hero::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle 600px at 85% 20%, rgba(248,113,113,0.18), transparent 70%);
  pointer-events: none;
}
.cv-hero.calm::before { background: radial-gradient(circle 600px at 85% 20%, rgba(52,211,153,0.18), transparent 70%); }
.cv-hero.weekend::before { background: radial-gradient(circle 600px at 85% 20%, rgba(96,165,250,0.20), transparent 70%); }
.cv-hero-row { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.cv-hero-left { flex: 1; min-width: 280px; }
.cv-hero-tag {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 14px; border-radius: 999px;
  font-size: 0.6rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  background: rgba(248,113,113,0.16); color: #fca5a5;
  border: 1px solid rgba(248,113,113,0.32); margin-bottom: 14px;
}
.cv-hero.calm .cv-hero-tag { background: rgba(52,211,153,0.16); color: var(--cv-green-bright); border-color: rgba(52,211,153,0.32); }
.cv-hero.weekend .cv-hero-tag { background: rgba(96,165,250,0.16); color: var(--cv-blue-bright); border-color: rgba(96,165,250,0.32); }
.cv-hero-tag .pdot {
  width: 8px; height: 8px; border-radius: 50%;
  background: currentColor; box-shadow: 0 0 10px currentColor;
  animation: cvPulse 1.2s infinite;
}
@keyframes cvPulse {
  0%,100% { box-shadow: 0 0 4px currentColor; }
  50% { box-shadow: 0 0 14px currentColor; }
}
.cv-hero-event {
  font-size: 2.1rem; font-weight: 800; letter-spacing: -0.025em; line-height: 1.1;
  margin-bottom: 10px; color: var(--cv-t1);
}
.cv-hero-event .flag { margin-right: 10px; font-size: 1.6rem; vertical-align: middle; }
.cv-hero-meta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; font-size: 0.78rem; color: var(--cv-t3); }
.cv-hero-meta .dot { width: 4px; height: 4px; background: var(--cv-t4); border-radius: 50%; }
.cv-hero-meta .vol { color: var(--cv-amber-bright); font-weight: 700; }
.cv-hero-pairs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.cv-pair {
  font-size: 0.62rem; font-weight: 700; padding: 5px 11px; border-radius: 7px;
  background: rgba(167,139,250,0.12); color: var(--cv-primary-bright);
  border: 1px solid rgba(167,139,250,0.25); letter-spacing: 0.04em;
}

/* Countdown */
.cv-cd { display: flex; gap: 8px; align-items: center; flex-shrink: 0; }
.cv-cd-blk {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 88px; height: 88px; border-radius: 18px;
  background: linear-gradient(180deg, rgba(8,9,30,0.7), rgba(20,24,58,0.7));
  border: 1px solid var(--cv-glass-bright);
}
.cv-cd-blk .num {
  font-size: 2.4rem; font-weight: 800; color: var(--cv-red);
  letter-spacing: -0.03em; line-height: 1; font-family: "SF Mono", monospace;
  text-shadow: 0 0 20px rgba(248,113,113,0.4);
}
.cv-hero.calm .cv-cd-blk .num { color: var(--cv-green-bright); text-shadow: 0 0 20px rgba(52,211,153,0.4); }
.cv-hero.weekend .cv-cd-blk .num { color: var(--cv-blue-bright); text-shadow: 0 0 20px rgba(96,165,250,0.4); }
.cv-cd-blk .lbl {
  font-size: 0.5rem; color: var(--cv-t4);
  letter-spacing: 0.18em; text-transform: uppercase; font-weight: 700; margin-top: 6px;
}
.cv-cd-sep { font-size: 1.6rem; color: var(--cv-t5); font-weight: 700; font-family: "SF Mono", monospace; }

/* ─── NO TRADE STRIP ─── */
.cv-notrade {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 20px; margin-bottom: 18px;
  background: linear-gradient(90deg, rgba(220,38,38,0.18), rgba(220,38,38,0.06));
  border: 1px solid rgba(220,38,38,0.4); border-left-width: 4px;
  border-radius: var(--cv-r-lg);
}
.cv-notrade-ic { font-size: 1.4rem; animation: cvBlink 1.6s infinite; }
@keyframes cvBlink {
  0%,100% { opacity: 1; }
  50% { opacity: 0.5; }
}
.cv-notrade-body { flex: 1; }
.cv-notrade-t { font-size: 0.7rem; font-weight: 800; color: #fca5a5; letter-spacing: 0.14em; text-transform: uppercase; }
.cv-notrade-s { font-size: 0.74rem; color: var(--cv-t2); margin-top: 3px; }
.cv-notrade-tm {
  font-size: 0.86rem; font-weight: 800; color: #fca5a5; font-family: "SF Mono", monospace;
  background: rgba(220,38,38,0.18); padding: 8px 14px; border-radius: 10px;
  border: 1px solid rgba(220,38,38,0.32);
}

/* ─── SOURCE STRIP (transparência: real x local) ─── */
.cv-src-strip {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-bottom: 18px; padding: 10px 16px;
  background: var(--cv-bg-card); border: 1px solid var(--cv-glass);
  border-radius: var(--cv-r-md); font-size: 0.62rem;
}
.cv-src-strip .lbl { color: var(--cv-t4); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.cv-src-strip .desc { color: var(--cv-t4); }
.cv-src-strip .right { margin-left: auto; color: var(--cv-t4); }
.cv-src-strip .sep { color: var(--cv-t5); margin: 0 6px; }
.cv-src-pill {
  display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 6px;
  font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.55rem;
}
.cv-src-pill.live { background: rgba(52,211,153,0.16); color: var(--cv-green-bright); border: 1px solid rgba(52,211,153,0.3); }
.cv-src-pill.local { background: rgba(245,158,11,0.16); color: var(--cv-amber-bright); border: 1px solid rgba(245,158,11,0.3); }
.cv-src-pill.offline { background: rgba(248,113,113,0.16); color: var(--cv-red); border: 1px solid rgba(248,113,113,0.3); }
.cv-src-pill .pd { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 6px currentColor; animation: cvPulse 1.6s infinite; }

/* ─── KPI ROW ─── */
.cv-kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.cv-kpi {
  position: relative; padding: 18px 20px;
  background: var(--cv-bg-card); border: 1px solid var(--cv-glass);
  border-radius: var(--cv-r-lg); overflow: hidden;
  transition: transform 0.2s var(--cv-smooth);
}
.cv-kpi:hover { transform: translateY(-2px); border-color: var(--cv-glass-bright); }
.cv-kpi::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
}
.cv-kpi.amber { --accent: var(--cv-amber-bright); }
.cv-kpi.red { --accent: var(--cv-red); }
.cv-kpi.violet { --accent: var(--cv-primary-bright); }
.cv-kpi.blue { --accent: var(--cv-blue-bright); }
.cv-kpi.green { --accent: var(--cv-green-bright); }
.cv-kpi .l { font-size: 0.55rem; letter-spacing: 0.18em; color: var(--cv-t4); font-weight: 700; text-transform: uppercase; }
.cv-kpi .v { font-size: 1.55rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; margin-top: 6px; color: var(--cv-t1); word-break: break-word; }
.cv-kpi .v.am { color: var(--cv-amber-bright); }
.cv-kpi .v.rd { color: var(--cv-red); }
.cv-kpi .v.bl { color: var(--cv-blue-bright); }
.cv-kpi .v.gr { color: var(--cv-green-bright); }
.cv-kpi .s { font-size: 0.62rem; color: var(--cv-t3); margin-top: 5px; }
.cv-kpi .badge-rt {
  position: absolute; top: 14px; right: 14px;
  font-size: 0.52rem; padding: 3px 8px; border-radius: 6px;
  background: rgba(248,113,113,0.15); color: #fca5a5;
  border: 1px solid rgba(248,113,113,0.32);
  font-weight: 700; letter-spacing: 0.06em;
}

/* ─── RISK METER ─── */
.cv-risk {
  display: flex; align-items: center; gap: 18px;
  padding: 16px 22px; margin-bottom: 22px;
  background: var(--cv-bg-card); border: 1px solid var(--cv-glass);
  border-radius: var(--cv-r-lg);
}
.cv-risk-l { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.18em; color: var(--cv-t3); text-transform: uppercase; flex-shrink: 0; }
.cv-risk-bar {
  flex: 1; height: 10px; background: rgba(255,255,255,0.05); border-radius: 6px;
  position: relative; overflow: hidden;
}
.cv-risk-fill {
  height: 100%; border-radius: 6px;
  background: linear-gradient(90deg, var(--cv-green) 0%, var(--cv-amber) 50%, var(--cv-red) 100%);
  position: relative; transition: width 0.8s var(--cv-spring);
}
.cv-risk-fill::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  animation: cvShimmer 2s infinite;
}
@keyframes cvShimmer {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}
.cv-risk-v {
  font-size: 0.84rem; font-weight: 800;
  letter-spacing: 0.04em; font-family: "SF Mono", monospace; flex-shrink: 0;
}
.cv-risk-v.h { color: var(--cv-red); }
.cv-risk-v.m { color: var(--cv-amber-bright); }
.cv-risk-v.l { color: var(--cv-green-bright); }

/* ─── TABS ─── */
.cv-tabs {
  display: flex; gap: 6px; padding: 6px;
  background: var(--cv-bg-card); border: 1px solid var(--cv-glass);
  border-radius: var(--cv-r-xl); margin-bottom: 22px; width: fit-content;
}
.cv-tab {
  padding: 11px 22px; border-radius: 14px; cursor: pointer;
  font-size: 0.74rem; font-weight: 600; letter-spacing: 0.04em;
  color: var(--cv-t3); background: transparent; border: none;
  transition: all 0.25s var(--cv-smooth); display: flex; align-items: center; gap: 8px;
  font-family: inherit;
}
.cv-tab:hover { color: var(--cv-t1); }
.cv-tab.active {
  background: linear-gradient(135deg, var(--cv-primary-deep), var(--cv-primary));
  color: #fff; box-shadow: 0 6px 20px rgba(124,58,237,0.35);
}
.cv-tab .badge {
  font-size: 0.58rem; padding: 2px 7px; border-radius: 6px; font-weight: 700;
  background: rgba(255,255,255,0.14); color: #fff;
}

/* ─── FILTERS ─── */
.cv-filters {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 18px; flex-wrap: wrap;
  padding: 10px 14px; background: var(--cv-bg-card); border: 1px solid var(--cv-glass);
  border-radius: var(--cv-r-md);
}
.cv-f-lbl { font-size: 0.58rem; color: var(--cv-t4); font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; margin-right: 4px; }
.cv-f-sep { width: 1px; height: 22px; background: var(--cv-glass); margin: 0 6px; }
.cv-chip {
  padding: 6px 13px; border-radius: 9px; cursor: pointer;
  font-size: 0.66rem; font-weight: 600; letter-spacing: 0.04em;
  background: rgba(15,18,48,0.6); border: 1px solid var(--cv-glass); color: var(--cv-t3);
  transition: all 0.2s var(--cv-smooth); font-family: inherit;
  display: inline-flex; align-items: center; gap: 6px;
}
.cv-chip:hover { color: var(--cv-t1); border-color: var(--cv-glass-bright); }
.cv-chip.active {
  background: linear-gradient(135deg, var(--cv-primary-deep), var(--cv-primary)); color: #fff;
  border-color: transparent; box-shadow: 0 4px 14px rgba(124,58,237,0.3);
}
.cv-chip.imp-h { border-color: rgba(248,113,113,0.3); color: #fca5a5; }
.cv-chip.imp-m { border-color: rgba(245,158,11,0.3); color: var(--cv-amber-bright); }
.cv-chip.imp-l { border-color: rgba(52,211,153,0.3); color: var(--cv-green-bright); }
.cv-chip.imp-h.active { background: linear-gradient(135deg, #dc2626, #f87171); color: #fff; border-color: transparent; }
.cv-chip.imp-m.active { background: linear-gradient(135deg, #f59e0b, #fbbf24); color: #1e293b; border-color: transparent; }
.cv-chip.imp-l.active { background: linear-gradient(135deg, #059669, #34d399); color: #fff; border-color: transparent; }

/* ─── WEEK STRIP ─── */
.cv-week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin-bottom: 22px; }
.cv-day {
  position: relative; padding: 14px 12px; border-radius: var(--cv-r-md);
  background: var(--cv-bg-card); border: 1px solid var(--cv-glass);
  cursor: pointer; text-align: center; transition: all 0.2s var(--cv-smooth);
}
.cv-day:hover { border-color: var(--cv-glass-bright); transform: translateY(-2px); }
.cv-day.today {
  background: linear-gradient(135deg, rgba(167,139,250,0.18), rgba(34,211,238,0.10));
  border-color: rgba(167,139,250,0.35);
}
.cv-day.active {
  background: linear-gradient(135deg, var(--cv-primary-deep), var(--cv-primary));
  border-color: transparent; box-shadow: 0 8px 24px rgba(124,58,237,0.4);
}
.cv-day .d { font-size: 0.55rem; font-weight: 700; letter-spacing: 0.18em; color: var(--cv-t4); text-transform: uppercase; }
.cv-day.active .d { color: rgba(255,255,255,0.7); }
.cv-day .dt { font-size: 1.05rem; font-weight: 800; color: var(--cv-t1); margin-top: 4px; letter-spacing: -0.01em; }
.cv-day.active .dt { color: #fff; }
.cv-day .ev { font-size: 0.58rem; color: var(--cv-t3); margin-top: 5px; font-weight: 600; }
.cv-day.active .ev { color: rgba(255,255,255,0.8); }
.cv-day .high {
  display: inline-block; font-size: 0.5rem; padding: 1px 6px; border-radius: 4px;
  background: rgba(248,113,113,0.18); color: #fca5a5; font-weight: 700;
  margin-top: 5px; letter-spacing: 0.06em;
}
.cv-day.active .high { background: rgba(255,255,255,0.18); color: #fff; }
.cv-day.today::before {
  content: ""; position: absolute; top: 6px; right: 6px; width: 6px; height: 6px; border-radius: 50%;
  background: var(--cv-green-bright); box-shadow: 0 0 8px var(--cv-green-bright);
  animation: cvPulse 1.6s infinite;
}

/* ─── MAIN GRID ─── */
.cv-main { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; }

/* ─── CARDS ─── */
.cv-card {
  background: var(--cv-bg-card); border: 1px solid var(--cv-glass);
  border-radius: var(--cv-r-xl); padding: 20px;
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
}
.cv-card-h {
  display: flex; align-items: center; gap: 10px; margin-bottom: 16px;
  font-size: 0.7rem; letter-spacing: 0.16em; color: var(--cv-t2);
  font-weight: 700; text-transform: uppercase;
}
.cv-card-h .ic {
  width: 28px; height: 28px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.cv-card-h .meta { margin-left: auto; font-size: 0.58rem; color: var(--cv-t4); letter-spacing: 0.14em; font-weight: 600; }
.cv-card-h .live {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 0.55rem; padding: 3px 8px; border-radius: 5px;
  background: rgba(52,211,153,0.16); color: var(--cv-green-bright);
  border: 1px solid rgba(52,211,153,0.32); font-weight: 700; letter-spacing: 0.06em;
}
.cv-card-h .live.off { background: rgba(248,113,113,0.16); color: var(--cv-red); border-color: rgba(248,113,113,0.32); }
.cv-card-h .live .pd { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 8px currentColor; animation: cvPulse 1.6s infinite; }

/* ─── TIMELINE ─── */
.cv-tl {
  position: relative; padding-left: 8px;
  max-height: 680px; overflow-y: auto; padding-right: 6px;
}
.cv-tl::-webkit-scrollbar { width: 6px; }
.cv-tl::-webkit-scrollbar-thumb { background: rgba(167,139,250,0.3); border-radius: 3px; }
.cv-tl::before {
  content: ""; position: absolute; left: 78px; top: 6px; bottom: 6px; width: 2px;
  background: linear-gradient(180deg, rgba(167,139,250,0.3), rgba(34,211,238,0.1));
  border-radius: 1px;
}

.cv-ev { display: flex; gap: 14px; margin-bottom: 12px; position: relative; }
.cv-ev-time { flex-shrink: 0; width: 54px; text-align: right; padding-top: 14px; }
.cv-ev-time .h { font-size: 0.92rem; font-weight: 800; color: var(--cv-t1); font-family: "SF Mono", monospace; letter-spacing: -0.02em; }
.cv-ev-time .z { font-size: 0.5rem; color: var(--cv-t5); letter-spacing: 0.12em; font-weight: 600; margin-top: 1px; }
.cv-ev-dot {
  flex-shrink: 0; width: 14px; height: 14px; border-radius: 50%;
  margin-top: 18px; border: 3px solid var(--cv-bg-darker);
  position: relative; z-index: 2;
}
.cv-ev.high .cv-ev-dot { background: var(--cv-red); box-shadow: 0 0 12px rgba(248,113,113,0.6); }
.cv-ev.medium .cv-ev-dot { background: var(--cv-amber); box-shadow: 0 0 8px rgba(251,191,36,0.5); }
.cv-ev.low .cv-ev-dot { background: var(--cv-green); box-shadow: 0 0 8px rgba(52,211,153,0.5); }
.cv-ev.passed .cv-ev-dot { background: var(--cv-t5); box-shadow: none; border-color: var(--cv-bg-darker); }

.cv-ev-card {
  flex: 1; padding: 14px 16px; border-radius: 14px;
  background: rgba(8,9,30,0.4); border: 1px solid var(--cv-glass);
  transition: all 0.2s var(--cv-smooth);
}
.cv-ev-card:hover { transform: translateX(3px); border-color: rgba(167,139,250,0.22); }
.cv-ev.high .cv-ev-card { background: linear-gradient(135deg, rgba(248,113,113,0.06), rgba(8,9,30,0.4)); border-color: rgba(248,113,113,0.22); }
.cv-ev.passed .cv-ev-card { opacity: 0.55; }

.cv-ev-row1 { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.cv-ev-flag { font-size: 1rem; }
.cv-ev-cur { font-size: 0.6rem; font-weight: 700; padding: 3px 9px; border-radius: 5px; background: rgba(255,255,255,0.06); color: var(--cv-t2); letter-spacing: 0.08em; }
.cv-ev-imp { font-size: 0.55rem; font-weight: 700; padding: 3px 9px; border-radius: 5px; letter-spacing: 0.08em; text-transform: uppercase; }
.cv-ev-imp.high { background: rgba(220,38,38,0.18); color: #fca5a5; border: 1px solid rgba(220,38,38,0.32); }
.cv-ev-imp.medium { background: rgba(245,158,11,0.18); color: var(--cv-amber-bright); border: 1px solid rgba(245,158,11,0.32); }
.cv-ev-imp.low { background: rgba(52,211,153,0.16); color: var(--cv-green-bright); border: 1px solid rgba(52,211,153,0.32); }
.cv-ev-out { margin-left: auto; font-size: 0.6rem; font-weight: 700; padding: 3px 9px; border-radius: 5px; letter-spacing: 0.06em; text-transform: uppercase; }
.cv-ev-out.bull { background: rgba(52,211,153,0.16); color: var(--cv-green-bright); }
.cv-ev-out.bear { background: rgba(248,113,113,0.16); color: var(--cv-red); }
.cv-ev-out.wait { background: rgba(100,116,139,0.16); color: var(--cv-t3); }
.cv-ev-name { font-size: 0.92rem; font-weight: 700; color: var(--cv-t1); margin-bottom: 6px; letter-spacing: -0.01em; }

.cv-ev-vals {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
  padding: 10px 12px; background: rgba(255,255,255,0.025); border-radius: 10px; margin-top: 10px;
}
.cv-ev-vals .it { display: flex; flex-direction: column; align-items: center; }
.cv-ev-vals .l { font-size: 0.5rem; color: var(--cv-t5); letter-spacing: 0.16em; font-weight: 700; text-transform: uppercase; }
.cv-ev-vals .v { font-size: 0.86rem; font-weight: 800; color: var(--cv-t1); margin-top: 3px; font-family: "SF Mono", monospace; }
.cv-ev-vals .v.bull { color: var(--cv-green-bright); }
.cv-ev-vals .v.bear { color: var(--cv-red); }
.cv-ev-vals .v.wait { color: var(--cv-t4); }

.cv-ev-pairs { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.cv-ev-pair {
  font-size: 0.54rem; font-weight: 600; padding: 3px 8px; border-radius: 5px;
  background: rgba(167,139,250,0.10); color: var(--cv-primary-bright);
  border: 1px solid rgba(167,139,250,0.18); letter-spacing: 0.04em;
}

.cv-ev-foot {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--cv-glass);
  font-size: 0.58rem; color: var(--cv-t4); flex-wrap: wrap; gap: 8px;
}
.cv-ev-foot .acc { display: flex; align-items: center; gap: 6px; }
.cv-ev-foot .acc .bar { width: 50px; height: 4px; background: rgba(255,255,255,0.08); border-radius: 2px; overflow: hidden; }
.cv-ev-foot .acc .bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--cv-amber), var(--cv-amber-bright)); border-radius: 2px; }

/* ─── AI ASSESSMENT ─── */
.cv-ai {
  position: relative; padding: 24px;
  background: linear-gradient(135deg, rgba(167,139,250,0.10), rgba(34,211,238,0.06));
  border: 1px solid rgba(167,139,250,0.22);
  border-radius: var(--cv-r-xl); margin-bottom: 22px; overflow: hidden;
}
.cv-ai::before {
  content: ""; position: absolute; top: -40%; right: -15%; width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(167,139,250,0.18), transparent 70%);
  pointer-events: none;
}
.cv-ai-h { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; position: relative; flex-wrap: wrap; }
.cv-ai-h .ic {
  width: 36px; height: 36px; border-radius: 11px;
  background: linear-gradient(135deg, var(--cv-primary-deep), var(--cv-primary));
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem; box-shadow: 0 4px 14px rgba(124,58,237,0.35);
}
.cv-ai-h .t { font-size: 0.78rem; font-weight: 800; color: var(--cv-t1); letter-spacing: 0.06em; text-transform: uppercase; }
.cv-ai-h .src {
  margin-left: auto; font-size: 0.56rem; font-weight: 700;
  padding: 4px 10px; border-radius: 6px; letter-spacing: 0.06em;
  background: rgba(52,211,153,0.16); color: var(--cv-green-bright);
  border: 1px solid rgba(52,211,153,0.32);
}
.cv-ai-h .src.local { background: rgba(245,158,11,0.16); color: var(--cv-amber-bright); border-color: rgba(245,158,11,0.32); }
.cv-ai-verdict {
  font-size: 0.84rem; line-height: 1.6; color: var(--cv-t1); position: relative;
  padding: 14px 18px; background: rgba(8,9,30,0.4);
  border-left: 3px solid var(--cv-primary); border-radius: 0 12px 12px 0;
}
.cv-ai-verdict strong { color: var(--cv-amber-bright); }
.cv-ai-recs {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 14px; position: relative;
}
.cv-ai-rec {
  padding: 12px 14px; background: rgba(8,9,30,0.5);
  border: 1px solid var(--cv-glass); border-radius: 11px;
}
.cv-ai-rec .l { font-size: 0.5rem; color: var(--cv-t4); letter-spacing: 0.18em; font-weight: 700; text-transform: uppercase; }
.cv-ai-rec .v { font-size: 0.84rem; font-weight: 800; margin-top: 5px; letter-spacing: -0.01em; word-break: break-word; }
.cv-ai-rec .v.gr { color: var(--cv-green-bright); }
.cv-ai-rec .v.rd { color: var(--cv-red); }
.cv-ai-rec .v.am { color: var(--cv-amber-bright); }
.cv-ai-rec .v.vt { color: var(--cv-primary-bright); }

/* ─── NEWS ─── */
.cv-news-tabs {
  display: flex; gap: 6px; margin-bottom: 14px; padding: 5px;
  background: rgba(8,9,30,0.4); border-radius: 12px; border: 1px solid var(--cv-glass); width: fit-content;
}
.cv-news-tab {
  padding: 7px 14px; border-radius: 8px; cursor: pointer;
  font-size: 0.6rem; font-weight: 700; letter-spacing: 0.06em;
  background: transparent; border: none; color: var(--cv-t4);
  transition: all 0.2s var(--cv-smooth); font-family: inherit; text-transform: uppercase;
}
.cv-news-tab:hover { color: var(--cv-t2); }
.cv-news-tab.active { background: rgba(167,139,250,0.16); color: var(--cv-primary-bright); }

.cv-news { display: flex; flex-direction: column; gap: 10px; max-height: 560px; overflow-y: auto; padding-right: 6px; }
.cv-news::-webkit-scrollbar { width: 6px; }
.cv-news::-webkit-scrollbar-thumb { background: rgba(34,211,238,0.3); border-radius: 3px; }

.cv-n {
  display: flex; gap: 12px; padding: 12px 14px;
  background: rgba(8,9,30,0.4); border: 1px solid var(--cv-glass);
  border-radius: 12px; transition: all 0.2s var(--cv-smooth);
  position: relative; overflow: hidden;
}
.cv-n::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--cv-blue); }
.cv-n.bull::before { background: var(--cv-green-bright); }
.cv-n.bear::before { background: var(--cv-red); }
.cv-n.neutral::before { background: var(--cv-blue); }
.cv-n.radar::before { background: var(--cv-primary-bright); }
.cv-n:hover { transform: translateX(2px); border-color: rgba(34,211,238,0.18); }
.cv-n-src {
  flex-shrink: 0; width: 34px; height: 34px; border-radius: 9px;
  background: rgba(34,211,238,0.12); color: var(--cv-accent-bright);
  display: flex; align-items: center; justify-content: center; font-size: 0.62rem; font-weight: 800; letter-spacing: -0.02em;
}
.cv-n.radar .cv-n-src { background: rgba(167,139,250,0.16); color: var(--cv-primary-bright); }
.cv-n-body { flex: 1; min-width: 0; }
.cv-n-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 5px; flex-wrap: wrap; }
.cv-n-user { font-size: 0.62rem; font-weight: 700; color: var(--cv-t1); letter-spacing: -0.01em; }
.cv-n-tag { font-size: 0.5rem; padding: 2px 7px; border-radius: 5px; background: rgba(255,255,255,0.06); color: var(--cv-t3); font-weight: 600; letter-spacing: 0.04em; }
.cv-n-tag.radar { background: rgba(167,139,250,0.16); color: var(--cv-primary-bright); }
.cv-n-time { font-size: 0.5rem; color: var(--cv-t5); font-family: "SF Mono", monospace; margin-left: auto; }
.cv-n-text { font-size: 0.7rem; line-height: 1.55; color: var(--cv-t2); }
.cv-n-rel {
  display: inline-flex; align-items: center; gap: 5px; margin-top: 7px;
  font-size: 0.52rem; color: var(--cv-amber-bright); font-weight: 600; letter-spacing: 0.04em;
}
.cv-n-rel::before { content: "↳"; font-size: 0.6rem; }

/* ─── EMPTY STATE (sem mock!) ─── */
.cv-empty {
  text-align: center; padding: 50px 24px; color: var(--cv-t4);
}
.cv-empty .ic { font-size: 2.4rem; margin-bottom: 12px; opacity: 0.4; }
.cv-empty .t { font-size: 0.86rem; font-weight: 700; color: var(--cv-t2); margin-bottom: 6px; letter-spacing: -0.01em; }
.cv-empty .s { font-size: 0.7rem; color: var(--cv-t4); line-height: 1.5; max-width: 400px; margin: 0 auto; }
.cv-empty .btn {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 14px; padding: 8px 16px; border-radius: 9px;
  background: rgba(167,139,250,0.14); color: var(--cv-primary-bright);
  border: 1px solid rgba(167,139,250,0.3); font-size: 0.66rem; font-weight: 700;
  cursor: pointer; letter-spacing: 0.04em; font-family: inherit;
  transition: all 0.2s;
}
.cv-empty .btn:hover { background: rgba(167,139,250,0.22); }

@media (max-width: 1100px) {
  .cv-main { grid-template-columns: 1fr; }
  .cv-week { grid-template-columns: repeat(4, 1fr); }
  .cv-kpi-row { grid-template-columns: repeat(2, 1fr); }
  .cv-ai-recs { grid-template-columns: repeat(2, 1fr); }
  .cv-cd-blk { width: 70px; height: 70px; }
  .cv-cd-blk .num { font-size: 1.8rem; }
  .cv-tl::before { left: 70px; }
}
