/* =========================================================
 * BASE
 * ======================================================= */
body {
  background: radial-gradient(circle at top left, #051625 0, #02030b 40%, #000000 100%);
  color: #e5f6ff;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Anti-aliasing para texto menos “desfocado” */
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* Pequeno ajuste global de texto */
p, span, small, label, input, select, button {
  font-size: 0.92rem;
}

/* =========================================================
 * NAVBAR / TOPO
 * ======================================================= */
.neon-nav {
  background: linear-gradient(90deg, #020617, #020617 60%, #02030b 100%);
  border-bottom: 1px solid rgba(56, 189, 248, 0.4);
  box-shadow: 0 0 18px rgba(56, 189, 248, 0.3);
}

.neon-logo {
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #5eead4 !important;
  text-shadow: 0 0 14px rgba(94, 234, 212, 0.8);
}

.navbar .nav-link {
  color: #9ca3af;
  font-size: .9rem;
}
.navbar .nav-link.active,
.navbar .nav-link:hover {
  color: #e5f6ff;
}
.nav-user {
  font-size: .85rem;
  color: #cbd5f5;
}

/* =========================================================
 * BOTÕES
 * ======================================================= */
.btn-neon {
  background: linear-gradient(90deg, #22d3ee, #4f46e5);
  border: none;
  color: #0b1020;
  font-weight: 600;
  box-shadow: 0 0 18px rgba(56, 189, 248, 0.6);
}
.btn-neon:hover {
  filter: brightness(1.05);
  box-shadow: 0 0 24px rgba(94, 234, 212, 0.9);
}

.btn-outline-neon {
  border-color: rgba(56, 189, 248, 0.6);
  color: #e5f6ff;
}
.btn-outline-neon:hover {
  background: linear-gradient(90deg, #22d3ee, #4f46e5);
  color: #020617;
}

/* =========================================================
 * CARDS / LAYOUT
 * ======================================================= */
.neon-card {
  background: radial-gradient(circle at top left, #020617 0, #020617 40%, #020617 100%);
  border-radius: 16px;
  border: 1px solid rgba(56, 189, 248, 0.35);
  box-shadow: 0 0 32px rgba(15, 23, 42, 0.9);
  color: #e5f6ff;
}
.neon-card .card-header {
  border-bottom: 1px solid rgba(51, 65, 85, 0.8);
  background: rgba(15, 23, 42, 0.95);
  font-weight: 600;
  color: #e5f6ff;
}
.neon-card .card-title {
  font-size: 0.95rem;
  letter-spacing: .04em;
}

.neon-title {
  color: #e5f6ff;
  text-shadow: 0 0 18px rgba(94, 234, 212, 0.7);
  letter-spacing: .04em;
}

/* =========================================================
 * KPIs
 * ======================================================= */
.kpi-card {
  background: radial-gradient(circle at top left, #020617 0, #020617 40%, #020617 100%);
  border-radius: 16px;
  padding: 10px 14px;
  border: 1px solid rgba(30, 64, 175, 0.9);
  box-shadow: 0 0 18px rgba(15, 23, 42, 0.9);
}
.kpi-card .kpi-label {
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #9ca3af;
}
.kpi-card .kpi-value {
  font-size: 1.5rem;
  font-weight: 700;
  margin-top: 2px;
  color: #f9fafb;
}

.kpi-primary { border-color: rgba(56, 189, 248, 0.9); }
.kpi-success { border-color: rgba(52, 211, 153, 0.9); }
.kpi-warning { border-color: rgba(250, 204, 21, 0.9); }
.kpi-danger  { border-color: rgba(248, 113, 113, 0.9); }

/* =========================================================
 * TABELAS
 * ======================================================= */
.table-dark {
  --bs-table-bg: rgba(15, 23, 42, 0.6);
  --bs-table-striped-bg: rgba(15, 23, 42, 0.9);
  --bs-table-hover-bg: rgba(15, 23, 42, 0.95);
  color: #e5f6ff;
}

.table-dark thead th {
  color: #e5f6ff;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* =========================================================
 * LEGENDAS (dashboard & calendário)
 * ======================================================= */
legend-item {
  display: flex;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .35rem;
  color: #d1d5db;
  font-size: 0.85rem;
}
.legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
}
.legend-vacation { background: #fb7185; }
.legend-birthday { background: #facc15; }
.legend-school   { background: #22c55e; }
.legend-default  { background: #38bdf8; }

/* =========================================================
 * FORMULÁRIOS
 * ======================================================= */
.form-control,
.form-select {
  background: rgba(15, 23, 42, 0.9);
  border-color: rgba(30, 64, 175, 0.9);
  color: #e5f6ff;
}
.form-control::placeholder,
.form-select::placeholder {
  color: #6b7280;
}
.form-control:focus,
.form-select:focus {
  border-color: rgba(56, 189, 248, 0.9);
  box-shadow: 0 0 0 1px rgba(56, 189, 248, 0.5);
}
.form-text {
  color: #9ca3af;
}

.alert {
  border-radius: 12px;
}

/* =========================================================
 * CALENDÁRIO FULLCALENDAR
 * ======================================================= */
#calendar {
  min-height: 620px;
  color: #e5f6ff;
  font-size: 0.9rem;
}

/* grelha e bordas */
.fc-theme-standard .fc-scrollgrid,
.fc-theme-standard td,
.fc-theme-standard th {
  border-color: rgba(30, 64, 175, 0.7);
}

/* cabeçalho (nome do mês) */
.fc-toolbar-title {
  color: #e5f6ff;
  font-size: 1.15rem;
}

/* botões do calendário */
.fc-button {
  background: #020617;
  border: 1px solid rgba(56, 189, 248, 0.6);
  color: #e5f6ff;
}
.fc-button-primary:not(:disabled).fc-button-active,
.fc-button-primary:not(:disabled):active,
.fc-button-primary:hover {
  background: linear-gradient(90deg, #22d3ee, #4f46e5);
  border-color: rgba(94, 234, 212, 0.9);
}

/* dias da semana (Mon, Tue, ...) */
.fc-col-header-cell-cushion {
  color: #e5f6ff !important;
  font-weight: 500;
}

/* células do calendário */
.fc-daygrid-day {
  background: rgba(15, 23, 42, 0.92);
}
.fc-day-other {
  background: rgba(15, 23, 42, 0.75);
  color: #6b7280;
}

/* número do dia (1,2,3...) */
.fc-daygrid-day-number {
  color: #e5f6ff !important;
  font-weight: 600;
}

/* hoje */
.fc-day-today {
  background: rgba(56, 189, 248, 0.08) !important;
}

/* eventos – classes vindas do backend */
.fc-event {
  font-size: 0.78rem;
  padding: 2px 4px;
}
.fc-event-title,
.fc-event-time {
  color: #0b1020;
  font-weight: 600;
}

.fc-event.ev-vacation {
  background: #fb7185;
  border-color: #fb7185;
}
.fc-event.ev-birthday {
  background: #facc15;
  border-color: #facc15;
  color: #111827;
}
.fc-event.ev-school {
  background: #22c55e;
  border-color: #22c55e;
}
.fc-event.ev-default {
  background: #38bdf8;
  border-color: #38bdf8;
}

/* tooltip do FullCalendar (se usado) */
.fc-popover {
  background: #020617;
  color: #e5f6ff;
  border: 1px solid rgba(56, 189, 248, 0.6);
}

/* =========================================================
 * AJUSTES FINAIS
 * ======================================================= */
.card-header small,
.card-header .text-muted {
  color: #9ca3af !important;
}

.text-muted {
  color: #9ca3af !important;
}
