/* ==========================================================
   SIA - PANEL ADMINISTRATIVO
   CSS COMPLETO
   ========================================================== */

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100%;
}

body.admin-body {
  background: #f3f7f7;
  color: #173b32;
  font-family: Arial, Helvetica, sans-serif;
  overflow-x: hidden;
}


/* ==========================================================
   LOGIN
   ========================================================== */

.admin-login-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f3f7f7;
  padding: 24px;
}

.admin-login-card {
  width: 100%;
  max-width: 430px;
  background: #ffffff;
  border-radius: 18px;
  padding: 34px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .12);
}

.admin-login-card img {
  display: block;
  max-width: 160px;
  margin: 0 auto 22px;
}

.admin-login-card h1 {
  margin: 0 0 8px;
  text-align: center;
  color: #174f39;
}

.admin-login-card p {
  margin: 0 0 24px;
  text-align: center;
  color: #637a72;
}

.admin-login-card label {
  display: block;
  margin-bottom: 16px;
  font-weight: 700;
}

.admin-login-card input {
  width: 100%;
  margin-top: 7px;
  padding: 13px 14px;
  border: 1px solid #ccd9d5;
  border-radius: 8px;
  font-size: 16px;
}

.admin-login-card button {
  width: 100%;
  padding: 14px;
  border: 0;
  border-radius: 8px;
  background: #187b4b;
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
}

#loginError {
  min-height: 20px;
  margin-top: 12px;
  text-align: center;
  color: #b42318;
}


/* ==========================================================
   CONTENEDOR ADMIN
   ========================================================== */

#adminApp {
  width: 100%;
  min-height: 100vh;
}


/* ==========================================================
   SIDEBAR
   ========================================================== */

.admin-sidebar {
  position: fixed !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 0 !important;

  width: 280px !important;
  height: 100vh !important;

  margin: 0 !important;
  padding: 30px 24px !important;

  background: #167746 !important;
  color: #ffffff !important;

  overflow-y: auto !important;
  z-index: 1000 !important;
}

.admin-logo {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;

  width: 100% !important;
  margin: 0 0 48px !important;

  color: #ffffff !important;
  text-decoration: none !important;
  font-weight: 800 !important;
}

.admin-logo img {
  width: 116px !important;
  height: auto !important;
  flex: 0 0 auto !important;
  border-radius: 7px;
}

.admin-logo span {
  font-size: 14px !important;
  letter-spacing: .2px;
}

.admin-sidebar nav {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.admin-sidebar nav a {
  display: block !important;
  width: 100% !important;

  padding: 14px 16px !important;

  color: rgba(255,255,255,.88) !important;
  text-decoration: none !important;

  border-radius: 9px !important;

  font-weight: 700 !important;
  line-height: 1.25 !important;
}

.admin-sidebar nav a:hover,
.admin-sidebar nav a.active {
  background: rgba(255,255,255,.12) !important;
  color: #ffffff !important;
}

.admin-sidebar small {
  position: absolute;
  left: 24px;
  bottom: 28px;

  color: rgba(255,255,255,.65);
}


/* ==========================================================
   CONTENIDO PRINCIPAL
   ========================================================== */

.admin-main {
  display: block !important;

  margin: 0 0 0 280px !important;
  padding: 38px 42px 70px !important;

  width: calc(100% - 280px) !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 100vh !important;

  background: #f3f7f7 !important;
}


/* ==========================================================
   ENCABEZADO
   ========================================================== */

.admin-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;

  width: 100% !important;
  max-width: none !important;

  margin: 0 0 28px !important;
  padding: 0 !important;

  gap: 20px !important;
}

.admin-head h1 {
  margin: 4px 0 0 !important;
  font-size: 34px !important;
  line-height: 1.1 !important;
  color: #173b32 !important;
}

.eyebrow {
  color: #5c8175 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 1.4px !important;
}

#exportBtn {
  flex: 0 0 auto !important;
  padding: 11px 18px !important;
  border: 1px solid #187b4b !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  color: #187b4b !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}


/* ==========================================================
   TARJETAS SUPERIORES
   ========================================================== */

.stats-grid {
  display: grid !important;

  grid-template-columns:
    repeat(4, minmax(0, 1fr)) !important;

  gap: 18px !important;

  width: 100% !important;
  max-width: none !important;

  margin: 0 0 24px !important;
  padding: 0 !important;
}

.stats-grid article {
  display: block !important;

  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;

  margin: 0 !important;
  padding: 26px 24px !important;

  background: #ffffff !important;

  border: 1px solid #dce6e3 !important;
  border-radius: 14px !important;

  box-shadow: 0 2px 8px rgba(0,0,0,.025) !important;
}

.stats-grid article span {
  display: block !important;

  margin-bottom: 12px !important;

  color: #698078 !important;
  font-size: 13px !important;
  text-transform: uppercase !important;
}

.stats-grid article b {
  display: block !important;

  color: #173b32 !important;
  font-size: 32px !important;
  line-height: 1.1 !important;
}


/* ==========================================================
   PANELES GENERALES
   ========================================================== */

.panel {
  display: block !important;

  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;

  margin: 0 !important;
  padding: 24px !important;

  background: #ffffff !important;

  border: 1px solid #dce6e3 !important;
  border-radius: 14px !important;

  overflow: hidden !important;
}

.panel h2 {
  margin: 0 0 20px !important;
  color: #173b32 !important;
}


/* ==========================================================
   MUNICIPIOS + PROBLEMAS
   ========================================================== */

.admin-columns {
  display: grid !important;

  grid-template-columns:
    minmax(0, 1fr) minmax(0, 1fr) !important;

  gap: 22px !important;

  width: 100% !important;
  max-width: none !important;

  margin: 0 0 24px !important;
}

.admin-columns > article {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

.rank-list {
  display: block !important;
  width: 100% !important;
}

.rank-row {
  display: grid !important;

  grid-template-columns:
    minmax(110px, 1fr) 45px !important;

  gap: 6px 14px !important;

  width: 100% !important;
  margin-bottom: 15px !important;
}

.rank-row > span:first-child {
  min-width: 0 !important;
  word-break: normal !important;
}

.rank-row > span:nth-child(2) {
  text-align: right !important;
}

.rank-bar {
  grid-column: 1 / -1 !important;

  position: relative !important;

  width: 100% !important;
  height: 6px !important;

  overflow: hidden !important;

  background: #e8efed !important;
  border-radius: 6px !important;
}

.rank-bar i {
  display: block !important;
  height: 100% !important;

  background: #23a8cf !important;
  border-radius: 6px !important;
}


/* ==========================================================
   PROSPECTOS
   ========================================================== */

.leads-panel {
  width: 100% !important;
  margin: 0 0 24px !important;
}

.panel-head {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;

  gap: 20px !important;

  width: 100% !important;

  margin-bottom: 20px !important;
}

.panel-head h2 {
  margin: 4px 0 0 !important;
}

#leadSearch {
  width: 330px !important;
  max-width: 100% !important;

  padding: 11px 13px !important;

  border: 1px solid #cedbd7 !important;
  border-radius: 8px !important;

  font-size: 14px !important;
}

.table-wrap {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;

  overflow-x: auto !important;
  overflow-y: visible !important;
}

.table-wrap table {
  width: 100% !important;
  min-width: 1100px !important;

  border-collapse: collapse !important;
}

.table-wrap th,
.table-wrap td {
  padding: 13px 12px !important;

  border-bottom: 1px solid #e1e9e6 !important;

  text-align: left !important;
  vertical-align: top !important;

  font-size: 13px !important;
}

.table-wrap th {
  background: #f7faf9 !important;
  color: #45655b !important;
  font-weight: 800 !important;
}

.table-wrap td b {
  display: block !important;
  margin-bottom: 4px !important;
}

.table-wrap td small {
  display: block !important;
  margin-top: 4px !important;
  color: #71877f !important;
}

.status-select {
  min-width: 125px !important;

  padding: 8px 9px !important;

  border: 1px solid #c8d8d3 !important;
  border-radius: 7px !important;

  background: #ffffff !important;
}

.empty-state {
  padding: 45px 20px !important;
  text-align: center !important;
}

.hidden {
  display: none !important;
}


/* ==========================================================
   PARÁMETROS
   ========================================================== */

.parameters-panel {
  width: 100% !important;
  margin: 0 !important;
}

.parameter-grid {
  display: grid !important;

  grid-template-columns:
    repeat(2, minmax(0, 1fr)) !important;

  gap: 18px !important;

  width: 100% !important;
}

.parameter-grid article {
  width: 100% !important;
  min-width: 0 !important;

  padding: 18px !important;

  background: #f8fbfa !important;

  border: 1px solid #e0e9e6 !important;
  border-radius: 10px !important;
}


/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 1200px) {

  .stats-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
  }

}


@media (max-width: 900px) {

  .admin-sidebar {
    position: relative !important;

    width: 100% !important;
    height: auto !important;

    padding: 20px !important;
  }

  .admin-sidebar small {
    position: static !important;
    display: block !important;
    margin-top: 25px !important;
  }

  .admin-logo {
    margin-bottom: 20px !important;
  }

  .admin-main {
    margin-left: 0 !important;

    width: 100% !important;

    padding: 25px 20px 50px !important;
  }

  .admin-columns {
    grid-template-columns:
      1fr !important;
  }

  .parameter-grid {
    grid-template-columns:
      1fr !important;
  }

}


@media (max-width: 600px) {

  .stats-grid {
    grid-template-columns:
      1fr !important;
  }

  .admin-head {
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  .panel-head {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  #leadSearch {
    width: 100% !important;
  }

}