/* =====================================================================
   Panel de administración — shell propio (sidebar + contenido).
   Reutiliza tokens de Aurora (definidos en aurora.css) más una paleta
   utilitaria para tablas y formularios. Aquí se prioriza claridad sobre
   ornamento: es una herramienta de trabajo diario.
   ===================================================================== */

:root {
  --adm-teal: #003b46;
  --adm-green: #5f7f1f;
  --adm-green-dark: #445f16;
  --adm-lime: #94b43b;
  --adm-bg: #f4f6f2;
  --adm-card: #ffffff;
  --adm-ink: #16241c;
  --adm-muted: #5f6f65;
  --adm-line: #dde5d8;
  --adm-radius: 14px;
  --adm-shadow: 0 8px 26px rgba(19, 42, 30, .08);
  --adm-sans: "Ancizar Sans", "Muli", Arial, sans-serif;
  --adm-serif: "Ancizar Serif", Georgia, serif;
}

* { box-sizing: border-box; }

.admin-body {
  margin: 0;
  background: var(--adm-bg);
  color: var(--adm-ink);
  font-family: var(--adm-sans);
  font-size: 15px;
  line-height: 1.5;
}

.admin-shell { display: grid; grid-template-columns: 260px 1fr; min-height: 100vh; }

.admin-sidebar {
  background: linear-gradient(180deg, var(--adm-teal) 0%, #012127 100%);
  color: #eaf1ec;
  padding: 24px 18px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: sticky;
  top: 0;
  height: 100vh;
}
.admin-sidebar__brand { display: flex; align-items: center; gap: 12px; }
.admin-sidebar__brand img { width: 34px; height: 34px; }
.admin-sidebar__brand strong { display: block; font-family: var(--adm-serif); font-size: 16px; }
.admin-sidebar__brand span { font-size: 11.5px; color: #a9c6b4; text-transform: uppercase; letter-spacing: .08em; }

.admin-nav { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.admin-nav__link {
  color: #d6e6dc; text-decoration: none; font-size: 14.5px; font-weight: 600;
  padding: 11px 14px; border-radius: 10px; transition: background-color .15s ease;
}
.admin-nav__link:hover { background: rgba(255, 255, 255, .08); }
.admin-nav__link.is-active { background: rgba(148, 180, 59, .22); color: #fff; }

.admin-sidebar__footer { border-top: 1px solid rgba(255, 255, 255, .14); padding-top: 16px; font-size: 13px; }
.admin-sidebar__footer a { color: #cfe0d8; }
.admin-sidebar__user { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; color: #a9c6b4; }
.admin-sidebar__user a { color: #ffd166; }

.admin-content { padding: 32px 36px; overflow-x: hidden; }
.admin-content--full { display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 24px; grid-column: 1 / -1; }

@media (max-width: 900px) {
  .admin-shell { grid-template-columns: 1fr; }
  .admin-sidebar { position: relative; height: auto; }
}

/* Encabezado de página admin */
.admin-page-head { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 16px; margin-bottom: 26px; }
.admin-page-head h1 { font-family: var(--adm-serif); font-size: 26px; margin: 0; }
.admin-page-head p { color: var(--adm-muted); margin: 6px 0 0; font-size: 14px; max-width: 60ch; }

/* Tarjetas */
.admin-card { background: var(--adm-card); border: 1px solid var(--adm-line); border-radius: var(--adm-radius); padding: 22px; box-shadow: var(--adm-shadow); margin-bottom: 22px; }
.admin-card h2 { font-family: var(--adm-serif); font-size: 18px; margin: 0 0 14px; }

/* KPIs reutilizan .apc-kpis / .apc-kpi de aurora.css cuando aplica */

/* Formularios */
.admin-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.admin-field label { font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--adm-teal); }
.admin-field input[type=text], .admin-field input[type=password], .admin-field input[type=number],
.admin-field input[type=url], .admin-field select, .admin-field textarea {
  font-family: var(--adm-sans); font-size: 14.5px; padding: 11px 13px; border-radius: 10px;
  border: 1.5px solid var(--adm-line); background: #fff; color: var(--adm-ink);
}
.admin-field textarea { min-height: 96px; resize: vertical; }
.admin-field input:focus, .admin-field select:focus, .admin-field textarea:focus {
  outline: none; border-color: var(--adm-green); box-shadow: 0 0 0 3px rgba(95, 127, 31, .16);
}
.admin-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 20px; }
@media (max-width: 720px) { .admin-form-grid { grid-template-columns: 1fr; } }

.admin-btn {
  display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 14px;
  padding: 11px 20px; border-radius: 10px; border: 1px solid transparent; cursor: pointer;
  text-decoration: none; font-family: var(--adm-sans);
}
.admin-btn--primary { background: var(--adm-green); color: #fff; }
.admin-btn--primary:hover { background: var(--adm-green-dark); }
.admin-btn--soft { background: #fff; border-color: var(--adm-line); color: var(--adm-teal); }
.admin-btn--soft:hover { border-color: var(--adm-green); }
.admin-btn--danger { background: #fff; border-color: #e3b8b2; color: #9a3b30; }
.admin-btn--danger:hover { background: #fbeceb; }

/* Alertas */
.admin-alert { border-radius: 10px; padding: 13px 16px; font-size: 14px; margin-bottom: 18px; }
.admin-alert--ok { background: #e9f4e0; color: #34521a; border: 1px solid #c7e0ab; }
.admin-alert--error { background: #fbeceb; color: #7a2a20; border: 1px solid #e6b6ae; }
.admin-alert--info { background: #eaf1fb; color: #1d3a63; border: 1px solid #bcd3f0; }

/* Tabla admin */
.admin-table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 13.8px; }
.admin-table th, .admin-table td { text-align: left; padding: 11px 12px; border-bottom: 1px solid var(--adm-line); vertical-align: top; }
.admin-table th { color: var(--adm-muted); font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; }
.admin-table tr:hover td { background: #f7faf3; }
.admin-table .acciones { white-space: nowrap; text-align: right; }
.admin-table .acciones a, .admin-table .acciones button { margin-left: 8px; }

/* Dropzone de importación */
.admin-dropzone {
  border: 2px dashed var(--adm-line); border-radius: var(--adm-radius); padding: 34px;
  text-align: center; background: #fbfdf9;
}
.admin-dropzone h2 { margin-top: 0; }
.admin-dropzone input[type=file] { margin-top: 14px; }

.admin-pill { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 999px; }
.admin-pill--ok { background: #e6f2df; color: var(--adm-green-dark); }
.admin-pill--warn { background: #fbf1d9; color: #8a5f12; }
.admin-pill--error { background: #f5e7e5; color: #9a3b30; }

.admin-login-card { width: min(420px, 100%); background: #fff; border-radius: 20px; padding: 40px 34px; box-shadow: var(--adm-shadow); text-align: center; }
.admin-login-card img { width: 56px; margin-bottom: 14px; }
.admin-login-card h1 { font-family: var(--adm-serif); font-size: 22px; margin: 0 0 4px; }
.admin-login-card p.lede { color: var(--adm-muted); font-size: 14px; margin: 0 0 24px; }
.admin-login-card form { text-align: left; }

/* ==========================================================
   APC_LOGIN_CENTRADO_20260731
   ========================================================== */

html {
  min-height: 100%;
}

body.admin-body {
  box-sizing: border-box;
  display: grid;
  place-items: center;
  min-height: 100vh;
  margin: 0;
  padding: 28px;
  background:
    radial-gradient(
      circle at 50% 20%,
      rgba(95, 127, 31, .08),
      transparent 34%
    ),
    #f5f7f3;
}

body.admin-body *,
body.admin-body *::before,
body.admin-body *::after {
  box-sizing: border-box;
}

body.admin-body .admin-login-card {
  width: 100%;
  max-width: 430px;
  margin: 0;
  padding: 30px;
  border-radius: 18px;
  box-shadow:
    0 20px 55px rgba(26, 60, 47, .13),
    0 4px 14px rgba(26, 60, 47, .06);
}

.admin-login-logo-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: -4px 0 18px;
}

.admin-login-logo {
  display: block;
  width: 92px;
  height: 92px;
  object-fit: contain;
}

body.admin-body .admin-login-card > div:nth-of-type(2) {
  text-align: center;
}

body.admin-body .admin-login-card h1 {
  text-align: center;
}

@media (max-width: 520px) {
  body.admin-body {
    align-items: start;
    padding: 18px;
  }

  body.admin-body .admin-login-card {
    margin-top: 18px;
    padding: 24px 21px;
  }

  .admin-login-logo {
    width: 80px;
    height: 80px;
  }
}

/* APC_LOGIN_CENTRADO_20260731_END */

.admin-login-heading {
  text-align: center;
}

.admin-login-heading p,
.admin-login-heading h1 {
  text-align: center;
}

/* ==========================================================
   APC_LOGIN_CENTRADO_FINAL_20260731
   Contenedor aislado para no afectar el tablero administrativo.
   ========================================================== */

html,
body.admin-login-page {
  min-width: 100%;
  min-height: 100%;
}

body.admin-login-page {
  position: static !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: auto;
  background:
    radial-gradient(
      circle at 50% 18%,
      rgba(95, 127, 31, .10),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      #f8faf6 0%,
      #f2f5f0 100%
    ) !important;
}

/*
 * El uso de position: fixed e inset: 0 evita que reglas previas
 * de flex, grid, márgenes o posiciones del body desplacen la tarjeta.
 */
.admin-login-page .admin-login-stage {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100vw;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 30px;
  overflow: auto;
}

.admin-login-page .admin-login-card {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  float: none !important;
  display: block;
  width: min(100%, 430px) !important;
  max-width: 430px !important;
  height: auto !important;
  min-height: 0 !important;
  margin: auto !important;
  padding: 30px !important;
  transform: none !important;
  border: 1px solid rgba(31, 77, 58, .08);
  border-radius: 20px !important;
  background: #fff;
  box-shadow:
    0 24px 65px rgba(26, 60, 47, .14),
    0 5px 16px rgba(26, 60, 47, .07) !important;
}

.admin-login-page .admin-login-logo-wrap {
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-height: 125px;
  margin: -5px 0 14px !important;
  overflow: visible;
}

/*
 * Solo se fija la altura. El ancho queda automático para respetar
 * completamente la proporción original del SVG.
 */
.admin-login-page .admin-login-logo {
  display: block;
  width: auto !important;
  height: 118px !important;
  max-width: 180px;
  max-height: 118px;
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
  transform: none !important;
}

.admin-login-page .admin-login-heading {
  margin-bottom: 24px !important;
  text-align: center;
}

.admin-login-page .admin-login-heading p,
.admin-login-page .admin-login-heading h1 {
  text-align: center !important;
}

.admin-login-page .admin-login-heading h1 {
  margin-top: 6px !important;
}

@media (max-width: 520px) {
  .admin-login-page .admin-login-stage {
    align-items: flex-start !important;
    padding: 18px;
  }

  .admin-login-page .admin-login-card {
    margin: 18px auto !important;
    padding: 24px 21px !important;
  }

  .admin-login-page .admin-login-logo-wrap {
    min-height: 105px;
  }

  .admin-login-page .admin-login-logo {
    height: 100px !important;
    max-height: 100px;
  }
}

@media (max-height: 700px) and (min-width: 521px) {
  .admin-login-page .admin-login-stage {
    align-items: flex-start !important;
  }

  .admin-login-page .admin-login-card {
    margin: 24px auto !important;
  }
}

/* APC_LOGIN_CENTRADO_FINAL_20260731_END */
