/* UniverFX economic calendar — full page (dark / light) */
.univerfx-ecal {
	--ecal-bg: transparent;
	--ecal-surface: transparent;
	--ecal-border: rgba(255, 255, 255, 0.08);
	--ecal-text: #e8edf7;
	--ecal-muted: #8b98b3;
	--ecal-accent: #3d7dff;
	--ecal-high: transparent;
	--ecal-med: transparent;
	--ecal-low: transparent;
	--ecal-thead-bg: transparent;
	--ecal-thead-fg: #c8d2ea;
	--ecal-row-hover: rgba(255, 255, 255, 0.07);
	--ecal-row-line: rgba(255, 255, 255, 0.06);
	--ecal-control-bg: transparent;
	--ecal-day-row-start: transparent;
	--ecal-day-row-end: transparent;
	--ecal-chip-active-bg: transparent;
	--ecal-chip-active-border: rgba(61, 125, 255, 0.55);
	--ecal-today: #fbbf24;
	--ecal-stripe: rgba(255, 255, 255, 0.04);
	--ecal-stripe-alt: rgba(255, 255, 255, 0.01);
	color-scheme: dark;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	color: var(--ecal-text);
	background: transparent;
	padding-bottom: 1rem;
	border-radius: 0;
}

.univerfx-ecal__page-title {
	color: var(--ecal-text);
}

.univerfx-ecal__status {
	color: var(--ecal-muted);
}

/* Bootstrap 5.3 site theme */
html[data-bs-theme="light"] .univerfx-ecal {
	--ecal-bg: transparent;
	--ecal-surface: transparent;
	--ecal-border: rgba(15, 23, 42, 0.1);
	--ecal-text: #0f172a;
	--ecal-muted: #64748b;
	--ecal-accent: #2563eb;
	--ecal-high: transparent;
	--ecal-med: transparent;
	--ecal-low: transparent;
	--ecal-thead-bg: transparent;
	--ecal-thead-fg: #334155;
	--ecal-row-hover: rgba(15, 23, 42, 0.06);
	--ecal-row-line: rgba(15, 23, 42, 0.07);
	--ecal-control-bg: transparent;
	--ecal-day-row-start: transparent;
	--ecal-day-row-end: transparent;
	--ecal-chip-active-bg: transparent;
	--ecal-chip-active-border: rgba(37, 99, 235, 0.45);
	--ecal-today: #b45309;
	--ecal-stripe: rgba(15, 23, 42, 0.04);
	--ecal-stripe-alt: rgba(15, 23, 42, 0.07);
	color-scheme: light;
	background: transparent;
}

html[data-bs-theme="dark"] .univerfx-ecal {
	color-scheme: dark;
}

/* No data-bs-theme on html: follow OS preference */
@media (prefers-color-scheme: light) {
	html:not([data-bs-theme]) .univerfx-ecal {
		--ecal-bg: transparent;
		--ecal-surface: transparent;
		--ecal-border: rgba(15, 23, 42, 0.1);
		--ecal-text: #0f172a;
		--ecal-muted: #64748b;
		--ecal-accent: #2563eb;
		--ecal-high: transparent;
		--ecal-med: transparent;
		--ecal-low: transparent;
		--ecal-thead-bg: transparent;
		--ecal-thead-fg: #334155;
		--ecal-row-hover: rgba(15, 23, 42, 0.06);
		--ecal-row-line: rgba(15, 23, 42, 0.07);
		--ecal-control-bg: transparent;
		--ecal-day-row-start: transparent;
		--ecal-day-row-end: transparent;
		--ecal-chip-active-bg: transparent;
		--ecal-chip-active-border: rgba(37, 99, 235, 0.45);
		--ecal-today: #b45309;
		--ecal-stripe: rgba(15, 23, 42, 0.04);
		--ecal-stripe-alt: rgba(15, 23, 42, 0.07);
		color-scheme: light;
		background: transparent;
	}
}

@media (prefers-color-scheme: dark) {
	html:not([data-bs-theme]) .univerfx-ecal {
		color-scheme: dark;
	}
}

.univerfx-ecal__toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.25rem;
	background: var(--ecal-surface);
	border: 1px solid var(--ecal-border);
	border-radius: 14px;
	margin-bottom: 1rem;
}

.univerfx-ecal__toolbar-left,
.univerfx-ecal__toolbar-right {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
}

.univerfx-ecal__lang-select {
	min-width: 7rem;
	max-width: 9.5rem;
	font-size: 0.8rem;
	padding-top: 0.2rem;
	padding-bottom: 0.2rem;
	background-color: transparent;
	color: var(--ecal-text);
	border-color: var(--ecal-border);
}

.univerfx-ecal__lang-label {
	color: var(--ecal-muted);
}

.univerfx-ecal__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	font-size: 0.8rem;
	color: var(--ecal-muted);
}

.univerfx-ecal__legend span {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.univerfx-ecal__clock {
	font-variant-numeric: tabular-nums;
	font-size: 0.85rem;
	color: var(--ecal-muted);
	direction: ltr;
}

.univerfx-ecal__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.univerfx-ecal__chip {
	border: 1px solid var(--ecal-border);
	background: transparent;
	color: var(--ecal-text);
	font-size: 0.78rem;
	padding: 0.35rem 0.65rem;
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s;
}

.univerfx-ecal__chip.is-active {
	background: var(--ecal-chip-active-bg);
	border-color: var(--ecal-chip-active-border);
}

.univerfx-ecal__table-wrap {
	border: 1px solid var(--ecal-border);
	border-radius: 14px;
	overflow: auto;
	overflow-x: auto;
	overflow-y: auto;
	max-height: min(78vh, 900px);
	background: var(--ecal-surface);
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	touch-action: pan-x pan-y;
	scrollbar-gutter: stable;
}

.univerfx-ecal table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.86rem;
	min-width: 720px;
}

.univerfx-ecal thead th {
	position: sticky;
	top: 0;
	z-index: 2;
	background: var(--ecal-thead-bg);
	border-bottom: 1px solid var(--ecal-border);
	padding: 0.65rem 0.5rem;
	text-align: center;
	font-weight: 600;
	color: var(--ecal-thead-fg);
	white-space: nowrap;
}

.univerfx-ecal tbody td {
	border-bottom: 1px solid var(--ecal-row-line);
	padding: 0.55rem 0.45rem;
	vertical-align: middle;
}

.univerfx-ecal tbody tr.univerfx-ecal__event-row td {
	background: var(--ecal-stripe);
}

.univerfx-ecal tbody tr.univerfx-ecal__event-row--alt td {
	background: var(--ecal-stripe-alt);
}

.univerfx-ecal tbody tr.univerfx-ecal__event-row:hover td {
	background: var(--ecal-row-hover);
}

.univerfx-ecal__day-row td {
	background: transparent;
	font-weight: 600;
	font-size: 0.82rem;
	padding: 0.55rem 0.75rem;
	border-bottom: 1px solid var(--ecal-border);
}

.univerfx-ecal__day-row .univerfx-ecal__today {
	color: var(--ecal-today);
	margin-inline-end: 0.35rem;
}

.univerfx-ecal__time {
	font-variant-numeric: tabular-nums;
	direction: ltr;
	text-align: center;
	white-space: nowrap;
}

.univerfx-ecal__title {
	text-align: start;
	line-height: 1.45;
}

.univerfx-ecal__title .flag {
	margin-inline-end: 0.25rem;
}

.univerfx-ecal__title-en {
	display: inline;
}

.univerfx-ecal__title-fa {
	display: block;
	margin-top: 0.2rem;
	font-size: 0.88em;
	line-height: 1.35;
}

.univerfx-ecal__fa-chrome {
	opacity: 0.9;
}

.univerfx-ecal__chip .univerfx-ecal__chip-fa {
	font-size: 0.72rem;
	line-height: 1.2;
}

.univerfx-ecal thead th {
	white-space: normal;
}

.univerfx-ecal__muted {
	color: var(--ecal-muted);
	text-align: center;
}

.univerfx-ecal__impact-high {
	box-shadow: inset 3px 0 0 #ef4444;
	background: var(--ecal-high);
}

.univerfx-ecal__impact-medium {
	box-shadow: inset 3px 0 0 #f59e0b;
	background: var(--ecal-med);
}

.univerfx-ecal__impact-low {
	box-shadow: inset 3px 0 0 #94a3b8;
	background: var(--ecal-low);
}

.univerfx-ecal .form-check-input {
	border-color: var(--ecal-border);
	background-color: var(--ecal-control-bg);
}

.univerfx-ecal .form-check-input:checked {
	background-color: var(--ecal-accent);
	border-color: var(--ecal-accent);
}

.univerfx-ecal__empty {
	color: var(--ecal-muted);
	text-align: center;
	padding: 1.5rem 0.5rem;
}

@media (max-width: 768px) {
	.univerfx-ecal table {
		font-size: 0.8rem;
		min-width: 640px;
	}
}

/* Compact widget (home / sidebar) — same tokens, tighter chrome */
.univerfx-ecal--widget.univerfx-ecal {
	padding-bottom: 0;
}

.univerfx-ecal--widget .univerfx-ecal__widget-title {
	margin-bottom: 0.65rem;
	padding-bottom: 0.4rem;
	border-bottom: 1px solid var(--ecal-border);
}

.univerfx-ecal--widget .univerfx-ecal__table-wrap {
	max-height: min(52vh, 520px);
}

.univerfx-ecal--widget .univerfx-ecal__table-wrap .univerfx-ecal__table {
	min-width: 620px;
	font-size: 0.82rem;
}

.univerfx-ecal--widget .univerfx-ecal__widget-more-row td {
	background: transparent !important;
}

.univerfx-ecal--widget .univerfx-ecal__widget-more {
	color: var(--ecal-accent);
	border-top: 1px solid var(--ecal-border);
	padding: 0.55rem 0.75rem;
}

.univerfx-ecal--widget .univerfx-ecal__widget-more:hover,
.univerfx-ecal--widget .univerfx-ecal__widget-more:focus {
	background: var(--ecal-stripe-alt);
	color: var(--ecal-accent);
}

.univerfx-ecal-home-col {
	min-width: 0;
}
