/**
 * SSO MiPortal - Identidad Argentina.gob.ar / Poncho
 * Tipografía: Lora (títulos), Montserrat (textos)
 * Colores: https://argob.github.io/poncho/
 */
@import url("https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Montserrat:wght@300;400;500;600;700&display=swap");
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css");

:root {
  /* Poncho - colores principales */
  --arg-primary: #232D4F;
  --arg-secundario: #3E5A7E;
  --arg-celeste: #039BE5;
  --arg-celeste-argentina: #68C3EF;
  --arg-enlace: #0767A7;
  --arg-negro: #141414;
  --arg-gris: #555555;
  --arg-gris-claro: #838383;
  --arg-gris-niebla: #F2F2F2;
  --arg-borde: #DEE2E6;
  --arg-blanco: #FFFFFF;
  --arg-verde: #2E7D33;
  --arg-rojo: #C62828;
  --arg-amarillo: #E7BA61;
  --bandera-celeste: #75AADB;
  --bandera-amarillo: #FCBF49;
}

/* Base */
body {
  font-family: "Montserrat", sans-serif;
  color: var(--arg-negro);
  font-size: 1rem;
  letter-spacing: -0.015em;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: "Lora", serif;
  font-weight: 600;
  color: var(--arg-primary);
}

/* Navbar - azul Presidencia */
.navbar-dark,
.navbar.bg-dark {
  background-color: var(--arg-primary) !important;
  border-bottom: 3px solid var(--arg-celeste);
}

.navbar-brand {
  font-family: "Lora", serif;
  font-weight: 600;
  font-size: 1.25rem;
}

.navbar-dark .navbar-nav .nav-link {
  font-weight: 500;
}

.navbar-dark .navbar-nav .nav-link:hover {
  color: var(--arg-celeste-argentina) !important;
}

/* Botones */
.btn-primary {
  background-color: #1a2947;
  border-color: #1a2947;
  font-weight: 500;
}

.btn-primary:hover {
  background-color: #2a3d5c;
  border-color: #2a3d5c;
}

.btn-outline-primary {
  border-color: var(--arg-celeste);
  color: var(--arg-celeste);
}

.btn-outline-primary:hover {
  background-color: var(--arg-celeste);
  border-color: var(--arg-celeste);
  color: var(--arg-blanco);
}

/* Cards */
.card {
  border-color: var(--arg-borde);
  border-radius: 4px;
}

.card-title {
  font-family: "Lora", serif;
  color: var(--arg-primary);
}

/* Banner de impersonación (Ver como / Suplantar) */
.impersonation-banner {
  margin-bottom: 1rem;
}

/* Alertas */
.alert-danger {
  background-color: #FCDDDC;
  border-color: var(--arg-rojo);
  color: #7C1C1C;
}

.alert-info {
  background-color: #E3E7ED;
  border-color: var(--arg-secundario);
  color: var(--arg-primary);
}

.alert-success {
  background-color: #CFEEDC;
  border-color: var(--arg-verde);
  color: #1F5421;
}

/* Formularios */
.form-control:focus {
  border-color: var(--arg-celeste);
  box-shadow: 0 0 0 0.2rem rgba(3, 155, 229, 0.25);
}

.form-label {
  font-weight: 500;
  color: var(--arg-negro);
}

.text-muted {
  color: var(--arg-gris-claro) !important;
}

/* Badges */
.badge.bg-success { background-color: var(--arg-verde) !important; }
.badge.bg-warning { background-color: var(--arg-amarillo) !important; color: var(--arg-negro); }
.badge.bg-danger { background-color: var(--arg-rojo) !important; }

/* Tablas */
.table thead th {
  font-family: "Lora", serif;
  font-weight: 600;
  color: var(--arg-primary);
  border-bottom-color: var(--arg-borde);
}

/* Botón mostrar/ocultar contraseña: ícono siempre visible */
.input-group .toggle-password {
  min-width: 2.75rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.input-group .toggle-password .bi {
  font-size: 1.2rem;
  font-style: normal;
}

/* ========== Página de Login ========== */
.login-page {
  background: white;
  min-height: 100vh;
}

.login-page .card {
  border: none;
  border-radius: 8px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.15);
}

.login-page .card-body {
  border-radius: 8px;
}

.login-page .login-logo {
  max-height: 110px;
  width: auto;
  display: inline-block;
}

.login-page h1 {
  color: var(--arg-primary);
  font-family: "Lora", serif;
}

.login-page .btn-primary {
  background-color: #1a2947;
  border-color: #1a2947;
  padding: 0.5rem 1.5rem;
}

.login-page .btn-primary:hover {
  background-color: #2a3d5c;
  border-color: #2a3d5c;
}

.login-page a {
  color: var(--arg-enlace);
}

.login-page a:hover {
  color: var(--arg-celeste);
}

/* ========== Home / Portal ========== */
header.bg-light {
  background-color: var(--arg-gris-niebla) !important;
  border-bottom: 1px solid var(--arg-borde);
}

header.bg-light h1,
header.bg-light .h3 {
  font-family: "Lora", serif;
  color: var(--arg-primary);
}

/* Cards de aplicaciones */
main .card {
  transition: box-shadow 0.2s, border-color 0.2s;
}

main .card:hover {
  border-color: var(--arg-celeste);
  box-shadow: 0 2px 12px rgba(3, 155, 229, 0.15);
}

main .card .btn-primary {
  background-color: #1a2947;
  border-color: #1a2947;
}

/* ========== Admin ========== */
body .table-hover tbody tr:hover {
  background-color: var(--arg-gris-niebla);
}

.navbar-dark .navbar-nav .nav-link.active {
  color: var(--arg-celeste-argentina) !important;
  font-weight: 600;
}

/* Admin dashboard cards */
.admin-card {
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  border-radius: 8px;
  overflow: hidden;
}

.admin-card:hover {
  box-shadow: 0 4px 16px rgba(3, 155, 229, 0.2);
  transform: translateY(-2px);
}

.admin-card .card-body {
  padding: 1.25rem 1.5rem;
}

.admin-card .bi {
  font-size: 1.75rem;
  opacity: 0.9;
}

/* Admin dashboard: cards con botones alineados al fondo */
.admin-dashboard-card .card-body {
  display: flex;
  flex-direction: column;
  min-height: 200px;
}

.admin-dashboard-card .admin-card-actions {
  margin-top: auto;
}

/* Botones de las cards: alinear texto con icono y reducir tamaño del icono */
.admin-dashboard-card .admin-card-actions .btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.admin-dashboard-card .admin-card-actions .btn .bi {
  font-size: 1rem;
}

.admin-dashboard-card .card-title {
  margin-bottom: 0.5rem;
}

/* Responsive admin tables: card layout on small screens */
@media (max-width: 767.98px) {
  .admin-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-left: -0.75rem;
    margin-right: -0.75rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  .admin-table-wrap .table {
    min-width: 680px;
  }

  .admin-actions-cell {
    white-space: nowrap;
  }

  .admin-actions-cell .btn-group-vertical,
  .admin-actions-cell .btn {
    margin-bottom: 0.25rem;
  }
}

@media (max-width: 575.98px) {
  .admin-page-header {
    flex-direction: column;
    align-items: stretch !important;
    gap: 1rem;
  }

  .admin-page-header .btn {
    width: 100%;
  }
}
