:root{
  --pd-navy:#061f52;
  --pd-blue:#0b4ea2;
  --pd-sky:#139fe6;
  --pd-red:#cf111b;
  --pd-bg:#f4f7fb;
  --pd-line:#e6edf5;
}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--pd-bg);color:#172033}
.content-wrapper{background:linear-gradient(180deg,#f8fbff 0,#f4f7fb 42%,#f5f7fb 100%)}
.pd-topbar{border-bottom:1px solid #e8edf4;box-shadow:0 3px 18px rgba(20,48,88,.06)}
.pd-sidebar{background:linear-gradient(180deg,#061d49 0%,#082e67 55%,#064e8d 100%)!important}
.pd-brand{background:rgba(255,255,255,.05)!important;border-bottom:1px solid rgba(255,255,255,.09)!important}
.pd-brand .brand-image{width:36px;height:36px;object-fit:cover;margin-top:-2px}
.sidebar-dark-primary .nav-sidebar>.nav-item>.nav-link.active{background:linear-gradient(135deg,#0e74d4,#16a6e3);box-shadow:0 8px 22px rgba(10,100,190,.28)}
.sidebar-dark-primary .nav-sidebar>.nav-item>.nav-link{border-radius:10px;margin:2px 8px;width:auto}
.nav-sidebar .nav-header{font-size:.68rem;letter-spacing:.11em;color:#8fb5db!important;margin:10px 9px 5px}
.sidebar-user-icon,.user-chip{display:inline-grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#eaf5ff,#cce8ff);color:#0b5aa5}
.sidebar-user-icon{width:34px;height:34px}.user-chip{width:30px;height:30px}
.pd-page-title{font-weight:800;font-size:1.45rem;color:#102340}
.page-logo{align-items:center;gap:9px;background:#fff;border:1px solid #e7edf5;padding:6px 12px;border-radius:999px;font-weight:700;color:#123a74;box-shadow:0 6px 20px rgba(20,50,90,.05)}
.page-logo img{width:30px;height:30px;border-radius:50%;object-fit:cover}
.card{border:0;border-radius:16px;box-shadow:0 8px 28px rgba(27,54,93,.07);overflow:hidden}
.card-header{border-bottom:1px solid #edf1f6;background:#fff}.card-title{font-weight:700}
.stat-card{position:relative;min-height:122px;padding:20px;border-radius:18px;background:#fff;box-shadow:0 8px 28px rgba(27,54,93,.07);overflow:hidden}
.stat-card .stat-icon{position:absolute;right:17px;top:17px;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:#edf6ff;color:#0b69c3;font-size:1.35rem}
.stat-card .stat-value{font-size:2rem;font-weight:800;color:#10223d;line-height:1.1}.stat-card .stat-label{color:#6f7f91;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.stat-card:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:4px;background:linear-gradient(90deg,var(--pd-red),var(--pd-blue),var(--pd-sky))}
.btn{border-radius:10px;font-weight:600}.btn-primary{background:linear-gradient(135deg,#0b5fb4,#129ee2);border:0}.btn-primary:hover{background:linear-gradient(135deg,#094f98,#0c86c7)}
.form-control,.custom-select{border-radius:10px;border-color:#dbe4ee;min-height:40px}.form-control:focus,.custom-select:focus{border-color:#58a9ec;box-shadow:0 0 0 .2rem rgba(35,136,216,.12)}
.table thead th{border-top:0;border-bottom:1px solid #e8eef5;color:#65758a;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}.table td{vertical-align:middle;border-top:1px solid #edf1f6}
.avatar{width:48px;height:48px;border-radius:12px;object-fit:cover;background:#eaf0f6;border:1px solid #dbe3ec}.avatar-lg{width:150px;height:180px;border-radius:16px;object-fit:cover;background:#eef3f8;border:1px dashed #b5c4d4}
.badge{border-radius:999px;padding:.44em .72em}
.modal-dialog.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-dialog.modal-fullscreen .modal-content{min-height:100vh;border:0;border-radius:0;background:#f5f8fc}.pd-modal-header{background:linear-gradient(110deg,#061e4e,#0759a5 65%,#0ea1df);color:#fff;border:0;padding:16px 22px}.modal-subtitle{opacity:.72}.modal-body{padding:20px}.modal-loader{min-height:50vh;display:grid;place-items:center;align-content:center;gap:12px;color:#648099;font-size:1.1rem}
.section-card{background:#fff;border-radius:16px;box-shadow:0 6px 24px rgba(31,58,94,.06);padding:20px;height:100%}.section-title{font-size:1rem;font-weight:800;color:#173257;margin-bottom:16px;display:flex;align-items:center;gap:8px}.section-title i{color:#0a70c8}
.photo-upload-card{background:#fff;border:1px solid #e4ebf3;border-radius:15px;padding:14px;text-align:center}.photo-preview{width:150px;height:180px;object-fit:cover;border-radius:14px;background:#eef3f8;border:1px dashed #b9c7d5}.photo-preview.electoral{width:100%;height:180px}
.camera-stage{background:#071423;border-radius:16px;padding:12px;color:#fff}.camera-stage video{width:100%;max-height:340px;border-radius:12px;background:#000}.camera-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.filter-shell{background:#fff;border-radius:16px;padding:14px;box-shadow:0 7px 24px rgba(31,58,94,.05);margin-bottom:16px}
.info-grid .info-item{background:#f8fbfe;border:1px solid #edf2f7;border-radius:12px;padding:12px}.info-item .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#77889a;font-weight:700}.info-item .value{font-weight:700;color:#182b47;margin-top:3px}
.empty-state{padding:44px 20px;text-align:center;color:#7b8b9d}.empty-state i{font-size:2.4rem;color:#c3d0de;margin-bottom:10px}
.login-page-pd{min-height:100vh;background:radial-gradient(circle at 18% 18%,rgba(32,163,232,.32),transparent 29%),linear-gradient(135deg,#061d49,#063c7d 58%,#0b8fd4);display:grid;place-items:center;padding:24px}.login-box-pd{width:min(440px,100%);background:#fff;border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.28);overflow:hidden}.login-brand-pd{padding:28px 30px 18px;text-align:center}.login-brand-pd img{width:82px;height:82px;border-radius:50%;object-fit:cover;box-shadow:0 9px 24px rgba(0,67,138,.17)}.login-brand-pd h1{font-size:1.35rem;font-weight:900;color:#b40f18;margin:12px 0 0}.login-brand-pd p{font-weight:800;color:#123a75;margin:2px 0 0}.login-body-pd{padding:18px 30px 30px}
@media(max-width:767.98px){.content-header{padding:.75rem .5rem}.content{padding:0 .3rem}.modal-body{padding:12px}.section-card{padding:14px}.pd-page-title{font-size:1.2rem}.stat-card{min-height:105px;padding:15px}.stat-card .stat-value{font-size:1.65rem}.stat-card .stat-icon{width:44px;height:44px}}

/* v3 — modern login, clean full-modal CRUD, quick photo actions */
.pd-login-v3{margin:0;min-height:100vh;background:#edf3fa;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.pd-login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(430px,1.12fr) minmax(420px,.88fr)}.pd-login-hero{position:relative;overflow:hidden;background:linear-gradient(145deg,#061b49 0%,#073d82 55%,#0b91d1 100%);color:#fff;padding:64px;display:flex;align-items:center}.pd-login-glow{position:absolute;width:520px;height:520px;border-radius:50%;background:rgba(20,174,235,.18);filter:blur(4px);right:-180px;top:-140px}.pd-login-identity{position:relative;z-index:2;max-width:650px}.pd-login-logo-wrap{width:104px;height:104px;padding:7px;background:#fff;border-radius:26px;box-shadow:0 18px 50px rgba(0,0,0,.22);margin-bottom:24px}.pd-login-logo-wrap img{width:100%;height:100%;object-fit:cover;border-radius:20px}.pd-login-kicker{font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#8fd8ff;font-size:.75rem}.pd-login-identity h1{font-size:2.35rem;font-weight:900;margin:8px 0 0;color:#fff}.pd-login-identity h2{font-size:1.25rem;font-weight:800;color:#bfe8ff;margin:4px 0 18px}.pd-login-identity p{font-size:1.05rem;line-height:1.7;color:#d6e9f9;max-width:560px}.pd-login-features{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.pd-login-features span{padding:10px 14px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);backdrop-filter:blur(10px);border-radius:12px;font-size:.82rem}.pd-login-features i{margin-right:8px;color:#72d8ff}.pd-login-wave{position:absolute;width:460px;height:460px;border:70px solid rgba(255,255,255,.045);border-radius:50%;right:-190px;bottom:-190px}.pd-login-panel{display:flex;align-items:center;justify-content:center;padding:48px;background:linear-gradient(180deg,#fff,#f7f9fc)}.pd-login-formbox{width:min(430px,100%)}.pd-login-eyebrow{color:#0a75c9;font-size:.72rem;font-weight:900;letter-spacing:.16em}.pd-login-formbox h3{font-weight:900;color:#102642;font-size:2rem;margin:5px 0 5px}.pd-input-icon{position:relative}.pd-input-icon>i{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#7b8da3;z-index:2}.pd-input-icon .form-control{height:50px;padding-left:44px;padding-right:44px;border-radius:13px;background:#f9fbfd}.pd-pass-toggle{position:absolute;right:8px;top:6px;width:38px;height:38px;border:0;background:transparent;color:#78899c}.pd-login-btn{height:51px;border-radius:13px;margin-top:24px;box-shadow:0 12px 28px rgba(9,103,190,.23)}.pd-login-alert{border:0;border-radius:13px}.pd-login-footer{text-align:center;margin-top:28px;color:#8593a4;font-size:.78rem}.pd-mobile-brand{display:none}.modal-form-clean{max-width:1500px;margin:0 auto}.modal-form-hero{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#fff,#f5faff);border:1px solid #e5eef7;border-radius:16px;padding:14px 17px;margin-bottom:14px}.modal-form-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#0b5fb4,#13a4e3);color:#fff;font-size:1.2rem;box-shadow:0 8px 20px rgba(10,101,184,.22)}.modal-form-hero h4{font-size:1.08rem;font-weight:900;color:#16304f;margin:0}.modal-form-hero p{font-size:.8rem;color:#7a8b9e;margin:2px 0 0}.pd-form-steps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.pd-form-steps a{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid #e6edf5;color:#5f7185;padding:7px 11px;border-radius:10px;font-size:.78rem;font-weight:700}.pd-form-steps span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eaf4ff;color:#086bbb;font-size:.72rem}.modal-form-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 0 4px}.sticky-actions{position:sticky;bottom:-20px;z-index:20;background:rgba(245,248,252,.96);backdrop-filter:blur(9px);border-top:1px solid #e2e9f1;margin:10px -20px -20px;padding:12px 20px}.sticky-photo-panel{position:sticky;top:0}.photo-quick-card{border:1px solid #e5ebf2;background:#fbfdff;border-radius:14px;padding:12px}.photo-label{text-align:center;font-weight:800;color:#203a59;font-size:.83rem;margin-bottom:9px}.photo-frame{height:180px;border-radius:12px;background:#edf3f8;border:1px dashed #b8c7d7;position:relative;overflow:hidden;display:grid;place-items:center}.photo-frame.electoral{height:145px}.photo-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}.photo-frame img[src=""],.photo-frame img:not([src]){display:none}.photo-placeholder{font-size:2rem;color:#bdc9d6}.photo-choice-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.photo-choice-buttons .btn{font-size:.78rem;padding:.48rem .4rem}.camera-drawer{position:fixed;right:20px;bottom:20px;z-index:2000;width:min(430px,calc(100vw - 30px));padding:12px;background:#08182a;color:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.42)}.camera-drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.camera-drawer-head small{display:block;color:#8fa6bd}.camera-drawer video{width:100%;max-height:320px;object-fit:cover;background:#000;border-radius:12px}.camera-drawer-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.master-nav-card{background:#fff;border-radius:16px;padding:12px;box-shadow:0 8px 28px rgba(27,54,93,.07)}.master-nav-title{font-size:.7rem;font-weight:900;letter-spacing:.08em;color:#8795a5;text-transform:uppercase;padding:7px 9px}.master-nav-link{display:flex;align-items:center;gap:10px;padding:11px;border-radius:10px;color:#475b72;font-weight:700;font-size:.83rem;margin:3px 0}.master-nav-link>i:first-child{width:25px;text-align:center;color:#0c72c5}.master-nav-link:hover{background:#f2f8fe;color:#13558f}.master-nav-link.active{background:linear-gradient(135deg,#eaf5ff,#eefaff);color:#075ca6;box-shadow:inset 3px 0 #0b85d6}.compact-stats .mini-stat{height:76px;background:#fff;border-radius:14px;display:flex;align-items:center;gap:13px;padding:12px 15px;box-shadow:0 6px 20px rgba(27,54,93,.055)}.mini-stat>i{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#eef7ff;color:#0b73c7}.mini-stat b{display:block;font-size:1.35rem;line-height:1.05;color:#173250}.mini-stat span{font-size:.72rem;color:#7b8998;text-transform:uppercase;font-weight:700}.modern-filter{position:relative;padding-right:170px}.filter-action{position:absolute;right:14px;bottom:14px}.militant-list-card .card-header{min-height:67px}.avatar-empty{display:grid;place-items:center;color:#a7b4c2}.id-chip{display:inline-block;background:#edf6ff;color:#0965b4;border:1px solid #d8eaff;border-radius:8px;padding:5px 8px;font-weight:800;font-size:.76rem}.btn-action{border:1px solid #dbe5ee;background:#fff;color:#5d7186;border-radius:9px;margin-left:3px}.btn-action:hover{color:#086cbd;background:#edf7ff;border-color:#cce6fa}.btn-action.print{color:#0a7b8f}.font-weight-semibold{font-weight:700}
@media(max-width:991.98px){.pd-login-shell{grid-template-columns:1fr}.pd-login-hero{display:none}.pd-login-panel{min-height:100vh;padding:28px}.pd-mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:32px}.pd-mobile-brand img{width:48px;height:48px;border-radius:13px;object-fit:cover}.pd-mobile-brand b,.pd-mobile-brand small{display:block}.pd-mobile-brand b{color:#c3101a;font-size:1.2rem}.pd-mobile-brand small{color:#55718d}.sticky-photo-panel{position:static}.modern-filter{padding-right:14px;padding-bottom:70px}.filter-action{left:14px;right:14px}.filter-action .btn{width:100%}}
@media(max-width:575.98px){.pd-login-panel{padding:22px}.pd-login-formbox h3{font-size:1.65rem}.pd-form-steps{display:grid;grid-template-columns:1fr 1fr}.pd-form-steps a{font-size:.72rem}.camera-drawer{right:10px;bottom:10px;width:calc(100vw - 20px)}.sticky-actions{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}}

/* v3.1 — Master Data tree + dedicated geography masters */
.pd-master-tree>.nav-item>.nav-link{margin-left:10px!important;margin-right:8px!important;border-radius:9px!important;padding:.48rem .72rem!important;font-size:.82rem}
.pd-master-tree>.nav-item>.nav-link .nav-icon{font-size:.68rem!important;width:1.25rem!important;color:#8eb7dd}
.pd-master-tree>.nav-item>.nav-link.active{background:rgba(255,255,255,.13)!important;color:#fff!important;box-shadow:inset 3px 0 #34b9f1!important}
.pd-master-tree>.nav-item>.nav-link.active .nav-icon{color:#7edcff!important}
.pd-master-tree .nav-separator{height:1px;background:rgba(255,255,255,.08);margin:7px 18px}
.mini-stat-active{border:1px solid #cce8fb;box-shadow:0 8px 24px rgba(11,116,199,.13)!important;background:linear-gradient(135deg,#fff,#f3faff)!important}
.mini-stat-active>i{background:linear-gradient(135deg,#0b67bb,#15a7e4)!important;color:#fff!important}
.master-area-card .card-header{min-height:76px}.table-master-area thead th{white-space:nowrap}.table-master-area td{vertical-align:middle}
.area-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eef7ff;color:#0b73c7;flex:0 0 34px}
.geo-hierarchy-mini{display:grid;grid-template-columns:1fr;gap:7px}.geo-hierarchy-mini>div{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:10px;background:#f7f9fc;border:1px solid #e7edf4;color:#617488;font-weight:700}.geo-hierarchy-mini>div i{width:20px;text-align:center;color:#0a74c8}.geo-hierarchy-mini>div.active{background:linear-gradient(135deg,#eaf6ff,#f1fbff);border-color:#bfe2f8;color:#075b9e;box-shadow:inset 3px 0 #0b82d2}.geo-hierarchy-mini>span{text-align:center;color:#a6b4c2;line-height:1}
@media(max-width:767.98px){.master-area-card .card-header>div:last-child{width:100%;margin-top:10px}.master-area-card .card-header>div:last-child .btn{flex:1}.table-master-area{min-width:880px}}

/* ================================================================
   v3.2 — Militante CRUD Full Modal
   Compact data-entry layout inspired by the SEFOPE workflow.
   ================================================================ */
#fullCrudModal{padding:0!important}
#fullCrudModal .modal-dialog.modal-fullscreen{width:calc(100vw - 18px);max-width:none;height:calc(100vh - 18px);margin:9px}
#fullCrudModal .modal-dialog.modal-fullscreen .modal-content{height:calc(100vh - 18px);min-height:0;border:1px solid rgba(23,72,119,.16);border-radius:16px;overflow:hidden;box-shadow:0 22px 70px rgba(3,28,61,.22);background:#f2f6fb}
#fullCrudModal .pd-modal-header{flex:0 0 auto;padding:12px 18px;background:linear-gradient(112deg,#061c48,#075ca8 62%,#0aa2df);box-shadow:0 3px 16px rgba(4,43,85,.18)}
#fullCrudModal .pd-modal-header .modal-title{font-size:1.02rem;font-weight:800;line-height:1.15;margin:0}
#fullCrudModal .pd-modal-header .modal-subtitle{display:block;margin-top:2px;font-size:.70rem;letter-spacing:.035em;text-transform:uppercase;opacity:.72}
#fullCrudModal .pd-modal-header .close{opacity:.9;text-shadow:none;padding:.45rem .65rem;margin:-.1rem -.2rem -.1rem auto;border-radius:9px}
#fullCrudModal .pd-modal-header .close:hover{background:rgba(255,255,255,.12);opacity:1}
#fullCrudModal .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:14px 16px 0;background:#f2f6fb;scroll-behavior:smooth}
#fullCrudModal .modal-body::-webkit-scrollbar{width:9px}
#fullCrudModal .modal-body::-webkit-scrollbar-thumb{background:#bccbd9;border:2px solid #f2f6fb;border-radius:10px}

.pd-militant-form{max-width:1540px;margin:0 auto;padding-bottom:86px}
.pd-crud-hero{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 15px;margin-bottom:10px;border:1px solid #dce8f3;border-radius:14px;background:linear-gradient(135deg,#ffffff 0%,#f6fbff 72%,#edf8ff 100%);box-shadow:0 7px 22px rgba(13,72,125,.07)}
.pd-crud-hero-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:#fff;font-size:1.1rem;background:linear-gradient(135deg,#0759a8,#0ba5dd);box-shadow:0 8px 16px rgba(5,103,177,.2)}
.pd-crud-hero-copy{min-width:0}.pd-crud-hero-copy h4{font-size:1.02rem;font-weight:800;color:#14324f;margin:1px 0 2px}.pd-crud-hero-copy p{margin:0;color:#6b7f92;font-size:.76rem;line-height:1.35}
.pd-crud-kicker{font-size:.64rem;line-height:1;font-weight:900;letter-spacing:.09em;color:#0780c4}
.pd-crud-hero-meta{display:flex;align-items:center;justify-content:flex-end}
.pd-id-badge{display:inline-flex;align-items:center;gap:7px;min-height:31px;padding:6px 10px;border-radius:9px;background:#e8f5ff;border:1px solid #c5e5f8;color:#075f9f;font-size:.75rem;font-weight:800;white-space:nowrap}.pd-id-badge.muted{background:#f4f6f9;border-color:#e0e6ed;color:#738396}.pd-id-badge i{font-size:.8rem}

.pd-quick-nav{position:sticky;top:-14px;z-index:22;display:flex;gap:6px;align-items:center;margin:0 -2px 10px;padding:7px 2px;background:rgba(242,246,251,.96);backdrop-filter:blur(8px)}
.pd-quick-nav button{border:1px solid #d9e4ef;background:#fff;color:#5f7388;border-radius:9px;padding:6px 10px;font-size:.72rem;font-weight:800;line-height:1;box-shadow:0 3px 8px rgba(28,70,109,.04);transition:.16s ease;white-space:nowrap}
.pd-quick-nav button span{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:4px;border-radius:6px;background:#edf3f8;color:#688097;font-size:.63rem}.pd-quick-nav button i{margin-right:4px;color:#7f93a7}
.pd-quick-nav button:hover,.pd-quick-nav button.active{border-color:#87c8ef;background:#eaf7ff;color:#075d9e;transform:translateY(-1px)}.pd-quick-nav button.active span{background:#0b78c3;color:#fff}.pd-quick-nav button.active i{color:#0b78c3}

.pd-crud-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:start}.pd-crud-main{min-width:0}.pd-crud-aside{min-width:0;position:sticky;top:44px}
.pd-form-section{scroll-margin-top:60px;background:#fff;border:1px solid #dfe8f1;border-radius:14px;margin:0 0 10px;overflow:hidden;box-shadow:0 5px 18px rgba(26,70,111,.055)}
.pd-section-head{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:56px;padding:9px 13px;border-bottom:1px solid #edf1f5;background:linear-gradient(135deg,#fbfdff,#f6faff)}
.pd-section-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e8f5ff;color:#0874bb}.pd-section-head h5{font-size:.88rem;font-weight:800;color:#173a59;margin:0 0 1px}.pd-section-head small{display:block;color:#8292a2;font-size:.67rem;line-height:1.25}.pd-section-no{font-size:.65rem;font-weight:900;letter-spacing:.07em;color:#99aabb;background:#eef3f7;border-radius:7px;padding:4px 7px}
.pd-form-row{padding:12px 12px 3px}.pd-form-row .form-group{margin-bottom:10px}.pd-form-row label{display:flex;align-items:center;min-height:17px;margin-bottom:4px;color:#425a70;font-size:.69rem;font-weight:800}.pd-form-row label b{color:#dc3545;margin-left:3px}.pd-form-row .form-control,.pd-form-row .custom-select{height:36px;border-radius:8px;border-color:#d7e0e8;background-color:#fff;color:#27435d;font-size:.78rem;box-shadow:none}.pd-form-row .form-control::placeholder{color:#adb8c3}.pd-form-row .form-control:focus,.pd-form-row .custom-select:focus{border-color:#69b9e9;box-shadow:0 0 0 .16rem rgba(25,139,204,.11)}.pd-form-row .custom-select:disabled{background:#f3f5f7;color:#a4afb9}.pd-input-group .input-group-text{height:36px;border-color:#d7e0e8;background:#f6f9fb;color:#7b8da0;border-radius:8px 0 0 8px;font-size:.72rem}.pd-input-group .form-control{border-left:0;border-radius:0 8px 8px 0}.pd-form-row .invalid-feedback{font-size:.65rem;margin-top:2px}

.pd-photo-panel{scroll-margin-top:60px;background:#fff;border:1px solid #dfe8f1;border-radius:14px;overflow:hidden;box-shadow:0 5px 18px rgba(26,70,111,.055)}
.pd-photo-panel-head{display:flex;align-items:center;justify-content:space-between;min-height:50px;padding:10px 12px;background:linear-gradient(135deg,#0757a4,#0b89ca);color:#fff}.pd-photo-panel-head>div{display:flex;align-items:center;gap:8px}.pd-photo-panel-head i{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.14)}.pd-photo-panel-head b{font-size:.84rem}.pd-photo-panel-head>span{font-size:.63rem;font-weight:900;letter-spacing:.07em;padding:4px 7px;background:rgba(255,255,255,.15);border-radius:7px}
.pd-photo-help{padding:8px 12px;margin:0;border-bottom:1px solid #edf1f5;background:#f9fcff;color:#788a9c;font-size:.67rem;line-height:1.4}
.pd-photo-card{padding:10px 11px;border-bottom:1px solid #edf1f5}.pd-photo-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.pd-photo-title span{font-size:.72rem;font-weight:850;color:#36536d}.pd-photo-title small{font-size:.61rem;color:#9aa8b5}.pd-photo-frame{position:relative;display:grid;place-items:center;overflow:hidden;width:100%;height:152px;border:1px dashed #bdccda;border-radius:10px;background:linear-gradient(145deg,#f5f8fb,#edf3f7)}.pd-photo-frame.electoral{height:118px}.pd-photo-frame img{position:relative;z-index:2;width:100%;height:100%;object-fit:cover;display:none}.pd-photo-frame img[src]:not([src=""]),.pd-photo-frame img.has-photo{display:block}.pd-photo-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:6px;color:#a0aebb;font-size:.66rem}.pd-photo-empty i{font-size:1.6rem;color:#b6c4cf}.pd-photo-frame img[src]:not([src=""])~.pd-photo-empty,.pd-photo-frame img.has-photo~.pd-photo-empty{display:none}
.pd-photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.pd-photo-actions .btn{height:33px;border-radius:8px;font-size:.69rem;font-weight:800;padding:.3rem .4rem}.pd-photo-actions .btn i{margin-right:4px}.pd-photo-note{display:flex;align-items:flex-start;gap:7px;padding:8px 11px;background:#f8fbfd;color:#7c8d9d;font-size:.64rem;line-height:1.35}.pd-photo-note i{color:#0a83c8;margin-top:1px}

.camera-drawer{position:relative;margin:10px 0 0;border:1px solid #bcdced;border-radius:13px;overflow:hidden;background:#061c32;box-shadow:0 10px 28px rgba(0,35,66,.16)}.camera-drawer-head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:#082c4f;color:#fff}.camera-drawer-head>div{display:flex;align-items:center;gap:9px}.camera-drawer-head small{font-size:.64rem;opacity:.7}.camera-drawer video{display:block;width:100%;max-height:46vh;object-fit:contain;background:#02070d}.camera-drawer-actions{display:flex;justify-content:center;gap:7px;padding:8px;background:#08243e}.camera-drawer-actions .btn{min-width:132px;border-radius:8px;font-size:.72rem;font-weight:800}

.pd-form-footer{position:fixed;z-index:1053;left:calc(250px + 25px);right:25px;bottom:15px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid rgba(173,194,213,.8);border-radius:12px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);box-shadow:0 10px 28px rgba(19,55,88,.16)}
body.sidebar-collapse .pd-form-footer{left:99px}.pd-required-note{display:flex;align-items:center;gap:7px;color:#718397;font-size:.68rem}.pd-required-note i{color:#0b82ca}.pd-form-footer-actions{display:flex;gap:7px}.pd-form-footer-actions .btn{min-width:112px;height:36px;border-radius:9px;font-size:.73rem;font-weight:800}.pd-form-footer-actions .btn-primary{min-width:170px;box-shadow:0 5px 13px rgba(6,106,178,.18)}

/* When CRUD is inside the global modal, footer is anchored to modal not sidebar. */
#fullCrudModal .pd-militant-form .pd-form-footer{left:25px;right:25px;bottom:18px}

@media(max-width:1199.98px){.pd-crud-grid{grid-template-columns:1fr}.pd-crud-aside{position:static}.pd-photo-panel{display:grid;grid-template-columns:1fr 1fr;gap:0}.pd-photo-panel-head,.pd-photo-help,.pd-photo-note{grid-column:1/-1}.pd-photo-card{border-right:1px solid #edf1f5}.pd-photo-card:nth-of-type(2){border-right:0}.pd-photo-frame{height:170px}.pd-photo-frame.electoral{height:170px}}
@media(max-width:991.98px){#fullCrudModal .modal-dialog.modal-fullscreen{width:100vw;height:100vh;margin:0}#fullCrudModal .modal-dialog.modal-fullscreen .modal-content{height:100vh;border:0;border-radius:0}.pd-militant-form{padding-bottom:94px}.pd-crud-hero{grid-template-columns:44px minmax(0,1fr)}.pd-crud-hero-meta{grid-column:1/-1;justify-content:flex-start;margin-left:56px}.pd-form-footer,#fullCrudModal .pd-militant-form .pd-form-footer{left:10px;right:10px;bottom:9px}}
@media(max-width:767.98px){#fullCrudModal .modal-body{padding:10px 9px 0}.pd-crud-hero{padding:10px}.pd-crud-hero-copy p{display:none}.pd-crud-hero-meta{margin-left:0}.pd-quick-nav{top:-10px;overflow-x:auto;overscroll-behavior-x:contain;padding:6px 0}.pd-quick-nav::-webkit-scrollbar{display:none}.pd-quick-nav button{flex:0 0 auto;padding:6px 8px}.pd-section-head{padding:8px 10px}.pd-form-row{padding:10px 9px 2px}.pd-photo-panel{grid-template-columns:1fr}.pd-photo-panel-head,.pd-photo-help,.pd-photo-note{grid-column:auto}.pd-photo-card{border-right:0}.pd-photo-frame,.pd-photo-frame.electoral{height:180px}.pd-form-footer,#fullCrudModal .pd-militant-form .pd-form-footer{align-items:stretch;padding:7px}.pd-required-note{display:none}.pd-form-footer-actions{width:100%}.pd-form-footer-actions .btn{min-width:0;flex:1}.pd-form-footer-actions .btn-primary{flex:1.6;min-width:0}.camera-drawer-actions{flex-direction:column}.camera-drawer-actions .btn{width:100%}}
@media(max-width:420px){.pd-quick-nav button i{display:none}.pd-crud-hero-icon{width:40px;height:40px}.pd-crud-hero{grid-template-columns:40px minmax(0,1fr)}.pd-crud-hero-copy h4{font-size:.9rem}.pd-id-badge{font-size:.66rem}.pd-photo-frame,.pd-photo-frame.electoral{height:165px}}

/* v3.2 geography import/export */
.geo-import-card .card-header{background:linear-gradient(135deg,#fff,#f5faff);padding:16px 18px}.geo-export-box{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid #cfe5f4;border-radius:12px;background:linear-gradient(135deg,#f4fbff,#eef8ff)}.geo-export-icon{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,#0868b8,#0ba4dd);color:#fff;font-size:1rem}.geo-export-copy b{display:block;color:#174463;font-size:.84rem}.geo-export-copy small{display:block;color:#70879a;line-height:1.4;margin-top:2px}.geo-export-actions{display:flex;gap:6px}.geo-export-actions .btn{border-radius:8px;font-size:.72rem;font-weight:800;white-space:nowrap}.geo-import-format{padding:11px 13px;border:1px solid #e0e8ef;border-radius:11px;background:#fbfcfe}.geo-import-format pre{margin:0;padding:10px;border-radius:8px;background:#172b3f;color:#dff4ff;font-size:.72rem;white-space:pre-wrap}.geo-upload-form{padding:12px;border:1px dashed #cbd9e5;border-radius:11px;background:#fff}.geo-upload-form .custom-file-label{font-size:.76rem;border-radius:8px}.geo-upload-form .btn{border-radius:8px;font-size:.75rem;font-weight:800}
@media(max-width:767.98px){.geo-export-box{grid-template-columns:40px 1fr}.geo-export-icon{width:40px;height:40px}.geo-export-actions{grid-column:1/-1}.geo-export-actions .btn{flex:1}.geo-upload-form>div:last-child{gap:9px}.geo-upload-form>div:last-child .btn{width:100%}}
