/* ==========================================================================
   Alarcom ERP · Tema 2026
   Se carga después de app.min.1/2.css en headers/basic, forms, datatables
   y calendario. Quitar el <link> regresa al estilo anterior.
   ========================================================================== */

:root {
  --alc-primary: #2563eb;
  --alc-primary-600: #1d4ed8;
  --alc-primary-50: #eff6ff;
  --alc-primary-100: #dbeafe;
  --alc-bg: #f5f7fb;
  --alc-surface: #ffffff;
  --alc-border: #e7eaf0;
  --alc-border-soft: #f0f2f6;
  --alc-text: #101828;
  --alc-text-2: #344054;
  --alc-muted: #667085;
  --alc-subtle: #98a2b3;
  --alc-success: #12b76a;
  --alc-success-50: #ecfdf3;
  --alc-success-700: #027a48;
  --alc-warning: #f79009;
  --alc-warning-50: #fffaeb;
  --alc-warning-700: #b54708;
  --alc-danger: #f04438;
  --alc-danger-50: #fef3f2;
  --alc-danger-700: #b42318;
  --alc-violet: #7a5af8;
  --alc-violet-50: #f4f3ff;
  --alc-radius: 12px;
  --alc-radius-sm: 8px;
  --alc-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
  --alc-shadow-md: 0 4px 8px -2px rgba(16, 24, 40, 0.08), 0 2px 4px -2px rgba(16, 24, 40, 0.04);
  --alc-shadow-lg: 0 12px 24px -6px rgba(16, 24, 40, 0.14), 0 4px 8px -4px rgba(16, 24, 40, 0.06);

  /* La capa anterior (app.min.2.css) usa estas variables */
  --alarcom-blue: #2563eb;
  --alarcom-blue-deep: #1d4ed8;
  --surface: #f5f7fb;
  --text: #101828;
  --muted: #667085;
  --radius: 12px;
  --radius-sm: 8px;
  --shadow-card: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
  --shadow-card-hover: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html,
body {
  background: var(--alc-bg) !important;
}

body {
  background-image: none !important;
  font-family: "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: var(--alc-text-2);
  font-size: 13px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: inherit;
  color: var(--alc-text);
}

a {
  color: var(--alc-primary);
}

a:hover,
a:focus {
  color: var(--alc-primary-600);
}

::selection {
  background: var(--alc-primary-100);
  color: var(--alc-text);
}

.text-muted {
  color: var(--alc-muted) !important;
}

/* --------------------------------------------------------------------------
   Barra superior
   -------------------------------------------------------------------------- */
#header {
  background: var(--alc-surface) !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--alc-border);
}

.header-inner .logo a {
  padding: 0 12px 0 4px;
}

.header-inner .logo img {
  height: 58px;
  margin-top: 6px;
}

#menu-trigger .line-wrap .line {
  background-color: var(--alc-text-2) !important;
}

#menu-trigger:before {
  background: rgba(16, 24, 40, 0.06) !important;
}

/* Buscador visible en escritorio */
.header-inner > li.alc-search {
  margin-left: 28px;
  width: 380px;
  max-width: 34vw;
}

.alc-search form {
  position: relative;
  margin: 0;
}

.alc-search .md-search {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 18px;
  color: var(--alc-subtle);
  pointer-events: none;
}

.alc-search input[type="text"] {
  width: 100%;
  height: 40px;
  border: 1px solid var(--alc-border);
  border-radius: 10px;
  background: #f9fafb;
  padding: 0 12px 0 38px;
  font-size: 13px;
  color: var(--alc-text);
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.alc-search input[type="text"]::placeholder {
  color: var(--alc-subtle);
}

.alc-search input[type="text"]:focus {
  background: #fff;
  border-color: var(--alc-primary);
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}

/* Íconos del menú superior: glifos en lugar de PNG blancos */
.top-menu > li > a.tm-notification,
.top-menu > li > a.tm-task,
.top-menu > li > a.tm-search,
.top-menu > li > a.tm-settings {
  background-image: none !important;
  text-align: center;
  color: var(--alc-text-2);
  border-radius: 10px;
}

.top-menu > li > a.tm-notification:after,
.top-menu > li > a.tm-task:after,
.top-menu > li > a.tm-search:after,
.top-menu > li > a.tm-settings:after {
  font-family: "Material Design Iconic Font";
  font-size: 22px;
  line-height: 35px;
  display: block;
  color: var(--alc-muted);
}

.top-menu > li > a.tm-notification:after { content: "\f2cd"; }
.top-menu > li > a.tm-task:after { content: "\f2af"; }
.top-menu > li > a.tm-search:after { content: "\f05f"; }
.top-menu > li > a.tm-settings:after { content: "\f2a3"; }

.top-menu > li:not(#toggle-width):before {
  background-color: rgba(16, 24, 40, 0.06) !important;
  border-radius: 10px !important;
}

.top-menu > li > a > .tmn-counts {
  background: var(--alc-danger);
  font-weight: 600;
  min-width: 18px;
  text-align: center;
  right: 8px;
  top: -2px;
  box-shadow: 0 0 0 2px #fff;
}

#toggle-width .toggle-switch .ts-helper {
  background: #d0d5dd;
}

#toggle-width .toggle-switch input:checked + .ts-helper {
  background: var(--alc-primary-100);
}

#toggle-width .toggle-switch input:checked + .ts-helper:before {
  background: var(--alc-primary);
}

/* Usuario en la barra superior */
.top-menu > li.alc-user:before {
  display: none !important;
}

.top-menu > li.alc-user > a {
  display: flex;
  align-items: center;
  height: 40px;
  margin-top: -3px;
  padding: 0 6px 0 4px;
  border-radius: 10px;
  color: var(--alc-text);
  text-decoration: none;
}

.top-menu > li.alc-user > a:hover {
  background: #f2f4f7;
}

.alc-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--alc-primary);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}

.alc-user-info {
  display: flex;
  flex-direction: column;
  margin: 0 6px 0 10px;
  line-height: 1.2;
  text-align: left;
}

.alc-user-info strong {
  font-size: 13px;
  font-weight: 600;
  color: var(--alc-text);
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.alc-user-info small {
  font-size: 11px;
  color: var(--alc-muted);
}

.alc-user .md-arrow-drop-down {
  color: var(--alc-subtle);
  font-size: 18px;
}

/* Buscador desplegable (móvil) */
#top-search-wrap {
  background: #fff !important;
  border-bottom: 1px solid var(--alc-border);
}

#top-search-wrap input[type="text"] {
  background-color: #f9fafb !important;
  border: 1px solid var(--alc-border) !important;
  color: var(--alc-text) !important;
  font-size: 15px;
}

/* Menús desplegables */
.dropdown-menu {
  border: 1px solid var(--alc-border) !important;
  border-radius: var(--alc-radius) !important;
  box-shadow: var(--alc-shadow-lg) !important;
}

.dropdown-menu > li > a {
  color: var(--alc-text-2);
  padding: 8px 12px;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  background-color: var(--alc-primary-50) !important;
  color: var(--alc-primary-600) !important;
}

.listview .lv-header {
  background: #f9fafb !important;
  color: var(--alc-text-2) !important;
  border-bottom: 1px solid var(--alc-border-soft);
}

.listview .lv-item:hover {
  background: #f9fafb !important;
}

.listview .lv-footer {
  color: var(--alc-primary) !important;
}

/* --------------------------------------------------------------------------
   Menú lateral
   -------------------------------------------------------------------------- */
#sidebar {
  background: var(--alc-surface) !important;
  box-shadow: none !important;
  border-right: 1px solid var(--alc-border) !important;
}

#sidebar .si-inner:after {
  display: none;
}

#sidebar .main-menu {
  margin: 14px 0 0;
  padding: 0 0 12px;
}

#sidebar .main-menu > li > a {
  margin: 2px 12px;
  padding: 9px 30px 9px 44px;
  border-radius: 10px;
  color: var(--alc-text-2);
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
}

#sidebar .main-menu > li > a > i {
  left: 12px;
  top: 7px;
  width: 24px;
  height: 24px;
  line-height: 24px;
  font-size: 19px;
  background: transparent !important;
  color: var(--alc-muted) !important;
}

#sidebar .main-menu > li > a:hover {
  background-color: #f2f4f7 !important;
  color: var(--alc-text) !important;
}

#sidebar .main-menu > li > a:hover > i {
  color: var(--alc-text-2) !important;
}

#sidebar .main-menu > li.sub-menu.toggled > a {
  background-color: #f9fafb !important;
  color: var(--alc-text) !important;
}

#sidebar .main-menu > li.active:not(.sub-menu) > a,
#sidebar .main-menu > li.sub-menu.active > a {
  background-color: var(--alc-primary) !important;
  color: #fff !important;
  box-shadow: 0 4px 10px -4px rgba(37, 99, 235, 0.55);
}

#sidebar .main-menu > li.active:not(.sub-menu) > a > i,
#sidebar .main-menu > li.sub-menu.active > a > i,
#sidebar .main-menu > li.sub-menu.active > a:before,
#sidebar .main-menu > li.sub-menu.active > a:after {
  color: #fff !important;
}

#sidebar .main-menu > li.sub-menu > a:before,
#sidebar .main-menu > li.sub-menu > a:after {
  top: 10px;
  right: 12px;
  color: var(--alc-subtle);
}

#sidebar .main-menu > li.sub-menu > ul {
  margin: 4px 12px 6px;
  padding: 0 0 0 10px;
  background: transparent !important;
}

#sidebar .main-menu > li.sub-menu > ul > li > a {
  margin: 0 0 0 22px;
  padding: 7px 10px !important;
  border-radius: 8px;
  color: var(--alc-muted);
  font-size: 12.5px;
  font-weight: 500;
  border-left: 2px solid var(--alc-border-soft);
  border-radius: 0 8px 8px 0;
}

#sidebar .main-menu > li.sub-menu > ul > li > a:hover {
  color: var(--alc-text) !important;
  background: #f9fafb !important;
}

#sidebar .main-menu > li.sub-menu > ul > li > a.active {
  color: var(--alc-primary-600) !important;
  background: var(--alc-primary-50) !important;
  border-left-color: var(--alc-primary);
  font-weight: 600;
}

#sidebar hr {
  border-color: var(--alc-border-soft) !important;
  margin: 6px 10px 6px 22px !important;
}

/* Perfil compacto en la parte superior del menú (se usa en móvil) */
#sidebar .alc-sidebar-user {
  display: flex;
  align-items: center;
  margin: 14px 12px 0;
  padding: 10px 12px;
  border: 1px solid var(--alc-border);
  border-radius: var(--alc-radius);
  background: #f9fafb;
}

#sidebar .alc-sidebar-user .alc-user-info {
  margin-left: 10px;
}

#sidebar .alc-sidebar-footer {
  margin: 8px 12px 24px;
  padding-top: 10px;
  border-top: 1px solid var(--alc-border-soft);
}

#sidebar .alc-sidebar-footer a {
  display: flex;
  align-items: center;
  padding: 9px 12px;
  border-radius: 10px;
  color: var(--alc-text-2);
  font-weight: 500;
}

#sidebar .alc-sidebar-footer a:hover {
  background: var(--alc-danger-50);
  color: var(--alc-danger-700);
}

#sidebar .alc-sidebar-footer a i {
  font-size: 19px;
  width: 24px;
  margin-right: 8px;
  text-align: center;
  color: inherit;
}

/* --------------------------------------------------------------------------
   Encabezados de página
   -------------------------------------------------------------------------- */
.block-header > h2 {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--alc-text) !important;
  text-transform: none !important;
  letter-spacing: -0.01em;
}

.block-header > h2 > small {
  font-size: 13px;
  font-weight: 400;
  color: var(--alc-muted) !important;
  margin-top: 4px;
}

.breadcrumb {
  background: transparent;
  color: var(--alc-muted);
  font-size: 12px;
}

/* --------------------------------------------------------------------------
   Tarjetas
   -------------------------------------------------------------------------- */
.card {
  border: 1px solid var(--alc-border) !important;
  border-radius: var(--alc-radius) !important;
  box-shadow: var(--alc-shadow) !important;
  margin-bottom: 24px;
}

.card:not([class*="bgm-"]) {
  background: var(--alc-surface) !important;
}

.card[class*="bgm-"]:not(.profile-view) {
  border-color: transparent !important;
  overflow: hidden;
}

.card:hover {
  box-shadow: var(--alc-shadow) !important;
}

.card .card-header h2 {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--alc-text) !important;
  line-height: 1.35 !important;
}

.card .card-header h2 small {
  font-size: 12px;
  color: var(--alc-muted) !important;
  opacity: 1 !important;
  margin-top: 4px;
}

.card .card-header:not(.ch-alt) {
  border-bottom: 1px solid var(--alc-border-soft) !important;
}

@media screen and (min-width: 768px) {
  .card .card-header:not(.ch-alt) {
    padding: 16px 20px !important;
  }

  .card .card-body.card-padding {
    padding: 20px !important;
  }
}

.card .card-header.ch-alt:not([class*="bgm-"]) {
  background-color: #f9fafb !important;
}

/* Cabeceras que antes eran de color: blancas con acento a la izquierda */
.card .card-header[class*="bgm-"] {
  background-color: var(--alc-surface) !important;
  border-bottom: 1px solid var(--alc-border-soft) !important;
  border-radius: var(--alc-radius) var(--alc-radius) 0 0 !important;
  box-shadow: inset 4px 0 0 var(--alc-primary);
  color: var(--alc-text) !important;
}

.card .card-header[class*="bgm-"] h2,
.card .card-header[class*="bgm-"] h2 i {
  color: var(--alc-text) !important;
}

.card .card-header[class*="bgm-"] h2 small {
  color: var(--alc-muted) !important;
}

.card .card-header[class*="bgm-"] .actions > li > a,
.card .card-header[class*="bgm-"] .actions > li > a > i {
  background: var(--alc-primary-50) !important;
  color: var(--alc-primary) !important;
}

.card .card-header[class*="bgm-"] .actions > li > a:hover,
.card .card-header[class*="bgm-"] .actions > li > a:hover > i {
  background: var(--alc-primary) !important;
  color: #fff !important;
}

.card .card-header.bgm-green,
.card .card-header.bgm-lightgreen,
.card .card-header.bgm-teal {
  box-shadow: inset 4px 0 0 var(--alc-success);
}

.card .card-header.bgm-orange,
.card .card-header.bgm-amber,
.card .card-header.bgm-deeporange,
.card .card-header.bgm-yellow {
  box-shadow: inset 4px 0 0 var(--alc-warning);
}

.card .card-header.bgm-red,
.card .card-header.bgm-pink {
  box-shadow: inset 4px 0 0 var(--alc-danger);
}

.card .card-header.bgm-purple,
.card .card-header.bgm-deeppurple {
  box-shadow: inset 4px 0 0 var(--alc-violet);
}

.card .card-header.bgm-bluegray,
.card .card-header.bgm-gray,
.card .card-header.bgm-black {
  box-shadow: inset 4px 0 0 var(--alc-subtle);
}

.cumpleanos-header:hover,
.aniversarios-header:hover {
  background-color: #f9fafb !important;
}

#arrow-cumpleanos-mes,
#arrow-aniversarios-mes {
  color: var(--alc-muted) !important;
}

.card-header .btn-float {
  box-shadow: var(--alc-shadow-md);
}

/* --------------------------------------------------------------------------
   Botones
   -------------------------------------------------------------------------- */
.btn {
  border-radius: var(--alc-radius-sm);
  font-weight: 500;
  box-shadow: none !important;
  text-transform: none;
}

.btn-primary,
.btn-info {
  background-color: var(--alc-primary) !important;
  border-color: var(--alc-primary) !important;
  color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-info:hover,
.btn-info:focus,
.btn-info:active {
  background-color: var(--alc-primary-600) !important;
  border-color: var(--alc-primary-600) !important;
}

.btn-default {
  background: #fff !important;
  border: 1px solid #d0d5dd !important;
  color: var(--alc-text-2) !important;
}

.btn-default:hover,
.btn-default:focus {
  background: #f9fafb !important;
  color: var(--alc-text) !important;
}

.btn-success {
  background-color: var(--alc-success) !important;
  border-color: var(--alc-success) !important;
}

.btn-danger {
  background-color: var(--alc-danger) !important;
  border-color: var(--alc-danger) !important;
}

.btn-warning {
  background-color: var(--alc-warning) !important;
  border-color: var(--alc-warning) !important;
}

.btn-link {
  color: var(--alc-primary);
}

.btn-float,
.btn-icon {
  box-shadow: var(--alc-shadow-md) !important;
}

/* --------------------------------------------------------------------------
   Formularios
   -------------------------------------------------------------------------- */
.fg-line .form-control,
.select.form-control,
select.form-control {
  background-color: #fff !important;
  border: 1px solid var(--alc-border) !important;
  border-radius: var(--alc-radius-sm) !important;
}

.fg-line .form-control:focus,
select.form-control:focus {
  border-color: var(--alc-primary) !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12) !important;
}

.fg-line:not([class*="has-"]):after {
  display: none;
}

.form-group > label,
.control-label {
  color: var(--alc-text-2);
  font-weight: 500;
}

/* --------------------------------------------------------------------------
   Tablas
   -------------------------------------------------------------------------- */
.table > thead > tr > th,
table.dataTable thead th,
.bootgrid-table thead th {
  background: #f9fafb !important;
  color: var(--alc-muted) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--alc-border) !important;
  padding-top: 11px !important;
  padding-bottom: 11px !important;
}

.table > tbody > tr > td {
  border-bottom: 1px solid var(--alc-border-soft) !important;
  color: var(--alc-text-2);
  padding-top: 11px;
  padding-bottom: 11px;
}

.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #fcfcfd !important;
}

.table-hover > tbody > tr:hover {
  background-color: #f5f8ff !important;
}

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  border: 1px solid var(--alc-border);
  border-radius: var(--alc-radius-sm);
  padding: 6px 10px;
  background: #fff;
}

.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover {
  background-color: var(--alc-primary) !important;
  border-color: var(--alc-primary) !important;
}

/* --------------------------------------------------------------------------
   Etiquetas de estado tipo píldora
   -------------------------------------------------------------------------- */
.label,
.badge {
  border-radius: 999px !important;
  font-weight: 600;
  font-size: 11px;
  padding: 3px 9px;
  letter-spacing: 0.01em;
}

.label-default { background: #f2f4f7 !important; color: var(--alc-text-2) !important; }
.label-primary { background: var(--alc-primary-50) !important; color: var(--alc-primary-600) !important; }
.label-info { background: #eff8ff !important; color: #175cd3 !important; }
.label-success { background: var(--alc-success-50) !important; color: var(--alc-success-700) !important; }
.label-warning { background: var(--alc-warning-50) !important; color: var(--alc-warning-700) !important; }
.label-danger { background: var(--alc-danger-50) !important; color: var(--alc-danger-700) !important; }

.badge.bgm-red, .label.bgm-red { background-color: var(--alc-danger-50) !important; color: var(--alc-danger-700) !important; }
.badge.bgm-orange, .label.bgm-orange,
.badge.bgm-amber, .label.bgm-amber,
.badge.bgm-deeporange, .label.bgm-deeporange { background-color: var(--alc-warning-50) !important; color: var(--alc-warning-700) !important; }
.badge.bgm-green, .label.bgm-green,
.badge.bgm-lightgreen, .label.bgm-lightgreen,
.badge.bgm-teal, .label.bgm-teal { background-color: var(--alc-success-50) !important; color: var(--alc-success-700) !important; }
.badge.bgm-blue, .label.bgm-blue,
.badge.bgm-lightblue, .label.bgm-lightblue,
.badge.bgm-cyan, .label.bgm-cyan,
.badge.bgm-indigo, .label.bgm-indigo { background-color: var(--alc-primary-50) !important; color: var(--alc-primary-600) !important; }
.badge.bgm-purple, .label.bgm-purple,
.badge.bgm-deeppurple, .label.bgm-deeppurple { background-color: var(--alc-violet-50) !important; color: #5925dc !important; }
.badge.bgm-gray, .label.bgm-gray,
.badge.bgm-bluegray, .label.bgm-bluegray { background-color: #f2f4f7 !important; color: var(--alc-text-2) !important; }

/* --------------------------------------------------------------------------
   Alertas, modales, varios
   -------------------------------------------------------------------------- */
.alert {
  border-radius: var(--alc-radius) !important;
  border: 1px solid transparent !important;
  box-shadow: none !important;
}

.alert-success { background: var(--alc-success-50) !important; color: var(--alc-success-700) !important; border-color: #abefc6 !important; }
.alert-info { background: #eff8ff !important; color: #175cd3 !important; border-color: #b2ddff !important; }
.alert-warning { background: var(--alc-warning-50) !important; color: var(--alc-warning-700) !important; border-color: #fedf89 !important; }
.alert-danger { background: var(--alc-danger-50) !important; color: var(--alc-danger-700) !important; border-color: #fecdca !important; }

.alert-success a, .alert-info a, .alert-warning a, .alert-danger a {
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
}

.modal-content {
  border-radius: 14px !important;
  border: 1px solid var(--alc-border) !important;
  box-shadow: var(--alc-shadow-lg) !important;
}

.modal:not([data-modal-color]) .modal-header {
  border-bottom: 1px solid var(--alc-border-soft);
}

.modal:not([data-modal-color]) .modal-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--alc-text);
}

.modal:not([data-modal-color]) .modal-footer {
  border-top: 1px solid var(--alc-border-soft);
}

.well {
  background: #f9fafb !important;
  border: 1px solid var(--alc-border-soft) !important;
  border-radius: var(--alc-radius-sm) !important;
}

.panel {
  border: 1px solid var(--alc-border) !important;
  border-radius: var(--alc-radius) !important;
  box-shadow: var(--alc-shadow) !important;
}

.sweet-alert {
  border-radius: 14px !important;
  font-family: inherit;
}

.sweet-alert h2 {
  color: var(--alc-text) !important;
  font-weight: 600 !important;
}

/* Calendario: barra blanca */
.fc {
  border: 1px solid var(--alc-border) !important;
  border-radius: var(--alc-radius) !important;
  box-shadow: var(--alc-shadow) !important;
}

.fc-toolbar {
  background-color: #fff !important;
  border-bottom: 1px solid var(--alc-border-soft);
}

.fc-toolbar h2,
.fc-unthemed .fc-toolbar h2 {
  color: var(--alc-text) !important;
  font-size: 15px !important;
}

.fc-toolbar .ui-button > span,
.fc-toolbar .actions > li > a,
.fc-toolbar .actions > li > a > i,
.fc-toolbar .md {
  color: var(--alc-muted) !important;
}

.fc-toolbar .ui-button:hover > span,
.fc-toolbar .actions > li > a:hover > i {
  color: var(--alc-primary) !important;
}

.fc-unthemed th,
.fc thead th {
  background: #f9fafb !important;
  color: var(--alc-muted) !important;
  font-weight: 600;
}

/* Barra de scroll discreta */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-thumb {
  background: #d0d5dd;
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: content-box;
}

::-webkit-scrollbar-track {
  background: transparent;
}

/* --------------------------------------------------------------------------
   Dashboard
   -------------------------------------------------------------------------- */
.alc-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin: 4px 0 20px;
}

.alc-page-head h1 {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--alc-text);
}

.alc-page-head p {
  margin: 4px 0 0;
  color: var(--alc-muted);
  font-size: 13px;
}

.alc-date-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: #fff;
  border: 1px solid var(--alc-border);
  border-radius: 10px;
  color: var(--alc-text-2);
  font-weight: 500;
  box-shadow: var(--alc-shadow);
}

.alc-date-chip i {
  font-size: 17px;
  color: var(--alc-muted);
}

.alc-row-flex {
  display: flex;
  flex-wrap: wrap;
}

.alc-row-flex > [class*="col-"] {
  display: flex;
  flex-direction: column;
}

.alc-row-flex > [class*="col-"] > .card {
  flex: 1 1 auto;
}

/* Indicadores */
.alc-kpi {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px;
  height: 100%;
  color: inherit;
  text-decoration: none !important;
}

a.alc-kpi:hover {
  color: inherit;
}

.card:has(> a.alc-kpi:hover) {
  border-color: #d0d5dd !important;
}

.alc-kpi-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  font-size: 26px;
  flex-shrink: 0;
}

.alc-kpi-icon--blue { background: var(--alc-primary-50); color: var(--alc-primary); }
.alc-kpi-icon--orange { background: #fff4ed; color: #ec4a0a; }
.alc-kpi-icon--green { background: var(--alc-success-50); color: #039855; }
.alc-kpi-icon--violet { background: var(--alc-violet-50); color: var(--alc-violet); }

.alc-kpi-body {
  flex: 1 1 auto;
  min-width: 0;
}

.alc-kpi-label {
  font-size: 13px;
  color: var(--alc-muted);
  font-weight: 500;
}

.alc-kpi-value {
  font-size: 28px;
  font-weight: 700;
  color: var(--alc-text);
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-top: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.alc-kpi-foot {
  margin-top: 6px;
  font-size: 12px;
  color: var(--alc-muted);
}

.alc-trend {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-weight: 600;
  margin-right: 4px;
}

.alc-trend--up { color: #039855; }
.alc-trend--down { color: var(--alc-danger-700); }
.alc-trend i { font-size: 15px; }

/* Cabecera de widget del dashboard */
.alc-widget-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px 14px;
}

.alc-widget-title {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
}

.alc-widget-title > i {
  font-size: 22px;
  line-height: 1;
  margin-top: 1px;
}

.alc-widget-title h2 {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--alc-text);
  line-height: 1.35;
  cursor: default;
}

.alc-widget-title small {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: var(--alc-muted);
}

.alc-link-more {
  white-space: nowrap;
  font-size: 13px;
  font-weight: 600;
  color: var(--alc-primary);
}

.alc-link-more i {
  font-size: 16px;
  vertical-align: -3px;
}

.alc-widget-body {
  padding: 0 20px 18px;
}

.alc-widget-scroll {
  max-height: 300px;
  overflow-y: auto;
}

.alc-c-blue { color: var(--alc-primary); }
.alc-c-orange { color: #ec4a0a; }
.alc-c-green { color: #039855; }
.alc-c-violet { color: var(--alc-violet); }
.alc-c-pink { color: #dd2590; }

/* Tablas del dashboard */
.alc-table {
  width: 100%;
  margin: 0;
}

.alc-table > thead > tr > th {
  padding: 9px 12px !important;
  white-space: nowrap;
}

.alc-table > thead > tr > th:first-child,
.alc-table > tbody > tr > td:first-child {
  padding-left: 20px !important;
}

.alc-table > thead > tr > th:last-child,
.alc-table > tbody > tr > td:last-child {
  padding-right: 20px !important;
}

.alc-table > tbody > tr > td {
  padding: 9px 12px !important;
  vertical-align: middle !important;
  font-size: 12.5px;
}

.alc-table .alc-num {
  font-weight: 600;
  color: var(--alc-text);
  white-space: nowrap;
}

.alc-person {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.alc-person strong {
  font-weight: 600;
  color: var(--alc-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.alc-initials {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 600;
  flex-shrink: 0;
  background: var(--alc-primary-50);
  color: var(--alc-primary-600);
}

.alc-initials--1 { background: #fef3f2; color: #b42318; }
.alc-initials--2 { background: #ecfdf3; color: #027a48; }
.alc-initials--3 { background: #fffaeb; color: #b54708; }
.alc-initials--4 { background: #f4f3ff; color: #5925dc; }
.alc-initials--5 { background: #fdf2fa; color: #c11574; }

.alc-pill {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}

.alc-pill--warning { background: var(--alc-warning-50); color: var(--alc-warning-700); }
.alc-pill--danger { background: var(--alc-danger-50); color: var(--alc-danger-700); }
.alc-pill--success { background: var(--alc-success-50); color: var(--alc-success-700); }
.alc-pill--info { background: var(--alc-primary-50); color: var(--alc-primary-600); }
.alc-pill--muted { background: #f2f4f7; color: var(--alc-text-2); }

.alc-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid var(--alc-border);
  border-radius: 8px;
  color: var(--alc-text-2);
  background: #fff;
}

.alc-icon-btn:hover {
  border-color: var(--alc-primary);
  color: var(--alc-primary);
  background: var(--alc-primary-50);
}

.alc-empty {
  padding: 28px 20px;
  text-align: center;
  color: var(--alc-muted);
}

/* Gráfica de barras */
.alc-chart {
  display: flex;
  align-items: stretch;
  gap: 10px;
  height: 190px;
  padding: 6px 0 0;
}

.alc-chart-col {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
}

.alc-chart-bar-wrap {
  flex: 1 1 auto;
  width: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  border-bottom: 1px solid var(--alc-border);
}

.alc-chart-bar {
  width: 70%;
  max-width: 44px;
  min-height: 3px;
  border-radius: 6px 6px 0 0;
  background: #bfd4fe;
  transition: background 0.15s ease;
}

.alc-chart-col--actual .alc-chart-bar {
  background: var(--alc-primary);
}

.alc-chart-col:hover .alc-chart-bar {
  background: var(--alc-primary-600);
}

.alc-chart-label {
  margin-top: 8px;
  font-size: 11px;
  color: var(--alc-muted);
}

.alc-chart-total {
  font-size: 10.5px;
  color: var(--alc-muted);
  margin-bottom: 4px;
  white-space: nowrap;
  visibility: hidden;
}

.alc-chart-col:hover .alc-chart-total,
.alc-chart-col--actual .alc-chart-total {
  visibility: visible;
  color: var(--alc-text);
  font-weight: 600;
}

/* Listas (avisos, cumpleaños) */
.alc-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.alc-list > li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--alc-border-soft);
}

.alc-list > li:last-child {
  border-bottom: 0;
}

.alc-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-top: 6px;
  flex-shrink: 0;
  background: var(--alc-subtle);
}

.alc-dot--new { background: var(--alc-primary); }

.alc-list-main {
  flex: 1 1 auto;
  min-width: 0;
}

.alc-list-main strong {
  display: block;
  color: var(--alc-text);
  font-weight: 600;
  font-size: 13px;
}

.alc-list-main small {
  color: var(--alc-muted);
  font-size: 11.5px;
}

.alc-list-main p {
  margin: 4px 0 0;
  color: var(--alc-text-2);
  font-size: 12.5px;
}

.alc-list-side {
  text-align: right;
  white-space: nowrap;
  font-size: 12px;
  color: var(--alc-muted);
}

.alc-tag-day {
  display: inline-block;
  margin-top: 2px;
  padding: 2px 8px;
  border-radius: 6px;
  background: #f2f4f7;
  color: var(--alc-text-2);
  font-size: 11px;
  font-weight: 600;
}

.alc-tag-day--hoy {
  background: var(--alc-primary);
  color: #fff;
}

.alc-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  padding: 12px 16px;
  font-size: 12px;
  color: var(--alc-text-2);
}

.alc-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.alc-legend i {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  display: inline-block;
}

/* --------------------------------------------------------------------------
   Fichas de perfil (cliente, proveedor, monitoreo, plan)
   Antes: tarjeta de color con texto blanco. Ahora: tarjeta blanca legible.
   -------------------------------------------------------------------------- */
.card.profile-view {
  background: var(--alc-surface) !important;
  text-align: left;
  overflow: hidden;
  box-shadow: inset 0 4px 0 var(--alc-primary), var(--alc-shadow) !important;
}

.profile-view .pv-body {
  margin-top: 0 !important;
  padding: 24px 20px 20px !important;
}

.profile-view .c-white,
.profile-view .c-white a,
.profile-view a.c-white {
  color: inherit !important;
}

.profile-view .pv-body > h2,
.profile-view .pv-body > h2.c-white {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--alc-text) !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em;
}

.profile-view .pv-body > p,
.profile-view .pv-body > p small {
  color: var(--alc-muted);
}

.profile-view .pv-body > p a {
  color: var(--alc-primary) !important;
  font-weight: 500;
}

.profile-view .pv-body .pv-contact {
  margin: 0;
  color: var(--alc-text-2);
}

.profile-view .pv-body .pv-contact > li {
  display: flex !important;
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 8px !important;
  font-size: 13px;
  line-height: 1.45;
}

.profile-view .pv-body .pv-contact > li > .md {
  font-size: 18px !important;
  color: var(--alc-subtle);
  margin-top: 1px;
  flex-shrink: 0;
}

.profile-view .pv-body .pv-follow {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin: 18px 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

.profile-view .pv-body .pv-follow > li {
  display: block !important;
  padding: 7px 10px !important;
  background: #f9fafb;
  border: 1px solid var(--alc-border-soft);
  border-radius: var(--alc-radius-sm);
  font-size: 12px;
  color: var(--alc-text-2);
  text-align: left;
}

.profile-view .facturacion-badge {
  background: var(--alc-success-50) !important;
  color: var(--alc-success-700) !important;
  border: 1px solid #abefc6;
  border-radius: var(--alc-radius-sm) !important;
  font-size: 12px;
  letter-spacing: 0.02em;
}

.profile-view .facturacion-badge[style*="f44336"] {
  background: var(--alc-danger-50) !important;
  color: var(--alc-danger-700) !important;
  border-color: #fecdca;
}

.profile-view .datos-facturacion {
  background: #f9fafb !important;
  border: 1px solid var(--alc-border-soft);
  border-radius: var(--alc-radius-sm) !important;
  color: var(--alc-text-2);
}

.profile-view .datos-facturacion strong {
  color: var(--alc-muted);
  font-weight: 600;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* Bloques de color dentro de una tarjeta (detalle de venta, empleado, corte) */
.card-body[class*="bgm-"] {
  border-radius: 0 0 var(--alc-radius) var(--alc-radius);
}

/* Tarjetas de resumen de color (mini charts) */
.mini-charts-item {
  border-radius: var(--alc-radius) !important;
  overflow: hidden;
  box-shadow: var(--alc-shadow) !important;
}

.mini-charts-item .count > h2 {
  font-weight: 700 !important;
  letter-spacing: -0.01em;
}

/* --------------------------------------------------------------------------
   Pestañas
   -------------------------------------------------------------------------- */
.tab-nav {
  box-shadow: inset 0 -1px 0 0 var(--alc-border) !important;
  border-bottom: 0 !important;
}

.tab-nav > li > a {
  color: var(--alc-muted) !important;
  text-transform: none !important;
  font-weight: 500;
  font-size: 13px;
}

.tab-nav > li > a:hover {
  color: var(--alc-text) !important;
}

.tab-nav > li.active > a {
  color: var(--alc-primary) !important;
  font-weight: 600;
}

.tab-nav:not([data-tab-color]) > li > a:after {
  background: var(--alc-primary) !important;
}

.nav-tabs > li > a {
  border-radius: var(--alc-radius-sm) var(--alc-radius-sm) 0 0;
  color: var(--alc-muted);
}

.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: var(--alc-primary);
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   Controles de DataTables
   -------------------------------------------------------------------------- */
.dataTables_wrapper {
  font-size: 13px;
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
  margin: 4px 0 14px;
  color: var(--alc-muted);
}

.dataTables_wrapper .dataTables_length {
  float: left;
}

.dataTables_wrapper .dataTables_filter {
  float: right;
  text-align: right;
}

.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label {
  font-weight: 500;
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.dataTables_wrapper .dataTables_length select {
  width: auto !important;
  min-width: 72px;
  height: 36px;
  padding: 0 28px 0 10px !important;
  border: 1px solid var(--alc-border) !important;
  border-radius: var(--alc-radius-sm) !important;
  background-color: #fff !important;
  color: var(--alc-text);
}

.dataTables_wrapper .dataTables_filter input {
  width: 280px !important;
  max-width: 100%;
  height: 36px;
  margin-left: 0 !important;
  padding: 0 12px 0 34px !important;
  border: 1px solid var(--alc-border) !important;
  border-radius: var(--alc-radius-sm) !important;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2398a2b3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat 11px center !important;
  color: var(--alc-text);
  outline: none;
  box-shadow: none !important;
}

.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus {
  border-color: var(--alc-primary) !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12) !important;
}

.dataTables_wrapper .dataTables_info {
  float: left;
  padding-top: 16px;
  color: var(--alc-muted);
  font-size: 12px;
}

.dataTables_wrapper .dataTables_paginate {
  float: right;
  padding-top: 10px;
  display: flex;
  align-items: center;
  gap: 4px;
}

.dataTables_wrapper .dataTables_paginate > span {
  display: inline-flex;
  gap: 4px;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border: 1px solid var(--alc-border);
  border-radius: var(--alc-radius-sm);
  background: #fff;
  color: var(--alc-text-2) !important;
  font-weight: 500;
  cursor: pointer;
  text-decoration: none !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button .md {
  font-size: 18px;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  border-color: var(--alc-primary);
  color: var(--alc-primary) !important;
  background: var(--alc-primary-50);
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--alc-primary) !important;
  border-color: var(--alc-primary) !important;
  color: #fff !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover {
  opacity: 0.45;
  cursor: default;
  background: #fff;
  border-color: var(--alc-border);
  color: var(--alc-muted) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current.disabled {
  opacity: 1;
  background: var(--alc-primary) !important;
  border-color: var(--alc-primary) !important;
  color: #fff !important;
}

/* El jquery.dataTables.min.js del proyecto pinta la paginación con .btn y la página actual con .bgm-gray */
.dataTables_wrapper .dataTables_paginate > .btn,
.dataTables_wrapper .dataTables_paginate > span > .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border: 1px solid var(--alc-border);
  border-radius: var(--alc-radius-sm);
  background: #fff;
  color: var(--alc-text-2) !important;
  font-weight: 500;
  box-shadow: none;
  text-decoration: none !important;
}

.dataTables_wrapper .dataTables_paginate > .btn .md {
  font-size: 18px;
}

.dataTables_wrapper .dataTables_paginate > .btn:hover,
.dataTables_wrapper .dataTables_paginate > span > .btn:hover {
  border-color: var(--alc-primary);
  color: var(--alc-primary) !important;
  background: var(--alc-primary-50);
}

.dataTables_wrapper .dataTables_paginate > span > .btn.bgm-gray,
.dataTables_wrapper .dataTables_paginate > span > .btn.bgm-gray:hover {
  background-color: var(--alc-primary) !important;
  border-color: var(--alc-primary);
  color: #fff !important;
}

.dataTables_wrapper .dataTables_paginate > .btn.disabled,
.dataTables_wrapper .dataTables_paginate > .btn.disabled:hover {
  opacity: 0.45;
  background: #fff;
  border-color: var(--alc-border);
  color: var(--alc-muted) !important;
}

.dataTables_wrapper .dataTables_paginate .ellipsis {
  padding: 0 4px;
  color: var(--alc-muted);
}

.dataTables_wrapper:after {
  content: "";
  display: table;
  clear: both;
}

table.dataTable td.dataTables_empty {
  padding: 28px 12px !important;
  text-align: center;
  color: var(--alc-muted) !important;
}

table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc {
  cursor: pointer;
  position: relative;
  padding-right: 22px !important;
}

table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after {
  font-family: "Material Design Iconic Font";
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: var(--alc-subtle);
}

table.dataTable thead .sorting:after { content: "\f2a6"; opacity: 0.6; }
table.dataTable thead .sorting_asc:after { content: "\f296"; color: var(--alc-primary); font-size: 18px; }
table.dataTable thead .sorting_desc:after { content: "\f295"; color: var(--alc-primary); font-size: 18px; }

.dt-header-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.dt-header-controls .dataTables_filter {
  margin: 0;
}

.dt-buttons .btn,
.dt-buttons .dt-button {
  border-radius: var(--alc-radius-sm) !important;
}

/* Bootgrid */
.bootgrid-header .search .form-control,
.bootgrid-header .actionBar .btn {
  border-radius: var(--alc-radius-sm) !important;
}

/* Contenido a todo el ancho también con el menú lateral oculto */
@media (min-width: 1200px) {
  #content > .container {
    width: calc(100% - 30px);
  }
}

/* Botones de color: icono/texto siempre blanco sobre el fondo sólido */
.btn-success,
.btn-danger,
.btn-warning {
  color: #fff !important;
}

/* Acciones de Facturas V2: botones de icono con borde, como .alc-icon-btn */
.acciones-fv2-btns {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
}

.acciones-fv2-btns .btn,
.acciones-fv2-btns .btn:focus,
.acciones-fv2-btns .btn:active,
.acciones-fv2-btns .btn:active:focus {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0 !important;
  background: #fff !important;
  border: 1px solid var(--alc-border) !important;
  border-radius: 8px !important;
  color: var(--alc-text-2) !important;
}

.acciones-fv2-btns .btn i {
  font-size: 16px !important;
}

.acciones-fv2-btns .btn-success,
.acciones-fv2-btns .btn-success:focus {
  color: var(--alc-success-700) !important;
}

.acciones-fv2-btns .btn-info,
.acciones-fv2-btns .btn-info:focus {
  color: var(--alc-primary) !important;
}

.acciones-fv2-btns .btn:hover {
  border-color: var(--alc-primary) !important;
  background: var(--alc-primary-50) !important;
  color: var(--alc-primary) !important;
}

.acciones-fv2-btns .btn-success:hover {
  border-color: var(--alc-success) !important;
  background: var(--alc-success-50) !important;
  color: var(--alc-success-700) !important;
}

/* Paneles: cabeceras suaves por estado */
.panel > .panel-heading {
  border-top-left-radius: var(--alc-radius);
  border-top-right-radius: var(--alc-radius);
  border-bottom: 1px solid var(--alc-border);
  padding: 10px 16px;
}

.panel-default > .panel-heading { background: #f8fafc !important; color: var(--alc-text) !important; }
.panel-success > .panel-heading { background: var(--alc-success-50) !important; color: var(--alc-success-700) !important; }
.panel-danger > .panel-heading { background: var(--alc-danger-50) !important; color: var(--alc-danger-700) !important; }
.panel-warning > .panel-heading { background: var(--alc-warning-50) !important; color: var(--alc-warning-700) !important; }
.panel-info > .panel-heading { background: var(--alc-primary-50) !important; color: var(--alc-primary-600) !important; }

.alert-default {
  background: #f8fafc !important;
  border-color: var(--alc-border) !important;
  color: var(--alc-text-2) !important;
}

blockquote {
  margin: 0 0 20px;
  padding: 12px 16px;
  font-size: 13.5px;
  color: var(--alc-text-2);
  background: #f8fafc;
  border-left: 3px solid var(--alc-primary);
  border-radius: 0 8px 8px 0;
}

/* Detalle de servicio */
.servicio-detalle-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.servicio-detalle-header > h2 {
  margin: 0 !important;
}

.servicio-acciones {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.servicio-acciones .btn .md {
  margin-right: 4px;
}

.servicio-acciones .servicio-btn-cancelar .md,
.servicio-acciones .servicio-btn-eliminar .md {
  color: var(--alc-danger);
}

.servicio-detalle-pagina > .card > .alert {
  margin: 16px 24px 0;
}

.servicio-detalle-cuerpo h4 {
  margin: 22px 0 10px;
  font-size: 14px;
  font-weight: 600;
  color: var(--alc-text);
}

.servicio-detalle-cuerpo .servicio-alerta-prioridad,
.servicio-detalle-cuerpo .row.m-b-20 .alert {
  min-height: 64px;
  margin-bottom: 0;
}

.servicio-contacto {
  list-style: none;
  margin: 0 0 6px;
  padding: 0;
}

.servicio-contacto > li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 7px 0;
  font-size: 13.5px;
  color: var(--alc-text-2);
  overflow-wrap: anywhere;
}

.servicio-contacto > li > .md {
  font-size: 18px;
  color: var(--alc-subtle);
  flex-shrink: 0;
  margin-top: 1px;
}

.servicio-contacto > li strong {
  color: var(--alc-text);
  font-weight: 600;
}

/* Buscador: listas por columna con scroll propio */
.alc-buscar-scroll {
  max-height: calc(100vh - 260px);
  min-height: 120px;
  overflow-y: auto;
}

.alc-list-main a:hover strong {
  color: var(--alc-primary);
}

.alc-list-main small {
  display: block;
  line-height: 1.4;
}

.alc-list-side .alc-pill {
  margin-top: 4px;
}

/* --------------------------------------------------------------------------
   Login
   -------------------------------------------------------------------------- */
body.alc-login {
  background: var(--alc-bg) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 24px 16px !important;
  overflow: auto;
}

body.alc-login:before {
  display: none !important;
}

.alc-login-wrap {
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
}

.login-content .lc-block.alc-login-card {
  display: block;
  width: 100% !important;
  margin: 0 !important;
  padding: 36px 36px 32px !important;
  background: #fff !important;
  border: 1px solid var(--alc-border);
  border-radius: 16px !important;
  box-shadow: var(--alc-shadow-lg) !important;
  text-align: left;
}

.alc-login .login-brand {
  margin: 0 0 22px;
}

.alc-login .login-brand img {
  height: 104px;
  margin: -10px 0 -18px;
}

.alc-login-title {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--alc-text);
  letter-spacing: -0.01em;
  text-align: center;
}

.alc-login-sub {
  margin: 6px 0 24px;
  color: var(--alc-muted);
  text-align: center;
}

.alc-login label {
  font-weight: 500;
  color: var(--alc-text-2);
  margin-bottom: 6px;
}

.alc-login-field {
  position: relative;
}

.alc-login-field > .md {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 19px;
  color: var(--alc-subtle);
  pointer-events: none;
}

.alc-login-field .form-control {
  height: 44px;
  padding: 0 12px 0 40px !important;
  border: 1px solid var(--alc-border) !important;
  border-radius: 10px !important;
  background: #fff !important;
  font-size: 14px;
  color: var(--alc-text);
  box-shadow: none;
}

.alc-login-field .form-control:focus {
  border-color: var(--alc-primary) !important;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12) !important;
}

.alc-login-btn {
  height: 46px;
  margin-top: 8px;
  border-radius: 10px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
}

.alc-login-btn .md {
  font-size: 18px;
  vertical-align: -3px;
  margin-left: 4px;
}

.alc-login-foot {
  margin: 18px 0 0;
  text-align: center;
  font-size: 12px;
  color: var(--alc-subtle);
}

@media (max-width: 1599px) {
  .alc-hide-narrow {
    display: none !important;
  }
}

@media (max-width: 991px) {
  .header-inner > li.alc-search {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .alc-kpi-value {
    font-size: 24px;
  }

  .alc-page-head h1 {
    font-size: 22px;
  }
}
