   :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;
    }