.pdg-election-app, .pdg-election-app * { box-sizing: border-box; }
.pdg-election-app {
  --pdg-blue:#1767e8;
  --pdg-blue-dark:#0f4eaf;
  --pdg-sky:#56c8ff;
  --pdg-soft:#eef7ff;
  --pdg-card:#fff;
  --pdg-text:#17345f;
  --pdg-muted:#6683ad;
  --pdg-line:#d6e8ff;
  font-family:'Fredoka',Arial,sans-serif;
  color:var(--pdg-text);
  max-width:1320px;
  margin:20px auto;
}
.pdg-election-app button,.pdg-election-app input,.pdg-election-app select{font:inherit}
.pdg-pg-shell{background:linear-gradient(180deg,#fbfdff,#eff7ff);border:1px solid var(--pdg-line);border-radius:26px;padding:18px;box-shadow:0 16px 34px rgba(28,91,178,.10)}
.pdg-pg-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(135deg,#0f57d4,#49bfff);color:#fff;padding:20px;border-radius:21px;margin-bottom:16px;overflow:hidden;position:relative}
.pdg-pg-hero:after{content:"";position:absolute;width:210px;height:210px;border:28px solid rgba(255,255,255,.10);border-radius:50%;right:-65px;top:-85px}
.pdg-pg-hero h2{font-family:'Luckiest Guy','Fredoka',sans-serif!important;letter-spacing:.6px;font-size:clamp(28px,4vw,46px)!important;line-height:1!important;margin:0 0 7px!important;color:#fff!important;text-shadow:0 2px 0 rgba(0,0,0,.10)}
.pdg-pg-hero p{margin:0;color:#eaf7ff;font-size:14px;max-width:760px}
.pdg-pg-pill{position:relative;z-index:2;background:#fff;color:#1458c7;padding:10px 14px;border-radius:999px;font-weight:700;font-size:13px;white-space:nowrap}
.pdg-pg-grid{display:grid;grid-template-columns:minmax(310px,390px) minmax(0,1fr);gap:16px;align-items:start}
.pdg-pg-card{background:#fff;border:1px solid var(--pdg-line);border-radius:20px;padding:16px;box-shadow:0 9px 24px rgba(28,91,178,.07)}
.pdg-pg-card h3{margin:0 0 12px;color:#175dcc;font-size:18px}
.pdg-pg-card h4{margin:16px 0 9px;color:#175dcc}
.pdg-pg-field{display:flex;flex-direction:column;gap:6px;margin-bottom:11px}
.pdg-pg-field label{font-size:12px;font-weight:700;color:#3568ad}
.pdg-pg-field input,.pdg-pg-field select{width:100%;border:1px solid var(--pdg-line);border-radius:13px;padding:11px 12px;background:#fff;color:var(--pdg-text);outline:none}
.pdg-pg-field input:focus,.pdg-pg-field select:focus{border-color:#6eafff;box-shadow:0 0 0 3px rgba(41,126,238,.10)}
.pdg-pg-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pdg-pg-btn{border:1px solid var(--pdg-line);border-radius:13px;padding:10px 13px;background:#fff;color:#214d91;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;text-decoration:none!important}
.pdg-pg-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(27,93,183,.12)}
.pdg-pg-btn-primary{border-color:transparent;color:#fff;background:linear-gradient(135deg,#1767e8,#50c0ff)}
.pdg-pg-btn-danger{color:#a42e42;background:#fff6f7;border-color:#ffd7de}
.pdg-pg-btn-good{color:#117345;background:#edfff5;border-color:#bcebd2}
.pdg-pg-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pdg-election-list{display:grid;gap:9px}
.pdg-election-item{border:1px solid var(--pdg-line);border-radius:15px;padding:12px;background:#fbfdff;cursor:pointer}
.pdg-election-item:hover,.pdg-election-item.pdg-selected{border-color:#8bbdff;background:#f1f8ff}
.pdg-election-item-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.pdg-election-item strong{display:block;font-size:14px}
.pdg-small{font-size:11px;color:var(--pdg-muted)}
.pdg-status-badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;background:#edf2f7;color:#55708c}
.pdg-status-badge.is-open{background:#e8fff2;color:#127747}.pdg-status-badge.is-closed{background:#fff0f2;color:#b33e54}
.pdg-empty{padding:18px;text-align:center;border:1px dashed #bcd8fa;background:#f7fbff;border-radius:15px;color:#6c88ae}
.pdg-candidate-form{border-top:1px solid var(--pdg-line);margin-top:15px;padding-top:15px}
.pdg-candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.pdg-candidate-card{border:1px solid var(--pdg-line);border-radius:16px;padding:9px;background:#fff;overflow:hidden}
.pdg-candidate-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;background:#eff6ff;display:block}
.pdg-candidate-card .pdg-number{font-family:'Luckiest Guy','Fredoka',sans-serif;font-size:25px;color:#1767e8;margin-top:8px}
.pdg-candidate-card .pdg-name{font-weight:700;font-size:13px;min-height:35px}
.pdg-pg-shortcode{background:#0f2e5c;color:#dff1ff;padding:10px 12px;border-radius:12px;font-family:monospace;font-size:12px;word-break:break-all;cursor:pointer}
.pdg-results{margin-top:15px;border-top:1px solid var(--pdg-line);padding-top:15px}
.pdg-result-row{display:grid;grid-template-columns:52px minmax(110px,1fr) 2fr 60px;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid #eef4fc}
.pdg-result-row img{width:46px;height:46px;object-fit:cover;border-radius:10px;background:#eef5ff}
.pdg-result-bar{height:12px;border-radius:999px;background:#e8f1ff;overflow:hidden}.pdg-result-bar span{display:block;height:100%;background:linear-gradient(90deg,#1767e8,#50c0ff);border-radius:999px}
.pdg-result-total{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.pdg-stat{padding:8px 10px;border-radius:12px;background:#f2f7ff;color:#315b97;font-size:12px;font-weight:700}
.pdg-loading{padding:22px;text-align:center;color:#5275a8}.pdg-error{padding:11px 13px;border-radius:13px;background:#fff1f3;color:#a53c4d;border:1px solid #ffd7de;margin-bottom:10px}.pdg-success{padding:11px 13px;border-radius:13px;background:#edfff5;color:#1d774e;border:1px solid #c7efd9;margin-bottom:10px}
.pdg-file-label{display:flex;align-items:center;justify-content:center;border:1px dashed #88b9f5;border-radius:13px;padding:12px;background:#f5faff;color:#2e64ad;font-weight:700;cursor:pointer;position:relative;overflow:hidden}.pdg-file-label input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pdg-urna-login-warning{padding:16px;border-radius:14px;background:#eef7ff;border:1px solid #cfe5ff;color:#245a9f;font-family:Arial,sans-serif}

/* kiosk */
.pdg-kiosk-launch{background:linear-gradient(160deg,#0e4eb7,#22a6f1);color:#fff;border-radius:25px;padding:28px;text-align:center;box-shadow:0 18px 38px rgba(20,82,174,.20)}
.pdg-kiosk-launch h2{font-family:'Luckiest Guy','Fredoka',sans-serif!important;color:#fff!important;font-size:clamp(30px,5vw,52px)!important;margin:0 0 8px!important}.pdg-kiosk-launch p{margin:0 0 18px;color:#e9f7ff}
.pdg-kiosk-overlay{position:fixed;inset:0;z-index:999999;background:radial-gradient(circle at top,#1e78e9,#082b6c 72%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;overflow:auto}
.pdg-kiosk-topbar{width:min(1120px,98vw);display:flex;align-items:center;justify-content:space-between;color:#fff;margin:0 auto 8px;gap:10px}.pdg-kiosk-title{font-weight:700;font-size:clamp(15px,2vw,23px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdg-kiosk-actions{display:flex;gap:7px}.pdg-kiosk-action{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.14);color:#fff;border-radius:10px;padding:7px 10px;cursor:pointer;font-size:12px;font-weight:700}
.pdg-machine{position:relative;width:min(1120px,98vw);aspect-ratio:1000/506;user-select:none;-webkit-user-select:none;touch-action:manipulation;filter:drop-shadow(0 20px 30px rgba(0,0,0,.22))}.pdg-machine-bg{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.pdg-machine-screen{position:absolute;left:9.2%;top:11.7%;width:46.4%;height:81.8%;padding:2.2%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;color:#111}.pdg-screen-label{font-size:clamp(9px,1.3vw,18px);font-weight:700;letter-spacing:.4px;margin-bottom:1%}.pdg-screen-number{font-family:'Luckiest Guy','Fredoka',sans-serif;font-size:clamp(28px,6vw,82px);line-height:1;letter-spacing:.08em;margin-bottom:2%}.pdg-screen-photo{width:min(52%,200px);aspect-ratio:1/1;object-fit:cover;border-radius:10%;border:clamp(2px,.3vw,4px) solid #222;background:#edf1f5;margin-bottom:2%}.pdg-screen-name{font-weight:700;font-size:clamp(12px,2.2vw,30px);line-height:1.05;max-width:95%}.pdg-screen-big{font-family:'Luckiest Guy','Fredoka',sans-serif;font-size:clamp(28px,6vw,85px);line-height:.98}.pdg-screen-sub{font-size:clamp(10px,1.6vw,22px);margin-top:2%;font-weight:700}.pdg-screen-null{color:#b32137}.pdg-screen-blank{color:#244f9c}.pdg-screen-fim{font-size:clamp(48px,10vw,145px)}
.pdg-urna-hit{position:absolute;border:0;background:transparent;cursor:pointer;padding:0;margin:0;border-radius:4px}.pdg-urna-hit:active,.pdg-urna-hit.pdg-pressed{background:rgba(255,255,255,.28);box-shadow:inset 0 0 0 2px rgba(255,255,255,.6)}.pdg-urna-hit:focus-visible{outline:3px solid #53c5ff;outline-offset:2px}
.pdg-key-1{left:63.4%;top:24.3%;width:8.9%;height:11.3%}.pdg-key-2{left:72.3%;top:24.3%;width:8.8%;height:11.3%}.pdg-key-3{left:81.1%;top:24.3%;width:8.9%;height:11.3%}.pdg-key-4{left:63.4%;top:35.8%;width:8.9%;height:11.0%}.pdg-key-5{left:72.3%;top:35.8%;width:8.8%;height:11.0%}.pdg-key-6{left:81.1%;top:35.8%;width:8.9%;height:11.0%}.pdg-key-7{left:63.4%;top:46.9%;width:8.9%;height:11.2%}.pdg-key-8{left:72.3%;top:46.9%;width:8.8%;height:11.2%}.pdg-key-9{left:81.1%;top:46.9%;width:8.9%;height:11.2%}.pdg-key-0{left:72.3%;top:58.1%;width:8.8%;height:11.2%}.pdg-key-blank{left:61.8%;top:79.0%;width:8.5%;height:10.2%}.pdg-key-correct{left:71.4%;top:79.0%;width:8.4%;height:10.2%}.pdg-key-confirm{left:80.7%;top:73.5%;width:10.0%;height:15.8%}
.pdg-kiosk-message{width:min(1120px,98vw);margin-top:8px;text-align:center;color:#dcecff;font-size:12px}.pdg-kiosk-offline{background:#fff0f2;color:#ac3450;padding:12px 14px;border-radius:12px;max-width:650px;text-align:center}
.pdg-toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%) translateY(15px);opacity:0;pointer-events:none;z-index:1000001;background:#102d5e;color:#fff;padding:11px 15px;border-radius:999px;font-size:12px;box-shadow:0 12px 25px rgba(0,0,0,.24);transition:.2s}.pdg-toast.is-show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:980px){.pdg-pg-grid{grid-template-columns:1fr}.pdg-candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.pdg-election-app{margin:10px auto}.pdg-pg-shell{padding:10px;border-radius:18px}.pdg-pg-hero{padding:16px;flex-direction:column;align-items:flex-start}.pdg-pg-row{grid-template-columns:1fr}.pdg-candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pdg-result-row{grid-template-columns:42px minmax(90px,1fr) 1.2fr 42px}.pdg-result-row img{width:38px;height:38px}.pdg-kiosk-overlay{padding:5px}.pdg-kiosk-topbar{margin-bottom:4px}.pdg-kiosk-action{padding:5px 7px}.pdg-kiosk-message{display:none}}
@media(max-width:420px){.pdg-candidate-grid{grid-template-columns:1fr}}

/* v1.1.0 - fluxo por etapas + área de membros + ajuste de foto */
.pdg-urna-login-warning{max-width:720px;margin:24px auto;padding:22px!important;border-radius:18px!important;background:linear-gradient(135deg,#eef7ff,#fff)!important;border:1px solid #bcdcff!important;color:#1d559a!important;text-align:center;box-shadow:0 12px 28px rgba(30,94,180,.10)}
.pdg-urna-login-warning strong{display:block;font-family:'Luckiest Guy','Fredoka',sans-serif;font-size:25px;letter-spacing:.4px;color:#1767e8;margin-bottom:7px}
.pdg-urna-login-button{display:inline-flex;margin-top:13px;padding:10px 16px;border-radius:12px;background:linear-gradient(135deg,#1767e8,#50c0ff);color:#fff!important;text-decoration:none!important;font-weight:700;box-shadow:0 8px 20px rgba(23,103,232,.20)}
.pdg-election-heading{margin-bottom:12px}
.pdg-wizard-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:6px 0 16px;padding:7px;background:#f3f8ff;border:1px solid #d8e8fb;border-radius:16px}
.pdg-wizard-step{border:1px solid transparent;background:transparent;border-radius:12px;padding:8px 5px;display:flex;align-items:center;justify-content:center;gap:6px;color:#6885ab;cursor:pointer;font-family:'Fredoka',sans-serif;min-width:0}
.pdg-wizard-step span{width:25px;height:25px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#dceaff;color:#2c61ae;font-size:12px;font-weight:700;flex:0 0 auto}
.pdg-wizard-step b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdg-wizard-step.is-current{background:#fff;border-color:#9cc5ff;color:#155dc9;box-shadow:0 5px 13px rgba(31,103,200,.10)}
.pdg-wizard-step.is-current span{background:#1767e8;color:#fff}
.pdg-wizard-step.is-done span{background:#38b875;color:#fff}
.pdg-wizard-step:disabled{opacity:.38;cursor:not-allowed}
.pdg-step-content{animation:pdgStepIn .18s ease}
@keyframes pdgStepIn{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}
.pdg-step-banner{display:flex;gap:12px;align-items:center;padding:14px;border-radius:16px;background:linear-gradient(135deg,#eaf4ff,#f8fcff);border:1px solid #cfe3ff;margin-bottom:15px}
.pdg-step-number{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1767e8,#50c0ff);color:#fff;font-family:'Luckiest Guy','Fredoka',sans-serif;font-size:22px;flex:0 0 auto}
.pdg-step-banner strong{display:block;color:#175dcc;font-size:16px}.pdg-step-banner small{display:block;color:#6683aa;margin-top:2px}
.pdg-review-box{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.pdg-review-box>div{background:#f8fbff;border:1px solid #dfeafa;border-radius:14px;padding:12px}.pdg-review-box span{display:block;color:#7891b1;font-size:11px}.pdg-review-box strong{display:block;color:#174eaa;margin-top:4px}
.pdg-step-nav-bottom{border-top:1px solid #edf3fb;padding-top:13px;margin-top:16px;justify-content:space-between}
.pdg-step-hint{display:inline-flex;align-items:center;padding:9px 12px;border-radius:12px;background:#fff8e7;color:#8a6613;border:1px solid #f1dfae;font-size:12px;font-weight:600}
.pdg-material-card{display:grid;grid-template-columns:62px 1fr auto;gap:13px;align-items:center;border:1px solid #d6e8ff;background:#f8fbff;border-radius:17px;padding:14px}
.pdg-material-icon{width:58px;height:58px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1767e8,#50c0ff);color:#fff;font-family:'Luckiest Guy','Fredoka',sans-serif;font-size:17px}
.pdg-material-card p{margin:3px 0 0;color:#6d88ad;font-size:12px}.pdg-material-card strong{color:#195cc2}
.pdg-shortcode-box{margin-top:14px;padding:13px;border-radius:15px;background:#f7faff;border:1px solid #dbe9fa}.pdg-shortcode-box small{display:block;color:#6c86a8;margin:5px 0}
.pdg-kiosk-admin-card{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:18px;border-radius:18px;background:#f5f9ff;border:1px solid #d7e7fb}.pdg-kiosk-admin-card.is-open{background:#effff7;border-color:#bfead3}
.pdg-kiosk-admin-status{display:flex;align-items:center;gap:10px}.pdg-kiosk-admin-status>span{width:15px;height:15px;border-radius:50%;background:#a3b2c6;box-shadow:0 0 0 5px rgba(120,145,177,.12)}.pdg-kiosk-admin-card.is-open .pdg-kiosk-admin-status>span{background:#28b66d;box-shadow:0 0 0 5px rgba(40,182,109,.13)}
.pdg-kiosk-admin-status small{display:block;color:#7891b1}.pdg-kiosk-admin-status strong{display:block;color:#174eaa;font-size:18px}.pdg-kiosk-big{grid-column:1/-1;font-family:'Luckiest Guy','Fredoka',sans-serif;font-size:22px;letter-spacing:.5px;padding:15px 18px}
.pdg-crop-wrap{margin-top:12px;padding:13px;border-radius:16px;background:#f4f9ff;border:1px solid #cfe3ff}
.pdg-crop-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}.pdg-crop-title strong{color:#175dcc}.pdg-crop-title span{font-size:11px;color:#6a85aa;text-align:right}
.pdg-crop-modes{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}.pdg-crop-modes .pdg-pg-btn{min-height:35px;padding:7px 10px;font-size:11px}
#pdg-crop-canvas{display:block;width:100%;max-width:430px;aspect-ratio:1/1;height:auto;margin:0 auto;border-radius:13px;background:#eef6ff;border:1px solid #bcd9ff;touch-action:none;cursor:grab}#pdg-crop-canvas:active{cursor:grabbing}
.pdg-crop-range{margin:10px auto 8px;max-width:430px}.pdg-crop-range label{display:flex;justify-content:space-between;font-size:12px;color:#3568ad;font-weight:700;margin-bottom:5px}.pdg-crop-range input{width:100%;accent-color:#1767e8}
@media(max-width:760px){.pdg-wizard-steps{grid-template-columns:repeat(5,46px);overflow-x:auto;justify-content:start}.pdg-wizard-step{padding:7px}.pdg-wizard-step b{display:none}.pdg-review-box{grid-template-columns:1fr}.pdg-material-card{grid-template-columns:54px 1fr}.pdg-material-card .pdg-pg-btn{grid-column:1/-1;width:100%}.pdg-kiosk-admin-card{grid-template-columns:1fr}.pdg-kiosk-admin-card .pdg-pg-btn{width:100%}.pdg-crop-title{flex-direction:column}.pdg-crop-title span{text-align:left}}
