:root{
  --brand:#0b3b66;
  --brand-2:#082f52;
  --accent:#f59e0b;

  --bg:#F6F8FC;
  --card:#FFFFFF;
  --text:#0F172A;
  --muted:#475569;
  --border:#E5E7EB;

  --shadow: 0 14px 34px rgba(2, 6, 23, .08);
  --shadow-sm: 0 8px 18px rgba(2, 6, 23, .06);
  --radius: 16px;
}

html, body{ height:100%; }
body{
  background: radial-gradient(900px 500px at 20% 10%, rgba(11,59,102,.08), transparent 60%),
              radial-gradient(900px 500px at 80% 0%, rgba(245,158,11,.10), transparent 55%),
              var(--bg);
  color: var(--text);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

a{ color:#1D4ED8; text-decoration:none; }
a:hover{ text-decoration:underline; }

.container{ max-width: 1160px; }

.card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}

.navbar{
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 10px 22px rgba(2,6,23,.05);
}

.navbar .navbar-brand{
  letter-spacing: .2px;
}

.badge-soft{
  background: rgba(245,158,11,.14);
  color: #92400e;
  border: 1px solid rgba(245,158,11,.25);
}

.btn{
  border-radius: 12px;
}

.btn-primary{
  background: var(--brand);
  border-color: var(--brand);
  font-weight: 700;
}
.btn-primary:hover{
  background: var(--brand-2);
  border-color: var(--brand-2);
}

.btn-outline-light{
  /* estabas usando mucho btn-outline-light: lo convertimos a "outline sobrio" para tema claro */
  background: rgba(255,255,255,.7);
  color: var(--brand);
  border-color: rgba(11,59,102,.25);
  font-weight: 600;
}
.btn-outline-light:hover{
  background: rgba(11,59,102,.08);
  border-color: rgba(11,59,102,.35);
  color: var(--brand);
}

.btn-outline-secondary{
  font-weight: 600;
  border-radius: 12px;
}

.text-secondary{ color: var(--muted) !important; }

/* Inputs */
.form-control, .form-select{
  border-radius: 12px;
  border-color: var(--border);
}
.form-control:focus, .form-select:focus{
  border-color: rgba(11,59,102,.35);
  box-shadow: 0 0 0 .18rem rgba(11,59,102,.12);
}

/* Tablas: evitar "texto perdido" y soportar textos largos */
.table{
  --bs-table-bg: transparent;
  color: var(--text);
}
.table thead th{
  color: var(--muted);
  font-weight: 700;
}
.table td, .table th{
  border-color: var(--border) !important;
  vertical-align: middle;
}
.table td{
  word-break: break-word;
  white-space: normal;
}

/* Overwrite para table-dark (por si quedó en alguna vista) */
.table-dark{
  --bs-table-color: var(--text);
  --bs-table-bg: transparent;
  --bs-table-striped-bg: rgba(2,6,23,.03);
  --bs-table-striped-color: var(--text);
  --bs-table-active-bg: rgba(2,6,23,.05);
  --bs-table-active-color: var(--text);
  --bs-table-hover-bg: rgba(2,6,23,.04);
  --bs-table-hover-color: var(--text);
  color: var(--text);
}

/* Overwrite para text-light (aparecía en list-group y se perdía) */
.text-light{ color: var(--text) !important; }

/* List groups más limpios */
.list-group-item{
  background: transparent;
  border-color: var(--border);
}

/* Cajas suaves reutilizables */
.soft-box{
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.65);
  box-shadow: 0 10px 22px rgba(2,6,23,.04);
}

.chat-bubble{
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 10px 22px rgba(2,6,23,.04);
}
.chat-bubble img{
  border-radius: 12px;
  border: 1px solid var(--border);
  background: #fff;
}

.sig-box{
  border: 1px dashed rgba(11,59,102,.30);
  border-radius: 16px;
  background: rgba(11,59,102,.03);
  padding: 10px;
}

/* Toast */
#toast{
  border-radius: 14px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

/* FullCalendar - colores legibles en claro */
.fc{
  --fc-border-color: var(--border);
  --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: rgba(2,6,23,.02);
  --fc-today-bg-color: rgba(245,158,11,.10);
}
.fc .fc-toolbar-title{ color: var(--text); font-weight: 800; }
.fc .fc-col-header-cell-cushion,
.fc .fc-timegrid-slot-label-cushion,
.fc .fc-timegrid-axis-cushion{
  color: var(--muted);
}
.fc-theme-standard td, .fc-theme-standard th{
  border-color: var(--border);
}
.fc .fc-event{
  border-radius: 12px;
  border: none;
  box-shadow: 0 10px 18px rgba(2,6,23,.10);
  overflow: hidden;
}
.fc .fc-event-title, .fc .fc-event-time{
  font-weight: 700;
}

/* Ajustes responsive */
@media (max-width: 576px){
  .display-6{ font-size: 2rem; }
  .card{ border-radius: 14px; }
}
