/* =========================================================
   Nivel UP - Tema completo del sistema
   Este archivo debe cargarse al final de los CSS.
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@500;600;700;800;900&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
  --nu-orange: #d96a25;
  --nu-orange-deep: #b94f16;
  --nu-blue: #2368e8;
  --nu-blue-deep: #0f4fb8;
  --nu-navy: #142849;
  --nu-text: #3f4f6b;
  --nu-muted: #6f7f99;
  --nu-bg: #eef6ff;
  --nu-bg-2: #dbeaff;
  --nu-surface: #ffffff;
  --nu-line: rgba(20,40,73,.12);
  --nu-line-strong: rgba(20,40,73,.20);
  --nu-radius: 18px;
  --nu-radius-lg: 28px;
  --nu-shadow: 0 24px 54px -28px rgba(20, 40, 73, .35);
  --nu-shadow-soft: 0 14px 34px -24px rgba(20, 40, 73, .28);
}

* { box-sizing: border-box; }

html, body {
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  color: var(--nu-text) !important;
  background:
    radial-gradient(circle at 4% 0%, rgba(217,106,37,.16), transparent 28%),
    radial-gradient(circle at 94% 8%, rgba(35,104,232,.20), transparent 30%),
    linear-gradient(135deg, var(--nu-bg) 0%, var(--nu-bg-2) 100%) !important;
}

body, .app-container, .app-main, .app-main__outer, .app-main__inner, .app-theme-white.app-container {
  background: transparent !important;
}

h1, h2, h3, h4, h5, h6,
.app-page-title .page-title-heading,
.card-title, .modal-title, .widget-heading,
.page-title-heading, .page-title-subheading {
  font-family: "Outfit", "Plus Jakarta Sans", system-ui, sans-serif !important;
  letter-spacing: -.025em;
}

h1, h2, h3, h4, h5, h6, .page-title-heading, .card-title, .modal-title, .widget-heading {
  color: var(--nu-navy) !important;
  font-weight: 850 !important;
}

p, span, td, th, label, .widget-subheading, .page-title-subheading { color: inherit; }
a, .btn-link { color: var(--nu-blue-deep) !important; font-weight: 700; }
a:hover, .btn-link:hover { color: var(--nu-orange-deep) !important; text-decoration: none !important; }

/* Header completo */
.app-header,
.app-header.header-shadow,
.app-header__content,
.app-header__content.header-mobile-open,
.app-header .app-header__content,
.app-header .app-header__content.header-mobile-open,
.app-header__logo,
.fixed-header .app-header {
  background: linear-gradient(135deg, var(--nu-blue-deep) 0%, var(--nu-blue) 58%, #2b79ff 100%) !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: 0 18px 42px -28px rgba(15, 79, 184, .82) !important;
}

.app-header .app-header__logo,
.app-header .app-header__content,
.app-header .header-dots,
.app-header .widget-heading,
.app-header .widget-subheading,
.app-header .btn,
.app-header a,
.app-header .letrablanca,
.botonesHeader,
.header-user-info,
.header-user-info .widget-heading,
.header-user-info .widget-subheading {
  color: #fff !important;
}

.app-header .btn,
.header-dots .btn,
.botonesHeader {
  background: rgba(255,255,255,.14) !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  box-shadow: none !important;
}

.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after { background-color: #fff !important; }

/* Sidebar */
.app-sidebar,
.closed-sidebar .app-sidebar:hover {
  background: rgba(255,255,255,.94) !important;
  backdrop-filter: blur(14px);
  border-right: 1px solid var(--nu-line) !important;
  box-shadow: var(--nu-shadow-soft) !important;
}

.app-sidebar__heading {
  color: var(--nu-blue-deep) !important;
  font-family: "Outfit", sans-serif !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.vertical-nav-menu li a {
  color: var(--nu-text) !important;
  border-radius: 999px !important;
  margin: 4px 10px !important;
  font-weight: 750 !important;
  transition: all .18s ease !important;
}
.vertical-nav-menu li a:hover,
.vertical-nav-menu li a.mm-active,
.vertical-nav-menu li.mm-active > a,
.vertical-nav-menu li a.active {
  background: linear-gradient(135deg, rgba(217,106,37,.14), rgba(35,104,232,.14)) !important;
  color: var(--nu-blue-deep) !important;
}
.vertical-nav-menu i.metismenu-icon,
.vertical-nav-menu i.metismenu-state-icon { color: var(--nu-orange) !important; opacity: 1 !important; }

/* Cards, paneles, modales */
.main-card, .card, .modal-content, .dropdown-menu, .app-page-title,
.widget-content, .list-group-item, .tab-content, .table-responsive,
.dataTables_wrapper, .fc-theme-standard .fc-scrollgrid, .swal2-popup {
  background: rgba(255,255,255,.94) !important;
  border: 1px solid var(--nu-line) !important;
  border-radius: var(--nu-radius-lg) !important;
  box-shadow: var(--nu-shadow) !important;
}
.card-header, .modal-header, .modal-footer, .card-footer {
  background: linear-gradient(180deg, rgba(238,246,255,.95), rgba(255,255,255,.72)) !important;
  border-color: var(--nu-line) !important;
}
.card-header:first-child { border-radius: var(--nu-radius-lg) var(--nu-radius-lg) 0 0 !important; }
.app-page-title { padding: 24px 28px !important; }

/* Botones */
.btn, button, .ladda-button, input[type="button"], input[type="submit"] {
  border-radius: 999px !important;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: -.01em;
}
.btn-primary, .btn-primario, .btn-success, .btn-info,
.ladda-button.btn-primario, .swal2-confirm, .fc .fc-button-primary,
button[type="submit"], input[type="submit"] {
  color: #fff !important;
  background: linear-gradient(135deg, var(--nu-orange), var(--nu-orange-deep)) !important;
  border-color: transparent !important;
  box-shadow: 0 16px 30px -18px rgba(217,106,37,.80) !important;
}
.btn-primary:hover, .btn-primario:hover, .btn-success:hover, .btn-info:hover,
.swal2-confirm:hover, button[type="submit"]:hover, input[type="submit"]:hover {
  transform: translateY(-1px);
  filter: brightness(.98);
}
.btn-secondary, .btn-light, .btn-outline-dark, .btn-outline-secondary, .swal2-cancel {
  background: #fff !important;
  color: var(--nu-blue-deep) !important;
  border: 1px solid var(--nu-line-strong) !important;
  box-shadow: 0 10px 24px -20px rgba(20,40,73,.30) !important;
}
.btn-warning { background: #ffb84d !important; border-color: #ffb84d !important; color: #432300 !important; }
.btn-danger { background: #df3f45 !important; border-color: #df3f45 !important; color: #fff !important; }

/* Formularios */
.form-control, .custom-select, select, textarea,
input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="date"], input[type="time"], input[type="search"], input[type="file"] {
  border-radius: 16px !important;
  border: 1px solid var(--nu-line-strong) !important;
  background: rgba(255,255,255,.98) !important;
  color: var(--nu-navy) !important;
  min-height: 42px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.80) !important;
}
.form-control:focus, .custom-select:focus, select:focus, textarea:focus, input:focus {
  border-color: var(--nu-blue) !important;
  box-shadow: 0 0 0 .2rem rgba(35,104,232,.16) !important;
  outline: none !important;
}
label { color: var(--nu-navy) !important; font-weight: 800 !important; }

/* Tablas */
.table, table.dataTable { color: var(--nu-text) !important; border-collapse: separate !important; border-spacing: 0 !important; }
.table thead th, table.dataTable thead th {
  background: linear-gradient(180deg, #edf5ff, #e3efff) !important;
  color: var(--nu-blue-deep) !important;
  border-color: var(--nu-line) !important;
  font-family: "Outfit", sans-serif !important;
  font-weight: 850 !important;
}
.table td, .table th, table.dataTable td, table.dataTable th { border-color: var(--nu-line) !important; }
.table-striped tbody tr:nth-of-type(odd), table.dataTable.stripe tbody tr.odd { background-color: rgba(35,104,232,.045) !important; }
.table-hover tbody tr:hover { background-color: rgba(217,106,37,.08) !important; }
.dataTables_filter input, .dataTables_length select { border-radius: 999px !important; }
.page-item.active .page-link { background: var(--nu-orange) !important; border-color: var(--nu-orange) !important; color: #fff !important; }
.page-link { color: var(--nu-blue-deep) !important; border-color: var(--nu-line) !important; }

/* Calendario y estados */
.fc-event, .profesional { background: var(--nu-blue-deep) !important; border-color: var(--nu-blue-deep) !important; color: #fff !important; border-radius: 12px !important; }
.fc .fc-list-event:hover td { background: rgba(217,106,37,.13) !important; color: var(--nu-navy) !important; }
.profesionalSelected { background: var(--nu-orange) !important; color: #fff !important; }
.btn-booked, .list-group-item-booked { background: #fff0e6 !important; color: var(--nu-orange-deep) !important; border-color: rgba(217,106,37,.28) !important; }

/* Badges, alertas, utilidades */
.badge, .alert { border-radius: 999px !important; font-weight: 800 !important; }
.badge-primary, .badge-info { background: var(--nu-blue) !important; color: #fff !important; }
.badge-success { background: var(--nu-orange) !important; color: #fff !important; }
.badge-warning { background: #ffb84d !important; color: #432300 !important; }
.alert-info, .alert-primary { background: #e8f1ff !important; color: var(--nu-blue-deep) !important; border-color: rgba(35,104,232,.18) !important; }
.alert-success { background: #fff0e6 !important; color: var(--nu-orange-deep) !important; border-color: rgba(217,106,37,.25) !important; }
.badge-soft-warning, .letraDorada { color: var(--nu-orange-deep) !important; background-color: rgba(217,106,37,.13) !important; }
.letraNegra { color: var(--nu-navy) !important; }
.letrablanca { color: #fff !important; }
.bordergris, .recuadro { border-color: var(--nu-line-strong) !important; border-radius: var(--nu-radius) !important; }
.bg-primary { background: var(--nu-blue) !important; }
.bg-success { background: var(--nu-orange) !important; }
.bg-warning { background: #ffb84d !important; }
.text-primary { color: var(--nu-blue-deep) !important; }
.text-success, .text-warning { color: var(--nu-orange-deep) !important; }

/* Login y páginas públicas del sistema */
.izq_login, #wrapper_2:before {
  background: linear-gradient(135deg, var(--nu-blue-deep), var(--nu-blue)) !important;
}
.app-login-box, .login-box, .login-form {
  background: rgba(255,255,255,.95) !important;
  border: 1px solid var(--nu-line) !important;
  border-radius: 34px !important;
  box-shadow: var(--nu-shadow) !important;
}
#wrapper_1, #wrapper_2, .bg-white { background: transparent !important; }

/* KPI y widgets */
.kpi-card {
  border-radius: 22px !important;
  background: linear-gradient(135deg, var(--nu-blue-deep), var(--nu-blue)) !important;
  color: #fff !important;
  box-shadow: 0 18px 36px -22px rgba(15,79,184,.70) !important;
}
.kpi-card:nth-child(even) { background: linear-gradient(135deg, var(--nu-orange), var(--nu-orange-deep)) !important; }
.kpi-card *, .kpi-number, .kpi-label { color: #fff !important; }

#loading { background-color: rgba(238,246,255,.80) !important; }
hr { border-color: var(--nu-line) !important; }

/* Mata colores viejos dorados aun cuando vengan de reglas específicas */
[style*="#826f3a"], [style*="826f3a"], [style*="#A98307"], [style*="A98307"] {
  color: var(--nu-blue-deep) !important;
  border-color: var(--nu-blue-deep) !important;
}

@media (max-width: 991px) {
  .app-header__content.header-mobile-open { background: linear-gradient(135deg, var(--nu-blue-deep), var(--nu-blue)) !important; }
  .app-sidebar { background: #fff !important; }
  .app-page-title { padding: 20px !important; }
  .app-login-box, .login-box, .login-form { padding: 24px !important; border-radius: 26px !important; }
}
