:root{--login-primary:#0d6efd;--login-dark:#003366;--login-navy:#0b355f;--login-muted:#64748b;--login-border:#dce6f1;--login-bg:#edf3f9}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;font-family:'Poppins',sans-serif;color:#172334;background:linear-gradient(135deg,#f7f9fc 0%,#e7eef7 52%,#d7e3f1 100%);overflow-x:hidden}
.login-page{min-height:100vh;position:relative;isolation:isolate}
.login-page:before,.login-page:after{content:"";position:fixed;border-radius:50%;filter:blur(2px);z-index:-1;opacity:.55}
.login-page:before{width:34rem;height:34rem;right:-12rem;top:-15rem;background:radial-gradient(circle,#8fc5ff 0%,rgba(143,197,255,0) 68%)}
.login-page:after{width:27rem;height:27rem;left:-12rem;bottom:-12rem;background:radial-gradient(circle,#b8d7f7 0%,rgba(184,215,247,0) 70%)}
.login-column{position:relative;z-index:3}
.login-card{border:1px solid rgba(255,255,255,.78);border-radius:24px;background:rgba(255,255,255,.94);box-shadow:0 24px 70px rgba(17,55,92,.18);backdrop-filter:blur(18px);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}
.login-card:hover{transform:translateY(-4px);box-shadow:0 30px 80px rgba(17,55,92,.23)}
.card-overlap{margin-right:-4.25rem}
.login-brand{display:flex;align-items:center;gap:15px;margin-bottom:12px;text-align:left}
.login-brand-icon{width:68px;height:68px;flex:0 0 68px;border-radius:17px;object-fit:contain;background:#fff;padding:4px;border:1px solid #d8e3ef;box-shadow:0 9px 22px rgba(0,51,102,.12)}
.login-card-kicker{display:block;color:#0d6efd;font-size:.73rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:3px}
.program-name{margin:0;color:var(--login-dark);font-size:1.65rem;font-weight:700;line-height:1.15}
.login-card-subtitle{color:var(--login-muted);font-size:.9rem;line-height:1.55;margin:0 0 25px 83px;text-align:left}
.login-label{display:block;color:#24384d;font-size:.84rem;font-weight:600;margin-bottom:7px;text-align:left}
.login-input-group{position:relative}
.login-input-group .form-control{height:54px;border:1px solid #d8e2ed;border-radius:12px;background:#fbfdff;color:#172334;padding:12px 48px 12px 46px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.login-input-group .form-control::placeholder{color:#94a3b8}
.login-input-group .form-control:focus{border-color:#70adf7;background:#fff;box-shadow:0 0 0 4px rgba(13,110,253,.12)}
.input-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);z-index:4;color:#5b7188;pointer-events:none}
.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:5;width:38px;height:38px;border:0;border-radius:9px;background:transparent;color:#5b7188;display:grid;place-items:center;transition:background .2s,color .2s}
.password-toggle:hover,.password-toggle:focus{background:#eaf3fd;color:#075dad;outline:none}
.login-submit{width:100%;height:52px;border-radius:12px;font-weight:600;background:linear-gradient(135deg,#075da8,#1689ea);border:0;box-shadow:0 10px 22px rgba(13,110,253,.24);transition:transform .2s ease,box-shadow .2s ease}
.login-submit:hover,.login-submit:focus{transform:translateY(-2px);box-shadow:0 14px 27px rgba(13,110,253,.32);background:linear-gradient(135deg,#064f90,#0d78d5)}
.forgot-password{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;color:#718096;font-size:.84rem}
.forgot-password a{color:#0969c3;font-weight:600;text-decoration:none}
.forgot-password a:hover{text-decoration:underline}
.cadastro-publico-link{width:100%;min-height:46px;display:flex;align-items:center;justify-content:center;gap:9px;padding:10px 14px;border:1px solid #c7dcf3;border-radius:11px;background:#f7fbff;color:#075da8;font-size:.86rem;font-weight:600;text-decoration:none;transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease}
.cadastro-publico-link:hover,.cadastro-publico-link:focus{background:#eef7ff;border-color:#8dbce8;color:#064f90;transform:translateY(-1px);box-shadow:0 7px 16px rgba(7,93,168,.10)}
.cadastro-publico-arrow{font-size:.76rem;opacity:.72}
.alert{border:0;border-left:4px solid #dc3545;border-radius:11px;font-size:.88rem;text-align:left;box-shadow:0 7px 16px rgba(220,53,69,.08)}
.login-below-card{max-width:325px;margin:24px auto 0}
.footer-program-name{color:#4e6276;font-size:.85rem;font-weight:500;line-height:1.5;margin-bottom:14px}
.btn-outline-info{border-color:#1679c8;color:#0864ad;border-radius:9px;font-weight:500}
.btn-outline-info:hover{background:#0864ad;border-color:#0864ad;color:#fff}
.reservado{color:#718096;font-size:.73rem;line-height:1.55}
.img-container{display:flex;align-items:center;min-height:570px;opacity:1}
.image-showcase{position:relative;width:100%;min-height:570px;border-radius:28px;overflow:hidden;background:linear-gradient(145deg,#f9fcff,#d9e8f7);box-shadow:0 30px 80px rgba(0,51,102,.18);display:flex;align-items:center;justify-content:center;transition:transform .25s ease,box-shadow .35s ease;transform-style:preserve-3d}
.image-showcase:hover{box-shadow:0 36px 90px rgba(0,51,102,.24)}
.image-main{display:block;width:auto;max-width:93%;max-height:520px;object-fit:contain;border-radius:18px;filter:drop-shadow(0 18px 25px rgba(0,0,0,.15));transform:translateZ(28px);transition:transform .3s ease}
.image-showcase:hover .image-main{transform:translateZ(45px) scale(1.015)}
.image-overlay{position:absolute;left:0;right:0;bottom:0;padding:90px 34px 30px;background:linear-gradient(to top,rgba(0,32,65,.88),rgba(0,32,65,0));color:#fff;opacity:0;transform:translateY(15px);transition:opacity .3s ease,transform .3s ease}
.image-showcase:hover .image-overlay{opacity:1;transform:translateY(0)}
.showcase-brand{display:flex;align-items:center;gap:14px}
.showcase-icon{width:54px;height:54px;object-fit:contain;border-radius:13px;background:#fff;padding:3px}
.overlay-title{font-size:1.3rem;font-weight:700;margin:0 0 4px}
.overlay-text{font-size:.87rem;opacity:.92;margin:0}
.modal-content{border:0;border-radius:20px;overflow:hidden;box-shadow:0 25px 70px rgba(0,30,60,.27)}
.modal-header{background:linear-gradient(135deg,#003366,#0b69b3);border:0}
.about-system-icon{width:78px;height:78px;object-fit:contain;border-radius:18px;border:1px solid #dce5ef;padding:4px;background:#fff}
.about-logo{max-height:72px;object-fit:contain}
.modal-footer{border-top:1px solid #edf1f5}
@media(max-width:1199.98px){.card-overlap{margin-right:-2.75rem}.image-showcase,.img-container{min-height:490px}.image-main{max-height:440px}}
@media(max-width:991.98px){.login-page .container{max-width:720px}.card-overlap{margin-right:0}.login-card{max-width:520px;margin:auto}.login-below-card{max-width:430px}.row.min-vh-100{min-height:100vh!important}}
@media(max-width:575.98px){body{background:#edf3f9}.login-page .container{padding-left:16px;padding-right:16px}.login-card{border-radius:20px}.login-card .card-body{padding:28px 23px!important}.login-brand-icon{width:58px;height:58px;flex-basis:58px;border-radius:14px}.program-name{font-size:1.4rem}.login-card-subtitle{margin-left:0;margin-top:14px}.login-input-group .form-control{height:51px}.login-below-card{margin-top:18px}.reservado{font-size:.69rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}


/* v38 — geometria igual ao sistema de referência */
@media (min-width: 992px) {
  .login-page .container {
    width: min(1420px, calc(100% - 48px));
    max-width: 1420px;
    padding-top: 28px !important;
    padding-bottom: 28px !important;
  }

  .login-page .row.min-vh-100 {
    min-height: calc(100vh - 56px) !important;
  }

  .login-column {
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 4;
  }

  .login-card {
    width: 520px;
    max-width: calc(100vw - 48px);
  }

  .card-overlap {
    margin-right: -118px;
  }

  .login-card .card-body {
    padding: 42px 42px 36px !important;
  }

  .login-below-card {
    width: 430px;
    max-width: calc(100vw - 48px);
    margin-top: 24px;
    margin-right: 118px;
  }

  .img-container {
    min-height: 0;
    height: min(768px, calc(100vh - 70px));
    display: flex;
    align-items: center;
  }

  .image-showcase {
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: 18px;
    border-radius: 27px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .image-main {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center center;
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .login-page .container {
    width: min(1120px, calc(100% - 36px));
  }

  .login-card {
    width: 470px;
  }

  .card-overlap {
    margin-right: -82px;
  }

  .login-below-card {
    margin-right: 82px;
  }

  .img-container {
    height: min(650px, calc(100vh - 58px));
  }
}

@media (min-width: 992px) and (max-height: 760px) {
  .login-page .container {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  .login-page .row.min-vh-100 {
    min-height: calc(100vh - 32px) !important;
  }

  .login-card .card-body {
    padding-top: 30px !important;
    padding-bottom: 28px !important;
  }

  .img-container {
    height: calc(100vh - 32px);
  }
}


/* v39 — rodapé alinhado ao card e nova arte logos.png */
@media (min-width: 1200px) {
  .login-below-card {
    width: 520px;
    max-width: calc(100vw - 48px);
    margin-top: 24px;
    margin-right: -118px;
    padding-inline: 10px;
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .login-below-card {
    width: 470px;
    max-width: calc(100vw - 36px);
    margin-top: 22px;
    margin-right: -82px;
    padding-inline: 8px;
  }
}

@media (max-width: 991.98px) {
  .login-below-card {
    width: min(520px, 100%);
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
  }
}


/* v40 — alinhamento definitivo do bloco esquerdo e preenchimento da arte */
@media (min-width: 992px) {
  .login-column {
    align-items: flex-end;
  }

  .login-card,
  .login-below-card {
    width: 520px;
    max-width: calc(100vw - 48px);
    margin-left: auto;
    margin-right: -118px;
  }

  .card-overlap {
    margin-right: -118px;
  }

  .login-below-card {
    margin-top: 24px;
    padding-inline: 0;
  }

  .footer-info,
  .login-below-card > .text-center,
  .login-below-card .reservado {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    text-align: center !important;
  }

  .img-container {
    width: 100%;
    height: auto;
    min-height: 0;
  }

  .image-showcase {
    width: 100%;
    aspect-ratio: 1 / 1;
    height: auto;
    min-height: 0;
    padding: 0;
    border-radius: 28px;
    background: transparent;
  }

  .image-main {
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: center;
    border-radius: 28px;
    filter: none;
    transform: none;
  }

  .image-showcase:hover .image-main {
    transform: none;
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .login-card,
  .login-below-card {
    width: 470px;
    max-width: calc(100vw - 36px);
    margin-right: -82px;
  }

  .card-overlap {
    margin-right: -82px;
  }
}

@media (max-width: 991.98px) {
  .login-column {
    align-items: center;
  }

  .login-card,
  .login-below-card {
    margin-left: auto;
    margin-right: auto;
  }
}
