/* ═══════════════════════════════════════════════════════════
   ECONOMIC CALENDAR & RELEASE CARDS — v2.1.0
   Single combined stylesheet for both features.
═══════════════════════════════════════════════════════════ */

/* ── Shared design tokens ── */
.eco-cal-wrap,
.erc-wrap {
  --ink:        #FFFFFF;
  --ink-2:      #FFFFFF;
  --ink-3:      #FAFAFA;
  --ink-4:      #F0F0F0;
  --line:       #E2E2E2;
  --line-soft:  #EBEBEB;
  --silver:     #6B7280;
  --white:      #1A1A2E;
  --cream:      #374151;
  --green:      #1a9e52;
  --green-dim:  rgba(46,160,100,.08);
  --red:        #cc3333;
  --red-dim:    rgba(200,60,60,.07);
  /* Brand color replaces gold/amber */
  --amber:      #4B52FF;
  --amber-dim:  rgba(75,82,255,.10);
  --blue:       #2563eb;
  --blue-dim:   rgba(37,99,235,.08);
  --r:          10px;
  --r-sm:       6px;

  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--cream);
}

/* ═══════════════════════════════════════════════════════════
   A. CALENDAR GRID
═══════════════════════════════════════════════════════════ */

.eco-cal-wrap {
  /* Default brand accent (overridden per-type via inline style) */
  --eco-accent:     #4B52FF;
  --eco-accent-dim: rgba(75,82,255,.12);

  background:    var(--ink-3);
  border:        1px solid var(--line);
  border-top:    3px solid var(--eco-accent);
  border-radius: var(--r);
  overflow:      hidden;
  margin:        32px 0;
}

/* Header */
.eco-cal-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  flex-wrap: wrap; gap: 12px;
  padding: 20px 24px 16px;
  background: var(--ink-4);
  border-bottom: 1px solid var(--line);
}
.eco-cal-header-left { display:flex; align-items:flex-start; gap:14px; }
.eco-cal-flag        { font-size:28px; line-height:1; margin-top:2px; flex-shrink:0; }
.eco-cal-title       { font-size:18px; font-weight:700; color:var(--white); line-height:1.25; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.eco-cal-year-tag    { font-size:11px; font-weight:600; letter-spacing:1px; color:var(--eco-accent); background:var(--eco-accent-dim); border:1px solid rgba(75,82,255,.25); border-radius:20px; padding:2px 9px; }
.eco-cal-currency    { display:flex; align-items:center; gap:8px; margin-top:5px; flex-wrap:wrap; }
.eco-currency-pill   { font-size:10px; font-weight:700; letter-spacing:1.5px; color:var(--eco-accent); background:var(--eco-accent-dim); border:1px solid rgba(75,82,255,.2); border-radius:4px; padding:2px 8px; text-transform:uppercase; }
.eco-cal-subdesc     { font-size:12px; color:var(--silver); line-height:1.5; max-width:500px; }
.eco-cal-header-right{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; flex-shrink:0; }

.eco-badge           { display:inline-flex; align-items:center; gap:5px; font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:3px 10px; border-radius:20px; }
.eco-badge-impact    { background:var(--red-dim); color:var(--red); border:1px solid rgba(232,85,85,.3); }
.eco-total-count     { font-size:12px; color:var(--silver); font-weight:500; }

/* Month grid */
.eco-month-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--line); border-top:1px solid var(--line); }
@media(max-width:780px){ .eco-month-grid { grid-template-columns:repeat(4,1fr); } }
@media(max-width:520px){ .eco-month-grid { grid-template-columns:repeat(3,1fr); } }
@media(max-width:380px){ .eco-month-grid { grid-template-columns:repeat(2,1fr); } }

/* Month cell */
.eco-month-cell { background:var(--ink-3); padding:14px 12px 12px; position:relative; transition:background .15s; min-height:90px; }
.eco-month-cell:hover { background:var(--ink-4); }

.eco-month-cell.eco-month-past    { background:rgba(0,0,0,.04); }
.eco-month-cell.eco-month-past .eco-month-short { color:var(--silver); opacity:.6; }
.eco-month-cell.eco-month-past .eco-day-num     { color:var(--silver); opacity:.5; }
.eco-month-cell.eco-month-past .eco-day-name    { opacity:.4; }

.eco-month-cell.eco-month-current { background:var(--eco-accent-dim); box-shadow:inset 0 0 0 1px rgba(75,82,255,.2); }
.eco-month-cell.eco-month-current .eco-month-short { color:var(--eco-accent); }

/* Month label */
.eco-month-label  { display:flex; align-items:center; gap:6px; margin-bottom:10px; }
.eco-month-short  { font-size:10px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--white); }

.eco-now-badge {
  font-size:10px; font-weight:700; letter-spacing:1px;
  color:var(--eco-accent); background:var(--eco-accent-dim);
  border:1px solid rgba(75,82,255,.35); border-radius:20px; padding:1px 7px;
  text-transform:uppercase; animation:eco-pulse 2.5s ease-in-out infinite;
}
@keyframes eco-pulse { 0%,100%{opacity:1} 50%{opacity:.5} }

/* Date list */
.eco-date-list  { display:flex; flex-direction:column; gap:6px; }
.eco-date-item  { display:flex; align-items:center; gap:5px; flex-wrap:wrap; cursor:default; }
.eco-day-num    { font-size:22px; font-weight:700; color:var(--white); line-height:1; min-width:28px; }
.eco-day-name   { font-size:9px; font-weight:600; letter-spacing:.8px; text-transform:uppercase; color:var(--silver); margin-top:4px; }

.eco-date-item.eco-date-today .eco-day-num { color:var(--green); }
.eco-today-dot  { width:7px; height:7px; background:var(--green); border-radius:50%; flex-shrink:0; box-shadow:0 0 6px rgba(26,158,82,.5); animation:eco-glow 1.8s ease-in-out infinite; }
@keyframes eco-glow { 0%,100%{box-shadow:0 0 6px rgba(26,158,82,.5)} 50%{box-shadow:0 0 12px rgba(26,158,82,.8)} }

.eco-date-item.eco-date-passed .eco-day-num { color:var(--silver); opacity:.45; text-decoration:line-through; text-decoration-color:rgba(107,114,128,.3); }

/* Date note uses brand color */
.eco-date-note  { font-size:9px; font-weight:600; letter-spacing:.5px; color:var(--amber); background:var(--amber-dim); border:1px solid rgba(75,82,255,.2); border-radius:4px; padding:1px 5px; text-transform:uppercase; display:block; width:100%; margin-top:1px; }
.eco-no-date    { font-size:18px; color:var(--line); font-weight:300; }
.eco-current-bar{ position:absolute; bottom:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--eco-accent),transparent); }

/* Upcoming strip */
.eco-upcoming-strip  { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:12px 20px; background:var(--ink-4); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.eco-upcoming-label  { font-size:10px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--silver); margin-right:6px; flex-shrink:0; }
.eco-upcoming-event  { display:inline-flex; align-items:center; gap:6px; background:var(--ink-3); border:1px solid var(--line); border-radius:20px; padding:4px 12px; font-size:12px; }
.eco-upcoming-date   { font-weight:700; color:var(--white); }
.eco-upcoming-days   { color:var(--eco-accent); font-weight:600; font-size:11px; background:var(--eco-accent-dim); border-radius:10px; padding:1px 7px; }
.eco-upcoming-note   { font-size:10px; color:var(--silver); font-style:italic; }

/* Legend */
.eco-legend      { display:flex; align-items:center; flex-wrap:wrap; gap:16px; padding:12px 20px; border-top:1px solid var(--line-soft); }
.eco-legend-item { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--silver); }
.eco-legend-dot  { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.eco-l-current   { background:var(--eco-accent); }
.eco-l-today     { background:var(--green); box-shadow:0 0 5px rgba(26,158,82,.45); }
.eco-l-past      { background:var(--silver); opacity:.4; }
.eco-l-future    { background:var(--white); }

/* Shared empty state & footer */
.eco-empty       { text-align:center; padding:48px 24px; color:var(--silver); }
.eco-empty-icon  { font-size:36px; display:block; margin-bottom:12px; }
.eco-empty p     { font-size:14px; margin-bottom:6px; }
.eco-empty-sub   { font-size:12px !important; opacity:.6; }
/* Brand color for empty state strong text */
.eco-empty strong,.erc-empty strong { color:var(--amber); }
.eco-footer-note { font-size:11px; color:var(--silver); opacity:.65; padding:10px 20px; border-top:1px solid var(--line-soft); line-height:1.6; }

/* ═══════════════════════════════════════════════════════════
   B. RELEASE CARD
═══════════════════════════════════════════════════════════ */

.erc-wrap {
  /* Default release card accent — overridden per-type via inline style */
  --erc-accent:     #4B52FF;
  --erc-accent-dim: rgba(75,82,255,.10);
  --erc-rgb:        75,82,255;

  background:    var(--ink-3);
  border:        1px solid var(--line);
  border-top:    3px solid var(--erc-accent);
  border-radius: var(--r);
  overflow:      hidden;
  margin:        28px 0;
}

/* Header */
.erc-header       { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:16px 20px 14px; background:var(--ink-4); border-bottom:1px solid var(--line); }
.erc-header-left  { display:flex; align-items:center; gap:12px; }
.erc-flag         { font-size:22px; line-height:1; flex-shrink:0; }
.erc-title        { font-size:15px; font-weight:700; color:var(--white); line-height:1.25; }
.erc-subtitle     { font-size:11px; color:var(--silver); margin-top:2px; letter-spacing:.3px; }

.erc-badge        { font-size:10px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; padding:3px 10px; border-radius:20px; white-space:nowrap; display:inline-flex; align-items:center; gap:4px; }
.erc-badge-red    { background:var(--red-dim);   color:var(--red);   border:1px solid rgba(232,85,85,.3); }
.erc-badge-amber  { background:var(--amber-dim); color:var(--amber); border:1px solid rgba(75,82,255,.3); }
.erc-badge-blue   { background:var(--blue-dim);  color:var(--blue);  border:1px solid rgba(74,144,217,.3); }
.erc-badge-silver { background:var(--ink-4);     color:var(--silver);border:1px solid var(--line); }

/* Release date row */
.erc-release-row  { display:flex; align-items:center; gap:8px; padding:9px 20px; background:rgba(var(--erc-rgb),.06); border-bottom:1px solid var(--line); }
.erc-release-dot  { width:7px; height:7px; border-radius:50%; background:var(--green); flex-shrink:0; box-shadow:0 0 6px rgba(26,158,82,.45); animation:erc-glow 2s ease-in-out infinite; }
@keyframes erc-glow { 0%,100%{box-shadow:0 0 5px rgba(26,158,82,.45)} 50%{box-shadow:0 0 10px rgba(26,158,82,.75)} }
.erc-release-label{ font-size:9px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--silver); }
.erc-release-date { font-size:13px; font-weight:700; color:var(--white); margin-left:auto; }

/* Metrics grid */
.erc-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); }
.erc-metric  { background:var(--ink-3); padding:18px 16px 16px; display:flex; flex-direction:column; gap:5px; position:relative; transition:background .15s; }
.erc-metric:hover { background:var(--ink-4); }

.erc-metric-label { font-size:9px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--silver); }
.erc-metric-value { font-size:22px; font-weight:700; line-height:1; color:var(--white); }
.erc-metric-value.erc-pos { color:var(--green); }
.erc-metric-value.erc-neg { color:var(--red); }
.erc-metric-value.erc-neu { color:var(--amber); }
.erc-metric-sub   { font-size:10px; color:var(--silver); line-height:1.4; }

.erc-metric-bar   { position:absolute; bottom:0; left:0; right:0; height:2px; }
.erc-bar-actual   { background:linear-gradient(90deg,var(--green),transparent); }
.erc-bar-forecast { background:linear-gradient(90deg,var(--erc-accent),transparent); }
.erc-bar-previous { background:linear-gradient(90deg,var(--red),transparent); }

/* Beat / Miss strip */
.erc-verdict-row  { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:10px 20px; background:var(--ink-4); border-top:1px solid var(--line); }
.erc-verdict-pill { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; letter-spacing:.5px; padding:3px 10px; border-radius:20px; }
.erc-verdict-beat   { background:var(--green-dim);  color:var(--green);  border:1px solid rgba(46,204,138,.3); }
.erc-verdict-miss   { background:var(--red-dim);    color:var(--red);    border:1px solid rgba(232,85,85,.3); }
.erc-verdict-inline { background:var(--amber-dim);  color:var(--amber);  border:1px solid rgba(75,82,255,.3); }
.erc-verdict-arrow  { font-size:9px; }
.erc-verdict-note   { font-size:11px; color:var(--silver); }

/* Note row */
.erc-note-row  { display:flex; align-items:flex-start; gap:8px; padding:10px 20px; background:rgba(74,144,217,.05); border-top:1px solid var(--line); font-size:12px; color:var(--cream); line-height:1.6; }
.erc-note-icon { color:var(--blue); flex-shrink:0; margin-top:1px; }
.erc-note-text { flex:1; }

/* Empty state */
.erc-empty      { text-align:center; padding:40px 24px; color:var(--silver); }
.erc-empty-icon { font-size:32px; display:block; margin-bottom:10px; }
.erc-empty p    { font-size:13px; margin-bottom:6px; }
.erc-empty-sub  { font-size:11px !important; opacity:.6; }

/* Footer */
.erc-footer { font-size:10px; color:var(--silver); opacity:.6; padding:8px 20px; border-top:1px solid var(--line-soft); line-height:1.6; }

/* Responsive */
@media(max-width:480px) { .erc-metric-value { font-size:18px; } }
@media(max-width:340px) { .erc-metrics { grid-template-columns:1fr; } }

/* ═══════════════════════════════════════════════════════════
   SECTION J — COUNTDOWN CARDS  (light theme)
   Shortcode: [eco_countdown]
═══════════════════════════════════════════════════════════ */

.eco-cd-wrap {
  --ink:        #FFFFFF;
  --ink-2:      #FFFFFF;
  --ink-3:      #FAFAFA;
  --ink-4:      #F0F0F0;
  --line:       #E2E2E2;
  --line-soft:  #EBEBEB;
  --silver:     #6B7280;
  --white:      #1A1A2E;
  --cream:      #374151;
  --green:      #1a9e52;
  --red:        #cc3333;
  --red-dim:    rgba(200,60,60,.07);

  display: flex;
  gap: 16px;
  margin: 28px 0;
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.eco-cd-inline { flex-direction: row; flex-wrap: wrap; }
.eco-cd-stack  { flex-direction: column; }

@media (max-width: 600px) {
  .eco-cd-inline { flex-direction: column; }
}

/* Card shell */
.eco-cd-card {
  /* Default accent — overridden per-type via inline style */
  --eco-cd-accent:     #4B52FF;
  --eco-cd-accent-dim: rgba(75,82,255,.12);

  flex: 1;
  min-width: 240px;
  background:    var(--ink-3, #FAFAFA);
  border:        1px solid var(--line, #E2E2E2);
  border-top:    3px solid var(--eco-cd-accent);
  border-radius: 10px;
  overflow:      hidden;
  color:         var(--cream, #374151);
}

/* Header */
.eco-cd-header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  flex-wrap:       wrap;
  gap:             10px;
  padding:         16px 20px 14px;
  background:      var(--ink-4, #F0F0F0);
  border-bottom:   1px solid var(--line, #E2E2E2);
}
.eco-cd-header-left { display: flex; align-items: center; gap: 12px; }
.eco-cd-flag        { font-size: 22px; line-height: 1; flex-shrink: 0; }
.eco-cd-title       { font-size: 15px; font-weight: 700; color: var(--white, #1A1A2E); line-height: 1.25; }
.eco-cd-subtitle    { font-size: 11px; color: var(--silver, #6B7280); margin-top: 2px; letter-spacing: .3px; }

/* High-impact badge */
.eco-cd-badge-impact {
  font-size: 10px; font-weight: 700; letter-spacing: .8px;
  text-transform: uppercase; padding: 3px 10px;
  border-radius: 20px; white-space: nowrap;
  display: inline-flex; align-items: center; gap: 4px;
  background: var(--red-dim, rgba(232,85,85,.10));
  color: var(--red, #cc3333);
  border: 1px solid rgba(232,85,85,.3);
}

/* Date row */
.eco-cd-date-row {
  display:       flex;
  align-items:   center;
  gap:           8px;
  padding:       9px 20px;
  background:    var(--eco-cd-accent-dim);
  border-bottom: 1px solid var(--line, #E2E2E2);
}
.eco-cd-dot-live {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--green, #1a9e52);
  flex-shrink: 0;
  box-shadow: 0 0 6px rgba(26,158,82,.45);
  animation: eco-cd-glow 2s ease-in-out infinite;
}
@keyframes eco-cd-glow {
  0%,100% { box-shadow: 0 0 6px rgba(26,158,82,.45); }
  50%     { box-shadow: 0 0 12px rgba(26,158,82,.75); }
}
.eco-cd-next-label {
  font-size: 9px; font-weight: 700;
  letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--silver, #6B7280);
}
.eco-cd-next-date {
  font-size: 13px; font-weight: 700;
  color: var(--white, #1A1A2E);
  margin-left: auto;
}

/* Countdown unit grid */
.eco-cd-units {
  display:    grid;
  grid-template-columns: repeat(4, 1fr);
  gap:        1px;
  background: var(--line, #E2E2E2);
}

.eco-cd-unit {
  background:     var(--ink-3, #FAFAFA);
  padding:        18px 8px 14px;
  display:        flex;
  flex-direction: column;
  align-items:    center;
  gap:            5px;
  position:       relative;
  transition:     background .15s;
}
.eco-cd-unit:hover { background: var(--ink-4, #F0F0F0); }

.eco-cd-unit::after {
  content:  '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--eco-cd-accent), transparent);
  opacity: 0;
  transition: opacity .15s;
}
.eco-cd-unit-accent::after { opacity: 1; }

.eco-cd-num {
  font-size:            28px;
  font-weight:          700;
  line-height:          1;
  color:                var(--white, #1A1A2E);
  font-variant-numeric: tabular-nums;
  letter-spacing:       -0.5px;
}
.eco-cd-unit-accent .eco-cd-num { color: var(--eco-cd-accent); }

.eco-cd-unit-lbl {
  font-size:      9px;
  font-weight:    700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color:          var(--silver, #6B7280);
}

/* Footer */
.eco-cd-footer {
  font-size: 10px;
  color: var(--silver, #6B7280);
  opacity: .7;
  padding: 8px 20px;
  border-top: 1px solid var(--line-soft, #EBEBEB);
  line-height: 1.6;
}

@media (max-width: 380px) {
  .eco-cd-num { font-size: 20px; }
}
