   :root {
      --primary-color: #0d6efd;
      --secondary-color: #0000d6;
      --light-bg: #f8f9fa;
      --dark-text: #212529;
    }

    body {
      font-family: 'Poppins', sans-serif;
      background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
      min-height: 100vh;
      overflow-x: hidden;
    }

    .program-name {
      color: var(--secondary-color);
      font-weight: 700;
      font-size: 1.8rem;
      position: relative;
    }

    .program-name:after {
      content: '';
      position: absolute;
      bottom: -10px;
      left: 50%;
      transform: translateX(-50%);
      width: 50px;
      height: 3px;
      background-color: var(--primary-color);
    }

    .login-card {
      border-radius: 16px;
      overflow: hidden;
      border: none;
      box-shadow: 0 10px 30px rgba(0, 0, 150, 0.1);
      backdrop-filter: blur(30px);
      background: rgba(255, 255, 255, 0.95);
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      z-index: 20;
    }

    .login-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 15px 35px rgba(0, 0, 150, 0.15);
    }

    /* Card overlap effect */
    .card-overlap {
      margin-right: -5rem;
      position: relative;
      z-index: 10;
    }

    .form-control {
      border-radius: 8px;
      padding: 12px 20px;
      margin-bottom: 15px;
      border: 1px solid #ced4da;
      transition: all 0.3s ease;
    }

    .form-control:focus {
      box-shadow: 0 0 0 3px rgba(13, 110, 253, 0.2);
      border-color: var(--primary-color);
    }

    .input-group {
      position: relative;
    }

    .input-icon {
      position: absolute;
      left: 15px;
      top: 50%;
      transform: translateY(-50%);
      color: #6c757d;
      z-index: 10;
      line-height: 1;
      display: flex;
      align-items: center;
      height: 100%;
      margin-top: -8px;
      /* Ajuste para centralização vertical */
    }

    .has-icon {
      padding-left: 45px;
    }

    .btn-primary {
      padding: 12px 20px;
      font-weight: 600;
      border-radius: 8px;
      background-color: var(--primary-color);
      border-color: var(--primary-color);
      box-shadow: 0 4px 6px rgba(13, 110, 253, 0.25);
      transition: all 0.3s ease;
      width: 100%;
    }

    .btn-primary:hover {
      background-color: #0b5ed7;
      border-color: #0a58ca;
      transform: translateY(-2px);
      box-shadow: 0 6px 10px rgba(13, 110, 253, 0.3);
    }

    .forgot-password a {
      color: var(--primary-color);
      text-decoration: none;
      font-weight: 500;
      transition: color 0.3s ease;
    }

    .forgot-password a:hover {
      color: #0b5ed7;
      text-decoration: underline;
    }

    /* Estilos para a exibição moderna da imagem */
    .image-showcase {
      position: relative;
      width: 100%;
      height: 100%;
      /* Reduzindo a altura mínima para telas padrão */
      min-height: 400px;
      border-radius: 16px;
      overflow: hidden;
      background: linear-gradient(45deg, rgba(0, 0, 214, 0.05) 0%, rgba(13, 110, 253, 0.1) 100%);
      box-shadow: 0 20px 40px rgba(0, 0, 150, 0.15);
      transition: all 0.5s ease;
      display: flex;
      justify-content: center;
      align-items: center;
      perspective: 1000px;
    }

    .image-showcase:hover {
      box-shadow: 0 25px 50px rgba(0, 0, 150, 0.25);
      transform: translateY(-10px) scale(1.01);
    }

    .image-main {
      width: auto;
      max-width: 92%;
      height: auto;
      max-height: 90%;
      object-fit: contain;
      border-radius: 8px;
      transition: all 0.5s ease;
      transform: translateZ(30px);
      box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
    }

    .image-showcase:hover .image-main {
      transform: translateZ(50px) scale(1.03);
    }

    .image-overlay {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, transparent 100%);
      padding: 30px 20px 20px;
      color: white;
      opacity: 0;
      transform: translateY(20px);
      transition: all 0.5s ease;
    }

    .image-showcase:hover .image-overlay {
      opacity: 1;
      transform: translateY(0);
    }

    .overlay-title {
      font-size: 1.3rem;
      font-weight: 600;
      margin-bottom: 5px;
    }

    .overlay-text {
      font-size: 1rem;
      opacity: 0.9;
    }

    @keyframes float {
      0% {
        transform: translateY(0);
      }

      50% {
        transform: translateY(-10px);
      }

      100% {
        transform: translateY(0);
      }
    }

    .img-container {
      position: relative;
      height: 100%;
      display: flex;
      align-items: center;
      opacity: 0;
      animation: fadeInRight 1.5s ease forwards;
    }

    .footer-info {
      font-size: 0.8rem;
      opacity: 0.8;
      margin-top: 20px;
    }

    .modal-content {
      border-radius: 16px;
      overflow: hidden;
      border: none;
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    }

    .modal-header {
      background-color: var(--secondary-color);
      padding: 15px 20px;
    }

    .alert {
      border-radius: 8px;
      font-weight: 500;
      padding: 15px;
      border-left: 5px solid #f2dede;
      background-color: #f8d7da;
      box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
    }

    .btn-outline-info {
      color: var(--secondary-color);
      border-color: var(--secondary-color);
      font-weight: 500;
      padding: 6px 15px;
      border-radius: 6px;
      transition: all 0.3s ease;
    }

    .btn-outline-info:hover {
      background-color: var(--secondary-color);
      color: white;
    }

    .btn-secondary {
      background-color: #6c757d;
      border-color: #6c757d;
      border-radius: 8px;
      font-weight: 500;
      transition: all 0.3s ease;
    }

    .reservado {
      font-size: 0.7rem;
      margin-top: 10px;
      opacity: 0.7;
    }

    /* Animação personalizada para entrada da imagem */
    @keyframes fadeInRight {
      from {
        opacity: 0;
        transform: translateX(50px);
      }

      to {
        opacity: 1;
        transform: translateX(0);
      }
    }

    /* Animação para o cartão de login */
    .login-animation {
      opacity: 0;
      animation: fadeInLeft 1.5s ease forwards;
    }

    @keyframes fadeInLeft {
      from {
        opacity: 0;
        transform: translateX(-30px);
      }

      to {
        opacity: 1;
        transform: translateX(0);
      }
    }

    /* Animação para o título */
    .title-animation {
      animation: fadeInDown 1s ease;
    }

    @keyframes fadeInDown {
      from {
        opacity: 0;
        transform: translateY(-20px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* Animação para o pulsar da imagem */
    .pulse-effect {
      animation: pulse 2s infinite;
    }

    @keyframes pulse {
      0% {
        box-shadow: 0 0 0 0 rgba(13, 110, 253, 0.4);
      }

      70% {
        box-shadow: 0 0 0 15px rgba(13, 110, 253, 0);
      }

      100% {
        box-shadow: 0 0 0 0 rgba(13, 110, 253, 0);
      }
    }

    /* Media queries para telas muito grandes (xxl) */
    @media (min-width: 1800px) {
      .image-showcase {
        min-height: 700px;
      }

      .container {
        max-width: 1700px;
      }
    }

    /* Media queries para telas grandes (xl) */
    @media (min-width: 1600px) {
      .image-showcase {
        min-height: 600px;
      }

      .container {
        max-width: 1540px;
      }
    }

    /* Media queries para telas grandes (lg+) */
    @media (min-width: 1200px) {
      .image-main {
        max-width: 95%;
        max-height: 95%;
      }

      .image-showcase {
        min-height: 450px;
      }

      .container {
        max-width: 1300px;
      }
    }

    /* Media queries para laptops 15.6" (típicamente de 1366px a 1536px) */
    @media (min-width: 1300px) and (max-width: 1599.98px) {
      .image-showcase {
        /* Altura reduzida para laptops padrão */
        min-height: 420px;
      }

      .image-main {
        max-width: 92%;
        max-height: 92%;
      }
    }

    /* Media queries para laptops menores (típicamente de 1280px a 1365px) */
    @media (min-width: 1200px) and (max-width: 1299.98px) {
      .image-showcase {
        /* Altura ainda mais reduzida para laptops menores */
        min-height: 400px;
      }

      .image-main {
        max-width: 90%;
        max-height: 90%;
      }
    }

    /* Media queries para telas médias a grandes (lg) */
    @media (min-width: 992px) and (max-width: 1199.98px) {
      .card-overlap {
        margin-right: -3rem;
      }

      .image-showcase {
        min-height: 380px;
      }

      .container {
        max-width: 960px;
      }
    }

    /* Media queries para telas médias (md) */
    /* Media queries para telas médias (md) */
    @media (min-width: 768px) and (max-width: 991.98px) {
      .hide-on-small-screen {
        display: block;
      }

      .col-lg-5 {
        width: 45%;
      }

      .col-lg-8 {
        width: 55%;
      }

      .image-showcase {
        min-height: 320px;
        /* Reduzido de 360px para 320px */
      }

      .image-main {
        max-width: 85%;
        /* Reduzido de 90% para 85% */
        max-height: 85%;
        /* Reduzido de 90% para 85% */
      }

      .card-overlap {
        margin-right: -2rem;
      }
    }

    /* Media query específica para laptops 15.6" */
    @media (min-width: 1366px) and (max-width: 1600px) {
      .image-showcase {
        min-height: 320px !important;
        /* Altura bastante reduzida */
        max-height: 93vh !important;
        /* Limita a altura em relação à viewport */
      }

      .image-main {
        max-width: 92% !important;
        max-height: 92% !important;
        object-fit: contain !important;
      }

      .img-container {
        height: auto !important;
        padding-bottom: 40px;
      }

      /* Ajuste no container principal */
      .container {
        padding-top: 20px !important;
        padding-bottom: 20px !important;
      }
    }

    /* Media queries para laptops 15.6" (típicamente de 1366px a 1536px) */
    @media (min-width: 1300px) and (max-width: 1599.98px) {
      .image-showcase {
        min-height: 380px;
        /* Reduzido de 420px para 380px */
      }

      .image-main {
        max-width: 88%;
        /* Reduzido de 92% para 88% */
        max-height: 88%;
        /* Reduzido de 92% para 88% */
      }
    }

    /* Media queries para laptops menores (típicamente de 1280px a 1365px) */
    @media (min-width: 1200px) and (max-width: 1299.98px) {
      .image-showcase {
        min-height: 350px;
        /* Reduzido de 400px para 350px */
      }

      .image-main {
        max-width: 85%;
        /* Reduzido de 90% para 85% */
        max-height: 85%;
        /* Reduzido de 90% para 85% */
      }
    }

    /* Media queries para telas pequenas (sm e menores) */
    @media (max-width: 767.98px) {
      .hide-on-small-screen {
        display: none;
      }

      .card-overlap {
        margin-right: 0;
        margin-left: auto;
        margin-right: auto;
        max-width: 90%;
      }
    }

    /* Efeito de onda ao clicar na imagem */
    .wave-effect {
      position: absolute;
      border-radius: 50%;
      background-color: rgba(13, 110, 253, 0.3);
      transform: scale(0);
      pointer-events: none;
      animation: wave 0.6s ease-out;
    }

    @keyframes wave {
      to {
        transform: scale(2);
        opacity: 0;
      }
    }

    .image-showcase {
      position: relative;
      overflow: hidden;
    }
/* ==========================================================
   REFINAMENTO EXCLUSIVO DO CARD DE LOGIN E RODAPÉ
   Mantém a organização e a área da imagem sem alterações.
   ========================================================== */
.login-card {
  border: 1px solid rgba(13, 110, 253, .08);
  box-shadow: 0 18px 45px rgba(30, 64, 175, .14);
}

.login-card .card-body {
  padding: 1.75rem 1.35rem 1.35rem;
}

.login-card-heading {
  margin-bottom: 1.65rem;
}

.login-card-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: .35rem;
  color: #64748b;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.login-card-subtitle {
  max-width: 320px;
  margin: .95rem auto 0;
  color: #64748b;
  font-size: .84rem;
  line-height: 1.55;
}

.login-field {
  text-align: left;
}

.login-label {
  display: block;
  margin: 0 0 .45rem .1rem;
  color: #334155;
  font-size: .8rem;
  font-weight: 600;
}

.login-input-group {
  position: relative;
}

.login-input-group .form-control {
  min-height: 48px;
  margin-bottom: 0;
  padding-top: .7rem;
  padding-bottom: .7rem;
  background: #f8fbff;
  border: 1px solid #cbd5e1;
  border-radius: 10px !important;
  color: #172033;
  font-size: .93rem;
}

.login-input-group .form-control::placeholder {
  color: #94a3b8;
}

.login-input-group .form-control:hover {
  border-color: #9fbff0;
}

.login-input-group .form-control:focus {
  background: #fff;
  border-color: #0d6efd;
  box-shadow: 0 0 0 4px rgba(13, 110, 253, .12);
}

.login-input-group .input-icon {
  left: 16px;
  height: auto;
  margin-top: 0;
  color: #64748b;
}

.login-input-group .has-icon {
  padding-left: 46px;
}

.login-input-group .has-action {
  padding-right: 46px;
}

.password-toggle {
  position: absolute;
  top: 50%;
  right: 8px;
  z-index: 11;
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  padding: 0;
  transform: translateY(-50%);
  color: #64748b;
  background: transparent;
  border: 0;
  border-radius: 8px;
  transition: background-color .2s ease, color .2s ease;
}

.password-toggle:hover,
.password-toggle:focus-visible {
  color: #0d6efd;
  background: #eaf2ff;
  outline: none;
}

.login-form .btn-primary {
  min-height: 50px;
  border-radius: 10px;
  background: linear-gradient(135deg, #1685e6, #0d5fc7);
  border: none;
  box-shadow: 0 10px 24px rgba(13, 110, 253, .24);
}

.login-form .btn-primary:hover {
  background: linear-gradient(135deg, #0d76d4, #084fae);
  box-shadow: 0 12px 28px rgba(13, 110, 253, .3);
}

.forgot-password {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  color: #475569;
  font-size: .82rem;
}

.forgot-password a {
  font-weight: 600;
}

.footer-info {
  margin-top: 0;
  opacity: 1;
}

.footer-program-name {
  color: #5f6b7c;
  font-size: .82rem;
  font-weight: 600;
  line-height: 1.45;
}

.btn-outline-info {
  min-width: 112px;
  padding: 7px 14px;
  color: #0d5fc7;
  background: rgba(255,255,255,.45);
  border-color: #0d6efd;
  border-radius: 8px;
}

.btn-outline-info:hover {
  background: #0d6efd;
  border-color: #0d6efd;
}

.reservado {
  display: block;
  color: #718096 !important;
  font-size: .67rem;
  line-height: 1.55;
  opacity: 1;
}

.prodev-link {
  color: #0d5fc7;
  font-weight: 600;
  text-decoration: none;
}

.prodev-link:hover {
  color: #084fae;
  text-decoration: underline;
}

@media (max-width: 575.98px) {
  .login-card .card-body {
    padding: 1.5rem 1rem 1.2rem;
  }

  .login-card-subtitle {
    font-size: .8rem;
  }
}


/* ==========================================================
   AJUSTE DE LARGURA E ALINHAMENTO DO BLOCO DE LOGIN
   Mantém a imagem e a organização geral da página intactas.
   ========================================================== */
.login-column {
  position: relative;
  z-index: 20;
}

.login-column .login-card,
.login-column .login-below-card {
  width: 100%;
  max-width: 540px;
}

.login-column .login-below-card {
  margin-right: -5rem;
}

.login-card .card-body,
.login-card-heading,
.login-form,
.login-below-card {
  text-align: center;
}

.login-form .login-field {
  width: 100%;
  text-align: left;
}

.login-form .btn-primary {
  display: flex;
  width: 100%;
  min-height: 52px;
  align-items: center;
  justify-content: center;
}

.login-below-card > hr {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.login-below-card .footer-info,
.login-below-card .text-center,
.login-below-card .reservado {
  width: 100%;
  text-align: center !important;
}

/* Notebooks e telas intermediárias: card mais largo e proporcional. */
@media (min-width: 992px) and (max-width: 1599.98px) {
  .login-column .login-card,
  .login-column .login-below-card {
    width: 540px;
    max-width: 540px;
  }

  .login-card .card-body {
    padding-left: 1.8rem;
    padding-right: 1.8rem;
  }
}

/* Tablets: ocupa melhor a largura disponível e permanece centralizado. */
@media (min-width: 768px) and (max-width: 991.98px) {
  .login-column {
    width: 100% !important;
    max-width: none;
  }

  .login-column .login-card,
  .login-column .login-below-card {
    width: min(540px, calc(100vw - 48px));
    max-width: 540px;
    margin-left: auto;
    margin-right: auto;
  }

  .card-overlap {
    margin-right: auto;
  }
}

/* Celulares e telas pequenas: card quase na largura total da tela. */
@media (max-width: 767.98px) {
  .login-column {
    width: 100%;
    padding-left: 8px;
    padding-right: 8px;
  }

  .login-column .login-card,
  .login-column .login-below-card,
  .card-overlap {
    width: calc(100vw - 28px);
    max-width: 540px;
    margin-left: auto;
    margin-right: auto;
  }

  .login-card .card-body {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .login-card-subtitle {
    max-width: 390px;
  }
}
