/* Economic Calendar */
.ec-page { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; min-width: 0; }
.ec-muted { margin: 6px 0 0; padding: 18px 4px; color: var(--ls-tertiary); font-size: 13px; }

.ec-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; padding: 12px 14px; border: 1px solid var(--ls-rule); border-radius: var(--ls-radius); background: var(--ls-card); }
.ec-control { display: grid; gap: 5px; }
.ec-control > span, .ec-field { color: var(--ls-tertiary); font-size: 11px; }
.ec-field { display: grid; gap: 5px; }
.ec-search { flex: 1 1 220px; min-width: 180px; max-width: 340px; }
.ec-field select, .ec-field input { padding: 8px 10px; border: 1px solid var(--ls-strong-rule); border-radius: 6px; background: var(--ls-input); color: var(--ls-ink); font: inherit; font-size: 12.5px; }
.ec-field select:focus-visible, .ec-field input:focus-visible, .ec-seg button:focus-visible { outline: 2px solid var(--ls-accent); outline-offset: 1px; }
.ec-seg { display: inline-flex; padding: 3px; border: 1px solid var(--ls-rule); border-radius: 8px; background: var(--ls-stone); }
.ec-seg button { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 0; border-radius: 6px; background: transparent; color: var(--ls-secondary); font: inherit; font-size: 12px; cursor: pointer; }
.ec-seg button[aria-pressed="true"] { background: var(--ls-card); color: var(--ls-ink); box-shadow: 0 0 0 1px var(--ls-strong-rule); }

.ec-warnings p { margin: 0 0 4px; color: var(--ls-warning); font-size: 12px; }
.ec-table-wrap { min-width: 0; overflow-x: auto; border: 1px solid var(--ls-rule); border-radius: 12px; background: var(--ls-card); }
.ec-table-wrap > .ec-muted { padding: 18px 16px; }
.ec-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ec-table thead th { position: sticky; top: 0; padding: 10px 12px; border-bottom: 1px solid var(--ls-strong-rule); background: var(--ls-card); color: var(--ls-tertiary); font-size: 11px; font-weight: 600; text-align: left; white-space: nowrap; }
.ec-table .ec-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ec-day-head th { padding: 14px 12px 8px; background: var(--ls-stone); border-bottom: 1px solid var(--ls-rule); color: var(--ls-ink); font-size: 12.5px; font-weight: 700; text-align: left; }
.ec-day.today .ec-day-head th { box-shadow: inset 3px 0 0 var(--ls-accent); }
.ec-today { margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: var(--ls-accent); color: #fff; font-size: 10.5px; font-weight: 600; }
.ec-row td { padding: 10px 12px; border-bottom: 1px solid var(--ls-rule); vertical-align: top; }
.ec-row:last-child td { border-bottom: 0; }
.ec-time { color: var(--ls-secondary); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ec-approx { color: var(--ls-tertiary); cursor: help; }
.ec-name strong { display: block; font-weight: 600; line-height: 1.35; }
.ec-name small { display: block; margin-top: 2px; color: var(--ls-tertiary); font-size: 11.5px; }
.ec-actual { font-weight: 700; color: var(--ls-ink); }
.ec-awaiting { color: var(--ls-warning); font-size: 12px; }
.ec-empty { color: var(--ls-faint); }
.ec-row.upcoming .ec-time, .ec-row.upcoming .ec-name strong { color: var(--ls-ink); }

.ec-level { display: inline-flex; align-items: center; gap: 6px; color: var(--ls-secondary); font-size: 12px; white-space: nowrap; }
.ec-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ls-faint); }
.ec-dot.high { background: var(--ls-decline); }
.ec-dot.medium { background: var(--ls-warning); }
.ec-dot.low { background: var(--ls-faint); }

.ec-method { padding: 14px 16px; border: 1px solid var(--ls-rule); border-radius: 12px; background: var(--ls-card); }
.ec-method h2 { margin-top: 0; }
.ec-method ul { display: grid; gap: 6px; margin: 8px 0 0; padding-left: 18px; color: var(--ls-secondary); font-size: 12.5px; line-height: 1.6; }

@media (max-width: 720px) {
  .ec-table thead { display: none; }
  .ec-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 10px; padding: 10px 12px; border-bottom: 1px solid var(--ls-rule); }
  .ec-row td { padding: 0; border: 0; }
  .ec-time { grid-column: 1 / 3; }
  .ec-row td:nth-child(2) { grid-column: 3; justify-self: end; }
  .ec-name { grid-column: 1 / -1; }
  .ec-row td.ec-num { text-align: left; }
  .ec-row td.ec-num::before { content: attr(data-label); display: block; color: var(--ls-tertiary); font-size: 10.5px; font-weight: 400; }
}
