/* ------------------------------------------------------
   PRIMATE DARK THEME for Festivos Calendar (Bootstrap 3)
   Single-file drop-in: place at /static/festivos/css/dark.css
   ------------------------------------------------------ */

/* 1) Tipografía */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&display=swap");

/* 2) Paleta */
:root {
	--bg: #0b0f14;
	--panel: #10151f;
	--panel-2: #151b28;
	--text: #e7ecf3;
	--muted: #aeb4c0;
	--border: #263041;

	/* Marca Primate */
	--brand: #00ff66;
	--brand-600: #00d652;
	--blue: #2bb0ff;
	--blue-600: #1399f0;

	/* Auxiliares */
	--hover: #1b2332;
	--success: #64d6a8;
	--warning: #ffd166;
	--danger: #ff6b6b;
	--purple: #c792ea;
}

/* 3) Base */
html,
body {
	background: var(--bg) !important;
	color: var(--text) !important;
	font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto,
		"Helvetica Neue", Arial, sans-serif;
}
h1,
h2,
h3 {
	letter-spacing: -0.02em;
}
.text-muted {
	color: var(--muted) !important;
}
code {
	background: #0b0f16;
	color: #e6e9ef;
	border: 1px solid var(--border);
}

/* 4) Navbar */
.navbar {
	background: var(--panel-2) !important;
	border-color: var(--border) !important;
	border-bottom: 1px solid var(--border);
}
.navbar .navbar-toggle .icon-bar {
	background: var(--text);
}

/* Brand alineado + línea de marca */
.navbar-brand {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 0;
	margin: 0;
	position: relative;
	color: var(--text) !important;
}
.navbar-brand img {
	height: 28px;
	width: auto;
	display: block;
}
.navbar-brand::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -6px;
	height: 2px;
	width: 100%;
	background: linear-gradient(90deg, var(--brand), transparent 70%);
	opacity: 0.7;
}

.navbar a {
	color: var(--text) !important;
}
.navbar-nav > li > a {
	background: transparent !important;
	transition: color 0.2s ease, background 0.2s ease;
}
.navbar-nav > .active > a,
.navbar-nav > .active > a:hover,
.navbar-nav > .active > a:focus {
	background: transparent !important;
	color: var(--blue) !important;
	box-shadow: inset 0 -2px 0 0 var(--blue);
}
.navbar-nav > li > a:hover {
	background: var(--hover) !important;
	color: var(--blue) !important;
}

/* 5) Footer (sobrescribe styles.css claro) */
.footer {
	background: var(--panel) !important;
	color: var(--muted) !important;
	border-top: 1px solid var(--border);
}

/* 6) Botones */
.btn {
	background: var(--panel);
	color: var(--text);
	border: 1px solid var(--border);
	transition: background 0.2s ease, transform 0.05s ease, color 0.2s ease;
}
.btn:hover,
.btn:focus {
	background: var(--hover);
	color: var(--text);
	border-color: var(--border);
}
.btn:active {
	transform: translateY(1px);
}

.btn-primary {
	background: var(--blue);
	border-color: #1f6fb5;
	color: #071018;
}
.btn-primary:hover,
.btn-primary:focus {
	background: var(--blue-600);
	color: #071018;
}

.btn-warning,
.btn-warning.active {
	background: var(--brand);
	border-color: #0fa85b;
	color: #06150e;
}
.btn-warning:hover,
.btn-warning:focus {
	background: var(--brand-600);
	color: #06150e;
}

/* 7) Calendar Frame */
.cal-month-box,
.cal-year-box,
.cal-week-box {
	background: var(--panel);
	border-color: var(--border);
	border-radius: 6px;
}
.cal-row-head [class*="cal-cell"] {
	background: var(--panel-2);
	color: var(--text);
	border-color: var(--border);
}
.cal-month-box .cal-row-fluid,
.cal-year-box .row-fluid {
	border-color: var(--border);
}
.cal-month-box [class*="cal-cell"],
.cal-year-box [class*="span"] {
	border-right: 1px solid var(--border);
}

/* 8) Day cells */
.cal-month-day {
	background: var(--panel);
	color: var(--text);
}
[class*="cal-cell"]:hover {
	background: var(--hover);
}
.cal-day-outmonth span[data-cal-date] {
	opacity: 0.28;
}
.cal-day-weekend span[data-cal-date] {
	color: #ff8a8a;
}
.cal-day-holiday span[data-cal-date] {
	color: var(--purple);
	font-weight: 700;
}

/* Hoy con halo verde */
.cal-day-today {
	position: relative;
	background: radial-gradient(
		100% 100% at 50% 0%,
		rgba(0, 255, 102, 0.07),
		transparent 60%
	);
}
.cal-day-today span[data-cal-date] {
	color: var(--brand) !important;
}
.cal-month-box .cal-day-today span[data-cal-date] {
	font-size: 1.9em;
}

/* 9) Eventos */
.event,
.event-block {
	background: var(--blue);
	border-color: #c8e6ff;
	box-shadow: 0 0 8px rgba(43, 176, 255, 0.6), inset 0 0 4px rgba(0, 0, 0, 0.35);
	border-radius: 10px;
}
.event-success {
	background: var(--brand);
	box-shadow: 0 0 8px rgba(0, 255, 102, 0.5);
}
.event-important {
	background: var(--danger);
}
.event-warning {
	background: var(--warning);
	color: #222;
}
.event-info {
	background: var(--blue);
}
.event-inverse {
	background: #8ea2c2;
}
.event-special {
	background: var(--purple);
}

/* Estados hover/resaltado */
.day-highlight {
	background: rgba(255, 255, 255, 0.04);
}
.day-highlight.dh-event-important {
	background: rgba(255, 107, 107, 0.15);
}
.day-highlight.dh-event-warning {
	background: rgba(255, 209, 102, 0.15);
}
.day-highlight.dh-event-info {
	background: rgba(43, 176, 255, 0.15);
}
.day-highlight.dh-event-success {
	background: rgba(100, 214, 168, 0.15);
}
.day-highlight.dh-event-inverse {
	background: rgba(136, 146, 176, 0.15);
}
.day-highlight.dh-event-special {
	background: rgba(199, 146, 234, 0.15);
}

/* Slide/listado emergente */
#cal-slide-content {
	background: var(--panel-2) !important;
	color: var(--text) !important;
	box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.5);
	border-top: 1px solid var(--border);
}
#cal-week-box,
#cal-day-tick {
	background: var(--panel-2);
	border-color: var(--border);
	color: var(--text);
}
.cal-column {
	border-left: 1px solid var(--border);
}

/* 10) A11y y transiciones */
:focus {
	outline: 2px solid var(--blue);
	outline-offset: 2px;
}
.btn:focus,
.navbar a:focus {
	outline: 2px solid var(--brand);
}
a,
.day-highlight,
.btn {
	transition: all 0.2s ease;
}

/* 11) Page header */
.page-header {
	border-bottom: 1px solid var(--border);
}
.page-header h1::selection {
	background: var(--brand);
	color: #06150e;
}
