*{box-sizing:border-box}html{font-family:Arial,Helvetica,sans-serif}body{margin:0;color:#28133c;background:radial-gradient(circle at 12% 15%,#eee1f3,transparent 38%),#f8f6fa}.page{min-height:100vh;display:grid;place-items:center;padding:24px}.card{width:min(100%,940px);background:#fff;border:1px solid #eadfed;border-radius:22px;box-shadow:0 20px 55px #31133e13;padding:clamp(26px,4vw,50px)}.brand{display:flex;align-items:center;gap:20px;margin-bottom:38px}.brand img{width:min(48%,330px);max-height:110px;object-fit:contain;object-position:left}.brand span{font-size:14px;font-weight:700;color:#49345b}h1{font-size:clamp(28px,3.5vw,40px);line-height:1.15;margin:0 0 10px}.eyebrow{color:#74418c;text-transform:uppercase;letter-spacing:.09em;font-size:12px;font-weight:700;margin:0 0 9px}.intro{font-size:16px;line-height:1.5;color:#655b6c;margin:0 0 25px}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.choice{min-height:145px;border:1px solid #e7dfea;background:#fff;border-radius:14px;text-decoration:none;color:#28133c;padding:22px;display:flex;flex-direction:column;gap:9px}.choice:hover,.choice:focus-visible{border-color:#68357b;background:#faf6fc;outline:none}.choice strong{font-size:19px}.choice span{font-size:14px;line-height:1.4;color:#6d6274}.choice b{font-size:13px;color:#613074;margin-top:auto}.back{display:inline-block;margin-bottom:22px;color:#633375;font-weight:700;text-decoration:none}.back:hover{text-decoration:underline}.login-form{display:grid;gap:15px;width:min(100%,460px)}.login-form label{font-weight:700;font-size:13px}.login-form input{display:block;margin-top:7px;width:100%;padding:13px;border:1px solid #d9cfdf;border-radius:10px;font:inherit;background:#f8f6fa}.login-form button{border:0;border-radius:10px;padding:14px;background:#d8cfdc;color:#55485c;font-weight:700;font-size:15px}.notice{margin:25px 0 0;padding:14px 16px;border-left:3px solid #e6a22e;background:#fff8eb;border-radius:8px;color:#694b1b;line-height:1.45;font-size:13px}@media(max-width:650px){.page{padding:12px}.card{padding:23px}.brand{display:block}.brand img{width:min(100%,320px)}.brand span{display:block;margin-top:5px}.choices{grid-template-columns:1fr}.choice{min-height:120px}}
.login-form button:not(:disabled){background:#4b2063;color:#fff;cursor:pointer}.auth-status{margin:22px 0 0;color:#4a3561;line-height:1.5}.auth-status--error{color:#aa2532}.auth-help{font-size:13px;color:#6a5b72}.company-list{display:grid;gap:14px}.company-card{border:1px solid #e8dceb;border-radius:16px;padding:26px;background:#faf7fc}.company-card h2{margin:8px 0 12px;font-size:29px}.company-card p{line-height:1.6;color:#655b6c}.logout{border:1px solid #d9cfdf;background:#fff;color:#4b2063;border-radius:10px;padding:13px 20px;font-weight:700;margin-top:24px;cursor:pointer}
.choices{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1050px){.choices{grid-template-columns:repeat(2,minmax(0,1fr))}}.choice{min-height:210px;border-radius:18px;padding:26px;box-shadow:0 10px 25px #28133c0a}.choice strong{font-size:16px;letter-spacing:.05em}.choice span{font-size:14px}.choice:hover{transform:translateY(-3px);box-shadow:0 20px 35px #28133c14}.card{width:min(100%,1100px)}@media(max-width:750px){.choices{grid-template-columns:1fr}.choice{min-height:132px}}
.choice--maintenance,body .choice--maintenance:hover{background:#faf6fc;border-color:#e5d8e9;cursor:default}.choice--maintenance b{color:#8a5b22}
.mfa-qr{display:block;width:min(100%,240px);height:auto;margin:18px 0;padding:10px;border:1px solid #e7dfea;border-radius:12px;background:#fff}
.recovery-email-later{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:14px;padding:10px 18px;border:1px solid #d9cfdf;border-radius:10px;background:#fff;color:#633375;font:700 14px Arial,Helvetica,sans-serif;cursor:pointer}.recovery-email-later:hover{background:#faf6fc}.recovery-email-later:focus-visible,.login-form input:focus-visible,.login-form button:focus-visible{outline:3px solid #9564ad;outline-offset:2px}

.choices .choice:not(.choice--maintenance) {
  border-color: var(--access-border);
  border-top: 4px solid var(--access-accent);
  background: var(--access-tint);
}
.choices .choice[data-role="empresa"] { --access-accent: #0066c5; --access-border: #b4d4f1; --access-tint: #f2f8ff; --access-ink: #004f99; }
.choices .choice.choice--gestor { --access-accent: #ef9a00; --access-border: #ebcf96; --access-tint: #fff8ea; --access-ink: #784800; }
.choices .choice[data-role="participante"] { --access-accent: #619d00; --access-border: #c7dca8; --access-tint: #f5faed; --access-ink: #416800; }
.choices .choice[data-role="profissional"] { --access-accent: #682481; --access-border: #dbc4e6; --access-tint: #fbf4fe; --access-ink: #682481; }
.choices .choice:not(.choice--maintenance) b { color: var(--access-ink); }
.choices .choice:focus-visible { outline: 2px solid var(--access-ink); outline-offset: 3px; }

.choices .choice {
  min-height: 0;
  align-items: center;
  text-align: center;
  gap: 10px;
  padding: 16px 8px 12px;
}
.choices .choice strong { font-size: clamp(11px, 2.9vw, 16px); overflow-wrap: anywhere; }
.choice-mark { display: block; flex: none; }
.choice[aria-busy="true"] .choice-mark { animation: access-spin .6s linear infinite; }
@keyframes access-spin { to { transform: rotate(360deg); } }
@media (max-width: 750px) { .choices { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; } }
@media (prefers-reduced-motion: reduce) { .choice[aria-busy="true"] .choice-mark { animation: none; } }

.choices .choice .choice-enter {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 6px;
  border: 1px solid var(--access-border);
  border-radius: 999px;
  background: #fff;
  color: var(--access-ink);
  font-size: 13px;
  font-weight: 700;
}
.choice-enter .choice-mark { width: 24px; height: 24px; }

@media (max-width: 750px) {
  .page:has(#entry-content > :is(.choices, .login-role-back, .login-recovery-email)) {
    min-height: 100svh;
    padding: 0;
    align-items: stretch;
  }
  .page:has(#entry-content > :is(.choices, .login-role-back, .login-recovery-email)) > .card {
    width: 100%;
    border: 0;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: linear-gradient(155deg, #eadcf2 0%, #fbf8fd 52%, #f1e7f6 100%);
    padding: 18px clamp(16px, 6vw, 28px);
  }
  .page:has(#entry-content > :is(.choices, .login-role-back, .login-recovery-email)) .brand {
    margin-bottom: 20px;
  }
}

#entry-content:has(> :is(.login-role-back, .login-recovery-email)) > .auth-status { font-size: 13px; }
@media (max-width: 750px) {
  .page:has(#entry-content > :is(.login-role-back, .login-recovery-email)) .brand img { width: min(100%, 240px); height: auto; }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) h1 { font-size: clamp(22px, 6vw, 28px); }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) .intro { font-size: 14px; margin-bottom: 14px; }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) .back { margin-bottom: 10px; }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) .login-form { gap: 10px; }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) .login-form input { padding: 10px 12px; min-height: 44px; font-size: 16px; }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) .auth-status { margin-top: 10px; }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) .auth-help { margin: 8px 0; }
}

@media (min-width: 751px) {
  .page:has(#entry-content > :is(.login-role-back, .login-recovery-email)) {
    min-height: 100dvh;
    padding-block: 16px;
  }
  .page:has(#entry-content > :is(.login-role-back, .login-recovery-email)) > .card {
    padding-block: clamp(20px, 4vh, 36px);
  }
  .page:has(#entry-content > :is(.login-role-back, .login-recovery-email)) .brand { margin-bottom: 20px; }
  .page:has(#entry-content > :is(.login-role-back, .login-recovery-email)) .brand img { height: 88px; }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) > .back { margin-bottom: 10px; }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) > .intro { margin-bottom: 16px; }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) > .auth-status { margin-top: 12px; }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) > .auth-help { margin-block: 8px; }
}

.login-home-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 10px;
  color: #633375;
  font-size: 14px;
  font-weight: 700;
}
@media (min-width: 751px) {
  .page:has(#entry-content > :is(.choices, .login-role-back, .login-recovery-email)) > .card {
    background: linear-gradient(155deg, #eadcf2 0%, #fbf8fd 52%, #f1e7f6 100%);
  }
}

@media (min-width: 751px) {
  .page:has(#entry-content > .choices) > .card {
    width: min(100%, 1000px);
    padding-block: clamp(24px, 4vh, 36px);
  }
  .page:has(#entry-content > :is(.choices, .login-role-back, .login-recovery-email)) .brand {
    gap: 12px;
    margin-bottom: 18px;
  }
  .page:has(#entry-content > :is(.choices, .login-role-back, .login-recovery-email)) .brand img {
    width: min(55%, 224px);
    height: auto;
  }
  #entry-content:has(> .choices) > .intro { margin-bottom: 16px; }
  .page:has(#entry-content > :is(.login-role-back, .login-recovery-email)) > .card {
    width: min(100%, 560px);
    padding-inline: clamp(24px, 4vw, 36px);
  }
  #entry-content:has(> :is(.login-role-back, .login-recovery-email)) > .login-form { width: 100%; }
}

#entry-content:has(> :is(.login-role-back, .login-recovery-email)) > .auth-help { font-size: 12px; }
#entry-content:has(> :is(.login-role-back, .login-recovery-email)) > .auth-status:empty { display: none; }
