:root{
  --bg:#07111f;--panel:#101c30;--panel2:#0c1728;--line:#263751;--line2:#1b2b44;
  --text:#f4f7ff;--muted:#8fa2bf;--blue:#2f7df6;--blue2:#4ba0ff;--green:#14c995;
  --purple:#8b5cf6;--orange:#f59e0b;--red:#ff4d62;--cyan:#1eb3ff;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:linear-gradient(180deg,#08121f 0%,#0a1425 48%,#07111f 100%);color:var(--text);font-family:"Nirmala UI","Segoe UI",sans-serif}body{min-width:1180px}.hidden{display:none!important}.bgGlow{position:fixed;pointer-events:none;filter:blur(80px);opacity:.16;border-radius:50%;z-index:0}.glowA{width:500px;height:500px;background:#1267ff;left:-150px;top:-180px}.glowB{width:580px;height:580px;background:#6c2cff;right:-220px;bottom:-260px}.topbar{position:relative;z-index:2;margin:16px 24px 0;padding:18px 24px;border:1px solid var(--line);background:rgba(15,27,47,.92);border-radius:18px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 20px 70px rgba(0,0,0,.2)}.brand{display:flex;gap:18px;align-items:center}.brandIcon{width:62px;height:62px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,#153a75,#0f2b59);color:#4590ff;font-size:38px;box-shadow:inset 0 0 0 1px #224a80}.brand h1{font-size:27px;line-height:1.2;margin:0 0 7px;font-weight:800}.brandSub{display:flex;gap:7px;align-items:center;color:#54a1ff;font-size:12px}.brandSub span,.brandSub b,.brandSub em{padding:4px 9px;border-radius:999px;border:1px solid #24518a;background:#0d2a52;font-style:normal;font-weight:600}.brandSub b{color:#c8d6ec;background:#172640;border-color:#2a3a53}.brandSub em{color:#9ddbbf;background:#0d342b;border-color:#17654e}.topActions{display:flex;gap:12px;align-items:center}.btn,.iconBtn,button{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:#eef4ff;border:1px solid #31425f;background:#152239;border-radius:12px;padding:12px 16px;font-weight:800;cursor:pointer;transition:.18s ease}.btn:hover{transform:translateY(-1px);border-color:#4d6a99}.btn.disabled{opacity:.42;pointer-events:none}.btn.purple{background:linear-gradient(135deg,#33225d,#281f52);border-color:#6d43bc;color:#c99dff;min-width:250px}.iconBtn{width:44px;height:44px;border-radius:12px;border:1px solid #263a59;background:#0e1b2e;color:#9ab0d0;font-size:19px;cursor:pointer}.appShell{position:relative;z-index:1;display:grid;grid-template-columns:390px 1fr;gap:18px;margin:18px 24px 28px}.panel{background:rgba(15,27,47,.95);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 55px rgba(0,0,0,.17)}.sidebar{padding:20px;min-height:calc(100vh - 140px);display:flex;flex-direction:column}.sideTitle{display:flex;gap:9px;align-items:center}.sideTitle span{font-size:22px}.sideTitle h2{font-size:20px;margin:0}.muted{color:var(--muted);font-size:14px;line-height:1.7}.dropZone{margin-top:15px;border:1.5px dashed #2e72c9;border-radius:16px;padding:25px 16px 16px;text-align:center;background:linear-gradient(180deg,rgba(11,27,49,.5),rgba(8,20,37,.76));transition:.18s}.dropZone.drag{border-color:#67a9ff;background:#0b284e;transform:scale(1.005)}.uploadCircle{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:#123666;color:#4b99ff;font-size:30px;font-weight:900}.dropZone strong{display:block;font-size:16px}.dropZone>span{display:block;color:var(--muted);margin:6px 0 16px;font-size:13px}.pickerRow{display:grid;grid-template-columns:1fr 1fr;gap:9px}.pickerBtn{border:1px solid #3471bd;background:#12223a;color:#f7faff;border-radius:12px;padding:11px 8px;font-weight:800;cursor:pointer;line-height:1.2}.pickerBtn.primarySmall{background:linear-gradient(135deg,#2e7cf2,#2570dc);border-color:#438fff}.pickerBtn small{font-size:12px}.sourceSection{margin-top:14px;border:1px solid #24344e;border-radius:14px;overflow:hidden;background:#0c1728;flex:1;min-height:215px}.sourceHead{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;border-bottom:1px solid #24344e}.sourceHead h3{margin:0;font-size:15px}.miniPill{font-size:11px;padding:4px 9px;background:#1a2940;border-radius:99px;color:#b2c1d8}.sourceTree{max-height:360px;overflow:auto;padding:9px}.emptyTree{height:165px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#7285a2}.emptySourceIcon{font-size:34px;opacity:.55}.emptyTree p{font-size:13px}.srcGroup{border:1px solid #21334f;border-radius:10px;margin-bottom:8px;overflow:hidden}.srcTop{display:flex;align-items:center;gap:8px;padding:10px 11px;background:#12213a}.srcTop strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srcTop .count{margin-left:auto;color:#65e0b4;font-size:11px}.srcFiles{padding:5px 8px 8px}.srcFile{display:flex;align-items:center;gap:8px;padding:6px 7px;color:#bdc9dc;font-size:12px;border-radius:7px}.srcFile.active{background:#11305a;color:#fff}.srcFile .pdfDot{color:#ff5265}.srcFile .statusDot{margin-left:auto;font-size:10px}.statusDot.passed{color:#3dd9aa}.statusDot.processing{color:#55a9ff}.statusDot.passed_with_issues{color:#ffba43}.statusDot.file_review,.statusDot.failed{color:#ff6070}.srcFolder{font-size:11px;color:#6d82a1;padding:6px 9px 1px}.startBtn,.resetBtn{border:0;border-radius:13px;margin-top:14px;padding:16px;color:white;background:linear-gradient(135deg,#2777ef,#2e83ff);font-size:17px;font-weight:900;cursor:pointer;box-shadow:0 10px 28px rgba(41,126,249,.23)}.startBtn:disabled{filter:saturate(.2);opacity:.5;cursor:not-allowed}.resetBtn{background:#132541;border:1px solid #2c4a75}.workspace{min-width:0}.welcomePanel{min-height:705px;padding:22px}.metrics{display:grid;gap:12px}.metrics.three{grid-template-columns:repeat(3,1fr)}.processingMetrics{grid-template-columns:repeat(6,1fr);margin-top:14px}.metrics.seven{grid-template-columns:repeat(7,1fr)}.metric{min-width:0;border:1px solid #233754;border-radius:13px;background:linear-gradient(145deg,#111f36,#0d192c);padding:14px;display:flex;align-items:center;gap:12px}.metricIcon{width:46px;height:46px;display:grid;place-items:center;border-radius:12px;font-size:24px;font-weight:900;flex:0 0 auto}.purpleIcon{background:#2b2358;color:#8e65ff}.blueIcon{background:#102d5b;color:#3e90ff}.greenIcon{background:#0d443c;color:#15dda4}.wrenchIcon{background:#14356d;color:#4ea0ff}.warnIcon{background:#543612;color:#ffac27}.redIcon{background:#4a1f2d;color:#ff5267}.metric span{display:block;color:#8fa1ba;font-size:12px;margin-bottom:5px}.metric strong{display:block;font-size:23px}.emptyWorkspace{height:540px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.emptyArt{width:110px;height:110px;border-radius:28px;background:radial-gradient(circle at 50% 35%,#233b67,#111c31 72%);display:grid;place-items:center;font-size:58px;color:#607da9;box-shadow:0 20px 70px rgba(0,0,0,.2)}.emptyWorkspace h2{font-size:23px;margin:20px 0 7px}.emptyWorkspace p{color:var(--muted)}.featureChecks{display:flex;gap:22px;margin-top:22px;color:#85dcbf;font-size:13px}.progressPanel{padding:18px}.progressTop{display:grid;grid-template-columns:125px 1fr 250px;gap:16px;align-items:center}.ring{--p:0deg;width:104px;height:104px;border-radius:50%;background:conic-gradient(var(--blue2) var(--p),#172a45 0);display:grid;place-items:center;position:relative}.ring:before{content:"";position:absolute;inset:11px;border-radius:50%;background:#0d192c}.ring b{position:relative;font-size:23px}.progressCopy h2{margin:0 0 5px}.progressCopy p{margin:0 0 13px;color:#98abc8}.bar{height:10px;border-radius:99px;background:#152943;overflow:hidden}.bar div{height:100%;width:0;background:linear-gradient(90deg,#1e71ff,#4aa6ff);border-radius:inherit;transition:width .2s}.progressCopy small{color:#70a8ed;display:block;margin-top:8px;text-align:right}.currentFileBox{border:1px solid #283b59;border-radius:12px;padding:16px;background:#0c182b;min-width:0}.currentFileBox span{display:block;color:#879ab8;font-size:11px;margin-bottom:6px}.currentFileBox strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fileMonitor{padding:18px;margin-top:16px}.panelHeader,.organizerHead,.voterHead{display:flex;align-items:center;justify-content:space-between;gap:18px}.panelHeader h2,.organizerHead h2,.voterHead h2{margin:0 0 4px}.panelHeader p,.organizerHead p,.voterHead p{margin:0;color:#899dbd;font-size:13px}.livePill{font-size:10px;color:#4fe1b0;background:#0b3c32;border:1px solid #176550;padding:5px 9px;border-radius:99px}.tableWrap{overflow:auto;border:1px solid #263853;border-radius:12px;margin-top:14px;background:#0a1627}.tableWrap.compact{max-height:360px}.tableWrap table{width:100%;border-collapse:collapse;font-size:13px;min-width:880px}.tableWrap thead{position:sticky;top:0;z-index:1}.tableWrap th{background:#17263c;color:#9fb0c8;padding:11px;text-align:left;border-bottom:1px solid #263853}.tableWrap td{padding:10px 11px;border-bottom:1px solid #172840;color:#d7dfed}.statusBadge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:99px;font-size:10px;font-weight:900}.statusBadge.passed{background:#0d4838;color:#36e0ac}.statusBadge.processing{background:#123e72;color:#64b1ff}.statusBadge.queued{background:#263145;color:#9aa9bf}.statusBadge.passed_with_issues{background:#533817;color:#ffc056}.statusBadge.file_review,.statusBadge.failed{background:#4f1e2a;color:#ff6878}.successBanner{border:1px solid #15805f;border-radius:16px;background:linear-gradient(90deg,#0c4033,#0b302e 70%,#0d2432);padding:15px 18px;display:flex;align-items:center;gap:15px;box-shadow:0 20px 50px rgba(0,0,0,.15)}.successIcon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#14cd96;color:#08271f;font-size:25px;font-weight:900}.successBanner h2{margin:0 0 2px;font-size:19px}.successBanner p{margin:0;color:#a2c9bd;font-size:13px}.resultMetricsPanel{padding:14px;margin-top:14px}.metrics.seven .metric{padding:11px 10px;gap:8px}.metrics.seven .metricIcon{width:38px;height:38px;font-size:18px}.metrics.seven .metric strong{font-size:18px}.resultOrganizer{padding:18px;margin-top:14px}.organizerActions{display:flex;gap:8px}.darkBtn{background:#121f33}.tabs{display:flex;gap:7px;margin-top:15px;border-bottom:1px solid #243650;padding-bottom:8px}.tab{border:1px solid #28405f;background:#0c192b;color:#94a7c4;padding:9px 14px;border-radius:9px;font-weight:800;cursor:pointer}.tab.active{background:#1d64c5;color:#fff;border-color:#327be1}.tabPane{padding-top:12px}.groupList{display:grid;gap:8px}.groupCard{border:1px solid #233955;border-radius:11px;background:#0d192c;overflow:hidden}.groupHeader{display:flex;align-items:center;padding:11px 12px;gap:10px}.groupHeader .gIcon{width:34px;height:34px;border-radius:9px;background:#14366b;display:grid;place-items:center;color:#61a7ff}.groupHeader strong{font-size:14px}.groupHeader small{color:#859ab8;margin-left:5px}.groupHeader .groupStats{margin-left:auto;display:flex;gap:12px;color:#92a8c6;font-size:11px;align-items:center}.downloadMini{border:1px solid #2b5a9b;background:#102c51;color:#76b2ff;border-radius:8px;padding:7px 10px;text-decoration:none;font-size:11px;font-weight:900}.pdfList{display:grid;gap:7px}.pdfRow{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(170px,1fr) 110px 90px 90px 90px 120px;gap:8px;align-items:center;padding:9px 11px;border:1px solid #223650;border-radius:10px;background:#0c192b;font-size:12px}.pdfRow .nameCell{min-width:0}.pdfRow .nameCell strong,.pdfRow .nameCell small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdfRow .nameCell small{color:#7187a6;margin-top:3px}.pdfDownload{justify-self:end;text-decoration:none;color:#8fc3ff;border:1px solid #2d5894;border-radius:8px;padding:6px 9px;font-weight:800}.voterPanel{padding:18px;margin-top:14px}.searchRow{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.searchRow input,.searchRow select{border:1px solid #263d5e;background:#0b1728;color:#eaf2ff;border-radius:9px;padding:9px 10px;outline:none;min-width:160px}.searchRow #searchQ{min-width:245px}.searchBtn{padding:9px 15px;background:#1f68ca}.voterTableWrap{max-height:510px}.voterTableWrap table{min-width:1300px}.voterTableWrap td:nth-child(3){color:#65aaff}.parentCell small{display:block;color:#8093af;margin:2px 0}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:11px;color:#8499b8;font-size:12px}.pagination button{border:1px solid #29405e;background:#0c192b;color:#b5c5dc;border-radius:8px;min-width:32px;height:32px;margin-left:5px;cursor:pointer}.pagination button.active{background:#2674e6;color:white;border-color:#3b8cff}.errorBox{padding:25px;border-color:#773143;color:#ffb7c0}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center}.modalBackdrop{position:absolute;inset:0;background:rgba(3,10,20,.78);backdrop-filter:blur(7px)}.modalCard{position:relative;width:590px;border-radius:22px;border:1px solid #2f5d9e;background:linear-gradient(160deg,#102449,#0d1a32 70%);padding:40px;text-align:center;box-shadow:0 40px 110px rgba(0,0,0,.55)}.modalCheck{width:82px;height:82px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:#17d09a;color:#083024;font-size:44px;font-weight:900;box-shadow:0 0 0 15px rgba(23,208,154,.08),0 0 60px rgba(23,208,154,.22)}.modalCard h2{font-size:30px;margin:0 0 10px}.modalCard p{color:#a5b5cc;font-size:16px}.modalButtons{display:flex;justify-content:center;gap:11px;margin-top:28px}.modalPrimary{background:#2679ed;border-color:#3e8ef7;min-width:160px}.modalSecondary{background:#111d31;min-width:130px}.drawer{position:fixed;inset:0;z-index:60;background:rgba(2,8,16,.62)}.drawerPanel{position:absolute;right:0;top:0;bottom:0;width:400px;background:#0c1728;border-left:1px solid #293b59;padding:22px;box-shadow:-20px 0 60px rgba(0,0,0,.4)}.drawerHead{display:flex;justify-content:space-between;align-items:center}.drawerHead h2{margin:0}.drawerHead button{border:0;background:transparent;color:#a9bdd8;font-size:28px;cursor:pointer}.drawerPanel p{color:#8498b7;line-height:1.6}.drawerLinks{display:grid;gap:9px;margin-top:22px}.drawerLinks a{color:#b9d6ff;text-decoration:none;border:1px solid #2a4163;background:#101f35;border-radius:11px;padding:13px}.drawerLinks a:hover{background:#15315a}.goodMetric{border-color:#165c48}.layers{font-size:16px}@media(max-width:1350px){body{min-width:1024px}.appShell{grid-template-columns:330px 1fr}.processingMetrics{grid-template-columns:repeat(3,1fr)}.metrics.seven{grid-template-columns:repeat(4,1fr)}.pdfRow{grid-template-columns:minmax(180px,1.5fr) 140px 90px 80px 80px 80px 105px}.brand h1{font-size:23px}}

/* ===== v1.5.1 client-clean compact UI overrides ===== */
body{min-width:1100px;font-size:14px}
.topbar{margin:12px 18px 0;padding:14px 18px;border-radius:16px}
.brand{gap:14px}.brandIcon{width:54px;height:54px;border-radius:14px;font-size:31px}
.brand h1{font-size:23px;margin-bottom:6px}.brandSub{font-size:11px}.brandSub span,.brandSub b{padding:3px 8px}
.btn{padding:10px 14px;border-radius:10px;font-size:13px}.btn.purple{min-width:225px}
.appShell{grid-template-columns:350px 1fr;gap:16px;margin:16px 18px 22px}
.panel{border-radius:16px}.sidebar{padding:16px;min-height:calc(100vh - 116px)}
.sideTitle h2{font-size:18px}.sideTitle span{font-size:19px}.muted{font-size:12.5px;line-height:1.6}
.dropZone{margin-top:12px;padding:20px 13px 13px;border-radius:14px}.uploadCircle{width:50px;height:50px;font-size:26px;margin-bottom:11px}
.dropZone strong{font-size:14px}.dropZone>span{font-size:12px;margin:5px 0 13px}.pickerBtn{padding:10px 7px;font-size:13px}.pickerBtn small{font-size:10.5px}
.sourceSection{margin-top:12px;min-height:195px}.sourceHead{height:42px}.sourceHead h3{font-size:14px}.sourceTree{max-height:310px}.srcTop{padding:8px 9px}.srcFile{font-size:11.5px;padding:5px 6px}.srcFolder{font-size:10.5px}
.sourcePublicState{margin-left:auto;font-size:9px;font-weight:800;padding:2px 6px;border-radius:999px}.sourcePublicState.processing{background:#143e70;color:#75b8ff}.sourcePublicState.queued{background:#263145;color:#a7b4c7}.sourcePublicState.done{color:#41d8aa;background:#0d3d32}
.startBtn,.resetBtn{margin-top:12px;padding:13px;font-size:15px;border-radius:11px}
.welcomePanel{min-height:640px;padding:18px}.metrics{gap:10px}.metric{padding:12px;border-radius:11px;gap:10px}.metricIcon{width:40px;height:40px;border-radius:10px;font-size:20px}.metric span{font-size:11px;margin-bottom:3px}.metric strong{font-size:20px}
.emptyWorkspace{height:480px}.emptyArt{width:92px;height:92px;border-radius:24px;font-size:48px}.emptyWorkspace h2{font-size:20px;margin:17px 0 6px}.emptyWorkspace p{font-size:13px}.featureChecks{font-size:11.5px;gap:18px;margin-top:18px}
.progressPanel{padding:15px}.progressTop{grid-template-columns:108px 1fr 220px;gap:14px}.ring{width:92px;height:92px}.ring b{font-size:20px}.progressCopy h2{font-size:20px}.progressCopy p{font-size:12.5px;margin-bottom:10px}.currentFileBox{padding:13px}.simpleProcessingMetrics{grid-template-columns:repeat(3,1fr);margin-top:12px}
.fileMonitor{padding:15px;margin-top:13px}.panelHeader h2,.organizerHead h2,.voterHead h2{font-size:19px}.panelHeader p,.organizerHead p,.voterHead p{font-size:11.5px}.livePill{font-size:9px}
.tableWrap table{font-size:12px}.tableWrap th{padding:9px 10px}.tableWrap td{padding:8px 10px}.tableWrap.compact{max-height:320px}
.successBanner{padding:13px 15px;border-radius:14px}.successIcon{width:38px;height:38px;font-size:22px}.successBanner h2{font-size:18px}.successBanner p{font-size:11.5px}
.resultMetricsPanel{padding:12px;margin-top:12px}.resultSummaryMetrics .metric{min-height:70px}.resultSummaryMetrics .metric strong{font-size:21px}
.resultOrganizer{padding:15px;margin-top:12px}.organizerActions{gap:7px}.tabs{margin-top:12px;padding-bottom:7px}.tab{padding:8px 12px;font-size:12px;border-radius:8px}.tabPane{padding-top:10px}
.groupList{gap:7px}.groupCard{border-radius:10px}.groupHeader{padding:9px 10px;gap:8px}.groupHeader .gIcon{width:30px;height:30px;border-radius:8px}.groupHeader strong{font-size:13px}.groupHeader small{font-size:10.5px}.groupHeader .groupStats{font-size:10.5px}.downloadMini{padding:6px 9px;font-size:10.5px}
.pdfList{gap:6px}.pdfRow.cleanPdfRow{grid-template-columns:minmax(260px,1.7fr) minmax(180px,1fr) 118px;padding:8px 10px;font-size:11.5px}.pdfAreaName{color:#afbdd1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdfDownload{padding:6px 8px;font-size:10.5px}
.voterPanel{padding:15px;margin-top:12px}.searchRow{gap:6px}.searchRow input,.searchRow select{padding:8px 9px;font-size:11.5px;min-width:145px}.searchRow #searchQ{min-width:220px}.searchBtn{padding:8px 14px}.voterTableWrap{max-height:470px}.voterTableWrap table{min-width:1240px}.parentCell small{font-size:10.5px}.pagination{font-size:11px}.pagination button{min-width:29px;height:29px;font-size:11px}
.sourceCopyCell{display:flex;align-items:center;gap:7px;min-width:150px}.sourceCopyCell span{display:block;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.copyItemBtn{border:1px solid #3565a4;background:#10294a;color:#8ec1ff;border-radius:7px;padding:5px 8px;font-size:10px;font-weight:800;cursor:pointer;white-space:nowrap}.copyItemBtn:hover{background:#173b69;color:#fff}
.copyToast{position:fixed;right:22px;bottom:22px;z-index:80;background:#0e4235;border:1px solid #19815f;color:#9ff0d0;border-radius:10px;padding:10px 14px;font-size:12px;font-weight:800;box-shadow:0 18px 45px rgba(0,0,0,.35)}
.modalCard{width:520px;padding:32px;border-radius:19px}.modalCheck{width:70px;height:70px;font-size:38px;margin-bottom:15px}.modalCard h2{font-size:25px}.modalCard p{font-size:14px}.modalButtons{margin-top:22px}.modalPrimary{min-width:145px}.modalSecondary{min-width:115px}
.smallEmpty{height:150px!important}
@media(max-width:1350px){body{min-width:1000px}.appShell{grid-template-columns:315px 1fr}.brand h1{font-size:21px}.pdfRow.cleanPdfRow{grid-template-columns:minmax(210px,1.5fr) 150px 112px}.searchRow #searchQ{min-width:190px}}

/* ===== v1.5.3 gender summary + download ===== */
.genderSummaryPanel{padding:13px 15px;margin-top:12px}
.genderSummaryHead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}
.genderSummaryHead h2{margin:0 0 3px;font-size:18px}.genderSummaryHead p{margin:0;color:#899dbd;font-size:11.5px}
.genderMetrics{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.genderCard{min-width:0;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;border:1px solid #233754;border-radius:11px;background:linear-gradient(145deg,#111f36,#0d192c);padding:11px 12px}
.genderIcon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:22px;font-weight:900}
.maleCard .genderIcon{background:#12315e;color:#5fa7ff}.femaleCard .genderIcon{background:#4a244b;color:#ff91d5}.hijraCard .genderIcon{background:#3d315f;color:#c69bff}
.genderInfo span{display:block;color:#8fa1ba;font-size:11px;margin-bottom:2px}.genderInfo strong{display:block;font-size:21px}
.genderDownload{text-decoration:none;white-space:nowrap;color:#8fc3ff;border:1px solid #2d5894;border-radius:8px;padding:6px 9px;font-size:10.5px;font-weight:800;background:#102440}
.genderDownload:hover{background:#17385f;color:#fff;border-color:#3e78bd}
@media(max-width:1250px){.genderMetrics{grid-template-columns:1fr}.genderCard{grid-template-columns:40px 1fr 112px}}


/* ===== v1.5.4 compact gender summary ===== */
.compactOverviewPanel{padding:11px 12px;margin-top:12px}
.resultOverviewMetrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.overviewMetric{position:relative;min-width:0;min-height:70px;padding:10px 10px;gap:9px}
.overviewMetric .metricIcon{width:38px;height:38px;font-size:19px;flex:0 0 38px}
.overviewText{min-width:0;flex:1}.overviewText span{display:block;color:#8fa1ba;font-size:10.5px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overviewText strong{display:block;font-size:19px;line-height:1.05}
.genderOverview{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:8px;padding-right:8px}
.genderMiniIcon{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;font-size:20px;font-weight:900}
.maleOverview .genderMiniIcon{background:#12315e;color:#5fa7ff}.femaleOverview .genderMiniIcon{background:#4a244b;color:#ff91d5}.hijraOverview .genderMiniIcon{background:#3d315f;color:#c69bff}
.genderMiniDownload{text-decoration:none;white-space:nowrap;color:#91c7ff;border:1px solid #315d93;background:#102440;border-radius:7px;padding:5px 6px;font-size:9.5px;font-weight:900;line-height:1}
.genderMiniDownload:hover{background:#17385f;color:#fff;border-color:#4380c5}
/* legacy v1.5.3 standalone gender panel is intentionally no longer rendered */
@media(max-width:1500px){.resultOverviewMetrics{grid-template-columns:repeat(3,minmax(0,1fr))}.overviewMetric{min-height:64px}}
@media(max-width:1120px){.resultOverviewMetrics{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* ===== v1.5.5.1 processing timer ===== */
.timerProcessingMetrics{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.timerMetric{border-color:#5b4a27}.timerIcon{background:#4a3516;color:#ffd37a}
.timerMetric strong{font-variant-numeric:tabular-nums;letter-spacing:.4px}
.durationCell{white-space:nowrap;color:#a9c7ef;font-variant-numeric:tabular-nums}
.successBanner #finalElapsed{color:#8fd5ff;font-variant-numeric:tabular-nums}
@media(max-width:1350px){.timerProcessingMetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* ===== v1.5.5.2 export + Bengali compatibility ===== */
.autoSaveNote{margin-top:9px;color:#8fd5b8;font-size:11.5px;word-break:break-all}
.exportHint{color:#89a1c2;font-size:11px;margin-left:7px}

/* ===== v1.5.5.4 inline export buttons + Windows Bengali font hardening ===== */
.exportFormatButtons{display:inline-flex;align-items:center;gap:6px;padding:4px;border:1px solid #2b3d59;background:#0a1627;border-radius:11px;white-space:nowrap}
.formatBtn{border:1px solid transparent;background:#111f34;color:#a9bad2;border-radius:8px;padding:8px 13px;font:inherit;font-size:12px;font-weight:900;cursor:pointer;transition:.15s ease}
.formatBtn:hover{color:#fff;border-color:#3a5a83;background:#152945}
.formatBtn.active{color:#fff;background:linear-gradient(135deg,#2374de,#2d83f4);border-color:#4a98ff;box-shadow:0 5px 16px rgba(39,122,235,.22)}
.organizerActions{align-items:center;flex-wrap:nowrap}
@media(max-width:1250px){.formatBtn{padding:8px 10px;font-size:11px}.organizerActions{gap:6px}}

input,select,textarea{font-family:inherit}

/* ===== cPanel mobile responsive fix ===== */
@media (max-width: 900px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body{min-width:0!important;font-size:14px}
  .topbar{margin:8px 8px 0;padding:12px;border-radius:14px;display:flex;flex-direction:column;align-items:stretch;gap:12px}
  .brand{gap:10px;align-items:flex-start;min-width:0}
  .brandIcon{width:46px;height:46px;min-width:46px;border-radius:12px;font-size:27px}
  .brand>div:last-child{min-width:0}
  .brand h1{font-size:18px;line-height:1.35;margin:1px 0 6px;overflow-wrap:anywhere}
  .brandSub{flex-wrap:wrap;gap:5px;font-size:9.5px}
  .brandSub span,.brandSub b,.brandSub em{padding:3px 6px}
  .topActions{width:100%}
  .topActions .btn,.btn.purple{width:100%;min-width:0;padding:10px 12px}

  .appShell{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:10px;margin:10px 8px 16px}
  .sidebar{min-height:0;padding:13px}
  .workspace{width:100%;min-width:0}
  .panel{border-radius:13px}

  .sideTitle h2{font-size:17px;line-height:1.35}
  .muted{font-size:12px}
  .dropZone{padding:18px 10px 11px}
  .pickerRow{grid-template-columns:1fr 1fr;gap:7px}
  .pickerBtn{font-size:12px;padding:10px 5px}
  .sourceSection{min-height:150px;max-height:310px}
  .sourceTree{max-height:245px}
  .startBtn,.resetBtn{width:100%;font-size:14px;padding:12px}

  .welcomePanel{min-height:0;padding:12px}
  .metrics.three{grid-template-columns:1fr}
  .metric{padding:10px}
  .metricIcon{width:38px;height:38px;font-size:18px}
  .metric strong{font-size:18px}
  .emptyWorkspace{height:auto;min-height:320px;padding:28px 8px}
  .emptyArt{width:76px;height:76px;font-size:38px;border-radius:20px}
  .emptyWorkspace h2{font-size:18px;line-height:1.35}
  .emptyWorkspace p{font-size:12px;line-height:1.55}
  .featureChecks{flex-direction:column;align-items:flex-start;gap:7px;margin-top:15px;font-size:11px;text-align:left}

  .progressPanel{padding:12px}
  .progressTop{display:grid;grid-template-columns:1fr!important;gap:12px;text-align:center}
  .ring{margin:0 auto;width:86px;height:86px}
  .progressCopy h2{font-size:18px}
  .progressCopy p{font-size:12px;line-height:1.5}
  .progressCopy small{text-align:center}
  .currentFileBox{text-align:left;padding:11px}
  .timerProcessingMetrics,.simpleProcessingMetrics,.processingMetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px}
  .timerProcessingMetrics .metric,.simpleProcessingMetrics .metric{padding:9px;gap:7px}
  .fileMonitor{padding:11px;margin-top:10px}
  .panelHeader,.organizerHead,.voterHead,.genderSummaryHead{align-items:flex-start;flex-direction:column;gap:8px}
  .tableWrap{width:100%;max-width:100%;-webkit-overflow-scrolling:touch}
  .tableWrap table{min-width:760px}

  .successBanner{padding:12px;align-items:flex-start}
  .successIcon{width:36px;height:36px;min-width:36px;font-size:20px}
  .successBanner h2{font-size:17px}
  .successBanner p{font-size:11px;line-height:1.55}
  .compactOverviewPanel,.resultMetricsPanel,.resultOrganizer,.voterPanel{padding:11px;margin-top:10px}
  .resultOverviewMetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px}
  .overviewMetric{min-height:62px;padding:8px}
  .overviewText span{font-size:9.5px}
  .overviewText strong{font-size:17px}
  .genderOverview{grid-template-columns:32px minmax(0,1fr) auto;gap:5px}
  .genderMiniIcon{width:32px;height:32px;font-size:17px}
  .genderMiniDownload{padding:5px;font-size:9px}

  .organizerHead{align-items:stretch}
  .organizerActions{width:100%;display:flex;flex-direction:column;align-items:stretch!important;gap:7px;flex-wrap:wrap!important}
  .exportFormatButtons{display:grid;grid-template-columns:repeat(3,1fr);width:100%;white-space:normal;gap:4px}
  .formatBtn{width:100%;padding:8px 6px;font-size:10.5px}
  .organizerActions>.btn{width:100%}
  .tabs{overflow-x:auto;white-space:nowrap;padding-bottom:7px;-webkit-overflow-scrolling:touch}
  .tab{flex:0 0 auto;padding:8px 10px;font-size:11px}
  .groupHeader{align-items:flex-start;flex-wrap:wrap}
  .groupHeader .groupStats{width:100%;margin-left:42px;flex-wrap:wrap;gap:7px}
  .downloadMini{margin-left:auto}

  .pdfRow,.pdfRow.cleanPdfRow{grid-template-columns:minmax(0,1fr)!important;gap:5px;padding:10px!important}
  .pdfAreaName{white-space:normal}
  .pdfDownload{justify-self:stretch;text-align:center}

  .searchRow{display:grid;grid-template-columns:1fr;gap:6px;width:100%}
  .searchRow input,.searchRow select,.searchRow #searchQ,.searchBtn{width:100%;min-width:0!important}
  .voterTableWrap table{min-width:1050px}
  .pagination{flex-direction:column;align-items:stretch;gap:8px}
  .pagination>div:last-child{overflow-x:auto;white-space:nowrap;padding-bottom:4px}

  .modal{padding:10px}
  .modalCard{width:min(94vw,520px)!important;padding:22px 14px!important;border-radius:16px}
  .modalCard h2{font-size:21px}.modalCard p{font-size:13px}
  .modalButtons{flex-direction:column;gap:8px}
  .modalButtons .btn,.modalPrimary,.modalSecondary{width:100%;min-width:0}
  .drawerPanel{width:min(100vw,400px);padding:16px}
  .copyToast{left:10px;right:10px;bottom:10px;text-align:center}
}

@media (max-width: 480px){
  .topbar{margin:6px 6px 0;padding:10px}
  .brandIcon{width:40px;height:40px;min-width:40px;font-size:23px}
  .brand h1{font-size:16px}
  .brandSub{font-size:8.5px}
  .appShell{margin:8px 6px 12px;gap:8px}
  .sidebar{padding:11px}
  .pickerRow{grid-template-columns:1fr}
  .uploadCircle{width:44px;height:44px;font-size:22px}
  .dropZone strong{font-size:13px}
  .timerProcessingMetrics,.simpleProcessingMetrics,.processingMetrics{grid-template-columns:1fr 1fr!important}
  .resultOverviewMetrics{grid-template-columns:1fr 1fr!important}
  .overviewMetric{min-height:58px}
  .genderOverview{grid-template-columns:30px minmax(0,1fr) auto}
  .successBanner{display:grid;grid-template-columns:36px 1fr;gap:9px}
  .formatBtn{font-size:10px;padding:8px 3px}
}

@media (max-width: 360px){
  .resultOverviewMetrics{grid-template-columns:1fr!important}
  .timerProcessingMetrics,.simpleProcessingMetrics,.processingMetrics{grid-template-columns:1fr!important}
}
