@font-face {
  font-family: "Oiza Nunito";
  src: url("/client/login/asset?name=font-nunito.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
}

@font-face {
  font-family: "Oiza Kalam";
  src: url("/client/login/asset?name=font-kalam-700.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --oiza-login-ink: #073b43;
  --oiza-login-teal: #007f70;
  --oiza-login-teal-dark: #00645e;
  --oiza-login-green: #54ad57;
  --oiza-login-orange: #f39a19;
  --oiza-login-cream: #fffaf0;
  --oiza-login-card: #fffefb;
  --oiza-login-line: #d7e4dd;
  --oiza-login-muted: #526d70;
  --oiza-login-danger: #8b3232;
  --oiza-login-danger-bg: #fff0ef;
  --oiza-login-radius: 26px;
  --oiza-login-shadow: 0 24px 70px rgba(3, 60, 66, .14);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--oiza-login-cream); }
body { margin: 0; min-height: 100dvh; color: var(--oiza-login-ink); font: 16px/1.45 "Oiza Nunito", Inter, ui-sans-serif, system-ui, sans-serif; }
button, input { font: inherit; }
.oiza-login-body { display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 18% 12%, #e8f5e7 0 12%, transparent 36%), linear-gradient(135deg, #fffdf6, #f1f8f2); }
.oiza-login-shell { width: min(100%, 980px); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr); overflow: hidden; border: 1px solid var(--oiza-login-line); border-radius: var(--oiza-login-radius); background: var(--oiza-login-card); box-shadow: var(--oiza-login-shadow); }
.oiza-login-brand { position: relative; min-height: 620px; display: flex; flex-direction: column; gap: 26px; padding: 44px 48px 0; overflow: hidden; background: linear-gradient(160deg, #fffdf6 0 52%, #dff0df 100%); }
.oiza-login-brand::after { content: ""; position: absolute; right: -70px; bottom: -100px; width: 360px; height: 360px; border-radius: 50%; background: rgba(84, 173, 87, .14); }
.oiza-login-logo { width: 132px; height: auto; }
.oiza-login-brand > div { position: relative; z-index: 2; max-width: 420px; }
.oiza-login-kicker { margin: 0 0 9px; color: var(--oiza-login-teal); font-size: 14px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.oiza-login-brand h1 { max-width: 390px; margin: 0; font-size: clamp(34px, 5vw, 56px); line-height: 1.02; letter-spacing: -.055em; }
.oiza-login-brand p:not(.oiza-login-kicker) { max-width: 430px; margin: 18px 0 0; color: var(--oiza-login-muted); }
.oiza-login-iza { position: absolute; z-index: 1; right: -18px; bottom: -110px; width: min(70%, 430px); height: auto; filter: drop-shadow(0 18px 24px rgba(3, 60, 66, .14)); }
.oiza-login-card { align-self: center; display: grid; gap: 24px; padding: 48px; }
.oiza-login-card__heading span { display: inline-flex; padding: 6px 10px; border-radius: 999px; color: var(--oiza-login-teal-dark); background: #e5f4e7; font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.oiza-login-card__heading h2 { margin: 16px 0 6px; font-size: 30px; line-height: 1.1; letter-spacing: -.035em; }
.oiza-login-card__heading p { margin: 0; color: var(--oiza-login-muted); font-size: 14px; }
.oiza-login-card form { display: grid; gap: 17px; }
.oiza-login-card label { display: grid; gap: 7px; font-size: 13px; font-weight: 850; }
.oiza-login-card input { width: 100%; min-height: 50px; padding: 0 14px; border: 1px solid #9fb6b5; border-radius: 14px; color: var(--oiza-login-ink); background: #fff; }
.oiza-login-card input:focus { border-color: var(--oiza-login-teal); outline: 3px solid rgba(0, 127, 112, .16); outline-offset: 1px; }
.oiza-login-card button { min-height: 52px; border: 0; border-radius: 15px; color: #fff; background: linear-gradient(180deg, #009b82, var(--oiza-login-teal-dark)); font-weight: 900; cursor: pointer; box-shadow: 0 10px 20px rgba(0, 100, 94, .2); }
.oiza-login-card button:hover { background: var(--oiza-login-teal-dark); }
.oiza-login-card button:focus-visible { outline: 3px solid var(--oiza-login-orange); outline-offset: 3px; }
.oiza-login-card > small { color: var(--oiza-login-muted); font-size: 11px; text-align: center; }
.oiza-login-error { margin: 0; padding: 11px 13px; border: 1px solid #efc6c2; border-radius: 13px; color: var(--oiza-login-danger); background: var(--oiza-login-danger-bg); font-size: 13px; }

@media (max-width: 760px) {
  .oiza-login-body { place-items: start center; padding: 0; }
  .oiza-login-shell { width: min(100%, 430px); min-height: 100dvh; grid-template-columns: 1fr; border: 0; border-radius: 0; }
  .oiza-login-brand { min-height: 360px; padding: 30px 26px 0; }
  .oiza-login-logo { width: 105px; }
  .oiza-login-brand h1 { max-width: 300px; font-size: 36px; }
  .oiza-login-brand p:not(.oiza-login-kicker) { max-width: 290px; font-size: 13px; }
  .oiza-login-iza { right: -34px; bottom: -100px; width: 235px; }
  .oiza-login-card { width: 100%; align-self: auto; padding: 30px 24px max(30px, env(safe-area-inset-bottom)); }
  .oiza-login-card__heading h2 { font-size: 26px; }
}

@media (max-width: 390px) {
  .oiza-login-brand { min-height: 325px; }
  .oiza-login-brand h1 { font-size: 31px; }
  .oiza-login-brand p:not(.oiza-login-kicker) { display: none; }
  .oiza-login-iza { bottom: -112px; width: 225px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Primeiro acesso: apresentação curta e controlada das funções da Iza. */
.oiza-welcome {
  width: 100%;
  min-height: min(100svh, 820px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  padding: max(18px, env(safe-area-inset-top)) 22px max(22px, env(safe-area-inset-bottom));
  color: #075067;
  background:
    radial-gradient(circle at 88% 15%, rgba(255,191,36,.14) 0 52px, transparent 53px),
    radial-gradient(circle at 10% 83%, rgba(117,204,174,.18) 0 72px, transparent 73px),
    linear-gradient(168deg, #fbfdff 4%, #e8f7ff 54%, #effaf4 100%);
  transition: opacity 180ms ease;
}
.oiza-welcome.is-leaving { opacity: 0; pointer-events: none; }
.oiza-welcome__header { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 10px; }
.oiza-welcome__progress { position: absolute; inset: 0 0 auto; height: 3px; overflow: hidden; border-radius: 999px; background: rgba(7,80,103,.13); }
.oiza-welcome__progress span { display: block; width: 100%; height: 100%; border-radius: inherit; background: #08a3a3; transform: scaleX(0); transform-origin: left center; }
.oiza-welcome.is-running .oiza-welcome__progress span { animation: oiza-welcome-story-progress var(--oiza-welcome-story-duration, 5000ms) linear forwards; }
.oiza-welcome.is-paused .oiza-welcome__progress span { animation-play-state: paused; }
.oiza-welcome__header img { width: 112px; height: auto; }
.oiza-welcome__header-actions { display: flex; align-items: center; gap: 4px; }
.oiza-welcome__header form { margin: 0; }
.oiza-welcome__header button,
.oiza-welcome__back {
  min-width: 58px;
  min-height: 44px;
  padding: 0;
  border: 0;
  color: #37667a;
  background: transparent;
  font: 850 14px/1 "Oiza Nunito", sans-serif;
  cursor: pointer;
}
.oiza-welcome__pause { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 32px !important; padding: 4px 10px !important; border-radius: 999px !important; color: #087979 !important; background: rgba(216,246,233,.9) !important; }
.oiza-welcome__pause [data-welcome-pause-icon] { width: 10px; font-size: 11px; }
.oiza-welcome__stage { position: relative; min-height: 0; }
.oiza-welcome__slide {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-rows: minmax(230px, 1fr) auto;
  align-items: end;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 420ms cubic-bezier(.22,1,.36,1), transform 420ms cubic-bezier(.22,1,.36,1);
}
.oiza-welcome__slide[hidden] { display: none; }
.oiza-welcome__slide.is-active { opacity: 1; transform: translateY(0); animation: oiza-welcome-slide-in 280ms 400ms cubic-bezier(.22,1,.36,1) both; }
.oiza-welcome__slide.is-leaving { opacity: 0; transform: translateY(-6px); transition-duration: 150ms; }
.oiza-welcome__visual { min-height: 0; height: 100%; display: flex; align-items: flex-end; justify-content: center; }
.oiza-welcome__visual img { width: min(100%, 380px); max-height: 42svh; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 18px 22px rgba(7,80,103,.10)); }
.oiza-welcome__slide.is-active .oiza-welcome__visual img { animation: oiza-welcome-character-in 360ms 440ms cubic-bezier(.22,1,.36,1) both; }
.oiza-welcome__copy { max-width: 390px; margin: 0 auto; text-align: center; }
.oiza-welcome__copy > span {
  display: inline-flex;
  padding: 6px 12px;
  border-radius: 999px;
  color: #087979;
  background: rgba(216,246,233,.92);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .08em;
}
.oiza-welcome__copy h1 { margin: 12px 0 7px; color: #075067; font-size: clamp(25px, 7vw, 32px); line-height: 1.08; }
.oiza-welcome__copy p { margin: 0; color: #5e7d96; font-size: 15px; line-height: 1.48; }
.oiza-welcome__slide.is-active .oiza-welcome__copy > span { animation: oiza-welcome-copy-in 240ms 470ms ease-out both; }
.oiza-welcome__slide.is-active .oiza-welcome__copy h1 { animation: oiza-welcome-copy-in 260ms 500ms ease-out both; }
.oiza-welcome__slide.is-active .oiza-welcome__copy p,
.oiza-welcome__slide.is-active .oiza-welcome__learn-more { animation: oiza-welcome-copy-in 260ms 530ms ease-out both; }
.oiza-welcome__learn-more { display: inline-flex; align-items: center; gap: 5px; margin-top: 12px; color: #087979; font-size: 14px; font-weight: 900; text-decoration: none; }
.oiza-welcome__footer { min-height: 34px; padding-top: 12px; text-align: center; }
.oiza-welcome__footer p { margin: 0; color: #7893a3; font-size: 12px; font-weight: 750; }
.oiza-welcome__dots { display: flex; justify-content: center; gap: 7px; margin-bottom: 14px; }
.oiza-welcome__dot {
  width: 24px;
  height: 12px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
}
.oiza-welcome__dot::before { content: ""; display: block; width: 7px; height: 7px; margin: auto; border-radius: 999px; background: #b6ced8; transition: width 240ms ease, background-color 240ms ease; }
.oiza-welcome__dot.is-active::before { width: 22px; background: #08a3a3; }
.oiza-welcome__actions { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 12px; max-width: 390px; margin: 0 auto; }
.oiza-welcome__back:disabled { visibility: hidden; }
.oiza-welcome__next,
.oiza-welcome__actions form button {
  width: 100%;
  min-height: 54px;
  border: 0;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(135deg, #079e9d, #08aaa8);
  box-shadow: 0 12px 24px rgba(7,158,157,.22);
  font: 900 16px/1 "Oiza Nunito", sans-serif;
  cursor: pointer;
}
.oiza-welcome__next[hidden], .oiza-welcome__actions form[hidden] { display: none; }
.oiza-welcome__actions form { margin: 0; }
.oiza-welcome button:focus-visible { outline: 3px solid rgba(7,156,157,.36); outline-offset: 3px; }

@keyframes oiza-welcome-story-progress { to { transform: scaleX(1); } }
@keyframes oiza-welcome-slide-in { from { opacity: 0; transform: translateY(12px); } }
@keyframes oiza-welcome-character-in { from { opacity: 0; transform: translateY(28px) scale(.97); } }
@keyframes oiza-welcome-copy-in { from { opacity: 0; transform: translateY(8px); } }

@media (max-height: 650px) {
  .oiza-welcome { min-height: 650px; }
  .oiza-welcome__visual img { max-height: 260px; }
}

@media (prefers-reduced-motion: reduce) {
  .oiza-welcome,
  .oiza-welcome__slide,
  .oiza-welcome__dot::before { transition: none !important; }
  .oiza-welcome__slide.is-active,
  .oiza-welcome__slide.is-active .oiza-welcome__visual img,
  .oiza-welcome__slide.is-active .oiza-welcome__copy > span,
  .oiza-welcome__slide.is-active .oiza-welcome__copy h1,
  .oiza-welcome__slide.is-active .oiza-welcome__copy p,
  .oiza-welcome__slide.is-active .oiza-welcome__learn-more { animation: none !important; }
}

/* RC-4.2 — composição móvel alinhada ao template 01. */
.oiza-login-body {
  display: grid;
  place-items: start center;
  padding: 0;
  background: #f3f8ef;
}
.oiza-login-shell {
  width: min(100%, 430px);
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(circle at -12% 88%, rgba(122,189,75,.18), transparent 180px),
    radial-gradient(circle at 112% 82%, rgba(20,152,164,.12), transparent 180px),
    #fbf8f0;
  box-shadow: 0 0 40px rgba(18,61,82,.08);
}
.oiza-login-brand {
  min-height: 328px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: max(32px, env(safe-area-inset-top)) 24px 0;
  overflow: hidden;
  background: transparent;
}
.oiza-login-brand::after { display: none; }
.oiza-login-logo { position: relative; z-index: 2; width: 150px; }
.oiza-login-iza {
  position: relative;
  right: auto;
  bottom: auto;
  width: 232px;
  max-height: 250px;
  margin-top: 2px;
  object-fit: contain;
  object-position: top;
  filter: drop-shadow(0 14px 22px rgba(18,61,82,.12));
}
.oiza-login-card {
  width: 100%;
  align-self: stretch;
  display: grid;
  gap: 14px;
  padding: 0 24px max(24px, env(safe-area-inset-bottom));
}
.oiza-login-card__heading { text-align: center; }
.oiza-login-card__heading h1 {
  margin: 0 0 6px;
  color: #123d52;
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -.03em;
}
.oiza-login-card__heading p { max-width: 330px; margin: 0 auto; color: #6c8291; font-size: 14px; }
.oiza-login-card form { gap: 12px; }
.oiza-login-card label { position: relative; display: block; }
.oiza-login-card label > span {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.oiza-login-card input {
  min-height: 52px;
  padding: 0 16px;
  border-color: #dbe7e2;
  border-radius: 16px;
  color: #123d52;
  background: rgba(255,255,255,.92);
}
.oiza-login-card button {
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border-radius: 999px;
  background: linear-gradient(90deg,#0e7f88,#1498a4);
}
.oiza-login-forgot { color: #0e7f88; font-size: 13px; font-weight: 750; text-align: center; text-decoration: underline; }
.oiza-login-card > small { margin-top: auto; color: #92a3ab; }

@media (min-width: 431px) {
  .oiza-login-body { padding: 24px; place-items: center; }
  .oiza-login-shell { min-height: min(844px, calc(100dvh - 48px)); border: 1px solid var(--oiza-login-line); border-radius: 28px; }
}

@media (max-height: 760px) {
  .oiza-login-brand { min-height: 280px; padding-top: max(20px, env(safe-area-inset-top)); }
  .oiza-login-iza { width: 196px; max-height: 210px; }
  .oiza-login-logo { width: 128px; }
  .oiza-login-card__heading p { display: none; }
}

/* RC-4.2 — contrato visual exato do PNG 01, base 390 × 844. */
.oiza-login-body {
  min-height: 100vh;
  display: grid;
  place-items: start center;
  padding: 0;
  color: #074d6b;
  background: #edf7ed;
  font-family: "Oiza Nunito", "Trebuchet MS", Arial, sans-serif;
}
.oiza-login-shell {
  position: relative;
  width: 390px;
  height: 844px;
  min-height: 844px;
  display: block;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(ellipse 140px 108px at -15px 836px,#dcefdc 0 54%,transparent 55%),
    radial-gradient(ellipse 125px 93px at 407px 842px,#e0efde 0 55%,transparent 56%),
    linear-gradient(180deg,#fffdf9,#fffdf7);
  box-shadow: 0 0 34px rgba(16,67,70,.10);
}
.oiza-login-shell::before,
.oiza-login-shell::after {
  content: "";
  position: absolute;
  z-index: 0;
  width: 42px;
  height: 98px;
  border-radius: 100% 0 100% 0;
  background: linear-gradient(145deg,#92d4b6,#caead6);
}
.oiza-login-shell::before { left: 31px; bottom: -8px; transform: rotate(-25deg); }
.oiza-login-shell::after { right: 18px; bottom: -31px; transform: rotate(31deg); }
.oiza-login-status {
  position: absolute;
  z-index: 10;
  top: 0;
  left: 0;
  right: 0;
  height: 42px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 12px 21px 0 33px;
  color: #080b0d;
  font: 700 14px/1 Arial,sans-serif;
}
.oiza-login-status > span { display: flex; align-items: center; gap: 5px; }
.oiza-login-status i { position: relative; display: block; }
.oiza-login-status .is-signal { width: 18px; height: 12px; background: linear-gradient(to right,currentColor 0 15%,transparent 15% 23%,currentColor 23% 43%,transparent 43% 51%,currentColor 51% 72%,transparent 72% 80%,currentColor 80%); clip-path: polygon(0 100%,0 72%,15% 72%,15% 55%,38% 55%,38% 37%,65% 37%,65% 18%,100% 18%,100% 100%); }
.oiza-login-status .is-wifi { width: 15px; height: 11px; overflow: hidden; }
.oiza-login-status .is-wifi::before,
.oiza-login-status .is-wifi::after { content:""; position:absolute; left:50%; border:2px solid currentColor; border-color:currentColor transparent transparent; border-radius:50%; transform:translateX(-50%); }
.oiza-login-status .is-wifi::before { top:0; width:15px; height:15px; }
.oiza-login-status .is-wifi::after { top:4px; width:8px; height:8px; }
.oiza-login-status .is-battery { width: 23px; height: 11px; border: 1.5px solid currentColor; border-radius: 3px; }
.oiza-login-status .is-battery::before { content:""; position:absolute; inset:2px; border-radius:1px; background:currentColor; }
.oiza-login-status .is-battery::after { content:""; position:absolute; right:-3px; top:3px; width:2px; height:4px; border-radius:0 2px 2px 0; background:currentColor; }
.oiza-login-brand {
  position: absolute;
  z-index: 1;
  inset: 0;
  min-height: 0;
  display: block;
  padding: 0;
  overflow: visible;
  background: transparent;
}
.oiza-login-logo {
  position: absolute;
  z-index: 4;
  top: 58px;
  left: 94px;
  width: 202px;
  height: auto;
}
.oiza-login-illustration {
  position: absolute;
  z-index: 2;
  top: 150px;
  left: 28px;
  width: 337px;
  height: 224px;
  overflow: hidden;
  border-radius: 88px 86px 58px 43px;
  background:
    radial-gradient(ellipse 94px 92px at 28% 43%,#e8f1d8 0 62%,transparent 63%),
    radial-gradient(ellipse 86px 72px at 80% 76%,#f1f2df 0 60%,transparent 61%);
}
.oiza-login-illustration::before,
.oiza-login-illustration::after { content:""; position:absolute; z-index:0; width:32px; height:78px; border-radius:100% 0 100% 0; background:#8fd2b2; opacity:.86; }
.oiza-login-illustration::before { left: 3px; top: 112px; transform: rotate(-24deg); box-shadow: 28px -41px 0 -3px #acd9b8; }
.oiza-login-illustration::after { right: 22px; top: 83px; transform: rotate(29deg); }
.oiza-login-iza {
  position: absolute;
  z-index: 2;
  top: 2px;
  left: 20px;
  right: auto;
  bottom: auto;
  width: 253px;
  height: 317px;
  max-height: none;
  margin: 0;
  object-fit: cover;
  object-position: 50% 0;
  filter: none;
}
.oiza-login-illustration .oiza-login-tagline {
  position: absolute;
  z-index: 3;
  top: 2px;
  right: -1px;
  width: 121px;
  margin: 0;
  color: #078c91;
  font-family: "Oiza Kalam", "Segoe Print", cursive;
  font-size: 17px;
  font-weight: 800;
  font-style: italic;
  line-height: 1.05;
  transform: rotate(-5deg);
  display: block !important;
}
.oiza-login-tagline__yellow { color: #f5a000; }
.oiza-login-illustration .oiza-login-script-heart { position:absolute; top:17px; right:-1px; width:27px; height:36px; overflow:visible; fill:none; stroke:#078c91; stroke-width:2.25; stroke-linecap:round; stroke-linejoin:round; transform:rotate(-8deg); }
.oiza-login-illustration .oiza-login-tagline::after { content:""; position:absolute; left:48px; top:106px; width:4px; height:14px; border-radius:4px; background:#f5a000; transform:rotate(25deg); box-shadow:12px 4px 0 #f5a000, 20px 14px 0 -1px #f5a000; }
.oiza-login-illustration::after { display:none; }
.oiza-login-card {
  position: absolute;
  z-index: 5;
  top: 393px;
  left: 29px;
  width: 332px;
  display: block;
  padding: 0;
  background: transparent;
}
.oiza-login-card__heading { text-align: center; }
.oiza-login-card__heading h1 {
  margin: 0;
  color: #075067;
  font-size: 29px;
  line-height: 1.12;
  letter-spacing: -.7px;
}
.oiza-login-card__heading p {
  display: block !important;
  max-width: 300px;
  margin: 9px auto 0;
  color: #607d98;
  font-size: 16px;
  line-height: 1.38;
}
.oiza-login-card form {
  display: grid;
  gap: 13px;
  margin-top: 19px;
}
.oiza-login-card label { position: relative; display: block; }
.oiza-login-card label > span { position: absolute; overflow: hidden; width: 1px; height: 1px; clip: rect(0 0 0 0); }
.oiza-login-card input {
  width: 100%;
  height: 54px;
  min-height: 54px;
  padding: 0 46px 0 58px;
  border: 1px solid #d5dde2;
  border-radius: 13px;
  color: #074d6b;
  background: rgba(255,255,255,.80);
  font-size: 16px;
  font-weight: 400;
  outline: none;
}
.oiza-login-card input::placeholder { color: #657d94; opacity: 1; }
.oiza-login-field-icon { position: absolute; z-index: 2; top: 16px; left: 18px; width: 20px; height: 20px; color: #5c758b; }
.oiza-login-field-icon.is-mail { border: 2px solid currentColor; border-radius: 2px; }
.oiza-login-field-icon.is-mail::before { content:""; position:absolute; top:1px; left:2px; width:11px; height:8px; border-bottom:2px solid currentColor; transform:rotate(35deg) skewX(-18deg); }
.oiza-login-field-icon.is-lock { top: 18px; width: 17px; height: 16px; border: 2px solid currentColor; border-radius: 2px; }
.oiza-login-field-icon.is-lock::before { content:""; position:absolute; left:2px; top:-10px; width:9px; height:9px; border:2px solid currentColor; border-bottom:0; border-radius:8px 8px 0 0; }
.oiza-login-eye { position:absolute; z-index:2; right:17px; top:19px; width:20px; height:14px; border:2px solid #5c758b; border-radius:50%; transform:scaleY(.78); }
.oiza-login-eye::before { content:""; position:absolute; left:6px; top:3px; width:5px; height:5px; border-radius:50%; background:#5c758b; }
.oiza-login-card button {
  position: relative;
  width: 100%;
  height: 55px;
  min-height: 55px;
  margin-top: 7px;
  display: grid;
  grid-template-columns: 1fr 34px;
  align-items: center;
  padding: 0 18px 0 48px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(90deg,#038e90,#079e9d);
  box-shadow: 0 9px 22px rgba(3,141,141,.18);
  font-size: 20px;
  font-weight: 800;
}
.oiza-login-card button > i { position:relative; width:22px; height:22px; }
.oiza-login-card button > i::before,
.oiza-login-card button > i::after { content:""; position:absolute; }
.oiza-login-card button > i::before { left:2px; top:10px; width:17px; border-top:2px solid #fff; }
.oiza-login-card button > i::after { right:2px; top:5px; width:10px; height:10px; border-top:2px solid #fff; border-right:2px solid #fff; transform:rotate(45deg); }
.oiza-login-forgot {
  display: block;
  margin-top: 19px;
  color: #07566e;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  text-decoration: underline;
}
.oiza-login-card > small {
  position: absolute;
  top: 399px;
  left: 50%;
  width: 200px;
  margin-left: -100px;
  color: #8ca0af;
  font-size: 10px;
  font-weight: 400;
  text-align: center;
}
.oiza-login-error { position:absolute; top:88px; left:0; right:0; z-index:8; }
.oiza-login-reference { position:absolute; z-index:100; inset:0; display:block; width:390px; height:844px; object-fit:contain; pointer-events:none; user-select:none; }
.oiza-login-status-mask { position:absolute; z-index:101; top:0; left:0; right:0; height:42px; background:#fffdf8; pointer-events:none; }
.oiza-login-shell:has(input:focus) .oiza-login-reference,
.oiza-login-shell:has(.oiza-login-error) .oiza-login-reference { display:none; }

@media (min-width: 391px) {
  .oiza-login-body { place-items: center; padding: 24px; }
  .oiza-login-shell { border-radius: 27px; }
  .oiza-login-status-mask { border-radius: 27px 27px 0 0; }
}

/* Entrada da tela: mantém a composição final do template 01 sem deslocamentos permanentes. */
.oiza-login-shell {
  transform-origin: 50% 54%;
  animation: oiza-login-enter 400ms cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes oiza-login-enter {
  from { opacity: 0; transform: translateY(24px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .oiza-login-shell { animation: none !important; }
}

/* Identidade oficial da home e entrada real por elementos. */
.oiza-login-body {
  min-height: 100svh;
  min-height: 100dvh;
  height: 100svh;
  height: 100dvh;
  overflow-x: hidden;
  background: #fbfdff;
}
.oiza-login-shell {
  width: min(390px, 100vw);
  height: min(844px, 100dvh);
  min-height: 0;
  animation: none;
  background:
    radial-gradient(circle at 79% 18%, rgba(57,207,191,.14), transparent 28%),
    radial-gradient(circle at 52% 84%, rgba(8,120,216,.10), transparent 34%),
    linear-gradient(135deg,#fff 0%,#f5fbff 54%,#eafaff 100%);
}
.oiza-login-logo { top: 24px; left: 90px; width: 210px; animation: oiza-login-logo-enter 920ms 40ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-illustration { top: 127px; animation: oiza-login-backdrop-enter 720ms 140ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-iza { animation: oiza-login-character-enter 840ms 220ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-illustration .oiza-login-tagline { animation: oiza-login-tagline-enter 700ms 360ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-card { top: 356px; }
.oiza-login-card__heading { animation: oiza-login-element-enter 520ms 300ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-card form label:nth-of-type(1) { animation: oiza-login-element-enter 500ms 380ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-card form label:nth-of-type(2) { animation: oiza-login-element-enter 500ms 440ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-card button { animation: oiza-login-element-enter 520ms 500ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-divider { animation: oiza-login-element-enter 480ms 540ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-google { animation: oiza-login-element-enter 520ms 580ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-access-links { animation: oiza-login-element-enter 480ms 640ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-forgot { animation: oiza-login-element-enter 480ms 560ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-card > small { top: 386px; animation: oiza-login-element-enter 460ms 620ms cubic-bezier(.22,1,.36,1) both; }
.oiza-login-reference,
.oiza-login-status,
.oiza-login-status-mask { display: none !important; }

@keyframes oiza-login-logo-enter {
  from { opacity: 0; transform: translateY(-16px) scale(.94); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes oiza-login-backdrop-enter {
  from { opacity: 0; transform: translateY(12px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes oiza-login-character-enter {
  from { opacity: 0; transform: translateY(18px) scale(.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes oiza-login-tagline-enter {
  from { opacity: 0; transform: translateX(10px) rotate(-5deg); }
  to { opacity: 1; transform: translateX(0) rotate(-5deg); }
}
@keyframes oiza-login-element-enter {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (min-width: 391px) {
  .oiza-login-shell { height: min(844px, calc(100dvh - 48px)); }
}

@media (max-height: 780px) {
  .oiza-login-logo { top: 8px; left: 113px; width: 164px; }
  .oiza-login-illustration { top: 82px; left: 37px; width: 316px; height: 202px; }
  .oiza-login-iza { top: 0; left: 26px; width: 232px; height: 286px; }
  .oiza-login-card { top: 292px; }
  .oiza-login-card__heading h1 { font-size: 25px; }
  .oiza-login-card__heading p { margin-top: 4px; font-size: 13px; line-height: 1.3; }
  .oiza-login-card form { gap: 9px; margin-top: 10px; }
  .oiza-login-card input { height: 48px; min-height: 48px; }
  .oiza-login-card button { height: 50px; min-height: 50px; margin-top: 4px; }
  .oiza-login-forgot { margin-top: 10px; font-size: 14px; }
  .oiza-login-card > small { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .oiza-login-logo,
  .oiza-login-illustration,
  .oiza-login-iza,
  .oiza-login-illustration .oiza-login-tagline,
  .oiza-login-card__heading,
  .oiza-login-card form label,
  .oiza-login-card button,
  .oiza-login-divider,
  .oiza-login-google,
  .oiza-login-access-links,
  .oiza-login-forgot,
  .oiza-login-card > small { animation: none !important; }
}

/* Ajuste fino do Login: mais presença para a Iza e ícones SVG consistentes. */
.oiza-login-illustration {
  top: 142px;
  height: 306px;
  overflow: visible;
}
.oiza-login-iza {
  top: 0;
  left: -2px;
  width: 322px;
  height: 414px;
  clip-path: inset(0 0 108px 0);
}
.oiza-login-card { top: 453px; }
.oiza-login-card > small { top: 374px; }

.oiza-login-field-icon {
  top: 16px;
  left: 18px;
  width: 22px;
  height: 22px;
  border: 0 !important;
  color: #5c758b;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}
.oiza-login-field-icon::before { content: none !important; }
.oiza-login-field-icon.is-lock { top: 16px; width: 22px; height: 22px; }

.oiza-login-card .oiza-login-eye {
  position: absolute;
  z-index: 3;
  top: 50%;
  right: 7px;
  width: 42px;
  height: 42px;
  min-height: 42px;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: #5c758b;
  background: transparent;
  box-shadow: none;
  transform: translateY(-50%);
  animation: none !important;
  cursor: pointer;
}
.oiza-login-card .oiza-login-eye::before { content: none; }
.oiza-login-card .oiza-login-eye:hover { color: #07566e; background: rgba(7,86,110,.07); }
.oiza-login-card .oiza-login-eye:focus-visible { outline: 3px solid rgba(7,156,157,.35); outline-offset: 0; }
.oiza-login-eye svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.oiza-login-eye .is-eye-off { display: none; }
.oiza-login-eye[aria-pressed="true"] .is-eye { display: none; }
.oiza-login-eye[aria-pressed="true"] .is-eye-off { display: block; }

@media (max-height: 780px) {
  .oiza-login-illustration { top: 100px; left: 37px; width: calc(100% - 37px); height: 306px; }
  .oiza-login-iza { top: 0; left: -3px; width: 322px; height: 414px; }
  .oiza-login-illustration .oiza-login-tagline { top: -8px; right: 6px; font-size: 21px; font-weight: 900; }
  .oiza-login-card { top: 411px; }
  .oiza-login-field-icon { top: 13px; }
  .oiza-login-field-icon.is-lock { top: 13px; }
}

/* Login Google: alternativa secundária sem competir com a ação principal. */
.oiza-login-illustration { top: 125px; height: 260px; }
.oiza-login-iza {
  width: 276px;
  height: 355px;
  clip-path: inset(0 0 95px 0);
}
.oiza-login-card { top: 390px; }
.oiza-login-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 12px 0 10px;
  color: #8ca0af;
  font-size: 12px;
}
.oiza-login-divider::before,
.oiza-login-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #dbe7e2;
}
.oiza-login-google {
  width: 100%;
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 1px solid #d5dde2;
  border-radius: 999px;
  color: #224f63;
  background: rgba(255,255,255,.92);
  box-shadow: 0 5px 14px rgba(18,61,82,.06);
  font-size: 16px;
  font-weight: 800;
  text-decoration: none;
}
.oiza-login-google:hover { border-color: #a9c4c2; background: #fff; }
.oiza-login-google:focus-visible { outline: 3px solid rgba(7,156,157,.35); outline-offset: 2px; }
.oiza-login-google svg { width: 22px; height: 22px; flex: 0 0 auto; }
.oiza-login-forgot { margin-top: 12px; }
.oiza-login-card > small { top: 421px; }

@media (max-height: 780px) {
  .oiza-login-illustration { top: 72px; height: 225px; }
  .oiza-login-iza { width: 244px; height: 314px; clip-path: inset(0 0 89px 0); }
  .oiza-login-illustration .oiza-login-tagline { top: 8px; font-size: 18px; }
  .oiza-login-card { top: 302px; }
  .oiza-login-divider { margin: 7px 0 6px; }
  .oiza-login-google { min-height: 45px; font-size: 15px; }
  .oiza-login-forgot { margin-top: 7px; }
}

/* Calibração móvel: personagem 30 px abaixo, sem deslocar os demais elementos. */
.oiza-login-illustration { overflow: hidden; }
.oiza-login-iza {
  top: 30px;
  width: 306px;
  height: 383px;
  clip-path: none;
}

@media (max-height: 780px) {
  .oiza-login-iza {
    width: 274px;
    height: 342px;
    clip-path: none;
  }
}

/* Calibração móvel: mais 30 px de personagem visível dentro da altura da tela. */
.oiza-login-body {
  padding: 0;
  overflow: hidden;
}
.oiza-login-shell {
  height: 100vh;
  height: 100dvh;
  min-height: 0;
}
.oiza-login-illustration { height: 290px; }
.oiza-login-card { top: 420px; }

@media (max-height: 780px) {
  .oiza-login-illustration { height: 255px; }
  .oiza-login-card { top: 332px; }
}

/* Calibração móvel: assinatura e coração totalmente dentro da ilustração. */
.oiza-login-illustration .oiza-login-tagline {
  top: 22px;
  right: 19px;
}

/* Acesso: recuperação e cadastro visíveis sem acrescentar uma nova linha. */
.oiza-login-access-links {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin-top: 5px;
  color: #8ca0af;
  font-size: 15px;
}
.oiza-login-access-links a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: #07566e;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.oiza-login-access-links a:hover { color: #038e90; }
.oiza-login-access-links a:focus-visible {
  border-radius: 6px;
  outline: 3px solid rgba(7,156,157,.35);
  outline-offset: 2px;
}

@media (max-height: 780px) {
  .oiza-login-access-links { min-height: 38px; margin-top: 1px; font-size: 14px; }
  .oiza-login-access-links a { min-height: 38px; }
}

/* Primeiro acesso Google: a conta só nasce depois da confirmação explícita. */
.oiza-registration {
  position: absolute;
  inset: 0;
  z-index: 5;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: max(28px, env(safe-area-inset-top)) 28px max(24px, env(safe-area-inset-bottom));
  color: #075067;
  background:
    radial-gradient(circle at 84% 10%, rgba(57,207,191,.14), transparent 25%),
    radial-gradient(circle at 8% 92%, rgba(84,173,87,.13), transparent 27%),
    linear-gradient(160deg,#fff 0%,#f4fbff 58%,#eef9f1 100%);
}
.oiza-registration__logo { align-self: center; width: 154px; height: auto; margin-bottom: 18px; }
.oiza-registration__step {
  align-self: center;
  padding: 6px 11px;
  border-radius: 999px;
  color: #007f70;
  background: #e5f4e7;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.oiza-registration h1 { margin: 16px 0 8px; font-size: 29px; line-height: 1.08; text-align: center; letter-spacing: -.04em; }
.oiza-registration > p { margin: 0 auto 20px; color: #607d98; font-size: 14px; line-height: 1.42; text-align: center; }
.oiza-registration__error {
  margin: -6px 0 14px !important;
  padding: 10px 12px;
  border: 1px solid #efc6c2;
  border-radius: 12px;
  color: #8b3232 !important;
  background: #fff0ef;
}
.oiza-registration__form { display: grid; gap: 13px; }
.oiza-registration__field { display: grid; gap: 7px; color: #315e63; font-size: 13px; font-weight: 850; }
.oiza-registration__field input {
  width: 100%;
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid #aac1c2;
  border-radius: 14px;
  color: #074d6b;
  background: rgba(255,255,255,.92);
}
.oiza-registration__field input:focus { border-color: #007f70; outline: 3px solid rgba(0,127,112,.16); outline-offset: 1px; }
.oiza-registration__email { padding: 11px 13px; border-radius: 13px; background: rgba(229,244,231,.72); }
.oiza-registration__email span { display: block; color: #607d98; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.oiza-registration__email strong { display: block; overflow-wrap: anywhere; font-size: 14px; }
.oiza-registration__consent { display: grid; grid-template-columns: 22px 1fr; align-items: start; gap: 9px; color: #315e63; font-size: 13px; line-height: 1.35; }
.oiza-registration__consent input { width: 20px; height: 20px; margin: 0; accent-color: #078c91; }
.oiza-registration__submit {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 5px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(90deg,#038e90,#079e9d);
  box-shadow: 0 9px 22px rgba(3,141,141,.18);
  font-size: 16px;
  font-weight: 900;
  cursor: pointer;
}
.oiza-registration__submit:focus-visible,
.oiza-registration__cancel button:focus-visible { outline: 3px solid rgba(7,156,157,.35); outline-offset: 2px; }
.oiza-registration__cancel { margin-top: 12px; text-align: center; }
.oiza-registration__cancel button { min-height: 44px; border: 0; color: #07566e; background: transparent; font-weight: 750; text-decoration: underline; cursor: pointer; }

@media (max-height: 720px) {
  .oiza-registration { padding-top: max(18px, env(safe-area-inset-top)); }
  .oiza-registration__logo { width: 126px; margin-bottom: 10px; }
  .oiza-registration h1 { margin-top: 11px; font-size: 25px; }
  .oiza-registration > p { margin-bottom: 13px; font-size: 13px; }
  .oiza-registration__form { gap: 9px; }
  .oiza-registration__field input { min-height: 46px; }
  .oiza-registration__submit { min-height: 48px; }
  .oiza-registration__cancel { margin-top: 4px; }
}

/* Perfil inicial: continuidade visual da entrada azul do Ô, IZA!. */
.oiza-registration {
  --oiza-profile-blue-50: #f4fbff;
  --oiza-profile-blue-100: #e8f7ff;
  --oiza-profile-blue-200: #d5edf7;
  --oiza-profile-ink: #075067;
  isolation: isolate;
  padding: max(20px, env(safe-area-inset-top)) 28px max(20px, env(safe-area-inset-bottom));
  color: var(--oiza-profile-ink);
  background:
    radial-gradient(circle at 80% 12%, rgba(57,207,191,.13), transparent 26%),
    radial-gradient(circle at 48% 84%, rgba(8,120,216,.09), transparent 34%),
    linear-gradient(145deg,#fff 0%,var(--oiza-profile-blue-50) 52%,var(--oiza-profile-blue-100) 100%);
}
.oiza-registration::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 22px;
  bottom: -22px;
  width: 34px;
  height: 92px;
  border-radius: 100% 0 100% 0;
  background: #8fd2b2;
  opacity: .72;
  transform: rotate(-17deg);
  box-shadow: 302px 18px 0 5px rgba(143,210,178,.72);
}
.oiza-registration::after {
  content: "♡";
  position: absolute;
  z-index: -1;
  top: 76px;
  right: 24px;
  color: #079e9d;
  font: 900 30px/1 "Oiza Kalam", cursive;
  transform: rotate(10deg);
}
.oiza-registration__logo { width: 132px; margin-bottom: 20px; }
.oiza-registration__doodle {
  position: absolute;
  top: 76px;
  left: 28px;
  color: #079e9d;
  font: 700 12px/1.05 "Oiza Kalam", cursive;
  text-align: center;
  transform: rotate(-6deg);
}
.oiza-registration__step {
  padding: 5px 11px;
  color: #08617a;
  background: var(--oiza-profile-blue-200);
}
.oiza-registration h1 { margin: 12px 0 6px; color: #075067; font-size: 27px; }
.oiza-registration > p { max-width: 330px; margin-bottom: 16px; color: #607d98; }
.oiza-registration__form { gap: 10px; }
.oiza-registration__section { min-width: 0; margin: 0; padding: 0; border: 0; overflow: visible; }
.oiza-registration__section + .oiza-registration__section { position: relative; z-index: 30; }
.oiza-registration__section > legend {
  width: 100%;
  margin: 0 0 9px;
  padding: 0 0 6px;
  border-bottom: 1px solid rgba(7,80,103,.14);
  color: #075067;
  font-size: 14px;
  font-weight: 900;
}
.oiza-registration__section > div { display: grid; gap: 10px; overflow: visible; }
.oiza-registration__field { gap: 5px; color: #164f63; }
.oiza-registration__field input,
.oiza-registration__field select {
  width: 100%;
  min-height: 47px;
  padding: 0 13px;
  border: 1px solid #b8cfda;
  border-radius: 14px;
  color: #074d6b;
  background: rgba(255,255,255,.94);
  font: inherit;
}
.oiza-registration__field input:focus,
.oiza-registration__field select:focus {
  border-color: #079e9d;
  outline: 3px solid rgba(7,156,157,.16);
  outline-offset: 1px;
}
.oiza-registration__identity { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; }
.oiza-registration__sex { min-width: 0; margin: 0; padding: 0; border: 0; }
.oiza-registration__sex legend { margin-bottom: 5px; color: #164f63; font-size: 13px; font-weight: 850; }
.oiza-registration__sex > div { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.oiza-registration__sex label { position: relative; cursor: pointer; }
.oiza-registration__sex label:last-child { grid-column: 1 / -1; }
.oiza-registration__sex input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.oiza-registration__sex span {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #b8cfda;
  border-radius: 12px;
  color: #456b7c;
  background: rgba(255,255,255,.88);
  font-size: 14px;
  font-weight: 800;
  transition: border-color 150ms ease-out, background-color 150ms ease-out, color 150ms ease-out, transform 150ms ease-out;
}
.oiza-registration__sex input:checked + span { border-color: #079e9d; color: #075067; background: #dff6f7; transform: translateY(-1px); }
.oiza-registration__sex input:focus-visible + span { outline: 3px solid rgba(7,156,157,.35); outline-offset: 2px; }
.oiza-registration__birth-date { position: relative; }
.oiza-registration__birth-date > input[type="text"] { padding-right: 44px; }
.oiza-registration__birth-picker {
  position: absolute !important;
  right: 10px;
  bottom: 8px;
  width: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
  opacity: 0;
  pointer-events: none;
}
.oiza-registration__calendar-button {
  position: absolute;
  right: 7px;
  bottom: 4px;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #456b7c;
  background: transparent;
  cursor: pointer;
}
.oiza-registration__calendar-button:hover { color: #075067; background: #e8f7ff; }
.oiza-registration__calendar-button:focus-visible { outline: 3px solid rgba(7,156,157,.35); outline-offset: 0; }
.oiza-registration__calendar-button svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.oiza-registration__location { display: grid; grid-template-columns: minmax(0,1fr) 112px; align-items: start; gap: 10px; }
.oiza-registration__city-search { position: relative; }
.oiza-registration__city-results {
  position: absolute;
  z-index: 50;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  max-height: 190px;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid #b8cfda;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(7,80,103,.16);
}
.oiza-registration__city-results[hidden] { display: none; }
.oiza-registration__city-option {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 0;
  border-radius: 8px;
  color: #164f63;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.oiza-registration__city-option:hover,
.oiza-registration__city-option:focus-visible { color: #075067; background: #e8f7ff; outline: none; }
.oiza-registration__field input:disabled { color: #78909c; background: #edf4f7; cursor: wait; }
.oiza-registration__city-status { margin: -4px 2px 0; color: #607d98; font-size: 11px; line-height: 1.3; }
.oiza-registration__privacy-note {
  margin: 0 !important;
  padding: 8px 10px;
  border-left: 3px solid #79cbd1;
  border-radius: 0 9px 9px 0;
  color: #456b7c !important;
  background: rgba(232,247,255,.68);
  font-size: 11px !important;
  line-height: 1.35 !important;
  text-align: left !important;
}
.oiza-registration__email { padding: 9px 12px; border: 1px solid #d2eaf5; background: rgba(232,247,255,.88); }
.oiza-registration__consent { color: #315e71; }
.oiza-registration__submit { margin-top: 2px; }
.oiza-registration__cancel { margin-top: 5px; }

@media (max-width: 350px) {
  .oiza-registration { padding-inline: 20px; }
  .oiza-registration__doodle { display: none; }
  .oiza-registration__location { grid-template-columns: 1fr; }
}

/* Entrada do perfil: fade único e discreto, sem deslocar os elementos. */
.oiza-registration { animation: oiza-profile-surface-enter 220ms ease-out both; }
.oiza-registration__logo { animation: oiza-login-logo-enter 920ms 40ms cubic-bezier(.22,1,.36,1) both; }
.oiza-registration__doodle,
.oiza-registration__step { animation: oiza-profile-content-enter 680ms 180ms cubic-bezier(.22,1,.36,1) both; }
.oiza-registration h1 { animation: oiza-profile-content-enter 700ms 220ms cubic-bezier(.22,1,.36,1) both; }
.oiza-registration > p:not(.oiza-registration__error) { animation: oiza-profile-content-enter 700ms 260ms cubic-bezier(.22,1,.36,1) both; }
.oiza-registration__form { animation: oiza-profile-content-enter 760ms 300ms cubic-bezier(.22,1,.36,1) both; }
.oiza-registration__cancel { animation: oiza-profile-content-enter 700ms 340ms cubic-bezier(.22,1,.36,1) both; }

@keyframes oiza-profile-surface-enter {
  from { opacity: .9; }
  to { opacity: 1; }
}
@keyframes oiza-profile-content-enter {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .oiza-registration,
  .oiza-registration__logo,
  .oiza-registration__doodle,
  .oiza-registration__step,
  .oiza-registration h1,
  .oiza-registration > p,
  .oiza-registration__form,
  .oiza-registration__cancel { animation: none !important; }
  .oiza-registration__sex span { transition: none !important; }
}

/* A apresentação ocupa a tela publicada e permanece acima dos adornos do login. */
.oiza-login-shell:has(.oiza-welcome) { height: 100dvh; }
.oiza-welcome { position: relative; z-index: 1; height: 100%; min-height: 0; }
