:root {
  --suprema-navy: #07152d;
  --suprema-navy-2: #0d1f3f;
  --suprema-blue: #1e63f0;
  --suprema-blue-2: #2d8cff;
  --suprema-green: #008e37;
  --suprema-text: #101828;
  --suprema-muted: #667085;
  --suprema-border: rgba(15, 23, 42, .12);
}

html, body { min-height: 100%; }

/* Login precisa ignorar limites/max-width do layout base */
.content-full,
.content-full > .content,
.content-full > .main-content {
  padding: 0 !important;
  min-height: 100vh !important;
  width: 100% !important;
  max-width: none !important;
}
.content-full > .vectra-footer,
.content-full .flash-wrap { display: none !important; }
.content-full > .container,
.content-full > .container-fluid,
.content-full > .content-container,
.content-full > main,
.content-full > section {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.suprema-login-page {
  position: relative;
  isolation: isolate;
  width: 100vw;
  min-height: 100vh;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow-x: hidden;
  background:
    radial-gradient(circle at 12% 78%, rgba(0, 142, 55, .075), transparent 31%),
    radial-gradient(circle at 88% 26%, rgba(45, 140, 255, .095), transparent 30%),
    linear-gradient(135deg, #f8fbff 0%, #eef4fb 48%, #f9fcff 100%);
  color: var(--suprema-text);
}

.suprema-login-page::after {
  content: "";
  position: absolute;
  inset: auto -14vw -18vh -12vw;
  height: 34vh;
  background:
    linear-gradient(20deg, rgba(0,142,55,.075), transparent 42%),
    linear-gradient(-14deg, rgba(30,99,240,.095), transparent 48%);
  border-radius: 52% 48% 0 0;
  transform: rotate(-2deg);
  z-index: 0;
}

.suprema-login-topbar {
  position: relative;
  z-index: 2;
  min-height: 78px;
  display: flex;
  align-items: center;
  padding: 12px clamp(18px, 4vw, 52px);
  background: linear-gradient(90deg, #07152d, #0b1d3c 52%, #07152d);
  box-shadow: 0 12px 34px rgba(7, 21, 45, .16);
}

.suprema-topbrand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: #fff;
  max-width: 100%;
}
.suprema-topbrand-logo {
  width: 54px;
  height: 54px;
  display: inline-grid;
  place-items: center;
  border-radius: 15px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 10px 24px rgba(0,0,0,.16);
  flex: 0 0 auto;
}
.suprema-topbrand-logo img {
  width: 42px;
  max-height: 34px;
  object-fit: contain;
}
.suprema-topbrand-text {
  display: grid;
  line-height: 1.16;
  padding-left: 14px;
  border-left: 1px solid rgba(255,255,255,.18);
  min-width: 0;
}
.suprema-topbrand-text strong {
  font-size: clamp(1.05rem, 1.8vw, 1.42rem);
  letter-spacing: .01em;
  font-weight: 800;
  white-space: nowrap;
}
.suprema-topbrand-text small {
  margin-top: 4px;
  font-size: clamp(.78rem, 1.2vw, .9rem);
  color: rgba(255,255,255,.76);
}

.suprema-login-bg,
.suprema-login-bg span { pointer-events: none; user-select: none; }
.suprema-bg-building {
  position: absolute;
  left: max(14px, 2vw);
  bottom: 7vh;
  font-size: clamp(3rem, 7vw, 8rem);
  font-weight: 900;
  letter-spacing: .04em;
  color: rgba(15,23,42,.055);
  opacity: .42;
}
.suprema-bg-medical {
  position: absolute;
  right: clamp(24px, 8vw, 150px);
  top: 42%;
  transform: translateY(-50%);
  font-size: clamp(6rem, 12vw, 13rem);
  color: rgba(13, 31, 63, .045);
}
.suprema-bg-grid {
  position: absolute;
  right: -2vw;
  top: 22vh;
  width: min(34vw, 440px);
  height: min(44vh, 360px);
  opacity: .24;
  background-image:
    linear-gradient(rgba(13,31,63,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13,31,63,.055) 1px, transparent 1px);
  background-size: 38px 38px;
  mask-image: radial-gradient(circle, #000 0%, transparent 70%);
}

.suprema-login-wrap {
  position: relative;
  z-index: 1;
  min-height: calc(100vh - 78px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(22px, 4vh, 46px) 18px 36px;
}

.suprema-login-card {
  width: min(100%, 540px);
  border-radius: 24px;
  padding: clamp(24px, 3.5vw, 38px) clamp(20px, 3.8vw, 40px) 24px;
  background: rgba(255,255,255,.93);
  border: 1px solid rgba(255,255,255,.82);
  box-shadow: 0 24px 72px rgba(15, 23, 42, .12);
  backdrop-filter: blur(12px);
}

.vectra-login-brand { text-align: center; margin-bottom: 14px; }
.vectra-wordmark {
  font-size: clamp(3rem, 7vw, 4.7rem);
  line-height: .92;
  font-weight: 900;
  letter-spacing: -.075em;
  color: #0b1730;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.vectra-wordmark::first-letter { color: var(--suprema-blue); }
.vectra-login-brand p {
  margin: 10px 0 0;
  font-size: clamp(.96rem, 1.7vw, 1.18rem);
  color: var(--suprema-muted);
}

.suprema-login-divider {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 14px;
  margin: 18px 0 20px;
}
.suprema-login-divider span { height: 1px; background: linear-gradient(90deg, transparent, rgba(13,31,63,.18), transparent); }
.suprema-login-divider i {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  border: 1px solid rgba(13,31,63,.12);
  color: rgba(13,31,63,.36);
  font-style: normal;
}

.suprema-login-messages { display: grid; gap: 10px; margin-bottom: 10px; }
.suprema-alert {
  border-radius: 14px;
  padding: 12px 14px;
  font-size: .95rem;
  border: 1px solid transparent;
}
.suprema-alert-error, .suprema-alert-danger { background: rgba(220, 38, 38, .08); border-color: rgba(220, 38, 38, .14); color: #991b1b; }
.suprema-alert-success { background: rgba(22, 163, 74, .08); border-color: rgba(22, 163, 74, .14); color: #166534; }
.suprema-alert-warning { background: rgba(245, 158, 11, .10); border-color: rgba(245, 158, 11, .16); color: #92400e; }
.suprema-alert-info, .suprema-alert-message { background: rgba(30, 99, 240, .08); border-color: rgba(30, 99, 240, .16); color: #1d4ed8; }

.suprema-login-form { display: grid; gap: 10px; }
.suprema-login-form label {
  margin-top: 5px;
  font-size: .96rem;
  font-weight: 800;
  color: #111827;
}
.suprema-input-wrap {
  min-height: 54px;
  display: grid;
  grid-template-columns: 42px 1fr auto;
  align-items: center;
  border: 1px solid var(--suprema-border);
  border-radius: 14px;
  background: rgba(255,255,255,.84);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.suprema-input-wrap:focus-within { border-color: rgba(30,99,240,.5); box-shadow: 0 0 0 4px rgba(30,99,240,.10); }
.suprema-input-wrap > span { text-align: center; opacity: .58; font-size: .98rem; }
.suprema-input-wrap input {
  width: 100%;
  height: 52px;
  border: 0 !important;
  outline: none !important;
  background: transparent !important;
  padding: 0 12px 0 0 !important;
  font-size: .98rem;
  color: #111827;
  box-shadow: none !important;
}
.suprema-input-wrap input::placeholder { color: #98a2b3; }
.suprema-password-toggle {
  width: 40px;
  height: 40px;
  margin-right: 7px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #64748b;
  cursor: pointer;
}
.suprema-password-toggle:hover, .suprema-password-toggle.is-active { background: rgba(30,99,240,.08); color: var(--suprema-blue); }
.suprema-form-row { display: flex; justify-content: flex-end; margin-top: 0; }
.suprema-forgot { font-size: .92rem; font-weight: 600; color: var(--suprema-blue); }
.suprema-login-button {
  width: 100%;
  min-height: 54px;
  margin-top: 7px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(90deg, var(--suprema-blue), var(--suprema-blue-2));
  color: #fff;
  font-size: 1.04rem;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 14px 24px rgba(30,99,240,.20);
}
.suprema-login-button:hover { filter: brightness(1.02); transform: translateY(-1px); }
.suprema-card-footer {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(13,31,63,.09);
  display: flex;
  justify-content: center;
}
.suprema-card-footer img { width: min(100%, 235px); height: auto; object-fit: contain; }

.brand-badge.brand-badge-suprema { background: rgba(255,255,255,.96); overflow: hidden; }
.brand-badge.brand-badge-suprema img { width: 28px; height: 22px; object-fit: contain; }

@media (max-width: 991px) {
  .suprema-login-topbar { min-height: 74px; }
  .suprema-login-wrap { min-height: calc(100vh - 74px); }
  .suprema-bg-building { font-size: clamp(2.2rem, 8vw, 4.8rem); bottom: 4vh; }
  .suprema-bg-medical { right: 4vw; font-size: clamp(5rem, 12vw, 8rem); }
}
@media (max-width: 640px) {
  .suprema-login-page { min-height: 100dvh; }
  .suprema-login-topbar { min-height: 68px; padding: 10px 14px; }
  .suprema-topbrand { gap: 10px; }
  .suprema-topbrand-logo { width: 46px; height: 46px; border-radius: 13px; }
  .suprema-topbrand-logo img { width: 36px; max-height: 28px; }
  .suprema-topbrand-text { padding-left: 10px; }
  .suprema-topbrand-text strong { font-size: .96rem; }
  .suprema-topbrand-text small { font-size: .72rem; }
  .suprema-login-wrap { min-height: calc(100dvh - 68px); padding: 16px 12px 22px; align-items: flex-start; }
  .suprema-login-card { width: 100%; border-radius: 20px; padding: 22px 15px 18px; }
  .vectra-wordmark { font-size: clamp(2.55rem, 13vw, 3.8rem); }
  .vectra-login-brand p { font-size: .94rem; }
  .suprema-login-divider { gap: 10px; margin: 16px 0 16px; }
  .suprema-login-divider i { width: 30px; height: 30px; }
  .suprema-input-wrap { min-height: 52px; border-radius: 12px; }
  .suprema-input-wrap input { height: 50px; font-size: .96rem; }
  .suprema-login-button { min-height: 52px; font-size: 1rem; }
  .suprema-card-footer img { width: min(100%, 205px); }
  .suprema-bg-grid, .suprema-bg-medical { display: none; }
  .suprema-bg-building { left: 4vw; right: 4vw; bottom: 12vh; text-align: center; opacity: .14; }
}
@media (max-height: 720px) and (min-width: 641px) {
  .suprema-login-topbar { min-height: 70px; }
  .suprema-login-wrap { min-height: calc(100vh - 70px); padding-top: 16px; padding-bottom: 20px; }
  .suprema-login-card { padding-top: 24px; padding-bottom: 18px; }
  .vectra-wordmark { font-size: 3.5rem; }
  .vectra-login-brand p { margin-top: 8px; font-size: 1rem; }
  .suprema-login-divider { margin: 14px 0 14px; }
  .suprema-card-footer { margin-top: 16px; padding-top: 14px; }
  .suprema-card-footer img { width: 200px; }
}
