/* Macrolyx — Economic Calendar widget. */

.mlx-cal { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.mlx-cal-body { flex: 1; min-height: 0; display: flex; flex-direction: column; }

.mlx-cal-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	padding: 0 0 12px;
}
.mlx-cal-modes { display: flex; gap: 6px; }
.mlx-cal-mode,
.mlx-cal-notify {
	background: rgba(255, 255, 255, .05);
	border: 1px solid var(--mlx-border);
	color: var(--mlx-muted);
	border-radius: 8px;
	padding: 5px 14px;
	font-family: inherit;
	font-size: 12.5px;
	cursor: pointer;
	transition: color .15s, border-color .15s;
}
.mlx-cal-mode.is-active {
	color: var(--mlx-accent);
	border-color: var(--mlx-accent);
}
.mlx-cal-notify.is-on { color: var(--mlx-accent); border-color: var(--mlx-accent); }

.mlx-cal-loading,
.mlx-cal-empty,
.mlx-cal-error {
	color: var(--mlx-muted);
	text-align: center;
	padding: 40px 0;
	font-size: 13px;
}

/* Impact dot (colors configurable in Design settings): 0 = information,
   1 = low, 2 = medium, 3 = high — with a soft glow in its own color. */
.mlx-dot {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	flex: 0 0 5px;
	background: var(--mlx-dot-0, #9ca3af);
	box-shadow: 0 0 4px 1px var(--mlx-dot-0, #9ca3af);
	animation: mlx-glow 2.2s ease-in-out infinite;
}
.mlx-dot.i1 {
	background: var(--mlx-dot-1, #9ca3af);
	box-shadow: 0 0 4px 1px var(--mlx-dot-1, #9ca3af);
}
.mlx-dot.i2 {
	background: var(--mlx-dot-2, #ca8a04);
	box-shadow: 0 0 4px 1px var(--mlx-dot-2, #ca8a04);
}
.mlx-dot.i3 {
	background: var(--mlx-dot-3, #dc2626);
	box-shadow: 0 0 5px 1px var(--mlx-dot-3, #dc2626);
}

@keyframes mlx-glow {
	0%, 100% { filter: brightness(1); }
	50%      { filter: brightness(1.45); }
}

/* ---------------- Vertical (week list) ---------------- */

.mlx-cal-vertical {
	overflow-y: auto;
	flex: 1;
	min-height: 0;
	scrollbar-width: thin;
	scrollbar-color: var(--mlx-border) transparent;
}

.mlx-cal-daysep {
	position: sticky;
	top: 0;
	background: var(--mlx-bg2);
	color: var(--mlx-muted);
	font-size: 11.5px;
	letter-spacing: .4px;
	padding: 6px 10px;
	border-bottom: 1px solid var(--mlx-border);
	z-index: 2;
}

.mlx-cal-row {
	display: grid;
	grid-template-columns: 14px 92px 60px 1fr 190px;
	gap: 10px;
	align-items: center;
	padding: 9px 10px;
	border-bottom: 1px solid rgba(255, 255, 255, .05);
	font-size: 13px;
}
.mlx-cal-row.is-past { opacity: .45; }
.mlx-cal-row.is-past .mlx-cal-values b { color: var(--mlx-muted); }
.mlx-cal-row.is-next {
	background: rgba(255, 255, 255, .04);
	border-inline-start: 2px solid var(--mlx-accent);
}

.mlx-cal-time { color: var(--mlx-text); font-variant-numeric: tabular-nums; }
.mlx-cal-remain { display: block; font-size: 11px; color: var(--mlx-accent); }
.mlx-cal-row.is-past .mlx-cal-remain { color: var(--mlx-muted); }

.mlx-cal-cc { color: var(--mlx-muted); font-size: 12px; line-height: 1.4; }
.mlx-cal-cc b { color: var(--mlx-text); display: block; }

.mlx-cal-event { min-width: 0; }
.mlx-cal-event span {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.mlx-cal-values {
	display: flex;
	gap: 12px;
	justify-content: flex-end;
	font-size: 12px;
	color: var(--mlx-muted);
	font-variant-numeric: tabular-nums;
}
.mlx-cal-values span i { font-style: normal; opacity: .7; font-size: 10.5px; display: block; }
.mlx-cal-values b { color: var(--mlx-text); font-weight: 600; }
.mlx-cal-values .is-actual b { color: var(--mlx-accent); }

/* ---------------- Horizontal (day boxes) ---------------- */

.mlx-cal-horizontal {
	display: flex;
	gap: 12px;
	overflow-x: auto;
	flex: 1;
	min-height: 0;
	padding-bottom: 8px;
	cursor: grab;
	scrollbar-width: thin;
	scrollbar-color: var(--mlx-border) transparent;
}
.mlx-cal-horizontal.is-dragging { cursor: grabbing; user-select: none; }

.mlx-cal-day {
	flex: 0 0 250px;
	background: rgba(255, 255, 255, .03);
	border: 1px solid var(--mlx-border);
	border-radius: 12px;
	max-height: 100%;
	display: flex;
	flex-direction: column;
}
.mlx-cal-day.is-today { border-color: var(--mlx-accent); }

.mlx-cal-dayhead {
	padding: 10px 14px;
	border-bottom: 1px solid var(--mlx-border);
	font-size: 12.5px;
	font-weight: 600;
}
.mlx-cal-dayhead small { display: block; color: var(--mlx-muted); font-weight: 400; }

.mlx-cal-daylist { overflow-y: auto; padding: 6px 0; scrollbar-width: thin; }

.mlx-cal-item {
	padding: 8px 14px;
	border-bottom: 1px solid rgba(255, 255, 255, .04);
	font-size: 12px;
}
.mlx-cal-item.is-past { opacity: .45; }
.mlx-cal-item-top { display: flex; align-items: center; gap: 7px; color: var(--mlx-muted); }
.mlx-cal-item-title { margin: 3px 0 4px; color: var(--mlx-text); line-height: 1.5; }
.mlx-cal-item-vals { display: flex; gap: 10px; color: var(--mlx-muted); font-variant-numeric: tabular-nums; }
.mlx-cal-item-vals b { color: var(--mlx-text); font-weight: 600; }
.mlx-cal-item-vals .is-actual b { color: var(--mlx-accent); }

@media (max-width: 720px) {
	.mlx-cal-row { grid-template-columns: 12px 78px 1fr; }
	.mlx-cal-cc { display: none; }
	.mlx-cal-values { grid-column: 1 / -1; justify-content: flex-start; padding-inline-start: 24px; }
}

/* ---------------- Filter toolbar ---------------- */

.mlx-cal-filters { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.mlx-cal-range {
	background: rgba(255, 255, 255, .05);
	border: 1px solid var(--mlx-border);
	color: var(--mlx-text);
	border-radius: 8px;
	padding: 2px 8px;
	font-family: inherit;
	font-size: 10px;
	outline: none;
	cursor: pointer;
}
.mlx-cal-range:focus { border-color: var(--mlx-accent); }
.mlx-cal-range option { background: var(--mlx-bg2); color: var(--mlx-text); }

.mlx-cal-impacts { display: flex; gap: 6px; }
.mlx-cal-impacts .mlx-chip { opacity: .45; }
.mlx-cal-impacts .mlx-chip.is-on { opacity: 1; color: var(--mlx-text); border-color: var(--mlx-accent); }

.mlx-cal-cwrap { position: relative; }
.mlx-cal-cbtn:hover { color: var(--mlx-text); }
.mlx-cal-ccount { color: var(--mlx-accent); }

.mlx-cal-cpop {
	display: none;
	position: fixed;
	z-index: 1200;
	background: var(--mlx-bg2);
	border: 1px solid var(--mlx-border);
	border-radius: 10px;
	padding: 8px 10px;
	z-index: 20;
	max-height: 260px;
	overflow-y: auto;
	min-width: 150px;
	scrollbar-width: thin;
}
.mlx-cal-cpop.is-open { display: block; }

.mlx-cal-copt {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 13px;
	color: var(--mlx-text);
	padding: 3px 2px;
	cursor: pointer;
	white-space: nowrap;
}
.mlx-cal-call {
	border-bottom: 1px solid var(--mlx-border);
	padding-bottom: 6px;
	margin-bottom: 5px;
	color: var(--mlx-muted);
}

.mlx-flag { margin-inline-end: 3px; }

/* Value labels: keep a gap between label and number (horizontal items). */
.mlx-cal-item-vals i { font-style: normal; opacity: .7; margin-inline-end: 4px; }

/* Bundled SVG flags (emoji flags fall back to letters on Windows). */
.mlx-flag-img {
	width: 16px;
	height: 16px;
	vertical-align: -3px;
	margin-inline-end: 4px;
	border-radius: 2px;
}
