/* Entrada e cadastro externo. Escopo isolado: não altera a navegação nem telas internas. */
body.sgx-public.portal-page {
  --portal-ink: #132849;
  --portal-navy: #102345;
  --portal-navy-deep: #0b1a34;
  --portal-blue: #315faa;
  --portal-blue-hover: #254d91;
  --portal-muted: #5e6f86;
  --portal-line: #d8e1ec;
  --portal-soft: #f3f6fa;
  --portal-positive: #176642;
  min-height: 100vh;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  color: var(--portal-ink) !important;
  background: #f3f6fa !important;
  font-family: 'IBM Plex Sans', Arial, sans-serif !important;
  font-size: 16px;
  line-height: 1.55;
}

.portal-page :is(*, *::before, *::after) { box-sizing: border-box; }
.portal-page :is(h1, h2, h3, label, strong, small, button, a, input, select, textarea) {
  font-family: 'IBM Plex Sans', Arial, sans-serif !important;
}
.portal-page a { color: var(--portal-blue); text-underline-offset: 3px; }
.portal-page a:hover { color: var(--portal-blue-hover); }
.portal-page :is(a, button, input, select):focus-visible {
  outline: 3px solid #5b91e6 !important;
  outline-offset: 3px;
}
.portal-page :is(input, select, button) { font: inherit; }
.portal-page :is(input, select) {
  width: 100%;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid #9aaac0 !important;
  border-radius: 9px !important;
  color: #132849 !important;
  background: #fff !important;
  font-size: 16px;
  line-height: 1.4;
  box-shadow: 0 1px 2px #1023450d;
}
.portal-page :is(input, select)::placeholder { color: #73839a; opacity: 1; }
.portal-page :is(input, select):hover { border-color: #6e84a2 !important; }
.portal-page input:-webkit-autofill {
  -webkit-text-fill-color: #132849;
  box-shadow: 0 0 0 1000px #fff inset;
}
.portal-page button { min-width: 44px; min-height: 48px; }

.portal-frame {
  width: min(100%, 1520px);
  min-height: 100vh;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(360px, .84fr) minmax(0, 1.16fr);
  background: #f3f6fa;
  box-shadow: 0 0 80px #112b4c14;
}
.portal-frame--form { grid-template-columns: minmax(330px, .72fr) minmax(0, 1.28fr); }

.portal-aside {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  padding: clamp(28px, 4.1vw, 62px) clamp(24px, 4.1vw, 60px);
  overflow: hidden;
  color: #f7faff;
  background:
    radial-gradient(ellipse at 0 100%, #214c80 0, transparent 48%),
    linear-gradient(148deg, #142d52 0%, #102345 52%, #0b1a34 100%);
}
.portal-aside::after {
  position: absolute;
  z-index: -1;
  right: -115px;
  bottom: -165px;
  width: 390px;
  height: 390px;
  border: 1px solid #b6cde51b;
  border-radius: 50%;
  box-shadow: 0 0 0 35px #b6cde50b, 0 0 0 82px #b6cde507;
  content: '';
}
.portal-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  max-width: 100%;
  color: #fff !important;
  text-decoration: none;
}
.portal-brand>img {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  padding: 3px;
  object-fit: contain;
  border: 1px solid #dce7f4;
  border-radius: 10px;
  background: #fff;
}
.portal-brand>img.portal-brand-ga { width: 48px; height: 48px; padding: 3px; border-radius: 10px; }
.portal-brand>span { display: grid; gap: 2px; min-width: 0; }
.portal-brand strong { color: #fff !important; font-size: 16px; letter-spacing: -.01em; line-height: 1.25; }
.portal-brand small { color: #c2d0e1; font-size: 12px; line-height: 1.35; }

.portal-intro { max-width: 525px; margin-top: clamp(52px, 10vh, 116px); }
.portal-eyebrow {
  margin: 0 0 10px;
  color: #426da8;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .09em;
  line-height: 1.3;
  text-transform: uppercase;
}
.portal-aside .portal-eyebrow { color: #a6c6f1; }
.portal-intro h1 {
  max-width: 12.5ch;
  margin: 0;
  color: #fff !important;
  font-size: clamp(34px, 4vw, 51px) !important;
  font-weight: 600 !important;
  letter-spacing: -.045em !important;
  line-height: 1.07 !important;
}
.portal-intro>p:last-child {
  max-width: 48ch;
  margin: 19px 0 0;
  color: #d1dbea;
  font-size: 16px;
  line-height: 1.65;
}

.portal-feature-list { display: grid; gap: 12px; max-width: 520px; margin-top: 42px; }
.portal-feature {
  display: flex;
  gap: 14px;
  align-items: center;
  min-height: 76px;
  padding: 13px 15px;
  border: 1px solid #c7d7eb35;
  border-radius: 13px;
  background: #ffffff0b;
}
.portal-feature-mark {
  display: grid;
  flex: 0 0 39px;
  width: 39px;
  height: 39px;
  place-items: center;
  border: 1px solid #8ab3eb6b;
  border-radius: 11px;
  color: #d7e7fa;
  font-size: 12px;
  font-weight: 700;
}
.portal-feature>span:last-child { display: grid; gap: 2px; }
.portal-feature strong { color: #f7faff; font-size: 14px; }
.portal-feature small { color: #c2d0e1; font-size: 13px; line-height: 1.45; }
.portal-status-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, .75fr); gap: 10px; max-width: 520px; margin-top: 32px; }
.portal-status-card { display: grid; align-content: center; gap: 4px; min-width: 0; min-height: 88px; padding: 13px 15px; border: 1px solid #c7d7eb35; border-radius: 13px; background: #ffffff0b; }
.portal-status-card>span { color: #e6eef9; font-size: 12px; font-weight: 600; line-height: 1.35; }
.portal-status-card>strong { color: #fff; font-size: 27px; font-weight: 700; letter-spacing: -.03em; line-height: 1; }
.portal-status-card--ships>strong { overflow-wrap: anywhere; font-size: 17px; line-height: 1.2; letter-spacing: -.01em; }
.portal-status-card>small { color: #c2d0e1; font-size: 11px; line-height: 1.35; }
.portal-status-card[data-status="indisponivel"]>strong { color: #d1dbea; }
.portal-aside-foot { margin: auto 0 0; padding-top: 34px; color: #bdcbe0; font-size: 13px; }
.portal-aside-foot a { color: #e0ebf9; text-decoration-color: #9fbbe07d; }

.portal-steps { display: grid; gap: 0; margin: 35px 0 38px; padding: 0; list-style: none; }
.portal-steps li { position: relative; display: grid; grid-template-columns: 40px 1fr; gap: 14px; min-height: 84px; }
.portal-steps li:not(:last-child)::after {
  position: absolute;
  top: 42px;
  bottom: 0;
  left: 19px;
  width: 1px;
  background: #c1d5ef4a;
  content: '';
}
.portal-steps li>span {
  display: grid;
  z-index: 1;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid #a8c6ed85;
  border-radius: 50%;
  color: #e8f1fe;
  background: #15335d;
  font-size: 14px;
  font-weight: 700;
}
.portal-steps li>div { display: grid; align-content: start; gap: 3px; padding: 2px 0 20px; }
.portal-steps strong { color: #f8faff; font-size: 15px; }
.portal-steps small { max-width: 37ch; color: #c7d5e7; font-size: 13px; line-height: 1.5; }
.portal-security-note { display: flex; gap: 14px; align-items: center; max-width: 450px; margin-top: 42px; padding: 16px; border: 1px solid #c7d7eb35; border-radius: 13px; background: #ffffff0b; }
.portal-security-note>span { display: grid; flex: 0 0 40px; width: 40px; height: 40px; place-items: center; border-radius: 11px; color: #d9e9fb; background: #d9e9fb17; font-size: 22px; }
.portal-security-note p { margin: 0; color: #d1dbea; font-size: 14px; }

.portal-main {
  display: grid;
  align-content: center;
  justify-items: center;
  min-width: 0;
  padding: clamp(24px, 5vw, 72px);
  background:
    radial-gradient(ellipse at 100% 0, #e8eff8 0, transparent 38%),
    #f5f7fa;
}
.portal-main--wide { padding-right: clamp(22px, 4vw, 60px); padding-left: clamp(22px, 4vw, 60px); }
.portal-card {
  width: min(100%, 500px);
  padding: clamp(25px, 3.1vw, 40px);
  border: 1px solid #dce4ed;
  border-radius: 19px;
  color: var(--portal-ink);
  background: #fff;
  box-shadow: 0 16px 46px #142e4c12, 0 2px 7px #142e4c08;
}
.portal-login-card { width: min(100%, 520px); }
.portal-registration-card { width: min(100%, 670px); }
.portal-card-heading { margin-bottom: 24px; }
.portal-card-heading .portal-eyebrow { margin-bottom: 8px; }
.portal-card-heading h2 {
  margin: 0;
  color: #132849 !important;
  font-size: clamp(25px, 2.5vw, 31px) !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
  line-height: 1.2 !important;
}
.portal-card-heading>p:last-child { margin: 8px 0 0; color: var(--portal-muted); font-size: 15px; }

.portal-form { display: grid; gap: 16px; }
.portal-field { display: grid; gap: 7px; min-width: 0; margin: 0; color: #233954; font-size: 14px; font-weight: 600; }
.portal-field>span { line-height: 1.35; }
.portal-field-help { margin: -10px 0 0; color: var(--portal-muted); font-size: 13px; line-height: 1.4; }
.portal-field>.portal-field-help { margin: -2px 0 0; font-weight: 400; }
.portal-primary {
  width: 100%;
  min-height: 50px !important;
  margin: 4px 0 0;
  padding: 12px 18px;
  border: 1px solid var(--portal-blue) !important;
  border-radius: 9px !important;
  color: #fff !important;
  background: var(--portal-blue) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  cursor: pointer;
  transition: background-color .16s ease, transform .16s ease;
}
.portal-primary:hover:not(:disabled) { border-color: var(--portal-blue-hover) !important; background: var(--portal-blue-hover) !important; }
.portal-primary:active:not(:disabled) { transform: translateY(1px); }
.portal-primary:disabled { opacity: .66; cursor: wait; }
.portal-secondary {
  width: 100%;
  min-height: 48px !important;
  padding: 10px 16px;
  border: 1px solid #a9b9ce !important;
  border-radius: 9px !important;
  color: #274a78 !important;
  background: #fff !important;
  font-size: 15px !important;
  font-weight: 650 !important;
  cursor: pointer;
}
.portal-secondary:hover { background: #f3f7fc !important; }
.portal-message { min-height: 23px; margin: 0; color: #9a2f3c; font-size: 14px; font-weight: 550; line-height: 1.45; }
.portal-message:empty { min-height: 0; }
.portal-message.ok { color: var(--portal-positive); }
.portal-flash { margin: -5px 0 20px; padding: 12px 14px; border: 1px solid #d8e1ec; border-radius: 9px; background: #f5f8fc; }
.portal-flash.ok { border-color: #a8d0b8; color: #145638; background: #edf8f1; }
.portal-flash.erro { border-color: #e2b9bf; color: #862735; background: #fff2f3; }
.portal-footnote { margin: 20px 0 0; color: var(--portal-muted); font-size: 13px; line-height: 1.5; }
.portal-divider { display: flex; align-items: center; gap: 12px; margin: 20px 0 14px; color: #65768d; font-size: 12px; font-weight: 650; }
.portal-divider::before,.portal-divider::after { height: 1px; flex: 1; background: #e2e8f0; content: ''; }
.portal-role-cards { display: grid; gap: 9px; }
.portal-role-card {
  display: grid;
  grid-template-columns: 39px minmax(0, 1fr) 20px;
  gap: 12px;
  align-items: center;
  min-height: 68px;
  padding: 10px 12px;
  border: 1px solid var(--portal-line);
  border-radius: 11px;
  color: var(--portal-ink) !important;
  background: #fff;
  text-decoration: none;
  transition: border-color .15s ease, background-color .15s ease;
}
.portal-role-card:hover { border-color: #9eb8db; background: #f8fbff; }
.portal-role-icon { display: grid; width: 39px; height: 39px; place-items: center; border-radius: 10px; color: #315b95; background: #eef3fa; font-size: 20px; }
.portal-role-card>span:nth-child(2) { display: grid; gap: 2px; }
.portal-role-card strong { color: #1a3153; font-size: 14px; }
.portal-role-card small { color: #5e6f86; font-size: 12px; line-height: 1.4; }
.portal-arrow { justify-self: end; color: #567ba9; font-size: 19px; }
.portal-staff-link { margin: 17px 0 0; color: #5e6f86; font-size: 13px; text-align: center; }
.portal-staff-link a { font-weight: 650; }
.portal-main-footer { width: min(100%, 670px); margin-top: 22px; color: #697b91; font-size: 12px; text-align: center; }
.portal-main-footer span { margin: 0 5px; color: #9aabbe; }
.portal-main-footer a { color: #526e92; }

.portal-step-panel { padding-top: 2px; }
.portal-step-heading { display: grid; grid-template-columns: auto 1fr; gap: 7px 12px; align-items: center; margin-bottom: 17px; }
.portal-step-heading>span { grid-column: 1 / -1; color: #5678a5; font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.portal-step-heading h3 { margin: 0; color: #1a3153; font-size: 19px; letter-spacing: -.015em; }
.portal-step-panel+.portal-step-panel { margin-top: 22px; padding-top: 23px; border-top: 1px solid #e3e9f0; }
.portal-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.portal-context-panel { display: grid; gap: 12px; min-width: 0; margin: 0; padding: 10px 16px 16px; border: 1px solid #e1e8f0; border-radius: 12px; background: #f8fafd; }
.portal-context-panel legend { padding: 0 5px; color: #385474; font-size: 13px; font-weight: 700; }
.portal-inline-note { margin: 0; color: #526780; font-size: 13px; line-height: 1.5; }
.portal-card-copy { margin: 0 0 19px; color: #52647b; font-size: 14px; line-height: 1.6; }
.portal-card-copy b { color: #1b3559; overflow-wrap: anywhere; }
.portal-success-panel { text-align: left; }
.portal-success-icon { display: grid; width: 46px; height: 46px; margin: 0 0 15px; place-items: center; border-radius: 50%; color: #176642; background: #e7f5ec; font-size: 23px; font-weight: 700; }
.portal-secondary-link { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; margin-top: 14px; padding: 10px 17px; border: 1px solid #a9b9ce; border-radius: 9px; color: #274a78 !important; font-size: 15px; font-weight: 650; text-decoration: none; }
.portal-secondary-link:hover { background: #f3f7fc; }
.portal-page :is(.hidden,[hidden]) { display: none !important; }

@media (max-width: 900px) {
  .portal-frame,.portal-frame--form { grid-template-columns: minmax(0, 1fr); }
  .portal-aside { min-height: auto; padding: 25px clamp(22px, 6vw, 44px) 26px; }
  .portal-intro { margin-top: 34px; }
  .portal-intro h1 { max-width: 18ch; font-size: clamp(30px, 5vw, 42px) !important; }
  .portal-intro>p:last-child { margin-top: 12px; }
  .portal-feature-list { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; margin-top: 23px; }
  .portal-feature { min-height: 70px; }
  .portal-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 24px 0 5px; }
  .portal-steps li { grid-template-columns: 34px 1fr; gap: 9px; min-height: auto; }
  .portal-steps li:not(:last-child)::after { display: none; }
  .portal-steps li>span { width: 34px; height: 34px; }
  .portal-steps li>div { padding: 1px 0 4px; }
  .portal-steps small { font-size: 12px; }
  .portal-aside-foot { margin-top: 19px; padding-top: 8px; }
  .portal-main { padding: 30px clamp(18px, 5vw, 42px) 22px; }
  .portal-card { width: min(100%, 670px); }
}
@media (max-width: 560px) {
  .portal-brand { gap: 7px; }
  .portal-brand>img { width: 42px; height: 42px; }
  .portal-brand>img.portal-brand-ga { width: 42px; height: 42px; }
  .portal-brand strong { font-size: 14px; }
  .portal-brand small { max-width: 26ch; font-size: 11px; }
  .portal-aside { padding: 19px 19px 21px; }
  .portal-intro { margin-top: 30px; }
  .portal-intro h1 { max-width: 15ch; font-size: 32px !important; }
  .portal-intro>p:last-child { font-size: 14px; }
  .portal-feature-list { grid-template-columns: 1fr; gap: 8px; margin-top: 19px; }
  .portal-feature { min-height: 60px; padding: 9px 11px; }
  .portal-feature-mark { width: 35px; height: 35px; flex-basis: 35px; }
  .portal-steps { grid-template-columns: 1fr; gap: 9px; margin-top: 20px; }
  .portal-steps li { grid-template-columns: 32px 1fr; gap: 10px; }
  .portal-steps li>span { width: 32px; height: 32px; }
  .portal-steps li>div { padding-bottom: 1px; }
  .portal-steps small { max-width: none; }
  .portal-main { align-content: start; padding: 18px 14px 22px; }
  .portal-card { padding: 23px 19px; border-radius: 15px; }
  .portal-card-heading { margin-bottom: 20px; }
  .portal-card-heading h2 { font-size: 25px !important; }
  .portal-field-grid { grid-template-columns: 1fr; gap: 14px; }
  .portal-context-panel { padding: 8px 13px 13px; }
  .portal-role-card { min-height: 72px; }
  .portal-main-footer { margin-top: 16px; }
  .portal-frame--login .portal-aside { padding: 15px 18px 17px; }
  .portal-frame--login .portal-intro { margin-top: 16px; }
  .portal-frame--login .portal-intro .portal-eyebrow { margin-bottom: 5px; }
  .portal-frame--login .portal-intro h1 { max-width: none; font-size: 27px !important; line-height: 1.12 !important; }
  .portal-frame--login .portal-intro>p:last-child { margin-top: 7px; font-size: 13px; line-height: 1.45; }
  .portal-frame--login .portal-status-grid { gap: 7px; margin-top: 15px; }
  .portal-frame--login .portal-status-card { min-height: 78px; padding: 10px; }
  .portal-frame--login .portal-status-card>span { font-size: 11px; }
  .portal-frame--login .portal-status-card>strong { font-size: 24px; }
  .portal-frame--login .portal-status-card--ships>strong { font-size: 15px; }
  .portal-frame--login .portal-status-card>small { font-size: 10px; }
  .portal-frame--login .portal-aside-foot { display: none; }
}
@media (min-width: 901px) and (max-height: 900px) {
  .portal-frame--login .portal-aside { padding-block: 30px; }
  .portal-frame--login .portal-intro { margin-top: clamp(30px, 6vh, 56px); }
  .portal-frame--login .portal-intro h1 { max-width: none; }
  .portal-frame--login .portal-status-grid { gap: 9px; margin-top: 22px; }
  .portal-frame--login .portal-status-card { min-height: 74px; padding: 10px 12px; }
  .portal-frame--login .portal-aside-foot { padding-top: 18px; }
  .portal-frame--login .portal-main { padding-block: 18px; }
  .portal-frame--login .portal-login-card { padding: 30px; }
  .portal-frame--login .portal-card-heading { margin-bottom: 17px; }
  .portal-frame--login .portal-divider { margin: 14px 0 10px; }
  .portal-frame--login .portal-role-card { min-height: 60px; padding-block: 8px; }
  .portal-frame--login .portal-staff-link { margin-top: 12px; }
  .portal-frame--login .portal-footnote { margin-top: 12px; }
  .portal-frame--login .portal-main-footer { margin-top: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-page *, .portal-page *::before, .portal-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
