:root{
  --blue-950:#06255f;--blue-900:#0a3d91;--blue-800:#0d4fb6;--blue-700:#1565d8;--blue-600:#1688f8;--blue-300:#4fc3f7;
  --bg:#f3f7fc;--card:#fff;--text:#0f2448;--muted:#6b7a90;--line:#dce6f2;--success:#16a34a;--danger:#dc2626;
  --shadow:0 12px 34px rgba(15,48,98,.09);--radius:18px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Ubuntu,Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.app{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:265px;background:linear-gradient(180deg,#07377e,#06255f);color:#fff;padding:18px 15px;z-index:30;overflow-y:auto;box-shadow:10px 0 34px rgba(1,21,57,.14)}.brand-img{display:block;padding:4px 8px 22px;border-bottom:1px solid rgba(255,255,255,.13);margin-bottom:16px}.brand-img img{display:block;width:100%;max-width:205px;height:auto;border-radius:8px}.menu-section{font-family:Poppins,sans-serif;font-size:10px;letter-spacing:.13em;font-weight:700;color:#86b6f8;margin:18px 12px 8px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:11px;color:#e9f2ff;font-weight:500;transition:.2s}.sidebar nav a:hover{background:rgba(44,139,255,.22);transform:translateX(2px)}.sidebar nav i{width:20px;text-align:center;color:#d7e9ff}.main{min-width:0;flex:1;margin-left:265px}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:18px;position:sticky;top:0;z-index:20}.topbar h1{font-family:Poppins,sans-serif;font-size:20px;margin:0}.topbar p{margin:2px 0 0;color:var(--muted);font-size:13px}.top-user{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}.top-user i{font-size:31px;color:var(--blue-700)}.menuBtn{display:none;width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:12px;color:var(--blue-900)}.content{padding:26px;max-width:1500px;margin:0 auto}.hero{background:linear-gradient(120deg,var(--blue-900),var(--blue-700) 62%,#1ca9f8);color:#fff;border-radius:24px;padding:28px 30px;box-shadow:0 18px 45px rgba(10,61,145,.2);margin-bottom:20px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.08);right:-70px;top:-85px}.hero h1{font:700 28px Poppins,sans-serif;margin:0 0 8px}.hero p{margin:0;max-width:800px;line-height:1.55;color:#e7f2ff}.hero-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.hero-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.14);font-size:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.grid{display:grid;gap:18px}.cards{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.three-cols{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{display:flex;justify-content:space-between;align-items:center;min-height:118px}.metric strong{display:block;font:700 30px Poppins,sans-serif;color:var(--blue-900)}.metric span{display:block;color:var(--muted);font-size:13px;margin-top:4px}.metric>i{width:50px;height:50px;border-radius:15px;background:#eaf3ff;color:var(--blue-700);display:grid;place-items:center;font-size:20px}.form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.form .full{grid-column:1/-1}.form .span-2{grid-column:span 2}.form label,.toolbar label{display:block;font-weight:700;font-size:12px;color:#334967;margin:0 0 7px}.form input,.form select,.form textarea,.toolbar input,.toolbar select{width:100%;height:46px;border:1px solid #ccd9e8;border-radius:12px;background:#fff;padding:0 13px;color:var(--text);outline:none;transition:.2s}.form textarea{height:auto;min-height:100px;padding-top:12px}.form input:focus,.form select:focus,.toolbar input:focus,.toolbar select:focus{border-color:#6aa9ff;box-shadow:0 0 0 4px rgba(21,101,216,.10)}.voter-form{grid-template-columns:repeat(4,minmax(0,1fr))}.address-title{border-top:1px solid var(--line);padding-top:18px;margin-top:2px;font:700 14px Poppins,sans-serif;color:var(--blue-900);display:flex;align-items:center;gap:8px}.hint{display:block;color:var(--muted);font-size:11px;margin-top:6px}.cep-line{display:flex;gap:7px}.cep-line .btn{width:47px;min-width:47px;padding:0}.form-actions{display:flex;justify-content:flex-end;padding-top:5px}.btn{border:0;border-radius:11px;height:43px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;cursor:pointer;transition:.2s}.btn:hover{transform:translateY(-1px);filter:brightness(.98)}.btn.primary{background:var(--blue-700);color:#fff}.btn.secondary{background:#edf4fc;color:var(--blue-900);border:1px solid #d4e2f2}.btn.success{background:linear-gradient(135deg,var(--blue-700),#168ff6);color:#fff}.btn.danger{background:#fee2e2;color:#991b1b}.btn.sm{height:36px;padding:0 11px;font-size:12px}.btn-lg{height:49px;padding:0 22px}.btn-block{width:100%}.alert{padding:13px 15px;border-radius:12px;margin-bottom:16px;border:1px solid transparent}.alert.ok{background:#ecfdf5;color:#067647;border-color:#a7f3d0}.alert.err{background:#fff1f2;color:#a51d2d;border-color:#fecdd3}.alert.info{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.toolbar{display:flex;justify-content:space-between;gap:15px;align-items:flex-end;margin-bottom:16px}.toolbar form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.toolbar form>div{min-width:180px}.table-wrap{overflow:auto;padding:0}.table{width:100%;border-collapse:collapse;min-width:1050px}.table th,.table td{padding:13px 15px;border-bottom:1px solid #edf1f6;text-align:left;vertical-align:top;font-size:13px}.table th{font:700 11px Poppins,sans-serif;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fbff;white-space:nowrap}.table tbody tr:hover{background:#fbfdff}.badge{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:#eef2f7;color:#465569;font-size:11px;font-weight:700}.badge.primary{background:#e4efff;color:#0c57bd}.badge.success{background:#dcfce7;color:#166534}.badge.danger{background:#fee2e2;color:#991b1b}.muted{color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:25px!important}.section-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:15px}.section-title h2{font:700 18px Poppins,sans-serif;margin:0}.quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.quick-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.quick-card>i{width:50px;height:50px;border-radius:14px;background:#eaf3ff;color:var(--blue-700);display:grid;place-items:center;font-size:19px}.quick-card h3{font:700 16px Poppins,sans-serif;margin:13px 0 6px}.quick-card p{color:var(--muted);font-size:13px;line-height:1.5;min-height:40px}.sublist{display:grid;gap:9px}.subitem{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;justify-content:space-between;gap:12px;align-items:center}.subitem small{display:block;color:var(--muted);margin-top:3px}.team-card{display:grid;gap:16px}.team-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.team-person{display:flex;gap:12px;align-items:center}.avatar{width:46px;height:46px;border-radius:14px;background:#e8f2ff;color:var(--blue-700);display:grid;place-items:center}.team-stats{display:flex;gap:7px;flex-wrap:wrap}.login-page{min-height:100vh;background:radial-gradient(circle at 15% 10%,#dceeff 0,#edf5ff 28%,#f7fbff 62%,#eaf3ff 100%)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:25px;position:relative;overflow:hidden}.login-shell:before,.login-shell:after{content:"";position:absolute;border-radius:50%;background:linear-gradient(135deg,rgba(21,101,216,.18),rgba(79,195,247,.06))}.login-shell:before{width:480px;height:480px;left:-180px;top:-160px}.login-shell:after{width:420px;height:420px;right:-180px;bottom:-180px}.loginbox{width:100%;max-width:420px;position:relative;z-index:2;padding:30px}.login-logo{display:block;width:220px;max-width:80%;margin:0 auto 16px;border-radius:14px}.loginbox h1{text-align:center;font:700 23px Poppins,sans-serif;margin:0 0 5px}.loginbox>p{text-align:center;color:var(--muted);margin:0 0 22px}.loginbox .grid{gap:14px}.login-footer{text-align:center;color:#7b8ca3;font-size:11px;margin-top:18px}.profile-summary{display:flex;align-items:center;gap:16px}.profile-avatar{width:70px;height:70px;border-radius:20px;background:rgba(255,255,255,.17);display:grid;place-items:center;font-size:28px}.profile-grid{align-items:start}.profile-form{grid-template-columns:1fr}.input-action{position:relative}.input-action input{padding-right:50px}.input-icon{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:37px;height:37px;border:0;border-radius:10px;background:#eef3f8;color:#52657d;cursor:pointer}.sidebar-backdrop{display:none}
@media(max-width:1200px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.form,.voter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-actions{grid-template-columns:1fr 1fr}.form .span-2{grid-column:span 2}}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.22s}.open .sidebar{transform:translateX(0)}.main{margin-left:0}.menuBtn{display:grid;place-items:center}.open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(3,19,46,.55);z-index:25}.topbar{padding:0 16px}.content{padding:18px}.two-cols,.three-cols{grid-template-columns:1fr}}
@media(max-width:620px){.cards{grid-template-columns:1fr}.form,.voter-form{grid-template-columns:1fr}.form .span-2{grid-column:1}.quick-actions{grid-template-columns:1fr}.hero{padding:22px}.hero h1{font-size:23px}.card{padding:17px}.toolbar{align-items:stretch;flex-direction:column}.toolbar form{display:grid;grid-template-columns:1fr;width:100%}.toolbar form>div{min-width:0}.toolbar .btn{width:100%}.top-user span{display:none}.table-wrap{padding:0}.loginbox{padding:23px}.form-actions{justify-content:stretch}.form-actions .btn{width:100%}}

/* SisCamp 4.0 - logo oficial e correção visual */
.sidebar .brand-img{
  background:#fff;
  border:1px solid rgba(255,255,255,.22);
  border-radius:16px;
  padding:10px 10px 9px;
  margin:0 2px 18px;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.sidebar .brand-img img{
  width:100%;
  max-width:220px;
  max-height:76px;
  object-fit:contain;
  margin:0 auto;
  border-radius:0;
}
.login-logo{
  width:300px;
  max-width:92%;
  height:auto;
  object-fit:contain;
  border-radius:0;
}

/* ============================================================
   SisCamp 4.0 - Login PRO
   Replica a linguagem visual da tela principal do SisCamp 4.0
   ============================================================ */
.login-page-pro{
  min-height:100vh;
  background:
    radial-gradient(circle at -3% -3%, rgba(60,151,255,.14) 0 14%, transparent 14.2%),
    radial-gradient(circle at 103% 103%, rgba(60,151,255,.14) 0 14%, transparent 14.2%),
    linear-gradient(135deg,#f7fbff 0%,#eef6ff 55%,#f8fbff 100%);
  color:#0e2a53;
}

.login-shell-pro{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:48px 24px;
  overflow:hidden;
}

.login-shell-pro::before,
.login-shell-pro::after{
  display:none;
}

.loginbox-pro{
  width:min(100%,575px);
  position:relative;
  z-index:2;
  background:#fff;
  border:1px solid #d5e3f2;
  border-radius:30px;
  padding:48px 52px 40px;
  box-shadow:
    0 30px 70px rgba(38,76,126,.11),
    0 8px 24px rgba(38,76,126,.06);
}

.login-brand-pro{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:118px;
  margin-bottom:22px;
}

.login-logo-pro{
  display:block;
  width:310px;
  max-width:78%;
  height:auto;
  margin:0 auto;
  object-fit:contain;
}

.login-heading-pro{
  margin-bottom:30px;
}

.login-heading-pro h1{
  margin:0 0 8px;
  font-family:Poppins,sans-serif;
  font-size:36px;
  line-height:1.15;
  letter-spacing:-.8px;
  font-weight:800;
  color:#063a7d;
}

.login-heading-pro p{
  margin:0;
  font-size:17px;
  line-height:1.45;
  color:#6c7e97;
}

.login-alert-pro{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0 0 20px;
  padding:13px 15px;
  font-size:13px;
}

.login-alert-pro i{
  margin-top:2px;
}

.login-form-pro{
  display:grid;
  gap:21px;
}

.login-field-pro label{
  display:block;
  margin:0 0 8px;
  font-family:Poppins,sans-serif;
  font-size:12px;
  font-weight:700;
  color:#223657;
}

.login-input-pro{
  position:relative;
  display:flex;
  align-items:center;
  min-height:68px;
  border:1px solid #cbd8e8;
  border-radius:17px;
  background:#edf4ff;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
  overflow:hidden;
}

.login-input-pro:focus-within{
  background:#f7fbff;
  border-color:#5b9cf2;
  box-shadow:0 0 0 4px rgba(20,115,233,.10);
}

.login-input-icon-pro{
  width:55px;
  min-width:55px;
  height:68px;
  display:grid;
  place-items:center;
  color:#6788ad;
  font-size:19px;
}

.login-input-pro input{
  width:100%;
  height:66px;
  border:0;
  outline:0;
  background:transparent;
  padding:0 17px 0 0;
  color:#0d2445;
  font-size:15px;
  font-weight:500;
}

.login-input-pro.has-action input{
  padding-right:54px;
}

.login-input-pro input::placeholder{
  color:#8ea0b6;
  opacity:1;
}

.login-password-toggle-pro{
  position:absolute;
  right:11px;
  top:50%;
  transform:translateY(-50%);
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#6383a6;
  cursor:pointer;
  transition:.18s ease;
}

.login-password-toggle-pro:hover{
  background:#dfeafa;
  color:#0c5fc4;
}

.login-submit-pro{
  width:100%;
  height:66px;
  margin-top:0;
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border:0;
  border-radius:16px;
  background:linear-gradient(90deg,#0f74ee 0%,#1689f7 100%);
  box-shadow:0 12px 25px rgba(16,118,236,.18);
  color:#fff;
  font-family:Poppins,sans-serif;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.login-submit-pro:hover{
  transform:translateY(-1px);
  box-shadow:0 15px 28px rgba(16,118,236,.23);
  filter:brightness(1.02);
}

.login-submit-pro:active{
  transform:translateY(0);
}

.login-submit-pro i{
  font-size:18px;
}

.login-forgot-pro{
  width:100%;
  height:58px;
  margin-top:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:1px solid #bdd5f4;
  border-radius:16px;
  background:#fff;
  color:#075bbd;
  font-family:Poppins,sans-serif;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
  transition:.18s ease;
}

.login-forgot-pro:hover{
  background:#f4f9ff;
  border-color:#8dbaf1;
}

.login-forgot-pro i{
  color:#12a666;
  font-size:19px;
}

.login-help-pro{
  margin-top:11px;
  padding:11px 13px;
  border-radius:12px;
  background:#f2f7fd;
  color:#647892;
  font-size:12px;
  text-align:center;
  line-height:1.45;
}

.login-footer-pro{
  margin-top:26px;
  text-align:center;
  color:#8a9aaf;
  font-size:11px;
  line-height:1.6;
}

@media (max-width:700px){
  .login-shell-pro{
    padding:20px 14px;
    align-items:flex-start;
  }

  .loginbox-pro{
    margin:12px 0;
    padding:31px 22px 28px;
    border-radius:24px;
  }

  .login-brand-pro{
    min-height:90px;
    margin-bottom:18px;
  }

  .login-logo-pro{
    width:270px;
    max-width:86%;
  }

  .login-heading-pro{
    margin-bottom:24px;
  }

  .login-heading-pro h1{
    font-size:28px;
  }

  .login-heading-pro p{
    font-size:15px;
  }

  .login-input-pro,
  .login-input-icon-pro{
    min-height:61px;
    height:61px;
  }

  .login-input-pro input{
    height:59px;
    font-size:14px;
  }

  .login-submit-pro{
    height:59px;
  }
}

@media (max-width:380px){
  .loginbox-pro{
    padding-left:17px;
    padding-right:17px;
  }

  .login-heading-pro h1{
    font-size:25px;
  }
}

/* ============================================================
   SisCamp 4.0 - Links, exclusões, notificações e PWA
   ============================================================ */
.badge.warning{background:#fff7d6;color:#8a5b00}.metric-alert{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff8f8)}.metric-alert>i{background:#fee2e2;color:#c62828}.danger-hero{background:linear-gradient(120deg,#7f1d1d,#b4232c 62%,#dc3545)}
.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.reason-cell{max-width:390px;white-space:normal;line-height:1.45}.detail-list{display:grid;gap:0}.detail-list>div{padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.detail-list>div:last-child{border-bottom:0}.detail-list span{color:var(--muted);font-size:12px}.detail-list strong{text-align:right}.request-box{margin-top:18px;padding:15px;border-radius:13px;background:#fff8e6;border:1px solid #fde2a8}.request-box p{margin:8px 0 0;color:#6c4c0c;line-height:1.55}
.generated-link-card{display:grid;gap:13px;border-color:#b7dcff;background:linear-gradient(135deg,#f7fbff,#fff)}.generated-link-card>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center}.copy-row{display:flex;gap:10px}.copy-row input{height:44px;flex:1;min-width:0;border:1px solid #c9d9ea;border-radius:11px;padding:0 12px;background:#fff;color:#40546c}.link-table{min-width:1220px}.permission-state{display:flex;align-items:center;gap:13px;padding:15px;border:1px solid var(--line);border-radius:14px;background:#f8fbff}.permission-state small{display:block;color:var(--muted);margin-top:3px}.status-dot{width:13px;height:13px;border-radius:50%;box-shadow:0 0 0 5px rgba(148,163,184,.15)}.status-dot.on{background:#22c55e}.status-dot.off{background:#ef4444}.bulk-actions{display:grid;gap:13px}.bulk-actions form{display:flex;gap:9px;flex-wrap:wrap;padding:13px;border:1px solid var(--line);border-radius:13px}.notification-list{display:grid;gap:12px}.notification-item{display:flex;align-items:center;gap:15px;padding:17px 18px}.notification-icon{width:48px;height:48px;min-width:48px;border-radius:15px;background:#fee2e2;color:#b4232c;display:grid;place-items:center}.notification-body{flex:1;min-width:0}.notification-title{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.notification-body p{margin:6px 0;color:#44566d;line-height:1.45}.notification-body small{color:var(--muted)}
.top-actions{display:flex;align-items:center;gap:14px}.top-notification{width:41px;height:41px;border:1px solid var(--line);border-radius:12px;display:grid;place-items:center;position:relative;color:var(--blue-900);background:#f8fbff}.top-notification span{position:absolute;right:-6px;top:-7px;min-width:20px;height:20px;border-radius:999px;background:#dc2626;color:#fff;font:700 10px Poppins,sans-serif;display:grid;place-items:center;padding:0 5px;border:2px solid #fff}.nav-count{margin-left:auto;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;display:grid;place-items:center;font-size:10px}.sidebar-install-btn{width:100%;border:0;background:rgba(31,120,236,.18);color:#fff;display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:11px;font-weight:600;cursor:pointer;text-align:left}.sidebar-install-btn:hover{background:rgba(44,139,255,.28)}.sidebar-install-btn i{width:20px;text-align:center;color:#d7e9ff}

/* PWA install modal */
.pwa-modal[hidden]{display:none!important}.pwa-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px}.pwa-modal-backdrop{position:absolute;inset:0;background:rgba(4,20,46,.62);backdrop-filter:blur(3px)}.pwa-modal-card{position:relative;width:min(100%,430px);background:#fff;border-radius:24px;border:1px solid #dbe7f3;box-shadow:0 30px 80px rgba(4,30,70,.28);padding:30px;text-align:center}.pwa-modal-close{position:absolute;right:15px;top:15px;width:38px;height:38px;border:0;border-radius:11px;background:#f0f5fa;color:#50647c;cursor:pointer}.pwa-app-icon{width:86px;height:86px;margin:0 auto 15px;border-radius:22px;overflow:hidden;box-shadow:0 10px 25px rgba(16,80,160,.16);border:1px solid #dbe6f2}.pwa-app-icon img{width:100%;height:100%;object-fit:cover}.pwa-modal-card h2{font:700 23px Poppins,sans-serif;color:var(--blue-950);margin:0 0 7px}.pwa-modal-card>p{color:var(--muted);line-height:1.5;margin:0 0 18px}.pwa-modal-card>.btn{margin-top:9px}.pwa-ios-steps{display:grid;gap:10px;text-align:left;margin:15px 0}.pwa-ios-steps>div{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:13px;padding:11px}.pwa-ios-steps span{width:25px;height:25px;min-width:25px;border-radius:50%;display:grid;place-items:center;background:#e5f0ff;color:#0b5fca;font-weight:700;font-size:12px}.pwa-ios-steps p{margin:2px 0 0;font-size:13px;line-height:1.45;color:#41546c}

/* Página pública do link */
.public-register-page{min-height:100vh;background:linear-gradient(135deg,#eef6ff,#f8fbff 55%,#eaf3ff);color:var(--text)}.public-register-shell{min-height:100vh;padding:34px 18px;display:grid;place-items:center}.public-register-card{width:min(100%,920px);background:#fff;border:1px solid #d8e5f2;border-radius:26px;box-shadow:0 25px 65px rgba(20,55,100,.12);padding:30px}.public-register-brand{display:flex;justify-content:center;padding-bottom:20px;border-bottom:1px solid #edf2f7}.public-register-brand img{width:260px;max-width:80%;height:auto}.public-register-heading{padding:24px 0 20px}.public-register-heading .eyebrow{display:inline-flex;padding:6px 10px;border-radius:999px;background:#e8f2ff;color:#0b5fc6;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.public-register-heading h1{font:700 28px Poppins,sans-serif;margin:10px 0 6px;color:var(--blue-950)}.public-register-heading p{margin:0;color:var(--muted);line-height:1.5}.public-form-wrap .voter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.privacy-note{margin-top:18px;padding:12px 14px;background:#f4f8fc;border-radius:12px;color:#62748a;font-size:12px;display:flex;gap:9px;align-items:flex-start}.privacy-note i{color:#0b66ce;margin-top:1px}.public-state{text-align:center;padding:55px 20px}.public-state>i{font-size:48px;margin-bottom:17px}.public-state h1{font:700 28px Poppins,sans-serif;margin:0 0 8px}.public-state p{color:var(--muted);font-size:16px}.public-state span{display:block;color:#8a98aa;margin-top:12px}.public-state.success>i{color:#16a34a}.public-state.error>i{color:#dc2626}

/* Login um pouco mais leve/compacto */
.login-input-pro{min-height:58px;border-radius:15px}.login-input-icon-pro{width:50px;min-width:50px;height:58px;font-size:17px}.login-input-pro input{height:56px;font-size:14px}.login-password-toggle-pro{width:38px;height:38px;right:9px}.login-submit-pro{height:58px;border-radius:15px}.login-forgot-pro{height:52px;border-radius:15px}.login-form-pro{gap:18px}

@media(max-width:700px){.copy-row{flex-direction:column}.copy-row .btn{width:100%}.notification-item{align-items:flex-start;flex-wrap:wrap}.notification-item>.btn{margin-left:63px}.public-register-card{padding:21px;border-radius:21px}.public-form-wrap .voter-form{grid-template-columns:1fr}.login-input-pro,.login-input-icon-pro{min-height:54px;height:54px}.login-input-pro input{height:52px;font-size:14px}.login-submit-pro{height:54px}.login-forgot-pro{height:50px}.top-title p{max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
.loginbox-pro{width:min(100%,530px);padding-left:48px;padding-right:48px}.login-heading-pro h1{font-size:34px}
@media(max-width:700px){.loginbox-pro{padding-left:24px;padding-right:24px}.login-heading-pro h1{font-size:28px}}
.selected-bulk-bar{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}.selected-bulk-bar>div{display:flex;gap:8px;flex-wrap:wrap}.table input[type="checkbox"]{width:17px;height:17px;accent-color:var(--blue-700)}

/* ============================================================
   SisCamp 4.0 PRO V3 - acabamento visual / usabilidade
   ============================================================ */

/* Scroll lateral discreto e sem setas */
.sidebar{scrollbar-width:thin;scrollbar-color:rgba(115,175,255,.72) transparent;overscroll-behavior:contain}
.sidebar::-webkit-scrollbar{width:7px}
.sidebar::-webkit-scrollbar-track{background:transparent}
.sidebar::-webkit-scrollbar-thumb{background:rgba(115,175,255,.58);border-radius:999px;border:2px solid transparent;background-clip:padding-box}
.sidebar::-webkit-scrollbar-thumb:hover{background:rgba(148,194,255,.88);background-clip:padding-box}
.sidebar::-webkit-scrollbar-button,.sidebar::-webkit-scrollbar-button:single-button{display:none!important;width:0!important;height:0!important}
.sidebar-nav{padding-bottom:18px}

/* Área de instalação virou um card real, não um botão cru */
.sidebar-install-card{width:100%;border:1px solid rgba(155,202,255,.20);background:linear-gradient(135deg,rgba(54,145,255,.20),rgba(35,105,214,.12));color:#fff;display:grid;grid-template-columns:40px 1fr 18px;align-items:center;gap:10px;padding:11px 12px;border-radius:14px;cursor:pointer;text-align:left;transition:.2s;box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.sidebar-install-card:hover{background:linear-gradient(135deg,rgba(70,157,255,.30),rgba(35,105,214,.20));transform:translateY(-1px)}
.sidebar-install-card .install-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.12);color:#dcedff;font-size:17px}
.sidebar-install-card .install-copy{min-width:0;display:block}.sidebar-install-card strong{display:block;font:600 12.5px Poppins,sans-serif;line-height:1.25}.sidebar-install-card small{display:block;color:#a9cffb;font-size:10.5px;margin-top:2px}.sidebar-install-card .install-arrow{color:#8ebff8;font-size:11px}

/* Inputs do login um pouco mais leves */
.login-input-pro{min-height:52px!important;height:52px!important;border-radius:14px!important}.login-input-icon-pro{height:50px!important;min-height:50px!important;width:47px!important;min-width:47px!important}.login-input-pro input{height:50px!important;font-size:13.5px!important}.login-submit-pro{height:54px!important;border-radius:14px!important}.login-forgot-pro{height:48px!important;border-radius:14px!important}.login-form-pro{gap:16px!important}

/* Acabamento comum */
.compact-hero{padding:23px 27px;border-radius:21px}.compact-hero h1{font-size:25px}.page-subtitle{font:700 18px Poppins,sans-serif;margin:0 0 3px}.btn.ghost{background:transparent;color:#50647c}.btn.whatsapp{background:#e8fff1;color:#087a3e;border:1px solid #b9efd0}.btn.whatsapp:hover{background:#dff9e9}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-card h3{font:700 16px Poppins,sans-serif;margin:0 0 2px}.team-card small{color:var(--muted)}.team-mini-stats{display:flex;gap:10px;flex-wrap:wrap}.team-mini-stats span{min-width:92px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f8fbff;color:var(--muted);font-size:11px}.team-mini-stats strong{display:block;color:var(--blue-900);font:700 20px Poppins,sans-serif;margin-bottom:1px}

/* Permissões: espaçamento profissional */
.permission-grid{align-items:stretch}.permission-main-action{margin-top:18px}.permission-bulk-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.permission-action-box{border:1px solid var(--line);background:#f8fbff;border-radius:14px;padding:15px;display:grid;gap:12px!important}.permission-action-box>div{display:flex;gap:10px;flex-wrap:wrap}.permission-action-box .btn{min-width:92px}.selected-bulk-bar>div:first-child{display:grid;gap:2px}.bulk-actions form{gap:12px!important;padding:15px!important}.permission-state{min-height:68px}

/* Convites / links */
.invite-context{margin-top:12px!important;padding:10px 12px;border-radius:12px;background:#f3f8ff;color:#47617e!important;font-size:13px!important}.generated-link-card{border:1px solid #a9cffb!important}.generated-link-card small{line-height:1.45}.invite-form{align-items:end}.simple-public-form{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-card,.reset-card{max-width:650px}.geo-box{grid-column:1/-1;border:1px solid #cfe0f3;background:#f7fbff;border-radius:15px;padding:14px;display:grid;grid-template-columns:1fr auto;gap:10px 14px;align-items:center}.geo-box>div strong{display:block;color:var(--blue-900)}.geo-box>div small,.geo-box small{display:block;color:var(--muted);margin-top:4px}.geo-box>[data-geo-status]{grid-column:1/-1;margin:0}.profile-geo-box{grid-template-columns:1fr auto auto}.profile-geo-box .btn:last-child{grid-column:3}

/* FAQ */
.faq-list{display:grid;gap:12px;margin-bottom:18px}.faq-item{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 24px rgba(15,48,98,.06);overflow:hidden}.faq-item summary{list-style:none;cursor:pointer;padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:15px;font:700 14px Poppins,sans-serif;color:var(--blue-950)}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary i{transition:.2s;color:#6692c5}.faq-item[open] summary i{transform:rotate(180deg)}.faq-answer{padding:0 20px 19px;color:#52657d;line-height:1.65;font-size:14px;border-top:1px solid #eef3f8;padding-top:16px}.faq-tip{display:flex;gap:15px;align-items:flex-start}.faq-tip>i{width:45px;height:45px;min-width:45px;border-radius:14px;background:#fff7d6;color:#a46d00;display:grid;place-items:center}.faq-tip p{margin:5px 0 0;color:var(--muted);line-height:1.55}

/* Acerto */
.finance-hero{background:linear-gradient(120deg,#092f72,#0f64cd 62%,#1ea7f5)}.finance-gate{max-width:860px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;gap:15px 18px;align-items:start}.gate-icon{width:56px;height:56px;border-radius:17px;background:#e9f3ff;color:var(--blue-700);display:grid;place-items:center;font-size:20px}.finance-gate h2{font:700 20px Poppins,sans-serif;margin:3px 0 5px}.finance-gate p{margin:0;color:var(--muted);line-height:1.5}.finance-gate form{grid-column:1/-1}.finance-unlock-form{display:grid;grid-template-columns:1fr auto;gap:10px}.finance-unlock-form input{height:49px;border:1px solid #ccd9e8;border-radius:12px;padding:0 13px;outline:none}.finance-summary{grid-template-columns:1.3fr 1fr 1fr}.finance-chart-card{display:flex;align-items:center;gap:22px}.finance-chart-card h3{font:700 16px Poppins,sans-serif;margin:0 0 5px}.finance-chart-card p{margin:0;color:var(--muted);line-height:1.45}.donut{--pct:0;width:118px;height:118px;min-width:118px;border-radius:50%;background:conic-gradient(#1688f8 calc(var(--pct)*1%),#e8eff7 0);display:grid;place-items:center;position:relative}.donut:before{content:"";position:absolute;width:82px;height:82px;border-radius:50%;background:#fff}.donut>div{position:relative;text-align:center}.donut strong{display:block;font:700 21px Poppins,sans-serif;color:var(--blue-900)}.donut span{font-size:10px;color:var(--muted)}.settlement-preview{border:1px solid #bdd8f6;background:#f5faff;border-radius:13px;padding:9px 13px;align-self:end;min-height:46px}.settlement-preview span{display:block;font-size:10px;color:var(--muted)}.settlement-preview strong{display:block;margin-top:2px;color:var(--blue-900);font-size:12px}.bar-chart{display:grid;gap:15px}.bar-label{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:6px}.bar-label span{color:var(--muted)}.bar-track{height:10px;background:#edf2f8;border-radius:999px;overflow:hidden}.bar-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#116ee4,#22a5f5)}.help-steps{display:grid;gap:11px;margin-bottom:16px}.help-steps>div{display:flex;gap:10px;align-items:flex-start}.help-steps b{width:25px;height:25px;min-width:25px;border-radius:50%;display:grid;place-items:center;background:#e6f1ff;color:#0d63c9;font-size:11px}.help-steps span{color:#52657d;line-height:1.45;font-size:13px}

/* Modal PWA mais bonito */
.pwa-kicker{display:inline-block;font:700 10px Poppins,sans-serif;letter-spacing:.12em;color:#1680e9;margin-bottom:5px}.pwa-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 0 15px}.pwa-benefits span{font-size:10.5px;background:#f5f9fe;border:1px solid #e0eaf5;border-radius:11px;padding:8px 5px;color:#53677f}.pwa-benefits i{color:#16a34a;margin-right:3px}

/* Bloqueio local do PWA */
body.app-locked{overflow:hidden}.device-lock-overlay[hidden]{display:none!important}.device-lock-overlay{position:fixed;inset:0;z-index:5000;background:linear-gradient(145deg,#eef6ff,#e6f1ff);display:grid;place-items:center;padding:18px}.device-lock-card{width:min(100%,410px);background:#fff;border:1px solid #d7e5f4;border-radius:26px;box-shadow:0 28px 70px rgba(8,47,103,.18);padding:30px;text-align:center}.device-lock-card>img{width:74px;height:74px;border-radius:20px;margin-bottom:12px}.device-lock-kicker{font:700 9px Poppins,sans-serif;letter-spacing:.13em;color:#1680e9}.device-lock-card h2{font:700 22px Poppins,sans-serif;color:var(--blue-950);margin:7px 0}.device-lock-text{color:var(--muted);line-height:1.5;margin:0 0 18px}.device-lock-actions{display:grid;gap:10px}.device-lock-note{color:#73859b;font-size:10.5px;line-height:1.45}.device-lock-password{display:grid;gap:10px;text-align:left}.device-lock-password label{font-size:11px;font-weight:700;color:#334967}.device-lock-input{height:50px;border:1px solid #ccd9e8;border-radius:13px;display:flex;align-items:center;padding:0 13px;gap:10px;background:#f7fbff}.device-lock-input i{color:#7090b4}.device-lock-input input{border:0;outline:0;background:transparent;width:100%;height:48px}.device-lock-error{color:#b4232c;min-height:15px;text-align:center}.device-lock-logout{display:inline-flex;align-items:center;gap:7px;margin-top:18px;color:#77879a;font-size:12px}

@media(max-width:1100px){.team-grid{grid-template-columns:1fr}.finance-summary{grid-template-columns:1fr 1fr}.finance-chart-card{grid-column:1/-1}.permission-bulk-grid{grid-template-columns:1fr}}
@media(max-width:700px){.simple-public-form{grid-template-columns:1fr}.geo-box,.profile-geo-box{grid-template-columns:1fr}.profile-geo-box .btn:last-child{grid-column:auto}.finance-gate{grid-template-columns:1fr}.gate-icon{margin:auto}.finance-gate>div:nth-child(2){text-align:center}.finance-unlock-form{grid-template-columns:1fr}.finance-summary{grid-template-columns:1fr}.finance-chart-card{grid-column:auto;align-items:flex-start}.pwa-benefits{grid-template-columns:1fr}.permission-action-box>div .btn{flex:1}.settlement-preview{grid-column:1/-1}.loginbox-pro{padding-left:22px!important;padding-right:22px!important}}
.setup-authorization{border:1px solid #b9d7fa;background:#f3f8ff;border-radius:14px;padding:14px 15px}.setup-authorization strong{display:block;color:var(--blue-900);font:700 13px Poppins,sans-serif}.setup-authorization small{display:block;color:var(--muted);line-height:1.5;margin-top:5px}.setup-divider{display:flex;align-items:center;gap:10px;color:#7890ac;font:700 10px Poppins,sans-serif;text-transform:uppercase;letter-spacing:.08em;margin-top:3px}.setup-divider:before,.setup-divider:after{content:"";height:1px;background:#e1eaf4;flex:1}


/* SisCamp4.0 V12 - modo de suporte e contadores */
.support-mode-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff3cd;border:1px solid #f3d77a;color:#684f00;border-radius:16px;padding:12px 16px;margin-bottom:18px;box-shadow:0 8px 24px rgba(92,67,0,.08)}
.support-mode-banner>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.support-mode-banner strong{font-family:Poppins,sans-serif}.support-mode-banner .fa-headset{font-size:20px}.support-access-form{display:flex;align-items:center;gap:8px;min-width:320px}.support-access-form input{min-width:185px;height:38px;padding:8px 10px}.counter-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}.counter-strip.two{grid-template-columns:repeat(2,minmax(0,1fr))}.counter-strip.four{grid-template-columns:repeat(4,minmax(0,1fr))}.counter-mini{background:#fff;border:1px solid #dce6f4;border-radius:16px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:0 8px 24px rgba(25,73,135,.06)}.counter-mini strong{font:800 26px/1 Poppins,sans-serif;color:#0a4da2;display:block}.counter-mini span{font-size:13px;color:#607087}.counter-mini i{font-size:24px;color:#1b7bea;background:#eaf3ff;width:46px;height:46px;border-radius:14px;display:grid;place-items:center}@media(max-width:980px){.counter-strip.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.support-mode-banner{align-items:flex-start;flex-direction:column}.support-access-form{min-width:0;flex-direction:column;align-items:stretch}.support-access-form input{min-width:0;width:100%}.counter-strip,.counter-strip.two{grid-template-columns:1fr 1fr}.counter-mini{padding:12px}.counter-mini strong{font-size:22px}}@media(max-width:420px){.counter-strip,.counter-strip.two,.counter-strip.four{grid-template-columns:1fr}}

/* SisCamp4.0 V13 - Mapa Eleitoral Interativo (Administrador) */
.electoral-hero{background:linear-gradient(120deg,#082e70,#0b5cad 58%,#1688e8)}
.map-filter-card{margin-bottom:18px}.map-filter-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) auto auto auto;gap:10px;align-items:end}.map-filter-form>div{display:grid;gap:6px}.map-filter-form label{font-size:11px;font-weight:700;color:#53677f}.map-filter-form select{height:44px;border:1px solid #cfdae8;border-radius:12px;background:#fff;padding:0 12px;color:#263a52;outline:none}
.map-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:18px}.map-main-card,.map-detail-card{min-width:0}.map-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:10px}.map-kicker{font:700 10px Poppins,sans-serif;letter-spacing:.12em;color:#1a75d2}.map-head h2{font:800 23px Poppins,sans-serif;color:var(--blue-950);margin:4px 0}.map-head p{margin:0;color:var(--muted);font-size:13px}.map-breadcrumb{display:flex;align-items:center;gap:8px;min-height:34px;margin-bottom:8px;font-size:12px;color:#72849b}.map-breadcrumb button{border:0;background:transparent;padding:0;color:#176ec8;cursor:pointer;font:600 12px Ubuntu,sans-serif}.map-breadcrumb i{font-size:8px;color:#a0afbf}.electoral-map{height:590px;border:1px solid #dce6f0;border-radius:18px;overflow:hidden;background:#f7fbff;position:relative}.electoral-map .leaflet-container{font-family:Ubuntu,sans-serif}.electoral-map .leaflet-tooltip{border:0;border-radius:10px;box-shadow:0 8px 24px rgba(10,47,97,.18);padding:8px 10px;color:#193655}.map-load-error{height:100%;display:grid;place-items:center;align-content:center;text-align:center;gap:8px;color:#64788f}.map-load-error i{font-size:28px;color:#e09a25}.map-load-error strong{color:#24415f}.map-load-error span{font-size:12px}.map-legend{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:10px;color:#72849a;font-size:10px}.map-legend i{width:22px;height:9px;border-radius:999px}.map-legend .l1{background:#c9e2fb}.map-legend .l2{background:#8fc1f3}.map-legend .l3{background:#4d9bea}.map-legend .l4{background:#1976d2}.map-legend .l5{background:#0a4da2}
.map-details{display:grid;gap:8px;max-height:650px;overflow:auto;padding-right:3px}.map-detail-row{width:100%;border:1px solid #e1e9f2;background:#fff;border-radius:13px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;transition:.15s}.map-detail-row:hover{border-color:#a9ccef;background:#f7fbff;transform:translateY(-1px)}.map-detail-row span{display:grid;gap:2px}.map-detail-row strong{font-size:13px;color:#25415e}.map-detail-row small{font-size:10px;color:#8a9aab}.map-detail-row b{font:700 16px Poppins,sans-serif;color:#0d61bd}.map-loading{padding:25px;text-align:center;color:#71859a}.zone-group{border:1px solid #e1eaf3;border-radius:14px;overflow:hidden;background:#fff}.zone-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 12px;background:#f5f9fe;border-bottom:1px solid #e4ecf5}.zone-head strong{color:#183c62}.zone-head span{font-size:10px;color:#71849a}.section-row{display:grid;grid-template-columns:1fr auto auto;gap:9px;align-items:center;padding:10px 12px;border-bottom:1px solid #edf2f7;text-decoration:none;color:#53677e}.section-row:last-child{border-bottom:0}.section-row:hover{background:#f8fbff}.section-row strong{color:#173d64}.section-row b{color:#0c66c8}.section-row i{font-size:9px;color:#9aabba}.stack-actions{margin:10px 0;display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:1100px){.map-layout{grid-template-columns:1fr}.map-detail-card{max-height:none}.map-details{max-height:420px}.map-filter-form{grid-template-columns:1fr 1fr auto}.map-filter-form>a:last-child{grid-column:auto}}
@media(max-width:700px){.map-filter-form{grid-template-columns:1fr}.map-filter-form .btn{width:100%}.electoral-map{height:470px}.map-head{align-items:flex-start}.map-legend{justify-content:center;flex-wrap:wrap}.map-detail-card{padding:14px}.map-breadcrumb{overflow:auto;white-space:nowrap}}
/* V13 - complementos da sincronização TSE */
.alert.warn{background:#fff8e6;color:#795209;border-color:#f5d58b}.compact-stats>div{border:1px solid #e1e9f2;border-radius:14px;padding:14px;background:#f8fbff}.compact-stats small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.compact-stats strong{font:700 17px Poppins,sans-serif;color:var(--blue-900)}.electoral-override-field{padding:14px;border:1px solid #cfe1f5;border-radius:14px;background:#f5f9ff}.electoral-override-field label{margin-bottom:8px}.electoral-override-field select{max-width:360px}

/* SisCamp4.0 V14 - Mapa RJ: ranking, escala azul e scroll premium */
.map-ranking-title{align-items:center}.ranking-total{display:grid;text-align:right;line-height:1.05}.ranking-total strong{font:800 22px Poppins,sans-serif;color:#0756a5}.ranking-total small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#8a9aab;margin-top:4px}
.map-details-scroll{max-height:590px;overflow-y:auto;overflow-x:hidden;padding:1px 8px 6px 1px;scrollbar-width:thin;scrollbar-color:#75aee5 #edf5fc;scroll-behavior:smooth}
.map-details-scroll::-webkit-scrollbar{width:9px}.map-details-scroll::-webkit-scrollbar-track{background:#edf5fc;border-radius:999px}.map-details-scroll::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#9bc8ef,#4e99de);border:2px solid #edf5fc;border-radius:999px}.map-details-scroll::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#6facdf,#176ec8)}
.map-detail-row.ranked,.map-detail-row.featured{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 11px}.map-detail-row.featured{border-color:#9bc5ee;background:#f4f9ff}.rank-number,.rank-badge{width:32px;height:32px;border-radius:10px;background:#e8f3ff;color:#0a5caf;display:grid!important;place-items:center!important;font:800 12px Poppins,sans-serif}.rank-badge{background:#0754a4;color:#fff}.map-detail-copy{display:grid!important;gap:2px;min-width:0}.map-detail-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-detail-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-detail-row.ranked:nth-child(1) .rank-number{background:#0754a4;color:#fff}.map-detail-row.ranked:nth-child(2) .rank-number{background:#287ac6;color:#fff}.map-detail-row.ranked:nth-child(3) .rank-number{background:#69a6dc;color:#fff}
.map-empty-state{min-height:180px;display:grid;place-items:center;align-content:center;gap:7px;text-align:center}.map-empty-state i{font-size:28px;color:#72aee6}.map-empty-state strong{color:#24415f}.map-empty-state span{font-size:11px;color:#71849a;max-width:250px}
.electoral-map .municipality-count-label{background:rgba(255,255,255,.90);border:1px solid rgba(18,92,166,.18);box-shadow:0 5px 15px rgba(5,52,104,.14);border-radius:8px;padding:4px 6px;color:#143c64;text-align:center;line-height:1.05;pointer-events:none}.electoral-map .municipality-count-label:before{display:none}.electoral-map .municipality-count-label strong{display:block;font:700 9px Poppins,sans-serif;max-width:92px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.electoral-map .municipality-count-label span{display:block;margin-top:2px;font:800 11px Poppins,sans-serif;color:#0756a5}.electoral-map .municipality-hover-tooltip{border:0;border-radius:10px;box-shadow:0 8px 24px rgba(10,47,97,.18);padding:8px 10px;color:#193655}
.map-legend .l1{background:#b9d8f2}.map-legend .l2{background:#72aee6}.map-legend .l3{background:#2e7dcc}.map-legend .l4{background:#0b5cad}.map-legend .l5{background:#063c83}
@media(max-width:1100px){.map-details-scroll{max-height:430px}}
@media(max-width:700px){.map-details-scroll{max-height:360px}.electoral-map .municipality-count-label{display:none}.ranking-total strong{font-size:18px}.map-detail-row.ranked,.map-detail-row.featured{grid-template-columns:34px minmax(0,1fr) auto}}


/* ============================================================
   SisCamp4.0 V16 - Mobile refinado + PWA guiado + detalhe do mapa
   ============================================================ */
[hidden]{display:none!important}
body.pwa-modal-open{overflow:hidden}

/* Instalação guiada por aparelho */
.pwa-device-badge{width:max-content;max-width:100%;margin:0 auto 8px;padding:6px 10px;border-radius:999px;background:#edf6ff;border:1px solid #d4e8fb;color:#1766bd;display:flex;align-items:center;gap:7px;font:700 10px Poppins,sans-serif}
.pwa-device-badge i{font-size:14px}.pwa-installed-note{margin:10px 0 14px;padding:10px 12px;border:1px solid #bde8cc;background:#effcf4;color:#14763a;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;text-align:left}
.pwa-install-steps{display:grid;gap:9px;text-align:left;margin:14px 0 6px}.pwa-install-steps>div{display:grid;grid-template-columns:28px minmax(0,1fr) 18px;gap:10px;align-items:center;border:1px solid #dfe9f4;border-radius:13px;padding:10px 11px;background:#fbfdff}.pwa-install-steps>div>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e7f2ff;color:#0b63c7;font:800 11px Poppins,sans-serif}.pwa-install-steps p{margin:0;color:#40536b;font-size:12.5px;line-height:1.45}.pwa-install-steps>div>i{color:#6d9ed0;font-size:13px;text-align:center}
.pwa-tutorial-link{border:0;background:transparent;color:#0d66c8;font-weight:700;font-size:12px;display:inline-flex;align-items:center;gap:7px;padding:9px 10px;margin:3px auto 0;cursor:pointer;border-radius:10px}.pwa-tutorial-link:hover{background:#eff6ff}.pwa-tutorial{margin-top:8px;padding:12px;border-radius:15px;background:#f5f9fe;border:1px solid #dae7f4;text-align:left}.pwa-tutorial-caption{display:grid;gap:2px;margin-bottom:10px}.pwa-tutorial-caption strong{font:700 12px Poppins,sans-serif;color:#173d67}.pwa-tutorial-caption span{font-size:11px;color:#647890;line-height:1.4}.pwa-tutorial img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid #d4dfeb;box-shadow:0 8px 22px rgba(16,60,110,.10)}.pwa-ios-visual{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:12px 4px}.pwa-ios-visual>div{width:82px;min-height:72px;border-radius:13px;background:#fff;border:1px solid #dbe7f2;display:grid;place-items:center;align-content:center;gap:6px;text-align:center;color:#0d63c7}.pwa-ios-visual>div i{font-size:19px}.pwa-ios-visual>div span{font-size:9.5px;font-weight:700;color:#4d6077}.pwa-ios-visual>i{font-size:10px;color:#8ba0b6}

/* Município: resumo + eleitores sem sair do mapa */
.city-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:13px}.city-summary-grid>div{border:1px solid #dce8f4;background:linear-gradient(180deg,#f9fcff,#f3f8fe);border-radius:13px;padding:11px 12px}.city-summary-grid strong{display:block;font:800 18px Poppins,sans-serif;color:#0756a5}.city-summary-grid span{display:block;margin-top:2px;font-size:10px;color:#71849a}.city-zone-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:15px 0 9px}.city-zone-title>div{display:grid;gap:2px}.city-zone-title strong,.city-voters-head>div>strong{font:700 13px Poppins,sans-serif;color:#173d64}.city-zone-title span,.city-voters-head>div>span{font-size:10px;color:#7b8da2}.city-zone-list{display:grid;gap:8px}.zone-group summary{list-style:none;cursor:pointer}.zone-group summary::-webkit-details-marker{display:none}.zone-head>span{display:grid;gap:2px}.zone-head>span small{font-size:9.5px;color:#7b8da2}.zone-head>b{margin-left:auto;color:#0b63bf;font:700 11px Poppins,sans-serif}.zone-head>i{font-size:10px;color:#8094aa;transition:.18s}.zone-group[open] .zone-head>i{transform:rotate(180deg)}.zone-sections{display:grid}.section-filter-button{width:100%;border:0;background:#fff;cursor:pointer;text-align:left}.section-filter-button.active{background:#eaf4ff;box-shadow:inset 3px 0 0 #1677df}.section-filter-button.active b{color:#074e9b}
.city-voters-block{margin-top:16px;padding-top:14px;border-top:1px solid #e5edf5}.city-voters-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:9px}.city-voters-head>div{display:grid;gap:2px}.city-voters-head>div:last-child{justify-items:end}.city-voters-head #cityVoterMeta{font-size:10px;color:#71849a}.city-voter-list{display:grid;gap:7px;max-height:330px;overflow:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:#75aee5 #eef5fc}.city-voter-list::-webkit-scrollbar{width:7px}.city-voter-list::-webkit-scrollbar-track{background:#eef5fc;border-radius:999px}.city-voter-list::-webkit-scrollbar-thumb{background:#6da9e0;border-radius:999px}.map-voter-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 11px;border:1px solid #e0e9f2;border-radius:12px;background:#fff}.map-voter-copy{display:grid;gap:2px;min-width:0}.map-voter-copy strong{font-size:12px;color:#173d64;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-voter-copy span{font-size:10px;color:#0b63bd}.map-voter-copy small{font-size:9.5px;color:#7a8ca1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-voter-actions{display:flex;gap:5px}.map-voter-actions a{width:31px;height:31px;border-radius:9px;background:#edf5ff;color:#0d66c8;display:grid;place-items:center}.map-voter-actions a:first-child{background:#eafbf1;color:#11934a}

/* Tabelas do sistema viram cards no celular, eliminando o aperto visto no vídeo */
@media(max-width:700px){
  body.open{overflow:hidden}.sidebar{width:min(82vw,300px);padding:13px 11px}.brand-img{padding:2px 6px 14px;margin-bottom:10px}.brand-img img{max-width:185px}.menu-section{margin:14px 10px 6px}.sidebar nav a{padding:10px 11px}.sidebar-install-card{padding:9px 10px}.sidebar-install-card .install-icon{width:36px;height:36px}.sidebar-install-card strong{font-size:11.5px}
  .topbar{height:64px;padding:0 11px;gap:8px}.topbar h1{font-size:17px;line-height:1.15}.topbar p{font-size:10.5px;max-width:180px}.menuBtn,.top-notification{width:38px;height:38px;border-radius:11px}.top-user i{font-size:28px}.top-actions{gap:8px}.content{padding:12px}.hero{padding:18px;border-radius:18px;margin-bottom:14px}.hero h1{font-size:21px}.hero p{font-size:12.5px;line-height:1.48}.hero-meta{margin-top:13px;gap:6px}.hero-pill{font-size:10.5px;padding:6px 8px}.card{padding:14px;border-radius:16px}.grid{gap:12px}.section-title{align-items:flex-start;flex-wrap:wrap}.section-title h2{font-size:16px}
  .toolbar{gap:10px;margin-bottom:12px}.toolbar>.row-actions{width:100%;display:grid;grid-template-columns:1fr}.toolbar>.row-actions .btn{width:100%}.row-actions{gap:7px}.form{gap:12px}.form input,.form select,.toolbar input,.toolbar select{height:45px}.btn{min-height:42px}.btn.sm{min-height:36px}
  .table-wrap{overflow:visible;background:transparent;border:0;box-shadow:none;padding:0}.table.responsive-table{min-width:0;width:100%;display:block}.table.responsive-table thead{display:none}.table.responsive-table tbody{display:grid;gap:10px;width:100%}.table.responsive-table tr{display:grid;width:100%;background:#fff;border:1px solid #dce6f2;border-radius:15px;padding:7px 12px;box-shadow:0 7px 20px rgba(15,48,98,.06)}.table.responsive-table td{display:grid;grid-template-columns:minmax(92px,34%) minmax(0,1fr);gap:10px;align-items:start;border:0;border-bottom:1px solid #edf2f7;padding:8px 0!important;font-size:12px;min-width:0;overflow-wrap:anywhere}.table.responsive-table td:last-child{border-bottom:0}.table.responsive-table td:before{content:attr(data-label);font:700 9.5px Poppins,sans-serif;text-transform:uppercase;letter-spacing:.035em;color:#74869b;padding-top:2px}.table.responsive-table td[data-mobile-full="1"]{display:block;text-align:center;padding:18px 4px!important;border:0}.table.responsive-table td[data-mobile-full="1"]:before{display:none}.table.responsive-table td .row-actions{display:grid;grid-template-columns:1fr;width:100%}.table.responsive-table td .row-actions .btn,.table.responsive-table td>form .btn{width:100%}.table.responsive-table td .btn{justify-self:start}.table.responsive-table td:last-child>.btn{width:100%;justify-self:stretch}.table.responsive-table .empty{background:#fff}.table.responsive-table tbody tr:hover{background:#fff}
  .pwa-modal{padding:10px;align-items:center}.pwa-modal-card{width:min(100%,420px);max-height:calc(100dvh - 20px);overflow-y:auto;padding:22px 17px 18px;border-radius:21px;scrollbar-width:thin;scrollbar-color:#8bb8e4 transparent}.pwa-modal-close{position:sticky;float:right;right:0;top:0;z-index:2;width:34px;height:34px}.pwa-app-icon{width:66px;height:66px;border-radius:18px;margin-bottom:10px}.pwa-modal-card h2{font-size:20px}.pwa-modal-card>p{font-size:12.5px;margin-bottom:12px}.pwa-benefits{grid-template-columns:repeat(3,1fr);gap:5px}.pwa-benefits span{font-size:9px;padding:7px 3px}.pwa-install-steps{margin-top:10px}.pwa-install-steps>div{grid-template-columns:26px minmax(0,1fr) 16px;padding:9px}.pwa-install-steps p{font-size:11.5px}.pwa-tutorial{padding:9px}
  .electoral-map{height:390px}.map-main-card{padding:13px}.map-detail-card{padding:13px}.map-head{gap:8px}.map-head h2{font-size:19px}.map-head p{font-size:11px}.map-head .btn{white-space:nowrap}.map-breadcrumb{margin-bottom:5px}.map-details-scroll{max-height:none;overflow:visible;padding-right:0}.city-summary-grid{grid-template-columns:repeat(2,1fr)}.city-voters-head{align-items:flex-start;flex-direction:column}.city-voters-head>div:last-child{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px}.city-voter-list{max-height:390px}.city-zone-title{align-items:flex-start;flex-direction:column}.city-zone-title .btn{width:100%}
}
@media(max-width:420px){
  .electoral-map{height:340px}.map-head{flex-wrap:wrap}.map-head .btn{width:100%}.pwa-ios-visual>div{width:72px}.city-summary-grid strong{font-size:16px}.map-voter-item{grid-template-columns:minmax(0,1fr) auto}.top-title p{max-width:150px}
}


/* ============================================================
   SisCamp4.0 V17
   Instalação Android + cabeçalho + exportações + transferência
   + segurança de acesso + filtros do mapa responsivos
   ============================================================ */
.top-date{font-size:12px;color:#70839a;white-space:nowrap}
.top-logout{width:41px;height:41px;border:1px solid #d9e4ef;border-radius:12px;display:grid;place-items:center;color:#c23b3b;background:#fff;transition:.15s}
.top-logout:hover{background:#fff1f1;border-color:#f2bcbc;color:#a61f1f;transform:translateY(-1px)}
.top-notification{z-index:2;cursor:pointer;text-decoration:none}
.top-notification.has-notification{background:#eef6ff;border-color:#bcd9f6;color:#075ab2;box-shadow:0 6px 18px rgba(18,101,185,.10)}
.top-notification.has-notification i{animation:siscampBell 2.4s ease-in-out infinite}
@keyframes siscampBell{0%,75%,100%{transform:rotate(0)}80%{transform:rotate(11deg)}85%{transform:rotate(-9deg)}90%{transform:rotate(6deg)}}

.pwa-native-install{width:100%;justify-content:center;margin:13px 0 5px!important;min-height:48px}
.pwa-native-hint{margin:8px 0 2px;padding:10px 12px;border-radius:12px;background:#f2f7fd;border:1px solid #d5e5f5;color:#516a84;font-size:11.5px;line-height:1.45;text-align:left}
.pwa-native-hint i{margin-right:6px;color:#1473cc}

.btn.excel{background:#e9f7ef;border:1px solid #bfe4cd;color:#13723b}
.btn.excel:hover{background:#d9f0e2}
.btn.pdf{background:#fff0f0;border:1px solid #f0c7c7;color:#b42323}
.btn.pdf:hover{background:#ffe2e2}
.export-actions{align-items:center}

.settlement-security-card{margin:14px 0 18px;border-color:#d8e4f0}
.settlement-security-card>summary{list-style:none;display:flex;align-items:center;gap:12px;cursor:pointer;padding:2px;color:#24415e}
.settlement-security-card>summary::-webkit-details-marker{display:none}
.settlement-security-card>summary>i:first-child{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#eaf3ff;color:#0b66c4}
.settlement-security-card>summary>span{display:grid;gap:2px;flex:1}
.settlement-security-card>summary strong{font:700 14px Poppins,sans-serif}
.settlement-security-card>summary small{color:#73869b;font-size:11px}
.settlement-security-card>summary>i:last-child{color:#7890a7;transition:.18s}
.settlement-security-card[open]>summary>i:last-child{transform:rotate(180deg)}
.settlement-change-form{margin-top:16px;padding-top:16px;border-top:1px solid #e4ebf2}

.team-transfer-card{border:1px solid #cfe0f2;background:linear-gradient(180deg,#fff,#f8fbff)}
.team-transfer-form{margin-top:12px}
.transfer-preview{display:flex;align-items:center;gap:13px;padding:14px;border-radius:14px;border:1px solid #d6e4f2;background:#f4f9ff}
.transfer-preview>i{width:44px;height:44px;min-width:44px;border-radius:13px;background:#0b64bd;color:#fff;display:grid;place-items:center;font-size:18px}
.transfer-preview>div{display:grid;gap:3px}
.transfer-preview strong{font:700 14px Poppins,sans-serif;color:#173d64}
.transfer-preview span{font-size:12px;color:#667b91;line-height:1.45}
.transfer-confirm{display:flex!important;align-items:flex-start!important;gap:10px!important;padding:12px 14px;border:1px solid #ead8a4;border-radius:12px;background:#fff9e9;cursor:pointer}
.transfer-confirm input{width:18px!important;height:18px!important;min-width:18px;margin-top:1px}
.transfer-confirm span{font-size:12px;color:#66551f;line-height:1.45}

/* O filtro do mapa jamais pode ultrapassar o card. */
.map-filter-card,.map-filter-form,.map-filter-form>*{min-width:0;max-width:100%}
.map-filter-form{width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto!important}
.map-filter-form>div{min-width:0;width:100%}
.map-filter-form select,.map-filter-form input{display:block;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box;text-overflow:ellipsis}
.map-filter-form .btn{min-width:0;white-space:nowrap}

/* Proteção adicional para selects em cards/toolbars mobile. */
.card select,.toolbar select,.form select{max-width:100%;min-width:0;box-sizing:border-box}

@media(max-width:900px){
  .map-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .map-filter-form>.btn,.map-filter-form>a.btn{width:100%}
  .top-date{display:none}
}
@media(max-width:560px){
  .map-filter-form{grid-template-columns:minmax(0,1fr)!important}
  .map-filter-form>*{grid-column:1!important;width:100%!important}
  .map-filter-card{overflow:hidden}
  .export-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%;gap:8px}
  .export-actions .btn{width:100%;justify-content:center}
  .export-actions .btn:last-child:nth-child(odd){grid-column:1/-1}
  .team-transfer-form{grid-template-columns:1fr!important}
  .team-transfer-form .span-2,.team-transfer-form .full{grid-column:1!important}
  .top-logout,.top-notification{width:38px;height:38px}
}

/* ============================================================
   SisCamp4.0 V18
   Eleitores compactos + auditoria Zona/Seção + dashboard analítico
   + correção de empilhamento do mapa no menu mobile
   ============================================================ */

/* Leaflet não pode escapar do card e ficar por cima do menu/topbar. */
.electoral-map{isolation:isolate;z-index:0}
@media(max-width:900px){
  .topbar{z-index:1100}
  .sidebar{z-index:1600}
  .open .sidebar-backdrop{z-index:1500!important}
}
.pwa-modal{z-index:2300}

/* Cards-resumo da base de eleitores */
.voter-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.voter-overview-card{min-height:96px;padding:16px 18px;display:flex;align-items:center;gap:13px;position:relative;overflow:hidden}
.voter-overview-card:after{content:"";position:absolute;width:92px;height:92px;border-radius:50%;right:-30px;top:-34px;background:rgba(24,119,229,.055)}
.voter-overview-icon{width:46px;height:46px;min-width:46px;border-radius:14px;background:#eaf3ff;color:#0d68ca;display:grid;place-items:center;font-size:18px}
.voter-overview-card strong{display:block;font:800 25px/1 Poppins,sans-serif;color:#0a3e7c}
.voter-overview-card small{display:block;margin-top:5px;color:#718399;font-size:11px;line-height:1.3}
.voter-overview-card.is-warning{border-color:#efd28a;background:linear-gradient(180deg,#fff,#fffaf0)}
.voter-overview-card.is-warning .voter-overview-icon{background:#fff0c7;color:#a66a00}
.voter-overview-card.is-warning strong{color:#9b6200}
.overview-mini-action{margin-left:auto;position:relative;z-index:2;border:0;border-radius:10px;padding:7px 10px;background:#fff1c8;color:#875700;font-weight:800;font-size:11px;cursor:pointer}
.electoral-data-alert{display:flex;align-items:center;justify-content:space-between;gap:15px}
.electoral-data-alert>div{display:flex;align-items:center;gap:9px;line-height:1.45}

/* Filtros e tabela compacta */
.voters-filter-card{padding:16px;margin-bottom:15px;display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}
.voters-filter-form{display:grid;grid-template-columns:minmax(260px,1.35fr) minmax(210px,.8fr) auto auto;gap:10px;align-items:end;flex:1;min-width:0}
.voters-filter-form>div{min-width:0}
.voters-filter-form label{display:block;font-weight:700;font-size:11px;color:#334967;margin:0 0 6px}
.voters-filter-form input,.voters-filter-form select{width:100%;min-width:0;height:43px;border:1px solid #ccd9e8;border-radius:11px;background:#fff;padding:0 12px;outline:none;color:var(--text)}
.voters-filter-form input:focus,.voters-filter-form select:focus{border-color:#6aa9ff;box-shadow:0 0 0 4px rgba(21,101,216,.10)}
.voters-page-actions{margin-left:auto}
.voters-table-wrap{overflow:auto!important;background:#fff!important;border:1px solid var(--line)!important;box-shadow:var(--shadow)!important;padding:0!important;border-radius:18px!important;-webkit-overflow-scrolling:touch}
.table.voters-compact-table{min-width:760px!important;width:100%!important;display:table!important}
.table.voters-compact-table thead{display:table-header-group!important}
.table.voters-compact-table tbody{display:table-row-group!important}
.table.voters-compact-table tr{display:table-row!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
.table.voters-compact-table th,.table.voters-compact-table td{display:table-cell!important;padding:12px 14px!important;border-bottom:1px solid #edf1f6!important;vertical-align:middle!important;font-size:12px!important}
.table.voters-compact-table td:before{display:none!important;content:none!important}
.table.voters-compact-table th:nth-child(1){width:26%}.table.voters-compact-table th:nth-child(2){width:20%}.table.voters-compact-table th:nth-child(3){width:19%}.table.voters-compact-table th:nth-child(4){width:10%}.table.voters-compact-table th:nth-child(5){width:10%}.table.voters-compact-table th:nth-child(6){width:15%}
.voter-phone-link{display:inline-flex;align-items:center;gap:7px;color:#173d64;font-weight:600;white-space:nowrap}
.voter-phone-link i{width:28px;height:28px;border-radius:50%;background:#e7f8ee;color:#119447;display:grid;place-items:center;font-size:14px;transition:.15s}
.voter-phone-link:hover i{background:#15a651;color:#fff;transform:scale(1.05)}
.voter-icon-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.icon-action{width:34px;height:34px;border:1px solid transparent;border-radius:10px;display:inline-grid;place-items:center;cursor:pointer;font-size:13px;transition:.15s;padding:0}
.icon-action:hover{transform:translateY(-1px)}
.icon-action.edit{background:#e8f2ff;border-color:#cfe1f7;color:#0964c7}
.icon-action.view{background:#eff5fb;border-color:#dce6f0;color:#365b80}
.icon-action.delete{background:#fff0f0;border-color:#f2d2d2;color:#ba2d2d}
.voters-limit-note{font-size:11px;margin:9px 2px 0}

/* Modais internos */
body.siscamp-modal-open{overflow:hidden}
.siscamp-modal[hidden]{display:none!important}
.siscamp-modal{position:fixed;inset:0;z-index:2200;display:grid;place-items:center;padding:18px}
.siscamp-modal-backdrop{position:absolute;inset:0;background:rgba(4,20,46,.64);backdrop-filter:blur(3px)}
.siscamp-modal-card{position:relative;width:min(100%,760px);max-height:calc(100dvh - 36px);overflow:auto;background:#fff;border:1px solid #dbe7f3;border-radius:24px;box-shadow:0 30px 90px rgba(3,31,70,.30);padding:24px}
.siscamp-modal-close{position:absolute;right:14px;top:14px;width:38px;height:38px;border:0;border-radius:11px;background:#eef4fa;color:#52677f;display:grid;place-items:center;cursor:pointer;z-index:2}
.modal-heading{display:flex;align-items:center;gap:12px;padding-right:48px;margin-bottom:18px}
.modal-heading-icon{width:48px;height:48px;min-width:48px;border-radius:14px;background:#eaf3ff;color:#0d67c9;display:grid;place-items:center;font-size:18px}
.modal-heading small{display:block;font:800 9px Poppins,sans-serif;letter-spacing:.13em;color:#1675d2;margin-bottom:2px}
.modal-heading h2{font:800 20px/1.2 Poppins,sans-serif;color:#0d315d;margin:0}
.modal-heading p{margin:4px 0 0;color:#718398;font-size:11.5px}
.modal-heading.warning .modal-heading-icon{background:#fff2cf;color:#a66a00}.modal-heading.warning small{color:#9a6600}
.modal-heading.danger .modal-heading-icon{background:#ffeded;color:#b42424}.modal-heading.danger small{color:#b42424}
.modal-loading{padding:30px;text-align:center;color:#657a91}.modal-loading i{margin-right:7px;color:#1775d5}
.voter-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.voter-detail-grid>div{border:1px solid #e0e8f1;background:#f8fbff;border-radius:13px;padding:11px 13px;min-width:0}
.voter-detail-grid .detail-wide{grid-column:1/-1}
.voter-detail-grid small{display:block;color:#7a8ba0;font-size:9.5px;text-transform:uppercase;font-weight:700;letter-spacing:.035em;margin-bottom:4px}
.voter-detail-grid strong{display:block;color:#1b3d62;font-size:12.5px;overflow-wrap:anywhere}
.modal-footer-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:16px}
.compact-modal-card{width:min(100%,540px)}
.modal-copy{color:#5c7087;line-height:1.55;font-size:13px}
.delete-voter-form label{display:block;font-size:11px;font-weight:800;color:#304764;margin:14px 0 7px}.required{color:#c52d2d}
.delete-voter-form textarea{width:100%;min-height:100px;resize:vertical;border:1px solid #ccd9e8;border-radius:12px;padding:11px 12px;outline:none}.delete-voter-form textarea:focus{border-color:#6aa9ff;box-shadow:0 0 0 4px rgba(21,101,216,.10)}

/* Modal de Zona/Seção inválida */
.invalid-electoral-modal-card{width:min(100%,1020px)}
.invalid-modal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-radius:13px;background:#f5f9fd;border:1px solid #dbe7f2;margin-bottom:13px;color:#61768d;font-size:11.5px}
.invalid-groups-scroll{display:grid;gap:12px;max-height:58vh;overflow:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:#8dbbe9 transparent}
.invalid-leader-group{border:1px solid #dbe6f1;border-radius:15px;overflow:hidden;background:#fff}
.invalid-leader-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;background:#f2f7fd;border-bottom:1px solid #dbe6f1}
.invalid-leader-group>header>div{display:flex;align-items:center;gap:8px;color:#164c83}.invalid-leader-group>header span{font-size:10px;color:#72869b;background:#fff;border:1px solid #dbe6ef;border-radius:999px;padding:4px 8px}
.invalid-list{display:grid}
.invalid-person-row{display:grid;grid-template-columns:minmax(180px,1.4fr) 65px 75px minmax(180px,1fr) 36px;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #edf2f7;min-width:0}
.invalid-person-row:last-child{border-bottom:0}.invalid-person-row small{display:block;font-size:9px;color:#8190a2;margin-bottom:2px}.invalid-person-row strong{font-size:11.5px;color:#244360;overflow-wrap:anywhere}.invalid-person-main small{margin-top:3px}.invalid-reason strong{color:#9b6200}

/* Dashboard: municípios e evolução */
.dashboard-analytics-grid{display:grid;grid-template-columns:minmax(340px,.78fr) minmax(0,1.35fr);gap:18px;margin-bottom:20px}
.dashboard-section-title{align-items:flex-start}.dashboard-section-title .muted{display:block;margin-top:3px;font-size:11px}.municipality-ranking-card,.registrations-chart-card{min-width:0}
.dashboard-city-list{display:grid;gap:7px}
.dashboard-city-item{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 9px;border:1px solid #e1e9f2;border-radius:12px;transition:.15s}
.dashboard-city-item:hover{background:#f7fbff;border-color:#c8ddef;transform:translateX(2px)}
.city-rank-number{width:30px;height:30px;border-radius:9px;background:#eaf3ff;color:#0b66c5;display:grid;place-items:center;font:800 11px Poppins,sans-serif}
.dashboard-city-item:nth-child(1) .city-rank-number{background:#0759ad;color:#fff}.dashboard-city-item:nth-child(2) .city-rank-number{background:#247ecf;color:#fff}.dashboard-city-item:nth-child(3) .city-rank-number{background:#63a4de;color:#fff}
.city-rank-copy{min-width:0}.city-rank-copy strong{display:block;font-size:11.5px;color:#163d67;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.city-rank-copy span{display:block;font-size:9.5px;color:#7b8ca0;margin:2px 0 5px}.city-rank-copy i{display:block;width:var(--w);height:4px;border-radius:999px;background:linear-gradient(90deg,#79b8f3,#0b62ba);max-width:100%}.dashboard-city-item>b{font:800 13px Poppins,sans-serif;color:#0b5eb7}
.dashboard-map-link{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:11px;padding:9px;border-radius:10px;background:#edf5fe;color:#0c62bd;font-size:11px;font-weight:800}
.chart-period-total{text-align:right}.chart-period-total strong{display:block;font:800 20px/1 Poppins,sans-serif;color:#0a4fa1}.chart-period-total span{display:block;margin-top:3px;color:#8492a3;font-size:9px}
.registration-chart-wrap{width:100%;height:290px;min-height:250px;overflow:hidden}.registration-chart{width:100%;height:100%;display:block;overflow:visible}.chart-grid-line{stroke:#e4ebf3;stroke-width:1;vector-effect:non-scaling-stroke}.chart-axis-label{fill:#7b8ba0;font:9px Ubuntu,sans-serif}.chart-line{fill:none;stroke:#1677e8;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chart-dot{fill:#fff;stroke:#0d69ca;stroke-width:2.5;vector-effect:non-scaling-stroke}.chart-caption{display:flex;justify-content:space-between;gap:12px;color:#6d8095;font-size:10px;padding-top:7px;border-top:1px solid #edf1f5}.chart-caption span{display:flex;align-items:center;gap:6px}.chart-caption i{font-size:7px;color:#1677e8}.chart-caption strong{color:#3e5873}
.municipalities-modal-card{width:min(100%,680px)}
.all-municipalities-list{display:grid;gap:6px;max-height:62vh;overflow:auto;padding-right:4px}
.all-municipalities-list a{display:grid;grid-template-columns:30px minmax(0,1fr) 60px 52px;gap:9px;align-items:center;border:1px solid #e1e9f2;border-radius:11px;padding:8px 10px}
.all-municipalities-list a:hover{background:#f7fbff}.all-municipalities-list span{width:27px;height:27px;border-radius:8px;background:#edf4fb;color:#0b61b9;display:grid;place-items:center;font-size:10px;font-weight:800}.all-municipalities-list strong{font-size:11.5px;color:#173f68;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.all-municipalities-list small{text-align:right;color:#718399;font-size:10px}.all-municipalities-list b{text-align:right;color:#0b5fb8;font-size:12px}

@media(max-width:1100px){
  .voter-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .voters-filter-card{align-items:stretch}.voters-filter-form{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.voters-filter-form .btn{width:100%}.voters-page-actions{width:100%}
  .dashboard-analytics-grid{grid-template-columns:1fr}.registration-chart-wrap{height:270px}
}
@media(max-width:700px){
  .voter-overview-grid{grid-template-columns:1fr 1fr;gap:9px}.voter-overview-card{padding:12px;min-height:84px}.voter-overview-icon{width:39px;height:39px;min-width:39px;border-radius:12px;font-size:15px}.voter-overview-card strong{font-size:20px}.voter-overview-card small{font-size:9.5px}.overview-mini-action{padding:6px 8px;font-size:10px}
  .electoral-data-alert{align-items:flex-start;flex-direction:column}.electoral-data-alert .btn{width:100%}
  .voters-filter-card{padding:12px}.voters-filter-form{grid-template-columns:1fr}.voters-filter-form>*{min-width:0}.voters-page-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.voters-page-actions .btn{width:100%!important}.voters-page-actions .btn:last-child{grid-column:1/-1}
  /* Esta tabela continua sendo tabela no celular, conforme solicitado. */
  .voters-table-wrap{overflow-x:auto!important;border-radius:14px!important}.table.voters-compact-table{min-width:700px!important}.table.voters-compact-table th,.table.voters-compact-table td{padding:10px 11px!important;font-size:11px!important}.table.voters-compact-table th{font-size:9.5px!important}.voter-phone-link i{width:25px;height:25px;font-size:12px}.icon-action{width:31px;height:31px;border-radius:9px;font-size:11px}
  .table.voters-compact-table th:first-child,.table.voters-compact-table td:first-child{position:sticky;left:0;z-index:2;background:#fff;box-shadow:7px 0 12px rgba(15,54,99,.04)}.table.voters-compact-table th:first-child{z-index:3;background:#f8fbff}
  .siscamp-modal{padding:9px}.siscamp-modal-card{padding:18px 14px;border-radius:19px;max-height:calc(100dvh - 18px)}.siscamp-modal-close{right:9px;top:9px}.modal-heading{padding-right:38px}.modal-heading-icon{width:42px;height:42px;min-width:42px}.modal-heading h2{font-size:17px}.voter-detail-grid{grid-template-columns:1fr}.voter-detail-grid .detail-wide{grid-column:1}.modal-footer-actions{display:grid;grid-template-columns:1fr 1fr}.modal-footer-actions .btn{width:100%}
  .invalid-modal-toolbar{align-items:stretch;flex-direction:column}.invalid-modal-toolbar .btn{width:100%}.invalid-groups-scroll{max-height:61vh}.invalid-person-row{grid-template-columns:minmax(150px,1fr) 54px 64px 34px;gap:7px}.invalid-reason{grid-column:1/-1}.invalid-person-row strong{font-size:10.5px}
  .dashboard-analytics-grid{gap:12px}.municipality-ranking-card,.registrations-chart-card{padding:14px}.registration-chart-wrap{height:235px;min-height:210px}.dashboard-city-item{padding:7px}.dashboard-section-title{gap:8px}.dashboard-section-title .btn{width:auto!important}.chart-period-total strong{font-size:17px}.all-municipalities-list a{grid-template-columns:27px minmax(0,1fr) 44px}.all-municipalities-list small{display:none}
}
@media(max-width:430px){
  .voter-overview-grid{grid-template-columns:1fr}.voter-overview-card{min-height:76px}.voters-page-actions{grid-template-columns:1fr 1fr!important}.registration-chart-wrap{height:210px}.dashboard-city-item{grid-template-columns:29px minmax(0,1fr) auto}.city-rank-number{width:28px;height:28px}.modal-footer-actions{grid-template-columns:1fr}
}

/* ============================================================
   SisCamp 4.0 - Patch V19
   Ajustes responsivos, gestão de equipe e identidade Azul/Branco
   ============================================================ */

/* Admin > Eleitores: filtros e exportações nunca se sobrepõem em 100% */
.voters-filter-card{display:grid!important;grid-template-columns:minmax(0,1fr);align-items:stretch!important;gap:12px!important}
.voters-filter-form{display:grid!important;grid-template-columns:minmax(260px,1.5fr) minmax(210px,.9fr) auto auto!important;gap:10px!important;width:100%!important;min-width:0!important}
.voters-page-actions{width:100%;margin:0!important;padding-top:12px;border-top:1px solid var(--line);display:flex!important;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}
.voters-page-actions .btn{flex:0 0 auto;white-space:nowrap}

/* Forms de link/convite: botão alinhado com os inputs no desktop */
.link-form,.invite-form{align-items:end}
.link-form .form-actions,.invite-form .form-actions{align-self:end;padding-top:0;min-height:46px;display:flex;align-items:flex-end}
.link-form .form-actions .btn,.invite-form .form-actions .btn{height:46px;white-space:nowrap}
.generated-link-card{border-color:#d4e2f2!important;background:linear-gradient(135deg,#fff,#f7fbff)!important}
.copy-row input{border-color:#ccd9e8!important}

/* Cards de líderes */
.leaders-grid{gap:16px}
.leader-card-pro{padding:18px;gap:14px;border:1px solid #dce6f2;box-shadow:0 10px 28px rgba(15,48,98,.07);position:relative;overflow:hidden}
.leader-card-pro:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--blue-700),var(--blue-900))}
.leader-card-head{padding-top:3px}
.leader-avatar{width:50px;height:50px;border-radius:15px;background:#eaf3ff!important;color:var(--blue-700)!important;font-size:18px}
.leader-identity{min-width:0}.leader-identity h3{font-size:17px!important}.leader-identity small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:310px}
.leader-location-line{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:13px;background:#f8fbff;border:1px solid #dce6f2;color:var(--blue-900)}
.leader-location-line>i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eaf3ff;color:var(--blue-700)}
.leader-location-line small{display:block;font-size:10px;color:var(--muted);margin-bottom:2px}.leader-location-line strong{display:block;font-size:12.5px}
.leader-stats{display:grid!important;grid-template-columns:1fr 1fr;gap:9px!important}
.leader-stats span{position:relative;padding-left:38px!important;min-width:0!important;background:#fbfdff!important}
.leader-stats span>i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--blue-900);font-size:15px}
.leader-region-form{display:grid;gap:7px;padding-top:2px}
.leader-region-form label{font-weight:700;font-size:11px;color:#334967}
.leader-region-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.leader-region-control select{width:100%;height:42px;border:1px solid #ccd9e8;border-radius:11px;background:#fff;padding:0 11px;color:var(--text);outline:none}
.leader-region-control select:focus{border-color:var(--blue-700);box-shadow:0 0 0 4px rgba(21,101,216,.10)}
.leader-region-control .btn{height:42px}
.leader-card-actions{padding-top:11px;border-top:1px solid #edf1f6}
.leader-card-actions form{display:inline-flex}

/* Movimentação de eleitor entre sublíderes */
.responsible-cell{display:grid;gap:7px;min-width:190px}
.move-voter-form{display:grid;grid-template-columns:minmax(130px,1fr) auto;gap:6px;align-items:center}
.move-voter-form select{height:34px;min-width:0;border:1px solid #ccd9e8;border-radius:9px;background:#fff;padding:0 8px;font-size:11px;color:var(--text)}
.move-voter-form select:focus{outline:none;border-color:var(--blue-700);box-shadow:0 0 0 3px rgba(21,101,216,.08)}

/* Notificações de movimentação */
.notification-icon.is-neutral{background:#eaf3ff!important;color:var(--blue-900)!important}
.notification-unread{border-color:#bfdbfe;box-shadow:0 10px 28px rgba(10,61,145,.10)}
.notification-unread:before{content:"";width:4px;align-self:stretch;border-radius:999px;background:var(--blue-700)}

/* Resumo de cidades */
.region-create-card{padding:18px}
.region-create-form{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;align-items:end}
.region-create-form .form-actions{padding:0;align-self:end}
.city-summary-table{min-width:720px}
.city-count-pill{display:inline-flex;align-items:center;gap:7px;min-width:72px;padding:7px 10px;border-radius:10px;background:#eef6ff;color:var(--blue-900);font-weight:800}
.city-count-pill i{color:var(--blue-900)}
.city-count-pill.strong{background:#eaf3ff;color:#0c57bd}.city-count-pill.strong i{color:var(--blue-700)}
.city-map-action{white-space:nowrap}

/* Card separado da senha de acesso */
.settlement-profile-card{border-top:4px solid var(--blue-900)}
.settlement-profile-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end}
.settlement-profile-form .form-actions{padding:0;align-self:end}
.settlement-profile-form .btn{height:46px}

/* Ajustes de cores: manter a identidade visual azul e branca do SisCamp */
.top-notification.has-notification{background:#eaf3ff!important;border-color:#bfdbfe!important;color:var(--blue-700)!important;box-shadow:0 6px 18px rgba(21,101,216,.10)!important}
.voter-overview-icon{background:#eaf3ff!important;color:var(--blue-700)!important}
.voter-overview-card strong{color:var(--blue-900)!important}
.dashboard-map-link{background:#eef6ff!important;color:var(--blue-900)!important}

@media(max-width:1100px){
  .voters-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .voters-page-actions{justify-content:flex-start}
  .settlement-profile-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settlement-profile-form .form-actions{grid-column:1/-1}
}

@media(max-width:700px){
  /* Botões compactos por ícone, lado a lado, no mobile */
  .btn-label{display:none!important}
  .mobile-icon-btn,.compact-icon-actions .btn,.leader-card-actions .btn,.mobile-icon-row .btn{width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important;padding:0!important;border-radius:11px!important;display:inline-grid!important;place-items:center!important;flex:0 0 42px!important}
  .mobile-icon-btn i,.compact-icon-actions .btn i,.leader-card-actions .btn i,.mobile-icon-row .btn i{margin:0!important;font-size:15px}
  .voters-filter-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .voters-filter-form .voters-search-field,.voters-filter-form .voters-city-field{grid-column:1/-1}
  .voters-filter-form .mobile-icon-btn{width:100%!important;min-width:0!important;display:inline-grid!important}
  .voters-page-actions{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;width:100%!important;justify-content:flex-start!important;padding-bottom:2px;scrollbar-width:none}
  .voters-page-actions::-webkit-scrollbar{display:none}
  .voters-page-actions .btn:last-child{grid-column:auto!important}

  .toolbar>.row-actions.mobile-icon-row{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;width:auto!important;align-self:flex-start}
  .toolbar>.row-actions.mobile-icon-row .btn{width:42px!important}
  .compact-icon-actions{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;width:auto!important}
  .compact-icon-actions form{display:inline-flex!important}

  .leader-card-actions{display:flex!important;flex-wrap:wrap!important}
  .leader-card-actions form{width:auto!important}
  .leader-card-actions .btn{width:42px!important}
  .leader-region-control{grid-template-columns:minmax(0,1fr) 42px}
  .leader-region-control .btn{width:42px!important;min-width:42px!important;padding:0!important}
  .leaders-toolbar>a.btn{width:42px!important;align-self:flex-start}
  .leader-stats{grid-template-columns:1fr 1fr!important}

  .link-form,.invite-form{grid-template-columns:1fr!important}
  .link-form .span-2,.invite-form .span-2{grid-column:1!important}
  .link-form .form-actions,.invite-form .form-actions{justify-content:flex-start!important;min-height:42px}
  .link-form .form-actions .btn,.invite-form .form-actions .btn{width:42px!important;min-width:42px!important;height:42px!important;padding:0!important}

  .region-create-form{grid-template-columns:1fr!important}
  .region-create-form .form-actions{justify-content:flex-start!important}
  .region-create-form .form-actions .btn{width:42px!important;min-width:42px!important;padding:0!important}
  .city-summary-table{min-width:0!important}
  .city-map-action{width:42px!important;min-width:42px!important;padding:0!important}

  .settlement-profile-form{grid-template-columns:1fr!important}
  .settlement-profile-form .form-actions{grid-column:1!important;justify-content:flex-start!important}
  .settlement-profile-form .btn{width:42px!important;min-width:42px!important;padding:0!important}

  .move-voter-form{grid-template-columns:minmax(120px,1fr) 38px}
  .move-voter-form .btn{width:38px!important;min-width:38px!important;padding:0!important}
}

/* V19.1 - alinhamento fino dos geradores no desktop */
@media(min-width:1101px){
  .link-form{grid-template-columns:minmax(190px,1fr) minmax(190px,1fr) minmax(260px,1.25fr) auto!important;align-items:end!important}
  .link-form .span-2{grid-column:auto!important}
  .link-form .form-actions{grid-column:auto!important;justify-content:flex-start!important;align-self:end!important}
  .link-form .form-actions .btn{min-width:190px}
  .invite-form .form-actions .btn{box-shadow:0 8px 20px rgba(21,101,216,.16)}
}

/* Buscar/Limpar ocupam suas colunas no desktop e viram dois ícones juntos no mobile */
.voters-filter-button-pair{display:contents}
@media(max-width:700px){
  .voters-filter-button-pair{display:flex!important;grid-column:1/-1;gap:8px;align-items:center;justify-content:flex-start}
  .voters-filter-button-pair .mobile-icon-btn{width:42px!important;min-width:42px!important;height:42px!important;padding:0!important}
}

/* ============================================================
   SisCamp 4.0 V20 — QR fixo + cadastro offline
   Identidade original: azul e branco
   ============================================================ */
.hero-pill-link{position:relative;z-index:2;color:#fff;transition:.2s}.hero-pill-link:hover{background:rgba(255,255,255,.22);transform:translateY(-1px)}
.fixed-qr-card{display:flex;align-items:center;justify-content:space-between;gap:22px;border-color:#cfe0f4;background:linear-gradient(135deg,#fff,#f6faff)}
.fixed-qr-copy{display:flex;align-items:center;gap:17px;min-width:0}.fixed-qr-icon{width:62px;height:62px;min-width:62px;border-radius:18px;background:#e7f1ff;color:var(--blue-700);display:grid;place-items:center;font-size:27px;box-shadow:inset 0 0 0 1px #d5e5f8}.fixed-qr-copy h2{margin:0 0 6px;font:700 19px Poppins,sans-serif;color:var(--blue-950)}.fixed-qr-copy p{margin:0;color:var(--muted);line-height:1.5}.fixed-qr-copy small{display:block;margin-top:8px;color:#4d6685}.fixed-qr-actions{display:flex;align-items:center;gap:9px;flex-shrink:0}.fixed-qr-actions form{margin:0}
.generated-link-card>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.copy-row{display:flex;gap:9px;align-items:center}.copy-row input{flex:1;min-width:0;height:43px;border:1px solid #ccd9e8;border-radius:11px;padding:0 12px;background:#f8fbff;color:#334967}

.qr-screen{max-width:720px;margin:0 auto}.qr-shell{padding:30px}.qr-heading{display:flex;align-items:flex-start;gap:16px;margin-bottom:22px}.qr-brand-icon{width:60px;height:60px;min-width:60px;border-radius:18px;background:#e7f1ff;color:var(--blue-700);display:grid;place-items:center;font-size:26px}.qr-kicker{display:block;font:700 10px Poppins,sans-serif;letter-spacing:.14em;color:var(--blue-700);margin-bottom:4px}.qr-heading h1{margin:0 0 6px;font:800 25px Poppins,sans-serif;color:var(--blue-950)}.qr-heading p{margin:0;color:var(--muted);line-height:1.55}.qr-display-wrap{width:min(100%,360px);aspect-ratio:1;margin:0 auto 18px;padding:24px;border-radius:26px;background:#fff;border:1px solid #d9e7f6;box-shadow:0 18px 45px rgba(6,37,95,.11);display:grid;place-items:center;position:relative}.qr-display{display:grid;place-items:center}.qr-display canvas{display:block!important;max-width:100%;height:auto!important}.qr-display img{max-width:100%;height:auto!important}.qr-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:13px}.qr-loading[hidden]{display:none}.qr-stats{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:20px}.qr-stats span{display:inline-flex;align-items:center;gap:6px;background:#edf5ff;color:#34577f;border:1px solid #d7e6f7;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:700}.qr-link-box{border-top:1px solid var(--line);padding-top:18px}.qr-link-box label{display:block;font-weight:700;font-size:12px;color:#334967;margin-bottom:7px}.qr-help{display:flex;gap:12px;align-items:flex-start;margin-top:17px;background:#eff6ff;border:1px solid #cfe1fb;border-radius:15px;padding:14px;color:#244b78}.qr-help>i{width:36px;height:36px;min-width:36px;border-radius:11px;background:#dcecff;color:var(--blue-700);display:grid;place-items:center}.qr-help strong,.qr-help span{display:block}.qr-help strong{font:700 13px Poppins,sans-serif;margin-bottom:3px}.qr-help span{font-size:12px;line-height:1.45}.qr-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px}.qr-fallback{margin-top:15px;margin-bottom:0}

.offline-hero .hero-meta{position:relative;z-index:2}.offline-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.offline-status-card{display:flex;align-items:center;gap:13px;min-height:108px;padding:17px}.offline-status-icon{width:50px;height:50px;min-width:50px;border-radius:15px;background:#e7f1ff;color:var(--blue-700);display:grid;place-items:center;font-size:19px}.offline-status-icon.is-offline{background:#edf2f8;color:#6b7a90}.offline-status-card small,.offline-status-card strong,.offline-status-card span{display:block}.offline-status-card small{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#71839a;font-weight:700}.offline-status-card strong{font:700 16px Poppins,sans-serif;color:var(--blue-950);margin:3px 0}.offline-status-card div>span{font-size:11px;color:var(--muted)}.offline-layout{align-items:start}.offline-queue-card{min-width:0}.offline-form-note{display:flex;align-items:flex-start;gap:9px;padding:11px 13px;border-radius:12px;background:#eff6ff;border:1px solid #d3e5fb;color:#31577f;font-size:12px;line-height:1.45}.offline-form-note i{margin-top:2px;color:var(--blue-700)}.offline-form-actions{gap:9px}.offline-queue-list{display:grid;gap:10px}.offline-queue-item{border:1px solid #dce6f2;border-radius:15px;padding:14px;display:flex;gap:14px;justify-content:space-between;background:#fbfdff}.offline-queue-item.has-error{border-color:#fecaca;background:#fffafa}.offline-queue-main{min-width:0;flex:1}.offline-queue-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.offline-queue-name strong{font:700 14px Poppins,sans-serif;color:var(--blue-950)}.offline-queue-meta{display:flex;gap:9px 13px;flex-wrap:wrap;margin:8px 0;color:#526984;font-size:11px}.offline-queue-meta span{display:inline-flex;align-items:center;gap:5px}.offline-queue-main>small{color:#8492a5;font-size:10px}.offline-item-error{margin-top:9px;padding:8px 10px;border-radius:9px;background:#fff1f2;color:#9f1239;font-size:11px;line-height:1.4}.offline-item-actions{display:flex;gap:7px;align-items:flex-start}.offline-queue-message{min-height:0;margin-bottom:10px;font-size:12px;border-radius:11px}.offline-queue-message:not(:empty){padding:10px 12px}.offline-queue-message.ok{background:#ecfdf5;color:#067647;border:1px solid #a7f3d0}.offline-queue-message.err{background:#fff1f2;color:#a51d2d;border:1px solid #fecdd3}.offline-queue-message.info{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.offline-empty{padding:34px 15px;text-align:center;border:1px dashed #cddbea;border-radius:15px;color:#667a94}.offline-empty i,.offline-empty strong,.offline-empty span{display:block}.offline-empty i{font-size:28px;color:var(--blue-700);margin-bottom:9px}.offline-empty strong{font:700 14px Poppins,sans-serif;color:var(--blue-950)}.offline-empty span{font-size:11px;margin-top:4px}.offline-install-hint{margin-top:18px}.btn.is-loading{opacity:.7;pointer-events:none}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}

@media(max-width:900px){.offline-status-grid{grid-template-columns:1fr 1fr}.fixed-qr-card{align-items:stretch;flex-direction:column}.fixed-qr-actions .btn,.fixed-qr-actions form{width:100%}.qr-shell{padding:24px}}
@media(max-width:620px){.offline-status-grid{grid-template-columns:1fr}.offline-status-card{min-height:92px}.fixed-qr-copy{align-items:flex-start}.fixed-qr-icon{width:52px;height:52px;min-width:52px;border-radius:15px;font-size:22px}.fixed-qr-copy h2{font-size:16px}.fixed-qr-copy p{font-size:12px}.fixed-qr-actions{display:grid;grid-template-columns:1fr}.fixed-qr-actions .btn{width:100%}.qr-shell{padding:18px}.qr-heading{align-items:center}.qr-brand-icon{width:50px;height:50px;min-width:50px}.qr-heading h1{font-size:20px}.qr-display-wrap{padding:18px;border-radius:20px}.qr-actions,.copy-row{display:grid;grid-template-columns:1fr}.qr-actions .btn,.copy-row .btn{width:100%}.offline-queue-item{display:block}.offline-item-actions{margin-top:12px;justify-content:flex-end}.offline-item-actions .btn{width:42px;padding:0}.offline-item-actions .btn-label{display:none}.offline-queue-card .section-title{align-items:flex-start}.offline-queue-card .section-title .btn{width:42px;padding:0}.offline-queue-card .section-title .btn-label{display:none}.offline-form-actions{display:grid;grid-template-columns:44px 1fr}.offline-form-actions .btn{width:100%}.offline-form-actions .btn:first-child{padding:0}.offline-form-actions .btn:first-child .btn-label{display:none}}

@media print{.sidebar,.topbar,.qr-actions,.qr-link-box,.qr-help,.qr-stats,.pwa-modal,.sidebar-backdrop{display:none!important}.main{margin-left:0!important}.content{padding:0!important}.qr-screen{max-width:none}.qr-shell{border:0;box-shadow:none}.qr-heading{justify-content:center}.qr-heading p{max-width:520px}.qr-display-wrap{box-shadow:none}}


/* ============================================================
   V20.1 - USABILIDADE PARA LÍDER / SUBLÍDER
   ============================================================ */
.qr-display{width:300px;max-width:100%;aspect-ratio:1;overflow:hidden}
.qr-display canvas,.qr-display img{width:100%!important;max-width:300px!important;aspect-ratio:1!important;object-fit:contain}
.qr-user-guide{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 auto 18px;color:#274c78}
.qr-user-guide>div{display:flex;align-items:center;gap:8px;background:#f5f9ff;border:1px solid #dce9f8;border-radius:13px;padding:9px 11px;min-width:150px}
.qr-user-guide b{width:27px;height:27px;min-width:27px;border-radius:50%;background:var(--blue-700);color:#fff;display:grid;place-items:center;font:700 12px Poppins,sans-serif}
.qr-user-guide strong,.qr-user-guide small{display:block}.qr-user-guide strong{font:700 11px Poppins,sans-serif}.qr-user-guide small{font-size:9.5px;color:#6f8299;margin-top:1px}.qr-user-guide>i{font-size:10px;color:#9eb2c9}

.voter-method-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px;border:2px solid #d7e7fa;background:linear-gradient(135deg,#fff,#f5f9ff)}
.voter-method-copy{display:flex;align-items:center;gap:15px;min-width:0}.voter-method-icon{width:58px;height:58px;min-width:58px;border-radius:17px;background:#e7f1ff;color:var(--blue-700);display:grid;place-items:center;font-size:23px}.voter-method-copy small{font:700 9px Poppins,sans-serif;letter-spacing:.1em;color:var(--blue-700)}.voter-method-copy h2{font:700 18px Poppins,sans-serif;margin:3px 0 4px;color:var(--blue-950)}.voter-method-copy p{margin:0;color:var(--muted);font-size:12px;line-height:1.45;max-width:620px}.voter-method-actions{display:flex;gap:9px;flex-shrink:0}.voter-method-actions .btn{white-space:nowrap}
.inline-qr-modal-card{max-width:520px;text-align:center}.inline-qr-heading{display:flex;text-align:left;align-items:flex-start;gap:12px;margin-bottom:15px}.inline-qr-heading>span{width:52px;height:52px;min-width:52px;border-radius:15px;background:#e7f1ff;color:var(--blue-700);display:grid;place-items:center;font-size:22px}.inline-qr-heading small{font:700 9px Poppins,sans-serif;letter-spacing:.11em;color:var(--blue-700)}.inline-qr-heading h2{font:800 21px Poppins,sans-serif;margin:2px 0 4px;color:var(--blue-950)}.inline-qr-heading p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.inline-qr-code{width:280px;height:280px;max-width:100%;margin:10px auto 14px;padding:12px;background:#fff;border:1px solid #d8e6f5;border-radius:20px;display:grid;place-items:center;overflow:hidden}.inline-qr-code canvas{display:block!important;width:100%!important;height:auto!important;aspect-ratio:1!important}.inline-qr-code img{max-width:100%;height:auto!important}.inline-qr-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 0 16px}.inline-qr-steps span{background:#f3f8ff;border:1px solid #dce9f7;border-radius:11px;padding:8px 6px;color:#395a7e;font-size:10px;font-weight:700}.inline-qr-steps b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--blue-700);color:#fff;margin-right:3px}.inline-qr-actions{display:flex;gap:8px;justify-content:space-between}.inline-qr-actions .btn{flex:1}

.offline-status-card{align-items:flex-start}.offline-status-card>div{min-width:0;padding-top:2px}.offline-status-icon{display:grid!important;place-items:center!important;line-height:1!important}.offline-status-icon i{margin:0!important;width:auto!important;line-height:1!important}.offline-layout .section-title{align-items:flex-start}.offline-layout .section-title>.badge{min-height:32px;display:inline-flex;align-items:center}.offline-layout .address-title i,.offline-form-note i{width:18px;min-width:18px;text-align:center}
.voter-name-text{font-family:Poppins,sans-serif;font-weight:700;color:var(--blue-950)}

@media(max-width:900px){.voter-method-card{align-items:stretch;flex-direction:column}.voter-method-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.voter-method-actions .btn{width:100%}}
@media(max-width:620px){
  .qr-screen{padding:0}.qr-shell{padding:16px}.qr-display-wrap{width:min(100%,330px);padding:15px}.qr-display{width:280px}.qr-user-guide{display:grid;grid-template-columns:1fr;gap:6px}.qr-user-guide>div{width:100%;min-width:0}.qr-user-guide>i{display:none}.qr-heading{align-items:flex-start}.qr-heading p{font-size:12px}
  .voter-method-card{padding:15px}.voter-method-copy{align-items:flex-start}.voter-method-icon{width:48px;height:48px;min-width:48px;font-size:19px}.voter-method-copy h2{font-size:16px}.voter-method-actions{grid-template-columns:1fr}.voter-method-actions .btn{min-height:50px;font-size:13px}
  .inline-qr-modal-card{padding:17px}.inline-qr-code{width:260px;height:260px}.inline-qr-steps{grid-template-columns:1fr}.inline-qr-actions{display:grid;grid-template-columns:1fr}.inline-qr-actions .btn{width:100%}
  .voter-name-text{font-size:15px!important;line-height:1.35!important;letter-spacing:0!important}
  .offline-status-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px}.offline-status-icon{width:48px;height:48px;min-width:48px}.offline-status-card strong{font-size:15px}.offline-status-card div>span{font-size:12px;line-height:1.35}.offline-layout .section-title{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.offline-layout .section-title h2{font-size:16px}.offline-form-note{font-size:12px}
}
@media print{
  body.qr-print-mode *{visibility:hidden!important}
  body.qr-print-mode #inlineVoterQrModal,body.qr-print-mode #inlineVoterQrModal *{visibility:visible!important}
  body.qr-print-mode #inlineVoterQrModal{display:block!important;position:absolute!important;inset:0!important;background:#fff!important}
  body.qr-print-mode #inlineVoterQrModal .siscamp-modal-backdrop,body.qr-print-mode #inlineVoterQrModal .siscamp-modal-close,body.qr-print-mode #inlineVoterQrModal .inline-qr-actions{display:none!important}
  body.qr-print-mode #inlineVoterQrModal .inline-qr-modal-card{position:static!important;transform:none!important;box-shadow:none!important;border:0!important;margin:0 auto!important;max-width:520px!important}
}

/* ============================================================
   V20.2 - Cadastro offline igual ao online + alerta simplificado
   ============================================================ */
.offline-simple-sync{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:16px 18px;border-color:#cfe0f4;background:linear-gradient(135deg,#fff,#f6faff)}
.offline-simple-sync-copy{display:flex;align-items:center;gap:13px;min-width:0}.offline-simple-sync-icon{width:48px;height:48px;min-width:48px;border-radius:14px;background:#e7f1ff;color:var(--blue-700);display:grid;place-items:center;font-size:18px}.offline-simple-sync-icon.is-offline{background:#eef2f7;color:#66778b}.offline-simple-sync-copy small,.offline-simple-sync-copy strong,.offline-simple-sync-copy span{display:block}.offline-simple-sync-copy small{font:700 10px Poppins,sans-serif;text-transform:uppercase;letter-spacing:.06em;color:#6280a2}.offline-simple-sync-copy strong{font:700 16px Poppins,sans-serif;color:var(--blue-950);margin:2px 0}.offline-simple-sync-copy div>span{font-size:11px;color:var(--muted);line-height:1.4}.offline-online-like-actions{gap:9px}.offline-pending-details{margin-top:16px;padding:0;overflow:hidden}.offline-pending-details>summary{list-style:none;cursor:pointer;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f8fbff;color:var(--blue-950);font-weight:700}.offline-pending-details>summary::-webkit-details-marker{display:none}.offline-pending-details>summary>span{display:flex;align-items:center;gap:8px}.offline-pending-details>summary>span i{color:var(--blue-700)}.offline-pending-details>summary>strong{font-size:11px;background:#e8f2ff;color:#0b5fc6;border-radius:999px;padding:5px 9px}.offline-pending-details>p,.offline-pending-details>.offline-queue-list{margin-left:18px;margin-right:18px}.offline-pending-details>p{margin-top:14px;margin-bottom:12px;font-size:11px}.offline-pending-details>.offline-queue-list{margin-bottom:18px}.offline-last-sync{display:none!important}
.icon-action.whatsapp{background:#eafaf1;color:#15803d;border-color:#bde7cd}.icon-action.whatsapp:hover{background:#dcf7e8;color:#087231}.invalid-person-row-v202{grid-template-columns:minmax(190px,1.55fr) minmax(115px,.9fr) 58px 68px minmax(170px,1fr) 78px}.invalid-row-actions{display:flex;justify-content:flex-end;gap:6px;align-items:center}.invalid-row-actions .icon-action{flex:0 0 auto}

@media(max-width:700px){
  .offline-simple-sync{align-items:stretch;flex-direction:column}.offline-simple-sync .btn{width:100%}.offline-simple-sync-copy strong{font-size:15px}.offline-simple-sync-copy div>span{font-size:12px}
  .offline-online-like-actions{display:grid;grid-template-columns:44px 1fr}.offline-online-like-actions .btn{width:100%}.offline-online-like-actions .btn:first-child{padding:0}.offline-online-like-actions .btn:first-child .btn-label{display:none}
  .offline-pending-details>summary{align-items:flex-start;flex-direction:column}.offline-pending-details>summary>strong{margin-left:27px}
  .invalid-person-row-v202{grid-template-columns:1fr 1fr;gap:8px;padding:12px}.invalid-person-row-v202 .invalid-person-main,.invalid-person-row-v202 .invalid-reason{grid-column:1/-1}.invalid-person-row-v202 .invalid-row-actions{grid-column:1/-1;justify-content:flex-start}.invalid-person-row-v202>div small{font-size:9.5px}.invalid-person-row-v202>div strong{font-size:12px}.invalid-person-main strong{font-size:14px!important}
}


/* ==========================================================
   SisCamp 4.0 V20.3 - PWA Offline First
   ========================================================== */
.offline-global-banner{margin:0 0 14px;border:1px solid #bdd6f4;background:#f3f8ff;border-radius:15px;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#163c68}.offline-global-banner[hidden]{display:none!important}.offline-global-banner>div{display:flex;align-items:center;gap:10px;min-width:0}.offline-global-icon{width:38px;height:38px;min-width:38px;border-radius:11px;background:#dfeeff;color:#0b5fc6;display:grid;place-items:center}.offline-global-banner strong,.offline-global-banner small{display:block}.offline-global-banner strong{font:700 13px Poppins,sans-serif}.offline-global-banner small{font-size:11px;color:#54718f;line-height:1.35}.offline-global-banner.is-offline{background:#fff8e8;border-color:#f5d28a;color:#744d00}.offline-global-banner.is-offline .offline-global-icon{background:#ffedbd;color:#946200}.offline-global-banner.is-offline small{color:#785f2b}
.offline-first-box{border:1px solid #cfe0f4;background:linear-gradient(135deg,#fff,#f6faff);border-radius:17px;padding:14px 16px;margin:0 0 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:center}.offline-first-main{display:flex;align-items:center;gap:12px;min-width:0}.offline-first-icon{width:46px;height:46px;min-width:46px;border-radius:13px;background:#e5f1ff;color:#0b5fc6;display:grid;place-items:center;font-size:17px}.offline-first-copy small,.offline-first-copy strong,.offline-first-copy span{display:block}.offline-first-copy small{font:700 9px Poppins,sans-serif;letter-spacing:.08em;color:#6280a2}.offline-first-copy strong{font:700 15px Poppins,sans-serif;color:#0f2d55;margin:2px 0}.offline-first-copy span{font-size:11px;color:#657b94;line-height:1.4}.offline-first-box.is-offline{background:#fffaf0;border-color:#f1d69c}.offline-first-box.is-offline .offline-first-icon{background:#ffedbd;color:#946200}.offline-first-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.offline-first-count{font:700 10px Poppins,sans-serif;background:#e6f1ff;color:#0b5fc6;border-radius:999px;padding:6px 9px}.offline-first-message{grid-column:1/-1;border-radius:11px;padding:9px 11px;font-size:12px;line-height:1.4}.offline-first-message[hidden]{display:none}.offline-first-message.ok{background:#ecfdf5;border:1px solid #a7f3d0;color:#067647}.offline-first-message.err{background:#fff1f2;border:1px solid #fecdd3;color:#a51d2d}.offline-first-message.info{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8}.offline-first-pending{grid-column:1/-1;border-top:1px solid #dbe7f3;padding-top:12px}.offline-first-pending[hidden]{display:none}.offline-first-pending-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.offline-first-pending-head strong{font:700 13px Poppins,sans-serif;color:#12345d}.offline-first-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #e7eef6}.offline-first-item:first-child{border-top:0}.offline-first-item>div:first-child{min-width:0}.offline-first-item strong,.offline-first-item span,.offline-first-item small{display:block}.offline-first-item strong{font:700 13px Poppins,sans-serif;color:#102e56}.offline-first-item span{font-size:10px;color:#6b7f96;margin-top:2px}.offline-first-item small{font-size:10px;color:#a51d2d;margin-top:5px}.offline-first-item-actions{display:flex;gap:6px;flex-shrink:0}.offline-first-item.has-error{background:#fffafa;margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:10px}.offline-first-item.has-duplicate{background:#fffaf0;margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:10px}.offline-first-item.has-duplicate small{color:#9a6700}.offline-first-item.has-duplicate span{color:#8a6116}.icon-btn{width:36px;height:36px;border-radius:10px;border:1px solid #d7e4f2;background:#fff;color:#0a4b9c;display:grid;place-items:center;cursor:pointer}.icon-btn.danger{color:#b42334;border-color:#f3c6cc}
@media(max-width:680px){.offline-global-banner{align-items:flex-start}.offline-global-banner .btn{width:40px;padding:0}.offline-global-banner .btn span{display:none}.offline-first-box{grid-template-columns:1fr;padding:13px}.offline-first-actions{justify-content:stretch;display:grid;grid-template-columns:1fr 1fr}.offline-first-actions .btn{width:100%;padding-left:9px;padding-right:9px}.offline-first-count{grid-column:1/-1;text-align:center}.offline-first-copy strong{font-size:14px}.offline-first-copy span{font-size:12px}.offline-first-item{align-items:flex-start}.offline-first-item strong{font-size:15px}.offline-first-item span,.offline-first-item small{font-size:11px}.offline-first-item-actions .icon-btn{width:40px;height:40px}}


/* ==========================================================
   SisCamp 4.0 V20.4 - cadastro mais direto + aviso offline único
   ========================================================== */

/* Scroll fino azul em todo o aplicativo */
*{scrollbar-width:thin;scrollbar-color:var(--blue-700) transparent}
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--blue-700);border-radius:999px;border:1px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:var(--blue-900);background-clip:padding-box}
*::-webkit-scrollbar-button{display:none;width:0;height:0}

/* O aviso global é o único aviso de conexão e fica vermelho quando offline. */
.offline-global-banner.is-offline{background:#fff1f2!important;border-color:#fecdd3!important;color:#991b1b!important;box-shadow:0 7px 22px rgba(185,28,28,.06)}
.offline-global-banner.is-offline .offline-global-icon{background:#fee2e2!important;color:#c62828!important}
.offline-global-banner.is-offline small{color:#9f3741!important}

/* QR como ação principal, sem card intermediário. */
.voter-qr-primary-action{display:flex;justify-content:flex-start;margin:-2px 0 16px}
.voter-qr-main-btn{min-width:270px;min-height:50px;font-size:14px;box-shadow:0 10px 24px rgba(21,101,216,.16)}
.voter-bottom-stats{margin:18px 0 0!important}

/* A fila offline só aparece quando existem cadastros pendentes; não repete o aviso "Sem internet". */
.offline-first-box.offline-queue-only{grid-template-columns:minmax(0,1fr) auto;background:#f6faff;border-color:#cfe0f4;padding:12px 14px;margin-bottom:14px}
.offline-first-box.offline-queue-only[hidden]{display:none!important}
.offline-queue-summary{display:flex;align-items:center;gap:10px;min-width:0}
.offline-queue-icon{width:40px;height:40px;min-width:40px;border-radius:12px;background:#e5f1ff;color:var(--blue-700);display:grid;place-items:center}
.offline-queue-summary strong,.offline-queue-summary span{display:block}
.offline-queue-summary strong{font:700 13px Poppins,sans-serif;color:var(--blue-950)}
.offline-queue-summary span{font-size:11px;color:#657b94;line-height:1.35;margin-top:2px}
.offline-queue-only .offline-first-message,.offline-queue-only .offline-first-pending{grid-column:1/-1}

@media(max-width:680px){
  .voter-qr-primary-action{display:block;margin-bottom:14px}
  .voter-qr-main-btn{width:100%;min-width:0;min-height:52px;font-size:14px}
  .voter-bottom-stats{grid-template-columns:1fr 1fr!important;gap:10px}
  .voter-bottom-stats .counter-mini{min-width:0}
  .voter-bottom-stats .counter-mini strong{font-size:19px;line-height:1.1;overflow-wrap:anywhere}
  .voter-bottom-stats .counter-mini span{font-size:11.5px;line-height:1.3}
  .offline-first-box.offline-queue-only{grid-template-columns:1fr}
  .offline-queue-summary{align-items:flex-start}
}
@media(max-width:420px){
  .voter-bottom-stats{grid-template-columns:1fr!important}
}

/* ==========================================================
   SisCamp 4.0 V21 - Preparação offline + bloqueio opcional
   ========================================================== */
body.offline-preparing{overflow:hidden}
.offline-prep-overlay[hidden]{display:none!important}
.offline-prep-overlay{position:fixed;inset:0;z-index:4900;display:grid;place-items:center;padding:18px;background:rgba(235,244,255,.96);backdrop-filter:blur(7px)}
.offline-prep-card{width:min(100%,450px);background:#fff;border:1px solid #cfe0f4;border-radius:26px;padding:30px;box-shadow:0 28px 80px rgba(5,47,110,.20);text-align:center}
.offline-prep-icon{width:72px;height:72px;margin:0 auto 12px;border-radius:22px;background:linear-gradient(145deg,#e8f3ff,#d6eaff);display:grid;place-items:center;color:var(--blue-700);font-size:30px}
.offline-prep-kicker{font:700 9px Poppins,sans-serif;letter-spacing:.12em;color:var(--blue-700)}
.offline-prep-card h2{margin:7px 0 8px;font:700 22px Poppins,sans-serif;color:var(--blue-950);line-height:1.2}
.offline-prep-card>p{margin:0 auto 18px;color:var(--muted);font-size:13px;line-height:1.5;max-width:360px}
.offline-prep-progress{height:10px;border-radius:999px;background:#e7eff8;overflow:hidden;border:1px solid #d7e4f2}
.offline-prep-progress>span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0a58b5,#2589eb);transition:width .25s ease}
.offline-prep-row{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:8px 1px 14px;font-size:11px;color:#69809a}
.offline-prep-row strong{font:700 14px Poppins,sans-serif;color:var(--blue-900)}
.offline-prep-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;text-align:left;margin-bottom:18px}
.offline-prep-checks span{display:flex;gap:7px;align-items:center;padding:8px 10px;border-radius:11px;background:#f6f9fd;color:#71849b;font-size:10.5px;border:1px solid #e6edf5}
.offline-prep-checks span i{color:#a8b8c9}.offline-prep-checks span.done{background:#edf8f2;color:#1e7046;border-color:#d4ecdf}.offline-prep-checks span.done i{color:#22a660}

.device-lock-settings-card .section-title{align-items:flex-start}
.device-lock-settings-card .section-title h2{display:flex;align-items:center;gap:9px}
.device-lock-settings-card .section-title h2 i{color:var(--blue-700)}
.device-lock-status{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:6px 10px;border-radius:999px;font:700 10px Poppins,sans-serif;white-space:nowrap}
.device-lock-status.on{background:#e8f8ef;color:#177542;border:1px solid #ccebd9}
.device-lock-status.off{background:#f3f6f9;color:#63758a;border:1px solid #dce5ee}
.device-lock-status.neutral{background:#eaf3ff;color:#0a5db7;border:1px solid #cfe1f7}
.device-lock-settings-body{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid #e0e9f3;border-radius:16px;background:#f8fbff;margin:4px 0 14px}
.device-lock-settings-icon{width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:#e5f1ff;color:var(--blue-700);display:grid;place-items:center;font-size:20px}
.device-lock-settings-body strong{display:block;color:var(--blue-950);font:700 13px Poppins,sans-serif;margin-bottom:3px}
.device-lock-settings-body p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.device-lock-settings-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:9px}

@media(max-width:640px){
  .offline-prep-overlay{padding:12px}.offline-prep-card{padding:24px 18px;border-radius:22px}.offline-prep-card h2{font-size:19px}.offline-prep-card>p{font-size:12px}.offline-prep-checks{grid-template-columns:1fr 1fr;gap:6px}.offline-prep-checks span{font-size:9.5px;padding:7px 8px}
  .device-lock-settings-card .section-title{display:grid;gap:9px}.device-lock-status{justify-self:start}.device-lock-settings-body{align-items:flex-start}.device-lock-settings-actions{display:grid;grid-template-columns:1fr}.device-lock-settings-actions .btn{width:100%}
}

/* SisCamp V22 - identificação para consulta eleitoral automática */
.voter-form-v22 input[type="date"]{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.tse-auto-note{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid #bfd8ff;background:#eef6ff;border-radius:14px;color:#0a3d91}
.tse-auto-note>i{font-size:1.15rem;margin-top:2px}.tse-auto-note>div{display:flex;flex-direction:column;gap:3px}.tse-auto-note strong{font-family:Poppins,sans-serif}.tse-auto-note span{color:#456382;font-size:.92rem;line-height:1.45}
@media(max-width:640px){.voter-form-v22{grid-template-columns:minmax(0,1fr)!important}.voter-form-v22>div,.voter-form-v22 .span-2,.voter-form-v22 .full{grid-column:1/-1!important;min-width:0}.voter-form-v22 input,.voter-form-v22 select{max-width:100%;min-width:0}.tse-auto-note{padding:12px}}


/* ==========================================================
   SisCamp 4.0 V23 - título informado x consulta econômica API
   ========================================================== */
.voter-form-v23{grid-template-columns:repeat(4,minmax(0,1fr))}
.voter-form-v23 input[type="date"]{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.voter-title-question{padding:2px 0 4px}
.voter-title-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.voter-title-choice{position:relative;display:flex!important;align-items:center;gap:12px;margin:0!important;padding:15px 16px;border:1px solid #cfdeef;border-radius:15px;background:#f8fbff;cursor:pointer;transition:.2s;color:#1d3553!important}
.voter-title-choice:hover{border-color:#8ebdf6;background:#f3f8ff;transform:translateY(-1px)}
.voter-title-choice.selected{border-color:#2a7edc;background:#edf6ff;box-shadow:0 0 0 3px rgba(42,126,220,.08)}
.voter-title-choice input{position:absolute;opacity:0;pointer-events:none;width:1px!important;height:1px!important}
.voter-title-choice .choice-icon{width:42px;height:42px;min-width:42px;border-radius:12px;background:#e4f0ff;color:#0a5db7;display:grid;place-items:center;font-size:17px}
.voter-title-choice.selected .choice-icon{background:#0a5db7;color:#fff}
.voter-title-choice strong,.voter-title-choice small{display:block}
.voter-title-choice strong{font:700 13px Poppins,sans-serif;color:#0b376f}
.voter-title-choice small{margin-top:3px;color:#667d96;font-size:11.5px;line-height:1.35;font-weight:400}
.voter-title-mode-block{padding:0;border:1px solid #d9e5f2;border-radius:16px;background:#fbfdff;overflow:hidden}
.voter-title-mode-block[hidden]{display:none!important}
.voter-mode-head{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;background:#eef8f2;border-bottom:1px solid #d9ebdf;color:#17643c}
.voter-mode-head.api{background:#eef6ff;border-color:#d5e5fb;color:#0a4f9f}
.voter-mode-head>i{margin-top:2px}
.voter-mode-head strong,.voter-mode-head span{display:block}
.voter-mode-head strong{font:700 13px Poppins,sans-serif}
.voter-mode-head span{margin-top:2px;font-size:11.5px;line-height:1.4;color:#5f7892}
.voter-mode-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:15px}
.voter-mode-fields .span-2{grid-column:span 2}
.voter-title-hint{display:flex;align-items:center;gap:9px;padding:12px 14px;border-radius:12px;background:#f4f7fb;color:#60758e;font-size:12px;border:1px dashed #cdd9e7}
.voter-title-hint[hidden]{display:none!important}
.voter-title-hint i{color:#0a5db7}
.api-config-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:start}
.api-status-card{display:grid;gap:12px}
.api-status-line{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf2f7}
.api-status-line:last-child{border-bottom:0}
.api-status-line span{color:var(--muted);font-size:12px}
.api-status-line strong{font:700 13px Poppins,sans-serif;color:var(--blue-900);text-align:right}
.api-recognizer{min-height:44px;display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid #d5e2f0;border-radius:12px;background:#f8fbff;color:#60758e;font-size:12px}
.api-recognizer.ok{background:#edf8f2;border-color:#cae8d7;color:#17643c}
.api-recognizer.err{background:#fff5f5;border-color:#f6d1d1;color:#9c2530}
.api-secret-wrap{position:relative}
.api-secret-wrap input{padding-right:48px}
.api-secret-toggle{position:absolute;right:6px;top:6px;width:34px;height:34px;border:0;border-radius:9px;background:#edf4fc;color:#0a5db7;cursor:pointer}
.api-usage-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.api-usage-mini{padding:15px;border:1px solid #dce7f3;border-radius:14px;background:#f8fbff}
.api-usage-mini strong{display:block;font:700 22px Poppins,sans-serif;color:#0a3d91}
.api-usage-mini span{display:block;margin-top:3px;color:#71839a;font-size:11px}
@media(max-width:800px){
  .voter-title-choice-grid,.api-config-grid{grid-template-columns:1fr}
  .voter-mode-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .voter-form-v23{grid-template-columns:minmax(0,1fr)!important}
  .voter-form-v23>div,.voter-form-v23 .span-2,.voter-form-v23 .full{grid-column:1/-1!important;min-width:0}
  .voter-mode-fields{grid-template-columns:1fr}
  .voter-mode-fields .span-2{grid-column:1}
  .api-usage-cards{grid-template-columns:1fr}
}

/* =========================================================
   PATCH V25 — GESTÃO 2026 / CADASTRO ESSENCIAL + SANFONA
   ========================================================= */
.voter-form-v25{
  gap:16px!important;
}
.gestao2026-section-title{
  display:flex!important;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border:1px solid #d8e6f6;
  border-radius:16px;
  background:linear-gradient(135deg,#f7fbff 0%,#edf6ff 100%);
}
.gestao2026-section-title>span{
  width:42px;height:42px;min-width:42px;border-radius:13px;
  display:grid;place-items:center;background:#0a5db7;color:#fff;
  box-shadow:0 8px 18px rgba(10,93,183,.18);
}
.gestao2026-section-title strong,.gestao2026-section-title small{display:block}
.gestao2026-section-title strong{font:700 14px Poppins,sans-serif;color:#0b376f}
.gestao2026-section-title small{margin-top:2px;color:#6b8098;font-size:11.5px}

.father-field-wrap{position:relative}
.father-undeclared-option{
  display:inline-flex!important;align-items:center;gap:8px;margin:8px 0 0!important;
  font-size:12px!important;font-weight:600!important;color:#4a6078!important;cursor:pointer;
}
.father-undeclared-option input{width:16px!important;height:16px!important;margin:0!important;accent-color:#0a5db7}
.father-undeclared-option span{display:inline-flex;align-items:center;gap:6px}
.father-undeclared-option i{color:#6e86a0}

.gestao2026-api-note{
  display:flex!important;align-items:flex-start;gap:10px;
  padding:12px 14px;border:1px solid #d8e8fb;border-radius:14px;
  background:#f6faff;color:#536d89;font-size:12px;line-height:1.45;
}
.gestao2026-api-note>i{margin-top:2px;color:#1974d2}
.gestao2026-api-note strong{color:#174d87}

.voter-accordion{
  border:1px solid #d5e3f2;border-radius:18px;background:#fff;
  overflow:hidden;box-shadow:0 10px 28px rgba(24,72,121,.07);
}
.voter-accordion>summary{
  list-style:none;display:flex;align-items:center;gap:12px;cursor:pointer;
  padding:16px 18px;background:linear-gradient(135deg,#f8fbff 0%,#f1f7ff 100%);
  user-select:none;transition:.2s;
}
.voter-accordion>summary::-webkit-details-marker{display:none}
.voter-accordion>summary:hover{background:#edf6ff}
.accordion-summary-icon{
  width:40px;height:40px;min-width:40px;border-radius:12px;display:grid;place-items:center;
  background:#e4f0ff;color:#0a5db7;font-size:16px;
}
.accordion-summary-copy{min-width:0;flex:1}
.accordion-summary-copy strong,.accordion-summary-copy small{display:block}
.accordion-summary-copy strong{font:700 13px Poppins,sans-serif;color:#123d70}
.accordion-summary-copy small{margin-top:2px;color:#73869b;font-size:11.5px;line-height:1.35}
.accordion-chevron{color:#4f6e8f;transition:transform .2s}
.voter-accordion[open] .accordion-chevron{transform:rotate(180deg)}
.voter-accordion[open]>summary{border-bottom:1px solid #dce8f5}
.voter-accordion-body{padding:18px;background:#fff}
.voter-accordion-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;
}
.voter-accordion-grid>.full{grid-column:1/-1}
.voter-accordion-grid>.span-2{grid-column:span 2}
.voter-accordion-grid label{display:block;margin-bottom:7px}

.complementary-title-option{margin-top:2px}
.manual-title-toggle{
  display:flex!important;align-items:center;gap:12px;margin:0!important;padding:14px 15px;
  border:1px solid #d6e5f5;border-radius:15px;background:#f9fcff;cursor:pointer;
}
.manual-title-toggle>input{position:absolute;opacity:0;pointer-events:none}
.manual-title-switch{
  position:relative;width:44px;height:24px;min-width:44px;border-radius:99px;background:#cbd9e7;transition:.2s;
}
.manual-title-switch:after{
  content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;
  box-shadow:0 2px 7px rgba(0,0,0,.18);transition:.2s;
}
.manual-title-toggle>input:checked+.manual-title-switch{background:#0a5db7}
.manual-title-toggle>input:checked+.manual-title-switch:after{transform:translateX(20px)}
.manual-title-toggle strong,.manual-title-toggle small{display:block}
.manual-title-toggle strong{font:700 12.5px Poppins,sans-serif;color:#153f70}
.manual-title-toggle small{margin-top:2px;color:#71849a;font-size:11px;line-height:1.4}

.manual-title-fields{padding:0;border:1px solid #d9e5f2;border-radius:16px;background:#fbfdff;overflow:hidden}
.manual-title-fields[hidden]{display:none!important}
.address-title.compact{margin-top:2px}

/* V26.1 — campos eleitorais manuais e aviso da API preservados no HTML, mas ocultos da interface.
   Para reativar futuramente, remova apenas este bloco. */
.voter-form-v26 .gestao2026-api-note,
.voter-form-v26 .complementary-title-option,
.voter-form-v26 .manual-title-fields{
  display:none!important;
}

@media(max-width:900px){
  .voter-accordion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .gestao2026-section-title{padding:13px 14px}
  .voter-accordion>summary{padding:14px}
  .voter-accordion-body{padding:14px}
  .voter-accordion-grid{grid-template-columns:minmax(0,1fr)}
  .voter-accordion-grid>.full,.voter-accordion-grid>.span-2{grid-column:1/-1!important}
  .manual-title-toggle{align-items:flex-start}
  .accordion-summary-copy small{font-size:11px}
}

/* =========================================================
   PATCH V26 — MUNICÍPIO + BAIRRO PESQUISÁVEIS / MOBILE FIX
   ========================================================= */
.voter-form-v26,
.voter-form-v26 > *,
.voter-form-v26 .voter-accordion-grid > *,
.public-form-wrap,
.public-register-card{min-width:0;max-width:100%}
.voter-form-v26 input:not([type="checkbox"]):not([type="radio"]),
.voter-form-v26 select,
.voter-form-v26 textarea,
.voter-form-v26 button,
.voter-form-v26 .locality-select,
.voter-form-v26 .locality-select-panel{
  box-sizing:border-box;
  max-width:100%;
  min-width:0;
}
.voter-form-v26 input:not([type="checkbox"]):not([type="radio"]),
.voter-form-v26 select,
.voter-form-v26 textarea{width:100%}
.voter-form-v26 input[type="date"]{-webkit-appearance:none;appearance:none;width:100%;min-width:0;max-width:100%}
.voter-form-v26 .voter-accordion{max-width:100%}
.voter-form-v26 .voter-accordion-body{min-width:0}
.voter-form-v26 .voter-accordion-grid{min-width:0}

.locality-section-title{
  display:flex!important;align-items:flex-start;gap:10px;margin-top:2px;padding-top:16px;
  border-top:1px solid var(--line);color:#164a82
}
.locality-section-title>i{
  width:36px;height:36px;min-width:36px;border-radius:11px;background:#e8f3ff;color:#0a5db7;
  display:grid;place-items:center
}
.locality-section-title span{min-width:0}
.locality-section-title strong,.locality-section-title small{display:block}
.locality-section-title strong{font:700 13px Poppins,sans-serif;color:#123d70}
.locality-section-title small{margin-top:2px;color:#75889e;font-size:11px;line-height:1.4}
.locality-field{min-width:0}
.locality-select{width:100%;display:grid;gap:8px}
.locality-select-trigger{
  width:100%;height:46px;border:1px solid #ccd9e8;border-radius:12px;background:#fff;color:#223d5b;
  padding:0 13px;display:flex!important;align-items:center;justify-content:space-between;gap:10px;
  text-align:left;cursor:pointer;transition:.2s
}
.locality-select-trigger:hover:not(:disabled){border-color:#8bb8ed;background:#fbfdff}
.locality-select-trigger:focus{outline:none;border-color:#6aa9ff;box-shadow:0 0 0 4px rgba(21,101,216,.10)}
.locality-select-trigger:disabled{background:#f4f7fa;color:#8a9aac;cursor:not-allowed}
.locality-select-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.locality-select-trigger i{font-size:11px;color:#6b8198;flex:0 0 auto}
.locality-select-panel{
  width:100%;padding:10px;border:1px solid #d5e3f2;border-radius:14px;background:#f9fcff;
  box-shadow:0 10px 24px rgba(13,58,111,.08)
}
.locality-select-panel[hidden]{display:none!important}
.locality-search{position:relative;min-width:0;margin-bottom:8px}
.locality-search>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#7890a8;font-size:12px;pointer-events:none}
.locality-search input{
  width:100%!important;height:40px!important;padding:0 12px 0 34px!important;border-radius:10px!important;
  background:#fff!important
}
.locality-options{display:grid;gap:5px;max-height:260px;overflow:auto;padding-right:2px;scrollbar-width:thin}
.locality-option{
  width:100%;min-height:39px;height:auto!important;padding:9px 11px!important;border:1px solid transparent!important;
  border-radius:10px!important;background:#fff!important;color:#294764!important;justify-content:flex-start!important;
  text-align:left!important;font-size:12px!important;font-weight:600!important;line-height:1.3!important;white-space:normal!important
}
.locality-option:hover{border-color:#cfe1f5!important;background:#eef6ff!important;transform:none!important}
.locality-option.is-selected{background:#e7f2ff!important;border-color:#bcd8f5!important;color:#0a5db7!important}
.locality-option-other{
  margin-top:4px;border-top:1px solid #dce7f3!important;border-radius:10px!important;background:#f3f7fb!important;
  color:#4c6278!important;font-weight:800!important
}
.locality-empty,.locality-loading{padding:12px;color:#7b8da1;font-size:11.5px;text-align:center}
.locality-loading i{margin-right:6px;color:#0a5db7}
.locality-other{
  margin-top:10px;padding:12px;border:1px solid #cfe1f5;border-radius:13px;background:#f5faff
}
.locality-other[hidden]{display:none!important}
.locality-other label{margin-bottom:7px!important;color:#154b82!important}
.locality-other input{text-transform:uppercase;font-weight:700;letter-spacing:.01em}
.locality-other small{display:block;margin-top:6px;color:#72869b;font-size:10.5px;line-height:1.4}

@media(max-width:620px){
  .content{padding-left:13px;padding-right:13px}
  .card:has(.voter-form-v26){padding:14px}
  .voter-form-v26{grid-template-columns:minmax(0,1fr)!important;width:100%;max-width:100%;overflow:visible}
  .voter-form-v26>div,
  .voter-form-v26>.full,
  .voter-form-v26>.span-2,
  .voter-form-v26 .voter-accordion-grid>div,
  .voter-form-v26 .voter-accordion-grid>.full,
  .voter-form-v26 .voter-accordion-grid>.span-2{
    grid-column:1/-1!important;width:100%!important;max-width:100%!important;min-width:0!important
  }
  .voter-form-v26 input:not([type="checkbox"]):not([type="radio"]),
  .voter-form-v26 select,
  .voter-form-v26 textarea,
  .voter-form-v26 .locality-select-trigger{
    width:100%!important;max-width:100%!important;min-width:0!important
  }
  .voter-form-v26 .gestao2026-section-title,
  .voter-form-v26 .gestao2026-api-note,
  .voter-form-v26 .manual-title-toggle,
  .voter-form-v26 .voter-mode-head{max-width:100%;min-width:0;overflow-wrap:anywhere}
  .voter-form-v26 .voter-accordion>summary{min-width:0;max-width:100%}
  .voter-form-v26 .accordion-summary-copy{min-width:0}
  .voter-form-v26 .accordion-summary-copy strong,
  .voter-form-v26 .accordion-summary-copy small{white-space:normal;overflow-wrap:anywhere}
  .locality-options{max-height:220px}
  .locality-option{font-size:11.5px!important}
  .public-register-shell{padding-left:10px!important;padding-right:10px!important}
  .public-register-card{width:100%!important;max-width:100%!important;padding-left:14px!important;padding-right:14px!important}
}

/* =========================================================
   V30 — TABELAS DE ELEITORES + SITUAÇÃO REGULAR
   ========================================================= */

/* O recurso manual de Título permanece oculto para Líder/Sublíder/público.
   Somente formulários explicitamente liberados pelo backend recebem esta classe. */
.voter-form-v26.allow-electoral-manual .complementary-title-option{
  display:block!important;
}
.voter-form-v26.allow-electoral-manual .manual-title-fields:not([hidden]){
  display:block!important;
}
.voter-form-v26.allow-electoral-manual .manual-title-fields[hidden]{
  display:none!important;
}

.regular-pending-alert{
  display:flex;
  align-items:center;
  gap:10px;
}
.regular-pending-alert[hidden]{display:none!important}

.voters-filter-form-v30{
  grid-template-columns:minmax(230px,1.5fr) minmax(180px,.8fr) minmax(150px,.55fr) auto;
}

.regular-batch-toolbar{
  display:flex;
  align-items:center;
  gap:18px;
  padding:14px 16px;
  margin-bottom:14px;
  border:1px solid #d8e7f7;
  background:linear-gradient(135deg,#fbfdff 0%,#f2f8ff 100%);
}
.batch-check-all{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0;
  white-space:nowrap;
  font-weight:700;
  color:#123e70;
}
.batch-check-all input,.voter-row-check{width:18px;height:18px;accent-color:#0d62c4}
.regular-batch-copy{flex:1;min-width:0}
.regular-batch-copy strong,.regular-batch-copy small{display:block}
.regular-batch-copy strong{color:#103e75;font-size:13px}
.regular-batch-copy small{color:#6b819a;font-size:11px;margin-top:2px}

.voters-table-v30{overflow-x:auto;-webkit-overflow-scrolling:touch}
.voters-table-v30 table{min-width:1220px}
.voters-table-v30 th{white-space:nowrap}
.voters-table-v30 td{vertical-align:middle}
.voters-table-v30 .select-col{width:42px;text-align:center}
.data-compact-value{white-space:nowrap;font-weight:600;color:#254a73}
.family-name-cell{display:block;min-width:150px;max-width:240px;white-space:normal;line-height:1.35;color:#254a73}

.regular-inline-select{
  width:auto!important;
  min-width:118px;
  max-width:150px;
  height:36px;
  padding:0 30px 0 12px!important;
  border-radius:999px!important;
  font-weight:800!important;
  font-size:12px!important;
  cursor:pointer;
  transition:.18s ease;
}
.regular-inline-select.is-regular{
  color:#08723f!important;
  background:#eafaf1!important;
  border-color:#97dfb8!important;
}
.regular-inline-select.is-irregular{
  color:#b42318!important;
  background:#fff0ef!important;
  border-color:#f1aaa5!important;
}
.regular-inline-select.is-pending{
  color:#6c7684!important;
  background:#f5f7fa!important;
  border-color:#d7dee7!important;
}
.regular-inline-select.is-saving{opacity:.62;cursor:wait}
.regular-inline-select.is-error{box-shadow:0 0 0 3px rgba(220,38,38,.12)}
.regular-save-state{display:inline-flex;min-width:16px;margin-left:4px;color:#159455;font-size:11px}
.regular-save-state.error{color:#c62828;font-weight:700}

.regular-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:90px;
  padding:6px 11px;
  border-radius:999px;
  font:800 11px/1 Poppins,sans-serif;
  white-space:nowrap;
  border:1px solid transparent;
}
.regular-status-pill.is-regular{color:#08723f;background:#eafaf1;border-color:#a4e6c1}
.regular-status-pill.is-irregular{color:#b42318;background:#fff0ef;border-color:#f2b0aa}
.regular-status-pill.is-pending{color:#6c7684;background:#f4f6f8;border-color:#dde3ea}

.voter-title-details{position:relative;min-width:120px}
.voter-title-details>summary{
  list-style:none;
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:7px 10px;
  border:1px solid #d8e6f5;
  border-radius:10px;
  background:#f7fbff;
  color:#1557a1;
  font-weight:800;
  font-size:11px;
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
}
.voter-title-details>summary::-webkit-details-marker{display:none}
.voter-title-details[open]>summary{background:#eaf4ff;border-color:#9fc8ef}
.title-details-chevron{font-size:9px;transition:.18s ease}
.voter-title-details[open] .title-details-chevron{transform:rotate(180deg)}
.voter-title-popover{
  margin-top:7px;
  width:220px;
  padding:11px;
  border:1px solid #dbe8f5;
  border-radius:12px;
  background:#fff;
  box-shadow:0 9px 24px rgba(15,62,111,.10);
}
.voter-title-popover>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid #edf2f7}
.voter-title-popover>div:last-of-type{border-bottom:0}
.voter-title-popover small{color:#728399;font-size:10px}
.voter-title-popover strong{color:#123f72;font-size:12px;text-align:right}
.voter-title-popover .btn{width:100%;margin-top:9px;justify-content:center}

.voter-action-buttons{display:flex;flex-wrap:wrap;gap:6px;min-width:210px}
.voter-action-buttons .btn{min-height:34px;padding:7px 10px;white-space:nowrap}
.responsible-mini{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}
.responsible-mini small{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#7c8da1;font-weight:800}
.move-voter-form-inline{display:flex;gap:5px;margin-top:7px;align-items:center;max-width:250px}
.move-voter-form-inline select{min-width:0!important;height:32px!important;padding:4px 26px 4px 8px!important;font-size:10px!important}
.move-voter-form-inline .btn{height:32px;min-width:34px;padding:0 8px}

@media(max-width:900px){
  .voters-filter-form-v30{grid-template-columns:1fr 1fr}
  .regular-batch-toolbar{align-items:flex-start;flex-wrap:wrap}
  .regular-batch-copy{order:3;flex-basis:100%}
  .voters-table-v30{margin-left:0;margin-right:0;max-width:100%}
  .voters-table-v30 table{min-width:1160px}
}
@media(max-width:620px){
  .voters-filter-form-v30{grid-template-columns:minmax(0,1fr)}
  .regular-batch-toolbar{padding:12px;gap:10px}
  .batch-check-all{width:100%}
  .regular-batch-toolbar .btn{width:100%;justify-content:center}
  .family-name-cell{min-width:135px;max-width:190px}
  .voter-action-buttons{min-width:190px}
  .voter-action-buttons .btn span{display:none}
  .voter-action-buttons .btn{width:36px;min-width:36px;padding:0;justify-content:center}
}

/* =========================================================
   V30.1 — LISTA PREMIUM + DADOS INCOMPLETOS + CÓPIA RÁPIDA
   ========================================================= */
.voters-filter-form-v30{
  grid-template-columns:minmax(260px,1.55fr) minmax(190px,.85fr) minmax(145px,.55fr) minmax(210px,.8fr) auto!important;
  align-items:end;
  gap:12px!important;
}
.voters-filter-card{
  border:1px solid #d8e6f5!important;
  box-shadow:0 12px 30px rgba(21,75,126,.08)!important;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%)!important;
}
.voters-filter-card label{font-size:10px!important;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#58718e}
.voters-filter-card input,.voters-filter-card select{height:44px!important;border-radius:12px!important;background:#fff!important;border-color:#cddff1!important}
.voters-filter-card input:focus,.voters-filter-card select:focus{border-color:#6fa9e8!important;box-shadow:0 0 0 3px rgba(20,104,199,.09)!important}
.voters-filter-button-pair{display:flex!important;gap:8px!important;align-items:center!important}
.voters-filter-button-pair .btn{height:44px!important;border-radius:12px!important}
.voters-page-actions{padding-top:12px!important;margin-top:12px!important;border-top:1px solid #edf2f7!important}
.voters-page-actions .btn{border-radius:11px!important;min-height:40px!important}

.regular-batch-toolbar{
  min-height:68px!important;
  padding:11px 14px!important;
  border-radius:15px!important;
  border:1px solid #d6e5f5!important;
  background:#fff!important;
  box-shadow:0 8px 24px rgba(24,74,124,.06)!important;
}
.regular-batch-copy strong{display:block!important;margin-bottom:2px!important;line-height:1.25!important}
.regular-batch-copy small{display:block!important;line-height:1.35!important}
.regular-batch-toolbar .btn{border-radius:11px!important}

.voters-table-wrap.voters-table-v30{
  padding:0!important;
  border:1px solid #dce8f5!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 14px 34px rgba(22,72,121,.08)!important;
  overflow:visible!important;
}
.voters-premium-table{width:100%!important;min-width:1120px!important;border-collapse:separate!important;border-spacing:0!important}
.voters-premium-table thead th{
  position:sticky;
  top:0;
  z-index:4;
  height:48px;
  padding:0 12px!important;
  background:#f5f9fd!important;
  border-bottom:1px solid #dae7f3!important;
  color:#607895!important;
  font:800 10px/1.2 Poppins,sans-serif!important;
  text-transform:uppercase;
  letter-spacing:.055em;
}
.voters-premium-table tbody td{
  padding:13px 12px!important;
  border-bottom:1px solid #edf3f8!important;
  color:#244665!important;
  font-size:11.5px!important;
  background:#fff;
}
.voters-premium-table tbody tr:last-child td{border-bottom:0!important}
.voters-premium-table tbody tr{transition:background .16s ease,box-shadow .16s ease}
.voters-premium-table tbody tr:hover td{background:#fafdff!important}
.voters-premium-table .select-col{width:38px!important;padding-left:16px!important;padding-right:4px!important}
.voters-premium-table .voter-name-text{display:inline-block;color:#0d3e74;font-size:12px;line-height:1.35;max-width:220px}
.voters-premium-table .data-compact-value{font-size:11.5px;color:#254d75}
.voters-premium-table .family-name-cell{min-width:0!important;max-width:180px!important;color:#31516f!important;font-size:11.5px;line-height:1.35}

.table-value-with-copy,.modal-value-with-copy,.copy-value-wrap{display:flex;align-items:center;gap:6px;min-width:0}
.table-value-with-copy{justify-content:flex-start}
.copy-mini{
  width:27px;height:27px;min-width:27px;
  border:1px solid transparent;
  border-radius:8px;
  display:inline-grid;place-items:center;
  padding:0!important;
  background:transparent;
  color:#7a91ab;
  cursor:pointer;
  transition:.16s ease;
  font-size:11px;
}
.copy-mini:hover{background:#edf6ff;color:#0f67c8;border-color:#d6e9fb;transform:translateY(-1px)}
.copy-mini.copied{background:#e9f8ef;color:#14804a;border-color:#bfe8cf}
.copy-toast{
  position:fixed;left:50%;bottom:24px;z-index:10050;
  transform:translate(-50%,18px);opacity:0;pointer-events:none;
  padding:10px 14px;border-radius:11px;background:#102f52;color:#fff;
  box-shadow:0 12px 30px rgba(9,39,71,.25);font:700 11px/1.2 Poppins,sans-serif;
  transition:.18s ease;
}
.copy-toast.show{opacity:1;transform:translate(-50%,0)}
.copy-toast.err{background:#a52a2a}
.modal-value-with-copy{justify-content:space-between;width:100%}
.modal-value-with-copy strong{min-width:0;overflow-wrap:anywhere}

.regular-inline-wrap{display:flex;align-items:center;gap:4px;min-width:132px}
.regular-inline-select{
  min-width:126px!important;
  height:34px!important;
  padding:0 31px 0 12px!important;
  border-radius:999px!important;
  font-size:10.5px!important;
  font-weight:800!important;
  box-shadow:none!important;
}
.regular-inline-select.is-regular{background-color:#eaf9f0!important}
.regular-inline-select.is-irregular{background-color:#fff0ef!important}
.regular-inline-select.is-pending{background-color:#f3f6f9!important}

.voter-title-details{min-width:0!important;position:relative!important}
.voter-title-details>summary{
  min-height:32px!important;
  padding:6px 9px!important;
  border-radius:9px!important;
  gap:6px!important;
  font-size:10.5px!important;
  background:#f8fbff!important;
}
.title-summary-icon{width:22px;height:22px;border-radius:7px;background:#e7f2ff;color:#1268c4;display:grid;place-items:center}
.voter-title-popover{
  position:absolute!important;
  top:100%;right:0;z-index:50;
  width:250px!important;
  margin-top:7px!important;
  border-radius:14px!important;
  box-shadow:0 18px 45px rgba(11,51,92,.18)!important;
}
.voter-title-popover>div{min-height:34px}
.voter-title-popover .copy-value-wrap{justify-content:flex-end}

.premium-actions{display:flex!important;flex-wrap:nowrap!important;gap:5px!important;min-width:0!important}
.premium-actions .btn{
  width:35px!important;height:35px!important;min-width:35px!important;
  padding:0!important;border-radius:10px!important;justify-content:center!important;
}
.premium-actions .btn span{display:none!important}
.mini-data-warning{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:3px 6px;border-radius:7px;background:#fff2e6;color:#a95600;font-size:8.5px;font-weight:800;white-space:nowrap}
.value-danger{color:#b42318!important;font-weight:800!important}

@media(max-width:1280px){
  .voters-filter-form-v30{grid-template-columns:minmax(220px,1.2fr) minmax(180px,.8fr) minmax(135px,.5fr) minmax(190px,.75fr)!important}
  .voters-filter-button-pair{grid-column:1/-1;justify-content:flex-end}
  .voters-filter-button-pair .btn{min-width:120px}
}

@media(max-width:900px){
  .voters-filter-form-v30{grid-template-columns:1fr 1fr!important}
  .voters-filter-button-pair{grid-column:1/-1!important}
  .voters-table-wrap.voters-table-v30{overflow:visible!important;border:0!important;box-shadow:none!important;background:transparent!important}
  .voters-premium-table{display:block!important;min-width:0!important;width:100%!important}
  .voters-premium-table thead{display:none!important}
  .voters-premium-table tbody{display:grid!important;gap:12px!important}
  .voters-premium-table tbody tr{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:0!important;
    border:1px solid #dbe7f3!important;
    border-radius:16px!important;
    overflow:visible!important;
    box-shadow:0 8px 22px rgba(25,76,126,.06)!important;
    background:#fff!important;
  }
  .voters-premium-table tbody td{
    display:block!important;
    min-width:0!important;
    padding:11px 12px!important;
    border:0!important;
    border-bottom:1px solid #edf3f8!important;
    background:#fff!important;
  }
  .voters-premium-table tbody td:before{
    content:attr(data-label);
    display:block;
    margin-bottom:6px;
    color:#8090a4;
    font:800 8.5px/1 Poppins,sans-serif;
    text-transform:uppercase;
    letter-spacing:.07em;
  }
  .voters-premium-table tbody .select-col{grid-column:1/-1!important;padding:9px 12px!important;background:#f7faff!important;border-radius:16px 16px 0 0!important}
  .voters-premium-table tbody .select-col:before{display:none}
  .voters-premium-table tbody td[data-label="Nome"]{grid-column:1/-1!important}
  .voters-premium-table tbody td[data-label="Mãe"],
  .voters-premium-table tbody td[data-label="Pai"],
  .voters-premium-table tbody td[data-label="Título"],
  .voters-premium-table tbody td[data-label="Ações"]{grid-column:1/-1!important}
  .voters-premium-table tbody td[data-label="Ações"]{border-bottom:0!important}
  .family-name-cell{max-width:none!important}
  .premium-actions{justify-content:flex-end!important}
  .premium-actions .btn{width:auto!important;min-width:40px!important;padding:0 11px!important}
  .premium-actions .btn span{display:inline!important}
  .voter-title-popover{left:0!important;right:auto!important;max-width:min(270px,calc(100vw - 54px))!important}
}

@media(max-width:620px){
  .voters-filter-form-v30{grid-template-columns:minmax(0,1fr)!important}
  .voters-filter-button-pair{grid-column:auto!important;display:grid!important;grid-template-columns:1fr 1fr!important}
  .voters-filter-button-pair .btn{min-width:0!important;width:100%!important}
  .voters-premium-table tbody tr{grid-template-columns:1fr!important}
  .voters-premium-table tbody td{grid-column:1/-1!important}
  .regular-batch-toolbar{display:grid!important;grid-template-columns:1fr!important}
  .regular-batch-toolbar .btn{width:100%!important}
  .copy-toast{bottom:16px;max-width:calc(100vw - 30px);text-align:center}
}

/* Ajustes finais da faixa de pendências V30.1 */
.regular-pending-alert{
  min-height:50px!important;
  padding:11px 15px!important;
  margin-bottom:16px!important;
  border-radius:14px!important;
  border:1px solid #f0d184!important;
  background:linear-gradient(90deg,#fffaf0,#fffdf8)!important;
  color:#7a5200!important;
  box-shadow:0 7px 18px rgba(123,82,0,.05)!important;
  font-size:12px!important;
}
.regular-pending-alert>i{width:28px;height:28px;min-width:28px;border-radius:9px;background:#fff1c5;display:grid;place-items:center;color:#9a6600}
.regular-pending-alert strong{color:#704800}

/* V31 - Gestão de Pessoas */
.youth-title-confirm{border:1px solid #bcd3ff;background:#f5f9ff;border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:7px}
.youth-title-confirm[hidden]{display:none!important}.youth-title-option{display:flex;align-items:center;gap:10px;font-weight:800;color:#0a377a;cursor:pointer}.youth-title-option input{width:18px!important;height:18px!important;min-width:18px!important}.youth-title-confirm small{color:#607596;line-height:1.45}
.inline-title-form{display:grid;gap:10px;min-width:260px}.inline-title-form label{font-size:11px;font-weight:800;color:#607596;text-transform:uppercase;letter-spacing:.04em}.inline-title-form input{width:100%;min-width:0;box-sizing:border-box;border:1px solid #ccdaef;border-radius:10px;padding:9px 10px;background:#fff;color:#0b2f68;font-weight:700}.inline-title-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inline-title-actions{display:flex;gap:8px;flex-wrap:wrap}.inline-title-actions .btn{flex:1;justify-content:center}.inline-title-status{min-height:18px;font-size:12px;font-weight:700}.inline-title-status.is-ok{color:#15803d}.inline-title-status.is-error{color:#b91c1c}
.voter-title-details.is-editable .voter-title-popover{width:min(330px,calc(100vw - 30px));padding:14px}
.voter-form input[name="full_name"],.voter-form input[name="mother_name"],.voter-form input[name="father_name"]{text-transform:uppercase}
@media(max-width:720px){.inline-title-two{grid-template-columns:1fr 1fr}.voter-title-details.is-editable .voter-title-popover{left:auto;right:0;max-width:calc(100vw - 24px)}.youth-title-confirm{padding:12px}}

/* =========================================================
   V31.2 — TODOS OS CADASTROS: CARDS MOBILE + SCROLL INFINITO
   ========================================================= */
.voters-infinite-footer{
  display:grid;
  place-items:center;
  min-height:82px;
  margin:10px 0 22px;
  padding:12px;
}
.voters-infinite-footer[hidden]{display:none!important}
.voters-infinite-status{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:44px;
  padding:9px 13px;
  border:1px solid #dce8f4;
  border-radius:13px;
  background:#f8fbff;
  color:#607895;
  font-size:11px;
  font-weight:700;
  text-align:center;
}
.voters-infinite-status>i{color:#1469c7}
.voters-infinite-sentinel{width:100%;height:2px;pointer-events:none}

@media(max-width:900px){
  /*
   * Há regras antigas mais específicas em .table.voters-compact-table.
   * Este seletor intencionalmente possui especificidade maior para retirar
   * o min-width da tabela no mobile e impedir nomes quebrados letra a letra.
   */
  .table.voters-compact-table.voters-premium-table{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:auto!important;
  }
  .table.voters-compact-table.voters-premium-table thead{display:none!important}
  .table.voters-compact-table.voters-premium-table tbody{
    display:grid!important;
    width:100%!important;
    min-width:0!important;
    gap:12px!important;
  }
  .table.voters-compact-table.voters-premium-table tbody tr{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    width:100%!important;
    min-width:0!important;
    padding:0!important;
    border:1px solid #dbe7f3!important;
    border-radius:17px!important;
    overflow:visible!important;
    background:#fff!important;
    box-shadow:0 8px 24px rgba(25,76,126,.07)!important;
  }
  .table.voters-compact-table.voters-premium-table tbody td{
    display:block!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    padding:11px 12px!important;
    border:0!important;
    border-bottom:1px solid #edf3f8!important;
    background:#fff!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }
  .table.voters-compact-table.voters-premium-table tbody td:before{
    content:attr(data-label)!important;
    display:block!important;
    margin-bottom:6px!important;
    color:#8090a4!important;
    font:800 8.5px/1 Poppins,sans-serif!important;
    text-transform:uppercase!important;
    letter-spacing:.07em!important;
  }
  .table.voters-compact-table.voters-premium-table tbody .select-col{
    display:flex!important;
    align-items:center!important;
    grid-column:1/-1!important;
    min-height:42px!important;
    padding:9px 12px!important;
    background:#f7faff!important;
    border-radius:17px 17px 0 0!important;
    border-bottom:1px solid #e8f0f8!important;
  }
  .table.voters-compact-table.voters-premium-table tbody .select-col:before{display:none!important;content:none!important}
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Nome"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Mãe"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Pai"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Ações"]{
    grid-column:1/-1!important;
  }
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Ações"]{
    border-bottom:0!important;
    border-radius:0 0 17px 17px!important;
  }
  .voters-premium-table .voter-name-text,
  .voters-premium-table .family-name-cell,
  .voters-premium-table .data-compact-value{
    display:block!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }
  .voters-premium-table .voter-name-text{
    font-size:14px!important;
    line-height:1.4!important;
    color:#0d3e74!important;
  }
  .voters-premium-table .family-name-cell{font-size:12px!important;line-height:1.45!important}
  .voters-premium-table .table-value-with-copy{align-items:flex-start!important;width:100%!important}
  .voters-premium-table .regular-inline-wrap{width:100%!important;min-width:0!important}
  .voters-premium-table .regular-inline-select{width:100%!important;min-width:0!important;max-width:none!important}
  .voters-premium-table .voter-title-details{width:100%!important;min-width:0!important}
  .voters-premium-table .voter-title-details>summary{width:100%!important;justify-content:flex-start!important}
  .voters-premium-table .premium-actions{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
    width:100%!important;
  }
  .voters-premium-table .premium-actions .btn{
    width:100%!important;
    min-width:0!important;
    height:39px!important;
    padding:0 8px!important;
  }
  .voters-premium-table .premium-actions .btn span{display:inline!important}
  .voters-infinite-footer{margin-top:2px;padding-top:5px}
  .voters-infinite-status{width:100%;max-width:460px;flex-wrap:wrap}
}

@media(max-width:480px){
  .voters-table-wrap.voters-table-v30{width:100%!important;max-width:100%!important;margin:0!important}
  .table.voters-compact-table.voters-premium-table tbody tr{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Nome"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Mãe"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Pai"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Documento"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Ações"]{
    grid-column:1/-1!important;
  }
  .table.voters-compact-table.voters-premium-table tbody td[data-label="CPF"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Nascimento"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Regular"]{
    grid-column:auto!important;
  }
  .voters-premium-table .voter-title-popover{
    left:0!important;
    right:auto!important;
    width:min(270px,calc(100vw - 52px))!important;
    max-width:calc(100vw - 52px)!important;
  }
  .voters-premium-table .premium-actions .btn span{font-size:10px!important}
}


/* =========================================================
   V31.3 — LISTA DE PESSOAS: STATUS, FILTRO LÍDER E MODAL DOC
   ========================================================= */

/* Novo filtro por líder no Administrador e no Gestor */
@media(min-width:1281px){
  .voters-filter-form-v30{
    grid-template-columns:minmax(220px,1.25fr) minmax(170px,.78fr) minmax(180px,.82fr) minmax(130px,.52fr) minmax(180px,.78fr)!important;
  }
  .voters-filter-button-pair{grid-column:1/-1!important;justify-content:flex-end!important}
}
@media(min-width:901px) and (max-width:1280px){
  .voters-filter-form-v30{
    grid-template-columns:minmax(210px,1.15fr) minmax(175px,.85fr) minmax(185px,.9fr)!important;
  }
  .voters-filter-button-pair{grid-column:1/-1!important;justify-content:flex-end!important}
}

/* Cores por situação — também valem para a tabela no desktop */
.table.voters-compact-table.voters-premium-table tbody tr.voter-row-complete td{
  background:#f0faf4!important;
  border-bottom-color:#d8eee0!important;
}
.table.voters-compact-table.voters-premium-table tbody tr.voter-row-complete:hover td{
  background:#e8f7ee!important;
}
.table.voters-compact-table.voters-premium-table tbody tr.voter-row-irregular td{
  background:#fff1f0!important;
  border-bottom-color:#f1d5d2!important;
}
.table.voters-compact-table.voters-premium-table tbody tr.voter-row-irregular:hover td{
  background:#ffe9e7!important;
}
.table.voters-compact-table.voters-premium-table tbody tr.voter-row-complete td:first-child{
  box-shadow:inset 4px 0 #25a55f;
}
.table.voters-compact-table.voters-premium-table tbody tr.voter-row-irregular td:first-child{
  box-shadow:inset 4px 0 #d64545;
}

/* Popover Documento — sem estouro, com X */
.voter-title-details[open]{z-index:90!important}
.voter-title-popover{
  box-sizing:border-box!important;
  max-width:calc(100vw - 32px)!important;
}
.voter-title-popover-close{
  position:absolute;
  top:8px;
  right:8px;
  width:30px;
  height:30px;
  min-width:30px;
  padding:0!important;
  display:grid;
  place-items:center;
  border:0;
  border-radius:9px;
  background:#eef4fa;
  color:#52677f;
  cursor:pointer;
  z-index:3;
}
.voter-title-popover-close:hover{background:#e2edf8;color:#174f89}
.inline-title-form{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  padding-top:18px;
}
.inline-title-form>div,
.inline-title-two,
.inline-title-two>div{min-width:0!important;max-width:100%!important}
.inline-title-form input{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

/* Mobile: card mais compacto e os pares pedidos lado a lado */
@media(max-width:900px){
  .table.voters-compact-table.voters-premium-table tbody td[data-label="CPF"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Nascimento"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Regular"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Documento"]{
    grid-column:auto!important;
  }

  .table.voters-compact-table.voters-premium-table tbody td[data-label="Mãe"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Pai"]{
    grid-column:1/-1!important;
  }
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Mãe"]{
    border-bottom:0!important;
    padding-bottom:5px!important;
  }
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Pai"]{
    padding-top:5px!important;
  }

  /* Cor do card inteiro */
  .table.voters-compact-table.voters-premium-table tbody tr.voter-row-complete{
    border-color:#a9dcbc!important;
    background:#f0faf4!important;
    box-shadow:0 8px 24px rgba(26,128,72,.09)!important;
  }
  .table.voters-compact-table.voters-premium-table tbody tr.voter-row-irregular{
    border-color:#efb7b2!important;
    background:#fff1f0!important;
    box-shadow:0 8px 24px rgba(185,51,51,.08)!important;
  }
  .table.voters-compact-table.voters-premium-table tbody tr.voter-row-complete td{
    background:#f0faf4!important;
  }
  .table.voters-compact-table.voters-premium-table tbody tr.voter-row-complete .select-col{
    background:#e5f6eb!important;
  }
  .table.voters-compact-table.voters-premium-table tbody tr.voter-row-irregular td{
    background:#fff1f0!important;
  }
  .table.voters-compact-table.voters-premium-table tbody tr.voter-row-irregular .select-col{
    background:#ffe5e2!important;
  }

  /*
   * No mobile o editor de Documento vira um modal centralizado.
   * O clique fora é tratado pelo JS e o ::before cria o fundo escuro.
   */
  .voter-title-details.is-editable[open]::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:2599;
    background:rgba(4,20,46,.58);
    backdrop-filter:blur(2px);
  }
  .voters-premium-table .voter-title-details.is-editable .voter-title-popover{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    top:50%!important;
    bottom:auto!important;
    transform:translate(-50%,-50%)!important;
    width:min(340px,calc(100vw - 28px))!important;
    max-width:calc(100vw - 28px)!important;
    max-height:calc(100dvh - 28px)!important;
    overflow:auto!important;
    margin:0!important;
    padding:14px!important;
    z-index:2600!important;
    border-radius:18px!important;
    box-shadow:0 28px 80px rgba(3,31,70,.34)!important;
  }
  .voters-premium-table .voter-title-details.is-editable .inline-title-form{
    padding-top:22px!important;
  }
}

@media(max-width:480px){
  /* Mantém CPF + nascimento e Regular + Documento em duas colunas */
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Documento"]{
    grid-column:auto!important;
  }
  .table.voters-compact-table.voters-premium-table tbody td[data-label="CPF"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Nascimento"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Regular"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Documento"]{
    min-width:0!important;
  }
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Regular"]{
    padding-right:7px!important;
  }
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Documento"]{
    padding-left:7px!important;
  }
  .voters-premium-table .regular-inline-select{
    font-size:10px!important;
    padding-left:10px!important;
    padding-right:26px!important;
  }
  .voters-premium-table .voter-title-details>summary{
    min-width:0!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
}

/* =========================================================
   V31.6 — DASHBOARD CLICÁVEL, STATUS E PERMISSÕES
   ========================================================= */

/* Cards métricos da primeira página agora funcionam como atalhos. */
.dashboard-metric-links .metric-link{
  color:inherit;
  cursor:pointer;
  text-decoration:none;
  position:relative;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.dashboard-metric-links .metric-link:hover{
  transform:translateY(-3px);
  border-color:#b9d3f2;
  box-shadow:0 16px 34px rgba(17,72,133,.12);
}
.dashboard-metric-links .metric-link:focus-visible{
  outline:3px solid rgba(21,101,216,.22);
  outline-offset:3px;
}

/*
 * Reforço visual do Regular/Irregular.
 * Além das classes, usa data-regular-state para não depender de cache antigo do JS.
 */
.table.voters-compact-table.voters-premium-table tbody tr[data-regular-state="0"] td{
  background:#fff1f0!important;
  border-bottom-color:#f1d5d2!important;
}
.table.voters-compact-table.voters-premium-table tbody tr[data-regular-state="0"]:hover td{
  background:#ffe9e7!important;
}
.table.voters-compact-table.voters-premium-table tbody tr[data-regular-state="0"] td:first-child{
  box-shadow:inset 4px 0 #d64545!important;
}
.table.voters-compact-table.voters-premium-table tbody tr[data-regular-state="1"][data-title-complete="1"] td{
  background:#f0faf4!important;
  border-bottom-color:#d8eee0!important;
}
.table.voters-compact-table.voters-premium-table tbody tr[data-regular-state="1"][data-title-complete="1"] td:first-child{
  box-shadow:inset 4px 0 #25a55f!important;
}

/* Três níveis de permissão na mesma linha no desktop. */
.permission-level-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.team-invite-level-status{
  margin-bottom:0;
}
.individual-team-invite-card .invite-form{
  align-items:end;
}

@media(max-width:1050px){
  .permission-level-grid{grid-template-columns:1fr}
}

@media(max-width:900px){
  .table.voters-compact-table.voters-premium-table tbody tr[data-regular-state="0"]{
    border-color:#efb7b2!important;
    background:#fff1f0!important;
    box-shadow:0 8px 24px rgba(185,51,51,.08)!important;
  }
  .table.voters-compact-table.voters-premium-table tbody tr[data-regular-state="0"] td{
    background:#fff1f0!important;
  }
  .table.voters-compact-table.voters-premium-table tbody tr[data-regular-state="0"] .select-col{
    background:#ffe5e2!important;
  }
  .table.voters-compact-table.voters-premium-table tbody tr[data-regular-state="1"][data-title-complete="1"]{
    border-color:#a9dcbc!important;
    background:#f0faf4!important;
    box-shadow:0 8px 24px rgba(26,128,72,.09)!important;
  }
  .table.voters-compact-table.voters-premium-table tbody tr[data-regular-state="1"][data-title-complete="1"] td{
    background:#f0faf4!important;
  }
  .dashboard-metric-links .metric-link:hover{transform:none}
}



/* =========================================================
   V31.10 — SEGUNDA SENHA + REFERÊNCIAS INTERNAS
   ========================================================= */
.protected-nav-open{background:#dcfce7!important;color:#147d43!important}
.protected-top-open{border-color:#9ad8b6!important;background:#effcf5!important;color:#147d43!important}
@media(max-width:900px){
  /* Mantém Regular + Cadastro/Título lado a lado no card mobile. */
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Cadastro"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Título"]{
    grid-column:auto!important;
    min-width:0!important;
  }
}
@media(max-width:480px){
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Cadastro"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Título"]{
    grid-column:auto!important;
    min-width:0!important;
    padding-left:7px!important;
  }
}

/* =========================================================
   V31.12 · Certidões e validação interna
   ========================================================= */
.validation-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;font-weight:800;font-size:.82rem;white-space:nowrap;border:1px solid transparent}
.validation-pill.validation-confirmed,.certificate-state-card.validation-confirmed,.certificate-stats-grid .validation-confirmed{background:#ecfdf3;color:#087443;border-color:#a7e7c4}
.validation-pill.validation-cancelled,.certificate-state-card.validation-cancelled,.certificate-stats-grid .validation-cancelled{background:#fff0f0;color:#a61b1b;border-color:#ffc9c9}
.validation-pill.validation-pending,.certificate-state-card.validation-pending,.certificate-stats-grid .validation-pending{background:#fff4df;color:#995700;border-color:#f2c36b}
tr.validation-confirmed>td{background:rgba(26,166,92,.045)}
tr.validation-cancelled>td{background:rgba(217,50,50,.05)}
tr.validation-pending>td{background:rgba(236,156,32,.07)}
.certificate-action{background:#eef5ff;color:#0a4da6;border:1px solid #c6dcfa}
.certificate-action.validation-confirmed{background:#e8f8ef;color:#087443;border-color:#a7e7c4}
.certificate-action.validation-cancelled{background:#ffeded;color:#a61b1b;border-color:#ffc9c9}
.certificate-action.validation-pending{background:#fff4df;color:#995700;border-color:#f2c36b}
.certificate-overview-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:16px;margin-bottom:16px}
.certificate-person-card,.certificate-state-card{display:flex;align-items:center;gap:16px;min-height:110px}
.certificate-person-card>div,.certificate-state-card{min-width:0}
.certificate-person-card small,.certificate-state-card small,.certificate-reference-grid small,.validation-document-body small{display:block;color:#6d7f94;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:5px}
.certificate-person-card strong{display:block;font-size:1.1rem;color:#0b3978;overflow-wrap:anywhere}
.certificate-person-card span{display:block;color:#6a7d93;margin-top:5px}
.certificate-person-icon{width:52px;height:52px;border-radius:16px;background:#eaf3ff;color:#1265d6;display:grid;place-items:center;font-size:1.25rem;flex:none}
.certificate-state-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;border:1px solid transparent}
.certificate-state-card strong{font-size:1.18rem;display:flex;align-items:center;gap:8px}
.certificate-state-card span{font-size:.85rem;opacity:.82}
.certificate-reference-card{margin-bottom:16px}
.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.section-title-row small{display:block;color:#73869b;font-weight:800;letter-spacing:.08em;font-size:.7rem}
.section-title-row h2{margin:2px 0 0;color:#0b3978;font-size:1.12rem}
.section-title-icon{color:#176bd7;font-size:1.35rem}
.certificate-reference-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.certificate-reference-grid>div{padding:14px;border-radius:14px;background:#f7faff;border:1px solid #e0e9f5;min-width:0}
.certificate-reference-grid strong{display:block;color:#0b3978;overflow-wrap:anywhere}
.certificate-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:16px}
.certificate-form{display:grid;gap:14px}
.certificate-form input[type=file]{width:100%;max-width:100%;box-sizing:border-box;padding:12px;border:1px dashed #b9cee9;border-radius:12px;background:#f8fbff}
.field-help{display:block;margin-top:6px;color:#7a8ba0;font-size:.78rem}
.certificate-file-info{display:flex;align-items:center;gap:14px;padding:14px;border-radius:14px;background:#f8fbff;border:1px solid #e0e9f5}
.certificate-file-info>div{min-width:0}
.certificate-file-info strong{display:block;overflow-wrap:anywhere;color:#123c75}
.certificate-file-info small{display:block;color:#75879b;margin-top:4px}
.certificate-file-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:#e8f2ff;color:#1265d6;font-size:1.15rem;flex:none}
.certificate-file-actions{margin-top:14px;align-items:center;flex-wrap:wrap}
.certificate-file-actions form{margin:0}
.certificate-stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:16px}
.certificate-stats-grid .card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;border:1px solid #e2eaf4}
.certificate-stats-grid .card>i{grid-row:1/3;width:42px;height:42px;border-radius:13px;background:rgba(18,101,214,.1);display:grid;place-items:center;color:#1265d6}
.certificate-stats-grid .card strong{font-size:1.25rem;color:#0b3978}
.certificate-stats-grid .card span{font-size:.78rem;color:#708197}
.table-subline{display:block;margin-top:5px;color:#75879b;font-size:.75rem}
.team-validation-table .table th:nth-child(1){min-width:230px}
.team-validation-table .table th:last-child{min-width:250px}
.validation-card-page{max-width:920px;margin:0 auto}
.validation-document{background:#fff;border:1px solid #d9e4f1;border-radius:24px;box-shadow:0 20px 55px rgba(18,57,100,.10);overflow:hidden}
.validation-document.validation-confirmed{border-top:6px solid #19a862}
.validation-document.validation-cancelled{border-top:6px solid #d83232}
.validation-document.validation-pending{border-top:6px solid #e59a23}
.validation-document-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:28px 30px;border-bottom:1px solid #e7edf5}
.validation-document-head small{font-size:.72rem;font-weight:800;letter-spacing:.1em;color:#71849a}
.validation-document-head h1{margin:3px 0 0;color:#0a3978;font-size:1.7rem}
.validation-status-seal{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;font-weight:800}
.validation-confirmed .validation-status-seal{background:#e9f9f0;color:#087443}
.validation-cancelled .validation-status-seal{background:#ffeded;color:#a61b1b}
.validation-pending .validation-status-seal{background:#fff0cf;color:#995700}
.validation-document-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0 30px}
.validation-document-body>div{padding:20px 10px;border-bottom:1px solid #edf1f6;min-width:0}
.validation-document-body .validation-person{grid-column:1/-1}
.validation-document-body strong{display:block;color:#123c75;overflow-wrap:anywhere}
.validation-document-foot{display:flex;justify-content:space-between;gap:15px;padding:18px 30px;color:#6f8196;font-size:.78rem;background:#f8fbff}
.validation-document-foot span{display:flex;align-items:center;gap:7px}
.validation-print-actions{justify-content:flex-end;margin-top:16px}
.empty-state.compact{padding:28px;text-align:center;color:#6f8298}.empty-state.compact i{display:block;font-size:1.8rem;margin-bottom:10px}

@media(max-width:900px){
  .certificate-overview-grid,.certificate-layout{grid-template-columns:1fr}
  .certificate-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .certificate-reference-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .certificate-overview-grid{gap:10px}
  .certificate-reference-grid{grid-template-columns:1fr 1fr;gap:8px}
  .certificate-reference-grid>div{padding:11px}
  .certificate-stats-grid{grid-template-columns:1fr 1fr;gap:9px}
  .certificate-stats-grid .card{padding:12px;column-gap:8px}
  .certificate-stats-grid .card>i{width:36px;height:36px;border-radius:11px}
  .certificate-drive-filter .voters-filter-form{grid-template-columns:1fr}
  .validation-document-head{padding:20px;flex-direction:column}
  .validation-document-head h1{font-size:1.35rem}
  .validation-document-body{grid-template-columns:1fr 1fr;padding:0 16px}
  .validation-document-body>div{padding:15px 8px}
  .validation-document-body .validation-person{grid-column:1/-1}
  .validation-document-foot{padding:15px 20px;flex-direction:column}
  .team-validation-table.table-wrap{background:transparent;border:0;box-shadow:none;padding:0}
  .team-validation-table table[data-mobile-mode="cards"] tbody tr{border-radius:18px;overflow:hidden;margin-bottom:12px;border:1px solid #dfe7f1;background:#fff}
  .team-validation-table table[data-mobile-mode="cards"] tbody tr.validation-confirmed{border-color:#a7e7c4;background:#f4fcf7}
  .team-validation-table table[data-mobile-mode="cards"] tbody tr.validation-cancelled{border-color:#ffc9c9;background:#fff7f7}
  .team-validation-table table[data-mobile-mode="cards"] tbody tr.validation-pending{border-color:#f2c36b;background:#fffaf0}
  .team-validation-table .voter-action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .team-validation-table .voter-action-buttons .btn{justify-content:center;min-width:0}
}
@media print{
  .sidebar,.topbar,.validation-print-actions,.mobile-bottom-nav{display:none!important}
  .main{margin:0!important;padding:0!important}.content{padding:0!important}.validation-card-page{max-width:none}.validation-document{box-shadow:none;border-radius:0}
}

/* =========================================================
   V31.13 · Privacidade operacional + exclusão definitiva
   ========================================================= */
.public-team-summary{margin-bottom:16px}
.public-team-summary .validation-confirmed{border-color:#a7e7c4;background:#f1fbf5}
.public-team-summary .validation-cancelled{border-color:#ffc9c9;background:#fff3f3}
.public-team-summary .validation-pending{border-color:#f2c36b;background:#fff8e8}
.public-team-summary .validation-confirmed strong,.public-team-summary .validation-confirmed>i{color:#087443}
.public-team-summary .validation-cancelled strong,.public-team-summary .validation-cancelled>i{color:#a61b1b}
.public-team-summary .validation-pending strong,.public-team-summary .validation-pending>i{color:#a86100}
.protected-ref-value{font-variant-numeric:tabular-nums;letter-spacing:.04em;color:#123c75}
.move-voter-details{position:relative;display:inline-block}
.move-voter-details>summary{list-style:none;cursor:pointer}
.move-voter-details>summary::-webkit-details-marker{display:none}
.privacy-safe-move-form{position:absolute;right:0;top:calc(100% + 8px);z-index:80;width:min(320px,calc(100vw - 32px));padding:14px;background:#fff;border:1px solid #dce7f3;border-radius:16px;box-shadow:0 18px 45px rgba(3,31,70,.18);display:grid;gap:10px}
.privacy-safe-move-form label{font-size:.75rem;font-weight:800;color:#52677f}
.privacy-safe-move-form select{width:100%;min-width:0}

.team-delete-choice-form{display:grid;gap:11px;margin-top:16px}
.team-delete-option{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:14px;border:1px solid #dbe6f2;border-radius:16px;background:#f8fbff;cursor:pointer;transition:.18s ease}
.team-delete-option:hover{border-color:#a9c9ef;background:#f3f8ff}
.team-delete-option input{margin-top:5px}
.team-delete-option>span{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;min-width:0}
.team-delete-option>span>i{grid-row:1/3;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e7f1ff;color:#1265d6}
.team-delete-option b{color:#123c75}
.team-delete-option small{display:block;color:#6f8196;line-height:1.4;margin-top:3px}
.team-delete-option.is-danger{background:#fff8f8;border-color:#f2d5d5}
.team-delete-option.is-danger>span>i{background:#ffe9e9;color:#b42323}
.team-delete-option.is-danger b{color:#a61b1b}
.team-delete-option:has(input:checked){border-color:#7eb1eb;box-shadow:0 0 0 3px rgba(18,101,214,.08)}
.team-delete-option.is-danger:has(input:checked){border-color:#e49393;box-shadow:0 0 0 3px rgba(196,39,39,.07)}

.certificate-upload-modal-card{width:min(100%,610px)}
.certificate-modal-form{display:grid;gap:15px;margin-top:16px}
.certificate-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:210px;padding:24px;border:2px dashed #b8d0ec;border-radius:20px;background:linear-gradient(180deg,#f9fcff,#f2f7fd);cursor:pointer;transition:.18s ease;overflow:hidden}
.certificate-dropzone:hover{border-color:#5c9be2;background:#f0f7ff}
.certificate-dropzone input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.certificate-drop-icon{width:58px;height:58px;border-radius:18px;background:#e3f0ff;color:#1265d6;display:grid;place-items:center;font-size:1.35rem;margin-bottom:12px}
.certificate-dropzone strong{font:800 1rem Poppins,sans-serif;color:#123c75}
.certificate-dropzone small{margin-top:5px;color:#708399;font-size:.78rem}
.certificate-dropzone em{display:block;max-width:100%;margin-top:12px;padding:7px 10px;border-radius:999px;background:#fff;border:1px solid #dfe9f4;color:#4a6078;font-style:normal;font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.privacy-credential .validation-document-body{grid-template-columns:repeat(2,minmax(0,1fr))}
.privacy-credential .validation-person{grid-column:1/-1}

@media(max-width:640px){
  .public-team-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .public-team-summary .counter-mini{padding:11px 8px;min-width:0}
  .public-team-summary .counter-mini strong{font-size:1.08rem}
  .public-team-summary .counter-mini span{font-size:.66rem}
  .public-team-summary .counter-mini>i{display:none}
  .privacy-safe-move-form{position:fixed;left:50%;right:auto;top:50%;transform:translate(-50%,-50%);z-index:2500}
  .certificate-upload-modal-card{width:100%;padding:18px 14px}
  .certificate-dropzone{min-height:180px;padding:18px}
  .privacy-credential .validation-document-body{grid-template-columns:1fr 1fr}
}

/* ============================================================
   V31.14 - identidade neutra + modal de arquivo no desktop
   ============================================================ */
.brand-link{display:block;text-decoration:none;color:inherit}.neutral-brand-text{display:flex!important;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;padding:10px 14px;text-decoration:none}.neutral-brand-text strong{font:800 1.7rem/1 Poppins,sans-serif;letter-spacing:-.04em;color:#0b3e88}.neutral-brand-text strong span{color:#1785e5}.neutral-brand-text small{font:600 .62rem/1.25 Poppins,sans-serif;color:#62738b;letter-spacing:.02em;margin-top:5px}.login-brand-pro .neutral-brand-text,.public-register-brand .neutral-brand-text{align-items:center;text-align:center;padding:8px 10px}.login-brand-pro .neutral-brand-text strong,.public-register-brand .neutral-brand-text strong{font-size:2.15rem}.login-brand-pro .neutral-brand-text small,.public-register-brand .neutral-brand-text small{font-size:.7rem}.app-brand-image{display:block}.app-brand-image img{max-width:100%;height:auto}.dashboard-basic-only{grid-template-columns:repeat(2,minmax(0,1fr));max-width:780px}.compact-hero{padding-top:20px;padding-bottom:20px}.compact-hero h1{margin:0}

.certificate-upload-modal-card{width:min(94vw,780px)!important;max-width:780px!important;padding:28px!important;overflow:visible}.certificate-upload-modal-card .modal-heading{margin-bottom:20px}.certificate-upload-modal-card .modal-heading p{margin:3px 0 0;color:#687c93;font-size:.78rem;font-weight:600}.certificate-modal-form{display:block!important;margin-top:0!important}.certificate-modal-grid{display:grid;grid-template-columns:minmax(250px,310px) minmax(260px,1fr);gap:24px;align-items:stretch}.certificate-dropzone{min-height:250px!important;height:100%;padding:26px!important}.certificate-modal-side{display:flex;flex-direction:column;min-width:0;padding:4px 0}.certificate-status-field label{display:block;margin-bottom:8px;font-weight:700;color:#24476e}.certificate-status-field select{width:100%;min-width:0;height:50px}.certificate-modal-actions{display:flex;gap:10px;margin-top:auto;padding-top:22px}.certificate-modal-actions .btn{flex:1;min-width:0;justify-content:center;min-height:48px}.certificate-dropzone em{max-width:220px}

@media(max-width:760px){.dashboard-basic-only{grid-template-columns:1fr 1fr}.certificate-upload-modal-card{width:min(100%,610px)!important;max-width:610px!important;padding:18px 14px!important;overflow:auto}.certificate-modal-grid{grid-template-columns:1fr;gap:14px}.certificate-dropzone{min-height:180px!important;padding:18px!important}.certificate-modal-side{padding:0}.certificate-modal-actions{padding-top:4px;display:grid;grid-template-columns:1fr 1fr}.certificate-dropzone em{max-width:100%}}
@media(max-width:480px){.dashboard-basic-only{grid-template-columns:1fr}.neutral-brand-text strong{font-size:1.55rem}}

/* V31.14 - ajustes finais de identidade */
.sidebar .neutral-brand-text strong{color:#fff}.sidebar .neutral-brand-text strong span{color:#69c7ff}.sidebar .neutral-brand-text small{color:#c9ddf6}.pwa-brand-preview{width:auto!important;height:auto!important;min-width:180px;min-height:72px;padding:10px 14px!important;border-radius:18px!important;background:#f6faff!important}.pwa-brand-preview .pwa-brand-render{display:flex!important;align-items:center;justify-content:center;width:100%;padding:0!important;margin:0!important;border:0!important}.pwa-brand-preview .pwa-brand-render img{display:block;max-width:190px;max-height:62px;width:auto;height:auto}.pwa-brand-preview .neutral-brand-text{align-items:center;text-align:center;padding:2px 6px}.pwa-brand-preview .neutral-brand-text strong{font-size:1.65rem}.pwa-brand-preview .neutral-brand-text small{font-size:.58rem}

/* SisCamp V31.19 — limites e status por liderança */
.leader-title-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.leader-title-stat{display:flex;align-items:center;gap:7px;padding:9px 10px;border-radius:12px;font-size:12px;font-weight:700;background:#f5f7fb;border:1px solid #e4eaf3;color:#334155}
.leader-title-stat b{font-size:16px;color:#0f2f63}
.leader-title-stat.is-valid{background:#ecfdf3;border-color:#bbf7d0;color:#166534}
.leader-title-stat.is-invalid{background:#fff1f2;border-color:#fecdd3;color:#b91c1c}
.leader-title-stat.is-pending{background:#fff8e7;border-color:#fde7a9;color:#8a5b00}
.leader-capacity-box{display:grid;grid-template-columns:minmax(150px,1fr) minmax(220px,1.2fr) auto;gap:10px;align-items:end;margin-top:12px;padding:12px;border-radius:14px;background:#f8fbff;border:1px solid #dbe8f6}
.leader-capacity-summary{display:flex;flex-direction:column;gap:2px}.leader-capacity-summary small{font-size:11px;font-weight:700;text-transform:uppercase;color:#6b7f99}.leader-capacity-summary strong{font-size:22px;color:#0a3d91}.leader-capacity-summary span{font-size:12px;color:#64748b}
.leader-limit-form{display:grid;grid-template-columns:auto minmax(100px,1fr) auto;gap:8px;align-items:center}.leader-limit-form label{margin:0;font-size:12px}.leader-limit-form input{min-width:0}
.leader-registration-toggle{display:flex;justify-content:flex-end}
@media(max-width:860px){.leader-capacity-box{grid-template-columns:1fr}.leader-title-status-grid{grid-template-columns:1fr 1fr}.leader-title-stat.is-pending{grid-column:1/-1}.leader-limit-form{grid-template-columns:auto 1fr auto}.leader-registration-toggle{justify-content:stretch}.leader-registration-toggle .btn{width:100%}}
@media(max-width:520px){.leader-title-status-grid{grid-template-columns:1fr}.leader-title-stat.is-pending{grid-column:auto}.leader-limit-form{grid-template-columns:1fr}.leader-limit-form label{display:none}.leader-limit-form .btn{width:100%}}

/* ============================================================
   SisCamp V31.20 — cards de responsáveis + limite AJAX
   ============================================================ */
.leader-card-pro{gap:13px}
.leader-capacity-featured{
  display:grid;
  grid-template-columns:minmax(190px,.8fr) minmax(330px,1.45fr);
  grid-template-areas:"main controls" "progress progress" "status status";
  gap:12px 18px;
  align-items:center;
  margin-top:0;
  padding:15px 16px 13px;
  border-radius:16px;
  border:1px solid #cfe0f4;
  background:linear-gradient(135deg,#f7fbff 0%,#edf6ff 100%);
  box-shadow:0 8px 22px rgba(22,87,160,.07);
}
.leader-capacity-main{grid-area:main;display:flex;align-items:center;gap:12px;min-width:0}
.leader-capacity-icon{width:44px;height:44px;flex:0 0 44px;border-radius:13px;background:#ddecff;color:#0d62c7;display:grid;place-items:center;font-size:17px;box-shadow:inset 0 0 0 1px rgba(21,101,216,.06)}
.leader-capacity-summary{min-width:0;display:flex;flex-direction:column;gap:1px}
.leader-capacity-summary small{font:700 10px/1.2 Poppins,sans-serif;letter-spacing:.075em;text-transform:uppercase;color:#6c819a}
.leader-capacity-summary strong{font:800 24px/1.12 Poppins,sans-serif;color:#0a3d91;letter-spacing:-.025em}
.leader-capacity-summary span{font-size:11.5px;color:#637890}
.leader-capacity-controls{grid-area:controls;display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.leader-limit-form{display:grid;grid-template-columns:minmax(175px,1fr) auto;gap:8px;align-items:center;min-width:0;flex:1}
.leader-limit-input-shell{height:48px;min-width:0;display:flex;align-items:center;gap:10px;padding:5px 10px;border:1px solid #c8dbf0;border-radius:13px;background:#fff;box-shadow:0 4px 12px rgba(16,64,120,.05);transition:.2s}
.leader-limit-input-shell:focus-within{border-color:#5a9ff2;box-shadow:0 0 0 4px rgba(21,101,216,.09),0 5px 14px rgba(16,64,120,.06)}
.leader-limit-input-shell>i{width:28px;height:28px;border-radius:9px;background:#edf5ff;color:#1765c4;display:grid;place-items:center;font-size:12px;flex:0 0 28px}
.leader-limit-input-shell>div{min-width:0;flex:1;display:flex;flex-direction:column;gap:0}
.leader-limit-input-shell label{margin:0!important;font:700 9px/1.1 Poppins,sans-serif!important;text-transform:uppercase;letter-spacing:.065em;color:#7a8da5!important}
.leader-limit-input-shell input{width:100%;height:25px!important;min-width:0;border:0!important;border-radius:0!important;padding:0!important;background:transparent!important;box-shadow:none!important;outline:0!important;font:800 16px/1 Poppins,sans-serif;color:#173c6b}
.leader-limit-input-shell input::placeholder{font-weight:600;color:#9babbc}
.leader-limit-save{height:48px!important;min-width:92px;border-radius:13px!important}
.leader-registration-toggle{display:flex;justify-content:flex-end;flex:0 0 auto}
.leader-registration-toggle .btn{height:48px;border-radius:13px;white-space:nowrap}
.leader-capacity-progress{grid-area:progress;height:6px;border-radius:999px;background:#dce9f8;overflow:hidden}
.leader-capacity-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1565d8,#2296f3);transition:width .35s ease}
.leader-card-save-status{grid-area:status;font-size:11px;font-weight:700;border-radius:9px;padding:7px 9px;display:flex;align-items:center;gap:6px}
.leader-card-save-status:empty{display:none}
.leader-card-save-status.is-saving{background:#eff6ff;color:#1d5fae}
.leader-card-save-status.is-success{background:#ecfdf3;color:#13713e}
.leader-card-save-status.is-error{background:#fff1f2;color:#ae2534}
.leader-location-line{margin-top:0}
.leader-title-status-grid{margin-top:0}
.leader-region-form{display:none!important}

.leader-links-capacity{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:"icon copy" "progress progress";
  column-gap:12px;
  row-gap:10px;
  align-items:center;
  margin:0 0 14px;
  padding:14px 16px;
  border:1px solid #d3e3f5;
  border-radius:16px;
  background:linear-gradient(135deg,#f8fbff,#eef6ff);
  box-shadow:0 8px 22px rgba(13,73,143,.06);
}
.leader-links-capacity-icon{grid-area:icon;width:44px;height:44px;border-radius:13px;background:#dfeeff;color:#0e62c7;display:grid;place-items:center;font-size:17px}
.leader-links-capacity-copy{grid-area:copy;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:end;column-gap:10px;min-width:0}
.leader-links-capacity-copy small{grid-column:1/-1;font:700 10px/1.2 Poppins,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:#6f8298}
.leader-links-capacity-copy strong{font:800 23px/1.15 Poppins,sans-serif;color:#0a3d91;letter-spacing:-.02em}
.leader-links-capacity-copy span{font-size:12px;color:#64788f;align-self:center}
.leader-links-capacity-progress{grid-area:progress;height:6px;border-radius:999px;background:#dce9f8;overflow:hidden}
.leader-links-capacity-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1565d8,#2da1f5)}
.compact-links-capacity{margin-top:-6px;margin-bottom:14px}

@media(max-width:980px){
  .leader-capacity-featured{grid-template-columns:1fr;grid-template-areas:"main" "progress" "controls" "status"}
  .leader-capacity-controls{justify-content:stretch}
  .leader-limit-form{flex:1}
  .leader-registration-toggle .btn{width:100%}
}
@media(max-width:620px){
  .leader-capacity-featured{padding:13px;gap:10px}
  .leader-capacity-controls{display:grid;grid-template-columns:1fr}
  .leader-limit-form{grid-template-columns:1fr auto}
  .leader-limit-input-shell{height:46px}
  .leader-limit-save{height:46px!important;min-width:48px;width:48px;padding:0!important}
  .leader-limit-save .btn-label{display:none}
  .leader-registration-toggle{width:100%}
  .leader-registration-toggle .btn{height:44px}
  .leader-links-capacity{padding:12px 13px}
  .leader-links-capacity-copy strong{font-size:20px}
}


/* ============================================================
   SisCamp V31.23 — ação de liberar/bloquear cadastro
   ============================================================ */
.leader-card-actions .leader-registration-action{
  display:inline-flex;
  align-items:center;
  margin:0;
}
.leader-card-actions .leader-registration-control-btn{
  height:40px!important;
  min-height:40px!important;
  min-width:112px;
  padding:0 14px!important;
  border-radius:11px!important;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid transparent!important;
  box-shadow:none!important;
  font-weight:800!important;
  white-space:nowrap;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease;
}
.leader-card-actions .leader-registration-control-btn i{
  margin:0!important;
  width:15px;
  text-align:center;
  font-size:13px;
}
.leader-card-actions .leader-registration-control-btn.is-unlock{
  background:#ecfdf3!important;
  color:#087a3d!important;
  border-color:#aee9c5!important;
}
.leader-card-actions .leader-registration-control-btn.is-unlock:hover{
  background:#dcf8e8!important;
  border-color:#86d9a7!important;
  box-shadow:0 5px 14px rgba(8,122,61,.10)!important;
  transform:translateY(-1px);
}
.leader-card-actions .leader-registration-control-btn.is-lock{
  background:#fff1f2!important;
  color:#bd2637!important;
  border-color:#fec7ce!important;
}
.leader-card-actions .leader-registration-control-btn.is-lock:hover{
  background:#ffe4e7!important;
  border-color:#f6aeb8!important;
  box-shadow:0 5px 14px rgba(189,38,55,.09)!important;
  transform:translateY(-1px);
}
.leader-card-actions .leader-registration-control-btn:focus-visible{
  outline:0;
  box-shadow:0 0 0 4px rgba(21,101,216,.12)!important;
}

@media(max-width:700px){
  .leader-card-actions .leader-registration-control-btn{
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0!important;
    border-radius:11px!important;
  }
  .leader-card-actions .leader-registration-control-btn i{font-size:15px}
}

/* ============================================================
   SisCamp 4.0 - Premium admin surfaces (20/09/2026)
   Certidão · Cadastro em lote · Permissões de cadastro
   ============================================================ */
.premium-panel-card{
  border-color:#d9e5f3;
  box-shadow:0 18px 42px rgba(20,58,104,.08);
}
.premium-hero-main{display:flex;align-items:center;gap:18px;min-width:0;position:relative;z-index:1}
.premium-hero-icon{width:58px;height:58px;min-width:58px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.18);font-size:23px;box-shadow:inset 0 1px 0 rgba(255,255,255,.15)}
.premium-eyebrow{display:block;margin-bottom:5px;font:800 10px Poppins,sans-serif;letter-spacing:.14em;color:#cfe6ff}
.premium-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;position:relative;z-index:1}
.premium-hero-actions .btn.secondary{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.24);color:#fff;backdrop-filter:blur(7px)}
.premium-state-chip{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);font-size:12px;font-weight:800;color:#fff;white-space:nowrap}
.premium-state-chip.validation-confirmed{background:rgba(16,185,129,.18);border-color:rgba(167,243,208,.36);color:#effff7}
.premium-state-chip.validation-cancelled{background:rgba(239,68,68,.18);border-color:rgba(254,202,202,.34);color:#fff5f5}
.premium-state-chip.validation-pending{background:rgba(245,158,11,.18);border-color:rgba(253,230,138,.34);color:#fff9e8}
.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.section-title-row h2{margin:2px 0 0;font:800 18px Poppins,sans-serif;color:#103e75}
.section-title-row>div>small{display:block;color:#70849c;font-size:10px;font-weight:800;letter-spacing:.12em}
.section-title-row p{margin:5px 0 0;color:#71839a;font-size:12px;line-height:1.45}
.section-title-icon{width:44px;height:44px;min-width:44px;border-radius:14px;background:#edf5ff;color:#1265d6;display:grid;place-items:center;font-size:17px}

/* Certidão premium */
.certificate-premium-hero{display:flex;align-items:center;justify-content:space-between;gap:22px}
.certificate-workflow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:12px;align-items:center;margin:0 0 16px;padding:14px 16px;border:1px solid #dce8f5;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 10px 28px rgba(20,58,104,.05)}
.certificate-workflow>i{color:#a4b8cf;font-size:11px}
.certificate-workflow-step{display:flex;align-items:center;gap:11px;min-width:0}
.certificate-workflow-step>span{width:34px;height:34px;min-width:34px;border-radius:11px;display:grid;place-items:center;background:#edf2f8;color:#7890aa;font-weight:900;border:1px solid #dce6f1}
.certificate-workflow-step strong,.certificate-workflow-step small{display:block}
.certificate-workflow-step strong{font-size:12px;color:#264b73}
.certificate-workflow-step small{font-size:10px;color:#8192a6;margin-top:2px}
.certificate-workflow-step.is-done>span{background:#e7f7ee;color:#087443;border-color:#b5e4c8}
.certificate-workflow-step.is-current>span{background:#eaf3ff;color:#1265d6;border-color:#bcd4f3;box-shadow:0 0 0 4px rgba(18,101,214,.07)}
.premium-certificate-form{grid-template-columns:1fr!important}
.premium-file-picker{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:13px;padding:16px;border:1.5px dashed #b8d0ec;border-radius:16px;background:linear-gradient(180deg,#fbfdff,#f3f8fe);overflow:hidden;transition:.18s ease}
.premium-file-picker:hover{border-color:#6ba1de;background:#f1f7ff}
.premium-file-picker>i{width:45px;height:45px;border-radius:14px;display:grid;place-items:center;background:#e4f0ff;color:#1265d6;font-size:18px}
.premium-file-picker strong,.premium-file-picker small{display:block}
.premium-file-picker strong{font-size:13px;color:#163e70}
.premium-file-picker small{font-size:11px;color:#74879d;margin-top:3px}
.premium-file-picker input[type=file]{grid-column:1/-1!important;width:100%!important;margin-top:2px!important;background:#fff!important;border-style:solid!important;padding:9px!important}

/* Cadastro em lote premium */
.batch-premium-hero{display:flex;align-items:center;justify-content:space-between;gap:22px}
.batch-premium-alert{display:flex;align-items:flex-start;gap:11px}
.batch-premium-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:18px;align-items:start;margin-top:18px}
.batch-summary-grid.premium-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:0}
.premium-summary-grid .batch-summary{display:flex;align-items:center;gap:14px;min-height:104px}
.batch-summary-icon{width:46px;height:46px;min-width:46px;border-radius:15px;display:grid;place-items:center;background:#eaf3ff;color:#1265d6;font-size:18px}
.premium-summary-grid .batch-summary.success .batch-summary-icon{background:#e8f8ef;color:#087443}
.premium-summary-grid .batch-summary.danger .batch-summary-icon{background:#fff0f0;color:#b4232c}
.premium-summary-grid .batch-summary strong{display:block;font:800 28px Poppins,sans-serif;line-height:1;color:#0b3978}
.premium-summary-grid .batch-summary span:not(.batch-summary-icon){display:block;margin-top:5px;color:#708197;font-size:12px;font-weight:700}
.batch-section-heading{padding-bottom:15px;border-bottom:1px solid #e7eef7}
.premium-batch-step{margin-top:8px!important;padding:12px 13px;border-radius:15px;background:#f8fbff;border:1px solid #e1ebf6}
.premium-batch-step>span{width:36px!important;height:36px!important;border-radius:12px!important;box-shadow:0 7px 16px rgba(18,101,214,.09)}
.premium-batch-step strong,.premium-batch-step small{display:block}
.premium-batch-step small{font-size:10px;color:#7b8da2;margin-top:3px}
.premium-upload-box{border:1.5px dashed #aac8e9!important;border-radius:18px!important;padding:18px!important;background:linear-gradient(180deg,#fbfdff,#f4f9ff)!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:12px!important}
.premium-upload-box>label{display:flex!important;align-items:center!important;gap:13px!important;min-width:0}
.batch-upload-icon{width:48px;height:48px;min-width:48px;border-radius:15px;background:#e4f0ff;color:#1265d6;display:grid;place-items:center;font-size:19px}
.premium-upload-box label strong,.premium-upload-box label small,.premium-upload-box label em{display:block}
.premium-upload-box label strong{font-size:13px;color:#173f70}
.premium-upload-box label small{font-size:10px;color:#708399;margin-top:2px}
.premium-upload-box label em{max-width:460px;margin-top:6px;color:#2f5d91;font-size:10px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.premium-upload-box input[type=file]{grid-column:1/-1;width:100%;max-width:none!important;padding:10px;border:1px solid #d5e3f2;border-radius:12px;background:#fff;color:#536a83}
.batch-or{position:relative;margin:2px 0;color:#8293a8;text-transform:uppercase;font-size:9px;letter-spacing:.1em}
.batch-or:before,.batch-or:after{content:"";height:1px;background:#e4ebf4;flex:1}
.batch-or{display:flex!important;align-items:center;gap:12px!important}
.batch-form-actions{justify-content:flex-end!important;padding-top:2px!important}
.batch-guide-card{position:sticky;top:94px;display:grid;gap:14px;background:linear-gradient(180deg,#fff,#f8fbff)}
.batch-guide-card>small{font-weight:900;letter-spacing:.12em;color:#7990a9;font-size:9px}
.batch-guide-card h3{margin:-5px 0 0;font:800 17px Poppins,sans-serif;color:#103e75}
.batch-guide-icon{width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#e5f1ff,#f1f8ff);color:#1265d6;display:grid;place-items:center;font-size:19px}
.batch-guide-columns{display:grid;grid-template-columns:1.5fr 1.1fr .8fr .7fr;gap:6px}
.batch-guide-columns span{padding:8px 7px;border-radius:9px;background:#eaf3ff;color:#19589f;font-size:9px;font-weight:900;text-align:center;white-space:nowrap}
.batch-guide-example{display:grid;gap:6px;padding:13px;border-radius:14px;background:#0b2e5c;color:#dcecff;overflow:hidden}
.batch-guide-example small{color:#91b6e1;font-size:9px;font-weight:800;letter-spacing:.1em}
.batch-guide-example code{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.batch-guide-notes{display:grid;gap:9px;border-top:1px solid #e4ebf4;padding-top:13px}
.batch-guide-notes p{display:flex;align-items:flex-start;gap:9px;margin:0;color:#61768f;font-size:11px;line-height:1.45}
.batch-guide-notes i{width:24px;height:24px;min-width:24px;border-radius:8px;background:#eaf3ff;color:#1265d6;display:grid;place-items:center;font-size:10px}
.batch-results-card{margin-top:18px}
.batch-results-table{max-height:520px}
.batch-result-ok td:first-child{box-shadow:inset 3px 0 0 #22a45a}.batch-result-error td:first-child{box-shadow:inset 3px 0 0 #dc3d45}

/* Permissões premium */
.permissions-premium-hero{display:flex;align-items:center;justify-content:space-between;gap:22px}
.permission-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.permission-overview-card{display:flex;align-items:center;gap:13px;min-height:92px;padding:17px}
.permission-overview-card>i{width:43px;height:43px;min-width:43px;border-radius:14px;background:#eaf3ff;color:#1265d6;display:grid;place-items:center}
.permission-overview-card strong,.permission-overview-card small{display:block}
.permission-overview-card strong{font:800 24px Poppins,sans-serif;color:#0b3978;line-height:1}
.permission-overview-card small{margin-top:5px;color:#74869c;font-size:10px;font-weight:700}
.permission-master-card .permission-level-grid{gap:14px}
.permission-master-card .permission-action-box{background:linear-gradient(180deg,#fbfdff,#f6faff);border-color:#dce7f3;border-radius:17px;padding:17px}
.permission-master-card .permission-state{background:#fff;border-color:#e0e9f4}
.permission-section-heading{display:flex;align-items:center;gap:14px;margin:4px 0 14px;padding:4px 2px}
.permission-section-heading>span{width:44px;height:44px;min-width:44px;border-radius:14px;background:#eaf3ff;color:#1265d6;display:grid;place-items:center}
.permission-section-heading small{display:block;color:#7a8ea6;font-size:9px;font-weight:900;letter-spacing:.12em}
.permission-section-heading h2{margin:2px 0 0;font:800 19px Poppins,sans-serif;color:#103e75}
.permission-section-heading p{margin:4px 0 0;color:#75879b;font-size:11px}
.permission-table-card{border-radius:18px;overflow:auto}
.permission-premium-table tbody tr{transition:.16s ease}
.permission-premium-table tbody tr:hover{background:#f5f9ff}
.permission-premium-table td:first-child,.permission-premium-table th:first-child{text-align:center;width:52px}
.permission-premium-table input[type=checkbox]{width:17px;height:17px;accent-color:#1265d6}

@media(max-width:1050px){
  .batch-premium-layout{grid-template-columns:1fr}
  .batch-guide-card{position:static}
  .permission-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .certificate-premium-hero,.batch-premium-hero,.permissions-premium-hero{align-items:flex-start;flex-direction:column}
  .premium-hero-main{align-items:flex-start}.premium-hero-icon{width:50px;height:50px;min-width:50px;border-radius:15px}
  .premium-hero-actions{width:100%}.premium-hero-actions .btn{flex:1}
  .certificate-workflow{grid-template-columns:1fr;gap:8px}.certificate-workflow>i{display:none}
  .certificate-workflow-step{padding:5px 0}
  .batch-summary-grid.premium-summary-grid{grid-template-columns:1fr}
  .premium-upload-box{grid-template-columns:1fr!important}.premium-upload-box .btn{width:100%}
  .batch-guide-columns{grid-template-columns:1fr 1fr}
  .permission-overview-grid{grid-template-columns:1fr 1fr;gap:9px}
  .permission-overview-card{min-height:82px;padding:13px;gap:10px}.permission-overview-card>i{width:38px;height:38px;min-width:38px}
  .permission-overview-card strong{font-size:20px}
}
@media(max-width:520px){
  .permission-overview-grid{grid-template-columns:1fr}
  .premium-hero-actions{display:grid;grid-template-columns:1fr;width:100%}
  .premium-state-chip{justify-content:center}
}

/* V4 · confirmação de título antigo (11 dígitos) */
body.legacy-title-modal-open{overflow:hidden}
.legacy-title-confirm{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:20px;background:rgba(7,31,67,.58);backdrop-filter:blur(5px)}
.legacy-title-confirm[hidden]{display:none!important}
.legacy-title-confirm-card{width:min(440px,100%);background:#fff;border:1px solid #d9e7f8;border-radius:24px;padding:27px;box-shadow:0 24px 70px rgba(5,36,82,.28);text-align:center;animation:legacyTitleIn .18s ease-out}
.legacy-title-confirm-icon{width:62px;height:62px;margin:0 auto 14px;border-radius:19px;display:grid;place-items:center;background:linear-gradient(145deg,#e9f4ff,#dcecff);color:#0b63ce;font-size:25px;box-shadow:inset 0 0 0 1px rgba(11,99,206,.08)}
.legacy-title-confirm-card h2{margin:0;color:#082d63;font:800 22px/1.2 Poppins,sans-serif}
.legacy-title-confirm-card p{margin:12px auto 16px;color:#58708e;font-size:14px;line-height:1.55;max-width:365px}
.legacy-title-preview{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#f3f8ff;border:1px solid #d9e8fa;border-radius:14px;padding:12px 14px;margin:0 0 18px;text-align:left}
.legacy-title-preview span{font-size:12px;color:#6b7f98;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.legacy-title-preview strong{font:800 18px/1 Poppins,sans-serif;color:#0a57b7;letter-spacing:.04em}
.legacy-title-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.legacy-title-confirm-actions .btn{width:100%;min-height:48px}
@keyframes legacyTitleIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:520px){.legacy-title-confirm{padding:14px}.legacy-title-confirm-card{padding:22px 18px;border-radius:21px}.legacy-title-confirm-actions{grid-template-columns:1fr}.legacy-title-confirm-actions .btn{width:100%!important;min-width:0!important}.legacy-title-confirm-card h2{font-size:20px}}

/* V4 · ações de Líderes alinhadas no mobile */
.leaders-toolbar-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
@media(max-width:700px){
  .leaders-toolbar-actions{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:10px!important;width:100%!important;align-self:flex-start!important}
  .leaders-toolbar-actions .btn{width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important;padding:0!important;display:inline-grid!important;place-items:center!important;flex:0 0 42px!important;border-radius:11px!important}
  .leaders-toolbar-actions .btn i{margin:0!important}
}


/* =========================================================
   V31.14 — Todos os cadastros: Título/Zona/Seção visíveis
   CPF, nascimento e filiação ficam no modal de dados pessoais.
   ========================================================= */
.voters-premium-table.voters-electoral-visible{min-width:960px!important}
.voters-premium-table .voter-visible-ref{
  display:flex;align-items:center;gap:7px;min-width:0;color:#123f70;
}
.voters-premium-table .voter-visible-ref strong{
  font:800 11.5px/1.25 Poppins,sans-serif;color:#0d3e74;letter-spacing:.01em;
}
.voters-premium-table .voter-visible-ref-icon{
  width:28px;height:28px;min-width:28px;border-radius:9px;display:grid;place-items:center;
  color:#1268c4;background:#eaf4ff;border:1px solid #d6e9fb;font-size:11px;
}
.voters-premium-table .voter-visible-ref-small{justify-content:flex-start}
.voters-premium-table .voter-visible-ref-small strong{font-size:12px}
.voters-premium-table .voter-visible-ref.is-empty strong{color:#91a1b3;font-weight:700}
.voters-premium-table .voter-visible-ref .copy-mini{width:25px;height:25px;min-width:25px}
.voters-premium-table th:nth-child(2){width:28%!important}
.voters-premium-table th:nth-child(3){width:18%!important}
.voters-premium-table th:nth-child(4),
.voters-premium-table th:nth-child(5){width:8%!important}
.voters-premium-table th:nth-child(6){width:14%!important}
.voters-premium-table th:nth-child(7){width:18%!important}
.detail-section-title{
  border:0!important;background:transparent!important;padding:7px 2px 1px!important;
  display:flex;align-items:center;gap:8px;color:#0f5eae!important;
  font:800 10px/1.2 Poppins,sans-serif;text-transform:uppercase;letter-spacing:.06em;
}
.detail-section-title i{
  width:28px;height:28px;border-radius:9px;display:grid;place-items:center;
  background:#eaf4ff;color:#1268c4;
}

@media(max-width:900px){
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Título"]{grid-column:1/-1!important}
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Zona"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Seção"]{grid-column:auto!important}
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Regular"]{grid-column:1/-1!important}
  .voters-premium-table .voter-visible-ref{width:100%!important}
}
@media(max-width:620px){
  .table.voters-compact-table.voters-premium-table tbody tr{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Nome"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Título"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Regular"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Ações"],
  .table.voters-compact-table.voters-premium-table tbody .select-col{grid-column:1/-1!important}
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Zona"],
  .table.voters-compact-table.voters-premium-table tbody td[data-label="Seção"]{grid-column:auto!important}
}

/* ===== Certidões em lote ===== */
.batch-cert-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#0b3f93 0%,#1267d9 58%,#31a6ee 100%);color:#fff;border:0;box-shadow:0 22px 50px rgba(10,61,145,.18)}
.batch-cert-hero:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-70px;top:-120px;background:rgba(255,255,255,.08)}
.batch-cert-hero h1,.batch-cert-hero p,.batch-cert-hero small{color:#fff}.batch-cert-hero .premium-eyebrow{opacity:.8}.batch-cert-hero .premium-hero-icon{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.24)}
.batch-cert-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}
.batch-cert-info{display:flex;gap:12px;align-items:center;padding:16px;border:1px solid #d9e7f8;box-shadow:0 8px 22px rgba(10,61,145,.06)}
.batch-cert-info>span{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#eaf4ff;color:#1265d6;font-size:18px;flex:0 0 auto}.batch-cert-info strong{display:block;color:#0b376f}.batch-cert-info small{display:block;color:#6c7d91;margin-top:3px}
.batch-cert-upload-card,.batch-cert-progress-card{margin-top:16px}.batch-cert-step-badge{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:#eaf4ff;color:#0d5dc3;font-size:12px;font-weight:800;white-space:nowrap}
.batch-cert-dropzone{min-height:210px;border:2px dashed #9fc8f7;border-radius:24px;background:linear-gradient(180deg,#f7fbff,#edf6ff);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px;cursor:pointer;transition:.2s ease;color:#1b4f85}.batch-cert-dropzone:hover,.batch-cert-dropzone.is-dragging{border-color:#1875e8;background:#e9f4ff;transform:translateY(-1px)}
.batch-cert-dropzone input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.batch-cert-drop-icon{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:#1268da;color:#fff;font-size:26px;box-shadow:0 12px 28px rgba(18,104,218,.24);margin-bottom:12px}.batch-cert-dropzone strong{font-size:18px;color:#0b376f}.batch-cert-dropzone small{max-width:650px;color:#6f8196;margin-top:7px;line-height:1.45}
.batch-cert-file-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 14px;border-radius:15px;background:#f5f9fe;border:1px solid #dce9f8}.batch-cert-file-summary>div{display:flex;gap:9px;align-items:center;color:#244b75}.batch-cert-actions{display:flex;justify-content:flex-end;margin-top:14px}.batch-cert-actions .btn{min-width:190px}.batch-cert-local-note{margin:12px 0 0;color:#6a7d92;font-size:12px}.batch-cert-local-note i{color:#15834b;margin-right:5px}
.batch-cert-progress-track{height:12px;border-radius:999px;overflow:hidden;background:#e4edf8;margin:12px 0}.batch-cert-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0c63d6,#28a5ed);transition:width .2s ease}.batch-cert-progress-card p{margin:0;color:#64788f}.batch-cert-progress-card .section-title-row>strong{font-size:18px;color:#0b4f9d}
.batch-cert-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:26px 0 12px}.batch-cert-review-head h2{margin:3px 0 5px;color:#0a376c}.batch-cert-review-head p{margin:0;color:#687d94;max-width:820px}.batch-cert-review-head small{font-weight:800;color:#2971c9;letter-spacing:.08em}
.batch-cert-review-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.batch-review-stat{border:1px solid #dbe8f7;background:#fff;text-align:left;padding:15px;cursor:pointer;transition:.18s}.batch-review-stat strong{display:block;font-size:25px;color:#103e75}.batch-review-stat span{color:#718296;font-size:12px;font-weight:700}.batch-review-stat:hover,.batch-review-stat.active{transform:translateY(-1px);box-shadow:0 10px 24px rgba(13,72,145,.11);border-color:#8ebcf1}.batch-review-stat.is-match strong{color:#07884d}.batch-review-stat.is-warning strong{color:#ba6f00}.batch-review-stat.is-error strong{color:#c62929}
.batch-cert-review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;margin-bottom:12px}.batch-cert-search{position:relative;flex:1;max-width:560px}.batch-cert-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#6c8098}.batch-cert-search input{width:100%;padding-left:40px}.batch-cert-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.batch-cert-review-table-wrap{padding:0;overflow:auto}.batch-cert-review-table{min-width:1220px;margin:0}.batch-cert-review-table th{white-space:nowrap}.batch-cert-review-table td{vertical-align:middle}.batch-check-col{width:44px;text-align:center!important}.batch-check-col input{width:18px;height:18px;accent-color:#1268da}.batch-file-link{display:flex;align-items:center;gap:7px;background:transparent;border:0;padding:0;color:#0c5fca;font:inherit;font-weight:700;cursor:pointer;text-align:left;max-width:190px}.batch-file-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-cert-review-table td>small{display:block;color:#75869a;margin-top:4px;font-size:11px}.batch-title-value{font-variant-numeric:tabular-nums;white-space:nowrap}.batch-title-edit{display:flex;gap:6px;align-items:center}.batch-title-edit input{width:154px;min-width:154px;font-variant-numeric:tabular-nums;font-weight:700}.batch-title-edit .btn{width:36px;min-width:36px;padding:0}.batch-cert-review-table select{min-width:142px;padding:9px 32px 9px 10px}.batch-existing-cert{color:#955b00!important}.batch-row-warning{color:#9b6508!important}.batch-row-error{color:#bb2424!important}
.batch-match-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 9px;font-size:11px;font-weight:800;white-space:nowrap}.batch-match-badge.ok,.batch-match-badge.saved{background:#e7f8ee;color:#08783f;border:1px solid #b8e9cb}.batch-match-badge.warning{background:#fff6dc;color:#945f00;border:1px solid #f1d78d}.batch-match-badge.error{background:#ffecec;color:#b52323;border:1px solid #f1bcbc}.batch-row-actions{display:flex;gap:6px}.batch-row-saved{background:#f3fbf6}.batch-row-error{background:#fff7f7}
.batch-cert-save-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:18px}.batch-cert-save-panel small{font-weight:800;color:#2a70c7;letter-spacing:.08em}.batch-cert-save-panel h2{margin:3px 0 4px;color:#0a376c}.batch-cert-save-panel p{margin:0;color:#6a7c90}.batch-cert-save-button{min-width:170px}
.batch-cert-result-card{margin-top:18px}.batch-cert-result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}.batch-cert-result-grid>div{padding:18px;border-radius:18px;background:#f4f8fd;border:1px solid #dbe8f6;text-align:center}.batch-cert-result-grid strong{display:block;font-size:30px;color:#0b4e9b}.batch-cert-result-grid span{font-size:12px;color:#6e8196;font-weight:700}.batch-cert-result-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.batch-cert-toast-stack{position:fixed;right:18px;bottom:18px;z-index:99999;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 36px))}.batch-cert-toast{display:flex;gap:10px;align-items:flex-start;padding:13px 15px;border-radius:14px;background:#173f70;color:#fff;box-shadow:0 14px 38px rgba(0,0,0,.2);transition:.25s}.batch-cert-toast.ok{background:#0c7c4b}.batch-cert-toast.err{background:#b52a2a}.batch-cert-toast.out{opacity:0;transform:translateY(8px)}
@media(max-width:1100px){.batch-cert-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.batch-cert-review-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.batch-cert-info-grid{grid-template-columns:1fr 1fr;gap:9px}.batch-cert-info{padding:12px}.batch-cert-info>span{width:38px;height:38px;border-radius:12px}.batch-cert-info strong{font-size:13px}.batch-cert-info small{font-size:10px}.batch-cert-dropzone{min-height:190px;padding:20px 14px;border-radius:18px}.batch-cert-review-head{align-items:center}.batch-cert-review-head p{font-size:12px}.batch-cert-review-toolbar{align-items:stretch;flex-direction:column}.batch-cert-search{max-width:none}.batch-cert-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}.batch-cert-toolbar-actions .btn{width:100%}.batch-cert-review-table-wrap{padding:8px;overflow:visible}.batch-cert-review-table{min-width:0}.batch-cert-review-table thead{display:none}.batch-cert-review-table tbody{display:grid;gap:10px}.batch-cert-review-table tr{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:13px;border:1px solid #dce7f4;border-radius:18px;background:#fff}.batch-cert-review-table td{display:block;border:0!important;padding:0!important;min-width:0}.batch-cert-review-table td:before{content:attr(data-label);display:block;font-size:9px;font-weight:800;letter-spacing:.06em;color:#71859c;text-transform:uppercase;margin-bottom:4px}.batch-cert-review-table td:nth-child(2),.batch-cert-review-table td:nth-child(3),.batch-cert-review-table td:nth-child(7),.batch-cert-review-table td:nth-child(8){grid-column:1/-1}.batch-cert-review-table .batch-check-col{position:absolute;right:18px;width:auto;z-index:2}.batch-file-link{max-width:calc(100vw - 115px)}.batch-title-edit input{width:100%;min-width:0}.batch-title-edit{width:100%}.batch-cert-review-table select{width:100%;min-width:0}.batch-row-actions{justify-content:flex-end}.batch-cert-save-panel{align-items:stretch;flex-direction:column}.batch-cert-save-button{width:100%}.batch-cert-result-grid{gap:8px}.batch-cert-result-grid>div{padding:13px 6px}.batch-cert-result-grid strong{font-size:24px}.batch-cert-result-actions{display:grid;grid-template-columns:1fr 1fr}.batch-cert-result-actions .btn{width:100%}.batch-cert-actions .btn{width:100%}.batch-cert-local-note{line-height:1.45}}


/* ===== SisCamp V4.5 · Título com erro ===== */
.regular-inline-select.is-title-error{background-color:#fff7c7!important;border-color:#e9b51b!important;color:#765300!important}
.table.voters-compact-table.voters-premium-table tbody tr.voter-row-title-error td{background:#fffbea!important;border-color:#f1cf62!important}
.table.voters-compact-table.voters-premium-table tbody tr.voter-row-title-error td:first-child{box-shadow:inset 4px 0 0 #e5ad13}
.validation-pill.validation-title-error,.certificate-state-card.validation-title-error,.certificate-stats-grid .validation-title-error{background:#fff6c8;color:#725000;border-color:#eac03d}
tr.validation-title-error>td{background:rgba(250,204,21,.11)}
.certificate-action.validation-title-error{background:#fff6c8;color:#725000;border-color:#eac03d}
.public-team-summary .validation-title-error{border-color:#ead06a;background:#fff9d9}.public-team-summary .validation-title-error strong,.public-team-summary .validation-title-error>i{color:#956700}
.counter-strip.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.btn.warning{background:#f6c344;color:#553b00;border-color:#e5ad18}.btn.warning:hover{background:#eab832;color:#3d2b00}
@media(max-width:1100px){.counter-strip.five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.counter-strip.five{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.counter-strip.five{grid-template-columns:1fr}}

.title-correction-hero{background:linear-gradient(135deg,#7d5900,#d9a713 62%,#f2c84c)!important;color:#fff!important;border:0!important}.title-correction-hero h1,.title-correction-hero p,.title-correction-hero small{color:#fff!important}.title-correction-card{max-width:760px;margin:18px auto;padding:24px;border:1px solid #ecd477;box-shadow:0 18px 45px rgba(128,91,0,.12)}.title-correction-warning{display:flex;align-items:center;gap:14px;padding:16px;border-radius:18px;background:#fff7cf;border:1px solid #edcf5e;color:#725000;margin-bottom:18px}.title-correction-warning>i{width:46px;height:46px;border-radius:14px;background:#f4c83f;display:grid;place-items:center;font-size:20px}.title-correction-warning strong,.title-correction-warning span{display:block}.title-correction-warning span{font-size:13px;margin-top:3px}.title-correction-person{padding:13px 15px;border-radius:14px;background:#f7f9fc;border:1px solid #e2e8f0;margin-bottom:15px}.title-correction-person small,.title-correction-person strong{display:block}.title-correction-person small{color:#728095;font-size:11px;text-transform:uppercase;font-weight:800;letter-spacing:.05em}.title-correction-person strong{font-size:17px;color:#163d6c;margin-top:3px}.title-correction-form input{font-size:20px;font-weight:800;letter-spacing:.06em}.title-correction-form small{display:block;color:#718096;margin-top:6px}.title-correction-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}@media(max-width:600px){.title-correction-card{padding:16px}.title-correction-actions{display:grid;grid-template-columns:1fr 1fr}.title-correction-actions .btn{width:100%}}

/* Certidões em lote · revisão premium e leitura visual imediata */
.batch-cert-premium-review{padding:4px 0 10px}.batch-cert-premium-review .batch-cert-review-head{padding:20px 22px;border-radius:22px;background:linear-gradient(135deg,#0d448f,#1578df);color:#fff;box-shadow:0 16px 36px rgba(13,68,143,.16)}.batch-cert-premium-review .batch-cert-review-head h2,.batch-cert-premium-review .batch-cert-review-head p,.batch-cert-premium-review .batch-cert-review-head small{color:#fff}.batch-cert-premium-review .batch-cert-review-head p{opacity:.88}.batch-cert-premium-review .batch-cert-step-badge{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.22)}
.batch-cert-review-toolbar{border:1px solid #d8e6f6!important;box-shadow:0 10px 28px rgba(18,82,158,.07)!important}.batch-cert-review-table-wrap{border:1px solid #d7e5f5!important;box-shadow:0 18px 38px rgba(16,71,137,.08)!important;border-radius:22px!important;overflow:auto}.batch-cert-review-table thead th{background:#f1f6fc;color:#46617e;font-size:11px;text-transform:uppercase;letter-spacing:.045em}.batch-cert-review-table tbody tr{transition:.16s ease}.batch-cert-review-table tbody tr:hover td{filter:brightness(.992)}
.batch-cert-review-table tr.batch-row-inapt td{background:#fff0f0!important;border-color:#f8cdcd!important}.batch-cert-review-table tr.batch-row-inapt td:first-child{box-shadow:inset 4px 0 0 #dc3131}.batch-cert-review-table tr.batch-row-inapt select[data-regular]{background:#ffe3e3;border-color:#e66b6b;color:#9d1c1c;font-weight:800}
.batch-cert-review-table tr.batch-row-title-error td{background:#fff9d8!important;border-color:#eed36a!important}.batch-cert-review-table tr.batch-row-title-error td:first-child{box-shadow:inset 4px 0 0 #e4ad10}.batch-cert-review-table tr.batch-row-title-error select[data-regular]{background:#fff2ad;border-color:#dcb128;color:#745100;font-weight:800}
.batch-cert-review-table tr.batch-row-apt td{background:#f1fbf5}.batch-cert-review-table tr.batch-row-apt select[data-regular]{background:#e7f8ee;border-color:#79d3a0;color:#08713d;font-weight:800}.batch-cert-save-panel{position:sticky;bottom:10px;z-index:15;border:1px solid #cddff3!important;box-shadow:0 18px 48px rgba(12,65,133,.18)!important;background:rgba(255,255,255,.96)!important;backdrop-filter:blur(14px)}
@media(max-width:720px){.batch-cert-premium-review .batch-cert-review-head{padding:16px;border-radius:18px}.batch-cert-review-table-wrap{overflow:visible!important}.batch-cert-review-table tr.batch-row-inapt{background:#fff0f0!important;border-color:#efb7b7!important}.batch-cert-review-table tr.batch-row-title-error{background:#fff9d8!important;border-color:#e4c34e!important}.batch-cert-review-table tr.batch-row-apt{background:#f1fbf5!important}.batch-cert-review-table td:nth-child(2),.batch-cert-review-table td:nth-child(6),.batch-cert-review-table td:nth-child(7){grid-column:1/-1}.batch-cert-save-panel{bottom:8px}}

@media(max-width:720px){.batch-cert-review-table td:nth-child(3){grid-column:auto!important}}

/* V4.5.8 · blindagem do título eleitoral por dígitos verificadores */
body.voter-title-invalid-modal-open{overflow:hidden}
.voter-title-invalid-modal{position:fixed;inset:0;z-index:10060;display:grid;place-items:center;padding:20px;background:rgba(7,31,67,.62);backdrop-filter:blur(6px)}
.voter-title-invalid-modal[hidden]{display:none!important}
.voter-title-invalid-card{width:min(455px,100%);background:#fff;border:1px solid #f3d89c;border-radius:24px;padding:28px;box-shadow:0 26px 75px rgba(5,36,82,.30);text-align:center;animation:legacyTitleIn .18s ease-out}
.voter-title-invalid-icon{width:64px;height:64px;margin:0 auto 13px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(145deg,#fff5d8,#ffe7a6);color:#b96c00;font-size:27px;box-shadow:inset 0 0 0 1px rgba(185,108,0,.10)}
.voter-title-invalid-card>small{display:block;margin-bottom:6px;color:#9b6a16;font:800 10px/1.2 Poppins,sans-serif;letter-spacing:.08em}
.voter-title-invalid-card h2{margin:0;color:#082d63;font:800 22px/1.2 Poppins,sans-serif}
.voter-title-invalid-card p{margin:12px auto 16px;color:#58708e;font-size:14px;line-height:1.55;max-width:385px}
.voter-title-invalid-number{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 18px;padding:13px 15px;border:1px solid #f2d798;border-radius:14px;background:#fffaf0;text-align:left}
.voter-title-invalid-number span{font-size:11px;color:#8b6b31;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.voter-title-invalid-number strong{font:800 18px/1 Poppins,sans-serif;color:#9a5800;letter-spacing:.045em}
.voter-title-invalid-card .btn{width:100%;min-height:49px}
@media(max-width:520px){.voter-title-invalid-modal{padding:14px}.voter-title-invalid-card{padding:23px 18px;border-radius:21px}.voter-title-invalid-card h2{font-size:20px}.voter-title-invalid-number{align-items:flex-start;flex-direction:column}.voter-title-invalid-number strong{font-size:17px}}
.field-validation-hint{display:flex;align-items:center;gap:6px;margin-top:7px;color:#5f7590;font-size:11px;font-weight:600}
.field-validation-hint i{color:#148153}

/* V31.30 - filtros administrativos e relatórios */
.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.filter-grid>div{min-width:0}.filter-grid .full{grid-column:1/-1}.filter-grid label{display:block;margin-bottom:6px;font-weight:700;font-size:12px}.filter-grid input,.filter-grid select{width:100%;min-height:44px}.filter-grid .form-actions{display:flex;gap:9px;flex-wrap:wrap;padding-top:4px}.reason-cell{max-width:360px;white-space:normal;line-height:1.4}@media(max-width:1100px){.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.filter-grid{grid-template-columns:1fr}.filter-grid .full{grid-column:auto}.filter-grid .form-actions .btn{flex:1 1 auto}}


/* V31.38 — busca por nome nos seletores de liderança/gestor */
.searchable-filter-block .select-name-search{
  height:34px!important;
  margin:0 0 6px!important;
  border-radius:10px!important;
  font-size:12px!important;
  padding:0 11px!important;
  background:#f8fbff!important;
}
.searchable-filter-block select{width:100%!important}
@media(max-width:900px){
  .searchable-filter-block .select-name-search{height:38px!important;font-size:13px!important}
}

/* ============================================================
   V31.39 - Prazo de cadastros / cronômetro mobile first
   ============================================================ */
.registration-deadline-banner{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;
  margin:0 0 16px;padding:12px 14px;border:1px solid #cfe0f4;border-radius:16px;
  background:linear-gradient(135deg,#ffffff 0%,#f1f7ff 100%);box-shadow:0 8px 24px rgba(14,73,145,.07);
}
.registration-deadline-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#e9f3ff;color:var(--blue-700);font-size:16px}
.registration-deadline-copy{min-width:0;display:grid;gap:1px}
.registration-deadline-copy small{font:700 9px Poppins,sans-serif;letter-spacing:.11em;color:#5f7590}
.registration-deadline-copy strong{font:700 13px Poppins,sans-serif;color:#14365f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.registration-deadline-copy span{font-size:11px;color:#73839a}
.registration-deadline-countdown{display:flex;align-items:baseline;justify-content:flex-end;gap:3px;white-space:nowrap;padding:7px 9px;border-radius:12px;background:#0d4fb6;color:#fff;min-width:162px}
.registration-deadline-countdown b{font:800 16px Poppins,sans-serif;line-height:1}
.registration-deadline-countdown em{font-style:normal;font-size:9px;opacity:.78;margin-right:2px}
.registration-deadline-banner.is-expired{border-color:#fecaca;background:linear-gradient(135deg,#fff 0%,#fff5f5 100%)}
.registration-deadline-banner.is-expired .registration-deadline-icon{background:#fee2e2;color:#b91c1c}
.registration-deadline-banner.is-expired .registration-deadline-countdown{background:#b91c1c}
.registration-deadline-banner.is-released{border-color:#bbf7d0;background:linear-gradient(135deg,#fff 0%,#f0fdf4 100%)}
.registration-deadline-banner.is-released .registration-deadline-icon{background:#dcfce7;color:#15803d}
.registration-deadline-banner.is-released .registration-deadline-countdown{background:#15803d;min-width:auto;padding-inline:12px}
.registration-deadline-banner.is-released .registration-deadline-countdown b{font-size:11px;letter-spacing:.04em}

.registration-deadline-admin-hero{display:flex;align-items:center;justify-content:space-between}
.registration-deadline-admin-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px;margin-bottom:18px}
.registration-deadline-config-card,.registration-deadline-state-card{min-height:100%}
.registration-deadline-form{grid-template-columns:1fr}
.registration-deadline-actions{justify-content:flex-start;gap:10px;flex-wrap:wrap}
.registration-deadline-state-card{display:flex;align-items:center;gap:16px;background:linear-gradient(145deg,#fff,#f7fbff)}
.registration-deadline-state-card .registration-deadline-state-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:17px;background:#e7f1ff;color:var(--blue-700);font-size:21px;flex:0 0 auto}
.registration-deadline-state-card small{font:700 9px Poppins,sans-serif;letter-spacing:.12em;color:#73839a}
.registration-deadline-state-card strong{display:block;font:800 22px Poppins,sans-serif;color:#12345d;margin-top:3px}
.registration-deadline-state-card p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.registration-deadline-state-card.is-expired .registration-deadline-state-icon{background:#fee2e2;color:#b91c1c}
.registration-deadline-state-card.is-expired strong{color:#991b1b}
.registration-deadline-state-card.is-running .registration-deadline-state-icon{background:#e7f1ff;color:var(--blue-700)}
.registration-deadline-rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.registration-deadline-rule-grid>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:2px;padding:14px;border:1px solid #e1eaf5;border-radius:14px;background:#f9fbfe}
.registration-deadline-rule-grid i{grid-row:1/3;width:36px;height:36px;border-radius:11px;background:#e8f2ff;color:var(--blue-700);display:grid;place-items:center}
.registration-deadline-rule-grid strong{font:700 13px Poppins,sans-serif;color:#183b64}
.registration-deadline-rule-grid span{font-size:11px;line-height:1.45;color:var(--muted)}
.registration-deadline-shortcuts .row-actions{flex-wrap:wrap}

@media(max-width:900px){
  .registration-deadline-admin-grid{grid-template-columns:1fr}
  .registration-deadline-rule-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .registration-deadline-banner{grid-template-columns:auto minmax(0,1fr);gap:9px;padding:10px 11px;border-radius:14px;margin-bottom:12px}
  .registration-deadline-icon{width:34px;height:34px;border-radius:10px}
  .registration-deadline-copy small{font-size:8px}
  .registration-deadline-copy strong{font-size:12px}
  .registration-deadline-copy span{font-size:10px}
  .registration-deadline-countdown{grid-column:1/-1;width:100%;min-width:0;justify-content:center;padding:7px 8px}
  .registration-deadline-countdown b{font-size:15px}
  .registration-deadline-config-card,.registration-deadline-state-card{padding:15px}
  .registration-deadline-state-card{align-items:flex-start}
  .registration-deadline-state-card strong{font-size:18px}
  .registration-deadline-actions{display:grid;grid-template-columns:1fr;width:100%}
  .registration-deadline-actions .btn{width:100%}
  .registration-deadline-admin-stats.counter-strip{grid-template-columns:1fr 1fr}
  .registration-deadline-shortcuts .row-actions{display:grid;grid-template-columns:1fr;width:100%}
  .registration-deadline-shortcuts .btn{width:100%}
}
.registration-deadline-clear-form{margin-top:10px}.registration-deadline-clear-form .btn{min-width:160px}
@media(max-width:620px){.registration-deadline-clear-form .btn{width:100%}}

/* V31.52 · validação Zona/Seção contra BASE-RJ-2026 */
.electoral-reference-status{display:flex;align-items:flex-start;gap:6px;margin-top:6px;font-size:11px;line-height:1.35;color:#6f8195}.electoral-reference-status i{margin-top:1px}.electoral-reference-status.is-ok{color:#138a4a}.electoral-reference-status.is-error{color:#c0392b}.electoral-reference-status.is-loading{color:#1769aa}.electoral-reference-status.is-info{color:#6b7280}.electoral-reference-status[hidden]{display:none!important}input[data-electoral-section]:disabled{background:#f3f6fa;color:#8a98a8;cursor:not-allowed}


/* V32 GLOBAL UI */
/* SisCamp 5 / V32 — camada global de padronizacao visual, mobile-first.
   Mantem as cores e a identidade ja configuradas no painel. */
:root{--sc-gap:18px;--sc-gap-sm:12px;--sc-radius:16px;--sc-control-radius:11px;--sc-border:#d7e3f1;--sc-control-bg:#fbfdff;--sc-focus:#347fce;--sc-text:#173452}
*,*::before,*::after{box-sizing:border-box}
html{min-width:320px}body{min-width:320px}
.content,.main,.card,.grid,.form,.toolbar,.section-title,.row-actions,.table-responsive{min-width:0}
.content{max-width:100%;overflow-x:clip}
.content .card,.content .rt-card,.content [class*="-card"]{max-width:100%;overflow-wrap:anywhere}
.content>.card,.content>.hero,.content>.grid,.content>.toolbar,.content>.alert,.content>.section-title,
.content>.report-page,.content>.counter-strip,.content>.stats-grid{margin-block-end:var(--sc-gap)}
.content>.card+.card,.content>.grid+.card,.content>.card+.grid,.content>.toolbar+.card{margin-block-start:var(--sc-gap)}
.content .card{padding:clamp(16px,2.3vw,24px);border-radius:var(--sc-radius)}
.content .grid:not(.sc-select .grid){gap:var(--sc-gap)}
.content .grid>*{min-width:0}
.content .form,.content form.form,.content .form-grid{gap:var(--sc-gap-sm) var(--sc-gap)}
.content label{max-width:100%;overflow-wrap:anywhere}
.content input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="file"]),
.content select,.content textarea,.content .sc-trigger,
.public-register-shell input:not([type="checkbox"]):not([type="radio"]),.public-register-shell select,.public-register-shell textarea{
  box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:44px;border:1px solid var(--sc-border);
  border-radius:var(--sc-control-radius);background:var(--sc-control-bg);color:var(--sc-text);
  padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.4;transition:border-color .16s,box-shadow .16s;
}
.content textarea,.public-register-shell textarea{min-height:95px;resize:vertical}
.content input[type="number"]{appearance:textfield}
.content input[type="file"]{display:block;max-width:100%;min-width:0;padding:9px;border:1px dashed var(--sc-border);border-radius:var(--sc-control-radius);background:var(--sc-control-bg)}
.content :is(input,select,textarea,button,a):focus-visible,.public-register-shell :is(input,select,textarea,button,a):focus-visible{outline:2px solid var(--sc-focus);outline-offset:2px}
.content :is(input,select,textarea):disabled{opacity:.7;cursor:not-allowed;background:#eef3f9}
.content :is(input,select,textarea)::placeholder{color:#8a99aa}
.content label:has(>input:not([type="checkbox"])),.content label:has(>select),.content label:has(>textarea){display:flex;flex-direction:column;align-items:stretch;gap:7px}
.content .card :is(h1,h2,h3,p){overflow-wrap:anywhere}
.content .card :is(h2,h3){margin-top:0}
.content .card>p:last-child{margin-bottom:0}
.content .section-title{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}
.content .toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}
.content .toolbar form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;max-width:100%}
.content .toolbar form>*{min-width:150px;max-width:100%}
.content .row-actions,.content .form-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.content .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}
.content .table-responsive,.content .rt-scroll,.content .table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border-radius:12px}
.content .table-responsive table,.content .rt-scroll table{width:100%;min-width:640px;border-collapse:collapse}
.content table th,.content table td{vertical-align:middle;overflow-wrap:anywhere}
.content table small{display:block;line-height:1.5;color:#6d8195}
.content .badge{display:inline-flex;align-items:center;max-width:100%;white-space:normal}
.content .counter-strip{gap:var(--sc-gap-sm)}
.content .hero{margin-bottom:var(--sc-gap)}
.content .hero p{max-width:75ch}
.content .councilor-license{display:flex;align-items:flex-start;flex-direction:row;gap:12px;padding:15px;border:1px solid #bdd9f3;background:#eff7ff;border-radius:12px;margin:16px 0}
.content .councilor-license input{margin-top:4px;min-width:18px;width:18px;height:18px;accent-color:#176ac6}
.content .councilor-license[hidden]{display:none}
.content .big-stat{display:block;margin:12px 0;color:#0f5ead;font-size:clamp(30px,5vw,44px);font-weight:800}
.content .grid.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
.content code{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:900px){.content .grid.two-cols{grid-template-columns:1fr}.content .card{padding:16px}}
@media(max-width:640px){
 :root{--sc-gap:14px;--sc-gap-sm:10px}
 .content{padding-inline:12px}
 .content .grid,.content .form-grid{grid-template-columns:minmax(0,1fr)!important;gap:var(--sc-gap-sm)}
 .content .grid>*{grid-column:1/-1;min-width:0}
 .content .card{padding:14px;border-radius:14px}
 .content .toolbar{align-items:stretch}
 .content .toolbar form{width:100%;display:grid;grid-template-columns:minmax(0,1fr)}
 .content .toolbar form>*{min-width:0;width:100%}
 .content .section-title{align-items:stretch}
 .content .row-actions,.content .form-actions{align-items:stretch}
 .content .row-actions>*{flex:1 1 130px}
 .content input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),.content select,.content textarea{font-size:16px}
 .content .btn{min-height:44px}
 .content .table-responsive table{min-width:560px}
 .content .hero h1{font-size:clamp(21px,5vw,30px)}
}
@media print{
 .content .card,.content [class*="-card"]{box-shadow:none!important;break-inside:avoid}
 .content .grid{gap:10px}
 .content .table-responsive,.content .rt-scroll{overflow:visible!important}
 .content .btn,.content .toolbar{display:none!important}
}
