
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:#e8eef3;color:#102c55}
.page{min-height:100vh;padding:14px;display:flex;align-items:center;justify-content:center}
.panel{width:min(1180px,100%);background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.18)}
.header{height:112px;background:linear-gradient(90deg,#0b78c8,#0662ad);display:flex;align-items:center;padding:0 56px;color:#fff;position:relative}
.logoWrap{display:flex;align-items:center;gap:28px}
.logoText{font-size:50px;font-weight:900;font-style:italic;letter-spacing:-3px}
.tagline{font-size:22px;font-weight:700}
.secure{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:15px}
.secure small{display:block;font-size:12px;font-weight:400;margin-top:4px}
.lock{font-size:28px}
.close{border:0;background:transparent;color:white;font-size:54px;font-weight:200;line-height:1;margin-left:44px;cursor:pointer}
.body{display:grid;grid-template-columns:1fr 1fr;min-height:760px}
.left{padding:46px 64px 34px;background:linear-gradient(160deg,#f9fbfc 0%,#f3f8fc 70%,#fff 100%);position:relative}
.eyebrow{font-size:18px;letter-spacing:5px;color:#46536a;margin-bottom:12px}
.left h1{font-size:56px;line-height:1;margin:0 0 10px;color:#0a2358}
.left h3{font-size:27px;line-height:1.2;margin:0;color:#183b65;font-weight:500}
.fakeCard{width:390px;height:235px;background:linear-gradient(145deg,#14181e,#262d35 52%,#0d1115);border-radius:14px;margin:34px 0 28px 48px;position:relative;box-shadow:0 18px 28px rgba(0,0,0,.25);color:white}
.fakeCard:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 0 31%,rgba(255,255,255,.08) 31% 36%,transparent 36% 100%);border-radius:14px}
.caixaMark{position:absolute;right:20px;top:20px;font-size:25px;font-weight:900;font-style:italic}
.chip{position:absolute;left:28px;top:98px;width:48px;height:36px;border-radius:8px;background:linear-gradient(135deg,#d9d9d9,#a9a9a9)}
.contactless{position:absolute;left:83px;top:104px;font-weight:700}
.visa{position:absolute;right:26px;bottom:30px;font-size:30px;font-weight:900}
.inf{position:absolute;right:26px;bottom:16px;font-size:13px}
.benefits{background:#edf4f9;border-radius:18px;padding:18px 24px;display:grid;gap:15px;width:95%}
.benefit{display:grid;grid-template-columns:60px 1fr;align-items:center}
.ico{font-size:40px;color:#0b65bd;text-align:center}
.benefit b{display:block;font-size:18px;margin-bottom:2px}
.benefit strong{display:block;color:#0a5fc0;font-size:24px}
.benefit span{display:block;font-size:17px;color:#294a68}
.leftFooter{border-top:1px solid #b9c8d6;margin-top:34px;padding-top:24px;display:flex;align-items:center;gap:14px;color:#41617e}
.miniLogo{font-size:34px;font-weight:900;font-style:italic;color:#0b65bd}
.right{padding:120px 70px 60px;position:relative;background:#fff;overflow:hidden}
.xWatermark{position:absolute;right:-10px;top:40px;font-size:360px;line-height:1;color:#dfeafb;opacity:.55;font-weight:300;transform:rotate(-5deg);pointer-events:none}
.step{display:none;position:relative;z-index:2}
.step.active{display:block}
.right h2{font-size:42px;line-height:1.05;margin:0 0 16px;color:#0b2358}
.right p{font-size:22px;line-height:1.4;color:#35536d;margin:0 0 38px}
label{display:block;font-weight:800;font-size:22px;margin:20px 0 10px;color:#0b2358}
input[type=text]{width:350px;max-width:100%;height:64px;border:1px solid #9eb0c0;border-radius:5px;padding:0 18px;font-size:21px;outline:none;background:white;box-shadow:0 2px 8px rgba(0,0,0,.04)}
input[type=text]:focus{border-color:#1587dc;box-shadow:0 0 0 2px rgba(21,135,220,.12)}
.primary{width:470px;max-width:100%;height:80px;border:0;border-radius:4px;background:linear-gradient(90deg,#ff8800,#ff7a00);color:white;font-size:27px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:28px;margin-top:40px;cursor:pointer}
.arrow{font-size:46px;font-weight:300;line-height:1}
.privacy{display:flex;gap:14px;align-items:flex-start;margin-top:34px;color:#53697d}
.privacyLock{font-size:28px;margin-top:4px}
.privacy p{font-size:15px;line-height:1.45;margin:0;color:#53697d}
.gov{position:absolute;right:46px;bottom:36px;font-size:12px;text-align:center;letter-spacing:1px;color:#111}
.gov strong{font-size:32px;letter-spacing:1px}
.back{position:absolute;top:-70px;left:0;border:0;background:transparent;color:#0b65bd;font-size:16px;font-weight:700;cursor:pointer}
.bigLock{text-align:center;font-size:76px;margin-bottom:26px}
.dobTitle{text-align:center!important;font-size:33px!important;margin-bottom:38px!important}
.digits{display:flex;justify-content:center;gap:16px}
.digits input{width:58px;height:68px;border:1px solid #9eb0c0;border-radius:8px;text-align:center;font-size:30px;outline:none}
.digits input:focus{border-color:#1587dc;box-shadow:0 0 0 2px rgba(21,135,220,.12)}
#step2 .primary{margin-left:auto;margin-right:auto;width:360px}
@media(max-width:850px){
  .header{padding:0 24px;height:86px}
  .logoText{font-size:34px}.tagline{font-size:15px}.secure{display:none}.close{font-size:42px;margin-left:auto}
  .body{grid-template-columns:1fr}
  .left{padding:34px 28px}
  .left h1{font-size:45px}.left h3{font-size:22px}
  .fakeCard{margin:28px auto;width:320px;height:190px}
  .right{padding:70px 28px 100px}
  .right h2{font-size:34px}.right p{font-size:18px}
  input[type=text],.primary{width:100%}
  .digits{gap:8px}.digits input{width:44px;height:58px}
}

/* Melhorias preservando o layout-base */
.testNotice{
  position:fixed;top:10px;right:14px;z-index:9999;
  background:rgba(16,44,85,.96);color:#fff;
  border:1px solid rgba(255,255,255,.32);
  border-radius:999px;padding:7px 11px;
  font-size:9px;font-weight:800;letter-spacing:.55px;
  box-shadow:0 4px 14px rgba(0,0,0,.15)
}
.logoText{font-size:0;font-style:normal;letter-spacing:0}
.logoText img{display:block;width:132px;height:auto}
.caixaMark{font-size:0;font-style:normal}
.caixaMark img{display:block;width:74px;height:auto}
.miniLogo{font-size:0;font-style:normal}
.miniLogo img{display:block;width:92px;height:auto}

#step1 input[type=text]{width:315px}
.stepCenter{text-align:center}
.stepPrivacy{max-width:470px;margin-left:auto;margin-right:auto}
.centeredBtn{margin-left:auto;margin-right:auto}
.waitingCard{
  max-width:430px;margin:20px auto 0;padding:18px 20px;
  border:1px solid #d8e5ee;border-radius:12px;background:#f4f8fb;
  text-align:center
}
.waitingCard strong{display:block;font-size:17px;color:#173d67}
.waitingCard span{display:block;margin-top:7px;font-size:14px;line-height:1.45;color:#61768a}
.approvedCard{background:#f1f8f4;border-color:#d5e9dc}
.spinner{
  width:58px;height:58px;border-radius:50%;
  border:5px solid #dce9f4;border-top-color:#0b78c8;
  margin:18px auto 26px;animation:spin .9s linear infinite
}
@keyframes spin{to{transform:rotate(360deg)}}
.approvedIcon{
  width:66px;height:66px;border-radius:50%;margin:10px auto 24px;
  display:flex;align-items:center;justify-content:center;
  background:#eaf7ef;color:#258659;font-size:38px;font-weight:900
}
.govCompact{
  width:auto;right:38px;bottom:30px;text-align:right;
  font-size:9px;letter-spacing:1.25px;color:#364454;line-height:1.05
}
.govCompact span{display:block}
.govCompact strong{
  display:block;margin-top:3px;font-size:20px;letter-spacing:1.4px;color:#172331
}
@media(max-width:850px){
  .testNotice{position:fixed;top:7px;right:7px;left:7px;text-align:center;font-size:8px}
  .logoText img{width:104px}
  #step1 input[type=text]{width:100%}
}
.cpfWrap{
  position:relative;
  width:315px;
}

.cpfWrap input{
  width:100% !important;
  padding-right:48px;
  box-sizing:border-box;
}

.toggleCpf{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  width:34px;
  height:34px;
  border:0;
  background:transparent;
  cursor:pointer;
  font-size:18px;
  padding:0;
}

.toggleCpf:hover{
  background:#f2f6f9;
  border-radius:8px;
}
/* Padroniza os campos de usuário e senha/CPF */
input[type="text"],
input[type="password"]{
  height: 48px;
  padding: 0 14px;
  font-size: 15px;
  line-height: 48px;
  box-sizing: border-box;
  border-radius: 8px;
}

/* Se estiver usando o wrapper do CPF com olhinho */
.cpfWrap{
  width: 315px;
}

.cpfWrap input{
  width: 100% !important;
  height: 48px;
  padding-right: 46px;
  box-sizing: border-box;
}
.digits .digitInput {
  width: 58px;
  height: 68px;

  padding: 0 !important;
  margin: 0;

  text-align: center;
  font-size: 30px;
  line-height: 68px;

  border: 1px solid #9eb0c0;
  border-radius: 8px;

  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
}

@media (max-width: 850px) {
  .digits {
    display: flex;
    justify-content: center;
    gap: 6px;
    width: 100%;
  }

  .digits .digitInput {
    width: 44px;
    height: 58px;

    padding: 0 !important;

    font-size: 26px;
    line-height: 58px;
  }
}

@media (max-width: 380px) {
  .digits {
    gap: 4px;
  }

  .digits .digitInput {
    width: 40px;
    height: 54px;
    font-size: 24px;
    line-height: 54px;
  }
}
