:root{
  --gov:#1351b4;--gov-dark:#0c326f;--gov-yellow:#ffcd07;
  --safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body,#app{min-height:100%;height:100%}
body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  background:#f5f6f8;color:#1b1b1b;-webkit-tap-highlight-color:transparent;
}
button,input{font:inherit}
button{cursor:pointer;border:0;background:none}
.splash{
  min-height:100dvh;display:grid;place-items:center;background:#fff;
  padding-top:var(--safe-t);
}
.splash b{font-size:2.2rem;color:#1351b4;letter-spacing:-.03em}
.splash b span{color:#f0ad4e}

.gov-home{min-height:100dvh;background:#fff;padding-bottom:var(--safe-b)}
.gh-top{
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  padding:.7rem 1rem;padding-top:calc(.7rem + var(--safe-t));
}
.gh-brand{font-size:1.55rem;font-weight:800;color:#1351b4;letter-spacing:-.03em}
.gh-brand span{color:#ffcd07}
.gh-enter{
  background:#1351b4;color:#fff;border-radius:999px;padding:.55rem .9rem;
  font-size:.82rem;font-weight:700;white-space:nowrap;
}
.gh-menu{padding:.15rem 1rem .7rem;color:#333;font-size:.95rem;font-weight:600}
.gh-search{
  margin:0 1rem 1.1rem;display:flex;border:1px solid #d5d8de;border-radius:10px;
  overflow:hidden;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.gh-search input{flex:1;border:0;padding:.85rem 1rem;font-size:16px;outline:none}
.gh-search button{width:48px;color:#1351b4;font-size:1.2rem}
.gh-h{text-align:center;font-size:1.35rem;margin:0 1rem 1rem;color:#1b1b1b}
.gh-box{margin:0 1rem 1.1rem;border:1px solid #eceef2;border-radius:12px;overflow:hidden}
.gh-box-lab{padding:.7rem 1rem .35rem;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#667}
.gh-link{
  display:block;width:100%;text-align:left;padding:.75rem 1rem;border-top:1px solid #f0f1f4;
  color:#1351b4;font-weight:650;font-size:.92rem;
}
.gh-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;padding:0 1rem 1.2rem}
.gh-tile{
  background:#fff;border:1px solid #eceef2;border-radius:12px;min-height:108px;
  padding:.85rem .7rem;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.45rem;text-align:center;box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.gh-tile span{color:#1351b4;font-size:1.35rem}
.gh-tile b{font-size:.72rem;font-weight:700;color:#1351b4;line-height:1.25;text-transform:uppercase}
.gh-perfis{padding:0 1rem 1.2rem}
.gh-perfis-row{display:flex;gap:.55rem;overflow:auto;padding:.4rem 0}
.gh-perfil{
  flex:0 0 104px;background:#fff;border:1px solid #eceef2;border-radius:14px;padding:.7rem .4rem;
  font-size:.72rem;font-weight:700;color:#333;
}
.gh-perfil i{display:block;font-size:1.6rem;font-style:normal;margin-bottom:.35rem}
.gh-apps{text-align:center;padding:1.1rem 1rem}
.gh-apps h3,.gh-ouv h3{font-size:1.05rem;color:#0c326f;margin-bottom:.8rem;line-height:1.3}
.gh-apps-row{display:flex;justify-content:center;gap:.7rem;margin-bottom:.8rem}
.gh-app-ic{
  width:92px;height:92px;border:1px solid #eceef2;border-radius:10px;
  display:grid;place-items:center;font-weight:800;color:#1351b4;font-size:.95rem;background:#fff;
}
.gh-app-ic span{color:#ffcd07}
.gh-app-id{color:#0e7ea3;font-size:1.1rem}
.gh-pill{
  border:1.5px solid #1351b4;color:#1351b4;border-radius:999px;padding:.55rem 1.1rem;font-weight:700;
}
.gh-ouv{padding:1rem;text-align:center}
.gh-ouv-row{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.gh-ouv-row span{
  background:#f3f5f8;border-radius:10px;padding:.9rem .4rem;font-size:.72rem;font-weight:800;
  text-transform:uppercase;color:#0c326f;
}
.gh-foot{background:#0c326f;color:#fff;padding:1.4rem 1rem calc(1.4rem + var(--safe-b));text-align:center}
.gh-foot b{font-size:1.4rem}
.gh-foot p{margin-top:.35rem;opacity:.85;font-size:.82rem}

.gov-login{min-height:100dvh;background:#f5f6f8;display:flex;flex-direction:column}
.gov-login-bar{
  background:#0c326f;color:#fff;display:flex;align-items:center;gap:.5rem;
  padding:.85rem 1rem;padding-top:calc(.85rem + var(--safe-t));
}
.gov-login-bar h1{font-size:.95rem;font-weight:800;letter-spacing:.04em;margin:0}
.gov-back{
  width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.14);
  color:#fff;font-size:1.5rem;display:grid;place-items:center;
}
.gov-login-body{flex:1;padding:1.1rem 1rem calc(1.5rem + var(--safe-b));max-width:480px;width:100%;margin:0 auto}
.gov-logo-row{margin:.35rem 0 1rem}
.govbr-logo-text{font-size:1.75rem;font-weight:800;color:#1351b4;letter-spacing:-.02em}
.govbr-logo-text span{color:#f0ad4e}
.gov-card{
  background:#fff;border-radius:12px;padding:1.15rem 1.05rem 1.25rem;
  box-shadow:0 1px 3px rgba(0,0,0,.06);border:1px solid #e8eaee;
}
.gov-card h2{margin:0 0 .9rem;font-size:1.05rem;font-weight:700}
.gov-id-opt{display:flex;gap:.75rem;margin-bottom:1.05rem;align-items:flex-start;color:#333}
.gov-id-opt b{display:block;font-size:.95rem;margin-bottom:.2rem}
.gov-id-opt p{margin:0;font-size:.82rem;color:#555;line-height:1.45}
.gov-id-opt a{color:#1351b4;font-weight:600;text-decoration:none}
.gov-id-ic{
  flex-shrink:0;width:40px;height:40px;border-radius:10px;background:#eef3fb;color:#1351b4;
  display:grid;place-items:center;font-size:1.2rem;
}
.gov-field{display:block;margin-bottom:.85rem}
.gov-field>span{display:block;font-size:.78rem;font-weight:700;color:#444;margin-bottom:.35rem}
.gov-field input{
  width:100%;min-height:48px;padding:.7rem .9rem;border:1.5px solid #cfd4dc;border-radius:8px;
  font-size:16px;background:#fffef5;color:#111;
}
.gov-field input:focus{outline:none;border-color:#1351b4;box-shadow:0 0 0 3px rgba(19,81,180,.15)}
.gov-cpf-show{margin-bottom:.85rem;padding:.55rem .7rem;background:#f3f5f8;border-radius:8px}
.gov-cpf-show span{display:block;font-size:.72rem;color:#666;font-weight:600}
.gov-cpf-show b{font-size:1rem;font-weight:700}
.btn-login-gov{
  width:100%;min-height:48px;border-radius:999px;background:#1351b4;color:#fff;
  font-weight:700;font-size:1rem;
}
.btn-login-gov:disabled{opacity:.55}
.btn-ghost{
  width:100%;min-height:48px;border-radius:999px;border:1.5px solid #1351b4;color:#1351b4;
  font-weight:700;margin-top:.55rem;background:#fff;
}
.row-btns{display:flex;gap:.6rem;margin-top:.4rem}
.row-btns .btn-ghost,.row-btns .btn-login-gov{flex:1;width:auto;margin:0}
.gov-other{margin-top:1.35rem;background:#fff;border-radius:12px;border:1px solid #e8eaee;overflow:hidden}
.gov-other-title{font-size:.78rem;font-weight:700;color:#5a6270;padding:.75rem 1rem .35rem}
.gov-other-row{
  width:100%;display:flex;align-items:center;gap:.8rem;text-align:left;padding:.8rem 1rem;
  border-top:1px solid #f0f1f4;font-size:.9rem;font-weight:600;min-height:52px;
}
.gov-other-row span:first-child{color:#1351b4;width:28px}
.login-err{color:#c53030;font-size:.84rem;margin-top:.6rem;min-height:1.1em}
.forgot{display:inline-block;margin:.35rem 0 .8rem;color:#1351b4;font-size:.88rem;font-weight:600;text-decoration:underline}

.app-bar{
  background:#1351b4;color:#fff;display:flex;align-items:center;gap:.6rem;
  padding:.8rem 1rem;padding-top:calc(.8rem + var(--safe-t));
}
.app-bar h1{font-size:1rem;font-weight:700;flex:1}
.app-bar .mini{font-size:.78rem;opacity:.9}
.docs{
  padding:1rem 1rem calc(1.4rem + var(--safe-b));max-width:480px;margin:0 auto;
}
.docs h2{font-size:1.05rem;margin:0 0 1rem}
.doc-item{
  display:flex;align-items:center;gap:.75rem;background:#fff;border:1px solid #e6e8ee;
  border-radius:12px;padding:.9rem 1rem;margin-bottom:.55rem;width:100%;text-align:left;
}
.doc-item .radio{
  width:22px;height:22px;border:2px solid #1351b4;border-radius:50%;flex-shrink:0;
  display:grid;place-items:center;
}
.doc-item.is-on .radio::after{content:'';width:12px;height:12px;border-radius:50%;background:#1351b4}
.doc-item b{display:block;font-size:.92rem}
.doc-item small{color:#667;font-size:.78rem}
.docs .btn-login-gov{margin-top:.85rem}
.empty{text-align:center;color:#667;padding:2rem .5rem;font-size:.9rem}

.cin-wrap{padding:.7rem .8rem calc(1.2rem + var(--safe-b));max-width:480px;margin:0 auto}
.cin-card{
  background:linear-gradient(165deg,#1aa6c8 0%,#0e7ea3 55%,#0a6b8c 100%);
  border-radius:18px;color:#fff;padding:14px 14px 16px;position:relative;overflow:hidden;
  box-shadow:0 14px 32px rgba(10,80,110,.28);
  min-height:210px;
}
.cin-card::after{
  content:'';position:absolute;right:-30px;top:-20px;width:140px;height:140px;border-radius:50%;
  background:rgba(255,255,255,.08);
}
.cin-head{display:flex;justify-content:space-between;align-items:flex-start;font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;opacity:.95}
.cin-body{display:grid;grid-template-columns:88px 1fr 72px;gap:10px;margin-top:12px;position:relative;z-index:1}
.cin-qr{width:72px;height:72px;background:#fff;border-radius:6px;padding:3px;align-self:end}
.cin-qr img{width:100%;height:100%;display:block;border-radius:4px}
.cin-foot{display:flex;justify-content:space-between;margin-top:12px;font-size:.68rem;font-weight:700;opacity:.95;position:relative;z-index:1}
.cin-photo{
  width:88px;height:112px;border-radius:8px;object-fit:cover;background:#d9eef4;border:2px solid rgba(255,255,255,.5);
  display:grid;place-items:center;font-weight:800;color:#0a6b8c;font-size:1.4rem;
}
.cin-photo img{width:100%;height:100%;object-fit:cover;border-radius:6px}
.cin-fields .nome{font-size:1.02rem;font-weight:800;line-height:1.2;margin-bottom:.45rem;text-transform:uppercase}
.cin-fields p{font-size:.72rem;margin:0 0 .28rem;opacity:.95}
.cin-fields p b{display:block;font-size:.58rem;font-weight:700;letter-spacing:.04em;opacity:.8;text-transform:uppercase}
.cin-actions{display:flex;gap:.5rem;margin-top:.85rem}
.cin-actions button{
  flex:1;min-height:44px;border-radius:10px;background:#fff;color:#1351b4;font-weight:700;border:1px solid #d5deee;
}
.cin-verso{
  background:#fff;border-radius:18px;padding:16px;border:1px solid #e6e8ee;
  box-shadow:0 10px 24px rgba(0,0,0,.06);
}
.cin-verso h3{font-size:.78rem;color:#1351b4;margin-bottom:.7rem;text-transform:uppercase;letter-spacing:.04em}
.cin-verso dl{display:grid;grid-template-columns:110px 1fr;gap:.35rem .6rem;font-size:.84rem}
.cin-verso dt{color:#667;font-size:.72rem}
.cin-verso dd{margin:0;font-weight:650;word-break:break-word}
.out{margin-top:1rem;width:100%;min-height:44px;color:#1351b4;font-weight:700}
