/* INSYGMA Pontos por email (insygma-passwordless.php). Aditivo: não mexe no checkout nem no Breakdance. */
.ins-pwl-hidden { display: none !important; }

/* ---------- caixa do código no checkout ---------- */
.ins-pwl-box {
  flex: 0 0 100%; width: 100%; box-sizing: border-box; clear: both;
  margin: 2px 0 12px; padding: 12px;
  border: 1px solid #0E7490; background: #ECFEFF; border-radius: 12px;
  font-family: var(--font-sans, 'Inter', -apple-system, 'Segoe UI', sans-serif); color: #0F172A;
  display: flex; flex-direction: column; gap: 10px;
}
.ins-pwl-box.is-done { opacity: .75; }
.ins-pwl-box__head { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; line-height: 1.2; }
.ins-pwl-box__head svg { flex: 0 0 18px; }
.ins-pwl-box__text { margin: 0; font-size: 13px; line-height: 1.45; color: #334155; }
.ins-pwl-box__text strong { color: #0F172A; font-weight: 600; word-break: break-all; }
.ins-pwl-box__msg { margin: 0; min-height: 0; font-size: 12.5px; line-height: 1.4; color: #475569; }
.ins-pwl-box__msg:empty { display: none; }
.ins-pwl-box__msg[data-kind="error"] { color: #B91C1C; }
.ins-pwl-box__msg[data-kind="ok"] { color: #0E7490; }
.ins-pwl-box__msg[data-kind="warn"] { color: #9A3412; }
.ins-pwl-box__links { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 13px; }
.ins-pwl-box__links a { min-height: 44px; display: inline-flex; align-items: center; text-decoration: none; }
.ins-pwl-box__resend { color: #0E7490; font-weight: 600; }
.ins-pwl-box__skip { color: #475569; }
.ins-pwl-box__links a:hover { text-decoration: underline; }

/* ---------- campo do código: 6 células + 1 input por cima ---------- */
.ins-pwl-code { position: relative; width: 100%; height: 48px; overflow: hidden; }
.ins-pwl-code__cells { display: flex; gap: 6px; height: 100%; }
.ins-pwl-code__cell { flex: 1 1 0; min-width: 0; box-sizing: border-box; border: 1px solid #CBD5E1; border-radius: 10px; background: #FFFFFF; transition: border-color .12s; }
.ins-pwl-code__cell.is-filled { border-color: #94A3B8; }
.ins-pwl-code__cell.is-active { border: 2px solid #0E7490; }
.ins-pwl-code.is-error .ins-pwl-code__cell { border-color: #DC2626; animation: ins-pwl-shake .3s; }
.ins-pwl-code.is-busy { opacity: .6; }
.ins-pwl-code__input,
.ins-pwl-code__input:focus {
  position: absolute; top: 0; left: 0; height: 48px; margin: 0; padding: 0; box-sizing: border-box;
  border: 0 !important; outline: 0 !important; box-shadow: none !important; background: transparent !important; border-radius: 0;
  font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
  font-size: 22px !important; font-weight: 600 !important; line-height: 48px !important; color: #0F172A !important; -webkit-text-fill-color: #0F172A;
  caret-color: #0E7490; -webkit-appearance: none; appearance: none; white-space: pre; overflow: hidden;
}
.ins-pwl-code__input:disabled { color: #64748B !important; -webkit-text-fill-color: #64748B; }
@keyframes ins-pwl-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }

/* ---------- cartão «Olá, {nome}. Já te conhecemos…» no topo de «01 // Dados pessoais» (checkout com sessão), v1.4.0/v9 ---------- */
.ins-pwl-known {
  display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; grid-template-areas: "icon text link"; column-gap: 12px; row-gap: 6px; align-items: center;
  width: 100%; box-sizing: border-box; margin: -6px 0 18px; padding: 12px 14px; border: 1px solid #d8e3f2; border-radius: 14px;
  background: radial-gradient(circle at 100% 0%, rgba(37, 99, 235, .08), transparent 48%), #f8faff;
  font-family: var(--font-sans, 'Inter', sans-serif); color: #172033; line-height: 1.35;
}
.ins-pwl-known__icon { grid-area: icon; width: 38px; height: 38px; }
.ins-pwl-known__icon svg { display: block; width: 38px; height: 38px; }
.ins-pwl-known__text { grid-area: text; display: block; min-width: 0; }
.ins-pwl-known__title { display: block !important; margin: 0 0 2px; font-family: var(--font-sans, 'Inter', sans-serif) !important; font-size: 15px !important; font-weight: 700 !important; color: #172033 !important; line-height: 1.3; }
.ins-pwl-known__body { display: block; font-size: 13.5px; font-weight: 400; color: #475569; }
.ins-pwl-known a { grid-area: link; display: inline-flex; align-items: center; justify-self: end; min-height: 32px; padding: 0 2px; font-size: 12.5px; font-weight: 600; color: #2563eb; text-decoration: none; white-space: nowrap; }
.ins-pwl-known a:hover, .ins-pwl-known a:focus-visible { text-decoration: underline; }
.ins-pwl-known a.is-busy { opacity: .5; pointer-events: none; }
@media (max-width: 560px) {
  .ins-pwl-known { grid-template-columns: 38px minmax(0, 1fr); grid-template-areas: "icon text" "icon link"; row-gap: 2px; }
  .ins-pwl-known a { min-height: 28px; justify-self: start; }
}

/* ---------- área de cliente: painel de entrar por código ---------- */
.ins-pwl-login { display: flex; flex-direction: column; gap: 14px; width: 100%; box-sizing: border-box; font-family: var(--font-sans, 'Inter', sans-serif); color: #0F172A; margin: 4px 0 12px; }
.ins-pwl-step { display: flex; flex-direction: column; gap: 10px; }
.ins-pwl-step[hidden] { display: none; }
.ins-pwl-kicker { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 11px; font-weight: 600; letter-spacing: .08em; color: #0E7490; }
/* h2/h3: o Breakdance aplica a sua fonte a todos os títulos (h1..h6); a fonte tem de ser explícita aqui. */
.ins-pwl-title { margin: 0; font-family: var(--font-sans, 'Inter', sans-serif); font-size: 22px; font-weight: 700; letter-spacing: -.01em; line-height: 1.15; color: #0F172A; }
.ins-pwl-text { margin: 0; font-size: 14px; line-height: 1.5; color: #334155; }
.ins-pwl-text strong { color: #0F172A; word-break: break-all; }
.ins-pwl-field { position: relative; }
.ins-pwl-field label { position: absolute; left: 14px; top: 7px; font-size: 11px; color: #64748B; pointer-events: none; }
.ins-pwl-field input,
.ins-pwl-field input:focus {
  width: 100%; height: 52px; box-sizing: border-box; margin: 0; padding: 22px 14px 0 !important;
  border: 1px solid #CBD5E1 !important; border-radius: 12px !important; background: #FFFFFF !important; box-shadow: none !important; outline: 0 !important;
  font-family: var(--font-sans, 'Inter', sans-serif) !important; font-size: 15px !important; font-weight: 500; color: #0F172A !important;
}
.ins-pwl-field input:focus { border: 2px solid #0E7490 !important; }
.ins-pwl-btn,
a.ins-pwl-btn {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 52px; box-sizing: border-box;
  border: 0; border-radius: 12px; background: #0F172A; color: #FFFFFF; font-family: inherit; font-size: 15px; font-weight: 700; cursor: pointer; text-decoration: none;
}
.ins-pwl-btn:hover, a.ins-pwl-btn:hover { background: #1E293B; color: #FFFFFF; }
.ins-pwl-btn:disabled { opacity: .6; cursor: wait; }
a.ins-pwl-btn--ghost { background: #FFFFFF; color: #0F172A; border: 1px solid #CBD5E1; }
a.ins-pwl-btn--ghost:hover { background: #F8FAFC; color: #0F172A; }
a.ins-pwl-pw { align-self: stretch; margin-top: -2px; }
a.ins-pwl-pw[aria-expanded="true"] { background: #F8FAFC; border-color: #94A3B8; }
.ins-pwl-first { display: flex; flex-direction: column; gap: 10px; font-family: var(--font-sans, 'Inter', sans-serif); color: #0F172A; }
.ins-pwl-first h3 { margin: 0; font-family: var(--font-sans, 'Inter', sans-serif); font-size: 24px; font-weight: 700; letter-spacing: -.01em; line-height: 1.15; color: #0F172A; }
.ins-pwl-first p { margin: 0; font-size: 14px; line-height: 1.5; color: #334155; }
.ins-pwl-first__lead { font-weight: 500; color: #0F172A; }
.ins-pwl-steps { list-style: none; margin: 2px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ins-pwl-steps li { display: grid; grid-template-columns: 30px minmax(0, 1fr); column-gap: 10px; align-items: start; }
.ins-pwl-steps__n { padding-top: 1px; font-family: var(--font-mono, 'JetBrains Mono', monospace); font-size: 13px; font-weight: 700; letter-spacing: -.02em; color: #2563EB; }
.ins-pwl-steps__t strong { display: block; margin: 0 0 2px; font-family: var(--font-sans, 'Inter', sans-serif); font-size: 14px; font-weight: 700; line-height: 1.3; color: #0F172A; }
.ins-pwl-steps__t span { display: block; font-size: 13.5px; line-height: 1.5; color: #475569; }
.ins-pwl-first__note { font-size: 13px !important; color: #64748B !important; }
.ins-pwl-first > a.ins-pwl-btn { margin-top: 4px; }

/* v1.1.0: rodapé legal da página de entrar (elementos Breakdance da página 254) separado do cartão «Primeira vez?» e com ritmo próprio */
body.ins-pwl .bde-div-254-286 { margin-top: 44px; gap: 10px; align-items: center; }
body.ins-pwl .bde-div-254-289 { gap: 28px; align-items: center; }
body.ins-pwl .bde-div-254-286 .bde-text-link,
body.ins-pwl .bde-text-254-287 { font-family: var(--font-sans, 'Inter', sans-serif); font-size: 11px; font-weight: 500; letter-spacing: 0.12em; line-height: 1.4; color: #94A3B8; }
body.ins-pwl .bde-div-254-286 .bde-text-link:hover { color: #475569; }

/* v17: a linha «SISTEMA SEGURO V.4.0.2 // CRIPTOGRAFIA END-TO-END» da página 254 desce 3 px (pedido do dono, 25/10), sem mexer no resto */
body.ins-pwl .bde-text-254-293 { position: relative; top: 3px; }
