*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
}

html {
  font-size: 16px;
}

body {
  margin: 0;
  font-family: system-ui, Arial, sans-serif;
  background: #f5f6f8;
  color: #1f2937;
}

body.app-body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font-size: 1.02rem;
  line-height: 1.6;
}

.wrap {
  max-width: 1200px;
  margin: auto;
  padding: 1rem;
}

/* =========================================================
   LAYOUT GENERAL
   ========================================================= */

.app-main {
  flex: 1 0 auto;
  padding-top: 0;
  padding-bottom: 2rem;
}

.app-main .container,
.app-main .container-fluid {
  max-width: 1280px;
}

/* =========================================================
   CABECERA
   ========================================================= */

.app-header {
  position: static;
  background: #f3f3f3;
  border-bottom: 0;
  z-index: auto;
}

.header-top {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  min-height: 112px;
  padding: 0.9rem 1rem 0.8rem;
  max-width: 1200px;
  margin: auto;
}

.logo-left {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
}

.logo-right {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
}

.logo-left img,
.logo-right img {
  max-height: 78px;
  width: auto;
  object-fit: contain;
}

.header-title {
  text-align: center;
  line-height: 1.2;
  max-width: 720px;
  margin: 0 auto;
}

.header-title h1 {
  margin: 0;
  font-size: 1.55rem;
  line-height: 1.2;
  font-weight: 700;
  color: #000;
  text-align: center;
}

.header-title h2 {
  margin: 0.15rem 0 0;
  font-size: 0.98rem;
  font-weight: 600;
  color: #000;
  text-align: center;
}

.header-bar {
  height: 5px;
  background: #8b1c2b;
  width: 100%;
  margin: 0;
}

@media (min-width: 992px) {
  .app-header {
    position: sticky;
    top: 0;
    z-index: 1020;
    background: #f3f3f3;
  }
}

/* =========================================================
   TIPOGRAFÍA GENERAL
   ========================================================= */

h1 {
  font-size: 1.2rem;
  margin: 0;
}

@media (min-width: 768px) {
  h1 {
    font-size: 1.5rem;
  }
}

.container {
  font-size: 16px;
  line-height: 1.45;
}

@media (min-width: 992px) {
  .container {
    font-size: 16px;
  }
}

.bs-title {
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: 0.3px;
  margin-bottom: 0;
}

/* =========================================================
   CONTENEDORES / ESPACIADOS
   ========================================================= */

.container-fluid {
  padding-left: 12px;
  padding-right: 12px;
}

@media (min-width: 992px) {
  .container-fluid {
    max-width: 1100px;
    margin: 0 auto;
  }
}

main.container {
  padding-top: 1rem;
}

.bs-card-h {
  padding: 18px 20px;
}

.bs-card-b {
  padding: 24px 20px;
}

.bs-subhead {
  padding: 0.5rem 0.75rem;
  background: #f3f6fb;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 0.75rem;
}

.pd-wrap {
  background: #fdfefe;
  padding: 12px;
  border-radius: 6px;
}

/* =========================================================
   FOOTER
   ========================================================= */

.footer {
  margin-top: auto;
  padding: 12px 0;
  background: #f8f9fa;
  border-top: 1px solid #dee2e6;
  text-align: center;
  font-size: 0.9rem;
  color: #6c757d;
}

.footer small {
  font-size: 0.96rem;
}

/* =========================================================
   MODALES / AVISOS
   ========================================================= */

@media (min-width: 992px) {
  .modal-body {
    font-size: 1rem;
    line-height: 1.6;
  }
}

#alertValidar {
  position: fixed;
  top: 110px;
  left: 50%;
  transform: translateX(-50%);
  width: min(820px, calc(100% - 2rem));
  z-index: 2000;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
  border-radius: 10px;
}

@media (max-width: 576px) {
  #alertValidar {
    top: 85px;
    width: calc(100% - 1rem);
  }
}

/* =========================================================
   DEMO
   ========================================================= */

.demo-banner {
  position: sticky;
  top: 0;
  z-index: 1030;
  width: 100%;
  background: linear-gradient(90deg, #b3001b 0%, #c7001e 50%, #b3001b 100%);
  color: #fff;
  text-align: center;
  font-weight: 700;
  font-size: 0.92rem;
  letter-spacing: 0.04em;
  padding: 0.5rem 1rem;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}

.demo-watermark {
  position: fixed;
  top: 58%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-24deg);
  z-index: 50;
  pointer-events: none;
  user-select: none;
  font-weight: 800;
  font-size: clamp(4rem, 16vw, 11rem);
  line-height: 1;
  letter-spacing: 0.08em;
  color: rgba(179, 0, 27, 0.1);
  text-transform: uppercase;
  white-space: nowrap;
}

/* =========================================================
   MENÚ PRINCIPAL
   ========================================================= */

.menu-principal-wrap {
  width: 100vw;
  margin: 0 0 1.2rem;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #f3f3f3;
  border-top: 0;
  border-bottom: 1px solid #dddddd;
  padding: 0.35rem 0 0.55rem;
}

.menu-principal-bar {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.menu-principal-shell {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

.menu-principal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.9rem;
  flex-wrap: wrap;
}

.menu-principal-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: 0.01em;
}

.menu-principal-subtitle {
  margin: 0;
  font-size: 0.95rem;
  color: #64748b;
  line-height: 1.4;
}

.menu-principal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  justify-content: flex-start;
  padding: 0;
  margin: 0;
}

.menu-principal-btn {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 38px;
  padding: 0.56rem 1rem;
  border: 1px solid #2a99b2;
  border-radius: 0.2rem;
  background: #37aeca;
  color: #fff;
  font-weight: 700;
  font-size: 0.94rem;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
  transition: background-color 0.15s ease, border-color 0.15s ease;
  cursor: pointer;
}

.menu-principal-btn:hover,
.menu-principal-btn:focus {
  background: #2c9ab4;
  border-color: #227f95;
  color: #fff;
  box-shadow: none;
  transform: none;
  text-decoration: none;
  outline: none;
}

.menu-principal-btn--active {
  background: #1f7f96;
  border-color: #176779;
}

.menu-principal-btn--active:hover,
.menu-principal-btn--active:focus {
  background: #1a7085;
  color: #fff;
}

.menu-principal-btn i {
  font-size: 0.9rem;
  flex: 0 0 auto;
}

.menu-principal-btn span {
  display: inline-block;
  white-space: normal;
}

.menu-principal-btn--normal {
  min-width: 190px;
}

.menu-principal-btn--wide {
  min-width: 250px;
}

/* =========================================================
   PORTADA BASE
   ========================================================= */

.portada,
.portada * {
  box-sizing: border-box;
}

.portada .box,
.portada .card,
.portada .card-body,
.portada .contenido {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  min-width: 0;
}

.portada p,
.portada li {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.35;
}

.portada-intro {
  margin-bottom: 1.8rem !important;
}

.portada-intro h2 {
  font-size: 1.8rem;
  line-height: 1.2;
  font-weight: 700;
}

.portada-intro p {
  font-size: 1rem;
}

.portada-lista {
  padding-left: 1.2rem;
  margin-bottom: 0;
}

.portada-lista li {
  font-size: 1rem;
  line-height: 1.55;
  margin-bottom: 0.7rem;
}

.portada-lista li:last-child {
  margin-bottom: 0;
}

.portada-lista strong.text-danger {
  font-weight: 800;
}

/* =========================================================
   TARJETAS GENERALES
   ========================================================= */

.card {
  border-radius: 0.9rem;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  background: #fdfdfd;
}

.card-body {
  padding: 1.1rem 1.2rem !important;
  font-size: 1rem;
}

.card-header {
  background: #f1f3f5;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  font-weight: 700;
  text-align: left;
  padding: 0.7rem 1rem 0.7rem 1.2rem;
  font-size: 1rem;
}

section h3.h4,
.portada-enlaces-wrap h3 {
  font-size: 1.35rem;
  line-height: 1.25;
  font-weight: 700;
}

/* =========================================================
   PORTADA ESTILO CARD
   ========================================================= */

.portada-card .card {
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 1rem;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  background: #fdfdfd;
}

.portada-card .card-header,
.portada-centro-card .card-header {
  background: #f1f3f5;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  color: #111827;
  font-weight: 800;
  text-align: left;
  padding: 0.8rem 1rem 0.8rem 1.2rem;
  font-size: 1rem;
}

.portada-card .card-body {
  padding: 1.1rem 1.2rem !important;
}

.portada-periodo .card-body {
  padding-top: 1.35rem !important;
  padding-bottom: 1.35rem !important;
}

.portada-periodo-titulo {
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.2;
  color: #111827;
}

.portada-periodo-fecha {
  font-size: 1.1rem;
  line-height: 1.35;
}

.portada-periodo-subtexto {
  font-size: 1rem;
  line-height: 1.45;
  color: #1f2937;
}

.portada-bloque {
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
}

.gestiones-wrap {
  padding: 1rem !important;
}

.portada-accion {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  background: #f8f9fb;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 0.9rem;
  padding: 0.9rem 1rem;
  text-decoration: none;
  transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.portada-accion:hover,
.portada-accion:focus {
  background: #eef3ff;
  border-color: #b6ccff;
  transform: translateY(-1px);
  text-decoration: none;
}

.portada-accion-icono {
  width: 2.25rem;
  height: 2.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  color: #0d3bff;
  flex: 0 0 2.25rem;
  font-size: 1.05rem;
}

.portada-accion-texto {
  font-weight: 700;
  color: #0d3bff;
  line-height: 1.35;
}

.portada-enlaces-wrap {
  margin-top: 1.8rem;
}

.portada-centro-card {
  border-radius: 1rem;
  overflow: hidden;
  background: #fff;
}

.portada-centro-header {
  background: #f1f3f5;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  color: #111827;
  font-weight: 800;
  text-align: left;
  padding: 0.8rem 1rem 0.8rem 1.2rem;
  font-size: 1rem;
}

.portada-centro-logo {
  max-height: 72px;
  width: auto;
  object-fit: contain;
}

.portada-link-btn {
  white-space: normal;
  border-radius: 0.75rem;
  font-size: 0.98rem;
  padding: 0.9rem 1rem;
  line-height: 1.4;
}

.portada-link-text {
  display: block;
  font-size: 0.98rem;
  line-height: 1.4;
  font-weight: 500;
}

/* =========================================================
   GRID AUXILIAR
   ========================================================= */

.bs-grid {
  display: grid;
  gap: 16px;
}

.bs-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bs-grid > * {
  min-width: 0;
}

.bs-note,
.bs-note * {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* =========================================================
   LOGIN VP0
   ========================================================= */

.vp0-login table {
  width: 100% !important;
  max-width: 720px;
  margin: 0 auto;
}

.vp0-login td {
  padding: 8px 10px;
  vertical-align: middle;
}

.vp0-login input[type="text"],
.vp0-login input[type="password"],
.vp0-login select {
  width: 100% !important;
  max-width: 320px;
}

.vp0-login .help {
  font-size: 0.95rem;
  color: #6c757d;
  line-height: 1.35;
}

.vp0-login .actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 16px;
}

.vp0-login .actions input,
.vp0-login .actions a {
  min-width: 140px;
}

.vp0-login .form-control,
.vp0-login .form-select {
  font-size: 16px;
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 991.98px) {
  html {
    font-size: 16px;
  }

  .app-header .header-top {
    min-height: 104px;
  }

  .logo-left img,
  .logo-right img,
  .app-header .logo-left img {
    max-height: 72px;
  }

  .app-header .header-title h1 {
    font-size: 1.4rem;
  }

  .menu-principal-wrap {
    padding: 0.35rem 0 0.5rem;
  }

  .menu-principal-bar {
    padding: 0 0.75rem;
  }

  .menu-principal-btn {
    font-size: 0.91rem;
    padding: 0.52rem 0.9rem;
  }

  .portada-intro h2,
  .portada-periodo-titulo {
    font-size: 1.65rem;
  }

  section h3.h4,
  .portada-enlaces-wrap h3 {
    font-size: 1.25rem;
  }
}

/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 767.98px) {
  .header-top {
    position: static;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    min-height: auto;
    padding: 0.95rem 0.85rem 0.9rem;
    max-width: 100%;
    text-align: center;
  }

  .logo-left,
  .logo-right {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    transform: none;
    margin: 0;
    justify-self: center;
  }

  html {
    font-size: 16px;
  }

  body {
    font-size: 15px;
  }

  body.app-body {
    font-size: 1rem;
    line-height: 1.68;
  }

  .container {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    font-size: 15px;
  }

  .container-fluid {
    padding-left: 12px;
    padding-right: 12px;
  }

  .app-main {
    padding-top: 0;
    padding-bottom: 1.7rem;
  }

  .app-main .container,
  .app-main .container-fluid {
    width: min(100% - 24px, 760px);
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }

  .logo-left img,
  .logo-right img,
  .app-header .logo-left img {
    display: block;
    max-height: 58px;
    width: auto;
    margin: 0 auto;
  }

  .header-title {
    width: 100%;
    max-width: 22rem;
    margin: 0 auto;
    text-align: center;
    flex: 0 0 auto;
  }

  .app-header .header-title h1,
  .header-title h1 {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    font-size: 1.22rem;
    line-height: 1.18;
    text-align: center;
    font-weight: 800;
  }

  .header-title h2 {
    font-size: 0.92rem;
    line-height: 1.3;
    text-align: center;
  }

  .demo-banner {
    font-size: 0.82rem;
    padding: 0.52rem 0.7rem;
  }

  .demo-watermark {
    top: 54%;
    font-size: clamp(3rem, 22vw, 6rem);
    color: rgba(179, 0, 27, 0.08);
  }

  .menu-principal-wrap {
    width: auto;
    margin: 0 0 1rem 0;
    padding: 0.45rem 0 0.6rem;
    border-bottom: 1px solid #dddddd;
    background: #f3f3f3;
  }

  .menu-principal-bar {
    padding: 0 0.75rem;
  }

  .menu-principal-shell {
    padding: 0;
    border-radius: 0;
  }

  .menu-principal-head {
    margin-bottom: 0.85rem;
  }

  .menu-principal-title {
    font-size: 1rem;
    font-weight: 800;
  }

  .menu-principal-subtitle {
    font-size: 0.9rem;
    line-height: 1.4;
  }

  .menu-principal-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
  }

  .menu-principal-btn,
  .menu-principal-btn--normal,
  .menu-principal-btn--wide {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    font-size: 0.92rem;
    padding: 0.72rem 0.85rem;
    border-radius: 0.35rem;
    font-weight: 800;
  }

  .menu-principal-btn i {
    font-size: 0.92rem;
  }

  .portada-intro {
    margin-bottom: 1.45rem !important;
    padding-left: 0.2rem;
    padding-right: 0.2rem;
  }

  .portada-intro h2 {
    font-size: 1.3rem;
    line-height: 1.16;
    max-width: 12ch;
    margin-left: auto;
    margin-right: auto;
    font-weight: 800;
  }

  .portada-intro p {
    font-size: 0.95rem;
    line-height: 1.45;
    max-width: 26ch;
    margin-left: auto;
    margin-right: auto;
    font-weight: 600;
  }

  .portada-periodo-titulo {
    font-size: 1.3rem;
  }

  .portada-periodo-fecha {
    font-size: 1rem;
  }

  .portada-periodo-subtexto {
    font-size: 0.95rem;
  }

  section .card,
  .menu-principal-shell,
  .portada-centro-card {
    border-radius: 1rem;
  }

  .card-body,
  .portada-card .card-body {
    padding: 1rem !important;
    font-size: 0.96rem;
  }

  section h3.h4,
  .portada-enlaces-wrap h3 {
    font-size: 1.02rem;
    line-height: 1.24;
    margin-bottom: 1rem !important;
    font-weight: 800;
    text-align: center;
  }

  .portada-lista,
  .portada-card .portada-lista {
    padding-left: 1rem;
    margin-bottom: 0;
  }

  .portada-lista li,
  .portada-card .portada-lista li {
    font-size: 0.96rem;
    line-height: 1.55;
    margin-bottom: 0.7rem;
  }

  .portada-lista li:last-child,
  .portada-card .portada-lista li:last-child {
    margin-bottom: 0;
  }

  .portada-lista strong.text-danger {
    font-weight: 900;
  }

  .portada-enlaces-wrap {
    margin-top: 1.4rem;
  }

  .portada-centro-header,
  .portada-card .card-header,
  .card-header {
    font-size: 0.96rem;
    padding: 0.85rem 0.95rem 0.85rem 1rem;
    text-align: left;
  }

  .portada-centro-logo {
    max-height: 78px;
  }

  .portada-accion {
    padding: 0.8rem 0.9rem;
    gap: 0.75rem;
  }

  .portada-accion-icono {
    width: 2rem;
    height: 2rem;
    flex-basis: 2rem;
    font-size: 0.95rem;
  }

  .portada-accion-texto {
    font-size: 0.95rem;
  }

  .portada-link-btn {
    font-size: 0.95rem;
    padding: 0.9rem;
    line-height: 1.4;
    border-radius: 0.9rem;
  }

  .portada-link-text {
    line-height: 1.4;
    font-weight: 600;
  }

  .footer {
    padding-top: 0.95rem;
    padding-bottom: 0.95rem;
  }

  .footer small {
    font-size: 0.92rem;
  }

  main,
  main p,
  main li {
    font-size: 0.96rem;
  }

  main h1 {
    font-size: 1.35rem !important;
    line-height: 1.2 !important;
  }

  main h2 {
    font-size: 1.18rem !important;
    line-height: 1.25 !important;
  }

  main h3 {
    font-size: 1.05rem !important;
    line-height: 1.3 !important;
  }

  main .btn,
  main input[type="button"],
  main input[type="submit"] {
    font-size: 16px !important;
  }

  main input,
  main select,
  main textarea,
  .vp0-login input[type="text"],
  .vp0-login input[type="password"],
  .vp0-login select {
    font-size: 16px !important;
  }

  .vp0-login table,
  .vp0-login tbody,
  .vp0-login tr,
  .vp0-login td {
    display: block;
    width: 100% !important;
  }

  .vp0-login td {
    padding: 6px 0;
  }

  .vp0-login input[type="text"],
  .vp0-login input[type="password"],
  .vp0-login select {
    max-width: 100% !important;
  }

  .vp0-login .actions input,
  .vp0-login .actions a {
    width: 100%;
    max-width: 420px;
  }

  .bs-grid-2 {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   DESKTOP EXTRA
   ========================================================= */

@media (min-width: 992px) {
  main {
    font-size: 1rem;
    line-height: 1.5;
  }

  main h1 {
    font-size: 1.5rem;
  }

  main h2 {
    font-size: 1.28rem;
  }

  main h3 {
    font-size: 1.1rem;
  }

  main p,
  main li {
    font-size: 1rem;
  }

  main .btn,
  main .p-btn {
    font-size: 1rem;
  }

  .app-main {
    padding-top: 0;
  }
}

.login0-actions {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.login0-btn {
  min-width: 146px;
  height: 42px;
  padding: 0.55rem 1.25rem;
  border-radius: 0.45rem;
  font-weight: 600;
  line-height: 1.2;
}

@media (max-width: 767.98px) {
  .login0-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .login0-btn {
    width: 100%;
    min-width: 0;
  }
}

/* Modal global por encima de backdrop, header sticky y banner demo */
#appModal {
  z-index: 20000 !important;
}

.modal-backdrop {
  z-index: 19990 !important;
}

#appModal .modal-dialog {
  z-index: 20001 !important;
}

#appModal .modal-content {
  position: relative;
  z-index: 20002 !important;
}

#appModal .modal-dialog {
  margin-top: 6rem;
}

@media (max-width: 767.98px) {
  #appModal .modal-dialog {
    margin-top: 4.5rem;
  }
}

/* =========================================================
   
/* =========================================================
   GESTIONPRE / RESGUARDO / MODPRE
   ========================================================= */

/* ---------- shell ---------- */

.gp-shell{
  max-width: 1080px;
  margin: 0 auto;
  padding: 20px 16px 10px;
}

.gp-header{
  max-width: 1080px;
  margin: 10px auto 20px;
  padding: 0 16px;
}

.gp-user-badge{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #eef5fb;
  border: 1px solid #d6e4f0;
  font-size: 13px;
  color: #16324f;
  font-weight: 600;
  margin-bottom: 10px;
}

.gp-user-badge span{
  opacity: .7;
  font-weight: 500;
}

.gp-hide-legacy{
  display: none !important;
}

/* ---------- cards base ---------- */

.gp-card,
.gp-doc-block,
.gp-pre-card{
  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
}

.gp-card,
.gp-docpers-table,
.gp-pre-card{
  margin-bottom: 22px;
}

.gp-card,
.gp-doc-block{
  overflow: hidden;
}

.gp-card-header,
.gp-card-head,
.gp-doc-block .bs-card-h{
  background: #f4f8fb;
  border-bottom: 1px solid #e3ebf3;
  padding: 14px 18px;
}

.gp-card-title,
.gp-card-head h2,
.gp-doc-block .bs-title{
  margin: 0;
  font-size: 18px;
  line-height: 1.2;
  color: #16324f;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.gp-card-content,
.gp-card-body,
.gp-doc-block .bs-card-b{
  padding: 18px;
  background: #fff;
}

.gp-card-footer{
  padding: 16px;
  border-top: 1px solid #eee;
  background: #fafafa;
}

/* ---------- gestionpre datos personales ---------- */

.gp-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.gp-field{
  background: #fbfdff;
  border: 1px solid #e5edf5;
  border-radius: 12px;
  padding: 12px 14px;
}

.gp-label{
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  color: #5b6b7c;
}

.gp-value{
  font-size: 16px;
  font-weight: 600;
  color: #172b4d;
}

/* ---------- documentación datos personales ---------- */

.gp-docpers-table{
  width: 100% !important;
  max-width: 1080px;
  margin: 0 auto 22px;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  border-collapse: separate;
  border-spacing: 0;
}

.gp-docpers-table tbody,
.gp-docpers-table tr,
.gp-docpers-table td{
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.gp-docpers-table > tbody > tr > td{
  padding: 0 !important;
}

.gp-doc-block{
  margin: 0 auto;
}

.gp-doc-note,
.gp-doc-note-pre{
  background: #fbfdff;
  border: 1px solid #e5edf5;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
}

.gp-doc-note:last-child,
.gp-doc-note-pre:last-child{
  margin-bottom: 0;
}

.gp-doc-name{
  margin-bottom: 10px;
  font-weight: 600;
  color: #172b4d;
  line-height: 1.35;
}

.gp-doc-name-ok{ color: #198754; }

.gp-doc-msg{
  margin-top: 10px;
  font-weight: 700;
  line-height: 1.4;
}

.gp-doc-msg-danger{ color: #a12626; }
.gp-doc-msg-success{ color: #146c43; }
.gp-doc-msg-warning{ color: #8a6d3b; }

.gp-doc-help{
  margin-top: 10px;
  margin-bottom: 10px;
  color: #5f6b7a;
  line-height: 1.45;
}

.gp-doc-block .form-control,
.gp-doc-block-pre .form-control{
  width: 100%;
  max-width: 100%;
  margin-bottom: 12px !important;
}

.gp-doc-block .btn,
.gp-doc-block-pre .btn,
.gp-doc-note-pre .btn{
  min-width: 180px;
}

.gp-doc-block .text-muted.small,
.gp-doc-block-pre .text-muted.small{
  line-height: 1.45;
}

/* ---------- tarjetas de preinscripción ---------- */

.gp-pre-card{
  max-width: 1080px;
  margin: 0 auto 22px;
  padding: 0 1.25rem 1rem;
}

.gp-pre-card > table{
  width: 100% !important;
  margin: 0 !important;
}

.gp-pre-card table[width="650"]{
  width: 100% !important;
  max-width: 100% !important;
}

.gp-pre-head{
  margin: 0 -1.25rem 1rem;
}

.gp-pre-head-main{
  min-width: 0;
  padding: 0.8rem 1rem 1rem;
}

.gp-pre-title{
  display: block;
  margin: 0;
  padding: 14px 18px;
  background: #f4f8fb;
  border-bottom: 1px solid #e3ebf3;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 700;
  color: #16324f;
}

.gp-pre-centro{
  margin-top: 8px;
  margin-bottom: 14px;
  font-size: 1.1rem;
  font-weight: 800;
  color: #0b5f8a;
}

.gp-pre-meta{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 6px;
  margin-bottom: 14px;
}

.gp-pre-chip{
  padding: .4rem .7rem;
  border-radius: 999px;
  background: #f4f8fb;
  border: 1px solid #dbe7f1;
  font-size: .85rem;
}

.gp-pre-chip-pref{
  background: #eef8ee;
  border-color: #cfe4cf;
  color: #21603a;
  font-weight: 700;
}

.gp-pre-result{
  margin-top: 14px;
  padding: 1rem 1.1rem;
  border-radius: 14px;
  font-weight: 700;
}

.gp-pre-result.is-ok{
  background: #eef8ee;
  border: 1px solid #cfe4cf;
  color: #136734;
}

.gp-pre-result.is-warn{
  background: #fff8e8;
  border: 1px solid #eedfb4;
  color: #8a5a00;
}

.gp-pre-result.is-danger{
  background: #fdeeee;
  border: 1px solid #efcaca;
  color: #a12626;
}

/* ---------- documentación en preinscripciones ---------- */

.gp-doc-block-pre{
  margin-top: 1rem !important;
}

.gp-doc-block-pre .bs-card-h{
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.gp-doc-block-pre .bs-card-b{
  padding-top: 1.1rem;
  padding-bottom: 1.1rem;
}

.gp-doc-upload-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
}

.gp-doc-upload-row .gp-doc-file{
  flex: 1 1 320px;
  min-width: 240px;
}

.gp-doc-upload-row .gp-doc-btn{
  flex: 0 0 auto;
  min-width: 180px;
}

.gp-doc-block-pre,
.gp-doc-block-pre .bs-card-h,
.gp-doc-block-pre .bs-card-b{
  border-bottom-color: rgba(0, 0, 0, .08) !important;
  box-shadow: none;
}

.gp-doc-block-pre::before,
.gp-doc-block-pre::after{
  display: none !important;
}

.gp-doc-block-pre-wrap,
.gp-doc-block-pre-wrap td,
.gp-doc-block-pre-wrap tr{
  background-image: none !important;
  box-shadow: none !important;
}

/* ---------- alertas ---------- */

.gp-alert-danger{
  border-radius: .75rem;
  border: 1px solid rgba(220, 53, 69, .25);
  background: #f8d7da;
  color: #842029;
  padding: .9rem 1.1rem;
  font-size: .98rem;
  line-height: 1.45;
}

.gp-alert-danger strong{
  font-weight: 700;
}

/* ---------- botones globales gp ---------- */

.gp-pre-actions{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .9rem 1.1rem;
  padding: 1.1rem 0 .35rem;
}

.gp-action-btn{
  appearance: none;
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #0f172a;
  border-radius: .75rem;
  min-width: 190px;
  min-height: 42px;
  padding: .7rem 1rem;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
}

.gp-action-btn:hover,
.gp-action-btn:focus{
  transform: translateY(-1px);
  text-decoration: none;
  outline: none;
}

.gp-action-btn-primary{
  background: #0f6c9b;
  border-color: #0f6c9b;
  color: #fff;
}

.gp-action-btn-primary:hover,
.gp-action-btn-primary:focus{
  background: #0c5b83;
  border-color: #0c5b83;
  color: #fff;
}

.gp-action-btn-secondary{
  background: #eef6ef;
  border-color: #b8d5bf;
  color: #1f5f2f;
}

.gp-action-btn-secondary:hover,
.gp-action-btn-secondary:focus{
  background: #e3f0e5;
  border-color: #a6c8ae;
  color: #184b25;
}

.gp-action-btn-outline{
  background: #fff;
  border-color: #9fb7c9;
  color: #0f4c75;
}

.gp-action-btn-outline:hover,
.gp-action-btn-outline:focus{
  background: #f5f9fc;
  border-color: #86a7bf;
  color: #0d3f60;
}

.gp-action-btn-danger{
  background: #fff5f5;
  border-color: #f0b8b8;
  color: #b42318;
}

.gp-action-btn-danger:hover,
.gp-action-btn-danger:focus{
  background: #fdecec;
  border-color: #e59a9a;
  color: #912018;
}

.gp-newpre-wrap{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .9rem;
  margin: 1.5rem auto 0;
  padding: .25rem 0 0;
}

.gp-action-btn-newpre{
  min-width: 220px;
}

.gp-resguardo-actions{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.gp-resguardo-actions .gp-action-btn{
  min-width: 160px;
}

/* ---------- modal contraseña ---------- */

#passwordOverlay.gp-password-overlay{
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
  display: none;
  align-items: center !important;
  justify-content: center !important;
  padding: 20px !important;
  background: rgba(15, 23, 42, .45) !important;
}

#passwordOverlay.gp-password-overlay.is-open{
  display: flex !important;
}

#passwordOverlay .gp-password-modal{
  width: 100% !important;
  max-width: 620px !important;
  background: #fff !important;
  border-radius: 18px !important;
  box-shadow: 0 24px 80px rgba(0,0,0,.25) !important;
  overflow: hidden !important;
  position: relative !important;
}

#passwordOverlay .gp-password-modal-header{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 18px 22px !important;
  border-bottom: 1px solid #e5e7eb !important;
}

#passwordOverlay .gp-password-modal-header h3{
  margin: 0 !important;
  font-size: 1.2rem !important;
  color: #0f172a !important;
}

#passwordOverlay .gp-password-close{
  border: 0 !important;
  background: transparent !important;
  font-size: 34px !important;
  line-height: 1 !important;
  color: #475569 !important;
  cursor: pointer !important;
}

#passwordOverlay .gp-password-modal-body{
  padding: 22px !important;
}

body.gp-password-open{
  overflow: hidden !important;
}

#div_password_modal table{
  width: 100% !important;
  margin: 0 !important;
}

#div_password_modal form{
  margin: 0 !important;
}

.gp-password-form{
  text-align: center;
  padding: 10px 10px 0;
}

.gp-password-text{
  color: #dc2626;
  font-weight: 500;
  margin-bottom: 14px;
}

.gp-password-input{
  max-width: 220px;
  margin: 0 auto 18px;
  text-align: center;
}

.gp-password-actions{
  margin-top: 10px;
}

/* ---------- modpre ---------- */

.gp-modpre-wrap{
  max-width: 980px;
  margin: 0 auto;
  padding: 0 12px 28px;
}

.gp-modpre-card{
  margin-bottom: 20px;
  border-radius: 18px;
  overflow: hidden;
}

.gp-modpre-card .gp-card-header{
  padding: 22px 20px 14px;
  border-bottom: 1px solid #dbe4ee;
  background: #f8fafc;
}

.gp-modpre-card .gp-card-title{
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #16365c;
  text-transform: uppercase;
}

.gp-modpre-card .gp-card-content{
  padding: 18px;
}

.gp-summary-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.gp-summary-item{
  background: #f8fafc;
  border: 1px solid #dbe4ee;
  border-radius: 16px;
  padding: 14px 16px;
}

.gp-summary-item-full{
  grid-column: 1 / -1;
}

.gp-summary-label{
  font-size: 12px;
  font-weight: 700;
  color: #5f7695;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.gp-summary-value{
  font-size: 16px;
  font-weight: 700;
  color: #0f2e57;
  line-height: 1.35;
}

.gp-modpre-panel{
  border-radius: 16px;
  padding: 18px;
  margin-bottom: 16px;
}

.gp-modpre-panel-main{
  background: #edf8ed;
  border: 1px solid #d4ead4;
}

.gp-modpre-panel-soft{
  background: #fff9db;
  border: 1px solid #f0e3a8;
}

.gp-modpre-form-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.gp-modpre-subgrid{
  display: grid;
  gap: 14px;
}

.gp-modpre-field{
  display: flex;
  flex-direction: column;
}

.gp-modpre-field-small{
  max-width: 360px;
}

.gp-modpre-panel-main .form-select,
.gp-modpre-panel-soft .form-select{
  min-height: 44px;
  border-radius: 10px;
}

.gp-modpre-divider{
  height: 2px;
}

.gp-modpre-help{
  background: #f8fafc;
  border: 1px solid #dbe4ee;
  border-radius: 16px;
  padding: 16px 18px;
  color: #334155;
  line-height: 1.5;
}

.gp-solicitud-card{
  margin-top: 18px;
}

.gp-radio-group{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.gp-radio-option{
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid #dbe4ee;
  border-radius: 12px;
  background: #f8fafc;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease;
}

.gp-radio-option:hover{
  background: #f1f5f9;
  border-color: #c7d6e5;
}

.gp-radio-option input[type="radio"]{
  margin-top: 3px;
  flex: 0 0 auto;
}

.gp-radio-option span{
  color: #102a43;
  line-height: 1.45;
}

.gp-doc-card{
  margin-top: 18px;
}

.gp-doc-checklist{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.gp-doc-option{
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid #dbe4ee;
  border-radius: 12px;
  background: #f8fafc;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease;
}

.gp-doc-option:hover{
  background: #f1f5f9;
  border-color: #c7d6e5;
}

.gp-doc-option-check{
  flex: 0 0 auto;
  padding-top: 2px;
}

.gp-doc-option-check input[type="checkbox"]{
  margin: 0;
}

.gp-doc-option-text{
  color: #102a43;
  line-height: 1.45;
}

.gp-modpre-actions{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.gp-modpre-actions-free{
  margin: 28px 0 10px;
}

.gp-modpre-actions-free .gp-action-btn{
  min-width: 180px;
  height: 48px;
  padding: 0 24px;
  border-radius: 14px;
  font-weight: 700;
}

.gp-modpre-success-wrap{
  max-width: 640px;
  margin: 28px auto 10px;
}

.gp-modpre-success-card{
  border-radius: 18px;
}

.gp-modpre-success-card .gp-card-content{
  padding: 34px 24px;
}

.gp-modpre-success-icon{
  width: 64px;
  height: 64px;
  margin: 0 auto 18px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  font-weight: 800;
  background: #e8f7ec;
  color: #1f7a3d;
  border: 1px solid #bfe5c9;
}

.gp-modpre-success-title{
  margin: 0 0 10px;
  font-size: 1.35rem;
  font-weight: 800;
  color: #16365c;
}

.gp-modpre-success-text{
  margin: 0 0 22px;
  color: #334155;
  font-size: 1rem;
}

.gp-modpre-success-actions{
  display: flex;
  justify-content: center;
}

.gp-modpre-success-actions .gp-action-btn{
  min-width: 220px;
}

/* ---------- responsive gp ---------- */

@media (min-width: 768px){
  .gp-grid{
    grid-template-columns: 1fr 1fr;
  }

  .gp-field-full{
    grid-column: 1 / -1;
  }

  .gp-pre-head-main{
    padding: 1rem 1.2rem 1.2rem;
  }
}

@media (max-width: 767.98px){
  .gp-pre-card{
    padding: .8rem;
  }

  .gp-pre-head{
    margin: -.8rem -.8rem .8rem;
  }

  .gp-pre-title{
    padding: 12px 14px;
    font-size: 16px;
  }

  .gp-pre-centro{
    font-size: .98rem;
  }

  .gp-doc-block .bs-card-h{
    padding: 12px 14px;
  }

  .gp-doc-block .bs-title{
    font-size: 16px;
  }

  .gp-doc-block,
  .gp-doc-block .bs-card-b,
  .gp-doc-note,
  .gp-doc-block-pre,
  .gp-doc-block-pre .bs-card-b,
  .gp-doc-note-pre{
    height: auto !important;
    min-height: 0 !important;
  }

  .gp-doc-block .bs-card-b,
  .gp-doc-block-pre .bs-card-b{
    padding: 12px !important;
  }

  .gp-doc-note,
  .gp-doc-note-pre{
    padding: 12px !important;
    margin-bottom: 10px;
  }

  .gp-doc-name{
    margin-bottom: 8px;
    line-height: 1.35;
  }

  .gp-doc-help{
    margin-top: 8px;
    margin-bottom: 8px;
    line-height: 1.35;
  }

  .gp-doc-block .form-control,
  .gp-doc-block-pre .form-control,
  .gp-doc-block input[type="file"],
  .gp-doc-block-pre input[type="file"]{
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 42px;
    margin-bottom: 10px !important;
    font-size: 16px;
  }

  .gp-doc-block .btn,
  .gp-doc-block-pre .btn,
  .gp-doc-upload-row .gp-doc-file,
  .gp-doc-upload-row .gp-doc-btn,
  .gp-doc-note-pre .btn,
  .gp-action-btn,
  .gp-action-btn-newpre{
    width: 100%;
    min-width: 0 !important;
  }

  .gp-doc-upload-row{
    flex-direction: column;
    align-items: stretch;
    gap: .65rem;
  }

  .gp-doc-upload-row .gp-doc-file,
  .gp-doc-upload-row .gp-doc-btn{
    flex: 0 0 auto !important;
  }

  .gp-pre-actions,
  .gp-newpre-wrap,
  .gp-modpre-actions{
    flex-direction: column;
    align-items: stretch;
  }

  .gp-pre-actions{
    gap: .7rem;
  }

  .gp-newpre-wrap{
    margin-top: 1.1rem;
    padding-top: 0;
  }

  .gp-resguardo-actions{
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }

  .gp-resguardo-actions .gp-action-btn{
    width: 100%;
    margin: 0 !important;
  }

  .gp-modpre-wrap{
    padding: 0 10px 24px;
  }

  .gp-modpre-card .gp-card-header{
    padding: 18px 16px 12px;
  }

  .gp-modpre-card .gp-card-content{
    padding: 14px;
  }

  .gp-summary-grid{
    grid-template-columns: 1fr;
  }

  .gp-summary-item-full{
    grid-column: auto;
  }

  .gp-modpre-panel{
    padding: 14px;
  }

  .gp-modpre-form-grid{
    grid-template-columns: 1fr;
  }

  .gp-modpre-field-small{
    max-width: 100%;
  }

  .gp-radio-option,
  .gp-doc-option{
    padding: 12px;
  }

  .gp-modpre-actions-free .gp-action-btn{
    width: 100%;
  }

  .gp-modpre-success-wrap{
    margin-top: 20px;
  }

  .gp-modpre-success-card .gp-card-content{
    padding: 26px 16px;
  }

  .gp-modpre-success-actions .gp-action-btn{
    width: 100%;
    min-width: 0;
  }
}

/* =========================
   Header usuario + logout
========================= */

.gp-header{
  max-width: 1080px;
  margin: 10px auto 20px;
  padding: 0 16px;
}

.gp-session-bar{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.gp-user-badge{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #eef5fb;
  border: 1px solid #d6e4f0;
  font-size: 13px;
  color: #16324f;
  font-weight: 600;
}

.gp-user-badge span{
  opacity: 0.72;
  font-weight: 500;
}

.gp-logout-btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid #d6e4f0;
  color: #16324f;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.gp-logout-btn:hover,
.gp-logout-btn:focus{
  background: #f8fbfe;
  border-color: #bdd2e4;
  color: #0f2e57;
  text-decoration: none;
}

.gp-logout-icon{
  opacity: .7;
  font-size: 12px;
}

@media (max-width: 767.98px){
  .gp-session-bar{
    flex-direction: column;
    align-items: stretch;
  }

  .gp-user-badge,
  .gp-logout-btn{
    justify-content: center;
    width: 100%;
  }
}

.bg-danger-subtle {
  background-color: #f8d7da;
}
.border-danger-subtle {
  border-color: #f5c2c7;
}

.seg-form-wrap{
  max-width: 1040px;
  margin: 0 auto;
}

.seg-form-card{
  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
  overflow: hidden;
}

.seg-form-alert{
  margin: 20px 20px 0;
  padding: 16px 18px;
  border: 1px solid #e8ddb0;
  border-radius: 10px;
  background: #fff8dc;
  color: #5f4b00;
  text-align: center;
  line-height: 1.45;
  font-size: 1rem;
}

.seg-section{
  padding: 22px 20px 20px;
}

.seg-section-title{
  margin: 0 0 22px;
  font-size: 1.4rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.15;
}

.seg-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 22px;
}

.seg-field{
  min-width: 0;
}

.seg-field-full{
  grid-column: 1 / -1;
}

.seg-label{
  display: block;
  margin-bottom: 8px;
  font-size: 1rem;
  font-weight: 500;
  color: #111827;
}

.seg-control{
  min-height: 46px;
  padding: 0.7rem 0.85rem;
  border-radius: 8px;
  font-size: 1rem;
}

.seg-static-field{
  min-height: 46px;
  display: flex;
  align-items: center;
  padding: 0.7rem 0.85rem;
  background: #f8fafc;
  border: 1px solid #d7e2ec;
  border-radius: 8px;
  color: #102a43;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
}

.seg-radio-row{
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  align-items: center;
  min-height: 46px;
}

.seg-radio-option{
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
  color: #111827;
}

.seg-help{
  margin: 2px 0 6px;
  font-size: 0.96rem;
  color: #64748b;
}

@media (max-width: 767.98px){
  .seg-form-alert{
    margin: 14px 14px 0;
    padding: 10px 12px;
    font-size: 0.95rem;
  }

  .seg-section{
    padding: 14px;
  }

  .seg-section-title{
    font-size: 1.2rem;
    margin-bottom: 16px;
  }

  .seg-grid{
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .seg-radio-row{
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
  }
}

/* FIX FUENTES FORMULARIOS */
input,
select,
textarea {
  font-size: 16px !important;
  font-family: system-ui, Arial, sans-serif !important;
  line-height: 1.4;
}

label {
  font-size: 0.95rem;
  font-weight: 500;
}

/* =========================
   MODDATOS estilo 
   ========================= */

.seg-form-wrap{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 8px;
}

.seg-form-card{
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  overflow: hidden;
}

.seg-form-alert{
  margin: 18px 18px 0;
  padding: 14px 16px;
  border: 1px solid #eadb98;
  border-radius: 10px;
  background: #fff4c9;
  color: #6b5700;
  text-align: center;
  line-height: 1.45;
}

.seg-section{
  padding: 18px;
}

.seg-section-title{
  margin: 0 0 18px;
  font-size: 1rem;
  font-weight: 800;
  color: #111827;
  text-transform: uppercase;
}

.seg-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 16px 18px;
}

.seg-field{
  min-width: 0;
}

.seg-field-full{
  grid-column: 1 / -1;
}

.seg-label{
  display: block;
  margin-bottom: 6px;
  font-size: 1rem;
  font-weight: 500;
  color: #111827;
  line-height: 1.35;
}

.seg-control,
.seg-static-field{
  min-height: 46px;
  padding: 0.72rem 0.85rem;
  border-radius: 8px;
  font-size: 1rem;
}

.seg-static-field{
  display: flex;
  align-items: center;
  background: #f8fafc;
  border: 1px solid #d7e2ec;
  color: #102a43;
  font-weight: 600;
  line-height: 1.35;
}

.seg-radio-row{
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.25rem;
  align-items: center;
  min-height: 40px;
}

.seg-radio-option{
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
  color: #111827;
  line-height: 1.3;
}

.seg-help{
  margin: 4px 0 8px;
  font-size: 0.95rem;
  color: #64748b;
  line-height: 1.35;
}

@media (max-width: 768px){

  /* misma filosofía que Segovia */
  .seg-form-wrap{
    max-width: 100%;
    padding: 0 4px;
  }

  .seg-form-card{
    border-radius: 12px;
  }

  .seg-form-alert{
    margin: 12px 12px 0;
    padding: 12px 14px;
    font-size: 16px !important;
    line-height: 1.45 !important;
  }

  .seg-section{
    padding: 14px 12px 16px;
  }

  .seg-section-title{
    margin-bottom: 14px;
    font-size: 17px !important;
    line-height: 1.3 !important;
  }

  .seg-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .seg-label{
    margin-bottom: 6px;
    font-size: 16px !important;
    line-height: 1.35 !important;
  }

  .seg-control,
  .seg-static-field{
    min-height: 44px;
    padding: 0.68rem 0.8rem;
    font-size: 16px !important;
    line-height: 1.4 !important;
  }

  .seg-radio-row{
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.85rem 1.1rem;
    min-height: 0;
  }

  .seg-radio-option{
    font-size: 16px !important;
    line-height: 1.35 !important;
  }

  .seg-help{
    margin: 3px 0 8px;
    font-size: 15px !important;
    line-height: 1.35 !important;
  }
}

.seg-inline-search{
  display:flex;
  align-items:stretch;
  gap:12px;
}

.seg-inline-search .seg-control{
  flex:1;
}

.seg-search-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid #b8c4d2;
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
}

.seg-doc-row{
  display: grid;
  grid-template-columns: 140px minmax(0,1fr) 32px;
  gap: 8px;
  align-items: center;
}

.seg-doc-type{
  min-width: 0;
}

.seg-doc-help-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.seg-note-warning{
  padding: 12px 14px;
  border: 1px solid #eadb98;
  border-radius: 10px;
  background: #fff8dc;
  color: #6b5700;
  line-height: 1.45;
}

.seg-inline-search{
  display: grid;
  grid-template-columns: minmax(0,1fr) 38px;
  gap: 6px;
  align-items: stretch;
}

.seg-doc-row{
  display: grid;
  grid-template-columns: 108px minmax(0,1fr) 32px;
  gap: 6px;
  align-items: stretch;
}

.seg-doc-type{
  min-width: 0;
}

.seg-icon-btn,
.seg-search-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: #fff;
  border: 1px solid #7f8a96;
  border-radius: 4px;
  box-shadow: none;
  text-decoration: none;
  cursor: pointer;
}

.seg-icon-btn img,
.seg-search-btn img{
  display: block;
  max-width: 16px;
  max-height: 16px;
}

.seg-search-btn{
  width: 38px;
  min-width: 38px;
  height: 46px;
}

.seg-icon-btn-info{
  width: 32px;
  min-width: 32px;
  height: 46px;
}

/* Solo apilar en móvil realmente estrecho */
@media (max-width: 575.98px){
  .seg-doc-row{
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .seg-inline-search{
    grid-template-columns: minmax(0,1fr) 38px;
  }

  .seg-search-btn{
    width: 38px;
    min-width: 38px;
    height: 44px;
  }

  .seg-icon-btn-info{
    width: 32px;
    min-width: 32px;
    height: 44px;
  }
}

.seg-doc-inline{
  display: grid;
  grid-template-columns: 110px minmax(0,1fr);
  gap: 8px;
  align-items: stretch;
}

.seg-doc-group{
  display: flex;
  flex-wrap: nowrap;
}

.seg-doc-group .seg-control{
  min-width: 0;
}

.seg-info-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  width: 38px;
  padding: 0;
  border-color: #7f8a96;
}

.seg-info-btn img{
  display: block;
  max-width: 16px;
  max-height: 16px;
}

@media (max-width: 575.98px){
  .seg-doc-inline{
    grid-template-columns: 1fr;
  }
}

.seg-info-btn{
  width:42px;
  min-width:42px;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:1rem;
}

.seg-search-btn{
  width: 38px;
  min-width: 38px;
  height: 46px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
}

/* FIX definitivo lupa pegada como botón info */
.seg-inline-search{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 42px !important;
  gap:0 !important;
  align-items:stretch !important;
}

.seg-inline-search .seg-control{
  border-top-right-radius:0 !important;
  border-bottom-right-radius:0 !important;
}

.seg-inline-search .seg-search-btn{
  width:42px !important;
  min-width:42px !important;
  height:46px !important;
  margin-left:-1px !important;
  border-top-left-radius:0 !important;
  border-bottom-left-radius:0 !important;
}

/* Ajuste altura exacta lupa */
.seg-inline-search .seg-control{
  height:46px !important;
  min-height:46px !important;
}

.seg-inline-search .seg-search-btn{
  height:46px !important;
  min-height:46px !important;
  padding:0 !important;
  line-height:1 !important;
}

/* Popup común por encima del backdrop global */
#popupCNET{
  z-index: 20010 !important;
}

#popupCNET .modal-dialog{
  z-index: 20011 !important;
}

#popupCNET .modal-content{
  position: relative;
  z-index: 20012 !important;
}

.seg-field-small{
  min-width: 0;
}

@media (min-width: 768px){
  .seg-field-small{
    grid-column: span 1;
  }
}

.seg-doc-checklist{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.seg-doc-option{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:12px 14px;
  border:1px solid #dbe4ee;
  border-radius:10px;
  background:#f8fafc;
  cursor:pointer;
  line-height:1.45;
}

.seg-doc-option:hover{
  background:#f1f5f9;
}

.seg-doc-option-check{
  flex:0 0 auto;
  padding-top:2px;
}

.seg-doc-option-check input{
  margin:0;
}

.seg-doc-option-text{
  flex:1;
}

.seg-aeat-block{
  margin-top: 18px;
  padding: 16px;
  border: 1px solid #dbe4ee;
  border-radius: 12px;
  background: #f8fafc;
}

.seg-aeat-member{
  margin-top: 16px;
  padding: 14px;
  border: 1px solid #e3ebf3;
  border-radius: 12px;
  background: #fff;
}

.seg-aeat-member-title{
  margin: 0 0 14px;
  font-size: 0.95rem;
  font-weight: 800;
  color: #16324f;
  text-transform: uppercase;
}

.seg-grid-password{
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) 1.15fr;
  align-items: start;
}

.seg-password-help{
  color: #475569;
  line-height: 1.45;
  padding-top: 2px;
}

@media (max-width: 768px){
  .seg-grid-password{
    grid-template-columns: 1fr;
  }

  .seg-password-help{
    padding-top: 0;
  }
}	

.seg-note-info{
  padding: 14px 16px;
  border: 1px solid #dbe4ee;
  border-radius: 10px;
  background: #f8fafc;
  color: #475569;
  line-height: 1.45;
}

.seg-actions{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  margin:28px 0 24px;
  flex-wrap:wrap;
}

.seg-btn-primary,
.seg-btn-secondary{
  min-width:160px;
  height:54px;
  padding:0 28px;
  border-radius:12px;
  font-size:1.05rem;
  font-weight:700;
}

.seg-btn-primary{
  box-shadow:0 8px 20px rgba(13,110,253,.18);
}

@media (max-width: 576px){
  .seg-actions{
    gap:12px;
  }

  .seg-btn-primary,
  .seg-btn-secondary{
    width:100%;
    max-width:340px;
    min-width:auto;
    height:50px;
  }
}

.seg-section-title {
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #111827;
}

.seg-section {
  padding: 18px 20px 20px;
}

.seg-control[readonly] {
  background-color: #f8fafc;
  color: #334155;
}

select[readonly] {
  pointer-events: none;
  background-color: #f8fafc;
}

.gp-action-btn-primary {
  min-width: 220px;
}

.seg-note-warning {
  margin-top: 16px;
}

.seg-subsection-title {
  margin-top: 18px;
  margin-bottom: 8px;
  padding: 10px 14px;

  background: linear-gradient(to bottom, #eef2f6, #dde5ec);
  border: 1px solid #cbd5e1;
  border-radius: 6px;

  font-weight: 700;
  font-size: 0.95rem;
  color: #1e293b;
}

.seg-aeat-member-title {
  margin-top: 18px;
  margin-bottom: 8px;
  padding: 10px 14px;

  background: linear-gradient(to bottom, #eef2f6, #dde5ec);
  border: 1px solid #cbd5e1;
  border-radius: 6px;

  font-weight: 700;
  font-size: 0.95rem;
  color: #1e293b;
}

/* =========================
   HEADER BLANCO + MENÚ CENTRADO
   ========================= */

.app-header{
  background:#ffffff;
}

@media (min-width: 992px){
  .app-header{
    background:#ffffff;
  }
}

.menu-principal-actions{
  justify-content:center;
}

.menu-principal-bar{
  display:flex;
  justify-content:center;
}

.menu-principal-shell{
  width:auto;
}

.gp-tol-result {
  background: #fff;
  border: 1px solid #dbe3ec;
  border-left: 4px solid #0d6efd;
  border-radius: 16px;

  padding: 1.25rem;
}

.gp-tol-result-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0b4f7a;
  margin-bottom: 14px;
}

.gp-tol-result-body {
  color: #243746;
  line-height: 1.6;
  font-size: 1.08rem;
}

.gp-tol-result-level {
  display: inline-block;
  font-size: 1.45rem;
  font-weight: 800;
  color: #0b4f7a;
  background: #e3f0fa;
  border: 1px solid #bdd9ee;
  border-radius: 999px;
  padding: 4px 14px;
  margin-left: 4px;
}

.gp-tol-result-date {
  margin-top: 10px;
  font-size: .88rem;
  color: #6b7280;
}

.gp-tol-result-action {
  margin-top: 18px;
}

.gp-pre-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.gp-pre-notes,
.gp-tol-result {
  background: #f6f7f9;
  border: 1px solid #e3e6ea;
  border-radius: 14px;
  padding: 1rem;
  text-align: center;
}

.gp-tol-heading {
  background: #e9ecef;
  border-radius: 12px;
  padding: .75rem 1rem;
  margin: 1rem 0;
  text-align: center;
}

.gp-tol-message {
  background: #fff;
  border: 1px solid #e3e6ea;
  border-radius: 12px;
  padding: .75rem 1rem;
  margin: 1rem 0;
  text-align: center;
}

.gp-pre-actions-wrap {
  margin-top: 1rem;
}

.gp-tol-result {
  background: #f8fafc;
  border: 1px solid #dbe3ec;
  border-left: 5px solid #0d6efd;
  border-radius: 16px;
  padding: 1rem 1.25rem;
  text-align: left;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
}

.gp-tol-result strong {
  color: #12385f;
}

.gp-tol-result p,
.gp-tol-result div {
  margin-bottom: .55rem;
}

.gp-tol-result p:last-child,
.gp-tol-result div:last-child {
  margin-bottom: 0;
}

.gp-tol-heading {
  background: #eef3f9;
  border: 1px solid #dde6f1;
  border-radius: 14px;
  padding: .85rem 1rem;
  margin-bottom: 1rem;

  text-align: center;
  font-weight: 700;
  color: #12385f;
  font-size: 1.05rem;
}

.gp-tol-message {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: .85rem 1rem;
  margin: .75rem 0;
  text-align: center;
}

.gp-tol-message-ok {
  background: #f3faf5;
  border: 1px solid #cfe7d6;
  border-radius: 14px;

  padding: .95rem 1rem;
  margin-top: 1rem;

  text-align: center;
  color: #146c43;
  font-weight: 600;
}

.gp-tol-message-warning {
  background: #fff8e6;
  border-color: #ffe0a3;
  color: #7a5200;
}

@media (max-width: 576px) {
  .gp-tol-result,
  .gp-tol-message,
  .gp-tol-heading {
    padding: .85rem;
    border-radius: 12px;
    font-size: .95rem;
  }
}

.gp-tol-panel {
  background: #f8fafc;
  border: 1px solid #dbe3ec;
  border-radius: 16px;
  padding: 1rem;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
}

.gp-tol-panel {
  border-left: 0;
}

.gp-tol-group {
  background: #f8fafc;
  border: 1px solid #e4ebf3;
  border-radius: 18px;
  padding: 1rem;
  margin-bottom: 1rem;
}

@media (max-width: 576px) {

  .gp-tol-group {
    padding: .75rem;
    border-radius: 14px;
  }

  .gp-tol-result {
    padding: 1rem;
    border-radius: 12px;
  }

  .gp-tol-heading,
  .gp-tol-message-ok {
    padding: .8rem;
    border-radius: 12px;
    font-size: .95rem;
  }
}

.gp-tol-result-action .gp-action-btn,
.gp-tol-result-action input[type="submit"] {

  appearance: none;
  -webkit-appearance: none;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 46px;
  padding: .8rem 1.4rem;

  border-radius: 14px;
  border: 1px solid #b9d8c1;

  background: linear-gradient(to bottom, #ffffff, #edf7ef);

  color: #146c43;
  font-weight: 700;
  font-size: .98rem;
  line-height: 1.2;

  box-shadow:
    0 2px 6px rgba(15,23,42,.06),
    inset 0 1px 0 rgba(255,255,255,.9);

  transition:
    transform .15s ease,
    box-shadow .15s ease,
    background .15s ease;

  cursor: pointer;
}

.gp-tol-result-action .gp-action-btn:hover,
.gp-tol-result-action input[type="submit"]:hover {

  background: linear-gradient(to bottom, #ffffff, #e3f3e7);

  box-shadow:
    0 6px 16px rgba(15,23,42,.10),
    inset 0 1px 0 rgba(255,255,255,.95);

  transform: translateY(-1px);
}

.gp-tol-result-action .gp-action-btn:active,
.gp-tol-result-action input[type="submit"]:active {

  transform: translateY(0);

  box-shadow:
    0 2px 6px rgba(15,23,42,.06),
    inset 0 2px 4px rgba(0,0,0,.06);
}

@media (max-width: 576px) {

  .gp-tol-result-action .gp-action-btn,
  .gp-tol-result-action input[type="submit"] {

    width: 100%;
    min-height: 50px;
  }
}

.gp-tol-result-action {
  max-width: 100%;
}

.gp-tol-result-action .gp-action-btn,
.gp-tol-result-action input[type="submit"] {
  max-width: 100%;
  white-space: normal;
  text-align: center;
  overflow-wrap: anywhere;
  line-height: 1.25;
}

@media (max-width: 576px) {
  .gp-tol-result-action .gp-action-btn,
  .gp-tol-result-action input[type="submit"] {
    width: 100%;
    min-height: 50px;
    padding: .8rem 1rem;
    font-size: .95rem;
  }
}

/* =========================================================
   RESGUARDO TXT
   ========================================================= */

.resguardo-body {
  margin: 0;
  padding: 18px;
  background: #fff;
  font-family: system-ui, Arial, sans-serif;
  color: #0f172a;
  font-size: 14px;
  line-height: 1.45;
}

.resguardo-doc {
  max-width: 860px;
  margin: 0 auto;
}

.resguardo-doc table {
  max-width: 100%;
}

.resguardo-head {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-bottom: 24px;
  padding: 20px;
  background: #f8fafc;
  border: 1px solid #d9e2ec;
  border-radius: 12px;
}

.resguardo-head-title h1 {
  margin: 0 0 10px;
  font-size: 34px;
  font-weight: 800;
  color: #16324f;
  line-height: 1.1;
}

.resguardo-head-title p {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: #334155;
}

.resguardo-meta {
  margin-top: 14px;
  display: flex;
  gap: 32px;
  justify-content: center;
  font-size: 14px;
  color: #475569;
}

.resguardo-logo {
  flex: 0 0 220px;
  text-align: center;
}

.resguardo-logo img {
  max-width: 180px;
  height: auto;
}

.resguardo-head-title {
  flex: 1;
  text-align: center;
}

.resguardo-head-title h1 {
  margin: 0 0 6px;
  font-size: 21px;
  font-weight: 800;
  color: #16324f;
}

.resguardo-head-title p {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
}

.resguardo-meta {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
  font-size: 13px;
  color: #475569;
}

@media print {
  .resguardo-body {
    padding: 0;
    background: #fff;
  }

  .resguardo-doc {
    max-width: 100%;
  }
}

.resguardo-section {
  width: min(100%, 860px);
  margin: 0 auto 18px;
  background: #fff;
  border: 1px solid #d9e2ec;
  border-radius: 12px;
  overflow: hidden;
}

.resguardo-section-head {
  padding: 10px 14px;
  background: #f4f8fb;
  border-bottom: 1px solid #d9e2ec;
  color: #16324f;
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
}

.resguardo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 14px;
}

.resguardo-field {
  padding: 10px 12px;
  background: #fbfdff;
  border: 1px solid #e5edf5;
  border-radius: 10px;
}

.resguardo-field-full {
  grid-column: 1 / -1;
}

.resguardo-field span {
  display: block;
  margin-bottom: 3px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  color: #64748b;
}

.resguardo-field strong {
  display: block;
  font-size: 13px;
  color: #0f172a;
  line-height: 1.35;
}

@media (max-width: 700px) {
  .resguardo-grid {
    grid-template-columns: 1fr;
  }
}

.resguardo-table-wrap {
  width: 100%;
  overflow-x: auto;
  padding: 14px;
}

.resguardo-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
}

.resguardo-table th {
  padding: 10px 12px;
  background: #f1f5f9;
  border-bottom: 1px solid #d9e2ec;
  color: #16324f;
  font-weight: 800;
  text-align: left;
  white-space: nowrap;
}

.resguardo-table td {
  padding: 10px 12px;
  border-bottom: 1px solid #edf2f7;
  color: #0f172a;
  font-weight: 600;
}

.resguardo-table th:nth-child(3),
.resguardo-table th:nth-child(4),
.resguardo-table td:nth-child(3),
.resguardo-table td:nth-child(4) {
  text-align: center;
  width: 90px;
}

.resguardo-table tbody tr:last-child td {
  border-bottom: 0;
}

@media print {
  @page {
    size: A4 portrait;
    margin: 8mm 10mm;
  }

  html,
  body {
    width: 210mm;
    min-height: auto;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .resguardo-doc {
    width: 100% !important;
    max-width: 190mm !important;
    margin: 0 auto !important;
  }

  .resguardo-head {
    margin-bottom: 7mm !important;
    padding: 8mm !important;
    border: 1px solid #d9e2ec !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    page-break-inside: avoid;
  }

  .resguardo-logo {
    flex: 0 0 42mm !important;
  }

  .resguardo-logo img {
    max-width: 36mm !important;
  }

  .resguardo-head-title h1 {
    font-size: 16px !important;
  }

  .resguardo-head-title p,
  .resguardo-meta {
    font-size: 10px !important;
  }

  .resguardo-section {
    margin-bottom: 4mm !important;
    border: 1px solid #d9e2ec !important;
    border-radius: 7px !important;
    box-shadow: none !important;
    page-break-inside: avoid;
  }

  .resguardo-section-head {
    padding: 5px 8px !important;
    font-size: 10px !important;
    background: #f4f8fb !important;
  }

  .resguardo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 5px !important;
    padding: 7px !important;
  }

  .resguardo-field {
    padding: 5px 7px !important;
    border-radius: 6px !important;
    background: #fbfdff !important;
    border: 1px solid #e5edf5 !important;
  }

  .resguardo-field span {
    font-size: 8px !important;
    margin-bottom: 1px !important;
  }

  .resguardo-field strong {
    font-size: 9px !important;
    line-height: 1.15 !important;
  }

  .resguardo-table-wrap {
    padding: 7px !important;
  }

  .resguardo-table {
    font-size: 9px !important;
  }

  .resguardo-table th,
  .resguardo-table td {
    padding: 5px 6px !important;
  }
}

.resguardo-text {
  padding: 12px 14px;
  font-size: 12px;
  line-height: 1.45;
}

@media print {
  .resguardo-text {
    padding: 8px 10px;
    font-size: 10px;
    line-height: 1.3;
  }
}

.resguardo-alert {
  border-color: #f3c4c4;
}

.resguardo-alert .resguardo-section-head {
  background: #fff3f3;
  color: #8b1e1e;
}

.resguardo-alert-content {
  padding: 14px;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  color: #8b1e1e;
}

@media print {
  .resguardo-alert-content {
    padding: 10px;
    font-size: 11px;
  }
}